oh-my-super-agent 0.1.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 (461) hide show
  1. package/.agents/agents/advisor.md +15 -0
  2. package/.agents/agents/conductor.md +32 -0
  3. package/.agents/agents/dreamer.md +13 -0
  4. package/.agents/agents/executor.md +17 -0
  5. package/.agents/agents/grader.md +15 -0
  6. package/.agents/config/endurance-policy.json +8 -0
  7. package/.agents/config/oms-config.json +119 -0
  8. package/.agents/config/release-policy.json +12 -0
  9. package/.agents/config/secret-scan-policy.json +7 -0
  10. package/.agents/config/verification-plan.json +33 -0
  11. package/.agents/registry.json +11 -0
  12. package/.agents/rules/constitution.md +7 -0
  13. package/.agents/skills/conductor/SKILL.md +23 -0
  14. package/.agents/skills/dream/SKILL.md +14 -0
  15. package/.agents/skills/executor/SKILL.md +13 -0
  16. package/.agents/skills/oms/SKILL.md +52 -0
  17. package/.agents/skills/quota-aware/SKILL.md +12 -0
  18. package/.agents/skills/schedule/SKILL.md +13 -0
  19. package/.agents/skills/team-protocol/SKILL.md +20 -0
  20. package/LICENSE +21 -0
  21. package/README.md +146 -0
  22. package/dist/src/audit/run-ledger.d.ts +183 -0
  23. package/dist/src/audit/run-ledger.js +1655 -0
  24. package/dist/src/audit/run-ledger.js.map +1 -0
  25. package/dist/src/cli.d.ts +61 -0
  26. package/dist/src/cli.js +2096 -0
  27. package/dist/src/cli.js.map +1 -0
  28. package/dist/src/commands/github-queue-probe.d.ts +26 -0
  29. package/dist/src/commands/github-queue-probe.js +51 -0
  30. package/dist/src/commands/github-queue-probe.js.map +1 -0
  31. package/dist/src/commands/trace-fixture.d.ts +20 -0
  32. package/dist/src/commands/trace-fixture.js +72 -0
  33. package/dist/src/commands/trace-fixture.js.map +1 -0
  34. package/dist/src/conductor/activity.d.ts +46 -0
  35. package/dist/src/conductor/activity.js +224 -0
  36. package/dist/src/conductor/activity.js.map +1 -0
  37. package/dist/src/conductor/bridge.d.ts +53 -0
  38. package/dist/src/conductor/bridge.js +652 -0
  39. package/dist/src/conductor/bridge.js.map +1 -0
  40. package/dist/src/conductor/notifications.d.ts +59 -0
  41. package/dist/src/conductor/notifications.js +381 -0
  42. package/dist/src/conductor/notifications.js.map +1 -0
  43. package/dist/src/conductor/recovery.d.ts +29 -0
  44. package/dist/src/conductor/recovery.js +198 -0
  45. package/dist/src/conductor/recovery.js.map +1 -0
  46. package/dist/src/conductor/start.d.ts +73 -0
  47. package/dist/src/conductor/start.js +519 -0
  48. package/dist/src/conductor/start.js.map +1 -0
  49. package/dist/src/conductor/waiter.d.ts +88 -0
  50. package/dist/src/conductor/waiter.js +427 -0
  51. package/dist/src/conductor/waiter.js.map +1 -0
  52. package/dist/src/config.d.ts +9 -0
  53. package/dist/src/config.js +40 -0
  54. package/dist/src/config.js.map +1 -0
  55. package/dist/src/dispatch/advice-source.d.ts +61 -0
  56. package/dist/src/dispatch/advice-source.js +198 -0
  57. package/dist/src/dispatch/advice-source.js.map +1 -0
  58. package/dist/src/dispatch/advice-store.d.ts +41 -0
  59. package/dist/src/dispatch/advice-store.js +201 -0
  60. package/dist/src/dispatch/advice-store.js.map +1 -0
  61. package/dist/src/dispatch/advice.d.ts +34 -0
  62. package/dist/src/dispatch/advice.js +371 -0
  63. package/dist/src/dispatch/advice.js.map +1 -0
  64. package/dist/src/dispatch/authority.d.ts +124 -0
  65. package/dist/src/dispatch/authority.js +1202 -0
  66. package/dist/src/dispatch/authority.js.map +1 -0
  67. package/dist/src/dispatch/intent.d.ts +66 -0
  68. package/dist/src/dispatch/intent.js +71 -0
  69. package/dist/src/dispatch/intent.js.map +1 -0
  70. package/dist/src/dispatch/runtime-authority.d.ts +42 -0
  71. package/dist/src/dispatch/runtime-authority.js +52 -0
  72. package/dist/src/dispatch/runtime-authority.js.map +1 -0
  73. package/dist/src/doctor.d.ts +20 -0
  74. package/dist/src/doctor.js +85 -0
  75. package/dist/src/doctor.js.map +1 -0
  76. package/dist/src/domain/records.d.ts +44 -0
  77. package/dist/src/domain/records.js +138 -0
  78. package/dist/src/domain/records.js.map +1 -0
  79. package/dist/src/domain/role-policy.d.ts +67 -0
  80. package/dist/src/domain/role-policy.js +547 -0
  81. package/dist/src/domain/role-policy.js.map +1 -0
  82. package/dist/src/events/bus.d.ts +32 -0
  83. package/dist/src/events/bus.js +115 -0
  84. package/dist/src/events/bus.js.map +1 -0
  85. package/dist/src/events/kinds.d.ts +126 -0
  86. package/dist/src/events/kinds.js +14 -0
  87. package/dist/src/events/kinds.js.map +1 -0
  88. package/dist/src/evidence/immutable-file.d.ts +12 -0
  89. package/dist/src/evidence/immutable-file.js +141 -0
  90. package/dist/src/evidence/immutable-file.js.map +1 -0
  91. package/dist/src/evidence/store.d.ts +125 -0
  92. package/dist/src/evidence/store.js +1189 -0
  93. package/dist/src/evidence/store.js.map +1 -0
  94. package/dist/src/evidence/verdict.d.ts +17 -0
  95. package/dist/src/evidence/verdict.js +23 -0
  96. package/dist/src/evidence/verdict.js.map +1 -0
  97. package/dist/src/generation/agent.d.ts +5 -0
  98. package/dist/src/generation/agent.js +34 -0
  99. package/dist/src/generation/agent.js.map +1 -0
  100. package/dist/src/generation/frontmatter.d.ts +7 -0
  101. package/dist/src/generation/frontmatter.js +33 -0
  102. package/dist/src/generation/frontmatter.js.map +1 -0
  103. package/dist/src/github/adapter.d.ts +44 -0
  104. package/dist/src/github/adapter.js +592 -0
  105. package/dist/src/github/adapter.js.map +1 -0
  106. package/dist/src/github/dispatch-eligibility.d.ts +9 -0
  107. package/dist/src/github/dispatch-eligibility.js +94 -0
  108. package/dist/src/github/dispatch-eligibility.js.map +1 -0
  109. package/dist/src/github/projector.d.ts +23 -0
  110. package/dist/src/github/projector.js +181 -0
  111. package/dist/src/github/projector.js.map +1 -0
  112. package/dist/src/github/review.d.ts +39 -0
  113. package/dist/src/github/review.js +1450 -0
  114. package/dist/src/github/review.js.map +1 -0
  115. package/dist/src/github/sync.d.ts +21 -0
  116. package/dist/src/github/sync.js +518 -0
  117. package/dist/src/github/sync.js.map +1 -0
  118. package/dist/src/github/types.d.ts +134 -0
  119. package/dist/src/github/types.js +11 -0
  120. package/dist/src/github/types.js.map +1 -0
  121. package/dist/src/goals/artifact-store.d.ts +31 -0
  122. package/dist/src/goals/artifact-store.js +241 -0
  123. package/dist/src/goals/artifact-store.js.map +1 -0
  124. package/dist/src/goals/authority.d.ts +112 -0
  125. package/dist/src/goals/authority.js +621 -0
  126. package/dist/src/goals/authority.js.map +1 -0
  127. package/dist/src/goals/native-snapshot.d.ts +12 -0
  128. package/dist/src/goals/native-snapshot.js +53 -0
  129. package/dist/src/goals/native-snapshot.js.map +1 -0
  130. package/dist/src/goals/runtime-authority.d.ts +7 -0
  131. package/dist/src/goals/runtime-authority.js +20 -0
  132. package/dist/src/goals/runtime-authority.js.map +1 -0
  133. package/dist/src/health/release-assessment.d.ts +11 -0
  134. package/dist/src/health/release-assessment.js +83 -0
  135. package/dist/src/health/release-assessment.js.map +1 -0
  136. package/dist/src/health/release-policy.d.ts +16 -0
  137. package/dist/src/health/release-policy.js +40 -0
  138. package/dist/src/health/release-policy.js.map +1 -0
  139. package/dist/src/hooks/native.d.ts +30 -0
  140. package/dist/src/hooks/native.js +495 -0
  141. package/dist/src/hooks/native.js.map +1 -0
  142. package/dist/src/hooks/provider-runtime.d.ts +55 -0
  143. package/dist/src/hooks/provider-runtime.js +479 -0
  144. package/dist/src/hooks/provider-runtime.js.map +1 -0
  145. package/dist/src/hooks/provider.d.ts +102 -0
  146. package/dist/src/hooks/provider.js +358 -0
  147. package/dist/src/hooks/provider.js.map +1 -0
  148. package/dist/src/live/contact-journal.d.ts +73 -0
  149. package/dist/src/live/contact-journal.js +439 -0
  150. package/dist/src/live/contact-journal.js.map +1 -0
  151. package/dist/src/live-probes/gh-adapter.d.ts +28 -0
  152. package/dist/src/live-probes/gh-adapter.js +188 -0
  153. package/dist/src/live-probes/gh-adapter.js.map +1 -0
  154. package/dist/src/live-probes/github-queue.d.ts +1 -0
  155. package/dist/src/live-probes/github-queue.js +2 -0
  156. package/dist/src/live-probes/github-queue.js.map +1 -0
  157. package/dist/src/notifications/slack-request.d.ts +13 -0
  158. package/dist/src/notifications/slack-request.js +40 -0
  159. package/dist/src/notifications/slack-request.js.map +1 -0
  160. package/dist/src/outbox/processor.d.ts +27 -0
  161. package/dist/src/outbox/processor.js +63 -0
  162. package/dist/src/outbox/processor.js.map +1 -0
  163. package/dist/src/outbox/store.d.ts +158 -0
  164. package/dist/src/outbox/store.js +834 -0
  165. package/dist/src/outbox/store.js.map +1 -0
  166. package/dist/src/package-root.d.ts +1 -0
  167. package/dist/src/package-root.js +26 -0
  168. package/dist/src/package-root.js.map +1 -0
  169. package/dist/src/project.d.ts +12 -0
  170. package/dist/src/project.js +60 -0
  171. package/dist/src/project.js.map +1 -0
  172. package/dist/src/projection/generated-file.d.ts +15 -0
  173. package/dist/src/projection/generated-file.js +72 -0
  174. package/dist/src/projection/generated-file.js.map +1 -0
  175. package/dist/src/projection/project-workspace.d.ts +11 -0
  176. package/dist/src/projection/project-workspace.js +94 -0
  177. package/dist/src/projection/project-workspace.js.map +1 -0
  178. package/dist/src/projection/registry.d.ts +15 -0
  179. package/dist/src/projection/registry.js +59 -0
  180. package/dist/src/projection/registry.js.map +1 -0
  181. package/dist/src/projection/safe-path.d.ts +4 -0
  182. package/dist/src/projection/safe-path.js +106 -0
  183. package/dist/src/projection/safe-path.js.map +1 -0
  184. package/dist/src/providers/claude-interactive.d.ts +38 -0
  185. package/dist/src/providers/claude-interactive.js +287 -0
  186. package/dist/src/providers/claude-interactive.js.map +1 -0
  187. package/dist/src/providers/claude-structured-bridge.d.ts +32 -0
  188. package/dist/src/providers/claude-structured-bridge.js +215 -0
  189. package/dist/src/providers/claude-structured-bridge.js.map +1 -0
  190. package/dist/src/providers/claude-structured-completion.d.ts +23 -0
  191. package/dist/src/providers/claude-structured-completion.js +229 -0
  192. package/dist/src/providers/claude-structured-completion.js.map +1 -0
  193. package/dist/src/providers/claude-structured-pane.d.ts +23 -0
  194. package/dist/src/providers/claude-structured-pane.js +156 -0
  195. package/dist/src/providers/claude-structured-pane.js.map +1 -0
  196. package/dist/src/providers/claude-structured-store.d.ts +48 -0
  197. package/dist/src/providers/claude-structured-store.js +212 -0
  198. package/dist/src/providers/claude-structured-store.js.map +1 -0
  199. package/dist/src/providers/claude-structured.d.ts +56 -0
  200. package/dist/src/providers/claude-structured.js +250 -0
  201. package/dist/src/providers/claude-structured.js.map +1 -0
  202. package/dist/src/providers/codex-exec.d.ts +29 -0
  203. package/dist/src/providers/codex-exec.js +127 -0
  204. package/dist/src/providers/codex-exec.js.map +1 -0
  205. package/dist/src/providers/grading.d.ts +2 -0
  206. package/dist/src/providers/grading.js +20 -0
  207. package/dist/src/providers/grading.js.map +1 -0
  208. package/dist/src/providers/native-dispatch.d.ts +24 -0
  209. package/dist/src/providers/native-dispatch.js +34 -0
  210. package/dist/src/providers/native-dispatch.js.map +1 -0
  211. package/dist/src/providers/preflight.d.ts +65 -0
  212. package/dist/src/providers/preflight.js +256 -0
  213. package/dist/src/providers/preflight.js.map +1 -0
  214. package/dist/src/providers/process.d.ts +18 -0
  215. package/dist/src/providers/process.js +21 -0
  216. package/dist/src/providers/process.js.map +1 -0
  217. package/dist/src/queue/model.d.ts +37 -0
  218. package/dist/src/queue/model.js +51 -0
  219. package/dist/src/queue/model.js.map +1 -0
  220. package/dist/src/queue/service.d.ts +1 -0
  221. package/dist/src/queue/service.js +2 -0
  222. package/dist/src/queue/service.js.map +1 -0
  223. package/dist/src/reflections/store.d.ts +21 -0
  224. package/dist/src/reflections/store.js +60 -0
  225. package/dist/src/reflections/store.js.map +1 -0
  226. package/dist/src/reports/daily-trust.d.ts +11 -0
  227. package/dist/src/reports/daily-trust.js +98 -0
  228. package/dist/src/reports/daily-trust.js.map +1 -0
  229. package/dist/src/runs/controller.d.ts +187 -0
  230. package/dist/src/runs/controller.js +1182 -0
  231. package/dist/src/runs/controller.js.map +1 -0
  232. package/dist/src/runtime/composition.d.ts +9 -0
  233. package/dist/src/runtime/composition.js +35 -0
  234. package/dist/src/runtime/composition.js.map +1 -0
  235. package/dist/src/runtime/endurance-authorities.d.ts +44 -0
  236. package/dist/src/runtime/endurance-authorities.js +101 -0
  237. package/dist/src/runtime/endurance-authorities.js.map +1 -0
  238. package/dist/src/runtime/endurance-policy.d.ts +12 -0
  239. package/dist/src/runtime/endurance-policy.js +13 -0
  240. package/dist/src/runtime/endurance-policy.js.map +1 -0
  241. package/dist/src/runtime/lock.d.ts +63 -0
  242. package/dist/src/runtime/lock.js +577 -0
  243. package/dist/src/runtime/lock.js.map +1 -0
  244. package/dist/src/runtime/process-identity.d.ts +10 -0
  245. package/dist/src/runtime/process-identity.js +43 -0
  246. package/dist/src/runtime/process-identity.js.map +1 -0
  247. package/dist/src/runtime/quota.d.ts +130 -0
  248. package/dist/src/runtime/quota.js +590 -0
  249. package/dist/src/runtime/quota.js.map +1 -0
  250. package/dist/src/runtime/record-store.d.ts +45 -0
  251. package/dist/src/runtime/record-store.js +272 -0
  252. package/dist/src/runtime/record-store.js.map +1 -0
  253. package/dist/src/runtime/schema.d.ts +28 -0
  254. package/dist/src/runtime/schema.js +194 -0
  255. package/dist/src/runtime/schema.js.map +1 -0
  256. package/dist/src/runtime/stable-id.d.ts +3 -0
  257. package/dist/src/runtime/stable-id.js +27 -0
  258. package/dist/src/runtime/stable-id.js.map +1 -0
  259. package/dist/src/runtime/system-clock.d.ts +8 -0
  260. package/dist/src/runtime/system-clock.js +35 -0
  261. package/dist/src/runtime/system-clock.js.map +1 -0
  262. package/dist/src/schedule/service-plan.d.ts +58 -0
  263. package/dist/src/schedule/service-plan.js +327 -0
  264. package/dist/src/schedule/service-plan.js.map +1 -0
  265. package/dist/src/schedule/user-installation.d.ts +62 -0
  266. package/dist/src/schedule/user-installation.js +701 -0
  267. package/dist/src/schedule/user-installation.js.map +1 -0
  268. package/dist/src/schedule/user-plan.d.ts +47 -0
  269. package/dist/src/schedule/user-plan.js +286 -0
  270. package/dist/src/schedule/user-plan.js.map +1 -0
  271. package/dist/src/scheduler/minute.d.ts +31 -0
  272. package/dist/src/scheduler/minute.js +441 -0
  273. package/dist/src/scheduler/minute.js.map +1 -0
  274. package/dist/src/schemas/registry.d.ts +10 -0
  275. package/dist/src/schemas/registry.js +36 -0
  276. package/dist/src/schemas/registry.js.map +1 -0
  277. package/dist/src/security/secret-scan.d.ts +50 -0
  278. package/dist/src/security/secret-scan.js +384 -0
  279. package/dist/src/security/secret-scan.js.map +1 -0
  280. package/dist/src/sessions/registry.d.ts +89 -0
  281. package/dist/src/sessions/registry.js +443 -0
  282. package/dist/src/sessions/registry.js.map +1 -0
  283. package/dist/src/state.d.ts +27 -0
  284. package/dist/src/state.js +235 -0
  285. package/dist/src/state.js.map +1 -0
  286. package/dist/src/status/hud.d.ts +37 -0
  287. package/dist/src/status/hud.js +88 -0
  288. package/dist/src/status/hud.js.map +1 -0
  289. package/dist/src/team/plan.d.ts +31 -0
  290. package/dist/src/team/plan.js +184 -0
  291. package/dist/src/team/plan.js.map +1 -0
  292. package/dist/src/team/projection.d.ts +24 -0
  293. package/dist/src/team/projection.js +79 -0
  294. package/dist/src/team/projection.js.map +1 -0
  295. package/dist/src/tickets/admission.d.ts +34 -0
  296. package/dist/src/tickets/admission.js +169 -0
  297. package/dist/src/tickets/admission.js.map +1 -0
  298. package/dist/src/tickets/materializer.d.ts +1 -0
  299. package/dist/src/tickets/materializer.js +2 -0
  300. package/dist/src/tickets/materializer.js.map +1 -0
  301. package/dist/src/tickets/runtime-authority.d.ts +32 -0
  302. package/dist/src/tickets/runtime-authority.js +46 -0
  303. package/dist/src/tickets/runtime-authority.js.map +1 -0
  304. package/dist/src/tickets/store.d.ts +221 -0
  305. package/dist/src/tickets/store.js +2025 -0
  306. package/dist/src/tickets/store.js.map +1 -0
  307. package/dist/src/tracer/one-ticket.d.ts +58 -0
  308. package/dist/src/tracer/one-ticket.js +578 -0
  309. package/dist/src/tracer/one-ticket.js.map +1 -0
  310. package/dist/src/trust/assessment.d.ts +24 -0
  311. package/dist/src/trust/assessment.js +124 -0
  312. package/dist/src/trust/assessment.js.map +1 -0
  313. package/dist/src/trust/runs.d.ts +13 -0
  314. package/dist/src/trust/runs.js +46 -0
  315. package/dist/src/trust/runs.js.map +1 -0
  316. package/dist/src/types.d.ts +6 -0
  317. package/dist/src/types.js +2 -0
  318. package/dist/src/types.js.map +1 -0
  319. package/dist/src/utils/fs.d.ts +13 -0
  320. package/dist/src/utils/fs.js +188 -0
  321. package/dist/src/utils/fs.js.map +1 -0
  322. package/dist/src/verification/authority.d.ts +28 -0
  323. package/dist/src/verification/authority.js +153 -0
  324. package/dist/src/verification/authority.js.map +1 -0
  325. package/dist/src/verification/grade-source.d.ts +17 -0
  326. package/dist/src/verification/grade-source.js +30 -0
  327. package/dist/src/verification/grade-source.js.map +1 -0
  328. package/dist/src/verification/plan.d.ts +20 -0
  329. package/dist/src/verification/plan.js +128 -0
  330. package/dist/src/verification/plan.js.map +1 -0
  331. package/dist/src/verification/protected-runner.d.ts +50 -0
  332. package/dist/src/verification/protected-runner.js +171 -0
  333. package/dist/src/verification/protected-runner.js.map +1 -0
  334. package/dist/src/verification/result-gate-store.d.ts +72 -0
  335. package/dist/src/verification/result-gate-store.js +193 -0
  336. package/dist/src/verification/result-gate-store.js.map +1 -0
  337. package/dist/src/verification/result-gate.d.ts +41 -0
  338. package/dist/src/verification/result-gate.js +731 -0
  339. package/dist/src/verification/result-gate.js.map +1 -0
  340. package/dist/src/verification/runner.d.ts +38 -0
  341. package/dist/src/verification/runner.js +143 -0
  342. package/dist/src/verification/runner.js.map +1 -0
  343. package/dist/src/verification/sandbox.d.ts +16 -0
  344. package/dist/src/verification/sandbox.js +199 -0
  345. package/dist/src/verification/sandbox.js.map +1 -0
  346. package/dist/src/verify.d.ts +8 -0
  347. package/dist/src/verify.js +35 -0
  348. package/dist/src/verify.js.map +1 -0
  349. package/dist/src/watchdog/reconcile.d.ts +42 -0
  350. package/dist/src/watchdog/reconcile.js +440 -0
  351. package/dist/src/watchdog/reconcile.js.map +1 -0
  352. package/dist/src/workers/bridge.d.ts +35 -0
  353. package/dist/src/workers/bridge.js +426 -0
  354. package/dist/src/workers/bridge.js.map +1 -0
  355. package/dist/src/workers/delivery.d.ts +31 -0
  356. package/dist/src/workers/delivery.js +876 -0
  357. package/dist/src/workers/delivery.js.map +1 -0
  358. package/dist/src/workers/panes.d.ts +32 -0
  359. package/dist/src/workers/panes.js +212 -0
  360. package/dist/src/workers/panes.js.map +1 -0
  361. package/dist/src/workers/registry.d.ts +80 -0
  362. package/dist/src/workers/registry.js +351 -0
  363. package/dist/src/workers/registry.js.map +1 -0
  364. package/dist/src/workers/runtime.d.ts +44 -0
  365. package/dist/src/workers/runtime.js +21 -0
  366. package/dist/src/workers/runtime.js.map +1 -0
  367. package/dist/src/worktrees/manager.d.ts +35 -0
  368. package/dist/src/worktrees/manager.js +315 -0
  369. package/dist/src/worktrees/manager.js.map +1 -0
  370. package/docs/ARCHITECTURE.md +323 -0
  371. package/docs/PLAN.md +216 -0
  372. package/docs/REFERENCES.md +42 -0
  373. package/docs/ROADMAP.md +327 -0
  374. package/docs/SECURITY.md +242 -0
  375. package/docs/adr/0001-tracer-first-file-backed-certification.md +41 -0
  376. package/docs/adr/0002-conductor-first-typed-dispatch.md +102 -0
  377. package/docs/adr/0003-mandatory-pre-dispatch-advice.md +59 -0
  378. package/docs/compatibility/claude-code-2.1.207.md +25 -0
  379. package/loop/contract.md +102 -0
  380. package/package.json +54 -0
  381. package/schemas/advisor-evidence.schema.json +54 -0
  382. package/schemas/advisor-output.schema.json +31 -0
  383. package/schemas/conductor-activity-payload.schema.json +38 -0
  384. package/schemas/conductor-decision.schema.json +29 -0
  385. package/schemas/conductor-dispatch-intent.schema.json +71 -0
  386. package/schemas/conductor-dispatch-preparation.schema.json +46 -0
  387. package/schemas/conductor-dispatch-proposal.schema.json +82 -0
  388. package/schemas/conductor-goal-proposal.schema.json +30 -0
  389. package/schemas/conductor-manage-worker.schema.json +17 -0
  390. package/schemas/conductor-notification-payload.schema.json +39 -0
  391. package/schemas/conductor-process-result.schema.json +14 -0
  392. package/schemas/conductor-route.schema.json +51 -0
  393. package/schemas/conductor-start-team.schema.json +16 -0
  394. package/schemas/conductor-waiter-payload.schema.json +68 -0
  395. package/schemas/deterministic-check.schema.json +107 -0
  396. package/schemas/dispatch-acknowledgement.schema.json +15 -0
  397. package/schemas/dispatch-advice-payload.schema.json +64 -0
  398. package/schemas/dispatch-payload.schema.json +131 -0
  399. package/schemas/dispatch-result.schema.json +28 -0
  400. package/schemas/endurance-policy.schema.json +16 -0
  401. package/schemas/events/dispatch-delivery-requested.schema.json +17 -0
  402. package/schemas/events/github-observed.schema.json +28 -0
  403. package/schemas/events/native-hook-observed.schema.json +35 -0
  404. package/schemas/events/provider-observed.schema.json +64 -0
  405. package/schemas/events/run-heartbeat-due.schema.json +10 -0
  406. package/schemas/events/slack-notification-requested.schema.json +14 -0
  407. package/schemas/events/structured-role-completed.schema.json +54 -0
  408. package/schemas/events/ticket-resume-due.schema.json +28 -0
  409. package/schemas/events/watchdog-lease-expired.schema.json +14 -0
  410. package/schemas/events/watchdog-outbox-stalled.schema.json +12 -0
  411. package/schemas/events/watchdog-session-stalled.schema.json +11 -0
  412. package/schemas/evidence-record.schema.json +37 -0
  413. package/schemas/executor-result.schema.json +17 -0
  414. package/schemas/github-observation.schema.json +33 -0
  415. package/schemas/github-watermark.schema.json +66 -0
  416. package/schemas/goal-artifact.schema.json +19 -0
  417. package/schemas/goal-create-input.schema.json +14 -0
  418. package/schemas/goal-executor-result.schema.json +18 -0
  419. package/schemas/goal-payload.schema.json +95 -0
  420. package/schemas/grader-output.schema.json +33 -0
  421. package/schemas/lease-expiry.schema.json +19 -0
  422. package/schemas/live-disclosure.schema.json +16 -0
  423. package/schemas/live-outcome.schema.json +52 -0
  424. package/schemas/native-goal-snapshot.schema.json +27 -0
  425. package/schemas/provider-observed.schema.json +64 -0
  426. package/schemas/quota-observation.schema.json +72 -0
  427. package/schemas/reflection-evidence.schema.json +61 -0
  428. package/schemas/reflection.schema.json +13 -0
  429. package/schemas/regression-request.schema.json +54 -0
  430. package/schemas/release-assessment.schema.json +34 -0
  431. package/schemas/release-policy.schema.json +30 -0
  432. package/schemas/result-gate-payload.schema.json +244 -0
  433. package/schemas/review-delivery-payload.schema.json +42 -0
  434. package/schemas/role-policy.schema.json +111 -0
  435. package/schemas/run-abort-input.schema.json +11 -0
  436. package/schemas/run-completion-proof.schema.json +62 -0
  437. package/schemas/run-ledger-entry.schema.json +78 -0
  438. package/schemas/run-manifest.schema.json +74 -0
  439. package/schemas/run-start-intent.schema.json +74 -0
  440. package/schemas/runtime-record.schema.json +111 -0
  441. package/schemas/service-plan.schema.json +35 -0
  442. package/schemas/session-payload.schema.json +80 -0
  443. package/schemas/structured-role-read-request.schema.json +14 -0
  444. package/schemas/structured-role-request.schema.json +44 -0
  445. package/schemas/structured-role-result.schema.json +38 -0
  446. package/schemas/structured-role-submit-result.schema.json +15 -0
  447. package/schemas/team-checkpoint.schema.json +42 -0
  448. package/schemas/team-plan.schema.json +30 -0
  449. package/schemas/ticket-content.schema.json +38 -0
  450. package/schemas/ticket-queue-payload.schema.json +191 -0
  451. package/schemas/trust-report.schema.json +68 -0
  452. package/schemas/trust-run.schema.json +47 -0
  453. package/schemas/ultragoal-checkpoint.schema.json +49 -0
  454. package/schemas/user-schedule-installation-v1.schema.json +32 -0
  455. package/schemas/user-schedule-installation.schema.json +38 -0
  456. package/schemas/user-schedule-plan.schema.json +39 -0
  457. package/schemas/verification-plan-evidence.schema.json +37 -0
  458. package/schemas/worker-acknowledge-dispatch.schema.json +12 -0
  459. package/schemas/worker-payload.schema.json +47 -0
  460. package/schemas/worker-read-dispatch.schema.json +11 -0
  461. package/schemas/worker-record-dispatch-result.schema.json +14 -0
@@ -0,0 +1,351 @@
1
+ import { isAbsolute, join } from "node:path";
2
+ import { assertActorId, assertLeaseToken, assertOpaqueId, assertRecordId, assertTransitionNonce, } from "../domain/records.js";
3
+ import { canonicalTimestamp } from "../queue/model.js";
4
+ import { createRecordStore, RecordAlreadyExistsError, } from "../runtime/record-store.js";
5
+ import { assertSchema, loadJsonSchema } from "../runtime/schema.js";
6
+ import { createStableId } from "../runtime/stable-id.js";
7
+ export const WORKER_ACTIVITIES = Object.freeze(["idle", "working", "blocked", "done"]);
8
+ export const WORKER_HEALTH_STATES = Object.freeze(["healthy", "parked", "stalled", "stopped"]);
9
+ export const WORKER_PROVIDER_MODES = Object.freeze(["claude_interactive", "codex_exec", "codex_goal"]);
10
+ const WORKER_REGISTRY = Symbol("OMS worker registry");
11
+ const WORKER_REGISTRIES = new WeakSet();
12
+ const ACTIVITY_TRANSITIONS = {
13
+ idle: ["working", "blocked", "done"],
14
+ working: ["idle", "blocked", "done"],
15
+ blocked: [],
16
+ done: [],
17
+ };
18
+ const HEALTH_TRANSITIONS = {
19
+ healthy: ["parked", "stalled", "stopped"],
20
+ parked: ["healthy", "stopped"],
21
+ stalled: ["healthy", "parked", "stopped"],
22
+ stopped: [],
23
+ };
24
+ const IMMUTABLE_PAYLOAD_FIELDS = Object.freeze([
25
+ "dispatch_id",
26
+ "goal_id",
27
+ "goal_version",
28
+ "ticket_id",
29
+ "ticket_version",
30
+ "external_worker_id",
31
+ "session_id",
32
+ "role_id",
33
+ "model_id",
34
+ "provider_mode",
35
+ "worktree_id",
36
+ "worktree_path",
37
+ "reserved_at",
38
+ ]);
39
+ export function workerRecordId(dispatchId) {
40
+ return assertRecordId(createStableId("worker", assertOpaqueId(dispatchId, "dispatch id")), "worker record id");
41
+ }
42
+ export function createWorkerRegistry(options) {
43
+ const payloadSchema = loadJsonSchema(join(options.packageRoot, "schemas", "worker-payload.schema.json"));
44
+ const store = createRecordStore({
45
+ recordsRoot: options.recordsRoot,
46
+ locksRoot: options.locksRoot,
47
+ recordValidator(record) {
48
+ validateWorkerRecord(record, payloadSchema);
49
+ },
50
+ createValidator(record) {
51
+ const worker = record;
52
+ if (worker.record_kind !== "worker"
53
+ || worker.version !== 0
54
+ || worker.state !== "idle"
55
+ || worker.payload.health !== "healthy"
56
+ || worker.payload.updated_at !== worker.payload.reserved_at) {
57
+ throw new Error("worker registry can only create initial idle healthy reservations");
58
+ }
59
+ },
60
+ transitionValidator(current, next) {
61
+ validateWorkerTransition(current, next);
62
+ },
63
+ });
64
+ function read(dispatchId) {
65
+ return store.read(workerRecordId(dispatchId));
66
+ }
67
+ function readIfExists(dispatchId) {
68
+ return store.readIfExists(workerRecordId(dispatchId));
69
+ }
70
+ function reserve(input) {
71
+ const reservation = normalizeReservation(captureReservation(input));
72
+ const recordId = workerRecordId(reservation.dispatchId);
73
+ const nonce = reservationNonce(recordId, reservation);
74
+ const existing = store.readIfExists(recordId);
75
+ if (existing)
76
+ return replayReservation(existing, nonce);
77
+ const payload = {
78
+ dispatch_id: reservation.dispatchId,
79
+ goal_id: reservation.goalId,
80
+ goal_version: reservation.goalVersion,
81
+ ticket_id: reservation.ticketId,
82
+ ticket_version: reservation.ticketVersion,
83
+ external_worker_id: reservation.externalWorkerId,
84
+ session_id: reservation.sessionId,
85
+ role_id: reservation.roleId,
86
+ model_id: reservation.modelId,
87
+ provider_mode: reservation.providerMode,
88
+ worktree_id: reservation.worktreeId,
89
+ worktree_path: reservation.worktreePath,
90
+ capabilities: reservation.capabilities,
91
+ health: "healthy",
92
+ reserved_at: reservation.reservedAt,
93
+ updated_at: reservation.reservedAt,
94
+ };
95
+ assertSchema(payload, payloadSchema, "worker payload before reserve");
96
+ const record = {
97
+ schema_version: 1,
98
+ record_id: recordId,
99
+ record_kind: assertOpaqueId("worker", "worker record kind"),
100
+ version: 0,
101
+ state: "idle",
102
+ attempt: reservation.attempt,
103
+ max_attempts: reservation.attempt,
104
+ actor: reservation.actorId,
105
+ lease_token: reservation.leaseToken,
106
+ transition_nonce: nonce,
107
+ payload,
108
+ transition_outcomes: [{
109
+ nonce,
110
+ version: 0,
111
+ state: "idle",
112
+ attempt: reservation.attempt,
113
+ actor: reservation.actorId,
114
+ lease_token: reservation.leaseToken,
115
+ }],
116
+ };
117
+ try {
118
+ return Object.freeze({ status: "created", record: store.create(record) });
119
+ }
120
+ catch (error) {
121
+ if (!(error instanceof RecordAlreadyExistsError))
122
+ throw error;
123
+ return replayReservation(store.read(recordId), nonce);
124
+ }
125
+ }
126
+ function mutate(kind, input, target) {
127
+ const mutation = normalizeMutation(captureMutation(input));
128
+ const current = read(mutation.dispatchId);
129
+ const nonce = assertTransitionNonce(createStableId("worker-op", kind, current.record_id, mutation.operationId, String(mutation.expectedVersion), mutation.actorId, mutation.observedAt, target));
130
+ return store.transition({
131
+ recordId: current.record_id,
132
+ ownerId: mutation.actorId,
133
+ expectedVersion: mutation.expectedVersion,
134
+ expectedActor: current.actor,
135
+ expectedAttempt: current.attempt,
136
+ expectedLeaseToken: current.lease_token,
137
+ nonce,
138
+ fromStates: [current.state],
139
+ toState: kind === "activity" ? target : current.state,
140
+ nextActor: mutation.actorId,
141
+ updatePayload: (record) => ({
142
+ ...record.payload,
143
+ ...(kind === "health" ? { health: target } : {}),
144
+ updated_at: mutation.observedAt,
145
+ }),
146
+ });
147
+ }
148
+ const registry = Object.freeze({
149
+ [WORKER_REGISTRY]: true,
150
+ reserve,
151
+ setActivity(input) {
152
+ const activity = assertWorkerActivity(input.activity);
153
+ return mutate("activity", input, activity);
154
+ },
155
+ setHealth(input) {
156
+ const health = assertWorkerHealth(input.health);
157
+ return mutate("health", input, health);
158
+ },
159
+ read,
160
+ readIfExists,
161
+ list() {
162
+ return store.list();
163
+ },
164
+ });
165
+ WORKER_REGISTRIES.add(registry);
166
+ return registry;
167
+ }
168
+ export function assertWorkerRegistry(value) {
169
+ if (typeof value !== "object" || value === null || !WORKER_REGISTRIES.has(value)) {
170
+ throw new Error("worker operation requires a real OMS worker registry");
171
+ }
172
+ if (!Object.isFrozen(value))
173
+ throw new Error("worker registry lost its authority boundary");
174
+ }
175
+ function captureReservation(input) {
176
+ return {
177
+ dispatchId: input.dispatchId,
178
+ goalId: input.goalId,
179
+ goalVersion: input.goalVersion,
180
+ ticketId: input.ticketId,
181
+ ticketVersion: input.ticketVersion,
182
+ leaseToken: input.leaseToken,
183
+ attempt: input.attempt,
184
+ externalWorkerId: input.externalWorkerId,
185
+ sessionId: input.sessionId,
186
+ roleId: input.roleId,
187
+ modelId: input.modelId,
188
+ providerMode: input.providerMode,
189
+ worktreeId: input.worktreeId,
190
+ worktreePath: input.worktreePath,
191
+ capabilities: [...input.capabilities],
192
+ actorId: input.actorId,
193
+ reservedAt: input.reservedAt,
194
+ };
195
+ }
196
+ function normalizeReservation(input) {
197
+ return {
198
+ dispatchId: assertOpaqueId(input.dispatchId, "dispatch id"),
199
+ goalId: assertOpaqueId(input.goalId, "goal id"),
200
+ goalVersion: nonNegativeInteger(input.goalVersion, "goal version"),
201
+ ticketId: assertOpaqueId(input.ticketId, "ticket id"),
202
+ ticketVersion: nonNegativeInteger(input.ticketVersion, "ticket version"),
203
+ leaseToken: assertLeaseToken(input.leaseToken, "worker lease token"),
204
+ attempt: positiveInteger(input.attempt, "worker attempt"),
205
+ externalWorkerId: assertOpaqueId(input.externalWorkerId, "external worker id"),
206
+ sessionId: assertOpaqueId(input.sessionId, "worker session id"),
207
+ roleId: matchedString(input.roleId, /^oms\.[a-z0-9.-]{1,63}$/u, "worker role id"),
208
+ modelId: matchedString(input.modelId, /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u, "worker model id"),
209
+ providerMode: assertWorkerProviderMode(input.providerMode),
210
+ worktreeId: assertOpaqueId(input.worktreeId, "worktree id"),
211
+ worktreePath: absolutePath(input.worktreePath),
212
+ capabilities: capabilities(input.capabilities),
213
+ actorId: assertActorId(input.actorId, "worker reservation actor"),
214
+ reservedAt: canonicalTimestamp(input.reservedAt, "worker reservation timestamp"),
215
+ };
216
+ }
217
+ function reservationNonce(recordId, reservation) {
218
+ return assertTransitionNonce(createStableId("worker-start", recordId, reservation.goalId, String(reservation.goalVersion), reservation.ticketId, String(reservation.ticketVersion), reservation.leaseToken, String(reservation.attempt), reservation.externalWorkerId, reservation.sessionId, reservation.roleId, reservation.modelId, reservation.providerMode, reservation.worktreeId, reservation.worktreePath, JSON.stringify(reservation.capabilities), reservation.actorId, reservation.reservedAt));
219
+ }
220
+ function replayReservation(existing, nonce) {
221
+ if (existing.transition_outcomes[0]?.nonce !== nonce) {
222
+ throw new Error(`worker reservation already exists with different binding: ${existing.payload.dispatch_id}`);
223
+ }
224
+ return Object.freeze({ status: "replayed", record: existing });
225
+ }
226
+ function captureMutation(input) {
227
+ return {
228
+ dispatchId: input.dispatchId,
229
+ expectedVersion: input.expectedVersion,
230
+ operationId: input.operationId,
231
+ actorId: input.actorId,
232
+ observedAt: input.observedAt,
233
+ };
234
+ }
235
+ function normalizeMutation(input) {
236
+ return {
237
+ dispatchId: assertOpaqueId(input.dispatchId, "dispatch id"),
238
+ expectedVersion: nonNegativeInteger(input.expectedVersion, "expected worker version"),
239
+ operationId: assertOpaqueId(input.operationId, "worker operation id"),
240
+ actorId: assertActorId(input.actorId, "worker mutation actor"),
241
+ observedAt: canonicalTimestamp(input.observedAt, "worker mutation timestamp"),
242
+ };
243
+ }
244
+ function validateWorkerRecord(record, payloadSchema) {
245
+ if (record.record_kind !== "worker")
246
+ throw new Error("worker registry contains a non-worker record");
247
+ assertWorkerActivity(record.state);
248
+ assertSchema(record.payload, payloadSchema, "worker payload");
249
+ const payload = record.payload;
250
+ if (record.record_id !== workerRecordId(payload.dispatch_id))
251
+ throw new Error("worker record identity mismatch");
252
+ if (record.lease_token === null)
253
+ throw new Error("worker record requires a lease token");
254
+ assertLeaseToken(record.lease_token, "worker lease token");
255
+ if (record.attempt !== record.max_attempts)
256
+ throw new Error("worker attempt binding changed");
257
+ assertWorkerHealth(payload.health);
258
+ assertOpaqueId(payload.goal_id, "goal id");
259
+ nonNegativeInteger(payload.goal_version, "goal version");
260
+ assertOpaqueId(payload.ticket_id, "ticket id");
261
+ nonNegativeInteger(payload.ticket_version, "ticket version");
262
+ assertOpaqueId(payload.external_worker_id, "external worker id");
263
+ assertOpaqueId(payload.session_id, "worker session id");
264
+ matchedString(payload.role_id, /^oms\.[a-z0-9.-]{1,63}$/u, "worker role id");
265
+ matchedString(payload.model_id, /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u, "worker model id");
266
+ assertWorkerProviderMode(payload.provider_mode);
267
+ assertOpaqueId(payload.worktree_id, "worktree id");
268
+ absolutePath(payload.worktree_path);
269
+ capabilities(payload.capabilities);
270
+ const reservedAt = canonicalTimestamp(payload.reserved_at, "worker reservation timestamp");
271
+ const updatedAt = canonicalTimestamp(payload.updated_at, "worker update timestamp");
272
+ if (Date.parse(updatedAt) < Date.parse(reservedAt))
273
+ throw new Error("worker update precedes reservation");
274
+ }
275
+ function validateWorkerTransition(current, next) {
276
+ if (current.record_id !== next.record_id
277
+ || current.record_kind !== next.record_kind
278
+ || current.attempt !== next.attempt
279
+ || current.max_attempts !== next.max_attempts
280
+ || current.lease_token !== next.lease_token) {
281
+ throw new Error("worker transition changed immutable record binding");
282
+ }
283
+ for (const field of IMMUTABLE_PAYLOAD_FIELDS) {
284
+ if (current.payload[field] !== next.payload[field]) {
285
+ throw new Error(`worker transition changed immutable ${field}`);
286
+ }
287
+ }
288
+ if (current.payload.capabilities.length !== next.payload.capabilities.length
289
+ || current.payload.capabilities.some((capability, index) => capability !== next.payload.capabilities[index])) {
290
+ throw new Error("worker transition changed immutable capabilities");
291
+ }
292
+ if (Date.parse(next.payload.updated_at) <= Date.parse(current.payload.updated_at)) {
293
+ throw new Error("worker update time must advance");
294
+ }
295
+ const activityChanged = current.state !== next.state;
296
+ const healthChanged = current.payload.health !== next.payload.health;
297
+ if (activityChanged === healthChanged) {
298
+ throw new Error("worker transition must change exactly one of activity or health");
299
+ }
300
+ if (activityChanged && !ACTIVITY_TRANSITIONS[current.state].includes(next.state)) {
301
+ throw new Error(`illegal worker activity transition: ${current.state} -> ${next.state}`);
302
+ }
303
+ if (healthChanged && !HEALTH_TRANSITIONS[current.payload.health].includes(next.payload.health)) {
304
+ throw new Error(`illegal worker health transition: ${current.payload.health} -> ${next.payload.health}`);
305
+ }
306
+ }
307
+ function assertWorkerActivity(value) {
308
+ if (!WORKER_ACTIVITIES.includes(value))
309
+ throw new Error("invalid worker activity");
310
+ return value;
311
+ }
312
+ function assertWorkerHealth(value) {
313
+ if (!WORKER_HEALTH_STATES.includes(value))
314
+ throw new Error("invalid worker health");
315
+ return value;
316
+ }
317
+ function assertWorkerProviderMode(value) {
318
+ if (!WORKER_PROVIDER_MODES.includes(value))
319
+ throw new Error("invalid worker provider mode");
320
+ return value;
321
+ }
322
+ function nonNegativeInteger(value, label) {
323
+ if (!Number.isSafeInteger(value) || value < 0)
324
+ throw new Error(`${label} must be a non-negative integer`);
325
+ return value;
326
+ }
327
+ function positiveInteger(value, label) {
328
+ if (!Number.isSafeInteger(value) || value < 1)
329
+ throw new Error(`${label} must be a positive integer`);
330
+ return value;
331
+ }
332
+ function matchedString(value, pattern, label) {
333
+ if (typeof value !== "string" || !pattern.test(value))
334
+ throw new Error(`invalid ${label}`);
335
+ return value;
336
+ }
337
+ function absolutePath(value) {
338
+ if (typeof value !== "string" || value.length > 4096 || !isAbsolute(value) || /[\0\r\n]/u.test(value)) {
339
+ throw new Error("invalid worker worktree path");
340
+ }
341
+ return value;
342
+ }
343
+ function capabilities(value) {
344
+ if (!Array.isArray(value) || value.length > 16)
345
+ throw new Error("invalid worker capabilities");
346
+ const normalized = value.map((capability) => matchedString(capability, /^[a-z][a-z0-9.-]{0,63}$/u, "worker capability"));
347
+ if (new Set(normalized).size !== normalized.length)
348
+ throw new Error("worker capabilities must be unique");
349
+ return normalized;
350
+ }
351
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/workers/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ export declare function createRuntimeWorkerAuthorities(options: {
2
+ readonly packageRoot: string;
3
+ readonly configRoot?: string;
4
+ readonly workspaceRoot: string;
5
+ readonly stateRoot: string;
6
+ readonly actorId: string;
7
+ readonly clock?: () => string;
8
+ }): Readonly<{
9
+ sessions: import("../sessions/registry.js").SessionRegistry;
10
+ policyGate: import("../domain/role-policy.js").TrackedRolePolicyGate;
11
+ dispatch: import("../dispatch/authority.js").DispatchAuthority;
12
+ workers: import("./registry.js").WorkerRegistry;
13
+ tickets: Readonly<{
14
+ evidenceStore: import("../evidence/store.js").EvidenceStore;
15
+ queue: import("../tickets/store.js").TicketQueueStore;
16
+ materializer: import("../tickets/store.js").TicketMaterializer;
17
+ lifecycle: Readonly<{
18
+ read: (ticketId: string) => import("../tickets/store.js").TicketQueueRecord;
19
+ authorityStatus(ticketId: string): "current" | "stale-policy" | "stale-gate";
20
+ prepare(input: import("../tickets/store.js").PrepareTicketInput): import("../tickets/store.js").QueueMutationResult;
21
+ lease(input: import("../tickets/store.js").LeaseTicketInput): import("../tickets/store.js").QueueMutationResult;
22
+ renew(input: import("../tickets/store.js").ExpectedTicketMutation & {
23
+ leaseExpiresAt: string;
24
+ }): import("../tickets/store.js").QueueMutationResult;
25
+ start(input: import("../tickets/store.js").ExpectedTicketMutation): import("../tickets/store.js").QueueMutationResult;
26
+ beginVerification(input: import("../tickets/store.js").BeginVerificationInput): import("../tickets/store.js").QueueMutationResult;
27
+ complete(input: import("../tickets/store.js").CompleteTicketInput): import("../tickets/store.js").QueueMutationResult;
28
+ failAttempt(input: import("../tickets/store.js").FailAttemptInput): import("../tickets/store.js").QueueMutationResult;
29
+ blockVerification(input: import("../tickets/store.js").BlockVerificationInput): import("../tickets/store.js").QueueMutationResult;
30
+ attachRetryReflection(input: import("../tickets/store.js").AttachRetryReflectionInput): import("../tickets/store.js").QueueMutationResult;
31
+ park(input: import("../tickets/store.js").ParkTicketInput): import("../tickets/store.js").QueueMutationResult;
32
+ resume(input: import("../tickets/store.js").ResumeTicketInput): import("../tickets/store.js").QueueMutationResult;
33
+ quarantineStaleAuthority(input: import("../tickets/store.js").QuarantineTicketInput): import("../tickets/store.js").QueueMutationResult;
34
+ rebindUnpreparedAuthority(input: import("../tickets/store.js").ExpectedTicketMutation): import("../tickets/store.js").QueueMutationResult;
35
+ recoverExpiredLease(input: import("../tickets/store.js").ExpectedTicketMutation): import("../tickets/store.js").QueueMutationResult;
36
+ }>;
37
+ }>;
38
+ goals: Readonly<{
39
+ authority: import("../goals/authority.js").GoalAuthority;
40
+ artifacts: import("../goals/artifact-store.js").GoalArtifactStore;
41
+ }>;
42
+ events: import("../events/bus.js").RuntimeEventBus;
43
+ outbox: import("../outbox/store.js").OutboxStore;
44
+ }>;
@@ -0,0 +1,21 @@
1
+ import { join } from "node:path";
2
+ import { createRuntimeDispatchAuthorities } from "../dispatch/runtime-authority.js";
3
+ import { loadTrackedRolePolicyGate } from "../domain/role-policy.js";
4
+ import { createSessionRegistry } from "../sessions/registry.js";
5
+ import { validateExistingDirectory } from "../utils/fs.js";
6
+ export function createRuntimeWorkerAuthorities(options) {
7
+ const packageRoot = validateExistingDirectory(options.packageRoot, "package root");
8
+ const configRoot = validateExistingDirectory(options.configRoot ?? packageRoot, "configuration root");
9
+ const stateRoot = validateExistingDirectory(options.stateRoot, "runtime state root");
10
+ const dispatch = createRuntimeDispatchAuthorities({ ...options, packageRoot, configRoot, stateRoot });
11
+ const policyGate = loadTrackedRolePolicyGate(configRoot);
12
+ const sessions = createSessionRegistry({
13
+ recordsRoot: join(stateRoot, "sessions"),
14
+ locksRoot: join(stateRoot, "locks"),
15
+ packageRoot,
16
+ policyRoot: configRoot,
17
+ policyGate,
18
+ });
19
+ return Object.freeze({ ...dispatch, sessions, policyGate });
20
+ }
21
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/workers/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,UAAU,8BAA8B,CAAC,OAO9C;IACC,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,UAAU,IAAI,WAAW,EAAE,oBAAoB,CAAC,CAAC;IACtG,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,gCAAgC,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IACtG,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,qBAAqB,CAAC;QACrC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QACxC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;QACnC,WAAW;QACX,UAAU,EAAE,UAAU;QACtB,UAAU;KACX,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { OpaqueId, TransitionNonce } from "../domain/records.js";
2
+ import type { ProcessRunner } from "../providers/process.js";
3
+ export interface TicketWorktreeRecord {
4
+ schema_version: 1;
5
+ ticket_id: OpaqueId;
6
+ repository_root: string;
7
+ worktree_root: string;
8
+ branch: string;
9
+ requested_base: string;
10
+ base_commit: string;
11
+ create_nonce: TransitionNonce;
12
+ }
13
+ export interface CreateTicketWorktreeOptions {
14
+ repositoryRoot: string;
15
+ worktreesRoot: string;
16
+ recordsRoot: string;
17
+ locksRoot: string;
18
+ ticketId: string;
19
+ actorId: string;
20
+ transitionNonce: string;
21
+ baseRef?: string;
22
+ env?: NodeJS.ProcessEnv;
23
+ runner: ProcessRunner;
24
+ }
25
+ export interface TicketWorktreeResult {
26
+ record: TicketWorktreeRecord;
27
+ replayed: boolean;
28
+ recovered: boolean;
29
+ }
30
+ /**
31
+ * Creates one isolated branch/worktree. This boundary deliberately has no merge
32
+ * or removal operation: cleanup and integration remain explicit operator acts.
33
+ */
34
+ export declare function createTicketWorktree(options: CreateTicketWorktreeOptions): TicketWorktreeResult;
35
+ export declare function parseTicketWorktreeRecord(value: unknown, label?: string): TicketWorktreeRecord;