usesteady 0.1.0-alpha.1

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 (665) hide show
  1. package/LICENSE +186 -0
  2. package/README.md +724 -0
  3. package/bin/use-steady.js +13 -0
  4. package/dist/server-store.d.ts +68 -0
  5. package/dist/server-store.d.ts.map +1 -0
  6. package/dist/server-store.js +133 -0
  7. package/dist/server-store.js.map +1 -0
  8. package/dist/server.d.ts +35 -0
  9. package/dist/server.d.ts.map +1 -0
  10. package/dist/server.js +569 -0
  11. package/dist/server.js.map +1 -0
  12. package/dist/src/claude/adapters/api-adapter.d.ts +99 -0
  13. package/dist/src/claude/adapters/api-adapter.d.ts.map +1 -0
  14. package/dist/src/claude/adapters/api-adapter.js +415 -0
  15. package/dist/src/claude/adapters/api-adapter.js.map +1 -0
  16. package/dist/src/claude/adapters/stub-adapter.d.ts +73 -0
  17. package/dist/src/claude/adapters/stub-adapter.d.ts.map +1 -0
  18. package/dist/src/claude/adapters/stub-adapter.js +114 -0
  19. package/dist/src/claude/adapters/stub-adapter.js.map +1 -0
  20. package/dist/src/claude/artifact-mapper.d.ts +85 -0
  21. package/dist/src/claude/artifact-mapper.d.ts.map +1 -0
  22. package/dist/src/claude/artifact-mapper.js +187 -0
  23. package/dist/src/claude/artifact-mapper.js.map +1 -0
  24. package/dist/src/claude/delivery-gate.d.ts +136 -0
  25. package/dist/src/claude/delivery-gate.d.ts.map +1 -0
  26. package/dist/src/claude/delivery-gate.js +231 -0
  27. package/dist/src/claude/delivery-gate.js.map +1 -0
  28. package/dist/src/claude/index.d.ts +24 -0
  29. package/dist/src/claude/index.d.ts.map +1 -0
  30. package/dist/src/claude/index.js +23 -0
  31. package/dist/src/claude/index.js.map +1 -0
  32. package/dist/src/claude/types.d.ts +223 -0
  33. package/dist/src/claude/types.d.ts.map +1 -0
  34. package/dist/src/claude/types.js +64 -0
  35. package/dist/src/claude/types.js.map +1 -0
  36. package/dist/src/control/compiler.d.ts +125 -0
  37. package/dist/src/control/compiler.d.ts.map +1 -0
  38. package/dist/src/control/compiler.js +179 -0
  39. package/dist/src/control/compiler.js.map +1 -0
  40. package/dist/src/control/constraints.d.ts +42 -0
  41. package/dist/src/control/constraints.d.ts.map +1 -0
  42. package/dist/src/control/constraints.js +116 -0
  43. package/dist/src/control/constraints.js.map +1 -0
  44. package/dist/src/control/drift-detector.d.ts +49 -0
  45. package/dist/src/control/drift-detector.d.ts.map +1 -0
  46. package/dist/src/control/drift-detector.js +115 -0
  47. package/dist/src/control/drift-detector.js.map +1 -0
  48. package/dist/src/control/index.d.ts +44 -0
  49. package/dist/src/control/index.d.ts.map +1 -0
  50. package/dist/src/control/index.js +40 -0
  51. package/dist/src/control/index.js.map +1 -0
  52. package/dist/src/control/types.d.ts +144 -0
  53. package/dist/src/control/types.d.ts.map +1 -0
  54. package/dist/src/control/types.js +57 -0
  55. package/dist/src/control/types.js.map +1 -0
  56. package/dist/src/cursor/adapters/inprocess-adapter.d.ts +78 -0
  57. package/dist/src/cursor/adapters/inprocess-adapter.d.ts.map +1 -0
  58. package/dist/src/cursor/adapters/inprocess-adapter.js +308 -0
  59. package/dist/src/cursor/adapters/inprocess-adapter.js.map +1 -0
  60. package/dist/src/cursor/adapters/stub-adapter.d.ts +75 -0
  61. package/dist/src/cursor/adapters/stub-adapter.d.ts.map +1 -0
  62. package/dist/src/cursor/adapters/stub-adapter.js +120 -0
  63. package/dist/src/cursor/adapters/stub-adapter.js.map +1 -0
  64. package/dist/src/cursor/artifact-mapper.d.ts +81 -0
  65. package/dist/src/cursor/artifact-mapper.d.ts.map +1 -0
  66. package/dist/src/cursor/artifact-mapper.js +203 -0
  67. package/dist/src/cursor/artifact-mapper.js.map +1 -0
  68. package/dist/src/cursor/delivery-gate.d.ts +144 -0
  69. package/dist/src/cursor/delivery-gate.d.ts.map +1 -0
  70. package/dist/src/cursor/delivery-gate.js +208 -0
  71. package/dist/src/cursor/delivery-gate.js.map +1 -0
  72. package/dist/src/cursor/glob-matcher.d.ts +30 -0
  73. package/dist/src/cursor/glob-matcher.d.ts.map +1 -0
  74. package/dist/src/cursor/glob-matcher.js +68 -0
  75. package/dist/src/cursor/glob-matcher.js.map +1 -0
  76. package/dist/src/cursor/index.d.ts +43 -0
  77. package/dist/src/cursor/index.d.ts.map +1 -0
  78. package/dist/src/cursor/index.js +44 -0
  79. package/dist/src/cursor/index.js.map +1 -0
  80. package/dist/src/cursor/ocd-evaluator.d.ts +89 -0
  81. package/dist/src/cursor/ocd-evaluator.d.ts.map +1 -0
  82. package/dist/src/cursor/ocd-evaluator.js +142 -0
  83. package/dist/src/cursor/ocd-evaluator.js.map +1 -0
  84. package/dist/src/cursor/types.d.ts +309 -0
  85. package/dist/src/cursor/types.d.ts.map +1 -0
  86. package/dist/src/cursor/types.js +48 -0
  87. package/dist/src/cursor/types.js.map +1 -0
  88. package/dist/src/execution/claude/claude-execution-coordinator.d.ts +164 -0
  89. package/dist/src/execution/claude/claude-execution-coordinator.d.ts.map +1 -0
  90. package/dist/src/execution/claude/claude-execution-coordinator.js +198 -0
  91. package/dist/src/execution/claude/claude-execution-coordinator.js.map +1 -0
  92. package/dist/src/execution/claude/index.d.ts +13 -0
  93. package/dist/src/execution/claude/index.d.ts.map +1 -0
  94. package/dist/src/execution/claude/index.js +12 -0
  95. package/dist/src/execution/claude/index.js.map +1 -0
  96. package/dist/src/execution/cursor/cursor-execution-coordinator.d.ts +216 -0
  97. package/dist/src/execution/cursor/cursor-execution-coordinator.d.ts.map +1 -0
  98. package/dist/src/execution/cursor/cursor-execution-coordinator.js +233 -0
  99. package/dist/src/execution/cursor/cursor-execution-coordinator.js.map +1 -0
  100. package/dist/src/execution/cursor/index.d.ts +20 -0
  101. package/dist/src/execution/cursor/index.d.ts.map +1 -0
  102. package/dist/src/execution/cursor/index.js +18 -0
  103. package/dist/src/execution/cursor/index.js.map +1 -0
  104. package/dist/src/execution/reminders/index.d.ts +11 -0
  105. package/dist/src/execution/reminders/index.d.ts.map +1 -0
  106. package/dist/src/execution/reminders/index.js +9 -0
  107. package/dist/src/execution/reminders/index.js.map +1 -0
  108. package/dist/src/execution/reminders/reminder-execution-coordinator.d.ts +125 -0
  109. package/dist/src/execution/reminders/reminder-execution-coordinator.d.ts.map +1 -0
  110. package/dist/src/execution/reminders/reminder-execution-coordinator.js +129 -0
  111. package/dist/src/execution/reminders/reminder-execution-coordinator.js.map +1 -0
  112. package/dist/src/execution/reminders/reminder-execution-types.d.ts +161 -0
  113. package/dist/src/execution/reminders/reminder-execution-types.d.ts.map +1 -0
  114. package/dist/src/execution/reminders/reminder-execution-types.js +39 -0
  115. package/dist/src/execution/reminders/reminder-execution-types.js.map +1 -0
  116. package/dist/src/execution/reminders/reminder-execution-validator.d.ts +45 -0
  117. package/dist/src/execution/reminders/reminder-execution-validator.d.ts.map +1 -0
  118. package/dist/src/execution/reminders/reminder-execution-validator.js +92 -0
  119. package/dist/src/execution/reminders/reminder-execution-validator.js.map +1 -0
  120. package/dist/src/execution/reminders/reminder-executor.d.ts +62 -0
  121. package/dist/src/execution/reminders/reminder-executor.d.ts.map +1 -0
  122. package/dist/src/execution/reminders/reminder-executor.js +113 -0
  123. package/dist/src/execution/reminders/reminder-executor.js.map +1 -0
  124. package/dist/src/execution/reminders/reminder-time-parser.d.ts +41 -0
  125. package/dist/src/execution/reminders/reminder-time-parser.d.ts.map +1 -0
  126. package/dist/src/execution/reminders/reminder-time-parser.js +113 -0
  127. package/dist/src/execution/reminders/reminder-time-parser.js.map +1 -0
  128. package/dist/src/friction/auto-capture.d.ts +38 -0
  129. package/dist/src/friction/auto-capture.d.ts.map +1 -0
  130. package/dist/src/friction/auto-capture.js +133 -0
  131. package/dist/src/friction/auto-capture.js.map +1 -0
  132. package/dist/src/friction/client.d.ts +39 -0
  133. package/dist/src/friction/client.d.ts.map +1 -0
  134. package/dist/src/friction/client.js +165 -0
  135. package/dist/src/friction/client.js.map +1 -0
  136. package/dist/src/friction/config.d.ts +16 -0
  137. package/dist/src/friction/config.d.ts.map +1 -0
  138. package/dist/src/friction/config.js +56 -0
  139. package/dist/src/friction/config.js.map +1 -0
  140. package/dist/src/friction/github-auth.d.ts +41 -0
  141. package/dist/src/friction/github-auth.d.ts.map +1 -0
  142. package/dist/src/friction/github-auth.js +155 -0
  143. package/dist/src/friction/github-auth.js.map +1 -0
  144. package/dist/src/friction/github-issues.d.ts +51 -0
  145. package/dist/src/friction/github-issues.d.ts.map +1 -0
  146. package/dist/src/friction/github-issues.js +118 -0
  147. package/dist/src/friction/github-issues.js.map +1 -0
  148. package/dist/src/friction/payout-ledger.d.ts +45 -0
  149. package/dist/src/friction/payout-ledger.d.ts.map +1 -0
  150. package/dist/src/friction/payout-ledger.js +111 -0
  151. package/dist/src/friction/payout-ledger.js.map +1 -0
  152. package/dist/src/friction/queue.d.ts +42 -0
  153. package/dist/src/friction/queue.d.ts.map +1 -0
  154. package/dist/src/friction/queue.js +179 -0
  155. package/dist/src/friction/queue.js.map +1 -0
  156. package/dist/src/friction/reviewer.d.ts +42 -0
  157. package/dist/src/friction/reviewer.d.ts.map +1 -0
  158. package/dist/src/friction/reviewer.js +269 -0
  159. package/dist/src/friction/reviewer.js.map +1 -0
  160. package/dist/src/friction/types.d.ts +63 -0
  161. package/dist/src/friction/types.d.ts.map +1 -0
  162. package/dist/src/friction/types.js +18 -0
  163. package/dist/src/friction/types.js.map +1 -0
  164. package/dist/src/history/index.d.ts +39 -0
  165. package/dist/src/history/index.d.ts.map +1 -0
  166. package/dist/src/history/index.js +41 -0
  167. package/dist/src/history/index.js.map +1 -0
  168. package/dist/src/history/session-chain.d.ts +36 -0
  169. package/dist/src/history/session-chain.d.ts.map +1 -0
  170. package/dist/src/history/session-chain.js +91 -0
  171. package/dist/src/history/session-chain.js.map +1 -0
  172. package/dist/src/history/types.d.ts +130 -0
  173. package/dist/src/history/types.d.ts.map +1 -0
  174. package/dist/src/history/types.js +32 -0
  175. package/dist/src/history/types.js.map +1 -0
  176. package/dist/src/history/workflow-history.d.ts +48 -0
  177. package/dist/src/history/workflow-history.d.ts.map +1 -0
  178. package/dist/src/history/workflow-history.js +116 -0
  179. package/dist/src/history/workflow-history.js.map +1 -0
  180. package/dist/src/index.d.ts +88 -0
  181. package/dist/src/index.d.ts.map +1 -0
  182. package/dist/src/index.js +58 -0
  183. package/dist/src/index.js.map +1 -0
  184. package/dist/src/intake/classify-intent-state.d.ts +20 -0
  185. package/dist/src/intake/classify-intent-state.d.ts.map +1 -0
  186. package/dist/src/intake/classify-intent-state.js +29 -0
  187. package/dist/src/intake/classify-intent-state.js.map +1 -0
  188. package/dist/src/intake/intake-service.d.ts +105 -0
  189. package/dist/src/intake/intake-service.d.ts.map +1 -0
  190. package/dist/src/intake/intake-service.js +407 -0
  191. package/dist/src/intake/intake-service.js.map +1 -0
  192. package/dist/src/intake/response-planner.d.ts +25 -0
  193. package/dist/src/intake/response-planner.d.ts.map +1 -0
  194. package/dist/src/intake/response-planner.js +52 -0
  195. package/dist/src/intake/response-planner.js.map +1 -0
  196. package/dist/src/intake/signal-extractor.d.ts +25 -0
  197. package/dist/src/intake/signal-extractor.d.ts.map +1 -0
  198. package/dist/src/intake/signal-extractor.js +42 -0
  199. package/dist/src/intake/signal-extractor.js.map +1 -0
  200. package/dist/src/intake/trace.d.ts +157 -0
  201. package/dist/src/intake/trace.d.ts.map +1 -0
  202. package/dist/src/intake/trace.js +38 -0
  203. package/dist/src/intake/trace.js.map +1 -0
  204. package/dist/src/intake/types.d.ts +70 -0
  205. package/dist/src/intake/types.d.ts.map +1 -0
  206. package/dist/src/intake/types.js +30 -0
  207. package/dist/src/intake/types.js.map +1 -0
  208. package/dist/src/interaction/defaults.d.ts +12 -0
  209. package/dist/src/interaction/defaults.d.ts.map +1 -0
  210. package/dist/src/interaction/defaults.js +26 -0
  211. package/dist/src/interaction/defaults.js.map +1 -0
  212. package/dist/src/interaction/guidance-order.d.ts +53 -0
  213. package/dist/src/interaction/guidance-order.d.ts.map +1 -0
  214. package/dist/src/interaction/guidance-order.js +131 -0
  215. package/dist/src/interaction/guidance-order.js.map +1 -0
  216. package/dist/src/interaction/observe.d.ts +57 -0
  217. package/dist/src/interaction/observe.d.ts.map +1 -0
  218. package/dist/src/interaction/observe.js +77 -0
  219. package/dist/src/interaction/observe.js.map +1 -0
  220. package/dist/src/interaction/selectors.d.ts +16 -0
  221. package/dist/src/interaction/selectors.d.ts.map +1 -0
  222. package/dist/src/interaction/selectors.js +23 -0
  223. package/dist/src/interaction/selectors.js.map +1 -0
  224. package/dist/src/interaction/types.d.ts +105 -0
  225. package/dist/src/interaction/types.d.ts.map +1 -0
  226. package/dist/src/interaction/types.js +48 -0
  227. package/dist/src/interaction/types.js.map +1 -0
  228. package/dist/src/interaction/updater.d.ts +22 -0
  229. package/dist/src/interaction/updater.d.ts.map +1 -0
  230. package/dist/src/interaction/updater.js +87 -0
  231. package/dist/src/interaction/updater.js.map +1 -0
  232. package/dist/src/present/boundary-explanation/boundary-explanation-detector.d.ts +48 -0
  233. package/dist/src/present/boundary-explanation/boundary-explanation-detector.d.ts.map +1 -0
  234. package/dist/src/present/boundary-explanation/boundary-explanation-detector.js +107 -0
  235. package/dist/src/present/boundary-explanation/boundary-explanation-detector.js.map +1 -0
  236. package/dist/src/present/boundary-explanation/boundary-explanation-types.d.ts +43 -0
  237. package/dist/src/present/boundary-explanation/boundary-explanation-types.d.ts.map +1 -0
  238. package/dist/src/present/boundary-explanation/boundary-explanation-types.js +20 -0
  239. package/dist/src/present/boundary-explanation/boundary-explanation-types.js.map +1 -0
  240. package/dist/src/present/boundary-explanation/index.d.ts +10 -0
  241. package/dist/src/present/boundary-explanation/index.d.ts.map +1 -0
  242. package/dist/src/present/boundary-explanation/index.js +2 -0
  243. package/dist/src/present/boundary-explanation/index.js.map +1 -0
  244. package/dist/src/present/control-visibility/control-visibility-assertions.d.ts +70 -0
  245. package/dist/src/present/control-visibility/control-visibility-assertions.d.ts.map +1 -0
  246. package/dist/src/present/control-visibility/control-visibility-assertions.js +138 -0
  247. package/dist/src/present/control-visibility/control-visibility-assertions.js.map +1 -0
  248. package/dist/src/present/control-visibility/control-visibility-evaluator.d.ts +67 -0
  249. package/dist/src/present/control-visibility/control-visibility-evaluator.d.ts.map +1 -0
  250. package/dist/src/present/control-visibility/control-visibility-evaluator.js +146 -0
  251. package/dist/src/present/control-visibility/control-visibility-evaluator.js.map +1 -0
  252. package/dist/src/present/control-visibility/control-visibility-types.d.ts +113 -0
  253. package/dist/src/present/control-visibility/control-visibility-types.d.ts.map +1 -0
  254. package/dist/src/present/control-visibility/control-visibility-types.js +24 -0
  255. package/dist/src/present/control-visibility/control-visibility-types.js.map +1 -0
  256. package/dist/src/present/control-visibility/index.d.ts +16 -0
  257. package/dist/src/present/control-visibility/index.d.ts.map +1 -0
  258. package/dist/src/present/control-visibility/index.js +15 -0
  259. package/dist/src/present/control-visibility/index.js.map +1 -0
  260. package/dist/src/present/format.d.ts +57 -0
  261. package/dist/src/present/format.d.ts.map +1 -0
  262. package/dist/src/present/format.js +150 -0
  263. package/dist/src/present/format.js.map +1 -0
  264. package/dist/src/present/present-coordinator.d.ts +153 -0
  265. package/dist/src/present/present-coordinator.d.ts.map +1 -0
  266. package/dist/src/present/present-coordinator.js +213 -0
  267. package/dist/src/present/present-coordinator.js.map +1 -0
  268. package/dist/src/present/reminders/index.d.ts +22 -0
  269. package/dist/src/present/reminders/index.d.ts.map +1 -0
  270. package/dist/src/present/reminders/index.js +22 -0
  271. package/dist/src/present/reminders/index.js.map +1 -0
  272. package/dist/src/present/reminders/reminder-presenter.d.ts +76 -0
  273. package/dist/src/present/reminders/reminder-presenter.d.ts.map +1 -0
  274. package/dist/src/present/reminders/reminder-presenter.js +359 -0
  275. package/dist/src/present/reminders/reminder-presenter.js.map +1 -0
  276. package/dist/src/present/reminders/reminder-renderer.d.ts +82 -0
  277. package/dist/src/present/reminders/reminder-renderer.d.ts.map +1 -0
  278. package/dist/src/present/reminders/reminder-renderer.js +136 -0
  279. package/dist/src/present/reminders/reminder-renderer.js.map +1 -0
  280. package/dist/src/present/reminders/reminder-types.d.ts +131 -0
  281. package/dist/src/present/reminders/reminder-types.d.ts.map +1 -0
  282. package/dist/src/present/reminders/reminder-types.js +29 -0
  283. package/dist/src/present/reminders/reminder-types.js.map +1 -0
  284. package/dist/src/present/types.d.ts +114 -0
  285. package/dist/src/present/types.d.ts.map +1 -0
  286. package/dist/src/present/types.js +18 -0
  287. package/dist/src/present/types.js.map +1 -0
  288. package/dist/src/product/claude-product-session.d.ts +146 -0
  289. package/dist/src/product/claude-product-session.d.ts.map +1 -0
  290. package/dist/src/product/claude-product-session.js +362 -0
  291. package/dist/src/product/claude-product-session.js.map +1 -0
  292. package/dist/src/product/cursor-product-session.d.ts +211 -0
  293. package/dist/src/product/cursor-product-session.d.ts.map +1 -0
  294. package/dist/src/product/cursor-product-session.js +390 -0
  295. package/dist/src/product/cursor-product-session.js.map +1 -0
  296. package/dist/src/product/index.d.ts +28 -0
  297. package/dist/src/product/index.d.ts.map +1 -0
  298. package/dist/src/product/index.js +22 -0
  299. package/dist/src/product/index.js.map +1 -0
  300. package/dist/src/product/session-resilience/index.d.ts +17 -0
  301. package/dist/src/product/session-resilience/index.d.ts.map +1 -0
  302. package/dist/src/product/session-resilience/index.js +15 -0
  303. package/dist/src/product/session-resilience/index.js.map +1 -0
  304. package/dist/src/product/session-resilience/session-serializer.d.ts +43 -0
  305. package/dist/src/product/session-resilience/session-serializer.d.ts.map +1 -0
  306. package/dist/src/product/session-resilience/session-serializer.js +84 -0
  307. package/dist/src/product/session-resilience/session-serializer.js.map +1 -0
  308. package/dist/src/product/session-resilience/session-snapshot-types.d.ts +35 -0
  309. package/dist/src/product/session-resilience/session-snapshot-types.d.ts.map +1 -0
  310. package/dist/src/product/session-resilience/session-snapshot-types.js +21 -0
  311. package/dist/src/product/session-resilience/session-snapshot-types.js.map +1 -0
  312. package/dist/src/product/session-resilience/session-staleness.d.ts +54 -0
  313. package/dist/src/product/session-resilience/session-staleness.d.ts.map +1 -0
  314. package/dist/src/product/session-resilience/session-staleness.js +62 -0
  315. package/dist/src/product/session-resilience/session-staleness.js.map +1 -0
  316. package/dist/src/product/session-resilience/session-summary.d.ts +40 -0
  317. package/dist/src/product/session-resilience/session-summary.d.ts.map +1 -0
  318. package/dist/src/product/session-resilience/session-summary.js +72 -0
  319. package/dist/src/product/session-resilience/session-summary.js.map +1 -0
  320. package/dist/src/prv/patterns.d.ts +32 -0
  321. package/dist/src/prv/patterns.d.ts.map +1 -0
  322. package/dist/src/prv/patterns.js +40 -0
  323. package/dist/src/prv/patterns.js.map +1 -0
  324. package/dist/src/prv/prv.d.ts +13 -0
  325. package/dist/src/prv/prv.d.ts.map +1 -0
  326. package/dist/src/prv/prv.js +22 -0
  327. package/dist/src/prv/prv.js.map +1 -0
  328. package/dist/src/prv/types.d.ts +26 -0
  329. package/dist/src/prv/types.d.ts.map +1 -0
  330. package/dist/src/prv/types.js +15 -0
  331. package/dist/src/prv/types.js.map +1 -0
  332. package/dist/src/safety/detectors/arbitrary-exec.detector.d.ts +3 -0
  333. package/dist/src/safety/detectors/arbitrary-exec.detector.d.ts.map +1 -0
  334. package/dist/src/safety/detectors/arbitrary-exec.detector.js +31 -0
  335. package/dist/src/safety/detectors/arbitrary-exec.detector.js.map +1 -0
  336. package/dist/src/safety/detectors/bulk-data-exfil.detector.d.ts +21 -0
  337. package/dist/src/safety/detectors/bulk-data-exfil.detector.d.ts.map +1 -0
  338. package/dist/src/safety/detectors/bulk-data-exfil.detector.js +90 -0
  339. package/dist/src/safety/detectors/bulk-data-exfil.detector.js.map +1 -0
  340. package/dist/src/safety/detectors/destructive.detector.d.ts +3 -0
  341. package/dist/src/safety/detectors/destructive.detector.d.ts.map +1 -0
  342. package/dist/src/safety/detectors/destructive.detector.js +28 -0
  343. package/dist/src/safety/detectors/destructive.detector.js.map +1 -0
  344. package/dist/src/safety/detectors/evasion.detector.d.ts +3 -0
  345. package/dist/src/safety/detectors/evasion.detector.d.ts.map +1 -0
  346. package/dist/src/safety/detectors/evasion.detector.js +28 -0
  347. package/dist/src/safety/detectors/evasion.detector.js.map +1 -0
  348. package/dist/src/safety/detectors/secret-access.detector.d.ts +31 -0
  349. package/dist/src/safety/detectors/secret-access.detector.d.ts.map +1 -0
  350. package/dist/src/safety/detectors/secret-access.detector.js +78 -0
  351. package/dist/src/safety/detectors/secret-access.detector.js.map +1 -0
  352. package/dist/src/safety/registry.d.ts +9 -0
  353. package/dist/src/safety/registry.d.ts.map +1 -0
  354. package/dist/src/safety/registry.js +22 -0
  355. package/dist/src/safety/registry.js.map +1 -0
  356. package/dist/src/safety/safety-gate.d.ts +16 -0
  357. package/dist/src/safety/safety-gate.d.ts.map +1 -0
  358. package/dist/src/safety/safety-gate.js +26 -0
  359. package/dist/src/safety/safety-gate.js.map +1 -0
  360. package/dist/src/safety/types.d.ts +35 -0
  361. package/dist/src/safety/types.d.ts.map +1 -0
  362. package/dist/src/safety/types.js +14 -0
  363. package/dist/src/safety/types.js.map +1 -0
  364. package/dist/src/shell/claude-shell.d.ts +63 -0
  365. package/dist/src/shell/claude-shell.d.ts.map +1 -0
  366. package/dist/src/shell/claude-shell.js +81 -0
  367. package/dist/src/shell/claude-shell.js.map +1 -0
  368. package/dist/src/shell/cli/friction-admin.d.ts +14 -0
  369. package/dist/src/shell/cli/friction-admin.d.ts.map +1 -0
  370. package/dist/src/shell/cli/friction-admin.js +276 -0
  371. package/dist/src/shell/cli/friction-admin.js.map +1 -0
  372. package/dist/src/shell/cli/friction-report.d.ts +16 -0
  373. package/dist/src/shell/cli/friction-report.d.ts.map +1 -0
  374. package/dist/src/shell/cli/friction-report.js +156 -0
  375. package/dist/src/shell/cli/friction-report.js.map +1 -0
  376. package/dist/src/shell/cli/main.d.ts +68 -0
  377. package/dist/src/shell/cli/main.d.ts.map +1 -0
  378. package/dist/src/shell/cli/main.js +488 -0
  379. package/dist/src/shell/cli/main.js.map +1 -0
  380. package/dist/src/shell/cli/use-steady.d.ts +26 -0
  381. package/dist/src/shell/cli/use-steady.d.ts.map +1 -0
  382. package/dist/src/shell/cli/use-steady.js +117 -0
  383. package/dist/src/shell/cli/use-steady.js.map +1 -0
  384. package/dist/src/shell/cursor-shell.d.ts +63 -0
  385. package/dist/src/shell/cursor-shell.d.ts.map +1 -0
  386. package/dist/src/shell/cursor-shell.js +88 -0
  387. package/dist/src/shell/cursor-shell.js.map +1 -0
  388. package/dist/src/shell/defaults.d.ts +51 -0
  389. package/dist/src/shell/defaults.d.ts.map +1 -0
  390. package/dist/src/shell/defaults.js +78 -0
  391. package/dist/src/shell/defaults.js.map +1 -0
  392. package/dist/src/shell/history-render.d.ts +56 -0
  393. package/dist/src/shell/history-render.d.ts.map +1 -0
  394. package/dist/src/shell/history-render.js +166 -0
  395. package/dist/src/shell/history-render.js.map +1 -0
  396. package/dist/src/shell/index.d.ts +43 -0
  397. package/dist/src/shell/index.d.ts.map +1 -0
  398. package/dist/src/shell/index.js +45 -0
  399. package/dist/src/shell/index.js.map +1 -0
  400. package/dist/src/shell/render.d.ts +42 -0
  401. package/dist/src/shell/render.d.ts.map +1 -0
  402. package/dist/src/shell/render.js +122 -0
  403. package/dist/src/shell/render.js.map +1 -0
  404. package/dist/src/shell/types.d.ts +46 -0
  405. package/dist/src/shell/types.d.ts.map +1 -0
  406. package/dist/src/shell/types.js +19 -0
  407. package/dist/src/shell/types.js.map +1 -0
  408. package/dist/src/shell/workflow-defaults.d.ts +23 -0
  409. package/dist/src/shell/workflow-defaults.d.ts.map +1 -0
  410. package/dist/src/shell/workflow-defaults.js +27 -0
  411. package/dist/src/shell/workflow-defaults.js.map +1 -0
  412. package/dist/src/shell/workflow-render.d.ts +54 -0
  413. package/dist/src/shell/workflow-render.d.ts.map +1 -0
  414. package/dist/src/shell/workflow-render.js +319 -0
  415. package/dist/src/shell/workflow-render.js.map +1 -0
  416. package/dist/src/shell/workflow-shell.d.ts +110 -0
  417. package/dist/src/shell/workflow-shell.d.ts.map +1 -0
  418. package/dist/src/shell/workflow-shell.js +180 -0
  419. package/dist/src/shell/workflow-shell.js.map +1 -0
  420. package/dist/src/skills/audit.d.ts +118 -0
  421. package/dist/src/skills/audit.d.ts.map +1 -0
  422. package/dist/src/skills/audit.js +147 -0
  423. package/dist/src/skills/audit.js.map +1 -0
  424. package/dist/src/skills/invocation.d.ts +131 -0
  425. package/dist/src/skills/invocation.d.ts.map +1 -0
  426. package/dist/src/skills/invocation.js +165 -0
  427. package/dist/src/skills/invocation.js.map +1 -0
  428. package/dist/src/skills/loader.d.ts +70 -0
  429. package/dist/src/skills/loader.d.ts.map +1 -0
  430. package/dist/src/skills/loader.js +220 -0
  431. package/dist/src/skills/loader.js.map +1 -0
  432. package/dist/src/skills/local-recovery-adapter.d.ts +49 -0
  433. package/dist/src/skills/local-recovery-adapter.d.ts.map +1 -0
  434. package/dist/src/skills/local-recovery-adapter.js +184 -0
  435. package/dist/src/skills/local-recovery-adapter.js.map +1 -0
  436. package/dist/src/skills/parser.d.ts +53 -0
  437. package/dist/src/skills/parser.d.ts.map +1 -0
  438. package/dist/src/skills/parser.js +336 -0
  439. package/dist/src/skills/parser.js.map +1 -0
  440. package/dist/src/skills/registry.d.ts +123 -0
  441. package/dist/src/skills/registry.d.ts.map +1 -0
  442. package/dist/src/skills/registry.js +144 -0
  443. package/dist/src/skills/registry.js.map +1 -0
  444. package/dist/src/skills/types.d.ts +242 -0
  445. package/dist/src/skills/types.d.ts.map +1 -0
  446. package/dist/src/skills/types.js +50 -0
  447. package/dist/src/skills/types.js.map +1 -0
  448. package/dist/src/skills/validator.d.ts +31 -0
  449. package/dist/src/skills/validator.d.ts.map +1 -0
  450. package/dist/src/skills/validator.js +366 -0
  451. package/dist/src/skills/validator.js.map +1 -0
  452. package/dist/src/ucp/envelope.d.ts +165 -0
  453. package/dist/src/ucp/envelope.d.ts.map +1 -0
  454. package/dist/src/ucp/envelope.js +241 -0
  455. package/dist/src/ucp/envelope.js.map +1 -0
  456. package/dist/src/ucp/hashes.d.ts +36 -0
  457. package/dist/src/ucp/hashes.d.ts.map +1 -0
  458. package/dist/src/ucp/hashes.js +59 -0
  459. package/dist/src/ucp/hashes.js.map +1 -0
  460. package/dist/src/ucp/mappers/map-artifact.d.ts +58 -0
  461. package/dist/src/ucp/mappers/map-artifact.d.ts.map +1 -0
  462. package/dist/src/ucp/mappers/map-artifact.js +51 -0
  463. package/dist/src/ucp/mappers/map-artifact.js.map +1 -0
  464. package/dist/src/ucp/mappers/map-change-interpretation.d.ts +12 -0
  465. package/dist/src/ucp/mappers/map-change-interpretation.d.ts.map +1 -0
  466. package/dist/src/ucp/mappers/map-change-interpretation.js +18 -0
  467. package/dist/src/ucp/mappers/map-change-interpretation.js.map +1 -0
  468. package/dist/src/ucp/mappers/map-completion.d.ts +10 -0
  469. package/dist/src/ucp/mappers/map-completion.d.ts.map +1 -0
  470. package/dist/src/ucp/mappers/map-completion.js +24 -0
  471. package/dist/src/ucp/mappers/map-completion.js.map +1 -0
  472. package/dist/src/ucp/mappers/map-context.d.ts +9 -0
  473. package/dist/src/ucp/mappers/map-context.d.ts.map +1 -0
  474. package/dist/src/ucp/mappers/map-context.js +13 -0
  475. package/dist/src/ucp/mappers/map-context.js.map +1 -0
  476. package/dist/src/ucp/mappers/map-debug-trace.d.ts +10 -0
  477. package/dist/src/ucp/mappers/map-debug-trace.d.ts.map +1 -0
  478. package/dist/src/ucp/mappers/map-debug-trace.js +18 -0
  479. package/dist/src/ucp/mappers/map-debug-trace.js.map +1 -0
  480. package/dist/src/ucp/mappers/map-disambiguation.d.ts +10 -0
  481. package/dist/src/ucp/mappers/map-disambiguation.d.ts.map +1 -0
  482. package/dist/src/ucp/mappers/map-disambiguation.js +21 -0
  483. package/dist/src/ucp/mappers/map-disambiguation.js.map +1 -0
  484. package/dist/src/ucp/mappers/map-execution-trace.d.ts +64 -0
  485. package/dist/src/ucp/mappers/map-execution-trace.d.ts.map +1 -0
  486. package/dist/src/ucp/mappers/map-execution-trace.js +57 -0
  487. package/dist/src/ucp/mappers/map-execution-trace.js.map +1 -0
  488. package/dist/src/ucp/mappers/map-intent-interpretation.d.ts +11 -0
  489. package/dist/src/ucp/mappers/map-intent-interpretation.d.ts.map +1 -0
  490. package/dist/src/ucp/mappers/map-intent-interpretation.js +17 -0
  491. package/dist/src/ucp/mappers/map-intent-interpretation.js.map +1 -0
  492. package/dist/src/ucp/mappers/map-intent.d.ts +9 -0
  493. package/dist/src/ucp/mappers/map-intent.d.ts.map +1 -0
  494. package/dist/src/ucp/mappers/map-intent.js +11 -0
  495. package/dist/src/ucp/mappers/map-intent.js.map +1 -0
  496. package/dist/src/ucp/mappers/map-prv.d.ts +10 -0
  497. package/dist/src/ucp/mappers/map-prv.d.ts.map +1 -0
  498. package/dist/src/ucp/mappers/map-prv.js +14 -0
  499. package/dist/src/ucp/mappers/map-prv.js.map +1 -0
  500. package/dist/src/ucp/mappers/map-reminder-execution.d.ts +57 -0
  501. package/dist/src/ucp/mappers/map-reminder-execution.d.ts.map +1 -0
  502. package/dist/src/ucp/mappers/map-reminder-execution.js +69 -0
  503. package/dist/src/ucp/mappers/map-reminder-execution.js.map +1 -0
  504. package/dist/src/ucp/mappers/map-replay-report.d.ts +81 -0
  505. package/dist/src/ucp/mappers/map-replay-report.d.ts.map +1 -0
  506. package/dist/src/ucp/mappers/map-replay-report.js +76 -0
  507. package/dist/src/ucp/mappers/map-replay-report.js.map +1 -0
  508. package/dist/src/ucp/mappers/map-response.d.ts +13 -0
  509. package/dist/src/ucp/mappers/map-response.d.ts.map +1 -0
  510. package/dist/src/ucp/mappers/map-response.js +25 -0
  511. package/dist/src/ucp/mappers/map-response.js.map +1 -0
  512. package/dist/src/ucp/mappers/map-safety.d.ts +14 -0
  513. package/dist/src/ucp/mappers/map-safety.d.ts.map +1 -0
  514. package/dist/src/ucp/mappers/map-safety.js +22 -0
  515. package/dist/src/ucp/mappers/map-safety.js.map +1 -0
  516. package/dist/src/ucp/persistence/index.d.ts +24 -0
  517. package/dist/src/ucp/persistence/index.d.ts.map +1 -0
  518. package/dist/src/ucp/persistence/index.js +22 -0
  519. package/dist/src/ucp/persistence/index.js.map +1 -0
  520. package/dist/src/ucp/persistence/query.d.ts +164 -0
  521. package/dist/src/ucp/persistence/query.d.ts.map +1 -0
  522. package/dist/src/ucp/persistence/query.js +240 -0
  523. package/dist/src/ucp/persistence/query.js.map +1 -0
  524. package/dist/src/ucp/persistence/reader.d.ts +43 -0
  525. package/dist/src/ucp/persistence/reader.d.ts.map +1 -0
  526. package/dist/src/ucp/persistence/reader.js +104 -0
  527. package/dist/src/ucp/persistence/reader.js.map +1 -0
  528. package/dist/src/ucp/persistence/store.d.ts +77 -0
  529. package/dist/src/ucp/persistence/store.d.ts.map +1 -0
  530. package/dist/src/ucp/persistence/store.js +177 -0
  531. package/dist/src/ucp/persistence/store.js.map +1 -0
  532. package/dist/src/ucp/persistence/write.d.ts +48 -0
  533. package/dist/src/ucp/persistence/write.d.ts.map +1 -0
  534. package/dist/src/ucp/persistence/write.js +59 -0
  535. package/dist/src/ucp/persistence/write.js.map +1 -0
  536. package/dist/src/ucp/projection.d.ts +146 -0
  537. package/dist/src/ucp/projection.d.ts.map +1 -0
  538. package/dist/src/ucp/projection.js +139 -0
  539. package/dist/src/ucp/projection.js.map +1 -0
  540. package/dist/src/ucp/types.d.ts +585 -0
  541. package/dist/src/ucp/types.d.ts.map +1 -0
  542. package/dist/src/ucp/types.js +57 -0
  543. package/dist/src/ucp/types.js.map +1 -0
  544. package/dist/src/understand/completion/completion.d.ts +26 -0
  545. package/dist/src/understand/completion/completion.d.ts.map +1 -0
  546. package/dist/src/understand/completion/completion.js +45 -0
  547. package/dist/src/understand/completion/completion.js.map +1 -0
  548. package/dist/src/understand/completion/rules.d.ts +61 -0
  549. package/dist/src/understand/completion/rules.d.ts.map +1 -0
  550. package/dist/src/understand/completion/rules.js +268 -0
  551. package/dist/src/understand/completion/rules.js.map +1 -0
  552. package/dist/src/understand/completion/types.d.ts +68 -0
  553. package/dist/src/understand/completion/types.d.ts.map +1 -0
  554. package/dist/src/understand/completion/types.js +34 -0
  555. package/dist/src/understand/completion/types.js.map +1 -0
  556. package/dist/src/understand/context/context-alignment.d.ts +18 -0
  557. package/dist/src/understand/context/context-alignment.d.ts.map +1 -0
  558. package/dist/src/understand/context/context-alignment.js +61 -0
  559. package/dist/src/understand/context/context-alignment.js.map +1 -0
  560. package/dist/src/understand/context/types.d.ts +20 -0
  561. package/dist/src/understand/context/types.d.ts.map +1 -0
  562. package/dist/src/understand/context/types.js +13 -0
  563. package/dist/src/understand/context/types.js.map +1 -0
  564. package/dist/src/understand/disambiguation/detectors/missing-context.detector.d.ts +12 -0
  565. package/dist/src/understand/disambiguation/detectors/missing-context.detector.d.ts.map +1 -0
  566. package/dist/src/understand/disambiguation/detectors/missing-context.detector.js +60 -0
  567. package/dist/src/understand/disambiguation/detectors/missing-context.detector.js.map +1 -0
  568. package/dist/src/understand/disambiguation/detectors/overloaded-term.detector.d.ts +13 -0
  569. package/dist/src/understand/disambiguation/detectors/overloaded-term.detector.d.ts.map +1 -0
  570. package/dist/src/understand/disambiguation/detectors/overloaded-term.detector.js +57 -0
  571. package/dist/src/understand/disambiguation/detectors/overloaded-term.detector.js.map +1 -0
  572. package/dist/src/understand/disambiguation/detectors/typo-adjacent.detector.d.ts +16 -0
  573. package/dist/src/understand/disambiguation/detectors/typo-adjacent.detector.d.ts.map +1 -0
  574. package/dist/src/understand/disambiguation/detectors/typo-adjacent.detector.js +56 -0
  575. package/dist/src/understand/disambiguation/detectors/typo-adjacent.detector.js.map +1 -0
  576. package/dist/src/understand/disambiguation/registry.d.ts +14 -0
  577. package/dist/src/understand/disambiguation/registry.d.ts.map +1 -0
  578. package/dist/src/understand/disambiguation/registry.js +27 -0
  579. package/dist/src/understand/disambiguation/registry.js.map +1 -0
  580. package/dist/src/understand/disambiguation/types.d.ts +34 -0
  581. package/dist/src/understand/disambiguation/types.d.ts.map +1 -0
  582. package/dist/src/understand/disambiguation/types.js +15 -0
  583. package/dist/src/understand/disambiguation/types.js.map +1 -0
  584. package/dist/src/understand/intent-interpretation/intent-interpretation.d.ts +86 -0
  585. package/dist/src/understand/intent-interpretation/intent-interpretation.d.ts.map +1 -0
  586. package/dist/src/understand/intent-interpretation/intent-interpretation.js +141 -0
  587. package/dist/src/understand/intent-interpretation/intent-interpretation.js.map +1 -0
  588. package/dist/src/understand/intent-interpretation/interpreters/color-intent.interpreter.d.ts +33 -0
  589. package/dist/src/understand/intent-interpretation/interpreters/color-intent.interpreter.d.ts.map +1 -0
  590. package/dist/src/understand/intent-interpretation/interpreters/color-intent.interpreter.js +66 -0
  591. package/dist/src/understand/intent-interpretation/interpreters/color-intent.interpreter.js.map +1 -0
  592. package/dist/src/understand/intent-interpretation/interpreters/config-intent.interpreter.d.ts +20 -0
  593. package/dist/src/understand/intent-interpretation/interpreters/config-intent.interpreter.d.ts.map +1 -0
  594. package/dist/src/understand/intent-interpretation/interpreters/config-intent.interpreter.js +80 -0
  595. package/dist/src/understand/intent-interpretation/interpreters/config-intent.interpreter.js.map +1 -0
  596. package/dist/src/understand/intent-interpretation/interpreters/text-intent.interpreter.d.ts +25 -0
  597. package/dist/src/understand/intent-interpretation/interpreters/text-intent.interpreter.d.ts.map +1 -0
  598. package/dist/src/understand/intent-interpretation/interpreters/text-intent.interpreter.js +47 -0
  599. package/dist/src/understand/intent-interpretation/interpreters/text-intent.interpreter.js.map +1 -0
  600. package/dist/src/understand/intent-interpretation/interpreters/workflow-intent.interpreter.d.ts +35 -0
  601. package/dist/src/understand/intent-interpretation/interpreters/workflow-intent.interpreter.d.ts.map +1 -0
  602. package/dist/src/understand/intent-interpretation/interpreters/workflow-intent.interpreter.js +89 -0
  603. package/dist/src/understand/intent-interpretation/interpreters/workflow-intent.interpreter.js.map +1 -0
  604. package/dist/src/understand/intent-interpretation/registry.d.ts +18 -0
  605. package/dist/src/understand/intent-interpretation/registry.d.ts.map +1 -0
  606. package/dist/src/understand/intent-interpretation/registry.js +26 -0
  607. package/dist/src/understand/intent-interpretation/registry.js.map +1 -0
  608. package/dist/src/understand/intent-interpretation/types.d.ts +83 -0
  609. package/dist/src/understand/intent-interpretation/types.d.ts.map +1 -0
  610. package/dist/src/understand/intent-interpretation/types.js +40 -0
  611. package/dist/src/understand/intent-interpretation/types.js.map +1 -0
  612. package/dist/src/understand/interpretation/intent.d.ts +72 -0
  613. package/dist/src/understand/interpretation/intent.d.ts.map +1 -0
  614. package/dist/src/understand/interpretation/intent.js +414 -0
  615. package/dist/src/understand/interpretation/intent.js.map +1 -0
  616. package/dist/src/understand/interpretation/interpretation.d.ts +26 -0
  617. package/dist/src/understand/interpretation/interpretation.d.ts.map +1 -0
  618. package/dist/src/understand/interpretation/interpretation.js +43 -0
  619. package/dist/src/understand/interpretation/interpretation.js.map +1 -0
  620. package/dist/src/understand/interpretation/parser.d.ts +20 -0
  621. package/dist/src/understand/interpretation/parser.d.ts.map +1 -0
  622. package/dist/src/understand/interpretation/parser.js +88 -0
  623. package/dist/src/understand/interpretation/parser.js.map +1 -0
  624. package/dist/src/understand/interpretation/rules.d.ts +19 -0
  625. package/dist/src/understand/interpretation/rules.d.ts.map +1 -0
  626. package/dist/src/understand/interpretation/rules.js +222 -0
  627. package/dist/src/understand/interpretation/rules.js.map +1 -0
  628. package/dist/src/understand/interpretation/types.d.ts +90 -0
  629. package/dist/src/understand/interpretation/types.d.ts.map +1 -0
  630. package/dist/src/understand/interpretation/types.js +29 -0
  631. package/dist/src/understand/interpretation/types.js.map +1 -0
  632. package/dist/src/understand/shared/types.d.ts +13 -0
  633. package/dist/src/understand/shared/types.d.ts.map +1 -0
  634. package/dist/src/understand/shared/types.js +9 -0
  635. package/dist/src/understand/shared/types.js.map +1 -0
  636. package/dist/src/understand/silent-guidance/index.d.ts +4 -0
  637. package/dist/src/understand/silent-guidance/index.d.ts.map +1 -0
  638. package/dist/src/understand/silent-guidance/index.js +3 -0
  639. package/dist/src/understand/silent-guidance/index.js.map +1 -0
  640. package/dist/src/understand/silent-guidance/selector.d.ts +44 -0
  641. package/dist/src/understand/silent-guidance/selector.d.ts.map +1 -0
  642. package/dist/src/understand/silent-guidance/selector.js +158 -0
  643. package/dist/src/understand/silent-guidance/selector.js.map +1 -0
  644. package/dist/src/understand/silent-guidance/templates.d.ts +31 -0
  645. package/dist/src/understand/silent-guidance/templates.d.ts.map +1 -0
  646. package/dist/src/understand/silent-guidance/templates.js +109 -0
  647. package/dist/src/understand/silent-guidance/templates.js.map +1 -0
  648. package/dist/src/understand/silent-guidance/types.d.ts +36 -0
  649. package/dist/src/understand/silent-guidance/types.d.ts.map +1 -0
  650. package/dist/src/understand/silent-guidance/types.js +2 -0
  651. package/dist/src/understand/silent-guidance/types.js.map +1 -0
  652. package/dist/src/workflow/coordinator.d.ts +197 -0
  653. package/dist/src/workflow/coordinator.d.ts.map +1 -0
  654. package/dist/src/workflow/coordinator.js +682 -0
  655. package/dist/src/workflow/coordinator.js.map +1 -0
  656. package/dist/src/workflow/index.d.ts +30 -0
  657. package/dist/src/workflow/index.d.ts.map +1 -0
  658. package/dist/src/workflow/index.js +30 -0
  659. package/dist/src/workflow/index.js.map +1 -0
  660. package/dist/src/workflow/types.d.ts +213 -0
  661. package/dist/src/workflow/types.d.ts.map +1 -0
  662. package/dist/src/workflow/types.js +27 -0
  663. package/dist/src/workflow/types.js.map +1 -0
  664. package/package.json +54 -0
  665. package/ui/README.md +73 -0
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Claude Delivery Gate — Phase 8B.
3
+ *
4
+ * ── Role ──────────────────────────────────────────────────────────────────────
5
+ *
6
+ * The delivery gate is the ONLY path through which a ClaudeAgentHandoffArtifact
7
+ * reaches Claude Managed Agents. It enforces these invariants before any delivery:
8
+ *
9
+ * 1. Eligibility: artifact.eligibility === "approved_for_agent"
10
+ * 2. Tool policy: toolPolicy.networkAccess === "deny" (V1 lock, A2)
11
+ * 3. Tool policy: toolPolicy.filesystemMode === "scoped_only"
12
+ * 4. Tool policy: allowedTools is non-empty
13
+ * 5. Persistence: ucp.claude_handoff.v1 persisted before Claude is called
14
+ * 6. Immutability: artifact delivered === artifact persisted (same id)
15
+ *
16
+ * After delivery, it persists either ucp.claude_receipt.v1 (accepted) or
17
+ * ucp.claude_refused.v1 (refused) based on Claude's response.
18
+ *
19
+ * ── Three delivery paths ──────────────────────────────────────────────────────
20
+ *
21
+ * Path A (happy): persist handoff → call Claude → accepted → persist receipt
22
+ * Path B (scope): persist handoff → call Claude → refused_due_to_scope
23
+ * → persist refused → surface scope question
24
+ * Path C (error): persist handoff → call Claude → refused_due_to_execution_error
25
+ * → persist refused → rejected
26
+ *
27
+ * Unknown response kinds → treated as refused_due_to_execution_error (fail-closed).
28
+ *
29
+ * ── Plugin contract ───────────────────────────────────────────────────────────
30
+ *
31
+ * ClaudeAgentPlugin.receive() is the only call the gate makes into Claude.
32
+ * The plugin must:
33
+ * - Accept only ClaudeDeliveryRequest
34
+ * - Return only ClaudeDeliveryResponse (one of three kinds)
35
+ * - NOT reach back into the intake pipeline (A4)
36
+ * - NOT call persistEnvelope (the gate owns all persistence)
37
+ *
38
+ * ── Persistence semantics ─────────────────────────────────────────────────────
39
+ *
40
+ * ucp.claude_handoff.v1 — safety-critical (persistStrict): blocks delivery if fails
41
+ * ucp.claude_receipt.v1 — audit-critical (persistBestEffort): logs gap if fails
42
+ * ucp.claude_refused.v1 — audit-critical (persistBestEffort): logs gap if fails
43
+ *
44
+ * ── deliveryId semantics ──────────────────────────────────────────────────────
45
+ *
46
+ * deliveryId is a delivery-attempt identifier, NOT a content identifier.
47
+ * Never use it for provenance chain links — use artifact.artifactId for those.
48
+ *
49
+ * See: docs/claude-agent-phase-a-architecture.md
50
+ */
51
+ import { hashObject } from "../ucp/hashes.js";
52
+ import { persistEnvelope, persistEnvelopeOrThrow } from "../ucp/persistence/write.js";
53
+ import { createClaudeHandoffEnvelope, createClaudeReceiptEnvelope, createClaudeRefusedEnvelope, } from "../ucp/envelope.js";
54
+ // ─── Delivery gate ────────────────────────────────────────────────────────────
55
+ export class ClaudeDeliveryGate {
56
+ plugin;
57
+ storeDir;
58
+ persistStrict;
59
+ persistBestEffort;
60
+ constructor(plugin, storeDir, deps = {}) {
61
+ this.plugin = plugin;
62
+ this.storeDir = storeDir;
63
+ this.persistStrict = deps.persistStrict
64
+ ?? ((e) => persistEnvelopeOrThrow(storeDir, e));
65
+ this.persistBestEffort = deps.persistBestEffort
66
+ ?? ((e) => persistEnvelope(storeDir, e));
67
+ }
68
+ /**
69
+ * Deliver a ClaudeAgentHandoffArtifact to Claude Managed Agents.
70
+ *
71
+ * CONTRACT — callers must ensure:
72
+ * - artifact.eligibility === "approved_for_agent" (gate re-checks and blocks if not)
73
+ * - artifact.toolPolicy.networkAccess === "deny" (gate re-checks, A2)
74
+ * - artifact.approvedAt is set (H has confirmed)
75
+ *
76
+ * CONTRACT — this function guarantees:
77
+ * - ucp.claude_handoff.v1 persisted BEFORE Claude is called
78
+ * - If persistence fails, Claude is NOT called (blocked_persistence_failure)
79
+ * - ucp.claude_receipt.v1 persisted when Claude returns "accepted"
80
+ * - ucp.claude_refused.v1 persisted when Claude returns any refusal
81
+ * - Receipt/refusal persistence failures do not block the state transition
82
+ * - Unknown response kinds map to refused_due_to_execution_error (fail-closed)
83
+ */
84
+ async deliver(artifact) {
85
+ // ── Eligibility check ─────────────────────────────────────────────────────
86
+ if (artifact.eligibility !== "approved_for_agent") {
87
+ return {
88
+ outcome: "blocked_ineligible",
89
+ reason: `Artifact eligibility is "${artifact.eligibility}", not "approved_for_agent".`,
90
+ };
91
+ }
92
+ // ── Tool policy checks (A2: networkAccess must be "deny" in V1) ───────────
93
+ if (artifact.toolPolicy.networkAccess !== "deny") {
94
+ return {
95
+ outcome: "blocked_tool_policy",
96
+ reason: `toolPolicy.networkAccess is "${artifact.toolPolicy.networkAccess}". ` +
97
+ `Only "deny" is executable in V1. "allow_limited" is reserved and blocked.`,
98
+ };
99
+ }
100
+ if (artifact.toolPolicy.filesystemMode !== "scoped_only") {
101
+ return {
102
+ outcome: "blocked_tool_policy",
103
+ reason: `toolPolicy.filesystemMode is "${artifact.toolPolicy.filesystemMode}". ` +
104
+ `Only "scoped_only" is allowed.`,
105
+ };
106
+ }
107
+ if (artifact.allowedTools.length === 0) {
108
+ return {
109
+ outcome: "blocked_tool_policy",
110
+ reason: "allowedTools is empty. Claude must have at least one tool to execute.",
111
+ };
112
+ }
113
+ const sentAt = Date.now();
114
+ const deliveryId = computeDeliveryId(artifact.artifactId, sentAt);
115
+ // ── Point 1: Persist handoff BEFORE calling Claude ────────────────────────
116
+ const handoffEnvelope = createClaudeHandoffEnvelope({
117
+ intentId: artifact.intentId,
118
+ responseId: artifact.responseId,
119
+ eligibility: "approved_for_agent",
120
+ ocdClearance: artifact.ocdClearance,
121
+ executionDomain: artifact.executionDomain,
122
+ allowedFiles: [...artifact.allowedFiles],
123
+ allowedTools: [...artifact.allowedTools],
124
+ confirmedByHuman: true,
125
+ confirmedAt: artifact.approvedAt ?? sentAt,
126
+ }, { parentId: artifact.responseId, rootId: artifact.intentId });
127
+ try {
128
+ this.persistStrict(handoffEnvelope);
129
+ }
130
+ catch (err) {
131
+ return {
132
+ outcome: "blocked_persistence_failure",
133
+ reason: `Failed to persist ucp.claude_handoff.v1 before delivery: ${String(err)}`,
134
+ };
135
+ }
136
+ // ── Call Claude ───────────────────────────────────────────────────────────
137
+ const request = { deliveryId, sentAt, artifact };
138
+ let response;
139
+ try {
140
+ response = await this.plugin.receive(request);
141
+ }
142
+ catch (err) {
143
+ // Plugin threw — treat as execution error (fail-closed)
144
+ response = {
145
+ kind: "refused_due_to_execution_error",
146
+ code: "plugin_threw",
147
+ message: String(err),
148
+ };
149
+ }
150
+ // ── Normalize unknown response kinds (fail-closed) ────────────────────────
151
+ if (response.kind !== "accepted" &&
152
+ response.kind !== "refused_due_to_scope" &&
153
+ response.kind !== "refused_due_to_execution_error") {
154
+ response = {
155
+ kind: "refused_due_to_execution_error",
156
+ code: "unknown_response_kind",
157
+ message: `Unknown Claude response kind received. Treating as execution error.`,
158
+ };
159
+ }
160
+ // ── Point 2a: accepted ────────────────────────────────────────────────────
161
+ if (response.kind === "accepted") {
162
+ const receiptEnvelope = createClaudeReceiptEnvelope({
163
+ deliveryId,
164
+ handoffId: handoffEnvelope.id,
165
+ artifactId: artifact.artifactId,
166
+ sessionId: response.sessionId,
167
+ receivedAt: sentAt,
168
+ }, { parentId: handoffEnvelope.id, rootId: artifact.intentId });
169
+ this.tryPersistBestEffort(receiptEnvelope);
170
+ return {
171
+ outcome: "accepted",
172
+ deliveryId,
173
+ handoffEnvelopeId: handoffEnvelope.id,
174
+ receiptEnvelopeId: receiptEnvelope.id,
175
+ sessionId: response.sessionId,
176
+ };
177
+ }
178
+ // ── Point 2b: refused_due_to_scope ────────────────────────────────────────
179
+ if (response.kind === "refused_due_to_scope") {
180
+ const refusedEnvelope = createClaudeRefusedEnvelope({
181
+ deliveryId,
182
+ handoffId: handoffEnvelope.id,
183
+ artifactId: artifact.artifactId,
184
+ receivedAt: sentAt,
185
+ refusalKind: "refused_due_to_scope",
186
+ scopeQuestionKind: response.question.questionKind,
187
+ scopeCandidates: [...response.question.candidates],
188
+ }, { parentId: handoffEnvelope.id, rootId: artifact.intentId });
189
+ this.tryPersistBestEffort(refusedEnvelope);
190
+ return {
191
+ outcome: "refused_due_to_scope",
192
+ deliveryId,
193
+ handoffEnvelopeId: handoffEnvelope.id,
194
+ refusedEnvelopeId: refusedEnvelope.id,
195
+ scopeQuestion: response.question,
196
+ };
197
+ }
198
+ // ── Point 2c: refused_due_to_execution_error ──────────────────────────────
199
+ const execError = response;
200
+ const refusedEnvelope = createClaudeRefusedEnvelope({
201
+ deliveryId,
202
+ handoffId: handoffEnvelope.id,
203
+ artifactId: artifact.artifactId,
204
+ receivedAt: sentAt,
205
+ refusalKind: "refused_due_to_execution_error",
206
+ errorCode: execError.code,
207
+ }, { parentId: handoffEnvelope.id, rootId: artifact.intentId });
208
+ this.tryPersistBestEffort(refusedEnvelope);
209
+ return {
210
+ outcome: "refused_due_to_execution_error",
211
+ deliveryId,
212
+ handoffEnvelopeId: handoffEnvelope.id,
213
+ refusedEnvelopeId: refusedEnvelope.id,
214
+ errorCode: execError.code,
215
+ message: execError.message,
216
+ };
217
+ }
218
+ tryPersistBestEffort(envelope) {
219
+ try {
220
+ this.persistBestEffort(envelope);
221
+ }
222
+ catch {
223
+ // Best-effort: do not throw, do not block
224
+ }
225
+ }
226
+ }
227
+ // ─── Internal ─────────────────────────────────────────────────────────────────
228
+ function computeDeliveryId(artifactId, sentAt) {
229
+ return hashObject({ artifactId, sentAt });
230
+ }
231
+ //# sourceMappingURL=delivery-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-gate.js","sourceRoot":"","sources":["../../../src/claude/delivery-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Claude Managed Agents integration — V1 public API (Phase 8C).
3
+ *
4
+ * This module exports the complete V1 seam: artifact mapper, delivery gate,
5
+ * stub adapter (tests), and real API adapter (production).
6
+ *
7
+ * See: docs/claude-v1-baseline.md — full invariant set (A1–A4, RA1–RA6)
8
+ *
9
+ * Reserved slots (NOT exported, not built in V1):
10
+ * - ucp.claude_session.v1
11
+ * - ucp.claude_result.v1
12
+ * - networkAccess: "allow_limited" semantics
13
+ * - session resumability
14
+ * - multi-session orchestration
15
+ */
16
+ export type { ClaudeAgentHandoffArtifact, ClaudeHandoffEligibility, ClaudeExecutionDomain, ClaudeTaskSpec, ClaudeToolPolicy, ClaudeDeliveryRequest, ClaudeDeliveryResponse, ClaudeAccepted, ClaudeRefusedDueToScope, ClaudeRefusedDueToExecutionError, ClaudeScopeQuestion, } from "./types.js";
17
+ export { buildClaudeHandoffArtifact, approveClaudeArtifact, narrowClaudeArtifactScope, } from "./artifact-mapper.js";
18
+ export type { ClaudeOCDPolicy } from "./artifact-mapper.js";
19
+ export type { ClaudeAgentPlugin, ClaudeDeliveryGateResult, ClaudeGateDeps } from "./delivery-gate.js";
20
+ export { ClaudeDeliveryGate } from "./delivery-gate.js";
21
+ export { ClaudeStubAdapter } from "./adapters/stub-adapter.js";
22
+ export { ClaudeApiAdapter } from "./adapters/api-adapter.js";
23
+ export type { ClaudeApiAdapterConfig } from "./adapters/api-adapter.js";
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/claude/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,gCAAgC,EAChC,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Claude Managed Agents integration — V1 public API (Phase 8C).
3
+ *
4
+ * This module exports the complete V1 seam: artifact mapper, delivery gate,
5
+ * stub adapter (tests), and real API adapter (production).
6
+ *
7
+ * See: docs/claude-v1-baseline.md — full invariant set (A1–A4, RA1–RA6)
8
+ *
9
+ * Reserved slots (NOT exported, not built in V1):
10
+ * - ucp.claude_session.v1
11
+ * - ucp.claude_result.v1
12
+ * - networkAccess: "allow_limited" semantics
13
+ * - session resumability
14
+ * - multi-session orchestration
15
+ */
16
+ // Artifact mapper
17
+ export { buildClaudeHandoffArtifact, approveClaudeArtifact, narrowClaudeArtifactScope, } from "./artifact-mapper.js";
18
+ export { ClaudeDeliveryGate } from "./delivery-gate.js";
19
+ // Stub adapter (testing + development)
20
+ export { ClaudeStubAdapter } from "./adapters/stub-adapter.js";
21
+ // Real API adapter (Phase 8C)
22
+ export { ClaudeApiAdapter } from "./adapters/api-adapter.js";
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/claude/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH,kBAAkB;AAClB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,uCAAuC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Claude Managed Agents Integration types — Phase 8B.
3
+ *
4
+ * ── Role ──────────────────────────────────────────────────────────────────────
5
+ *
6
+ * This module defines the seam between UseSteady's authority system and
7
+ * Claude Managed Agents. It is the type contract for:
8
+ *
9
+ * - ClaudeAgentHandoffArtifact: the approved, constrained artifact Claude receives
10
+ * - ClaudeDeliveryRequest: what the delivery gate sends to Claude
11
+ * - ClaudeDeliveryResponse: the three response kinds Claude may return
12
+ * - ClaudeScopeQuestion: Claude's structured scope clarification request
13
+ * - ClaudeToolPolicy: explicit tool + network + filesystem scope at handoff time
14
+ *
15
+ * ── Authority model ───────────────────────────────────────────────────────────
16
+ *
17
+ * Claude Managed Agents: execute only.
18
+ * No upstream reach-back. No re-interpretation. No intent re-classification.
19
+ *
20
+ * ── Phase A locked truths (A1–A4) ────────────────────────────────────────────
21
+ *
22
+ * A1 — executionDomain is mapper-derived, never reclassified downstream.
23
+ * The delivery gate may only validate presence and allowed values.
24
+ *
25
+ * A2 — networkAccess: "allow_limited" is reserved and V1-blocked.
26
+ * "deny" is the only executable V1 value.
27
+ * The delivery gate rejects any artifact using "allow_limited".
28
+ *
29
+ * A3 — Interrupted Claude sessions are non-resumable in V1.
30
+ * Interruption maps to refused_due_to_execution_error with
31
+ * code "session_interrupted". No resume path.
32
+ *
33
+ * A4 — No callback loop from Claude to Intake exists in V1.
34
+ * The only mid-flight feedback path is structured scope clarification
35
+ * via ClaudeScopeQuestion, mediated by H.
36
+ *
37
+ * ── Key invariants ────────────────────────────────────────────────────────────
38
+ *
39
+ * - ClaudeAgentHandoffArtifact never carries the original input string
40
+ * - eligibility === "approved_for_agent" is the only value that opens delivery
41
+ * - H may narrow scope only, never widen
42
+ * - Maximum one scope clarification per delivery attempt
43
+ * - toolPolicy.networkAccess must be "deny" in V1 (gate enforces)
44
+ * - toolPolicy.filesystemMode must be "scoped_only" (gate enforces)
45
+ * - Unknown response kinds are treated as refused_due_to_execution_error (fail-closed)
46
+ *
47
+ * ── Provenance chain ──────────────────────────────────────────────────────────
48
+ *
49
+ * ucp.intent.v1 → ucp.response.v1 → ucp.claude_handoff.v1
50
+ * → ucp.claude_receipt.v1
51
+ * → [ucp.claude_result.v1 — RESERVED FUTURE SLOT]
52
+ * → ucp.execution_trace.v1 → ucp.replay_report.v1
53
+ *
54
+ * Refusal path:
55
+ * ucp.claude_handoff.v1 → ucp.claude_refused.v1 (dead end or retry trigger)
56
+ *
57
+ * Reserved future slots (not built in V1):
58
+ * ucp.claude_session.v1 — for managed session event history
59
+ * ucp.claude_result.v1 — for structured agent output
60
+ *
61
+ * See: docs/claude-agent-phase-a-architecture.md
62
+ */
63
+ /**
64
+ * ClaudeToolPolicy — explicit tool and runtime scope for a Claude delivery.
65
+ *
66
+ * allowedTools — closed set of tools Claude may use. Empty = no tools.
67
+ * networkAccess — V1: always "deny". "allow_limited" is reserved but blocked by gate.
68
+ * filesystemMode — always "scoped_only". No alternative in V1.
69
+ *
70
+ * The delivery gate enforces all three fields before delivery proceeds.
71
+ */
72
+ export type ClaudeToolPolicy = {
73
+ readonly allowedTools: readonly string[];
74
+ /**
75
+ * V1: must be "deny". Gate rejects any artifact using "allow_limited".
76
+ * "allow_limited" is reserved in the type for forward compatibility.
77
+ * Its semantics (domain allowlist, egress-only, port restrictions) are deferred.
78
+ */
79
+ readonly networkAccess: "deny" | "allow_limited";
80
+ readonly filesystemMode: "scoped_only";
81
+ };
82
+ /**
83
+ * ClaudeAgentHandoffArtifact — the approved, constrained artifact Claude receives.
84
+ *
85
+ * artifactId — UCP content-addressed identity (sha256 of content fields)
86
+ * mode — always "execute"; only execute flows reach Claude (A1)
87
+ * executionDomain — mapper-derived; gate validates presence only (A1)
88
+ * taskSpec — approved task description; never includes raw user input
89
+ * allowedFiles — H-narrowable file set; gate-enforced; empty = open within prohibitions
90
+ * prohibitedPatterns — OCD-constrained; gate-enforced; takes precedence over allowedFiles
91
+ * allowedTools — explicit tool allowlist; gate-enforced
92
+ * toolPolicy — tool + network + filesystem constraints
93
+ * ocdClearance — "clear" or "conflict_accepted"; never "conflict_detected" at delivery
94
+ * eligibility — must be "approved_for_agent" for delivery to proceed
95
+ * intentId — links back to ucp.intent.v1 for provenance
96
+ * responseId — links back to ucp.response.v1 for provenance
97
+ * approvedAt — epoch ms when H approved; set by approveArtifact()
98
+ */
99
+ export type ClaudeAgentHandoffArtifact = {
100
+ readonly artifactId: string;
101
+ readonly mode: "execute";
102
+ readonly executionDomain: ClaudeExecutionDomain;
103
+ readonly taskSpec: ClaudeTaskSpec;
104
+ readonly allowedFiles: readonly string[];
105
+ readonly prohibitedPatterns: readonly string[];
106
+ readonly allowedTools: readonly string[];
107
+ readonly toolPolicy: ClaudeToolPolicy;
108
+ readonly ocdClearance: "clear" | "conflict_accepted";
109
+ readonly eligibility: ClaudeHandoffEligibility;
110
+ readonly intentId: string;
111
+ readonly responseId: string;
112
+ readonly approvedAt?: number;
113
+ };
114
+ /**
115
+ * ClaudeExecutionDomain — the class of task Claude is being asked to perform.
116
+ *
117
+ * code_edit — modify source files within allowedFiles
118
+ * ops_task — operational action (deploy, restart, etc.)
119
+ * analysis_task — read/analyze; no write authority
120
+ *
121
+ * INVARIANT (A1): this value is derived by the artifact mapper from
122
+ * InterpretationResult.category. It is never re-classified downstream.
123
+ * The delivery gate validates presence and allowed values only.
124
+ */
125
+ export type ClaudeExecutionDomain = "code_edit" | "ops_task" | "analysis_task";
126
+ /**
127
+ * ClaudeTaskSpec — the approved task description passed to Claude.
128
+ *
129
+ * Never carries the raw user input string.
130
+ * parsedChange is present only when a structured edit command was parsed.
131
+ */
132
+ export type ClaudeTaskSpec = {
133
+ readonly category: string;
134
+ readonly summary: string;
135
+ readonly parsedChange?: {
136
+ readonly filePath?: string;
137
+ readonly oldValue?: string;
138
+ readonly newValue?: string;
139
+ };
140
+ };
141
+ /**
142
+ * ClaudeHandoffEligibility — the approval state of the artifact.
143
+ *
144
+ * pending_confirmation — OCD cleared; awaiting H confirmation.
145
+ * approved_for_agent — H confirmed. Only value that opens the delivery gate.
146
+ * rejected — H rejected, timed out, or execution error occurred.
147
+ */
148
+ export type ClaudeHandoffEligibility = "pending_confirmation" | "approved_for_agent" | "rejected";
149
+ /**
150
+ * ClaudeDeliveryRequest — what the delivery gate sends to the Claude plugin.
151
+ *
152
+ * deliveryId — delivery-attempt identifier. NOT a content identifier.
153
+ * Never use for provenance chain links; use artifactId for those.
154
+ * sentAt — epoch ms of the delivery attempt.
155
+ * artifact — the approved ClaudeAgentHandoffArtifact.
156
+ */
157
+ export type ClaudeDeliveryRequest = {
158
+ readonly deliveryId: string;
159
+ readonly sentAt: number;
160
+ readonly artifact: ClaudeAgentHandoffArtifact;
161
+ };
162
+ /**
163
+ * ClaudeAccepted — Claude accepted and started a managed session.
164
+ *
165
+ * sessionId — the Anthropic managed agent session ID.
166
+ * Persisted in ucp.claude_receipt.v1 for audit.
167
+ * Not resumable in V1 (A3): if interrupted, maps to execution error.
168
+ */
169
+ export type ClaudeAccepted = {
170
+ readonly kind: "accepted";
171
+ readonly sessionId: string;
172
+ };
173
+ /**
174
+ * ClaudeRefusedDueToScope — Claude encountered a scope ambiguity before starting.
175
+ *
176
+ * question — structured clarification request. H must answer from candidates.
177
+ *
178
+ * Rules:
179
+ * - One clarification round maximum per delivery.
180
+ * - H may choose only from question.candidates (candidate-bounded).
181
+ * - H may narrow only, never widen.
182
+ * - Second refusal ends the flow as rejected.
183
+ */
184
+ export type ClaudeRefusedDueToScope = {
185
+ readonly kind: "refused_due_to_scope";
186
+ readonly question: ClaudeScopeQuestion;
187
+ };
188
+ /**
189
+ * ClaudeRefusedDueToExecutionError — Claude refused due to a runtime error.
190
+ *
191
+ * code — machine-readable error code (e.g. "session_interrupted", "tool_denied")
192
+ * message — human-readable description
193
+ *
194
+ * Special code: "session_interrupted" maps to A3 (non-resumable session).
195
+ */
196
+ export type ClaudeRefusedDueToExecutionError = {
197
+ readonly kind: "refused_due_to_execution_error";
198
+ readonly code: string;
199
+ readonly message: string;
200
+ };
201
+ /**
202
+ * ClaudeDeliveryResponse — the closed set of responses Claude may return.
203
+ *
204
+ * INVARIANT: unknown response kinds must be treated as refused_due_to_execution_error
205
+ * by the delivery gate (fail-closed). This is identical to the Cursor seam rule.
206
+ */
207
+ export type ClaudeDeliveryResponse = ClaudeAccepted | ClaudeRefusedDueToScope | ClaudeRefusedDueToExecutionError;
208
+ /**
209
+ * ClaudeScopeQuestion — structured clarification request from Claude.
210
+ *
211
+ * questionKind — semantic kind of the ambiguity Claude encountered
212
+ * candidates — the complete set of valid choices (H must pick from these only)
213
+ * explanation — human-readable description of what Claude needs
214
+ *
215
+ * Claude may NOT generate a scope question that expands file or tool scope
216
+ * beyond what was in the approved artifact.
217
+ */
218
+ export type ClaudeScopeQuestion = {
219
+ readonly questionKind: "need_file_path" | "need_scope_selection" | "need_tool_permission" | "ambiguous_old_value";
220
+ readonly candidates: readonly string[];
221
+ readonly explanation: string;
222
+ };
223
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/claude/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Claude Managed Agents Integration types — Phase 8B.
3
+ *
4
+ * ── Role ──────────────────────────────────────────────────────────────────────
5
+ *
6
+ * This module defines the seam between UseSteady's authority system and
7
+ * Claude Managed Agents. It is the type contract for:
8
+ *
9
+ * - ClaudeAgentHandoffArtifact: the approved, constrained artifact Claude receives
10
+ * - ClaudeDeliveryRequest: what the delivery gate sends to Claude
11
+ * - ClaudeDeliveryResponse: the three response kinds Claude may return
12
+ * - ClaudeScopeQuestion: Claude's structured scope clarification request
13
+ * - ClaudeToolPolicy: explicit tool + network + filesystem scope at handoff time
14
+ *
15
+ * ── Authority model ───────────────────────────────────────────────────────────
16
+ *
17
+ * Claude Managed Agents: execute only.
18
+ * No upstream reach-back. No re-interpretation. No intent re-classification.
19
+ *
20
+ * ── Phase A locked truths (A1–A4) ────────────────────────────────────────────
21
+ *
22
+ * A1 — executionDomain is mapper-derived, never reclassified downstream.
23
+ * The delivery gate may only validate presence and allowed values.
24
+ *
25
+ * A2 — networkAccess: "allow_limited" is reserved and V1-blocked.
26
+ * "deny" is the only executable V1 value.
27
+ * The delivery gate rejects any artifact using "allow_limited".
28
+ *
29
+ * A3 — Interrupted Claude sessions are non-resumable in V1.
30
+ * Interruption maps to refused_due_to_execution_error with
31
+ * code "session_interrupted". No resume path.
32
+ *
33
+ * A4 — No callback loop from Claude to Intake exists in V1.
34
+ * The only mid-flight feedback path is structured scope clarification
35
+ * via ClaudeScopeQuestion, mediated by H.
36
+ *
37
+ * ── Key invariants ────────────────────────────────────────────────────────────
38
+ *
39
+ * - ClaudeAgentHandoffArtifact never carries the original input string
40
+ * - eligibility === "approved_for_agent" is the only value that opens delivery
41
+ * - H may narrow scope only, never widen
42
+ * - Maximum one scope clarification per delivery attempt
43
+ * - toolPolicy.networkAccess must be "deny" in V1 (gate enforces)
44
+ * - toolPolicy.filesystemMode must be "scoped_only" (gate enforces)
45
+ * - Unknown response kinds are treated as refused_due_to_execution_error (fail-closed)
46
+ *
47
+ * ── Provenance chain ──────────────────────────────────────────────────────────
48
+ *
49
+ * ucp.intent.v1 → ucp.response.v1 → ucp.claude_handoff.v1
50
+ * → ucp.claude_receipt.v1
51
+ * → [ucp.claude_result.v1 — RESERVED FUTURE SLOT]
52
+ * → ucp.execution_trace.v1 → ucp.replay_report.v1
53
+ *
54
+ * Refusal path:
55
+ * ucp.claude_handoff.v1 → ucp.claude_refused.v1 (dead end or retry trigger)
56
+ *
57
+ * Reserved future slots (not built in V1):
58
+ * ucp.claude_session.v1 — for managed session event history
59
+ * ucp.claude_result.v1 — for structured agent output
60
+ *
61
+ * See: docs/claude-agent-phase-a-architecture.md
62
+ */
63
+ export {};
64
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/claude/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG"}