@jr2/orchestrator 0.5.1 → 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 +142 -29
- package/docs/concepts/architecture.md +60 -34
- package/docs/concepts/callers-and-hooks.md +205 -0
- package/docs/concepts/charts.md +13 -8
- package/docs/concepts/composition.md +10 -1
- package/docs/concepts/converge.md +7 -2
- package/docs/concepts/durable-runs.md +43 -16
- package/docs/concepts/effects.md +133 -50
- package/docs/concepts/gates.md +95 -25
- package/docs/concepts/machines-and-workflows.md +14 -4
- package/docs/concepts/pools-and-sources.md +193 -17
- package/docs/concepts/secrets-and-trust.md +186 -62
- package/docs/concepts/the-menu.md +14 -0
- package/docs/concepts/workspaces.md +135 -56
- package/docs/get-started/a-model-decides.md +14 -13
- package/docs/get-started/an-agent-in-a-sandbox.md +46 -35
- package/docs/get-started/connect-a-model.md +1 -1
- package/docs/get-started/create-an-instance.md +17 -14
- package/docs/get-started/have-your-assistant-write-a-machine.md +111 -40
- package/docs/get-started/install.md +4 -0
- package/docs/guides/add-tools-to-the-sandbox.md +72 -15
- 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 +29 -12
- 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/cut-a-worktree.md +560 -0
- package/docs/guides/fix-a-failed-converge.md +19 -7
- 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 +14 -7
- package/docs/guides/look-inside-a-sandbox.md +115 -42
- package/docs/guides/move-from-kind-to-a-shared-cluster.md +16 -0
- package/docs/guides/open-the-console.md +63 -14
- package/docs/guides/push-and-sign-a-branch.md +67 -21
- package/docs/guides/read-a-conversation.md +225 -0
- package/docs/guides/run-a-chart-by-name.md +17 -16
- package/docs/guides/run-a-command-or-call-a-url.md +84 -41
- package/docs/guides/run-one-worker-per-item.md +34 -27
- package/docs/guides/set-an-agents-access-and-dials.md +69 -22
- package/docs/guides/size-a-workspace.md +19 -6
- 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 +7 -1
- package/docs/guides/watch-a-run.md +146 -117
- 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 +18 -8
- package/docs/llms.txt +110 -23
- package/docs/reference/authoring-surface/agent.md +35 -12
- package/docs/reference/authoring-surface/answer.md +20 -4
- package/docs/reference/authoring-surface/arg.md +28 -6
- 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 +15 -0
- 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 +37 -22
- 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 +18 -5
- package/docs/reference/authoring-surface/file.md +37 -17
- 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 +109 -9
- package/docs/reference/authoring-surface/isfailure.md +1 -1
- package/docs/reference/authoring-surface/isready.md +14 -0
- package/docs/reference/authoring-surface/jr2setup.md +14 -4
- package/docs/reference/authoring-surface/mcp.md +107 -0
- package/docs/reference/authoring-surface/open.md +41 -8
- package/docs/reference/authoring-surface/openbody.md +1 -1
- package/docs/reference/authoring-surface/paramsof.md +23 -5
- package/docs/reference/authoring-surface/pool.md +79 -11
- package/docs/reference/authoring-surface/push.md +31 -13
- package/docs/reference/authoring-surface/readyof.md +21 -0
- package/docs/reference/authoring-surface/reread.md +19 -0
- package/docs/reference/authoring-surface/secret.md +26 -5
- 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 +59 -4
- 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 +16 -3
- package/docs/reference/authoring-surface/type-agentmcpserver.md +54 -0
- package/docs/reference/authoring-surface/type-agentslots.md +4 -1
- package/docs/reference/authoring-surface/type-anyframepath.md +14 -0
- package/docs/reference/authoring-surface/type-anyworktreepath.md +15 -0
- package/docs/reference/authoring-surface/type-bindactors.md +14 -0
- package/docs/reference/authoring-surface/type-binding.md +6 -7
- 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-commandinput.md +4 -3
- package/docs/reference/authoring-surface/type-commandoptions.md +0 -22
- package/docs/reference/authoring-surface/type-commandoutput.md +23 -5
- package/docs/reference/authoring-surface/type-customize.md +20 -3
- 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 +9 -2
- package/docs/reference/authoring-surface/type-doorlessinput.md +19 -0
- package/docs/reference/authoring-surface/type-effectbinding.md +12 -2
- package/docs/reference/authoring-surface/type-filebody.md +4 -8
- package/docs/reference/authoring-surface/type-framepath.md +14 -0
- 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 +3 -5
- package/docs/reference/authoring-surface/type-httpdefinition.md +6 -3
- package/docs/reference/authoring-surface/type-httpfileinput.md +20 -0
- package/docs/reference/authoring-surface/type-httpoutput.md +8 -2
- package/docs/reference/authoring-surface/type-jr2config.md +37 -2
- package/docs/reference/authoring-surface/type-lateroutcome.md +21 -0
- 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-namestart.md +77 -0
- package/docs/reference/authoring-surface/type-noslotworkspaceoptions.md +1 -6
- package/docs/reference/authoring-surface/type-notworktreekeys.md +12 -0
- 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-opencommandinput.md +7 -2
- package/docs/reference/authoring-surface/type-permissivenoslotworkspaceoptions.md +1 -6
- package/docs/reference/authoring-surface/type-permissiveworkspaceoptions.md +5 -10
- package/docs/reference/authoring-surface/type-poolnextinput.md +22 -0
- package/docs/reference/authoring-surface/type-poolspec.md +11 -6
- package/docs/reference/authoring-surface/type-pushinput.md +22 -3
- package/docs/reference/authoring-surface/type-pushoutput.md +33 -8
- 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 +6 -6
- 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-sandboxoptions.md +11 -4
- 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-slothandles.md +5 -13
- 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 +26 -17
- 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 +30 -9
- package/docs/reference/authoring-surface/type-workspacehandles.md +5 -6
- package/docs/reference/authoring-surface/type-workspaceoptions.md +1 -13
- package/docs/reference/authoring-surface/type-worktreefound.md +16 -0
- package/docs/reference/authoring-surface/type-worktreeinput.md +56 -0
- package/docs/reference/authoring-surface/type-worktreekey.md +14 -0
- package/docs/reference/authoring-surface/type-worktreeoptions.md +29 -0
- package/docs/reference/authoring-surface/type-worktreeoutput.md +45 -0
- package/docs/reference/authoring-surface/type-worktreepath.md +16 -0
- package/docs/reference/authoring-surface/type-worktreeready.md +37 -0
- package/docs/reference/authoring-surface/type-worktreerefused.md +21 -0
- package/docs/reference/authoring-surface/workspace.md +66 -38
- package/docs/reference/authoring-surface/worktree.md +71 -0
- package/docs/reference/authoring-surface.md +88 -147
- package/docs/reference/cli.md +413 -74
- package/docs/reference/config.md +248 -6
- package/docs/reference/decisions/0001-operator-owned-generic-sandbox.md +10 -9
- package/docs/reference/decisions/0002-duplex-streaming-actor.md +81 -14
- package/docs/reference/decisions/0004-worktree-provisioning-model.md +27 -21
- package/docs/reference/decisions/0005-sandbox-pod-composition.md +39 -25
- package/docs/reference/decisions/0006-agent-control-surface.md +6 -3
- 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 +39 -32
- package/docs/reference/decisions/0013-the-agent-reaches-its-machine-through-a-container-it-cannot-read.md +54 -30
- 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 +26 -16
- package/docs/reference/decisions/0016-agent-turn-mechanics-are-internal.md +9 -7
- package/docs/reference/decisions/0017-pool-over-a-source-port.md +226 -10
- 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 +53 -27
- package/docs/reference/decisions/0021-workspace-continuity-is-a-lease-that-answers-back.md +16 -2
- 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 +124 -43
- package/docs/reference/decisions/0024-an-agents-turn-ends-with-the-state-that-asked-for-it.md +36 -38
- 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 +16 -7
- package/docs/reference/decisions/0028-what-an-agent-may-do-to-the-workspace-is-part-of-its-definition.md +36 -19
- 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 -15
- 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 +22 -22
- 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 +13 -12
- package/docs/reference/decisions/0049-a-machine-carries-its-parts-and-composes-by-invoke.md +23 -23
- package/docs/reference/decisions/0050-what-code-names-config-declares-what-the-cli-names-discovery-finds.md +6 -1
- package/docs/reference/decisions/0051-a-repo-is-a-slot-on-the-workspace-and-a-cache-on-the-node.md +57 -46
- package/docs/reference/decisions/0052-a-sandbox-lands-where-an-ordinary-pod-lands-and-the-cache-follows-it.md +5 -0
- package/docs/reference/decisions/0053-a-fetch-inside-the-pod-asks-the-node-cache-and-the-cache-asks-the-remote.md +20 -8
- 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 +31 -24
- package/docs/reference/decisions/0058-a-harness-answers-the-orchestrator-alone.md +18 -10
- package/docs/reference/decisions/0059-a-harness-holds-stand-ins-and-the-custodian-holds-the-keys.md +137 -86
- package/docs/reference/decisions/0062-jr2-briefs-the-agent-on-its-seat-never-on-its-task.md +165 -91
- package/docs/reference/decisions/0063-the-orchestrator-watches-the-cluster.md +7 -7
- 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 +53 -23
- package/docs/reference/decisions/0067-an-effect-is-an-actor-slot-and-runs-at-most-once-unless-marked-idempotent.md +221 -153
- package/docs/reference/decisions/0068-an-effector-holds-an-effects-secrets-and-signs-its-wire.md +161 -96
- 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 +48 -33
- 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/0073-a-machine-fails-a-run-with-fail-and-an-uncaught-failure-ends-it-failed.md +1 -1
- package/docs/reference/decisions/0075-a-machine-cuts-a-worktree-and-the-workspace-only-clones.md +296 -0
- package/docs/reference/decisions/0076-an-agents-control-credential-lives-only-where-no-workspace-code-runs.md +347 -0
- package/docs/reference/decisions/0077-jr2-requires-landlock-on-every-sandbox-node.md +79 -0
- 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 +9 -4
- package/docs/reference/glossary.md +138 -45
- package/docs/reference/hooks.md +1077 -0
- package/docs/reference/http-api.md +988 -123
- package/docs/reference/machines.md +0 -1
- package/docs/why.md +7 -5
- package/package.json +10 -3
- package/src/actor.ts +194 -42
- package/src/agent.ts +56 -6
- package/src/ambient.ts +3 -5
- package/src/assembly-checks.ts +530 -4
- package/src/callers.ts +245 -0
- package/src/chart.ts +238 -26
- package/src/charts.ts +9 -2
- package/src/config.ts +566 -7
- package/src/conversations.ts +453 -0
- package/src/custodian.lua +17 -5
- package/src/custodian.ts +257 -77
- package/src/customize.ts +154 -7
- package/src/dispatch-effect.ts +142 -26
- package/src/durability.ts +2 -0
- package/src/duration.ts +20 -0
- package/src/effect-checks.ts +52 -4
- package/src/effect.ts +401 -132
- package/src/effector-wire.ts +278 -30
- package/src/fail.ts +17 -4
- package/src/gate-brand.ts +16 -0
- package/src/gate.ts +634 -48
- package/src/harness-client.ts +84 -35
- package/src/harness-env.ts +33 -0
- package/src/held-secrets.ts +197 -39
- package/src/holds.ts +5 -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 +164 -70
- package/src/http.ts +933 -99
- package/src/index.ts +30 -5
- package/src/instance.ts +196 -26
- package/src/internal.ts +23 -3
- package/src/kube-client.ts +6 -3
- package/src/machine-doc.ts +29 -5
- package/src/mcp-effect.ts +424 -0
- package/src/model-keys.ts +24 -0
- package/src/mount-digest.ts +41 -7
- package/src/names.ts +82 -7
- package/src/notices.ts +576 -59
- package/src/open-body.ts +110 -30
- package/src/open-effect.ts +17 -4
- package/src/open.ts +40 -7
- package/src/parts.ts +125 -35
- package/src/party.ts +35 -1
- package/src/pick.ts +43 -9
- package/src/pool.ts +1172 -172
- package/src/registration.ts +249 -17
- package/src/repo-identity.ts +7 -3
- package/src/repos.ts +20 -2
- package/src/run-host.ts +1614 -190
- package/src/run-list.ts +191 -0
- package/src/sandbox-effect.ts +217 -66
- package/src/sandbox-kube.ts +116 -21
- package/src/secret-placement.ts +248 -35
- package/src/server.ts +53 -4
- package/src/setup.ts +158 -38
- package/src/snapshot-store.ts +565 -48
- package/src/steer.ts +111 -0
- package/src/stub-harness.ts +6 -2
- package/src/tokens.ts +362 -46
- package/src/vocabulary.ts +23 -4
- package/src/wire.ts +27 -10
- package/src/workspace.ts +314 -259
- package/src/worktree.ts +249 -0
- package/docs/reference/authoring-surface/type-noslotspec.md +0 -26
- package/docs/reference/authoring-surface/type-workspacespec.md +0 -37
- 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>
|
|
@@ -213,7 +213,43 @@ _Avoid_: humanGate (humans are one caller among many), approval (one possible ev
|
|
|
213
213
|
**Sender**:
|
|
214
214
|
The party that delivered an event: an Agent or a Gate. Only the Orchestrator writes the Sender, on each event that a
|
|
215
215
|
party delivers, and the Machine's own events have none.
|
|
216
|
-
_Avoid_: origin,
|
|
216
|
+
_Avoid_: origin, Caller (the holder of the credential behind a Gate's answer)
|
|
217
|
+
|
|
218
|
+
<a id="caller"></a>
|
|
219
|
+
|
|
220
|
+
**Caller**:
|
|
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, 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.
|
|
225
|
+
_Avoid_: principal (it brings policies and roles that an Instance does not have), user (a CI job is a Caller), actor
|
|
226
|
+
(xstate's word), Sender (a party inside the run)
|
|
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
|
|
217
253
|
|
|
218
254
|
<a id="emit"></a>
|
|
219
255
|
|
|
@@ -225,9 +261,9 @@ _Avoid_: event (what a Gate or an Agent delivers), log (not a diagnostic)
|
|
|
225
261
|
<a id="effect"></a>
|
|
226
262
|
|
|
227
263
|
**Effect**:
|
|
228
|
-
Work that a Machine does outside itself: it runs a command, calls a URL,
|
|
229
|
-
an Effect started is **dispatched by** the run that started it, and the two are independent:
|
|
230
|
-
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.
|
|
231
267
|
_Avoid_: action (xstate's word), side effect, job, task, step, operation, errand, tool; sub-run, child run, nested run,
|
|
232
268
|
spawned run (a dispatched run is a run of its own)
|
|
233
269
|
|
|
@@ -235,8 +271,9 @@ spawned run (a dispatched run is a run of its own)
|
|
|
235
271
|
|
|
236
272
|
**Open**:
|
|
237
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,
|
|
238
|
-
an Agent with no model, or an Effect with no url, program or secret. It is the shape that a
|
|
239
|
-
`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.
|
|
240
277
|
_Avoid_: unset, default (an Open part has none), placeholder
|
|
241
278
|
|
|
242
279
|
<a id="open-body"></a>
|
|
@@ -274,6 +311,13 @@ _Avoid_: template, expression, interpolation, variable, placeholder (the `{{ }}`
|
|
|
274
311
|
|
|
275
312
|
### Turns and conversations
|
|
276
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
|
+
|
|
277
321
|
<a id="turn"></a>
|
|
278
322
|
|
|
279
323
|
**Turn**:
|
|
@@ -327,8 +371,9 @@ _Avoid_: result, status
|
|
|
327
371
|
**Sweep**:
|
|
328
372
|
The Turn's sweep: the Orchestrator's end of an Agent's Submissions when the state that asked for the Turn stops
|
|
329
373
|
waiting. It settles the running Submission and every one queued behind it. It says how the Turn ended: by the Turn's
|
|
330
|
-
own pick, or by something else.
|
|
331
|
-
"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).
|
|
332
377
|
_Avoid_: abort (the wire's route, not the act), cancel (the end of a run)
|
|
333
378
|
|
|
334
379
|
<a id="runaway"></a>
|
|
@@ -342,7 +387,7 @@ _Avoid_: degeneration (the model behavior, not the fault class), loop, hang, sta
|
|
|
342
387
|
|
|
343
388
|
**step**:
|
|
344
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
|
|
345
|
-
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
|
|
346
391
|
second pick of its model answer, each call of a model answer that hit the output limit, and the call that trips the
|
|
347
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
|
|
348
393
|
**step boundary** is the point after a model answer and the results of all its calls, and before the next model
|
|
@@ -414,9 +459,20 @@ re-prompt of an open Turn)
|
|
|
414
459
|
|
|
415
460
|
**Working tools**:
|
|
416
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
|
|
417
|
-
say.
|
|
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.
|
|
418
464
|
_Avoid_: tools (unqualified), sandbox tools
|
|
419
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
|
+
|
|
420
476
|
### Sandboxes, Harnesses and secrets
|
|
421
477
|
|
|
422
478
|
<a id="sandbox"></a>
|
|
@@ -429,9 +485,9 @@ _Avoid_: worker pod, container
|
|
|
429
485
|
<a id="harness"></a>
|
|
430
486
|
|
|
431
487
|
**Harness**:
|
|
432
|
-
jr2's own long-running server that hosts the conversations of Agents and executes their Working tools
|
|
433
|
-
and once per Instance as the Instance Harness. It holds no Agent of its own: each Submission
|
|
434
|
-
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.
|
|
435
491
|
_Avoid_: flue agent, server, `local()`
|
|
436
492
|
|
|
437
493
|
<a id="engine"></a>
|
|
@@ -462,36 +518,60 @@ firewall
|
|
|
462
518
|
<a id="held-secret"></a>
|
|
463
519
|
|
|
464
520
|
**Held secret**:
|
|
465
|
-
A credential that the Harness uses through its pod's Custodian but never holds: a model API key above all,
|
|
466
|
-
Sandbox
|
|
467
|
-
it through the Custodian while the pod lives
|
|
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.
|
|
468
525
|
_Avoid_: masked secret, injected secret, proxied key, secret (unqualified)
|
|
469
526
|
|
|
470
527
|
<a id="stand-in"></a>
|
|
471
528
|
|
|
472
529
|
**Stand-in**:
|
|
473
|
-
The
|
|
474
|
-
|
|
530
|
+
The value that the Harness holds in place of a Held secret. It means something only to the Custodian, and only toward a
|
|
531
|
+
host or a route that the secret is bound to; sent anywhere else, it arrives as it left. It is secret, and only the
|
|
532
|
+
Harness itself holds it: Workspace code gets a Stand-in only for a secret that its Workspace grants, and never the one
|
|
533
|
+
for the control token. The one public Stand-in is the fetch token's, which can only ask for a fetch.
|
|
475
534
|
_Avoid_: placeholder (an Open part's word), dummy key, fake key, token, mask
|
|
476
535
|
|
|
536
|
+
<a id="sandbox-token"></a>
|
|
537
|
+
|
|
538
|
+
**Sandbox token**:
|
|
539
|
+
A credential that jr2 makes for one Sandbox, which its Custodian alone holds. There are two. The **control token** lets
|
|
540
|
+
the Harness read each Agent's Menu and deliver its picks, for the Agent that the Harness names. The **fetch token** lets
|
|
541
|
+
a process in the pod ask for a fetch of a Repo that the Sandbox holds. Each one is good only for its own work and in its
|
|
542
|
+
own Sandbox, and neither one reaches a Gate.
|
|
543
|
+
_Avoid_: pod token, agent token, slot token, Instance token (the Caller's credential)
|
|
544
|
+
|
|
545
|
+
<a id="workspace-code"></a>
|
|
546
|
+
|
|
547
|
+
**Workspace code**:
|
|
548
|
+
Each process in a Sandbox whose program or input comes from the Workspace's shared files: what an Agent's Working tools
|
|
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.
|
|
552
|
+
_Avoid_: agent code (any Agent can run another's), user code, untrusted code (unqualified), tool process
|
|
553
|
+
|
|
477
554
|
<a id="check-pod"></a>
|
|
478
555
|
|
|
479
556
|
**Check pod**:
|
|
480
|
-
The one-shot pod in which the provider preflight of `jr2 up` checks the models of one class of Harness pod,
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
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.
|
|
486
564
|
_Avoid_: probe, probe pod, preflight pod, test pod, Harness (it runs none)
|
|
487
565
|
|
|
488
566
|
<a id="effector"></a>
|
|
489
567
|
|
|
490
568
|
**Effector**:
|
|
491
|
-
The container where jr2's own process
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
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.
|
|
495
575
|
_Avoid_: Courier, Actuator, Clerk, machine container, tool image
|
|
496
576
|
|
|
497
577
|
<a id="sandbox-effector"></a>
|
|
@@ -506,7 +586,9 @@ _Avoid_: sidecar, worker, runner
|
|
|
506
586
|
|
|
507
587
|
**Instance Effector**:
|
|
508
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,
|
|
509
|
-
|
|
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.
|
|
510
592
|
_Avoid_: sidecar, worker, runner
|
|
511
593
|
|
|
512
594
|
<a id="effect-secret"></a>
|
|
@@ -519,7 +601,7 @@ _Avoid_: secret (unqualified), injected secret
|
|
|
519
601
|
<a id="sandbox-image"></a>
|
|
520
602
|
|
|
521
603
|
**Sandbox Image**:
|
|
522
|
-
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
|
|
523
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
|
|
524
606
|
from a registry, and it carries no part of jr2.
|
|
525
607
|
_Avoid_: workspace image (a Workspace is a Machine; the image is the pod's), agent image, harness image (the kit's own),
|
|
@@ -558,15 +640,17 @@ _Avoid_: sidecar (its deployment shape), debug container (a one-off attach, not
|
|
|
558
640
|
|
|
559
641
|
**Source**:
|
|
560
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
|
|
561
|
-
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.
|
|
562
645
|
_Avoid_: queue (one possible backing, and not FIFO), feed
|
|
563
646
|
|
|
564
647
|
<a id="pool"></a>
|
|
565
648
|
|
|
566
649
|
**Pool**:
|
|
567
|
-
The Machine that the kit supplies to run one worker
|
|
568
|
-
|
|
569
|
-
|
|
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
|
|
570
654
|
|
|
571
655
|
<a id="work-source"></a>
|
|
572
656
|
|
|
@@ -629,20 +713,29 @@ _Avoid_: role, alias, repo name, workdir, primary repo
|
|
|
629
713
|
<a id="binding"></a>
|
|
630
714
|
|
|
631
715
|
**Binding**:
|
|
632
|
-
What a Repo Slot resolves to: a Repo's url and an optional base
|
|
633
|
-
|
|
716
|
+
What a Repo Slot resolves to: a Repo's url and an optional base. The Sandbox's own clone stays on that base, and a new
|
|
717
|
+
branch starts from it. With no base, both use the Repo's own default branch.
|
|
634
718
|
_Avoid_: config, catalog entry
|
|
635
719
|
|
|
636
720
|
<a id="project-layout"></a>
|
|
637
721
|
|
|
638
722
|
**Project layout**:
|
|
639
723
|
The convention for the checkouts in a Sandbox: under each Repo Slot, the Sandbox's own clone of the Repo, with the
|
|
640
|
-
Worktrees beside it. The node's cache of the Repo is not part of the
|
|
724
|
+
Worktrees beside it. An Agent reads the clone and works in a Worktree. The node's cache of the Repo is not part of the
|
|
725
|
+
layout.
|
|
641
726
|
_Avoid_: directory structure, repo tree
|
|
642
727
|
|
|
643
728
|
<a id="worktree"></a>
|
|
644
729
|
|
|
645
730
|
**Worktree**:
|
|
646
|
-
A git worktree of a Repo Slot
|
|
647
|
-
|
|
648
|
-
|
|
731
|
+
A git worktree of a Repo Slot, in a folder that a Machine names, beside the Sandbox's own clone. It holds one branch, or
|
|
732
|
+
one commit with no branch. The Machine, not jr2, chooses how many Worktrees it cuts, their branches, and which Agents
|
|
733
|
+
work in them.
|
|
734
|
+
_Avoid_: checkout, task branch
|
|
735
|
+
|
|
736
|
+
<a id="cut"></a>
|
|
737
|
+
|
|
738
|
+
**Cut**:
|
|
739
|
+
An Effect's act that makes a Worktree, or reads the one that a cut already made at that path. A cut that cannot happen
|
|
740
|
+
changes nothing.
|
|
741
|
+
_Avoid_: attach (the Workspace's step, which only clones), provision
|