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,37 @@
1
+ export declare const MAX_QUEUE_ATTEMPTS = 3;
2
+ export type TicketState = "pending" | "leased" | "running" | "verifying" | "retryable" | "parked" | "blocked" | "completed";
3
+ export type TicketResumeState = "pending" | "retryable";
4
+ export type TicketResumeGate = {
5
+ kind: "time";
6
+ role_id: null;
7
+ engine: null;
8
+ session_id: null;
9
+ limited_session_version: null;
10
+ limited_observation_id: null;
11
+ limited_observed_at: null;
12
+ } | {
13
+ kind: "quota";
14
+ role_id: string;
15
+ engine: "claude" | "codex";
16
+ session_id: string;
17
+ limited_session_version: number;
18
+ limited_observation_id: string;
19
+ limited_observed_at: string;
20
+ };
21
+ export interface QueueLifecycleFields {
22
+ lifecycle_updated_at: string;
23
+ lease_expires_at: string | null;
24
+ resume_at: string | null;
25
+ resume_state: TicketResumeState | null;
26
+ park_reason: string | null;
27
+ resume_gate: TicketResumeGate | null;
28
+ session_id: string | null;
29
+ last_error: string | null;
30
+ }
31
+ export declare function initialQueueLifecycle(at: string): QueueLifecycleFields;
32
+ export declare function canonicalTimestamp(value: string, label: string): string;
33
+ export declare function assertTimestamp(value: string, label: string): number;
34
+ export declare function isTicketState(value: string): value is TicketState;
35
+ export declare function isActiveTicketState(value: TicketState): boolean;
36
+ export declare function isIdleTicketState(value: TicketState): boolean;
37
+ export declare function isTerminalTicketState(value: TicketState): boolean;
@@ -0,0 +1,51 @@
1
+ export const MAX_QUEUE_ATTEMPTS = 3;
2
+ const ACTIVE_STATES = new Set(["leased", "running", "verifying"]);
3
+ const IDLE_STATES = new Set(["pending", "retryable"]);
4
+ const TERMINAL_STATES = new Set(["blocked", "completed"]);
5
+ export function initialQueueLifecycle(at) {
6
+ return {
7
+ lifecycle_updated_at: canonicalTimestamp(at, "initial lifecycle timestamp"),
8
+ lease_expires_at: null,
9
+ resume_at: null,
10
+ resume_state: null,
11
+ park_reason: null,
12
+ resume_gate: null,
13
+ session_id: null,
14
+ last_error: null,
15
+ };
16
+ }
17
+ export function canonicalTimestamp(value, label) {
18
+ if (typeof value !== "string" || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/.test(value)) {
19
+ throw new Error(`invalid ${label}`);
20
+ }
21
+ const epoch = Date.parse(value);
22
+ const canonical = Number.isFinite(epoch) ? new Date(epoch).toISOString() : "";
23
+ if (canonical !== normalizeTimestamp(value))
24
+ throw new Error(`invalid ${label}`);
25
+ return canonical;
26
+ }
27
+ export function assertTimestamp(value, label) {
28
+ const canonical = canonicalTimestamp(value, label);
29
+ if (canonical !== value)
30
+ throw new Error(`${label} must use canonical ISO milliseconds`);
31
+ return Date.parse(canonical);
32
+ }
33
+ export function isTicketState(value) {
34
+ return value === "parked"
35
+ || ACTIVE_STATES.has(value)
36
+ || IDLE_STATES.has(value)
37
+ || TERMINAL_STATES.has(value);
38
+ }
39
+ export function isActiveTicketState(value) {
40
+ return ACTIVE_STATES.has(value);
41
+ }
42
+ export function isIdleTicketState(value) {
43
+ return IDLE_STATES.has(value);
44
+ }
45
+ export function isTerminalTicketState(value) {
46
+ return TERMINAL_STATES.has(value);
47
+ }
48
+ function normalizeTimestamp(value) {
49
+ return value.includes(".") ? value : value.replace("Z", ".000Z");
50
+ }
51
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/queue/model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AA6CpC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AACnE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAEvE,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,OAAO;QACL,oBAAoB,EAAE,kBAAkB,CAAC,EAAE,EAAE,6BAA6B,CAAC;QAC3E,gBAAgB,EAAE,IAAI;QACtB,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,KAAa;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,oDAAoD,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,IAAI,SAAS,KAAK,kBAAkB,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;IACjF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAa;IAC1D,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnD,IAAI,SAAS,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IACzF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,KAAK,QAAQ;WACpB,aAAa,CAAC,GAAG,CAAC,KAAoB,CAAC;WACvC,WAAW,CAAC,GAAG,CAAC,KAAoB,CAAC;WACrC,eAAe,CAAC,GAAG,CAAC,KAAoB,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAkB;IACpD,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAkB;IACtD,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1 @@
1
+ export { createTicketLifecycleService, type BeginVerificationInput, type CompleteTicketInput, type ExpectedTicketMutation, type FailAttemptInput, type LeaseTicketInput, type ParkTicketInput, type PrepareTicketInput, type QueueMutationResult, type ResumeTicketInput, type TicketQueueRecord, } from "../tickets/store.js";
@@ -0,0 +1,2 @@
1
+ export { createTicketLifecycleService, } from "../tickets/store.js";
2
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/queue/service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAW7B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type EvidenceReference, type EvidenceStore, type EvidenceWriteResult } from "../evidence/store.js";
2
+ import { type TicketMaterializer } from "../tickets/materializer.js";
3
+ export interface ReflectionAdvice {
4
+ readonly failure: string;
5
+ readonly lesson: string;
6
+ readonly next_attempt: string;
7
+ }
8
+ export interface RecordReflectionOptions {
9
+ evidenceStore: EvidenceStore;
10
+ deterministicEvidence: EvidenceReference;
11
+ ticketMaterializer: TicketMaterializer;
12
+ advice: ReflectionAdvice;
13
+ }
14
+ export interface RecordFailureReflectionOptions {
15
+ evidenceStore: EvidenceStore;
16
+ failureEvidence: EvidenceReference;
17
+ ticketMaterializer: TicketMaterializer;
18
+ advice: ReflectionAdvice;
19
+ }
20
+ export declare function recordReflection(options: RecordReflectionOptions): EvidenceWriteResult;
21
+ export declare function recordFailureReflection(options: RecordFailureReflectionOptions): EvidenceWriteResult;
@@ -0,0 +1,60 @@
1
+ import { assertEvidenceStore, writeTicketBoundEvidence, } from "../evidence/store.js";
2
+ import { readDeterministicVerdict } from "../evidence/verdict.js";
3
+ import { createStableId } from "../runtime/stable-id.js";
4
+ import { assertTicketMaterializer, } from "../tickets/materializer.js";
5
+ export function recordReflection(options) {
6
+ return recordFailureReflection({
7
+ evidenceStore: options.evidenceStore,
8
+ failureEvidence: options.deterministicEvidence,
9
+ ticketMaterializer: options.ticketMaterializer,
10
+ advice: options.advice,
11
+ });
12
+ }
13
+ export function recordFailureReflection(options) {
14
+ assertEvidenceStore(options.evidenceStore);
15
+ assertTicketMaterializer(options.ticketMaterializer);
16
+ const failure = options.evidenceStore.read(options.failureEvidence);
17
+ const deterministicEvidence = failure.evidence_kind === "grader-output"
18
+ ? failure.payload.deterministic_evidence
19
+ : options.failureEvidence;
20
+ const verdict = readDeterministicVerdict({
21
+ evidenceStore: options.evidenceStore,
22
+ deterministicEvidence,
23
+ });
24
+ if (failure.evidence_kind === "deterministic-check") {
25
+ if (verdict.passed)
26
+ throw new Error("deterministic reflection requires a failed check");
27
+ }
28
+ else if (failure.evidence_kind !== "grader-output"
29
+ || failure.payload.verdict !== "fail"
30
+ || failure.ticket_id !== verdict.ticket_id) {
31
+ throw new Error("reflection requires a failed deterministic check or failed grade");
32
+ }
33
+ const evidenceId = createStableId("reflection", options.failureEvidence.evidence_id, options.failureEvidence.sha256);
34
+ return writeTicketBoundEvidence({
35
+ evidenceStore: options.evidenceStore,
36
+ ticketMaterializer: options.ticketMaterializer,
37
+ record: {
38
+ schema_version: 1,
39
+ evidence_id: evidenceId,
40
+ evidence_kind: "reflection",
41
+ ticket_id: verdict.ticket_id,
42
+ producer_role: "oms.bounded-dreamer",
43
+ created_at: failure.created_at,
44
+ payload: {
45
+ schema_version: 1,
46
+ ticket_id: verdict.ticket_id,
47
+ deterministic_evidence: verdict.deterministic_evidence,
48
+ failure_evidence: options.failureEvidence,
49
+ attempt: verdict.attempt,
50
+ advisory_only: true,
51
+ advice: {
52
+ failure: options.advice.failure,
53
+ lesson: options.advice.lesson,
54
+ next_attempt: options.advice.next_attempt,
55
+ },
56
+ },
57
+ },
58
+ });
59
+ }
60
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/reflections/store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAInB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,wBAAwB,GAEzB,MAAM,4BAA4B,CAAC;AAsBpC,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,OAAO,uBAAuB,CAAC;QAC7B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,eAAe,EAAE,OAAO,CAAC,qBAAqB;QAC9C,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAuC;IAC7E,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,wBAAwB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,qBAAqB,GAAG,OAAO,CAAC,aAAa,KAAK,eAAe;QACrE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAA2C;QAC7D,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IAC5B,MAAM,OAAO,GAAG,wBAAwB,CAAC;QACvC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,qBAAqB;KACtB,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,aAAa,KAAK,qBAAqB,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC1F,CAAC;SAAM,IACL,OAAO,CAAC,aAAa,KAAK,eAAe;WACtC,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM;WAClC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAC1C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAC/B,YAAY,EACZ,OAAO,CAAC,eAAe,CAAC,WAAW,EACnC,OAAO,CAAC,eAAe,CAAC,MAAM,CAC/B,CAAC;IAEF,OAAO,wBAAwB,CAAC;QAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,MAAM,EAAE;YACN,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,UAAU;YACvB,aAAa,EAAE,YAAY;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,qBAAqB;YACpC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE;gBACP,cAAc,EAAE,CAAC;gBACjB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;gBACtD,gBAAgB,EAAE,OAAO,CAAC,eAAe;gBACzC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE;oBACN,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;oBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;oBAC7B,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY;iBAC1C;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { EvidenceStore, EvidenceWriteResult } from "../evidence/store.js";
2
+ export interface WriteDailyTrustReportOptions {
3
+ evidenceStore: EvidenceStore;
4
+ utcDate: string;
5
+ packageRoot?: string;
6
+ }
7
+ export interface DailyTrustReportResult extends EvidenceWriteResult {
8
+ absolute_path: string;
9
+ }
10
+ export declare function writeDailyTrustReport(options: WriteDailyTrustReportOptions): DailyTrustReportResult;
11
+ export declare function trustReportEvidenceId(utcDate: string, policyDigest: string, gateDigest: string): string;
@@ -0,0 +1,98 @@
1
+ import { assertEvidenceStore } from "../evidence/store.js";
2
+ import { findPackageRoot } from "../package-root.js";
3
+ import { createStableId } from "../runtime/stable-id.js";
4
+ import { assessTrust } from "../trust/assessment.js";
5
+ import { loadTrackedTrustPolicyIdentity } from "../trust/runs.js";
6
+ import { freezeTrackedVerificationPlan } from "../verification/plan.js";
7
+ const UTC_DATE_PATTERN = /^([0-9]{4})-([0-9]{2})-([0-9]{2})$/;
8
+ export function writeDailyTrustReport(options) {
9
+ assertEvidenceStore(options.evidenceStore);
10
+ const closedAt = closedAtForUtcDate(options.utcDate);
11
+ if (Date.now() < Date.parse(closedAt))
12
+ throw new Error("daily trust report requires a closed UTC date");
13
+ const packageRoot = options.packageRoot ?? findPackageRoot();
14
+ const policy = loadTrackedTrustPolicyIdentity(packageRoot);
15
+ const gateDigest = freezeTrackedVerificationPlan(packageRoot).digest;
16
+ const openedAt = `${options.utcDate}T00:00:00.000Z`;
17
+ const openedEpoch = Date.parse(openedAt);
18
+ const closedEpoch = Date.parse(closedAt);
19
+ const references = options.evidenceStore.references("trust-run")
20
+ .filter((reference) => {
21
+ const createdAt = Date.parse(options.evidenceStore.read(reference).created_at);
22
+ return createdAt >= openedEpoch && createdAt < closedEpoch;
23
+ })
24
+ .sort(compareEvidenceReferences);
25
+ const runs = references.map((reference) => trustRunSummary(options.evidenceStore, reference));
26
+ const assessment = assessTrust({
27
+ policy_version: policy.policy_version,
28
+ policy_digest: policy.policy_digest,
29
+ gate_digest: gateDigest,
30
+ runs,
31
+ });
32
+ const evidenceId = trustReportEvidenceId(options.utcDate, policy.policy_digest, gateDigest);
33
+ const written = options.evidenceStore.write({
34
+ schema_version: 1,
35
+ evidence_id: evidenceId,
36
+ evidence_kind: "trust-report",
37
+ ticket_id: null,
38
+ producer_role: "oms.system",
39
+ created_at: closedAt,
40
+ payload: {
41
+ schema_version: 1,
42
+ utc_date: options.utcDate,
43
+ closed_at: closedAt,
44
+ policy_version: policy.policy_version,
45
+ policy_digest: policy.policy_digest,
46
+ gate_digest: gateDigest,
47
+ trust_run_evidence: references,
48
+ assessment,
49
+ review_only: true,
50
+ },
51
+ });
52
+ return {
53
+ ...written,
54
+ absolute_path: options.evidenceStore.absolutePath(written.ref),
55
+ };
56
+ }
57
+ export function trustReportEvidenceId(utcDate, policyDigest, gateDigest) {
58
+ closedAtForUtcDate(utcDate);
59
+ if (!/^[a-f0-9]{64}$/.test(policyDigest))
60
+ throw new Error("invalid trust report policy digest");
61
+ if (!/^[a-f0-9]{64}$/.test(gateDigest))
62
+ throw new Error("invalid trust report gate digest");
63
+ return createStableId("trust-report", utcDate, policyDigest, gateDigest);
64
+ }
65
+ function trustRunSummary(evidenceStore, reference) {
66
+ const record = evidenceStore.read(reference);
67
+ if (record.evidence_kind !== "trust-run")
68
+ throw new Error("daily trust report requires trust-run evidence");
69
+ return {
70
+ run_id: record.payload.run_id,
71
+ policy_version: record.payload.policy_version,
72
+ policy_digest: record.payload.policy_digest,
73
+ gate_digest: record.payload.gate_digest,
74
+ deterministic_passed: record.payload.deterministic_passed,
75
+ };
76
+ }
77
+ function compareEvidenceReferences(left, right) {
78
+ return compareText(left.evidence_id, right.evidence_id)
79
+ || compareText(left.sha256, right.sha256)
80
+ || compareText(left.file_name, right.file_name);
81
+ }
82
+ function compareText(left, right) {
83
+ return left < right ? -1 : left > right ? 1 : 0;
84
+ }
85
+ function closedAtForUtcDate(value) {
86
+ const match = UTC_DATE_PATTERN.exec(value);
87
+ if (!match)
88
+ throw new Error("invalid daily trust report UTC date");
89
+ const year = Number(match[1]);
90
+ const month = Number(match[2]);
91
+ const day = Number(match[3]);
92
+ const start = new Date(Date.UTC(year, month - 1, day));
93
+ if (start.getUTCFullYear() !== year || start.getUTCMonth() !== month - 1 || start.getUTCDate() !== day) {
94
+ throw new Error("invalid daily trust report UTC date");
95
+ }
96
+ return new Date(start.getTime() + 24 * 60 * 60 * 1_000).toISOString();
97
+ }
98
+ //# sourceMappingURL=daily-trust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-trust.js","sourceRoot":"","sources":["../../../src/reports/daily-trust.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ import { type AppendRunEntryInput, type RunKind, type RunLedgerMetrics, type RunLedgerStore, type RunLedgerWriteResult } from "../audit/run-ledger.js";
2
+ import { type ServiceManager } from "../schedule/service-plan.js";
3
+ import type { TicketQueueRecord } from "../tickets/store.js";
4
+ declare const RUN_TICKET_ADMISSION: unique symbol;
5
+ export interface TicketAdmissionSnapshot {
6
+ readonly ticket_id: string;
7
+ readonly initial_version: number;
8
+ readonly initial_attempt: number;
9
+ readonly initial_state: Exclude<TicketQueueRecord["state"], "completed">;
10
+ readonly source_ref_sha256: string;
11
+ readonly content_sha256: string;
12
+ readonly policy_version: number;
13
+ readonly policy_digest: string;
14
+ readonly gate_digest: string | null;
15
+ }
16
+ export interface RunStartIntent {
17
+ readonly schema_version: 1;
18
+ readonly intent_id: string;
19
+ readonly operation_id: string;
20
+ readonly start_nonce: string;
21
+ readonly expected_run_id: string;
22
+ readonly run_kind: RunKind;
23
+ readonly manager: ServiceManager;
24
+ readonly executable_path: string;
25
+ readonly created_at: string;
26
+ readonly policy_digest: string;
27
+ readonly verification_gate_digest: string;
28
+ readonly ticket_set_digest: string;
29
+ readonly service_plan_digest: string;
30
+ readonly service_plan_directory: string;
31
+ readonly state_root: string;
32
+ readonly workspace_root: string;
33
+ readonly ticket_snapshot: readonly TicketAdmissionSnapshot[];
34
+ }
35
+ export interface RunManifest {
36
+ readonly schema_version: 1;
37
+ readonly manifest_id: string;
38
+ readonly run_id: string;
39
+ readonly run_kind: RunKind;
40
+ readonly start_intent_id: string;
41
+ readonly created_at: string;
42
+ readonly policy_digest: string;
43
+ readonly verification_gate_digest: string;
44
+ readonly ticket_set_digest: string;
45
+ readonly service_plan_digest: string;
46
+ readonly service_plan_directory: string;
47
+ readonly state_root: string;
48
+ readonly workspace_root: string;
49
+ readonly selected_ticket_ids: readonly string[];
50
+ readonly ticket_snapshot: readonly TicketAdmissionSnapshot[];
51
+ readonly provider_started: false;
52
+ readonly manual_conductor_start_required: true;
53
+ readonly certifying: false;
54
+ readonly release: "not_stable";
55
+ readonly merge_disposition: "human_hold";
56
+ }
57
+ export type ConductorRouteAction = "human-start-required" | "await-native-hook" | "wait-resume" | "human-hold" | "queue-empty";
58
+ export interface ConductorRoute {
59
+ readonly schema_version: 1;
60
+ readonly decision_id: string;
61
+ readonly operation_nonce: string;
62
+ readonly run_id: string;
63
+ readonly ticket_id: string | null;
64
+ readonly ticket_version: number | null;
65
+ readonly ticket_attempt: number | null;
66
+ readonly ticket_state: Exclude<TicketQueueRecord["state"], "completed"> | null;
67
+ readonly policy_digest: string;
68
+ readonly gate_digest: string | null;
69
+ readonly action: ConductorRouteAction;
70
+ readonly eligible_role_ids: readonly ("oms.ticket-executor" | "oms.goal-long-executor")[];
71
+ readonly evidence_paths: readonly string[];
72
+ readonly manual_start_required: boolean;
73
+ readonly provider_started: false;
74
+ readonly reason: string;
75
+ }
76
+ export interface RunControllerStatus {
77
+ readonly manifest: RunManifest;
78
+ readonly audit: RunLedgerMetrics;
79
+ readonly ticket_counts: Readonly<Record<string, number>>;
80
+ readonly provider_started: false;
81
+ readonly certifying: false;
82
+ readonly release: "not_stable";
83
+ readonly human_hold: true;
84
+ readonly next_action: "none" | "run-tick" | "manual-conductor" | "await-native-hook" | "wait-resume" | "human-hold" | "observe";
85
+ }
86
+ export interface RunTicketAdmissionGate {
87
+ readonly [RUN_TICKET_ADMISSION]: true;
88
+ readonly run_id: string;
89
+ readonly ticket_id: string;
90
+ readonly manifest_id: string;
91
+ }
92
+ export interface RunControllerRecoveryResult {
93
+ readonly recovered: true;
94
+ readonly lock_id: "run-controller";
95
+ readonly generation_id: string;
96
+ readonly recovered_by: string;
97
+ readonly previous_process_id: number;
98
+ readonly recovery_evidence_path: string;
99
+ }
100
+ export declare function startAuditRun(options: {
101
+ packageRoot: string;
102
+ configRoot: string;
103
+ stateRoot: string;
104
+ workspaceRoot: string;
105
+ executablePath: string;
106
+ manager: ServiceManager;
107
+ runKind: RunKind;
108
+ }): Readonly<{
109
+ status: "created" | "replayed";
110
+ manifest: RunManifest;
111
+ }>;
112
+ export declare function conductorNext(options: {
113
+ packageRoot: string;
114
+ configRoot: string;
115
+ stateRoot: string;
116
+ runId: string;
117
+ }): Readonly<{
118
+ status: "created" | "replayed";
119
+ decision: ConductorRoute;
120
+ absolute_path: string;
121
+ }>;
122
+ export declare function tickAuditRun(options: {
123
+ packageRoot: string;
124
+ configRoot: string;
125
+ stateRoot: string;
126
+ runId: string;
127
+ }): Readonly<{
128
+ status: RunControllerStatus;
129
+ route: ConductorRoute | null;
130
+ }>;
131
+ export declare function closeTimedAuditRun(options: {
132
+ packageRoot: string;
133
+ configRoot: string;
134
+ stateRoot: string;
135
+ runId: string;
136
+ }): RunControllerStatus;
137
+ export declare function abortAuditRun(options: {
138
+ packageRoot: string;
139
+ configRoot: string;
140
+ stateRoot: string;
141
+ runId: string;
142
+ reason: string;
143
+ }): RunControllerStatus;
144
+ export declare function recoverRunControllerAuthority(options: {
145
+ packageRoot: string;
146
+ stateRoot: string;
147
+ expectedGenerationId: string;
148
+ reason: string;
149
+ }): RunControllerRecoveryResult;
150
+ export declare function readRunStatus(options: {
151
+ packageRoot: string;
152
+ configRoot: string;
153
+ stateRoot: string;
154
+ runId: string;
155
+ }): RunControllerStatus;
156
+ export declare function listRunStatuses(options: {
157
+ packageRoot: string;
158
+ configRoot: string;
159
+ stateRoot: string;
160
+ }): readonly RunControllerStatus[];
161
+ export declare function assertRunTicketAdmission(options: {
162
+ packageRoot: string;
163
+ configRoot: string;
164
+ stateRoot: string;
165
+ runId: string;
166
+ ticket: TicketQueueRecord;
167
+ }): RunTicketAdmissionGate;
168
+ export declare function findActiveRunTicketAdmission(options: {
169
+ packageRoot: string;
170
+ configRoot: string;
171
+ stateRoot: string;
172
+ ticket: TicketQueueRecord;
173
+ }): RunTicketAdmissionGate | null;
174
+ export declare function assertRunCurrentAuthority(manifest: RunManifest, configRoot: string): void;
175
+ export declare function assertRunTicketAdmissionGate(value: unknown): asserts value is RunTicketAdmissionGate;
176
+ /**
177
+ * Appends one audit-only event while preserving process continuity across
178
+ * short-lived CLI invocations. The head compare-and-swap keeps a restart
179
+ * marker adjacent to the first event from its process.
180
+ */
181
+ export declare function appendRunAuditEvent(ledger: RunLedgerStore, input: Omit<AppendRunEntryInput, "entryKind"> & {
182
+ readonly entryKind: Exclude<AppendRunEntryInput["entryKind"], "process-restarted" | "run-completed" | "run-aborted">;
183
+ }): RunLedgerWriteResult;
184
+ export declare function readRunManifest(packageRoot: string, stateRoot: string, runId: string): RunManifest;
185
+ export declare function assertRunManifestLedgerBinding(ledger: RunLedgerStore, manifest: RunManifest): void;
186
+ export declare function withRunControllerAuthority<T>(stateRoot: string, operation: () => T): T;
187
+ export {};