@namzu/cli 26.3.0 → 27.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 (321) hide show
  1. package/CHANGELOG.md +214 -0
  2. package/README.md +49 -34
  3. package/dist/bin.js +7 -0
  4. package/dist/bin.js.map +1 -1
  5. package/dist/checkpoints/store.d.ts +17 -4
  6. package/dist/checkpoints/store.d.ts.map +1 -1
  7. package/dist/checkpoints/store.js +20 -5
  8. package/dist/checkpoints/store.js.map +1 -1
  9. package/dist/cli.js +2 -2
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/acp.d.ts +23 -1
  12. package/dist/commands/acp.d.ts.map +1 -1
  13. package/dist/commands/acp.js +41 -2
  14. package/dist/commands/acp.js.map +1 -1
  15. package/dist/commands/drain.d.ts +69 -2
  16. package/dist/commands/drain.d.ts.map +1 -1
  17. package/dist/commands/drain.js +214 -134
  18. package/dist/commands/drain.js.map +1 -1
  19. package/dist/commands/eval.js +1 -1
  20. package/dist/commands/eval.js.map +1 -1
  21. package/dist/commands/provider-wait.d.ts +5 -5
  22. package/dist/commands/provider-wait.d.ts.map +1 -1
  23. package/dist/commands/provider-wait.js +2 -2
  24. package/dist/commands/resident.d.ts.map +1 -1
  25. package/dist/commands/resident.js +2 -1
  26. package/dist/commands/resident.js.map +1 -1
  27. package/dist/commands/run-flags.d.ts +7 -7
  28. package/dist/commands/run-flags.js +4 -4
  29. package/dist/commands/run-stream.d.ts +16 -12
  30. package/dist/commands/run-stream.d.ts.map +1 -1
  31. package/dist/commands/run-stream.js +142 -98
  32. package/dist/commands/run-stream.js.map +1 -1
  33. package/dist/commands/run.d.ts +6 -4
  34. package/dist/commands/run.d.ts.map +1 -1
  35. package/dist/commands/run.js +129 -45
  36. package/dist/commands/run.js.map +1 -1
  37. package/dist/commands/serve.js +2 -2
  38. package/dist/commands/serve.js.map +1 -1
  39. package/dist/commands/state.js +8 -8
  40. package/dist/commands/state.js.map +1 -1
  41. package/dist/config/load.d.ts +1 -1
  42. package/dist/config/load.d.ts.map +1 -1
  43. package/dist/config/load.js +17 -5
  44. package/dist/config/load.js.map +1 -1
  45. package/dist/config/run-limits.d.ts +20 -8
  46. package/dist/config/run-limits.d.ts.map +1 -1
  47. package/dist/config/run-limits.js +28 -46
  48. package/dist/config/run-limits.js.map +1 -1
  49. package/dist/config/schema.d.ts +44 -19
  50. package/dist/config/schema.d.ts.map +1 -1
  51. package/dist/config/schema.js.map +1 -1
  52. package/dist/config/tool-result-screens.js +1 -1
  53. package/dist/context/directories.d.ts +37 -0
  54. package/dist/context/directories.d.ts.map +1 -0
  55. package/dist/context/directories.js +69 -0
  56. package/dist/context/directories.js.map +1 -0
  57. package/dist/context/environment.d.ts +55 -0
  58. package/dist/context/environment.d.ts.map +1 -1
  59. package/dist/context/environment.js +96 -0
  60. package/dist/context/environment.js.map +1 -1
  61. package/dist/context/project-tracker.d.ts +3 -3
  62. package/dist/context/project-tracker.d.ts.map +1 -1
  63. package/dist/context/project-tracker.js +3 -3
  64. package/dist/context/project-tracker.js.map +1 -1
  65. package/dist/context/project.d.ts +1 -1
  66. package/dist/context/project.js +1 -1
  67. package/dist/context/sandbox.d.ts +22 -3
  68. package/dist/context/sandbox.d.ts.map +1 -1
  69. package/dist/context/sandbox.js +42 -4
  70. package/dist/context/sandbox.js.map +1 -1
  71. package/dist/doctor/checks/chain.d.ts +1 -1
  72. package/dist/doctor/checks/chain.js +5 -5
  73. package/dist/doctor/checks/chain.js.map +1 -1
  74. package/dist/doctor/checks/invariants.d.ts +2 -2
  75. package/dist/doctor/checks/invariants.js +5 -5
  76. package/dist/doctor/checks/invariants.js.map +1 -1
  77. package/dist/doctor/checks/logging.js +1 -1
  78. package/dist/doctor/checks/logging.js.map +1 -1
  79. package/dist/doctor/checks/sandbox.js +1 -1
  80. package/dist/doctor/checks/sandbox.js.map +1 -1
  81. package/dist/doctor/checks/session-export.d.ts +1 -1
  82. package/dist/doctor/checks/session-export.js +2 -2
  83. package/dist/doctor/checks/session-export.js.map +1 -1
  84. package/dist/doctor/checks/telemetry.d.ts +1 -1
  85. package/dist/doctor/checks/telemetry.js +1 -1
  86. package/dist/doctor/registry.js +2 -2
  87. package/dist/doctor/registry.js.map +1 -1
  88. package/dist/exit-codes.d.ts +2 -2
  89. package/dist/exit-codes.js +2 -2
  90. package/dist/integrations/mcp/servers.d.ts +1 -1
  91. package/dist/integrations/providers/chain-capabilities.d.ts +6 -6
  92. package/dist/integrations/providers/chain-capabilities.js +8 -8
  93. package/dist/integrations/providers/chain-capabilities.js.map +1 -1
  94. package/dist/integrations/providers/register.d.ts +1 -1
  95. package/dist/integrations/providers/register.js +1 -1
  96. package/dist/integrations/providers/registry.d.ts +1 -1
  97. package/dist/integrations/resident/inspection.d.ts +4 -1
  98. package/dist/integrations/resident/inspection.d.ts.map +1 -1
  99. package/dist/integrations/resident/inspection.js +53 -34
  100. package/dist/integrations/resident/inspection.js.map +1 -1
  101. package/dist/integrations/resident/learning-storage.d.ts +7 -2
  102. package/dist/integrations/resident/learning-storage.d.ts.map +1 -1
  103. package/dist/integrations/resident/learning-storage.js +12 -8
  104. package/dist/integrations/resident/learning-storage.js.map +1 -1
  105. package/dist/integrations/resident/runner-store.d.ts +1 -1
  106. package/dist/integrations/resident/runner-store.d.ts.map +1 -1
  107. package/dist/integrations/resident/runner-store.js +5 -2
  108. package/dist/integrations/resident/runner-store.js.map +1 -1
  109. package/dist/integrations/resident/runner-worker.js +1 -0
  110. package/dist/integrations/resident/runner-worker.js.map +1 -1
  111. package/dist/integrations/resident/session-log-reads.d.ts +37 -0
  112. package/dist/integrations/resident/session-log-reads.d.ts.map +1 -0
  113. package/dist/integrations/resident/session-log-reads.js +125 -0
  114. package/dist/integrations/resident/session-log-reads.js.map +1 -0
  115. package/dist/integrations/resident/session-step.d.ts +2 -0
  116. package/dist/integrations/resident/session-step.d.ts.map +1 -1
  117. package/dist/integrations/resident/session-step.js +15 -13
  118. package/dist/integrations/resident/session-step.js.map +1 -1
  119. package/dist/integrations/resident/storage.d.ts +23 -1
  120. package/dist/integrations/resident/storage.d.ts.map +1 -1
  121. package/dist/integrations/resident/storage.js +60 -17
  122. package/dist/integrations/resident/storage.js.map +1 -1
  123. package/dist/integrations/resident/tool-evidence.d.ts +4 -2
  124. package/dist/integrations/resident/tool-evidence.d.ts.map +1 -1
  125. package/dist/integrations/resident/tool-evidence.js +36 -30
  126. package/dist/integrations/resident/tool-evidence.js.map +1 -1
  127. package/dist/integrations/resident/verification.d.ts +2 -2
  128. package/dist/integrations/resident/verification.d.ts.map +1 -1
  129. package/dist/integrations/resident/verification.js +4 -4
  130. package/dist/integrations/resident/verification.js.map +1 -1
  131. package/dist/integrations/sessions/checkpoint-view.d.ts +13 -0
  132. package/dist/integrations/sessions/checkpoint-view.d.ts.map +1 -0
  133. package/dist/integrations/sessions/checkpoint-view.js +48 -0
  134. package/dist/integrations/sessions/checkpoint-view.js.map +1 -0
  135. package/dist/integrations/sessions/context-inventory.js +1 -1
  136. package/dist/integrations/sessions/context-inventory.js.map +1 -1
  137. package/dist/integrations/sessions/conversation-search.d.ts +16 -20
  138. package/dist/integrations/sessions/conversation-search.d.ts.map +1 -1
  139. package/dist/integrations/sessions/conversation-search.js +305 -731
  140. package/dist/integrations/sessions/conversation-search.js.map +1 -1
  141. package/dist/integrations/sessions/evidence-page-validation.d.ts +4 -4
  142. package/dist/integrations/sessions/evidence-page-validation.d.ts.map +1 -1
  143. package/dist/integrations/sessions/evidence-page-validation.js +1 -1
  144. package/dist/integrations/sessions/evidence-page-validation.js.map +1 -1
  145. package/dist/integrations/sessions/evidence-recall.d.ts +40 -2
  146. package/dist/integrations/sessions/evidence-recall.d.ts.map +1 -1
  147. package/dist/integrations/sessions/evidence-recall.js +41 -97
  148. package/dist/integrations/sessions/evidence-recall.js.map +1 -1
  149. package/dist/integrations/sessions/store.d.ts +153 -85
  150. package/dist/integrations/sessions/store.d.ts.map +1 -1
  151. package/dist/integrations/sessions/store.js +414 -484
  152. package/dist/integrations/sessions/store.js.map +1 -1
  153. package/dist/integrations/sessions/task-context.d.ts +15 -2
  154. package/dist/integrations/sessions/task-context.d.ts.map +1 -1
  155. package/dist/integrations/sessions/task-context.js +34 -11
  156. package/dist/integrations/sessions/task-context.js.map +1 -1
  157. package/dist/integrations/sessions/transcript-export.d.ts +13 -6
  158. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
  159. package/dist/integrations/sessions/transcript-export.js +148 -263
  160. package/dist/integrations/sessions/transcript-export.js.map +1 -1
  161. package/dist/integrations/state/home.d.ts +4 -16
  162. package/dist/integrations/state/home.d.ts.map +1 -1
  163. package/dist/integrations/state/home.js +6 -42
  164. package/dist/integrations/state/home.js.map +1 -1
  165. package/dist/integrations/state/project.d.ts +6 -7
  166. package/dist/integrations/state/project.d.ts.map +1 -1
  167. package/dist/integrations/state/project.js +7 -9
  168. package/dist/integrations/state/project.js.map +1 -1
  169. package/dist/integrations/state/report.d.ts +27 -41
  170. package/dist/integrations/state/report.d.ts.map +1 -1
  171. package/dist/integrations/state/report.js +172 -464
  172. package/dist/integrations/state/report.js.map +1 -1
  173. package/dist/integrations/state/retention.d.ts +18 -0
  174. package/dist/integrations/state/retention.d.ts.map +1 -0
  175. package/dist/integrations/state/retention.js +18 -0
  176. package/dist/integrations/state/retention.js.map +1 -0
  177. package/dist/integrations/subagents/activity.d.ts +36 -31
  178. package/dist/integrations/subagents/activity.d.ts.map +1 -1
  179. package/dist/integrations/subagents/activity.js +27 -23
  180. package/dist/integrations/subagents/activity.js.map +1 -1
  181. package/dist/integrations/subagents/batches.d.ts +91 -0
  182. package/dist/integrations/subagents/batches.d.ts.map +1 -0
  183. package/dist/integrations/subagents/batches.js +172 -0
  184. package/dist/integrations/subagents/batches.js.map +1 -0
  185. package/dist/integrations/subagents/parent.d.ts +26 -11
  186. package/dist/integrations/subagents/parent.d.ts.map +1 -1
  187. package/dist/integrations/subagents/parent.js +13 -28
  188. package/dist/integrations/subagents/parent.js.map +1 -1
  189. package/dist/integrations/subagents/policy.d.ts +2 -2
  190. package/dist/integrations/subagents/policy.d.ts.map +1 -1
  191. package/dist/integrations/subagents/policy.js +2 -2
  192. package/dist/integrations/subagents/policy.js.map +1 -1
  193. package/dist/integrations/subagents/replay.d.ts +91 -26
  194. package/dist/integrations/subagents/replay.d.ts.map +1 -1
  195. package/dist/integrations/subagents/replay.js +216 -114
  196. package/dist/integrations/subagents/replay.js.map +1 -1
  197. package/dist/integrations/subagents/runtime.d.ts +50 -26
  198. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  199. package/dist/integrations/subagents/runtime.js +132 -126
  200. package/dist/integrations/subagents/runtime.js.map +1 -1
  201. package/dist/integrations/subagents/saved-agents.d.ts +57 -0
  202. package/dist/integrations/subagents/saved-agents.d.ts.map +1 -0
  203. package/dist/integrations/subagents/saved-agents.js +102 -0
  204. package/dist/integrations/subagents/saved-agents.js.map +1 -0
  205. package/dist/integrations/subagents/slash.d.ts +55 -0
  206. package/dist/integrations/subagents/slash.d.ts.map +1 -0
  207. package/dist/integrations/subagents/slash.js +45 -0
  208. package/dist/integrations/subagents/slash.js.map +1 -0
  209. package/dist/integrations/telemetry/session-export.d.ts +6 -6
  210. package/dist/integrations/telemetry/session-export.d.ts.map +1 -1
  211. package/dist/integrations/telemetry/session-export.js +2 -2
  212. package/dist/memory/presentation.d.ts +11 -0
  213. package/dist/memory/presentation.d.ts.map +1 -1
  214. package/dist/memory/presentation.js +25 -0
  215. package/dist/memory/presentation.js.map +1 -1
  216. package/dist/memory/store.d.ts +13 -7
  217. package/dist/memory/store.d.ts.map +1 -1
  218. package/dist/memory/store.js +37 -11
  219. package/dist/memory/store.js.map +1 -1
  220. package/dist/memory/typed.d.ts +116 -0
  221. package/dist/memory/typed.d.ts.map +1 -0
  222. package/dist/memory/typed.js +336 -0
  223. package/dist/memory/typed.js.map +1 -0
  224. package/dist/permissions/checks.d.ts +1 -1
  225. package/dist/permissions/checks.js +1 -1
  226. package/dist/permissions/headless-trust.d.ts +2 -2
  227. package/dist/permissions/headless-trust.d.ts.map +1 -1
  228. package/dist/permissions/headless-trust.js +3 -3
  229. package/dist/permissions/headless-trust.js.map +1 -1
  230. package/dist/permissions/mode.d.ts +4 -4
  231. package/dist/permissions/mode.js +1 -1
  232. package/dist/permissions/rules.d.ts +1 -1
  233. package/dist/permissions/rules.js +1 -1
  234. package/dist/termination.d.ts +75 -0
  235. package/dist/termination.d.ts.map +1 -0
  236. package/dist/termination.js +143 -0
  237. package/dist/termination.js.map +1 -0
  238. package/dist/tui/AgentExplorer.d.ts +2 -2
  239. package/dist/tui/AgentExplorer.js +4 -4
  240. package/dist/tui/AgentExplorer.js.map +1 -1
  241. package/dist/tui/App.d.ts +9 -1
  242. package/dist/tui/App.d.ts.map +1 -1
  243. package/dist/tui/App.js +452 -303
  244. package/dist/tui/App.js.map +1 -1
  245. package/dist/tui/LiveActivity.d.ts +1 -1
  246. package/dist/tui/LiveActivity.d.ts.map +1 -1
  247. package/dist/tui/PermissionOverlay.d.ts +8 -0
  248. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  249. package/dist/tui/PermissionOverlay.js +25 -2
  250. package/dist/tui/PermissionOverlay.js.map +1 -1
  251. package/dist/tui/Picker.js +1 -1
  252. package/dist/tui/agent.d.ts +208 -132
  253. package/dist/tui/agent.d.ts.map +1 -1
  254. package/dist/tui/agent.js +523 -313
  255. package/dist/tui/agent.js.map +1 -1
  256. package/dist/tui/conversation-evidence-view.js +3 -3
  257. package/dist/tui/conversation-evidence-view.js.map +1 -1
  258. package/dist/tui/conversation-history.d.ts +4 -21
  259. package/dist/tui/conversation-history.d.ts.map +1 -1
  260. package/dist/tui/conversation-history.js +4 -28
  261. package/dist/tui/conversation-history.js.map +1 -1
  262. package/dist/tui/index.d.ts.map +1 -1
  263. package/dist/tui/index.js +27 -1
  264. package/dist/tui/index.js.map +1 -1
  265. package/dist/tui/log-pane.js +1 -1
  266. package/dist/tui/markdownParser.d.ts +1 -1
  267. package/dist/tui/markdownParser.js +1 -1
  268. package/dist/tui/permission-review.d.ts +16 -0
  269. package/dist/tui/permission-review.d.ts.map +1 -1
  270. package/dist/tui/permission-review.js +25 -2
  271. package/dist/tui/permission-review.js.map +1 -1
  272. package/dist/tui/slashCommands.d.ts +29 -40
  273. package/dist/tui/slashCommands.d.ts.map +1 -1
  274. package/dist/tui/slashCommands.js +70 -61
  275. package/dist/tui/slashCommands.js.map +1 -1
  276. package/dist/tui/{run-interruption.d.ts → turn-interruption.d.ts} +4 -4
  277. package/dist/tui/turn-interruption.d.ts.map +1 -0
  278. package/dist/tui/{run-interruption.js → turn-interruption.js} +20 -20
  279. package/dist/tui/turn-interruption.js.map +1 -0
  280. package/dist/tui/turn-limits-settings.d.ts +39 -0
  281. package/dist/tui/turn-limits-settings.d.ts.map +1 -0
  282. package/dist/tui/{run-limits-settings.js → turn-limits-settings.js} +18 -18
  283. package/dist/tui/turn-limits-settings.js.map +1 -0
  284. package/dist/tui/types.d.ts +3 -3
  285. package/dist/tui/types.d.ts.map +1 -1
  286. package/dist/user-commands/store.d.ts +1 -1
  287. package/dist/user-commands/store.js +1 -1
  288. package/package.json +7 -7
  289. package/dist/integrations/sessions/compaction-evidence.d.ts +0 -5
  290. package/dist/integrations/sessions/compaction-evidence.d.ts.map +0 -1
  291. package/dist/integrations/sessions/compaction-evidence.js +0 -59
  292. package/dist/integrations/sessions/compaction-evidence.js.map +0 -1
  293. package/dist/integrations/sessions/database.d.ts +0 -5
  294. package/dist/integrations/sessions/database.d.ts.map +0 -1
  295. package/dist/integrations/sessions/database.js +0 -34
  296. package/dist/integrations/sessions/database.js.map +0 -1
  297. package/dist/integrations/sessions/paths.d.ts +0 -7
  298. package/dist/integrations/sessions/paths.d.ts.map +0 -1
  299. package/dist/integrations/sessions/paths.js +0 -14
  300. package/dist/integrations/sessions/paths.js.map +0 -1
  301. package/dist/integrations/sessions/run-discovery.d.ts +0 -24
  302. package/dist/integrations/sessions/run-discovery.d.ts.map +0 -1
  303. package/dist/integrations/sessions/run-discovery.js +0 -142
  304. package/dist/integrations/sessions/run-discovery.js.map +0 -1
  305. package/dist/integrations/sessions/turn-evidence.d.ts +0 -129
  306. package/dist/integrations/sessions/turn-evidence.d.ts.map +0 -1
  307. package/dist/integrations/sessions/turn-evidence.js +0 -517
  308. package/dist/integrations/sessions/turn-evidence.js.map +0 -1
  309. package/dist/integrations/subagents/history.d.ts +0 -26
  310. package/dist/integrations/subagents/history.d.ts.map +0 -1
  311. package/dist/integrations/subagents/history.js +0 -76
  312. package/dist/integrations/subagents/history.js.map +0 -1
  313. package/dist/integrations/subagents/runs.d.ts +0 -72
  314. package/dist/integrations/subagents/runs.d.ts.map +0 -1
  315. package/dist/integrations/subagents/runs.js +0 -155
  316. package/dist/integrations/subagents/runs.js.map +0 -1
  317. package/dist/tui/run-interruption.d.ts.map +0 -1
  318. package/dist/tui/run-interruption.js.map +0 -1
  319. package/dist/tui/run-limits-settings.d.ts +0 -39
  320. package/dist/tui/run-limits-settings.d.ts.map +0 -1
  321. package/dist/tui/run-limits-settings.js.map +0 -1
@@ -1,29 +1,36 @@
1
- import { sessionStore } from '../integrations/sessions/database.js';
2
1
  /**
3
- * `namzu drain` — one pass over a queue of durable runs.
2
+ * `namzu drain` — one pass over a session's parked turn.
4
3
  *
5
- * namzu could park a run in one process and continue it in another, and no
6
- * shipped surface ever did: `claimRun`, `listDurableRuns` and `resumeRun`
7
- * all existed, and the only caller of any of them was a test. This is the
8
- * caller. It lists the runs nobody holds under a scope, takes each one,
9
- * continues it under that claim, and gives it back.
4
+ * namzu can park a turn in one process and continue it in another: the turn
5
+ * stops with `turn_paused`, a decision it waits on is a `decision_requested`
6
+ * record, and whoever works on a session holds its `lease.json`. This is the
7
+ * caller that picks such a turn up. It finds the session's active turn, takes
8
+ * the session's lease, continues the turn under that lease, and gives the
9
+ * lease back.
10
10
  *
11
11
  * **It is not a daemon, and `namzu serve` still says namzu has no daemon.**
12
12
  * That refusal is not weakened by this command, it is the reason for its
13
13
  * shape: one bounded pass, exit code says what happened, and whatever the
14
- * operator already uses to run things periodically runs it again. A run is
15
- * a process; a drain is a process that picks up processes somebody else's
16
- * machine dropped.
14
+ * operator already uses to run things periodically runs it again. A turn is
15
+ * work a process does; a drain is a process that picks up work somebody
16
+ * else's machine dropped.
17
17
  *
18
+ * A session has at most one active turn, so one pass continues at most one.
18
19
  */
19
- import { DiskCheckpointStore, InvalidIdError, asProjectId, asSessionId, asTenantId, drainRuns, } from '@namzu/sdk';
20
+ import { existsSync, lstatSync } from 'node:fs';
21
+ import { join, resolve } from 'node:path';
22
+ import { DiskSessionLog, InvalidIdError, SessionPaths, asProjectId, asSessionId, asTenantId, claimSession, openSessionIndex, releaseSession, } from '@namzu/sdk';
20
23
  import { resolveTrustedProjectContext } from '../config/trusted-project-context.js';
21
- import { EXIT_UNTRUSTED, EXIT_USAGE } from '../exit-codes.js';
22
- import { resolveNamzuHome } from '../integrations/state/home.js';
24
+ import { EXIT_FAIL, EXIT_UNTRUSTED, EXIT_USAGE } from '../exit-codes.js';
25
+ import { readSessionStart } from '../integrations/resident/session-log-reads.js';
23
26
  import { contextLogging, createStderrSink, installCliLogging } from '../logging.js';
24
27
  import { decideHeadlessTrust } from '../permissions/headless-trust.js';
25
28
  import { compilePermissions } from '../permissions/rules.js';
26
29
  import { applyProviderFlags, resolveWorkingDirectory } from './run-flags.js';
30
+ /** The drain flags name a scope the store does not hold: an argument error, exit 64. */
31
+ class DrainScopeError extends Error {
32
+ name = 'DrainScopeError';
33
+ }
27
34
  /** Lease length when the operator names none. Long enough for a real turn. */
28
35
  const DEFAULT_TTL_MS = 600_000;
29
36
  /**
@@ -94,25 +101,25 @@ export function parseDrainFlags(rawArgs) {
94
101
  }
95
102
  // Anything unrecognised is refused rather than ignored, positional
96
103
  // arguments included — this command takes none. It acts on other
97
- // people's runs; a typo'd `--tenant` that fell through would drain a
104
+ // people's turns; a typo'd `--tenant` that fell through would drain a
98
105
  // scope nobody asked for.
99
106
  out.unknown.push(a.split('=')[0]);
100
107
  }
101
108
  return out;
102
109
  }
103
- /** The scope refusal, or the scope. Contiguous prefix — see the store contract. */
110
+ /** The scope refusal, or the scope: the full tenant → project → session prefix. */
104
111
  export function resolveDrainScope(flags) {
105
112
  if (!flags.tenant) {
106
113
  return {
107
- error: '--tenant is required. A run listing with no tenant is a cross-tenant read with a friendly name, so there is no default to fall back to.',
114
+ error: '--tenant is required. A drain with no tenant is a cross-tenant read with a friendly name, so there is no default to fall back to.',
108
115
  };
109
116
  }
110
- // The disk store keys checkpoints by directory and needs the project and
111
- // session to attribute what it finds, so this command asks for the full
112
- // prefix rather than the contract's minimum.
117
+ // A parked turn belongs to one session, and the session to one project;
118
+ // the pass checks both against the session's own log before it claims
119
+ // anything, so it asks for the full prefix.
113
120
  if (!flags.project || !flags.session) {
114
121
  return {
115
- error: '--project and --session are both required for a disk store: its layout carries no attribution, so it cannot say which project and session the runs it finds belong to.',
122
+ error: '--project and --session are both required: a turn is drained within one session, and the pass checks that the session belongs to that project before it claims anything.',
116
123
  };
117
124
  }
118
125
  // Prefix-checked, and refused in THIS function's shape rather than by
@@ -120,7 +127,7 @@ export function resolveDrainScope(flags) {
120
127
  // sentence; an `InvalidIdError` escaping to the top level would be the one
121
128
  // that arrives as a stack trace. A typo'd `--tenant prj_x` previously
122
129
  // reached the store as a TenantId and listed nothing, which reads as "no
123
- // runs" rather than "wrong flag".
130
+ // turns" rather than "wrong flag".
124
131
  try {
125
132
  return {
126
133
  tenantId: asTenantId(flags.tenant),
@@ -141,9 +148,86 @@ export function resolveDrainScope(flags) {
141
148
  export function defaultHolder() {
142
149
  return `namzu-drain-${process.pid}-${Date.now().toString(36)}`;
143
150
  }
144
- function describe(entry) {
145
- const park = entry.park ? `${entry.park.state} ${entry.park.requestType}` : 'not parked';
146
- return `${entry.runId} · ${entry.checkpointCount} checkpoints · ${park}`;
151
+ function errorText(error) {
152
+ return error instanceof Error ? error.message : String(error);
153
+ }
154
+ /**
155
+ * One pass: find the session's active turn, report it if a human owes it an
156
+ * answer, otherwise take the session's lease, check the turn is still the
157
+ * active one under that lease, continue it, and give the lease back.
158
+ *
159
+ * A turn waiting on a decision is reported before any claim. The answer
160
+ * belongs to a person; a drainer that continued without it would discard
161
+ * the question the turn stopped to ask, and claiming the session to find
162
+ * that out would only block the person's own resolver.
163
+ */
164
+ export async function drainSessionPass(deps) {
165
+ const result = {
166
+ listed: 0,
167
+ resumed: [],
168
+ awaitingDecision: [],
169
+ noCheckpoint: [],
170
+ heldByOthers: [],
171
+ alreadyHandled: [],
172
+ failed: [],
173
+ unreleased: [],
174
+ };
175
+ const active = await deps.log.activeTurn();
176
+ if (!active)
177
+ return result;
178
+ result.listed = 1;
179
+ const { turnId } = active;
180
+ if (deps.pendingDecisionTurns.has(turnId)) {
181
+ result.awaitingDecision.push(turnId);
182
+ deps.info(`⏸ ${turnId} · waiting on a human decision`);
183
+ return result;
184
+ }
185
+ const lease = await deps.claim();
186
+ if (!lease) {
187
+ result.heldByOthers.push(turnId);
188
+ deps.info(`⋯ ${turnId} · another process holds the session`);
189
+ return result;
190
+ }
191
+ try {
192
+ deps.info(`⏵ ${turnId} · ${active.state} · fence ${lease.fence}`);
193
+ // Re-read under the lease: between the listing and the claim, the
194
+ // previous holder may have settled the turn, or a new one begun.
195
+ const current = await deps.log.activeTurn({ lease });
196
+ if (current?.turnId !== turnId) {
197
+ result.alreadyHandled.push(turnId);
198
+ deps.info(`↷ ${turnId} · settled before this pass took it`);
199
+ return result;
200
+ }
201
+ const outcome = await deps.resume(turnId, lease);
202
+ if (outcome.resumed) {
203
+ if (outcome.turn.status === 'failed' || outcome.turn.status === 'cancelled') {
204
+ throw new Error(`Resumed turn ended with status "${outcome.turn.status}".`);
205
+ }
206
+ result.resumed.push(turnId);
207
+ deps.info(`✔ ${turnId} · ${outcome.turn.status}`);
208
+ }
209
+ else if (outcome.reason === 'awaiting-decision') {
210
+ // The index had not yet seen the decision; the log had.
211
+ result.awaitingDecision.push(turnId);
212
+ deps.info(`⏸ ${turnId} · waiting on a human decision`);
213
+ }
214
+ else {
215
+ result.noCheckpoint.push(turnId);
216
+ deps.info(`∅ ${turnId} · no checkpoint to continue from`);
217
+ }
218
+ }
219
+ catch (error) {
220
+ result.failed.push({ turnId, error: errorText(error) });
221
+ }
222
+ finally {
223
+ try {
224
+ await deps.release(lease);
225
+ }
226
+ catch (error) {
227
+ result.unreleased.push({ turnId, error: errorText(error) });
228
+ }
229
+ }
230
+ return result;
147
231
  }
148
232
  function defaultPrefs(detected) {
149
233
  const first = detected[0];
@@ -155,35 +239,45 @@ function defaultPrefs(detected) {
155
239
  }
156
240
  : null;
157
241
  }
242
+ /** `--store` must already be a namzu home: a drain never creates state where it looks. */
243
+ function isNamzuHome(home) {
244
+ const projects = join(home, 'projects');
245
+ if (!existsSync(projects))
246
+ return false;
247
+ const entry = lstatSync(projects);
248
+ return entry.isDirectory() && !entry.isSymbolicLink();
249
+ }
158
250
  export const drainCommand = {
159
251
  name: 'drain',
160
- description: 'Continue runs another process left behind (one pass, then exit)',
252
+ description: 'Continue a turn another process left behind (one pass, then exit)',
161
253
  passThrough: true,
162
254
  help: [
163
255
  'Usage: namzu drain --store <dir> --tenant <id> --project <id> --session <id>',
164
256
  '',
165
- 'Take every run under that scope that no worker currently holds, continue',
166
- 'it from its last checkpoint, and release it. One pass, then exit — namzu',
167
- 'has no daemon, and this is a command your scheduler runs, not a service.',
257
+ "Take the session's parked or interrupted turn if no worker holds the",
258
+ 'session, continue it from its last checkpoint under the session lease, and',
259
+ 'release the lease. One pass, then exit — namzu has no daemon, and this is a',
260
+ 'command your scheduler runs, not a service.',
168
261
  '',
169
262
  'Options:',
170
- ' --store <dir> The runs/ directory a checkpoint store writes to',
263
+ ' --store <dir> The namzu home whose sessions to drain (NAMZU_HOME)',
171
264
  ' --tenant <id> Isolation boundary. Required; there is no default',
172
- ' --project <id> Required — the disk layout carries no attribution',
173
- ' --session <id> Required, same reason',
174
- ' --holder <id> Who is taking the runs. Must be unique PER PROCESS',
265
+ ' --project <id> Required — checked against the session log',
266
+ ' --session <id> Required: the session whose turn to continue',
267
+ ' --holder <id> Who is taking the session. Must be unique PER PROCESS',
175
268
  ' --ttl <ms> Lease length (default 600000)',
176
- ' --max-concurrent <n> Runs in flight at once (default 1)',
177
- ' --cwd <path> Directory the resumed runs work in',
269
+ ' --max-concurrent <n> Turns in flight at once (default 1). A session has',
270
+ ' one active turn, so a pass continues at most one',
271
+ ' --cwd <path> Directory the resumed turn works in',
178
272
  ' --provider <id> Provider to continue with',
179
273
  ' --model <id> Model to continue with',
180
274
  ' --trust Accept this folder for this pass',
181
275
  '',
182
- 'A run that is parked on a human decision is REPORTED, never resumed past.',
276
+ 'A turn that is parked on a human decision is REPORTED, never resumed past.',
183
277
  'The answer belongs to a person; a drainer that continued without it would',
184
- 'discard the question the run stopped to ask.',
278
+ 'discard the question the turn stopped to ask.',
185
279
  '',
186
- 'Exit codes: 0 when every run it took was continued, 1 when any run failed,',
280
+ 'Exit codes: 0 when every turn it took was continued, 1 when any turn failed,',
187
281
  '64 when an argument is wrong, 77 when the folder has not been trusted.',
188
282
  ].join('\n'),
189
283
  handler: async ({ ctx: bootstrapCtx, rawArgs }) => {
@@ -197,7 +291,7 @@ export const drainCommand = {
197
291
  }
198
292
  if (!flags.store) {
199
293
  ctx.formatter.error({
200
- message: '--store is required: name the runs/ directory the checkpoint store writes to. There is no default, because an empty queue and a directory nobody writes to would report the same thing.',
294
+ message: '--store is required: name the namzu home whose sessions to drain. There is no default, because an empty queue and a directory nobody writes to would report the same thing.',
201
295
  });
202
296
  return EXIT_USAGE;
203
297
  }
@@ -213,6 +307,13 @@ export const drainCommand = {
213
307
  });
214
308
  return EXIT_USAGE;
215
309
  }
310
+ if (flags.maxConcurrent !== null &&
311
+ (!Number.isSafeInteger(flags.maxConcurrent) || flags.maxConcurrent < 1)) {
312
+ ctx.formatter.error({
313
+ message: `--max-concurrent must be a whole number above zero, got ${flags.maxConcurrent}`,
314
+ });
315
+ return EXIT_USAGE;
316
+ }
216
317
  const resolved = resolveWorkingDirectory(flags.cwd);
217
318
  if ('error' in resolved) {
218
319
  ctx.formatter.error({ message: resolved.error });
@@ -253,54 +354,64 @@ export const drainCommand = {
253
354
  : `permissions.${diagnostic.tool}`;
254
355
  ctx.formatter.error({ message: `${where}: ${diagnostic.message}` });
255
356
  }
256
- let stateRoot;
257
- try {
258
- stateRoot = resolveNamzuHome();
259
- }
260
- catch (error) {
261
- ctx.formatter.error({
262
- message: `application state is unavailable: ${error instanceof Error ? error.message : String(error)}`,
263
- });
264
- return 1;
265
- }
266
- let conversationStore;
267
- let owningSession;
357
+ const home = resolve(flags.store);
358
+ let log;
359
+ let topicId;
360
+ let pendingDecisionTurns;
268
361
  try {
269
- conversationStore = sessionStore(stateRoot, true);
270
- owningSession = await conversationStore.getSession(scope.sessionId, scope.tenantId);
271
- if (!owningSession ||
272
- owningSession.id !== scope.sessionId ||
273
- owningSession.tenantId !== scope.tenantId ||
274
- owningSession.projectId !== scope.projectId) {
275
- throw new Error(`Session ${scope.sessionId} is not persisted under Project ${scope.projectId}`);
362
+ if (!isNamzuHome(home))
363
+ throw new DrainScopeError(`${home} holds no projects/ directory`);
364
+ // The index is derived from the logs; opening it brings it up to date.
365
+ const index = await openSessionIndex({ home });
366
+ try {
367
+ const indexed = await index.getSession(scope.sessionId);
368
+ if (!indexed || indexed.projectId !== scope.projectId) {
369
+ throw new DrainScopeError(`Session ${scope.sessionId} is not persisted under Project ${scope.projectId}`);
370
+ }
371
+ if (indexed.depth > 0) {
372
+ throw new DrainScopeError(`Session ${scope.sessionId} is a child session; drain its root session ${indexed.rootId}`);
373
+ }
374
+ const paths = new SessionPaths({ home, slug: indexed.slug });
375
+ const opened = await readSessionStart(home, paths.sessionLog({ sessionId: scope.sessionId }));
376
+ if (!opened ||
377
+ opened.sessionId !== scope.sessionId ||
378
+ opened.projectId !== scope.projectId ||
379
+ opened.tenantId !== scope.tenantId) {
380
+ throw new DrainScopeError(`Session ${scope.sessionId} was not opened under Tenant ${scope.tenantId} and Project ${scope.projectId}`);
381
+ }
382
+ if (!opened.topicId) {
383
+ throw new DrainScopeError(`Session ${scope.sessionId} records no topic to continue under`);
384
+ }
385
+ topicId = opened.topicId;
386
+ log = DiskSessionLog.at(paths, { sessionId: scope.sessionId });
387
+ pendingDecisionTurns = new Set((await index.listPendingDecisions({ sessionId: scope.sessionId })).map((decision) => decision.turnId));
388
+ }
389
+ finally {
390
+ index.close();
276
391
  }
277
392
  }
278
393
  catch (error) {
279
394
  ctx.formatter.error({
280
- message: `cannot resolve the drain session's topic: ${error instanceof Error ? error.message : String(error)}`,
395
+ message: `cannot resolve the drain session: ${errorText(error)}`,
281
396
  });
282
- return EXIT_USAGE;
397
+ // The flags named something that is not there (no namzu home, an
398
+ // unknown or child session, a scope mismatch): the caller's to fix.
399
+ // Anything else is state that could not be read, which is exit 1.
400
+ return error instanceof DrainScopeError ? EXIT_USAGE : EXIT_FAIL;
283
401
  }
284
402
  const session = await createAgentSession(prefs, probe.detected, {
285
403
  cwd,
286
404
  scope: {
287
- // The checkpoint queue is already exactly scoped by the required
288
- // flags below. Constructing the provider under a random CLI Project
289
- // and Session would create generated state for a scope the operator
290
- // never named, then resume the run under a different one.
405
+ // The session is exactly the one the required flags named.
406
+ // Constructing the provider under a random CLI Project and
407
+ // Session would create generated state for a scope the operator
408
+ // never named, then resume the turn under a different one.
291
409
  sessionId: scope.sessionId,
292
- topicId: owningSession.topicId,
293
- projectId: scope.projectId,
294
- tenantId: scope.tenantId,
295
- },
296
- stateRoot,
297
- conversationSessions: {
298
- store: conversationStore,
299
- root: stateRoot,
410
+ topicId,
300
411
  projectId: scope.projectId,
301
412
  tenantId: scope.tenantId,
302
- topicId: owningSession.topicId,
303
413
  },
414
+ stateRoot: home,
304
415
  rules: permissions.rules,
305
416
  permissionMode: 'auto',
306
417
  ...(ctx.config.limits ? { limits: ctx.config.limits } : {}),
@@ -323,87 +434,56 @@ export const drainCommand = {
323
434
  });
324
435
  return 1;
325
436
  }
326
- // `resolveDrainScope` refuses a partial prefix above, so all three are
327
- // present here; the store's attribution has no optional fields because
328
- // a listing that guessed one would file runs under a project nobody
329
- // named.
330
- const store = new DiskCheckpointStore({ baseDir: flags.store }, {
331
- tenantId: scope.tenantId,
332
- projectId: scope.projectId,
333
- sessionId: scope.sessionId,
334
- });
335
437
  const holder = flags.holder ?? defaultHolder();
336
- const awaiting = [];
337
- const empty = [];
338
438
  try {
339
- const result = await drainRuns({
340
- store,
341
- scope,
342
- holder,
343
- ttlMs,
344
- ...(flags.maxConcurrent !== null ? { maxConcurrent: flags.maxConcurrent } : {}),
345
- onRun: async (entry, claim) => {
346
- ctx.formatter.info(`⏵ ${describe(entry)} · fence ${claim.fence}`);
347
- const outcome = await session.resumeDurable({
348
- entry,
349
- checkpointStore: store,
350
- // The reason the claim is handed over at all: every durable
351
- // write this run makes carries it, so a drainer that stalled
352
- // past its lease cannot overwrite whoever took over.
353
- claimFence: claim.fence,
354
- });
355
- if (outcome.resumed) {
356
- if (outcome.run.status === 'failed' || outcome.run.status === 'cancelled') {
357
- throw new Error(`Resumed run ended with status "${outcome.run.status}".`);
358
- }
359
- ctx.formatter.info(`✔ ${entry.runId} · ${outcome.run.status}`);
360
- return;
361
- }
362
- // Reported, not resumed past. The two non-resumed outcomes mean
363
- // opposite things and an operator has to be able to tell them
364
- // apart: one is a question waiting on a person, the other is a
365
- // run with nothing to continue.
366
- if (outcome.reason === 'awaiting-decision') {
367
- awaiting.push(entry.runId);
368
- ctx.formatter.info(`⏸ ${entry.runId} · waiting on a human decision`);
369
- }
370
- else {
371
- empty.push(entry.runId);
372
- ctx.formatter.info(`∅ ${entry.runId} · no checkpoint to continue from`);
373
- }
374
- },
439
+ const result = await drainSessionPass({
440
+ log,
441
+ pendingDecisionTurns,
442
+ claim: () => claimSession(scope.sessionId, { holder, ttlMs, log }),
443
+ release: (lease) => releaseSession(scope.sessionId, lease, { log }),
444
+ resume: (turnId, lease) => session.resumeDurable({
445
+ entry: {
446
+ tenantId: scope.tenantId,
447
+ projectId: scope.projectId,
448
+ sessionId: scope.sessionId,
449
+ turnId,
450
+ },
451
+ sessionLog: log,
452
+ // The reason the lease is handed over at all: every record
453
+ // the resumed turn appends carries its fence, so a drainer
454
+ // that stalled past its lease cannot write over whoever
455
+ // took the session over.
456
+ lease,
457
+ }),
458
+ info: (message) => ctx.formatter.info(message),
375
459
  });
376
460
  ctx.formatter.print({
377
461
  listed: result.listed,
378
- resumed: result.drained.filter((id) => !awaiting.includes(id) && !empty.includes(id))
379
- .length,
380
- awaitingDecision: awaiting,
381
- noCheckpoint: empty,
382
- heldByOthers: result.skipped,
383
- alreadyHandled: result.stale,
462
+ resumed: result.resumed.length,
463
+ awaitingDecision: result.awaitingDecision,
464
+ noCheckpoint: result.noCheckpoint,
465
+ heldByOthers: result.heldByOthers,
466
+ alreadyHandled: result.alreadyHandled,
384
467
  failed: result.failed,
385
468
  unreleased: result.unreleased,
386
469
  });
387
470
  for (const f of result.failed) {
388
- ctx.formatter.error({ message: `${f.runId}: ${f.error}` });
471
+ ctx.formatter.error({ message: `${f.turnId}: ${f.error}` });
389
472
  }
390
473
  // A drain that could not give a lease back is reported too. The work
391
- // landed, but the run is unavailable to the next reader until the
474
+ // landed, but the session is unavailable to the next reader until the
392
475
  // lease lapses, and an operator watching throughput needs to know.
393
476
  for (const u of result.unreleased) {
394
477
  ctx.formatter.error({
395
- message: `${u.runId}: lease not released — ${u.error}`,
478
+ message: `${u.turnId}: lease not released — ${u.error}`,
396
479
  });
397
480
  }
398
481
  return result.failed.length > 0 ? 1 : 0;
399
482
  }
400
483
  catch (err) {
401
- // The refusals from `drainRuns` land here: a store that cannot claim,
402
- // a lease that cannot mean what it says. Reported rather than
403
- // swallowed into an empty pass that reads as "nothing was parked".
404
- ctx.formatter.error({
405
- message: err instanceof Error ? err.message : String(err),
406
- });
484
+ // A refusal from the log or the lease lands here. Reported rather
485
+ // than swallowed into an empty pass that reads as "nothing was parked".
486
+ ctx.formatter.error({ message: errorText(err) });
407
487
  return 1;
408
488
  }
409
489
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"drain.js","sourceRoot":"","sources":["../../src/commands/drain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,GACT,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAG5E,8EAA8E;AAC9E,MAAM,cAAc,GAAG,OAAO,CAAA;AAiB9B;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAA0B;IACzD,MAAM,GAAG,GAAe;QACvB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,EAAE;KACX,CAAA;IACD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,IAAY,EAAE,CAAgB,EAAsB,EAAE;QAC/E,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACxE,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC/D,OAAO,SAAS,CAAA;IACjB,CAAC,CAAA;IACD,MAAM,OAAO,GAAG;QACf,CAAC,OAAO,EAAE,OAAO,CAAC;QAClB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACpB,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACpB,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,OAAO,EAAE,OAAO,CAAC;KACT,CAAA;IAEV,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5D,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAW,CAAA;QAClC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAA;YAChB,SAAQ;QACT,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;YAC7B,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAA;gBAC3B,OAAO,GAAG,IAAI,CAAA;gBACd,MAAK;YACN,CAAC;QACF,CAAC;QACD,IAAI,OAAO;YAAE,SAAQ;QACrB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAChC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;YACvB,SAAQ;QACT,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAA;QAC5C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAChC,SAAQ;QACT,CAAC;QACD,mEAAmE;QACnE,iEAAiE;QACjE,qEAAqE;QACrE,0BAA0B;QAC1B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,KAAyD;IAS1F,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACN,KAAK,EACJ,yIAAyI;SAC1I,CAAA;IACF,CAAC;IACD,yEAAyE;IACzE,wEAAwE;IACxE,6CAA6C;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACtC,OAAO;YACN,KAAK,EACJ,wKAAwK;SACzK,CAAA;IACF,CAAC;IACD,sEAAsE;IACtE,oEAAoE;IACpE,2EAA2E;IAC3E,sEAAsE;IACtE,yEAAyE;IACzE,kCAAkC;IAClC,IAAI,CAAC;QACJ,OAAO;YACN,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;YAClC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;YACrC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;SACrC,CAAA;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YACnC,OAAO;gBACN,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,2CAA2C;aAChE,CAAA;QACF,CAAC;QACD,MAAM,GAAG,CAAA;IACV,CAAC;AACF,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,aAAa;IAC5B,OAAO,eAAe,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;AAC/D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAsB;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,CAAA;IACxF,OAAO,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,eAAe,kBAAkB,IAAI,EAAE,CAAA;AACzE,CAAC;AAED,SAAS,YAAY,CAAC,QAAqC;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACzB,OAAO,KAAK;QACX,CAAC,CAAC;YACA,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACnC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SACzB;QACF,CAAC,CAAC,IAAI,CAAA;AACR,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAe;IACvC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,iEAAiE;IAC9E,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE;QACL,8EAA8E;QAC9E,EAAE;QACF,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,EAAE;QACF,UAAU;QACV,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,+CAA+C;QAC/C,4EAA4E;QAC5E,uDAAuD;QACvD,4DAA4D;QAC5D,4DAA4D;QAC5D,mDAAmD;QACnD,gDAAgD;QAChD,0DAA0D;QAC1D,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,8CAA8C;QAC9C,EAAE;QACF,4EAA4E;QAC5E,wEAAwE;KACxE,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;QACjD,IAAI,GAAG,GAAG,YAAY,CAAA;QACtB,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,OAAO,EAAE,sBAAsB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACzD,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,OAAO,EACN,yLAAyL;aAC1L,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;YAC7C,OAAO,UAAU,CAAA;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,cAAc,CAAA;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,OAAO,EAAE,8CAA8C,KAAK,CAAC,KAAK,EAAE;aACpE,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACnD,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACzB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;YAChD,OAAO,UAAU,CAAA;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,mBAAmB,CAAC;YACjC,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,SAAS,EAAE,KAAK,CAAC,KAAK;SACtB,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAAC,CAAA;YACvE,OAAO,cAAc,CAAA;QACtB,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;QACrB,GAAG,GAAG,4BAA4B,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QAErD,uEAAuE;QACvE,mEAAmE;QACnE,mEAAmE;QACnE,qEAAqE;QACrE,kEAAkE;QAClE,yBAAyB;QACzB,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAClE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACjF,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAA;QACvC,IAAI,KAAK,GAAG,KAAK,CAAC,WAAW,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,OAAO,EACN,kGAAkG;aACnG,CAAC,CAAA;YACF,OAAO,CAAC,CAAA;QACT,CAAC;QACD,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACxC,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAC3F,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO;gBAC/B,CAAC,CAAC,eAAe,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,GAAG;gBAC1D,CAAC,CAAC,eAAe,UAAU,CAAC,IAAI,EAAE,CAAA;YACnC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACpE,CAAC;QACD,IAAI,SAAiB,CAAA;QACrB,IAAI,CAAC;YACJ,SAAS,GAAG,gBAAgB,EAAE,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,OAAO,EAAE,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACtG,CAAC,CAAA;YACF,OAAO,CAAC,CAAA;QACT,CAAC;QAED,IAAI,iBAAkD,CAAA;QACtD,IAAI,aAA6B,CAAA;QACjC,IAAI,CAAC;YACJ,iBAAiB,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YACjD,aAAa,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;YACnF,IACC,CAAC,aAAa;gBACd,aAAa,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS;gBACpC,aAAa,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;gBACzC,aAAa,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAC1C,CAAC;gBACF,MAAM,IAAI,KAAK,CACd,WAAW,KAAK,CAAC,SAAS,mCAAmC,KAAK,CAAC,SAAS,EAAE,CAC9E,CAAA;YACF,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,OAAO,EAAE,6CAA6C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC9G,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;YAC/D,GAAG;YACH,KAAK,EAAE;gBACN,iEAAiE;gBACjE,oEAAoE;gBACpE,oEAAoE;gBACpE,0DAA0D;gBAC1D,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACxB;YACD,SAAS;YACT,oBAAoB,EAAE;gBACrB,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,aAAa,CAAC,OAAO;aAC9B;YACD,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,cAAc,EAAE,MAAM;YACtB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,iEAAiE;YACjE,mEAAmE;YACnE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS;gBAC7C,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBACrD,CAAC,CAAC,EAAE,CAAC;SACN,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YACrB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,oBAAoB;aAClD,CAAC,CAAA;YACF,OAAO,CAAC,CAAA;QACT,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,SAAS;QACT,MAAM,KAAK,GAAG,IAAI,mBAAmB,CACpC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,EACxB;YACC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC1B,CACD,CAAA;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,EAAE,CAAA;QAC9C,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;gBAC9B,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,KAAK;gBACL,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC7B,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;oBACjE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;wBAC3C,KAAK;wBACL,eAAe,EAAE,KAAK;wBACtB,4DAA4D;wBAC5D,6DAA6D;wBAC7D,qDAAqD;wBACrD,UAAU,EAAE,KAAK,CAAC,KAAK;qBACvB,CAAC,CAAA;oBACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACrB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BAC3E,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;wBAC1E,CAAC;wBACD,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;wBAC9D,OAAM;oBACP,CAAC;oBACD,gEAAgE;oBAChE,8DAA8D;oBAC9D,+DAA+D;oBAC/D,gCAAgC;oBAChC,IAAI,OAAO,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;wBAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;wBAC1B,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,gCAAgC,CAAC,CAAA;oBACrE,CAAC;yBAAM,CAAC;wBACP,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;wBACvB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,mCAAmC,CAAC,CAAA;oBACxE,CAAC;gBACF,CAAC;aACD,CAAC,CAAA;YAEF,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;qBACnF,MAAM;gBACR,gBAAgB,EAAE,QAAQ;gBAC1B,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAE,MAAM,CAAC,OAAO;gBAC5B,cAAc,EAAE,MAAM,CAAC,KAAK;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC7B,CAAC,CAAA;YACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC/B,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAC3D,CAAC;YACD,qEAAqE;YACrE,kEAAkE;YAClE,mEAAmE;YACnE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACnC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;oBACnB,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,0BAA0B,CAAC,CAAC,KAAK,EAAE;iBACtD,CAAC,CAAA;YACH,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,sEAAsE;YACtE,8DAA8D;YAC9D,mEAAmE;YACnE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,CAAC,CAAA;YACF,OAAO,CAAC,CAAA;QACT,CAAC;gBAAS,CAAC;YACV,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC;IACF,CAAC;CACD,CAAA"}
1
+ {"version":3,"file":"drain.js","sourceRoot":"","sources":["../../src/commands/drain.ts"],"names":[],"mappings":"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"}
@@ -168,7 +168,7 @@ async function runEval(ctx, options) {
168
168
  // report — there is a harness to fix.
169
169
  if (report === TIMED_OUT) {
170
170
  ctx.formatter.error({
171
- message: `Eval suite "${suite.id}" did not finish within ${options.timeoutMs ?? DEFAULT_SUITE_TIMEOUT_MS}ms. A suite that hangs judges nothing; raise --timeout-ms if it is genuinely slow, and look for a run parked on an approval nobody is there to give if it is not.`,
171
+ message: `Eval suite "${suite.id}" did not finish within ${options.timeoutMs ?? DEFAULT_SUITE_TIMEOUT_MS}ms. A suite that hangs judges nothing; raise --timeout-ms if it is genuinely slow, and look for a turn parked on an approval nobody is there to give if it is not.`,
172
172
  });
173
173
  return EVAL_EXIT.inconclusive;
174
174
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
@@ -3,25 +3,25 @@
3
3
  *
4
4
  * A pause is a rate limit or an outage: the kernel kept a checkpoint and the
5
5
  * right response is to wait and resume, not to fail and not to re-prompt from
6
- * whatever notes the run left behind. This module decides HOW LONG, and it is
6
+ * whatever notes the turn left behind. This module decides HOW LONG, and it is
7
7
  * pure so the decision can be tested without a clock.
8
8
  *
9
9
  * The provider's own delay wins when it gave one. Without one, the wait backs
10
10
  * off — a minute, two, four — because a limit that did not name its window is
11
- * not helped by polling it, and is capped so a run never sleeps longer than it
11
+ * not helped by polling it, and is capped so a turn never sleeps longer than it
12
12
  * would take a person to notice it is asleep.
13
13
  */
14
14
  export declare const FIRST_WAIT_MS = 60000;
15
15
  export declare const MAX_WAIT_MS: number;
16
16
  export declare const MIN_WAIT_MS = 1000;
17
17
  export interface PauseWaitInput {
18
- /** How many pauses this run has already waited through. 0 for the first. */
18
+ /** How many pauses this turn has already waited through. 0 for the first. */
19
19
  readonly waited: number;
20
20
  /** Delay the provider asked for, when it gave one. */
21
21
  readonly retryAfterMs?: number;
22
- /** Wall-clock milliseconds this run has spent waiting so far. */
22
+ /** Wall-clock milliseconds this turn has spent waiting so far. */
23
23
  readonly waitedMs: number;
24
- /** The most this run may spend waiting in total. */
24
+ /** The most this turn may spend waiting in total. */
25
25
  readonly budgetMs: number;
26
26
  }
27
27
  export type PauseWaitDecision = {