@archmax-ai/harness 0.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 (351) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +219 -0
  3. package/dist/agent.d.ts +174 -0
  4. package/dist/agent.js +140 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/assembly/compose.d.ts +170 -0
  7. package/dist/assembly/compose.js +391 -0
  8. package/dist/assembly/compose.js.map +1 -0
  9. package/dist/assembly/delegation-registry.d.ts +5 -0
  10. package/dist/assembly/delegation-registry.js +118 -0
  11. package/dist/assembly/delegation-registry.js.map +1 -0
  12. package/dist/assembly/index.d.ts +192 -0
  13. package/dist/assembly/index.js +265 -0
  14. package/dist/assembly/index.js.map +1 -0
  15. package/dist/assembly/plain.d.ts +7 -0
  16. package/dist/assembly/plain.js +41 -0
  17. package/dist/assembly/plain.js.map +1 -0
  18. package/dist/authoring-skill/archmax-harness/README.md +76 -0
  19. package/dist/authoring-skill/archmax-harness/SKILL.md +241 -0
  20. package/dist/authoring-skill/archmax-harness/references/backend-integration.md +626 -0
  21. package/dist/authoring-skill/archmax-harness/references/cases.md +41 -0
  22. package/dist/authoring-skill/archmax-harness/references/diagnostics.md +51 -0
  23. package/dist/authoring-skill/archmax-harness/references/hook-and-test-scripts.md +1070 -0
  24. package/dist/authoring-skill/archmax-harness/references/hooks-and-scripts.md +82 -0
  25. package/dist/authoring-skill/archmax-harness/references/wiring.md +101 -0
  26. package/dist/authoring-skill/archmax-harness/references/workflow-schema.md +1631 -0
  27. package/dist/authoring-skill/archmax-harness/references/workflow-yaml.md +241 -0
  28. package/dist/behaviour/support.d.ts +232 -0
  29. package/dist/behaviour/support.js +339 -0
  30. package/dist/behaviour/support.js.map +1 -0
  31. package/dist/cli/banner.d.ts +11 -0
  32. package/dist/cli/banner.js +29 -0
  33. package/dist/cli/banner.js.map +1 -0
  34. package/dist/cli/bootstrap.d.ts +33 -0
  35. package/dist/cli/bootstrap.js +153 -0
  36. package/dist/cli/bootstrap.js.map +1 -0
  37. package/dist/cli/command.d.ts +39 -0
  38. package/dist/cli/command.js +97 -0
  39. package/dist/cli/command.js.map +1 -0
  40. package/dist/cli/state-flow.d.ts +46 -0
  41. package/dist/cli/state-flow.js +268 -0
  42. package/dist/cli/state-flow.js.map +1 -0
  43. package/dist/cli/style.d.ts +41 -0
  44. package/dist/cli/style.js +64 -0
  45. package/dist/cli/style.js.map +1 -0
  46. package/dist/cli/turn.d.ts +41 -0
  47. package/dist/cli/turn.js +161 -0
  48. package/dist/cli/turn.js.map +1 -0
  49. package/dist/cli.d.ts +10 -0
  50. package/dist/cli.js +426 -0
  51. package/dist/cli.js.map +1 -0
  52. package/dist/core/code-description.d.ts +22 -0
  53. package/dist/core/code-description.js +38 -0
  54. package/dist/core/code-description.js.map +1 -0
  55. package/dist/core/deepagents.d.ts +183 -0
  56. package/dist/core/deepagents.js +128 -0
  57. package/dist/core/deepagents.js.map +1 -0
  58. package/dist/core/events.d.ts +350 -0
  59. package/dist/core/events.js +205 -0
  60. package/dist/core/events.js.map +1 -0
  61. package/dist/core/frontmatter.d.ts +15 -0
  62. package/dist/core/frontmatter.js +32 -0
  63. package/dist/core/frontmatter.js.map +1 -0
  64. package/dist/core/listing-redact.d.ts +37 -0
  65. package/dist/core/listing-redact.js +88 -0
  66. package/dist/core/listing-redact.js.map +1 -0
  67. package/dist/core/match.d.ts +26 -0
  68. package/dist/core/match.js +75 -0
  69. package/dist/core/match.js.map +1 -0
  70. package/dist/core/message-readers.d.ts +84 -0
  71. package/dist/core/message-readers.js +159 -0
  72. package/dist/core/message-readers.js.map +1 -0
  73. package/dist/core/messages.d.ts +49 -0
  74. package/dist/core/messages.js +85 -0
  75. package/dist/core/messages.js.map +1 -0
  76. package/dist/core/mount-prompt.d.ts +28 -0
  77. package/dist/core/mount-prompt.js +55 -0
  78. package/dist/core/mount-prompt.js.map +1 -0
  79. package/dist/core/mount-redact.d.ts +28 -0
  80. package/dist/core/mount-redact.js +32 -0
  81. package/dist/core/mount-redact.js.map +1 -0
  82. package/dist/core/mounts.d.ts +88 -0
  83. package/dist/core/mounts.js +147 -0
  84. package/dist/core/mounts.js.map +1 -0
  85. package/dist/core/path-mapping.d.ts +52 -0
  86. package/dist/core/path-mapping.js +113 -0
  87. package/dist/core/path-mapping.js.map +1 -0
  88. package/dist/core/platform-prompt.generated.d.ts +2 -0
  89. package/dist/core/platform-prompt.generated.js +4 -0
  90. package/dist/core/platform-prompt.generated.js.map +1 -0
  91. package/dist/core/prompt.d.ts +42 -0
  92. package/dist/core/prompt.js +75 -0
  93. package/dist/core/prompt.js.map +1 -0
  94. package/dist/core/session-id.d.ts +38 -0
  95. package/dist/core/session-id.js +61 -0
  96. package/dist/core/session-id.js.map +1 -0
  97. package/dist/core/session-store.d.ts +85 -0
  98. package/dist/core/session-store.js +149 -0
  99. package/dist/core/session-store.js.map +1 -0
  100. package/dist/core/session-zone.d.ts +54 -0
  101. package/dist/core/session-zone.js +82 -0
  102. package/dist/core/session-zone.js.map +1 -0
  103. package/dist/core/skill-prompt.d.ts +31 -0
  104. package/dist/core/skill-prompt.js +54 -0
  105. package/dist/core/skill-prompt.js.map +1 -0
  106. package/dist/core/skill-redact.d.ts +15 -0
  107. package/dist/core/skill-redact.js +27 -0
  108. package/dist/core/skill-redact.js.map +1 -0
  109. package/dist/core/skills.d.ts +172 -0
  110. package/dist/core/skills.js +214 -0
  111. package/dist/core/skills.js.map +1 -0
  112. package/dist/core/tool-mocks.d.ts +23 -0
  113. package/dist/core/tool-mocks.js +39 -0
  114. package/dist/core/tool-mocks.js.map +1 -0
  115. package/dist/core/tool-telemetry.d.ts +16 -0
  116. package/dist/core/tool-telemetry.js +40 -0
  117. package/dist/core/tool-telemetry.js.map +1 -0
  118. package/dist/core/usage.d.ts +114 -0
  119. package/dist/core/usage.js +226 -0
  120. package/dist/core/usage.js.map +1 -0
  121. package/dist/core/workspace-context.d.ts +136 -0
  122. package/dist/core/workspace-context.js +178 -0
  123. package/dist/core/workspace-context.js.map +1 -0
  124. package/dist/core/workspace-prompt.d.ts +7 -0
  125. package/dist/core/workspace-prompt.js +102 -0
  126. package/dist/core/workspace-prompt.js.map +1 -0
  127. package/dist/core/workspace-router.d.ts +61 -0
  128. package/dist/core/workspace-router.js +145 -0
  129. package/dist/core/workspace-router.js.map +1 -0
  130. package/dist/core/workspace.d.ts +85 -0
  131. package/dist/core/workspace.js +193 -0
  132. package/dist/core/workspace.js.map +1 -0
  133. package/dist/core/zones.d.ts +181 -0
  134. package/dist/core/zones.js +202 -0
  135. package/dist/core/zones.js.map +1 -0
  136. package/dist/env.d.ts +99 -0
  137. package/dist/env.js +271 -0
  138. package/dist/env.js.map +1 -0
  139. package/dist/index.d.ts +265 -0
  140. package/dist/index.js +197 -0
  141. package/dist/index.js.map +1 -0
  142. package/dist/kernel/kernel.d.ts +192 -0
  143. package/dist/kernel/kernel.js +751 -0
  144. package/dist/kernel/kernel.js.map +1 -0
  145. package/dist/lifecycle/hook-shape.d.ts +44 -0
  146. package/dist/lifecycle/hook-shape.js +66 -0
  147. package/dist/lifecycle/hook-shape.js.map +1 -0
  148. package/dist/lifecycle/runner.d.ts +177 -0
  149. package/dist/lifecycle/runner.js +372 -0
  150. package/dist/lifecycle/runner.js.map +1 -0
  151. package/dist/lifecycle/transcript.d.ts +27 -0
  152. package/dist/lifecycle/transcript.js +43 -0
  153. package/dist/lifecycle/transcript.js.map +1 -0
  154. package/dist/machine/allow.d.ts +65 -0
  155. package/dist/machine/allow.js +107 -0
  156. package/dist/machine/allow.js.map +1 -0
  157. package/dist/machine/delegation.d.ts +9 -0
  158. package/dist/machine/delegation.js +10 -0
  159. package/dist/machine/delegation.js.map +1 -0
  160. package/dist/machine/diagnostic.d.ts +14 -0
  161. package/dist/machine/diagnostic.js +2 -0
  162. package/dist/machine/diagnostic.js.map +1 -0
  163. package/dist/machine/lint-spec.d.ts +4 -0
  164. package/dist/machine/lint-spec.js +266 -0
  165. package/dist/machine/lint-spec.js.map +1 -0
  166. package/dist/machine/load-spec.d.ts +90 -0
  167. package/dist/machine/load-spec.js +120 -0
  168. package/dist/machine/load-spec.js.map +1 -0
  169. package/dist/machine/machine.d.ts +273 -0
  170. package/dist/machine/machine.js +551 -0
  171. package/dist/machine/machine.js.map +1 -0
  172. package/dist/machine/mount-grants.d.ts +25 -0
  173. package/dist/machine/mount-grants.js +24 -0
  174. package/dist/machine/mount-grants.js.map +1 -0
  175. package/dist/machine/slug.d.ts +14 -0
  176. package/dist/machine/slug.js +17 -0
  177. package/dist/machine/slug.js.map +1 -0
  178. package/dist/machine/spec-schema.d.ts +662 -0
  179. package/dist/machine/spec-schema.js +717 -0
  180. package/dist/machine/spec-schema.js.map +1 -0
  181. package/dist/machine/tool-names.d.ts +98 -0
  182. package/dist/machine/tool-names.js +144 -0
  183. package/dist/machine/tool-names.js.map +1 -0
  184. package/dist/machine/triggers.d.ts +114 -0
  185. package/dist/machine/triggers.js +165 -0
  186. package/dist/machine/triggers.js.map +1 -0
  187. package/dist/machine/types.d.ts +186 -0
  188. package/dist/machine/types.js +12 -0
  189. package/dist/machine/types.js.map +1 -0
  190. package/dist/machine/validate-spec.d.ts +42 -0
  191. package/dist/machine/validate-spec.js +29 -0
  192. package/dist/machine/validate-spec.js.map +1 -0
  193. package/dist/machine/variables.d.ts +196 -0
  194. package/dist/machine/variables.js +415 -0
  195. package/dist/machine/variables.js.map +1 -0
  196. package/dist/public/cli.d.ts +15 -0
  197. package/dist/public/cli.js +14 -0
  198. package/dist/public/cli.js.map +1 -0
  199. package/dist/public/messages.d.ts +33 -0
  200. package/dist/public/messages.js +33 -0
  201. package/dist/public/messages.js.map +1 -0
  202. package/dist/public/sandbox.d.ts +99 -0
  203. package/dist/public/sandbox.js +32 -0
  204. package/dist/public/sandbox.js.map +1 -0
  205. package/dist/public/spec.d.ts +147 -0
  206. package/dist/public/spec.js +149 -0
  207. package/dist/public/spec.js.map +1 -0
  208. package/dist/public/testing.d.ts +71 -0
  209. package/dist/public/testing.js +39 -0
  210. package/dist/public/testing.js.map +1 -0
  211. package/dist/rubrics/rubrics.d.ts +135 -0
  212. package/dist/rubrics/rubrics.js +145 -0
  213. package/dist/rubrics/rubrics.js.map +1 -0
  214. package/dist/runtime/contract.d.ts +73 -0
  215. package/dist/runtime/contract.js +96 -0
  216. package/dist/runtime/contract.js.map +1 -0
  217. package/dist/sandbox/assets/parts/core.js +22 -0
  218. package/dist/sandbox/assets/parts/lifecycle-hook.js +47 -0
  219. package/dist/sandbox/bridge.d.ts +16 -0
  220. package/dist/sandbox/bridge.js +95 -0
  221. package/dist/sandbox/bridge.js.map +1 -0
  222. package/dist/sandbox/executor.d.ts +46 -0
  223. package/dist/sandbox/executor.js +119 -0
  224. package/dist/sandbox/executor.js.map +1 -0
  225. package/dist/sandbox/imports.d.ts +33 -0
  226. package/dist/sandbox/imports.js +67 -0
  227. package/dist/sandbox/imports.js.map +1 -0
  228. package/dist/sandbox/prelude.d.ts +12 -0
  229. package/dist/sandbox/prelude.js +51 -0
  230. package/dist/sandbox/prelude.js.map +1 -0
  231. package/dist/sandbox/ptc-gateway.d.ts +104 -0
  232. package/dist/sandbox/ptc-gateway.js +167 -0
  233. package/dist/sandbox/ptc-gateway.js.map +1 -0
  234. package/dist/sandbox/runtime.d.ts +59 -0
  235. package/dist/sandbox/runtime.js +51 -0
  236. package/dist/sandbox/runtime.js.map +1 -0
  237. package/dist/sandbox/tools.d.ts +34 -0
  238. package/dist/sandbox/tools.js +147 -0
  239. package/dist/sandbox/tools.js.map +1 -0
  240. package/dist/sessions/operations.d.ts +79 -0
  241. package/dist/sessions/operations.js +121 -0
  242. package/dist/sessions/operations.js.map +1 -0
  243. package/dist/sessions/resolve.d.ts +97 -0
  244. package/dist/sessions/resolve.js +145 -0
  245. package/dist/sessions/resolve.js.map +1 -0
  246. package/dist/sessions/resume.d.ts +242 -0
  247. package/dist/sessions/resume.js +288 -0
  248. package/dist/sessions/resume.js.map +1 -0
  249. package/dist/sessions/scope.d.ts +99 -0
  250. package/dist/sessions/scope.js +145 -0
  251. package/dist/sessions/scope.js.map +1 -0
  252. package/dist/sessions/summary.d.ts +65 -0
  253. package/dist/sessions/summary.js +56 -0
  254. package/dist/sessions/summary.js.map +1 -0
  255. package/dist/testing/assertions.d.ts +30 -0
  256. package/dist/testing/assertions.js +231 -0
  257. package/dist/testing/assertions.js.map +1 -0
  258. package/dist/testing/case-document.d.ts +141 -0
  259. package/dist/testing/case-document.js +51 -0
  260. package/dist/testing/case-document.js.map +1 -0
  261. package/dist/testing/case-schema.d.ts +29 -0
  262. package/dist/testing/case-schema.js +519 -0
  263. package/dist/testing/case-schema.js.map +1 -0
  264. package/dist/testing/discovery.d.ts +10 -0
  265. package/dist/testing/discovery.js +24 -0
  266. package/dist/testing/discovery.js.map +1 -0
  267. package/dist/testing/driver.d.ts +78 -0
  268. package/dist/testing/driver.js +117 -0
  269. package/dist/testing/driver.js.map +1 -0
  270. package/dist/testing/grade.d.ts +116 -0
  271. package/dist/testing/grade.js +261 -0
  272. package/dist/testing/grade.js.map +1 -0
  273. package/dist/testing/interpreter.d.ts +55 -0
  274. package/dist/testing/interpreter.js +103 -0
  275. package/dist/testing/interpreter.js.map +1 -0
  276. package/dist/testing/mock-middleware.d.ts +5 -0
  277. package/dist/testing/mock-middleware.js +33 -0
  278. package/dist/testing/mock-middleware.js.map +1 -0
  279. package/dist/testing/runner.d.ts +205 -0
  280. package/dist/testing/runner.js +266 -0
  281. package/dist/testing/runner.js.map +1 -0
  282. package/dist/testing/target.d.ts +27 -0
  283. package/dist/testing/target.js +21 -0
  284. package/dist/testing/target.js.map +1 -0
  285. package/dist/validate/validate.d.ts +41 -0
  286. package/dist/validate/validate.js +669 -0
  287. package/dist/validate/validate.js.map +1 -0
  288. package/dist/workflow/agent-tools.d.ts +10 -0
  289. package/dist/workflow/agent-tools.js +10 -0
  290. package/dist/workflow/agent-tools.js.map +1 -0
  291. package/dist/workflow/checkpointer.d.ts +52 -0
  292. package/dist/workflow/checkpointer.js +200 -0
  293. package/dist/workflow/checkpointer.js.map +1 -0
  294. package/dist/workflow/control-tools.d.ts +174 -0
  295. package/dist/workflow/control-tools.js +468 -0
  296. package/dist/workflow/control-tools.js.map +1 -0
  297. package/dist/workflow/governance.d.ts +104 -0
  298. package/dist/workflow/governance.js +546 -0
  299. package/dist/workflow/governance.js.map +1 -0
  300. package/dist/workflow/middleware.d.ts +85 -0
  301. package/dist/workflow/middleware.js +283 -0
  302. package/dist/workflow/middleware.js.map +1 -0
  303. package/dist/workflow/on-error.d.ts +25 -0
  304. package/dist/workflow/on-error.js +58 -0
  305. package/dist/workflow/on-error.js.map +1 -0
  306. package/dist/workflow/parks.d.ts +46 -0
  307. package/dist/workflow/parks.js +513 -0
  308. package/dist/workflow/parks.js.map +1 -0
  309. package/dist/workflow/paths.d.ts +67 -0
  310. package/dist/workflow/paths.js +108 -0
  311. package/dist/workflow/paths.js.map +1 -0
  312. package/dist/workflow/prompt-cache.d.ts +70 -0
  313. package/dist/workflow/prompt-cache.js +103 -0
  314. package/dist/workflow/prompt-cache.js.map +1 -0
  315. package/dist/workflow/prompt-pruning.d.ts +20 -0
  316. package/dist/workflow/prompt-pruning.js +83 -0
  317. package/dist/workflow/prompt-pruning.js.map +1 -0
  318. package/dist/workflow/render-prompt.d.ts +45 -0
  319. package/dist/workflow/render-prompt.js +140 -0
  320. package/dist/workflow/render-prompt.js.map +1 -0
  321. package/dist/workflow/runtime-config.d.ts +7 -0
  322. package/dist/workflow/runtime-config.js +9 -0
  323. package/dist/workflow/runtime-config.js.map +1 -0
  324. package/dist/workflow/session-artifacts.d.ts +90 -0
  325. package/dist/workflow/session-artifacts.js +134 -0
  326. package/dist/workflow/session-artifacts.js.map +1 -0
  327. package/dist/workflow/session-view.d.ts +31 -0
  328. package/dist/workflow/session-view.js +94 -0
  329. package/dist/workflow/session-view.js.map +1 -0
  330. package/dist/workflow/snapshot.d.ts +14 -0
  331. package/dist/workflow/snapshot.js +97 -0
  332. package/dist/workflow/snapshot.js.map +1 -0
  333. package/dist/workflow/state.d.ts +347 -0
  334. package/dist/workflow/state.js +322 -0
  335. package/dist/workflow/state.js.map +1 -0
  336. package/dist/workflow/sub-workflow.d.ts +174 -0
  337. package/dist/workflow/sub-workflow.js +392 -0
  338. package/dist/workflow/sub-workflow.js.map +1 -0
  339. package/dist/workflow/tool-service.d.ts +48 -0
  340. package/dist/workflow/tool-service.js +291 -0
  341. package/dist/workflow/tool-service.js.map +1 -0
  342. package/dist/workflow/turn-boundary.d.ts +39 -0
  343. package/dist/workflow/turn-boundary.js +128 -0
  344. package/dist/workflow/turn-boundary.js.map +1 -0
  345. package/dist/workflow/turn-runner.d.ts +40 -0
  346. package/dist/workflow/turn-runner.js +122 -0
  347. package/dist/workflow/turn-runner.js.map +1 -0
  348. package/dist/workflow/workflow-tools.d.ts +46 -0
  349. package/dist/workflow/workflow-tools.js +90 -0
  350. package/dist/workflow/workflow-tools.js.map +1 -0
  351. package/package.json +119 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Sub-workflow dispatch: running another governed machine to completion from
3
+ * inside a session, as its own child session (see `sessions/scope.ts`).
4
+ *
5
+ * Two invariants carry the feature's safety. **Every failure is closed**: a
6
+ * rejected child, an exhausted budget, a refused depth or cycle, an unloadable
7
+ * target, an unresolvable param, and a child that parks with nothing to resume
8
+ * it all raise {@link SubWorkflowError}; nothing returns a half-finished sub-run.
9
+ * **Nothing crosses implicitly**: down, only the arguments the call passed; up,
10
+ * only the closing message, the declared returns, and what the child wrote to
11
+ * the run zone.
12
+ */
13
+ import type { RunnableConfig } from "@langchain/core/runnables";
14
+ import { type WorkflowEventHandler } from "../core/events.js";
15
+ import { type VariableStore } from "../machine/variables.js";
16
+ import { DEFAULT_SUB_WORKFLOW_CONCURRENCY, DEFAULT_SUB_WORKFLOW_DEPTH } from "../machine/delegation.js";
17
+ import type { GovernanceRule } from "../kernel/kernel.js";
18
+ import type { WorkflowMachine } from "../machine/machine.js";
19
+ export { DEFAULT_SUB_WORKFLOW_CONCURRENCY, DEFAULT_SUB_WORKFLOW_DEPTH };
20
+ /** Why a sub-run did not produce a result. Each is a fail-closed outcome. */
21
+ export type SubWorkflowFailureKind = "unresolved-param" | "missing-param" | "missing-return" | "depth-exceeded" | "cycle" | "unknown-workflow" | "not-delegatable" | "disabled" | "parked" | "rejected" | "budget" | "error";
22
+ /**
23
+ * The kinds where nothing ran: a refusal is a governed "no" the caller may
24
+ * correct and retry within the turn (a blocked call); a failure means a child
25
+ * ran and did not finish (a tool error).
26
+ */
27
+ export declare const SUB_WORKFLOW_REFUSAL_KINDS: ReadonlySet<SubWorkflowFailureKind>;
28
+ export declare function isSubWorkflowRefusal(err: unknown): err is SubWorkflowError;
29
+ /** A sub-run that did not complete, with its kind and the slug of the machine that failed. */
30
+ export declare class SubWorkflowError extends Error {
31
+ readonly kind: SubWorkflowFailureKind;
32
+ readonly workflow: string;
33
+ constructor(kind: SubWorkflowFailureKind, workflow: string, message: string, options?: {
34
+ cause?: unknown;
35
+ });
36
+ }
37
+ /**
38
+ * What a parked sub-run leaves on its `GraphInterrupt` so the caller can park
39
+ * with it and hand the decision back on resume. Attached rather than replacing
40
+ * the interrupt, which still has to reach whatever suspends on it.
41
+ */
42
+ export declare const SUB_WORKFLOW_PARK: unique symbol;
43
+ export interface SubWorkflowPark {
44
+ workflow: string;
45
+ /** The sub-run's identity — what its session id derives from. */
46
+ identity: string;
47
+ dispatchId: string;
48
+ /** The child's own pending decision. */
49
+ decision: unknown;
50
+ }
51
+ /** The park a sub-run left on its suspension, if this error carries one. */
52
+ export declare function subWorkflowParkOf(err: unknown): SubWorkflowPark | undefined;
53
+ /** A composed child runtime: the invocable graph of its governed agent and the machine governing it. */
54
+ export interface SubWorkflowRuntime {
55
+ graph: {
56
+ invoke(input: unknown, config: RunnableConfig): Promise<Record<string, unknown>>;
57
+ };
58
+ machine: WorkflowMachine;
59
+ }
60
+ /**
61
+ * Who is dispatching: what a child's composition depends on beyond its own
62
+ * slug. Denials accumulate down the chain, so the same target composed under
63
+ * two different callers is two compositions.
64
+ */
65
+ export interface DelegationCaller {
66
+ /** Workflow slugs from the outermost session's first delegation down to the caller (empty at the root). */
67
+ chain: readonly string[];
68
+ /**
69
+ * The denials the child inherits: every ancestor's `policy` — the root's and
70
+ * each intermediate caller's — compiled ahead of the child's own rules.
71
+ */
72
+ inheritedPolicyRules: GovernanceRule[];
73
+ }
74
+ /** Lazily composes and memoizes a child runtime per workflow slug and delegation chain. */
75
+ export interface SubWorkflowRegistry {
76
+ resolve(workflow: string, caller?: DelegationCaller): Promise<SubWorkflowRuntime>;
77
+ /** The target's declared signature, for the price of a spec read; `title` is prose, the rest is enforced. */
78
+ signature(workflow: string): Promise<{
79
+ requires?: string[];
80
+ returns?: string[];
81
+ title?: string;
82
+ /** Whether the target declares itself out of service; the dispatch refuses on it. */
83
+ disabled?: boolean;
84
+ }>;
85
+ }
86
+ export interface DispatchSubWorkflowInput {
87
+ workflow: string;
88
+ /** Inputs for this dispatch, seeded into the sub-run as locked variables. Strings resolve `${{…}}` against `variables`. */
89
+ params?: Record<string, unknown>;
90
+ /** The dispatching run's variables. */
91
+ variables: VariableStore;
92
+ /** The parent's run config — the session, scope, and dispatch chain come from it. */
93
+ config: RunnableConfig;
94
+ /** The calling state's slug. */
95
+ state: string;
96
+ /** The tool call this dispatch answers. */
97
+ toolCallId?: string;
98
+ signal?: AbortSignal;
99
+ }
100
+ export interface SubWorkflowResult {
101
+ /** The child's closing message. */
102
+ result: string;
103
+ workflow: string;
104
+ /** The state the child finished in. */
105
+ state: string;
106
+ /** The variables the child's `manual` trigger declared in `returns`; absent when it declares none. */
107
+ returns?: Record<string, unknown>;
108
+ }
109
+ /**
110
+ * The line a sub-run opens with. A chat request needs a message, and this is the
111
+ * child's whole transcript at that moment, so it stays human-role, marked as an
112
+ * `opening` runtime note.
113
+ */
114
+ export declare const SUB_RUN_OPENING: string;
115
+ export declare const NO_RESULT_MESSAGE = "(the sub-workflow completed without a closing message)";
116
+ export interface SubWorkflowDispatcherOptions {
117
+ registry: SubWorkflowRegistry;
118
+ machine: WorkflowMachine;
119
+ /**
120
+ * The denials a child of this composition inherits: what this composition
121
+ * itself inherited plus its own `policy`, so a grandchild is bound by the root
122
+ * and by every caller between. Absent, the registry falls back to the root's.
123
+ */
124
+ childPolicyRules?: GovernanceRule[];
125
+ /** `maxDepth` bounds nesting, `maxConcurrent` bounds one session's in-flight sub-runs. */
126
+ bounds?: {
127
+ maxDepth?: number;
128
+ maxConcurrent?: number;
129
+ };
130
+ onEvent?: WorkflowEventHandler;
131
+ }
132
+ export interface SubWorkflowDispatcher {
133
+ dispatch(input: DispatchSubWorkflowInput): Promise<SubWorkflowResult>;
134
+ /** Why this dispatch would be refused (reported as a refused dispatch pair), or `undefined`. */
135
+ refusal(input: DispatchSubWorkflowInput): Promise<SubWorkflowError | undefined>;
136
+ /** Continue a sub-run that stopped for a person, addressed by identity. */
137
+ resume(input: ResumeSubWorkflowInput): Promise<SubWorkflowResult>;
138
+ signature(workflow: string): Promise<{
139
+ requires?: string[];
140
+ returns?: string[];
141
+ disabled?: boolean;
142
+ }>;
143
+ /**
144
+ * Take the sub-runs completed in this session since the last drain. A ledger,
145
+ * because a script's dispatch reaches the PTC gateway, which cannot write graph state.
146
+ */
147
+ drainDispatches(sessionId: string): SubWorkflowDispatchRecord[];
148
+ /** Release a session's ledger, and every sub-run scope beneath it. */
149
+ release(sessionId: string): void;
150
+ }
151
+ export interface SubWorkflowDispatchRecord {
152
+ workflow: string;
153
+ status: "ok" | "error";
154
+ reason?: string;
155
+ }
156
+ export interface ResumeSubWorkflowInput {
157
+ workflow: string;
158
+ identity: string;
159
+ dispatchId: string;
160
+ config: RunnableConfig;
161
+ /** What the person decided, handed to the child's suspended `interrupt()`. */
162
+ resume: unknown;
163
+ /** The calling state, for events. */
164
+ state: string;
165
+ }
166
+ export declare function createSubWorkflowDispatcher(opts: SubWorkflowDispatcherOptions): SubWorkflowDispatcher;
167
+ /**
168
+ * Resolve a dispatch's params against the dispatching run's variables: strings
169
+ * are substituted, everything else passes through. Fails closed on an unresolved
170
+ * reference: a literal `${{…}}` must never become a sub-run's fact.
171
+ */
172
+ export declare function resolveParams(params: Record<string, unknown> | undefined, variables: VariableStore, workflow: string): Record<string, unknown>;
173
+ /** The child's closing message: its last assistant text, or an explicit note when it said nothing. */
174
+ export declare function closingMessage(state: unknown): string;
@@ -0,0 +1,392 @@
1
+ /**
2
+ * Sub-workflow dispatch: running another governed machine to completion from
3
+ * inside a session, as its own child session (see `sessions/scope.ts`).
4
+ *
5
+ * Two invariants carry the feature's safety. **Every failure is closed**: a
6
+ * rejected child, an exhausted budget, a refused depth or cycle, an unloadable
7
+ * target, an unresolvable param, and a child that parks with nothing to resume
8
+ * it all raise {@link SubWorkflowError}; nothing returns a half-finished sub-run.
9
+ * **Nothing crosses implicitly**: down, only the arguments the call passed; up,
10
+ * only the closing message, the declared returns, and what the child wrote to
11
+ * the run zone.
12
+ */
13
+ import { Command, isGraphInterrupt } from "@langchain/langgraph";
14
+ import { humanNote, lastAgentText } from "../core/messages.js";
15
+ import { createWorkflowEventEmitter, withEventContext, } from "../core/events.js";
16
+ import { DEFAULT_RECURSION_LIMIT } from "../core/deepagents.js";
17
+ import { resolveText } from "../machine/variables.js";
18
+ import { MANUAL_TRIGGER } from "../machine/triggers.js";
19
+ import { workflowToolName } from "../machine/tool-names.js";
20
+ import { DEFAULT_SUB_WORKFLOW_CONCURRENCY, DEFAULT_SUB_WORKFLOW_DEPTH } from "../machine/delegation.js";
21
+ import { findMock, readMocks } from "../core/tool-mocks.js";
22
+ import { readReturns, readWorkflowState, WORKFLOW_STATUSES } from "./state.js";
23
+ import { childRunConfig, releaseScopes, sessionScopeFrom, SEED_VARIABLES_KEY, subRunIdentity, } from "../sessions/scope.js";
24
+ // --- Dispatch -------------------------------------------------------------------
25
+ // The default bounds are pure vocabulary (`machine/delegation.ts`); re-exported
26
+ // so the dispatcher and what it enforces by default are reached from one module.
27
+ export { DEFAULT_SUB_WORKFLOW_CONCURRENCY, DEFAULT_SUB_WORKFLOW_DEPTH };
28
+ /**
29
+ * The kinds where nothing ran: a refusal is a governed "no" the caller may
30
+ * correct and retry within the turn (a blocked call); a failure means a child
31
+ * ran and did not finish (a tool error).
32
+ */
33
+ export const SUB_WORKFLOW_REFUSAL_KINDS = new Set([
34
+ "depth-exceeded",
35
+ "cycle",
36
+ "missing-param",
37
+ "unknown-workflow",
38
+ "not-delegatable",
39
+ "disabled",
40
+ "unresolved-param",
41
+ ]);
42
+ export function isSubWorkflowRefusal(err) {
43
+ return err instanceof SubWorkflowError && SUB_WORKFLOW_REFUSAL_KINDS.has(err.kind);
44
+ }
45
+ /** A sub-run that did not complete, with its kind and the slug of the machine that failed. */
46
+ export class SubWorkflowError extends Error {
47
+ kind;
48
+ workflow;
49
+ constructor(kind, workflow, message, options) {
50
+ super(message, options);
51
+ this.kind = kind;
52
+ this.workflow = workflow;
53
+ this.name = "SubWorkflowError";
54
+ }
55
+ }
56
+ /**
57
+ * What a parked sub-run leaves on its `GraphInterrupt` so the caller can park
58
+ * with it and hand the decision back on resume. Attached rather than replacing
59
+ * the interrupt, which still has to reach whatever suspends on it.
60
+ */
61
+ export const SUB_WORKFLOW_PARK = Symbol.for("archmax.subWorkflowPark");
62
+ function markPark(err, of) {
63
+ Object.defineProperty(err, SUB_WORKFLOW_PARK, {
64
+ value: { ...of, decision: err.interrupts[0]?.value },
65
+ enumerable: false,
66
+ configurable: true,
67
+ });
68
+ }
69
+ /** The park a sub-run left on its suspension, if this error carries one. */
70
+ export function subWorkflowParkOf(err) {
71
+ const park = err?.[SUB_WORKFLOW_PARK];
72
+ return park;
73
+ }
74
+ /**
75
+ * The line a sub-run opens with. A chat request needs a message, and this is the
76
+ * child's whole transcript at that moment, so it stays human-role, marked as an
77
+ * `opening` runtime note.
78
+ */
79
+ export const SUB_RUN_OPENING = "Begin. Your instructions and your inputs are already in context; read any input you " +
80
+ "need with archmax_get_variables.";
81
+ export const NO_RESULT_MESSAGE = "(the sub-workflow completed without a closing message)";
82
+ /** A counting semaphore: excess dispatches queue rather than fail. */
83
+ function createSemaphore(limit) {
84
+ let active = 0;
85
+ const waiting = [];
86
+ return async function withSlot(fn) {
87
+ while (active >= limit)
88
+ await new Promise((resolve) => waiting.push(resolve));
89
+ active += 1;
90
+ try {
91
+ return await fn();
92
+ }
93
+ finally {
94
+ active -= 1;
95
+ waiting.shift()?.();
96
+ }
97
+ };
98
+ }
99
+ let dispatchSeq = 0;
100
+ export function createSubWorkflowDispatcher(opts) {
101
+ const emit = createWorkflowEventEmitter(opts.onEvent);
102
+ const maxDepth = opts.bounds?.maxDepth ?? DEFAULT_SUB_WORKFLOW_DEPTH;
103
+ const maxConcurrent = opts.bounds?.maxConcurrent ?? DEFAULT_SUB_WORKFLOW_CONCURRENCY;
104
+ const withSlot = createSemaphore(maxConcurrent);
105
+ let ordinal = 0;
106
+ /** Sub-runs completed per session, awaiting a drain into the trail. */
107
+ const dispatched = new Map();
108
+ const record = (config, entry) => {
109
+ const key = sessionScopeFrom(config).sessionId;
110
+ const ledger = dispatched.get(key);
111
+ if (ledger)
112
+ ledger.push(entry);
113
+ else
114
+ dispatched.set(key, [entry]);
115
+ };
116
+ const failed = (workflow, finishedIn, rejected) => new SubWorkflowError("rejected", workflow, `Sub-workflow '${workflow}' was rejected in state '${finishedIn}': ${rejected}`);
117
+ /** Everything that can refuse a dispatch, before anything is composed. Shared by `dispatch` and `refusal`. */
118
+ async function check(input) {
119
+ const { workflow } = input;
120
+ const scope = sessionScopeFrom(input.config);
121
+ const depth = scope.depth + 1;
122
+ const chain = [...scope.chain, workflow].join(" → ");
123
+ if (depth > maxDepth) {
124
+ throw new SubWorkflowError("depth-exceeded", workflow, `Refusing to run sub-workflow '${workflow}': it would be ${depth} delegations deep, ` +
125
+ `past the dispatcher's limit of ${maxDepth}. Chain so far: ${chain}.`);
126
+ }
127
+ if (scope.chain.includes(workflow)) {
128
+ throw new SubWorkflowError("cycle", workflow, `Refusing to run sub-workflow '${workflow}': it is already running in this chain ` +
129
+ `(${chain}), so the run would not terminate.`);
130
+ }
131
+ const params = resolveParams(input.params, input.variables, workflow);
132
+ // A declared mock stands in for the whole sub-run and is served here, so a
133
+ // mocked dispatch is indistinguishable from a real one except that no child runs.
134
+ const mock = findMock(readMocks(input.config.configurable), workflowToolName(workflow), params);
135
+ const signature = await opts.registry.signature(workflow).catch((err) => {
136
+ if (mock)
137
+ return {};
138
+ throw err;
139
+ });
140
+ if (signature.disabled) {
141
+ throw new SubWorkflowError("disabled", workflow, `Refusing to run sub-workflow '${workflow}': it is disabled ` +
142
+ `('disabled: true' in its workflow.yaml), so it starts no run. Remove that ` +
143
+ `flag to re-enable it.`);
144
+ }
145
+ const missing = (signature.requires ?? []).filter((name) => !Object.hasOwn(params, name));
146
+ if (missing.length > 0) {
147
+ throw new SubWorkflowError("missing-param", workflow, `Refusing to run sub-workflow '${workflow}': it requires ` +
148
+ `${missing.map((n) => `'${n}'`).join(", ")}, which this call does not supply. ` +
149
+ `Call it again with ${missing.length === 1 ? "that argument" : "those arguments"}.`);
150
+ }
151
+ return { params, signature, ...(mock ? { mock } : {}) };
152
+ }
153
+ async function refusal(input) {
154
+ try {
155
+ await check(input);
156
+ return undefined;
157
+ }
158
+ catch (err) {
159
+ if (!isSubWorkflowRefusal(err))
160
+ return undefined;
161
+ reportRefusal(input, err);
162
+ return err;
163
+ }
164
+ }
165
+ /** Bracket a dispatch that never ran, so an attempted delegation that was stopped is visible. */
166
+ function reportRefusal(input, err) {
167
+ const scope = sessionScopeFrom(input.config);
168
+ const dispatchId = `subwf-${++dispatchSeq}`;
169
+ const common = {
170
+ state: input.state,
171
+ workflow: input.workflow,
172
+ dispatchId,
173
+ ...(input.toolCallId ? { toolCallId: input.toolCallId } : {}),
174
+ };
175
+ emit({
176
+ type: "sub-workflow-start",
177
+ ...common,
178
+ depth: scope.depth + 1,
179
+ ...(scope.chain.length ? { chain: [...scope.chain] } : {}),
180
+ });
181
+ emit({ type: "sub-workflow-result", ...common, status: "error", durationMs: 0, reason: err.message });
182
+ }
183
+ async function dispatch(input) {
184
+ const { workflow, state } = input;
185
+ const scope = sessionScopeFrom(input.config);
186
+ const dispatchId = `subwf-${++dispatchSeq}`;
187
+ const identity = subRunIdentity(state, workflow, ordinal++);
188
+ emit({
189
+ type: "sub-workflow-start",
190
+ state,
191
+ workflow,
192
+ dispatchId,
193
+ depth: scope.depth + 1,
194
+ ...(input.toolCallId ? { toolCallId: input.toolCallId } : {}),
195
+ ...(scope.chain.length ? { chain: [...scope.chain] } : {}),
196
+ });
197
+ const startedAt = Date.now();
198
+ // Return names only: this stream is a diagnostic channel, not a data one.
199
+ const settle = (status, reason, returns) => emit({
200
+ type: "sub-workflow-result",
201
+ state,
202
+ workflow,
203
+ dispatchId,
204
+ ...(input.toolCallId ? { toolCallId: input.toolCallId } : {}),
205
+ status,
206
+ durationMs: Date.now() - startedAt,
207
+ ...(reason ? { reason } : {}),
208
+ ...(returns ? { returns: Object.keys(returns) } : {}),
209
+ });
210
+ try {
211
+ const { params, signature, mock } = await check(input);
212
+ if (mock) {
213
+ const mocked = applyMock(mock, workflow, signature.returns);
214
+ settle("ok", undefined, mocked.returns);
215
+ record(input.config, { workflow, status: "ok" });
216
+ return mocked;
217
+ }
218
+ const result = await withSlot(() => run({ ...input, dispatchId, identity, params, returns: signature.returns }));
219
+ settle("ok", undefined, result.returns);
220
+ record(input.config, { workflow, status: "ok" });
221
+ return result;
222
+ }
223
+ catch (err) {
224
+ // A child parking surfaces as a `GraphInterrupt`: not a failure, marked so
225
+ // the caller can park with the child, and rethrown untouched.
226
+ if (isGraphInterrupt(err)) {
227
+ settle("parked");
228
+ markPark(err, { workflow, identity, dispatchId });
229
+ throw err;
230
+ }
231
+ const failure = err instanceof SubWorkflowError
232
+ ? err
233
+ : new SubWorkflowError(err?.name === "AbortError" ? "budget" : "error", workflow, `Sub-workflow '${workflow}' failed: ${err?.message ?? String(err)}`, { cause: err });
234
+ settle("error", failure.message);
235
+ record(input.config, { workflow, status: "error", reason: failure.message });
236
+ throw failure;
237
+ }
238
+ }
239
+ /** The config a child is invoked with: its own session, the dispatch chain, and a whole-turn bound. */
240
+ /** This composition as the caller of a dispatch made under `config`. */
241
+ function caller(config) {
242
+ if (!opts.childPolicyRules)
243
+ return undefined;
244
+ return { chain: sessionScopeFrom(config).chain, inheritedPolicyRules: opts.childPolicyRules };
245
+ }
246
+ function childConfig(parent, child) {
247
+ return { recursionLimit: DEFAULT_RECURSION_LIMIT, ...childRunConfig(parent, child) };
248
+ }
249
+ async function run(input) {
250
+ const { workflow } = input;
251
+ const child = await opts.registry.resolve(workflow, caller(input.config));
252
+ const config = childConfig(input.config, {
253
+ identity: input.identity,
254
+ workflow,
255
+ dispatchId: input.dispatchId,
256
+ });
257
+ // Exactly what the caller declared: the child seeds them as its host would, locked.
258
+ const configurable = { ...(config.configurable ?? {}), [SEED_VARIABLES_KEY]: { ...input.params } };
259
+ // Everything the child emits is tagged with this dispatch.
260
+ const state = await withEventContext({ subWorkflowDispatchId: input.dispatchId }, () => child.graph.invoke({ messages: [humanNote("opening", SUB_RUN_OPENING)] }, { ...config, configurable, ...(input.signal ? { signal: input.signal } : {}) }));
261
+ const fields = readWorkflowState(state);
262
+ const finishedIn = fields.workflowState ?? child.machine.entry;
263
+ // A park normally leaves through the `GraphInterrupt` above; settling in an
264
+ // awaiting status means nothing would ever resume the child, so it fails closed.
265
+ if (fields.status === WORKFLOW_STATUSES.awaitingInput ||
266
+ fields.status === WORKFLOW_STATUSES.awaitingDecision) {
267
+ throw new SubWorkflowError("parked", workflow, `Sub-workflow '${workflow}' settled in state '${finishedIn}' with status ` +
268
+ `'${fields.status}' but no pending suspension, so nothing could resume it.`);
269
+ }
270
+ if (fields.rejected)
271
+ throw failed(workflow, finishedIn, fields.rejected);
272
+ const returns = readReturns(state, input.returns);
273
+ return { result: closingMessage(state), workflow, state: finishedIn, ...(returns ? { returns } : {}) };
274
+ }
275
+ /** Continue a child that stopped for a person: the same invoke, entered with a `Command({ resume })`. */
276
+ async function resume(input) {
277
+ const { workflow, state: callingState } = input;
278
+ const startedAt = Date.now();
279
+ const child = await opts.registry.resolve(workflow, caller(input.config));
280
+ const config = childConfig(input.config, {
281
+ identity: input.identity,
282
+ workflow,
283
+ dispatchId: input.dispatchId,
284
+ });
285
+ const settle = (outcome) => emit({
286
+ type: "sub-workflow-result",
287
+ state: callingState,
288
+ workflow,
289
+ dispatchId: input.dispatchId,
290
+ status: outcome.status,
291
+ durationMs: Date.now() - startedAt,
292
+ ...(outcome.status === "error" ? { reason: outcome.reason } : {}),
293
+ ...(outcome.status === "ok" && outcome.returns ? { returns: Object.keys(outcome.returns) } : {}),
294
+ });
295
+ try {
296
+ const state = await withEventContext({ subWorkflowDispatchId: input.dispatchId }, () => child.graph.invoke(new Command({ resume: input.resume }), config));
297
+ const fields = readWorkflowState(state);
298
+ const finishedIn = fields.workflowState ?? child.machine.entry;
299
+ if (fields.rejected)
300
+ throw failed(workflow, finishedIn, fields.rejected);
301
+ const returns = readReturns(state, (await opts.registry.signature(workflow)).returns);
302
+ settle({ status: "ok", returns });
303
+ return { result: closingMessage(state), workflow, state: finishedIn, ...(returns ? { returns } : {}) };
304
+ }
305
+ catch (err) {
306
+ if (isGraphInterrupt(err)) {
307
+ markPark(err, { workflow, identity: input.identity, dispatchId: input.dispatchId });
308
+ throw err;
309
+ }
310
+ const failure = err instanceof SubWorkflowError
311
+ ? err
312
+ : new SubWorkflowError("error", workflow, `Sub-workflow '${workflow}' failed after resuming: ` +
313
+ `${err?.message ?? String(err)}`, { cause: err });
314
+ settle({ status: "error", reason: failure.message });
315
+ throw failure;
316
+ }
317
+ }
318
+ return {
319
+ dispatch,
320
+ refusal,
321
+ resume,
322
+ signature: (w) => opts.registry.signature(w),
323
+ drainDispatches(sessionId) {
324
+ const ledger = dispatched.get(sessionId) ?? [];
325
+ dispatched.delete(sessionId);
326
+ return ledger;
327
+ },
328
+ release(sessionId) {
329
+ releaseScopes(dispatched, sessionId);
330
+ dispatched.delete(sessionId);
331
+ },
332
+ };
333
+ }
334
+ /** Turn a matched mock into the dispatch's result, held to the target's declared contract like a real sub-run. */
335
+ function applyMock(mock, workflow, returns) {
336
+ const declared = mock.result;
337
+ if (declared != null && typeof declared === "object" && "error" in declared) {
338
+ throw new SubWorkflowError("rejected", workflow, `Sub-workflow '${workflow}' failed (mocked): ${String(declared.error)}`);
339
+ }
340
+ const asObject = declared != null && typeof declared === "object" ? declared : undefined;
341
+ const result = typeof asObject?.message === "string"
342
+ ? asObject.message
343
+ : typeof declared === "string"
344
+ ? declared
345
+ : JSON.stringify(declared ?? null);
346
+ const state = typeof asObject?.state === "string" ? asObject.state : "(mocked)";
347
+ const wanted = returns ?? [];
348
+ if (wanted.length === 0)
349
+ return { result, workflow, state };
350
+ const supplied = asObject?.returns;
351
+ const unset = wanted.filter((name) => supplied?.[name] === undefined);
352
+ if (unset.length > 0) {
353
+ throw new SubWorkflowError("missing-return", workflow, `Mocked sub-workflow '${workflow}' supplies no ${unset.map((n) => `'${n}'`).join(", ")}, ` +
354
+ `which it declares in its '${MANUAL_TRIGGER}' trigger's 'returns'. Add ` +
355
+ `${unset.length === 1 ? "it" : "them"} under the mock's 'returns' — a mock stands in ` +
356
+ `for the sub-run, not for its contract.`);
357
+ }
358
+ return {
359
+ result,
360
+ workflow,
361
+ state,
362
+ returns: Object.fromEntries(wanted.map((n) => [n, supplied[n]])),
363
+ };
364
+ }
365
+ /**
366
+ * Resolve a dispatch's params against the dispatching run's variables: strings
367
+ * are substituted, everything else passes through. Fails closed on an unresolved
368
+ * reference: a literal `${{…}}` must never become a sub-run's fact.
369
+ */
370
+ export function resolveParams(params, variables, workflow) {
371
+ if (!params)
372
+ return {};
373
+ const resolved = {};
374
+ for (const [name, value] of Object.entries(params)) {
375
+ if (typeof value !== "string") {
376
+ resolved[name] = value;
377
+ continue;
378
+ }
379
+ const substituted = resolveText(value, variables);
380
+ if (!substituted.ok) {
381
+ throw new SubWorkflowError("unresolved-param", workflow, `Cannot run sub-workflow '${workflow}': its param '${name}' references ` +
382
+ `${substituted.detail}.`);
383
+ }
384
+ resolved[name] = substituted.pattern;
385
+ }
386
+ return resolved;
387
+ }
388
+ /** The child's closing message: its last assistant text, or an explicit note when it said nothing. */
389
+ export function closingMessage(state) {
390
+ return lastAgentText(state?.messages ?? []) || NO_RESULT_MESSAGE;
391
+ }
392
+ //# sourceMappingURL=sub-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-workflow.js","sourceRoot":"","sources":["../../src/workflow/sub-workflow.ts"],"names":[],"mappings":"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"}