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,38 @@
1
+ import type { RoleId, RolePolicyConfig } from "../domain/role-policy.js";
2
+ import { type ProcessRunner } from "./process.js";
3
+ import { type AuthEvidence, type WorktreeEvidence } from "./preflight.js";
4
+ type ClaudeRoleId = Extract<RoleId, "oms.conductor" | "oms.ticket-executor" | "oms.grader.claude" | "oms.bounded-dreamer">;
5
+ export interface ClaudeLaunchPlan {
6
+ command: "claude";
7
+ args: string[];
8
+ cwd: string;
9
+ env: NodeJS.ProcessEnv;
10
+ interactive: true;
11
+ authEvidence: AuthEvidence;
12
+ worktreeEvidence?: WorktreeEvidence;
13
+ }
14
+ export interface ConductorBridgeLaunch {
15
+ readonly command: string;
16
+ readonly args: readonly string[];
17
+ }
18
+ export declare function prepareClaudeInteractiveLaunch(options: {
19
+ config: RolePolicyConfig;
20
+ roleId: ClaudeRoleId;
21
+ cwd: string;
22
+ sessionName: string;
23
+ env?: NodeJS.ProcessEnv;
24
+ confirmBilledUse?: boolean;
25
+ runner?: ProcessRunner;
26
+ conductorBridge?: ConductorBridgeLaunch;
27
+ conductorInstructionsPath?: string;
28
+ conductorNotificationsRoot?: string;
29
+ nativeSessionId?: string;
30
+ resumeNativeSession?: boolean;
31
+ workerBridge?: ConductorBridgeLaunch;
32
+ workerInstructionsPath?: string;
33
+ dispatchId?: string;
34
+ structuredRoleBridge?: ConductorBridgeLaunch;
35
+ structuredRoleInstructionsPath?: string;
36
+ structuredRequestId?: string;
37
+ }): ClaudeLaunchPlan;
38
+ export {};
@@ -0,0 +1,287 @@
1
+ import { lstatSync, readFileSync, realpathSync } from "node:fs";
2
+ import { assertOpaqueId } from "../domain/records.js";
3
+ import { isAbsolute, join } from "node:path";
4
+ import { SUPPORTED_PROVIDER_HOOK_VERSIONS } from "../hooks/provider.js";
5
+ import { validateExistingDirectory } from "../utils/fs.js";
6
+ import { runProcess } from "./process.js";
7
+ import { configuredProviderEnvironment, probeConfiguredAuth, resolveConfiguredRole, verifyLinkedWorktree, } from "./preflight.js";
8
+ export function prepareClaudeInteractiveLaunch(options) {
9
+ const { role, modelId } = resolveConfiguredRole(options.config, options.roleId);
10
+ if (role.engine !== "claude" || role.transport !== "claude_interactive") {
11
+ throw new Error(`role ${role.role_id} is not an interactive Claude role`);
12
+ }
13
+ const cwd = validateExistingDirectory(options.cwd, "Claude working directory");
14
+ const env = configuredProviderEnvironment(options.config, role, options.env ?? process.env, options.confirmBilledUse);
15
+ const runner = options.runner ?? runProcess;
16
+ const authEvidence = probeConfiguredAuth({ role, cwd, env, runner });
17
+ const isConductor = role.role_id === "oms.conductor";
18
+ const isTicketExecutor = role.role_id === "oms.ticket-executor";
19
+ const isStructuredRole = role.role_id === "oms.grader.claude" || role.role_id === "oms.bounded-dreamer";
20
+ if (isConductor && (!options.conductorBridge
21
+ || !options.conductorInstructionsPath
22
+ || !options.conductorNotificationsRoot
23
+ || !options.nativeSessionId)) {
24
+ throw new Error("conductor launch requires its instructions, notification root, strict OMS bridge, and native session id");
25
+ }
26
+ if (!isConductor && (options.conductorBridge
27
+ || options.conductorInstructionsPath
28
+ || options.conductorNotificationsRoot
29
+ || options.resumeNativeSession)) {
30
+ throw new Error(`role ${role.role_id} cannot receive conductor launch authority`);
31
+ }
32
+ if (!isConductor && !isStructuredRole && options.nativeSessionId) {
33
+ throw new Error(`role ${role.role_id} cannot receive native session authority`);
34
+ }
35
+ if (isTicketExecutor && (!options.workerBridge || !options.workerInstructionsPath || !options.dispatchId)) {
36
+ throw new Error("ticket executor launch requires its instructions, bound worker bridge, and dispatch id");
37
+ }
38
+ if (!isTicketExecutor && (options.workerBridge || options.workerInstructionsPath || options.dispatchId)) {
39
+ throw new Error(`role ${role.role_id} cannot receive worker launch authority`);
40
+ }
41
+ if (isStructuredRole && (!options.structuredRoleBridge
42
+ || !options.structuredRoleInstructionsPath
43
+ || !options.structuredRequestId
44
+ || !options.nativeSessionId
45
+ || options.resumeNativeSession)) {
46
+ throw new Error(`role ${role.role_id} requires its instructions, strict OMS role bridge, request id, and fresh native session id`);
47
+ }
48
+ if (!isStructuredRole && (options.structuredRoleBridge
49
+ || options.structuredRoleInstructionsPath
50
+ || options.structuredRequestId)) {
51
+ throw new Error(`role ${role.role_id} cannot receive structured-role launch authority`);
52
+ }
53
+ const mcpConfig = isConductor
54
+ ? bridgeMcpConfig("oms", options.conductorBridge)
55
+ : isTicketExecutor
56
+ ? bridgeMcpConfig("oms_worker", options.workerBridge)
57
+ : isStructuredRole
58
+ ? bridgeMcpConfig("oms_role", options.structuredRoleBridge)
59
+ : '{"mcpServers":{}}';
60
+ const runtimeSettings = isConductor
61
+ ? conductorRuntimeSettings(options.conductorBridge, options.nativeSessionId)
62
+ : isTicketExecutor
63
+ ? workerRuntimeSettings(options.workerBridge, options.dispatchId, options.sessionName)
64
+ : undefined;
65
+ const args = [
66
+ "--model",
67
+ modelId,
68
+ "--name",
69
+ assertOpaqueId(options.sessionName, "session name"),
70
+ "--strict-mcp-config",
71
+ "--mcp-config",
72
+ mcpConfig,
73
+ "--no-chrome",
74
+ "--setting-sources",
75
+ "",
76
+ ];
77
+ if (runtimeSettings)
78
+ args.push("--settings", JSON.stringify(runtimeSettings));
79
+ let worktreeEvidence;
80
+ if (role.sandbox === "read-only") {
81
+ if (isConductor) {
82
+ const nativeSessionId = assertUuid(options.nativeSessionId);
83
+ const conductorTools = [
84
+ "Read",
85
+ "Glob",
86
+ "Grep",
87
+ "mcp__oms__propose_goal",
88
+ "mcp__oms__prepare_dispatch",
89
+ "mcp__oms__advise_dispatch",
90
+ "mcp__oms__propose_dispatch",
91
+ "mcp__oms__manage_worker",
92
+ "mcp__oms__start_team",
93
+ "mcp__oms__process_result",
94
+ ];
95
+ const conductorPrompt = [
96
+ readInstructionText(options.conductorInstructionsPath),
97
+ conductorNotificationInstructions(options.conductorBridge, options.conductorNotificationsRoot),
98
+ ].join("\n\n");
99
+ args.push("--append-system-prompt", conductorPrompt, options.resumeNativeSession ? "--resume" : "--session-id", nativeSessionId, "--permission-mode", "dontAsk", "--tools", conductorTools.join(","), "--allowedTools", conductorTools.join(","), "--disallowedTools", "Edit,Write,NotebookEdit,WebFetch,WebSearch,Bash,Task,Agent");
100
+ }
101
+ else if (isStructuredRole) {
102
+ const nativeSessionId = assertUuid(options.nativeSessionId);
103
+ assertOpaqueId(options.structuredRequestId, "structured request id");
104
+ const structuredTools = [
105
+ "Read",
106
+ "Glob",
107
+ "Grep",
108
+ "mcp__oms_role__read_request",
109
+ "mcp__oms_role__submit_schema_result",
110
+ ];
111
+ args.push("--append-system-prompt-file", validateInstructionFile(options.structuredRoleInstructionsPath, "structured role instructions"), "--session-id", nativeSessionId, "--permission-mode", "dontAsk", "--tools", structuredTools.join(","), "--allowedTools", structuredTools.join(","), "--disallowedTools", "Edit,Write,NotebookEdit,WebFetch,WebSearch,Bash,Task,Agent");
112
+ }
113
+ else {
114
+ args.push("--permission-mode", "dontAsk", "--tools", "Read,Glob,Grep,Bash", "--allowedTools", ["Read", "Glob", "Grep", "Bash(oms status *)", "Bash(oms doctor)"].join(","), "--disallowedTools", "Edit,Write,NotebookEdit,WebFetch,WebSearch");
115
+ }
116
+ }
117
+ else {
118
+ if (role.session_policy !== "operator_originated_oms_managed_interactive") {
119
+ throw new Error(`writable Claude role ${role.role_id} must be operator-originated and OMS-managed`);
120
+ }
121
+ worktreeEvidence = verifyLinkedWorktree({ cwd, env, runner });
122
+ assertOpaqueId(options.dispatchId, "worker dispatch id");
123
+ const workerTools = [
124
+ "Read",
125
+ "Glob",
126
+ "Grep",
127
+ "Edit",
128
+ "Write",
129
+ "mcp__oms_worker__read_dispatch",
130
+ "mcp__oms_worker__acknowledge_dispatch",
131
+ "mcp__oms_worker__record_dispatch_result",
132
+ ];
133
+ args.push("--append-system-prompt-file", validateInstructionFile(options.workerInstructionsPath, "worker instructions"), "--permission-mode", "acceptEdits", "--tools", workerTools.join(","), "--allowedTools", workerTools.join(","), "--disallowedTools", "Bash,NotebookEdit,WebFetch,WebSearch,Agent,Task");
134
+ }
135
+ if (args.some((argument) => argument === "-p" || argument === "--print" || argument === "--background" || argument === "--bg")) {
136
+ throw new Error("Claude launch plan must remain interactive");
137
+ }
138
+ return { command: "claude", args, cwd, env, interactive: true, authEvidence, worktreeEvidence };
139
+ }
140
+ function conductorNotificationInstructions(bridge, suppliedRoot) {
141
+ const stateRoot = validateExistingDirectory(requiredBridgeArgument(bridge, "--state-root"), "conductor state root");
142
+ const notificationsRoot = validateExistingDirectory(suppliedRoot, "conductor notification root");
143
+ if (/[\0\r\n]/u.test(notificationsRoot) || notificationsRoot !== join(stateRoot, "conductor-notifications")) {
144
+ throw new Error("conductor notification root does not match its state binding");
145
+ }
146
+ return [
147
+ "Trusted OMS runtime binding:",
148
+ `resolve each opaque notice-* ID only as ${notificationsRoot}/<ID>.json.`,
149
+ "This absolute root overrides relative notification-path examples in the static role instructions.",
150
+ ].join(" ");
151
+ }
152
+ function conductorRuntimeSettings(bridge, sessionId) {
153
+ const executable = validateHookExecutable(bridge.command);
154
+ const stateRoot = requiredBridgeArgument(bridge, "--state-root");
155
+ const boundSessionId = requiredBridgeArgument(bridge, "--session-id");
156
+ if (boundSessionId !== sessionId)
157
+ throw new Error("conductor hook session does not match its bridge");
158
+ const common = [
159
+ "--session-id",
160
+ sessionId,
161
+ "--state-root",
162
+ stateRoot,
163
+ "--provider-version",
164
+ SUPPORTED_PROVIDER_HOOK_VERSIONS.claude,
165
+ ];
166
+ const observe = (event) => commandHook(executable, ["conductor", "observe", "--hook-event", event, ...common]);
167
+ const wait = (event) => commandHook(executable, ["conductor", "wait-event", "--hook-event", event, ...common], { asyncRewake: true, timeout: 86_400 });
168
+ return Object.freeze({
169
+ autoMemoryEnabled: false,
170
+ hooks: {
171
+ SessionStart: [hookGroup([observe("SessionStart"), wait("SessionStart")], "startup|resume")],
172
+ UserPromptSubmit: [hookGroup([observe("UserPromptSubmit")])],
173
+ Stop: [hookGroup([observe("Stop"), wait("Stop")])],
174
+ StopFailure: [hookGroup([observe("StopFailure")])],
175
+ PostToolUse: [hookGroup([
176
+ commandHook(executable, ["conductor", "consume-event", ...common]),
177
+ ], "Read")],
178
+ SessionEnd: [hookGroup([observe("SessionEnd")])],
179
+ },
180
+ });
181
+ }
182
+ function workerRuntimeSettings(bridge, dispatchId, sessionId) {
183
+ const executable = validateHookExecutable(bridge.command);
184
+ const stateRoot = requiredBridgeArgument(bridge, "--state-root");
185
+ const workspaceRoot = requiredBridgeArgument(bridge, "--workspace-root");
186
+ const configRoot = requiredBridgeArgument(bridge, "--config-root");
187
+ const boundDispatchId = requiredBridgeArgument(bridge, "--dispatch-id");
188
+ const boundSessionId = requiredBridgeArgument(bridge, "--session-id");
189
+ if (boundDispatchId !== dispatchId || boundSessionId !== sessionId) {
190
+ throw new Error("worker hooks do not match their bridge authority");
191
+ }
192
+ const args = [
193
+ "hook",
194
+ "provider",
195
+ "--provider",
196
+ "claude",
197
+ "--provider-version",
198
+ SUPPORTED_PROVIDER_HOOK_VERSIONS.claude,
199
+ "--dispatch-id",
200
+ dispatchId,
201
+ "--session-id",
202
+ sessionId,
203
+ "--state-root",
204
+ stateRoot,
205
+ "--workspace-root",
206
+ workspaceRoot,
207
+ "--config-root",
208
+ configRoot,
209
+ ];
210
+ const observe = () => commandHook(executable, args);
211
+ return Object.freeze({
212
+ autoMemoryEnabled: false,
213
+ hooks: {
214
+ SessionStart: [hookGroup([observe()])],
215
+ UserPromptSubmit: [hookGroup([observe()])],
216
+ Stop: [hookGroup([observe()])],
217
+ StopFailure: [hookGroup([observe()])],
218
+ Notification: [hookGroup([observe()], "idle_prompt|auth_success")],
219
+ SessionEnd: [hookGroup([observe()])],
220
+ },
221
+ });
222
+ }
223
+ function commandHook(command, args, extra = {}) {
224
+ return Object.freeze({ type: "command", command, args: Object.freeze([...args]), timeout: 10, ...extra });
225
+ }
226
+ function hookGroup(hooks, matcher) {
227
+ return Object.freeze({ ...(matcher ? { matcher } : {}), hooks: Object.freeze([...hooks]) });
228
+ }
229
+ function validateHookExecutable(value) {
230
+ if (!isAbsolute(value) || /[\0\r\n]/u.test(value)) {
231
+ throw new Error("OMS hook executable must be an absolute path without control characters");
232
+ }
233
+ return value;
234
+ }
235
+ function requiredBridgeArgument(bridge, option) {
236
+ const indexes = bridge.args.flatMap((value, index) => value === option ? [index] : []);
237
+ if (indexes.length !== 1)
238
+ throw new Error(`OMS bridge requires exactly one ${option} binding`);
239
+ const value = bridge.args[indexes[0] + 1];
240
+ if (!value || /[\0\r\n]/u.test(value))
241
+ throw new Error(`OMS bridge ${option} binding is invalid`);
242
+ return value;
243
+ }
244
+ function validateInstructionFile(path, label = "conductor instructions") {
245
+ if (!isAbsolute(path) || /[\0\r\n]/u.test(path)) {
246
+ throw new Error(`${label} path must be an absolute path without control characters`);
247
+ }
248
+ const entry = lstatSync(path);
249
+ if (entry.isSymbolicLink() || !entry.isFile())
250
+ throw new Error(`${label} must be a non-symbolic file`);
251
+ return realpathSync.native(path);
252
+ }
253
+ function readInstructionText(path, label = "conductor instructions") {
254
+ const content = readFileSync(validateInstructionFile(path, label), "utf8").trimEnd();
255
+ if (content.length === 0)
256
+ throw new Error(`${label} must not be empty`);
257
+ if (Buffer.byteLength(content, "utf8") > 128 * 1024)
258
+ throw new Error(`${label} exceeds 131072 bytes`);
259
+ return content;
260
+ }
261
+ function bridgeMcpConfig(name, bridge) {
262
+ if (!isAbsolute(bridge.command) || /[\0\r\n]/u.test(bridge.command)) {
263
+ throw new Error("OMS bridge command must be an absolute path without control characters");
264
+ }
265
+ const args = bridge.args.map((argument) => {
266
+ if (typeof argument !== "string" || /[\0\r\n]/u.test(argument)) {
267
+ throw new Error("OMS bridge arguments must not contain control characters");
268
+ }
269
+ return argument;
270
+ });
271
+ return JSON.stringify({
272
+ mcpServers: {
273
+ [name]: {
274
+ command: bridge.command,
275
+ args,
276
+ alwaysLoad: true,
277
+ },
278
+ },
279
+ });
280
+ }
281
+ function assertUuid(value) {
282
+ if (!/^[a-f0-9]{8}-[a-f0-9]{4}-[1-8][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/u.test(value)) {
283
+ throw new Error("Claude native session id must be a UUID");
284
+ }
285
+ return value;
286
+ }
287
+ //# sourceMappingURL=claude-interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-interactive.js","sourceRoot":"","sources":["../../../src/providers/claude-interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { Readable, Writable } from "node:stream";
2
+ import { type ClaudeStructuredResult } from "./claude-structured-store.js";
3
+ export declare const CLAUDE_STRUCTURED_ROLE_TOOLS: readonly ["read_request", "submit_schema_result"];
4
+ export declare const MAX_CLAUDE_STRUCTURED_ROLE_FRAME_BYTES: number;
5
+ interface JsonRpcResponse {
6
+ readonly jsonrpc: "2.0";
7
+ readonly id: string | number | null;
8
+ readonly result?: unknown;
9
+ readonly error?: {
10
+ readonly code: number;
11
+ readonly message: string;
12
+ };
13
+ }
14
+ export interface ClaudeStructuredRoleBridge {
15
+ handleMessage(message: unknown): JsonRpcResponse | undefined;
16
+ handleLine(line: string | Buffer): string | undefined;
17
+ }
18
+ export interface ClaudeStructuredRoleBridgeOptions {
19
+ readonly packageRoot: string;
20
+ readonly stateRoot: string;
21
+ readonly requestId: string;
22
+ readonly sessionId: string;
23
+ readonly clock?: () => string;
24
+ readonly onResultSubmitted?: (result: ClaudeStructuredResult) => void;
25
+ readonly onResultProjectionFailure?: (requestId: string, error: unknown) => void;
26
+ }
27
+ export declare function createClaudeStructuredRoleBridge(options: ClaudeStructuredRoleBridgeOptions): ClaudeStructuredRoleBridge;
28
+ export declare function runClaudeStructuredRoleBridge(options: ClaudeStructuredRoleBridgeOptions & {
29
+ readonly input: Readable;
30
+ readonly output: Writable;
31
+ }): Promise<void>;
32
+ export {};
@@ -0,0 +1,215 @@
1
+ import { once } from "node:events";
2
+ import { join } from "node:path";
3
+ import { assertOpaqueId } from "../domain/records.js";
4
+ import { assertSchema, loadJsonSchema, SchemaValidationError } from "../runtime/schema.js";
5
+ import { isRecord, validateExistingDirectory } from "../utils/fs.js";
6
+ import { createClaudeStructuredRoleStore, } from "./claude-structured-store.js";
7
+ export const CLAUDE_STRUCTURED_ROLE_TOOLS = Object.freeze([
8
+ "read_request",
9
+ "submit_schema_result",
10
+ ]);
11
+ export const MAX_CLAUDE_STRUCTURED_ROLE_FRAME_BYTES = 128 * 1024;
12
+ const TOOL_SCHEMA_FILES = Object.freeze({
13
+ read_request: "structured-role-read-request.schema.json",
14
+ submit_schema_result: "structured-role-submit-result.schema.json",
15
+ });
16
+ export function createClaudeStructuredRoleBridge(options) {
17
+ const packageRoot = validateExistingDirectory(options.packageRoot, "structured-role bridge package root");
18
+ const stateRoot = validateExistingDirectory(options.stateRoot, "structured-role bridge state root");
19
+ const requestId = assertOpaqueId(options.requestId, "structured request id");
20
+ const clock = options.clock ?? (() => new Date().toISOString());
21
+ const store = createClaudeStructuredRoleStore({ packageRoot, stateRoot });
22
+ const request = store.readRequest(requestId);
23
+ if (request.claude_session_id !== options.sessionId)
24
+ throw new Error("structured-role bridge session binding mismatch");
25
+ const tools = CLAUDE_STRUCTURED_ROLE_TOOLS.map((name) => Object.freeze({
26
+ name,
27
+ description: name === "read_request"
28
+ ? "Read the one immutable structured-role request bound to this fresh Claude session."
29
+ : "Submit the one schema-valid structured result bound to this fresh Claude session.",
30
+ inputSchema: loadJsonSchema(join(packageRoot, "schemas", TOOL_SCHEMA_FILES[name])),
31
+ }));
32
+ const schemas = Object.freeze(Object.fromEntries(tools.map((tool) => [tool.name, tool.inputSchema])));
33
+ function handleMessage(message) {
34
+ const rpc = parseRequest(message);
35
+ if (!rpc)
36
+ return invalidRequest(null);
37
+ if (rpc.method === "notifications/initialized")
38
+ return undefined;
39
+ if (rpc.method === "initialize") {
40
+ if (rpc.id === undefined)
41
+ return undefined;
42
+ return success(rpc.id, {
43
+ protocolVersion: "2025-06-18",
44
+ capabilities: { tools: { listChanged: false } },
45
+ serverInfo: { name: "oms-structured-role-bridge", version: "0.1.0" },
46
+ });
47
+ }
48
+ if (rpc.method === "ping")
49
+ return rpc.id === undefined ? undefined : success(rpc.id, {});
50
+ if (rpc.method === "tools/list") {
51
+ return rpc.id === undefined ? undefined : success(rpc.id, { tools: structuredClone(tools) });
52
+ }
53
+ if (rpc.method !== "tools/call") {
54
+ return rpc.id === undefined ? undefined : failure(rpc.id, -32601, "method not found");
55
+ }
56
+ if (rpc.id === undefined)
57
+ return undefined;
58
+ const call = parseToolCall(rpc.params);
59
+ if (!call)
60
+ return failure(rpc.id, -32602, "invalid tool call");
61
+ try {
62
+ assertSchema(call.arguments, schemas[call.name], `${call.name} input`);
63
+ }
64
+ catch (error) {
65
+ return error instanceof SchemaValidationError
66
+ ? failure(rpc.id, -32602, "invalid tool input")
67
+ : failure(rpc.id, -32603, "tool validation failed");
68
+ }
69
+ if (call.arguments.request_id !== requestId)
70
+ return failure(rpc.id, -32602, "request binding mismatch");
71
+ if (call.name === "read_request") {
72
+ return success(rpc.id, toolResult({
73
+ status: store.readResultIfExists(requestId) ? "complete" : "ready",
74
+ request,
75
+ output_schema: store.outputSchema(requestId),
76
+ }));
77
+ }
78
+ try {
79
+ const submitted = store.submitResult(requestId, call.arguments.result, clock());
80
+ try {
81
+ options.onResultSubmitted?.(submitted.record);
82
+ }
83
+ catch (error) {
84
+ // The immutable result remains authoritative. Watchdog recovery repairs
85
+ // a missed completion projection instead of asking the model to retry.
86
+ try {
87
+ options.onResultProjectionFailure?.(requestId, error);
88
+ }
89
+ catch {
90
+ // Projection reporting must not corrupt or retry the immutable result.
91
+ }
92
+ }
93
+ return success(rpc.id, toolResult({
94
+ status: submitted.status,
95
+ request_id: requestId,
96
+ role_id: request.role_id,
97
+ evidence_schema: request.evidence_schema,
98
+ }));
99
+ }
100
+ catch (error) {
101
+ if (error instanceof SchemaValidationError)
102
+ return failure(rpc.id, -32602, "invalid schema result");
103
+ return success(rpc.id, toolResult({ status: "result-conflict", request_id: requestId }, true));
104
+ }
105
+ }
106
+ return Object.freeze({
107
+ handleMessage,
108
+ handleLine(line) {
109
+ const bytes = Buffer.isBuffer(line) ? line : Buffer.from(line, "utf8");
110
+ if (bytes.byteLength > MAX_CLAUDE_STRUCTURED_ROLE_FRAME_BYTES) {
111
+ return JSON.stringify(failure(null, -32700, "frame too large"));
112
+ }
113
+ let message;
114
+ try {
115
+ message = JSON.parse(bytes.toString("utf8"));
116
+ }
117
+ catch {
118
+ return JSON.stringify(failure(null, -32700, "parse error"));
119
+ }
120
+ const response = handleMessage(message);
121
+ return response ? JSON.stringify(response) : undefined;
122
+ },
123
+ });
124
+ }
125
+ export async function runClaudeStructuredRoleBridge(options) {
126
+ const bridge = createClaudeStructuredRoleBridge(options);
127
+ let fragments = [];
128
+ let frameBytes = 0;
129
+ let discardingOversizedFrame = false;
130
+ for await (const rawChunk of options.input) {
131
+ const chunk = Buffer.isBuffer(rawChunk) ? rawChunk : Buffer.from(String(rawChunk), "utf8");
132
+ let offset = 0;
133
+ while (offset < chunk.byteLength) {
134
+ const newline = chunk.indexOf(0x0a, offset);
135
+ const end = newline === -1 ? chunk.byteLength : newline;
136
+ const fragment = chunk.subarray(offset, end);
137
+ if (!discardingOversizedFrame) {
138
+ if (frameBytes + fragment.byteLength > MAX_CLAUDE_STRUCTURED_ROLE_FRAME_BYTES) {
139
+ fragments = [];
140
+ frameBytes = 0;
141
+ discardingOversizedFrame = true;
142
+ await writeResponse(options.output, JSON.stringify(failure(null, -32700, "frame too large")));
143
+ }
144
+ else if (fragment.byteLength > 0) {
145
+ fragments.push(fragment);
146
+ frameBytes += fragment.byteLength;
147
+ }
148
+ }
149
+ if (newline === -1)
150
+ break;
151
+ if (discardingOversizedFrame) {
152
+ discardingOversizedFrame = false;
153
+ }
154
+ else {
155
+ const response = bridge.handleLine(joinFrame(fragments, frameBytes));
156
+ if (response)
157
+ await writeResponse(options.output, response);
158
+ }
159
+ fragments = [];
160
+ frameBytes = 0;
161
+ offset = newline + 1;
162
+ }
163
+ }
164
+ if (!discardingOversizedFrame && frameBytes > 0) {
165
+ const response = bridge.handleLine(joinFrame(fragments, frameBytes));
166
+ if (response)
167
+ await writeResponse(options.output, response);
168
+ }
169
+ }
170
+ function parseToolCall(value) {
171
+ if (!isRecord(value) || Object.keys(value).some((key) => key !== "name" && key !== "arguments" && key !== "_meta")) {
172
+ return undefined;
173
+ }
174
+ if (value._meta !== undefined && !isRecord(value._meta))
175
+ return undefined;
176
+ if (value.name !== "read_request" && value.name !== "submit_schema_result")
177
+ return undefined;
178
+ if (!isRecord(value.arguments))
179
+ return undefined;
180
+ return Object.freeze({ name: value.name, arguments: value.arguments });
181
+ }
182
+ function parseRequest(value) {
183
+ if (!isRecord(value) || value.jsonrpc !== "2.0" || typeof value.method !== "string")
184
+ return undefined;
185
+ if (value.id !== undefined
186
+ && value.id !== null
187
+ && typeof value.id !== "string"
188
+ && typeof value.id !== "number")
189
+ return undefined;
190
+ return value;
191
+ }
192
+ function toolResult(payload, isError = false) {
193
+ const result = { content: [{ type: "text", text: JSON.stringify(payload) }] };
194
+ if (isError)
195
+ result.isError = true;
196
+ return result;
197
+ }
198
+ function success(id, result) {
199
+ return { jsonrpc: "2.0", id, result };
200
+ }
201
+ function failure(id, code, message) {
202
+ return { jsonrpc: "2.0", id, error: { code, message } };
203
+ }
204
+ function invalidRequest(id) {
205
+ return failure(id, -32600, "invalid request");
206
+ }
207
+ function joinFrame(fragments, byteLength) {
208
+ const frame = Buffer.concat(fragments, byteLength);
209
+ return frame.at(-1) === 0x0d ? frame.subarray(0, -1) : frame;
210
+ }
211
+ async function writeResponse(output, serialized) {
212
+ if (!output.write(`${serialized}\n`, "utf8"))
213
+ await once(output, "drain");
214
+ }
215
+ //# sourceMappingURL=claude-structured-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-structured-bridge.js","sourceRoot":"","sources":["../../../src/providers/claude-structured-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export declare const CLAUDE_STRUCTURED_COMPLETION_PROJECTOR = "structured-result-projector";
2
+ export interface ClaudeStructuredCompletionProjection {
3
+ readonly request_id: string;
4
+ readonly event_id: string;
5
+ readonly event_status: "created" | "replayed";
6
+ readonly receipt_id: string;
7
+ readonly receipt_status: "created" | "replayed";
8
+ readonly notification_id: string;
9
+ readonly notification_status: "created" | "replayed";
10
+ }
11
+ export interface ClaudeStructuredCompletionRecovery {
12
+ readonly projections: readonly ClaudeStructuredCompletionProjection[];
13
+ readonly failed_request_ids: readonly string[];
14
+ }
15
+ export declare function projectClaudeStructuredRoleCompletion(options: {
16
+ readonly packageRoot: string;
17
+ readonly stateRoot: string;
18
+ readonly requestId: string;
19
+ }): ClaudeStructuredCompletionProjection;
20
+ export declare function recoverClaudeStructuredRoleCompletions(options: {
21
+ readonly packageRoot: string;
22
+ readonly stateRoot: string;
23
+ }): ClaudeStructuredCompletionRecovery;