@archmax-ai/harness 0.9.0 → 1.0.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 (207) hide show
  1. package/README.md +58 -14
  2. package/dist/agent.d.ts +4 -6
  3. package/dist/agent.js +4 -6
  4. package/dist/agent.js.map +1 -1
  5. package/dist/assembly/compose.d.ts +5 -24
  6. package/dist/assembly/compose.js +28 -42
  7. package/dist/assembly/compose.js.map +1 -1
  8. package/dist/assembly/delegation-registry.js +3 -14
  9. package/dist/assembly/delegation-registry.js.map +1 -1
  10. package/dist/assembly/index.d.ts +8 -15
  11. package/dist/assembly/index.js +21 -28
  12. package/dist/assembly/index.js.map +1 -1
  13. package/dist/assembly/plain.js +1 -2
  14. package/dist/assembly/plain.js.map +1 -1
  15. package/dist/authoring-skill/archmax-harness/README.md +5 -5
  16. package/dist/authoring-skill/archmax-harness/SKILL.md +72 -30
  17. package/dist/authoring-skill/archmax-harness/references/backend-integration.md +33 -24
  18. package/dist/authoring-skill/archmax-harness/references/cases.md +41 -8
  19. package/dist/authoring-skill/archmax-harness/references/{hook-and-test-scripts.md → code-state-and-test-scripts.md} +599 -339
  20. package/dist/authoring-skill/archmax-harness/references/code-states-and-scripts.md +115 -0
  21. package/dist/authoring-skill/archmax-harness/references/diagnostics.md +40 -7
  22. package/dist/authoring-skill/archmax-harness/references/wiring.md +19 -10
  23. package/dist/authoring-skill/archmax-harness/references/workflow-schema.md +404 -293
  24. package/dist/authoring-skill/archmax-harness/references/workflow-yaml.md +151 -62
  25. package/dist/cli/state-flow.d.ts +1 -1
  26. package/dist/cli/state-flow.js +18 -28
  27. package/dist/cli/state-flow.js.map +1 -1
  28. package/dist/cli/turn.d.ts +1 -1
  29. package/dist/cli/turn.js +1 -1
  30. package/dist/core/code-description.d.ts +3 -3
  31. package/dist/core/code-description.js +3 -3
  32. package/dist/core/deepagents.d.ts +5 -12
  33. package/dist/core/deepagents.js +4 -17
  34. package/dist/core/deepagents.js.map +1 -1
  35. package/dist/core/events.d.ts +23 -42
  36. package/dist/core/events.js +21 -24
  37. package/dist/core/events.js.map +1 -1
  38. package/dist/core/message-readers.d.ts +4 -5
  39. package/dist/core/message-readers.js +3 -8
  40. package/dist/core/message-readers.js.map +1 -1
  41. package/dist/core/messages.d.ts +0 -22
  42. package/dist/core/messages.js +1 -32
  43. package/dist/core/messages.js.map +1 -1
  44. package/dist/core/mounts.js +3 -3
  45. package/dist/core/platform-prompt.generated.js +1 -1
  46. package/dist/core/platform-prompt.generated.js.map +1 -1
  47. package/dist/core/session-zone.d.ts +1 -1
  48. package/dist/core/session-zone.js +1 -1
  49. package/dist/core/workspace-context.d.ts +1 -1
  50. package/dist/core/workspace.d.ts +1 -1
  51. package/dist/core/workspace.js +1 -1
  52. package/dist/core/zones.d.ts +4 -4
  53. package/dist/core/zones.js +5 -5
  54. package/dist/core/zones.js.map +1 -1
  55. package/dist/env.d.ts +9 -9
  56. package/dist/index.d.ts +3 -7
  57. package/dist/index.js +2 -4
  58. package/dist/index.js.map +1 -1
  59. package/dist/kernel/kernel.d.ts +31 -61
  60. package/dist/kernel/kernel.js +54 -112
  61. package/dist/kernel/kernel.js.map +1 -1
  62. package/dist/machine/lint-spec.js +53 -12
  63. package/dist/machine/lint-spec.js.map +1 -1
  64. package/dist/machine/machine.d.ts +36 -18
  65. package/dist/machine/machine.js +62 -51
  66. package/dist/machine/machine.js.map +1 -1
  67. package/dist/machine/spec-schema.d.ts +32 -180
  68. package/dist/machine/spec-schema.js +52 -113
  69. package/dist/machine/spec-schema.js.map +1 -1
  70. package/dist/machine/tool-names.d.ts +34 -16
  71. package/dist/machine/tool-names.js +41 -16
  72. package/dist/machine/tool-names.js.map +1 -1
  73. package/dist/machine/types.d.ts +14 -46
  74. package/dist/machine/types.js +0 -2
  75. package/dist/machine/types.js.map +1 -1
  76. package/dist/machine/validate-spec.d.ts +1 -1
  77. package/dist/public/sandbox.d.ts +59 -95
  78. package/dist/public/sandbox.js +22 -23
  79. package/dist/public/sandbox.js.map +1 -1
  80. package/dist/public/spec.d.ts +13 -20
  81. package/dist/public/spec.js +12 -20
  82. package/dist/public/spec.js.map +1 -1
  83. package/dist/runtime/contract.d.ts +11 -12
  84. package/dist/runtime/contract.js +16 -16
  85. package/dist/runtime/contract.js.map +1 -1
  86. package/dist/sandbox/assets/parts/code-state.js +17 -0
  87. package/dist/sandbox/executor.d.ts +25 -7
  88. package/dist/sandbox/executor.js +56 -57
  89. package/dist/sandbox/executor.js.map +1 -1
  90. package/dist/sandbox/imports.d.ts +10 -10
  91. package/dist/sandbox/imports.js +11 -11
  92. package/dist/sandbox/imports.js.map +1 -1
  93. package/dist/sandbox/prelude.d.ts +5 -6
  94. package/dist/sandbox/prelude.js +38 -35
  95. package/dist/sandbox/prelude.js.map +1 -1
  96. package/dist/sandbox/ptc-gateway.d.ts +19 -18
  97. package/dist/sandbox/ptc-gateway.js +26 -22
  98. package/dist/sandbox/ptc-gateway.js.map +1 -1
  99. package/dist/sessions/resume.d.ts +2 -2
  100. package/dist/sessions/resume.js +1 -1
  101. package/dist/sessions/resume.js.map +1 -1
  102. package/dist/sessions/scope.d.ts +0 -10
  103. package/dist/sessions/scope.js +0 -17
  104. package/dist/sessions/scope.js.map +1 -1
  105. package/dist/sessions/summary.d.ts +1 -1
  106. package/dist/testing/assertions.js +9 -4
  107. package/dist/testing/assertions.js.map +1 -1
  108. package/dist/testing/driver.js +3 -0
  109. package/dist/testing/driver.js.map +1 -1
  110. package/dist/testing/interpreter.d.ts +2 -2
  111. package/dist/testing/runner.d.ts +2 -2
  112. package/dist/validate/validate.d.ts +1 -1
  113. package/dist/validate/validate.js +39 -70
  114. package/dist/validate/validate.js.map +1 -1
  115. package/dist/workflow/automated-controls.d.ts +63 -0
  116. package/dist/workflow/automated-controls.js +158 -0
  117. package/dist/workflow/automated-controls.js.map +1 -0
  118. package/dist/workflow/automated.d.ts +112 -0
  119. package/dist/workflow/automated.js +163 -0
  120. package/dist/workflow/automated.js.map +1 -0
  121. package/dist/workflow/code-state.d.ts +46 -0
  122. package/dist/workflow/code-state.js +26 -0
  123. package/dist/workflow/code-state.js.map +1 -0
  124. package/dist/workflow/control-tools.d.ts +54 -23
  125. package/dist/workflow/control-tools.js +99 -79
  126. package/dist/workflow/control-tools.js.map +1 -1
  127. package/dist/workflow/file-values.d.ts +4 -4
  128. package/dist/workflow/file-values.js +1 -1
  129. package/dist/workflow/file-values.js.map +1 -1
  130. package/dist/workflow/governance.d.ts +11 -22
  131. package/dist/workflow/governance.js +47 -104
  132. package/dist/workflow/governance.js.map +1 -1
  133. package/dist/workflow/grader-state.d.ts +55 -0
  134. package/dist/workflow/grader-state.js +182 -0
  135. package/dist/workflow/grader-state.js.map +1 -0
  136. package/dist/workflow/history.d.ts +11 -0
  137. package/dist/{lifecycle/transcript.js → workflow/history.js} +24 -8
  138. package/dist/workflow/history.js.map +1 -0
  139. package/dist/workflow/middleware.d.ts +14 -17
  140. package/dist/workflow/middleware.js +109 -95
  141. package/dist/workflow/middleware.js.map +1 -1
  142. package/dist/workflow/move-events.d.ts +21 -0
  143. package/dist/workflow/move-events.js +20 -0
  144. package/dist/workflow/move-events.js.map +1 -0
  145. package/dist/workflow/on-error.js +0 -2
  146. package/dist/workflow/on-error.js.map +1 -1
  147. package/dist/workflow/parks.d.ts +9 -2
  148. package/dist/workflow/parks.js +16 -10
  149. package/dist/workflow/parks.js.map +1 -1
  150. package/dist/workflow/paths.d.ts +9 -9
  151. package/dist/workflow/paths.js +19 -19
  152. package/dist/workflow/paths.js.map +1 -1
  153. package/dist/workflow/render-prompt.d.ts +7 -5
  154. package/dist/workflow/render-prompt.js +22 -37
  155. package/dist/workflow/render-prompt.js.map +1 -1
  156. package/dist/workflow/signature-checks.d.ts +2 -2
  157. package/dist/workflow/snapshot.js +5 -29
  158. package/dist/workflow/snapshot.js.map +1 -1
  159. package/dist/workflow/state.d.ts +14 -42
  160. package/dist/workflow/state.js +20 -33
  161. package/dist/workflow/state.js.map +1 -1
  162. package/dist/workflow/sub-workflow.d.ts +3 -3
  163. package/dist/workflow/sub-workflow.js +3 -7
  164. package/dist/workflow/sub-workflow.js.map +1 -1
  165. package/dist/workflow/tool-service.d.ts +1 -9
  166. package/dist/workflow/tool-service.js +21 -24
  167. package/dist/workflow/tool-service.js.map +1 -1
  168. package/dist/workflow/turn-boundary.d.ts +2 -2
  169. package/dist/workflow/turn-boundary.js +10 -15
  170. package/dist/workflow/turn-boundary.js.map +1 -1
  171. package/dist/workflow/turn-runner.js +5 -6
  172. package/dist/workflow/turn-runner.js.map +1 -1
  173. package/package.json +1 -1
  174. package/skills/archmax-harness/README.md +5 -5
  175. package/skills/archmax-harness/SKILL.md +72 -30
  176. package/skills/archmax-harness/references/backend-integration.md +33 -24
  177. package/skills/archmax-harness/references/cases.md +41 -8
  178. package/skills/archmax-harness/references/{hook-and-test-scripts.md → code-state-and-test-scripts.md} +599 -339
  179. package/skills/archmax-harness/references/code-states-and-scripts.md +115 -0
  180. package/skills/archmax-harness/references/diagnostics.md +40 -7
  181. package/skills/archmax-harness/references/wiring.md +19 -10
  182. package/skills/archmax-harness/references/workflow-schema.md +404 -293
  183. package/skills/archmax-harness/references/workflow-yaml.md +151 -62
  184. package/dist/authoring-skill/archmax-harness/references/hooks-and-scripts.md +0 -89
  185. package/dist/lifecycle/hook-shape.d.ts +0 -44
  186. package/dist/lifecycle/hook-shape.js +0 -66
  187. package/dist/lifecycle/hook-shape.js.map +0 -1
  188. package/dist/lifecycle/runner.d.ts +0 -197
  189. package/dist/lifecycle/runner.js +0 -419
  190. package/dist/lifecycle/runner.js.map +0 -1
  191. package/dist/lifecycle/tool-calls.d.ts +0 -9
  192. package/dist/lifecycle/tool-calls.js +0 -57
  193. package/dist/lifecycle/tool-calls.js.map +0 -1
  194. package/dist/lifecycle/transcript.d.ts +0 -31
  195. package/dist/lifecycle/transcript.js.map +0 -1
  196. package/dist/rubrics/rubrics.d.ts +0 -135
  197. package/dist/rubrics/rubrics.js +0 -145
  198. package/dist/rubrics/rubrics.js.map +0 -1
  199. package/dist/sandbox/assets/parts/core.js +0 -22
  200. package/dist/sandbox/assets/parts/lifecycle-hook.js +0 -47
  201. package/dist/sandbox/bridge.d.ts +0 -16
  202. package/dist/sandbox/bridge.js +0 -95
  203. package/dist/sandbox/bridge.js.map +0 -1
  204. package/dist/workflow/visits.d.ts +0 -21
  205. package/dist/workflow/visits.js +0 -45
  206. package/dist/workflow/visits.js.map +0 -1
  207. package/skills/archmax-harness/references/hooks-and-scripts.md +0 -89
@@ -1,4 +1,16 @@
1
+ /**
2
+ * A session's **history**: its whole transcript as plain messages and its whole
3
+ * trail — what an automated state reads with `archmax_get_history`, a grader
4
+ * and a code state's script alike, so both counting the same rounds read the
5
+ * same thing. Built from the checkpointed session, never from the request a
6
+ * summary shortened for the model.
7
+ *
8
+ * Nothing is windowed: a grader asked to give up after N send-backs has to see
9
+ * all N. What bounds it is the sandbox's result and memory quotas, and the
10
+ * grader model's context.
11
+ */
1
12
  import { contentToString, messageTypeOf, runtimeNoteKind } from "../core/messages.js";
13
+ import { readAuditTrail } from "./state.js";
2
14
  const ROLE_BY_TYPE = {
3
15
  human: "user",
4
16
  ai: "assistant",
@@ -7,13 +19,12 @@ const ROLE_BY_TYPE = {
7
19
  function: "tool",
8
20
  };
9
21
  /**
10
- * A visit's transcript as a hook receives it in `messages`, newest last. A
11
- * runtime note is carried in the transcript as a tool-call pair; only the half
12
- * holding the text is kept, as one `runtime` entry. A tool result names its
13
- * tool and call but carries no text: results are read through `toolCalls`, so
14
- * the hook input stays small however large they are.
22
+ * The transcript as plain messages, oldest first. A runtime note is carried in
23
+ * the transcript as a tool-call pair; only the half holding the text is kept,
24
+ * as one `runtime` entry. A tool result carries its text, the tool that
25
+ * produced it, and the id of the call it answers.
15
26
  */
16
- export function hookTranscript(messages) {
27
+ export function historyMessages(messages) {
17
28
  const out = [];
18
29
  for (const raw of Array.isArray(messages) ? messages : []) {
19
30
  const msg = raw;
@@ -27,7 +38,7 @@ export function hookTranscript(messages) {
27
38
  continue;
28
39
  }
29
40
  const role = ROLE_BY_TYPE[type] ?? (type || "unknown");
30
- const entry = { role, text: role === "tool" ? "" : text };
41
+ const entry = { role, text };
31
42
  const calls = msg.tool_calls;
32
43
  if ((type === "ai" || type === "assistant") && Array.isArray(calls) && calls.length > 0) {
33
44
  entry.toolCalls = calls.map((c) => {
@@ -45,4 +56,9 @@ export function hookTranscript(messages) {
45
56
  }
46
57
  return out;
47
58
  }
48
- //# sourceMappingURL=transcript.js.map
59
+ /** The history of the session whose checkpointed state this is. */
60
+ export function sessionHistory(state) {
61
+ const messages = state?.messages;
62
+ return { messages: historyMessages(Array.isArray(messages) ? messages : []), trail: readAuditTrail(state) };
63
+ }
64
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/workflow/history.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import type { StructuredTool } from "@langchain/core/tools";
2
2
  import type { AgentMiddleware } from "langchain";
3
- import type { ScriptExecutor } from "../sandbox/executor.js";
3
+ import type { BaseChatModel } from "@langchain/core/language_models/chat_models";
4
+ import { type ScriptExecutor } from "../sandbox/executor.js";
4
5
  import type { PtcToolGateway } from "../sandbox/ptc-gateway.js";
5
- import { LifecycleRunner, type HookExecutor, type HookScriptResolver } from "../lifecycle/runner.js";
6
6
  import type { WorkflowMachine } from "../machine/machine.js";
7
- import type { Rubric } from "../rubrics/rubrics.js";
8
7
  import type { Workspace } from "../core/workspace.js";
9
8
  import { type WorkflowEventHandler } from "../core/events.js";
10
9
  import type { VariableStore } from "../machine/variables.js";
10
+ import type { CodeScriptResolver } from "./code-state.js";
11
11
  import type { SubWorkflowDispatcher } from "./sub-workflow.js";
12
12
  import type { GovernanceRule } from "../kernel/kernel.js";
13
13
  import { type MountPrefixes } from "../core/mounts.js";
@@ -29,30 +29,27 @@ export interface WorkflowInstrumentation {
29
29
  /** The governance middleware proper; assembled after {@link parkMiddleware}. */
30
30
  middleware: AgentMiddleware;
31
31
  tools: StructuredTool[];
32
- lifecycle: LifecycleRunner;
33
32
  /** Release every per-session resource (idempotent; safe for sessions that never ran). */
34
33
  dispose(sessionId: string): void;
35
34
  }
36
35
  export interface WorkflowMiddlewareOptions {
37
36
  machine: WorkflowMachine;
38
- /** Serves the agent's own `archmax_eval`/`archmax_run` over the agent workspace. */
39
- executor: ScriptExecutor;
40
- /** The workflow's grading rubrics, dispatched by a `{ rubric: … }` hook. */
41
- rubrics?: Map<string, Rubric>;
42
- ptcNames: string[];
37
+ /** Runs a code state's script, reading it from the authoring backend. */
38
+ codeExecutor: ScriptExecutor;
39
+ /** Resolves a code state's declared `script:` to its authoring-backend path. */
40
+ resolveCodeScript: CodeScriptResolver;
41
+ /** The model a grader state runs on, and its id when the instance exposes one. */
42
+ graderModel(state: string): {
43
+ model: BaseChatModel;
44
+ id?: string;
45
+ };
43
46
  /** Consumer rules, evaluated after the safety and `policy` rules, before per-state defaults. */
44
47
  policyRules?: GovernanceRule[];
45
48
  /** The workspace's resolved mount keys, so the kernel's read-only rule can classify authored paths. */
46
49
  mountPrefixes?: MountPrefixes;
47
50
  /** The workspace's skills: one table for what the kernel refuses, the prompt names, a listing returns. */
48
51
  skills?: SkillRegistry;
49
- /** Custom hook-kind executors registered alongside the built-in `script`/`rubric`. */
50
- hookExecutors?: Record<string, HookExecutor>;
51
- /** Script executor for lifecycle hooks, reading from the authoring backend. Defaults to {@link executor}. */
52
- hookExecutor?: ScriptExecutor;
53
- /** Resolves a hook's declared `script:` to its authoring-backend path. */
54
- resolveHookScript?: HookScriptResolver;
55
- /** Governs the `tools.*` calls hook scripts make and carries the live per-session context. */
52
+ /** Governs every call made outside the tool node — scripts', automated states' — and carries the live per-session context. */
56
53
  ptcGateway?: PtcToolGateway;
57
54
  /** Runs delegated machines. Omitted, a delegation call falls through to the tool's own body. */
58
55
  subWorkflows?: SubWorkflowDispatcher;
@@ -85,7 +82,7 @@ export interface WorkflowMiddlewareOptions {
85
82
  }
86
83
  /**
87
84
  * In-graph governance for the Deep Agent: the turn boundary, per-state tool
88
- * disclosure and the kernel's verdict on every call, lifecycle hooks, the
85
+ * disclosure and the kernel's verdict on every call, the automated states, the
89
86
  * control tools, budgets, `on_error` routing, and every park's commit, closing
90
87
  * turn and suspension.
91
88
  */
@@ -1,23 +1,23 @@
1
1
  import { RemoveMessage } from "@langchain/core/messages";
2
2
  import { v4 as uuidv4 } from "@langchain/core/utils/uuid";
3
3
  import { createMiddleware } from "langchain";
4
- import { LifecycleRunner } from "../lifecycle/runner.js";
4
+ import { CODE_SESSION } from "../sandbox/executor.js";
5
5
  import { createWorkflowEventEmitter } from "../core/events.js";
6
- import { createControlTools } from "./control-tools.js";
6
+ import { createControlTools, transitionUpdate } from "./control-tools.js";
7
+ import { automatedNoteText, automatedOutcomeOf } from "./automated.js";
7
8
  import { checkReturns } from "./returns-check.js";
8
9
  import { fileGovernance, fileValueCheck } from "./file-values.js";
9
10
  import { returnsFileIssues } from "./signature-checks.js";
10
11
  import { skillPrefixes } from "../core/skills.js";
11
- import { currentWorkflowState, isReplyOnly, pendingFailure, pendingParkOf, readRunUsage, readRaised, readVariables, readWorkflowState, WORKFLOW_STATUSES, workflowStateSchema, } from "./state.js";
12
- import { invocationOf, sessionScopeFrom } from "../sessions/scope.js";
12
+ import { currentWorkflowState, isReplyOnly, mergeVariables, NO_PENDING_FAILURE, pendingFailure, pendingParkOf, readRunUsage, readRaised, readVariables, readWorkflowState, WORKFLOW_STATUSES, workflowStateSchema, } from "./state.js";
13
+ import { sessionScopeFrom } from "../sessions/scope.js";
13
14
  import { contentToString, isAiMessage, isRuntimeNote, lastMessageIsHuman, runtimeNote } from "../core/messages.js";
14
15
  import { NO_MOUNTS } from "../core/mounts.js";
15
16
  import { addSummaries, extractUsage, summarizeUsage } from "../core/usage.js";
16
17
  import { routeFailure } from "./on-error.js";
17
- import { servePark, suspendIfParked } from "./parks.js";
18
+ import { closingTurn, servePark, suspendIfParked } from "./parks.js";
18
19
  import { openTurn } from "./turn-boundary.js";
19
- import { beforeVetoReason, budgetExhaustedReason, buildRunnableConfig, createGovernance, } from "./governance.js";
20
- import { visitStart } from "./visits.js";
20
+ import { budgetExhaustedReason, buildRunnableConfig, createGovernance, } from "./governance.js";
21
21
  export { resolveToolName } from "./governance.js";
22
22
  /**
23
23
  * The id a message will be committed under, assigning one when it arrived
@@ -45,23 +45,13 @@ function callsTools(message) {
45
45
  const asHookResult = (update) => update;
46
46
  /**
47
47
  * In-graph governance for the Deep Agent: the turn boundary, per-state tool
48
- * disclosure and the kernel's verdict on every call, lifecycle hooks, the
48
+ * disclosure and the kernel's verdict on every call, the automated states, the
49
49
  * control tools, budgets, `on_error` routing, and every park's commit, closing
50
50
  * turn and suspension.
51
51
  */
52
52
  export function createWorkflowInstrumentation(opts) {
53
- const { machine, executor, rubrics = new Map(), ptcNames, ptcGateway, subWorkflows, onEvent, pricing, stateModels } = opts;
53
+ const { machine, ptcGateway, subWorkflows, onEvent, pricing, stateModels } = opts;
54
54
  const emit = createWorkflowEventEmitter(onEvent);
55
- const lifecycleHooks = machine.lifecycleHooks();
56
- const lifecycle = new LifecycleRunner(machine, opts.hookExecutor ?? executor, rubrics, ptcNames, opts.hookExecutors, onEvent, ...(opts.resolveHookScript ? [{ resolveScript: opts.resolveHookScript }] : []));
57
- if (Object.keys(lifecycleHooks).length > 0) {
58
- emit({
59
- type: "hooks-summary",
60
- summary: Object.entries(lifecycleHooks)
61
- .map(([s, l]) => `${s}(${[l.before && "before", l.after && "after"].filter(Boolean).join("+")})`)
62
- .join(", "),
63
- });
64
- }
65
55
  const sessionIdOf = (runtime) => sessionScopeFrom(runtime).sessionId;
66
56
  const configOf = (runtime) => buildRunnableConfig((runtime ?? {}));
67
57
  // The `file` type's runtime checks: a listing of the bound session's workspace
@@ -81,7 +71,6 @@ export function createWorkflowInstrumentation(opts) {
81
71
  const governance = createGovernance({
82
72
  machine,
83
73
  emit,
84
- lifecycle,
85
74
  policyRules: opts.policyRules ?? [],
86
75
  mountPrefixes: opts.mountPrefixes ?? NO_MOUNTS,
87
76
  skills: opts.skills ?? new Map(),
@@ -91,6 +80,12 @@ export function createWorkflowInstrumentation(opts) {
91
80
  ...(subWorkflows ? { subWorkflows } : {}),
92
81
  child: opts.child === true,
93
82
  ...(files ? { files } : {}),
83
+ automated: {
84
+ codeExecutor: opts.codeExecutor,
85
+ resolveScript: opts.resolveCodeScript,
86
+ graderModel: opts.graderModel,
87
+ ...(pricing ? { pricing } : {}),
88
+ },
94
89
  sessionIdOf,
95
90
  });
96
91
  const parkCtx = {
@@ -101,8 +96,6 @@ export function createWorkflowInstrumentation(opts) {
101
96
  configOf,
102
97
  };
103
98
  const failureCtx = { machine, emit, sessionIdOf };
104
- /** The model calls `invocation` has made so far, across every state. */
105
- const turnCallsOf = (fields, invocation) => fields.turnCalls?.invocation === invocation ? fields.turnCalls : { invocation, count: 0 };
106
99
  /** The state's `budget.maxTurns`, and the model calls this visit has made against it. */
107
100
  const turnBudget = (fields, workflowState) => ({
108
101
  maxTurns: machine.spec.states[workflowState]?.budget?.maxTurns,
@@ -150,9 +143,9 @@ export function createWorkflowInstrumentation(opts) {
150
143
  hook: (state, runtime) => {
151
144
  const fields = readWorkflowState(state);
152
145
  const workflowState = currentWorkflowState(state, machine.entry);
153
- // The agent raised in the step just serviced: the session is over. Ended
154
- // here, before any model call, so nothing after the model runs either —
155
- // no `on_error` route, no terminal `after` hook, no `returns` check.
146
+ // The session raised in the step just serviced: it is over. Ended here,
147
+ // before any model call, so nothing after the model runs either — no
148
+ // `on_error` route, no `returns` check.
156
149
  if (fields.status === WORKFLOW_STATUSES.failed && readRaised(state)) {
157
150
  return asHookResult({ jumpTo: "end" });
158
151
  }
@@ -165,19 +158,10 @@ export function createWorkflowInstrumentation(opts) {
165
158
  if (isReplyOnly(state)) {
166
159
  return asHookResult(lastMessageIsHuman(state.messages ?? []) ? undefined : { jumpTo: "end" });
167
160
  }
168
- // The workflow's turn budget: model calls this invocation, across every state.
169
- // Routed once; the error handler it routes to is then bounded by its own budget
170
- // and the step limit. An invocation the runner did not stamp is not counted.
171
- const invocation = invocationOf(runtime);
172
- const calls = invocation === undefined ? undefined : turnCallsOf(fields, invocation);
173
- if (calls && !calls.exhausted && calls.count + 1 > machine.maxModelCalls) {
174
- const routed = routeFailure(failureCtx, state, runtime, workflowState, `the turn exhausted its budget (maxModelCalls: ${machine.maxModelCalls})`, "before-model");
175
- routed.turnCalls = { ...calls, count: calls.count + 1, exhausted: true };
176
- if (routed.workflowState)
177
- routed.stateTurns = { state: routed.workflowState, count: 1 };
178
- return asHookResult(routed);
179
- }
180
- const turnCalls = calls ? { turnCalls: { ...calls, count: calls.count + 1 } } : {};
161
+ // An automated state makes no call of the agent's model, so no agent turn
162
+ // budget applies there; a grader's own calls are bounded inside its run.
163
+ if (machine.isAutomatedState(workflowState))
164
+ return asHookResult(undefined);
181
165
  // The exact per-state turn budget: this call would be one too many.
182
166
  const { maxTurns, spent } = turnBudget(fields, workflowState);
183
167
  if (maxTurns != null && spent + 1 > maxTurns) {
@@ -185,9 +169,9 @@ export function createWorkflowInstrumentation(opts) {
185
169
  // The error handler's first call is the one about to be made.
186
170
  if (routed.workflowState)
187
171
  routed.stateTurns = { state: routed.workflowState, count: 1 };
188
- return asHookResult({ ...routed, ...turnCalls });
172
+ return asHookResult(routed);
189
173
  }
190
- return asHookResult({ stateTurns: { state: workflowState, count: spent + 1 }, ...turnCalls });
174
+ return asHookResult({ stateTurns: { state: workflowState, count: spent + 1 } });
191
175
  },
192
176
  },
193
177
  wrapModelCall: governance.wrapModelCall,
@@ -200,14 +184,11 @@ export function createWorkflowInstrumentation(opts) {
200
184
  const messages = state.messages ?? [];
201
185
  const last = messages[messages.length - 1];
202
186
  const update = {};
203
- // A hook dispatches outside the tool node, so what it took is committed here:
204
- // a `before` hook's during the model call, a terminal `after` hook's below.
205
- const commitDispatches = () => {
206
- const taken = governance.dispatchCount(sessionIdOf(runtime), state);
207
- if (taken > (fields.dispatchCount ?? 0))
208
- update.dispatchCount = taken;
209
- };
210
- commitDispatches();
187
+ // An automated state's calls dispatch outside the tool node, during the
188
+ // serviced model call, so what they took is committed here.
189
+ const taken = governance.dispatchCount(sessionIdOf(runtime), state);
190
+ if (taken > (fields.dispatchCount ?? 0))
191
+ update.dispatchCount = taken;
211
192
  // 1. Report the message the model just produced and what it cost. Usage is
212
193
  // committed as the new total: the channel is last-value and this hook is its one writer.
213
194
  if (last && isAiMessage(last) && !isRuntimeNote(last)) {
@@ -241,21 +222,31 @@ export function createWorkflowInstrumentation(opts) {
241
222
  return asHookResult({
242
223
  ...update,
243
224
  ...routed,
244
- // The marker is removed, so the handler's visit starts after the message before it.
245
- ...(routed.visits ? { visits: visitStart(routed.visits[0].state, messages.slice(0, -1)) } : {}),
246
225
  messages: [new RemoveMessage({ id: last.id }), ...(routed.messages ?? [])],
247
226
  });
248
227
  }
249
- // 3. A `before` hook refused this state: the model never ran, so nothing
250
- // below applies. Routed like any terminal rejection — the refusal text
251
- // stays in the transcript as the reply the person is owed, unlike the
252
- // budget marker above, which stood in for an answer that never came.
253
- const refusedEntry = beforeVetoReason(last);
254
- if (refusedEntry !== undefined) {
255
- return asHookResult({
256
- ...update,
257
- ...routeFailure(failureCtx, state, runtime, workflowState, refusedEntry, "after-model"),
258
- });
228
+ // 3. An automated state ran in place of the model call: the marker leaves
229
+ // the transcript and its outcome is committed. A move jumps back to the
230
+ // model, where the next state runs; a raise ends the session; a failure
231
+ // routes; a terminal state's completion falls through to the checks
232
+ // every completing session gets.
233
+ const step = automatedOutcomeOf(last);
234
+ let completedVariables;
235
+ if (step && typeof last?.id === "string") {
236
+ const committed = commitAutomated(step, last.id, state);
237
+ if (step.result.kind === "failed") {
238
+ const routed = routeFailure(failureCtx, state, runtime, workflowState, step.result.reason, "after-model");
239
+ return asHookResult({
240
+ ...update,
241
+ ...committed,
242
+ ...routed,
243
+ messages: [...(committed.messages ?? []), ...(routed.messages ?? [])],
244
+ });
245
+ }
246
+ if (step.result.kind !== "completed")
247
+ return asHookResult({ ...update, ...committed });
248
+ Object.assign(update, committed);
249
+ completedVariables = committed.variables;
259
250
  }
260
251
  // 4. A park's closing or answering turn was just spent.
261
252
  const served = servePark(parkCtx, state, runtime, "after-model");
@@ -273,40 +264,19 @@ export function createWorkflowInstrumentation(opts) {
273
264
  // routes once the model has finished in the failing state.
274
265
  const failure = pendingFailure(state);
275
266
  if (failure) {
267
+ const routed = routeFailure(failureCtx, state, runtime, workflowState, failure, "after-model");
276
268
  return asHookResult({
277
269
  ...update,
278
- ...routeFailure(failureCtx, state, runtime, workflowState, failure, "after-model"),
270
+ ...routed,
271
+ // A completed automated step's marker still leaves the transcript.
272
+ messages: [...(update.messages ?? []), ...(routed.messages ?? [])],
279
273
  });
280
274
  }
281
- // A terminal state has no `archmax_advance` out of it, so its `after` hook
282
- // runs at completion: `correct` hands the state back with a note, a
283
- // terminal failure routes through `on_error`.
284
- if (machine.isTerminal(workflowState) && lifecycleHooks[workflowState]?.after?.length) {
285
- const ctx = governance.lifecycleCtx(sessionIdOf(runtime), state, runtime.signal);
286
- const reject = await lifecycle.runPhase(workflowState, "after", ctx, undefined, true);
287
- commitDispatches();
288
- if (reject) {
289
- if (reject.terminal) {
290
- return asHookResult({
291
- ...update,
292
- iterations: ctx.iterations,
293
- ...routeFailure(failureCtx, state, runtime, workflowState, reject.reason, "after-model"),
294
- });
295
- }
296
- return asHookResult({
297
- ...update,
298
- messages: runtimeNote("after", `[after] The '${workflowState}' completion check did not pass: ${reject.reason}. ` +
299
- `Revise your work and produce a corrected final response.`),
300
- iterations: ctx.iterations,
301
- jumpTo: "model",
302
- });
303
- }
304
- update.iterations = ctx.iterations;
305
- }
306
275
  // The exit half of the trigger's signature, checked where a run completes —
307
276
  // never at a park, and never handed back: a child settles on what it set
308
277
  // (its caller gets a note naming the rest); anything else short of it is rejected.
309
- const store = readVariables(state);
278
+ // A terminal automated state's writes count: they land with this update.
279
+ const store = completedVariables ? mergeVariables(readVariables(state), completedVariables) : readVariables(state);
310
280
  const returns = checkReturns(machine, {
311
281
  trigger: fields.trigger?.id,
312
282
  state: workflowState,
@@ -323,24 +293,68 @@ export function createWorkflowInstrumentation(opts) {
323
293
  return asHookResult({ ...update, status: WORKFLOW_STATUSES.completed });
324
294
  },
325
295
  },
326
- // Flush this turn's staged `beforeDone` entries as one state update.
327
- afterAgent: (state, runtime) => {
328
- const staged = governance.endTurn(sessionIdOf(runtime));
329
- if (!staged)
330
- return undefined;
331
- return { beforeDone: { ...(readWorkflowState(state).beforeDone ?? {}), ...staged } };
296
+ // The turn is over: drop the session's per-turn context.
297
+ afterAgent: (_state, runtime) => {
298
+ governance.endTurn(sessionIdOf(runtime));
299
+ return undefined;
332
300
  },
333
301
  });
302
+ /**
303
+ * The update an automated step's outcome commits, beside the marker's removal:
304
+ * its variable writes, its sub-run trail steps, its usage, and — for a move or
305
+ * a raise — the move itself or the failure record, with the runtime note the
306
+ * next state reads. A move jumps back to the model, which skips the
307
+ * `beforeModel` site, so what that site would do for the next call is done
308
+ * here: into a human state the park opens straight in its closing turn, and
309
+ * into an agent state the call is counted as the state's first.
310
+ */
311
+ function commitAutomated(step, markerId, state) {
312
+ const note = automatedNoteText(step);
313
+ const notes = note ? runtimeNote(step.type, note) : [];
314
+ const committed = {
315
+ messages: [new RemoveMessage({ id: markerId }), ...notes],
316
+ ...(step.variables ? { variables: step.variables } : {}),
317
+ ...(step.usage ? { usage: addSummaries(readRunUsage(state), step.usage) } : {}),
318
+ ...(step.trail?.length ? { auditTrail: step.trail } : {}),
319
+ };
320
+ const { result } = step;
321
+ if (result.kind === "raised") {
322
+ return {
323
+ ...committed,
324
+ raised: { code: result.code, reason: result.reason, state: step.state },
325
+ status: WORKFLOW_STATUSES.failed,
326
+ ...NO_PENDING_FAILURE,
327
+ };
328
+ }
329
+ if (result.kind !== "advanced")
330
+ return committed;
331
+ const { update: moved, park } = transitionUpdate(machine, state, {
332
+ to: result.to,
333
+ kind: step.type,
334
+ reason: result.reason,
335
+ ...(result.evidence ? { evidence: result.evidence } : {}),
336
+ });
337
+ const landed = {
338
+ ...committed,
339
+ ...moved,
340
+ auditTrail: [...(committed.auditTrail ?? []), ...(moved.auditTrail ?? [])],
341
+ };
342
+ if (park)
343
+ return { ...landed, ...closingTurn(), jumpTo: "model" };
344
+ if (machine.isAutomatedState(result.to))
345
+ return { ...landed, jumpTo: "model" };
346
+ // The agent's call about to be made is its state's first.
347
+ return { ...landed, stateTurns: { state: result.to, count: 1 }, jumpTo: "model" };
348
+ }
334
349
  return {
335
350
  parkMiddleware,
336
351
  middleware,
337
352
  tools: createControlTools({ child: opts.child === true }),
338
- lifecycle,
339
353
  dispose: (sessionId) => {
340
354
  // Requested per session, so it sweeps the session and every sub-run session nested beneath it.
341
355
  for (const scope of new Set([...governance.release(sessionId), sessionId])) {
342
356
  ptcGateway?.release(scope);
343
- lifecycle.dispose(scope);
357
+ opts.codeExecutor.dispose(scope, CODE_SESSION);
344
358
  }
345
359
  },
346
360
  };
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/workflow/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/workflow/middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * How a move of the session is narrated on the event stream — one shape for
3
+ * every mover: the session's agent, a grader state, a code state, a reset.
4
+ */
5
+ import type { WorkflowEventEmitter } from "../core/events.js";
6
+ /** A move along a declared edge: `advance`, then the state left and the state entered, then the park it opened. */
7
+ export declare function reportAdvance(emit: WorkflowEventEmitter, sessionId: string, moved: {
8
+ from: string;
9
+ to: string;
10
+ reason?: string;
11
+ /** The `archmax_advance` call that made the move, when one did. */
12
+ callId?: string;
13
+ /** The target is a human state, so the move parked the session for a decision. */
14
+ parks?: boolean;
15
+ }): void;
16
+ /** The state left, the state entered, and — into a human state — the park it opened. */
17
+ export declare function reportMove(emit: WorkflowEventEmitter, sessionId: string, moved: {
18
+ from: string;
19
+ to: string;
20
+ parks?: boolean;
21
+ }): void;
@@ -0,0 +1,20 @@
1
+ /** A move along a declared edge: `advance`, then the state left and the state entered, then the park it opened. */
2
+ export function reportAdvance(emit, sessionId, moved) {
3
+ const reason = moved.reason?.trim();
4
+ emit({
5
+ type: "advance",
6
+ from: moved.from,
7
+ to: moved.to,
8
+ ...(reason ? { reason } : {}),
9
+ ...(moved.callId ? { callId: moved.callId } : {}),
10
+ });
11
+ reportMove(emit, sessionId, moved);
12
+ }
13
+ /** The state left, the state entered, and — into a human state — the park it opened. */
14
+ export function reportMove(emit, sessionId, moved) {
15
+ emit({ type: "state-leave", state: moved.from, next: moved.to });
16
+ emit({ type: "state-enter", state: moved.to });
17
+ if (moved.parks)
18
+ emit({ type: "parked", state: moved.to, sessionId, awaiting: "decision" });
19
+ }
20
+ //# sourceMappingURL=move-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-events.js","sourceRoot":"","sources":["../../src/workflow/move-events.ts"],"names":[],"mappings":"AAMA,mHAAmH;AACnH,MAAM,UAAU,aAAa,CAC3B,IAA0B,EAC1B,SAAiB,EACjB,KAQC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,UAAU,CACxB,IAA0B,EAC1B,SAAiB,EACjB,KAAoD;IAEpD,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,KAAK;QAAE,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AAC9F,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { runtimeNote } from "../core/messages.js";
2
2
  import { decisionRecordFor } from "./parks.js";
3
3
  import { NO_PENDING_FAILURE, readWorkflowState, WORKFLOW_STATUSES, } from "./state.js";
4
- import { messagesIn, visitStart } from "./visits.js";
5
4
  /**
6
5
  * The update that settles a failed state. With an `on_error` target: the note,
7
6
  * the new position, an `on_error` trail step, every park record cleared, and —
@@ -36,7 +35,6 @@ export function routeFailure(ctx, state, runtime, from, reason, site) {
36
35
  auditTrail: [
37
36
  { to: errorTarget, kind: "on_error", reason, ts: Date.now() },
38
37
  ],
39
- visits: visitStart(errorTarget, messagesIn(state)),
40
38
  ...(site === "after-model" ? { jumpTo: "model" } : {}),
41
39
  };
42
40
  if (!ctx.machine.isHumanState(errorTarget))
@@ -1 +1 @@
1
- {"version":3,"file":"on-error.js","sourceRoot":"","sources":["../../src/workflow/on-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"on-error.js","sourceRoot":"","sources":["../../src/workflow/on-error.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAGlB,MAAM,YAAY,CAAC;AAYpB;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,GAA0B,EAC1B,KAAc,EACd,OAAgB,EAChB,IAAY,EACZ,MAAc,EACd,IAAc;IAEd,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,GAAG,kBAAkB;YACrB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,iBAAiB,CAAC,QAAQ;YAClC,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACtD,MAAM,MAAM,GAAmB;QAC7B,QAAQ,EAAE,WAAW,CACnB,OAAO,EACP,gBAAgB,IAAI,mBAAmB,MAAM,qBAAqB,WAAW,kBAAkB,CAChG;QACD,aAAa,EAAE,WAAW;QAC1B,GAAG,kBAAkB;QACrB,MAAM,EAAE,iBAAiB,CAAC,OAAO;QACjC,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;QACrB,kBAAkB,EAAE,IAAI;QACxB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE;YACV,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAsB;SAClF;QACD,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1D,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC;QACnC,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IACH,OAAO;QACL,GAAG,MAAM;QACT,eAAe,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC;QACjE,aAAa,EAAE,GAAG;QAClB,MAAM,EAAE,iBAAiB,CAAC,gBAAgB;QAC1C,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC"}
@@ -14,8 +14,9 @@ export declare function decisionRecordFor(machine: WorkflowMachine, state: strin
14
14
  export declare function inputRecordFor(machine: WorkflowMachine, state: string, reason: string, resumeAt?: string): PendingInput;
15
15
  /**
16
16
  * What a reply-only turn is told. Four shapes of park reach this — handing the
17
- * run to a person, being routed to one by a decision, waiting for something
18
- * from outside, and answering someone while a person decides — each with its
17
+ * run to a person, being routed to one (by a decision or an automated state),
18
+ * waiting for something from outside, and answering someone while a person
19
+ * decides — each with its
19
20
  * own first sentence. The last paragraph is the same in all: it is what stands
20
21
  * between a parked run and a model that would rather keep working.
21
22
  */
@@ -30,6 +31,12 @@ export interface ParkContext {
30
31
  /** The runnable config a hook's runtime stands for, for a child's resume. */
31
32
  configOf(runtime: unknown): RunnableConfig;
32
33
  }
34
+ /**
35
+ * The update that starts a closing turn: one reply-only model call, after which
36
+ * the next hook site suspends. Applied directly where the park opens on a jump
37
+ * to the model, which skips the `beforeModel` site that would otherwise start it.
38
+ */
39
+ export declare function closingTurn(): WorkflowUpdate;
33
40
  /**
34
41
  * Move a park along, deterministically on state. Before the model: a record in
35
42
  * phase `closing` gets its closing turn; a delegated child that parked becomes