@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
|
@@ -137,7 +137,7 @@ seats: workflow "task" — who may send what, per state (ADR-0015)
|
|
|
137
137
|
task.working agent:coder: [finish]
|
|
138
138
|
task.review gate: [approve, request_changes]
|
|
139
139
|
…
|
|
140
|
-
sandbox image "default": building jr2-sandbox-my-instance-default:
|
|
140
|
+
sandbox image "default": building jr2-sandbox-my-instance-default:5e601a543032-amd64
|
|
141
141
|
no USER declared — the pod's uid-1000 fallback applies
|
|
142
142
|
kind load → cluster "jr2"
|
|
143
143
|
…
|
|
@@ -161,7 +161,7 @@ jr2 run task --input '{"prompt":"In docs/site/tutorial/greet, one test fails. Fi
|
|
|
161
161
|
```text
|
|
162
162
|
…
|
|
163
163
|
→ context kind-jr2 / namespace my-instance
|
|
164
|
-
run
|
|
164
|
+
run 79b90360-cdbf-4538-8611-d52da1b8b914 (task) — attached
|
|
165
165
|
→ active "placing"
|
|
166
166
|
→ active "provisioning"
|
|
167
167
|
→ active "attaching"
|
|
@@ -183,10 +183,13 @@ jr2 status <run id>
|
|
|
183
183
|
```
|
|
184
184
|
|
|
185
185
|
The status is one line of JSON. While the coder works, `gates` is `[]`. When the run waits at `review`, `gates` holds
|
|
186
|
-
the Gate. Its `gate` is `body.review`, and the line ends with its `meta
|
|
186
|
+
the Gate. Its `gate` is `body.review`, and the line ends with its `meta`. After the JSON, `jr2 status` prints one line
|
|
187
|
+
for each Worktree that the run cut:
|
|
187
188
|
|
|
188
189
|
```text
|
|
189
|
-
…"gate":"body.review",…,"meta":{"summary":"Fixed the \"trims the name\" test
|
|
190
|
+
…"gate":"body.review",…,"meta":{"summary":"Fixed the failing \"trims the name\" test in docs/site/tutorial/greet. The bug was in src/greet.js where the name argument wasn't being trimmed, causing `greet([\" ada \"])` to output `'hello, ada '` instead of `'hello, ada'`. Added `.trim()` to the name extraction line. All 6 tests now pass.","branch":"jr2/task-1e805d38-68ac-4ec9-acc8-fc5ce6a68f6b","worktree":"/work/target/task"}}]}
|
|
191
|
+
started by: token/instance on behalf of kubernetes-admin
|
|
192
|
+
worktree: /work/target/task (target), branch jr2/task-1e805d38-68ac-4ec9-acc8-fc5ce6a68f6b
|
|
190
193
|
```
|
|
191
194
|
|
|
192
195
|
Run the command again until `gates` holds the Gate.
|
|
@@ -196,7 +199,7 @@ Run the command again until `gates` holds the Gate.
|
|
|
196
199
|
- `worktree` is the folder in the Sandbox that holds the branch. It is
|
|
197
200
|
[the Worktree](../reference/glossary.md#worktree).
|
|
198
201
|
|
|
199
|
-
Copy `branch` and `worktree` from your output. The part after `jr2/task-`, here `
|
|
202
|
+
Copy `branch` and `worktree` from your output. The part after `jr2/task-`, here `1e805d38-68ac-4ec9-acc8-fc5ce6a68f6b`,
|
|
200
203
|
is the [Instance ID](../reference/glossary.md#instance-id) of the run. `jr2 status` prints it as `instanceId`. It is not
|
|
201
204
|
the run id. Do not make the branch name from the run id. With the Instance token, the drawer of the
|
|
202
205
|
[Console](../reference/glossary.md#console) shows the same `meta`.
|
|
@@ -206,27 +209,30 @@ If `meta` has a `reason` and no `summary`, the [Turn](../reference/glossary.md#t
|
|
|
206
209
|
|
|
207
210
|
## Find the Sandbox
|
|
208
211
|
|
|
209
|
-
|
|
210
|
-
line `run <run id> (task) — attached` in the first terminal:
|
|
212
|
+
List the Workspaces of the run with [`jr2 workspace ls`](../reference/cli.md#workspace-ls):
|
|
211
213
|
|
|
212
214
|
```sh
|
|
213
|
-
|
|
215
|
+
jr2 workspace ls <run id>
|
|
214
216
|
```
|
|
215
217
|
|
|
216
218
|
```text
|
|
217
|
-
|
|
218
|
-
|
|
219
|
+
…
|
|
220
|
+
→ context kind-jr2 / namespace my-instance
|
|
221
|
+
WORKSPACE SANDBOX WORKFLOW PHASE AGE RUN
|
|
222
|
+
79b90360/x:23 ws-79b90360-x-23-1gex8om task Ready 81s held
|
|
219
223
|
```
|
|
220
224
|
|
|
221
|
-
`
|
|
222
|
-
|
|
225
|
+
`79b90360/x:23` is the handle of the Workspace: the first 8 characters of the run id, then the path of the Workspace in
|
|
226
|
+
the run. `ws-79b90360-x-23-1gex8om` is the name of the Sandbox. The name of the Sandbox is a handle too. Your values are
|
|
227
|
+
different. The commands below write the handle as `<workspace>`. `held` tells that the run holds the Sandbox.
|
|
223
228
|
|
|
224
229
|
## Look inside the Sandbox
|
|
225
230
|
|
|
226
|
-
|
|
231
|
+
Open a shell in the Sandbox with [`jr2 workspace shell`](../reference/cli.md#workspace-shell). The shell runs as the
|
|
232
|
+
Agent's tools run: in the same container, with the same files and the same limits:
|
|
227
233
|
|
|
228
234
|
```sh
|
|
229
|
-
|
|
235
|
+
jr2 workspace shell <workspace>
|
|
230
236
|
```
|
|
231
237
|
|
|
232
238
|
In the Sandbox, go to the fixture in the Worktree. Then run its tests. `<worktree>` is the `worktree` that you copied:
|
|
@@ -237,12 +243,12 @@ node --test
|
|
|
237
243
|
```
|
|
238
244
|
|
|
239
245
|
```text
|
|
240
|
-
✔ greets the world by default (1.
|
|
241
|
-
✔ greets a name (0.
|
|
242
|
-
✔ shouts (0.
|
|
243
|
-
✔ trims the name (0.
|
|
244
|
-
✔ prints help (0.
|
|
245
|
-
✔ refuses an unknown flag (0.
|
|
246
|
+
✔ greets the world by default (1.208079ms)
|
|
247
|
+
✔ greets a name (0.113673ms)
|
|
248
|
+
✔ shouts (0.070218ms)
|
|
249
|
+
✔ trims the name (0.054069ms)
|
|
250
|
+
✔ prints help (0.712678ms)
|
|
251
|
+
✔ refuses an unknown flag (0.242712ms)
|
|
246
252
|
ℹ tests 6
|
|
247
253
|
ℹ suites 0
|
|
248
254
|
ℹ pass 6
|
|
@@ -250,18 +256,18 @@ node --test
|
|
|
250
256
|
ℹ cancelled 0
|
|
251
257
|
ℹ skipped 0
|
|
252
258
|
ℹ todo 0
|
|
253
|
-
ℹ duration_ms
|
|
259
|
+
ℹ duration_ms 49.489997
|
|
254
260
|
```
|
|
255
261
|
|
|
256
262
|
Your times are different. Read the commits of the coder. The branch starts at the release tag, so the commits after the
|
|
257
263
|
tag are the commits of the coder:
|
|
258
264
|
|
|
259
265
|
```sh
|
|
260
|
-
git log --oneline v<version>..HEAD
|
|
266
|
+
git --no-pager log --oneline v<version>..HEAD
|
|
261
267
|
```
|
|
262
268
|
|
|
263
269
|
```text
|
|
264
|
-
|
|
270
|
+
8afef7d (HEAD -> jr2/task-1e805d38-68ac-4ec9-acc8-fc5ce6a68f6b) fix: trim name in greet to handle leading/trailing whitespace
|
|
265
271
|
```
|
|
266
272
|
|
|
267
273
|
Each line is one commit. The commit ids and the messages come from the model. The author of each commit is
|
|
@@ -283,7 +289,7 @@ jr2 send <run id> --gate body.review --event request_changes --input '{"notes":"
|
|
|
283
289
|
```text
|
|
284
290
|
…
|
|
285
291
|
→ context kind-jr2 / namespace my-instance
|
|
286
|
-
delivered request_changes to gate "body.review" on
|
|
292
|
+
delivered request_changes to gate "body.review" on 79b90360-cdbf-4538-8611-d52da1b8b914
|
|
287
293
|
```
|
|
288
294
|
|
|
289
295
|
The coder continues the same conversation, with your notes as its next prompt. The Sandbox and the branch stay. Run
|
|
@@ -292,10 +298,10 @@ The coder continues the same conversation, with your notes as its next prompt. T
|
|
|
292
298
|
## Push the branch
|
|
293
299
|
|
|
294
300
|
`task` does not push, and the Agent has no credential to push with. While the run waits at `review`, you push the branch
|
|
295
|
-
from the Sandbox.
|
|
301
|
+
from the Sandbox. Open a shell in the Sandbox again:
|
|
296
302
|
|
|
297
303
|
```sh
|
|
298
|
-
|
|
304
|
+
jr2 workspace shell <workspace>
|
|
299
305
|
```
|
|
300
306
|
|
|
301
307
|
In the Sandbox, go to the Worktree. Then push the branch. `<branch>` is the `branch` that you copied:
|
|
@@ -312,7 +318,7 @@ Username for 'https://github.com': <you>
|
|
|
312
318
|
Password for 'https://<you>@github.com':
|
|
313
319
|
…
|
|
314
320
|
To https://github.com/<you>/jr2.git
|
|
315
|
-
* [new branch] jr2/task-
|
|
321
|
+
* [new branch] jr2/task-1e805d38-68ac-4ec9-acc8-fc5ce6a68f6b -> jr2/task-1e805d38-68ac-4ec9-acc8-fc5ce6a68f6b
|
|
316
322
|
```
|
|
317
323
|
|
|
318
324
|
`origin` fetches through the Repo cache of the node, and pushes to your fork. Open your fork on GitHub to see the
|
|
@@ -337,7 +343,7 @@ jr2 send <run id> --gate body.review --event approve
|
|
|
337
343
|
```text
|
|
338
344
|
…
|
|
339
345
|
→ context kind-jr2 / namespace my-instance
|
|
340
|
-
delivered approve to gate "body.review" on
|
|
346
|
+
delivered approve to gate "body.review" on 79b90360-cdbf-4538-8611-d52da1b8b914
|
|
341
347
|
```
|
|
342
348
|
|
|
343
349
|
In the first terminal, `jr2 run` prints the end of the run, then the final status as one line of JSON, and stops:
|
|
@@ -346,33 +352,38 @@ In the first terminal, `jr2 run` prints the end of the run, then the final statu
|
|
|
346
352
|
…
|
|
347
353
|
→ active "teardown"
|
|
348
354
|
→ done "done"
|
|
349
|
-
{"runId":"
|
|
355
|
+
{"runId":"79b90360-cdbf-4538-8611-d52da1b8b914","workflow":"task",…,"output":{"branch":"jr2/task-1e805d38-68ac-4ec9-acc8-fc5ce6a68f6b"},"worktrees":[{"slot":"target","path":"/work/target/task","branch":"jr2/task-1e805d38-68ac-4ec9-acc8-fc5ce6a68f6b"}]}
|
|
350
356
|
```
|
|
351
357
|
|
|
352
358
|
## Make sure that the Sandbox is gone
|
|
353
359
|
|
|
354
|
-
|
|
360
|
+
List the Workspaces of the run again:
|
|
355
361
|
|
|
356
362
|
```sh
|
|
357
|
-
|
|
363
|
+
jr2 workspace ls <run id>
|
|
358
364
|
```
|
|
359
365
|
|
|
360
366
|
```text
|
|
361
|
-
|
|
367
|
+
…
|
|
368
|
+
→ context kind-jr2 / namespace my-instance
|
|
369
|
+
WORKSPACE SANDBOX WORKFLOW PHASE AGE RUN
|
|
362
370
|
```
|
|
363
371
|
|
|
372
|
+
The list has no row, because the run removed its Sandbox.
|
|
373
|
+
|
|
364
374
|
## What happened
|
|
365
375
|
|
|
366
376
|
- `task` is a Machine in a Workspace. The run made a Sandbox for the Workspace and cloned your fork into it. It cut the
|
|
367
|
-
branch from the release tag, in
|
|
377
|
+
branch from the release tag, in the Worktree `/work/target/task`. See [Workspaces](../concepts/workspaces.md).
|
|
368
378
|
- `task` left its Repo Slots and the model of its coder Open. `customize()` bound them where you registered the
|
|
369
379
|
Workflow, and `jr2 up` refuses a Workflow with an Open part. See [Composition](../concepts/composition.md) and
|
|
370
380
|
[ADR-0054](../reference/decisions/0054-the-kit-ships-machines-and-a-shipped-machine-leaves-its-parts-open.md).
|
|
371
381
|
- The `review` Gate kept the Sandbox while the run waited. `request_changes` sent the coder back to the same
|
|
372
382
|
conversation. `approve` ended the run, and the end of the Workspace removed the Sandbox. See
|
|
373
383
|
[Gates](../concepts/gates.md) and [ADR-0012](../reference/decisions/0012-workspace-wrapper-machine.md).
|
|
374
|
-
- You used `
|
|
375
|
-
gives the same
|
|
384
|
+
- You used `jr2 workspace shell` to go into the Sandbox. The shell runs as the Agent runs, so it cannot read the
|
|
385
|
+
credential of the Agent. The guide [Look inside a Sandbox](../guides/look-inside-a-sandbox.md) gives the same
|
|
386
|
+
commands.
|
|
376
387
|
- You pushed by hand, because `task` does not push. On the next page, a Machine pushes the branch with an
|
|
377
388
|
[Effect](../reference/glossary.md#effect).
|
|
378
389
|
|
|
@@ -183,7 +183,7 @@ jr2 up
|
|
|
183
183
|
→ .env: ANTHROPIC_API_KEY
|
|
184
184
|
jr2 up — instance "my-instance" → context kind-jr2 / namespace my-instance
|
|
185
185
|
…
|
|
186
|
-
warning: secrets[0] (ANTHROPIC_API_KEY) is named by nothing; goes nowhere — no workspace() lists it, no Agent's provider reads it, and no Effect names it (ADR-0059, ADR-0068)
|
|
186
|
+
warning: secrets[0] (ANTHROPIC_API_KEY) is named by nothing; goes nowhere — no workspace() lists it, no Agent's provider reads it, and no Effect or Hook names it (ADR-0059, ADR-0068)
|
|
187
187
|
…
|
|
188
188
|
converged — `jr2 run <workflow>` when ready
|
|
189
189
|
```
|
|
@@ -86,7 +86,7 @@ jr2 up — instance "my-instance" → context kind-jr2 / namespace my-instance
|
|
|
86
86
|
typecheck: tsc --noEmit (the instance's own compiler)
|
|
87
87
|
agents: (none) (carried by 1 workflow machine(s))
|
|
88
88
|
assembly: staging
|
|
89
|
-
assembly:
|
|
89
|
+
assembly: 50e6f81e3bfb (kit v<version>; 1 workflow(s): ping)
|
|
90
90
|
kubernetes: v1.36.1 (floor 1.35, ADR-0037)
|
|
91
91
|
first contact: deploy instance "my-instance" to context kind-jr2 (create namespace "my-instance")? [y/N] y
|
|
92
92
|
platforms: linux/amd64 (from 1 schedulable node(s))
|
|
@@ -94,14 +94,15 @@ images: installed kit — the published v<version> Harness, operator and Orchest
|
|
|
94
94
|
…
|
|
95
95
|
orchestrator: waiting for rollout
|
|
96
96
|
orchestrator: verified — 1 pod(s) running ghcr.io/snapwich/jr2-orchestrator:<version>
|
|
97
|
-
instance effector: none (no Effect is placed there)
|
|
98
|
-
assembly: publishing
|
|
99
|
-
assembly:
|
|
97
|
+
instance effector: none (no Effect is placed there, and no Hook needs it)
|
|
98
|
+
assembly: publishing 50e6f81e3bfb (no current Assembly)
|
|
99
|
+
assembly: 50e6f81e3bfb is current — workflows: ping
|
|
100
100
|
swept nothing — every labeled image is named by a live root
|
|
101
|
+
…
|
|
101
102
|
converged — `jr2 run <workflow>` when ready
|
|
102
103
|
```
|
|
103
104
|
|
|
104
|
-
`<version>` is the Kit version, such as `0.4.1`. `
|
|
105
|
+
`<version>` is the Kit version, such as `0.4.1`. `50e6f81e3bfb` is the hash of the
|
|
105
106
|
[Assembly](../reference/glossary.md#assembly) of your Instance: your Workflows and your config. Your hash can be
|
|
106
107
|
different. It changes each time that your Workflows or your config change.
|
|
107
108
|
|
|
@@ -122,9 +123,9 @@ JSON:
|
|
|
122
123
|
|
|
123
124
|
```text
|
|
124
125
|
→ context kind-jr2 / namespace my-instance
|
|
125
|
-
run
|
|
126
|
+
run db1fd16f-166f-4575-b8fb-60cd80321308 (ping) — attached
|
|
126
127
|
→ done "done"
|
|
127
|
-
{"runId":"
|
|
128
|
+
{"runId":"db1fd16f-166f-4575-b8fb-60cd80321308","workflow":"ping","instanceId":"71af068c-e150-4802-8b1c-6d07d3bb4a08","startedAt":"2026-11-06T19:15:47.436Z","status":"done","value":"done","context":{"message":"hi","reply":"pong: hi"},"children":[],"waiting":[],"held":[],"assembly":"50e6f81e3bfb","startedBy":{"kind":"caller","via":"token","name":"instance","onBehalfOf":"kubernetes-admin"}}
|
|
128
129
|
```
|
|
129
130
|
|
|
130
131
|
Your run id and your [Instance ID](../reference/glossary.md#instance-id) are not the same as the ones here. The run is
|
|
@@ -155,16 +156,17 @@ Click `ping`. The center shows its Machine, with the states `responding` and `do
|
|
|
155
156
|
## Unlock the Console
|
|
156
157
|
|
|
157
158
|
Without a token, you can look at the runs in the Console, but you cannot start a run or answer a
|
|
158
|
-
[Gate](../reference/glossary.md#gate). For these, you need the
|
|
159
|
+
[Gate](../reference/glossary.md#gate). For these, you need the token of a Caller with a scope. Here, use the Instance
|
|
160
|
+
token. In the first terminal, run:
|
|
159
161
|
|
|
160
162
|
```sh
|
|
161
163
|
kubectl -n my-instance get secret jr2-instance -o jsonpath='{.data.JR2_INSTANCE_TOKEN}' | base64 -d
|
|
162
164
|
```
|
|
163
165
|
|
|
164
|
-
The command prints the token, 48 hexadecimal characters, with no newline after it. Paste the token in the
|
|
165
|
-
|
|
166
|
-
`
|
|
167
|
-
keeps the same token each time that it runs.
|
|
166
|
+
The command prints the token, 48 hexadecimal characters, with no newline after it. Paste the token in the `Caller token`
|
|
167
|
+
box in the Console nav. Push Enter. The Console checks the token. Then the badge after the box shows `live`, the nav
|
|
168
|
+
shows `as token/instance`, and a `start` button shows next to `ping`. The browser tab keeps the token until you close
|
|
169
|
+
the tab. `jr2 up` keeps the same token each time that it runs.
|
|
168
170
|
|
|
169
171
|
Keep the port forward open. The next pages use the Console. [Open the Console](../guides/open-the-console.md) gives more
|
|
170
172
|
about the Console.
|
|
@@ -181,8 +183,9 @@ each time that you change the folder. [Converge](../concepts/converge.md) explai
|
|
|
181
183
|
it. [Machines and Workflows](../concepts/machines-and-workflows.md) explains the two words.
|
|
182
184
|
|
|
183
185
|
The Console is a page that the Orchestrator serves, at [`GET /`](../reference/http-api.md#get). Anyone who can reach it
|
|
184
|
-
can see the runs. Only
|
|
185
|
-
|
|
186
|
+
can see the runs. Only a [Caller](../reference/glossary.md#caller) with a scope, such as the holder of the Instance
|
|
187
|
+
token, can start a run or answer a Gate
|
|
188
|
+
([ADR-0032](../reference/decisions/0032-the-console-unlocks-with-a-callers-credential.md)).
|
|
186
189
|
|
|
187
190
|
`jr2 init` wrote `AGENTS.md` for your Assistant. It points to the docs that the Kit installs in
|
|
188
191
|
`node_modules/@jr2/orchestrator/docs/`. These are the docs of your Kit version
|