@archmax-ai/harness 0.8.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 (219) hide show
  1. package/README.md +58 -14
  2. package/dist/agent.d.ts +4 -4
  3. package/dist/agent.js +4 -4
  4. package/dist/assembly/compose.d.ts +5 -24
  5. package/dist/assembly/compose.js +40 -41
  6. package/dist/assembly/compose.js.map +1 -1
  7. package/dist/assembly/delegation-registry.js +3 -14
  8. package/dist/assembly/delegation-registry.js.map +1 -1
  9. package/dist/assembly/index.d.ts +18 -15
  10. package/dist/assembly/index.js +50 -32
  11. package/dist/assembly/index.js.map +1 -1
  12. package/dist/assembly/plain.js +1 -2
  13. package/dist/assembly/plain.js.map +1 -1
  14. package/dist/authoring-skill/archmax-harness/README.md +5 -5
  15. package/dist/authoring-skill/archmax-harness/SKILL.md +72 -30
  16. package/dist/authoring-skill/archmax-harness/references/backend-integration.md +35 -23
  17. package/dist/authoring-skill/archmax-harness/references/cases.md +44 -10
  18. package/dist/authoring-skill/archmax-harness/references/{hook-and-test-scripts.md → code-state-and-test-scripts.md} +617 -313
  19. package/dist/authoring-skill/archmax-harness/references/code-states-and-scripts.md +115 -0
  20. package/dist/authoring-skill/archmax-harness/references/diagnostics.md +40 -7
  21. package/dist/authoring-skill/archmax-harness/references/wiring.md +19 -10
  22. package/dist/authoring-skill/archmax-harness/references/workflow-schema.md +416 -276
  23. package/dist/authoring-skill/archmax-harness/references/workflow-yaml.md +161 -62
  24. package/dist/cli/state-flow.d.ts +1 -1
  25. package/dist/cli/state-flow.js +18 -28
  26. package/dist/cli/state-flow.js.map +1 -1
  27. package/dist/cli/turn.d.ts +1 -1
  28. package/dist/cli/turn.js +2 -3
  29. package/dist/cli/turn.js.map +1 -1
  30. package/dist/core/clock.d.ts +26 -0
  31. package/dist/core/clock.js +64 -0
  32. package/dist/core/clock.js.map +1 -0
  33. package/dist/core/code-description.d.ts +3 -3
  34. package/dist/core/code-description.js +3 -3
  35. package/dist/core/deepagents.d.ts +5 -5
  36. package/dist/core/deepagents.js +4 -4
  37. package/dist/core/events.d.ts +23 -42
  38. package/dist/core/events.js +21 -24
  39. package/dist/core/events.js.map +1 -1
  40. package/dist/core/message-readers.d.ts +22 -2
  41. package/dist/core/message-readers.js +31 -0
  42. package/dist/core/message-readers.js.map +1 -1
  43. package/dist/core/messages.d.ts +1 -23
  44. package/dist/core/messages.js +2 -35
  45. package/dist/core/messages.js.map +1 -1
  46. package/dist/core/mounts.js +3 -3
  47. package/dist/core/platform-prompt.generated.js +1 -1
  48. package/dist/core/platform-prompt.generated.js.map +1 -1
  49. package/dist/core/session-zone.d.ts +1 -1
  50. package/dist/core/session-zone.js +1 -1
  51. package/dist/core/workspace-context.d.ts +1 -1
  52. package/dist/core/workspace.d.ts +1 -1
  53. package/dist/core/workspace.js +1 -1
  54. package/dist/core/zones.d.ts +4 -4
  55. package/dist/core/zones.js +5 -5
  56. package/dist/core/zones.js.map +1 -1
  57. package/dist/env.d.ts +9 -9
  58. package/dist/index.d.ts +3 -7
  59. package/dist/index.js +2 -4
  60. package/dist/index.js.map +1 -1
  61. package/dist/kernel/kernel.d.ts +31 -61
  62. package/dist/kernel/kernel.js +57 -114
  63. package/dist/kernel/kernel.js.map +1 -1
  64. package/dist/machine/allow.d.ts +17 -2
  65. package/dist/machine/allow.js +16 -6
  66. package/dist/machine/allow.js.map +1 -1
  67. package/dist/machine/lint-spec.js +68 -12
  68. package/dist/machine/lint-spec.js.map +1 -1
  69. package/dist/machine/machine.d.ts +39 -16
  70. package/dist/machine/machine.js +72 -49
  71. package/dist/machine/machine.js.map +1 -1
  72. package/dist/machine/spec-schema.d.ts +34 -179
  73. package/dist/machine/spec-schema.js +93 -106
  74. package/dist/machine/spec-schema.js.map +1 -1
  75. package/dist/machine/tool-names.d.ts +34 -10
  76. package/dist/machine/tool-names.js +41 -10
  77. package/dist/machine/tool-names.js.map +1 -1
  78. package/dist/machine/tool-paths.d.ts +6 -0
  79. package/dist/machine/tool-paths.js +10 -0
  80. package/dist/machine/tool-paths.js.map +1 -1
  81. package/dist/machine/types.d.ts +14 -38
  82. package/dist/machine/types.js.map +1 -1
  83. package/dist/machine/validate-spec.d.ts +1 -1
  84. package/dist/machine/variables.d.ts +2 -0
  85. package/dist/machine/variables.js.map +1 -1
  86. package/dist/public/sandbox.d.ts +62 -66
  87. package/dist/public/sandbox.js +22 -23
  88. package/dist/public/sandbox.js.map +1 -1
  89. package/dist/public/spec.d.ts +12 -19
  90. package/dist/public/spec.js +11 -19
  91. package/dist/public/spec.js.map +1 -1
  92. package/dist/runtime/contract.d.ts +11 -12
  93. package/dist/runtime/contract.js +16 -16
  94. package/dist/runtime/contract.js.map +1 -1
  95. package/dist/sandbox/assets/parts/code-state.js +17 -0
  96. package/dist/sandbox/executor.d.ts +25 -7
  97. package/dist/sandbox/executor.js +56 -47
  98. package/dist/sandbox/executor.js.map +1 -1
  99. package/dist/sandbox/imports.d.ts +10 -10
  100. package/dist/sandbox/imports.js +11 -11
  101. package/dist/sandbox/imports.js.map +1 -1
  102. package/dist/sandbox/prelude.d.ts +5 -6
  103. package/dist/sandbox/prelude.js +38 -35
  104. package/dist/sandbox/prelude.js.map +1 -1
  105. package/dist/sandbox/ptc-gateway.d.ts +19 -18
  106. package/dist/sandbox/ptc-gateway.js +26 -22
  107. package/dist/sandbox/ptc-gateway.js.map +1 -1
  108. package/dist/sessions/operations.js +4 -5
  109. package/dist/sessions/operations.js.map +1 -1
  110. package/dist/sessions/resume.d.ts +12 -7
  111. package/dist/sessions/resume.js +12 -9
  112. package/dist/sessions/resume.js.map +1 -1
  113. package/dist/sessions/summary.d.ts +1 -1
  114. package/dist/testing/assertions.js +9 -4
  115. package/dist/testing/assertions.js.map +1 -1
  116. package/dist/testing/case-document.d.ts +2 -0
  117. package/dist/testing/case-document.js.map +1 -1
  118. package/dist/testing/case-schema.d.ts +1 -1
  119. package/dist/testing/case-schema.js +17 -1
  120. package/dist/testing/case-schema.js.map +1 -1
  121. package/dist/testing/driver.d.ts +4 -0
  122. package/dist/testing/driver.js +22 -3
  123. package/dist/testing/driver.js.map +1 -1
  124. package/dist/testing/grade.js +3 -3
  125. package/dist/testing/grade.js.map +1 -1
  126. package/dist/testing/interpreter.d.ts +2 -2
  127. package/dist/testing/interpreter.js +1 -0
  128. package/dist/testing/interpreter.js.map +1 -1
  129. package/dist/testing/runner.d.ts +2 -2
  130. package/dist/validate/validate.d.ts +1 -1
  131. package/dist/validate/validate.js +39 -70
  132. package/dist/validate/validate.js.map +1 -1
  133. package/dist/workflow/automated-controls.d.ts +63 -0
  134. package/dist/workflow/automated-controls.js +158 -0
  135. package/dist/workflow/automated-controls.js.map +1 -0
  136. package/dist/workflow/automated.d.ts +112 -0
  137. package/dist/workflow/automated.js +163 -0
  138. package/dist/workflow/automated.js.map +1 -0
  139. package/dist/workflow/checkpointer.d.ts +7 -0
  140. package/dist/workflow/checkpointer.js +28 -0
  141. package/dist/workflow/checkpointer.js.map +1 -1
  142. package/dist/workflow/code-state.d.ts +46 -0
  143. package/dist/workflow/code-state.js +26 -0
  144. package/dist/workflow/code-state.js.map +1 -0
  145. package/dist/workflow/control-tools.d.ts +54 -23
  146. package/dist/workflow/control-tools.js +121 -77
  147. package/dist/workflow/control-tools.js.map +1 -1
  148. package/dist/workflow/file-values.d.ts +4 -4
  149. package/dist/workflow/file-values.js +1 -1
  150. package/dist/workflow/file-values.js.map +1 -1
  151. package/dist/workflow/governance.d.ts +13 -22
  152. package/dist/workflow/governance.js +51 -87
  153. package/dist/workflow/governance.js.map +1 -1
  154. package/dist/workflow/grader-state.d.ts +55 -0
  155. package/dist/workflow/grader-state.js +182 -0
  156. package/dist/workflow/grader-state.js.map +1 -0
  157. package/dist/workflow/history.d.ts +11 -0
  158. package/dist/workflow/history.js +64 -0
  159. package/dist/workflow/history.js.map +1 -0
  160. package/dist/workflow/middleware.d.ts +14 -17
  161. package/dist/workflow/middleware.js +106 -74
  162. package/dist/workflow/middleware.js.map +1 -1
  163. package/dist/workflow/move-events.d.ts +21 -0
  164. package/dist/workflow/move-events.js +20 -0
  165. package/dist/workflow/move-events.js.map +1 -0
  166. package/dist/workflow/parks.d.ts +9 -2
  167. package/dist/workflow/parks.js +16 -8
  168. package/dist/workflow/parks.js.map +1 -1
  169. package/dist/workflow/paths.d.ts +9 -9
  170. package/dist/workflow/paths.js +19 -19
  171. package/dist/workflow/paths.js.map +1 -1
  172. package/dist/workflow/render-prompt.d.ts +7 -5
  173. package/dist/workflow/render-prompt.js +22 -37
  174. package/dist/workflow/render-prompt.js.map +1 -1
  175. package/dist/workflow/signature-checks.d.ts +2 -2
  176. package/dist/workflow/snapshot.js +5 -29
  177. package/dist/workflow/snapshot.js.map +1 -1
  178. package/dist/workflow/state.d.ts +19 -6
  179. package/dist/workflow/state.js +24 -8
  180. package/dist/workflow/state.js.map +1 -1
  181. package/dist/workflow/sub-workflow.d.ts +3 -3
  182. package/dist/workflow/tool-service.d.ts +1 -9
  183. package/dist/workflow/tool-service.js +21 -24
  184. package/dist/workflow/tool-service.js.map +1 -1
  185. package/dist/workflow/turn-boundary.d.ts +2 -2
  186. package/dist/workflow/turn-boundary.js +10 -7
  187. package/dist/workflow/turn-boundary.js.map +1 -1
  188. package/dist/workflow/turn-runner.js +30 -2
  189. package/dist/workflow/turn-runner.js.map +1 -1
  190. package/package.json +1 -1
  191. package/skills/archmax-harness/README.md +5 -5
  192. package/skills/archmax-harness/SKILL.md +72 -30
  193. package/skills/archmax-harness/references/backend-integration.md +35 -23
  194. package/skills/archmax-harness/references/cases.md +44 -10
  195. package/skills/archmax-harness/references/{hook-and-test-scripts.md → code-state-and-test-scripts.md} +617 -313
  196. package/skills/archmax-harness/references/code-states-and-scripts.md +115 -0
  197. package/skills/archmax-harness/references/diagnostics.md +40 -7
  198. package/skills/archmax-harness/references/wiring.md +19 -10
  199. package/skills/archmax-harness/references/workflow-schema.md +416 -276
  200. package/skills/archmax-harness/references/workflow-yaml.md +161 -62
  201. package/dist/authoring-skill/archmax-harness/references/hooks-and-scripts.md +0 -88
  202. package/dist/lifecycle/hook-shape.d.ts +0 -44
  203. package/dist/lifecycle/hook-shape.js +0 -66
  204. package/dist/lifecycle/hook-shape.js.map +0 -1
  205. package/dist/lifecycle/runner.d.ts +0 -183
  206. package/dist/lifecycle/runner.js +0 -373
  207. package/dist/lifecycle/runner.js.map +0 -1
  208. package/dist/lifecycle/transcript.d.ts +0 -27
  209. package/dist/lifecycle/transcript.js +0 -43
  210. package/dist/lifecycle/transcript.js.map +0 -1
  211. package/dist/rubrics/rubrics.d.ts +0 -135
  212. package/dist/rubrics/rubrics.js +0 -145
  213. package/dist/rubrics/rubrics.js.map +0 -1
  214. package/dist/sandbox/assets/parts/core.js +0 -22
  215. package/dist/sandbox/assets/parts/lifecycle-hook.js +0 -47
  216. package/dist/sandbox/bridge.d.ts +0 -16
  217. package/dist/sandbox/bridge.js +0 -95
  218. package/dist/sandbox/bridge.js.map +0 -1
  219. package/skills/archmax-harness/references/hooks-and-scripts.md +0 -88
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A pinned clock: the instant a governed agent's prompt states as "now" in place
3
+ * of the real time, so a case or an evaluation reads the same date on every run.
4
+ * Set by the host's `clock` option or, per turn, by a case's `clock:` key, which
5
+ * the case driver writes into the run configuration under {@link CLOCK_CONFIG_KEY}.
6
+ * Only the prompt line reads it; every recorded timestamp stays real.
7
+ */
8
+ /** The forms a pin takes, as an error message names them. */
9
+ export declare const CLOCK_FORMS = "an ISO 8601 date (2026-03-20) or a date-time with Z or an offset (2026-03-20T14:30:00Z)";
10
+ /** Where a turn's pin rides in `configurable`, beside the case's tool mocks. */
11
+ export declare const CLOCK_CONFIG_KEY = "__clock";
12
+ /**
13
+ * The instant `value` pins, or `undefined` for an empty string (no pin). Throws
14
+ * for anything else, naming the accepted forms. A date-time without a zone is
15
+ * refused, because JavaScript would read it in the machine's own zone and a case
16
+ * would render differently on each machine; so is a date or time that does not
17
+ * exist (`2026-02-30`, `25:00`), which `Date` would silently roll over.
18
+ */
19
+ export declare function parseClock(value: string): Date | undefined;
20
+ /**
21
+ * The pin a turn's run configuration carries, or `undefined`. A value that is
22
+ * not a string reads as unset; a string that is not a pin throws, because only a
23
+ * host writing the key by hand can produce one, and showing the real time
24
+ * instead would hide the mistake.
25
+ */
26
+ export declare function readClockPin(configurable: Record<string, unknown> | undefined): Date | undefined;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * A pinned clock: the instant a governed agent's prompt states as "now" in place
3
+ * of the real time, so a case or an evaluation reads the same date on every run.
4
+ * Set by the host's `clock` option or, per turn, by a case's `clock:` key, which
5
+ * the case driver writes into the run configuration under {@link CLOCK_CONFIG_KEY}.
6
+ * Only the prompt line reads it; every recorded timestamp stays real.
7
+ */
8
+ /** The forms a pin takes, as an error message names them. */
9
+ export const CLOCK_FORMS = "an ISO 8601 date (2026-03-20) or a date-time with Z or an offset (2026-03-20T14:30:00Z)";
10
+ /** Where a turn's pin rides in `configurable`, beside the case's tool mocks. */
11
+ export const CLOCK_CONFIG_KEY = "__clock";
12
+ const DATE = /^(\d{4})-(\d{2})-(\d{2})$/;
13
+ const DATE_TIME = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,3}))?)?(Z|([+-])(\d{2}):(\d{2}))$/;
14
+ /**
15
+ * The instant `value` pins, or `undefined` for an empty string (no pin). Throws
16
+ * for anything else, naming the accepted forms. A date-time without a zone is
17
+ * refused, because JavaScript would read it in the machine's own zone and a case
18
+ * would render differently on each machine; so is a date or time that does not
19
+ * exist (`2026-02-30`, `25:00`), which `Date` would silently roll over.
20
+ */
21
+ export function parseClock(value) {
22
+ if (value === "")
23
+ return undefined;
24
+ const date = DATE.exec(value);
25
+ const dateTime = date ? null : DATE_TIME.exec(value);
26
+ const m = date ?? dateTime;
27
+ if (!m)
28
+ throw new Error(`'${value}' is not ${CLOCK_FORMS}`);
29
+ const [y, mo, d, h, mi, s, ms] = [1, 2, 3, 4, 5, 6, 7].map((i) => Number(m[i] ?? 0));
30
+ const offsetMinutes = dateTime?.[9] === undefined
31
+ ? 0
32
+ : (dateTime[9] === "-" ? -1 : 1) * (Number(dateTime[10]) * 60 + Number(dateTime[11]));
33
+ const written = new Date(Date.UTC(y, mo - 1, d, h, mi, s, ms));
34
+ // Date.UTC rolls an impossible field over; reading the same fields back catches it.
35
+ const exists = written.getUTCFullYear() === y &&
36
+ written.getUTCMonth() === mo - 1 &&
37
+ written.getUTCDate() === d &&
38
+ written.getUTCHours() === h &&
39
+ written.getUTCMinutes() === mi &&
40
+ written.getUTCSeconds() === s &&
41
+ Number(dateTime?.[11] ?? 0) < 60 &&
42
+ Number(dateTime?.[10] ?? 0) < 24;
43
+ if (!exists)
44
+ throw new Error(`'${value}' names a date or time that does not exist; use ${CLOCK_FORMS}`);
45
+ return new Date(written.getTime() - offsetMinutes * 60_000);
46
+ }
47
+ /**
48
+ * The pin a turn's run configuration carries, or `undefined`. A value that is
49
+ * not a string reads as unset; a string that is not a pin throws, because only a
50
+ * host writing the key by hand can produce one, and showing the real time
51
+ * instead would hide the mistake.
52
+ */
53
+ export function readClockPin(configurable) {
54
+ const value = configurable?.[CLOCK_CONFIG_KEY];
55
+ if (typeof value !== "string")
56
+ return undefined;
57
+ try {
58
+ return parseClock(value);
59
+ }
60
+ catch (err) {
61
+ throw new Error(`The run configuration's '${CLOCK_CONFIG_KEY}': ${err.message}`, { cause: err });
62
+ }
63
+ }
64
+ //# sourceMappingURL=clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/core/clock.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * `archmax_run` scripts carry their human-facing contract as a leading JSDoc
3
3
  * block comment — the code-file analogue of a case file's `description`. Admin
4
- * UIs display only that description. Lifecycle hook scripts are NOT covered by this convention:
5
- * they are hand-authored files whose only validation is that the referenced
6
- * file exists. This module is the canonical extractor so consumers never
4
+ * UIs display only that description. A code state's script is NOT covered by this convention:
5
+ * it is a hand-authored file whose only validation is that the referenced file
6
+ * exists and imports nothing foreign. This module is the canonical extractor so consumers never
7
7
  * scrape comments themselves. It operates on source strings only (callers read
8
8
  * the file through their configured backend) and never touches the filesystem.
9
9
  */
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * `archmax_run` scripts carry their human-facing contract as a leading JSDoc
3
3
  * block comment — the code-file analogue of a case file's `description`. Admin
4
- * UIs display only that description. Lifecycle hook scripts are NOT covered by this convention:
5
- * they are hand-authored files whose only validation is that the referenced
6
- * file exists. This module is the canonical extractor so consumers never
4
+ * UIs display only that description. A code state's script is NOT covered by this convention:
5
+ * it is a hand-authored file whose only validation is that the referenced file
6
+ * exists and imports nothing foreign. This module is the canonical extractor so consumers never
7
7
  * scrape comments themselves. It operates on source strings only (callers read
8
8
  * the file through their configured backend) and never touches the filesystem.
9
9
  */
@@ -79,7 +79,7 @@ export type AnyModelCallRequest = ModelRequest;
79
79
  export type AnyToolCallHandler = ToolCallHandler;
80
80
  /** The handler that runs the model for a generic model-call request. */
81
81
  export type AnyModelCallHandler = (request: AnyModelCallRequest) => ModelCallResult | Promise<ModelCallResult>;
82
- /** The framework runtime handed to lifecycle hooks (context, configurable, signal, store). */
82
+ /** The framework runtime handed to middleware hooks (context, configurable, signal, store). */
83
83
  export type FrameworkRuntime = Runtime;
84
84
  export type { ToolMessage };
85
85
  /**
@@ -103,10 +103,10 @@ export declare function asStructuredTools(tools: ModelCallRequest["tools"] | und
103
103
  export declare function asModelCallResult(result: unknown, origin: string): ModelCallHookResult;
104
104
  /**
105
105
  * The `recursionLimit` a turn runs under when the caller names none. One invoke
106
- * is one whole turn across states — every hook, model call and tool batch is a
107
- * super-step — so this is generous by design: the authored budgets
108
- * (`budget.maxTurns`, `maxParks`) are the real bound, and this only stops a
109
- * run nothing else bounds.
106
+ * is one whole turn across states — every model call, tool batch and automated
107
+ * state is a super-step — so this is LangGraph's bound on a whole turn: a
108
+ * caller's own `recursionLimit` replaces it, and a state's `maxTurns` and
109
+ * `maxParks` bound the states that declare them.
110
110
  */
111
111
  export declare const DEFAULT_RECURSION_LIMIT = 400;
112
112
  /** The input a Deep Agent graph is invoked with: messages plus any state channel. */
@@ -99,10 +99,10 @@ function describeModelResult(result) {
99
99
  // --- Defaults -----------------------------------------------------------------
100
100
  /**
101
101
  * The `recursionLimit` a turn runs under when the caller names none. One invoke
102
- * is one whole turn across states — every hook, model call and tool batch is a
103
- * super-step — so this is generous by design: the authored budgets
104
- * (`budget.maxTurns`, `maxParks`) are the real bound, and this only stops a
105
- * run nothing else bounds.
102
+ * is one whole turn across states — every model call, tool batch and automated
103
+ * state is a super-step — so this is LangGraph's bound on a whole turn: a
104
+ * caller's own `recursionLimit` replaces it, and a state's `maxTurns` and
105
+ * `maxParks` bound the states that declare them.
106
106
  */
107
107
  export const DEFAULT_RECURSION_LIMIT = 400;
108
108
  /**
@@ -3,12 +3,11 @@
3
3
  * machine-governed workflow runs. Every runtime diagnostic flows through this
4
4
  * single typed stream; callers subscribe via `onEvent` on
5
5
  * `CreateWorkflowAgentOptions`. With no subscriber, the harness installs
6
- * {@link consoleEventHandler} (`[workflow]` / `[interpreter]` / `[rubrics]`
7
- * console output).
6
+ * {@link consoleEventHandler} (`[workflow]` / `[interpreter]` console output).
8
7
  *
9
8
  * Two visual tiers: **node-change** events (`state-enter`, `state-leave`) render
10
- * at the outer level; **action** events (`hook-*`, `advance`, `agent-text`)
11
- * happen within a node and render indented beneath it.
9
+ * at the outer level; **action** events (`code-*`, `grader-*`, `advance`,
10
+ * `agent-text`) happen within a node and render indented beneath it.
12
11
  *
13
12
  * `callId` pairing rule: every event a tool call causes carries that call's
14
13
  * `callId` — its own `tool-called`/`tool-result` pair and the effects it produced
@@ -26,13 +25,14 @@ export type WorkflowEventLevel = "info" | "warn" | "error";
26
25
  */
27
26
  export declare const SESSION_ORIGIN = "__start__";
28
27
  /**
29
- * Where a tool call came from, on the tool events. Absent means the model called
30
- * the tool directly; a value marks a programmatic call from inside a sandbox
31
- * script (`script`) or a lifecycle hook (`lifecycle`).
28
+ * Where a tool call came from, on the tool events. Absent means a model called
29
+ * the tool — the session's agent, or a grader in a grader state; `script` marks
30
+ * a programmatic call from inside a sandbox script — the agent's
31
+ * `archmax_eval`/`archmax_run`, or a code state's script.
32
32
  */
33
- export type ToolEventOrigin = "script" | "lifecycle";
33
+ export type ToolEventOrigin = "script";
34
34
  /** How a programmatic tool call's origin reads in human-facing output. */
35
- export declare function originLabel(origin: ToolEventOrigin): string;
35
+ export declare function originLabel(_origin: ToolEventOrigin): string;
36
36
  /**
37
37
  * Event payloads, without the severity level (added by the emitter). Every
38
38
  * `state` field carries a **state slug** — never a `title`, so a retitled node
@@ -43,9 +43,6 @@ export type WorkflowEventPayload = {
43
43
  } | {
44
44
  type: "skills-loaded";
45
45
  names: string[];
46
- } | {
47
- type: "hooks-summary";
48
- summary: string;
49
46
  } | {
50
47
  type: "graph-topology";
51
48
  topology: string;
@@ -69,32 +66,28 @@ export type WorkflowEventPayload = {
69
66
  to: string;
70
67
  reason: string;
71
68
  } | {
72
- type: "hook-start";
69
+ type: "code-start";
73
70
  state: string;
74
- phase: "before" | "after";
75
- label: string;
71
+ script: string;
76
72
  } | {
77
- type: "hook-output";
73
+ type: "code-output";
78
74
  state: string;
79
75
  line: string;
80
76
  } | {
81
- type: "hook-passed";
77
+ type: "code-result";
82
78
  state: string;
83
- phase: "before" | "after";
79
+ status: "ok" | "error";
80
+ durationMs: number;
81
+ reason?: string;
84
82
  } | {
85
- type: "hook-verdict";
83
+ type: "grader-start";
86
84
  state: string;
87
- phase: "before" | "after";
88
- label: string;
89
- /** The hook's verdict, kept as the exact kernel vocabulary (never widened). */
90
- verdict: "ok" | "correct" | "veto";
91
- reason: string;
92
- missing?: string[];
93
85
  } | {
94
- type: "hook-rejected";
86
+ type: "grader-result";
95
87
  state: string;
96
- phase: "before" | "after";
97
- reason: string;
88
+ status: "ok" | "error";
89
+ durationMs: number;
90
+ reason?: string;
98
91
  } | {
99
92
  type: "advance";
100
93
  from: string;
@@ -160,10 +153,10 @@ export type WorkflowEventPayload = {
160
153
  sessionId: string;
161
154
  } | {
162
155
  type: "raised";
163
- /** The state the agent raised in; the session's position stays there. */
156
+ /** The state the raise was made in; the session's position stays there. */
164
157
  state: string;
165
158
  sessionId: string;
166
- /** The agent's own short code for what failed. */
159
+ /** The raiser's own short code for what failed. */
167
160
  code: string;
168
161
  reason: string;
169
162
  /** The `archmax_raise` call, matching its `tool-called`/`tool-result` pair. */
@@ -228,18 +221,6 @@ export type WorkflowEventPayload = {
228
221
  callId?: string;
229
222
  args?: Record<string, unknown>;
230
223
  origin?: ToolEventOrigin;
231
- } | {
232
- type: "rubric-start";
233
- state: string;
234
- name: string;
235
- dispatchId: string;
236
- } | {
237
- type: "rubric-result";
238
- state: string;
239
- name: string;
240
- dispatchId: string;
241
- status: "ok" | "error";
242
- durationMs: number;
243
224
  } | {
244
225
  type: "sub-workflow-start";
245
226
  /** The state the call was made from. */
@@ -3,12 +3,11 @@
3
3
  * machine-governed workflow runs. Every runtime diagnostic flows through this
4
4
  * single typed stream; callers subscribe via `onEvent` on
5
5
  * `CreateWorkflowAgentOptions`. With no subscriber, the harness installs
6
- * {@link consoleEventHandler} (`[workflow]` / `[interpreter]` / `[rubrics]`
7
- * console output).
6
+ * {@link consoleEventHandler} (`[workflow]` / `[interpreter]` console output).
8
7
  *
9
8
  * Two visual tiers: **node-change** events (`state-enter`, `state-leave`) render
10
- * at the outer level; **action** events (`hook-*`, `advance`, `agent-text`)
11
- * happen within a node and render indented beneath it.
9
+ * at the outer level; **action** events (`code-*`, `grader-*`, `advance`,
10
+ * `agent-text`) happen within a node and render indented beneath it.
12
11
  *
13
12
  * `callId` pairing rule: every event a tool call causes carries that call's
14
13
  * `callId` — its own `tool-called`/`tool-result` pair and the effects it produced
@@ -26,18 +25,18 @@ import { AsyncLocalStorage } from "node:async_hooks";
26
25
  */
27
26
  export const SESSION_ORIGIN = "__start__";
28
27
  /** How a programmatic tool call's origin reads in human-facing output. */
29
- export function originLabel(origin) {
30
- return origin === "script" ? "script" : "lifecycle hook";
28
+ export function originLabel(_origin) {
29
+ return "script";
31
30
  }
32
31
  function defaultLevel(event) {
33
32
  switch (event.type) {
34
33
  case "warning":
35
34
  case "tool-blocked":
36
- case "hook-rejected":
37
35
  case "raised":
38
36
  return "warn";
39
37
  case "tool-result":
40
- case "rubric-result":
38
+ case "code-result":
39
+ case "grader-result":
41
40
  case "sub-workflow-result":
42
41
  return event.status === "error" ? "warn" : "info";
43
42
  default:
@@ -111,11 +110,9 @@ export function createWorkflowEventEmitter(handler) {
111
110
  export function renderEventLine(event) {
112
111
  switch (event.type) {
113
112
  case "interpreter-enabled":
114
- return "[interpreter] enabled (ptc: all agent tools)";
113
+ return "[interpreter] enabled (ptc: the active state's tools)";
115
114
  case "skills-loaded":
116
115
  return `[skills] loaded: ${event.names.join(", ")}`;
117
- case "hooks-summary":
118
- return `[workflow] lifecycle: ${event.summary}`;
119
116
  case "graph-topology":
120
117
  return `[workflow] LangGraph graph:\n ${event.topology}`;
121
118
  case "warning":
@@ -128,18 +125,20 @@ export function renderEventLine(event) {
128
125
  return `[workflow] leaving node '${event.state}' -> workflowState=${event.next}`;
129
126
  case "state-error-routed":
130
127
  return `[workflow] '${event.state}' failed -> routing to on_error '${event.to}': ${event.reason}`;
131
- case "hook-start":
132
- return `[workflow] ${event.phase} '${event.state}': running ${event.label}`;
133
- case "hook-output":
128
+ case "code-start":
129
+ return `[workflow] code state '${event.state}': running ${event.script}`;
130
+ case "code-output":
134
131
  return `[workflow:${event.state}] ${event.line}`;
135
- case "hook-passed":
136
- return `[workflow] '${event.state}' ${event.phase}-script passed`;
137
- case "hook-verdict": {
138
- const missing = event.missing?.length ? ` (missing: ${event.missing.join(", ")})` : "";
139
- return `[workflow:${event.state}] ${event.label}: ${event.verdict.toUpperCase()} — ${event.reason}${missing}`;
140
- }
141
- case "hook-rejected":
142
- return `[workflow] '${event.state}' ${event.phase} REJECTED: ${event.reason}`;
132
+ case "code-result":
133
+ return event.status === "ok"
134
+ ? `[workflow] code state '${event.state}' finished (${event.durationMs}ms)`
135
+ : `[workflow] code state '${event.state}' FAILED: ${event.reason ?? "unknown error"}`;
136
+ case "grader-start":
137
+ return `[workflow] grader state '${event.state}': grading`;
138
+ case "grader-result":
139
+ return event.status === "ok"
140
+ ? `[workflow] grader state '${event.state}' decided (${event.durationMs}ms)`
141
+ : `[workflow] grader state '${event.state}' FAILED: ${event.reason ?? "unknown error"}`;
143
142
  case "advance":
144
143
  return event.from === SESSION_ORIGIN
145
144
  ? `[workflow] entering start state '${event.to}'`
@@ -184,8 +183,6 @@ export function renderEventLine(event) {
184
183
  case "agent-text":
185
184
  case "agent-text-delta":
186
185
  case "tool-result":
187
- case "rubric-start":
188
- case "rubric-result":
189
186
  case "model-usage":
190
187
  // Accounting is not console output: the CLI renders its own usage footer
191
188
  // from its own subscriber, so a line here would duplicate it.
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAS1C,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,MAAuB;IACjD,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC3D,CAAC;AAuUD,SAAS,YAAY,CAAC,KAA2B;IAC/C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,qBAAqB;YACxB,OAAO,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACpD;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAgB,CAAC;AAS3D;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAI,OAAuD,EAAE,EAAW;IACtG,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACxC,MAAM,MAAM,GAAiB;QAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,SAAS,IAAI,EAAE;QACxD,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI,OAAO,EAAE,qBAAqB;YACjE,CAAC,CAAC;gBACE,qBAAqB,EACnB,OAAO,CAAC,qBAAqB,IAAI,OAAO,EAAE,qBAAqB;aAClE;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,YAAY,GAAG,IAAI,OAAO,EAAuC,CAAC;AAExE,SAAS,OAAO,CAAC,OAA6B;IAC5C,IAAI,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACnB,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAA8B;IACvE,MAAM,OAAO,GAAG,OAAO,IAAI,mBAAmB,CAAC;IAC/C,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;QACpC,MAAM,SAAS,GACZ,OAAkC,CAAC,SAAS,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC;QACtF,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,EAAE,qBAAqB,CAAC;QAClE,OAAO,CAAC;YACN,GAAG,OAAO;YACV,KAAK,EAAE,KAAK,IAAI,YAAY,CAAC,OAA+B,CAAC;YAC7D,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAA6B;IAC3D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,qBAAqB;YACxB,OAAO,8CAA8C,CAAC;QACxD,KAAK,eAAe;YAClB,OAAO,oBAAoB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,KAAK,eAAe;YAClB,OAAO,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,KAAK,gBAAgB;YACnB,OAAO,kCAAkC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5D,KAAK,SAAS;YACZ,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7C,KAAK,gBAAgB;YACnB,OAAO,8BAA8B,KAAK,CAAC,KAAK,GAAG,CAAC;QACtD,KAAK,aAAa;YAChB,OAAO,6BAA6B,KAAK,CAAC,KAAK,GAAG,CAAC;QACrD,KAAK,aAAa;YAChB,OAAO,4BAA4B,KAAK,CAAC,KAAK,sBAAsB,KAAK,CAAC,IAAI,EAAE,CAAC;QACnF,KAAK,oBAAoB;YACvB,OAAO,eAAe,KAAK,CAAC,KAAK,oCAAoC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QACpG,KAAK,YAAY;YACf,OAAO,cAAc,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9E,KAAK,aAAa;YAChB,OAAO,aAAa,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,KAAK,aAAa;YAChB,OAAO,eAAe,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,gBAAgB,CAAC;QACpE,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,OAAO,aAAa,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAChH,CAAC;QACD,KAAK,eAAe;YAClB,OAAO,eAAe,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,MAAM,EAAE,CAAC;QAChF,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc;gBAClC,CAAC,CAAC,oCAAoC,KAAK,CAAC,EAAE,GAAG;gBACjD,CAAC,CAAC,wBAAwB,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACvG,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,QAAQ,KAAK,OAAO;gBAC/B,CAAC,CAAC,yBAAyB,KAAK,CAAC,KAAK,sBAClC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EACvC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,KAAK,CAAC,SAAS,GAAG;gBACpF,CAAC,CAAC,oCAAoC,KAAK,CAAC,KAAK,kCAAkC,KAAK,CAAC,SAAS,GAAG,CAAC;QAC1G,KAAK,SAAS;YACZ,OAAO,2BAA2B,KAAK,CAAC,KAAK,gBAAgB,KAAK,CAAC,EAAE,cAAc,KAAK,CAAC,SAAS,GAAG,CAAC;QACxG,KAAK,cAAc;YACjB,OAAO,CACL,cAAc,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,kBAAkB;gBAC3F,OAAO,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,SAAS,GAAG,CACnD,CAAC;QACJ,KAAK,WAAW;YACd,OAAO,eAAe,KAAK,CAAC,OAAO,mBAAmB,KAAK,CAAC,KAAK,2BAA2B,KAAK,CAAC,SAAS,GAAG,CAAC;QACjH,KAAK,QAAQ;YACX,OAAO,eAAe,KAAK,CAAC,KAAK,aAAa,KAAK,CAAC,IAAI,0BAA0B,KAAK,CAAC,MAAM,aAAa,KAAK,CAAC,SAAS,GAAG,CAAC;QAChI,KAAK,eAAe;YAClB,OAAO,2BAA2B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KACvE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACvB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,WAAW;YACd,wEAAwE;YACxE,yCAAyC;YACzC,OAAO,uBAAuB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1F,KAAK,cAAc;YACjB,qEAAqE;YACrE,mEAAmE;YACnE,8CAA8C;YAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,mBAAmB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACtG,KAAK,gBAAgB;YACnB,OAAO,CACL,2BAA2B,KAAK,CAAC,KAAK,EAAE;gBACxC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3E,CAAC;QACJ,KAAK,oBAAoB;YACvB,OAAO,oCAAoC,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,KAAK,GAAG,CAAC;QACrF,KAAK,qBAAqB;YACxB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,4BAA4B,KAAK,CAAC,QAAQ,sCAAsC,CAAC;YAC1F,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI;gBAC1B,CAAC,CAAC,4BAA4B,KAAK,CAAC,QAAQ,gBAAgB,KAAK,CAAC,UAAU,KAAK;gBACjF,CAAC,CAAC,4BAA4B,KAAK,CAAC,QAAQ,aAAa,KAAK,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;QAC/F,KAAK,aAAa,CAAC;QACnB,KAAK,YAAY,CAAC;QAClB,KAAK,kBAAkB,CAAC;QACxB,KAAK,aAAa,CAAC;QACnB,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe,CAAC;QACrB,KAAK,aAAa;YAChB,yEAAyE;YACzE,8DAA8D;YAC9D,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAyB,CAAC,KAAK,EAAE,EAAE;IACjE,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO;IACzB,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;QACzC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"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"}
@@ -26,17 +26,37 @@ export declare function isHumanMessage(message: unknown): boolean;
26
26
  * answer as a person would read it.
27
27
  */
28
28
  export declare function lastAgentText(messages: unknown[]): string;
29
+ /**
30
+ * Where a turn starts, recorded before it runs: the id of the transcript's last
31
+ * message and the transcript's length. The id outlives a rewrite of the list
32
+ * ahead of it (Deep Agents' tool-call patching inserts and drops tool messages
33
+ * but keeps every other message, id included); the length is the fallback.
34
+ */
35
+ export interface TurnAnchor {
36
+ id?: string;
37
+ count: number;
38
+ }
39
+ /** The {@link TurnAnchor} of a transcript as it stands before a turn. */
40
+ export declare function turnAnchorOf(messages: unknown): TurnAnchor;
41
+ /** Where the messages after `anchor` begin in `messages`: after its id, else at its clamped count. */
42
+ export declare function anchorIndex(messages: readonly unknown[], anchor: TurnAnchor): number;
43
+ /**
44
+ * What the agent said during the turn that began at `anchor`: each assistant
45
+ * text, in order, joined by a blank line. Empty when the turn said nothing.
46
+ */
47
+ export declare function turnReply(messages: unknown[], anchor: TurnAnchor): string;
29
48
  /**
30
49
  * What the runtime wrote into a transcript, and why.
31
50
  *
32
51
  * - `decision` — a person picked an edge at a human state and the session was routed
33
52
  * - `event` — a trigger firing was delivered to a parked session
34
53
  * - `error` — a failed state was routed to its `on_error` target
35
- * - `after` — a terminal state's completion check asked for a revision
54
+ * - `grader` — a grader state moved the session (its reason is what the next state reads) or ended it
55
+ * - `code` — a code state moved the session or ended it
36
56
  * - `sub-workflow` — a resumed child's result, handed back to its caller
37
57
  * - `opening` — the fixed line a child session's own transcript opens with
38
58
  */
39
- export type RuntimeNoteKind = "decision" | "event" | "error" | "after" | "sub-workflow" | "opening";
59
+ export type RuntimeNoteKind = "decision" | "event" | "error" | "grader" | "code" | "sub-workflow" | "opening";
40
60
  /** Where the marker lives on a message: `additional_kwargs.archmax.note`. */
41
61
  export declare const NOTE_KEY = "archmax";
42
62
  /**
@@ -56,6 +56,37 @@ export function lastAgentText(messages) {
56
56
  }
57
57
  return "";
58
58
  }
59
+ /** The {@link TurnAnchor} of a transcript as it stands before a turn. */
60
+ export function turnAnchorOf(messages) {
61
+ const list = Array.isArray(messages) ? messages : [];
62
+ const id = messageIdOf(list[list.length - 1]);
63
+ return { ...(id ? { id } : {}), count: list.length };
64
+ }
65
+ /** Where the messages after `anchor` begin in `messages`: after its id, else at its clamped count. */
66
+ export function anchorIndex(messages, anchor) {
67
+ const at = anchor.id === undefined ? -1 : messages.findIndex((m) => messageIdOf(m) === anchor.id);
68
+ return at >= 0 ? at + 1 : Math.min(Math.max(0, anchor.count), messages.length);
69
+ }
70
+ function messageIdOf(message) {
71
+ const msg = message;
72
+ const id = msg?.id ?? msg?.kwargs?.id;
73
+ return typeof id === "string" && id !== "" ? id : undefined;
74
+ }
75
+ /**
76
+ * What the agent said during the turn that began at `anchor`: each assistant
77
+ * text, in order, joined by a blank line. Empty when the turn said nothing.
78
+ */
79
+ export function turnReply(messages, anchor) {
80
+ const said = [];
81
+ for (const message of messages.slice(anchorIndex(messages, anchor))) {
82
+ if (!isAiMessage(message) || isRuntimeNote(message))
83
+ continue;
84
+ const text = contentToString(message.content).trim();
85
+ if (text)
86
+ said.push(text);
87
+ }
88
+ return said.join("\n\n");
89
+ }
59
90
  /** Where the marker lives on a message: `additional_kwargs.archmax.note`. */
60
91
  export const NOTE_KEY = "archmax";
61
92
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"message-readers.js","sourceRoot":"","sources":["../../src/core/message-readers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-readers.js","sourceRoot":"","sources":["../../src/core/message-readers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { HumanMessage } from "@langchain/core/messages";
2
2
  import type { BaseMessage } from "@langchain/core/messages";
3
3
  import { type RuntimeNoteKind } from "./message-readers.js";
4
- export { contentToString, isAiMessage, isHumanMessage, isRuntimeNote, lastAgentText, lastMessageIsHuman, lastTurn, messagesSince, messageTypeOf, opensTurn, runtimeNoteKind, spokeSinceLastHumanMessage, type RuntimeNoteKind, } from "./message-readers.js";
4
+ export { anchorIndex, contentToString, isAiMessage, isHumanMessage, isRuntimeNote, lastAgentText, lastMessageIsHuman, lastTurn, messagesSince, messageTypeOf, opensTurn, runtimeNoteKind, spokeSinceLastHumanMessage, turnAnchorOf, turnReply, type RuntimeNoteKind, type TurnAnchor, } from "./message-readers.js";
5
5
  /**
6
6
  * A message the runtime wrote into a session's transcript on its own behalf, shaped
7
7
  * as a **tool call and its result**: an assistant message carrying one
@@ -25,25 +25,3 @@ export declare function runtimeNote(kind: RuntimeNoteKind, text: string): BaseMe
25
25
  * session has to open with a request, so it is marked rather than reshaped.
26
26
  */
27
27
  export declare function humanNote(kind: RuntimeNoteKind, text: string): HumanMessage;
28
- export interface HistoryEntry {
29
- role: string;
30
- content: string;
31
- toolCalls?: {
32
- name: string;
33
- args: unknown;
34
- }[];
35
- }
36
- export interface RunContext {
37
- history: HistoryEntry[];
38
- userRequest: string;
39
- }
40
- /**
41
- * Build the compact view a lifecycle hook and a rubric grader read: the last
42
- * {@link HISTORY_WINDOW} messages plus the request that opened the session.
43
- *
44
- * `userRequest` is derived from the **whole** list, not the window: a grader
45
- * asked whether the reply satisfies the request must see the request, and a
46
- * session of more than a couple of tool-calling turns pushes the opening message
47
- * out of any fixed window (issue #61).
48
- */
49
- export declare function runContextFromMessages(messages: unknown[]): RunContext;
@@ -1,10 +1,10 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { AIMessage, HumanMessage, ToolMessage } from "@langchain/core/messages";
3
3
  import { NOTE_TOOL } from "../machine/tool-names.js";
4
- import { contentToString, messageTypeOf, NOTE_KEY, ROLE_BY_TYPE } from "./message-readers.js";
4
+ import { NOTE_KEY } from "./message-readers.js";
5
5
  // The readers are pure and live in `message-readers.ts` (the `@archmax-ai/harness/messages`
6
6
  // subpath); re-exported so every runtime importer keeps one module for both halves.
7
- export { contentToString, isAiMessage, isHumanMessage, isRuntimeNote, lastAgentText, lastMessageIsHuman, lastTurn, messagesSince, messageTypeOf, opensTurn, runtimeNoteKind, spokeSinceLastHumanMessage, } from "./message-readers.js";
7
+ export { anchorIndex, contentToString, isAiMessage, isHumanMessage, isRuntimeNote, lastAgentText, lastMessageIsHuman, lastTurn, messagesSince, messageTypeOf, opensTurn, runtimeNoteKind, spokeSinceLastHumanMessage, turnAnchorOf, turnReply, } from "./message-readers.js";
8
8
  /** The marker every message of a runtime note carries. */
9
9
  function marker(kind) {
10
10
  return { [NOTE_KEY]: { note: kind } };
@@ -49,37 +49,4 @@ export function runtimeNote(kind, text) {
49
49
  export function humanNote(kind, text) {
50
50
  return new HumanMessage({ content: text, additional_kwargs: marker(kind) });
51
51
  }
52
- /** How many trailing messages a hook's compact `history` carries. */
53
- const HISTORY_WINDOW = 24;
54
- /** One message as a hook reads it: its role, its text, and any tool calls it made. */
55
- function historyEntry(m) {
56
- const msg = m;
57
- const type = messageTypeOf(m) || "?";
58
- const role = ROLE_BY_TYPE[type] ?? type;
59
- const entry = { role, content: contentToString(msg.content) };
60
- const toolCalls = msg.tool_calls;
61
- if (Array.isArray(toolCalls) && toolCalls.length > 0) {
62
- entry.toolCalls = toolCalls.map((c) => {
63
- const call = c;
64
- return { name: String(call.name ?? ""), args: call.args ?? {} };
65
- });
66
- }
67
- return entry;
68
- }
69
- /**
70
- * Build the compact view a lifecycle hook and a rubric grader read: the last
71
- * {@link HISTORY_WINDOW} messages plus the request that opened the session.
72
- *
73
- * `userRequest` is derived from the **whole** list, not the window: a grader
74
- * asked whether the reply satisfies the request must see the request, and a
75
- * session of more than a couple of tool-calling turns pushes the opening message
76
- * out of any fixed window (issue #61).
77
- */
78
- export function runContextFromMessages(messages) {
79
- const all = Array.isArray(messages) ? messages : [];
80
- const history = all.slice(-HISTORY_WINDOW).map(historyEntry);
81
- const opening = all.find((m) => (ROLE_BY_TYPE[messageTypeOf(m) || "?"] ?? "") === "user");
82
- const userRequest = opening !== undefined ? contentToString(opening.content) : "";
83
- return { history, userRequest };
84
- }
85
52
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/core/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/core/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAwB,MAAM,sBAAsB,CAAC;AAEtE,4FAA4F;AAC5F,oFAAoF;AACpF,OAAO,EACL,WAAW,EACX,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,YAAY,EACZ,SAAS,GAGV,MAAM,sBAAsB,CAAC;AAE9B,0DAA0D;AAC1D,SAAS,MAAM,CAAC,IAAqB;IACnC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,IAAqB,EAAE,IAAY;IAC7D,MAAM,MAAM,GAAG,QAAQ,UAAU,EAAE,EAAE,CAAC;IACtC,OAAO;QACL,IAAI,SAAS,CAAC;YACZ,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;YACnE,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC;SAChC,CAAC;QACF,IAAI,WAAW,CAAC;YACd,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,SAAS;YACf,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC;SAChC,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAqB,EAAE,IAAY;IAC3D,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9E,CAAC"}
@@ -104,9 +104,9 @@ export function resolveMounts(table = {}) {
104
104
  * Deliberately short, and deliberately missing every {@link AUTHORING_PREFIXES}
105
105
  * prefix. That plane is not workspace furniture the agent browses: it is what the
106
106
  * runtime enforces the run *with*, served by the authoring backend and reachable by
107
- * no tool call. `workflows/` holds the spec — its grading rubrics included, so a run
108
- * cannot read the criteria it is judged against — plus the prose addendum, the hook
109
- * scripts, and the cases grading the run.
107
+ * no tool call. `workflows/` holds the spec — its grader states' criteria
108
+ * included, so a session cannot read the criteria it is judged against — plus
109
+ * the prose addendum, the code-state scripts, and the cases testing the run.
110
110
  *
111
111
  * What ships in a skill bundle is the other kind of script — the ones the *agent*
112
112
  * runs with `archmax_run` — together with the data a state reads