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,131 @@
1
+ /**
2
+ * applyGuidanceOrdering — session-aware guidance step ordering.
3
+ *
4
+ * This is Phase B2 of session memory alignment. It takes a finalized
5
+ * GuidancePayload and applies two purely presentational adjustments based
6
+ * on observedIntentPatterns from the InteractionContract:
7
+ *
8
+ * 1. Step type ordering: read_first always before use_exact_format (defensive).
9
+ * 2. Label emphasis: when the user is familiar with a category
10
+ * (≥ FAMILIARITY_THRESHOLD observations), the read_first label
11
+ * shortens to action-first form (drops "first" — they know the flow).
12
+ *
13
+ * ── HARD INVARIANTS (must never be violated) ─────────────────────────────────
14
+ *
15
+ * 1. Step count never changes. No step is added. No step is removed.
16
+ * 2. missing[] is never modified.
17
+ * 3. interpretation (category, confidence, summary, basis) is never modified.
18
+ * 4. mode, reason, signal, intentState are NOT touched (not in this type).
19
+ * 5. Counts may only affect ordering and label text — never content truth.
20
+ * 6. A required safe step (read_first) is never suppressed.
21
+ * 7. If counts tie across categories, ordering is deterministic (stable sort).
22
+ * 8. Label changes use only the current guidance's interpretation category.
23
+ * A high text_change count never alters a visual_color label.
24
+ *
25
+ * ── This function is purely presentational ───────────────────────────────────
26
+ *
27
+ * It is called after all intake decisions are made. It cannot and must not
28
+ * feed back into PRV, safety, context alignment, disambiguation, completion,
29
+ * response planning, or interpretation category/confidence.
30
+ */
31
+ /**
32
+ * Number of same-category guided recovery observations required before
33
+ * the read_first label switches to the shorter, action-first form.
34
+ *
35
+ * Below threshold → default label (explains the "why" for new users).
36
+ * At or above threshold → familiar label (shorter, action-first).
37
+ */
38
+ export const FAMILIARITY_THRESHOLD = 3;
39
+ /**
40
+ * Preferred sort order for step types.
41
+ * read_first is always promoted to the front.
42
+ * add_missing_field stays in the middle.
43
+ * use_exact_format is last.
44
+ *
45
+ * This is a defensive guarantee — the bridge already produces this order,
46
+ * but this makes it an explicit, tested property of every guidance payload.
47
+ */
48
+ const STEP_TYPE_ORDER = {
49
+ read_first: 0,
50
+ add_missing_field: 1,
51
+ use_exact_format: 2,
52
+ };
53
+ /**
54
+ * Shorter, action-first read_first labels for users familiar with the flow.
55
+ * Applied only when patterns[category] >= FAMILIARITY_THRESHOLD.
56
+ *
57
+ * Default labels contain "first" as a cue for new users ("Read the file FIRST").
58
+ * Familiar labels drop that cue — experienced users already know the order.
59
+ */
60
+ const FAMILIAR_READ_FIRST_LABELS = {
61
+ visual_color: 'Find the current color in the component file: read "<file>"',
62
+ text_change: 'Find the current text in the file: read "<file>"',
63
+ config_change: 'Find the current setting in the config file: read "<file>"',
64
+ };
65
+ /**
66
+ * Apply session-aware ordering to a GuidancePayload.
67
+ *
68
+ * Returns a new GuidancePayload with:
69
+ * - nextSteps sorted by type (read_first → add_missing_field → use_exact_format)
70
+ * - read_first label adjusted to familiar form when patterns[category] >= 3
71
+ *
72
+ * All other fields (missing, interpretation, reason) are returned unchanged.
73
+ *
74
+ * This is a pure function: deterministic, no side effects.
75
+ */
76
+ export function applyGuidanceOrdering(guidance, patterns) {
77
+ const category = guidance.interpretation?.category;
78
+ const isFamiliar = isFamiliarCategory(category, patterns);
79
+ // Step 1: Sort by type. Stable sort preserves relative order within type.
80
+ const sorted = sortByStepType(guidance.nextSteps);
81
+ // Step 2: Adjust read_first labels for familiar categories only.
82
+ const adjusted = isFamiliar ? adjustReadFirstLabels(sorted, category) : sorted;
83
+ // Return with only nextSteps replaced. Everything else is unchanged.
84
+ if (adjusted === guidance.nextSteps) {
85
+ return guidance;
86
+ }
87
+ return {
88
+ ...guidance,
89
+ nextSteps: adjusted,
90
+ };
91
+ }
92
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
93
+ function isFamiliarCategory(category, patterns) {
94
+ if (category === undefined || category === "unknown" || category === "workflow_operation")
95
+ return false;
96
+ return patterns[category] >= FAMILIARITY_THRESHOLD;
97
+ }
98
+ function sortByStepType(steps) {
99
+ // Already sorted? Return the same reference (no allocation).
100
+ if (isAlreadySorted(steps))
101
+ return steps;
102
+ // Stable sort: spread to mutable, sort with index as tiebreaker.
103
+ return [...steps].sort((a, b) => {
104
+ const diff = STEP_TYPE_ORDER[a.type] - STEP_TYPE_ORDER[b.type];
105
+ if (diff !== 0)
106
+ return diff;
107
+ // Same type — preserve original order (stable).
108
+ return steps.indexOf(a) - steps.indexOf(b);
109
+ });
110
+ }
111
+ function isAlreadySorted(steps) {
112
+ for (let i = 1; i < steps.length; i++) {
113
+ if (STEP_TYPE_ORDER[steps[i - 1].type] > STEP_TYPE_ORDER[steps[i].type]) {
114
+ return false;
115
+ }
116
+ }
117
+ return true;
118
+ }
119
+ function adjustReadFirstLabels(steps, category) {
120
+ const familiarLabel = FAMILIAR_READ_FIRST_LABELS[category];
121
+ if (familiarLabel === undefined)
122
+ return steps;
123
+ // Only rewrite if there are read_first steps to adjust.
124
+ const hasReadFirst = steps.some(s => s.type === "read_first");
125
+ if (!hasReadFirst)
126
+ return steps;
127
+ return steps.map(step => step.type === "read_first"
128
+ ? { ...step, label: familiarLabel }
129
+ : step);
130
+ }
131
+ //# sourceMappingURL=guidance-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guidance-order.js","sourceRoot":"","sources":["../../../src/interaction/guidance-order.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAOH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAyD;IAC5E,UAAU,EAAQ,CAAC;IACnB,iBAAiB,EAAE,CAAC;IACpB,gBAAgB,EAAG,CAAC;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,0BAA0B,GAA0D;IACxF,YAAY,EAAG,6DAA6D;IAC5E,WAAW,EAAI,kDAAkD;IACjE,aAAa,EAAE,4DAA4D;CAC5E,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAyB,EACzB,QAAgC;IAEhC,MAAM,QAAQ,GAAI,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACpD,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE1D,0EAA0E;IAC1E,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAElD,iEAAiE;IACjE,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhF,qEAAqE;IACrE,IAAI,QAAQ,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO;QACL,GAAG,QAAQ;QACX,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,SAAS,kBAAkB,CACzB,QAAkD,EAClD,QAAgC;IAEhC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,oBAAoB;QAAE,OAAO,KAAK,CAAC;IACxG,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CACrB,KAAoC;IAEpC,6DAA6D;IAC7D,IAAI,eAAe,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,iEAAiE;IACjE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,gDAAgD;QAChD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,KAAoC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAoC,EACpC,QAA0D;IAE1D,MAAM,aAAa,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE9C,wDAAwD;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEhC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtB,IAAI,CAAC,IAAI,KAAK,YAAY;QACxB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE;QACnC,CAAC,CAAC,IAAI,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * observeIntentPattern — pure gate function for session observation.
3
+ *
4
+ * This function decides whether the current pipeline result warrants
5
+ * emitting an intent observation event to update the InteractionContract.
6
+ *
7
+ * ── Why this gate exists ────────────────────────────────────────────────────
8
+ *
9
+ * Session memory must only track meaningful guided interpretations — not
10
+ * generic inputs, incomplete completions, or unclassified vague noise.
11
+ *
12
+ * Without this gate, the observed counts would be contaminated by:
13
+ * - inputs that short-circuited early (PRV, safety, context)
14
+ * - inputs the bridge never evaluated
15
+ * - execute / clarify / refuse flows that have nothing to learn from
16
+ *
17
+ * ── Hard invariants (must never be violated) ────────────────────────────────
18
+ *
19
+ * 1. No event fires unless result.mode === "guide".
20
+ * Execution, refusal, and clarification flows are excluded.
21
+ *
22
+ * 2. No event fires unless result.guidance?.interpretation is defined.
23
+ * The bridge must have produced a classification.
24
+ *
25
+ * 3. No event fires unless trace.bridgeFired === true.
26
+ * This is the explicit confirmation that the bridge ran and succeeded.
27
+ * If no trace is provided, this condition is not met — no event fires.
28
+ *
29
+ * 4. No event fires for category "unknown".
30
+ * Only the three meaningful categories (visual_color, text_change,
31
+ * config_change) produce observation events.
32
+ *
33
+ * 5. The returned event is advisory only.
34
+ * It must flow through applyInteractionEvent() before any contract
35
+ * is updated. It does not mutate anything itself.
36
+ *
37
+ * 6. This function does not affect and must never be used to infer:
38
+ * - mode, intentState, responseMode
39
+ * - safety verdict, PRV result
40
+ * - completion result, interpretation category/confidence
41
+ */
42
+ import type { DebugTrace } from "../intake/trace.js";
43
+ import type { IntakeResult } from "../intake/types.js";
44
+ import type { InteractionEvent } from "./types.js";
45
+ /**
46
+ * Evaluate whether the pipeline result warrants an intent observation event.
47
+ *
48
+ * Returns an InteractionEvent if all four hard conditions are met:
49
+ * 1. result.mode === "guide"
50
+ * 2. result.guidance.interpretation is defined
51
+ * 3. trace.bridgeFired === true
52
+ * 4. interpretation.category is one of: visual_color, text_change, config_change
53
+ *
54
+ * Returns null in all other cases. Null is a valid, correct response.
55
+ */
56
+ export declare function observeIntentPattern(result: IntakeResult, trace?: DebugTrace): InteractionEvent | null;
57
+ //# sourceMappingURL=observe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../../src/interaction/observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,KAAK,CAAC,EAAE,UAAU,GACjB,gBAAgB,GAAG,IAAI,CA0BzB"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * observeIntentPattern — pure gate function for session observation.
3
+ *
4
+ * This function decides whether the current pipeline result warrants
5
+ * emitting an intent observation event to update the InteractionContract.
6
+ *
7
+ * ── Why this gate exists ────────────────────────────────────────────────────
8
+ *
9
+ * Session memory must only track meaningful guided interpretations — not
10
+ * generic inputs, incomplete completions, or unclassified vague noise.
11
+ *
12
+ * Without this gate, the observed counts would be contaminated by:
13
+ * - inputs that short-circuited early (PRV, safety, context)
14
+ * - inputs the bridge never evaluated
15
+ * - execute / clarify / refuse flows that have nothing to learn from
16
+ *
17
+ * ── Hard invariants (must never be violated) ────────────────────────────────
18
+ *
19
+ * 1. No event fires unless result.mode === "guide".
20
+ * Execution, refusal, and clarification flows are excluded.
21
+ *
22
+ * 2. No event fires unless result.guidance?.interpretation is defined.
23
+ * The bridge must have produced a classification.
24
+ *
25
+ * 3. No event fires unless trace.bridgeFired === true.
26
+ * This is the explicit confirmation that the bridge ran and succeeded.
27
+ * If no trace is provided, this condition is not met — no event fires.
28
+ *
29
+ * 4. No event fires for category "unknown".
30
+ * Only the three meaningful categories (visual_color, text_change,
31
+ * config_change) produce observation events.
32
+ *
33
+ * 5. The returned event is advisory only.
34
+ * It must flow through applyInteractionEvent() before any contract
35
+ * is updated. It does not mutate anything itself.
36
+ *
37
+ * 6. This function does not affect and must never be used to infer:
38
+ * - mode, intentState, responseMode
39
+ * - safety verdict, PRV result
40
+ * - completion result, interpretation category/confidence
41
+ */
42
+ /**
43
+ * Evaluate whether the pipeline result warrants an intent observation event.
44
+ *
45
+ * Returns an InteractionEvent if all four hard conditions are met:
46
+ * 1. result.mode === "guide"
47
+ * 2. result.guidance.interpretation is defined
48
+ * 3. trace.bridgeFired === true
49
+ * 4. interpretation.category is one of: visual_color, text_change, config_change
50
+ *
51
+ * Returns null in all other cases. Null is a valid, correct response.
52
+ */
53
+ export function observeIntentPattern(result, trace) {
54
+ // Gate 1: only guide mode produces meaningful observations.
55
+ if (result.mode !== "guide") {
56
+ return null;
57
+ }
58
+ // Gate 2: bridge must have produced an interpretation.
59
+ const interpretation = result.guidance?.interpretation;
60
+ if (interpretation === undefined) {
61
+ return null;
62
+ }
63
+ // Gate 3: explicit trace confirmation that the bridge actually fired.
64
+ // If trace is absent, bridgeFired is unknown — default to safe (no event).
65
+ if (trace?.bridgeFired !== true) {
66
+ return null;
67
+ }
68
+ // Gate 4: map meaningful categories to observation events.
69
+ // "unknown" category is excluded — it carries no useful session signal.
70
+ switch (interpretation.category) {
71
+ case "visual_color": return { type: "color_intent_observed" };
72
+ case "text_change": return { type: "text_intent_observed" };
73
+ case "config_change": return { type: "config_intent_observed" };
74
+ default: return null;
75
+ }
76
+ }
77
+ //# sourceMappingURL=observe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../../src/interaction/observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAMH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAoB,EACpB,KAAkB;IAElB,4DAA4D;IAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;IACvD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IACtE,2EAA2E;IAC3E,IAAI,KAAK,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2DAA2D;IAC3D,wEAAwE;IACxE,QAAQ,cAAc,CAAC,QAAQ,EAAE,CAAC;QAChC,KAAK,cAAc,CAAC,CAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;QAC/D,KAAK,aAAa,CAAC,CAAG,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;QAC9D,KAAK,eAAe,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;QAChE,OAAO,CAAC,CAAc,OAAO,IAAI,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Interaction Contract selectors.
3
+ *
4
+ * Pure functions that extract policy decisions from a contract.
5
+ * Nothing should read contract fields directly outside this module.
6
+ */
7
+ import type { InteractionContract } from "./types.js";
8
+ export declare function getAmbiguityPolicy(contract: InteractionContract): InteractionContract["ambiguityMode"];
9
+ export declare function getExplanationPolicy(contract: InteractionContract): InteractionContract["explanationMode"];
10
+ export declare function getUnsupportedGuidancePolicy(contract: InteractionContract): InteractionContract["unsupportedGuidanceMode"];
11
+ /**
12
+ * Returns true if ambiguity should be treated conservatively
13
+ * (i.e., always ask rather than guess).
14
+ */
15
+ export declare function isConservativeAmbiguityMode(contract: InteractionContract): boolean;
16
+ //# sourceMappingURL=selectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/interaction/selectors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,mBAAmB,GAC5B,mBAAmB,CAAC,eAAe,CAAC,CAEtC;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,mBAAmB,GAC5B,mBAAmB,CAAC,iBAAiB,CAAC,CAExC;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,mBAAmB,GAC5B,mBAAmB,CAAC,yBAAyB,CAAC,CAEhD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAElF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Interaction Contract selectors.
3
+ *
4
+ * Pure functions that extract policy decisions from a contract.
5
+ * Nothing should read contract fields directly outside this module.
6
+ */
7
+ export function getAmbiguityPolicy(contract) {
8
+ return contract.ambiguityMode;
9
+ }
10
+ export function getExplanationPolicy(contract) {
11
+ return contract.explanationMode;
12
+ }
13
+ export function getUnsupportedGuidancePolicy(contract) {
14
+ return contract.unsupportedGuidanceMode;
15
+ }
16
+ /**
17
+ * Returns true if ambiguity should be treated conservatively
18
+ * (i.e., always ask rather than guess).
19
+ */
20
+ export function isConservativeAmbiguityMode(contract) {
21
+ return contract.ambiguityMode === "conservative";
22
+ }
23
+ //# sourceMappingURL=selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../src/interaction/selectors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,UAAU,kBAAkB,CAChC,QAA6B;IAE7B,OAAO,QAAQ,CAAC,aAAa,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAA6B;IAE7B,OAAO,QAAQ,CAAC,eAAe,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAA6B;IAE7B,OAAO,QAAQ,CAAC,uBAAuB,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAA6B;IACvE,OAAO,QAAQ,CAAC,aAAa,KAAK,cAAc,CAAC;AACnD,CAAC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Interaction Contract types.
3
+ *
4
+ * The InteractionContract is a lightweight, immutable record that captures
5
+ * how a subject (user/session) interacts with UseSteady.
6
+ *
7
+ * It is:
8
+ * - Deterministic: same events produce same transitions
9
+ * - Pure: no I/O, no side effects in updater
10
+ * - Not a profile: no personal data, no identity tracking
11
+ * - Not persistent: in-memory only in this phase
12
+ *
13
+ * The source field tracks confidence:
14
+ * - "default" → never adjusted
15
+ * - "observed" → adjusted from behavioral signals
16
+ * - "user_confirmed" → explicitly set by user action
17
+ *
18
+ * ── observedIntentPatterns (advisory session signal) ─────────────────────────
19
+ *
20
+ * Records how many times each intent category was seen in this session.
21
+ * These counts are produced only when the Intent Interpretation Bridge
22
+ * fired AND produced a classification (bridgeFired: true in DebugTrace).
23
+ *
24
+ * CONTRACTS (non-negotiable, must not be violated):
25
+ *
26
+ * 1. observedIntentPatterns is advisory only.
27
+ * It records what was observed. It adapts nothing automatically.
28
+ *
29
+ * 2. It may only ever affect (in Phase B2, not before):
30
+ * - guidance ordering
31
+ * - guidance emphasis
32
+ * - example ordering
33
+ *
34
+ * 3. It must NEVER affect:
35
+ * - PRV result
36
+ * - Safety Gate verdict
37
+ * - Context Alignment result
38
+ * - Disambiguation result
39
+ * - Completion result
40
+ * - Response mode / intentState
41
+ * - Interpretation category or confidence
42
+ *
43
+ * 4. No observation event may fire unless bridgeFired === true in the trace.
44
+ * This ensures counts track meaningful guided interpretations only —
45
+ * not generic noise, vague inputs, or incomplete completions.
46
+ */
47
+ export type ObservedIntentPatterns = {
48
+ /**
49
+ * Number of times visual_color was the classified intent category
50
+ * in a guided_recovery flow where bridgeFired === true.
51
+ */
52
+ readonly visual_color: number;
53
+ /**
54
+ * Number of times text_change was the classified intent category
55
+ * in a guided_recovery flow where bridgeFired === true.
56
+ */
57
+ readonly text_change: number;
58
+ /**
59
+ * Number of times config_change was the classified intent category
60
+ * in a guided_recovery flow where bridgeFired === true.
61
+ */
62
+ readonly config_change: number;
63
+ };
64
+ export type InteractionContract = {
65
+ readonly version: 1;
66
+ readonly subjectId: string;
67
+ readonly ambiguityMode: "conservative" | "balanced" | "fast";
68
+ readonly explanationMode: "plain_first" | "technical_first" | "mixed";
69
+ readonly unsupportedGuidanceMode: "syntax_first" | "examples_first" | "stepwise";
70
+ readonly updatedAt: string;
71
+ readonly source: "default" | "user_confirmed" | "observed";
72
+ /**
73
+ * Advisory session signal — see contracts above.
74
+ * All counts default to 0. Incremented by observation events only.
75
+ * Phase B2 (not yet built) will read these to order guidance.
76
+ */
77
+ readonly observedIntentPatterns: ObservedIntentPatterns;
78
+ };
79
+ /**
80
+ * Events that may update the contract.
81
+ *
82
+ * Events are behavioral observations, not explicit user preferences.
83
+ * Only high-signal, low-ambiguity events are defined.
84
+ *
85
+ * ── Observation events (Phase B1) ────────────────────────────────────────────
86
+ *
87
+ * color_intent_observed, text_intent_observed, config_intent_observed
88
+ * → Fire only when: mode === "guide" AND guidance.interpretation exists
89
+ * AND trace.bridgeFired === true.
90
+ * → Increment the corresponding observedIntentPatterns count.
91
+ * → See observeIntentPattern() in interaction/observe.ts for the gating logic.
92
+ */
93
+ export type InteractionEvent = {
94
+ readonly type: "misinterpretation_corrected";
95
+ } | {
96
+ readonly type: "unsupported_recovered";
97
+ readonly recoveryStyle: "syntax_hint" | "example_used" | "stepwise_followed";
98
+ } | {
99
+ readonly type: "color_intent_observed";
100
+ } | {
101
+ readonly type: "text_intent_observed";
102
+ } | {
103
+ readonly type: "config_intent_observed";
104
+ };
105
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAG,MAAM,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAI,MAAM,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7D,QAAQ,CAAC,eAAe,EAAE,aAAa,GAAG,iBAAiB,GAAG,OAAO,CAAC;IACtE,QAAQ,CAAC,uBAAuB,EAAE,cAAc,GAAG,gBAAgB,GAAG,UAAU,CAAC;IACjF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAE3D;;;;OAIG;IACH,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;CACzD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,cAAc,GAAG,mBAAmB,CAAA;CAAE,GACxH;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAA;CAAE,GAC1C;IAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;CAAE,GACzC;IAAE,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAA;CAAE,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Interaction Contract types.
3
+ *
4
+ * The InteractionContract is a lightweight, immutable record that captures
5
+ * how a subject (user/session) interacts with UseSteady.
6
+ *
7
+ * It is:
8
+ * - Deterministic: same events produce same transitions
9
+ * - Pure: no I/O, no side effects in updater
10
+ * - Not a profile: no personal data, no identity tracking
11
+ * - Not persistent: in-memory only in this phase
12
+ *
13
+ * The source field tracks confidence:
14
+ * - "default" → never adjusted
15
+ * - "observed" → adjusted from behavioral signals
16
+ * - "user_confirmed" → explicitly set by user action
17
+ *
18
+ * ── observedIntentPatterns (advisory session signal) ─────────────────────────
19
+ *
20
+ * Records how many times each intent category was seen in this session.
21
+ * These counts are produced only when the Intent Interpretation Bridge
22
+ * fired AND produced a classification (bridgeFired: true in DebugTrace).
23
+ *
24
+ * CONTRACTS (non-negotiable, must not be violated):
25
+ *
26
+ * 1. observedIntentPatterns is advisory only.
27
+ * It records what was observed. It adapts nothing automatically.
28
+ *
29
+ * 2. It may only ever affect (in Phase B2, not before):
30
+ * - guidance ordering
31
+ * - guidance emphasis
32
+ * - example ordering
33
+ *
34
+ * 3. It must NEVER affect:
35
+ * - PRV result
36
+ * - Safety Gate verdict
37
+ * - Context Alignment result
38
+ * - Disambiguation result
39
+ * - Completion result
40
+ * - Response mode / intentState
41
+ * - Interpretation category or confidence
42
+ *
43
+ * 4. No observation event may fire unless bridgeFired === true in the trace.
44
+ * This ensures counts track meaningful guided interpretations only —
45
+ * not generic noise, vague inputs, or incomplete completions.
46
+ */
47
+ export {};
48
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Interaction Contract updater — pure function.
3
+ *
4
+ * applyInteractionEvent(contract, event) → nextContract
5
+ *
6
+ * Rules:
7
+ * - Never mutates. Returns a new contract object.
8
+ * - Transitions are deterministic: same event always produces same delta.
9
+ * - Source becomes "observed" after any event-driven update.
10
+ * - updatedAt is set by the caller via timestamp argument (keeps function pure).
11
+ *
12
+ * ── Observation events (visual_color, text_change, config_change) ─────────────
13
+ *
14
+ * These increment the corresponding observedIntentPatterns count.
15
+ * All other contract fields are left unchanged.
16
+ *
17
+ * ADVISORY ONLY — see InteractionContract type for the full contract.
18
+ * These counts may never influence mode, safety, completion, or interpretation.
19
+ */
20
+ import type { InteractionContract, InteractionEvent } from "./types.js";
21
+ export declare function applyInteractionEvent(contract: InteractionContract, event: InteractionEvent, updatedAt?: string): InteractionContract;
22
+ //# sourceMappingURL=updater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../../src/interaction/updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExE,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,gBAAgB,EACvB,SAAS,GAAE,MAAiC,GAC3C,mBAAmB,CA0DrB"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Interaction Contract updater — pure function.
3
+ *
4
+ * applyInteractionEvent(contract, event) → nextContract
5
+ *
6
+ * Rules:
7
+ * - Never mutates. Returns a new contract object.
8
+ * - Transitions are deterministic: same event always produces same delta.
9
+ * - Source becomes "observed" after any event-driven update.
10
+ * - updatedAt is set by the caller via timestamp argument (keeps function pure).
11
+ *
12
+ * ── Observation events (visual_color, text_change, config_change) ─────────────
13
+ *
14
+ * These increment the corresponding observedIntentPatterns count.
15
+ * All other contract fields are left unchanged.
16
+ *
17
+ * ADVISORY ONLY — see InteractionContract type for the full contract.
18
+ * These counts may never influence mode, safety, completion, or interpretation.
19
+ */
20
+ export function applyInteractionEvent(contract, event, updatedAt = new Date().toISOString()) {
21
+ switch (event.type) {
22
+ case "misinterpretation_corrected":
23
+ // User corrected a misinterpretation → be more conservative with ambiguity.
24
+ return {
25
+ ...contract,
26
+ ambiguityMode: trendConservative(contract.ambiguityMode),
27
+ source: "observed",
28
+ updatedAt,
29
+ };
30
+ case "unsupported_recovered":
31
+ // User successfully recovered from unsupported input → note which style helped.
32
+ return {
33
+ ...contract,
34
+ unsupportedGuidanceMode: recoveryStyleToMode(event.recoveryStyle),
35
+ source: "observed",
36
+ updatedAt,
37
+ };
38
+ // ── Observation events ──────────────────────────────────────────────────
39
+ // Increment one observed intent pattern count. No other field changes.
40
+ // These events are produced only by observeIntentPattern() after verifying
41
+ // that bridgeFired === true in the debug trace.
42
+ case "color_intent_observed":
43
+ return {
44
+ ...contract,
45
+ observedIntentPatterns: {
46
+ ...contract.observedIntentPatterns,
47
+ visual_color: contract.observedIntentPatterns.visual_color + 1,
48
+ },
49
+ source: "observed",
50
+ updatedAt,
51
+ };
52
+ case "text_intent_observed":
53
+ return {
54
+ ...contract,
55
+ observedIntentPatterns: {
56
+ ...contract.observedIntentPatterns,
57
+ text_change: contract.observedIntentPatterns.text_change + 1,
58
+ },
59
+ source: "observed",
60
+ updatedAt,
61
+ };
62
+ case "config_intent_observed":
63
+ return {
64
+ ...contract,
65
+ observedIntentPatterns: {
66
+ ...contract.observedIntentPatterns,
67
+ config_change: contract.observedIntentPatterns.config_change + 1,
68
+ },
69
+ source: "observed",
70
+ updatedAt,
71
+ };
72
+ }
73
+ }
74
+ // ─── Transition helpers ───────────────────────────────────────────────────────
75
+ function trendConservative(current) {
76
+ if (current === "fast")
77
+ return "balanced";
78
+ return "conservative";
79
+ }
80
+ function recoveryStyleToMode(style) {
81
+ switch (style) {
82
+ case "syntax_hint": return "syntax_first";
83
+ case "example_used": return "examples_first";
84
+ case "stepwise_followed": return "stepwise";
85
+ }
86
+ }
87
+ //# sourceMappingURL=updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updater.js","sourceRoot":"","sources":["../../../src/interaction/updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,MAAM,UAAU,qBAAqB,CACnC,QAA6B,EAC7B,KAAuB,EACvB,YAAoB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAE5C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,6BAA6B;YAChC,4EAA4E;YAC5E,OAAO;gBACL,GAAG,QAAQ;gBACX,aAAa,EAAE,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACxD,MAAM,EAAS,UAAU;gBACzB,SAAS;aACV,CAAC;QAEJ,KAAK,uBAAuB;YAC1B,gFAAgF;YAChF,OAAO;gBACL,GAAG,QAAQ;gBACX,uBAAuB,EAAE,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC;gBACjE,MAAM,EAAmB,UAAU;gBACnC,SAAS;aACV,CAAC;QAEJ,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,gDAAgD;QAEhD,KAAK,uBAAuB;YAC1B,OAAO;gBACL,GAAG,QAAQ;gBACX,sBAAsB,EAAE;oBACtB,GAAG,QAAQ,CAAC,sBAAsB;oBAClC,YAAY,EAAE,QAAQ,CAAC,sBAAsB,CAAC,YAAY,GAAG,CAAC;iBAC/D;gBACD,MAAM,EAAK,UAAU;gBACrB,SAAS;aACV,CAAC;QAEJ,KAAK,sBAAsB;YACzB,OAAO;gBACL,GAAG,QAAQ;gBACX,sBAAsB,EAAE;oBACtB,GAAG,QAAQ,CAAC,sBAAsB;oBAClC,WAAW,EAAE,QAAQ,CAAC,sBAAsB,CAAC,WAAW,GAAG,CAAC;iBAC7D;gBACD,MAAM,EAAK,UAAU;gBACrB,SAAS;aACV,CAAC;QAEJ,KAAK,wBAAwB;YAC3B,OAAO;gBACL,GAAG,QAAQ;gBACX,sBAAsB,EAAE;oBACtB,GAAG,QAAQ,CAAC,sBAAsB;oBAClC,aAAa,EAAE,QAAQ,CAAC,sBAAsB,CAAC,aAAa,GAAG,CAAC;iBACjE;gBACD,MAAM,EAAK,UAAU;gBACrB,SAAS;aACV,CAAC;IACN,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,iBAAiB,CACxB,OAA6C;IAE7C,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IAC1C,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAA2D;IAE3D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,aAAa,CAAC,CAAO,OAAO,cAAc,CAAC;QAChD,KAAK,cAAc,CAAC,CAAM,OAAO,gBAAgB,CAAC;QAClD,KAAK,mBAAmB,CAAC,CAAC,OAAO,UAAU,CAAC;IAC9C,CAAC;AACH,CAAC"}