opensquid 0.5.432 → 0.5.447

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 (440) hide show
  1. package/README.md +1 -0
  2. package/dist/functions/arm_scope.d.ts +27 -0
  3. package/dist/functions/arm_scope.d.ts.map +1 -0
  4. package/dist/functions/arm_scope.js +52 -0
  5. package/dist/functions/arm_scope.js.map +1 -0
  6. package/dist/functions/event.d.ts.map +1 -1
  7. package/dist/functions/event.js +18 -2
  8. package/dist/functions/event.js.map +1 -1
  9. package/dist/functions/index.d.ts +4 -0
  10. package/dist/functions/index.d.ts.map +1 -1
  11. package/dist/functions/index.js +4 -0
  12. package/dist/functions/index.js.map +1 -1
  13. package/dist/functions/inject_context.d.ts +18 -0
  14. package/dist/functions/inject_context.d.ts.map +1 -0
  15. package/dist/functions/inject_context.js +16 -0
  16. package/dist/functions/inject_context.js.map +1 -0
  17. package/dist/functions/procedure_pre_inject.d.ts +23 -0
  18. package/dist/functions/procedure_pre_inject.d.ts.map +1 -0
  19. package/dist/functions/procedure_pre_inject.js +49 -0
  20. package/dist/functions/procedure_pre_inject.js.map +1 -0
  21. package/dist/functions/registry.d.ts +6 -0
  22. package/dist/functions/registry.d.ts.map +1 -1
  23. package/dist/functions/registry.js.map +1 -1
  24. package/dist/functions/rubric_pre_inject.d.ts.map +1 -1
  25. package/dist/functions/rubric_pre_inject.js +2 -1
  26. package/dist/functions/rubric_pre_inject.js.map +1 -1
  27. package/dist/functions/set_request_type.d.ts +11 -0
  28. package/dist/functions/set_request_type.d.ts.map +1 -0
  29. package/dist/functions/set_request_type.js +34 -0
  30. package/dist/functions/set_request_type.js.map +1 -0
  31. package/dist/functions/shell_parse.d.ts +1 -0
  32. package/dist/functions/shell_parse.d.ts.map +1 -1
  33. package/dist/functions/shell_parse.js +22 -4
  34. package/dist/functions/shell_parse.js.map +1 -1
  35. package/dist/packs/loader.d.ts.map +1 -1
  36. package/dist/packs/loader.js +26 -0
  37. package/dist/packs/loader.js.map +1 -1
  38. package/dist/runtime/bootstrap.d.ts.map +1 -1
  39. package/dist/runtime/bootstrap.js +6 -0
  40. package/dist/runtime/bootstrap.js.map +1 -1
  41. package/dist/runtime/fsm_state.d.ts +6 -0
  42. package/dist/runtime/fsm_state.d.ts.map +1 -1
  43. package/dist/runtime/fsm_state.js +14 -0
  44. package/dist/runtime/fsm_state.js.map +1 -1
  45. package/dist/runtime/handoff/render.d.ts +5 -4
  46. package/dist/runtime/handoff/render.d.ts.map +1 -1
  47. package/dist/runtime/handoff/render.js +7 -7
  48. package/dist/runtime/handoff/render.js.map +1 -1
  49. package/dist/runtime/handoff/stranded_scoping.d.ts +21 -0
  50. package/dist/runtime/handoff/stranded_scoping.d.ts.map +1 -0
  51. package/dist/runtime/handoff/stranded_scoping.js +39 -0
  52. package/dist/runtime/handoff/stranded_scoping.js.map +1 -0
  53. package/dist/runtime/hooks/active_task_mirror.js +0 -0
  54. package/dist/runtime/hooks/apply_patch.js +0 -0
  55. package/dist/runtime/hooks/dispatch.d.ts.map +1 -1
  56. package/dist/runtime/hooks/dispatch.js +3 -0
  57. package/dist/runtime/hooks/dispatch.js.map +1 -1
  58. package/dist/runtime/hooks/hook_output.js +0 -0
  59. package/dist/runtime/hooks/memory_reconcile.js +0 -0
  60. package/dist/runtime/hooks/new_project_detect.js +0 -0
  61. package/dist/runtime/hooks/profession_resolver.js +0 -0
  62. package/dist/runtime/hooks/scope_intent.js +0 -0
  63. package/dist/runtime/hooks/session-start.js +17 -0
  64. package/dist/runtime/hooks/session-start.js.map +1 -1
  65. package/dist/runtime/hooks/session_id.js +0 -0
  66. package/dist/runtime/hooks/session_liveness.js +0 -0
  67. package/dist/runtime/hooks/stop_drive.js +0 -0
  68. package/dist/runtime/hooks/stop_stream.js +0 -0
  69. package/dist/runtime/hooks/subagent_guard.js +0 -0
  70. package/dist/runtime/hooks/transcript.js +0 -0
  71. package/dist/runtime/hooks/transcript_tasks.js +0 -0
  72. package/dist/runtime/hooks/user-prompt-submit.d.ts.map +1 -1
  73. package/dist/runtime/hooks/user-prompt-submit.js +22 -1
  74. package/dist/runtime/hooks/user-prompt-submit.js.map +1 -1
  75. package/dist/runtime/ralph/orchestrator.d.ts.map +1 -1
  76. package/dist/runtime/ralph/orchestrator.js +2 -1
  77. package/dist/runtime/ralph/orchestrator.js.map +1 -1
  78. package/dist/runtime/request_type.d.ts +33 -0
  79. package/dist/runtime/request_type.d.ts.map +1 -0
  80. package/dist/runtime/request_type.js +38 -0
  81. package/dist/runtime/request_type.js.map +1 -0
  82. package/dist/runtime/session_state.d.ts +11 -0
  83. package/dist/runtime/session_state.d.ts.map +1 -1
  84. package/dist/runtime/session_state.js +30 -0
  85. package/dist/runtime/session_state.js.map +1 -1
  86. package/dist/runtime/types.d.ts +5 -0
  87. package/dist/runtime/types.d.ts.map +1 -1
  88. package/dist/runtime/types.js +3 -0
  89. package/dist/runtime/types.js.map +1 -1
  90. package/dist/setup/cli/limits_state.d.ts.map +1 -1
  91. package/dist/setup/cli/limits_state.js +6 -40
  92. package/dist/setup/cli/limits_state.js.map +1 -1
  93. package/dist/setup/cli/pack_walk.d.ts +32 -0
  94. package/dist/setup/cli/pack_walk.d.ts.map +1 -0
  95. package/dist/setup/cli/pack_walk.js +76 -0
  96. package/dist/setup/cli/pack_walk.js.map +1 -0
  97. package/dist/setup/cli/permissions_state.d.ts.map +1 -1
  98. package/dist/setup/cli/permissions_state.js +6 -37
  99. package/dist/setup/cli/permissions_state.js.map +1 -1
  100. package/dist/setup/cli/triggers_state.d.ts.map +1 -1
  101. package/dist/setup/cli/triggers_state.js +3 -29
  102. package/dist/setup/cli/triggers_state.js.map +1 -1
  103. package/dist/workgraph/events.d.ts.map +1 -1
  104. package/dist/workgraph/events.js +10 -0
  105. package/dist/workgraph/events.js.map +1 -1
  106. package/dist/workgraph/store.d.ts.map +1 -1
  107. package/dist/workgraph/store.js +5 -0
  108. package/dist/workgraph/store.js.map +1 -1
  109. package/dist/workgraph/types.d.ts +2 -1
  110. package/dist/workgraph/types.d.ts.map +1 -1
  111. package/docs/ARCHITECTURE.md +268 -0
  112. package/docs/pack-runtime.md +26 -10
  113. package/package.json +5 -3
  114. package/packs/builtin/coding-flow/procedure.md +43 -0
  115. package/packs/builtin/coding-flow/skills/entry-and-handoffs/skill.yaml +49 -6
  116. package/packs/builtin/coding-flow/skills/pause-stop-guard/skill.yaml +11 -1
  117. package/packs/builtin/default-discipline/manifest.yaml +15 -6
  118. package/packs/builtin/pack-architect/skills/skill-yaml-author-walkthrough/skill.yaml +8 -0
  119. package/dist/anti-drift/evaluator.d.ts +0 -88
  120. package/dist/anti-drift/evaluator.d.ts.map +0 -1
  121. package/dist/anti-drift/evaluator.js +0 -417
  122. package/dist/anti-drift/evaluator.js.map +0 -1
  123. package/dist/anti-drift/evaluator.test.js +0 -78
  124. package/dist/anti-drift/rules.d.ts +0 -80
  125. package/dist/anti-drift/rules.d.ts.map +0 -1
  126. package/dist/anti-drift/rules.js +0 -368
  127. package/dist/anti-drift/rules.js.map +0 -1
  128. package/dist/anti-drift/rules.test.js +0 -213
  129. package/dist/anti-drift/state.d.ts +0 -107
  130. package/dist/anti-drift/state.d.ts.map +0 -1
  131. package/dist/anti-drift/state.js +0 -177
  132. package/dist/anti-drift/state.js.map +0 -1
  133. package/dist/anti-drift/state.test.js +0 -120
  134. package/dist/chat/adapters/discord.d.ts +0 -41
  135. package/dist/chat/adapters/discord.d.ts.map +0 -1
  136. package/dist/chat/adapters/discord.js +0 -176
  137. package/dist/chat/adapters/discord.js.map +0 -1
  138. package/dist/chat/adapters/discord.test.js +0 -25
  139. package/dist/chat/adapters/slack.d.ts +0 -43
  140. package/dist/chat/adapters/slack.d.ts.map +0 -1
  141. package/dist/chat/adapters/slack.js +0 -172
  142. package/dist/chat/adapters/slack.js.map +0 -1
  143. package/dist/chat/adapters/slack.test.js +0 -30
  144. package/dist/chat/adapters/telegram.d.ts +0 -148
  145. package/dist/chat/adapters/telegram.d.ts.map +0 -1
  146. package/dist/chat/adapters/telegram.js +0 -498
  147. package/dist/chat/adapters/telegram.js.map +0 -1
  148. package/dist/chat/adapters/telegram.test.js +0 -94
  149. package/dist/chat/config.d.ts +0 -98
  150. package/dist/chat/config.d.ts.map +0 -1
  151. package/dist/chat/config.js +0 -185
  152. package/dist/chat/config.js.map +0 -1
  153. package/dist/chat/daemon/active-project.d.ts +0 -17
  154. package/dist/chat/daemon/active-project.d.ts.map +0 -1
  155. package/dist/chat/daemon/active-project.js +0 -23
  156. package/dist/chat/daemon/active-project.js.map +0 -1
  157. package/dist/chat/daemon/autospawn.d.ts +0 -40
  158. package/dist/chat/daemon/autospawn.d.ts.map +0 -1
  159. package/dist/chat/daemon/autospawn.js +0 -129
  160. package/dist/chat/daemon/autospawn.js.map +0 -1
  161. package/dist/chat/daemon/autospawn.test.js +0 -112
  162. package/dist/chat/daemon/cli.d.ts +0 -18
  163. package/dist/chat/daemon/cli.d.ts.map +0 -1
  164. package/dist/chat/daemon/cli.js +0 -71
  165. package/dist/chat/daemon/cli.js.map +0 -1
  166. package/dist/chat/daemon/collisions.js +0 -384
  167. package/dist/chat/daemon/health-check.d.ts +0 -69
  168. package/dist/chat/daemon/health-check.d.ts.map +0 -1
  169. package/dist/chat/daemon/health-check.js +0 -112
  170. package/dist/chat/daemon/health-check.js.map +0 -1
  171. package/dist/chat/daemon/inbox-read.d.ts +0 -35
  172. package/dist/chat/daemon/inbox-read.d.ts.map +0 -1
  173. package/dist/chat/daemon/inbox-read.js +0 -75
  174. package/dist/chat/daemon/inbox-read.js.map +0 -1
  175. package/dist/chat/daemon/inbox-read.test.js +0 -97
  176. package/dist/chat/daemon/inbox.d.ts +0 -63
  177. package/dist/chat/daemon/inbox.d.ts.map +0 -1
  178. package/dist/chat/daemon/inbox.js +0 -56
  179. package/dist/chat/daemon/inbox.js.map +0 -1
  180. package/dist/chat/daemon/inbox.test.js +0 -110
  181. package/dist/chat/daemon/lifecycle.d.ts +0 -71
  182. package/dist/chat/daemon/lifecycle.d.ts.map +0 -1
  183. package/dist/chat/daemon/lifecycle.js +0 -221
  184. package/dist/chat/daemon/lifecycle.js.map +0 -1
  185. package/dist/chat/daemon/lifecycle.test.js +0 -163
  186. package/dist/chat/daemon/protocol.d.ts +0 -107
  187. package/dist/chat/daemon/protocol.d.ts.map +0 -1
  188. package/dist/chat/daemon/protocol.js +0 -54
  189. package/dist/chat/daemon/protocol.js.map +0 -1
  190. package/dist/chat/daemon/routing.d.ts +0 -140
  191. package/dist/chat/daemon/routing.d.ts.map +0 -1
  192. package/dist/chat/daemon/routing.js +0 -198
  193. package/dist/chat/daemon/routing.js.map +0 -1
  194. package/dist/chat/daemon/routing.test.js +0 -259
  195. package/dist/chat/daemon/rpc-client.d.ts +0 -45
  196. package/dist/chat/daemon/rpc-client.d.ts.map +0 -1
  197. package/dist/chat/daemon/rpc-client.js +0 -133
  198. package/dist/chat/daemon/rpc-client.js.map +0 -1
  199. package/dist/chat/daemon/rpc-server.d.ts +0 -39
  200. package/dist/chat/daemon/rpc-server.d.ts.map +0 -1
  201. package/dist/chat/daemon/rpc-server.js +0 -385
  202. package/dist/chat/daemon/rpc-server.js.map +0 -1
  203. package/dist/chat/daemon/rpc.test.js +0 -177
  204. package/dist/chat/daemon/subscribers.js +0 -257
  205. package/dist/chat/daemon/worker.d.ts +0 -27
  206. package/dist/chat/daemon/worker.d.ts.map +0 -1
  207. package/dist/chat/daemon/worker.js +0 -313
  208. package/dist/chat/daemon/worker.js.map +0 -1
  209. package/dist/chat/daemon/workspace-topic.js +0 -324
  210. package/dist/chat/env-token.d.ts +0 -60
  211. package/dist/chat/env-token.d.ts.map +0 -1
  212. package/dist/chat/env-token.js +0 -137
  213. package/dist/chat/env-token.js.map +0 -1
  214. package/dist/chat/env-token.test.js +0 -160
  215. package/dist/chat/factory.d.ts +0 -30
  216. package/dist/chat/factory.d.ts.map +0 -1
  217. package/dist/chat/factory.js +0 -50
  218. package/dist/chat/factory.js.map +0 -1
  219. package/dist/chat/factory.test.js +0 -55
  220. package/dist/chat/gateway.d.ts +0 -176
  221. package/dist/chat/gateway.d.ts.map +0 -1
  222. package/dist/chat/gateway.js +0 -146
  223. package/dist/chat/gateway.js.map +0 -1
  224. package/dist/chat/gateway.test.js +0 -192
  225. package/dist/claude-md.d.ts +0 -39
  226. package/dist/claude-md.d.ts.map +0 -1
  227. package/dist/claude-md.js +0 -113
  228. package/dist/claude-md.js.map +0 -1
  229. package/dist/claude-md.test.js +0 -91
  230. package/dist/codex/activate.d.ts +0 -66
  231. package/dist/codex/activate.d.ts.map +0 -1
  232. package/dist/codex/activate.js +0 -329
  233. package/dist/codex/activate.js.map +0 -1
  234. package/dist/codex/activate.test.js +0 -229
  235. package/dist/codex/bundled-default/bundled-default.test.js +0 -161
  236. package/dist/codex/cli-publish.test.js +0 -133
  237. package/dist/codex/cli.d.ts +0 -35
  238. package/dist/codex/cli.d.ts.map +0 -1
  239. package/dist/codex/cli.js +0 -554
  240. package/dist/codex/cli.js.map +0 -1
  241. package/dist/codex/cli.test.js +0 -277
  242. package/dist/codex/import-skill-md.d.ts +0 -53
  243. package/dist/codex/import-skill-md.d.ts.map +0 -1
  244. package/dist/codex/import-skill-md.js +0 -236
  245. package/dist/codex/import-skill-md.js.map +0 -1
  246. package/dist/codex/import-skill-md.test.js +0 -225
  247. package/dist/codex/loader.d.ts +0 -27
  248. package/dist/codex/loader.d.ts.map +0 -1
  249. package/dist/codex/loader.js +0 -86
  250. package/dist/codex/loader.js.map +0 -1
  251. package/dist/codex/loader.test.js +0 -75
  252. package/dist/codex/parse.d.ts +0 -28
  253. package/dist/codex/parse.d.ts.map +0 -1
  254. package/dist/codex/parse.js +0 -309
  255. package/dist/codex/parse.js.map +0 -1
  256. package/dist/codex/parse.test.js +0 -241
  257. package/dist/codex/store.d.ts +0 -87
  258. package/dist/codex/store.d.ts.map +0 -1
  259. package/dist/codex/store.js +0 -205
  260. package/dist/codex/store.js.map +0 -1
  261. package/dist/codex/store.test.js +0 -242
  262. package/dist/codex/types.d.ts +0 -398
  263. package/dist/codex/types.d.ts.map +0 -1
  264. package/dist/codex/types.js +0 -21
  265. package/dist/codex/types.js.map +0 -1
  266. package/dist/config.d.ts +0 -53
  267. package/dist/config.d.ts.map +0 -1
  268. package/dist/config.js +0 -202
  269. package/dist/config.js.map +0 -1
  270. package/dist/config.test.js +0 -117
  271. package/dist/engine/cli.d.ts +0 -14
  272. package/dist/engine/cli.d.ts.map +0 -1
  273. package/dist/engine/cli.js +0 -171
  274. package/dist/engine/cli.js.map +0 -1
  275. package/dist/engine/client.d.ts +0 -219
  276. package/dist/engine/client.d.ts.map +0 -1
  277. package/dist/engine/client.js +0 -312
  278. package/dist/engine/client.js.map +0 -1
  279. package/dist/engine/config.d.ts +0 -62
  280. package/dist/engine/config.d.ts.map +0 -1
  281. package/dist/engine/config.js +0 -223
  282. package/dist/engine/config.js.map +0 -1
  283. package/dist/engine/index.d.ts +0 -17
  284. package/dist/engine/index.d.ts.map +0 -1
  285. package/dist/engine/index.js +0 -16
  286. package/dist/engine/index.js.map +0 -1
  287. package/dist/engine/resolver.d.ts +0 -62
  288. package/dist/engine/resolver.d.ts.map +0 -1
  289. package/dist/engine/resolver.js +0 -103
  290. package/dist/engine/resolver.js.map +0 -1
  291. package/dist/engine/singleton.d.ts +0 -95
  292. package/dist/engine/singleton.d.ts.map +0 -1
  293. package/dist/engine/singleton.js +0 -325
  294. package/dist/engine/singleton.js.map +0 -1
  295. package/dist/engine/types.d.ts +0 -402
  296. package/dist/engine/types.d.ts.map +0 -1
  297. package/dist/engine/types.js +0 -22
  298. package/dist/engine/types.js.map +0 -1
  299. package/dist/engine-binary-resolver.js +0 -110
  300. package/dist/engine-binary-resolver.test.js +0 -61
  301. package/dist/engine-cli.js +0 -60
  302. package/dist/engine-client.js +0 -301
  303. package/dist/engine-client.test.js +0 -118
  304. package/dist/functions/chain_state.d.ts +0 -51
  305. package/dist/functions/chain_state.d.ts.map +0 -1
  306. package/dist/functions/chain_state.js +0 -59
  307. package/dist/functions/chain_state.js.map +0 -1
  308. package/dist/hooks/drift-catalog.d.ts +0 -68
  309. package/dist/hooks/drift-catalog.d.ts.map +0 -1
  310. package/dist/hooks/drift-catalog.js +0 -184
  311. package/dist/hooks/drift-catalog.js.map +0 -1
  312. package/dist/hooks/drift-catalog.test.js +0 -154
  313. package/dist/hooks/drift-patterns.d.ts +0 -110
  314. package/dist/hooks/drift-patterns.d.ts.map +0 -1
  315. package/dist/hooks/drift-patterns.js +0 -289
  316. package/dist/hooks/drift-patterns.js.map +0 -1
  317. package/dist/hooks/drift-patterns.test.js +0 -325
  318. package/dist/hooks/engine-vocab-gate.d.ts +0 -108
  319. package/dist/hooks/engine-vocab-gate.d.ts.map +0 -1
  320. package/dist/hooks/engine-vocab-gate.js +0 -225
  321. package/dist/hooks/engine-vocab-gate.js.map +0 -1
  322. package/dist/hooks/engine-vocab-gate.test.js +0 -170
  323. package/dist/hooks/heartbeat.d.ts +0 -107
  324. package/dist/hooks/heartbeat.d.ts.map +0 -1
  325. package/dist/hooks/heartbeat.js +0 -316
  326. package/dist/hooks/heartbeat.js.map +0 -1
  327. package/dist/hooks/heartbeat.test.js +0 -393
  328. package/dist/hooks/honesty-ledger-session-scope.test.js +0 -100
  329. package/dist/hooks/honesty-ledger.d.ts +0 -123
  330. package/dist/hooks/honesty-ledger.d.ts.map +0 -1
  331. package/dist/hooks/honesty-ledger.js +0 -226
  332. package/dist/hooks/honesty-ledger.js.map +0 -1
  333. package/dist/hooks/honesty-ledger.test.js +0 -466
  334. package/dist/hooks/inline-report-check.d.ts +0 -63
  335. package/dist/hooks/inline-report-check.d.ts.map +0 -1
  336. package/dist/hooks/inline-report-check.js +0 -88
  337. package/dist/hooks/inline-report-check.js.map +0 -1
  338. package/dist/hooks/inline-report-check.test.js +0 -96
  339. package/dist/hooks/pre-tool-use.d.ts +0 -62
  340. package/dist/hooks/pre-tool-use.d.ts.map +0 -1
  341. package/dist/hooks/pre-tool-use.js +0 -342
  342. package/dist/hooks/pre-tool-use.js.map +0 -1
  343. package/dist/hooks/pre-tool-use.test.js +0 -134
  344. package/dist/hooks/session-end.d.ts +0 -15
  345. package/dist/hooks/session-end.d.ts.map +0 -1
  346. package/dist/hooks/session-end.js +0 -60
  347. package/dist/hooks/session-end.js.map +0 -1
  348. package/dist/hooks/session-end.test.js +0 -52
  349. package/dist/hooks/stop.d.ts +0 -35
  350. package/dist/hooks/stop.d.ts.map +0 -1
  351. package/dist/hooks/stop.js +0 -136
  352. package/dist/hooks/stop.js.map +0 -1
  353. package/dist/hooks/transcript-active-task.test.js +0 -342
  354. package/dist/hooks/transcript.d.ts +0 -26
  355. package/dist/hooks/transcript.d.ts.map +0 -1
  356. package/dist/hooks/transcript.js +0 -266
  357. package/dist/hooks/transcript.js.map +0 -1
  358. package/dist/hooks/transcript.test.js +0 -103
  359. package/dist/hooks/user-prompt-submit.d.ts +0 -74
  360. package/dist/hooks/user-prompt-submit.d.ts.map +0 -1
  361. package/dist/hooks/user-prompt-submit.js +0 -256
  362. package/dist/hooks/user-prompt-submit.js.map +0 -1
  363. package/dist/hooks/user-prompt-submit.test.js +0 -118
  364. package/dist/hooks/versioning-gate.d.ts +0 -101
  365. package/dist/hooks/versioning-gate.d.ts.map +0 -1
  366. package/dist/hooks/versioning-gate.js +0 -245
  367. package/dist/hooks/versioning-gate.js.map +0 -1
  368. package/dist/hooks/versioning-gate.test.js +0 -368
  369. package/dist/hooks/workflow-gate.d.ts +0 -64
  370. package/dist/hooks/workflow-gate.d.ts.map +0 -1
  371. package/dist/hooks/workflow-gate.js +0 -152
  372. package/dist/hooks/workflow-gate.js.map +0 -1
  373. package/dist/hooks/workflow-gate.test.js +0 -197
  374. package/dist/hooks-cli.d.ts +0 -25
  375. package/dist/hooks-cli.d.ts.map +0 -1
  376. package/dist/hooks-cli.js +0 -286
  377. package/dist/hooks-cli.js.map +0 -1
  378. package/dist/hooks-cli.test.js +0 -148
  379. package/dist/origin.d.ts +0 -16
  380. package/dist/origin.d.ts.map +0 -1
  381. package/dist/origin.js +0 -92
  382. package/dist/origin.js.map +0 -1
  383. package/dist/packs/seed_lessons_ingest.d.ts +0 -30
  384. package/dist/packs/seed_lessons_ingest.d.ts.map +0 -1
  385. package/dist/packs/seed_lessons_ingest.js +0 -107
  386. package/dist/packs/seed_lessons_ingest.js.map +0 -1
  387. package/dist/project-cli.d.ts +0 -7
  388. package/dist/project-cli.d.ts.map +0 -1
  389. package/dist/project-cli.js +0 -145
  390. package/dist/project-cli.js.map +0 -1
  391. package/dist/project.d.ts +0 -127
  392. package/dist/project.d.ts.map +0 -1
  393. package/dist/project.js +0 -281
  394. package/dist/project.js.map +0 -1
  395. package/dist/project.test.js +0 -287
  396. package/dist/rag/backends/loop_engine.d.ts +0 -61
  397. package/dist/rag/backends/loop_engine.d.ts.map +0 -1
  398. package/dist/rag/backends/loop_engine.js +0 -160
  399. package/dist/rag/backends/loop_engine.js.map +0 -1
  400. package/dist/recall.d.ts +0 -82
  401. package/dist/recall.d.ts.map +0 -1
  402. package/dist/recall.js +0 -81
  403. package/dist/recall.js.map +0 -1
  404. package/dist/runtime/agent_bridge/autospawn.d.ts +0 -131
  405. package/dist/runtime/agent_bridge/autospawn.d.ts.map +0 -1
  406. package/dist/runtime/agent_bridge/autospawn.js +0 -251
  407. package/dist/runtime/agent_bridge/autospawn.js.map +0 -1
  408. package/dist/runtime/chain_state.d.ts +0 -124
  409. package/dist/runtime/chain_state.d.ts.map +0 -1
  410. package/dist/runtime/chain_state.js +0 -189
  411. package/dist/runtime/chain_state.js.map +0 -1
  412. package/dist/runtime/hooks/permission_decision.d.ts +0 -34
  413. package/dist/runtime/hooks/permission_decision.d.ts.map +0 -1
  414. package/dist/runtime/hooks/permission_decision.js +0 -39
  415. package/dist/runtime/hooks/permission_decision.js.map +0 -1
  416. package/dist/runtime/workflow_fsm.d.ts +0 -21
  417. package/dist/runtime/workflow_fsm.d.ts.map +0 -1
  418. package/dist/runtime/workflow_fsm.js +0 -25
  419. package/dist/runtime/workflow_fsm.js.map +0 -1
  420. package/dist/runtime/workflow_map.d.ts +0 -26
  421. package/dist/runtime/workflow_map.d.ts.map +0 -1
  422. package/dist/runtime/workflow_map.js +0 -38
  423. package/dist/runtime/workflow_map.js.map +0 -1
  424. package/dist/scope.d.ts +0 -48
  425. package/dist/scope.d.ts.map +0 -1
  426. package/dist/scope.js +0 -111
  427. package/dist/scope.js.map +0 -1
  428. package/dist/setup/cli/topic_create_step.d.ts +0 -84
  429. package/dist/setup/cli/topic_create_step.d.ts.map +0 -1
  430. package/dist/setup/cli/topic_create_step.js +0 -213
  431. package/dist/setup/cli/topic_create_step.js.map +0 -1
  432. package/dist/system-export.d.ts +0 -65
  433. package/dist/system-export.d.ts.map +0 -1
  434. package/dist/system-export.js +0 -194
  435. package/dist/system-export.js.map +0 -1
  436. package/dist/utterance/classifier.d.ts +0 -53
  437. package/dist/utterance/classifier.d.ts.map +0 -1
  438. package/dist/utterance/classifier.js +0 -184
  439. package/dist/utterance/classifier.js.map +0 -1
  440. package/dist/utterance/classifier.test.js +0 -147
@@ -1 +0,0 @@
1
- {"version":3,"file":"topic_create_step.js","sourceRoot":"","sources":["../../../src/setup/cli/topic_create_step.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- /**
2
- * `opensquid export / import` — entire ~/.opensquid/ state bundle.
3
- *
4
- * Used to back up everything the engine writes (codexes, lessons,
5
- * memories with .vec sidecars, hooks state under sessions/, project
6
- * ID cards, engine config) into a single portable archive. Re-import
7
- * on a fresh machine restores identical state.
8
- *
9
- * Format: tar.gz via system `tar` (bsdtar on macOS / Windows 10+,
10
- * GNU tar on Linux — all support `-czf` / `-xzf`). Reasoning: zero
11
- * new dependency, deterministic byte layout, easy to inspect via
12
- * `tar tzf`. Encryption deferred — pass through gpg externally for
13
- * now (`gpg -c <archive>`).
14
- *
15
- * Round-trip semantics:
16
- * - export writes tar.gz containing the entire ~/.opensquid/ tree
17
- * relative to $HOME so paths remain portable across machines
18
- * - import accepts --merge (default — extracts on top of existing
19
- * ~/.opensquid/, last-write-wins per file) or --replace (wipe
20
- * ~/.opensquid/ first then extract). Vector index .vec sidecars
21
- * carry through; engine rehydrates the in-memory HNSW on next
22
- * spawn from those sidecars.
23
- *
24
- * Failure modes:
25
- * - missing tar binary → throw with install-tar hint
26
- * - existing output path → refuse without --force
27
- * - tar exit non-zero → propagate stderr
28
- * - --replace on non-empty ~/.opensquid/ + missing input archive → no
29
- * data loss because we extract to a tmp dir first then atomic rename
30
- */
31
- export declare class SystemExportError extends Error {
32
- readonly hint?: string | undefined;
33
- constructor(message: string, hint?: string | undefined);
34
- }
35
- export interface ExportOptions {
36
- /** Output archive path. Defaults to `./opensquid-<timestamp>.tar.gz`. */
37
- output?: string;
38
- /** Overwrite existing output path. */
39
- force?: boolean;
40
- /** Override the source data root (default: `LOOP_HOME` or `~/.opensquid/`). */
41
- dataRoot?: string;
42
- }
43
- export interface ExportResult {
44
- output: string;
45
- size_bytes: number;
46
- }
47
- export declare function exportSystem(opts?: ExportOptions): Promise<ExportResult>;
48
- export interface ImportOptions {
49
- /** Source archive path. */
50
- input: string;
51
- /**
52
- * `merge` (default): extract on top of existing data root, last-write
53
- * -wins per file. `replace`: wipe data root first then extract.
54
- */
55
- mode?: "merge" | "replace";
56
- /** Override the destination data root. */
57
- dataRoot?: string;
58
- }
59
- export interface ImportResult {
60
- input: string;
61
- data_root: string;
62
- mode: "merge" | "replace";
63
- }
64
- export declare function importSystem(opts: ImportOptions): Promise<ImportResult>;
65
- //# sourceMappingURL=system-export.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-export.d.ts","sourceRoot":"","sources":["../src.legacy/system-export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAOH,qBAAa,iBAAkB,SAAQ,KAAK;aAGxB,IAAI,CAAC,EAAE,MAAM;gBAD7B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA;CAKhC;AAaD,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,YAAY,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CA+ClF;AAED,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA0D7E"}
@@ -1,194 +0,0 @@
1
- /**
2
- * `opensquid export / import` — entire ~/.opensquid/ state bundle.
3
- *
4
- * Used to back up everything the engine writes (codexes, lessons,
5
- * memories with .vec sidecars, hooks state under sessions/, project
6
- * ID cards, engine config) into a single portable archive. Re-import
7
- * on a fresh machine restores identical state.
8
- *
9
- * Format: tar.gz via system `tar` (bsdtar on macOS / Windows 10+,
10
- * GNU tar on Linux — all support `-czf` / `-xzf`). Reasoning: zero
11
- * new dependency, deterministic byte layout, easy to inspect via
12
- * `tar tzf`. Encryption deferred — pass through gpg externally for
13
- * now (`gpg -c <archive>`).
14
- *
15
- * Round-trip semantics:
16
- * - export writes tar.gz containing the entire ~/.opensquid/ tree
17
- * relative to $HOME so paths remain portable across machines
18
- * - import accepts --merge (default — extracts on top of existing
19
- * ~/.opensquid/, last-write-wins per file) or --replace (wipe
20
- * ~/.opensquid/ first then extract). Vector index .vec sidecars
21
- * carry through; engine rehydrates the in-memory HNSW on next
22
- * spawn from those sidecars.
23
- *
24
- * Failure modes:
25
- * - missing tar binary → throw with install-tar hint
26
- * - existing output path → refuse without --force
27
- * - tar exit non-zero → propagate stderr
28
- * - --replace on non-empty ~/.opensquid/ + missing input archive → no
29
- * data loss because we extract to a tmp dir first then atomic rename
30
- */
31
- import { spawn } from "node:child_process";
32
- import { promises as fs } from "node:fs";
33
- import * as os from "node:os";
34
- import * as path from "node:path";
35
- export class SystemExportError extends Error {
36
- hint;
37
- constructor(message, hint) {
38
- super(message);
39
- this.hint = hint;
40
- this.name = "SystemExportError";
41
- }
42
- }
43
- /** Resolved data root — `LOOP_HOME` env override, else `~/.opensquid/`. */
44
- function dataRoot() {
45
- return process.env.LOOP_HOME ?? path.join(os.homedir(), ".opensquid");
46
- }
47
- /** Default output filename for `export` — timestamped under cwd. */
48
- function defaultOutputPath() {
49
- const ts = new Date().toISOString().replace(/[:.]/g, "-").replace(/T/g, "_");
50
- return path.resolve(`opensquid-${ts}.tar.gz`);
51
- }
52
- export async function exportSystem(opts = {}) {
53
- const root = opts.dataRoot ?? dataRoot();
54
- const output = opts.output ? path.resolve(opts.output) : defaultOutputPath();
55
- // Verify the data root exists.
56
- try {
57
- const stat = await fs.stat(root);
58
- if (!stat.isDirectory()) {
59
- throw new SystemExportError(`data root is not a directory: ${root}`, "set LOOP_HOME or pass --root to override");
60
- }
61
- }
62
- catch (err) {
63
- if (err instanceof SystemExportError)
64
- throw err;
65
- throw new SystemExportError(`data root does not exist: ${root}`, "nothing to export — opensquid hasn't written any state on this machine yet");
66
- }
67
- // Refuse to overwrite an existing output unless --force.
68
- let outputExists = false;
69
- try {
70
- await fs.access(output);
71
- outputExists = true;
72
- }
73
- catch {
74
- /* doesn't exist, fine */
75
- }
76
- if (outputExists && !opts.force) {
77
- throw new SystemExportError(`output path already exists: ${output}`, "pass --force to overwrite, or pick a different --output");
78
- }
79
- // tar -czf <output> -C <parent-of-root> <basename-of-root>
80
- // Bundling by basename keeps the extracted tree at .opensquid/ on
81
- // import regardless of what the source machine had as $HOME. The -C
82
- // flag chdirs before reading so the archive doesn't carry absolute
83
- // paths.
84
- const parent = path.dirname(root);
85
- const base = path.basename(root);
86
- await runTar(["-czf", output, "-C", parent, base]);
87
- const stat = await fs.stat(output);
88
- return { output, size_bytes: stat.size };
89
- }
90
- export async function importSystem(opts) {
91
- const root = opts.dataRoot ?? dataRoot();
92
- const mode = opts.mode ?? "merge";
93
- const input = path.resolve(opts.input);
94
- // Verify the input archive exists + is readable.
95
- try {
96
- const stat = await fs.stat(input);
97
- if (!stat.isFile()) {
98
- throw new SystemExportError(`input is not a file: ${input}`, "pass an opensquid export archive (tar.gz)");
99
- }
100
- }
101
- catch (err) {
102
- if (err instanceof SystemExportError)
103
- throw err;
104
- throw new SystemExportError(`input archive does not exist: ${input}`, "check the path");
105
- }
106
- // Validate the archive looks like an opensquid export by listing
107
- // contents and looking for the .opensquid/ root entry.
108
- const list = await tarList(input);
109
- const hasRoot = list.some((entry) => entry.startsWith(".opensquid/") || entry === ".opensquid");
110
- if (!hasRoot) {
111
- throw new SystemExportError(`input does not look like an opensquid export (no .opensquid/ entry)`, "exports created by `opensquid export` always have a .opensquid/ root");
112
- }
113
- // For replace mode: extract to a tmp dir first, then atomic rename
114
- // over the destination. This way a corrupt input doesn't leave the
115
- // user with a half-deleted data root.
116
- if (mode === "replace") {
117
- const stagingParent = path.join(os.tmpdir(), `opensquid-import-${Date.now()}`);
118
- await fs.mkdir(stagingParent, { recursive: true });
119
- try {
120
- await runTar(["-xzf", input, "-C", stagingParent]);
121
- const stagedRoot = path.join(stagingParent, path.basename(root));
122
- // Ensure the staged tree exists.
123
- await fs.access(stagedRoot);
124
- // Wipe the destination + atomic-replace.
125
- await fs.rm(root, { recursive: true, force: true });
126
- await fs.rename(stagedRoot, root);
127
- }
128
- finally {
129
- // Best-effort cleanup of the staging parent (it's empty now if
130
- // the rename succeeded, but may contain orphans on failure).
131
- await fs.rm(stagingParent, { recursive: true, force: true }).catch(() => undefined);
132
- }
133
- }
134
- else {
135
- // Merge: extract directly to the destination's parent. tar will
136
- // create / overwrite files within .opensquid/. Existing files not
137
- // in the archive are preserved. Directory must exist.
138
- await fs.mkdir(path.dirname(root), { recursive: true });
139
- await runTar(["-xzf", input, "-C", path.dirname(root)]);
140
- }
141
- return { input, data_root: root, mode };
142
- }
143
- // ---------------------------------------------------------------------
144
- // tar helpers
145
- // ---------------------------------------------------------------------
146
- function runTar(args) {
147
- return new Promise((resolve, reject) => {
148
- const child = spawn("tar", args, { stdio: ["ignore", "pipe", "pipe"] });
149
- let stderr = "";
150
- child.stderr.on("data", (chunk) => {
151
- stderr += chunk.toString();
152
- });
153
- child.on("error", (err) => {
154
- if (err.code === "ENOENT") {
155
- reject(new SystemExportError("tar binary not found on PATH", "install tar (preinstalled on macOS / Linux; Windows 10+ ships bsdtar)"));
156
- }
157
- else {
158
- reject(err);
159
- }
160
- });
161
- child.on("exit", (code) => {
162
- if (code === 0)
163
- resolve();
164
- else
165
- reject(new SystemExportError(`tar exited with code ${code}`, stderr.trim() || "no stderr from tar"));
166
- });
167
- });
168
- }
169
- async function tarList(input) {
170
- return new Promise((resolve, reject) => {
171
- const child = spawn("tar", ["-tzf", input], { stdio: ["ignore", "pipe", "pipe"] });
172
- let stdout = "";
173
- let stderr = "";
174
- child.stdout.on("data", (chunk) => {
175
- stdout += chunk.toString();
176
- });
177
- child.stderr.on("data", (chunk) => {
178
- stderr += chunk.toString();
179
- });
180
- child.on("error", (err) => reject(err));
181
- child.on("exit", (code) => {
182
- if (code === 0) {
183
- resolve(stdout
184
- .split("\n")
185
- .map((l) => l.trim())
186
- .filter(Boolean));
187
- }
188
- else {
189
- reject(new SystemExportError(`tar -tzf exited with code ${code}`, stderr.trim() || "no stderr from tar"));
190
- }
191
- });
192
- });
193
- }
194
- //# sourceMappingURL=system-export.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-export.js","sourceRoot":"","sources":["../src.legacy/system-export.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Pattern-based utterance classifier — categorizes user-said text into
3
- * one of: `fact` / `preference` / `correction` / `workflow_lock` /
4
- * `none`, with a suggested follow-up action.
5
- *
6
- * Pure regex catalog. No LLM call. Fast, deterministic, hand-tunable.
7
- * The full LLM-driven Stop-hook auto-classifier is task #112; this
8
- * tool is agent-invoked per the CLAUDE.md classify-and-act block.
9
- *
10
- * Output is structured guidance, not an action. The MCP tool returns
11
- * { kind, suggested_action, matched, confidence }; the agent then calls
12
- * the appropriate downstream tool (memorize, remember, update_memory)
13
- * itself.
14
- */
15
- export type UtteranceKind = "fact" | "preference" | "correction" | "workflow_lock" | "none";
16
- export type UtteranceConfidence = "high" | "medium" | "low";
17
- export interface UtterancePattern {
18
- /** Stable id (e.g. "preference-always"). */
19
- id: string;
20
- /** Category this pattern signals. */
21
- kind: UtteranceKind;
22
- /** Regex matched against the utterance text. */
23
- pattern: string;
24
- /** Confidence level when this pattern fires. */
25
- confidence: UtteranceConfidence;
26
- /** Short explanation surfaced to the agent. */
27
- reason: string;
28
- }
29
- /**
30
- * Catalog. Ordered by SPECIFICITY — most specific patterns first so the
31
- * first match wins. Conservative: a miss is "agent classifies based on
32
- * CLAUDE.md instructions anyway", a false-fire is "spurious memorize/
33
- * remember call".
34
- */
35
- export declare const UTTERANCE_PATTERNS: UtterancePattern[];
36
- export interface ClassifyResult {
37
- kind: UtteranceKind;
38
- /** Recommended next action for the agent. */
39
- suggested_action: string;
40
- /** Pattern id(s) that matched. */
41
- matched: string[];
42
- /** Confidence of the strongest hit. */
43
- confidence: UtteranceConfidence | null;
44
- }
45
- /**
46
- * Classify an utterance. Returns the strongest-confidence match's kind
47
- * (high > medium > low), all matching pattern ids, and a suggested
48
- * downstream action.
49
- *
50
- * Empty / whitespace input → kind="none".
51
- */
52
- export declare function classifyUtterance(text: string): ClassifyResult;
53
- //# sourceMappingURL=classifier.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src.legacy/utterance/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,CAAC;AAE5F,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,IAAI,EAAE,aAAa,CAAC;IACpB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,UAAU,EAAE,mBAAmB,CAAC;IAChC,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAmHhD,CAAC;AAMF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uCAAuC;IACvC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACxC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAsB9D"}
@@ -1,184 +0,0 @@
1
- /**
2
- * Pattern-based utterance classifier — categorizes user-said text into
3
- * one of: `fact` / `preference` / `correction` / `workflow_lock` /
4
- * `none`, with a suggested follow-up action.
5
- *
6
- * Pure regex catalog. No LLM call. Fast, deterministic, hand-tunable.
7
- * The full LLM-driven Stop-hook auto-classifier is task #112; this
8
- * tool is agent-invoked per the CLAUDE.md classify-and-act block.
9
- *
10
- * Output is structured guidance, not an action. The MCP tool returns
11
- * { kind, suggested_action, matched, confidence }; the agent then calls
12
- * the appropriate downstream tool (memorize, remember, update_memory)
13
- * itself.
14
- */
15
- /**
16
- * Catalog. Ordered by SPECIFICITY — most specific patterns first so the
17
- * first match wins. Conservative: a miss is "agent classifies based on
18
- * CLAUDE.md instructions anyway", a false-fire is "spurious memorize/
19
- * remember call".
20
- */
21
- export const UTTERANCE_PATTERNS = [
22
- // -------------------- CORRECTION (unambiguous, high) --------------------
23
- {
24
- id: "correction-no-thats-wrong",
25
- kind: "correction",
26
- pattern: "\\b(no,?\\s+that'?s\\s+wrong|that'?s\\s+(?:not\\s+)?(?:wrong|incorrect))\\b",
27
- confidence: "high",
28
- reason: "explicit correction phrasing",
29
- },
30
- {
31
- id: "correction-actually",
32
- kind: "correction",
33
- pattern: "\\b(actually,?\\s+(?:it\\s+should\\s+be|the\\s+(?:right|correct))\\b)",
34
- confidence: "high",
35
- reason: "actually-it-should-be retraction pattern",
36
- },
37
- {
38
- id: "correction-i-meant",
39
- kind: "correction",
40
- pattern: "\\b(I\\s+(?:meant|misspoke)|let me correct that)\\b",
41
- confidence: "medium",
42
- reason: "self-correction pattern",
43
- },
44
- // -------------------- WORKFLOW_LOCK (specific, high) --------------------
45
- {
46
- id: "workflow-the-workflow-is",
47
- kind: "workflow_lock",
48
- pattern: "\\bthe\\s+workflow\\s+is\\b",
49
- confidence: "high",
50
- reason: "explicit workflow declaration",
51
- },
52
- {
53
- id: "workflow-pre-research-first",
54
- kind: "workflow_lock",
55
- pattern: "\\b(always|never)\\s+(pre-?research|audit|test|build)\\s+(first|before|after)\\b",
56
- confidence: "high",
57
- reason: "phase-ordering directive",
58
- },
59
- {
60
- id: "workflow-no-hedges",
61
- kind: "workflow_lock",
62
- pattern: "\\bno\\s+(hedges|later\\s+hedges|skip(?:ping)?\\s+phases)\\b",
63
- confidence: "high",
64
- reason: "explicit anti-drift directive",
65
- },
66
- {
67
- id: "workflow-keep-iterating",
68
- kind: "workflow_lock",
69
- pattern: "\\bkeep\\s+iterat(?:ing|e)\\s+until\\b",
70
- confidence: "medium",
71
- reason: "iteration-discipline directive",
72
- },
73
- // -------------------- PREFERENCE (specific, high — narrower than \"always\") --------------------
74
- {
75
- id: "preference-i-prefer",
76
- kind: "preference",
77
- pattern: "\\bI\\s+prefer\\s+",
78
- confidence: "high",
79
- reason: "explicit preference",
80
- },
81
- {
82
- id: "preference-always-i",
83
- kind: "preference",
84
- // "always [verb]" attached to first-person (I always, we always)
85
- pattern: "\\b(?:I|we|you should)\\s+always\\b",
86
- confidence: "high",
87
- reason: "first-person always-directive",
88
- },
89
- {
90
- id: "preference-always-action",
91
- kind: "preference",
92
- // "always [verb]" at sentence start — e.g. "Always run X" or "always X before Y"
93
- pattern: "(?:^|\\.\\s+)always\\s+\\w+",
94
- confidence: "medium",
95
- reason: "sentence-leading always-directive",
96
- },
97
- {
98
- id: "preference-never",
99
- kind: "preference",
100
- pattern: "\\b(?:I|we|you should)\\s+never\\b|(?:^|\\.\\s+)never\\s+\\w+",
101
- confidence: "high",
102
- reason: "negative directive",
103
- },
104
- {
105
- id: "preference-dont",
106
- kind: "preference",
107
- pattern: "(?:^|\\.\\s+)don'?t\\s+\\w+",
108
- confidence: "medium",
109
- reason: "sentence-leading prohibition",
110
- },
111
- // -------------------- FACT (broadest, conservative) --------------------
112
- {
113
- id: "fact-i-use",
114
- kind: "fact",
115
- pattern: "\\bI\\s+use\\s+\\w+",
116
- confidence: "high",
117
- reason: "I-use-X declarative",
118
- },
119
- {
120
- id: "fact-x-is-my",
121
- kind: "fact",
122
- pattern: "\\b\\w+\\s+is\\s+my\\s+\\w+",
123
- confidence: "high",
124
- reason: "X-is-my-Y identity statement",
125
- },
126
- {
127
- id: "fact-we-have",
128
- kind: "fact",
129
- pattern: "\\b(?:we\\s+have|our\\s+\\w+\\s+(?:is|uses))\\b",
130
- confidence: "medium",
131
- reason: "team-attribute statement",
132
- },
133
- ];
134
- /**
135
- * Classify an utterance. Returns the strongest-confidence match's kind
136
- * (high > medium > low), all matching pattern ids, and a suggested
137
- * downstream action.
138
- *
139
- * Empty / whitespace input → kind="none".
140
- */
141
- export function classifyUtterance(text) {
142
- if (!text || !text.trim()) {
143
- return { kind: "none", suggested_action: "", matched: [], confidence: null };
144
- }
145
- const matches = [];
146
- for (const p of UTTERANCE_PATTERNS) {
147
- try {
148
- if (new RegExp(p.pattern, "i").test(text))
149
- matches.push(p);
150
- }
151
- catch {
152
- // bad pattern — skip
153
- }
154
- }
155
- if (matches.length === 0) {
156
- return { kind: "none", suggested_action: "", matched: [], confidence: null };
157
- }
158
- const winner = pickStrongest(matches);
159
- return {
160
- kind: winner.kind,
161
- suggested_action: suggestedAction(winner.kind),
162
- matched: matches.map((m) => m.id),
163
- confidence: winner.confidence,
164
- };
165
- }
166
- function pickStrongest(matches) {
167
- const order = { high: 3, medium: 2, low: 1 };
168
- return matches.reduce((best, p) => (order[p.confidence] > order[best.confidence] ? p : best));
169
- }
170
- function suggestedAction(kind) {
171
- switch (kind) {
172
- case "fact":
173
- return "call `memorize` with the fact. Note the memory id in your reply.";
174
- case "preference":
175
- return 'call `memorize` AND `remember` to create a lesson candidate. Reply: "Captured as a candidate rule — promote to permanent?"';
176
- case "workflow_lock":
177
- return "call `memorize` AND `remember` (workflow rules are high-priority lesson candidates). Offer to promote.";
178
- case "correction":
179
- return "call `memorize` with the correction. If it supersedes a specific prior memory you can identify, also call `update_memory`.";
180
- case "none":
181
- return "";
182
- }
183
- }
184
- //# sourceMappingURL=classifier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src.legacy/utterance/classifier.ts"],"names":[],"mappings":"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"}