Merge remote-tracking branch 'origin/master' into feat/plugin-owned-settings-surface
# Conflicts: # packages/client/ui-input-trigger/README.i18n.yaml # packages/client/ui-settings-plugins/src/client/ConfigurablePluginsTab.tsx # packages/client/ui-settings-plugins/src/client/index.ts # packages/client/ui-settings-plugins/src/client/tab-store.ts # packages/client/ui-settings-plugins/tests/apply.client.spec.ts # packages/client/ui-settings-plugins/tests/section.client.spec.tsx # packages/client/ui-settings-plugins/tests/stores.client.spec.ts # packages/host/apiproxy/src/api-proxy.ts # packages/host/apiproxy/tests/api-proxy-config.spec.ts
This commit is contained in:
@@ -97,7 +97,7 @@ The session log is the source of the context the model sees. `deriveMessages()`
|
||||
|
||||
## Capability seams
|
||||
|
||||
A **seam** is a swappable capability with three roles: a **Service Definition** declaring the interface, a **Service provider** implementing it, and a **Consumer** using it, commonly a model-facing tool. A package may combine roles, but one role alone is not a seam; adding a capability means designing all three ([capability graph](capability-seams.md)).
|
||||
A **seam** is a swappable capability with three roles: a **Service Definition** declaring the interface, a **Service Provider** implementing it, and a **Consumer** using it, commonly a model-facing tool. A package may combine roles, but one role alone is not a seam; adding a capability means designing all three ([capability graph](capability-seams.md)).
|
||||
|
||||
Seams are why one provider swap changes the whole product. Filesystem and subprocess providers share one execution world, so pointing them at a remote sandbox moves Bash, PTY, and LSP with them, with no provider forks. [Subagent providers](subsystems/subagent.md) vary just as widely behind one interface, from a fresh child agent to a delegated turn in another product.
|
||||
|
||||
@@ -110,10 +110,10 @@ New behavior attaches to a documented extension point. Changing the loop itself
|
||||
| Add a model provider | register its adapter on `ctx.llm` |
|
||||
| Add a model-facing capability | register on `ctx.tools`; its schema joins prompt assembly |
|
||||
| Give one session a different capability set | compose an agent preset; a service row there needs an `isolate` realm |
|
||||
| Add shell execution | register a `ctx.bash` backend; the local one spawns through `ctx.subprocess` |
|
||||
| Add persistent terminal execution | register a `ctx.pty` backend plus `dsh-tool-pty` |
|
||||
| Add shell execution | register a `ctx.shell` backend; the local one spawns through `ctx.subprocess` |
|
||||
| Add persistent terminal execution | register a `ctx.terminals` backend plus `dsh-tool-terminal` |
|
||||
| Add a human command | register on `ctx.commands`; it dispatches without a model turn |
|
||||
| Add background work | register on `ctx.tasks`; `task_*` tools collect or stop it |
|
||||
| Add background work | register on `ctx.jobs`; `job_*` tools collect or stop it |
|
||||
| Add filesystem access or policy | register a `ctx.fs` provider or listen to `fs/*` events |
|
||||
| Confine spawned processes | use a `ctx.sandbox` backend; consumers wrap argv before spawning |
|
||||
| Intercept a request, tool, or turn | use its `agent/*` or `tools/*` event; `agent/turn-stopping` stops a turn |
|
||||
|
||||
Reference in New Issue
Block a user