@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.
Files changed (301) hide show
  1. package/console/components/app.ts +55 -15
  2. package/console/components/bottom-drawer.ts +259 -0
  3. package/console/components/drawer.ts +14 -6
  4. package/console/components/fleet.ts +36 -13
  5. package/console/components/machine-pane.ts +61 -5
  6. package/console/components/nav.ts +54 -8
  7. package/console/conversation.ts +161 -0
  8. package/console/login.ts +123 -0
  9. package/console/main.ts +600 -60
  10. package/console/store.ts +611 -64
  11. package/console/style.css +231 -0
  12. package/docs/agents-block.md +2 -2
  13. package/docs/concepts/agents-and-turns.md +86 -9
  14. package/docs/concepts/architecture.md +41 -28
  15. package/docs/concepts/callers-and-hooks.md +205 -0
  16. package/docs/concepts/charts.md +7 -5
  17. package/docs/concepts/composition.md +10 -1
  18. package/docs/concepts/converge.md +4 -2
  19. package/docs/concepts/durable-runs.md +43 -16
  20. package/docs/concepts/effects.md +50 -22
  21. package/docs/concepts/gates.md +95 -25
  22. package/docs/concepts/machines-and-workflows.md +5 -4
  23. package/docs/concepts/pools-and-sources.md +187 -11
  24. package/docs/concepts/secrets-and-trust.md +73 -33
  25. package/docs/concepts/the-menu.md +11 -0
  26. package/docs/concepts/workspaces.md +6 -5
  27. package/docs/get-started/a-model-decides.md +14 -13
  28. package/docs/get-started/an-agent-in-a-sandbox.md +43 -34
  29. package/docs/get-started/connect-a-model.md +1 -1
  30. package/docs/get-started/create-an-instance.md +17 -14
  31. package/docs/guides/add-tools-to-the-sandbox.md +55 -11
  32. package/docs/guides/answer-a-gate-from-a-forge.md +304 -0
  33. package/docs/guides/answer-a-gate.md +74 -37
  34. package/docs/guides/bind-open-parts.md +24 -8
  35. package/docs/guides/call-an-mcp-tool-from-a-machine.md +572 -0
  36. package/docs/guides/cancel-a-run.md +26 -16
  37. package/docs/guides/fix-a-failed-converge.md +18 -6
  38. package/docs/guides/give-a-caller-a-scope.md +203 -0
  39. package/docs/guides/give-an-agent-mcp-tools.md +422 -0
  40. package/docs/guides/iterate-on-a-machine-on-kind.md +10 -9
  41. package/docs/guides/let-an-agent-write-a-chart.md +9 -6
  42. package/docs/guides/look-inside-a-sandbox.md +101 -31
  43. package/docs/guides/open-the-console.md +63 -14
  44. package/docs/guides/read-a-conversation.md +225 -0
  45. package/docs/guides/run-a-chart-by-name.md +17 -16
  46. package/docs/guides/run-one-worker-per-item.md +15 -9
  47. package/docs/guides/set-an-agents-access-and-dials.md +2 -0
  48. package/docs/guides/start-a-run-for-each-alert.md +290 -0
  49. package/docs/guides/start-a-run-from-a-run.md +18 -16
  50. package/docs/guides/start-a-run.md +24 -18
  51. package/docs/guides/steer-an-agent.md +332 -0
  52. package/docs/guides/use-a-hosted-provider.md +1 -1
  53. package/docs/guides/watch-a-run.md +127 -121
  54. package/docs/guides/write-a-hook-kind.md +238 -0
  55. package/docs/guides/write-a-tool-as-an-mcp-server.md +351 -0
  56. package/docs/guides/write-a-workflow.md +17 -7
  57. package/docs/llms.txt +81 -15
  58. package/docs/reference/authoring-surface/agent.md +1 -1
  59. package/docs/reference/authoring-surface/answer.md +1 -1
  60. package/docs/reference/authoring-surface/arg.md +1 -1
  61. package/docs/reference/authoring-surface/basic.md +1 -1
  62. package/docs/reference/authoring-surface/bearer.md +1 -1
  63. package/docs/reference/authoring-surface/branchname.md +1 -1
  64. package/docs/reference/authoring-surface/carry.md +23 -0
  65. package/docs/reference/authoring-surface/chartschema.md +1 -1
  66. package/docs/reference/authoring-surface/chartschemafor.md +1 -1
  67. package/docs/reference/authoring-surface/command.md +1 -1
  68. package/docs/reference/authoring-surface/customize.md +4 -1
  69. package/docs/reference/authoring-surface/defineconfig.md +1 -1
  70. package/docs/reference/authoring-surface/defineevent.md +1 -1
  71. package/docs/reference/authoring-surface/dispatch.md +5 -4
  72. package/docs/reference/authoring-surface/fail.md +1 -1
  73. package/docs/reference/authoring-surface/file.md +1 -1
  74. package/docs/reference/authoring-surface/frompick.md +1 -1
  75. package/docs/reference/authoring-surface/gate.md +118 -0
  76. package/docs/reference/authoring-surface/group-agents.md +15 -0
  77. package/docs/reference/authoring-surface/group-charts.md +16 -0
  78. package/docs/reference/authoring-surface/group-composition.md +25 -0
  79. package/docs/reference/authoring-surface/group-config.md +17 -0
  80. package/docs/reference/authoring-surface/group-effects.md +48 -0
  81. package/docs/reference/authoring-surface/group-failure.md +13 -0
  82. package/docs/reference/authoring-surface/group-gates.md +16 -0
  83. package/docs/reference/authoring-surface/group-machine-and-events.md +15 -0
  84. package/docs/reference/authoring-surface/group-steering.md +12 -0
  85. package/docs/reference/authoring-surface/group-types-these-signatures-name.md +137 -0
  86. package/docs/reference/authoring-surface/group-workspaces-and-repos.md +15 -0
  87. package/docs/reference/authoring-surface/http.md +1 -1
  88. package/docs/reference/authoring-surface/isfailure.md +1 -1
  89. package/docs/reference/authoring-surface/isready.md +1 -1
  90. package/docs/reference/authoring-surface/jr2setup.md +13 -3
  91. package/docs/reference/authoring-surface/mcp.md +107 -0
  92. package/docs/reference/authoring-surface/open.md +5 -3
  93. package/docs/reference/authoring-surface/openbody.md +1 -1
  94. package/docs/reference/authoring-surface/paramsof.md +1 -1
  95. package/docs/reference/authoring-surface/pool.md +77 -9
  96. package/docs/reference/authoring-surface/push.md +1 -1
  97. package/docs/reference/authoring-surface/readyof.md +1 -1
  98. package/docs/reference/authoring-surface/reread.md +19 -0
  99. package/docs/reference/authoring-surface/secret.md +1 -1
  100. package/docs/reference/authoring-surface/sentby.md +1 -1
  101. package/docs/reference/authoring-surface/skip.md +22 -0
  102. package/docs/reference/authoring-surface/source.md +56 -1
  103. package/docs/reference/authoring-surface/steer.md +93 -0
  104. package/docs/reference/authoring-surface/text.md +1 -1
  105. package/docs/reference/authoring-surface/type-agentdefinition.md +14 -1
  106. package/docs/reference/authoring-surface/type-agentmcpserver.md +54 -0
  107. package/docs/reference/authoring-surface/type-anyframepath.md +1 -1
  108. package/docs/reference/authoring-surface/type-anyworktreepath.md +1 -1
  109. package/docs/reference/authoring-surface/type-binding.md +1 -1
  110. package/docs/reference/authoring-surface/type-caller.md +40 -0
  111. package/docs/reference/authoring-surface/type-callerrecord.md +32 -0
  112. package/docs/reference/authoring-surface/type-carry.md +19 -0
  113. package/docs/reference/authoring-surface/type-chainlink.md +3 -3
  114. package/docs/reference/authoring-surface/type-commandoutput.md +1 -1
  115. package/docs/reference/authoring-surface/type-customize.md +16 -1
  116. package/docs/reference/authoring-surface/type-delivered.md +17 -0
  117. package/docs/reference/authoring-surface/type-deliveredevent.md +18 -0
  118. package/docs/reference/authoring-surface/type-dispatchdefinition.md +4 -3
  119. package/docs/reference/authoring-surface/type-dispatchoutput.md +1 -1
  120. package/docs/reference/authoring-surface/type-effectbinding.md +12 -2
  121. package/docs/reference/authoring-surface/type-framepath.md +1 -1
  122. package/docs/reference/authoring-surface/type-gatebinding.md +15 -0
  123. package/docs/reference/authoring-surface/type-gatehooks.md +12 -0
  124. package/docs/reference/authoring-surface/type-gatelook.md +37 -0
  125. package/docs/reference/authoring-surface/type-gateoutcome.md +32 -0
  126. package/docs/reference/authoring-surface/type-gatereply.md +19 -0
  127. package/docs/reference/authoring-surface/type-gateslot.md +21 -0
  128. package/docs/reference/authoring-surface/type-gateslotinput.md +13 -0
  129. package/docs/reference/authoring-surface/type-gateslotparts.md +18 -0
  130. package/docs/reference/authoring-surface/type-gateslots.md +12 -0
  131. package/docs/reference/authoring-surface/type-gatetypesat.md +13 -0
  132. package/docs/reference/authoring-surface/type-hostinjectedinput.md +1 -1
  133. package/docs/reference/authoring-surface/type-httpoutput.md +1 -1
  134. package/docs/reference/authoring-surface/type-jr2config.md +37 -2
  135. package/docs/reference/authoring-surface/type-lateroutcome.md +1 -1
  136. package/docs/reference/authoring-surface/type-lends.md +5 -1
  137. package/docs/reference/authoring-surface/type-lookoutput.md +14 -0
  138. package/docs/reference/authoring-surface/type-mcpcalloutput.md +78 -0
  139. package/docs/reference/authoring-surface/type-mcpnotreturned.md +42 -0
  140. package/docs/reference/authoring-surface/type-mcpoptions.md +47 -0
  141. package/docs/reference/authoring-surface/type-mcpoutput.md +50 -0
  142. package/docs/reference/authoring-surface/type-mcpreadoutput.md +53 -0
  143. package/docs/reference/authoring-surface/type-mcpremoteserver.md +50 -0
  144. package/docs/reference/authoring-surface/type-mcpserver.md +41 -0
  145. package/docs/reference/authoring-surface/type-mcpstdioserver.md +42 -0
  146. package/docs/reference/authoring-surface/type-namedsecret.md +4 -4
  147. package/docs/reference/authoring-surface/type-openbodydeclaration.md +1 -1
  148. package/docs/reference/authoring-surface/type-openbodyoutput.md +1 -1
  149. package/docs/reference/authoring-surface/type-poolnextinput.md +1 -1
  150. package/docs/reference/authoring-surface/type-poolspec.md +11 -6
  151. package/docs/reference/authoring-surface/type-pushoutput.md +1 -1
  152. package/docs/reference/authoring-surface/type-pushsourcespec.md +38 -0
  153. package/docs/reference/authoring-surface/type-readsourcespec.md +47 -0
  154. package/docs/reference/authoring-surface/type-reposlot.md +1 -1
  155. package/docs/reference/authoring-surface/type-reread.md +18 -0
  156. package/docs/reference/authoring-surface/type-runsconfig.md +41 -0
  157. package/docs/reference/authoring-surface/type-sender.md +26 -1
  158. package/docs/reference/authoring-surface/type-sendercallerfield.md +14 -0
  159. package/docs/reference/authoring-surface/type-size.md +1 -1
  160. package/docs/reference/authoring-surface/type-skip.md +19 -0
  161. package/docs/reference/authoring-surface/type-sourcehooks.md +23 -0
  162. package/docs/reference/authoring-surface/type-sourcein.md +25 -0
  163. package/docs/reference/authoring-surface/type-sourcereply.md +18 -0
  164. package/docs/reference/authoring-surface/type-sourcespec.md +16 -7
  165. package/docs/reference/authoring-surface/type-sourceverdict.md +49 -0
  166. package/docs/reference/authoring-surface/type-standingpoolmachine.md +12 -0
  167. package/docs/reference/authoring-surface/type-standingpoolspec.md +51 -0
  168. package/docs/reference/authoring-surface/type-steerargs.md +20 -0
  169. package/docs/reference/authoring-surface/type-thinkinglevel.md +1 -1
  170. package/docs/reference/authoring-surface/type-usercontainer.md +1 -1
  171. package/docs/reference/authoring-surface/type-workspaced.md +1 -1
  172. package/docs/reference/authoring-surface/type-worktreefound.md +3 -3
  173. package/docs/reference/authoring-surface/type-worktreeinput.md +1 -1
  174. package/docs/reference/authoring-surface/type-worktreeoptions.md +1 -1
  175. package/docs/reference/authoring-surface/type-worktreeoutput.md +1 -1
  176. package/docs/reference/authoring-surface/type-worktreepath.md +1 -1
  177. package/docs/reference/authoring-surface/type-worktreeready.md +1 -1
  178. package/docs/reference/authoring-surface/type-worktreerefused.md +4 -4
  179. package/docs/reference/authoring-surface/workspace.md +1 -1
  180. package/docs/reference/authoring-surface/worktree.md +1 -1
  181. package/docs/reference/authoring-surface.md +88 -167
  182. package/docs/reference/cli.md +413 -74
  183. package/docs/reference/config.md +235 -2
  184. package/docs/reference/decisions/0002-duplex-streaming-actor.md +71 -11
  185. package/docs/reference/decisions/0005-sandbox-pod-composition.md +14 -10
  186. package/docs/reference/decisions/0006-agent-control-surface.md +4 -4
  187. package/docs/reference/decisions/0007-durable-machine-state.md +1 -1
  188. package/docs/reference/decisions/0009-cli-and-instance-interface.md +150 -49
  189. package/docs/reference/decisions/0010-bdd-acceptance-tests.md +5 -3
  190. package/docs/reference/decisions/0011-workflow-defined-events.md +256 -12
  191. package/docs/reference/decisions/0012-workspace-wrapper-machine.md +9 -2
  192. package/docs/reference/decisions/0013-the-agent-reaches-its-machine-through-a-container-it-cannot-read.md +20 -14
  193. package/docs/reference/decisions/0014-observation-is-open-run-state-is-not.md +53 -27
  194. package/docs/reference/decisions/0015-authoring-surface-absorbs-the-mechanism.md +18 -14
  195. package/docs/reference/decisions/0017-pool-over-a-source-port.md +226 -12
  196. package/docs/reference/decisions/0018-instance-agents-are-definitions-jr2-assembles-the-harness.md +15 -7
  197. package/docs/reference/decisions/0019-one-converging-command-against-the-current-context.md +32 -18
  198. package/docs/reference/decisions/0021-workspace-continuity-is-a-lease-that-answers-back.md +14 -1
  199. package/docs/reference/decisions/0022-observation-is-a-level-triggered-feed.md +4 -4
  200. package/docs/reference/decisions/0023-the-harness-prints-the-conversation.md +116 -34
  201. package/docs/reference/decisions/0024-an-agents-turn-ends-with-the-state-that-asked-for-it.md +38 -37
  202. package/docs/reference/decisions/0025-cancel-ends-a-run-stop-parks-it.md +10 -5
  203. package/docs/reference/decisions/0027-the-harness-is-jr2s-own-server-flue-retires-the-wire-stays.md +7 -6
  204. package/docs/reference/decisions/0028-what-an-agent-may-do-to-the-workspace-is-part-of-its-definition.md +23 -7
  205. package/docs/reference/decisions/0029-a-menu-is-fixed-for-a-conversation-and-a-turn-is-told-its-allowed-picks.md +18 -10
  206. package/docs/reference/decisions/0030-a-snapshot-names-the-machine-it-was-written-under.md +3 -2
  207. package/docs/reference/decisions/0031-menu-only-agents-run-on-the-instance-harness.md +23 -18
  208. package/docs/reference/decisions/0032-the-console-unlocks-with-a-callers-credential.md +101 -0
  209. package/docs/reference/decisions/0033-a-machine-declares-the-input-that-starts-it.md +4 -3
  210. package/docs/reference/decisions/0034-the-console-renders-with-preact-and-the-server-erases-the-types.md +6 -6
  211. package/docs/reference/decisions/0037-an-instance-builds-its-sandbox-images-jr2-injects-the-harness.md +5 -4
  212. package/docs/reference/decisions/0049-a-machine-carries-its-parts-and-composes-by-invoke.md +19 -19
  213. package/docs/reference/decisions/0050-what-code-names-config-declares-what-the-cli-names-discovery-finds.md +6 -1
  214. package/docs/reference/decisions/0054-the-kit-ships-machines-and-a-shipped-machine-leaves-its-parts-open.md +55 -40
  215. package/docs/reference/decisions/0055-a-release-is-a-pushed-tag-and-the-publish-guard-is-the-credential.md +14 -13
  216. package/docs/reference/decisions/0057-a-turn-is-its-frame-its-dials-and-whether-it-continues.md +7 -0
  217. package/docs/reference/decisions/0058-a-harness-answers-the-orchestrator-alone.md +13 -7
  218. package/docs/reference/decisions/0059-a-harness-holds-stand-ins-and-the-custodian-holds-the-keys.md +38 -30
  219. package/docs/reference/decisions/0062-jr2-briefs-the-agent-on-its-seat-never-on-its-task.md +64 -17
  220. package/docs/reference/decisions/0063-the-orchestrator-watches-the-cluster.md +2 -1
  221. package/docs/reference/decisions/0064-a-workspace-waits-for-capacity.md +2 -2
  222. package/docs/reference/decisions/0065-a-persist-survives-a-crash-and-history-is-kept-for-a-set-time.md +109 -0
  223. 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
  224. package/docs/reference/decisions/0067-an-effect-is-an-actor-slot-and-runs-at-most-once-unless-marked-idempotent.md +94 -54
  225. package/docs/reference/decisions/0068-an-effector-holds-an-effects-secrets-and-signs-its-wire.md +101 -47
  226. package/docs/reference/decisions/0069-the-orchestrator-is-a-kit-image-and-an-instance-publishes-its-assembly.md +32 -9
  227. package/docs/reference/decisions/0070-a-machine-lends-its-parts-to-a-chart.md +17 -13
  228. package/docs/reference/decisions/0071-a-run-starts-a-run-through-a-dispatch-effect.md +56 -30
  229. package/docs/reference/decisions/0072-the-docs-ship-inside-the-kit-and-an-instances-agents-md-indexes-them.md +35 -25
  230. package/docs/reference/decisions/0075-a-machine-cuts-a-worktree-and-the-workspace-only-clones.md +4 -3
  231. package/docs/reference/decisions/0076-an-agents-control-credential-lives-only-where-no-workspace-code-runs.md +37 -10
  232. package/docs/reference/decisions/0078-a-caller-comes-from-one-authenticator-seam-and-acts-within-its-scopes.md +285 -0
  233. 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
  234. package/docs/reference/decisions.md +6 -4
  235. package/docs/reference/glossary.md +96 -42
  236. package/docs/reference/hooks.md +1077 -0
  237. package/docs/reference/http-api.md +976 -149
  238. package/docs/why.md +2 -1
  239. package/package.json +10 -3
  240. package/src/actor.ts +36 -10
  241. package/src/agent.ts +50 -0
  242. package/src/assembly-checks.ts +530 -4
  243. package/src/callers.ts +245 -0
  244. package/src/chart.ts +52 -7
  245. package/src/config.ts +550 -1
  246. package/src/conversations.ts +453 -0
  247. package/src/custodian.ts +8 -2
  248. package/src/customize.ts +143 -4
  249. package/src/dispatch-effect.ts +142 -26
  250. package/src/durability.ts +2 -0
  251. package/src/duration.ts +20 -0
  252. package/src/effect-checks.ts +2 -1
  253. package/src/effect.ts +60 -7
  254. package/src/effector-wire.ts +272 -27
  255. package/src/gate-brand.ts +16 -0
  256. package/src/gate.ts +634 -48
  257. package/src/harness-client.ts +10 -4
  258. package/src/held-secrets.ts +72 -23
  259. package/src/holds.ts +2 -2
  260. package/src/hook-kinds/discord.ts +92 -0
  261. package/src/hook-kinds/door.ts +107 -0
  262. package/src/hook-kinds/github.ts +89 -0
  263. package/src/hook-kinds/gitlab.ts +72 -0
  264. package/src/hook-kinds/hook.ts +7 -0
  265. package/src/hook-kinds/index.ts +465 -0
  266. package/src/hook-kinds/slack.ts +151 -0
  267. package/src/hook-kinds/webhook.ts +113 -0
  268. package/src/hooks.ts +506 -0
  269. package/src/http-effect.ts +76 -38
  270. package/src/http.ts +889 -94
  271. package/src/index.ts +16 -5
  272. package/src/instance.ts +196 -26
  273. package/src/internal.ts +22 -3
  274. package/src/machine-doc.ts +26 -1
  275. package/src/mcp-effect.ts +424 -0
  276. package/src/mount-digest.ts +41 -7
  277. package/src/names.ts +64 -2
  278. package/src/notices.ts +138 -10
  279. package/src/open-body.ts +25 -11
  280. package/src/open-effect.ts +17 -4
  281. package/src/open.ts +4 -2
  282. package/src/parts.ts +87 -9
  283. package/src/party.ts +2 -1
  284. package/src/pick.ts +2 -2
  285. package/src/pool.ts +1142 -163
  286. package/src/registration.ts +203 -13
  287. package/src/run-host.ts +1509 -171
  288. package/src/run-list.ts +191 -0
  289. package/src/sandbox-kube.ts +53 -5
  290. package/src/secret-placement.ts +239 -33
  291. package/src/server.ts +53 -4
  292. package/src/setup.ts +72 -32
  293. package/src/snapshot-store.ts +565 -48
  294. package/src/steer.ts +111 -0
  295. package/src/stub-harness.ts +6 -2
  296. package/src/tokens.ts +263 -22
  297. package/src/wire.ts +17 -0
  298. package/src/workspace.ts +50 -6
  299. package/src/worktree.ts +3 -3
  300. package/docs/reference/decisions/0032-the-console-unlocks-with-the-instance-token.md +0 -61
  301. package/docs/reference/decisions/0065-a-persist-survives-a-crash-and-history-is-a-week.md +0 -65
@@ -5,213 +5,134 @@ description: "Every name that @jr2/orchestrator exports from its root, by group,
5
5
 
6
6
  # Authoring surface
7
7
 
8
- The [Authoring surface](glossary.md#authoring-surface) is every name that `@jr2/orchestrator` exports from its root, and nothing else: a workflow module and `jr2.config.ts` import only these names. The groups and their order are those of the root's `src/index.ts`. This page gives each name its kind and the first sentence of its TSDoc. Each name has a page of its own, in `authoring-surface/`, with the file that declares it, its signature, and its TSDoc.
8
+ The [Authoring surface](glossary.md#authoring-surface) is every name that `@jr2/orchestrator` exports from its root, and nothing else: a workflow module and `jr2.config.ts` import only these names. The groups and their order are those of the root's `src/index.ts`. This page gives each group its description and its names. Each group has a page of its own, in `authoring-surface/`, which gives each name of the group its kind and the first sentence of its TSDoc. Each name has a page of its own, in the same folder, with the file that declares it, its signature, and its TSDoc.
9
9
 
10
10
  ## Machine and events
11
11
 
12
12
  The setup a workflow writes its Machine with, the events its parties send, and the guard that makes a writing decline other senders ([ADR-0011](decisions/0011-workflow-defined-events.md), [ADR-0015](decisions/0015-authoring-surface-absorbs-the-mechanism.md)).
13
13
 
14
- - [`defineEvent`](authoring-surface/defineevent.md) (function): Define one workflow event: an event that an Agent or the caller of a Gate may send into your Machine.
15
- - [`jr2Setup`](authoring-surface/jr2setup.md) (function): Set up a Machine that takes workflow events: the jr2 form of xstate's `setup()`.
16
- - [`sentBy`](authoring-surface/sentby.md) (function): A guard that is true for an event that one party sent, and false for an event that another party sent: `guard: sentBy("coder")`.
17
- - [`HostInjectedInput`](authoring-surface/type-hostinjectedinput.md) (type): The fields that jr2 adds to the input of the Machine that a run starts, beside the input that the caller sent.
14
+ - Page: [Machine and events](authoring-surface/group-machine-and-events.md)
15
+ - Names: [`defineEvent`](authoring-surface/defineevent.md), [`jr2Setup`](authoring-surface/jr2setup.md),
16
+ [`sentBy`](authoring-surface/sentby.md), [`HostInjectedInput`](authoring-surface/type-hostinjectedinput.md)
17
+
18
+ ## Gates
19
+
20
+ A Gate slot hears a Hook ([ADR-0011](decisions/0011-workflow-defined-events.md)).
21
+
22
+ - Page: [Gates](authoring-surface/group-gates.md)
23
+ - Names: [`gate`](authoring-surface/gate.md), [`Delivered`](authoring-surface/type-delivered.md),
24
+ [`GateLook`](authoring-surface/type-gatelook.md), [`GateOutcome`](authoring-surface/type-gateoutcome.md),
25
+ [`GateReply`](authoring-surface/type-gatereply.md)
18
26
 
19
27
  ## Failure
20
28
 
21
29
  The Part a Machine invokes to fail its run, and the guard that tells a Failure from a defect in an `onError` ([ADR-0073](decisions/0073-a-machine-fails-a-run-with-fail-and-an-uncaught-failure-ends-it-failed.md)).
22
30
 
23
- - [`fail`](authoring-surface/fail.md) (function): Fail the run: the Part a Machine invokes to end work that did not succeed.
24
- - [`isFailure`](authoring-surface/isfailure.md) (function): Is this error a Failure, which a state invoked `fail` to make?
31
+ - Page: [Failure](authoring-surface/group-failure.md)
32
+ - Names: [`fail`](authoring-surface/fail.md), [`isFailure`](authoring-surface/isfailure.md)
25
33
 
26
34
  ## Agents
27
35
 
28
36
  An Agent slot and the definition it carries ([ADR-0028](decisions/0028-what-an-agent-may-do-to-the-workspace-is-part-of-its-definition.md), [ADR-0049](decisions/0049-a-machine-carries-its-parts-and-composes-by-invoke.md)).
29
37
 
30
- - [`agent`](authoring-surface/agent.md) (function): Make an Agent: an actor slot that runs one Turn of a model each time a state invokes it.
31
- - [`AgentDefinition`](authoring-surface/type-agentdefinition.md) (type): An Agent's definition: which model it runs, its instructions, and what it may do to the Workspace.
32
- - [`ThinkingLevel`](authoring-surface/type-thinkinglevel.md) (type): How hard the model thinks before it answers: `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"` or `"xhigh"`.
38
+ - Page: [Agents](authoring-surface/group-agents.md)
39
+ - Names: [`agent`](authoring-surface/agent.md), [`AgentDefinition`](authoring-surface/type-agentdefinition.md),
40
+ [`AgentMcpServer`](authoring-surface/type-agentmcpserver.md),
41
+ [`ThinkingLevel`](authoring-surface/type-thinkinglevel.md)
33
42
 
34
43
  ## Workspaces and Repos
35
44
 
36
45
  A Sandbox and the Repo Slots it binds ([ADR-0012](decisions/0012-workspace-wrapper-machine.md), [ADR-0051](decisions/0051-a-repo-is-a-slot-on-the-workspace-and-a-cache-on-the-node.md)).
37
46
 
38
- - [`workspace`](authoring-surface/workspace.md) (function): Run a body Machine in a Sandbox: a pod of its own, with a clone of each Repo Slot.
39
- - [`Workspaced`](authoring-surface/type-workspaced.md) (type): The input of a `workspace()` body: the run input, plus `workspace`, the handles that the Workspace adds (`workspace.repos`, the folder of each Repo Slot).
40
- - [`Binding`](authoring-surface/type-binding.md) (type): The repository of a Repo Slot: `{ url, ref }`.
41
- - [`RepoSlot`](authoring-surface/type-reposlot.md) (type): The value of one Repo Slot in `workspace({ repos })`.
47
+ - Page: [Workspaces and Repos](authoring-surface/group-workspaces-and-repos.md)
48
+ - Names: [`workspace`](authoring-surface/workspace.md), [`Workspaced`](authoring-surface/type-workspaced.md),
49
+ [`Binding`](authoring-surface/type-binding.md), [`RepoSlot`](authoring-surface/type-reposlot.md)
42
50
 
43
51
  ## Effects
44
52
 
45
- Work a Machine does outside itself, as an actor slot ([ADR-0067](decisions/0067-an-effect-is-an-actor-slot-and-runs-at-most-once-unless-marked-idempotent.md), [ADR-0068](decisions/0068-an-effector-holds-an-effects-secrets-and-signs-its-wire.md), [ADR-0071](decisions/0071-a-run-starts-a-run-through-a-dispatch-effect.md)), and what an author writes between a pick and that work.
46
-
47
- - [`arg`](authoring-surface/arg.md) (constant): Mark one argv entry of a `command` that the input of the Effect fills.
48
- - [`CommandOutput`](authoring-surface/type-commandoutput.md) (type): The output of a `command` Effect: what the `onDone` of its state gets as `event.output`.
49
- - [`LaterOutcome`](authoring-surface/type-lateroutcome.md) (type): A value of `outcome` that this kit does not give.
50
- - [`command`](authoring-surface/command.md) (function): Make a `command` Effect: an actor slot that runs one program in the Workspace's Sandbox when a state invokes it.
51
- - [`basic`](authoring-surface/basic.md) (function): Make the `auth` of an `http` Effect that sends `Authorization: Basic <value>`, where the value is the base64 of `user:password`.
52
- - [`bearer`](authoring-surface/bearer.md) (function): Make the `auth` of an `http` Effect that sends `Authorization: Bearer <value>`, with the value of an Effect secret.
53
- - [`file`](authoring-surface/file.md) (function): Make a Worktree file the body of an `http` Effect: `body: file("dist/report.pdf")`.
54
- - [`http`](authoring-surface/http.md) (function): Make an `http` Effect: a call to a URL, with Effect secrets that the Agent never reads.
55
- - [`secret`](authoring-surface/secret.md) (function): Name an Effect secret: `secret("jira")`.
56
- - [`text`](authoring-surface/text.md) (function): Make a string from literal text and Effect secrets, as a tagged template: `` text`Token ${secret("x")}` ``.
57
- - [`HttpOutput`](authoring-surface/type-httpoutput.md) (type): The output of an `http` Effect: what the `onDone` of its state gets as `event.output`.
58
- - [`push`](authoring-surface/push.md) (function): Make a `push` Effect: it pushes the branch of a Worktree to the Binding of its Repo Slot.
59
- - [`PushOutput`](authoring-surface/type-pushoutput.md) (type): The output of a `push` Effect: what the `onDone` of its state gets as `event.output`.
60
- - [`branchName`](authoring-surface/branchname.md) (constant): A kit schema for a pick param that names a branch.
61
- - [`isReady`](authoring-surface/isready.md) (constant): Is it `ready`?
62
- - [`readyOf`](authoring-surface/readyof.md) (function): The `ready` output of an `onDone` arm that `isReady` guards.
63
- - [`worktree`](authoring-surface/worktree.md) (function): Make a `worktree` Effect: it cuts a Worktree of a Repo Slot, or reads the one that is there.
64
- - [`AnyFramePath`](authoring-surface/type-anyframepath.md) (type): A Turn's Frame: a Worktree, or `/work`, stated.
65
- - [`AnyWorktreePath`](authoring-surface/type-anyworktreepath.md) (type): A Worktree of any Repo Slot: what a kit factory states, before `jr2Setup` narrows it to the slots of the body.
66
- - [`FramePath`](authoring-surface/type-framepath.md) (type): A Turn's Frame in a Workspace with the Repo Slots `S`.
67
- - [`WorktreeFound`](authoring-surface/type-worktreefound.md) (type): What a cut found: `held`, a cut made this Worktree earlier, so what is in it is earlier work; `local`, a local branch; `remote`, `origin/<branch>`, now tracked; `none`, a new branch with no upstream; `commit`, a detached cut.
68
- - [`WorktreeInput`](authoring-surface/type-worktreeinput.md) (type): The input of a `worktree()`: a branch Worktree, or a detached one.
69
- - [`WorktreeOptions`](authoring-surface/type-worktreeoptions.md) (type): The options of `worktree()`.
70
- - [`WorktreeOutput`](authoring-surface/type-worktreeoutput.md) (type): The output of a `worktree()`.
71
- - [`WorktreePath`](authoring-surface/type-worktreepath.md) (type): A Worktree of the Repo Slots `S`.
72
- - [`WorktreeReady`](authoring-surface/type-worktreeready.md) (type)
73
- - [`WorktreeRefused`](authoring-surface/type-worktreerefused.md) (type): No Worktree, and nothing changed: a bad path, a name git or the push refuses, a re-cut that does not agree with the first, a branch that another Worktree holds, an `expect` that does not hold, or a name that the remote cannot confirm.
74
- - [`dispatch`](authoring-surface/dispatch.md) (function): Make a `dispatch` Effect: it starts a run of a Workflow.
75
- - [`DispatchOutput`](authoring-surface/type-dispatchoutput.md) (type): The output of a `dispatch` Effect.
76
- - [`answer`](authoring-surface/answer.md) (function): Set what the Agent reads when jr2 answers its pick.
77
- - [`fromPick`](authoring-surface/frompick.md) (function): Make the `input` of the invoke of a state that a pick enters: the params of the pick go to the input of the invoked actor by name.
78
- - [`paramsOf`](authoring-surface/paramsof.md) (function): Read the params of a pick from the event that entered the state.
53
+ Work a Machine does outside itself, as an actor slot ([ADR-0067](decisions/0067-an-effect-is-an-actor-slot-and-runs-at-most-once-unless-marked-idempotent.md), [ADR-0068](decisions/0068-an-effector-holds-an-effects-secrets-and-signs-its-wire.md), [ADR-0071](decisions/0071-a-run-starts-a-run-through-a-dispatch-effect.md), [ADR-0079](decisions/0079-an-agent-holds-mcp-tools-a-machine-calls-them-as-an-effect-and-the-machine-is-the-approval.md)), and what an author writes between a pick and that work.
54
+
55
+ - Page: [Effects](authoring-surface/group-effects.md)
56
+ - Names: [`arg`](authoring-surface/arg.md), [`CommandOutput`](authoring-surface/type-commandoutput.md),
57
+ [`LaterOutcome`](authoring-surface/type-lateroutcome.md), [`command`](authoring-surface/command.md),
58
+ [`basic`](authoring-surface/basic.md), [`bearer`](authoring-surface/bearer.md), [`file`](authoring-surface/file.md),
59
+ [`http`](authoring-surface/http.md), [`secret`](authoring-surface/secret.md), [`text`](authoring-surface/text.md),
60
+ [`HttpOutput`](authoring-surface/type-httpoutput.md), [`push`](authoring-surface/push.md),
61
+ [`PushOutput`](authoring-surface/type-pushoutput.md), [`branchName`](authoring-surface/branchname.md),
62
+ [`isReady`](authoring-surface/isready.md), [`readyOf`](authoring-surface/readyof.md),
63
+ [`worktree`](authoring-surface/worktree.md), [`AnyFramePath`](authoring-surface/type-anyframepath.md),
64
+ [`AnyWorktreePath`](authoring-surface/type-anyworktreepath.md), [`FramePath`](authoring-surface/type-framepath.md),
65
+ [`WorktreeFound`](authoring-surface/type-worktreefound.md),
66
+ [`WorktreeInput`](authoring-surface/type-worktreeinput.md),
67
+ [`WorktreeOptions`](authoring-surface/type-worktreeoptions.md),
68
+ [`WorktreeOutput`](authoring-surface/type-worktreeoutput.md),
69
+ [`WorktreePath`](authoring-surface/type-worktreepath.md), [`WorktreeReady`](authoring-surface/type-worktreeready.md),
70
+ [`WorktreeRefused`](authoring-surface/type-worktreerefused.md), [`dispatch`](authoring-surface/dispatch.md),
71
+ [`DispatchOutput`](authoring-surface/type-dispatchoutput.md), [`mcp`](authoring-surface/mcp.md),
72
+ [`McpOptions`](authoring-surface/type-mcpoptions.md), [`McpCallOutput`](authoring-surface/type-mcpcalloutput.md),
73
+ [`McpOutput`](authoring-surface/type-mcpoutput.md), [`McpReadOutput`](authoring-surface/type-mcpreadoutput.md),
74
+ [`answer`](authoring-surface/answer.md), [`fromPick`](authoring-surface/frompick.md),
75
+ [`paramsOf`](authoring-surface/paramsof.md)
76
+
77
+ ## Steering
78
+
79
+ The Machine's free text to one of its Agents, which the Agent hears once ([ADR-0002](decisions/0002-duplex-streaming-actor.md)).
80
+
81
+ - Page: [Steering](authoring-surface/group-steering.md)
82
+ - Names: [`steer`](authoring-surface/steer.md)
79
83
 
80
84
  ## Composition
81
85
 
82
86
  A part left Open, a Machine's parts retuned, a Pool over a Source ([ADR-0017](decisions/0017-pool-over-a-source-port.md), [ADR-0049](decisions/0049-a-machine-carries-its-parts-and-composes-by-invoke.md), [ADR-0054](decisions/0054-the-kit-ships-machines-and-a-shipped-machine-leaves-its-parts-open.md), [ADR-0060](decisions/0060-a-workspace-states-its-size-and-jr2-reserves-all-of-it.md)).
83
87
 
84
- - [`open`](authoring-surface/open.md) (constant): Leave a part of a Machine Open: for the Instance that registers the Machine to bind with `customize()`.
85
- - [`customize`](authoring-surface/customize.md) (function): Retune the parts that a Machine carries, without a change to the module that exports it.
86
- - [`Customize`](authoring-surface/type-customize.md) (type): The parts of one Machine that `customize()` can retune: its Agents, its Open Effects, the Machines it composes, and the Sandbox of its `workspace()`.
87
- - [`EffectBinding`](authoring-surface/type-effectbinding.md) (type): The values that bind the Open parts of one Effect.
88
- - [`Size`](authoring-surface/type-size.md) (type): The Size of a Workspace: the most memory and cpu that its whole Sandbox can use.
89
- - [`UserContainer`](authoring-surface/type-usercontainer.md) (type): The User Container in its object form: its image, and its part of the Workspace's Size.
90
- - [`pool`](authoring-surface/pool.md) (function): Make a Pool: a Machine that runs one worker Machine for each item that a Source gives, with at most `cap` workers at once.
91
- - [`source`](authoring-surface/source.md) (function): Declare a Source: where a `pool()` gets its work items, one at a time.
92
- - [`PoolNextInput`](authoring-surface/type-poolnextinput.md) (type): The input of a Source's `next`: the ids of the items that workers have now, the ids of the items that settled, and the Pool's input.
88
+ - Page: [Composition](authoring-surface/group-composition.md)
89
+ - Names: [`open`](authoring-surface/open.md), [`customize`](authoring-surface/customize.md),
90
+ [`Customize`](authoring-surface/type-customize.md), [`EffectBinding`](authoring-surface/type-effectbinding.md),
91
+ [`Size`](authoring-surface/type-size.md), [`UserContainer`](authoring-surface/type-usercontainer.md),
92
+ [`carry`](authoring-surface/carry.md), [`pool`](authoring-surface/pool.md), [`reread`](authoring-surface/reread.md),
93
+ [`skip`](authoring-surface/skip.md), [`source`](authoring-surface/source.md),
94
+ [`PoolNextInput`](authoring-surface/type-poolnextinput.md), [`SourceReply`](authoring-surface/type-sourcereply.md),
95
+ [`SourceVerdict`](authoring-surface/type-sourceverdict.md)
93
96
 
94
97
  ## Charts
95
98
 
96
99
  The Open body a Chart wrapper places in `actors`, and the grammar a planner's pick declares, whole or narrowed to one wrapper ([ADR-0070](decisions/0070-a-machine-lends-its-parts-to-a-chart.md)).
97
100
 
98
- - [`openBody`](authoring-surface/openbody.md) (function): Make an Open body: the actor slot that a Chart binds.
99
- - [`OpenBodyDeclaration`](authoring-surface/type-openbodydeclaration.md) (type): What an Open body declares: the parts that it lends a Chart, what the Agents of a Chart can have, and the limits of a Chart.
100
- - [`OpenBodyOutput`](authoring-surface/type-openbodyoutput.md) (type): The output of an Open body.
101
- - [`chartSchema`](authoring-surface/chartschema.md) (constant): The Chart grammar, as a zod schema.
102
- - [`chartSchemaFor`](authoring-surface/chartschemafor.md) (function): The Chart grammar for one Open body, as a zod schema.
101
+ - Page: [Charts](authoring-surface/group-charts.md)
102
+ - Names: [`openBody`](authoring-surface/openbody.md),
103
+ [`OpenBodyDeclaration`](authoring-surface/type-openbodydeclaration.md),
104
+ [`OpenBodyOutput`](authoring-surface/type-openbodyoutput.md), [`chartSchema`](authoring-surface/chartschema.md),
105
+ [`chartSchemaFor`](authoring-surface/chartschemafor.md)
103
106
 
104
107
  ## Config
105
108
 
106
109
  `jr2.config.ts`, the deployment facts a Machine cannot carry ([ADR-0050](decisions/0050-what-code-names-config-declares-what-the-cli-names-discovery-finds.md)).
107
110
 
108
- - [`defineConfig`](authoring-surface/defineconfig.md) (function): Declare the config of an Instance: the default export of `jr2.config.ts`.
109
- - [`JR2Config`](authoring-surface/type-jr2config.md) (type): The shape of `jr2.config.ts`: the deployment facts of an Instance, which a Machine cannot carry.
111
+ - Page: [Config](authoring-surface/group-config.md)
112
+ - Names: [`defineConfig`](authoring-surface/defineconfig.md), [`JR2Config`](authoring-surface/type-jr2config.md),
113
+ [`McpRemoteServer`](authoring-surface/type-mcpremoteserver.md), [`McpServer`](authoring-surface/type-mcpserver.md),
114
+ [`McpStdioServer`](authoring-surface/type-mcpstdioserver.md), [`RunsConfig`](authoring-surface/type-runsconfig.md)
110
115
 
111
116
  ## Types these signatures name
112
117
 
113
118
  The signature of an export, or a type here, names each of these types. They are not exports of `@jr2/orchestrator`, so a workflow module does not import them by name.
114
119
 
115
- - [`EventSemantics`](authoring-surface/type-eventsemantics.md): How the party that sends an event gets its answer.
116
- - [`EventAudience`](authoring-surface/type-eventaudience.md): Who may send an event: `"agent"` (an Agent, as a pick from its Menu), `"external"` (the caller of a Gate), or `"any"` (both).
117
- - [`EventDef`](authoring-surface/type-eventdef.md): A workflow event, as `defineEvent` gives it back: plain, frozen data and a zod schema, safe to import anywhere.
118
- - [`WorkflowEvent`](authoring-surface/type-workflowevent.md): The type of `event` in a Machine that `jr2Setup` makes: each workflow event in its `events`, and each Mechanism event.
119
- - [`FailSlot`](authoring-surface/type-failslot.md): The logic `fail()` returns: `failLogic` with the brand the walk reads.
120
- - [`Failure`](authoring-surface/type-failure.md): A Failure as `isFailure` narrows an error to it: the payload's fields, on the error itself.
121
- - [`AgentDeclaration`](authoring-surface/type-agentdeclaration.md): What `agent()` takes: an `AgentDefinition`, except that `model` can also be `open`.
122
- - [`WorkspaceAccess`](authoring-surface/type-workspaceaccess.md): What an Agent may do to the Workspace: `"write"`, `"read"` or `"none"`.
123
- - [`WorkspaceOptions`](authoring-surface/type-workspaceoptions.md): The options of a `workspace()` that declares the input that starts a run.
124
- - [`NoSlotWorkspaceOptions`](authoring-surface/type-noslotworkspaceoptions.md): The options of a `workspace()` with no Repo Slot that declares the input that starts a run.
125
- - [`WithoutEmptyIndex`](authoring-surface/type-withoutemptyindex.md): The fields of the run input `T`.
126
- - [`PermissiveWorkspaceOptions`](authoring-surface/type-permissiveworkspaceoptions.md): The options of a `workspace()` with no `input`: it starts with any input.
127
- - [`PermissiveNoSlotWorkspaceOptions`](authoring-surface/type-permissivenoslotworkspaceoptions.md): The options of a `workspace()` with no Repo Slot and no `input`: it starts with any input.
128
- - [`WorkspaceHandles`](authoring-surface/type-workspacehandles.md): What the body of a `workspace()` gets as `input.workspace`: the folder of each Repo Slot.
129
- - [`ExecOutcome`](authoring-surface/type-execoutcome.md): How an exec ended.
130
- - [`Unknown`](authoring-surface/type-unknown.md): The output `{ outcome: "unknown", reason }`: the Effect may have acted, and jr2 cannot tell.
131
- - [`Arg`](authoring-surface/type-arg.md): One entry of a command's argv that the input of the Effect fills, as `arg("name")` makes it.
132
- - [`CommandOptions`](authoring-surface/type-commandoptions.md): The options of `command()`: the Repo Slot it runs in, how long it can run, how much of its output it keeps, its Effect secrets, and the commit it runs against.
133
- - [`CommandInput`](authoring-surface/type-commandinput.md): A command's input: one string per argv slot, and with `pin` the approved commit (`{ sha }`); none when there is neither.
134
- - [`OpenCommandInput`](authoring-surface/type-opencommandinput.md): The input of a `command(open)`: a string for each `arg()` of the argv that the Instance binds, and with `pin`, the commit (`{ sha }`).
135
- - [`Secret`](authoring-surface/type-secret.md): What `secret("name")` gives: an Effect secret, by its name in the `secrets` list of `jr2.config.ts`.
136
- - [`Text`](authoring-surface/type-text.md): What the `text` template gives: a string of literal text and Effect secrets, in order.
137
- - [`FromInput`](authoring-surface/type-frominput.md): A value of a file body's part: as written, or from the Effect's input.
138
- - [`FileBody`](authoring-surface/type-filebody.md): `file(path, { segments?, contentType? })`: a Worktree file as an `http` body.
139
- - [`HttpDefinition`](authoring-surface/type-httpdefinition.md): An `http` Effect's definition.
140
- - [`HttpFileInput`](authoring-surface/type-httpfileinput.md): The input of an `http` Effect with a Worktree file as its body.
141
- - [`OpenSecret`](authoring-surface/type-opensecret.md): `secret(open)`: a secret a packaged Machine names in its auth, a header or a command's env, and leaves for its composer to name (ADR-0054).
142
- - [`PushOptions`](authoring-surface/type-pushoptions.md): The options of `push()`.
143
- - [`PushInput`](authoring-surface/type-pushinput.md): The input of a `push` Effect: the Worktree that a cut made, `{ sha }` with `pin`, and `{ message }` with `squash`.
144
- - [`Duration`](authoring-surface/type-duration.md): A length of time: a positive number and a unit, `s`, `m` or `h`.
145
- - [`NameStart`](authoring-surface/type-namestart.md): What a Worktree's name may start with: neither `.` nor `-`, and not the end of the path.
146
- - [`DispatchDefinition`](authoring-surface/type-dispatchdefinition.md): The definition of a `dispatch` Effect (ADR-0071).
147
- - [`DispatchInput`](authoring-surface/type-dispatchinput.md): A dispatch's input: the run's body — the slot's schema's type, or any JSON object.
148
- - [`DispatchOpenParts`](authoring-surface/type-dispatchopenparts.md): The Open part a dispatch definition states: its target, when it is `open`.
149
- - [`ChainLink`](authoring-surface/type-chainlink.md): One reply since the pick, as the author reads it: an invoked actor's output, typed by its slot (`src`); or an event that answered a state below the Agent's — a Gate's answer, a nested Agent's pick — typed by the Machine's events.
150
- - [`Quantity`](authoring-surface/type-quantity.md): A Kubernetes quantity: `"2Gi"`, `"1500m"`, `"2"`, or a plain number (`2` cpus, bytes of memory).
151
- - [`PoolSpec`](authoring-surface/type-poolspec.md): What you pass to `pool()`: where the items come from, how many workers run at once, and what each worker gets.
152
- - [`SourceSpec`](authoring-surface/type-sourcespec.md): Where a Pool gets its work items: the Source.
153
- - [`OpenBodyLogic`](authoring-surface/type-openbodylogic.md): The logic `openBody()` returns: actor logic that carries the brand.
154
- - [`Lends`](authoring-surface/type-lends.md): The parts of the Chart wrapper that a Chart can use, by their keys in `actors`, `guards`, `actions` and `delays`.
155
- - [`Ceilings`](authoring-surface/type-ceilings.md): The limits that an Open body sets on its Chart.
156
- - [`ChartText`](authoring-surface/type-charttext.md): The Chart text (ADR-0070).
157
- - [`Sender`](authoring-surface/type-sender.md): Who delivered an event: an Agent by its slot, or a Gate by its invoke id (ADR-0015).
158
- - [`FailureInput`](authoring-surface/type-failureinput.md): What a Failure carries: `reason`, text for a person, and `detail`, optional JSON for a machine reader.
159
- - [`SandboxOptions`](authoring-surface/type-sandboxoptions.md): The options of a `workspace()` that say what its Sandbox is made of and which Repos it clones.
160
- - [`SlotHandles`](authoring-surface/type-slothandles.md): The handles of a Workspace that declares Repo Slots.
161
- - [`CommandEnv`](authoring-surface/type-commandenv.md): The `env` of a `command`: for each variable, `secret("name")` for the value of an Effect secret, or `secret("name").path` for the path of a file that holds it.
162
- - [`TextPart`](authoring-surface/type-textpart.md): One part of a `Text`: `{ text }`, literal text, or `{ secret }`, the name of an Effect secret.
163
- - [`HttpMethod`](authoring-surface/type-httpmethod.md): The method of an `http` Effect: `GET`, `HEAD`, `POST`, `PUT`, `PATCH`, `DELETE` or `OPTIONS`.
164
- - [`HttpRequestParts`](authoring-surface/type-httprequestparts.md): What the `request` of an `http` definition returns: the part of the request that changes for each run.
165
- - [`NamedSecret`](authoring-surface/type-namedsecret.md): A named secret, never `secret(open)`: where a definition's Open part is a whole that holds a secret — a dispatch's target (ADR-0071) — the secret is bound with it, to a name, so the mark `secret(open)` carries may not be present.
166
- - [`SourceNextResult`](authoring-surface/type-sourcenextresult.md): What the `next` of a Source resolves to: an item, to claim it; `null`, when no item is ready now; or `{ item, open }`, where `open` is the number of items that exist but are not ready.
167
- - [`OpenBodySlot`](authoring-surface/type-openbodyslot.md): The brand an Open body slot carries, as `definition` marks an Agent slot (ADR-0049).
168
- - [`ChartJson`](authoring-surface/type-chartjson.md): Plain JSON.
169
- - [`ChartEvent`](authoring-surface/type-chartevent.md): An event a Chart mints: its payload is a JSON Schema object, built into zod at admission.
170
- - [`ChartAgent`](authoring-surface/type-chartagent.md): An Agent a Chart mints: the plain fields of an Agent definition (ADR-0049).
171
- - [`ChartState`](authoring-surface/type-chartstate.md): A state node.
172
- - [`ChartValue`](authoring-surface/type-chartvalue.md): A value whose strings may hold `{{<root>.<path>}}` placeholders and whose objects may be `{ "$ref": "<root>.<path>" }`.
173
- - [`ChartInvoke`](authoring-surface/type-chartinvoke.md): An invoke: a lent Agent, Effect or Machine, a minted Agent, or the kit's `gate` or `fail`.
174
- - [`ChartTransitions`](authoring-surface/type-charttransitions.md): One transition or a list, in xstate's order.
175
- - [`ChartAction`](authoring-surface/type-chartaction.md): An action.
176
- - [`ChartTransition`](authoring-surface/type-charttransition.md): A transition: a target alone, or the object form.
177
- - [`ChartGuard`](authoring-surface/type-chartguard.md): A guard: a lent guard by name, with or without params, `jr2.sentBy`, `jr2.failure`, or `not`/`and`/`or`.
178
-
179
- **Type plumbing.** These types compute a type from the types of a Machine or of its parts. A workflow module does not write them. Each has a page with its declaration:
180
-
181
- - [`ToProvidedActor`](authoring-surface/type-toprovidedactor.md)
182
- - [`MergedActors`](authoring-surface/type-mergedactors.md)
183
- - [`ToParameterizedObject`](authoring-surface/type-toparameterizedobject.md)
184
- - [`BindActors`](authoring-surface/type-bindactors.md)
185
- - [`SentByGuards`](authoring-surface/type-sentbyguards.md)
186
- - [`AgentLogic`](authoring-surface/type-agentlogic.md)
187
- - [`BodyAcceptsDoor`](authoring-surface/type-bodyacceptsdoor.md)
188
- - [`WorkspaceMachine`](authoring-surface/type-workspacemachine.md)
189
- - [`DoorlessInput`](authoring-surface/type-doorlessinput.md)
190
- - [`BodyAcceptsSlots`](authoring-surface/type-bodyacceptsslots.md)
191
- - [`EffectLogic`](authoring-surface/type-effectlogic.md)
192
- - [`OpenOf`](authoring-surface/type-openof.md)
193
- - [`EnvOpenParts`](authoring-surface/type-envopenparts.md)
194
- - [`OpenEffect`](authoring-surface/type-openeffect.md)
195
- - [`MarkedIf`](authoring-surface/type-markedif.md)
196
- - [`HttpOpenParts`](authoring-surface/type-httpopenparts.md)
197
- - [`HttpInput`](authoring-surface/type-httpinput.md)
198
- - [`PushWireOutput`](authoring-surface/type-pushwireoutput.md)
199
- - [`SyncState`](authoring-surface/type-syncstate.md)
200
- - [`AnswerAction`](authoring-surface/type-answeraction.md)
201
- - [`AgentSlots`](authoring-surface/type-agentslots.md)
202
- - [`Reached`](authoring-surface/type-reached.md)
203
- - [`OpenEffectSlots`](authoring-surface/type-openeffectslots.md)
204
- - [`BindingOf`](authoring-surface/type-bindingof.md)
205
- - [`LogicAt`](authoring-surface/type-logicat.md)
206
- - [`ChildSlots`](authoring-surface/type-childslots.md)
207
- - [`ChildAt`](authoring-surface/type-childat.md)
208
- - [`RepoSlotsOf`](authoring-surface/type-reposlotsof.md)
209
- - [`WorkspaceOf`](authoring-surface/type-workspaceof.md)
210
- - [`PoolMachine`](authoring-surface/type-poolmachine.md)
211
- - [`EventFrom`](authoring-surface/type-eventfrom.md)
212
- - [`ArgNames`](authoring-surface/type-argnames.md)
213
- - [`WorktreeKey`](authoring-surface/type-worktreekey.md)
214
- - [`NotWorktreeKeys`](authoring-surface/type-notworktreekeys.md)
215
- - [`OpenSecretMark`](authoring-surface/type-opensecretmark.md)
216
-
217
- These names come from a dependency: from `zod`, `z.ZodObject`, `z.infer`, `z.ZodType`; from `xstate`, `MachineContext`, `UnknownActorLogic`, `ParameterizedObject`, `NonReducibleUnknown`, `EventObject`, `MetaObject`, `ActionFunction`, `GuardPredicate`, `DelayConfig`, `SetupReturn`, `AnyStateMachine`, `OutputFrom`, `ProvidedActor`, `AnyActorRef`, `InputFrom`, `PromiseActorLogic`.
120
+ - Page: [Types these signatures name](authoring-surface/group-types-these-signatures-name.md)
121
+ - Types: `EventSemantics`, `EventAudience`, `EventDef`, `WorkflowEvent`, `GateSlot`, `Duration`, `CallerRecord`,
122
+ `FailSlot`, `Failure`, `AgentDeclaration`, `WorkspaceAccess`, `WorkspaceOptions`, `NoSlotWorkspaceOptions`,
123
+ `WithoutEmptyIndex`, `PermissiveWorkspaceOptions`, `PermissiveNoSlotWorkspaceOptions`, `WorkspaceHandles`,
124
+ `ExecOutcome`, `Unknown`, `Arg`, `CommandOptions`, `CommandInput`, `OpenCommandInput`, `Secret`, `Text`, `FromInput`,
125
+ `FileBody`, `HttpDefinition`, `HttpFileInput`, `OpenSecret`, `PushOptions`, `PushInput`, `NameStart`,
126
+ `DispatchDefinition`, `DispatchInput`, `DispatchOpenParts`, `McpNotReturned`, `ChainLink`, `SteerArgs`, `Sender`,
127
+ `Quantity`, `Carry`, `PoolSpec`, `StandingPoolSpec`, `Reread`, `Skip`, `SourceSpec`, `SourceHooks`, `PushSourceSpec`,
128
+ `ReadSourceSpec`, `OpenBodyLogic`, `Lends`, `Ceilings`, `ChartText`, `DeliveredEvent`, `Caller`, `FailureInput`,
129
+ `SandboxOptions`, `SlotHandles`, `CommandEnv`, `TextPart`, `HttpMethod`, `HttpRequestParts`, `NamedSecret`,
130
+ `SenderCallerField`, `SourceNextResult`, `SourceIn`, `OpenBodySlot`, `ChartJson`, `ChartEvent`, `ChartAgent`,
131
+ `ChartState`, `ChartValue`, `ChartInvoke`, `ChartTransitions`, `ChartAction`, `ChartTransition`, `ChartGuard`
132
+ - Type plumbing: `ToProvidedActor`, `MergedActors`, `ToParameterizedObject`, `BindActors`, `SentByGuards`, `GateHooks`,
133
+ `EventFrom`, `LookOutput`, `AgentLogic`, `BodyAcceptsDoor`, `WorkspaceMachine`, `DoorlessInput`, `BodyAcceptsSlots`,
134
+ `EffectLogic`, `OpenOf`, `EnvOpenParts`, `OpenEffect`, `MarkedIf`, `HttpOpenParts`, `HttpInput`, `PushWireOutput`,
135
+ `SyncState`, `AnswerAction`, `AgentSlots`, `Reached`, `OpenEffectSlots`, `BindingOf`, `LogicAt`, `GateSlots`,
136
+ `GateBinding`, `GateTypesAt`, `ChildSlots`, `ChildAt`, `RepoSlotsOf`, `WorkspaceOf`, `PoolMachine`,
137
+ `StandingPoolMachine`, `GateSlotInput`, `GateSlotParts`, `ArgNames`, `WorktreeKey`, `NotWorktreeKeys`,
138
+ `OpenSecretMark`