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,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"}