@jr2/orchestrator 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/console/components/app.ts +55 -15
- package/console/components/bottom-drawer.ts +259 -0
- package/console/components/drawer.ts +14 -6
- package/console/components/fleet.ts +36 -13
- package/console/components/machine-pane.ts +61 -5
- package/console/components/nav.ts +54 -8
- package/console/conversation.ts +161 -0
- package/console/login.ts +123 -0
- package/console/main.ts +600 -60
- package/console/store.ts +611 -64
- package/console/style.css +231 -0
- package/docs/agents-block.md +2 -2
- package/docs/concepts/agents-and-turns.md +86 -9
- package/docs/concepts/architecture.md +41 -28
- package/docs/concepts/callers-and-hooks.md +205 -0
- package/docs/concepts/charts.md +7 -5
- package/docs/concepts/composition.md +10 -1
- package/docs/concepts/converge.md +4 -2
- package/docs/concepts/durable-runs.md +43 -16
- package/docs/concepts/effects.md +50 -22
- package/docs/concepts/gates.md +95 -25
- package/docs/concepts/machines-and-workflows.md +5 -4
- package/docs/concepts/pools-and-sources.md +187 -11
- package/docs/concepts/secrets-and-trust.md +73 -33
- package/docs/concepts/the-menu.md +11 -0
- package/docs/concepts/workspaces.md +6 -5
- package/docs/get-started/a-model-decides.md +14 -13
- package/docs/get-started/an-agent-in-a-sandbox.md +43 -34
- package/docs/get-started/connect-a-model.md +1 -1
- package/docs/get-started/create-an-instance.md +17 -14
- package/docs/guides/add-tools-to-the-sandbox.md +55 -11
- package/docs/guides/answer-a-gate-from-a-forge.md +304 -0
- package/docs/guides/answer-a-gate.md +74 -37
- package/docs/guides/bind-open-parts.md +24 -8
- package/docs/guides/call-an-mcp-tool-from-a-machine.md +572 -0
- package/docs/guides/cancel-a-run.md +26 -16
- package/docs/guides/fix-a-failed-converge.md +18 -6
- package/docs/guides/give-a-caller-a-scope.md +203 -0
- package/docs/guides/give-an-agent-mcp-tools.md +422 -0
- package/docs/guides/iterate-on-a-machine-on-kind.md +10 -9
- package/docs/guides/let-an-agent-write-a-chart.md +9 -6
- package/docs/guides/look-inside-a-sandbox.md +101 -31
- package/docs/guides/open-the-console.md +63 -14
- package/docs/guides/read-a-conversation.md +225 -0
- package/docs/guides/run-a-chart-by-name.md +17 -16
- package/docs/guides/run-one-worker-per-item.md +15 -9
- package/docs/guides/set-an-agents-access-and-dials.md +2 -0
- package/docs/guides/start-a-run-for-each-alert.md +290 -0
- package/docs/guides/start-a-run-from-a-run.md +18 -16
- package/docs/guides/start-a-run.md +24 -18
- package/docs/guides/steer-an-agent.md +332 -0
- package/docs/guides/use-a-hosted-provider.md +1 -1
- package/docs/guides/watch-a-run.md +127 -121
- package/docs/guides/write-a-hook-kind.md +238 -0
- package/docs/guides/write-a-tool-as-an-mcp-server.md +351 -0
- package/docs/guides/write-a-workflow.md +17 -7
- package/docs/llms.txt +81 -15
- package/docs/reference/authoring-surface/agent.md +1 -1
- package/docs/reference/authoring-surface/answer.md +1 -1
- package/docs/reference/authoring-surface/arg.md +1 -1
- package/docs/reference/authoring-surface/basic.md +1 -1
- package/docs/reference/authoring-surface/bearer.md +1 -1
- package/docs/reference/authoring-surface/branchname.md +1 -1
- package/docs/reference/authoring-surface/carry.md +23 -0
- package/docs/reference/authoring-surface/chartschema.md +1 -1
- package/docs/reference/authoring-surface/chartschemafor.md +1 -1
- package/docs/reference/authoring-surface/command.md +1 -1
- package/docs/reference/authoring-surface/customize.md +4 -1
- package/docs/reference/authoring-surface/defineconfig.md +1 -1
- package/docs/reference/authoring-surface/defineevent.md +1 -1
- package/docs/reference/authoring-surface/dispatch.md +5 -4
- package/docs/reference/authoring-surface/fail.md +1 -1
- package/docs/reference/authoring-surface/file.md +1 -1
- package/docs/reference/authoring-surface/frompick.md +1 -1
- package/docs/reference/authoring-surface/gate.md +118 -0
- package/docs/reference/authoring-surface/group-agents.md +15 -0
- package/docs/reference/authoring-surface/group-charts.md +16 -0
- package/docs/reference/authoring-surface/group-composition.md +25 -0
- package/docs/reference/authoring-surface/group-config.md +17 -0
- package/docs/reference/authoring-surface/group-effects.md +48 -0
- package/docs/reference/authoring-surface/group-failure.md +13 -0
- package/docs/reference/authoring-surface/group-gates.md +16 -0
- package/docs/reference/authoring-surface/group-machine-and-events.md +15 -0
- package/docs/reference/authoring-surface/group-steering.md +12 -0
- package/docs/reference/authoring-surface/group-types-these-signatures-name.md +137 -0
- package/docs/reference/authoring-surface/group-workspaces-and-repos.md +15 -0
- package/docs/reference/authoring-surface/http.md +1 -1
- package/docs/reference/authoring-surface/isfailure.md +1 -1
- package/docs/reference/authoring-surface/isready.md +1 -1
- package/docs/reference/authoring-surface/jr2setup.md +13 -3
- package/docs/reference/authoring-surface/mcp.md +107 -0
- package/docs/reference/authoring-surface/open.md +5 -3
- package/docs/reference/authoring-surface/openbody.md +1 -1
- package/docs/reference/authoring-surface/paramsof.md +1 -1
- package/docs/reference/authoring-surface/pool.md +77 -9
- package/docs/reference/authoring-surface/push.md +1 -1
- package/docs/reference/authoring-surface/readyof.md +1 -1
- package/docs/reference/authoring-surface/reread.md +19 -0
- package/docs/reference/authoring-surface/secret.md +1 -1
- package/docs/reference/authoring-surface/sentby.md +1 -1
- package/docs/reference/authoring-surface/skip.md +22 -0
- package/docs/reference/authoring-surface/source.md +56 -1
- package/docs/reference/authoring-surface/steer.md +93 -0
- package/docs/reference/authoring-surface/text.md +1 -1
- package/docs/reference/authoring-surface/type-agentdefinition.md +14 -1
- package/docs/reference/authoring-surface/type-agentmcpserver.md +54 -0
- package/docs/reference/authoring-surface/type-anyframepath.md +1 -1
- package/docs/reference/authoring-surface/type-anyworktreepath.md +1 -1
- package/docs/reference/authoring-surface/type-binding.md +1 -1
- package/docs/reference/authoring-surface/type-caller.md +40 -0
- package/docs/reference/authoring-surface/type-callerrecord.md +32 -0
- package/docs/reference/authoring-surface/type-carry.md +19 -0
- package/docs/reference/authoring-surface/type-chainlink.md +3 -3
- package/docs/reference/authoring-surface/type-commandoutput.md +1 -1
- package/docs/reference/authoring-surface/type-customize.md +16 -1
- package/docs/reference/authoring-surface/type-delivered.md +17 -0
- package/docs/reference/authoring-surface/type-deliveredevent.md +18 -0
- package/docs/reference/authoring-surface/type-dispatchdefinition.md +4 -3
- package/docs/reference/authoring-surface/type-dispatchoutput.md +1 -1
- package/docs/reference/authoring-surface/type-effectbinding.md +12 -2
- package/docs/reference/authoring-surface/type-framepath.md +1 -1
- package/docs/reference/authoring-surface/type-gatebinding.md +15 -0
- package/docs/reference/authoring-surface/type-gatehooks.md +12 -0
- package/docs/reference/authoring-surface/type-gatelook.md +37 -0
- package/docs/reference/authoring-surface/type-gateoutcome.md +32 -0
- package/docs/reference/authoring-surface/type-gatereply.md +19 -0
- package/docs/reference/authoring-surface/type-gateslot.md +21 -0
- package/docs/reference/authoring-surface/type-gateslotinput.md +13 -0
- package/docs/reference/authoring-surface/type-gateslotparts.md +18 -0
- package/docs/reference/authoring-surface/type-gateslots.md +12 -0
- package/docs/reference/authoring-surface/type-gatetypesat.md +13 -0
- package/docs/reference/authoring-surface/type-hostinjectedinput.md +1 -1
- package/docs/reference/authoring-surface/type-httpoutput.md +1 -1
- package/docs/reference/authoring-surface/type-jr2config.md +37 -2
- package/docs/reference/authoring-surface/type-lateroutcome.md +1 -1
- package/docs/reference/authoring-surface/type-lends.md +5 -1
- package/docs/reference/authoring-surface/type-lookoutput.md +14 -0
- package/docs/reference/authoring-surface/type-mcpcalloutput.md +78 -0
- package/docs/reference/authoring-surface/type-mcpnotreturned.md +42 -0
- package/docs/reference/authoring-surface/type-mcpoptions.md +47 -0
- package/docs/reference/authoring-surface/type-mcpoutput.md +50 -0
- package/docs/reference/authoring-surface/type-mcpreadoutput.md +53 -0
- package/docs/reference/authoring-surface/type-mcpremoteserver.md +50 -0
- package/docs/reference/authoring-surface/type-mcpserver.md +41 -0
- package/docs/reference/authoring-surface/type-mcpstdioserver.md +42 -0
- package/docs/reference/authoring-surface/type-namedsecret.md +4 -4
- package/docs/reference/authoring-surface/type-openbodydeclaration.md +1 -1
- package/docs/reference/authoring-surface/type-openbodyoutput.md +1 -1
- package/docs/reference/authoring-surface/type-poolnextinput.md +1 -1
- package/docs/reference/authoring-surface/type-poolspec.md +11 -6
- package/docs/reference/authoring-surface/type-pushoutput.md +1 -1
- package/docs/reference/authoring-surface/type-pushsourcespec.md +38 -0
- package/docs/reference/authoring-surface/type-readsourcespec.md +47 -0
- package/docs/reference/authoring-surface/type-reposlot.md +1 -1
- package/docs/reference/authoring-surface/type-reread.md +18 -0
- package/docs/reference/authoring-surface/type-runsconfig.md +41 -0
- package/docs/reference/authoring-surface/type-sender.md +26 -1
- package/docs/reference/authoring-surface/type-sendercallerfield.md +14 -0
- package/docs/reference/authoring-surface/type-size.md +1 -1
- package/docs/reference/authoring-surface/type-skip.md +19 -0
- package/docs/reference/authoring-surface/type-sourcehooks.md +23 -0
- package/docs/reference/authoring-surface/type-sourcein.md +25 -0
- package/docs/reference/authoring-surface/type-sourcereply.md +18 -0
- package/docs/reference/authoring-surface/type-sourcespec.md +16 -7
- package/docs/reference/authoring-surface/type-sourceverdict.md +49 -0
- package/docs/reference/authoring-surface/type-standingpoolmachine.md +12 -0
- package/docs/reference/authoring-surface/type-standingpoolspec.md +51 -0
- package/docs/reference/authoring-surface/type-steerargs.md +20 -0
- package/docs/reference/authoring-surface/type-thinkinglevel.md +1 -1
- package/docs/reference/authoring-surface/type-usercontainer.md +1 -1
- package/docs/reference/authoring-surface/type-workspaced.md +1 -1
- package/docs/reference/authoring-surface/type-worktreefound.md +3 -3
- package/docs/reference/authoring-surface/type-worktreeinput.md +1 -1
- package/docs/reference/authoring-surface/type-worktreeoptions.md +1 -1
- package/docs/reference/authoring-surface/type-worktreeoutput.md +1 -1
- package/docs/reference/authoring-surface/type-worktreepath.md +1 -1
- package/docs/reference/authoring-surface/type-worktreeready.md +1 -1
- package/docs/reference/authoring-surface/type-worktreerefused.md +4 -4
- package/docs/reference/authoring-surface/workspace.md +1 -1
- package/docs/reference/authoring-surface/worktree.md +1 -1
- package/docs/reference/authoring-surface.md +88 -167
- package/docs/reference/cli.md +413 -74
- package/docs/reference/config.md +235 -2
- package/docs/reference/decisions/0002-duplex-streaming-actor.md +71 -11
- package/docs/reference/decisions/0005-sandbox-pod-composition.md +14 -10
- package/docs/reference/decisions/0006-agent-control-surface.md +4 -4
- package/docs/reference/decisions/0007-durable-machine-state.md +1 -1
- package/docs/reference/decisions/0009-cli-and-instance-interface.md +150 -49
- package/docs/reference/decisions/0010-bdd-acceptance-tests.md +5 -3
- package/docs/reference/decisions/0011-workflow-defined-events.md +256 -12
- package/docs/reference/decisions/0012-workspace-wrapper-machine.md +9 -2
- package/docs/reference/decisions/0013-the-agent-reaches-its-machine-through-a-container-it-cannot-read.md +20 -14
- package/docs/reference/decisions/0014-observation-is-open-run-state-is-not.md +53 -27
- package/docs/reference/decisions/0015-authoring-surface-absorbs-the-mechanism.md +18 -14
- package/docs/reference/decisions/0017-pool-over-a-source-port.md +226 -12
- package/docs/reference/decisions/0018-instance-agents-are-definitions-jr2-assembles-the-harness.md +15 -7
- package/docs/reference/decisions/0019-one-converging-command-against-the-current-context.md +32 -18
- package/docs/reference/decisions/0021-workspace-continuity-is-a-lease-that-answers-back.md +14 -1
- package/docs/reference/decisions/0022-observation-is-a-level-triggered-feed.md +4 -4
- package/docs/reference/decisions/0023-the-harness-prints-the-conversation.md +116 -34
- package/docs/reference/decisions/0024-an-agents-turn-ends-with-the-state-that-asked-for-it.md +38 -37
- package/docs/reference/decisions/0025-cancel-ends-a-run-stop-parks-it.md +10 -5
- package/docs/reference/decisions/0027-the-harness-is-jr2s-own-server-flue-retires-the-wire-stays.md +7 -6
- package/docs/reference/decisions/0028-what-an-agent-may-do-to-the-workspace-is-part-of-its-definition.md +23 -7
- package/docs/reference/decisions/0029-a-menu-is-fixed-for-a-conversation-and-a-turn-is-told-its-allowed-picks.md +18 -10
- package/docs/reference/decisions/0030-a-snapshot-names-the-machine-it-was-written-under.md +3 -2
- package/docs/reference/decisions/0031-menu-only-agents-run-on-the-instance-harness.md +23 -18
- package/docs/reference/decisions/0032-the-console-unlocks-with-a-callers-credential.md +101 -0
- package/docs/reference/decisions/0033-a-machine-declares-the-input-that-starts-it.md +4 -3
- package/docs/reference/decisions/0034-the-console-renders-with-preact-and-the-server-erases-the-types.md +6 -6
- package/docs/reference/decisions/0037-an-instance-builds-its-sandbox-images-jr2-injects-the-harness.md +5 -4
- package/docs/reference/decisions/0049-a-machine-carries-its-parts-and-composes-by-invoke.md +19 -19
- package/docs/reference/decisions/0050-what-code-names-config-declares-what-the-cli-names-discovery-finds.md +6 -1
- package/docs/reference/decisions/0054-the-kit-ships-machines-and-a-shipped-machine-leaves-its-parts-open.md +55 -40
- package/docs/reference/decisions/0055-a-release-is-a-pushed-tag-and-the-publish-guard-is-the-credential.md +14 -13
- package/docs/reference/decisions/0057-a-turn-is-its-frame-its-dials-and-whether-it-continues.md +7 -0
- package/docs/reference/decisions/0058-a-harness-answers-the-orchestrator-alone.md +13 -7
- package/docs/reference/decisions/0059-a-harness-holds-stand-ins-and-the-custodian-holds-the-keys.md +38 -30
- package/docs/reference/decisions/0062-jr2-briefs-the-agent-on-its-seat-never-on-its-task.md +64 -17
- package/docs/reference/decisions/0063-the-orchestrator-watches-the-cluster.md +2 -1
- package/docs/reference/decisions/0064-a-workspace-waits-for-capacity.md +2 -2
- package/docs/reference/decisions/0065-a-persist-survives-a-crash-and-history-is-kept-for-a-set-time.md +109 -0
- package/docs/reference/decisions/0066-a-model-tier-runs-a-real-model-and-a-change-to-what-it-reads-runs-the-tier.md +51 -23
- package/docs/reference/decisions/0067-an-effect-is-an-actor-slot-and-runs-at-most-once-unless-marked-idempotent.md +94 -54
- package/docs/reference/decisions/0068-an-effector-holds-an-effects-secrets-and-signs-its-wire.md +101 -47
- package/docs/reference/decisions/0069-the-orchestrator-is-a-kit-image-and-an-instance-publishes-its-assembly.md +32 -9
- package/docs/reference/decisions/0070-a-machine-lends-its-parts-to-a-chart.md +17 -13
- package/docs/reference/decisions/0071-a-run-starts-a-run-through-a-dispatch-effect.md +56 -30
- package/docs/reference/decisions/0072-the-docs-ship-inside-the-kit-and-an-instances-agents-md-indexes-them.md +35 -25
- package/docs/reference/decisions/0075-a-machine-cuts-a-worktree-and-the-workspace-only-clones.md +4 -3
- package/docs/reference/decisions/0076-an-agents-control-credential-lives-only-where-no-workspace-code-runs.md +37 -10
- package/docs/reference/decisions/0078-a-caller-comes-from-one-authenticator-seam-and-acts-within-its-scopes.md +285 -0
- package/docs/reference/decisions/0079-an-agent-holds-mcp-tools-a-machine-calls-them-as-an-effect-and-the-machine-is-the-approval.md +198 -0
- package/docs/reference/decisions.md +6 -4
- package/docs/reference/glossary.md +96 -42
- package/docs/reference/hooks.md +1077 -0
- package/docs/reference/http-api.md +976 -149
- package/docs/why.md +2 -1
- package/package.json +10 -3
- package/src/actor.ts +36 -10
- package/src/agent.ts +50 -0
- package/src/assembly-checks.ts +530 -4
- package/src/callers.ts +245 -0
- package/src/chart.ts +52 -7
- package/src/config.ts +550 -1
- package/src/conversations.ts +453 -0
- package/src/custodian.ts +8 -2
- package/src/customize.ts +143 -4
- package/src/dispatch-effect.ts +142 -26
- package/src/durability.ts +2 -0
- package/src/duration.ts +20 -0
- package/src/effect-checks.ts +2 -1
- package/src/effect.ts +60 -7
- package/src/effector-wire.ts +272 -27
- package/src/gate-brand.ts +16 -0
- package/src/gate.ts +634 -48
- package/src/harness-client.ts +10 -4
- package/src/held-secrets.ts +72 -23
- package/src/holds.ts +2 -2
- package/src/hook-kinds/discord.ts +92 -0
- package/src/hook-kinds/door.ts +107 -0
- package/src/hook-kinds/github.ts +89 -0
- package/src/hook-kinds/gitlab.ts +72 -0
- package/src/hook-kinds/hook.ts +7 -0
- package/src/hook-kinds/index.ts +465 -0
- package/src/hook-kinds/slack.ts +151 -0
- package/src/hook-kinds/webhook.ts +113 -0
- package/src/hooks.ts +506 -0
- package/src/http-effect.ts +76 -38
- package/src/http.ts +889 -94
- package/src/index.ts +16 -5
- package/src/instance.ts +196 -26
- package/src/internal.ts +22 -3
- package/src/machine-doc.ts +26 -1
- package/src/mcp-effect.ts +424 -0
- package/src/mount-digest.ts +41 -7
- package/src/names.ts +64 -2
- package/src/notices.ts +138 -10
- package/src/open-body.ts +25 -11
- package/src/open-effect.ts +17 -4
- package/src/open.ts +4 -2
- package/src/parts.ts +87 -9
- package/src/party.ts +2 -1
- package/src/pick.ts +2 -2
- package/src/pool.ts +1142 -163
- package/src/registration.ts +203 -13
- package/src/run-host.ts +1509 -171
- package/src/run-list.ts +191 -0
- package/src/sandbox-kube.ts +53 -5
- package/src/secret-placement.ts +239 -33
- package/src/server.ts +53 -4
- package/src/setup.ts +72 -32
- package/src/snapshot-store.ts +565 -48
- package/src/steer.ts +111 -0
- package/src/stub-harness.ts +6 -2
- package/src/tokens.ts +263 -22
- package/src/wire.ts +17 -0
- package/src/workspace.ts +50 -6
- package/src/worktree.ts +3 -3
- package/docs/reference/decisions/0032-the-console-unlocks-with-the-instance-token.md +0 -61
- package/docs/reference/decisions/0065-a-persist-survives-a-crash-and-history-is-a-week.md +0 -65
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: SourceHooks
|
|
3
|
+
description: "A Source's handlers, by Hook kind and event key."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `SourceHooks`
|
|
7
|
+
|
|
8
|
+
Type, in `@jr2/orchestrator/src/pool.ts`. The signature of an export, or a type that it names, names this type. The [Authoring surface](../authoring-surface.md) page lists each export. This type is not an export of `@jr2/orchestrator`, so a workflow module does not import it by name.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
type SourceHooks<Out, TInput = unknown> = KindHooks<SourceIn<TInput>, Out | Skip>;
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
A Source's handlers, by Hook kind and event key. They have the shape of a Gate's `hooks`. A
|
|
15
|
+
handler is pure and synchronous. It gives `Out` or `skip(reason)`, never `undefined`; a throw is a
|
|
16
|
+
skip with the error as its reason.
|
|
17
|
+
|
|
18
|
+
**Fields**
|
|
19
|
+
|
|
20
|
+
- `github` (optional): `typeof github`
|
|
21
|
+
- `gitlab` (optional): `typeof gitlab`
|
|
22
|
+
- `slack` (optional): `typeof slack`
|
|
23
|
+
- `discord` (optional): `typeof discord`
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: SourceIn
|
|
3
|
+
description: "What a Source's handler reads beside `payload`."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `SourceIn`
|
|
7
|
+
|
|
8
|
+
Type, in `@jr2/orchestrator/src/pool.ts`. The signature of an export, or a type that it names, names this type. The [Authoring surface](../authoring-surface.md) page lists each export. This type is not an export of `@jr2/orchestrator`, so a workflow module does not import it by name.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
type SourceIn<TInput = unknown> = {
|
|
12
|
+
readonly caller: CallerRecord;
|
|
13
|
+
readonly delivery: string;
|
|
14
|
+
readonly input: TInput;
|
|
15
|
+
};
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
What a Source's handler reads beside `payload`. `caller` is the Hook as a Caller, `delivery` the
|
|
19
|
+
delivery id, and `input` the Pool's input (`{}` for a standing Pool).
|
|
20
|
+
|
|
21
|
+
**Fields**
|
|
22
|
+
|
|
23
|
+
- `caller`: [`CallerRecord`](type-callerrecord.md)
|
|
24
|
+
- `delivery`: `string`
|
|
25
|
+
- `input`: `TInput`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: SourceReply
|
|
3
|
+
description: "The text that the person who acted reads, from this Source's verdict (ADR-0011, ADR-0017)."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `SourceReply`
|
|
7
|
+
|
|
8
|
+
Type, in `@jr2/orchestrator/src/pool.ts`. It is an export of `@jr2/orchestrator`, in the [Composition](group-composition.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
type SourceReply<T> = (verdict: SourceVerdict<T>, at: { readonly caller: CallerRecord }) => string | undefined;
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The text that the person who acted reads, from this Source's verdict ([ADR-0011](../decisions/0011-workflow-defined-events.md), [ADR-0017](../decisions/0017-pool-over-a-source-port.md)).
|
|
15
|
+
Plain text: the Hook kind escapes it and puts it in its envelope. Pure and synchronous.
|
|
16
|
+
`undefined` or `""`: this Source says nothing. It runs only for a delivery whose answer a person
|
|
17
|
+
reads (`slack`, `discord`). The text of a `skipped` verdict shows only when no other target gave
|
|
18
|
+
a text.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: SourceSpec
|
|
3
|
-
description:
|
|
3
|
+
description: A pull Source.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# `SourceSpec`
|
|
@@ -16,10 +16,12 @@ type SourceSpec<T, TInput = unknown> = {
|
|
|
16
16
|
| PromiseActorLogic<null, PoolNextInput<TInput>>;
|
|
17
17
|
wake?: EventDef;
|
|
18
18
|
pollEvery?: number;
|
|
19
|
+
hooks?: SourceHooks<Reread, TInput>;
|
|
20
|
+
reply?: SourceReply<T>;
|
|
19
21
|
};
|
|
20
22
|
```
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
A pull Source. `next` claims one item at a time. Make one with [`source`](source.md).
|
|
23
25
|
|
|
24
26
|
**Fields**
|
|
25
27
|
|
|
@@ -30,15 +32,22 @@ Where a Pool gets its work items: the Source. Make one with [`source`](source.md
|
|
|
30
32
|
the items that workers have now, `settled`, the ids of the items that finished or failed, and
|
|
31
33
|
`input`, the Pool's input. It must not give again an item in `active` or `settled`. It resolves
|
|
32
34
|
to a [`SourceNextResult`](type-sourcenextresult.md). The Pool calls it when the run starts, after each claim, and when a worker settles. While workers run and no item is ready, it
|
|
33
|
-
also calls it on `wake` and every `pollEvery`.
|
|
35
|
+
also calls it on `wake`, on a Hook's `reread()` and every `pollEvery`.
|
|
34
36
|
- `wake` (optional): [`EventDef`](type-eventdef.md)
|
|
35
37
|
|
|
36
38
|
An external event, made with `defineEvent`, that tells the Pool that new work is ready, for
|
|
37
|
-
example from
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
example from `jr2 send`. While workers run and no item is ready, it makes the Pool call `next`
|
|
40
|
+
at once. The Pool serves it as a Gate named `source` for the whole run (`<path>.source` when the
|
|
41
|
+
Pool is composed in another Machine). Default: none.
|
|
40
42
|
- `pollEvery` (optional): `number`
|
|
41
43
|
|
|
42
44
|
While workers run and no item is ready, call `next` again after this many milliseconds. Use
|
|
43
45
|
it for a Source whose items change while the run waits. Default: none, so the Pool calls
|
|
44
|
-
`next` again only when a worker settles
|
|
46
|
+
`next` again only when a worker settles, `wake` comes, or a Hook's handler gives `reread()`.
|
|
47
|
+
- `hooks` (optional): `SourceHooks<Reread, TInput>`
|
|
48
|
+
|
|
49
|
+
What a Hook's delivery does: a handler for each Hook kind id and event key gives `reread()` or
|
|
50
|
+
`skip(reason)`. Default: none.
|
|
51
|
+
- `reply` (optional): `SourceReply<T>`
|
|
52
|
+
|
|
53
|
+
The text that the person who acted reads, from the verdict. Default: none.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: SourceVerdict
|
|
3
|
+
description: "A Source's verdict on one delivery, as its `reply` reads it (ADR-0017)."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `SourceVerdict`
|
|
7
|
+
|
|
8
|
+
Type, in `@jr2/orchestrator/src/pool.ts`. It is an export of `@jr2/orchestrator`, in the [Composition](group-composition.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
type SourceVerdict<T> =
|
|
12
|
+
| { readonly verdict: "held"; readonly key: string; readonly item: T }
|
|
13
|
+
| { readonly verdict: "existing"; readonly key: string; readonly item: T; readonly run?: string }
|
|
14
|
+
| { readonly verdict: "hold-full"; readonly key: string; readonly item: T }
|
|
15
|
+
| { readonly verdict: "reread" }
|
|
16
|
+
| { readonly verdict: "skipped"; readonly reason: string };
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
A Source's verdict on one delivery, as its `reply` reads it ([ADR-0017](../decisions/0017-pool-over-a-source-port.md)). `held`, `existing` and
|
|
20
|
+
`hold-full` come from a push Source and carry the item and its key; `existing` names the run
|
|
21
|
+
that holds the key, when one holds it. `reread` comes from a Source that can read. `skipped`
|
|
22
|
+
carries the reason. A Pool that is paused has no run, so no `reply` of it runs: the door writes
|
|
23
|
+
that text.
|
|
24
|
+
|
|
25
|
+
**Forms**: it is one of these objects.
|
|
26
|
+
|
|
27
|
+
- Form 1: `verdict`, `key`, `item`
|
|
28
|
+
|
|
29
|
+
- `verdict`: `"held"`
|
|
30
|
+
- `key`: `string`
|
|
31
|
+
- `item`: `T`
|
|
32
|
+
- Form 2: `verdict`, `key`, `item`, `run`
|
|
33
|
+
|
|
34
|
+
- `verdict`: `"existing"`
|
|
35
|
+
- `key`: `string`
|
|
36
|
+
- `item`: `T`
|
|
37
|
+
- `run` (optional): `string`
|
|
38
|
+
- Form 3: `verdict`, `key`, `item`
|
|
39
|
+
|
|
40
|
+
- `verdict`: `"hold-full"`
|
|
41
|
+
- `key`: `string`
|
|
42
|
+
- `item`: `T`
|
|
43
|
+
- Form 4: `verdict`
|
|
44
|
+
|
|
45
|
+
- `verdict`: `"reread"`
|
|
46
|
+
- Form 5: `verdict`, `reason`
|
|
47
|
+
|
|
48
|
+
- `verdict`: `"skipped"`
|
|
49
|
+
- `reason`: `string`
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: StandingPoolMachine
|
|
3
|
+
description: A type that the Authoring surface names.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `StandingPoolMachine`
|
|
7
|
+
|
|
8
|
+
Type, in `@jr2/orchestrator/src/pool.ts`. It is type plumbing: it computes a type from the types of a Machine or of its parts, and a workflow module does not write it. The signature of an export, or a type that it names, names this type, so its declaration is here. The [Authoring surface](../authoring-surface.md) page lists each export.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
type StandingPoolMachine = StateMachine<any, any, any, any, any, any, any, any, any, {}, never, any, any, any>;
|
|
12
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: StandingPoolSpec
|
|
3
|
+
description: What you pass to `pool()` for a Pool of runs.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `StandingPoolSpec`
|
|
7
|
+
|
|
8
|
+
Type, in `@jr2/orchestrator/src/pool.ts`. The signature of an export, or a type that it names, names this type. The [Authoring surface](../authoring-surface.md) page lists each export. This type is not an export of `@jr2/orchestrator`, so a workflow module does not import it by name.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
type StandingPoolSpec<T, I> = {
|
|
12
|
+
id?: string;
|
|
13
|
+
standing: true;
|
|
14
|
+
source: SourceSpec<T, {}> | SourceSpec<T> | ReadSourceSpec<T, {}> | ReadSourceSpec<T> | PushSourceSpec<T>;
|
|
15
|
+
itemId: (item: T) => string;
|
|
16
|
+
cap: number;
|
|
17
|
+
itemInput?: (item: T) => I;
|
|
18
|
+
input?: never;
|
|
19
|
+
onDrained?: never;
|
|
20
|
+
failures?: never;
|
|
21
|
+
};
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
What you pass to `pool()` for a Pool of runs. The worker is a `dispatch(...)` slot, and the Pool
|
|
25
|
+
stands. Each item is a run of the slot's Workflow, keyed by `itemId` in that Workflow.
|
|
26
|
+
|
|
27
|
+
**Fields**
|
|
28
|
+
|
|
29
|
+
- `id` (optional): `string`
|
|
30
|
+
|
|
31
|
+
The Machine id: the name of the Pool in the Console. Default: `"pool"`.
|
|
32
|
+
- `standing`: `true`
|
|
33
|
+
|
|
34
|
+
A Pool of runs stands: jr2 keeps one live run of its Workflow, and it never ends by itself.
|
|
35
|
+
- `source`: `SourceSpec<T, {}> | SourceSpec<T> | ReadSourceSpec<T, {}> | ReadSourceSpec<T> | PushSourceSpec<T>`
|
|
36
|
+
|
|
37
|
+
Where the items come from: a pull, a read or a push Source. Make it with [`source`](source.md).
|
|
38
|
+
- `itemId`: `(item: T) => string`
|
|
39
|
+
|
|
40
|
+
The id of an item, and the KEY of its run in the slot's Workflow ([ADR-0071](../decisions/0071-a-run-starts-a-run-through-a-dispatch-effect.md)): every Pool, every
|
|
41
|
+
hand-over and every `jr2 run` that gives this key to that Workflow gets the same run while its
|
|
42
|
+
row lives — while it is live, and for `runs.retain` after it ends.
|
|
43
|
+
- `cap`: `number`
|
|
44
|
+
|
|
45
|
+
The most LIVE runs at once that this Pool dispatched. You must choose it.
|
|
46
|
+
- `itemInput` (optional): `(item: T) => I`
|
|
47
|
+
|
|
48
|
+
Make a run's body from its item. Default: the item itself.
|
|
49
|
+
- `input` (optional): `never`
|
|
50
|
+
- `onDrained` (optional): `never`
|
|
51
|
+
- `failures` (optional): `never`
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: SteerArgs
|
|
3
|
+
description: "The arguments a `steer` text or `from` function gets: the Machine's context and the event that the transition takes."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `SteerArgs`
|
|
7
|
+
|
|
8
|
+
Type, in `@jr2/orchestrator/src/steer.ts`. The signature of an export, or a type that it names, names this type. The [Authoring surface](../authoring-surface.md) page lists each export. This type is not an export of `@jr2/orchestrator`, so a workflow module does not import it by name.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
type SteerArgs<TContext, TEvent> = { context: TContext; event: TEvent };
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The arguments a `steer` text or `from` function gets: the Machine's context and the event that
|
|
15
|
+
the transition takes.
|
|
16
|
+
|
|
17
|
+
**Fields**
|
|
18
|
+
|
|
19
|
+
- `context`: `TContext`
|
|
20
|
+
- `event`: `TEvent`
|
|
@@ -5,7 +5,7 @@ description: "How hard the model thinks before it answers: `\"off\"`, `\"minimal
|
|
|
5
5
|
|
|
6
6
|
# `ThinkingLevel`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/agent.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/agent.ts`. It is an export of `@jr2/orchestrator`, in the [Agents](group-agents.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type ThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
|
|
@@ -5,7 +5,7 @@ description: "The User Container in its object form: its image, and its part of
|
|
|
5
5
|
|
|
6
6
|
# `UserContainer`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/size.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/size.ts`. It is an export of `@jr2/orchestrator`, in the [Composition](group-composition.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type UserContainer = {
|
|
@@ -5,7 +5,7 @@ description: "The input of a `workspace()` body: the run input, plus `workspace`
|
|
|
5
5
|
|
|
6
6
|
# `Workspaced`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/workspace.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/workspace.ts`. It is an export of `@jr2/orchestrator`, in the [Workspaces and Repos](group-workspaces-and-repos.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type Workspaced<TInput, TSlots extends string> = WithoutEmptyIndex<TInput> & {
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: WorktreeFound
|
|
3
|
-
description:
|
|
3
|
+
description: What a cut found.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# `WorktreeFound`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`, in the [Effects](group-effects.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type WorktreeFound = "held" | "local" | "remote" | "none" | "commit" | (string & {});
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
What a cut found
|
|
14
|
+
What a cut found. `held`: a cut made this Worktree earlier, so what is in it is earlier work;
|
|
15
15
|
`local`, a local branch; `remote`, `origin/<branch>`, now tracked; `none`, a new branch with no
|
|
16
16
|
upstream; `commit`, a detached cut. Open: a later value does not break an author's code.
|
|
@@ -5,7 +5,7 @@ description: "The input of a `worktree()`: a branch Worktree, or a detached one.
|
|
|
5
5
|
|
|
6
6
|
# `WorktreeInput`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`, in the [Effects](group-effects.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type WorktreeInput =
|
|
@@ -5,7 +5,7 @@ description: The options of `worktree()`.
|
|
|
5
5
|
|
|
6
6
|
# `WorktreeOptions`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`, in the [Effects](group-effects.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type WorktreeOptions = {
|
|
@@ -5,7 +5,7 @@ description: The output of a `worktree()`.
|
|
|
5
5
|
|
|
6
6
|
# `WorktreeOutput`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`, in the [Effects](group-effects.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type WorktreeOutput<S extends string = string> = WorktreeReady<S> | WorktreeRefused | Unknown | LaterOutcome;
|
|
@@ -5,7 +5,7 @@ description: A Worktree of the Repo Slots `S`.
|
|
|
5
5
|
|
|
6
6
|
# `WorktreePath`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`, in the [Effects](group-effects.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type WorktreePath<S extends string> = `/work/${S}/${NameStart}${string}`;
|
|
@@ -5,7 +5,7 @@ description: Type, an export of @jr2/orchestrator.
|
|
|
5
5
|
|
|
6
6
|
# `WorktreeReady`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`, in the [Effects](group-effects.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type WorktreeReady<S extends string = string> = {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: WorktreeRefused
|
|
3
|
-
description:
|
|
3
|
+
description: No Worktree, and nothing changed.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# `WorktreeRefused`
|
|
7
7
|
|
|
8
|
-
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Type, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`, in the [Effects](group-effects.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
type WorktreeRefused = { outcome: "refused"; reason: string };
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
No Worktree, and nothing changed
|
|
15
|
-
not agree with the first, a branch that another Worktree holds, an `expect` that does not hold, or a
|
|
14
|
+
No Worktree, and nothing changed. The cause is a bad path, a name git or the push refuses, a
|
|
15
|
+
re-cut that does not agree with the first, a branch that another Worktree holds, an `expect` that does not hold, or a
|
|
16
16
|
name that the remote cannot confirm.
|
|
17
17
|
|
|
18
18
|
**Fields**
|
|
@@ -5,7 +5,7 @@ description: "Run a body Machine in a Sandbox: a pod of its own, with a clone of
|
|
|
5
5
|
|
|
6
6
|
# `workspace`
|
|
7
7
|
|
|
8
|
-
Function, in `@jr2/orchestrator/src/workspace.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Function, in `@jr2/orchestrator/src/workspace.ts`. It is an export of `@jr2/orchestrator`, in the [Workspaces and Repos](group-workspaces-and-repos.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
## Overload 1
|
|
11
11
|
|
|
@@ -5,7 +5,7 @@ description: "Make a `worktree` Effect: it cuts a Worktree of a Repo Slot, or re
|
|
|
5
5
|
|
|
6
6
|
# `worktree`
|
|
7
7
|
|
|
8
|
-
Function, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`,
|
|
8
|
+
Function, in `@jr2/orchestrator/src/worktree.ts`. It is an export of `@jr2/orchestrator`, in the [Effects](group-effects.md) group of the [Authoring surface](../authoring-surface.md) page.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
function worktree(options: WorktreeOptions = {}): EffectLogic<WorktreeInput, WorktreeOutput>
|