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,146 @@
1
+ /**
2
+ * Control Visibility Evaluator — Phase 5B.
3
+ *
4
+ * ── Responsibility ────────────────────────────────────────────────────────────
5
+ *
6
+ * Pure mapping from presentation state → ControlVisibilityResult.
7
+ *
8
+ * No inference. No guessing. No logic authority.
9
+ * Every mapping is an explicit, deterministic read of existing state.
10
+ *
11
+ * ── What this does NOT do ─────────────────────────────────────────────────────
12
+ *
13
+ * Does NOT call intake, execution, or UCP
14
+ * Does NOT derive new decisions from the presentation
15
+ * Does NOT change any output shape
16
+ * Does NOT produce side effects
17
+ *
18
+ * ── Locked rules (permanent — see docs/cvg-baseline.md) ─────────────────────
19
+ *
20
+ * C1 — CVG is derived only from existing presentation state.
21
+ * No re-evaluation. No classification. No inference. Pure mapping.
22
+ *
23
+ * C2 — CVG may assert, but never route.
24
+ * This function returns a result. It never changes what the caller returns.
25
+ *
26
+ * C4 — Any new presentation family must extend ControlVisibilityInput here,
27
+ * add a mapping case below, and pass all uniqueness/invariant tests.
28
+ * Exhaustive switch required — no default fallthrough.
29
+ *
30
+ * ── Signal mapping summary ────────────────────────────────────────────────────
31
+ *
32
+ * reminder_presentation:
33
+ * ready_to_confirm → signal: "ready_to_confirm", level: "normal"
34
+ * needs_time → signal: "not_ready", level: "blocking"
35
+ * needs_subject → signal: "not_ready", level: "blocking"
36
+ * ambiguous → signal: "ambiguous", level: "attention"
37
+ *
38
+ * intake_presentation (by mode):
39
+ * execute → signal: "ready_to_confirm", level: "normal"
40
+ * guide → signal: "not_ready", level: "blocking"
41
+ * clarify → signal: "ambiguous", level: "attention"
42
+ * refuse → signal: "refused_execution", level: "blocking"
43
+ * ignore → signal: "not_ready", level: "blocking"
44
+ *
45
+ * cursor_preparation:
46
+ * ready_for_confirmation → signal: "ready_to_confirm", level: "normal"
47
+ * conflict_detected → signal: "conflict_detected", level: "blocking"
48
+ * not_execute → signal: "not_ready", level: "blocking"
49
+ *
50
+ * cursor_execution:
51
+ * accepted → signal: "ready_to_confirm", level: "normal"
52
+ * refused_due_to_scope → signal: "refused_scope", level: "blocking"
53
+ * refused_due_to_execution_error → signal: "refused_execution", level: "blocking"
54
+ * blocked_ineligible → signal: "refused_execution", level: "blocking"
55
+ * blocked_persistence_failure → signal: "refused_execution", level: "blocking"
56
+ */
57
+ // ─── Public API ───────────────────────────────────────────────────────────────
58
+ /**
59
+ * Evaluate the control visibility for a given presentation input.
60
+ *
61
+ * Pure function. No side effects. No inference. Deterministic.
62
+ *
63
+ * @param input A ControlVisibilityInput discriminated union arm.
64
+ * @returns A ControlVisibilityResult characterizing the authority level.
65
+ */
66
+ // ─── Signal mapping summary addendum (Phase 5D) ──────────────────────────────
67
+ //
68
+ // intake_provisionally_executable:
69
+ // → signal: "provisionally_executable", level: "attention"
70
+ // → must_block_confirm: false (does not hard-block)
71
+ // → must_surface: true (H must see the warning)
72
+ // → must_differentiate: true
73
+ //
74
+ // ─────────────────────────────────────────────────────────────────────────────
75
+ export function evaluateControlVisibility(input) {
76
+ switch (input.kind) {
77
+ case "reminder_presentation":
78
+ return fromReminderState(input.presentation.state);
79
+ case "intake_presentation":
80
+ return fromIntakeMode(input.presentation.mode);
81
+ case "cursor_preparation":
82
+ return fromCursorPreparation(input.result.kind);
83
+ case "cursor_execution":
84
+ return fromCursorExecution(input.result.kind);
85
+ case "intake_provisionally_executable":
86
+ // Phase 5D — structurally executable but downstream policy block likely.
87
+ // attention level: must surface, must NOT hard-block confirm.
88
+ return build("provisionally_executable", "attention");
89
+ }
90
+ }
91
+ // ─── Internal mappers ─────────────────────────────────────────────────────────
92
+ function fromReminderState(state) {
93
+ switch (state) {
94
+ case "ready_to_confirm": return build("ready_to_confirm", "normal");
95
+ case "needs_time": return build("not_ready", "blocking");
96
+ case "needs_subject": return build("not_ready", "blocking");
97
+ case "ambiguous": return build("ambiguous", "attention");
98
+ }
99
+ }
100
+ function fromIntakeMode(mode) {
101
+ switch (mode) {
102
+ case "execute": return build("ready_to_confirm", "normal");
103
+ case "guide": return build("not_ready", "blocking");
104
+ case "clarify": return build("ambiguous", "attention");
105
+ case "refuse": return build("refused_execution", "blocking");
106
+ case "ignore": return build("not_ready", "blocking");
107
+ }
108
+ }
109
+ function fromCursorPreparation(kind) {
110
+ switch (kind) {
111
+ case "ready_for_confirmation": return build("ready_to_confirm", "normal");
112
+ case "conflict_detected": return build("conflict_detected", "blocking");
113
+ case "not_execute": return build("not_ready", "blocking");
114
+ }
115
+ }
116
+ function fromCursorExecution(kind) {
117
+ switch (kind) {
118
+ case "accepted": return build("ready_to_confirm", "normal");
119
+ case "refused_due_to_scope": return build("refused_scope", "blocking");
120
+ case "refused_due_to_execution_error": return build("refused_execution", "blocking");
121
+ case "blocked_ineligible": return build("refused_execution", "blocking");
122
+ case "blocked_persistence_failure": return build("refused_execution", "blocking");
123
+ }
124
+ }
125
+ // ─── Result builder ───────────────────────────────────────────────────────────
126
+ /**
127
+ * Derive the three boolean flags from level.
128
+ *
129
+ * blocking: must_block_confirm=true, must_surface=true, must_differentiate=true
130
+ * attention: must_block_confirm=false, must_surface=true, must_differentiate=true
131
+ * normal: must_block_confirm=false, must_surface=false, must_differentiate=true
132
+ *
133
+ * Higher-authority signals subsume lower-authority flags.
134
+ * must_differentiate is always true — no two levels may be visually equivalent.
135
+ */
136
+ function build(signal, level) {
137
+ switch (level) {
138
+ case "blocking":
139
+ return { level, signal, must_block_confirm: true, must_surface: true, must_differentiate: true };
140
+ case "attention":
141
+ return { level, signal, must_block_confirm: false, must_surface: true, must_differentiate: true };
142
+ case "normal":
143
+ return { level, signal, must_block_confirm: false, must_surface: false, must_differentiate: true };
144
+ }
145
+ }
146
+ //# sourceMappingURL=control-visibility-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-visibility-evaluator.js","sourceRoot":"","sources":["../../../../src/present/control-visibility/control-visibility-evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Control Visibility & Boundary Integrity (CVG) — Phase 5B types.
3
+ *
4
+ * ── Purpose ───────────────────────────────────────────────────────────────────
5
+ *
6
+ * A PRESENTATION-LAYER safety contract. Not a UI concern.
7
+ *
8
+ * Higher-authority signals MUST dominate lower-authority presentation.
9
+ * This module defines the types that make that rule programmable and testable.
10
+ *
11
+ * ── What this is NOT ──────────────────────────────────────────────────────────
12
+ *
13
+ * NOT an execution authority — it reads state, never sets it
14
+ * NOT a UI styling concern — no colors, no strings
15
+ * NOT a routing decision — consumers route; CVG only characterizes
16
+ *
17
+ * ── Invariant ─────────────────────────────────────────────────────────────────
18
+ *
19
+ * Every distinct signal produces a structurally distinct result.
20
+ * No two authority levels are visually or programmatically equivalent.
21
+ * Assertions enforce this at runtime.
22
+ */
23
+ /**
24
+ * ControlSignalLevel — the authority tier of a presentation signal.
25
+ *
26
+ * "blocking" — execution MUST NOT proceed. Confirm is disabled.
27
+ * The state must be surfaced and differentiated.
28
+ * Example: conflict_detected, refused_scope.
29
+ *
30
+ * "attention" — execution should not proceed without user acknowledgment.
31
+ * The state must be surfaced, but confirm is not hard-blocked.
32
+ * Example: ambiguous.
33
+ *
34
+ * "normal" — execution may proceed. No blocking concern.
35
+ * The state must still be distinguishable from higher levels.
36
+ * Example: ready_to_confirm.
37
+ *
38
+ * Authority order: blocking > attention > normal.
39
+ * A higher-level signal MUST NOT be treated as a lower one.
40
+ */
41
+ export type ControlSignalLevel = "normal" | "attention" | "blocking";
42
+ /**
43
+ * ControlSignal — the semantic identity of the presentation state.
44
+ *
45
+ * conflict_detected — OCD policy conflict; H must resolve before proceeding.
46
+ * not_ready — required fields are missing; input incomplete.
47
+ * ambiguous — insufficient signal to determine intent.
48
+ * refused_scope — Cursor refused: scope clarification required.
49
+ * refused_execution — Cursor refused: execution-level error or system block.
50
+ * ready_to_confirm — all conditions met; H may proceed.
51
+ * provisionally_executable — Phase 5D: structurally executable now, but a downstream
52
+ * policy block is likely based on the target path.
53
+ * level: attention. Does not hard-block confirm.
54
+ * Must surface. Must differentiate from ready_to_confirm.
55
+ */
56
+ export type ControlSignal = "conflict_detected" | "not_ready" | "ambiguous" | "refused_scope" | "refused_execution" | "ready_to_confirm" | "provisionally_executable";
57
+ /**
58
+ * ControlVisibilityResult — the programmatic characterization of a presentation state.
59
+ *
60
+ * level — authority tier (blocking / attention / normal)
61
+ * signal — semantic identity of the state
62
+ * must_block_confirm — true when the confirm action MUST be disabled
63
+ * must_surface — true when the state MUST be shown to H (not hidden)
64
+ * must_differentiate — true when the state MUST be visually/structurally
65
+ * distinct from all other levels (always true)
66
+ *
67
+ * Flag assignment by level:
68
+ *
69
+ * blocking: must_block_confirm=true, must_surface=true, must_differentiate=true
70
+ * attention: must_block_confirm=false, must_surface=true, must_differentiate=true
71
+ * normal: must_block_confirm=false, must_surface=false, must_differentiate=true
72
+ */
73
+ export type ControlVisibilityResult = {
74
+ readonly level: ControlSignalLevel;
75
+ readonly signal: ControlSignal;
76
+ readonly must_block_confirm: boolean;
77
+ readonly must_surface: boolean;
78
+ readonly must_differentiate: boolean;
79
+ };
80
+ import type { ReminderPresentation } from "../reminders/reminder-types.js";
81
+ import type { PresentationOutput } from "../types.js";
82
+ import type { CursorPreparationResult, CursorExecutionResult } from "../../execution/cursor/cursor-execution-coordinator.js";
83
+ /**
84
+ * ControlVisibilityInput — the set of presentation shapes the evaluator accepts.
85
+ *
86
+ * Each arm carries the full shape; the evaluator reads only what it needs
87
+ * and never calls upstream logic.
88
+ *
89
+ * "reminder_presentation" — a ReminderPresentation from presentReminder()
90
+ * "intake_presentation" — a PresentationOutput from formatIntakeResult()
91
+ * "cursor_preparation" — a CursorPreparationResult from prepareCursorExecution()
92
+ * "cursor_execution" — a CursorExecutionResult from deliverCursorExecution()
93
+ * "intake_provisionally_executable" — Phase 5D: execute-mode presentation where a
94
+ * downstream policy block is likely. Signals
95
+ * "attention" without blocking confirm.
96
+ */
97
+ export type ControlVisibilityInput = {
98
+ readonly kind: "reminder_presentation";
99
+ readonly presentation: ReminderPresentation;
100
+ } | {
101
+ readonly kind: "intake_presentation";
102
+ readonly presentation: PresentationOutput;
103
+ } | {
104
+ readonly kind: "cursor_preparation";
105
+ readonly result: CursorPreparationResult;
106
+ } | {
107
+ readonly kind: "cursor_execution";
108
+ readonly result: CursorExecutionResult;
109
+ } | {
110
+ readonly kind: "intake_provisionally_executable";
111
+ readonly presentation: PresentationOutput;
112
+ };
113
+ //# sourceMappingURL=control-visibility-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-visibility-types.d.ts","sourceRoot":"","sources":["../../../../src/present/control-visibility/control-visibility-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,WAAW,GACX,UAAU,CAAC;AAIf;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,WAAW,GACX,WAAW,GACX,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,0BAA0B,CAAC;AAI/B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,KAAK,EAAe,kBAAkB,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAc,aAAa,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAQ,OAAO,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC,CAAC;AAIF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAO,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAS,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MACvD,wDAAwD,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAAW,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;CAAE,GACjG;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAAa,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAA;CAAE,GAC/F;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAAc,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,GAC9F;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAAgB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,IAAI,EAAE,iCAAiC,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAA;CAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Control Visibility & Boundary Integrity (CVG) — Phase 5B types.
3
+ *
4
+ * ── Purpose ───────────────────────────────────────────────────────────────────
5
+ *
6
+ * A PRESENTATION-LAYER safety contract. Not a UI concern.
7
+ *
8
+ * Higher-authority signals MUST dominate lower-authority presentation.
9
+ * This module defines the types that make that rule programmable and testable.
10
+ *
11
+ * ── What this is NOT ──────────────────────────────────────────────────────────
12
+ *
13
+ * NOT an execution authority — it reads state, never sets it
14
+ * NOT a UI styling concern — no colors, no strings
15
+ * NOT a routing decision — consumers route; CVG only characterizes
16
+ *
17
+ * ── Invariant ─────────────────────────────────────────────────────────────────
18
+ *
19
+ * Every distinct signal produces a structurally distinct result.
20
+ * No two authority levels are visually or programmatically equivalent.
21
+ * Assertions enforce this at runtime.
22
+ */
23
+ export {};
24
+ //# sourceMappingURL=control-visibility-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-visibility-types.js","sourceRoot":"","sources":["../../../../src/present/control-visibility/control-visibility-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Control Visibility & Boundary Integrity (CVG) — Phase 5B public API.
3
+ *
4
+ * Usage in presentation entry points:
5
+ *
6
+ * import { evaluateControlVisibility, assertControlVisibilityConsistency }
7
+ * from "./control-visibility/index.js";
8
+ *
9
+ * const cvg = evaluateControlVisibility({ kind: "reminder_presentation", presentation });
10
+ * assertControlVisibilityConsistency(cvg);
11
+ * // result is unchanged — CVG is a read-only hook
12
+ */
13
+ export type { ControlSignalLevel, ControlSignal, ControlVisibilityResult, ControlVisibilityInput, } from "./control-visibility-types.js";
14
+ export { evaluateControlVisibility } from "./control-visibility-evaluator.js";
15
+ export { assertControlVisibilityConsistency, ControlVisibilityViolationError, } from "./control-visibility-assertions.js";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/present/control-visibility/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,EACL,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,oCAAoC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Control Visibility & Boundary Integrity (CVG) — Phase 5B public API.
3
+ *
4
+ * Usage in presentation entry points:
5
+ *
6
+ * import { evaluateControlVisibility, assertControlVisibilityConsistency }
7
+ * from "./control-visibility/index.js";
8
+ *
9
+ * const cvg = evaluateControlVisibility({ kind: "reminder_presentation", presentation });
10
+ * assertControlVisibilityConsistency(cvg);
11
+ * // result is unchanged — CVG is a read-only hook
12
+ */
13
+ export { evaluateControlVisibility } from "./control-visibility-evaluator.js";
14
+ export { assertControlVisibilityConsistency, ControlVisibilityViolationError, } from "./control-visibility-assertions.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/present/control-visibility/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,EACL,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,oCAAoC,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Presentation formatter — formatIntakeResult.
3
+ *
4
+ * Converts an IntakeResult into a consumer-ready PresentationOutput.
5
+ * No logic here. No decisions. Only translation.
6
+ *
7
+ * ── UCP boundary note ─────────────────────────────────────────────────────────
8
+ *
9
+ * UCP is canonical source of truth, but presentation consumes projected IntakeResult.
10
+ * Direct UCP consumption is deferred to Phase 2 integration.
11
+ *
12
+ * In Phase 2, PresentationOutput may be derived directly from UCPBundle instead
13
+ * of from IntakeResult, using the response envelope as the authoritative source.
14
+ * Until then, IntakeResult is the presentation input and UCP is a parallel view.
15
+ *
16
+ * ── What this is ──────────────────────────────────────────────────────────────
17
+ *
18
+ * The presentation layer sits above the intake pipeline.
19
+ * It takes already-decided IntakeResult data and formats it for display.
20
+ *
21
+ * ── What this is not ─────────────────────────────────────────────────────────
22
+ *
23
+ * This layer does NOT:
24
+ * - Re-run intake, completion, or interpretation
25
+ * - Add new decisions or modify existing ones
26
+ * - Guess values or invent context
27
+ * - Render HTML, terminal escape codes, or markdown
28
+ *
29
+ * ── Dual interpretation families ─────────────────────────────────────────────
30
+ *
31
+ * IntentInterpretation (guide mode)
32
+ * → category comes from IntentInterpretationCategory
33
+ * → lives at result.guidance.interpretation
34
+ * → display names: "Color / style change", "Text / copy change", "Configuration change"
35
+ *
36
+ * InterpretationResult (execute mode)
37
+ * → category comes from InterpretationCategory
38
+ * → lives at result.interpretation
39
+ * → display names: "Tailwind color change", "CSS color change", etc.
40
+ *
41
+ * These are never merged. One is for guide. One is for execute.
42
+ */
43
+ import type { IntakeResult } from "../intake/types.js";
44
+ import type { DebugTrace } from "../intake/trace.js";
45
+ import type { PresentationOutput } from "./types.js";
46
+ /**
47
+ * Format an IntakeResult into a consumer-ready PresentationOutput.
48
+ *
49
+ * @param result The intake pipeline result
50
+ * @param trace Optional debug trace from runIntakeWithTrace.
51
+ * When provided, it is attached to debugTrace on the output.
52
+ * It has zero effect on any other field.
53
+ *
54
+ * The result is deterministic: same inputs → same output.
55
+ */
56
+ export declare function formatIntakeResult(result: IntakeResult, trace?: DebugTrace): PresentationOutput;
57
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/present/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAsDrD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,KAAK,CAAC,EAAE,UAAU,GACjB,kBAAkB,CAwDpB"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Presentation formatter — formatIntakeResult.
3
+ *
4
+ * Converts an IntakeResult into a consumer-ready PresentationOutput.
5
+ * No logic here. No decisions. Only translation.
6
+ *
7
+ * ── UCP boundary note ─────────────────────────────────────────────────────────
8
+ *
9
+ * UCP is canonical source of truth, but presentation consumes projected IntakeResult.
10
+ * Direct UCP consumption is deferred to Phase 2 integration.
11
+ *
12
+ * In Phase 2, PresentationOutput may be derived directly from UCPBundle instead
13
+ * of from IntakeResult, using the response envelope as the authoritative source.
14
+ * Until then, IntakeResult is the presentation input and UCP is a parallel view.
15
+ *
16
+ * ── What this is ──────────────────────────────────────────────────────────────
17
+ *
18
+ * The presentation layer sits above the intake pipeline.
19
+ * It takes already-decided IntakeResult data and formats it for display.
20
+ *
21
+ * ── What this is not ─────────────────────────────────────────────────────────
22
+ *
23
+ * This layer does NOT:
24
+ * - Re-run intake, completion, or interpretation
25
+ * - Add new decisions or modify existing ones
26
+ * - Guess values or invent context
27
+ * - Render HTML, terminal escape codes, or markdown
28
+ *
29
+ * ── Dual interpretation families ─────────────────────────────────────────────
30
+ *
31
+ * IntentInterpretation (guide mode)
32
+ * → category comes from IntentInterpretationCategory
33
+ * → lives at result.guidance.interpretation
34
+ * → display names: "Color / style change", "Text / copy change", "Configuration change"
35
+ *
36
+ * InterpretationResult (execute mode)
37
+ * → category comes from InterpretationCategory
38
+ * → lives at result.interpretation
39
+ * → display names: "Tailwind color change", "CSS color change", etc.
40
+ *
41
+ * These are never merged. One is for guide. One is for execute.
42
+ */
43
+ // ─── Display name maps ────────────────────────────────────────────────────────
44
+ const MODE_BADGES = {
45
+ refuse: "REFUSE",
46
+ ignore: "IGNORE",
47
+ clarify: "CLARIFY",
48
+ guide: "GUIDE",
49
+ execute: "EXECUTE",
50
+ };
51
+ const CONFIDENCE_LABELS = {
52
+ high: "High confidence",
53
+ medium: "Medium confidence",
54
+ low: "Low confidence",
55
+ };
56
+ // Intent interpretation (guide mode — what the user appears to be trying to do)
57
+ const INTENT_CATEGORY_LABELS = {
58
+ visual_color: "Color / style change",
59
+ text_change: "Text / copy change",
60
+ config_change: "Configuration change",
61
+ workflow_operation: "Development workflow",
62
+ unknown: "Unclassified",
63
+ };
64
+ // Change interpretation (execute mode — what the structured change means)
65
+ const CHANGE_CATEGORY_LABELS = {
66
+ tailwind_color_change: "Tailwind color change",
67
+ css_color_change: "CSS color change",
68
+ text_literal_change: "Text / copy change",
69
+ config_value_change: "Configuration value change",
70
+ };
71
+ // ─── certaintyLevel derivation ────────────────────────────────────────────────
72
+ /**
73
+ * Purely derived — no logic authority.
74
+ *
75
+ * "certain" → execute + change interpretation (structured patch, known meaning)
76
+ * "inferred" → guide + intent interpretation (vague but classified)
77
+ * "unknown" → all other cases (refuse, ignore, clarify, bare execute, incomplete guide)
78
+ */
79
+ function deriveCertaintyLevel(result) {
80
+ if (result.mode === "execute" && result.interpretation !== undefined)
81
+ return "certain";
82
+ if (result.mode === "guide" && result.guidance?.interpretation !== undefined)
83
+ return "inferred";
84
+ return "unknown";
85
+ }
86
+ // ─── formatIntakeResult ───────────────────────────────────────────────────────
87
+ /**
88
+ * Format an IntakeResult into a consumer-ready PresentationOutput.
89
+ *
90
+ * @param result The intake pipeline result
91
+ * @param trace Optional debug trace from runIntakeWithTrace.
92
+ * When provided, it is attached to debugTrace on the output.
93
+ * It has zero effect on any other field.
94
+ *
95
+ * The result is deterministic: same inputs → same output.
96
+ */
97
+ export function formatIntakeResult(result, trace) {
98
+ const badge = MODE_BADGES[result.mode];
99
+ const certaintyLevel = deriveCertaintyLevel(result);
100
+ const traceField = trace !== undefined ? { debugTrace: trace } : {};
101
+ // ── guide mode with intent interpretation (guided_recovery + classification) ─
102
+ if (result.mode === "guide" && result.guidance?.interpretation !== undefined) {
103
+ const interp = result.guidance.interpretation;
104
+ return {
105
+ mode: result.mode,
106
+ badge,
107
+ headline: interp.summary,
108
+ category: INTENT_CATEGORY_LABELS[interp.category],
109
+ confidence: CONFIDENCE_LABELS[interp.confidence],
110
+ steps: result.guidance.nextSteps.map((s) => s.label),
111
+ missing: [...result.guidance.missing],
112
+ certaintyLevel,
113
+ ...traceField,
114
+ };
115
+ }
116
+ // ── guide mode without intent interpretation (incomplete, or no classification) ─
117
+ if (result.mode === "guide" && result.guidance !== undefined) {
118
+ return {
119
+ mode: result.mode,
120
+ badge,
121
+ headline: result.reason,
122
+ steps: result.guidance.nextSteps.map((s) => s.label),
123
+ missing: [...result.guidance.missing],
124
+ certaintyLevel,
125
+ ...traceField,
126
+ };
127
+ }
128
+ // ── execute mode with change interpretation ────────────────────────────────
129
+ if (result.mode === "execute" && result.interpretation !== undefined) {
130
+ const interp = result.interpretation;
131
+ return {
132
+ mode: result.mode,
133
+ badge,
134
+ headline: interp.summary,
135
+ category: CHANGE_CATEGORY_LABELS[interp.category],
136
+ confidence: CONFIDENCE_LABELS[interp.confidence],
137
+ certaintyLevel,
138
+ ...traceField,
139
+ };
140
+ }
141
+ // ── refuse / ignore / clarify / execute (no interpretation) ───────────────
142
+ return {
143
+ mode: result.mode,
144
+ badge,
145
+ headline: result.reason,
146
+ certaintyLevel,
147
+ ...traceField,
148
+ };
149
+ }
150
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/present/format.ts"],"names":[],"mappings":"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"}