@jr2/orchestrator 0.4.1 → 0.6.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/README.md +20 -2
- package/console/components/app.ts +2 -0
- package/console/components/fleet.ts +14 -1
- package/console/components/machine-pane.ts +41 -2
- package/console/main.ts +13 -1
- package/console/store.ts +102 -6
- package/console/style.css +21 -0
- package/docs/agents-block.md +5 -0
- package/docs/concepts/agents-and-turns.md +478 -0
- package/docs/concepts/architecture.md +243 -0
- package/docs/concepts/charts.md +146 -0
- package/docs/concepts/composition.md +357 -0
- package/docs/concepts/converge.md +257 -0
- package/docs/concepts/durable-runs.md +189 -0
- package/docs/concepts/effects.md +658 -0
- package/docs/concepts/gates.md +208 -0
- package/docs/concepts/machines-and-workflows.md +298 -0
- package/docs/concepts/pools-and-sources.md +230 -0
- package/docs/concepts/secrets-and-trust.md +306 -0
- package/docs/concepts/the-menu.md +381 -0
- package/docs/concepts/workspaces.md +756 -0
- package/docs/get-started/a-model-decides.md +563 -0
- package/docs/get-started/an-agent-in-a-sandbox.md +383 -0
- package/docs/get-started/connect-a-model.md +248 -0
- package/docs/get-started/create-an-instance.md +194 -0
- package/docs/get-started/have-your-assistant-write-a-machine.md +993 -0
- package/docs/get-started/install.md +130 -0
- package/docs/guides/add-tools-to-the-sandbox.md +308 -0
- package/docs/guides/answer-a-gate.md +304 -0
- package/docs/guides/bind-open-parts.md +224 -0
- package/docs/guides/cancel-a-run.md +146 -0
- package/docs/guides/clean-up.md +206 -0
- package/docs/guides/cut-a-worktree.md +560 -0
- package/docs/guides/fix-a-failed-converge.md +361 -0
- package/docs/guides/give-the-cluster-git-credentials.md +222 -0
- package/docs/guides/iterate-on-a-machine-on-kind.md +190 -0
- package/docs/guides/let-an-agent-write-a-chart.md +230 -0
- package/docs/guides/look-inside-a-sandbox.md +177 -0
- package/docs/guides/mirror-the-kit-images.md +176 -0
- package/docs/guides/move-from-kind-to-a-shared-cluster.md +318 -0
- package/docs/guides/open-the-console.md +91 -0
- package/docs/guides/publish-a-machine-as-an-npm-package.md +350 -0
- package/docs/guides/push-and-sign-a-branch.md +532 -0
- package/docs/guides/run-a-chart-by-name.md +270 -0
- package/docs/guides/run-a-command-or-call-a-url.md +587 -0
- package/docs/guides/run-one-worker-per-item.md +322 -0
- package/docs/guides/set-an-agents-access-and-dials.md +420 -0
- package/docs/guides/size-a-workspace.md +217 -0
- package/docs/guides/start-a-run-from-a-run.md +237 -0
- package/docs/guides/start-a-run.md +207 -0
- package/docs/guides/upgrade-the-kit-version.md +240 -0
- package/docs/guides/use-a-hosted-provider.md +214 -0
- package/docs/guides/use-a-local-model.md +313 -0
- package/docs/guides/watch-a-run.md +349 -0
- package/docs/guides/write-a-workflow.md +318 -0
- package/docs/index.md +44 -0
- package/docs/llms.txt +237 -0
- package/docs/reference/authoring-surface/agent.md +151 -0
- package/docs/reference/authoring-surface/answer.md +156 -0
- package/docs/reference/authoring-surface/arg.md +82 -0
- package/docs/reference/authoring-surface/basic.md +62 -0
- package/docs/reference/authoring-surface/bearer.md +53 -0
- package/docs/reference/authoring-surface/branchname.md +15 -0
- package/docs/reference/authoring-surface/chartschema.md +23 -0
- package/docs/reference/authoring-surface/chartschemafor.md +48 -0
- package/docs/reference/authoring-surface/command.md +206 -0
- package/docs/reference/authoring-surface/customize.md +64 -0
- package/docs/reference/authoring-surface/defineconfig.md +41 -0
- package/docs/reference/authoring-surface/defineevent.md +114 -0
- package/docs/reference/authoring-surface/dispatch.md +126 -0
- package/docs/reference/authoring-surface/fail.md +96 -0
- package/docs/reference/authoring-surface/file.md +142 -0
- package/docs/reference/authoring-surface/frompick.md +277 -0
- package/docs/reference/authoring-surface/http.md +259 -0
- package/docs/reference/authoring-surface/isfailure.md +58 -0
- package/docs/reference/authoring-surface/isready.md +14 -0
- package/docs/reference/authoring-surface/jr2setup.md +237 -0
- package/docs/reference/authoring-surface/open.md +105 -0
- package/docs/reference/authoring-surface/openbody.md +86 -0
- package/docs/reference/authoring-surface/paramsof.md +143 -0
- package/docs/reference/authoring-surface/pool.md +186 -0
- package/docs/reference/authoring-surface/push.md +130 -0
- package/docs/reference/authoring-surface/readyof.md +21 -0
- package/docs/reference/authoring-surface/secret.md +139 -0
- package/docs/reference/authoring-surface/sentby.md +83 -0
- package/docs/reference/authoring-surface/source.md +51 -0
- package/docs/reference/authoring-surface/text.md +62 -0
- package/docs/reference/authoring-surface/type-agentdeclaration.md +27 -0
- package/docs/reference/authoring-surface/type-agentdefinition.md +80 -0
- package/docs/reference/authoring-surface/type-agentlogic.md +15 -0
- package/docs/reference/authoring-surface/type-agentslots.md +15 -0
- package/docs/reference/authoring-surface/type-answeraction.md +12 -0
- 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-arg.md +19 -0
- package/docs/reference/authoring-surface/type-argnames.md +12 -0
- package/docs/reference/authoring-surface/type-bindactors.md +14 -0
- package/docs/reference/authoring-surface/type-binding.md +61 -0
- package/docs/reference/authoring-surface/type-bindingof.md +12 -0
- package/docs/reference/authoring-surface/type-bodyacceptsdoor.md +15 -0
- package/docs/reference/authoring-surface/type-bodyacceptsslots.md +17 -0
- package/docs/reference/authoring-surface/type-ceilings.md +41 -0
- package/docs/reference/authoring-surface/type-chainlink.md +19 -0
- package/docs/reference/authoring-surface/type-chartaction.md +46 -0
- package/docs/reference/authoring-surface/type-chartagent.md +28 -0
- package/docs/reference/authoring-surface/type-chartevent.md +20 -0
- package/docs/reference/authoring-surface/type-chartguard.md +20 -0
- package/docs/reference/authoring-surface/type-chartinvoke.md +28 -0
- package/docs/reference/authoring-surface/type-chartjson.md +14 -0
- package/docs/reference/authoring-surface/type-chartstate.md +46 -0
- package/docs/reference/authoring-surface/type-charttext.md +40 -0
- package/docs/reference/authoring-surface/type-charttransition.md +22 -0
- package/docs/reference/authoring-surface/type-charttransitions.md +14 -0
- package/docs/reference/authoring-surface/type-chartvalue.md +15 -0
- package/docs/reference/authoring-surface/type-childat.md +12 -0
- package/docs/reference/authoring-surface/type-childslots.md +12 -0
- package/docs/reference/authoring-surface/type-commandenv.md +15 -0
- package/docs/reference/authoring-surface/type-commandinput.md +20 -0
- package/docs/reference/authoring-surface/type-commandoptions.md +56 -0
- package/docs/reference/authoring-surface/type-commandoutput.md +122 -0
- package/docs/reference/authoring-surface/type-customize.md +111 -0
- package/docs/reference/authoring-surface/type-dispatchdefinition.md +39 -0
- package/docs/reference/authoring-surface/type-dispatchinput.md +14 -0
- package/docs/reference/authoring-surface/type-dispatchopenparts.md +14 -0
- package/docs/reference/authoring-surface/type-dispatchoutput.md +72 -0
- package/docs/reference/authoring-surface/type-doorlessinput.md +19 -0
- package/docs/reference/authoring-surface/type-duration.md +15 -0
- package/docs/reference/authoring-surface/type-effectbinding.md +93 -0
- package/docs/reference/authoring-surface/type-effectlogic.md +12 -0
- package/docs/reference/authoring-surface/type-envopenparts.md +14 -0
- package/docs/reference/authoring-surface/type-eventaudience.md +27 -0
- package/docs/reference/authoring-surface/type-eventdef.md +45 -0
- package/docs/reference/authoring-surface/type-eventfrom.md +16 -0
- package/docs/reference/authoring-surface/type-eventsemantics.md +26 -0
- package/docs/reference/authoring-surface/type-execoutcome.md +34 -0
- package/docs/reference/authoring-surface/type-failslot.md +14 -0
- package/docs/reference/authoring-surface/type-failure.md +19 -0
- package/docs/reference/authoring-surface/type-failureinput.md +20 -0
- package/docs/reference/authoring-surface/type-filebody.md +37 -0
- package/docs/reference/authoring-surface/type-framepath.md +14 -0
- package/docs/reference/authoring-surface/type-frominput.md +14 -0
- package/docs/reference/authoring-surface/type-hostinjectedinput.md +56 -0
- package/docs/reference/authoring-surface/type-httpdefinition.md +104 -0
- package/docs/reference/authoring-surface/type-httpfileinput.md +20 -0
- package/docs/reference/authoring-surface/type-httpinput.md +12 -0
- package/docs/reference/authoring-surface/type-httpmethod.md +14 -0
- package/docs/reference/authoring-surface/type-httpopenparts.md +12 -0
- package/docs/reference/authoring-surface/type-httpoutput.md +95 -0
- package/docs/reference/authoring-surface/type-httprequestparts.md +33 -0
- package/docs/reference/authoring-surface/type-jr2config.md +126 -0
- package/docs/reference/authoring-surface/type-lateroutcome.md +21 -0
- package/docs/reference/authoring-surface/type-lends.md +38 -0
- package/docs/reference/authoring-surface/type-logicat.md +12 -0
- package/docs/reference/authoring-surface/type-markedif.md +12 -0
- package/docs/reference/authoring-surface/type-mergedactors.md +12 -0
- package/docs/reference/authoring-surface/type-namedsecret.md +25 -0
- package/docs/reference/authoring-surface/type-namestart.md +77 -0
- package/docs/reference/authoring-surface/type-noslotworkspaceoptions.md +27 -0
- package/docs/reference/authoring-surface/type-notworktreekeys.md +12 -0
- package/docs/reference/authoring-surface/type-openbodydeclaration.md +40 -0
- package/docs/reference/authoring-surface/type-openbodylogic.md +14 -0
- package/docs/reference/authoring-surface/type-openbodyoutput.md +42 -0
- package/docs/reference/authoring-surface/type-openbodyslot.md +18 -0
- package/docs/reference/authoring-surface/type-opencommandinput.md +22 -0
- package/docs/reference/authoring-surface/type-openeffect.md +12 -0
- package/docs/reference/authoring-surface/type-openeffectslots.md +12 -0
- package/docs/reference/authoring-surface/type-openof.md +12 -0
- package/docs/reference/authoring-surface/type-opensecret.md +23 -0
- package/docs/reference/authoring-surface/type-opensecretmark.md +12 -0
- package/docs/reference/authoring-surface/type-permissivenoslotworkspaceoptions.md +26 -0
- package/docs/reference/authoring-surface/type-permissiveworkspaceoptions.md +27 -0
- package/docs/reference/authoring-surface/type-poolmachine.md +28 -0
- package/docs/reference/authoring-surface/type-poolnextinput.md +22 -0
- package/docs/reference/authoring-surface/type-poolspec.md +60 -0
- package/docs/reference/authoring-surface/type-pushinput.md +34 -0
- package/docs/reference/authoring-surface/type-pushoptions.md +79 -0
- package/docs/reference/authoring-surface/type-pushoutput.md +149 -0
- package/docs/reference/authoring-surface/type-pushwireoutput.md +12 -0
- package/docs/reference/authoring-surface/type-quantity.md +14 -0
- package/docs/reference/authoring-surface/type-reached.md +12 -0
- package/docs/reference/authoring-surface/type-reposlot.md +70 -0
- package/docs/reference/authoring-surface/type-reposlotsof.md +16 -0
- package/docs/reference/authoring-surface/type-sandboxoptions.md +84 -0
- package/docs/reference/authoring-surface/type-secret.md +25 -0
- package/docs/reference/authoring-surface/type-sender.md +19 -0
- package/docs/reference/authoring-surface/type-sentbyguards.md +12 -0
- package/docs/reference/authoring-surface/type-size.md +85 -0
- package/docs/reference/authoring-surface/type-slothandles.md +24 -0
- package/docs/reference/authoring-surface/type-sourcenextresult.md +17 -0
- package/docs/reference/authoring-surface/type-sourcespec.md +44 -0
- package/docs/reference/authoring-surface/type-syncstate.md +12 -0
- package/docs/reference/authoring-surface/type-text.md +19 -0
- package/docs/reference/authoring-surface/type-textpart.md +24 -0
- package/docs/reference/authoring-surface/type-thinkinglevel.md +39 -0
- package/docs/reference/authoring-surface/type-toparameterizedobject.md +14 -0
- package/docs/reference/authoring-surface/type-toprovidedactor.md +14 -0
- package/docs/reference/authoring-surface/type-unknown.md +21 -0
- package/docs/reference/authoring-surface/type-usercontainer.md +77 -0
- package/docs/reference/authoring-surface/type-withoutemptyindex.md +20 -0
- package/docs/reference/authoring-surface/type-workflowevent.md +46 -0
- package/docs/reference/authoring-surface/type-workspaceaccess.md +16 -0
- package/docs/reference/authoring-surface/type-workspaced.md +115 -0
- package/docs/reference/authoring-surface/type-workspacehandles.md +22 -0
- package/docs/reference/authoring-surface/type-workspacemachine.md +29 -0
- package/docs/reference/authoring-surface/type-workspaceof.md +13 -0
- package/docs/reference/authoring-surface/type-workspaceoptions.md +27 -0
- 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 +287 -0
- package/docs/reference/authoring-surface/worktree.md +71 -0
- package/docs/reference/authoring-surface.md +217 -0
- package/docs/reference/cli.md +433 -0
- package/docs/reference/config.md +765 -0
- package/docs/reference/decisions/0001-operator-owned-generic-sandbox.md +114 -0
- package/docs/reference/decisions/0002-duplex-streaming-actor.md +117 -0
- package/docs/reference/decisions/0004-worktree-provisioning-model.md +130 -0
- package/docs/reference/decisions/0005-sandbox-pod-composition.md +240 -0
- package/docs/reference/decisions/0006-agent-control-surface.md +50 -0
- package/docs/reference/decisions/0007-durable-machine-state.md +109 -0
- package/docs/reference/decisions/0008-orchestrator-as-deployed-app.md +60 -0
- package/docs/reference/decisions/0009-cli-and-instance-interface.md +275 -0
- package/docs/reference/decisions/0010-bdd-acceptance-tests.md +160 -0
- package/docs/reference/decisions/0011-workflow-defined-events.md +141 -0
- package/docs/reference/decisions/0012-workspace-wrapper-machine.md +103 -0
- package/docs/reference/decisions/0013-the-agent-reaches-its-machine-through-a-container-it-cannot-read.md +175 -0
- package/docs/reference/decisions/0014-observation-is-open-run-state-is-not.md +95 -0
- package/docs/reference/decisions/0015-authoring-surface-absorbs-the-mechanism.md +271 -0
- package/docs/reference/decisions/0016-agent-turn-mechanics-are-internal.md +126 -0
- package/docs/reference/decisions/0017-pool-over-a-source-port.md +71 -0
- package/docs/reference/decisions/0018-instance-agents-are-definitions-jr2-assembles-the-harness.md +111 -0
- package/docs/reference/decisions/0019-one-converging-command-against-the-current-context.md +287 -0
- package/docs/reference/decisions/0020-private-ca-trust-is-a-named-concept.md +60 -0
- package/docs/reference/decisions/0021-workspace-continuity-is-a-lease-that-answers-back.md +101 -0
- package/docs/reference/decisions/0022-observation-is-a-level-triggered-feed.md +103 -0
- package/docs/reference/decisions/0023-the-harness-prints-the-conversation.md +175 -0
- package/docs/reference/decisions/0024-an-agents-turn-ends-with-the-state-that-asked-for-it.md +436 -0
- package/docs/reference/decisions/0025-cancel-ends-a-run-stop-parks-it.md +65 -0
- package/docs/reference/decisions/0026-a-turn-that-is-over-is-never-prompted.md +62 -0
- package/docs/reference/decisions/0027-the-harness-is-jr2s-own-server-flue-retires-the-wire-stays.md +245 -0
- package/docs/reference/decisions/0028-what-an-agent-may-do-to-the-workspace-is-part-of-its-definition.md +90 -0
- package/docs/reference/decisions/0029-a-menu-is-fixed-for-a-conversation-and-a-turn-is-told-its-allowed-picks.md +154 -0
- package/docs/reference/decisions/0030-a-snapshot-names-the-machine-it-was-written-under.md +100 -0
- package/docs/reference/decisions/0031-menu-only-agents-run-on-the-instance-harness.md +193 -0
- package/docs/reference/decisions/0032-the-console-unlocks-with-the-instance-token.md +61 -0
- package/docs/reference/decisions/0033-a-machine-declares-the-input-that-starts-it.md +126 -0
- package/docs/reference/decisions/0034-the-console-renders-with-preact-and-the-server-erases-the-types.md +57 -0
- package/docs/reference/decisions/0035-a-runaway-turn-is-ended-rerolled-once-then-a-fault.md +92 -0
- package/docs/reference/decisions/0036-a-turn-compacts-its-own-context-mid-flight.md +138 -0
- package/docs/reference/decisions/0037-an-instance-builds-its-sandbox-images-jr2-injects-the-harness.md +196 -0
- package/docs/reference/decisions/0038-jr2-up-builds-every-image-it-deploys.md +170 -0
- package/docs/reference/decisions/0039-image-garbage-collects-by-reachability.md +115 -0
- package/docs/reference/decisions/0041-a-build-the-host-already-holds-is-not-spent-again.md +64 -0
- package/docs/reference/decisions/0042-ready-is-not-routable-an-admission-retries-its-connection.md +142 -0
- package/docs/reference/decisions/0043-the-kit-is-tested-as-installed-a-local-registry-stands-in-for-npm.md +170 -0
- package/docs/reference/decisions/0044-kit-images-live-at-a-canonical-home-a-self-host-mirrors-it.md +85 -0
- package/docs/reference/decisions/0045-the-platform-joins-the-image-address-and-the-cluster-chooses-it.md +82 -0
- package/docs/reference/decisions/0046-a-converge-failure-carries-its-diagnosis.md +34 -0
- package/docs/reference/decisions/0047-the-git-ssh-key-source-is-the-users-choice.md +47 -0
- package/docs/reference/decisions/0048-the-orchestrator-boots-without-its-repos.md +36 -0
- package/docs/reference/decisions/0049-a-machine-carries-its-parts-and-composes-by-invoke.md +126 -0
- package/docs/reference/decisions/0050-what-code-names-config-declares-what-the-cli-names-discovery-finds.md +73 -0
- package/docs/reference/decisions/0051-a-repo-is-a-slot-on-the-workspace-and-a-cache-on-the-node.md +238 -0
- package/docs/reference/decisions/0052-a-sandbox-lands-where-an-ordinary-pod-lands-and-the-cache-follows-it.md +86 -0
- package/docs/reference/decisions/0053-a-fetch-inside-the-pod-asks-the-node-cache-and-the-cache-asks-the-remote.md +123 -0
- package/docs/reference/decisions/0054-the-kit-ships-machines-and-a-shipped-machine-leaves-its-parts-open.md +126 -0
- package/docs/reference/decisions/0055-a-release-is-a-pushed-tag-and-the-publish-guard-is-the-credential.md +107 -0
- package/docs/reference/decisions/0056-a-global-jr2-hands-off-to-the-instances-own-and-an-instance-has-one-kit-version.md +62 -0
- package/docs/reference/decisions/0057-a-turn-is-its-frame-its-dials-and-whether-it-continues.md +152 -0
- package/docs/reference/decisions/0058-a-harness-answers-the-orchestrator-alone.md +108 -0
- package/docs/reference/decisions/0059-a-harness-holds-stand-ins-and-the-custodian-holds-the-keys.md +427 -0
- package/docs/reference/decisions/0060-a-workspace-states-its-size-and-jr2-reserves-all-of-it.md +111 -0
- package/docs/reference/decisions/0061-a-memory-kill-ends-the-agents-processes-not-the-harness.md +83 -0
- package/docs/reference/decisions/0062-jr2-briefs-the-agent-on-its-seat-never-on-its-task.md +239 -0
- package/docs/reference/decisions/0063-the-orchestrator-watches-the-cluster.md +82 -0
- package/docs/reference/decisions/0064-a-workspace-waits-for-capacity.md +79 -0
- package/docs/reference/decisions/0065-a-persist-survives-a-crash-and-history-is-a-week.md +65 -0
- package/docs/reference/decisions/0066-a-model-tier-runs-a-real-model-and-a-change-to-what-it-reads-runs-the-tier.md +552 -0
- package/docs/reference/decisions/0067-an-effect-is-an-actor-slot-and-runs-at-most-once-unless-marked-idempotent.md +458 -0
- package/docs/reference/decisions/0068-an-effector-holds-an-effects-secrets-and-signs-its-wire.md +475 -0
- package/docs/reference/decisions/0069-the-orchestrator-is-a-kit-image-and-an-instance-publishes-its-assembly.md +180 -0
- package/docs/reference/decisions/0070-a-machine-lends-its-parts-to-a-chart.md +334 -0
- package/docs/reference/decisions/0071-a-run-starts-a-run-through-a-dispatch-effect.md +183 -0
- package/docs/reference/decisions/0072-the-docs-ship-inside-the-kit-and-an-instances-agents-md-indexes-them.md +144 -0
- package/docs/reference/decisions/0073-a-machine-fails-a-run-with-fail-and-an-uncaught-failure-ends-it-failed.md +122 -0
- package/docs/reference/decisions/0074-an-unrouted-mechanism-event-is-refused-at-load-and-faults-the-run.md +76 -0
- package/docs/reference/decisions/0075-a-machine-cuts-a-worktree-and-the-workspace-only-clones.md +295 -0
- package/docs/reference/decisions/0076-an-agents-control-credential-lives-only-where-no-workspace-code-runs.md +320 -0
- package/docs/reference/decisions/0077-jr2-requires-landlock-on-every-sandbox-node.md +79 -0
- package/docs/reference/decisions.md +86 -0
- package/docs/reference/glossary.md +687 -0
- package/docs/reference/http-api.md +1386 -0
- package/docs/reference/machines.md +189 -0
- package/docs/reference/mechanism-events.md +72 -0
- package/docs/why.md +207 -0
- package/package.json +5 -3
- package/src/actor.ts +694 -106
- package/src/agent.ts +114 -38
- package/src/ambient.ts +3 -4
- package/src/assembly-checks.ts +189 -7
- package/src/cause.ts +234 -0
- package/src/chart.ts +345 -46
- package/src/charts.ts +43 -8
- package/src/config.ts +440 -178
- package/src/custodian.lua +17 -5
- package/src/custodian.ts +325 -99
- package/src/customize.ts +199 -49
- package/src/dispatch-effect.ts +945 -0
- package/src/door-compat.ts +217 -0
- package/src/durability.ts +11 -4
- package/src/effect-checks.ts +50 -3
- package/src/effect.ts +641 -128
- package/src/effector-wire.ts +165 -13
- package/src/fail.ts +222 -0
- package/src/harness-client.ts +587 -50
- package/src/harness-env.ts +33 -0
- package/src/held-secrets.ts +125 -16
- package/src/holds.ts +3 -0
- package/src/http-effect.ts +556 -58
- package/src/http.ts +480 -30
- package/src/index.ts +74 -82
- package/src/instance.ts +68 -8
- package/src/internal.ts +85 -0
- package/src/kube-client.ts +6 -3
- package/src/machine-doc.ts +24 -7
- package/src/mechanism-routes.ts +168 -0
- package/src/model-keys.generated.ts +53 -0
- package/src/model-keys.ts +42 -58
- package/src/names.ts +19 -6
- package/src/notices.ts +483 -41
- package/src/open-body.ts +242 -40
- package/src/open-effect.ts +81 -8
- package/src/open.ts +90 -6
- package/src/parts.ts +213 -30
- package/src/party.ts +101 -2
- package/src/pick.ts +497 -11
- package/src/pool.ts +282 -50
- package/src/registration.ts +133 -12
- package/src/repo-identity.ts +7 -3
- package/src/repos.ts +22 -3
- package/src/run-host.ts +665 -45
- package/src/run-output.ts +38 -0
- package/src/sandbox-effect.ts +457 -71
- package/src/sandbox-kube.ts +66 -17
- package/src/secret-placement.ts +59 -17
- package/src/server.ts +3 -0
- package/src/setup.ts +325 -62
- package/src/size.ts +121 -9
- package/src/snapshot-store.ts +54 -10
- package/src/stub-harness.ts +44 -16
- package/src/timers.ts +14 -1
- package/src/tokens.ts +107 -32
- package/src/vocabulary.ts +88 -14
- package/src/wire.ts +100 -26
- package/src/workspace.ts +771 -238
- package/src/worktree.ts +249 -0
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: CLI
|
|
3
|
+
description: "Every jr2 command: its synopsis, its arguments, flags and env vars, and what it prints."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CLI
|
|
7
|
+
|
|
8
|
+
The `jr2` binary: orchestrate agentic workflows ([ADR-0009](decisions/0009-cli-and-instance-interface.md)). `jr2 --help` prints the same table as this page, and `jr2 <command> --help` prints one command.
|
|
9
|
+
|
|
10
|
+
Commands: [`version`](#version), [`init`](#init), [`check`](#check), [`up`](#up), [`down`](#down), [`gc`](#gc), [`kit push`](#kit-push), [`run`](#run), [`runs`](#runs), [`status`](#status), [`logs`](#logs), [`send`](#send).
|
|
11
|
+
|
|
12
|
+
<a id="global-options"></a>
|
|
13
|
+
|
|
14
|
+
## Global options
|
|
15
|
+
|
|
16
|
+
These address the deployment; each lists the verbs that take it ([ADR-0019](decisions/0019-one-converging-command-against-the-current-context.md)).
|
|
17
|
+
|
|
18
|
+
| Flag | Variable | Description | Taken by |
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
|
+
| `-n, --namespace <ns>` | | the deployment's namespace (default: the config's `name`, then the Instance folder's name) | [`version`](#version), [`up`](#up), [`down`](#down), [`run`](#run), [`runs`](#runs), [`status`](#status), [`logs`](#logs), [`send`](#send) |
|
|
21
|
+
| `--context <ctx>` | | the kube context (default: kubectl's current context) | [`version`](#version), [`up`](#up), [`down`](#down), [`gc`](#gc), [`run`](#run), [`runs`](#runs), [`status`](#status), [`logs`](#logs), [`send`](#send) |
|
|
22
|
+
| `--url <u>` | `JR2_URL` | attach to a specific orchestrator (skips kube entirely) | [`version`](#version), [`run`](#run), [`runs`](#runs), [`status`](#status), [`logs`](#logs), [`send`](#send) |
|
|
23
|
+
| | `JR2_TOKEN` | the Instance token to send: with `--url` / `JR2_URL` the only one, and otherwise used in place of the one read from the cluster | [`run`](#run), [`runs`](#runs), [`status`](#status), [`logs`](#logs), [`send`](#send) |
|
|
24
|
+
|
|
25
|
+
## Commands
|
|
26
|
+
|
|
27
|
+
<a id="version"></a>
|
|
28
|
+
|
|
29
|
+
### `jr2 version`
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
jr2 version [--local] [--json] [--url <u>] [-n <ns>] [--context <ctx>]
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
What runs here (this jr2, the global that handed off, the Instance's Kit) and what the cluster runs.
|
|
36
|
+
|
|
37
|
+
--local skips the cluster.
|
|
38
|
+
|
|
39
|
+
Also spelled `jr2 --version`.
|
|
40
|
+
|
|
41
|
+
**Flags**
|
|
42
|
+
|
|
43
|
+
| Flag | Description |
|
|
44
|
+
| --- | --- |
|
|
45
|
+
| `--local` | report what runs here and skip the cluster |
|
|
46
|
+
| `--json` | print the one report object on stdout instead of the table |
|
|
47
|
+
| `--url <u>` | attach to a specific orchestrator (skips kube entirely) |
|
|
48
|
+
| `-n, --namespace <ns>` | the deployment's namespace (default: the config's `name`, then the Instance folder's name) |
|
|
49
|
+
| `--context <ctx>` | the kube context (default: kubectl's current context) |
|
|
50
|
+
|
|
51
|
+
**Environment**
|
|
52
|
+
|
|
53
|
+
| Variable | Description |
|
|
54
|
+
| --- | --- |
|
|
55
|
+
| `JR2_URL` | the orchestrator to attach to, when `--url` is not given |
|
|
56
|
+
| `JR2_HANDOFF_FROM` | set by the global `jr2` that handed off to this one, which the report names |
|
|
57
|
+
|
|
58
|
+
**Output**: report, a table on stdout, or the one report object with `--json`. See [Output](#output).
|
|
59
|
+
|
|
60
|
+
**Decisions**: [ADR-0009](decisions/0009-cli-and-instance-interface.md), [ADR-0056](decisions/0056-a-global-jr2-hands-off-to-the-instances-own-and-an-instance-has-one-kit-version.md).
|
|
61
|
+
|
|
62
|
+
<a id="init"></a>
|
|
63
|
+
|
|
64
|
+
### `jr2 init`
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
jr2 init [dir] [--name <n>]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Scaffold a new instance folder.
|
|
71
|
+
|
|
72
|
+
Writes AGENTS.md, with the jr2 docs index between its two jr2-docs markers (empty when this jr2 has no docs bundle), and a CLAUDE.md that imports it.
|
|
73
|
+
|
|
74
|
+
**Arguments**
|
|
75
|
+
|
|
76
|
+
| Argument | Required | Description |
|
|
77
|
+
| --- | --- | --- |
|
|
78
|
+
| `dir` | no | the folder to scaffold (default: the current directory) |
|
|
79
|
+
|
|
80
|
+
**Flags**
|
|
81
|
+
|
|
82
|
+
| Flag | Description |
|
|
83
|
+
| --- | --- |
|
|
84
|
+
| `--name <n>` | the package name in package.json (default: the folder's name) |
|
|
85
|
+
|
|
86
|
+
**Output**: activity, activity on stderr only. See [Output](#output).
|
|
87
|
+
|
|
88
|
+
**Decisions**: [ADR-0009](decisions/0009-cli-and-instance-interface.md), [ADR-0072](decisions/0072-the-docs-ship-inside-the-kit-and-an-instances-agents-md-indexes-them.md).
|
|
89
|
+
|
|
90
|
+
<a id="check"></a>
|
|
91
|
+
|
|
92
|
+
### `jr2 check`
|
|
93
|
+
|
|
94
|
+
```sh
|
|
95
|
+
jr2 check
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Typecheck this instance and load its workflows, as `jr2 up` does first, with no cluster.
|
|
99
|
+
|
|
100
|
+
Runs the check that `jr2 up` runs before it stages the Assembly, and exits 1 with the same refusal: a type error, a module that refuses to load (a refusal of `createMachine`, `defineEvent` or `workspace()`), an Open part, a Chart file, a dispatch, an Effect secret or a Size.
|
|
101
|
+
|
|
102
|
+
Reads no kube context and writes no file, so an Assistant runs it before it gives a change to the user.
|
|
103
|
+
|
|
104
|
+
**Output**: activity, activity on stderr only. See [Output](#output).
|
|
105
|
+
|
|
106
|
+
**Decisions**: [ADR-0050](decisions/0050-what-code-names-config-declares-what-the-cli-names-discovery-finds.md).
|
|
107
|
+
|
|
108
|
+
<a id="up"></a>
|
|
109
|
+
|
|
110
|
+
### `jr2 up`
|
|
111
|
+
|
|
112
|
+
```sh
|
|
113
|
+
jr2 up [--yes] [--force] [--skip-provider-preflight] [-n <ns>] [--context <ctx>]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Converge the current kube context to this instance.
|
|
117
|
+
|
|
118
|
+
Reads each `git.credentials` token from the env var it names, after the Instance's .env.
|
|
119
|
+
|
|
120
|
+
Before the cluster work, sets the text between the jr2-docs markers in AGENTS.md to the docs index of the Kit version, and changes nothing outside them; a folder with no markers is left alone.
|
|
121
|
+
|
|
122
|
+
**Flags**
|
|
123
|
+
|
|
124
|
+
| Flag | Description |
|
|
125
|
+
| --- | --- |
|
|
126
|
+
| `--yes` | answer the questions non-interactively: confirm first-time setup, and take the recommended git ssh key source (for CI) |
|
|
127
|
+
| `--force` | build every image again, even one already built or deployed |
|
|
128
|
+
| `--skip-provider-preflight` | do not run the provider preflight: no check pod checks the models, so a check that fails when the model works does not stop the converge |
|
|
129
|
+
| `-n, --namespace <ns>` | the deployment's namespace (default: the config's `name`, then the Instance folder's name) |
|
|
130
|
+
| `--context <ctx>` | the kube context (default: kubectl's current context) |
|
|
131
|
+
|
|
132
|
+
**Environment**
|
|
133
|
+
|
|
134
|
+
| Variable | Description |
|
|
135
|
+
| --- | --- |
|
|
136
|
+
| `NO_COLOR` | draws the git ssh key menu without highlight |
|
|
137
|
+
|
|
138
|
+
**Output**: activity, activity on stderr only. See [Output](#output).
|
|
139
|
+
|
|
140
|
+
**Decisions**: [ADR-0019](decisions/0019-one-converging-command-against-the-current-context.md), [ADR-0051](decisions/0051-a-repo-is-a-slot-on-the-workspace-and-a-cache-on-the-node.md), [ADR-0069](decisions/0069-the-orchestrator-is-a-kit-image-and-an-instance-publishes-its-assembly.md), [ADR-0072](decisions/0072-the-docs-ship-inside-the-kit-and-an-instances-agents-md-indexes-them.md).
|
|
141
|
+
|
|
142
|
+
<a id="down"></a>
|
|
143
|
+
|
|
144
|
+
### `jr2 down`
|
|
145
|
+
|
|
146
|
+
```sh
|
|
147
|
+
jr2 down [--all] [--yes] [-n <ns>] [--context <ctx>]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Remove the instance from the cluster.
|
|
151
|
+
|
|
152
|
+
--all: operator too; --yes: no confirmation.
|
|
153
|
+
|
|
154
|
+
**Flags**
|
|
155
|
+
|
|
156
|
+
| Flag | Description |
|
|
157
|
+
| --- | --- |
|
|
158
|
+
| `--all` | also uninstall the per-cluster operator |
|
|
159
|
+
| `--yes` | do not ask for confirmation (for CI) |
|
|
160
|
+
| `-n, --namespace <ns>` | the deployment's namespace (default: the config's `name`, then the Instance folder's name) |
|
|
161
|
+
| `--context <ctx>` | the kube context (default: kubectl's current context) |
|
|
162
|
+
|
|
163
|
+
**Output**: activity, activity on stderr only. See [Output](#output).
|
|
164
|
+
|
|
165
|
+
**Decisions**: [ADR-0019](decisions/0019-one-converging-command-against-the-current-context.md).
|
|
166
|
+
|
|
167
|
+
<a id="gc"></a>
|
|
168
|
+
|
|
169
|
+
### `jr2 gc`
|
|
170
|
+
|
|
171
|
+
```sh
|
|
172
|
+
jr2 gc [--dry-run] [--repo-ttl <ttl>] [--context <ctx>]
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Remove jr2's images that no live instance names, and Repo resources no Machine binds and no run attached lately.
|
|
176
|
+
|
|
177
|
+
**Flags**
|
|
178
|
+
|
|
179
|
+
| Flag | Description |
|
|
180
|
+
| --- | --- |
|
|
181
|
+
| `--dry-run` | print what would be removed, and remove nothing |
|
|
182
|
+
| `--repo-ttl <ttl>` | how long since a run last attached before an unbound Repo is garbage (default: 7d) |
|
|
183
|
+
| `--context <ctx>` | the kube context (default: kubectl's current context) |
|
|
184
|
+
|
|
185
|
+
**Output**: activity, activity on stderr only. See [Output](#output).
|
|
186
|
+
|
|
187
|
+
**Decisions**: [ADR-0039](decisions/0039-image-garbage-collects-by-reachability.md), [ADR-0051](decisions/0051-a-repo-is-a-slot-on-the-workspace-and-a-cache-on-the-node.md).
|
|
188
|
+
|
|
189
|
+
<a id="kit-push"></a>
|
|
190
|
+
|
|
191
|
+
### `jr2 kit push`
|
|
192
|
+
|
|
193
|
+
```sh
|
|
194
|
+
jr2 kit push <registry>
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Mirror the published kit images into a registry.
|
|
198
|
+
|
|
199
|
+
The v0.6.0 kit images (harness, operator, orchestrator) from their canonical home, and the Custodian's pinned Envoy from its own, for a cluster whose `kitRegistry` names the registry.
|
|
200
|
+
|
|
201
|
+
**Arguments**
|
|
202
|
+
|
|
203
|
+
| Argument | Required | Description |
|
|
204
|
+
| --- | --- | --- |
|
|
205
|
+
| `registry` | yes | the registry to mirror into, as `kitRegistry` names it |
|
|
206
|
+
|
|
207
|
+
**Output**: result, one JSON result on stdout, and activity on stderr. See [Output](#output).
|
|
208
|
+
|
|
209
|
+
**Decisions**: [ADR-0044](decisions/0044-kit-images-live-at-a-canonical-home-a-self-host-mirrors-it.md), [ADR-0059](decisions/0059-a-harness-holds-stand-ins-and-the-custodian-holds-the-keys.md), [ADR-0069](decisions/0069-the-orchestrator-is-a-kit-image-and-an-instance-publishes-its-assembly.md).
|
|
210
|
+
|
|
211
|
+
<a id="run"></a>
|
|
212
|
+
|
|
213
|
+
### `jr2 run`
|
|
214
|
+
|
|
215
|
+
```sh
|
|
216
|
+
jr2 run <workflow> [--input <json>] [--detach] [--url <u>] [-n <ns>] [--context <ctx>]
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Start a run; stream activity, print terminal result.
|
|
220
|
+
|
|
221
|
+
--detach: just print the runId and return.
|
|
222
|
+
|
|
223
|
+
A Chart that the door refuses prints one line for each rule that it fails.
|
|
224
|
+
|
|
225
|
+
Exits 0 only for a run that ended done, and 1 for every other end: failed, error, cancelled, lost, drifted, or parked before it settled; a failed run prints its reason.
|
|
226
|
+
|
|
227
|
+
**Arguments**
|
|
228
|
+
|
|
229
|
+
| Argument | Required | Description |
|
|
230
|
+
| --- | --- | --- |
|
|
231
|
+
| `workflow` | yes | the workflow to start, or a named Chart as `<wrapper>/<name>` |
|
|
232
|
+
|
|
233
|
+
**Flags**
|
|
234
|
+
|
|
235
|
+
| Flag | Description |
|
|
236
|
+
| --- | --- |
|
|
237
|
+
| `--input <json>` | the run's input, as a JSON object (default: {}) |
|
|
238
|
+
| `--detach` | print the runId and return, and do not stream |
|
|
239
|
+
| `--url <u>` | attach to a specific orchestrator (skips kube entirely) |
|
|
240
|
+
| `-n, --namespace <ns>` | the deployment's namespace (default: the config's `name`, then the Instance folder's name) |
|
|
241
|
+
| `--context <ctx>` | the kube context (default: kubectl's current context) |
|
|
242
|
+
|
|
243
|
+
**Environment**
|
|
244
|
+
|
|
245
|
+
| Variable | Description |
|
|
246
|
+
| --- | --- |
|
|
247
|
+
| `JR2_URL` | the orchestrator to attach to, when `--url` is not given |
|
|
248
|
+
| `JR2_TOKEN` | the Instance token to send: with `--url` / `JR2_URL` the only one, and otherwise used in place of the one read from the cluster |
|
|
249
|
+
|
|
250
|
+
**Output**: result, one JSON result on stdout, and activity on stderr. See [Output](#output).
|
|
251
|
+
|
|
252
|
+
**Decisions**: [ADR-0009](decisions/0009-cli-and-instance-interface.md), [ADR-0070](decisions/0070-a-machine-lends-its-parts-to-a-chart.md), [ADR-0073](decisions/0073-a-machine-fails-a-run-with-fail-and-an-uncaught-failure-ends-it-failed.md).
|
|
253
|
+
|
|
254
|
+
<a id="runs"></a>
|
|
255
|
+
|
|
256
|
+
### `jr2 runs`
|
|
257
|
+
|
|
258
|
+
```sh
|
|
259
|
+
jr2 runs [--workflows] [--url <u>] [-n <ns>] [--context <ctx>]
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
List live runs; "placing" names the Workspaces that wait for capacity, and "status `<runId>`" says why.
|
|
263
|
+
|
|
264
|
+
The Workflows a run can start on stderr, each with its origin (machine, chart file, chart) and a Chart wrapper's Charts under it; --workflows prints that listing as the result.
|
|
265
|
+
|
|
266
|
+
A runtime Chart has no verb: PUT or DELETE /workflows/`<wrapper>`/charts/`<name>` with the Instance token (an MCP or curl), then `jr2 run <wrapper>/<name>` starts it.
|
|
267
|
+
|
|
268
|
+
**Flags**
|
|
269
|
+
|
|
270
|
+
| Flag | Description |
|
|
271
|
+
| --- | --- |
|
|
272
|
+
| `--workflows` | print the Workflow listing as the JSON result instead |
|
|
273
|
+
| `--url <u>` | attach to a specific orchestrator (skips kube entirely) |
|
|
274
|
+
| `-n, --namespace <ns>` | the deployment's namespace (default: the config's `name`, then the Instance folder's name) |
|
|
275
|
+
| `--context <ctx>` | the kube context (default: kubectl's current context) |
|
|
276
|
+
|
|
277
|
+
**Environment**
|
|
278
|
+
|
|
279
|
+
| Variable | Description |
|
|
280
|
+
| --- | --- |
|
|
281
|
+
| `JR2_URL` | the orchestrator to attach to, when `--url` is not given |
|
|
282
|
+
| `JR2_TOKEN` | the Instance token to send: with `--url` / `JR2_URL` the only one, and otherwise used in place of the one read from the cluster |
|
|
283
|
+
|
|
284
|
+
**Output**: result, one JSON result on stdout, and activity on stderr. See [Output](#output).
|
|
285
|
+
|
|
286
|
+
**Decisions**: [ADR-0009](decisions/0009-cli-and-instance-interface.md), [ADR-0064](decisions/0064-a-workspace-waits-for-capacity.md), [ADR-0070](decisions/0070-a-machine-lends-its-parts-to-a-chart.md).
|
|
287
|
+
|
|
288
|
+
<a id="status"></a>
|
|
289
|
+
|
|
290
|
+
### `jr2 status`
|
|
291
|
+
|
|
292
|
+
```sh
|
|
293
|
+
jr2 status [runId] [--json] [--url <u>] [-n <ns>] [--context <ctx>]
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Print a run's current status (read-through), or the instance's Repos, per node, when given none.
|
|
297
|
+
|
|
298
|
+
A failed run prints its reason beside the result: failed: `<reason>`.
|
|
299
|
+
|
|
300
|
+
**Arguments**
|
|
301
|
+
|
|
302
|
+
| Argument | Required | Description |
|
|
303
|
+
| --- | --- | --- |
|
|
304
|
+
| `runId` | no | the run to read; without one, the instance's Repos |
|
|
305
|
+
|
|
306
|
+
**Flags**
|
|
307
|
+
|
|
308
|
+
| Flag | Description |
|
|
309
|
+
| --- | --- |
|
|
310
|
+
| `--json` | print the one report object on stdout instead of the table (without a runId) |
|
|
311
|
+
| `--url <u>` | attach to a specific orchestrator (skips kube entirely) |
|
|
312
|
+
| `-n, --namespace <ns>` | the deployment's namespace (default: the config's `name`, then the Instance folder's name) |
|
|
313
|
+
| `--context <ctx>` | the kube context (default: kubectl's current context) |
|
|
314
|
+
|
|
315
|
+
**Environment**
|
|
316
|
+
|
|
317
|
+
| Variable | Description |
|
|
318
|
+
| --- | --- |
|
|
319
|
+
| `JR2_URL` | the orchestrator to attach to, when `--url` is not given |
|
|
320
|
+
| `JR2_TOKEN` | the Instance token to send: with `--url` / `JR2_URL` the only one, and otherwise used in place of the one read from the cluster |
|
|
321
|
+
|
|
322
|
+
**Output**: `jr2 status <runId>`: result, one JSON result on stdout, and activity on stderr; `jr2 bare status`: report, a table on stdout, or the one report object with `--json`. See [Output](#output).
|
|
323
|
+
|
|
324
|
+
**Decisions**: [ADR-0048](decisions/0048-the-orchestrator-boots-without-its-repos.md), [ADR-0051](decisions/0051-a-repo-is-a-slot-on-the-workspace-and-a-cache-on-the-node.md), [ADR-0073](decisions/0073-a-machine-fails-a-run-with-fail-and-an-uncaught-failure-ends-it-failed.md).
|
|
325
|
+
|
|
326
|
+
<a id="logs"></a>
|
|
327
|
+
|
|
328
|
+
### `jr2 logs`
|
|
329
|
+
|
|
330
|
+
```sh
|
|
331
|
+
jr2 logs <runId> [-f] [--url <u>] [-n <ns>] [--context <ctx>]
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
Replay a run's status; -f to follow until it settles.
|
|
335
|
+
|
|
336
|
+
**Arguments**
|
|
337
|
+
|
|
338
|
+
| Argument | Required | Description |
|
|
339
|
+
| --- | --- | --- |
|
|
340
|
+
| `runId` | yes | the run, or a unique prefix of its id |
|
|
341
|
+
|
|
342
|
+
**Flags**
|
|
343
|
+
|
|
344
|
+
| Flag | Description |
|
|
345
|
+
| --- | --- |
|
|
346
|
+
| `-f, --follow` | follow until the run settles |
|
|
347
|
+
| `--url <u>` | attach to a specific orchestrator (skips kube entirely) |
|
|
348
|
+
| `-n, --namespace <ns>` | the deployment's namespace (default: the config's `name`, then the Instance folder's name) |
|
|
349
|
+
| `--context <ctx>` | the kube context (default: kubectl's current context) |
|
|
350
|
+
|
|
351
|
+
**Environment**
|
|
352
|
+
|
|
353
|
+
| Variable | Description |
|
|
354
|
+
| --- | --- |
|
|
355
|
+
| `JR2_URL` | the orchestrator to attach to, when `--url` is not given |
|
|
356
|
+
| `JR2_TOKEN` | the Instance token to send: with `--url` / `JR2_URL` the only one, and otherwise used in place of the one read from the cluster |
|
|
357
|
+
|
|
358
|
+
**Output**: result, one JSON result on stdout, and activity on stderr. See [Output](#output).
|
|
359
|
+
|
|
360
|
+
**Decisions**: [ADR-0009](decisions/0009-cli-and-instance-interface.md).
|
|
361
|
+
|
|
362
|
+
<a id="send"></a>
|
|
363
|
+
|
|
364
|
+
### `jr2 send`
|
|
365
|
+
|
|
366
|
+
```sh
|
|
367
|
+
jr2 send <runId> --event CANCEL [--keep] [--url <u>] [-n <ns>] [--context <ctx>]
|
|
368
|
+
jr2 send <runId> --gate <gate> --event <name> [--input <json>] [--url <u>] [-n <ns>]
|
|
369
|
+
[--context <ctx>]
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
Abandon a live run, or deliver a workflow event to an open gate.
|
|
373
|
+
|
|
374
|
+
With `--event CANCEL`, `--keep`: abandon a live run and destroy its Workspaces; --keep keeps them for inspection until the idle timeout.
|
|
375
|
+
|
|
376
|
+
With `--gate <gate>`, `--event <name>`, `--input <json>`: deliver a workflow event to an open gate.
|
|
377
|
+
|
|
378
|
+
**Arguments**
|
|
379
|
+
|
|
380
|
+
| Argument | Required | Description |
|
|
381
|
+
| --- | --- | --- |
|
|
382
|
+
| `runId` | yes | the run, or a unique prefix of its id |
|
|
383
|
+
|
|
384
|
+
**Flags**
|
|
385
|
+
|
|
386
|
+
| Flag | Description |
|
|
387
|
+
| --- | --- |
|
|
388
|
+
| `--event <name>` | CANCEL (run control), or with --gate an event the gate accepts Required. |
|
|
389
|
+
| `--gate <gate>` | the open gate to deliver the event to |
|
|
390
|
+
| `--input <json>` | the event's input, as a JSON object (with --gate) |
|
|
391
|
+
| `--keep` | with --event CANCEL: keep the Workspaces for inspection until the idle timeout |
|
|
392
|
+
| `--url <u>` | attach to a specific orchestrator (skips kube entirely) |
|
|
393
|
+
| `-n, --namespace <ns>` | the deployment's namespace (default: the config's `name`, then the Instance folder's name) |
|
|
394
|
+
| `--context <ctx>` | the kube context (default: kubectl's current context) |
|
|
395
|
+
|
|
396
|
+
**Environment**
|
|
397
|
+
|
|
398
|
+
| Variable | Description |
|
|
399
|
+
| --- | --- |
|
|
400
|
+
| `JR2_URL` | the orchestrator to attach to, when `--url` is not given |
|
|
401
|
+
| `JR2_TOKEN` | the Instance token to send: with `--url` / `JR2_URL` the only one, and otherwise used in place of the one read from the cluster |
|
|
402
|
+
|
|
403
|
+
**Output**: activity, activity on stderr only. See [Output](#output).
|
|
404
|
+
|
|
405
|
+
**Decisions**: [ADR-0009](decisions/0009-cli-and-instance-interface.md), [ADR-0011](decisions/0011-workflow-defined-events.md), [ADR-0013](decisions/0013-the-agent-reaches-its-machine-through-a-container-it-cannot-read.md), [ADR-0025](decisions/0025-cancel-ends-a-run-stop-parks-it.md).
|
|
406
|
+
|
|
407
|
+
<a id="run-ids"></a>
|
|
408
|
+
|
|
409
|
+
## Run ids
|
|
410
|
+
|
|
411
|
+
Any `<runId>` above may be abbreviated to a unique prefix (4+ chars, git-style); an ambiguous prefix lists the candidates and fails rather than guessing.
|
|
412
|
+
|
|
413
|
+
<a id="env"></a>
|
|
414
|
+
|
|
415
|
+
## Env
|
|
416
|
+
|
|
417
|
+
The Instance's .env is loaded before any verb; a variable already set in the environment wins.
|
|
418
|
+
|
|
419
|
+
<a id="output"></a>
|
|
420
|
+
|
|
421
|
+
## Output
|
|
422
|
+
|
|
423
|
+
Result verbs (kit push, run, runs, status `<runId>`, logs) print one JSON result on stdout and activity on stderr, so `jr2 run … | jq` yields the result; report verbs (version, bare status) print a table on stdout, or the one object with --json; activity verbs (init, check, up, down, gc, send) print activity alone.
|
|
424
|
+
|
|
425
|
+
<a id="exit-codes"></a>
|
|
426
|
+
|
|
427
|
+
## Exit codes
|
|
428
|
+
|
|
429
|
+
| Code | Meaning |
|
|
430
|
+
| --- | --- |
|
|
431
|
+
| 0 | ok |
|
|
432
|
+
| 1 | runtime error |
|
|
433
|
+
| 2 | usage |
|