docs(processes): process spawn policy, hardening and redaction
extensions.md: api.Processes and api.Redactor, ExecAsync on the policy, ProcessSpawnEvent, ctx.TimeZone and PrepareProcessAsync, and a Spawning processes section. architecture.md: Processes slice, the Abstractions contract, a Processes and secrets section, and where the loop redacts. CLAUDE.md: Processes slice and bullet. Spec: status implemented (scheduler and MCP spawners come with their specs); a hook returning null fails the spawn; test projects consume the one-shot hardening from a module initializer; the Hardener seam; 'allow: none' in the Telegram log line.
This commit is contained in:
@@ -48,9 +48,9 @@ Read `docs/architecture.md` first. Key points:
|
||||
`IUserInterface`, and `AgentSessionEvent`. Extensions reference **only** this assembly, so it stays small and
|
||||
stable. Don't let runtime types leak into it.
|
||||
- **`src/Volcanic.AgenticCore`** is organised as **vertical slices** under `Features/` (`Agent`, `Sessions`, `Models`,
|
||||
`Tools`, `Extensions`, `Commands`, `SystemPrompt`, `Compaction`). Each slice exposes one entry type
|
||||
`Tools`, `Extensions`, `Commands`, `SystemPrompt`, `Compaction`, `Processes`). Each slice exposes one entry type
|
||||
(`AgentSession`, `SessionManager`, `ModelRegistry`, `ToolRegistry`, `ExtensionRunner`, `CommandRegistry`,
|
||||
`SystemPromptBuilder`, `Compactor`). Slices talk only through those entry types and the Abstractions.
|
||||
`SystemPromptBuilder`, `Compactor`, `ProcessSpawnPolicy`). Slices talk only through those entry types and the Abstractions.
|
||||
`Hosting/` has `AddAgenticCore(...)` and `AgenticCoreOptions`; `Testing/FauxProvider.cs` is the scripted provider
|
||||
that tests and `--faux` use.
|
||||
- **One conversation = one `AgentSession`**, built by `IAgentSessionFactory.CreateAsync`. Extensions are
|
||||
@@ -63,6 +63,10 @@ Read `docs/architecture.md` first. Key points:
|
||||
Tool preparation runs in source order, execution runs in parallel by default, results are appended in source order.
|
||||
Failed assistant messages are persisted but dropped from model context. Context overflow triggers one compaction
|
||||
and a retry.
|
||||
- **Processes**: every agent-requested process gets its environment from `IProcessSpawnPolicy`
|
||||
(`AgenticCoreOptions.ProcessEnvironment`: deny-list, `Allow`, `SecretValues`, host hooks); `AgentSession` redacts
|
||||
`SecretValues` from tool output; `HostProcessHardening` makes the host non-dumpable on Linux, once per process. Test projects
|
||||
apply it with `HardenHostProcess = false` from a module initializer (`NoHostHardening.cs`).
|
||||
- **Persistence**: a session is a tree of JSONL entries (`id`/`parentId` + leaf pointer) under
|
||||
`~/.volcanic/agent/sessions/<scope>/` (`VOLCANIC_AGENT_DIR` overrides the root). Compaction entries replace older
|
||||
messages when context is built.
|
||||
|
||||
Reference in New Issue
Block a user