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,366 @@
1
+ /**
2
+ * UseSteady Skills v1 — validator (file 3 of 8).
3
+ *
4
+ * Single responsibility: given the raw output of parseSkillFile, enforce every
5
+ * constraint from the frozen UseSteady Skills Architecture v1 spec.
6
+ *
7
+ * Design rules followed here:
8
+ * - Collect ALL issues before returning (never fail-fast on the first error)
9
+ * - Return a discriminated SkillValidationResult — never throw
10
+ * - Use SkillValidationIssue.type literals so tests can assert on exact reasons
11
+ * - Apply guardrails as strict equality checks against boolean literals
12
+ * - Enforce the kind→schema mapping from KIND_SCHEMA_MAP (single source of truth)
13
+ * - Treat absent optional fields (risk_level, priority) correctly under
14
+ * exactOptionalPropertyTypes: true
15
+ */
16
+ import { KIND_SCHEMA_MAP, REQUIRED_BODY_SECTIONS, } from './types.js';
17
+ // ---------------------------------------------------------------------------
18
+ // Type guards — each is a precise predicate, no Set or cast required
19
+ // ---------------------------------------------------------------------------
20
+ function isNonEmptyString(v) {
21
+ return typeof v === 'string' && v.trim().length > 0;
22
+ }
23
+ function isSkillKind(v) {
24
+ return (v === 'interpretation' ||
25
+ v === 'workflow_generation' ||
26
+ v === 'recovery');
27
+ }
28
+ function isSkillOutputSchema(v) {
29
+ return (v === 'usesteady.intent_candidates.v1' ||
30
+ v === 'usesteady.workflow_draft.v1' ||
31
+ v === 'usesteady.recovery_suggestions.v1');
32
+ }
33
+ /**
34
+ * Minimal semver check: requires at least major.minor.patch digits.
35
+ * Pre-release and build-metadata suffixes are allowed (not validated).
36
+ */
37
+ function isValidVersion(v) {
38
+ return typeof v === 'string' && /^\d+\.\d+\.\d+/.test(v);
39
+ }
40
+ function isStringArray(v) {
41
+ return Array.isArray(v) && v.every((item) => typeof item === 'string');
42
+ }
43
+ // ---------------------------------------------------------------------------
44
+ // Per-field validators
45
+ // Each function pushes zero or more SkillValidationIssue objects into `issues`.
46
+ // None of them return early from validateSkill — full aggregation is the goal.
47
+ // ---------------------------------------------------------------------------
48
+ function checkRequiredString(fm, field, issues) {
49
+ const value = fm[field];
50
+ if (value === undefined || value === null) {
51
+ issues.push({
52
+ type: 'missing_field',
53
+ field,
54
+ message: `Required field "${field}" is absent.`,
55
+ });
56
+ }
57
+ else if (!isNonEmptyString(value)) {
58
+ issues.push({
59
+ type: 'invalid_field',
60
+ field,
61
+ message: `Field "${field}" must be a non-empty string; got ${JSON.stringify(value)}.`,
62
+ });
63
+ }
64
+ }
65
+ function checkVersion(fm, issues) {
66
+ const value = fm['version'];
67
+ if (value === undefined || value === null) {
68
+ issues.push({
69
+ type: 'missing_field',
70
+ field: 'version',
71
+ message: 'Required field "version" is absent.',
72
+ });
73
+ }
74
+ else if (!isValidVersion(value)) {
75
+ issues.push({
76
+ type: 'invalid_field',
77
+ field: 'version',
78
+ message: `Field "version" must be a semantic version string (e.g. "1.0.0"); ` +
79
+ `got ${JSON.stringify(value)}.`,
80
+ });
81
+ }
82
+ }
83
+ /**
84
+ * Check `kind` and return the valid SkillKind value, or null if invalid.
85
+ * Returning the validated kind lets checkOutputSchema enforce the mapping
86
+ * without re-reading the field.
87
+ */
88
+ function checkKind(fm, issues) {
89
+ const value = fm['kind'];
90
+ if (value === undefined || value === null) {
91
+ issues.push({
92
+ type: 'missing_field',
93
+ field: 'kind',
94
+ message: 'Required field "kind" is absent.',
95
+ });
96
+ return null;
97
+ }
98
+ if (!isSkillKind(value)) {
99
+ issues.push({
100
+ type: 'invalid_kind',
101
+ field: 'kind',
102
+ message: `Field "kind" must be one of "interpretation", "workflow_generation", ` +
103
+ `"recovery"; got ${JSON.stringify(value)}.`,
104
+ });
105
+ return null;
106
+ }
107
+ return value;
108
+ }
109
+ /**
110
+ * Check `output_schema` presence, validity, and — when kind is also valid —
111
+ * the kind→schema mapping from KIND_SCHEMA_MAP.
112
+ * Called after checkKind so the kind parameter is already validated (or null).
113
+ */
114
+ function checkOutputSchema(fm, validatedKind, issues) {
115
+ const value = fm['output_schema'];
116
+ if (value === undefined || value === null) {
117
+ issues.push({
118
+ type: 'missing_field',
119
+ field: 'output_schema',
120
+ message: 'Required field "output_schema" is absent.',
121
+ });
122
+ return;
123
+ }
124
+ if (!isSkillOutputSchema(value)) {
125
+ issues.push({
126
+ type: 'invalid_field',
127
+ field: 'output_schema',
128
+ message: `Field "output_schema" must be one of the three supported schema identifiers; ` +
129
+ `got ${JSON.stringify(value)}.`,
130
+ });
131
+ return;
132
+ }
133
+ // Kind→schema mapping — only checked when kind itself is also valid.
134
+ // A missing or invalid kind produces its own issue; conflating the two would
135
+ // create confusing double-error messages.
136
+ if (validatedKind !== null) {
137
+ const expectedSchema = KIND_SCHEMA_MAP[validatedKind];
138
+ if (value !== expectedSchema) {
139
+ issues.push({
140
+ type: 'schema_mismatch',
141
+ field: 'output_schema',
142
+ message: `Kind "${validatedKind}" requires output_schema "${expectedSchema}" ` +
143
+ `but got "${value}".`,
144
+ });
145
+ }
146
+ }
147
+ }
148
+ /**
149
+ * Guardrail checks.
150
+ *
151
+ * Each boolean is compared with strict equality (===) against its required
152
+ * literal value. A missing field is treated as a guardrail_violation (not a
153
+ * missing_field) because intent matters: the spec requires these fields to be
154
+ * present AND set correctly. Absence is as dangerous as a wrong value.
155
+ */
156
+ const GUARDRAIL_CHECKS = [
157
+ { field: 'requires_review', expected: true },
158
+ { field: 'can_execute', expected: false },
159
+ { field: 'can_call_tools', expected: false },
160
+ { field: 'can_bypass_policy', expected: false },
161
+ { field: 'can_bypass_approval', expected: false },
162
+ ];
163
+ function checkGuardrails(fm, issues) {
164
+ for (const { field, expected } of GUARDRAIL_CHECKS) {
165
+ const value = fm[field];
166
+ if (value === undefined || value === null) {
167
+ issues.push({
168
+ type: 'guardrail_violation',
169
+ field,
170
+ message: `Guardrail "${field}" is absent; ` +
171
+ `it must be present and set to exactly ${JSON.stringify(expected)}.`,
172
+ });
173
+ }
174
+ else if (value !== expected) {
175
+ issues.push({
176
+ type: 'guardrail_violation',
177
+ field,
178
+ message: `Guardrail "${field}" must be exactly ${JSON.stringify(expected)}; ` +
179
+ `got ${JSON.stringify(value)}.`,
180
+ });
181
+ }
182
+ }
183
+ }
184
+ function checkTriggers(fm, issues) {
185
+ const value = fm['triggers'];
186
+ if (value === undefined || value === null) {
187
+ issues.push({
188
+ type: 'missing_field',
189
+ field: 'triggers',
190
+ message: 'Required field "triggers" is absent.',
191
+ });
192
+ return;
193
+ }
194
+ if (!isStringArray(value)) {
195
+ issues.push({
196
+ type: 'invalid_field',
197
+ field: 'triggers',
198
+ message: `Field "triggers" must be an array of strings; ` +
199
+ `got ${JSON.stringify(value)}.`,
200
+ });
201
+ return;
202
+ }
203
+ if (value.length === 0) {
204
+ issues.push({
205
+ type: 'invalid_field',
206
+ field: 'triggers',
207
+ message: 'Field "triggers" must contain at least one entry.',
208
+ });
209
+ return;
210
+ }
211
+ // Every trigger must be a non-empty, non-whitespace string.
212
+ const blankCount = value.filter((t) => t.trim().length === 0).length;
213
+ if (blankCount > 0) {
214
+ issues.push({
215
+ type: 'invalid_field',
216
+ field: 'triggers',
217
+ message: `Field "triggers" contains ${blankCount} empty or blank entry/entries.`,
218
+ });
219
+ }
220
+ }
221
+ /**
222
+ * Priority is optional. When present it must be a finite number.
223
+ * Validated priority defaults to 100 in buildMetadata when absent.
224
+ */
225
+ function checkPriority(fm, issues) {
226
+ const value = fm['priority'];
227
+ if (value === undefined || value === null)
228
+ return; // absent is valid
229
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
230
+ issues.push({
231
+ type: 'invalid_field',
232
+ field: 'priority',
233
+ message: `Field "priority" must be a finite number when present; ` +
234
+ `got ${JSON.stringify(value)}.`,
235
+ });
236
+ }
237
+ }
238
+ /**
239
+ * Map the human-readable section name (from REQUIRED_BODY_SECTIONS) to the
240
+ * camelCase key used in ParsedSections.
241
+ *
242
+ * The switch is exhaustive over RequiredBodySection — TypeScript verifies that
243
+ * every member of the union is handled and the function always returns.
244
+ */
245
+ function sectionNameToKey(name) {
246
+ switch (name) {
247
+ case 'Purpose': return 'purpose';
248
+ case 'When to use': return 'whenToUse';
249
+ case 'Output contract': return 'outputContract';
250
+ case 'Guardrails': return 'guardrails';
251
+ case 'Examples': return 'examples';
252
+ }
253
+ }
254
+ /**
255
+ * All five required body sections must be present and non-empty.
256
+ * Absent sections are reported as invalid_markdown (a content contract issue,
257
+ * not a field issue) to make them distinguishable from frontmatter problems in
258
+ * test assertions and audit logs.
259
+ */
260
+ function checkBodySections(sections, issues) {
261
+ for (const sectionName of REQUIRED_BODY_SECTIONS) {
262
+ const key = sectionNameToKey(sectionName);
263
+ const content = sections[key];
264
+ if (content === undefined) {
265
+ issues.push({
266
+ type: 'invalid_markdown',
267
+ message: `Required body section "${sectionName}" is absent or has no content.`,
268
+ });
269
+ }
270
+ }
271
+ }
272
+ // ---------------------------------------------------------------------------
273
+ // Metadata builder — called only when the issues array is empty
274
+ // ---------------------------------------------------------------------------
275
+ /**
276
+ * Construct a fully typed, readonly SkillMetadata from a validated raw
277
+ * frontmatter record.
278
+ *
279
+ * All casts here are safe: each field was confirmed to the correct type by its
280
+ * check function before this builder is called. The builder's only job is to
281
+ * assemble the typed object and apply the default for the optional `priority`
282
+ * field.
283
+ *
284
+ * exactOptionalPropertyTypes compliance:
285
+ * `risk_level` must be physically absent (not set to undefined) when not
286
+ * present in the frontmatter. Conditional spread achieves this.
287
+ */
288
+ function buildMetadata(fm) {
289
+ const riskLevel = fm['risk_level'];
290
+ return {
291
+ name: fm['name'],
292
+ description: fm['description'],
293
+ version: fm['version'],
294
+ kind: fm['kind'],
295
+ triggers: fm['triggers'],
296
+ output_schema: fm['output_schema'],
297
+ // Guardrail literals — the validator confirmed these exact values;
298
+ // `as const` casts satisfy the literal types true/false in SkillMetadata.
299
+ requires_review: true,
300
+ can_execute: false,
301
+ can_call_tools: false,
302
+ can_bypass_policy: false,
303
+ can_bypass_approval: false,
304
+ // priority defaults to 100 when absent (spec-defined default).
305
+ priority: typeof fm['priority'] === 'number' ? fm['priority'] : 100,
306
+ // Conditional spread: omit risk_level entirely when absent or blank.
307
+ ...(isNonEmptyString(riskLevel) ? { risk_level: riskLevel } : {}),
308
+ };
309
+ }
310
+ // ---------------------------------------------------------------------------
311
+ // Public API
312
+ // ---------------------------------------------------------------------------
313
+ /**
314
+ * Validate the parsed output of a SKILL.md file against the frozen spec.
315
+ *
316
+ * valid: true → metadata is fully typed and safe to store in the registry
317
+ * valid: false → issues contains every violation found in one pass
318
+ *
319
+ * Never throws. All errors are returned as structured SkillValidationIssue
320
+ * objects so that tests can assert on issue.type rather than string messages.
321
+ *
322
+ * @param parsed The ParsedSkillFile returned by parseSkillFile.
323
+ * @param sourcePath Absolute path to the SKILL.md file; used in error messages.
324
+ */
325
+ export function validateSkill(parsed, sourcePath) {
326
+ // Defensive guard: the parser guarantees frontmatter is a Record, but the
327
+ // validator must not assume that — it is the authoritative trust boundary.
328
+ if (typeof parsed.frontmatter !== 'object' ||
329
+ parsed.frontmatter === null ||
330
+ Array.isArray(parsed.frontmatter)) {
331
+ return {
332
+ valid: false,
333
+ issues: [
334
+ {
335
+ type: 'invalid_yaml',
336
+ message: `${sourcePath}: frontmatter did not parse to a plain object.`,
337
+ },
338
+ ],
339
+ };
340
+ }
341
+ const fm = parsed.frontmatter;
342
+ const issues = [];
343
+ // ── Required string fields ────────────────────────────────────────────────
344
+ checkRequiredString(fm, 'name', issues);
345
+ checkRequiredString(fm, 'description', issues);
346
+ // ── Version ───────────────────────────────────────────────────────────────
347
+ checkVersion(fm, issues);
348
+ // ── Kind — validate and capture the value for schema cross-check ──────────
349
+ const validatedKind = checkKind(fm, issues);
350
+ // ── Output schema — validated against KIND_SCHEMA_MAP when kind is valid ──
351
+ checkOutputSchema(fm, validatedKind, issues);
352
+ // ── Guardrails — all five must be present and pinned to exact values ───────
353
+ checkGuardrails(fm, issues);
354
+ // ── Triggers ──────────────────────────────────────────────────────────────
355
+ checkTriggers(fm, issues);
356
+ // ── Priority (optional, typed when present) ───────────────────────────────
357
+ checkPriority(fm, issues);
358
+ // ── Required body sections ────────────────────────────────────────────────
359
+ checkBodySections(parsed.sections, issues);
360
+ // ── Result ────────────────────────────────────────────────────────────────
361
+ if (issues.length > 0) {
362
+ return { valid: false, issues };
363
+ }
364
+ return { valid: true, metadata: buildMetadata(fm) };
365
+ }
366
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/skills/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * UCP envelope factory.
3
+ *
4
+ * ?? Identity contract ?????????????????????????????????????????????????????????
5
+ *
6
+ * id = sha256({ type, payload, refs })
7
+ * Content-addressed: same content ? same id.
8
+ * Does NOT include ts ? never changes when only ts changes.
9
+ *
10
+ * hash = sha256({ id, meta, payload, refs, type, version })
11
+ * Integrity hash covering all fields except ts (mutable) and hash itself.
12
+ * ts is excluded so the hash is stable regardless of wall-clock time.
13
+ *
14
+ * ?? Determinism guarantee ?????????????????????????????????????????????????????
15
+ *
16
+ * Two calls to createEnvelope() with identical type, payload, source, and refs
17
+ * will produce envelopes with the SAME id and SAME hash.
18
+ * They will differ only in ts (timestamp).
19
+ *
20
+ * ?? No randomness ?????????????????????????????????????????????????????????????
21
+ *
22
+ * createEnvelope does NOT use randomUUID or any non-deterministic input.
23
+ * id is fully determined by content.
24
+ */
25
+ import type { UCPEnvelope, UCPType, UCPRefs, IntentPayload, PRVPayload, SafetyPayload, ContextAlignmentPayload, DisambiguationPayload, CompletionPayload, IntentInterpretationPayload, ChangeInterpretationPayload, ResponsePayload, InteractionContractPayload, InteractionEventPayload, DebugTracePayload, IntentEnvelope, PRVEnvelope, SafetyEnvelope, ContextAlignmentEnvelope, DisambiguationEnvelope, CompletionEnvelope, IntentInterpretationEnvelope, ChangeInterpretationEnvelope, ResponseEnvelope, InteractionContractEnvelope, InteractionEventEnvelope, DebugTraceEnvelope, ArtifactPayload, ExecutionTracePayload, ReplayReportPayload, ArtifactEnvelope, ExecutionTraceEnvelope, ReplayReportEnvelope, ReminderExecutionPayload, ReminderExecutionEnvelope, CursorHandoffPayload, CursorReceiptPayload, CursorRefusedPayload, CursorHandoffEnvelope, CursorReceiptEnvelope, CursorRefusedEnvelope, ClaudeHandoffPayload, ClaudeReceiptPayload, ClaudeRefusedPayload, ClaudeHandoffEnvelope, ClaudeReceiptEnvelope, ClaudeRefusedEnvelope, WorkflowRunPayload, WorkflowRunEnvelope } from "./types.js";
26
+ /**
27
+ * Create a UCPEnvelope from its constituent parts.
28
+ *
29
+ * @param type Dot-notation type string, e.g. "ucp.intent.v1".
30
+ * @param payload The structured payload. Must map EXACTLY from the source type.
31
+ * @param source The module name that produced this envelope (e.g. "completion").
32
+ * @param refs Optional parent/root envelope references.
33
+ */
34
+ export declare function createEnvelope<T>(type: UCPType, payload: T, source: string, refs?: UCPRefs): UCPEnvelope<T>;
35
+ export declare function createIntentEnvelope(payload: IntentPayload, refs?: UCPRefs): IntentEnvelope;
36
+ export declare function createPRVEnvelope(payload: PRVPayload, refs?: UCPRefs): PRVEnvelope;
37
+ export declare function createSafetyEnvelope(payload: SafetyPayload, refs?: UCPRefs): SafetyEnvelope;
38
+ export declare function createContextAlignmentEnvelope(payload: ContextAlignmentPayload, refs?: UCPRefs): ContextAlignmentEnvelope;
39
+ export declare function createDisambiguationEnvelope(payload: DisambiguationPayload, refs?: UCPRefs): DisambiguationEnvelope;
40
+ export declare function createCompletionEnvelope(payload: CompletionPayload, refs?: UCPRefs): CompletionEnvelope;
41
+ export declare function createIntentInterpretationEnvelope(payload: IntentInterpretationPayload, refs?: UCPRefs): IntentInterpretationEnvelope;
42
+ export declare function createChangeInterpretationEnvelope(payload: ChangeInterpretationPayload, refs?: UCPRefs): ChangeInterpretationEnvelope;
43
+ export declare function createResponseEnvelope(payload: ResponsePayload, refs?: UCPRefs): ResponseEnvelope;
44
+ export declare function createInteractionContractEnvelope(payload: InteractionContractPayload, refs?: UCPRefs): InteractionContractEnvelope;
45
+ export declare function createInteractionEventEnvelope(payload: InteractionEventPayload, refs?: UCPRefs): InteractionEventEnvelope;
46
+ export declare function createDebugTraceEnvelope(payload: DebugTracePayload, refs?: UCPRefs): DebugTraceEnvelope;
47
+ /**
48
+ * Create an artifact envelope from a finalized run record.
49
+ *
50
+ * source = "artifact_finalizer" ? the component that calls finalizeArtifact().
51
+ * refs.rootId = intentId (ucp.intent.v1 ID) when available ? closes the provenance chain.
52
+ * refs.parentId = response envelope ID when available.
53
+ */
54
+ export declare function createArtifactEnvelope(payload: ArtifactPayload, refs?: UCPRefs): ArtifactEnvelope;
55
+ /**
56
+ * Create an execution trace envelope ? the sealed batch record of a run's timeline.
57
+ *
58
+ * source = "artifact_finalizer" ? emitted at the same point as the artifact envelope.
59
+ * refs.parentId = artifact envelope ID (immediate causal predecessor).
60
+ * refs.rootId = intentId (propagated from artifact envelope).
61
+ */
62
+ export declare function createExecutionTraceEnvelope(payload: ExecutionTracePayload, refs?: UCPRefs): ExecutionTraceEnvelope;
63
+ /**
64
+ * Create a replay report envelope ? the canonical record of a verification outcome.
65
+ *
66
+ * source = "replay_engine" ? the component that calls verifyArtifact().
67
+ * refs.parentId = artifact envelope ID (the artifact that was verified).
68
+ * refs.rootId = intentId (propagated from artifact envelope, when available).
69
+ *
70
+ * NOTE: replay is a statement about an artifact, not an independent truth.
71
+ * The parentId link is the formal expression of that relationship.
72
+ */
73
+ export declare function createReplayReportEnvelope(payload: ReplayReportPayload, refs?: UCPRefs): ReplayReportEnvelope;
74
+ /**
75
+ * Create a cursor handoff envelope ? persisted by the delivery gate BEFORE
76
+ * the artifact is passed to Cursor. Hard gate: if this fails, delivery is blocked.
77
+ *
78
+ * source = "cursor_delivery_gate"
79
+ * refs.parentId = response envelope ID (ucp.response.v1)
80
+ * refs.rootId = intent envelope ID (ucp.intent.v1)
81
+ *
82
+ * Chain position: ucp.response.v1 ? ucp.cursor_handoff.v1
83
+ */
84
+ export declare function createCursorHandoffEnvelope(payload: CursorHandoffPayload, refs?: UCPRefs): CursorHandoffEnvelope;
85
+ /**
86
+ * Create a cursor receipt envelope ? persisted AFTER Cursor returns "accepted".
87
+ * Records that Cursor took ownership of the artifact.
88
+ *
89
+ * source = "cursor_delivery_gate"
90
+ * refs.parentId = cursor handoff envelope ID (ucp.cursor_handoff.v1)
91
+ * refs.rootId = intent envelope ID (ucp.intent.v1)
92
+ *
93
+ * Chain position: ucp.cursor_handoff.v1 ? ucp.cursor_receipt.v1
94
+ * ? [ucp.cursor_artifact.v1 ? RESERVED FUTURE SLOT]
95
+ * ? ucp.execution_trace.v1
96
+ */
97
+ export declare function createCursorReceiptEnvelope(payload: CursorReceiptPayload, refs?: UCPRefs): CursorReceiptEnvelope;
98
+ /**
99
+ * Create a cursor refused envelope ? persisted when Cursor returns either
100
+ * refused_due_to_scope or refused_due_to_execution_error.
101
+ *
102
+ * source = "cursor_delivery_gate"
103
+ * refs.parentId = cursor handoff envelope ID (ucp.cursor_handoff.v1)
104
+ * refs.rootId = intent envelope ID (ucp.intent.v1)
105
+ *
106
+ * Chain position: ucp.cursor_handoff.v1 ? ucp.cursor_refused.v1 (dead end or retry trigger)
107
+ */
108
+ export declare function createCursorRefusedEnvelope(payload: CursorRefusedPayload, refs?: UCPRefs): CursorRefusedEnvelope;
109
+ /**
110
+ * Create a Claude handoff envelope ? persisted by the delivery gate BEFORE
111
+ * the artifact is passed to Claude Managed Agents. Hard gate: if this fails,
112
+ * delivery is blocked.
113
+ *
114
+ * source = "claude_delivery_gate"
115
+ * refs.parentId = response envelope ID (ucp.response.v1)
116
+ * refs.rootId = intent envelope ID (ucp.intent.v1)
117
+ *
118
+ * Chain position: ucp.response.v1 ? ucp.claude_handoff.v1
119
+ */
120
+ export declare function createClaudeHandoffEnvelope(payload: ClaudeHandoffPayload, refs?: UCPRefs): ClaudeHandoffEnvelope;
121
+ /**
122
+ * Create a Claude receipt envelope ? persisted AFTER Claude accepts the task.
123
+ * Records that Claude started a managed agent session.
124
+ *
125
+ * source = "claude_delivery_gate"
126
+ * refs.parentId = claude handoff envelope ID (ucp.claude_handoff.v1)
127
+ * refs.rootId = intent envelope ID (ucp.intent.v1)
128
+ *
129
+ * Chain position: ucp.claude_handoff.v1 ? ucp.claude_receipt.v1
130
+ */
131
+ export declare function createClaudeReceiptEnvelope(payload: ClaudeReceiptPayload, refs?: UCPRefs): ClaudeReceiptEnvelope;
132
+ /**
133
+ * Create a Claude refused envelope ? persisted when Claude responds with
134
+ * refused_due_to_scope or refused_due_to_execution_error.
135
+ *
136
+ * source = "claude_delivery_gate"
137
+ * refs.parentId = claude handoff envelope ID (ucp.claude_handoff.v1)
138
+ * refs.rootId = intent envelope ID (ucp.intent.v1)
139
+ *
140
+ * Chain position: ucp.claude_handoff.v1 ? ucp.claude_refused.v1 (dead end or retry trigger)
141
+ */
142
+ export declare function createClaudeRefusedEnvelope(payload: ClaudeRefusedPayload, refs?: UCPRefs): ClaudeRefusedEnvelope;
143
+ /**
144
+ * Create a reminder execution envelope from a finalized execution artifact.
145
+ *
146
+ * source = "reminder_executor" ? the reminder execution layer.
147
+ * refs.parentId = response envelope ID (the intake decision that led to this).
148
+ * refs.rootId = intent envelope ID (the originating user intent).
149
+ *
150
+ * Both refs are optional in this slice ? they will be wired when the execution
151
+ * layer is integrated into the full intake?present?execute pipeline.
152
+ */
153
+ export declare function createReminderExecutionEnvelope(payload: ReminderExecutionPayload, refs?: UCPRefs): ReminderExecutionEnvelope;
154
+ /**
155
+ * Create a workflow run envelope ? the terminal provenance record for one
156
+ * complete workflow run. Persisted ONLY when the run reaches "completed" or
157
+ * "stopped" (W5). Never written for in-progress runs.
158
+ *
159
+ * source = "workflow_coordinator"
160
+ *
161
+ * refs are optional because the workflow spans multiple sessions.
162
+ * Individual session chains are recoverable through sessionRefs entries.
163
+ */
164
+ export declare function createWorkflowRunEnvelope(payload: WorkflowRunPayload, refs?: UCPRefs): WorkflowRunEnvelope;
165
+ //# sourceMappingURL=envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../src/ucp/envelope.ts"],"names":[],"mappings":"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"}