@telora/daemon 0.22.187 → 0.22.208

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 (278) hide show
  1. package/build-info.json +6 -3
  2. package/dist/backends/index.d.ts.map +1 -1
  3. package/dist/backends/index.js +2 -0
  4. package/dist/backends/index.js.map +1 -1
  5. package/dist/completion/completion-fact-readers.d.ts +35 -0
  6. package/dist/completion/completion-fact-readers.d.ts.map +1 -0
  7. package/dist/completion/completion-fact-readers.js +70 -0
  8. package/dist/completion/completion-fact-readers.js.map +1 -0
  9. package/dist/completion/escalations.d.ts.map +1 -1
  10. package/dist/completion/escalations.js +2 -1
  11. package/dist/completion/escalations.js.map +1 -1
  12. package/dist/completion/event-dep-defaults.d.ts +27 -0
  13. package/dist/completion/event-dep-defaults.d.ts.map +1 -0
  14. package/dist/completion/event-dep-defaults.js +30 -0
  15. package/dist/completion/event-dep-defaults.js.map +1 -0
  16. package/dist/completion/event-phases.d.ts.map +1 -1
  17. package/dist/completion/event-phases.js +5 -13
  18. package/dist/completion/event-phases.js.map +1 -1
  19. package/dist/completion/event.d.ts +32 -0
  20. package/dist/completion/event.d.ts.map +1 -1
  21. package/dist/completion/event.js +31 -25
  22. package/dist/completion/event.js.map +1 -1
  23. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  24. package/dist/completion/review-exit-phase.js +11 -4
  25. package/dist/completion/review-exit-phase.js.map +1 -1
  26. package/dist/completion/session-hold.d.ts +13 -1
  27. package/dist/completion/session-hold.d.ts.map +1 -1
  28. package/dist/completion/session-hold.js +18 -0
  29. package/dist/completion/session-hold.js.map +1 -1
  30. package/dist/completion/standing-approval-convergence.d.ts.map +1 -1
  31. package/dist/completion/standing-approval-convergence.js +2 -1
  32. package/dist/completion/standing-approval-convergence.js.map +1 -1
  33. package/dist/completion/team-phase.d.ts.map +1 -1
  34. package/dist/completion/team-phase.js +1 -0
  35. package/dist/completion/team-phase.js.map +1 -1
  36. package/dist/completion/unclaimed-migration-notice-phase.d.ts +97 -0
  37. package/dist/completion/unclaimed-migration-notice-phase.d.ts.map +1 -0
  38. package/dist/completion/unclaimed-migration-notice-phase.js +270 -0
  39. package/dist/completion/unclaimed-migration-notice-phase.js.map +1 -0
  40. package/dist/directive/directive-executor.d.ts.map +1 -1
  41. package/dist/directive/directive-executor.js +1 -20
  42. package/dist/directive/directive-executor.js.map +1 -1
  43. package/dist/focus/focus-executor.d.ts +1 -0
  44. package/dist/focus/focus-executor.d.ts.map +1 -1
  45. package/dist/focus/focus-executor.js +18 -17
  46. package/dist/focus/focus-executor.js.map +1 -1
  47. package/dist/focus/focus-loop-registry.js +2 -2
  48. package/dist/focus/focus-loop-registry.js.map +1 -1
  49. package/dist/focus/focus-team-state.js +1 -1
  50. package/dist/focus/listener-spawn.d.ts.map +1 -1
  51. package/dist/focus/listener-spawn.js +5 -20
  52. package/dist/focus/listener-spawn.js.map +1 -1
  53. package/dist/focus/listener-state.d.ts.map +1 -1
  54. package/dist/focus/listener-state.js +1 -0
  55. package/dist/focus/listener-state.js.map +1 -1
  56. package/dist/focus/listener.d.ts +1 -0
  57. package/dist/focus/listener.d.ts.map +1 -1
  58. package/dist/focus/listener.js +9 -0
  59. package/dist/focus/listener.js.map +1 -1
  60. package/dist/focus/migration-claim-pass.d.ts +50 -0
  61. package/dist/focus/migration-claim-pass.d.ts.map +1 -0
  62. package/dist/focus/migration-claim-pass.js +234 -0
  63. package/dist/focus/migration-claim-pass.js.map +1 -0
  64. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
  65. package/dist/focus/pending-spawn-pass-deps.js +2 -1
  66. package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
  67. package/dist/focus/team-actionable-work.d.ts +21 -0
  68. package/dist/focus/team-actionable-work.d.ts.map +1 -1
  69. package/dist/focus/team-actionable-work.js +3 -0
  70. package/dist/focus/team-actionable-work.js.map +1 -1
  71. package/dist/git/types.d.ts.map +1 -1
  72. package/dist/git/types.js +2 -1
  73. package/dist/git/types.js.map +1 -1
  74. package/dist/loops/llm-client.d.ts +1 -1
  75. package/dist/loops/llm-client.d.ts.map +1 -1
  76. package/dist/loops/llm-client.js +29 -106
  77. package/dist/loops/llm-client.js.map +1 -1
  78. package/dist/migrations/migration-claim-lifecycle.d.ts +166 -0
  79. package/dist/migrations/migration-claim-lifecycle.d.ts.map +1 -0
  80. package/dist/migrations/migration-claim-lifecycle.js +198 -0
  81. package/dist/migrations/migration-claim-lifecycle.js.map +1 -0
  82. package/dist/migrations/migration-held-set.d.ts +171 -0
  83. package/dist/migrations/migration-held-set.d.ts.map +1 -0
  84. package/dist/migrations/migration-held-set.js +295 -0
  85. package/dist/migrations/migration-held-set.js.map +1 -0
  86. package/dist/migrations/migration-inventory.d.ts +187 -0
  87. package/dist/migrations/migration-inventory.d.ts.map +1 -0
  88. package/dist/migrations/migration-inventory.js +253 -0
  89. package/dist/migrations/migration-inventory.js.map +1 -0
  90. package/dist/migrations/migration-manifest.d.ts +114 -0
  91. package/dist/migrations/migration-manifest.d.ts.map +1 -0
  92. package/dist/migrations/migration-manifest.js +295 -0
  93. package/dist/migrations/migration-manifest.js.map +1 -0
  94. package/dist/prompt/team-prompt-base.js +1 -1
  95. package/dist/prompt-sections/migration-numbering-section.d.ts +58 -0
  96. package/dist/prompt-sections/migration-numbering-section.d.ts.map +1 -0
  97. package/dist/prompt-sections/migration-numbering-section.js +70 -0
  98. package/dist/prompt-sections/migration-numbering-section.js.map +1 -0
  99. package/dist/prompt-sections/migration-numbering-state.d.ts +30 -0
  100. package/dist/prompt-sections/migration-numbering-state.d.ts.map +1 -0
  101. package/dist/prompt-sections/migration-numbering-state.js +24 -0
  102. package/dist/prompt-sections/migration-numbering-state.js.map +1 -0
  103. package/dist/prompt-sections/unclaimed-migration-section.d.ts +38 -0
  104. package/dist/prompt-sections/unclaimed-migration-section.d.ts.map +1 -0
  105. package/dist/prompt-sections/unclaimed-migration-section.js +57 -0
  106. package/dist/prompt-sections/unclaimed-migration-section.js.map +1 -0
  107. package/dist/queries/agent-resolvable-promotion.d.ts +12 -0
  108. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
  109. package/dist/queries/agent-resolvable-promotion.js +17 -6
  110. package/dist/queries/agent-resolvable-promotion.js.map +1 -1
  111. package/dist/queries/claim-pass-focuses.d.ts +19 -0
  112. package/dist/queries/claim-pass-focuses.d.ts.map +1 -0
  113. package/dist/queries/claim-pass-focuses.js +72 -0
  114. package/dist/queries/claim-pass-focuses.js.map +1 -0
  115. package/dist/queries/daemon-connection.d.ts.map +1 -1
  116. package/dist/queries/daemon-connection.js +1 -0
  117. package/dist/queries/daemon-connection.js.map +1 -1
  118. package/dist/queries/delivery-gate-state.d.ts +3 -0
  119. package/dist/queries/delivery-gate-state.d.ts.map +1 -1
  120. package/dist/queries/delivery-gate-state.js +1 -1
  121. package/dist/queries/delivery-gate-state.js.map +1 -1
  122. package/dist/queries/focus-discovery.d.ts +25 -2
  123. package/dist/queries/focus-discovery.d.ts.map +1 -1
  124. package/dist/queries/focus-discovery.js +16 -9
  125. package/dist/queries/focus-discovery.js.map +1 -1
  126. package/dist/queries/focus-unclaimed-migration.d.ts +146 -0
  127. package/dist/queries/focus-unclaimed-migration.d.ts.map +1 -0
  128. package/dist/queries/focus-unclaimed-migration.js +266 -0
  129. package/dist/queries/focus-unclaimed-migration.js.map +1 -0
  130. package/dist/queries/live-focus-branches.d.ts +32 -0
  131. package/dist/queries/live-focus-branches.d.ts.map +1 -0
  132. package/dist/queries/live-focus-branches.js +66 -0
  133. package/dist/queries/live-focus-branches.js.map +1 -0
  134. package/dist/queries/migration-claims.d.ts +25 -0
  135. package/dist/queries/migration-claims.d.ts.map +1 -0
  136. package/dist/queries/migration-claims.js +79 -0
  137. package/dist/queries/migration-claims.js.map +1 -0
  138. package/dist/queries/schemas.d.ts +2 -0
  139. package/dist/queries/schemas.d.ts.map +1 -1
  140. package/dist/queries/schemas.js +6 -0
  141. package/dist/queries/schemas.js.map +1 -1
  142. package/dist/queries/shared.js +1 -1
  143. package/dist/queries/verify-own-holds.d.ts +89 -0
  144. package/dist/queries/verify-own-holds.d.ts.map +1 -0
  145. package/dist/queries/verify-own-holds.js +93 -0
  146. package/dist/queries/verify-own-holds.js.map +1 -0
  147. package/dist/session/session-lineage.d.ts.map +1 -1
  148. package/dist/session/session-lineage.js +3 -0
  149. package/dist/session/session-lineage.js.map +1 -1
  150. package/dist/shell/heartbeat-metadata.d.ts +48 -2
  151. package/dist/shell/heartbeat-metadata.d.ts.map +1 -1
  152. package/dist/shell/heartbeat-metadata.js +80 -3
  153. package/dist/shell/heartbeat-metadata.js.map +1 -1
  154. package/dist/shell/heartbeat.d.ts +13 -0
  155. package/dist/shell/heartbeat.d.ts.map +1 -1
  156. package/dist/shell/heartbeat.js +31 -10
  157. package/dist/shell/heartbeat.js.map +1 -1
  158. package/dist/shell/mcp-resolution.js +1 -1
  159. package/dist/shell/mcp-resolution.js.map +1 -1
  160. package/dist/shell/migration-held-set-publish.d.ts +170 -0
  161. package/dist/shell/migration-held-set-publish.d.ts.map +1 -0
  162. package/dist/shell/migration-held-set-publish.js +172 -0
  163. package/dist/shell/migration-held-set-publish.js.map +1 -0
  164. package/dist/shell/worker-pidfile.d.ts.map +1 -1
  165. package/dist/shell/worker-pidfile.js +1 -0
  166. package/dist/shell/worker-pidfile.js.map +1 -1
  167. package/dist/spawn/helpers.d.ts.map +1 -1
  168. package/dist/spawn/helpers.js +1 -0
  169. package/dist/spawn/helpers.js.map +1 -1
  170. package/dist/spawn/lead-launch.d.ts.map +1 -1
  171. package/dist/spawn/lead-launch.js +1 -0
  172. package/dist/spawn/lead-launch.js.map +1 -1
  173. package/dist/spawn/lead-process-ownership.d.ts.map +1 -1
  174. package/dist/spawn/lead-process-ownership.js +1 -0
  175. package/dist/spawn/lead-process-ownership.js.map +1 -1
  176. package/dist/spawn/one-shot-model.d.ts +145 -0
  177. package/dist/spawn/one-shot-model.d.ts.map +1 -0
  178. package/dist/spawn/one-shot-model.js +329 -0
  179. package/dist/spawn/one-shot-model.js.map +1 -0
  180. package/dist/spawn/process-group-kill.d.ts.map +1 -1
  181. package/dist/spawn/process-group-kill.js +1 -0
  182. package/dist/spawn/process-group-kill.js.map +1 -1
  183. package/dist/spawn/process-spawn.d.ts +18 -1
  184. package/dist/spawn/process-spawn.d.ts.map +1 -1
  185. package/dist/spawn/process-spawn.js +11 -6
  186. package/dist/spawn/process-spawn.js.map +1 -1
  187. package/dist/spawn/prompt-assembly.d.ts +115 -18
  188. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  189. package/dist/spawn/prompt-assembly.js +121 -2
  190. package/dist/spawn/prompt-assembly.js.map +1 -1
  191. package/dist/spawn/review-hold-park.d.ts.map +1 -1
  192. package/dist/spawn/review-hold-park.js +7 -3
  193. package/dist/spawn/review-hold-park.js.map +1 -1
  194. package/dist/spawn/routing-decider-spawn.d.ts +30 -0
  195. package/dist/spawn/routing-decider-spawn.d.ts.map +1 -1
  196. package/dist/spawn/routing-decider-spawn.js +84 -2
  197. package/dist/spawn/routing-decider-spawn.js.map +1 -1
  198. package/dist/spawn/routing-decider.d.ts.map +1 -1
  199. package/dist/spawn/routing-decider.js +22 -0
  200. package/dist/spawn/routing-decider.js.map +1 -1
  201. package/dist/spawn/spawn-and-acknowledge.d.ts +61 -0
  202. package/dist/spawn/spawn-and-acknowledge.d.ts.map +1 -0
  203. package/dist/spawn/spawn-and-acknowledge.js +117 -0
  204. package/dist/spawn/spawn-and-acknowledge.js.map +1 -0
  205. package/dist/spawn/spawn-cooldown.d.ts +15 -1
  206. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  207. package/dist/spawn/spawn-cooldown.js +67 -19
  208. package/dist/spawn/spawn-cooldown.js.map +1 -1
  209. package/dist/spawn/spawn-decision.d.ts +10 -10
  210. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  211. package/dist/spawn/spawn-decision.js +33 -5
  212. package/dist/spawn/spawn-decision.js.map +1 -1
  213. package/dist/templates/claude-md.d.ts +1 -1
  214. package/dist/templates/claude-md.d.ts.map +1 -1
  215. package/dist/templates/claude-md.js +24 -0
  216. package/dist/templates/claude-md.js.map +1 -1
  217. package/dist/testing/fixtures/index.js +1 -1
  218. package/dist/testing/fixtures/migration-namespace-repo.d.ts +63 -0
  219. package/dist/testing/fixtures/migration-namespace-repo.d.ts.map +1 -0
  220. package/dist/testing/fixtures/migration-namespace-repo.js +164 -0
  221. package/dist/testing/fixtures/migration-namespace-repo.js.map +1 -0
  222. package/dist/testing/fixtures/stubborn-lead-process.d.ts.map +1 -1
  223. package/dist/testing/fixtures/stubborn-lead-process.js +1 -0
  224. package/dist/testing/fixtures/stubborn-lead-process.js.map +1 -1
  225. package/dist/types/index.js +1 -1
  226. package/dist/verify/ai-inspection-runner.d.ts.map +1 -1
  227. package/dist/verify/ai-inspection-runner.js +26 -7
  228. package/dist/verify/ai-inspection-runner.js.map +1 -1
  229. package/dist/verify/de-restatement.d.ts +9 -2
  230. package/dist/verify/de-restatement.d.ts.map +1 -1
  231. package/dist/verify/de-restatement.js +14 -76
  232. package/dist/verify/de-restatement.js.map +1 -1
  233. package/dist/verify/default-on-guards.d.ts +5 -2
  234. package/dist/verify/default-on-guards.d.ts.map +1 -1
  235. package/dist/verify/default-on-guards.js +5 -3
  236. package/dist/verify/default-on-guards.js.map +1 -1
  237. package/dist/verify/no-own-delta-verdict.d.ts +16 -2
  238. package/dist/verify/no-own-delta-verdict.d.ts.map +1 -1
  239. package/dist/verify/no-own-delta-verdict.js +18 -2
  240. package/dist/verify/no-own-delta-verdict.js.map +1 -1
  241. package/dist/verify/verification-deps-default.d.ts.map +1 -1
  242. package/dist/verify/verification-deps-default.js +6 -0
  243. package/dist/verify/verification-deps-default.js.map +1 -1
  244. package/dist/verify/verification-deps.d.ts +10 -0
  245. package/dist/verify/verification-deps.d.ts.map +1 -1
  246. package/dist/verify/verification-deterministic.d.ts +7 -0
  247. package/dist/verify/verification-deterministic.d.ts.map +1 -1
  248. package/dist/verify/verification-deterministic.js.map +1 -1
  249. package/dist/verify/verification-engine.d.ts +1 -20
  250. package/dist/verify/verification-engine.d.ts.map +1 -1
  251. package/dist/verify/verification-engine.js +24 -55
  252. package/dist/verify/verification-engine.js.map +1 -1
  253. package/dist/verify/verification-evidence-unavailable-feedback.d.ts +3 -1
  254. package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
  255. package/dist/verify/verification-evidence-unavailable-feedback.js +3 -1
  256. package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
  257. package/dist/verify/verification-feedback.d.ts +4 -12
  258. package/dist/verify/verification-feedback.d.ts.map +1 -1
  259. package/dist/verify/verification-feedback.js +7 -12
  260. package/dist/verify/verification-feedback.js.map +1 -1
  261. package/dist/verify/verification-history-reset.d.ts.map +1 -1
  262. package/dist/verify/verification-history-reset.js +11 -3
  263. package/dist/verify/verification-history-reset.js.map +1 -1
  264. package/dist/verify/verification-model-unavailable-hold.d.ts +92 -0
  265. package/dist/verify/verification-model-unavailable-hold.d.ts.map +1 -0
  266. package/dist/verify/verification-model-unavailable-hold.js +207 -0
  267. package/dist/verify/verification-model-unavailable-hold.js.map +1 -0
  268. package/dist/verify/verification-strategies.d.ts +32 -0
  269. package/dist/verify/verification-strategies.d.ts.map +1 -0
  270. package/dist/verify/verification-strategies.js +47 -0
  271. package/dist/verify/verification-strategies.js.map +1 -0
  272. package/dist/verify/verify-reconciliation.d.ts.map +1 -1
  273. package/dist/verify/verify-reconciliation.js +2 -1
  274. package/dist/verify/verify-reconciliation.js.map +1 -1
  275. package/dist/verify/verify-restatement.d.ts.map +1 -1
  276. package/dist/verify/verify-restatement.js +21 -8
  277. package/dist/verify/verify-restatement.js.map +1 -1
  278. package/package.json +2 -2
@@ -15,6 +15,7 @@ import { getFocusDeliveries, getFocusIssues } from '../queries/focuses.js';
15
15
  import type { AgentResolvableItem } from '../queries/escalation-consumption.js';
16
16
  import type { ArmFacts } from '../focus/recorded-new-intent.js';
17
17
  import { type FocusTeamPromptContext } from '../prompt/team-prompt-base.js';
18
+ import { type MigrationNumberingState } from '../prompt-sections/migration-numbering-section.js';
18
19
  import type { IntegrationConflict } from '../git/focus-integration-sync.js';
19
20
  import { resolveLineageSpec } from '../session/session-lineage.js';
20
21
  import { type AssemblyManifestEntry } from '../resolvers/assembly-engine.js';
@@ -27,6 +28,17 @@ import { type CommitGateSeams } from '../verify/commit-gate-configured.js';
27
28
  * out in each argument literal -- the two shapes cannot then drift, and a message
28
29
  * shape added later inherits the field rather than silently dropping the task.
29
30
  */
31
+ /**
32
+ * The acknowledgement a spawn owes the unclaimed-migration record.
33
+ *
34
+ * Null when there is nothing to acknowledge. Otherwise the caller MUST run it
35
+ * after the session is up and the message has been delivered -- and only then:
36
+ * the marker is what lifts the completion hold, and lifting it on a spawn that
37
+ * never reached the team is the defect this separation removes.
38
+ */
39
+ export interface UnclaimedRecordDelivery {
40
+ confirmUnclaimedRecordDelivered: (() => Promise<void>) | null;
41
+ }
30
42
  export interface IntegrationReconcileInput {
31
43
  /**
32
44
  * What the coding spawn's sync with integration conflicted on, or null/absent
@@ -44,6 +56,45 @@ export interface IntegrationReconcileInput {
44
56
  * framework, the directive body and the resume delta alike.
45
57
  */
46
58
  export declare function integrationReconcileLead(input: IntegrationReconcileInput): string;
59
+ /**
60
+ * The product's migration numbering, threaded into EVERY message shape.
61
+ *
62
+ * Declared once and intersected into both prompt entry points for the same
63
+ * reason IntegrationReconcileInput is: a message shape added later inherits the
64
+ * field rather than silently dropping the rule, and a team writes a migration on
65
+ * whichever turn the work lands on -- most of which are resume deltas.
66
+ */
67
+ export interface MigrationNumberingInput {
68
+ /**
69
+ * What the spawn knows about this product's migration numbering, or
70
+ * null/absent when it declares none. Absent => the message composed is
71
+ * byte-for-byte the one composed before this existed.
72
+ */
73
+ migrationNumbering?: MigrationNumberingState | null;
74
+ /** True on a review pass: a reviewer writes no migrations, so it renders nothing. */
75
+ migrationNumberingIsReviewPass?: boolean;
76
+ /**
77
+ * The focus's stored unclaimed-migration record, or null/absent when its
78
+ * branch holds no migration without a claim behind it. Carried verbatim so
79
+ * the team and a human reading the Debug tab see the identical account.
80
+ */
81
+ unclaimedMigrationRecord?: string | null;
82
+ }
83
+ /**
84
+ * The numbering rule as a suffix to append (with its blank-line separator) --
85
+ * '' when the product declares no numbering, or on a review pass.
86
+ *
87
+ * Appended rather than prepended: reconciling a stale base is the coding
88
+ * stage's entry condition and must be read first, while the numbering rule is
89
+ * read at the moment a migration is written, which is later than everything
90
+ * else in the message.
91
+ *
92
+ * The FRESH-prompt shape gets it from `buildSpawnPrompt`; the resume delta and
93
+ * the forced-fresh scoping turn are built in `buildSpawnMessage` and append it
94
+ * themselves. All three, deliberately: a team that only ever sees resume deltas
95
+ * -- most turns of a long focus -- would otherwise never be told the rule.
96
+ */
97
+ export declare function migrationNumberingSuffix(input: MigrationNumberingInput): string;
47
98
  /**
48
99
  * Phase C input: assemble the FocusTeamPromptContext threaded into both the
49
100
  * directive and legacy prompt builders. Pure factory -- byte-identical to the
@@ -117,26 +168,16 @@ export declare function buildSpawnPrompt(args: {
117
168
  * Claude --resume session id. Only emitted on review passes; ignored otherwise.
118
169
  */
119
170
  agentSessionId?: string;
120
- } & IntegrationReconcileInput): string;
171
+ } & IntegrationReconcileInput & MigrationNumberingInput): string;
121
172
  /**
122
- * Phase: choose the stdin message. A fresh spawn sends the full composed prompt;
123
- * a resume sends an incremental delta (git diff + prior findings to verify) since
124
- * the resumed session already holds its role + accumulated context (INJ-D).
173
+ * The spawn message, with the numbering rule checked against the product.
125
174
  *
126
- * The scoping case is the one exception that overrides the fresh-vs-resume split:
127
- * when a NON-read_only (executable) focus has queued deliveries carrying only
128
- * Context Group issues and zero Task/Bug issues, this returns the role framework
129
- * PLUS `buildQueuedDeliveryScopingMessage` REGARDLESS of resumeId. The caller pairs
130
- * this with `resolveScopingSpawnResume`, which forces the spawn fresh (resumeId
131
- * null) so the directive lands on a new session instead of no-opping a concluded
132
- * one. Because the fresh session holds no accumulated context, the role framework
133
- * (identity + Scoping Mandate + status-update rules) is prepended here; only the
134
- * audit/kickoff DIRECTIVE body carried in `prompt` is dropped, per AC. `readOnlyFocus`
135
- * focuses are discovery-only (audit-playbook origin): their CG-only deliveries are
136
- * INTENTIONALLY unscoped, so they are never driven into scoping here --
137
- * delivery-lifecycle terminalizes them instead.
175
+ * The composition itself is `composeSpawnMessage`; this wrapper is where the
176
+ * invariant above is applied, so every shape it can return -- scoping, fresh,
177
+ * resume delta -- passes through one check.
138
178
  */
139
- export declare function buildSpawnMessage(args: {
179
+ export declare function buildSpawnMessage(args: Parameters<typeof composeSpawnMessage>[0]): Promise<string>;
180
+ declare function composeSpawnMessage(args: {
140
181
  prompt: string;
141
182
  resumeId: string | null;
142
183
  readOnlyFocus: boolean;
@@ -185,7 +226,7 @@ export declare function buildSpawnMessage(args: {
185
226
  * it; the production spawn path always passes session.id.
186
227
  */
187
228
  agentSessionId?: string;
188
- } & ResumeGateVerdictSeam & IntegrationReconcileInput): Promise<string>;
229
+ } & ResumeGateVerdictSeam & IntegrationReconcileInput & MigrationNumberingInput): Promise<string>;
189
230
  /** The gate reads the resume delta's own-gate verdict fallback takes. */
190
231
  type ResumeGateReads = Pick<CommitGateSeams, 'resolveCommitGate' | 'readCommitVerdict' | 'readDeliveryGateOutcome'>;
191
232
  /** The resume-delta gate-verdict seam of buildSpawnMessage. */
@@ -237,5 +278,61 @@ export declare function buildQueuedDeliveryScopingMessage(args: {
237
278
  focusName: string;
238
279
  deliveries: Awaited<ReturnType<typeof getFocusDeliveries>>;
239
280
  }): string;
281
+ /**
282
+ * The per-spawn inputs for the message SECTIONS -- the blocks composed around
283
+ * the prompt body rather than into it.
284
+ *
285
+ * Gathered in one place because they share a shape: each is computed once per
286
+ * spawn, threaded identically into every message shape, and renders nothing
287
+ * when it has nothing to say. Returning them as one bag means a section added
288
+ * later is wired at ONE site instead of at every forwarding call, which is how
289
+ * a section ends up carried by the fresh prompt and silently missing from the
290
+ * resume delta.
291
+ */
292
+ /**
293
+ * THE SECTIONS A REAL SPAWN MUST CARRY.
294
+ *
295
+ * Every field the section bag supplies is OPTIONAL on the builders' own arg
296
+ * types, deliberately: absent means "compose byte-for-byte what was composed
297
+ * before this section existed", which is what lets a test that is about
298
+ * something else construct args without them.
299
+ *
300
+ * That leniency is exactly wrong at the ONE caller that composes a real spawn.
301
+ * There, the sections are not optional -- a message built without them tells
302
+ * the team nothing about reconciling its base or about claiming its migration
303
+ * number, silently, on every shape. And the omission is one deleted spread:
304
+ * nothing at runtime distinguishes it from a product that declares no
305
+ * numbering, so no assertion downstream of the executor can catch it.
306
+ *
307
+ * So the executor's argument objects are typed as this, and dropping the
308
+ * spread is a COMPILE error rather than a quiet loss. (The alternative --
309
+ * observing the composed message through a real spawn -- needs
310
+ * `spawnFocusTeam` driven end to end, which this package's harness cannot do:
311
+ * its bare `@telora/daemon-core` imports defeat the module mocker, and the
312
+ * path reaches a worktree rebase, a session create and a backend probe before
313
+ * it composes anything.)
314
+ */
315
+ export type ComposedSpawnSections = Required<IntegrationReconcileInput> & Required<MigrationNumberingInput>;
316
+ export declare function buildSpawnSectionInputs(
317
+ /** The resolved worktree; its sync carries a conflict only when a rebase aborted. */
318
+ worktree: {
319
+ integrationSync?: {
320
+ conflict: IntegrationConflict | null;
321
+ } | null;
322
+ },
323
+ /** The branch the team is on, named in the reconcile task. */
324
+ focusBranchName: string,
325
+ /** The product-scoped config, read for its migration-numbering declaration. */
326
+ config: {
327
+ repoPath?: string | undefined;
328
+ },
329
+ /** True on a review pass: a reviewer neither rebases nor writes migrations. */
330
+ isReviewPass: boolean,
331
+ /** The focus whose unclaimed-migration record is read; '' skips the read. */
332
+ focusId: string,
333
+ /** The record reader; injected so a test needs no API. */
334
+ readUnclaimed?: (focusId: string) => Promise<string | null>,
335
+ /** Marks the record as handed to the team; injected for the same reason. */
336
+ markNamed?: (focusId: string, at: string) => Promise<void>): Promise<ComposedSpawnSections & UnclaimedRecordDelivery>;
240
337
  export {};
241
338
  //# sourceMappingURL=prompt-assembly.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-assembly.d.ts","sourceRoot":"","sources":["../../src/spawn/prompt-assembly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-assembly.d.ts","sourceRoot":"","sources":["../../src/spawn/prompt-assembly.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
2
  // Pinned by: packages/daemon/src/integration/review-rework-resume-verdict.test.ts,
3
3
  // packages/daemon/src/integration/verification-rework-resume-verdict.test.ts,
4
+ // packages/daemon/src/migrations/claim-production-wiring.test.ts,
4
5
  // packages/daemon/src/nexus/nexus-return-path-e2e.test.ts,
5
6
  // packages/daemon/src/prompt-sections/testing-standard.test.ts,
6
7
  // packages/daemon/src/prompt/prompt-contradictions.test.ts,
7
8
  // packages/daemon/src/prompt/remediation-framing-per-pass.test.ts,
8
9
  // packages/daemon/src/spawn/integration-reconcile-spawn.test.ts,
10
+ // packages/daemon/src/spawn/migration-numbering-spawn.test.ts,
11
+ // packages/daemon/src/spawn/migration-numbering-wiring.test.ts,
9
12
  // packages/daemon/src/spawn/prompt-assembly-resume-verdict.test.ts
10
13
  // PINNED-BY-END
11
14
  import { getActiveFocuses } from '../queries/focus-discovery.js';
@@ -14,6 +17,10 @@ import { buildRoleFrameworkPrompt, buildRemediationFramingSection, buildReviewOu
14
17
  import { buildCodingTestingStandardSection, buildReviewSensorAuditSection, } from '../prompt-sections/testing-standard.js';
15
18
  import { buildFocusTeamPrompt } from '../prompt/focus-prompt-builder.js';
16
19
  import { buildIntegrationReconcileSection } from '../prompt-sections/integration-reconcile-section.js';
20
+ import { MIGRATION_NUMBERING_HEADING, buildMigrationNumberingSection, } from '../prompt-sections/migration-numbering-section.js';
21
+ import { resolveMigrationNumberingState } from '../prompt-sections/migration-numbering-state.js';
22
+ import { buildUnclaimedMigrationSection } from '../prompt-sections/unclaimed-migration-section.js';
23
+ import { markUnclaimedMigrationNamed, readUnclaimedMigrationRecord, } from '../queries/focus-unclaimed-migration.js';
17
24
  import { resolveAssemblyRecipeWithManifest } from '../resolvers/assembly-engine.js';
18
25
  import { createLogger } from '../shell/log.js';
19
26
  import { judgedShaOfRun, latestJudgedDelivery } from '../verify/gate-verdict-source.js';
@@ -30,6 +37,30 @@ export function integrationReconcileLead(input) {
30
37
  const lines = buildIntegrationReconcileSection(input.integrationConflict ?? null, input.focusBranchName ?? '');
31
38
  return lines.length > 0 ? lines.join('\n') + '\n\n' : '';
32
39
  }
40
+ /**
41
+ * The numbering rule as a suffix to append (with its blank-line separator) --
42
+ * '' when the product declares no numbering, or on a review pass.
43
+ *
44
+ * Appended rather than prepended: reconciling a stale base is the coding
45
+ * stage's entry condition and must be read first, while the numbering rule is
46
+ * read at the moment a migration is written, which is later than everything
47
+ * else in the message.
48
+ *
49
+ * The FRESH-prompt shape gets it from `buildSpawnPrompt`; the resume delta and
50
+ * the forced-fresh scoping turn are built in `buildSpawnMessage` and append it
51
+ * themselves. All three, deliberately: a team that only ever sees resume deltas
52
+ * -- most turns of a long focus -- would otherwise never be told the rule.
53
+ */
54
+ export function migrationNumberingSuffix(input) {
55
+ const isReview = input.migrationNumberingIsReviewPass === true;
56
+ const blocks = [
57
+ // The unclaimed-file notice leads: it is about work already on the branch,
58
+ // which the team must resolve, while the rule below governs the next file.
59
+ buildUnclaimedMigrationSection(input.unclaimedMigrationRecord ?? null, isReview),
60
+ buildMigrationNumberingSection(input.migrationNumbering ?? null, isReview),
61
+ ].filter((lines) => lines.length > 0);
62
+ return blocks.length > 0 ? '\n\n' + blocks.map((lines) => lines.join('\n')).join('\n\n') : '';
63
+ }
33
64
  /**
34
65
  * Phase C input: assemble the FocusTeamPromptContext threaded into both the
35
66
  * directive and legacy prompt builders. Pure factory -- byte-identical to the
@@ -113,6 +144,11 @@ export function buildSpawnPrompt(args) {
113
144
  if (prdMilestoneContext.trim()) {
114
145
  prompt += '\n\n' + prdMilestoneContext;
115
146
  }
147
+ // The numbering rule is APPENDED: unlike the reconcile task it is not an entry
148
+ // condition, it is read at the moment a migration file is named. Empty on a
149
+ // review pass and on a product that declares no migration numbering, so those
150
+ // messages compose exactly as before.
151
+ prompt += migrationNumberingSuffix(args);
116
152
  // Reconciling a branch that cannot reach integration is the coding stage's
117
153
  // ENTRY CONDITION, so it is prepended -- read before the role framework, the
118
154
  // directive body and everything appended above. Empty (and the prompt
@@ -137,12 +173,60 @@ export function buildSpawnPrompt(args) {
137
173
  * INTENTIONALLY unscoped, so they are never driven into scoping here --
138
174
  * delivery-lifecycle terminalizes them instead.
139
175
  */
176
+ /**
177
+ * THE RULE SURVIVED COMPOSITION -- checked against the PRODUCT, not against the
178
+ * argument that was passed in.
179
+ *
180
+ * `ComposedSpawnSections` makes DROPPING the section spread a compile error. It
181
+ * does not make BLANKING one: `{ ...sectionInputs, migrationNumbering: null }`
182
+ * satisfies the type, and a null state is exactly what a product that declares
183
+ * no numbering looks like -- so nothing downstream could tell the two apart,
184
+ * and the team is spawned with no rule, numbers from its own worktree, and
185
+ * collides with its sibling. That is the whole failure, re-created by a one-word
186
+ * override that typechecks.
187
+ *
188
+ * So the fact is re-derived HERE, from `telora.migrations.json` itself, below
189
+ * every override: if this product declares numbering and this is a coding pass,
190
+ * the composed message must carry the rule.
191
+ *
192
+ * IT THROWS. The executor's catch abandons THIS spawn and the next poll tick
193
+ * re-attempts, so a transient cause costs one cycle. A persistent one wedges
194
+ * the focus loudly -- which is the right direction, because the alternative is
195
+ * a coding team quietly numbering by hand, which is the defect this whole
196
+ * focus removes and is invisible until two migrations share a number.
197
+ */
198
+ function assertNumberingRuleSurvived(message, args) {
199
+ if (args.migrationNumberingIsReviewPass === true)
200
+ return;
201
+ if (resolveMigrationNumberingState(args.config.repoPath) === null)
202
+ return;
203
+ if (message.includes(MIGRATION_NUMBERING_HEADING))
204
+ return;
205
+ throw new Error('The composed spawn message does not carry the migration-numbering rule, but this '
206
+ + 'product declares numbering (telora.migrations.json) and this is a coding pass. A '
207
+ + 'team spawned without the rule numbers from its own worktree, which is the '
208
+ + 'collision this declaration exists to prevent. Refusing the spawn rather than '
209
+ + 'sending a message that invites it.');
210
+ }
211
+ /**
212
+ * The spawn message, with the numbering rule checked against the product.
213
+ *
214
+ * The composition itself is `composeSpawnMessage`; this wrapper is where the
215
+ * invariant above is applied, so every shape it can return -- scoping, fresh,
216
+ * resume delta -- passes through one check.
217
+ */
140
218
  export async function buildSpawnMessage(args) {
219
+ const message = await composeSpawnMessage(args);
220
+ assertNumberingRuleSurvived(message, args);
221
+ return message;
222
+ }
223
+ async function composeSpawnMessage(args) {
141
224
  const { prompt, resumeId, readOnlyFocus, role, promptContext, spawnSpec, config, focusId, focusName, deliveries, issues, worktreePath, priorFindings, answeredEscalationsSection = '', gitDiffManifestSink, agentSessionId, resumeGate = commitGateSeams } = args;
142
225
  const answersSuffix = answeredEscalationsSection.trim() ? `\n\n${answeredEscalationsSection}` : '';
143
226
  // The fresh-prompt shape already carries the reconcile task (buildSpawnPrompt
144
227
  // prepended it); the two shapes built HERE must carry it themselves.
145
228
  const reconcileLead = integrationReconcileLead(args);
229
+ const numberingRule = migrationNumberingSuffix(args);
146
230
  // Scoping directive takes priority over the fresh/resume split, but ONLY for
147
231
  // executable (non-discovery) focuses. It is returned even when resumeId is
148
232
  // null because the caller forces this spawn fresh for exactly this case.
@@ -163,7 +247,7 @@ export async function buildSpawnMessage(args) {
163
247
  focusName,
164
248
  deliveries: unscopedDeliveries,
165
249
  });
166
- const messageToSend = `${reconcileLead}${roleFramework}\n\n${scopingDirective}${answersSuffix}`;
250
+ const messageToSend = `${reconcileLead}${roleFramework}\n\n${scopingDirective}${answersSuffix}${numberingRule}`;
167
251
  log.info(`[focus-executor] Spawning fresh scoping session for "${focusName}" ` +
168
252
  `-- role framework + explicit scoping directive for ${unscopedDeliveries.length} queued ` +
169
253
  `zero-issue deliver${unscopedDeliveries.length === 1 ? 'y' : 'ies'} ` +
@@ -192,7 +276,7 @@ export async function buildSpawnMessage(args) {
192
276
  gateVerdict: await readResumeGateVerdict(resumeGate, { productId: config.productId, focusId, focusReadOnly: readOnlyFocus }, deliveries),
193
277
  ...(reviewCoverage ? { reviewCoverage } : {}),
194
278
  ...(agentSessionId ? { agentSessionId } : {}),
195
- }) + answersSuffix;
279
+ }) + answersSuffix + numberingRule;
196
280
  log.info(`[focus-executor] Resuming Claude session ${resumeId} for "${focusName}" ` +
197
281
  `-- sending incremental delta (lineage ${spawnSpec.lineage}, ${messageToSend.length} chars, ` +
198
282
  `${priorFindings.length} prior finding(s))`);
@@ -348,4 +432,39 @@ export function buildQueuedDeliveryScopingMessage(args) {
348
432
  deliverySections,
349
433
  ].join('\n');
350
434
  }
435
+ export async function buildSpawnSectionInputs(
436
+ /** The resolved worktree; its sync carries a conflict only when a rebase aborted. */
437
+ worktree,
438
+ /** The branch the team is on, named in the reconcile task. */
439
+ focusBranchName,
440
+ /** The product-scoped config, read for its migration-numbering declaration. */
441
+ config,
442
+ /** True on a review pass: a reviewer neither rebases nor writes migrations. */
443
+ isReviewPass,
444
+ /** The focus whose unclaimed-migration record is read; '' skips the read. */
445
+ focusId,
446
+ /** The record reader; injected so a test needs no API. */
447
+ readUnclaimed = readUnclaimedMigrationRecord,
448
+ /** Marks the record as handed to the team; injected for the same reason. */
449
+ markNamed = markUnclaimedMigrationNamed) {
450
+ // A review pass is never shown it, so the read is skipped rather than made
451
+ // and discarded -- one fewer API call on every review spawn.
452
+ const unclaimedMigrationRecord = isReviewPass || !focusId
453
+ ? null
454
+ : await readUnclaimed(focusId);
455
+ return {
456
+ integrationConflict: worktree.integrationSync?.conflict ?? null,
457
+ focusBranchName,
458
+ migrationNumbering: resolveMigrationNumberingState(config.repoPath),
459
+ migrationNumberingIsReviewPass: isReviewPass,
460
+ unclaimedMigrationRecord,
461
+ // NOT called here. Marking the record named at composition time lifts the
462
+ // completion hold before the session exists -- a spawn that then fails
463
+ // leaves the hold lifted with nobody having read anything. The caller runs
464
+ // this once the session is actually up and the message has gone out.
465
+ confirmUnclaimedRecordDelivered: unclaimedMigrationRecord === null
466
+ ? null
467
+ : () => markNamed(focusId, new Date().toISOString()),
468
+ };
469
+ }
351
470
  //# sourceMappingURL=prompt-assembly.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-assembly.js","sourceRoot":"","sources":["../../src/spawn/prompt-assembly.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,mFAAmF;AACnF,gFAAgF;AAChF,6DAA6D;AAC7D,kEAAkE;AAClE,8DAA8D;AAC9D,qEAAqE;AACrE,mEAAmE;AACnE,qEAAqE;AACrE,gBAAgB;AAyBhB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,iCAAiC,EACjC,uBAAuB,GAExB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AAGvG,OAAO,EAAE,iCAAiC,EAAoD,MAAM,iCAAiC,CAAC;AAEtI,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAA0B,MAAM,kCAAkC,CAAC;AAEhH,OAAO,EAAE,eAAe,EAAwB,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAqBvD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAgC;IACvE,MAAM,KAAK,GAAG,gCAAgC,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IAC/G,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAgCvC;IACC,MAAM,EACJ,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EACjF,cAAc,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAChE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,GAAG,IAAI,EACrE,YAAY,GAAG,KAAK,GACrB,GAAG,IAAI,CAAC;IACT,OAAO;QACL,OAAO;QACP,SAAS;QACT,gBAAgB;QAChB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU;QACV,MAAM;QACN,eAAe;QACf,cAAc;QACd,yBAAyB;QACzB,QAAQ;QACR,WAAW;QACX,oBAAoB;QACpB,YAAY;QACZ,QAAQ;QACR,oBAAoB;QACpB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IA4BJ;IAC3B,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,EAAE,0BAA0B,GAAG,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAE7J,4EAA4E;IAC5E,iFAAiF;IACjF,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,gBAAgB,GAA2B,YAAY;QAC3D,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE;QAC1C,CAAC,CAAC,aAAa,CAAC;IAElB,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC,mBAAmB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,GAAG,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,CAAC;cACrD,MAAM;cACN,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;cAC/B,aAAa,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,8EAA8E;IAC9E,6EAA6E;IAC7E,8EAA8E;IAC9E,8DAA8D;IAC9D,IAAI,0BAA0B,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,MAAM,GAAG,0BAA0B,CAAC;IAChD,CAAC;IAED,gEAAgE;IAChE,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,4EAA4E;IAC5E,yEAAyE;IACzE,uEAAuE;IACvE,qDAAqD;IACrD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,MAAM,GAAG,6BAA6B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,IAAI,MAAM,GAAG,iCAAiC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,MAAM,GAAG,iCAAiC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,8EAA8E;IAC9E,6EAA6E;IAC7E,+EAA+E;IAC/E,yEAAyE;IACzE,IAAI,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,MAAM,GAAG,mBAAmB,CAAC;IACzC,CAAC;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,sEAAsE;IACtE,kEAAkE;IAClE,OAAO,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAiDa;IACnD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,0BAA0B,GAAG,EAAE,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC;IAClQ,MAAM,aAAa,GAAG,0BAA0B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnG,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAErD,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,kBAAkB,GAAG,qCAAqC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,mEAAmE;YACnE,0EAA0E;YAC1E,uEAAuE;YACvE,6EAA6E;YAC7E,2EAA2E;YAC3E,wEAAwE;YACxE,2EAA2E;YAC3E,oDAAoD;YACpD,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACpE,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;gBACzD,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,SAAS;gBACT,UAAU,EAAE,kBAAkB;aAC/B,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,GAAG,aAAa,GAAG,aAAa,OAAO,gBAAgB,GAAG,aAAa,EAAE,CAAC;YAChG,GAAG,CAAC,IAAI,CACN,wDAAwD,SAAS,IAAI;gBACrE,sDAAsD,kBAAkB,CAAC,MAAM,UAAU;gBACzF,qBAAqB,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;gBACrE,YAAY,SAAS,CAAC,OAAO,KAAK,aAAa,CAAC,MAAM,SAAS,CAChE,CAAC;YACF,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IAE7B,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,MAAM,2BAA2B,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEnH,MAAM,OAAO,GAAoB;QAC/B,OAAO;QACP,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,YAAY;QACZ,MAAM;QACN,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,aAAa,GAAG,uBAAuB,CAAC;QAC5D,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,SAAS;QACT,OAAO;QACP,aAAa;QACb,WAAW,EAAE,MAAM,qBAAqB,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,UAAU,CAAC;QACxI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC,GAAG,aAAa,CAAC;IACnB,GAAG,CAAC,IAAI,CACN,4CAA4C,QAAQ,SAAS,SAAS,IAAI;QAC1E,yCAAyC,SAAS,CAAC,OAAO,KAAK,aAAa,CAAC,MAAM,UAAU;QAC7F,GAAG,aAAa,CAAC,MAAM,oBAAoB,CAC5C,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC;AA0BD;;;;;;;;;;GAUG;AACH,KAAK,UAAU,2BAA2B,CACxC,OAAe,EACf,OAAe,EACf,MAAoB;IAEpB,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,0BAA0B,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;QAC1F,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,oBAAoB,IAAI,IAAI,CAAC;QAC1F,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;QACjE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;IACtG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,uDAAuD,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAC3F,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,qBAAqB,CAAC,OAAwB,EAAE,IAAyC;IACtG,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,iCAAiC,CAAC,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1G,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,gDAAgD,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACpF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,qBAAqB,CAClC,IAAqB,EACrB,KAAqE,EACrE,UAA0F;IAE1F,MAAM,MAAM,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IAChE,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7J,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,oDAAoD,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAKzC;IACC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACxD,IAAI,QAAQ;QAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACzD,MAAM,cAAc,GAAG,qCAAqC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5F,OAAO;QACL,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;QAC1C,cAAc;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,UAA0D,EAC1D,MAAkD;IAElD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;YAAE,SAAS;QACtE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CACtB,QAAQ,CAAC,EAAE,CACT,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,KAAK,QAAQ;QAC7C,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAIjD;IACC,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU;SACrC,KAAK,EAAE;SACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;SAC/C,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;QACxB,OAAO,KAAK,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE;QACpC,kBAAkB,QAAQ,CAAC,EAAE,EAAE;QAC/B,oBAAoB,QAAQ,CAAC,YAAY,EAAE;QAC3C,EAAE;QACF,iBAAiB;QACjB,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,QAAQ;QACxC,EAAE;QACF,yBAAyB;QACzB,QAAQ,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,QAAQ;QAC/C,EAAE;QACF,uBAAuB;QACvB,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,QAAQ;KACzC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACZ,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;QACL,gDAAgD;QAChD,EAAE;QACF,sCAAsC,IAAI,CAAC,OAAO,eAAe,IAAI,CAAC,SAAS,iIAAiI;QAChN,EAAE;QACF,mYAAmY;QACnY,EAAE;QACF,kLAAkL;QAClL,EAAE;QACF,gBAAgB;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"prompt-assembly.js","sourceRoot":"","sources":["../../src/spawn/prompt-assembly.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-hold-park.d.ts","sourceRoot":"","sources":["../../src/spawn/review-hold-park.ts"],"names":[],"mappings":"AAuFA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAQtC,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnE,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;IACrF,+BAA+B,CAAC,EAAE,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;IACtF,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAChE,gFAAgF;IAChF,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAWD,8CAA8C;AAC9C,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC/C,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CA2DhC"}
1
+ {"version":3,"file":"review-hold-park.d.ts","sourceRoot":"","sources":["../../src/spawn/review-hold-park.ts"],"names":[],"mappings":"AAuFA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAStC,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnE,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;IACrF,+BAA+B,CAAC,EAAE,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;IACtF,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAChE,gFAAgF;IAChF,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAWD,8CAA8C;AAC9C,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC/C,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAgEhC"}
@@ -86,6 +86,7 @@ import { updateDeliveryStatus } from '../queries/deliveries.js';
86
86
  import { clearOperatorHoldGateState, hasOperatorHoldMarker, resolveOperatorHold, } from '../delivery/operator-hold.js';
87
87
  import { hasCommitVerdictHoldMarker } from '../delivery/commit-verdict-hold.js';
88
88
  import { shortfallParkRefusingRework } from '../verify/shortfall-park.js';
89
+ import { hasModelUnavailableHold } from '../queries/verify-own-holds.js';
89
90
  import { clearSpawnCooldownDurably } from './spawn-cooldown.js';
90
91
  import { createLogger } from '../shell/log.js';
91
92
  const log = createLogger({ module: 'spawn' });
@@ -119,7 +120,10 @@ export async function gateReviewSpawnOnOperatorHold(focus, deps = {}) {
119
120
  const marked = deliveries.filter((d) => d.executionStatus === VERIFY_STATUS && hasOperatorHoldMarker(d.gateState));
120
121
  const verdictHeldIds = new Set(deliveries.filter((d) => d.executionStatus === VERIFY_STATUS && hasCommitVerdictHoldMarker(d.gateState)).map((d) => d.id));
121
122
  const parkedIds = new Set(deliveries.filter((d) => shortfallParkRefusingRework(d) !== null).map((d) => d.id));
122
- if (marked.length === 0 && verdictHeldIds.size === 0 && parkedIds.size === 0) {
123
+ // Awaiting the model (queries/verify-own-holds.ts): verify's reconciliation could
124
+ // not run, so no verdict exists for a review to close on. Verify releases it.
125
+ const awaitedIds = new Set(deliveries.filter((d) => d.executionStatus === VERIFY_STATUS && hasModelUnavailableHold(d.gateState)).map((d) => d.id));
126
+ if (marked.length === 0 && verdictHeldIds.size === 0 && parkedIds.size === 0 && awaitedIds.size === 0) {
123
127
  parkLogged.delete(focus.focus_id);
124
128
  return 'none';
125
129
  }
@@ -145,7 +149,7 @@ export async function gateReviewSpawnOnOperatorHold(focus, deps = {}) {
145
149
  }
146
150
  // Every recorded hold still stands. Park only when the review has nothing else
147
151
  // it could move: every non-terminal delivery is one of those held deliveries.
148
- const heldIds = new Set([...marked.map((d) => d.id), ...verdictHeldIds, ...parkedIds]);
152
+ const heldIds = new Set([...marked.map((d) => d.id), ...verdictHeldIds, ...parkedIds, ...awaitedIds]);
149
153
  const onlyHeldWork = deliveries.every((d) => TERMINAL_STATUSES.has(d.executionStatus ?? '') || heldIds.has(d.id));
150
154
  if (!onlyHeldWork) {
151
155
  parkLogged.delete(focus.focus_id);
@@ -154,7 +158,7 @@ export async function gateReviewSpawnOnOperatorHold(focus, deps = {}) {
154
158
  if (!parkLogged.has(focus.focus_id)) {
155
159
  parkLogged.add(focus.focus_id);
156
160
  log.info(`[review-hold-park] "${focus.focus_name}": review parked -- every non-terminal delivery is held in verify ` +
157
- `by an open operator escalation, an awaited gate verdict or a repeating-shortfall park; no review team spawns ` +
161
+ `by an open operator escalation, an awaited gate verdict, an awaited model or a repeating-shortfall park; no review team spawns ` +
158
162
  `(and no teardown accrues) until it clears`);
159
163
  }
160
164
  return 'parked';
@@ -1 +1 @@
1
- {"version":3,"file":"review-hold-park.js","sourceRoot":"","sources":["../../src/spawn/review-hold-park.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-hold-park.js","sourceRoot":"","sources":["../../src/spawn/review-hold-park.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { type ChildProcess } from 'node:child_process';
15
15
  import { type TokenUsage } from '@telora/daemon-core';
16
16
  import type { DaemonConfig } from '../types/index.js';
17
17
  import { type TelemetryMetricRow } from '../otlp/telemetry-writer.js';
18
+ import { type ModelUnavailableKind } from './one-shot-model.js';
18
19
  /**
19
20
  * MODEL PIN: 'opus'. A routing decision is the one place the system chooses to
20
21
  * interrupt a human: it climbs the intent ladder (product/focus context +
@@ -61,7 +62,36 @@ export interface RoutingDeciderSpawnResult {
61
62
  stderr: string;
62
63
  sessionId: string | null;
63
64
  errorMessage?: string;
65
+ /**
66
+ * The MODEL was unavailable: the provider rejected the session on a rate limit
67
+ * (the stream's typed rate_limit_event, a 429 result, or the CLI's own limit
68
+ * prose in the result), refused it on auth (401/403 or its prose), or the
69
+ * provider-wide window was open so nothing was spawned. The decider did not
70
+ * decide and did not ATTEMPT -- the sweep stamps nothing and re-hands the
71
+ * observation once the model is reachable. A timeout with NO provider refusal
72
+ * is not this: a decider that was working for ten minutes ran. A timeout AFTER
73
+ * a refusal is (the refusal explains why it never finished).
74
+ */
75
+ modelUnavailable?: {
76
+ kind: ModelUnavailableKind;
77
+ resetAtMs: number | null;
78
+ };
64
79
  }
80
+ /** What the spawn observed of the provider, for classifying an unavailability. Pure. */
81
+ export interface DeciderProviderFacts {
82
+ rateLimitRejected: {
83
+ resetAtMs: number | null;
84
+ } | null;
85
+ apiErrorStatus: number | null;
86
+ /** The error result's text, when the result was an error (the CLI's own words). */
87
+ errorResultText: string | null;
88
+ }
89
+ /**
90
+ * Pure: the model unavailability a finished decider's facts amount to, or null
91
+ * (any other outcome). Typed signals first; the result's prose is read through
92
+ * the one-shot wrapper's classifier so both spawners read one CLI the same way.
93
+ */
94
+ export declare function deciderModelUnavailability(facts: DeciderProviderFacts): RoutingDeciderSpawnResult['modelUnavailable'] | undefined;
65
95
  /** Injectable process seam (tests pass a fake child). */
66
96
  export interface RoutingDeciderSpawnSeam {
67
97
  spawnProcess: (command: string, args: string[], options: {
@@ -1 +1 @@
1
- {"version":3,"file":"routing-decider-spawn.d.ts","sourceRoot":"","sources":["../../src/spawn/routing-decider-spawn.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,OAAO,EAAuC,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAM3G;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAE5C,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B,QAAiB,CAAC;AAEzD,wFAAwF;AACxF,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAQtD,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,iGAAiG;IACjG,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,yDAAyD;AACzD,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;KAAE,KAAK,YAAY,CAAC;IACnI,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAClD;AAOD,wCAAwC;AACxC,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,0BAA0B,EAAE,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG,MAAM,EAAE,CAW7H;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,kBAAkB,CAoBrB;AAED,wGAAwG;AACxG,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,0BAA0B,EAChC,IAAI,GAAE,uBAAqC,GAC1C,OAAO,CAAC,yBAAyB,CAAC,CA+EpC"}
1
+ {"version":3,"file":"routing-decider-spawn.d.ts","sourceRoot":"","sources":["../../src/spawn/routing-decider-spawn.ts"],"names":[],"mappings":"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"}