@acpus/runtime 0.7.1 → 0.9.0-alpha.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 (289) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/admission/input.d.ts +5 -0
  3. package/dist/admission/input.d.ts.map +1 -0
  4. package/dist/admission/input.js +17 -0
  5. package/dist/admission/input.js.map +1 -0
  6. package/dist/artifacts/rewrite.d.ts +7 -0
  7. package/dist/artifacts/rewrite.d.ts.map +1 -0
  8. package/dist/artifacts/rewrite.js +28 -0
  9. package/dist/artifacts/rewrite.js.map +1 -0
  10. package/dist/control/agent-overrides.d.ts +4 -0
  11. package/dist/control/agent-overrides.d.ts.map +1 -0
  12. package/dist/control/agent-overrides.js +40 -0
  13. package/dist/control/agent-overrides.js.map +1 -0
  14. package/dist/daemon/loop.d.ts +16 -0
  15. package/dist/daemon/loop.d.ts.map +1 -0
  16. package/dist/daemon/loop.js +191 -0
  17. package/dist/daemon/loop.js.map +1 -0
  18. package/dist/daemon/sessions.d.ts +23 -0
  19. package/dist/daemon/sessions.d.ts.map +1 -0
  20. package/dist/daemon/sessions.js +190 -0
  21. package/dist/daemon/sessions.js.map +1 -0
  22. package/dist/daemon/socket.d.ts +82 -0
  23. package/dist/daemon/socket.d.ts.map +1 -0
  24. package/dist/daemon/socket.js +341 -0
  25. package/dist/daemon/socket.js.map +1 -0
  26. package/dist/daemon/tick.d.ts +9 -0
  27. package/dist/daemon/tick.d.ts.map +1 -0
  28. package/dist/daemon/tick.js +18 -0
  29. package/dist/daemon/tick.js.map +1 -0
  30. package/dist/evaluation/admissible.d.ts +2 -0
  31. package/dist/evaluation/admissible.d.ts.map +1 -0
  32. package/dist/evaluation/admissible.js +50 -0
  33. package/dist/evaluation/admissible.js.map +1 -0
  34. package/dist/evaluation/evaluator.d.ts +14 -0
  35. package/dist/evaluation/evaluator.d.ts.map +1 -0
  36. package/dist/evaluation/evaluator.js +34 -0
  37. package/dist/evaluation/evaluator.js.map +1 -0
  38. package/dist/evaluation/loop-limit.d.ts +4 -0
  39. package/dist/evaluation/loop-limit.d.ts.map +1 -0
  40. package/dist/evaluation/loop-limit.js +9 -0
  41. package/dist/evaluation/loop-limit.js.map +1 -0
  42. package/dist/evaluation/schema.d.ts +4 -0
  43. package/dist/evaluation/schema.d.ts.map +1 -0
  44. package/dist/evaluation/schema.js +92 -0
  45. package/dist/evaluation/schema.js.map +1 -0
  46. package/dist/execution/advance.d.ts +18 -0
  47. package/dist/execution/advance.d.ts.map +1 -0
  48. package/dist/execution/advance.js +57 -0
  49. package/dist/execution/advance.js.map +1 -0
  50. package/dist/execution/agent-node.d.ts +23 -0
  51. package/dist/execution/agent-node.d.ts.map +1 -0
  52. package/dist/execution/agent-node.js +512 -0
  53. package/dist/execution/agent-node.js.map +1 -0
  54. package/dist/execution/duration.d.ts +2 -0
  55. package/dist/execution/duration.d.ts.map +1 -0
  56. package/dist/execution/duration.js +15 -0
  57. package/dist/execution/duration.js.map +1 -0
  58. package/dist/execution/ir.d.ts +3 -0
  59. package/dist/execution/ir.d.ts.map +1 -0
  60. package/dist/execution/ir.js +46 -0
  61. package/dist/execution/ir.js.map +1 -0
  62. package/dist/execution/scheduler.d.ts +59 -0
  63. package/dist/execution/scheduler.d.ts.map +1 -0
  64. package/dist/execution/scheduler.js +306 -0
  65. package/dist/execution/scheduler.js.map +1 -0
  66. package/dist/execution/task-executor.d.ts +14 -0
  67. package/dist/execution/task-executor.d.ts.map +1 -0
  68. package/dist/execution/task-executor.js +186 -0
  69. package/dist/execution/task-executor.js.map +1 -0
  70. package/dist/hooks/config.d.ts +32 -0
  71. package/dist/hooks/config.d.ts.map +1 -0
  72. package/dist/hooks/config.js +112 -0
  73. package/dist/hooks/config.js.map +1 -0
  74. package/dist/hooks/context.d.ts +50 -0
  75. package/dist/hooks/context.d.ts.map +1 -0
  76. package/dist/hooks/context.js +116 -0
  77. package/dist/hooks/context.js.map +1 -0
  78. package/dist/hooks/events.d.ts +22 -0
  79. package/dist/hooks/events.d.ts.map +1 -0
  80. package/dist/hooks/events.js +41 -0
  81. package/dist/hooks/events.js.map +1 -0
  82. package/dist/hooks/journal.d.ts +21 -19
  83. package/dist/hooks/journal.d.ts.map +1 -1
  84. package/dist/hooks/journal.js +1 -48
  85. package/dist/hooks/journal.js.map +1 -1
  86. package/dist/hooks/loader.d.ts +33 -39
  87. package/dist/hooks/loader.d.ts.map +1 -1
  88. package/dist/hooks/loader.js +79 -95
  89. package/dist/hooks/loader.js.map +1 -1
  90. package/dist/hooks/runner.d.ts +14 -41
  91. package/dist/hooks/runner.d.ts.map +1 -1
  92. package/dist/hooks/runner.js +177 -145
  93. package/dist/hooks/runner.js.map +1 -1
  94. package/dist/index.d.ts +13 -28
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +13 -33
  97. package/dist/index.js.map +1 -1
  98. package/dist/runs/advance-runtime.d.ts +50 -0
  99. package/dist/runs/advance-runtime.d.ts.map +1 -0
  100. package/dist/runs/advance-runtime.js +82 -0
  101. package/dist/runs/advance-runtime.js.map +1 -0
  102. package/dist/runs/use-cases.d.ts +111 -0
  103. package/dist/runs/use-cases.d.ts.map +1 -0
  104. package/dist/runs/use-cases.js +539 -0
  105. package/dist/runs/use-cases.js.map +1 -0
  106. package/dist/scheduler/advance.d.ts +65 -0
  107. package/dist/scheduler/advance.d.ts.map +1 -0
  108. package/dist/scheduler/advance.js +435 -0
  109. package/dist/scheduler/advance.js.map +1 -0
  110. package/dist/scheduler/control.d.ts +49 -0
  111. package/dist/scheduler/control.d.ts.map +1 -0
  112. package/dist/scheduler/control.js +212 -0
  113. package/dist/scheduler/control.js.map +1 -0
  114. package/dist/scheduler/event-codec.d.ts +4 -0
  115. package/dist/scheduler/event-codec.d.ts.map +1 -0
  116. package/dist/scheduler/event-codec.js +57 -0
  117. package/dist/scheduler/event-codec.js.map +1 -0
  118. package/dist/scheduler/events.d.ts +193 -0
  119. package/dist/scheduler/events.d.ts.map +1 -0
  120. package/dist/scheduler/events.js +13 -0
  121. package/dist/scheduler/events.js.map +1 -0
  122. package/dist/scheduler/fork-seed.d.ts +38 -0
  123. package/dist/scheduler/fork-seed.d.ts.map +1 -0
  124. package/dist/scheduler/fork-seed.js +590 -0
  125. package/dist/scheduler/fork-seed.js.map +1 -0
  126. package/dist/scheduler/identity.d.ts +8 -0
  127. package/dist/scheduler/identity.d.ts.map +1 -0
  128. package/dist/scheduler/identity.js +49 -0
  129. package/dist/scheduler/identity.js.map +1 -0
  130. package/dist/scheduler/ir-walk.d.ts +3 -0
  131. package/dist/scheduler/ir-walk.d.ts.map +1 -0
  132. package/dist/scheduler/ir-walk.js +25 -0
  133. package/dist/scheduler/ir-walk.js.map +1 -0
  134. package/dist/scheduler/limiter.d.ts +7 -0
  135. package/dist/scheduler/limiter.d.ts.map +1 -0
  136. package/dist/scheduler/limiter.js +10 -0
  137. package/dist/scheduler/limiter.js.map +1 -0
  138. package/dist/scheduler/materialize.d.ts +7 -0
  139. package/dist/scheduler/materialize.d.ts.map +1 -0
  140. package/dist/scheduler/materialize.js +756 -0
  141. package/dist/scheduler/materialize.js.map +1 -0
  142. package/dist/scheduler/membership.d.ts +12 -0
  143. package/dist/scheduler/membership.d.ts.map +1 -0
  144. package/dist/scheduler/membership.js +74 -0
  145. package/dist/scheduler/membership.js.map +1 -0
  146. package/dist/scheduler/node-executor.d.ts +15 -0
  147. package/dist/scheduler/node-executor.d.ts.map +1 -0
  148. package/dist/scheduler/node-executor.js +69 -0
  149. package/dist/scheduler/node-executor.js.map +1 -0
  150. package/dist/scheduler/runtime-runner.d.ts +44 -0
  151. package/dist/scheduler/runtime-runner.d.ts.map +1 -0
  152. package/dist/scheduler/runtime-runner.js +155 -0
  153. package/dist/scheduler/runtime-runner.js.map +1 -0
  154. package/dist/scheduler/scope.d.ts +6 -0
  155. package/dist/scheduler/scope.d.ts.map +1 -0
  156. package/dist/scheduler/scope.js +56 -0
  157. package/dist/scheduler/scope.js.map +1 -0
  158. package/dist/scheduler/store-port.d.ts +211 -0
  159. package/dist/scheduler/store-port.d.ts.map +1 -0
  160. package/dist/scheduler/store-port.js +28 -0
  161. package/dist/scheduler/store-port.js.map +1 -0
  162. package/dist/scheduler/transitions.d.ts +89 -0
  163. package/dist/scheduler/transitions.d.ts.map +1 -0
  164. package/dist/scheduler/transitions.js +967 -0
  165. package/dist/scheduler/transitions.js.map +1 -0
  166. package/dist/scheduler/types.d.ts +146 -0
  167. package/dist/scheduler/types.d.ts.map +1 -0
  168. package/dist/{executors → scheduler}/types.js.map +1 -1
  169. package/dist/store/store.d.ts +390 -0
  170. package/dist/store/store.d.ts.map +1 -0
  171. package/dist/store/store.js +3053 -0
  172. package/dist/store/store.js.map +1 -0
  173. package/dist/visualization/overlay.d.ts +86 -0
  174. package/dist/visualization/overlay.d.ts.map +1 -0
  175. package/dist/visualization/overlay.js +161 -0
  176. package/dist/visualization/overlay.js.map +1 -0
  177. package/package.json +19 -37
  178. package/README.md +0 -7
  179. package/dist/agent-telemetry.d.ts +0 -56
  180. package/dist/agent-telemetry.d.ts.map +0 -1
  181. package/dist/agent-telemetry.js +0 -304
  182. package/dist/agent-telemetry.js.map +0 -1
  183. package/dist/artifacts.d.ts +0 -45
  184. package/dist/artifacts.d.ts.map +0 -1
  185. package/dist/artifacts.js +0 -163
  186. package/dist/artifacts.js.map +0 -1
  187. package/dist/attempt-artifacts.d.ts +0 -35
  188. package/dist/attempt-artifacts.d.ts.map +0 -1
  189. package/dist/attempt-artifacts.js +0 -90
  190. package/dist/attempt-artifacts.js.map +0 -1
  191. package/dist/client.d.ts +0 -82
  192. package/dist/client.d.ts.map +0 -1
  193. package/dist/client.js +0 -200
  194. package/dist/client.js.map +0 -1
  195. package/dist/evaluator.d.ts +0 -36
  196. package/dist/evaluator.d.ts.map +0 -1
  197. package/dist/evaluator.js +0 -101
  198. package/dist/evaluator.js.map +0 -1
  199. package/dist/executors/agent.d.ts +0 -101
  200. package/dist/executors/agent.d.ts.map +0 -1
  201. package/dist/executors/agent.js +0 -508
  202. package/dist/executors/agent.js.map +0 -1
  203. package/dist/executors/mock-program.d.ts +0 -26
  204. package/dist/executors/mock-program.d.ts.map +0 -1
  205. package/dist/executors/mock-program.js +0 -100
  206. package/dist/executors/mock-program.js.map +0 -1
  207. package/dist/executors/output-preview.d.ts +0 -2
  208. package/dist/executors/output-preview.d.ts.map +0 -1
  209. package/dist/executors/output-preview.js +0 -20
  210. package/dist/executors/output-preview.js.map +0 -1
  211. package/dist/executors/program.d.ts +0 -30
  212. package/dist/executors/program.d.ts.map +0 -1
  213. package/dist/executors/program.js +0 -230
  214. package/dist/executors/program.js.map +0 -1
  215. package/dist/executors/types.d.ts +0 -32
  216. package/dist/executors/types.d.ts.map +0 -1
  217. package/dist/fork.d.ts +0 -74
  218. package/dist/fork.d.ts.map +0 -1
  219. package/dist/fork.js +0 -278
  220. package/dist/fork.js.map +0 -1
  221. package/dist/hooks/payload.d.ts +0 -17
  222. package/dist/hooks/payload.d.ts.map +0 -1
  223. package/dist/hooks/payload.js +0 -45
  224. package/dist/hooks/payload.js.map +0 -1
  225. package/dist/interpreter.d.ts +0 -168
  226. package/dist/interpreter.d.ts.map +0 -1
  227. package/dist/interpreter.js +0 -1747
  228. package/dist/interpreter.js.map +0 -1
  229. package/dist/keys.d.ts +0 -77
  230. package/dist/keys.d.ts.map +0 -1
  231. package/dist/keys.js +0 -375
  232. package/dist/keys.js.map +0 -1
  233. package/dist/run-control.d.ts +0 -45
  234. package/dist/run-control.d.ts.map +0 -1
  235. package/dist/run-control.js +0 -255
  236. package/dist/run-control.js.map +0 -1
  237. package/dist/run-id.d.ts +0 -3
  238. package/dist/run-id.d.ts.map +0 -1
  239. package/dist/run-id.js +0 -10
  240. package/dist/run-id.js.map +0 -1
  241. package/dist/state-machine.d.ts +0 -31
  242. package/dist/state-machine.d.ts.map +0 -1
  243. package/dist/state-machine.js +0 -102
  244. package/dist/state-machine.js.map +0 -1
  245. package/dist/store.d.ts +0 -92
  246. package/dist/store.d.ts.map +0 -1
  247. package/dist/store.js +0 -420
  248. package/dist/store.js.map +0 -1
  249. package/dist/supervisor-app.d.ts +0 -27
  250. package/dist/supervisor-app.d.ts.map +0 -1
  251. package/dist/supervisor-app.js +0 -694
  252. package/dist/supervisor-app.js.map +0 -1
  253. package/dist/supervisor-discovery.d.ts +0 -18
  254. package/dist/supervisor-discovery.d.ts.map +0 -1
  255. package/dist/supervisor-discovery.js +0 -180
  256. package/dist/supervisor-discovery.js.map +0 -1
  257. package/dist/supervisor-entry.d.ts +0 -11
  258. package/dist/supervisor-entry.d.ts.map +0 -1
  259. package/dist/supervisor-entry.js +0 -50
  260. package/dist/supervisor-entry.js.map +0 -1
  261. package/dist/supervisor-lock.d.ts +0 -26
  262. package/dist/supervisor-lock.d.ts.map +0 -1
  263. package/dist/supervisor-lock.js +0 -49
  264. package/dist/supervisor-lock.js.map +0 -1
  265. package/dist/supervisor-runner.d.ts +0 -11
  266. package/dist/supervisor-runner.d.ts.map +0 -1
  267. package/dist/supervisor-runner.js +0 -128
  268. package/dist/supervisor-runner.js.map +0 -1
  269. package/dist/types.d.ts +0 -375
  270. package/dist/types.d.ts.map +0 -1
  271. package/dist/types.js +0 -7
  272. package/dist/types.js.map +0 -1
  273. package/dist/validate-input.d.ts +0 -27
  274. package/dist/validate-input.d.ts.map +0 -1
  275. package/dist/validate-input.js +0 -56
  276. package/dist/validate-input.js.map +0 -1
  277. package/dist/validate-signal.d.ts +0 -14
  278. package/dist/validate-signal.d.ts.map +0 -1
  279. package/dist/validate-signal.js +0 -31
  280. package/dist/validate-signal.js.map +0 -1
  281. package/dist/workflow-context.d.ts +0 -4
  282. package/dist/workflow-context.d.ts.map +0 -1
  283. package/dist/workflow-context.js +0 -11
  284. package/dist/workflow-context.js.map +0 -1
  285. package/dist/workflow-outputs.d.ts +0 -9
  286. package/dist/workflow-outputs.d.ts.map +0 -1
  287. package/dist/workflow-outputs.js +0 -60
  288. package/dist/workflow-outputs.js.map +0 -1
  289. /package/dist/{executors → scheduler}/types.js +0 -0
@@ -0,0 +1,512 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { mkdir, writeFile } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { schemaToJsonSchema } from "@acpus/core/schema";
5
+ import { executeAgentTurn } from "@acpus/agent-executor";
6
+ import { jsonrepair } from "jsonrepair";
7
+ import { evaluateExpr, renderTemplate } from "../evaluation/evaluator.js";
8
+ import { normalizeValue } from "../evaluation/schema.js";
9
+ import { parseDurationMs } from "./duration.js";
10
+ const CONTINUATION_PROMPT = "Continue the previous task from where you left off.";
11
+ const DEFAULT_REPAIR_DELAY_MS = 5_000;
12
+ const PROGRESS_FLUSH_INTERVAL_MS = 1_000;
13
+ const PROGRESS_OUTPUT_TAIL_BYTES = 16 * 1024;
14
+ const PROGRESS_TOOL_LIMIT = 3;
15
+ export class AgentNodeCancelledError extends Error {
16
+ }
17
+ export class AgentNodeTimeoutError extends Error {
18
+ }
19
+ export async function executeAgentNode(node, scope, options) {
20
+ const turns = [];
21
+ let sessionNameForMetadata;
22
+ let explicitSessionKey;
23
+ let metadataWritten = false;
24
+ const writeTerminalState = async (status, message, result, turn) => {
25
+ if (result && turn !== undefined)
26
+ writeAgentTerminalProgress(node, options, turn, result, status, message);
27
+ metadataWritten = true;
28
+ await writeAgentAttemptMetadata(node, options, sessionNameForMetadata, explicitSessionKey, status, turns, message);
29
+ };
30
+ try {
31
+ const definition = options.agents[node.run.agent];
32
+ if (!definition)
33
+ throw new Error(`Agent '${node.run.agent}' is not declared.`);
34
+ const cwd = node.run.cwd ? stringValue(evaluateExpr(node.run.cwd, scope), "agent cwd") : definition.cwd ? stringValue(evaluateExpr(definition.cwd, scope), "agent cwd") : options.cwd;
35
+ const env = {
36
+ ...process.env,
37
+ ...evaluateEnv(definition.env, scope),
38
+ ...evaluateEnv(node.run.env, scope),
39
+ };
40
+ applyRuntimeAgentEnv(env, node.id, options);
41
+ const deadline = node.timeout ? Date.now() + parseDurationMs(node.timeout) : undefined;
42
+ explicitSessionKey = renderSessionKey(node, scope);
43
+ sessionNameForMetadata = sessionName(options.runId, options.nodeKey ?? node.id, explicitSessionKey);
44
+ const turnBase = {
45
+ agent: agentSelector(definition),
46
+ cwd,
47
+ env,
48
+ sessionName: sessionNameForMetadata,
49
+ permissionMode: node.run.permissionMode ?? definition.permissionMode ?? "approve-all",
50
+ ...(definition.model ? { model: definition.model } : {}),
51
+ ...(options.signal ? { signal: options.signal } : {}),
52
+ };
53
+ const executeTurn = options.executeTurn ?? executeAgentTurn;
54
+ const maxRepairTurns = node.outputSchema ? (node.retry?.max ?? 2) : 0;
55
+ const plainContinuation = options.initialPromptKind === "plain_continuation";
56
+ let prompt = plainContinuation ? CONTINUATION_PROMPT : buildAgentPrompt(renderTemplate(node.run.prompt, scope), node.outputSchema);
57
+ for (let turn = 0; turn <= maxRepairTurns; turn += 1) {
58
+ const remaining = remainingTimeout(deadline, node.id);
59
+ const captureRawDebug = shouldCaptureRawAcpDebug();
60
+ const onProgress = createAgentProgressReporter(node, options, turn + 1);
61
+ const request = {
62
+ ...turnBase,
63
+ prompt,
64
+ ...(remaining === undefined ? {} : { timeout: `${remaining}ms` }),
65
+ ...(turn === 0 && !plainContinuation && definition.agentMode ? { agentMode: definition.agentMode } : {}),
66
+ ...(captureRawDebug ? { captureRawDebug: true } : {}),
67
+ ...(onProgress ? { onProgress } : {}),
68
+ };
69
+ const result = await executeTurn(request);
70
+ turns.push(await writeAgentTurnArtifacts(node, options, turn + 1, request.prompt, result, captureRawDebug));
71
+ if (result.status === "cancelled") {
72
+ await writeTerminalState("cancelled", result.message, result, turn + 1);
73
+ throw new AgentNodeCancelledError(result.message);
74
+ }
75
+ if (result.status === "failed" && result.failureKind === "timeout") {
76
+ await writeTerminalState("timed_out", result.message, result, turn + 1);
77
+ throw new AgentNodeTimeoutError(result.message);
78
+ }
79
+ if (result.status === "failed") {
80
+ await writeTerminalState("failed", `${result.failureKind}: ${result.message}`, result, turn + 1);
81
+ throw new Error(`${result.failureKind}: ${result.message}`);
82
+ }
83
+ if (!node.outputSchema) {
84
+ await writeTerminalState("completed", undefined, result, turn + 1);
85
+ return result.responseText;
86
+ }
87
+ const conformed = conformAgentOutput(node.outputSchema, result.responseText, node.id);
88
+ if (conformed.rawParsedOutput !== undefined) {
89
+ const rawParsedOutputArtifact = await writeAgentRawParsedOutputArtifact(node, options, turn + 1, conformed.rawParsedOutput);
90
+ if (rawParsedOutputArtifact)
91
+ turns[turn] = { ...turns[turn], rawParsedOutputArtifact };
92
+ }
93
+ if (conformed.ok) {
94
+ await writeTerminalState("completed", undefined, result, turn + 1);
95
+ return conformed.output;
96
+ }
97
+ turns[turn] = { ...turns[turn], failureKind: conformed.kind, message: conformed.message };
98
+ if (turn === maxRepairTurns) {
99
+ await writeTerminalState("failed", `${conformed.kind}: ${conformed.message}`, result, turn + 1);
100
+ throw new Error(`${conformed.kind}: ${conformed.message}`);
101
+ }
102
+ await delay(options.repairDelayMs ?? DEFAULT_REPAIR_DELAY_MS, options.signal, deadline);
103
+ prompt = buildAgentPrompt(CONTINUATION_PROMPT, node.outputSchema);
104
+ }
105
+ throw new Error(`Agent node '${node.id}' exhausted response repair.`);
106
+ }
107
+ catch (error) {
108
+ if (!metadataWritten) {
109
+ await writeTerminalState(error instanceof AgentNodeCancelledError ? "cancelled" : error instanceof AgentNodeTimeoutError ? "timed_out" : "failed", error instanceof Error ? error.message : String(error));
110
+ }
111
+ throw error;
112
+ }
113
+ }
114
+ function shouldCaptureRawAcpDebug() {
115
+ return process.env.ACPUS_AGENT_RAW_ACP_DEBUG === "1";
116
+ }
117
+ function applyRuntimeAgentEnv(env, nodeId, options) {
118
+ env.ACPUS_RUNTIME_NODE_ID = nodeId;
119
+ setOptionalEnv(env, "ACPUS_RUNTIME_RUN_ID", options.runId);
120
+ setOptionalEnv(env, "ACPUS_RUNTIME_NODE_KEY", options.nodeKey);
121
+ setOptionalEnv(env, "ACPUS_RUNTIME_ATTEMPT", options.attemptNo === undefined ? undefined : String(options.attemptNo));
122
+ }
123
+ function setOptionalEnv(env, key, value) {
124
+ if (value === undefined)
125
+ delete env[key];
126
+ else
127
+ env[key] = value;
128
+ }
129
+ function evaluateEnv(env, scope) {
130
+ if (!env)
131
+ return {};
132
+ return Object.fromEntries(Object.entries(env).map(([key, value]) => {
133
+ if (value && typeof value === "object" && value.kind === "secret")
134
+ throw new Error(`Agent env '${key}' references an unresolved secret.`);
135
+ return [key, stringValue(evaluateExpr(value, scope), `agent env ${key}`)];
136
+ }));
137
+ }
138
+ function stringValue(value, label) {
139
+ if (typeof value === "string")
140
+ return value;
141
+ throw new Error(`${label} must evaluate to string.`);
142
+ }
143
+ function agentSelector(definition) {
144
+ return definition.kind === "agent_command"
145
+ ? { kind: "command", command: definition.command }
146
+ : { kind: "named", name: definition.use };
147
+ }
148
+ function renderSessionKey(node, scope) {
149
+ if (!node.run.sessionKey)
150
+ return undefined;
151
+ const rendered = renderTemplate(node.run.sessionKey, scope);
152
+ if (rendered.trim().length === 0)
153
+ throw new Error(`Agent node '${node.id}' sessionKey must render to a non-empty string.`);
154
+ return rendered;
155
+ }
156
+ function sessionName(runId, nodeKey, explicitKey) {
157
+ const identity = explicitKey === undefined
158
+ ? { runId: runId ?? "local", nodeKey }
159
+ : { runId: runId ?? "local", key: explicitKey };
160
+ return `acpus-${Buffer.from(JSON.stringify(identity)).toString("base64url")}`;
161
+ }
162
+ function buildAgentPrompt(text, schema) {
163
+ if (!schema)
164
+ return text;
165
+ return `${text}\n\n# OUTPUT SCHEMA\n**After completing the task, your final response MUST be exactly one JSON value that conforms to this schema, with no Markdown or prose.**\n${JSON.stringify(schemaToJsonSchema(schema), null, 2)}`;
166
+ }
167
+ function conformAgentOutput(schema, text, nodeId) {
168
+ if (text.trim().length === 0)
169
+ return { ok: false, kind: "empty_response", message: `Agent node '${nodeId}' returned an empty response.` };
170
+ const recovered = recoverJson(text);
171
+ if (recovered === undefined)
172
+ return { ok: false, kind: "output_conformance", message: `Agent node '${nodeId}' response could not be recovered as JSON.` };
173
+ try {
174
+ return { ok: true, output: normalizeValue(schema, projectToSchema(schema, recovered), `Node '${nodeId}' output`), rawParsedOutput: recovered };
175
+ }
176
+ catch (error) {
177
+ return { ok: false, kind: "output_conformance", message: error instanceof Error ? error.message : String(error), rawParsedOutput: recovered };
178
+ }
179
+ }
180
+ function recoverJson(text) {
181
+ const trimmed = text.trim();
182
+ try {
183
+ return parsedJsonValue(JSON.parse(trimmed));
184
+ }
185
+ catch { }
186
+ const candidates = balancedJsonCandidates(text);
187
+ for (let i = candidates.length - 1; i >= 0; i -= 1) {
188
+ const candidate = candidates[i];
189
+ try {
190
+ return parsedJsonValue(JSON.parse(candidate));
191
+ }
192
+ catch { }
193
+ if (/^[{[]/.test(candidate.trimStart())) {
194
+ try {
195
+ return parsedJsonValue(JSON.parse(jsonrepair(candidate)));
196
+ }
197
+ catch { }
198
+ }
199
+ }
200
+ return undefined;
201
+ }
202
+ function parsedJsonValue(value) {
203
+ return isJsonValue(value) ? value : undefined;
204
+ }
205
+ function balancedJsonCandidates(text) {
206
+ const candidates = [];
207
+ for (let start = 0; start < text.length; start += 1) {
208
+ if (text[start] !== "{" && text[start] !== "[")
209
+ continue;
210
+ const end = balancedCandidateEnd(text, start);
211
+ if (end !== undefined)
212
+ candidates.push({ start, end, value: text.slice(start, end) });
213
+ }
214
+ return candidates
215
+ .filter(candidate => !candidates.some(other => other !== candidate && other.start < candidate.start && candidate.end < other.end))
216
+ .sort((a, b) => a.end - b.end || a.start - b.start)
217
+ .map(candidate => candidate.value);
218
+ }
219
+ function balancedCandidateEnd(text, start) {
220
+ const stack = [];
221
+ let inString = false;
222
+ let escaped = false;
223
+ for (let index = start; index < text.length; index += 1) {
224
+ const char = text[index];
225
+ if (inString) {
226
+ if (escaped)
227
+ escaped = false;
228
+ else if (char === "\\")
229
+ escaped = true;
230
+ else if (char === "\"")
231
+ inString = false;
232
+ continue;
233
+ }
234
+ if (char === "\"")
235
+ inString = true;
236
+ else if (char === "{" || char === "[")
237
+ stack.push(char === "{" ? "}" : "]");
238
+ else if (char === "}" || char === "]") {
239
+ if (stack.pop() !== char)
240
+ return undefined;
241
+ if (stack.length === 0)
242
+ return index + 1;
243
+ }
244
+ }
245
+ return undefined;
246
+ }
247
+ function projectToSchema(schema, value) {
248
+ if (value === null)
249
+ return value;
250
+ if (schema.kind === "array" && Array.isArray(value))
251
+ return value.map(item => projectToSchema(schema.item, item));
252
+ if (schema.kind === "record" && isJsonObject(value))
253
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, projectToSchema(schema.value, item)]));
254
+ if (schema.kind === "union") {
255
+ for (const variant of schema.variants) {
256
+ const projected = projectToSchema(variant, value);
257
+ try {
258
+ normalizeValue(variant, projected, "Agent union variant");
259
+ return projected;
260
+ }
261
+ catch { }
262
+ }
263
+ return value;
264
+ }
265
+ if (schema.kind !== "object" || !isJsonObject(value))
266
+ return value;
267
+ const projected = schema.additionalProperties ? { ...value } : {};
268
+ for (const [key, field] of Object.entries(schema.fields)) {
269
+ if (key in value)
270
+ projected[key] = projectToSchema(field, value[key]);
271
+ }
272
+ return projected;
273
+ }
274
+ function isJsonObject(value) {
275
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
276
+ }
277
+ function isJsonValue(value) {
278
+ if (value === null)
279
+ return true;
280
+ if (typeof value === "number")
281
+ return Number.isFinite(value);
282
+ if (typeof value === "string" || typeof value === "boolean")
283
+ return true;
284
+ if (Array.isArray(value))
285
+ return value.every(isJsonValue);
286
+ return Boolean(value && typeof value === "object" && Object.values(value).every(isJsonValue));
287
+ }
288
+ async function writeAgentTurnArtifacts(node, options, turn, prompt, result, captureRawDebug) {
289
+ const base = {
290
+ turn,
291
+ status: result.status,
292
+ telemetry: telemetrySummary(result.telemetry),
293
+ ...(result.status === "failed" ? { failureKind: result.failureKind, message: result.message } : {}),
294
+ ...(result.status === "cancelled" ? { message: result.message } : {}),
295
+ };
296
+ if (!options.store || !options.runId)
297
+ return base;
298
+ const promptArtifact = await writeAgentArtifact(options, turn, "prompt.md", prompt, "text/markdown");
299
+ const responseArtifact = await writeAgentArtifact(options, turn, "response.md", result.responseText, "text/markdown");
300
+ const telemetry = telemetryWithArtifactRefs(result.telemetry, promptArtifact, responseArtifact);
301
+ return {
302
+ ...base,
303
+ promptArtifact,
304
+ responseArtifact,
305
+ ...(result.stderr ? { stderrArtifact: await writeAgentArtifact(options, turn, "stderr.log", result.stderr, "text/plain") } : {}),
306
+ ...(captureRawDebug && result.rawDebug ? { rawAcpDebugArtifact: await writeAgentArtifact(options, turn, "raw-acp.jsonl", result.rawDebug.stdout, "application/x-ndjson") } : {}),
307
+ telemetryArtifact: await writeAgentArtifact(options, turn, "telemetry.json", `${JSON.stringify({
308
+ status: result.status,
309
+ nodeId: node.id,
310
+ turn,
311
+ telemetry,
312
+ ...(result.status === "failed" ? { failureKind: result.failureKind, message: result.message } : {}),
313
+ ...(result.status === "cancelled" ? { message: result.message } : {}),
314
+ }, null, 2)}\n`, "application/json"),
315
+ };
316
+ }
317
+ function telemetryWithArtifactRefs(telemetry, promptArtifact, responseArtifact) {
318
+ return {
319
+ ...telemetry,
320
+ ...(telemetry.input ? { input: { ...telemetry.input, artifactRef: promptArtifact.relativePath } } : {}),
321
+ ...(telemetry.output ? { output: { ...telemetry.output, artifactRef: responseArtifact.relativePath } } : {}),
322
+ };
323
+ }
324
+ function telemetrySummary(telemetry) {
325
+ return pruneUndefined({
326
+ eventCount: telemetry.eventCount,
327
+ stopReason: telemetry.stopReason,
328
+ context: telemetry.context,
329
+ tokenUsage: telemetry.tokenUsage,
330
+ tools: { totalToolCallCount: telemetry.tools.totalToolCallCount },
331
+ cwd: telemetry.cwd,
332
+ acpxRecordId: telemetry.acpxRecordId,
333
+ });
334
+ }
335
+ function createAgentProgressReporter(node, options, turn) {
336
+ if (!options.store || !options.runId || !options.nodeKey)
337
+ return undefined;
338
+ let lastFlushAt;
339
+ let lastSignature = "";
340
+ return progress => {
341
+ const snapshot = progressSnapshot(node, options, turn, progress);
342
+ const signature = JSON.stringify([snapshot.context, snapshot.tokenUsage, snapshot.tools]);
343
+ const now = Date.now();
344
+ if (lastFlushAt !== undefined && signature === lastSignature && now - lastFlushAt < PROGRESS_FLUSH_INTERVAL_MS)
345
+ return;
346
+ lastFlushAt = now;
347
+ lastSignature = signature;
348
+ options.store?.writeNodeProgress(snapshot);
349
+ };
350
+ }
351
+ function writeAgentTerminalProgress(node, options, turn, result, status, message) {
352
+ if (!options.store || !options.runId || !options.nodeKey)
353
+ return;
354
+ options.store.writeNodeProgress(progressSnapshot(node, options, turn, {
355
+ responseText: result.responseText,
356
+ telemetry: result.telemetry,
357
+ updatedAt: new Date().toISOString(),
358
+ }, status, message ?? `turn ${turn} ${status}`));
359
+ }
360
+ function progressSnapshot(node, options, turn, progress, status = "running", message = `turn ${turn}`) {
361
+ const output = outputTail(progress.responseText);
362
+ return pruneUndefined({
363
+ runId: options.runId,
364
+ nodeKey: options.nodeKey ?? node.id,
365
+ nodeId: node.id,
366
+ attemptId: options.attemptId,
367
+ attemptNo: options.attemptNo ?? 1,
368
+ kind: "agent",
369
+ status,
370
+ message,
371
+ output,
372
+ context: progress.telemetry.context,
373
+ tokenUsage: progress.telemetry.tokenUsage,
374
+ tools: progressTools(progress.telemetry.tools, turn),
375
+ });
376
+ }
377
+ function outputTail(value) {
378
+ if (value.length === 0)
379
+ return undefined;
380
+ const totalBytes = Buffer.byteLength(value, "utf8");
381
+ if (totalBytes <= PROGRESS_OUTPUT_TAIL_BYTES)
382
+ return { tail: value, totalBytes, truncated: false };
383
+ const chunks = [];
384
+ let bytes = 0;
385
+ for (let index = value.length; index > 0;) {
386
+ let start = index - 1;
387
+ const code = value.charCodeAt(start);
388
+ if (code >= 0xdc00 && code <= 0xdfff && start > 0)
389
+ start -= 1;
390
+ const char = value.slice(start, index);
391
+ const nextBytes = Buffer.byteLength(char, "utf8");
392
+ if (bytes + nextBytes > PROGRESS_OUTPUT_TAIL_BYTES)
393
+ break;
394
+ chunks.push(char);
395
+ bytes += nextBytes;
396
+ index = start;
397
+ }
398
+ return { tail: chunks.reverse().join(""), totalBytes, truncated: true };
399
+ }
400
+ function progressTools(tools, turn) {
401
+ return {
402
+ turn,
403
+ totalToolCallCount: tools.totalToolCallCount,
404
+ lastCalls: tools.calls.slice(-PROGRESS_TOOL_LIMIT).map(progressToolCall),
405
+ };
406
+ }
407
+ function progressToolCall(call) {
408
+ return pruneUndefined({
409
+ toolCallId: call.toolCallId,
410
+ title: call.title,
411
+ kind: call.kind,
412
+ toolName: call.toolName,
413
+ status: call.status,
414
+ inputPreview: call.input?.preview,
415
+ startedAt: call.startedAt,
416
+ updatedAt: call.updatedAt,
417
+ completedAt: call.completedAt,
418
+ });
419
+ }
420
+ async function writeAgentArtifact(options, turn, name, content, mediaType) {
421
+ if (!options.store || !options.runId)
422
+ throw new Error("Agent artifact storage requires runtime store and run id.");
423
+ const runDir = options.store.getRunDir(options.runId);
424
+ if (!runDir)
425
+ throw new Error(`Run '${options.runId}' has no run directory.`);
426
+ const nodeKey = options.nodeKey ?? "agent";
427
+ const attempt = options.attemptNo ?? 1;
428
+ const id = `artifact_${randomUUID()}`;
429
+ const relativePath = join("artifacts", nodeKey, `attempt-${attempt}`, "agent", `turn-${String(turn).padStart(3, "0")}.${name}`);
430
+ const bytes = Buffer.from(content, "utf8");
431
+ await mkdir(join(options.cwd, runDir, "artifacts", nodeKey, `attempt-${attempt}`, "agent"), { recursive: true });
432
+ await writeFile(join(options.cwd, runDir, relativePath), bytes);
433
+ options.store.registerArtifact({
434
+ id,
435
+ runId: options.runId,
436
+ nodeKey,
437
+ attempt,
438
+ mediaType,
439
+ digest: `sha256:${createHash("sha256").update(bytes).digest("hex")}`,
440
+ size: bytes.byteLength,
441
+ relativePath,
442
+ });
443
+ return { artifactId: id, relativePath, mediaType };
444
+ }
445
+ async function writeAgentRawParsedOutputArtifact(node, options, turn, rawParsedOutput) {
446
+ if (!options.store || !options.runId)
447
+ return undefined;
448
+ return writeAgentArtifact(options, turn, "raw-parsed-output.json", `${JSON.stringify({
449
+ nodeId: node.id,
450
+ turn,
451
+ rawParsedOutput,
452
+ }, null, 2)}\n`, "application/json");
453
+ }
454
+ async function writeAgentAttemptMetadata(node, options, sessionName, explicitSessionKey, status, turns, message) {
455
+ if (!options.store || !options.runId)
456
+ return;
457
+ options.store.writeExecutionMetadata({
458
+ runId: options.runId,
459
+ ...(options.attemptId ? { attemptId: options.attemptId } : {}),
460
+ kind: "agent_attempt",
461
+ metadata: pruneUndefined({
462
+ nodeId: node.id,
463
+ nodeKey: options.nodeKey ?? node.id,
464
+ attemptNo: options.attemptNo ?? 1,
465
+ status,
466
+ ...(sessionName ? { sessionName } : {}),
467
+ ...(explicitSessionKey ? { sessionKey: explicitSessionKey } : {}),
468
+ turnCount: turns.length,
469
+ turns: turns.map(turn => pruneUndefined(turn)),
470
+ ...(message ? { message } : {}),
471
+ }),
472
+ });
473
+ }
474
+ function pruneUndefined(value) {
475
+ if (Array.isArray(value))
476
+ return value.map(pruneUndefined);
477
+ if (value && typeof value === "object") {
478
+ return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== undefined).map(([key, item]) => [key, pruneUndefined(item)]));
479
+ }
480
+ return value;
481
+ }
482
+ function delay(ms, signal, deadline) {
483
+ if (ms <= 0)
484
+ return Promise.resolve();
485
+ const remaining = remainingTimeout(deadline, "response repair");
486
+ const delayMs = remaining === undefined ? ms : Math.min(ms, remaining);
487
+ return new Promise((resolve, reject) => {
488
+ if (signal?.aborted) {
489
+ reject(new AgentNodeCancelledError("Agent response repair was aborted."));
490
+ return;
491
+ }
492
+ const timeout = setTimeout(() => {
493
+ if (remaining !== undefined && remaining <= ms)
494
+ reject(new AgentNodeTimeoutError("Agent response repair timed out."));
495
+ else
496
+ resolve();
497
+ }, delayMs);
498
+ signal?.addEventListener("abort", () => {
499
+ clearTimeout(timeout);
500
+ reject(new AgentNodeCancelledError("Agent response repair was aborted."));
501
+ }, { once: true });
502
+ });
503
+ }
504
+ function remainingTimeout(deadline, nodeId) {
505
+ if (deadline === undefined)
506
+ return undefined;
507
+ const remaining = deadline - Date.now();
508
+ if (remaining <= 0)
509
+ throw new AgentNodeTimeoutError(`Agent node '${nodeId}' timed out.`);
510
+ return remaining;
511
+ }
512
+ //# sourceMappingURL=agent-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-node.js","sourceRoot":"","sources":["../../src/execution/agent-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function parseDurationMs(value: string): number;
2
+ //# sourceMappingURL=duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../src/execution/duration.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASrD"}
@@ -0,0 +1,15 @@
1
+ export function parseDurationMs(value) {
2
+ const match = /^(\d+)(ms|s|m|h)?$/.exec(value);
3
+ if (!match)
4
+ throw new Error(`Invalid duration '${value}'.`);
5
+ const amount = Number(match[1]);
6
+ const unit = match[2] ?? "ms";
7
+ if (unit === "ms")
8
+ return amount;
9
+ if (unit === "s")
10
+ return amount * 1000;
11
+ if (unit === "m")
12
+ return amount * 60_000;
13
+ return amount * 3_600_000;
14
+ }
15
+ //# sourceMappingURL=duration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../src/execution/duration.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC9B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACjC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,MAAM,GAAG,IAAI,CAAC;IACvC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,MAAM,GAAG,MAAM,CAAC;IACzC,OAAO,MAAM,GAAG,SAAS,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ScopeIR, SignalNodeIR } from "@acpus/core/ir";
2
+ export declare function findSignalNode(scope: ScopeIR, nodeId: string): SignalNodeIR | undefined;
3
+ //# sourceMappingURL=ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/execution/ir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAGvF"}
@@ -0,0 +1,46 @@
1
+ export function findSignalNode(scope, nodeId) {
2
+ const node = findNode(scope, nodeId);
3
+ return node?.kind === "signal" ? node : undefined;
4
+ }
5
+ function findNode(scope, nodeId) {
6
+ for (const node of scope.nodes) {
7
+ if (node.id === nodeId)
8
+ return node;
9
+ if (node.kind === "if") {
10
+ const found = findNode(node.then, nodeId) ?? (node.else ? findNode(node.else, nodeId) : undefined);
11
+ if (found)
12
+ return found;
13
+ }
14
+ else if (node.kind === "switch") {
15
+ for (const c of node.cases) {
16
+ const found = findNode(c.then, nodeId);
17
+ if (found)
18
+ return found;
19
+ }
20
+ if (node.default) {
21
+ const found = findNode(node.default, nodeId);
22
+ if (found)
23
+ return found;
24
+ }
25
+ }
26
+ else if (node.kind === "parallel") {
27
+ for (const branch of Object.values(node.branches)) {
28
+ const found = findNode(branch.scope, nodeId);
29
+ if (found)
30
+ return found;
31
+ }
32
+ }
33
+ else if (node.kind === "fanout") {
34
+ const found = findNode(node.do, nodeId);
35
+ if (found)
36
+ return found;
37
+ }
38
+ else if (node.kind === "loop") {
39
+ const found = findNode(node.do, nodeId);
40
+ if (found)
41
+ return found;
42
+ }
43
+ }
44
+ return undefined;
45
+ }
46
+ //# sourceMappingURL=ir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/execution/ir.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,MAAc;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,MAAc;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnG,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvC,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;YAC1B,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACpC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}