@jr2/orchestrator 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/console/components/app.ts +55 -15
- package/console/components/bottom-drawer.ts +259 -0
- package/console/components/drawer.ts +14 -6
- package/console/components/fleet.ts +36 -13
- package/console/components/machine-pane.ts +61 -5
- package/console/components/nav.ts +54 -8
- package/console/conversation.ts +161 -0
- package/console/login.ts +123 -0
- package/console/main.ts +600 -60
- package/console/store.ts +611 -64
- package/console/style.css +231 -0
- package/docs/agents-block.md +2 -2
- package/docs/concepts/agents-and-turns.md +86 -9
- package/docs/concepts/architecture.md +41 -28
- package/docs/concepts/callers-and-hooks.md +205 -0
- package/docs/concepts/charts.md +7 -5
- package/docs/concepts/composition.md +10 -1
- package/docs/concepts/converge.md +4 -2
- package/docs/concepts/durable-runs.md +43 -16
- package/docs/concepts/effects.md +50 -22
- package/docs/concepts/gates.md +95 -25
- package/docs/concepts/machines-and-workflows.md +5 -4
- package/docs/concepts/pools-and-sources.md +187 -11
- package/docs/concepts/secrets-and-trust.md +73 -33
- package/docs/concepts/the-menu.md +11 -0
- package/docs/concepts/workspaces.md +6 -5
- package/docs/get-started/a-model-decides.md +14 -13
- package/docs/get-started/an-agent-in-a-sandbox.md +43 -34
- package/docs/get-started/connect-a-model.md +1 -1
- package/docs/get-started/create-an-instance.md +17 -14
- package/docs/guides/add-tools-to-the-sandbox.md +55 -11
- package/docs/guides/answer-a-gate-from-a-forge.md +304 -0
- package/docs/guides/answer-a-gate.md +74 -37
- package/docs/guides/bind-open-parts.md +24 -8
- package/docs/guides/call-an-mcp-tool-from-a-machine.md +572 -0
- package/docs/guides/cancel-a-run.md +26 -16
- package/docs/guides/fix-a-failed-converge.md +18 -6
- package/docs/guides/give-a-caller-a-scope.md +203 -0
- package/docs/guides/give-an-agent-mcp-tools.md +422 -0
- package/docs/guides/iterate-on-a-machine-on-kind.md +10 -9
- package/docs/guides/let-an-agent-write-a-chart.md +9 -6
- package/docs/guides/look-inside-a-sandbox.md +101 -31
- package/docs/guides/open-the-console.md +63 -14
- package/docs/guides/read-a-conversation.md +225 -0
- package/docs/guides/run-a-chart-by-name.md +17 -16
- package/docs/guides/run-one-worker-per-item.md +15 -9
- package/docs/guides/set-an-agents-access-and-dials.md +2 -0
- package/docs/guides/start-a-run-for-each-alert.md +290 -0
- package/docs/guides/start-a-run-from-a-run.md +18 -16
- package/docs/guides/start-a-run.md +24 -18
- package/docs/guides/steer-an-agent.md +332 -0
- package/docs/guides/use-a-hosted-provider.md +1 -1
- package/docs/guides/watch-a-run.md +127 -121
- package/docs/guides/write-a-hook-kind.md +238 -0
- package/docs/guides/write-a-tool-as-an-mcp-server.md +351 -0
- package/docs/guides/write-a-workflow.md +17 -7
- package/docs/llms.txt +81 -15
- package/docs/reference/authoring-surface/agent.md +1 -1
- package/docs/reference/authoring-surface/answer.md +1 -1
- package/docs/reference/authoring-surface/arg.md +1 -1
- package/docs/reference/authoring-surface/basic.md +1 -1
- package/docs/reference/authoring-surface/bearer.md +1 -1
- package/docs/reference/authoring-surface/branchname.md +1 -1
- package/docs/reference/authoring-surface/carry.md +23 -0
- package/docs/reference/authoring-surface/chartschema.md +1 -1
- package/docs/reference/authoring-surface/chartschemafor.md +1 -1
- package/docs/reference/authoring-surface/command.md +1 -1
- package/docs/reference/authoring-surface/customize.md +4 -1
- package/docs/reference/authoring-surface/defineconfig.md +1 -1
- package/docs/reference/authoring-surface/defineevent.md +1 -1
- package/docs/reference/authoring-surface/dispatch.md +5 -4
- package/docs/reference/authoring-surface/fail.md +1 -1
- package/docs/reference/authoring-surface/file.md +1 -1
- package/docs/reference/authoring-surface/frompick.md +1 -1
- package/docs/reference/authoring-surface/gate.md +118 -0
- package/docs/reference/authoring-surface/group-agents.md +15 -0
- package/docs/reference/authoring-surface/group-charts.md +16 -0
- package/docs/reference/authoring-surface/group-composition.md +25 -0
- package/docs/reference/authoring-surface/group-config.md +17 -0
- package/docs/reference/authoring-surface/group-effects.md +48 -0
- package/docs/reference/authoring-surface/group-failure.md +13 -0
- package/docs/reference/authoring-surface/group-gates.md +16 -0
- package/docs/reference/authoring-surface/group-machine-and-events.md +15 -0
- package/docs/reference/authoring-surface/group-steering.md +12 -0
- package/docs/reference/authoring-surface/group-types-these-signatures-name.md +137 -0
- package/docs/reference/authoring-surface/group-workspaces-and-repos.md +15 -0
- package/docs/reference/authoring-surface/http.md +1 -1
- package/docs/reference/authoring-surface/isfailure.md +1 -1
- package/docs/reference/authoring-surface/isready.md +1 -1
- package/docs/reference/authoring-surface/jr2setup.md +13 -3
- package/docs/reference/authoring-surface/mcp.md +107 -0
- package/docs/reference/authoring-surface/open.md +5 -3
- package/docs/reference/authoring-surface/openbody.md +1 -1
- package/docs/reference/authoring-surface/paramsof.md +1 -1
- package/docs/reference/authoring-surface/pool.md +77 -9
- package/docs/reference/authoring-surface/push.md +1 -1
- package/docs/reference/authoring-surface/readyof.md +1 -1
- package/docs/reference/authoring-surface/reread.md +19 -0
- package/docs/reference/authoring-surface/secret.md +1 -1
- package/docs/reference/authoring-surface/sentby.md +1 -1
- package/docs/reference/authoring-surface/skip.md +22 -0
- package/docs/reference/authoring-surface/source.md +56 -1
- package/docs/reference/authoring-surface/steer.md +93 -0
- package/docs/reference/authoring-surface/text.md +1 -1
- package/docs/reference/authoring-surface/type-agentdefinition.md +14 -1
- package/docs/reference/authoring-surface/type-agentmcpserver.md +54 -0
- package/docs/reference/authoring-surface/type-anyframepath.md +1 -1
- package/docs/reference/authoring-surface/type-anyworktreepath.md +1 -1
- package/docs/reference/authoring-surface/type-binding.md +1 -1
- package/docs/reference/authoring-surface/type-caller.md +40 -0
- package/docs/reference/authoring-surface/type-callerrecord.md +32 -0
- package/docs/reference/authoring-surface/type-carry.md +19 -0
- package/docs/reference/authoring-surface/type-chainlink.md +3 -3
- package/docs/reference/authoring-surface/type-commandoutput.md +1 -1
- package/docs/reference/authoring-surface/type-customize.md +16 -1
- package/docs/reference/authoring-surface/type-delivered.md +17 -0
- package/docs/reference/authoring-surface/type-deliveredevent.md +18 -0
- package/docs/reference/authoring-surface/type-dispatchdefinition.md +4 -3
- package/docs/reference/authoring-surface/type-dispatchoutput.md +1 -1
- package/docs/reference/authoring-surface/type-effectbinding.md +12 -2
- package/docs/reference/authoring-surface/type-framepath.md +1 -1
- package/docs/reference/authoring-surface/type-gatebinding.md +15 -0
- package/docs/reference/authoring-surface/type-gatehooks.md +12 -0
- package/docs/reference/authoring-surface/type-gatelook.md +37 -0
- package/docs/reference/authoring-surface/type-gateoutcome.md +32 -0
- package/docs/reference/authoring-surface/type-gatereply.md +19 -0
- package/docs/reference/authoring-surface/type-gateslot.md +21 -0
- package/docs/reference/authoring-surface/type-gateslotinput.md +13 -0
- package/docs/reference/authoring-surface/type-gateslotparts.md +18 -0
- package/docs/reference/authoring-surface/type-gateslots.md +12 -0
- package/docs/reference/authoring-surface/type-gatetypesat.md +13 -0
- package/docs/reference/authoring-surface/type-hostinjectedinput.md +1 -1
- package/docs/reference/authoring-surface/type-httpoutput.md +1 -1
- package/docs/reference/authoring-surface/type-jr2config.md +37 -2
- package/docs/reference/authoring-surface/type-lateroutcome.md +1 -1
- package/docs/reference/authoring-surface/type-lends.md +5 -1
- package/docs/reference/authoring-surface/type-lookoutput.md +14 -0
- package/docs/reference/authoring-surface/type-mcpcalloutput.md +78 -0
- package/docs/reference/authoring-surface/type-mcpnotreturned.md +42 -0
- package/docs/reference/authoring-surface/type-mcpoptions.md +47 -0
- package/docs/reference/authoring-surface/type-mcpoutput.md +50 -0
- package/docs/reference/authoring-surface/type-mcpreadoutput.md +53 -0
- package/docs/reference/authoring-surface/type-mcpremoteserver.md +50 -0
- package/docs/reference/authoring-surface/type-mcpserver.md +41 -0
- package/docs/reference/authoring-surface/type-mcpstdioserver.md +42 -0
- package/docs/reference/authoring-surface/type-namedsecret.md +4 -4
- package/docs/reference/authoring-surface/type-openbodydeclaration.md +1 -1
- package/docs/reference/authoring-surface/type-openbodyoutput.md +1 -1
- package/docs/reference/authoring-surface/type-poolnextinput.md +1 -1
- package/docs/reference/authoring-surface/type-poolspec.md +11 -6
- package/docs/reference/authoring-surface/type-pushoutput.md +1 -1
- package/docs/reference/authoring-surface/type-pushsourcespec.md +38 -0
- package/docs/reference/authoring-surface/type-readsourcespec.md +47 -0
- package/docs/reference/authoring-surface/type-reposlot.md +1 -1
- package/docs/reference/authoring-surface/type-reread.md +18 -0
- package/docs/reference/authoring-surface/type-runsconfig.md +41 -0
- package/docs/reference/authoring-surface/type-sender.md +26 -1
- package/docs/reference/authoring-surface/type-sendercallerfield.md +14 -0
- package/docs/reference/authoring-surface/type-size.md +1 -1
- package/docs/reference/authoring-surface/type-skip.md +19 -0
- package/docs/reference/authoring-surface/type-sourcehooks.md +23 -0
- package/docs/reference/authoring-surface/type-sourcein.md +25 -0
- package/docs/reference/authoring-surface/type-sourcereply.md +18 -0
- package/docs/reference/authoring-surface/type-sourcespec.md +16 -7
- package/docs/reference/authoring-surface/type-sourceverdict.md +49 -0
- package/docs/reference/authoring-surface/type-standingpoolmachine.md +12 -0
- package/docs/reference/authoring-surface/type-standingpoolspec.md +51 -0
- package/docs/reference/authoring-surface/type-steerargs.md +20 -0
- package/docs/reference/authoring-surface/type-thinkinglevel.md +1 -1
- package/docs/reference/authoring-surface/type-usercontainer.md +1 -1
- package/docs/reference/authoring-surface/type-workspaced.md +1 -1
- package/docs/reference/authoring-surface/type-worktreefound.md +3 -3
- package/docs/reference/authoring-surface/type-worktreeinput.md +1 -1
- package/docs/reference/authoring-surface/type-worktreeoptions.md +1 -1
- package/docs/reference/authoring-surface/type-worktreeoutput.md +1 -1
- package/docs/reference/authoring-surface/type-worktreepath.md +1 -1
- package/docs/reference/authoring-surface/type-worktreeready.md +1 -1
- package/docs/reference/authoring-surface/type-worktreerefused.md +4 -4
- package/docs/reference/authoring-surface/workspace.md +1 -1
- package/docs/reference/authoring-surface/worktree.md +1 -1
- package/docs/reference/authoring-surface.md +88 -167
- package/docs/reference/cli.md +413 -74
- package/docs/reference/config.md +235 -2
- package/docs/reference/decisions/0002-duplex-streaming-actor.md +71 -11
- package/docs/reference/decisions/0005-sandbox-pod-composition.md +14 -10
- package/docs/reference/decisions/0006-agent-control-surface.md +4 -4
- package/docs/reference/decisions/0007-durable-machine-state.md +1 -1
- package/docs/reference/decisions/0009-cli-and-instance-interface.md +150 -49
- package/docs/reference/decisions/0010-bdd-acceptance-tests.md +5 -3
- package/docs/reference/decisions/0011-workflow-defined-events.md +256 -12
- package/docs/reference/decisions/0012-workspace-wrapper-machine.md +9 -2
- package/docs/reference/decisions/0013-the-agent-reaches-its-machine-through-a-container-it-cannot-read.md +20 -14
- package/docs/reference/decisions/0014-observation-is-open-run-state-is-not.md +53 -27
- package/docs/reference/decisions/0015-authoring-surface-absorbs-the-mechanism.md +18 -14
- package/docs/reference/decisions/0017-pool-over-a-source-port.md +226 -12
- package/docs/reference/decisions/0018-instance-agents-are-definitions-jr2-assembles-the-harness.md +15 -7
- package/docs/reference/decisions/0019-one-converging-command-against-the-current-context.md +32 -18
- package/docs/reference/decisions/0021-workspace-continuity-is-a-lease-that-answers-back.md +14 -1
- package/docs/reference/decisions/0022-observation-is-a-level-triggered-feed.md +4 -4
- package/docs/reference/decisions/0023-the-harness-prints-the-conversation.md +116 -34
- package/docs/reference/decisions/0024-an-agents-turn-ends-with-the-state-that-asked-for-it.md +38 -37
- package/docs/reference/decisions/0025-cancel-ends-a-run-stop-parks-it.md +10 -5
- package/docs/reference/decisions/0027-the-harness-is-jr2s-own-server-flue-retires-the-wire-stays.md +7 -6
- package/docs/reference/decisions/0028-what-an-agent-may-do-to-the-workspace-is-part-of-its-definition.md +23 -7
- package/docs/reference/decisions/0029-a-menu-is-fixed-for-a-conversation-and-a-turn-is-told-its-allowed-picks.md +18 -10
- package/docs/reference/decisions/0030-a-snapshot-names-the-machine-it-was-written-under.md +3 -2
- package/docs/reference/decisions/0031-menu-only-agents-run-on-the-instance-harness.md +23 -18
- package/docs/reference/decisions/0032-the-console-unlocks-with-a-callers-credential.md +101 -0
- package/docs/reference/decisions/0033-a-machine-declares-the-input-that-starts-it.md +4 -3
- package/docs/reference/decisions/0034-the-console-renders-with-preact-and-the-server-erases-the-types.md +6 -6
- package/docs/reference/decisions/0037-an-instance-builds-its-sandbox-images-jr2-injects-the-harness.md +5 -4
- package/docs/reference/decisions/0049-a-machine-carries-its-parts-and-composes-by-invoke.md +19 -19
- package/docs/reference/decisions/0050-what-code-names-config-declares-what-the-cli-names-discovery-finds.md +6 -1
- package/docs/reference/decisions/0054-the-kit-ships-machines-and-a-shipped-machine-leaves-its-parts-open.md +55 -40
- package/docs/reference/decisions/0055-a-release-is-a-pushed-tag-and-the-publish-guard-is-the-credential.md +14 -13
- package/docs/reference/decisions/0057-a-turn-is-its-frame-its-dials-and-whether-it-continues.md +7 -0
- package/docs/reference/decisions/0058-a-harness-answers-the-orchestrator-alone.md +13 -7
- package/docs/reference/decisions/0059-a-harness-holds-stand-ins-and-the-custodian-holds-the-keys.md +38 -30
- package/docs/reference/decisions/0062-jr2-briefs-the-agent-on-its-seat-never-on-its-task.md +64 -17
- package/docs/reference/decisions/0063-the-orchestrator-watches-the-cluster.md +2 -1
- package/docs/reference/decisions/0064-a-workspace-waits-for-capacity.md +2 -2
- package/docs/reference/decisions/0065-a-persist-survives-a-crash-and-history-is-kept-for-a-set-time.md +109 -0
- package/docs/reference/decisions/0066-a-model-tier-runs-a-real-model-and-a-change-to-what-it-reads-runs-the-tier.md +51 -23
- package/docs/reference/decisions/0067-an-effect-is-an-actor-slot-and-runs-at-most-once-unless-marked-idempotent.md +94 -54
- package/docs/reference/decisions/0068-an-effector-holds-an-effects-secrets-and-signs-its-wire.md +101 -47
- package/docs/reference/decisions/0069-the-orchestrator-is-a-kit-image-and-an-instance-publishes-its-assembly.md +32 -9
- package/docs/reference/decisions/0070-a-machine-lends-its-parts-to-a-chart.md +17 -13
- package/docs/reference/decisions/0071-a-run-starts-a-run-through-a-dispatch-effect.md +56 -30
- package/docs/reference/decisions/0072-the-docs-ship-inside-the-kit-and-an-instances-agents-md-indexes-them.md +35 -25
- package/docs/reference/decisions/0075-a-machine-cuts-a-worktree-and-the-workspace-only-clones.md +4 -3
- package/docs/reference/decisions/0076-an-agents-control-credential-lives-only-where-no-workspace-code-runs.md +37 -10
- package/docs/reference/decisions/0078-a-caller-comes-from-one-authenticator-seam-and-acts-within-its-scopes.md +285 -0
- package/docs/reference/decisions/0079-an-agent-holds-mcp-tools-a-machine-calls-them-as-an-effect-and-the-machine-is-the-approval.md +198 -0
- package/docs/reference/decisions.md +6 -4
- package/docs/reference/glossary.md +96 -42
- package/docs/reference/hooks.md +1077 -0
- package/docs/reference/http-api.md +976 -149
- package/docs/why.md +2 -1
- package/package.json +10 -3
- package/src/actor.ts +36 -10
- package/src/agent.ts +50 -0
- package/src/assembly-checks.ts +530 -4
- package/src/callers.ts +245 -0
- package/src/chart.ts +52 -7
- package/src/config.ts +550 -1
- package/src/conversations.ts +453 -0
- package/src/custodian.ts +8 -2
- package/src/customize.ts +143 -4
- package/src/dispatch-effect.ts +142 -26
- package/src/durability.ts +2 -0
- package/src/duration.ts +20 -0
- package/src/effect-checks.ts +2 -1
- package/src/effect.ts +60 -7
- package/src/effector-wire.ts +272 -27
- package/src/gate-brand.ts +16 -0
- package/src/gate.ts +634 -48
- package/src/harness-client.ts +10 -4
- package/src/held-secrets.ts +72 -23
- package/src/holds.ts +2 -2
- package/src/hook-kinds/discord.ts +92 -0
- package/src/hook-kinds/door.ts +107 -0
- package/src/hook-kinds/github.ts +89 -0
- package/src/hook-kinds/gitlab.ts +72 -0
- package/src/hook-kinds/hook.ts +7 -0
- package/src/hook-kinds/index.ts +465 -0
- package/src/hook-kinds/slack.ts +151 -0
- package/src/hook-kinds/webhook.ts +113 -0
- package/src/hooks.ts +506 -0
- package/src/http-effect.ts +76 -38
- package/src/http.ts +889 -94
- package/src/index.ts +16 -5
- package/src/instance.ts +196 -26
- package/src/internal.ts +22 -3
- package/src/machine-doc.ts +26 -1
- package/src/mcp-effect.ts +424 -0
- package/src/mount-digest.ts +41 -7
- package/src/names.ts +64 -2
- package/src/notices.ts +138 -10
- package/src/open-body.ts +25 -11
- package/src/open-effect.ts +17 -4
- package/src/open.ts +4 -2
- package/src/parts.ts +87 -9
- package/src/party.ts +2 -1
- package/src/pick.ts +2 -2
- package/src/pool.ts +1142 -163
- package/src/registration.ts +203 -13
- package/src/run-host.ts +1509 -171
- package/src/run-list.ts +191 -0
- package/src/sandbox-kube.ts +53 -5
- package/src/secret-placement.ts +239 -33
- package/src/server.ts +53 -4
- package/src/setup.ts +72 -32
- package/src/snapshot-store.ts +565 -48
- package/src/steer.ts +111 -0
- package/src/stub-harness.ts +6 -2
- package/src/tokens.ts +263 -22
- package/src/wire.ts +17 -0
- package/src/workspace.ts +50 -6
- package/src/worktree.ts +3 -3
- package/docs/reference/decisions/0032-the-console-unlocks-with-the-instance-token.md +0 -61
- package/docs/reference/decisions/0065-a-persist-survives-a-crash-and-history-is-a-week.md +0 -65
|
@@ -70,8 +70,8 @@ _Avoid_: agent (unqualified), coding agent (a `coder` Agent codes too), copilot,
|
|
|
70
70
|
|
|
71
71
|
**Console**:
|
|
72
72
|
The browser surface that the Orchestrator serves, where a person sees the Workflows, their runs and their Machines.
|
|
73
|
-
Observation needs no token;
|
|
74
|
-
open Gates.
|
|
73
|
+
Observation needs no token; a Caller's credential unlocks the control that its scopes allow, so that a person can start
|
|
74
|
+
runs and see and answer the open Gates.
|
|
75
75
|
_Avoid_: visualizer (only one panel of it), dashboard, UI (unqualified), viz
|
|
76
76
|
|
|
77
77
|
<a id="kit-image"></a>
|
|
@@ -147,9 +147,9 @@ _Avoid_: agent actor
|
|
|
147
147
|
<a id="agent"></a>
|
|
148
148
|
|
|
149
149
|
**Agent**:
|
|
150
|
-
A configured worker, such as a coder or a reviewer: a model, instructions, Working tools and access to the
|
|
151
|
-
It is a data definition that a Machine carries in a named Actor slot, so its name is the slot's name and its
|
|
152
|
-
that Machine; a Turn can set its Dials but never its identity.
|
|
150
|
+
A configured worker, such as a coder or a reviewer: a model, instructions, Working tools, MCP tools and access to the
|
|
151
|
+
Workspace. It is a data definition that a Machine carries in a named Actor slot, so its name is the slot's name and its
|
|
152
|
+
scope is that Machine; a Turn can set its Dials but never its identity.
|
|
153
153
|
_Avoid_: role, persona, roster entry
|
|
154
154
|
|
|
155
155
|
<a id="dials"></a>
|
|
@@ -219,11 +219,38 @@ _Avoid_: origin, Caller (the holder of the credential behind a Gate's answer)
|
|
|
219
219
|
|
|
220
220
|
**Caller**:
|
|
221
221
|
The holder of a credential that acts on an Instance from outside its Machines, such as a person, a CI job or a bridge
|
|
222
|
-
to a chat service: it starts a run, answers a Gate or cancels a run. A Caller can act
|
|
223
|
-
but that is the Caller's claim, which jr2 does not check
|
|
222
|
+
to a chat service: it starts a run, answers a Gate, sends a **Steering message** or cancels a run. A Caller can act
|
|
223
|
+
**on behalf of** another party, but that is the Caller's claim, which jr2 does not check, except where a **Hook**'s
|
|
224
|
+
signature covers it.
|
|
224
225
|
_Avoid_: principal (it brings policies and roles that an Instance does not have), user (a CI job is a Caller), actor
|
|
225
226
|
(xstate's word), Sender (a party inside the run)
|
|
226
227
|
|
|
228
|
+
<a id="steering-message"></a>
|
|
229
|
+
|
|
230
|
+
**Steering message**:
|
|
231
|
+
Free text that a Caller, or the Machine, sends to one Agent of a run, named by its slot, which the Agent hears once,
|
|
232
|
+
without an interrupt. A Caller's is an instruction from outside the run; the Machine's can carry what another Agent said, which is
|
|
233
|
+
a peer's word, not an instruction. It is not a fact from jr2, and it is not a pick.
|
|
234
|
+
_Avoid_: steer (as a noun), notice (a fact that jr2 knows and the Agent cannot find), prompt (the Turn's, from the
|
|
235
|
+
Machine), interrupt (`abort` is the terminal act)
|
|
236
|
+
|
|
237
|
+
<a id="hook"></a>
|
|
238
|
+
|
|
239
|
+
**Hook**:
|
|
240
|
+
An Instance's door, at a stable address, for one outside service that sends it deliveries, such as a forge or an alert
|
|
241
|
+
service. A Hook checks that a delivery is the service's and decides nothing: it is a Caller that can only answer a Gate
|
|
242
|
+
or bring items to a Source. Its Hook kind, such as `github` or `slack`, is the service's protocol.
|
|
243
|
+
_Avoid_: webhook (the service's request, not the door), endpoint, trigger, listener, subscription, intake; not an engine
|
|
244
|
+
hook or a git hook
|
|
245
|
+
|
|
246
|
+
<a id="hook-kind"></a>
|
|
247
|
+
|
|
248
|
+
**Hook kind**:
|
|
249
|
+
One outside service's protocol, as code that an Instance imports: what the service signed, how to read a delivery and
|
|
250
|
+
its payloads, the service's handshake, and the envelope of an answer that a person reads. It never holds a secret, and
|
|
251
|
+
one kind serves every Hook of that service.
|
|
252
|
+
_Avoid_: plugin, adapter (a Source's word), integration, driver
|
|
253
|
+
|
|
227
254
|
<a id="emit"></a>
|
|
228
255
|
|
|
229
256
|
**Emit**:
|
|
@@ -234,9 +261,9 @@ _Avoid_: event (what a Gate or an Agent delivers), log (not a diagnostic)
|
|
|
234
261
|
<a id="effect"></a>
|
|
235
262
|
|
|
236
263
|
**Effect**:
|
|
237
|
-
Work that a Machine does outside itself: it runs a command, calls a URL,
|
|
238
|
-
an Effect started is **dispatched by** the run that started it, and the two are independent:
|
|
239
|
-
nested Machine, never a dispatched run.
|
|
264
|
+
Work that a Machine does outside itself: it runs a command, calls a URL, calls an MCP server, pushes a branch
|
|
265
|
+
or starts a run. A run that an Effect started is **dispatched by** the run that started it, and the two are independent:
|
|
266
|
+
an in-run child is a nested Machine, never a dispatched run.
|
|
240
267
|
_Avoid_: action (xstate's word), side effect, job, task, step, operation, errand, tool; sub-run, child run, nested run,
|
|
241
268
|
spawned run (a dispatched run is a run of its own)
|
|
242
269
|
|
|
@@ -244,8 +271,9 @@ spawned run (a dispatched run is a run of its own)
|
|
|
244
271
|
|
|
245
272
|
**Open**:
|
|
246
273
|
A part that a Machine declares but does not bind, so that its composer binds it: for example, a Repo Slot with no url,
|
|
247
|
-
an Agent with no model, or an Effect with no url, program or secret. It is the shape that a
|
|
248
|
-
`jr2 up` refuses an Open part that nobody bound, and a run never sees one, except an Open
|
|
274
|
+
an Agent with no model, or an Effect with no url, program, MCP server or tool, or secret. It is the shape that a
|
|
275
|
+
packaged Machine ships in, `jr2 up` refuses an Open part that nobody bound, and a run never sees one, except an Open
|
|
276
|
+
body, which a run binds, and a Gate's Open look, about which `jr2 up` only warns.
|
|
249
277
|
_Avoid_: unset, default (an Open part has none), placeholder
|
|
250
278
|
|
|
251
279
|
<a id="open-body"></a>
|
|
@@ -283,6 +311,13 @@ _Avoid_: template, expression, interpolation, variable, placeholder (the `{{ }}`
|
|
|
283
311
|
|
|
284
312
|
### Turns and conversations
|
|
285
313
|
|
|
314
|
+
<a id="conversation"></a>
|
|
315
|
+
|
|
316
|
+
**Conversation**:
|
|
317
|
+
One Agent's exchange with its model, from its first Turn to its end: the prompts, the model's words, its tool calls and
|
|
318
|
+
their results. An Instance ID names it, and one conversation spans one or more Turns.
|
|
319
|
+
_Avoid_: session, transcript, chat, log
|
|
320
|
+
|
|
286
321
|
<a id="turn"></a>
|
|
287
322
|
|
|
288
323
|
**Turn**:
|
|
@@ -336,8 +371,9 @@ _Avoid_: result, status
|
|
|
336
371
|
**Sweep**:
|
|
337
372
|
The Turn's sweep: the Orchestrator's end of an Agent's Submissions when the state that asked for the Turn stops
|
|
338
373
|
waiting. It settles the running Submission and every one queued behind it. It says how the Turn ended: by the Turn's
|
|
339
|
-
own pick, or by something else.
|
|
340
|
-
"swept N image(s)"),
|
|
374
|
+
own pick, or by something else. Other sweeps are not this one: the image sweep of `jr2 up` (ADR-0039,
|
|
375
|
+
"swept N image(s)"), the Repo sweep of `jr2 gc` (ADR-0051), and the run sweep of the Orchestrator, which deletes the
|
|
376
|
+
ended runs older than `runs.retain` and, when the state volume is more than 80% full, the oldest kept conversations (ADR-0065).
|
|
341
377
|
_Avoid_: abort (the wire's route, not the act), cancel (the end of a run)
|
|
342
378
|
|
|
343
379
|
<a id="runaway"></a>
|
|
@@ -351,7 +387,7 @@ _Avoid_: degeneration (the model behavior, not the fault class), loop, hang, sta
|
|
|
351
387
|
|
|
352
388
|
**step**:
|
|
353
389
|
One tool call of a model answer that the engine starts while a Turn is live, whether or not it runs: a call of a
|
|
354
|
-
Working tool or a pick, a call of an unknown tool or with invalid arguments, a pick that the Harness blocks as the
|
|
390
|
+
Working tool, of an MCP tool or a pick, a call of an unknown tool or with invalid arguments, a pick that the Harness blocks as the
|
|
355
391
|
second pick of its model answer, each call of a model answer that hit the output limit, and the call that trips the
|
|
356
392
|
Runaway watch. A call after a pick that ended the Turn is not a step. The Harness counts steps to find a Runaway. A
|
|
357
393
|
**step boundary** is the point after a model answer and the results of all its calls, and before the next model
|
|
@@ -423,10 +459,20 @@ re-prompt of an open Turn)
|
|
|
423
459
|
|
|
424
460
|
**Working tools**:
|
|
425
461
|
The file and shell tools that the Harness runs in its own container: what an Agent may do, as its Menu is what it may
|
|
426
|
-
say. Every program that they run, and their file I/O, is confined, so it cannot reach what the Harness itself holds. The
|
|
427
|
-
the Workspace decides which of them it gets, and a Menu-only Agent gets none.
|
|
462
|
+
say. Every program that they run, and their file I/O, is confined, so it cannot reach what the Harness itself holds. The
|
|
463
|
+
Agent's access to the Workspace decides which of them it gets, and a Menu-only Agent gets none.
|
|
428
464
|
_Avoid_: tools (unqualified), sandbox tools
|
|
429
465
|
|
|
466
|
+
<a id="mcp-tools"></a>
|
|
467
|
+
|
|
468
|
+
**MCP tools**:
|
|
469
|
+
The tools of the MCP servers that an Agent's definition names: what an Agent may do through a service, beside its
|
|
470
|
+
Working tools and its Menu. The Instance's config declares each server by a name of the author's, and the Agent names
|
|
471
|
+
the servers and, for a remote server, the tools that it may call. They are fixed for a conversation, and a call to one
|
|
472
|
+
is never a pick. A call that needs a person's approval is not made with an MCP tool: the Machine makes it as an Effect,
|
|
473
|
+
after a Gate.
|
|
474
|
+
_Avoid_: connector, plugin, integration, extension, tools (unqualified)
|
|
475
|
+
|
|
430
476
|
### Sandboxes, Harnesses and secrets
|
|
431
477
|
|
|
432
478
|
<a id="sandbox"></a>
|
|
@@ -439,9 +485,9 @@ _Avoid_: worker pod, container
|
|
|
439
485
|
<a id="harness"></a>
|
|
440
486
|
|
|
441
487
|
**Harness**:
|
|
442
|
-
jr2's own long-running server that hosts the conversations of Agents and executes their Working tools
|
|
443
|
-
and once per Instance as the Instance Harness. It holds no Agent of its own: each Submission
|
|
444
|
-
that it runs.
|
|
488
|
+
jr2's own long-running server that hosts the conversations of Agents and executes their Working tools and calls their
|
|
489
|
+
MCP tools, in every Sandbox and once per Instance as the Instance Harness. It holds no Agent of its own: each Submission
|
|
490
|
+
carries the definition that it runs.
|
|
445
491
|
_Avoid_: flue agent, server, `local()`
|
|
446
492
|
|
|
447
493
|
<a id="engine"></a>
|
|
@@ -472,9 +518,10 @@ firewall
|
|
|
472
518
|
<a id="held-secret"></a>
|
|
473
519
|
|
|
474
520
|
**Held secret**:
|
|
475
|
-
A credential that the Harness uses through its pod's Custodian but never holds: a model API key above all,
|
|
476
|
-
Sandbox tokens. The Harness holds only its Stand-in, so no Agent can take the
|
|
477
|
-
spend it through the Custodian, while the pod lives, only when its Workspace
|
|
521
|
+
A credential that the Harness uses through its pod's Custodian but never holds: a model API key above all, the token of
|
|
522
|
+
an MCP server that an Agent names, and the Sandbox tokens. The Harness holds only its Stand-in, so no Agent can take the
|
|
523
|
+
secret out of the pod. Workspace code can spend it through the Custodian, while the pod lives, only when its Workspace
|
|
524
|
+
grants that secret.
|
|
478
525
|
_Avoid_: masked secret, injected secret, proxied key, secret (unqualified)
|
|
479
526
|
|
|
480
527
|
<a id="stand-in"></a>
|
|
@@ -499,29 +546,32 @@ _Avoid_: pod token, agent token, slot token, Instance token (the Caller's creden
|
|
|
499
546
|
|
|
500
547
|
**Workspace code**:
|
|
501
548
|
Each process in a Sandbox whose program or input comes from the Workspace's shared files: what an Agent's Working tools
|
|
502
|
-
run, tests and builds, git and what a repository's own config makes it run, and a command that a
|
|
503
|
-
Agent can run what another Agent wrote, so jr2 trusts none of it, and no credential that acts
|
|
504
|
-
Workspace code runs.
|
|
549
|
+
run, tests and builds, git and what a repository's own config makes it run, a stdio MCP server, and a command that a
|
|
550
|
+
Machine runs there. Any Agent can run what another Agent wrote, so jr2 trusts none of it, and no credential that acts
|
|
551
|
+
for an Agent is where Workspace code runs.
|
|
505
552
|
_Avoid_: agent code (any Agent can run another's), user code, untrusted code (unqualified), tool process
|
|
506
553
|
|
|
507
554
|
<a id="check-pod"></a>
|
|
508
555
|
|
|
509
556
|
**Check pod**:
|
|
510
|
-
The one-shot pod in which the provider preflight of `jr2 up` checks the models of one class of Harness pod,
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
557
|
+
The one-shot pod in which the provider preflight of `jr2 up` checks the models of one class of Harness pod, and the tool
|
|
558
|
+
list of each remote MCP server that an Agent of the class names, before the converge writes an object that the Instance
|
|
559
|
+
reads. It has a Custodian, its own copies of the objects that it reads, and labels that no Harness pod has. Its check
|
|
560
|
+
container calls each model as a Turn calls it. The preflight is the step of `jr2 up`, and a check is what the check
|
|
561
|
+
container does for one model: one call, and at most a second one after an answer in text; for an MCP server, it reads
|
|
562
|
+
its tool list once through the Custodian. `jr2 check` is not this check: it runs the typecheck and the Machine walk of
|
|
563
|
+
`jr2 up`, with no pod and no cluster.
|
|
516
564
|
_Avoid_: probe, probe pod, preflight pod, test pod, Harness (it runs none)
|
|
517
565
|
|
|
518
566
|
<a id="effector"></a>
|
|
519
567
|
|
|
520
568
|
**Effector**:
|
|
521
|
-
The container where jr2's own process
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
569
|
+
The container where jr2's own process holds the secrets that the Orchestrator must not hold and makes the calls to the
|
|
570
|
+
outside that jr2 makes for a Machine or a Hook, and where the Agent executes nothing: a Sandbox Effector or the Instance
|
|
571
|
+
Effector. It serves a Machine's Effects and, in the Instance Effector, the Hook door, and it knows no Hook kind or
|
|
572
|
+
service. Every Effect runs in it except a command that names no secret, which runs beside the Agent, and a dispatch that
|
|
573
|
+
names no target, which runs in the Orchestrator's own process; a command that runs in it sees a pinned commit, never the
|
|
574
|
+
live Worktree.
|
|
525
575
|
_Avoid_: Courier, Actuator, Clerk, machine container, tool image
|
|
526
576
|
|
|
527
577
|
<a id="sandbox-effector"></a>
|
|
@@ -536,7 +586,9 @@ _Avoid_: sidecar, worker, runner
|
|
|
536
586
|
|
|
537
587
|
**Instance Effector**:
|
|
538
588
|
The Effector as a stateless pod of its own, one per Instance, for an Effect that calls a URL and reads no Worktree file,
|
|
539
|
-
|
|
589
|
+
for an Effect that calls an MCP server, for a dispatch that starts a run on another Orchestrator, and for the Hook
|
|
590
|
+
door's two operations: it checks an HMAC with a Hook's secret, which the Orchestrator never holds, and makes the door's
|
|
591
|
+
one call out.
|
|
540
592
|
_Avoid_: sidecar, worker, runner
|
|
541
593
|
|
|
542
594
|
<a id="effect-secret"></a>
|
|
@@ -549,7 +601,7 @@ _Avoid_: secret (unqualified), injected secret
|
|
|
549
601
|
<a id="sandbox-image"></a>
|
|
550
602
|
|
|
551
603
|
**Sandbox Image**:
|
|
552
|
-
The user-owned image that a Sandbox's Harness runs in: the tools that the Agent's Working tools can reach, and the shell
|
|
604
|
+
The user-owned image that a Sandbox's Harness runs in: the tools that the Agent's Working tools can reach, the program of each stdio MCP server, and the shell
|
|
553
605
|
that a human gets where the Harness runs. A Workspace names it as a fact of its Machine, built by `jr2 up` or brought
|
|
554
606
|
from a registry, and it carries no part of jr2.
|
|
555
607
|
_Avoid_: workspace image (a Workspace is a Machine; the image is the pod's), agent image, harness image (the kit's own),
|
|
@@ -588,15 +640,17 @@ _Avoid_: sidecar (its deployment shape), debug container (a one-off attach, not
|
|
|
588
640
|
|
|
589
641
|
**Source**:
|
|
590
642
|
The port from which a Pool gets its work items. A queue, a generator or a re-queried set can be a Source, and a Work
|
|
591
|
-
Source is one Source adapter.
|
|
643
|
+
Source is one Source adapter. A Source can pull (read its set again) and be pushed (hear a Hook, which either tells it to
|
|
644
|
+
read again or carries an item to it); when it can read, the read is the truth.
|
|
592
645
|
_Avoid_: queue (one possible backing, and not FIFO), feed
|
|
593
646
|
|
|
594
647
|
<a id="pool"></a>
|
|
595
648
|
|
|
596
649
|
**Pool**:
|
|
597
|
-
The Machine that the kit supplies to run one worker
|
|
598
|
-
|
|
599
|
-
|
|
650
|
+
The Machine that the kit supplies to run one worker for each Source item, with a limit on how many run at the same
|
|
651
|
+
time. A worker is a child Machine inside the Pool's run, or a run of another Workflow that the Pool dispatches. A Pool
|
|
652
|
+
of runs can be **standing**: jr2 keeps it live for the Instance, and it parks when it has no work instead of ending.
|
|
653
|
+
_Avoid_: scheduler, work loop, intake, router
|
|
600
654
|
|
|
601
655
|
<a id="work-source"></a>
|
|
602
656
|
|