opensquid 0.5.441 → 0.5.449

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 (391) 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/functions/recall_pre_inject.d.ts.map +1 -1
  11. package/dist/functions/recall_pre_inject.js +12 -0
  12. package/dist/functions/recall_pre_inject.js.map +1 -1
  13. package/dist/rag/store_git.d.ts +23 -0
  14. package/dist/rag/store_git.d.ts.map +1 -0
  15. package/dist/rag/store_git.js +57 -0
  16. package/dist/rag/store_git.js.map +1 -0
  17. package/dist/runtime/bootstrap.d.ts.map +1 -1
  18. package/dist/runtime/bootstrap.js +2 -0
  19. package/dist/runtime/bootstrap.js.map +1 -1
  20. package/dist/runtime/handoff/render.d.ts +5 -4
  21. package/dist/runtime/handoff/render.d.ts.map +1 -1
  22. package/dist/runtime/handoff/render.js +7 -7
  23. package/dist/runtime/handoff/render.js.map +1 -1
  24. package/dist/runtime/hooks/active_task_mirror.js +0 -0
  25. package/dist/runtime/hooks/apply_patch.js +0 -0
  26. package/dist/runtime/hooks/dispatch.js +0 -0
  27. package/dist/runtime/hooks/hook_output.js +0 -0
  28. package/dist/runtime/hooks/memory_reconcile.js +0 -0
  29. package/dist/runtime/hooks/new_project_detect.js +0 -0
  30. package/dist/runtime/hooks/profession_resolver.js +0 -0
  31. package/dist/runtime/hooks/scope_intent.js +0 -0
  32. package/dist/runtime/hooks/session-end.js +11 -0
  33. package/dist/runtime/hooks/session-end.js.map +1 -1
  34. package/dist/runtime/hooks/session_id.js +0 -0
  35. package/dist/runtime/hooks/session_liveness.js +0 -0
  36. package/dist/runtime/hooks/stop_drive.js +0 -0
  37. package/dist/runtime/hooks/stop_stream.js +0 -0
  38. package/dist/runtime/hooks/subagent_guard.js +0 -0
  39. package/dist/runtime/hooks/transcript.js +0 -0
  40. package/dist/runtime/hooks/transcript_tasks.js +0 -0
  41. package/dist/runtime/ralph/orchestrator.d.ts.map +1 -1
  42. package/dist/runtime/ralph/orchestrator.js +2 -1
  43. package/dist/runtime/ralph/orchestrator.js.map +1 -1
  44. package/dist/setup/cli/limits_state.d.ts.map +1 -1
  45. package/dist/setup/cli/limits_state.js +6 -40
  46. package/dist/setup/cli/limits_state.js.map +1 -1
  47. package/dist/setup/cli/pack_walk.d.ts +32 -0
  48. package/dist/setup/cli/pack_walk.d.ts.map +1 -0
  49. package/dist/setup/cli/pack_walk.js +76 -0
  50. package/dist/setup/cli/pack_walk.js.map +1 -0
  51. package/dist/setup/cli/permissions_state.d.ts.map +1 -1
  52. package/dist/setup/cli/permissions_state.js +6 -37
  53. package/dist/setup/cli/permissions_state.js.map +1 -1
  54. package/dist/setup/cli/triggers_state.d.ts.map +1 -1
  55. package/dist/setup/cli/triggers_state.js +3 -29
  56. package/dist/setup/cli/triggers_state.js.map +1 -1
  57. package/dist/workgraph/events.d.ts.map +1 -1
  58. package/dist/workgraph/events.js +10 -0
  59. package/dist/workgraph/events.js.map +1 -1
  60. package/dist/workgraph/store.d.ts.map +1 -1
  61. package/dist/workgraph/store.js +5 -0
  62. package/dist/workgraph/store.js.map +1 -1
  63. package/dist/workgraph/types.d.ts +2 -1
  64. package/dist/workgraph/types.d.ts.map +1 -1
  65. package/docs/ARCHITECTURE.md +268 -0
  66. package/docs/pack-runtime.md +15 -12
  67. package/docs/skill-grammar-guide.md +4 -4
  68. package/package.json +5 -3
  69. package/packs/builtin/coding-flow/skills/entry-and-handoffs/skill.yaml +13 -17
  70. package/dist/anti-drift/evaluator.d.ts +0 -88
  71. package/dist/anti-drift/evaluator.d.ts.map +0 -1
  72. package/dist/anti-drift/evaluator.js +0 -417
  73. package/dist/anti-drift/evaluator.js.map +0 -1
  74. package/dist/anti-drift/evaluator.test.js +0 -78
  75. package/dist/anti-drift/rules.d.ts +0 -80
  76. package/dist/anti-drift/rules.d.ts.map +0 -1
  77. package/dist/anti-drift/rules.js +0 -368
  78. package/dist/anti-drift/rules.js.map +0 -1
  79. package/dist/anti-drift/rules.test.js +0 -213
  80. package/dist/anti-drift/state.d.ts +0 -107
  81. package/dist/anti-drift/state.d.ts.map +0 -1
  82. package/dist/anti-drift/state.js +0 -177
  83. package/dist/anti-drift/state.js.map +0 -1
  84. package/dist/anti-drift/state.test.js +0 -120
  85. package/dist/chat/adapters/discord.d.ts +0 -41
  86. package/dist/chat/adapters/discord.d.ts.map +0 -1
  87. package/dist/chat/adapters/discord.js +0 -176
  88. package/dist/chat/adapters/discord.js.map +0 -1
  89. package/dist/chat/adapters/discord.test.js +0 -25
  90. package/dist/chat/adapters/slack.d.ts +0 -43
  91. package/dist/chat/adapters/slack.d.ts.map +0 -1
  92. package/dist/chat/adapters/slack.js +0 -172
  93. package/dist/chat/adapters/slack.js.map +0 -1
  94. package/dist/chat/adapters/slack.test.js +0 -30
  95. package/dist/chat/adapters/telegram.d.ts +0 -148
  96. package/dist/chat/adapters/telegram.d.ts.map +0 -1
  97. package/dist/chat/adapters/telegram.js +0 -498
  98. package/dist/chat/adapters/telegram.js.map +0 -1
  99. package/dist/chat/adapters/telegram.test.js +0 -94
  100. package/dist/chat/config.d.ts +0 -98
  101. package/dist/chat/config.d.ts.map +0 -1
  102. package/dist/chat/config.js +0 -185
  103. package/dist/chat/config.js.map +0 -1
  104. package/dist/chat/daemon/active-project.d.ts +0 -17
  105. package/dist/chat/daemon/active-project.d.ts.map +0 -1
  106. package/dist/chat/daemon/active-project.js +0 -23
  107. package/dist/chat/daemon/active-project.js.map +0 -1
  108. package/dist/chat/daemon/autospawn.d.ts +0 -40
  109. package/dist/chat/daemon/autospawn.d.ts.map +0 -1
  110. package/dist/chat/daemon/autospawn.js +0 -129
  111. package/dist/chat/daemon/autospawn.js.map +0 -1
  112. package/dist/chat/daemon/autospawn.test.js +0 -112
  113. package/dist/chat/daemon/cli.d.ts +0 -18
  114. package/dist/chat/daemon/cli.d.ts.map +0 -1
  115. package/dist/chat/daemon/cli.js +0 -71
  116. package/dist/chat/daemon/cli.js.map +0 -1
  117. package/dist/chat/daemon/collisions.js +0 -384
  118. package/dist/chat/daemon/health-check.d.ts +0 -69
  119. package/dist/chat/daemon/health-check.d.ts.map +0 -1
  120. package/dist/chat/daemon/health-check.js +0 -112
  121. package/dist/chat/daemon/health-check.js.map +0 -1
  122. package/dist/chat/daemon/inbox-read.d.ts +0 -35
  123. package/dist/chat/daemon/inbox-read.d.ts.map +0 -1
  124. package/dist/chat/daemon/inbox-read.js +0 -75
  125. package/dist/chat/daemon/inbox-read.js.map +0 -1
  126. package/dist/chat/daemon/inbox-read.test.js +0 -97
  127. package/dist/chat/daemon/inbox.d.ts +0 -63
  128. package/dist/chat/daemon/inbox.d.ts.map +0 -1
  129. package/dist/chat/daemon/inbox.js +0 -56
  130. package/dist/chat/daemon/inbox.js.map +0 -1
  131. package/dist/chat/daemon/inbox.test.js +0 -110
  132. package/dist/chat/daemon/lifecycle.d.ts +0 -71
  133. package/dist/chat/daemon/lifecycle.d.ts.map +0 -1
  134. package/dist/chat/daemon/lifecycle.js +0 -221
  135. package/dist/chat/daemon/lifecycle.js.map +0 -1
  136. package/dist/chat/daemon/lifecycle.test.js +0 -163
  137. package/dist/chat/daemon/protocol.d.ts +0 -107
  138. package/dist/chat/daemon/protocol.d.ts.map +0 -1
  139. package/dist/chat/daemon/protocol.js +0 -54
  140. package/dist/chat/daemon/protocol.js.map +0 -1
  141. package/dist/chat/daemon/routing.d.ts +0 -140
  142. package/dist/chat/daemon/routing.d.ts.map +0 -1
  143. package/dist/chat/daemon/routing.js +0 -198
  144. package/dist/chat/daemon/routing.js.map +0 -1
  145. package/dist/chat/daemon/routing.test.js +0 -259
  146. package/dist/chat/daemon/rpc-client.d.ts +0 -45
  147. package/dist/chat/daemon/rpc-client.d.ts.map +0 -1
  148. package/dist/chat/daemon/rpc-client.js +0 -133
  149. package/dist/chat/daemon/rpc-client.js.map +0 -1
  150. package/dist/chat/daemon/rpc-server.d.ts +0 -39
  151. package/dist/chat/daemon/rpc-server.d.ts.map +0 -1
  152. package/dist/chat/daemon/rpc-server.js +0 -385
  153. package/dist/chat/daemon/rpc-server.js.map +0 -1
  154. package/dist/chat/daemon/rpc.test.js +0 -177
  155. package/dist/chat/daemon/subscribers.js +0 -257
  156. package/dist/chat/daemon/worker.d.ts +0 -27
  157. package/dist/chat/daemon/worker.d.ts.map +0 -1
  158. package/dist/chat/daemon/worker.js +0 -313
  159. package/dist/chat/daemon/worker.js.map +0 -1
  160. package/dist/chat/daemon/workspace-topic.js +0 -324
  161. package/dist/chat/env-token.d.ts +0 -60
  162. package/dist/chat/env-token.d.ts.map +0 -1
  163. package/dist/chat/env-token.js +0 -137
  164. package/dist/chat/env-token.js.map +0 -1
  165. package/dist/chat/env-token.test.js +0 -160
  166. package/dist/chat/factory.d.ts +0 -30
  167. package/dist/chat/factory.d.ts.map +0 -1
  168. package/dist/chat/factory.js +0 -50
  169. package/dist/chat/factory.js.map +0 -1
  170. package/dist/chat/factory.test.js +0 -55
  171. package/dist/chat/gateway.d.ts +0 -176
  172. package/dist/chat/gateway.d.ts.map +0 -1
  173. package/dist/chat/gateway.js +0 -146
  174. package/dist/chat/gateway.js.map +0 -1
  175. package/dist/chat/gateway.test.js +0 -192
  176. package/dist/claude-md.d.ts +0 -39
  177. package/dist/claude-md.d.ts.map +0 -1
  178. package/dist/claude-md.js +0 -113
  179. package/dist/claude-md.js.map +0 -1
  180. package/dist/claude-md.test.js +0 -91
  181. package/dist/codex/activate.d.ts +0 -66
  182. package/dist/codex/activate.d.ts.map +0 -1
  183. package/dist/codex/activate.js +0 -329
  184. package/dist/codex/activate.js.map +0 -1
  185. package/dist/codex/activate.test.js +0 -229
  186. package/dist/codex/bundled-default/bundled-default.test.js +0 -161
  187. package/dist/codex/cli-publish.test.js +0 -133
  188. package/dist/codex/cli.d.ts +0 -35
  189. package/dist/codex/cli.d.ts.map +0 -1
  190. package/dist/codex/cli.js +0 -554
  191. package/dist/codex/cli.js.map +0 -1
  192. package/dist/codex/cli.test.js +0 -277
  193. package/dist/codex/import-skill-md.d.ts +0 -53
  194. package/dist/codex/import-skill-md.d.ts.map +0 -1
  195. package/dist/codex/import-skill-md.js +0 -236
  196. package/dist/codex/import-skill-md.js.map +0 -1
  197. package/dist/codex/import-skill-md.test.js +0 -225
  198. package/dist/codex/loader.d.ts +0 -27
  199. package/dist/codex/loader.d.ts.map +0 -1
  200. package/dist/codex/loader.js +0 -86
  201. package/dist/codex/loader.js.map +0 -1
  202. package/dist/codex/loader.test.js +0 -75
  203. package/dist/codex/parse.d.ts +0 -28
  204. package/dist/codex/parse.d.ts.map +0 -1
  205. package/dist/codex/parse.js +0 -309
  206. package/dist/codex/parse.js.map +0 -1
  207. package/dist/codex/parse.test.js +0 -241
  208. package/dist/codex/store.d.ts +0 -87
  209. package/dist/codex/store.d.ts.map +0 -1
  210. package/dist/codex/store.js +0 -205
  211. package/dist/codex/store.js.map +0 -1
  212. package/dist/codex/store.test.js +0 -242
  213. package/dist/codex/types.d.ts +0 -398
  214. package/dist/codex/types.d.ts.map +0 -1
  215. package/dist/codex/types.js +0 -21
  216. package/dist/codex/types.js.map +0 -1
  217. package/dist/config.d.ts +0 -53
  218. package/dist/config.d.ts.map +0 -1
  219. package/dist/config.js +0 -202
  220. package/dist/config.js.map +0 -1
  221. package/dist/config.test.js +0 -117
  222. package/dist/engine/cli.d.ts +0 -14
  223. package/dist/engine/cli.d.ts.map +0 -1
  224. package/dist/engine/cli.js +0 -171
  225. package/dist/engine/cli.js.map +0 -1
  226. package/dist/engine/client.d.ts +0 -219
  227. package/dist/engine/client.d.ts.map +0 -1
  228. package/dist/engine/client.js +0 -312
  229. package/dist/engine/client.js.map +0 -1
  230. package/dist/engine/config.d.ts +0 -62
  231. package/dist/engine/config.d.ts.map +0 -1
  232. package/dist/engine/config.js +0 -223
  233. package/dist/engine/config.js.map +0 -1
  234. package/dist/engine/index.d.ts +0 -17
  235. package/dist/engine/index.d.ts.map +0 -1
  236. package/dist/engine/index.js +0 -16
  237. package/dist/engine/index.js.map +0 -1
  238. package/dist/engine/resolver.d.ts +0 -62
  239. package/dist/engine/resolver.d.ts.map +0 -1
  240. package/dist/engine/resolver.js +0 -103
  241. package/dist/engine/resolver.js.map +0 -1
  242. package/dist/engine/singleton.d.ts +0 -95
  243. package/dist/engine/singleton.d.ts.map +0 -1
  244. package/dist/engine/singleton.js +0 -325
  245. package/dist/engine/singleton.js.map +0 -1
  246. package/dist/engine/types.d.ts +0 -402
  247. package/dist/engine/types.d.ts.map +0 -1
  248. package/dist/engine/types.js +0 -22
  249. package/dist/engine/types.js.map +0 -1
  250. package/dist/engine-binary-resolver.js +0 -110
  251. package/dist/engine-binary-resolver.test.js +0 -61
  252. package/dist/engine-cli.js +0 -60
  253. package/dist/engine-client.js +0 -301
  254. package/dist/engine-client.test.js +0 -118
  255. package/dist/functions/chain_state.d.ts +0 -51
  256. package/dist/functions/chain_state.d.ts.map +0 -1
  257. package/dist/functions/chain_state.js +0 -59
  258. package/dist/functions/chain_state.js.map +0 -1
  259. package/dist/hooks/drift-catalog.d.ts +0 -68
  260. package/dist/hooks/drift-catalog.d.ts.map +0 -1
  261. package/dist/hooks/drift-catalog.js +0 -184
  262. package/dist/hooks/drift-catalog.js.map +0 -1
  263. package/dist/hooks/drift-catalog.test.js +0 -154
  264. package/dist/hooks/drift-patterns.d.ts +0 -110
  265. package/dist/hooks/drift-patterns.d.ts.map +0 -1
  266. package/dist/hooks/drift-patterns.js +0 -289
  267. package/dist/hooks/drift-patterns.js.map +0 -1
  268. package/dist/hooks/drift-patterns.test.js +0 -325
  269. package/dist/hooks/engine-vocab-gate.d.ts +0 -108
  270. package/dist/hooks/engine-vocab-gate.d.ts.map +0 -1
  271. package/dist/hooks/engine-vocab-gate.js +0 -225
  272. package/dist/hooks/engine-vocab-gate.js.map +0 -1
  273. package/dist/hooks/engine-vocab-gate.test.js +0 -170
  274. package/dist/hooks/heartbeat.d.ts +0 -107
  275. package/dist/hooks/heartbeat.d.ts.map +0 -1
  276. package/dist/hooks/heartbeat.js +0 -316
  277. package/dist/hooks/heartbeat.js.map +0 -1
  278. package/dist/hooks/heartbeat.test.js +0 -393
  279. package/dist/hooks/honesty-ledger-session-scope.test.js +0 -100
  280. package/dist/hooks/honesty-ledger.d.ts +0 -123
  281. package/dist/hooks/honesty-ledger.d.ts.map +0 -1
  282. package/dist/hooks/honesty-ledger.js +0 -226
  283. package/dist/hooks/honesty-ledger.js.map +0 -1
  284. package/dist/hooks/honesty-ledger.test.js +0 -466
  285. package/dist/hooks/inline-report-check.d.ts +0 -63
  286. package/dist/hooks/inline-report-check.d.ts.map +0 -1
  287. package/dist/hooks/inline-report-check.js +0 -88
  288. package/dist/hooks/inline-report-check.js.map +0 -1
  289. package/dist/hooks/inline-report-check.test.js +0 -96
  290. package/dist/hooks/pre-tool-use.d.ts +0 -62
  291. package/dist/hooks/pre-tool-use.d.ts.map +0 -1
  292. package/dist/hooks/pre-tool-use.js +0 -342
  293. package/dist/hooks/pre-tool-use.js.map +0 -1
  294. package/dist/hooks/pre-tool-use.test.js +0 -134
  295. package/dist/hooks/session-end.d.ts +0 -15
  296. package/dist/hooks/session-end.d.ts.map +0 -1
  297. package/dist/hooks/session-end.js +0 -60
  298. package/dist/hooks/session-end.js.map +0 -1
  299. package/dist/hooks/session-end.test.js +0 -52
  300. package/dist/hooks/stop.d.ts +0 -35
  301. package/dist/hooks/stop.d.ts.map +0 -1
  302. package/dist/hooks/stop.js +0 -136
  303. package/dist/hooks/stop.js.map +0 -1
  304. package/dist/hooks/transcript-active-task.test.js +0 -342
  305. package/dist/hooks/transcript.d.ts +0 -26
  306. package/dist/hooks/transcript.d.ts.map +0 -1
  307. package/dist/hooks/transcript.js +0 -266
  308. package/dist/hooks/transcript.js.map +0 -1
  309. package/dist/hooks/transcript.test.js +0 -103
  310. package/dist/hooks/user-prompt-submit.d.ts +0 -74
  311. package/dist/hooks/user-prompt-submit.d.ts.map +0 -1
  312. package/dist/hooks/user-prompt-submit.js +0 -256
  313. package/dist/hooks/user-prompt-submit.js.map +0 -1
  314. package/dist/hooks/user-prompt-submit.test.js +0 -118
  315. package/dist/hooks/versioning-gate.d.ts +0 -101
  316. package/dist/hooks/versioning-gate.d.ts.map +0 -1
  317. package/dist/hooks/versioning-gate.js +0 -245
  318. package/dist/hooks/versioning-gate.js.map +0 -1
  319. package/dist/hooks/versioning-gate.test.js +0 -368
  320. package/dist/hooks/workflow-gate.d.ts +0 -64
  321. package/dist/hooks/workflow-gate.d.ts.map +0 -1
  322. package/dist/hooks/workflow-gate.js +0 -152
  323. package/dist/hooks/workflow-gate.js.map +0 -1
  324. package/dist/hooks/workflow-gate.test.js +0 -197
  325. package/dist/hooks-cli.d.ts +0 -25
  326. package/dist/hooks-cli.d.ts.map +0 -1
  327. package/dist/hooks-cli.js +0 -286
  328. package/dist/hooks-cli.js.map +0 -1
  329. package/dist/hooks-cli.test.js +0 -148
  330. package/dist/origin.d.ts +0 -16
  331. package/dist/origin.d.ts.map +0 -1
  332. package/dist/origin.js +0 -92
  333. package/dist/origin.js.map +0 -1
  334. package/dist/packs/seed_lessons_ingest.d.ts +0 -30
  335. package/dist/packs/seed_lessons_ingest.d.ts.map +0 -1
  336. package/dist/packs/seed_lessons_ingest.js +0 -107
  337. package/dist/packs/seed_lessons_ingest.js.map +0 -1
  338. package/dist/project-cli.d.ts +0 -7
  339. package/dist/project-cli.d.ts.map +0 -1
  340. package/dist/project-cli.js +0 -145
  341. package/dist/project-cli.js.map +0 -1
  342. package/dist/project.d.ts +0 -127
  343. package/dist/project.d.ts.map +0 -1
  344. package/dist/project.js +0 -281
  345. package/dist/project.js.map +0 -1
  346. package/dist/project.test.js +0 -287
  347. package/dist/rag/backends/loop_engine.d.ts +0 -61
  348. package/dist/rag/backends/loop_engine.d.ts.map +0 -1
  349. package/dist/rag/backends/loop_engine.js +0 -160
  350. package/dist/rag/backends/loop_engine.js.map +0 -1
  351. package/dist/recall.d.ts +0 -82
  352. package/dist/recall.d.ts.map +0 -1
  353. package/dist/recall.js +0 -81
  354. package/dist/recall.js.map +0 -1
  355. package/dist/runtime/agent_bridge/autospawn.d.ts +0 -131
  356. package/dist/runtime/agent_bridge/autospawn.d.ts.map +0 -1
  357. package/dist/runtime/agent_bridge/autospawn.js +0 -251
  358. package/dist/runtime/agent_bridge/autospawn.js.map +0 -1
  359. package/dist/runtime/chain_state.d.ts +0 -124
  360. package/dist/runtime/chain_state.d.ts.map +0 -1
  361. package/dist/runtime/chain_state.js +0 -189
  362. package/dist/runtime/chain_state.js.map +0 -1
  363. package/dist/runtime/hooks/permission_decision.d.ts +0 -34
  364. package/dist/runtime/hooks/permission_decision.d.ts.map +0 -1
  365. package/dist/runtime/hooks/permission_decision.js +0 -39
  366. package/dist/runtime/hooks/permission_decision.js.map +0 -1
  367. package/dist/runtime/workflow_fsm.d.ts +0 -21
  368. package/dist/runtime/workflow_fsm.d.ts.map +0 -1
  369. package/dist/runtime/workflow_fsm.js +0 -25
  370. package/dist/runtime/workflow_fsm.js.map +0 -1
  371. package/dist/runtime/workflow_map.d.ts +0 -26
  372. package/dist/runtime/workflow_map.d.ts.map +0 -1
  373. package/dist/runtime/workflow_map.js +0 -38
  374. package/dist/runtime/workflow_map.js.map +0 -1
  375. package/dist/scope.d.ts +0 -48
  376. package/dist/scope.d.ts.map +0 -1
  377. package/dist/scope.js +0 -111
  378. package/dist/scope.js.map +0 -1
  379. package/dist/setup/cli/topic_create_step.d.ts +0 -84
  380. package/dist/setup/cli/topic_create_step.d.ts.map +0 -1
  381. package/dist/setup/cli/topic_create_step.js +0 -213
  382. package/dist/setup/cli/topic_create_step.js.map +0 -1
  383. package/dist/system-export.d.ts +0 -65
  384. package/dist/system-export.d.ts.map +0 -1
  385. package/dist/system-export.js +0 -194
  386. package/dist/system-export.js.map +0 -1
  387. package/dist/utterance/classifier.d.ts +0 -53
  388. package/dist/utterance/classifier.d.ts.map +0 -1
  389. package/dist/utterance/classifier.js +0 -184
  390. package/dist/utterance/classifier.js.map +0 -1
  391. package/dist/utterance/classifier.test.js +0 -147
@@ -1,219 +0,0 @@
1
- /**
2
- * JSON-RPC 2.0 client for the loop-engine daemon.
3
- *
4
- * Connects to a long-running engine process at
5
- * `~/.opensquid/loop-engine.sock` via Unix domain socket. The daemon
6
- * is acquired-or-spawned by `acquireOrSpawnEngine()` (singleton.ts),
7
- * so multiple `EngineClient` instances across hooks + sessions share
8
- * the same underlying engine process — the keystone for cross-session
9
- * memory recall.
10
- *
11
- * Critical invariants (T.1 audit + T.4 spec):
12
- *
13
- * 1. **Singleton transport** — `EngineClient` no longer owns a
14
- * subprocess. It holds a `net.Socket` connection to a shared
15
- * daemon. Engine lifecycle lives in `singleton.ts`; closing a
16
- * client only closes the connection, not the engine.
17
- *
18
- * 2. **LOOP_HOME pin** (T.1.D) — handled by `singleton.ts` at spawn
19
- * time. Engine defaults `~/.loop`; opensquid pins to
20
- * `~/.opensquid`. Stripping the pin would make existing memories
21
- * + lessons silently invisible.
22
- *
23
- * 3. **Auto-reconnect on socket close** — if the daemon restarts
24
- * (kill -9, OOM, manual `engine kill`), the next `call()` will
25
- * re-acquire via the singleton. Pending calls reject so callers
26
- * can retry.
27
- *
28
- * 4. **Error wire shape** — five engine-custom codes in
29
- * `-32000..=-32004` range. `RpcError` carries `.code` + `.data`
30
- * so callers branch on the structured field, not the message.
31
- *
32
- * 5. **Authored_by wire encoding** — INPUT accepts `'user' | 'pack'`
33
- * (else maps to engine's `Llm` default); OUTPUT is
34
- * `'user' | 'pack' | 'agent'` (`Llm` renders as `"agent"`).
35
- *
36
- * 6. **Windows fallback** — UDS is Unix-only. On Windows,
37
- * `acquireOrSpawnEngine()` throws; callers wrap with a feature
38
- * flag (`OPENSQUID_ENGINE_SOCKET=disable`) to fall back to the
39
- * legacy per-process stdio spawn (NOT implemented here yet —
40
- * tracked as T.8 follow-up).
41
- *
42
- * Types live in `./types.js` — this file owns the transport + class.
43
- */
44
- import type { CompressParams, CompressResult, ConsolidateParams, ConsolidateResult, CreateMemoryResult, GetMemoryResult, LessonCaptureFeedbackResult, LessonCreateParams, LessonCreateResult, LessonDiscardResult, LessonListResult, LessonPromoteResult, LessonRecallResult, LessonSupersedeResult, ManifestAssembleParams, ManifestAssembleResult, MemoryDeleteResult, MemoryListResult, MemoryOrigin, MemoryScope, MemorySearchParams, MemorySearchResult, MemoryUpdateResult, RecomputeCitationsResult, ScopeFilterWire, TaskGetLedgerResult, TaskLogPhaseResult } from './types.js';
45
- /**
46
- * JSON-RPC error response surfaced as a JS Error subclass. `.code` +
47
- * `.data` carry the engine-side fields so callers can branch without
48
- * pattern-matching `.message`.
49
- */
50
- export declare class RpcError extends Error {
51
- readonly code: number;
52
- readonly data?: unknown;
53
- constructor(message: string, code: number, data?: unknown);
54
- }
55
- /**
56
- * Engine error codes (verified against engine/src/serve.rs:226-258).
57
- *
58
- * Standard JSON-RPC range (-32700 / -32600 / -32601 / -32602 / -32603)
59
- * is mirrored for completeness. Engine-custom codes occupy
60
- * `-32000..=-32004` and carry a structured `data` payload per T.1.E.
61
- */
62
- export declare const ENGINE_ERROR: {
63
- readonly PARSE: -32700;
64
- readonly INVALID_REQUEST: -32600;
65
- readonly METHOD_NOT_FOUND: -32601;
66
- readonly INVALID_PARAMS: -32602;
67
- readonly INTERNAL: -32603;
68
- /** data: { reasons: string[] } — kebab-case reasons per T.1.E + T.1.F */
69
- readonly PROMOTION_BLOCKED: -32000;
70
- /** data: { lesson_id: string } */
71
- readonly USER_LESSON_IMMUNE: -32001;
72
- /** data: { id: string } */
73
- readonly NOT_FOUND: -32002;
74
- /** data: { memory_id: string, cited_by: number } */
75
- readonly USER_MEMORY_IMMUNE: -32003;
76
- /** data: { reason: string } */
77
- readonly SUPERSEDE_BLOCKED: -32004;
78
- };
79
- /**
80
- * Socket + JSON-RPC plumbing. One instance ≡ one connection to the
81
- * shared engine daemon. Connection is established lazily on first
82
- * `call`. Survives daemon restarts: when the socket closes, the next
83
- * call re-acquires via `acquireOrSpawnEngine()`.
84
- */
85
- export declare class EngineClient {
86
- private socket;
87
- private reader;
88
- private pending;
89
- private nextId;
90
- private startupAck;
91
- private spawnedByUs;
92
- ping(): Promise<{
93
- ok: true;
94
- version: string;
95
- }>;
96
- lessonCreate(p: LessonCreateParams): Promise<LessonCreateResult>;
97
- lessonRecall(p: {
98
- query: string;
99
- limit?: number;
100
- }): Promise<LessonRecallResult>;
101
- lessonPromote(p: {
102
- id: string;
103
- }): Promise<LessonPromoteResult>;
104
- lessonDiscard(p: {
105
- id: string;
106
- reason?: string;
107
- force?: boolean;
108
- }): Promise<LessonDiscardResult>;
109
- lessonList(p: {
110
- statuses?: string[];
111
- limit?: number;
112
- offset?: number;
113
- }): Promise<LessonListResult>;
114
- lessonCaptureFeedback(p: {
115
- id: string;
116
- polarity: 'thumbs_up' | 'thumbs_down';
117
- source_signal_id?: string;
118
- }): Promise<LessonCaptureFeedbackResult>;
119
- lessonSupersede(p: {
120
- old_id: string;
121
- new_id: string;
122
- force?: boolean;
123
- }): Promise<LessonSupersedeResult>;
124
- memoryCreate(p: {
125
- description: string;
126
- content: string;
127
- authored_by?: string;
128
- scope?: MemoryScope;
129
- origin?: MemoryOrigin;
130
- }): Promise<CreateMemoryResult>;
131
- memorySearch(p: MemorySearchParams): Promise<MemorySearchResult>;
132
- memoryGet(p: {
133
- id: string;
134
- }): Promise<GetMemoryResult>;
135
- memoryList(p: {
136
- scope_filter?: ScopeFilterWire;
137
- limit?: number;
138
- offset?: number;
139
- }): Promise<MemoryListResult>;
140
- memoryUpdate(p: {
141
- id: string;
142
- description?: string;
143
- content?: string;
144
- scope?: MemoryScope;
145
- }): Promise<MemoryUpdateResult>;
146
- memoryDelete(p: {
147
- id: string;
148
- force?: boolean;
149
- }): Promise<MemoryDeleteResult>;
150
- /**
151
- * Compress a window of memories into one gist `Mc` (CMP.1). Pure
152
- * exposure of the engine's `compress()` lib fn — mints `Mc` with
153
- * `derived_from = ids` + summed citation counters; does NOT delete
154
- * predecessors (that is the host's verified, gated terminal step).
155
- */
156
- memoryCompress(p: CompressParams): Promise<CompressResult>;
157
- /**
158
- * Atomic safe-compression (CMP.4). The engine compresses the window
159
- * into one gist `Mc`, VERIFIES via recall-replay that `Mc` preserves
160
- * each predecessor's recall, and ONLY THEN force-deletes the
161
- * NON-immune predecessors — user-cited ones are kept. Any error or
162
- * verify-miss → deletes NOTHING and returns `verified: false` with
163
- * the minted `Mc` id (so the host keeps `Mc` alongside the originals
164
- * + surfaces drift).
165
- *
166
- * The D2 safety contract (verify + immunity + fail-closed) is
167
- * GUARANTEED inside the engine (race-free, universal substrate
168
- * integrity) — the host no longer runs recall-replay or issues any
169
- * `memory.delete` in the compression path.
170
- */
171
- memoryConsolidate(p: ConsolidateParams): Promise<ConsolidateResult>;
172
- /**
173
- * Recompute every memory's `consumed_by_user_lessons` counter to
174
- * ground truth (CMP.1). A host runs this after a batch of
175
- * compressions / deletions to confirm citation integrity survived
176
- * the `derived_from` chain.
177
- */
178
- memoryRecomputeCitations(): Promise<RecomputeCitationsResult>;
179
- manifestAssemble(p: ManifestAssembleParams): Promise<ManifestAssembleResult>;
180
- taskLogPhase(p: {
181
- task_id: string;
182
- phase: string;
183
- note?: string;
184
- }): Promise<TaskLogPhaseResult>;
185
- taskGetLedger(p: {
186
- task_id: string;
187
- }): Promise<TaskGetLedgerResult>;
188
- /**
189
- * Send a JSON-RPC request, await the response. Throws `RpcError` on
190
- * engine-side errors; throws `Error` on socket close mid-call.
191
- *
192
- * The startup `ping` call passes through without re-entering
193
- * `ensureConnected` to break the chicken-and-egg.
194
- */
195
- call<T = unknown>(method: string, params: unknown): Promise<T>;
196
- /**
197
- * Close the connection to the engine daemon. Does NOT kill the
198
- * daemon — engine lifecycle is owned by `singleton.ts` (and by
199
- * T.7's `engine kill` for explicit teardown). After close(), the
200
- * next `call()` will re-acquire.
201
- */
202
- close(): Promise<void>;
203
- /**
204
- * Returns true if this client's last connection was the one that
205
- * spawned the engine daemon. Useful for telemetry — production
206
- * callers should not rely on this for correctness.
207
- */
208
- get didSpawnEngine(): boolean;
209
- private ensureConnected;
210
- private onLine;
211
- /**
212
- * Clear connection state on close so the next call re-acquires.
213
- * Mirrors the pre-T.4 behavior for subprocess exits — the daemon
214
- * may restart out-of-band (kill -9, OOM, T.7 `engine kill`) and
215
- * the next call should transparently respawn / reconnect.
216
- */
217
- private onClose;
218
- }
219
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/engine/client.ts"],"names":[],"mappings":"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"}
@@ -1,312 +0,0 @@
1
- /**
2
- * JSON-RPC 2.0 client for the loop-engine daemon.
3
- *
4
- * Connects to a long-running engine process at
5
- * `~/.opensquid/loop-engine.sock` via Unix domain socket. The daemon
6
- * is acquired-or-spawned by `acquireOrSpawnEngine()` (singleton.ts),
7
- * so multiple `EngineClient` instances across hooks + sessions share
8
- * the same underlying engine process — the keystone for cross-session
9
- * memory recall.
10
- *
11
- * Critical invariants (T.1 audit + T.4 spec):
12
- *
13
- * 1. **Singleton transport** — `EngineClient` no longer owns a
14
- * subprocess. It holds a `net.Socket` connection to a shared
15
- * daemon. Engine lifecycle lives in `singleton.ts`; closing a
16
- * client only closes the connection, not the engine.
17
- *
18
- * 2. **LOOP_HOME pin** (T.1.D) — handled by `singleton.ts` at spawn
19
- * time. Engine defaults `~/.loop`; opensquid pins to
20
- * `~/.opensquid`. Stripping the pin would make existing memories
21
- * + lessons silently invisible.
22
- *
23
- * 3. **Auto-reconnect on socket close** — if the daemon restarts
24
- * (kill -9, OOM, manual `engine kill`), the next `call()` will
25
- * re-acquire via the singleton. Pending calls reject so callers
26
- * can retry.
27
- *
28
- * 4. **Error wire shape** — five engine-custom codes in
29
- * `-32000..=-32004` range. `RpcError` carries `.code` + `.data`
30
- * so callers branch on the structured field, not the message.
31
- *
32
- * 5. **Authored_by wire encoding** — INPUT accepts `'user' | 'pack'`
33
- * (else maps to engine's `Llm` default); OUTPUT is
34
- * `'user' | 'pack' | 'agent'` (`Llm` renders as `"agent"`).
35
- *
36
- * 6. **Windows fallback** — UDS is Unix-only. On Windows,
37
- * `acquireOrSpawnEngine()` throws; callers wrap with a feature
38
- * flag (`OPENSQUID_ENGINE_SOCKET=disable`) to fall back to the
39
- * legacy per-process stdio spawn (NOT implemented here yet —
40
- * tracked as T.8 follow-up).
41
- *
42
- * Types live in `./types.js` — this file owns the transport + class.
43
- */
44
- import { createInterface } from 'node:readline';
45
- import { acquireOrSpawnEngine } from './singleton.js';
46
- /**
47
- * JSON-RPC error response surfaced as a JS Error subclass. `.code` +
48
- * `.data` carry the engine-side fields so callers can branch without
49
- * pattern-matching `.message`.
50
- */
51
- export class RpcError extends Error {
52
- code;
53
- data;
54
- constructor(message, code, data) {
55
- super(message);
56
- this.name = 'RpcError';
57
- this.code = code;
58
- this.data = data;
59
- }
60
- }
61
- /**
62
- * Engine error codes (verified against engine/src/serve.rs:226-258).
63
- *
64
- * Standard JSON-RPC range (-32700 / -32600 / -32601 / -32602 / -32603)
65
- * is mirrored for completeness. Engine-custom codes occupy
66
- * `-32000..=-32004` and carry a structured `data` payload per T.1.E.
67
- */
68
- export const ENGINE_ERROR = {
69
- PARSE: -32700,
70
- INVALID_REQUEST: -32600,
71
- METHOD_NOT_FOUND: -32601,
72
- INVALID_PARAMS: -32602,
73
- INTERNAL: -32603,
74
- /** data: { reasons: string[] } — kebab-case reasons per T.1.E + T.1.F */
75
- PROMOTION_BLOCKED: -32000,
76
- /** data: { lesson_id: string } */
77
- USER_LESSON_IMMUNE: -32001,
78
- /** data: { id: string } */
79
- NOT_FOUND: -32002,
80
- /** data: { memory_id: string, cited_by: number } */
81
- USER_MEMORY_IMMUNE: -32003,
82
- /** data: { reason: string } */
83
- SUPERSEDE_BLOCKED: -32004,
84
- };
85
- /**
86
- * Socket + JSON-RPC plumbing. One instance ≡ one connection to the
87
- * shared engine daemon. Connection is established lazily on first
88
- * `call`. Survives daemon restarts: when the socket closes, the next
89
- * call re-acquires via `acquireOrSpawnEngine()`.
90
- */
91
- export class EngineClient {
92
- socket = null;
93
- reader = null;
94
- pending = new Map();
95
- nextId = 1;
96
- startupAck = null;
97
- spawnedByUs = false;
98
- // --- typed wrappers per JSON-RPC method (engine serve.rs:290-310) ---
99
- async ping() {
100
- return this.call('ping', {});
101
- }
102
- async lessonCreate(p) {
103
- return this.call('lesson.create', p);
104
- }
105
- async lessonRecall(p) {
106
- return this.call('lesson.recall', p);
107
- }
108
- async lessonPromote(p) {
109
- return this.call('lesson.promote', p);
110
- }
111
- async lessonDiscard(p) {
112
- return this.call('lesson.discard', p);
113
- }
114
- async lessonList(p) {
115
- return this.call('lesson.list', p);
116
- }
117
- async lessonCaptureFeedback(p) {
118
- return this.call('lesson.capture_feedback', p);
119
- }
120
- async lessonSupersede(p) {
121
- return this.call('lesson.supersede', p);
122
- }
123
- async memoryCreate(p) {
124
- return this.call('memory.create', p);
125
- }
126
- async memorySearch(p) {
127
- return this.call('memory.search', p);
128
- }
129
- async memoryGet(p) {
130
- return this.call('memory.get', p);
131
- }
132
- async memoryList(p) {
133
- return this.call('memory.list', p);
134
- }
135
- async memoryUpdate(p) {
136
- return this.call('memory.update', p);
137
- }
138
- async memoryDelete(p) {
139
- return this.call('memory.delete', p);
140
- }
141
- /**
142
- * Compress a window of memories into one gist `Mc` (CMP.1). Pure
143
- * exposure of the engine's `compress()` lib fn — mints `Mc` with
144
- * `derived_from = ids` + summed citation counters; does NOT delete
145
- * predecessors (that is the host's verified, gated terminal step).
146
- */
147
- async memoryCompress(p) {
148
- return this.call('memory.compress', p);
149
- }
150
- /**
151
- * Atomic safe-compression (CMP.4). The engine compresses the window
152
- * into one gist `Mc`, VERIFIES via recall-replay that `Mc` preserves
153
- * each predecessor's recall, and ONLY THEN force-deletes the
154
- * NON-immune predecessors — user-cited ones are kept. Any error or
155
- * verify-miss → deletes NOTHING and returns `verified: false` with
156
- * the minted `Mc` id (so the host keeps `Mc` alongside the originals
157
- * + surfaces drift).
158
- *
159
- * The D2 safety contract (verify + immunity + fail-closed) is
160
- * GUARANTEED inside the engine (race-free, universal substrate
161
- * integrity) — the host no longer runs recall-replay or issues any
162
- * `memory.delete` in the compression path.
163
- */
164
- async memoryConsolidate(p) {
165
- return this.call('memory.consolidate', p);
166
- }
167
- /**
168
- * Recompute every memory's `consumed_by_user_lessons` counter to
169
- * ground truth (CMP.1). A host runs this after a batch of
170
- * compressions / deletions to confirm citation integrity survived
171
- * the `derived_from` chain.
172
- */
173
- async memoryRecomputeCitations() {
174
- return this.call('memory.recompute_citations', {});
175
- }
176
- async manifestAssemble(p) {
177
- return this.call('manifest.assemble', p);
178
- }
179
- async taskLogPhase(p) {
180
- return this.call('task.log_phase', p);
181
- }
182
- async taskGetLedger(p) {
183
- return this.call('task.get_ledger', p);
184
- }
185
- // --- transport ------------------------------------------------------
186
- /**
187
- * Send a JSON-RPC request, await the response. Throws `RpcError` on
188
- * engine-side errors; throws `Error` on socket close mid-call.
189
- *
190
- * The startup `ping` call passes through without re-entering
191
- * `ensureConnected` to break the chicken-and-egg.
192
- */
193
- async call(method, params) {
194
- if (method !== 'ping' || this.socket === null) {
195
- await this.ensureConnected();
196
- }
197
- const id = this.nextId++;
198
- return new Promise((resolve, reject) => {
199
- this.pending.set(id, {
200
- resolve: (v) => resolve(v),
201
- reject,
202
- });
203
- const sock = this.socket;
204
- if (!sock) {
205
- this.pending.delete(id);
206
- reject(new Error('engine connection not established'));
207
- return;
208
- }
209
- const line = JSON.stringify({ jsonrpc: '2.0', id, method, params }) + '\n';
210
- sock.write(line);
211
- });
212
- }
213
- /**
214
- * Close the connection to the engine daemon. Does NOT kill the
215
- * daemon — engine lifecycle is owned by `singleton.ts` (and by
216
- * T.7's `engine kill` for explicit teardown). After close(), the
217
- * next `call()` will re-acquire.
218
- */
219
- async close() {
220
- const sock = this.socket;
221
- if (!sock)
222
- return;
223
- return new Promise((resolve) => {
224
- // If the socket is already closed, end() is a noop and `close`
225
- // fires synchronously on the next tick.
226
- sock.once('close', () => resolve());
227
- sock.end();
228
- });
229
- }
230
- /**
231
- * Returns true if this client's last connection was the one that
232
- * spawned the engine daemon. Useful for telemetry — production
233
- * callers should not rely on this for correctness.
234
- */
235
- get didSpawnEngine() {
236
- return this.spawnedByUs;
237
- }
238
- // --- internals ------------------------------------------------------
239
- async ensureConnected() {
240
- if (this.socket)
241
- return;
242
- if (this.startupAck)
243
- return this.startupAck;
244
- // Acquire or spawn. Singleton handles the lock, recheck, spawn,
245
- // pidfile, and socket-wait — this module just consumes the result.
246
- const { socket, spawnedByUs } = await acquireOrSpawnEngine();
247
- this.socket = socket;
248
- this.spawnedByUs = spawnedByUs;
249
- // Line-framed JSON-RPC over the socket. `createInterface` strips
250
- // '\n' and emits per-line events. Same plumbing as the legacy
251
- // stdio path — only the underlying stream changed.
252
- this.reader = createInterface({ input: socket });
253
- this.reader.on('line', (line) => {
254
- this.onLine(line);
255
- });
256
- socket.on('close', () => this.onClose('socket closed'));
257
- socket.on('error', (err) => {
258
- process.stderr.write(`[opensquid] engine socket error: ${err.message}\n`);
259
- });
260
- // Confirm liveness before returning. A successful ping proves the
261
- // daemon is past rehydrate + ready to dispatch.
262
- this.startupAck = this.call('ping', {})
263
- .then(() => undefined)
264
- .catch((e) => {
265
- throw new Error(`engine handshake failed: ${e.message}`);
266
- });
267
- return this.startupAck;
268
- }
269
- onLine(line) {
270
- const trimmed = line.trim();
271
- if (!trimmed)
272
- return;
273
- let msg;
274
- try {
275
- msg = JSON.parse(trimmed);
276
- }
277
- catch (e) {
278
- process.stderr.write(`[opensquid] failed to parse engine line: ${String(e)}\n`);
279
- return;
280
- }
281
- const pending = this.pending.get(msg.id);
282
- if (!pending) {
283
- process.stderr.write(`[opensquid] response for unknown id=${String(msg.id)}\n`);
284
- return;
285
- }
286
- this.pending.delete(msg.id);
287
- if (msg.error) {
288
- pending.reject(new RpcError(msg.error.message, msg.error.code, msg.error.data));
289
- }
290
- else {
291
- pending.resolve(msg.result);
292
- }
293
- }
294
- /**
295
- * Clear connection state on close so the next call re-acquires.
296
- * Mirrors the pre-T.4 behavior for subprocess exits — the daemon
297
- * may restart out-of-band (kill -9, OOM, T.7 `engine kill`) and
298
- * the next call should transparently respawn / reconnect.
299
- */
300
- onClose(reason) {
301
- process.stderr.write(`[opensquid] engine connection closed: ${reason}\n`);
302
- this.socket = null;
303
- this.reader = null;
304
- this.startupAck = null;
305
- this.spawnedByUs = false;
306
- for (const [, pending] of this.pending) {
307
- pending.reject(new Error(`loop-engine connection lost: ${reason}`));
308
- }
309
- this.pending.clear();
310
- }
311
- }
312
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/engine/client.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- /**
2
- * Engine binary discovery + persisted-path management.
3
- *
4
- * Resolution chain (per T.1 audit §J + src.legacy precedent):
5
- * 1. `OPENSQUID_ENGINE_BIN` env var — explicit override, always wins
6
- * 2. `~/.opensquid/engine-config.json` `engine_bin` field — persisted choice
7
- * 3. Bundled npm optional dep (`opensquid-engine-<platform>-<arch>`)
8
- * — returns `null` until npm stubs ship (follow-up track)
9
- * 4. Auto-search dev paths under `~/projects/*` and `~/work/*`
10
- * 5. `loop-engine` on `$PATH`
11
- * 6. `null` — caller surfaces a helpful error
12
- *
13
- * First successful resolution from (4) or (5) is persisted to
14
- * `~/.opensquid/engine-config.json` so the next session skips the search.
15
- * Bundled-binary hits (3) are NOT persisted because the path is
16
- * deterministic from the npm install layout and persisting it would
17
- * point at a stale `node_modules/` path after upgrades.
18
- *
19
- * The persisted file is engine-specific so it doesn't collide with the
20
- * existing `~/.opensquid/config.json` written by the chat-daemon stack.
21
- *
22
- * Imports `OPENSQUID_HOME` from `runtime/paths.ts` so the data root
23
- * honors the `OPENSQUID_HOME` env override (tests + relocatable installs).
24
- */
25
- export interface EngineConfig {
26
- version: 1;
27
- /** Last-known path to the loop-engine binary. */
28
- engine_bin?: string;
29
- /** ISO timestamp the engine_bin was last resolved via search. */
30
- engine_bin_resolved_at?: string;
31
- }
32
- export declare function loadEngineConfig(): Promise<EngineConfig>;
33
- export declare function saveEngineConfig(config: EngineConfig): Promise<void>;
34
- /**
35
- * Resolve the engine binary path using the priority chain above. Writes
36
- * the resolved path back to config when discovered via search so the
37
- * next session is instant. Returns `null` if no working binary could be
38
- * located.
39
- *
40
- * **Re-resolution on every start** (T.7 / T.1.P): a persisted
41
- * `engine_bin` that no longer points at an executable file is cleared
42
- * from the config and the resolver falls through to bundled → dev →
43
- * `$PATH`. This adds ~10-100ms (one extra `fs.stat`) but means a
44
- * deleted / moved / freshly-rebuilt binary silently self-heals on the
45
- * next start instead of failing loudly with `ENOENT`. Bundled hits
46
- * are NOT persisted (deterministic from npm layout); dev-path + `$PATH`
47
- * hits ARE persisted so subsequent sessions skip the search.
48
- */
49
- export declare function resolveEngineBin(): Promise<string | null>;
50
- /**
51
- * Set the engine binary path explicitly and persist. Validates that the
52
- * path points at an executable file before writing.
53
- */
54
- export declare function setEngineBin(binPath: string): Promise<{
55
- resolved: string;
56
- }>;
57
- /**
58
- * Forget the persisted engine binary path. Forces re-discovery on the
59
- * next `resolveEngineBin` call.
60
- */
61
- export declare function forgetEngineBin(): Promise<void>;
62
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/engine/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAaH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAQD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAoC9D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2C/D;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAUjF;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrD"}