opensquid 0.5.441 → 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 (380) 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/index.d.ts +1 -0
  7. package/dist/functions/index.d.ts.map +1 -1
  8. package/dist/functions/index.js +1 -0
  9. package/dist/functions/index.js.map +1 -1
  10. package/dist/runtime/bootstrap.d.ts.map +1 -1
  11. package/dist/runtime/bootstrap.js +2 -0
  12. package/dist/runtime/bootstrap.js.map +1 -1
  13. package/dist/runtime/handoff/render.d.ts +5 -4
  14. package/dist/runtime/handoff/render.d.ts.map +1 -1
  15. package/dist/runtime/handoff/render.js +7 -7
  16. package/dist/runtime/handoff/render.js.map +1 -1
  17. package/dist/runtime/hooks/active_task_mirror.js +0 -0
  18. package/dist/runtime/hooks/apply_patch.js +0 -0
  19. package/dist/runtime/hooks/dispatch.js +0 -0
  20. package/dist/runtime/hooks/hook_output.js +0 -0
  21. package/dist/runtime/hooks/memory_reconcile.js +0 -0
  22. package/dist/runtime/hooks/new_project_detect.js +0 -0
  23. package/dist/runtime/hooks/profession_resolver.js +0 -0
  24. package/dist/runtime/hooks/scope_intent.js +0 -0
  25. package/dist/runtime/hooks/session_id.js +0 -0
  26. package/dist/runtime/hooks/session_liveness.js +0 -0
  27. package/dist/runtime/hooks/stop_drive.js +0 -0
  28. package/dist/runtime/hooks/stop_stream.js +0 -0
  29. package/dist/runtime/hooks/subagent_guard.js +0 -0
  30. package/dist/runtime/hooks/transcript.js +0 -0
  31. package/dist/runtime/hooks/transcript_tasks.js +0 -0
  32. package/dist/runtime/ralph/orchestrator.d.ts.map +1 -1
  33. package/dist/runtime/ralph/orchestrator.js +2 -1
  34. package/dist/runtime/ralph/orchestrator.js.map +1 -1
  35. package/dist/setup/cli/limits_state.d.ts.map +1 -1
  36. package/dist/setup/cli/limits_state.js +6 -40
  37. package/dist/setup/cli/limits_state.js.map +1 -1
  38. package/dist/setup/cli/pack_walk.d.ts +32 -0
  39. package/dist/setup/cli/pack_walk.d.ts.map +1 -0
  40. package/dist/setup/cli/pack_walk.js +76 -0
  41. package/dist/setup/cli/pack_walk.js.map +1 -0
  42. package/dist/setup/cli/permissions_state.d.ts.map +1 -1
  43. package/dist/setup/cli/permissions_state.js +6 -37
  44. package/dist/setup/cli/permissions_state.js.map +1 -1
  45. package/dist/setup/cli/triggers_state.d.ts.map +1 -1
  46. package/dist/setup/cli/triggers_state.js +3 -29
  47. package/dist/setup/cli/triggers_state.js.map +1 -1
  48. package/dist/workgraph/events.d.ts.map +1 -1
  49. package/dist/workgraph/events.js +10 -0
  50. package/dist/workgraph/events.js.map +1 -1
  51. package/dist/workgraph/store.d.ts.map +1 -1
  52. package/dist/workgraph/store.js +5 -0
  53. package/dist/workgraph/store.js.map +1 -1
  54. package/dist/workgraph/types.d.ts +2 -1
  55. package/dist/workgraph/types.d.ts.map +1 -1
  56. package/docs/ARCHITECTURE.md +268 -0
  57. package/package.json +5 -3
  58. package/packs/builtin/coding-flow/skills/entry-and-handoffs/skill.yaml +13 -17
  59. package/dist/anti-drift/evaluator.d.ts +0 -88
  60. package/dist/anti-drift/evaluator.d.ts.map +0 -1
  61. package/dist/anti-drift/evaluator.js +0 -417
  62. package/dist/anti-drift/evaluator.js.map +0 -1
  63. package/dist/anti-drift/evaluator.test.js +0 -78
  64. package/dist/anti-drift/rules.d.ts +0 -80
  65. package/dist/anti-drift/rules.d.ts.map +0 -1
  66. package/dist/anti-drift/rules.js +0 -368
  67. package/dist/anti-drift/rules.js.map +0 -1
  68. package/dist/anti-drift/rules.test.js +0 -213
  69. package/dist/anti-drift/state.d.ts +0 -107
  70. package/dist/anti-drift/state.d.ts.map +0 -1
  71. package/dist/anti-drift/state.js +0 -177
  72. package/dist/anti-drift/state.js.map +0 -1
  73. package/dist/anti-drift/state.test.js +0 -120
  74. package/dist/chat/adapters/discord.d.ts +0 -41
  75. package/dist/chat/adapters/discord.d.ts.map +0 -1
  76. package/dist/chat/adapters/discord.js +0 -176
  77. package/dist/chat/adapters/discord.js.map +0 -1
  78. package/dist/chat/adapters/discord.test.js +0 -25
  79. package/dist/chat/adapters/slack.d.ts +0 -43
  80. package/dist/chat/adapters/slack.d.ts.map +0 -1
  81. package/dist/chat/adapters/slack.js +0 -172
  82. package/dist/chat/adapters/slack.js.map +0 -1
  83. package/dist/chat/adapters/slack.test.js +0 -30
  84. package/dist/chat/adapters/telegram.d.ts +0 -148
  85. package/dist/chat/adapters/telegram.d.ts.map +0 -1
  86. package/dist/chat/adapters/telegram.js +0 -498
  87. package/dist/chat/adapters/telegram.js.map +0 -1
  88. package/dist/chat/adapters/telegram.test.js +0 -94
  89. package/dist/chat/config.d.ts +0 -98
  90. package/dist/chat/config.d.ts.map +0 -1
  91. package/dist/chat/config.js +0 -185
  92. package/dist/chat/config.js.map +0 -1
  93. package/dist/chat/daemon/active-project.d.ts +0 -17
  94. package/dist/chat/daemon/active-project.d.ts.map +0 -1
  95. package/dist/chat/daemon/active-project.js +0 -23
  96. package/dist/chat/daemon/active-project.js.map +0 -1
  97. package/dist/chat/daemon/autospawn.d.ts +0 -40
  98. package/dist/chat/daemon/autospawn.d.ts.map +0 -1
  99. package/dist/chat/daemon/autospawn.js +0 -129
  100. package/dist/chat/daemon/autospawn.js.map +0 -1
  101. package/dist/chat/daemon/autospawn.test.js +0 -112
  102. package/dist/chat/daemon/cli.d.ts +0 -18
  103. package/dist/chat/daemon/cli.d.ts.map +0 -1
  104. package/dist/chat/daemon/cli.js +0 -71
  105. package/dist/chat/daemon/cli.js.map +0 -1
  106. package/dist/chat/daemon/collisions.js +0 -384
  107. package/dist/chat/daemon/health-check.d.ts +0 -69
  108. package/dist/chat/daemon/health-check.d.ts.map +0 -1
  109. package/dist/chat/daemon/health-check.js +0 -112
  110. package/dist/chat/daemon/health-check.js.map +0 -1
  111. package/dist/chat/daemon/inbox-read.d.ts +0 -35
  112. package/dist/chat/daemon/inbox-read.d.ts.map +0 -1
  113. package/dist/chat/daemon/inbox-read.js +0 -75
  114. package/dist/chat/daemon/inbox-read.js.map +0 -1
  115. package/dist/chat/daemon/inbox-read.test.js +0 -97
  116. package/dist/chat/daemon/inbox.d.ts +0 -63
  117. package/dist/chat/daemon/inbox.d.ts.map +0 -1
  118. package/dist/chat/daemon/inbox.js +0 -56
  119. package/dist/chat/daemon/inbox.js.map +0 -1
  120. package/dist/chat/daemon/inbox.test.js +0 -110
  121. package/dist/chat/daemon/lifecycle.d.ts +0 -71
  122. package/dist/chat/daemon/lifecycle.d.ts.map +0 -1
  123. package/dist/chat/daemon/lifecycle.js +0 -221
  124. package/dist/chat/daemon/lifecycle.js.map +0 -1
  125. package/dist/chat/daemon/lifecycle.test.js +0 -163
  126. package/dist/chat/daemon/protocol.d.ts +0 -107
  127. package/dist/chat/daemon/protocol.d.ts.map +0 -1
  128. package/dist/chat/daemon/protocol.js +0 -54
  129. package/dist/chat/daemon/protocol.js.map +0 -1
  130. package/dist/chat/daemon/routing.d.ts +0 -140
  131. package/dist/chat/daemon/routing.d.ts.map +0 -1
  132. package/dist/chat/daemon/routing.js +0 -198
  133. package/dist/chat/daemon/routing.js.map +0 -1
  134. package/dist/chat/daemon/routing.test.js +0 -259
  135. package/dist/chat/daemon/rpc-client.d.ts +0 -45
  136. package/dist/chat/daemon/rpc-client.d.ts.map +0 -1
  137. package/dist/chat/daemon/rpc-client.js +0 -133
  138. package/dist/chat/daemon/rpc-client.js.map +0 -1
  139. package/dist/chat/daemon/rpc-server.d.ts +0 -39
  140. package/dist/chat/daemon/rpc-server.d.ts.map +0 -1
  141. package/dist/chat/daemon/rpc-server.js +0 -385
  142. package/dist/chat/daemon/rpc-server.js.map +0 -1
  143. package/dist/chat/daemon/rpc.test.js +0 -177
  144. package/dist/chat/daemon/subscribers.js +0 -257
  145. package/dist/chat/daemon/worker.d.ts +0 -27
  146. package/dist/chat/daemon/worker.d.ts.map +0 -1
  147. package/dist/chat/daemon/worker.js +0 -313
  148. package/dist/chat/daemon/worker.js.map +0 -1
  149. package/dist/chat/daemon/workspace-topic.js +0 -324
  150. package/dist/chat/env-token.d.ts +0 -60
  151. package/dist/chat/env-token.d.ts.map +0 -1
  152. package/dist/chat/env-token.js +0 -137
  153. package/dist/chat/env-token.js.map +0 -1
  154. package/dist/chat/env-token.test.js +0 -160
  155. package/dist/chat/factory.d.ts +0 -30
  156. package/dist/chat/factory.d.ts.map +0 -1
  157. package/dist/chat/factory.js +0 -50
  158. package/dist/chat/factory.js.map +0 -1
  159. package/dist/chat/factory.test.js +0 -55
  160. package/dist/chat/gateway.d.ts +0 -176
  161. package/dist/chat/gateway.d.ts.map +0 -1
  162. package/dist/chat/gateway.js +0 -146
  163. package/dist/chat/gateway.js.map +0 -1
  164. package/dist/chat/gateway.test.js +0 -192
  165. package/dist/claude-md.d.ts +0 -39
  166. package/dist/claude-md.d.ts.map +0 -1
  167. package/dist/claude-md.js +0 -113
  168. package/dist/claude-md.js.map +0 -1
  169. package/dist/claude-md.test.js +0 -91
  170. package/dist/codex/activate.d.ts +0 -66
  171. package/dist/codex/activate.d.ts.map +0 -1
  172. package/dist/codex/activate.js +0 -329
  173. package/dist/codex/activate.js.map +0 -1
  174. package/dist/codex/activate.test.js +0 -229
  175. package/dist/codex/bundled-default/bundled-default.test.js +0 -161
  176. package/dist/codex/cli-publish.test.js +0 -133
  177. package/dist/codex/cli.d.ts +0 -35
  178. package/dist/codex/cli.d.ts.map +0 -1
  179. package/dist/codex/cli.js +0 -554
  180. package/dist/codex/cli.js.map +0 -1
  181. package/dist/codex/cli.test.js +0 -277
  182. package/dist/codex/import-skill-md.d.ts +0 -53
  183. package/dist/codex/import-skill-md.d.ts.map +0 -1
  184. package/dist/codex/import-skill-md.js +0 -236
  185. package/dist/codex/import-skill-md.js.map +0 -1
  186. package/dist/codex/import-skill-md.test.js +0 -225
  187. package/dist/codex/loader.d.ts +0 -27
  188. package/dist/codex/loader.d.ts.map +0 -1
  189. package/dist/codex/loader.js +0 -86
  190. package/dist/codex/loader.js.map +0 -1
  191. package/dist/codex/loader.test.js +0 -75
  192. package/dist/codex/parse.d.ts +0 -28
  193. package/dist/codex/parse.d.ts.map +0 -1
  194. package/dist/codex/parse.js +0 -309
  195. package/dist/codex/parse.js.map +0 -1
  196. package/dist/codex/parse.test.js +0 -241
  197. package/dist/codex/store.d.ts +0 -87
  198. package/dist/codex/store.d.ts.map +0 -1
  199. package/dist/codex/store.js +0 -205
  200. package/dist/codex/store.js.map +0 -1
  201. package/dist/codex/store.test.js +0 -242
  202. package/dist/codex/types.d.ts +0 -398
  203. package/dist/codex/types.d.ts.map +0 -1
  204. package/dist/codex/types.js +0 -21
  205. package/dist/codex/types.js.map +0 -1
  206. package/dist/config.d.ts +0 -53
  207. package/dist/config.d.ts.map +0 -1
  208. package/dist/config.js +0 -202
  209. package/dist/config.js.map +0 -1
  210. package/dist/config.test.js +0 -117
  211. package/dist/engine/cli.d.ts +0 -14
  212. package/dist/engine/cli.d.ts.map +0 -1
  213. package/dist/engine/cli.js +0 -171
  214. package/dist/engine/cli.js.map +0 -1
  215. package/dist/engine/client.d.ts +0 -219
  216. package/dist/engine/client.d.ts.map +0 -1
  217. package/dist/engine/client.js +0 -312
  218. package/dist/engine/client.js.map +0 -1
  219. package/dist/engine/config.d.ts +0 -62
  220. package/dist/engine/config.d.ts.map +0 -1
  221. package/dist/engine/config.js +0 -223
  222. package/dist/engine/config.js.map +0 -1
  223. package/dist/engine/index.d.ts +0 -17
  224. package/dist/engine/index.d.ts.map +0 -1
  225. package/dist/engine/index.js +0 -16
  226. package/dist/engine/index.js.map +0 -1
  227. package/dist/engine/resolver.d.ts +0 -62
  228. package/dist/engine/resolver.d.ts.map +0 -1
  229. package/dist/engine/resolver.js +0 -103
  230. package/dist/engine/resolver.js.map +0 -1
  231. package/dist/engine/singleton.d.ts +0 -95
  232. package/dist/engine/singleton.d.ts.map +0 -1
  233. package/dist/engine/singleton.js +0 -325
  234. package/dist/engine/singleton.js.map +0 -1
  235. package/dist/engine/types.d.ts +0 -402
  236. package/dist/engine/types.d.ts.map +0 -1
  237. package/dist/engine/types.js +0 -22
  238. package/dist/engine/types.js.map +0 -1
  239. package/dist/engine-binary-resolver.js +0 -110
  240. package/dist/engine-binary-resolver.test.js +0 -61
  241. package/dist/engine-cli.js +0 -60
  242. package/dist/engine-client.js +0 -301
  243. package/dist/engine-client.test.js +0 -118
  244. package/dist/functions/chain_state.d.ts +0 -51
  245. package/dist/functions/chain_state.d.ts.map +0 -1
  246. package/dist/functions/chain_state.js +0 -59
  247. package/dist/functions/chain_state.js.map +0 -1
  248. package/dist/hooks/drift-catalog.d.ts +0 -68
  249. package/dist/hooks/drift-catalog.d.ts.map +0 -1
  250. package/dist/hooks/drift-catalog.js +0 -184
  251. package/dist/hooks/drift-catalog.js.map +0 -1
  252. package/dist/hooks/drift-catalog.test.js +0 -154
  253. package/dist/hooks/drift-patterns.d.ts +0 -110
  254. package/dist/hooks/drift-patterns.d.ts.map +0 -1
  255. package/dist/hooks/drift-patterns.js +0 -289
  256. package/dist/hooks/drift-patterns.js.map +0 -1
  257. package/dist/hooks/drift-patterns.test.js +0 -325
  258. package/dist/hooks/engine-vocab-gate.d.ts +0 -108
  259. package/dist/hooks/engine-vocab-gate.d.ts.map +0 -1
  260. package/dist/hooks/engine-vocab-gate.js +0 -225
  261. package/dist/hooks/engine-vocab-gate.js.map +0 -1
  262. package/dist/hooks/engine-vocab-gate.test.js +0 -170
  263. package/dist/hooks/heartbeat.d.ts +0 -107
  264. package/dist/hooks/heartbeat.d.ts.map +0 -1
  265. package/dist/hooks/heartbeat.js +0 -316
  266. package/dist/hooks/heartbeat.js.map +0 -1
  267. package/dist/hooks/heartbeat.test.js +0 -393
  268. package/dist/hooks/honesty-ledger-session-scope.test.js +0 -100
  269. package/dist/hooks/honesty-ledger.d.ts +0 -123
  270. package/dist/hooks/honesty-ledger.d.ts.map +0 -1
  271. package/dist/hooks/honesty-ledger.js +0 -226
  272. package/dist/hooks/honesty-ledger.js.map +0 -1
  273. package/dist/hooks/honesty-ledger.test.js +0 -466
  274. package/dist/hooks/inline-report-check.d.ts +0 -63
  275. package/dist/hooks/inline-report-check.d.ts.map +0 -1
  276. package/dist/hooks/inline-report-check.js +0 -88
  277. package/dist/hooks/inline-report-check.js.map +0 -1
  278. package/dist/hooks/inline-report-check.test.js +0 -96
  279. package/dist/hooks/pre-tool-use.d.ts +0 -62
  280. package/dist/hooks/pre-tool-use.d.ts.map +0 -1
  281. package/dist/hooks/pre-tool-use.js +0 -342
  282. package/dist/hooks/pre-tool-use.js.map +0 -1
  283. package/dist/hooks/pre-tool-use.test.js +0 -134
  284. package/dist/hooks/session-end.d.ts +0 -15
  285. package/dist/hooks/session-end.d.ts.map +0 -1
  286. package/dist/hooks/session-end.js +0 -60
  287. package/dist/hooks/session-end.js.map +0 -1
  288. package/dist/hooks/session-end.test.js +0 -52
  289. package/dist/hooks/stop.d.ts +0 -35
  290. package/dist/hooks/stop.d.ts.map +0 -1
  291. package/dist/hooks/stop.js +0 -136
  292. package/dist/hooks/stop.js.map +0 -1
  293. package/dist/hooks/transcript-active-task.test.js +0 -342
  294. package/dist/hooks/transcript.d.ts +0 -26
  295. package/dist/hooks/transcript.d.ts.map +0 -1
  296. package/dist/hooks/transcript.js +0 -266
  297. package/dist/hooks/transcript.js.map +0 -1
  298. package/dist/hooks/transcript.test.js +0 -103
  299. package/dist/hooks/user-prompt-submit.d.ts +0 -74
  300. package/dist/hooks/user-prompt-submit.d.ts.map +0 -1
  301. package/dist/hooks/user-prompt-submit.js +0 -256
  302. package/dist/hooks/user-prompt-submit.js.map +0 -1
  303. package/dist/hooks/user-prompt-submit.test.js +0 -118
  304. package/dist/hooks/versioning-gate.d.ts +0 -101
  305. package/dist/hooks/versioning-gate.d.ts.map +0 -1
  306. package/dist/hooks/versioning-gate.js +0 -245
  307. package/dist/hooks/versioning-gate.js.map +0 -1
  308. package/dist/hooks/versioning-gate.test.js +0 -368
  309. package/dist/hooks/workflow-gate.d.ts +0 -64
  310. package/dist/hooks/workflow-gate.d.ts.map +0 -1
  311. package/dist/hooks/workflow-gate.js +0 -152
  312. package/dist/hooks/workflow-gate.js.map +0 -1
  313. package/dist/hooks/workflow-gate.test.js +0 -197
  314. package/dist/hooks-cli.d.ts +0 -25
  315. package/dist/hooks-cli.d.ts.map +0 -1
  316. package/dist/hooks-cli.js +0 -286
  317. package/dist/hooks-cli.js.map +0 -1
  318. package/dist/hooks-cli.test.js +0 -148
  319. package/dist/origin.d.ts +0 -16
  320. package/dist/origin.d.ts.map +0 -1
  321. package/dist/origin.js +0 -92
  322. package/dist/origin.js.map +0 -1
  323. package/dist/packs/seed_lessons_ingest.d.ts +0 -30
  324. package/dist/packs/seed_lessons_ingest.d.ts.map +0 -1
  325. package/dist/packs/seed_lessons_ingest.js +0 -107
  326. package/dist/packs/seed_lessons_ingest.js.map +0 -1
  327. package/dist/project-cli.d.ts +0 -7
  328. package/dist/project-cli.d.ts.map +0 -1
  329. package/dist/project-cli.js +0 -145
  330. package/dist/project-cli.js.map +0 -1
  331. package/dist/project.d.ts +0 -127
  332. package/dist/project.d.ts.map +0 -1
  333. package/dist/project.js +0 -281
  334. package/dist/project.js.map +0 -1
  335. package/dist/project.test.js +0 -287
  336. package/dist/rag/backends/loop_engine.d.ts +0 -61
  337. package/dist/rag/backends/loop_engine.d.ts.map +0 -1
  338. package/dist/rag/backends/loop_engine.js +0 -160
  339. package/dist/rag/backends/loop_engine.js.map +0 -1
  340. package/dist/recall.d.ts +0 -82
  341. package/dist/recall.d.ts.map +0 -1
  342. package/dist/recall.js +0 -81
  343. package/dist/recall.js.map +0 -1
  344. package/dist/runtime/agent_bridge/autospawn.d.ts +0 -131
  345. package/dist/runtime/agent_bridge/autospawn.d.ts.map +0 -1
  346. package/dist/runtime/agent_bridge/autospawn.js +0 -251
  347. package/dist/runtime/agent_bridge/autospawn.js.map +0 -1
  348. package/dist/runtime/chain_state.d.ts +0 -124
  349. package/dist/runtime/chain_state.d.ts.map +0 -1
  350. package/dist/runtime/chain_state.js +0 -189
  351. package/dist/runtime/chain_state.js.map +0 -1
  352. package/dist/runtime/hooks/permission_decision.d.ts +0 -34
  353. package/dist/runtime/hooks/permission_decision.d.ts.map +0 -1
  354. package/dist/runtime/hooks/permission_decision.js +0 -39
  355. package/dist/runtime/hooks/permission_decision.js.map +0 -1
  356. package/dist/runtime/workflow_fsm.d.ts +0 -21
  357. package/dist/runtime/workflow_fsm.d.ts.map +0 -1
  358. package/dist/runtime/workflow_fsm.js +0 -25
  359. package/dist/runtime/workflow_fsm.js.map +0 -1
  360. package/dist/runtime/workflow_map.d.ts +0 -26
  361. package/dist/runtime/workflow_map.d.ts.map +0 -1
  362. package/dist/runtime/workflow_map.js +0 -38
  363. package/dist/runtime/workflow_map.js.map +0 -1
  364. package/dist/scope.d.ts +0 -48
  365. package/dist/scope.d.ts.map +0 -1
  366. package/dist/scope.js +0 -111
  367. package/dist/scope.js.map +0 -1
  368. package/dist/setup/cli/topic_create_step.d.ts +0 -84
  369. package/dist/setup/cli/topic_create_step.d.ts.map +0 -1
  370. package/dist/setup/cli/topic_create_step.js +0 -213
  371. package/dist/setup/cli/topic_create_step.js.map +0 -1
  372. package/dist/system-export.d.ts +0 -65
  373. package/dist/system-export.d.ts.map +0 -1
  374. package/dist/system-export.js +0 -194
  375. package/dist/system-export.js.map +0 -1
  376. package/dist/utterance/classifier.d.ts +0 -53
  377. package/dist/utterance/classifier.d.ts.map +0 -1
  378. package/dist/utterance/classifier.js +0 -184
  379. package/dist/utterance/classifier.js.map +0 -1
  380. 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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"}