opensquid 0.5.432 → 0.5.447

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/README.md +1 -0
  2. package/dist/functions/arm_scope.d.ts +27 -0
  3. package/dist/functions/arm_scope.d.ts.map +1 -0
  4. package/dist/functions/arm_scope.js +52 -0
  5. package/dist/functions/arm_scope.js.map +1 -0
  6. package/dist/functions/event.d.ts.map +1 -1
  7. package/dist/functions/event.js +18 -2
  8. package/dist/functions/event.js.map +1 -1
  9. package/dist/functions/index.d.ts +4 -0
  10. package/dist/functions/index.d.ts.map +1 -1
  11. package/dist/functions/index.js +4 -0
  12. package/dist/functions/index.js.map +1 -1
  13. package/dist/functions/inject_context.d.ts +18 -0
  14. package/dist/functions/inject_context.d.ts.map +1 -0
  15. package/dist/functions/inject_context.js +16 -0
  16. package/dist/functions/inject_context.js.map +1 -0
  17. package/dist/functions/procedure_pre_inject.d.ts +23 -0
  18. package/dist/functions/procedure_pre_inject.d.ts.map +1 -0
  19. package/dist/functions/procedure_pre_inject.js +49 -0
  20. package/dist/functions/procedure_pre_inject.js.map +1 -0
  21. package/dist/functions/registry.d.ts +6 -0
  22. package/dist/functions/registry.d.ts.map +1 -1
  23. package/dist/functions/registry.js.map +1 -1
  24. package/dist/functions/rubric_pre_inject.d.ts.map +1 -1
  25. package/dist/functions/rubric_pre_inject.js +2 -1
  26. package/dist/functions/rubric_pre_inject.js.map +1 -1
  27. package/dist/functions/set_request_type.d.ts +11 -0
  28. package/dist/functions/set_request_type.d.ts.map +1 -0
  29. package/dist/functions/set_request_type.js +34 -0
  30. package/dist/functions/set_request_type.js.map +1 -0
  31. package/dist/functions/shell_parse.d.ts +1 -0
  32. package/dist/functions/shell_parse.d.ts.map +1 -1
  33. package/dist/functions/shell_parse.js +22 -4
  34. package/dist/functions/shell_parse.js.map +1 -1
  35. package/dist/packs/loader.d.ts.map +1 -1
  36. package/dist/packs/loader.js +26 -0
  37. package/dist/packs/loader.js.map +1 -1
  38. package/dist/runtime/bootstrap.d.ts.map +1 -1
  39. package/dist/runtime/bootstrap.js +6 -0
  40. package/dist/runtime/bootstrap.js.map +1 -1
  41. package/dist/runtime/fsm_state.d.ts +6 -0
  42. package/dist/runtime/fsm_state.d.ts.map +1 -1
  43. package/dist/runtime/fsm_state.js +14 -0
  44. package/dist/runtime/fsm_state.js.map +1 -1
  45. package/dist/runtime/handoff/render.d.ts +5 -4
  46. package/dist/runtime/handoff/render.d.ts.map +1 -1
  47. package/dist/runtime/handoff/render.js +7 -7
  48. package/dist/runtime/handoff/render.js.map +1 -1
  49. package/dist/runtime/handoff/stranded_scoping.d.ts +21 -0
  50. package/dist/runtime/handoff/stranded_scoping.d.ts.map +1 -0
  51. package/dist/runtime/handoff/stranded_scoping.js +39 -0
  52. package/dist/runtime/handoff/stranded_scoping.js.map +1 -0
  53. package/dist/runtime/hooks/active_task_mirror.js +0 -0
  54. package/dist/runtime/hooks/apply_patch.js +0 -0
  55. package/dist/runtime/hooks/dispatch.d.ts.map +1 -1
  56. package/dist/runtime/hooks/dispatch.js +3 -0
  57. package/dist/runtime/hooks/dispatch.js.map +1 -1
  58. package/dist/runtime/hooks/hook_output.js +0 -0
  59. package/dist/runtime/hooks/memory_reconcile.js +0 -0
  60. package/dist/runtime/hooks/new_project_detect.js +0 -0
  61. package/dist/runtime/hooks/profession_resolver.js +0 -0
  62. package/dist/runtime/hooks/scope_intent.js +0 -0
  63. package/dist/runtime/hooks/session-start.js +17 -0
  64. package/dist/runtime/hooks/session-start.js.map +1 -1
  65. package/dist/runtime/hooks/session_id.js +0 -0
  66. package/dist/runtime/hooks/session_liveness.js +0 -0
  67. package/dist/runtime/hooks/stop_drive.js +0 -0
  68. package/dist/runtime/hooks/stop_stream.js +0 -0
  69. package/dist/runtime/hooks/subagent_guard.js +0 -0
  70. package/dist/runtime/hooks/transcript.js +0 -0
  71. package/dist/runtime/hooks/transcript_tasks.js +0 -0
  72. package/dist/runtime/hooks/user-prompt-submit.d.ts.map +1 -1
  73. package/dist/runtime/hooks/user-prompt-submit.js +22 -1
  74. package/dist/runtime/hooks/user-prompt-submit.js.map +1 -1
  75. package/dist/runtime/ralph/orchestrator.d.ts.map +1 -1
  76. package/dist/runtime/ralph/orchestrator.js +2 -1
  77. package/dist/runtime/ralph/orchestrator.js.map +1 -1
  78. package/dist/runtime/request_type.d.ts +33 -0
  79. package/dist/runtime/request_type.d.ts.map +1 -0
  80. package/dist/runtime/request_type.js +38 -0
  81. package/dist/runtime/request_type.js.map +1 -0
  82. package/dist/runtime/session_state.d.ts +11 -0
  83. package/dist/runtime/session_state.d.ts.map +1 -1
  84. package/dist/runtime/session_state.js +30 -0
  85. package/dist/runtime/session_state.js.map +1 -1
  86. package/dist/runtime/types.d.ts +5 -0
  87. package/dist/runtime/types.d.ts.map +1 -1
  88. package/dist/runtime/types.js +3 -0
  89. package/dist/runtime/types.js.map +1 -1
  90. package/dist/setup/cli/limits_state.d.ts.map +1 -1
  91. package/dist/setup/cli/limits_state.js +6 -40
  92. package/dist/setup/cli/limits_state.js.map +1 -1
  93. package/dist/setup/cli/pack_walk.d.ts +32 -0
  94. package/dist/setup/cli/pack_walk.d.ts.map +1 -0
  95. package/dist/setup/cli/pack_walk.js +76 -0
  96. package/dist/setup/cli/pack_walk.js.map +1 -0
  97. package/dist/setup/cli/permissions_state.d.ts.map +1 -1
  98. package/dist/setup/cli/permissions_state.js +6 -37
  99. package/dist/setup/cli/permissions_state.js.map +1 -1
  100. package/dist/setup/cli/triggers_state.d.ts.map +1 -1
  101. package/dist/setup/cli/triggers_state.js +3 -29
  102. package/dist/setup/cli/triggers_state.js.map +1 -1
  103. package/dist/workgraph/events.d.ts.map +1 -1
  104. package/dist/workgraph/events.js +10 -0
  105. package/dist/workgraph/events.js.map +1 -1
  106. package/dist/workgraph/store.d.ts.map +1 -1
  107. package/dist/workgraph/store.js +5 -0
  108. package/dist/workgraph/store.js.map +1 -1
  109. package/dist/workgraph/types.d.ts +2 -1
  110. package/dist/workgraph/types.d.ts.map +1 -1
  111. package/docs/ARCHITECTURE.md +268 -0
  112. package/docs/pack-runtime.md +26 -10
  113. package/package.json +5 -3
  114. package/packs/builtin/coding-flow/procedure.md +43 -0
  115. package/packs/builtin/coding-flow/skills/entry-and-handoffs/skill.yaml +49 -6
  116. package/packs/builtin/coding-flow/skills/pause-stop-guard/skill.yaml +11 -1
  117. package/packs/builtin/default-discipline/manifest.yaml +15 -6
  118. package/packs/builtin/pack-architect/skills/skill-yaml-author-walkthrough/skill.yaml +8 -0
  119. package/dist/anti-drift/evaluator.d.ts +0 -88
  120. package/dist/anti-drift/evaluator.d.ts.map +0 -1
  121. package/dist/anti-drift/evaluator.js +0 -417
  122. package/dist/anti-drift/evaluator.js.map +0 -1
  123. package/dist/anti-drift/evaluator.test.js +0 -78
  124. package/dist/anti-drift/rules.d.ts +0 -80
  125. package/dist/anti-drift/rules.d.ts.map +0 -1
  126. package/dist/anti-drift/rules.js +0 -368
  127. package/dist/anti-drift/rules.js.map +0 -1
  128. package/dist/anti-drift/rules.test.js +0 -213
  129. package/dist/anti-drift/state.d.ts +0 -107
  130. package/dist/anti-drift/state.d.ts.map +0 -1
  131. package/dist/anti-drift/state.js +0 -177
  132. package/dist/anti-drift/state.js.map +0 -1
  133. package/dist/anti-drift/state.test.js +0 -120
  134. package/dist/chat/adapters/discord.d.ts +0 -41
  135. package/dist/chat/adapters/discord.d.ts.map +0 -1
  136. package/dist/chat/adapters/discord.js +0 -176
  137. package/dist/chat/adapters/discord.js.map +0 -1
  138. package/dist/chat/adapters/discord.test.js +0 -25
  139. package/dist/chat/adapters/slack.d.ts +0 -43
  140. package/dist/chat/adapters/slack.d.ts.map +0 -1
  141. package/dist/chat/adapters/slack.js +0 -172
  142. package/dist/chat/adapters/slack.js.map +0 -1
  143. package/dist/chat/adapters/slack.test.js +0 -30
  144. package/dist/chat/adapters/telegram.d.ts +0 -148
  145. package/dist/chat/adapters/telegram.d.ts.map +0 -1
  146. package/dist/chat/adapters/telegram.js +0 -498
  147. package/dist/chat/adapters/telegram.js.map +0 -1
  148. package/dist/chat/adapters/telegram.test.js +0 -94
  149. package/dist/chat/config.d.ts +0 -98
  150. package/dist/chat/config.d.ts.map +0 -1
  151. package/dist/chat/config.js +0 -185
  152. package/dist/chat/config.js.map +0 -1
  153. package/dist/chat/daemon/active-project.d.ts +0 -17
  154. package/dist/chat/daemon/active-project.d.ts.map +0 -1
  155. package/dist/chat/daemon/active-project.js +0 -23
  156. package/dist/chat/daemon/active-project.js.map +0 -1
  157. package/dist/chat/daemon/autospawn.d.ts +0 -40
  158. package/dist/chat/daemon/autospawn.d.ts.map +0 -1
  159. package/dist/chat/daemon/autospawn.js +0 -129
  160. package/dist/chat/daemon/autospawn.js.map +0 -1
  161. package/dist/chat/daemon/autospawn.test.js +0 -112
  162. package/dist/chat/daemon/cli.d.ts +0 -18
  163. package/dist/chat/daemon/cli.d.ts.map +0 -1
  164. package/dist/chat/daemon/cli.js +0 -71
  165. package/dist/chat/daemon/cli.js.map +0 -1
  166. package/dist/chat/daemon/collisions.js +0 -384
  167. package/dist/chat/daemon/health-check.d.ts +0 -69
  168. package/dist/chat/daemon/health-check.d.ts.map +0 -1
  169. package/dist/chat/daemon/health-check.js +0 -112
  170. package/dist/chat/daemon/health-check.js.map +0 -1
  171. package/dist/chat/daemon/inbox-read.d.ts +0 -35
  172. package/dist/chat/daemon/inbox-read.d.ts.map +0 -1
  173. package/dist/chat/daemon/inbox-read.js +0 -75
  174. package/dist/chat/daemon/inbox-read.js.map +0 -1
  175. package/dist/chat/daemon/inbox-read.test.js +0 -97
  176. package/dist/chat/daemon/inbox.d.ts +0 -63
  177. package/dist/chat/daemon/inbox.d.ts.map +0 -1
  178. package/dist/chat/daemon/inbox.js +0 -56
  179. package/dist/chat/daemon/inbox.js.map +0 -1
  180. package/dist/chat/daemon/inbox.test.js +0 -110
  181. package/dist/chat/daemon/lifecycle.d.ts +0 -71
  182. package/dist/chat/daemon/lifecycle.d.ts.map +0 -1
  183. package/dist/chat/daemon/lifecycle.js +0 -221
  184. package/dist/chat/daemon/lifecycle.js.map +0 -1
  185. package/dist/chat/daemon/lifecycle.test.js +0 -163
  186. package/dist/chat/daemon/protocol.d.ts +0 -107
  187. package/dist/chat/daemon/protocol.d.ts.map +0 -1
  188. package/dist/chat/daemon/protocol.js +0 -54
  189. package/dist/chat/daemon/protocol.js.map +0 -1
  190. package/dist/chat/daemon/routing.d.ts +0 -140
  191. package/dist/chat/daemon/routing.d.ts.map +0 -1
  192. package/dist/chat/daemon/routing.js +0 -198
  193. package/dist/chat/daemon/routing.js.map +0 -1
  194. package/dist/chat/daemon/routing.test.js +0 -259
  195. package/dist/chat/daemon/rpc-client.d.ts +0 -45
  196. package/dist/chat/daemon/rpc-client.d.ts.map +0 -1
  197. package/dist/chat/daemon/rpc-client.js +0 -133
  198. package/dist/chat/daemon/rpc-client.js.map +0 -1
  199. package/dist/chat/daemon/rpc-server.d.ts +0 -39
  200. package/dist/chat/daemon/rpc-server.d.ts.map +0 -1
  201. package/dist/chat/daemon/rpc-server.js +0 -385
  202. package/dist/chat/daemon/rpc-server.js.map +0 -1
  203. package/dist/chat/daemon/rpc.test.js +0 -177
  204. package/dist/chat/daemon/subscribers.js +0 -257
  205. package/dist/chat/daemon/worker.d.ts +0 -27
  206. package/dist/chat/daemon/worker.d.ts.map +0 -1
  207. package/dist/chat/daemon/worker.js +0 -313
  208. package/dist/chat/daemon/worker.js.map +0 -1
  209. package/dist/chat/daemon/workspace-topic.js +0 -324
  210. package/dist/chat/env-token.d.ts +0 -60
  211. package/dist/chat/env-token.d.ts.map +0 -1
  212. package/dist/chat/env-token.js +0 -137
  213. package/dist/chat/env-token.js.map +0 -1
  214. package/dist/chat/env-token.test.js +0 -160
  215. package/dist/chat/factory.d.ts +0 -30
  216. package/dist/chat/factory.d.ts.map +0 -1
  217. package/dist/chat/factory.js +0 -50
  218. package/dist/chat/factory.js.map +0 -1
  219. package/dist/chat/factory.test.js +0 -55
  220. package/dist/chat/gateway.d.ts +0 -176
  221. package/dist/chat/gateway.d.ts.map +0 -1
  222. package/dist/chat/gateway.js +0 -146
  223. package/dist/chat/gateway.js.map +0 -1
  224. package/dist/chat/gateway.test.js +0 -192
  225. package/dist/claude-md.d.ts +0 -39
  226. package/dist/claude-md.d.ts.map +0 -1
  227. package/dist/claude-md.js +0 -113
  228. package/dist/claude-md.js.map +0 -1
  229. package/dist/claude-md.test.js +0 -91
  230. package/dist/codex/activate.d.ts +0 -66
  231. package/dist/codex/activate.d.ts.map +0 -1
  232. package/dist/codex/activate.js +0 -329
  233. package/dist/codex/activate.js.map +0 -1
  234. package/dist/codex/activate.test.js +0 -229
  235. package/dist/codex/bundled-default/bundled-default.test.js +0 -161
  236. package/dist/codex/cli-publish.test.js +0 -133
  237. package/dist/codex/cli.d.ts +0 -35
  238. package/dist/codex/cli.d.ts.map +0 -1
  239. package/dist/codex/cli.js +0 -554
  240. package/dist/codex/cli.js.map +0 -1
  241. package/dist/codex/cli.test.js +0 -277
  242. package/dist/codex/import-skill-md.d.ts +0 -53
  243. package/dist/codex/import-skill-md.d.ts.map +0 -1
  244. package/dist/codex/import-skill-md.js +0 -236
  245. package/dist/codex/import-skill-md.js.map +0 -1
  246. package/dist/codex/import-skill-md.test.js +0 -225
  247. package/dist/codex/loader.d.ts +0 -27
  248. package/dist/codex/loader.d.ts.map +0 -1
  249. package/dist/codex/loader.js +0 -86
  250. package/dist/codex/loader.js.map +0 -1
  251. package/dist/codex/loader.test.js +0 -75
  252. package/dist/codex/parse.d.ts +0 -28
  253. package/dist/codex/parse.d.ts.map +0 -1
  254. package/dist/codex/parse.js +0 -309
  255. package/dist/codex/parse.js.map +0 -1
  256. package/dist/codex/parse.test.js +0 -241
  257. package/dist/codex/store.d.ts +0 -87
  258. package/dist/codex/store.d.ts.map +0 -1
  259. package/dist/codex/store.js +0 -205
  260. package/dist/codex/store.js.map +0 -1
  261. package/dist/codex/store.test.js +0 -242
  262. package/dist/codex/types.d.ts +0 -398
  263. package/dist/codex/types.d.ts.map +0 -1
  264. package/dist/codex/types.js +0 -21
  265. package/dist/codex/types.js.map +0 -1
  266. package/dist/config.d.ts +0 -53
  267. package/dist/config.d.ts.map +0 -1
  268. package/dist/config.js +0 -202
  269. package/dist/config.js.map +0 -1
  270. package/dist/config.test.js +0 -117
  271. package/dist/engine/cli.d.ts +0 -14
  272. package/dist/engine/cli.d.ts.map +0 -1
  273. package/dist/engine/cli.js +0 -171
  274. package/dist/engine/cli.js.map +0 -1
  275. package/dist/engine/client.d.ts +0 -219
  276. package/dist/engine/client.d.ts.map +0 -1
  277. package/dist/engine/client.js +0 -312
  278. package/dist/engine/client.js.map +0 -1
  279. package/dist/engine/config.d.ts +0 -62
  280. package/dist/engine/config.d.ts.map +0 -1
  281. package/dist/engine/config.js +0 -223
  282. package/dist/engine/config.js.map +0 -1
  283. package/dist/engine/index.d.ts +0 -17
  284. package/dist/engine/index.d.ts.map +0 -1
  285. package/dist/engine/index.js +0 -16
  286. package/dist/engine/index.js.map +0 -1
  287. package/dist/engine/resolver.d.ts +0 -62
  288. package/dist/engine/resolver.d.ts.map +0 -1
  289. package/dist/engine/resolver.js +0 -103
  290. package/dist/engine/resolver.js.map +0 -1
  291. package/dist/engine/singleton.d.ts +0 -95
  292. package/dist/engine/singleton.d.ts.map +0 -1
  293. package/dist/engine/singleton.js +0 -325
  294. package/dist/engine/singleton.js.map +0 -1
  295. package/dist/engine/types.d.ts +0 -402
  296. package/dist/engine/types.d.ts.map +0 -1
  297. package/dist/engine/types.js +0 -22
  298. package/dist/engine/types.js.map +0 -1
  299. package/dist/engine-binary-resolver.js +0 -110
  300. package/dist/engine-binary-resolver.test.js +0 -61
  301. package/dist/engine-cli.js +0 -60
  302. package/dist/engine-client.js +0 -301
  303. package/dist/engine-client.test.js +0 -118
  304. package/dist/functions/chain_state.d.ts +0 -51
  305. package/dist/functions/chain_state.d.ts.map +0 -1
  306. package/dist/functions/chain_state.js +0 -59
  307. package/dist/functions/chain_state.js.map +0 -1
  308. package/dist/hooks/drift-catalog.d.ts +0 -68
  309. package/dist/hooks/drift-catalog.d.ts.map +0 -1
  310. package/dist/hooks/drift-catalog.js +0 -184
  311. package/dist/hooks/drift-catalog.js.map +0 -1
  312. package/dist/hooks/drift-catalog.test.js +0 -154
  313. package/dist/hooks/drift-patterns.d.ts +0 -110
  314. package/dist/hooks/drift-patterns.d.ts.map +0 -1
  315. package/dist/hooks/drift-patterns.js +0 -289
  316. package/dist/hooks/drift-patterns.js.map +0 -1
  317. package/dist/hooks/drift-patterns.test.js +0 -325
  318. package/dist/hooks/engine-vocab-gate.d.ts +0 -108
  319. package/dist/hooks/engine-vocab-gate.d.ts.map +0 -1
  320. package/dist/hooks/engine-vocab-gate.js +0 -225
  321. package/dist/hooks/engine-vocab-gate.js.map +0 -1
  322. package/dist/hooks/engine-vocab-gate.test.js +0 -170
  323. package/dist/hooks/heartbeat.d.ts +0 -107
  324. package/dist/hooks/heartbeat.d.ts.map +0 -1
  325. package/dist/hooks/heartbeat.js +0 -316
  326. package/dist/hooks/heartbeat.js.map +0 -1
  327. package/dist/hooks/heartbeat.test.js +0 -393
  328. package/dist/hooks/honesty-ledger-session-scope.test.js +0 -100
  329. package/dist/hooks/honesty-ledger.d.ts +0 -123
  330. package/dist/hooks/honesty-ledger.d.ts.map +0 -1
  331. package/dist/hooks/honesty-ledger.js +0 -226
  332. package/dist/hooks/honesty-ledger.js.map +0 -1
  333. package/dist/hooks/honesty-ledger.test.js +0 -466
  334. package/dist/hooks/inline-report-check.d.ts +0 -63
  335. package/dist/hooks/inline-report-check.d.ts.map +0 -1
  336. package/dist/hooks/inline-report-check.js +0 -88
  337. package/dist/hooks/inline-report-check.js.map +0 -1
  338. package/dist/hooks/inline-report-check.test.js +0 -96
  339. package/dist/hooks/pre-tool-use.d.ts +0 -62
  340. package/dist/hooks/pre-tool-use.d.ts.map +0 -1
  341. package/dist/hooks/pre-tool-use.js +0 -342
  342. package/dist/hooks/pre-tool-use.js.map +0 -1
  343. package/dist/hooks/pre-tool-use.test.js +0 -134
  344. package/dist/hooks/session-end.d.ts +0 -15
  345. package/dist/hooks/session-end.d.ts.map +0 -1
  346. package/dist/hooks/session-end.js +0 -60
  347. package/dist/hooks/session-end.js.map +0 -1
  348. package/dist/hooks/session-end.test.js +0 -52
  349. package/dist/hooks/stop.d.ts +0 -35
  350. package/dist/hooks/stop.d.ts.map +0 -1
  351. package/dist/hooks/stop.js +0 -136
  352. package/dist/hooks/stop.js.map +0 -1
  353. package/dist/hooks/transcript-active-task.test.js +0 -342
  354. package/dist/hooks/transcript.d.ts +0 -26
  355. package/dist/hooks/transcript.d.ts.map +0 -1
  356. package/dist/hooks/transcript.js +0 -266
  357. package/dist/hooks/transcript.js.map +0 -1
  358. package/dist/hooks/transcript.test.js +0 -103
  359. package/dist/hooks/user-prompt-submit.d.ts +0 -74
  360. package/dist/hooks/user-prompt-submit.d.ts.map +0 -1
  361. package/dist/hooks/user-prompt-submit.js +0 -256
  362. package/dist/hooks/user-prompt-submit.js.map +0 -1
  363. package/dist/hooks/user-prompt-submit.test.js +0 -118
  364. package/dist/hooks/versioning-gate.d.ts +0 -101
  365. package/dist/hooks/versioning-gate.d.ts.map +0 -1
  366. package/dist/hooks/versioning-gate.js +0 -245
  367. package/dist/hooks/versioning-gate.js.map +0 -1
  368. package/dist/hooks/versioning-gate.test.js +0 -368
  369. package/dist/hooks/workflow-gate.d.ts +0 -64
  370. package/dist/hooks/workflow-gate.d.ts.map +0 -1
  371. package/dist/hooks/workflow-gate.js +0 -152
  372. package/dist/hooks/workflow-gate.js.map +0 -1
  373. package/dist/hooks/workflow-gate.test.js +0 -197
  374. package/dist/hooks-cli.d.ts +0 -25
  375. package/dist/hooks-cli.d.ts.map +0 -1
  376. package/dist/hooks-cli.js +0 -286
  377. package/dist/hooks-cli.js.map +0 -1
  378. package/dist/hooks-cli.test.js +0 -148
  379. package/dist/origin.d.ts +0 -16
  380. package/dist/origin.d.ts.map +0 -1
  381. package/dist/origin.js +0 -92
  382. package/dist/origin.js.map +0 -1
  383. package/dist/packs/seed_lessons_ingest.d.ts +0 -30
  384. package/dist/packs/seed_lessons_ingest.d.ts.map +0 -1
  385. package/dist/packs/seed_lessons_ingest.js +0 -107
  386. package/dist/packs/seed_lessons_ingest.js.map +0 -1
  387. package/dist/project-cli.d.ts +0 -7
  388. package/dist/project-cli.d.ts.map +0 -1
  389. package/dist/project-cli.js +0 -145
  390. package/dist/project-cli.js.map +0 -1
  391. package/dist/project.d.ts +0 -127
  392. package/dist/project.d.ts.map +0 -1
  393. package/dist/project.js +0 -281
  394. package/dist/project.js.map +0 -1
  395. package/dist/project.test.js +0 -287
  396. package/dist/rag/backends/loop_engine.d.ts +0 -61
  397. package/dist/rag/backends/loop_engine.d.ts.map +0 -1
  398. package/dist/rag/backends/loop_engine.js +0 -160
  399. package/dist/rag/backends/loop_engine.js.map +0 -1
  400. package/dist/recall.d.ts +0 -82
  401. package/dist/recall.d.ts.map +0 -1
  402. package/dist/recall.js +0 -81
  403. package/dist/recall.js.map +0 -1
  404. package/dist/runtime/agent_bridge/autospawn.d.ts +0 -131
  405. package/dist/runtime/agent_bridge/autospawn.d.ts.map +0 -1
  406. package/dist/runtime/agent_bridge/autospawn.js +0 -251
  407. package/dist/runtime/agent_bridge/autospawn.js.map +0 -1
  408. package/dist/runtime/chain_state.d.ts +0 -124
  409. package/dist/runtime/chain_state.d.ts.map +0 -1
  410. package/dist/runtime/chain_state.js +0 -189
  411. package/dist/runtime/chain_state.js.map +0 -1
  412. package/dist/runtime/hooks/permission_decision.d.ts +0 -34
  413. package/dist/runtime/hooks/permission_decision.d.ts.map +0 -1
  414. package/dist/runtime/hooks/permission_decision.js +0 -39
  415. package/dist/runtime/hooks/permission_decision.js.map +0 -1
  416. package/dist/runtime/workflow_fsm.d.ts +0 -21
  417. package/dist/runtime/workflow_fsm.d.ts.map +0 -1
  418. package/dist/runtime/workflow_fsm.js +0 -25
  419. package/dist/runtime/workflow_fsm.js.map +0 -1
  420. package/dist/runtime/workflow_map.d.ts +0 -26
  421. package/dist/runtime/workflow_map.d.ts.map +0 -1
  422. package/dist/runtime/workflow_map.js +0 -38
  423. package/dist/runtime/workflow_map.js.map +0 -1
  424. package/dist/scope.d.ts +0 -48
  425. package/dist/scope.d.ts.map +0 -1
  426. package/dist/scope.js +0 -111
  427. package/dist/scope.js.map +0 -1
  428. package/dist/setup/cli/topic_create_step.d.ts +0 -84
  429. package/dist/setup/cli/topic_create_step.d.ts.map +0 -1
  430. package/dist/setup/cli/topic_create_step.js +0 -213
  431. package/dist/setup/cli/topic_create_step.js.map +0 -1
  432. package/dist/system-export.d.ts +0 -65
  433. package/dist/system-export.d.ts.map +0 -1
  434. package/dist/system-export.js +0 -194
  435. package/dist/system-export.js.map +0 -1
  436. package/dist/utterance/classifier.d.ts +0 -53
  437. package/dist/utterance/classifier.d.ts.map +0 -1
  438. package/dist/utterance/classifier.js +0 -184
  439. package/dist/utterance/classifier.js.map +0 -1
  440. package/dist/utterance/classifier.test.js +0 -147
@@ -1,223 +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
- import { promises as fs } from 'node:fs';
26
- import * as os from 'node:os';
27
- import * as path from 'node:path';
28
- import { OPENSQUID_HOME } from '../runtime/paths.js';
29
- import { resolveBundledEngineBin } from './resolver.js';
30
- const ENGINE_BIN_NAME = 'loop-engine';
31
- const ENGINE_CONFIG_FILE = 'engine-config.json';
32
- const DEFAULT_CONFIG = { version: 1 };
33
- function engineConfigPath() {
34
- return path.join(OPENSQUID_HOME(), ENGINE_CONFIG_FILE);
35
- }
36
- export async function loadEngineConfig() {
37
- let raw;
38
- try {
39
- raw = await fs.readFile(engineConfigPath(), 'utf8');
40
- }
41
- catch (e) {
42
- // Missing file is the common-case (no persisted choice yet) —
43
- // silent. Other read errors (EACCES, EIO) are unusual — warn so
44
- // users know why their persisted engine_bin isn't being picked up.
45
- const code = e.code;
46
- if (code !== 'ENOENT') {
47
- process.stderr.write(`[opensquid] engine-config read failed at ${engineConfigPath()} (${String(e)}); ` +
48
- `using defaults.\n`);
49
- }
50
- return { ...DEFAULT_CONFIG };
51
- }
52
- try {
53
- const parsed = JSON.parse(raw);
54
- if (parsed.version === 1)
55
- return parsed;
56
- // Wrong version — treat as malformed for the warning path below.
57
- process.stderr.write(`[opensquid] engine-config at ${engineConfigPath()} has unexpected version=${String(parsed.version)} (want 1); using defaults.\n`);
58
- }
59
- catch (e) {
60
- // Parse-error path is loud — a typo silently dropping the persisted
61
- // engine_bin was the bug A.05 addresses. Return default to keep boot
62
- // resilient but surface the cause so users can fix the file.
63
- process.stderr.write(`[opensquid] engine-config parse failed at ${engineConfigPath()} (${String(e)}); ` +
64
- `using defaults — fix or delete the file to silence this warning.\n`);
65
- }
66
- return { ...DEFAULT_CONFIG };
67
- }
68
- export async function saveEngineConfig(config) {
69
- const p = engineConfigPath();
70
- await fs.mkdir(path.dirname(p), { recursive: true });
71
- await fs.writeFile(p, JSON.stringify(config, null, 2) + '\n', 'utf8');
72
- }
73
- /**
74
- * Resolve the engine binary path using the priority chain above. Writes
75
- * the resolved path back to config when discovered via search so the
76
- * next session is instant. Returns `null` if no working binary could be
77
- * located.
78
- *
79
- * **Re-resolution on every start** (T.7 / T.1.P): a persisted
80
- * `engine_bin` that no longer points at an executable file is cleared
81
- * from the config and the resolver falls through to bundled → dev →
82
- * `$PATH`. This adds ~10-100ms (one extra `fs.stat`) but means a
83
- * deleted / moved / freshly-rebuilt binary silently self-heals on the
84
- * next start instead of failing loudly with `ENOENT`. Bundled hits
85
- * are NOT persisted (deterministic from npm layout); dev-path + `$PATH`
86
- * hits ARE persisted so subsequent sessions skip the search.
87
- */
88
- export async function resolveEngineBin() {
89
- const fromEnv = process.env.OPENSQUID_ENGINE_BIN?.trim();
90
- if (fromEnv)
91
- return fromEnv;
92
- let config = await loadEngineConfig();
93
- if (config.engine_bin) {
94
- if (await isExecutable(config.engine_bin)) {
95
- return config.engine_bin;
96
- }
97
- // Stale persisted path (binary deleted / moved / chmod -x).
98
- // Clear + persist so subsequent calls don't repeat the stat.
99
- delete config.engine_bin;
100
- delete config.engine_bin_resolved_at;
101
- await saveEngineConfig(config);
102
- // Reload so the in-memory `config` matches what's on disk before
103
- // the success-branch writes below mutate + save again.
104
- config = await loadEngineConfig();
105
- }
106
- const bundled = resolveBundledEngineBin();
107
- if (bundled && (await isExecutable(bundled))) {
108
- // Do NOT persist — the npm layout determines this deterministically
109
- // and persisting a `node_modules/` path makes upgrades hostile.
110
- return bundled;
111
- }
112
- const found = await searchCommonPaths();
113
- if (found) {
114
- config.engine_bin = found;
115
- config.engine_bin_resolved_at = new Date().toISOString();
116
- await saveEngineConfig(config);
117
- return found;
118
- }
119
- const onPath = await whichBinary(ENGINE_BIN_NAME);
120
- if (onPath) {
121
- config.engine_bin = onPath;
122
- config.engine_bin_resolved_at = new Date().toISOString();
123
- await saveEngineConfig(config);
124
- return onPath;
125
- }
126
- return null;
127
- }
128
- /**
129
- * Set the engine binary path explicitly and persist. Validates that the
130
- * path points at an executable file before writing.
131
- */
132
- export async function setEngineBin(binPath) {
133
- const abs = path.resolve(binPath);
134
- if (!(await isExecutable(abs))) {
135
- throw new Error(`not an executable file: ${abs}`);
136
- }
137
- const config = await loadEngineConfig();
138
- config.engine_bin = abs;
139
- config.engine_bin_resolved_at = new Date().toISOString();
140
- await saveEngineConfig(config);
141
- return { resolved: abs };
142
- }
143
- /**
144
- * Forget the persisted engine binary path. Forces re-discovery on the
145
- * next `resolveEngineBin` call.
146
- */
147
- export async function forgetEngineBin() {
148
- const config = await loadEngineConfig();
149
- delete config.engine_bin;
150
- delete config.engine_bin_resolved_at;
151
- await saveEngineConfig(config);
152
- }
153
- async function isExecutable(p) {
154
- try {
155
- const stat = await fs.stat(p);
156
- if (!stat.isFile())
157
- return false;
158
- return (stat.mode & 0o111) !== 0;
159
- }
160
- catch {
161
- return false;
162
- }
163
- }
164
- /**
165
- * Walk common dev-machine layouts looking for a release binary.
166
- * Conservative — only checks paths that look like sibling projects of
167
- * the user's `$HOME`. Returns the first hit.
168
- *
169
- * Covered layouts:
170
- * ~/projects/<*>/engine/target/release/loop-engine (loop workspace)
171
- * ~/projects/<*>/target/release/loop-engine (standalone engine repo)
172
- * ~/work/<*>/{engine,}/target/release/loop-engine (alt convention)
173
- */
174
- async function searchCommonPaths() {
175
- const home = os.homedir();
176
- const candidates = [];
177
- const projectsRoot = path.join(home, 'projects');
178
- try {
179
- const dirs = await fs.readdir(projectsRoot, { withFileTypes: true });
180
- for (const entry of dirs) {
181
- if (!entry.isDirectory())
182
- continue;
183
- candidates.push(path.join(projectsRoot, entry.name, 'engine', 'target', 'release', ENGINE_BIN_NAME), path.join(projectsRoot, entry.name, 'target', 'release', ENGINE_BIN_NAME));
184
- }
185
- }
186
- catch {
187
- // ~/projects doesn't exist — skip.
188
- }
189
- const workRoot = path.join(home, 'work');
190
- try {
191
- const dirs = await fs.readdir(workRoot, { withFileTypes: true });
192
- for (const entry of dirs) {
193
- if (!entry.isDirectory())
194
- continue;
195
- candidates.push(path.join(workRoot, entry.name, 'engine', 'target', 'release', ENGINE_BIN_NAME), path.join(workRoot, entry.name, 'target', 'release', ENGINE_BIN_NAME));
196
- }
197
- }
198
- catch {
199
- // ~/work doesn't exist — skip.
200
- }
201
- for (const cand of candidates) {
202
- if (await isExecutable(cand))
203
- return cand;
204
- }
205
- return null;
206
- }
207
- /**
208
- * Cross-platform `which` — search $PATH for an executable named `bin`.
209
- * Returns absolute path or null.
210
- */
211
- async function whichBinary(bin) {
212
- const pathEnv = process.env.PATH ?? '';
213
- const sep = process.platform === 'win32' ? ';' : ':';
214
- for (const dir of pathEnv.split(sep)) {
215
- if (!dir)
216
- continue;
217
- const candidate = path.join(dir, bin);
218
- if (await isExecutable(candidate))
219
- return candidate;
220
- }
221
- return null;
222
- }
223
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/engine/config.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Barrel re-export for `opensquid` engine integration.
3
- *
4
- * Public surface:
5
- * - EngineClient + RpcError + ENGINE_ERROR (`./client.js`)
6
- * - resolveEngineBin / setEngineBin / forgetEngineBin / loadEngineConfig
7
- * (`./config.js`)
8
- * - resolveBundledEngineBin + platform probe helpers (`./resolver.js`)
9
- * - registerEngineCli + EngineCliError (`./cli.js`)
10
- * - All wire-shape types (`./types.js`)
11
- */
12
- export { EngineClient, ENGINE_ERROR, RpcError } from './client.js';
13
- export { forgetEngineBin, loadEngineConfig, resolveEngineBin, saveEngineConfig, setEngineBin, type EngineConfig, } from './config.js';
14
- export { binaryNameForPlatform, currentPlatform, packageForPlatform, resolveBundledEngineBin, type PlatformProbe, } from './resolver.js';
15
- export { EngineCliError, registerEngineCli } from './cli.js';
16
- export type { CreateMemoryResult, GetMemoryResult, LessonCaptureFeedbackResult, LessonCreateParams, LessonCreateResult, LessonDiscardResult, LessonListResult, LessonListRow, LessonPromoteResult, LessonRecallHit, LessonRecallResult, LessonSupersedeResult, ManifestActiveLesson, ManifestAssembleParams, ManifestAssembleResult, ManifestMemory, MemoryDeleteResult, MemoryListResult, MemoryListRow, MemoryOrigin, MemoryScope, MemorySearchHit, MemorySearchParams, MemorySearchResult, MemoryUpdateResult, ScopeFilterWire, TaskGetLedgerResult, TaskLogPhaseResult, } from './types.js';
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7D,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Barrel re-export for `opensquid` engine integration.
3
- *
4
- * Public surface:
5
- * - EngineClient + RpcError + ENGINE_ERROR (`./client.js`)
6
- * - resolveEngineBin / setEngineBin / forgetEngineBin / loadEngineConfig
7
- * (`./config.js`)
8
- * - resolveBundledEngineBin + platform probe helpers (`./resolver.js`)
9
- * - registerEngineCli + EngineCliError (`./cli.js`)
10
- * - All wire-shape types (`./types.js`)
11
- */
12
- export { EngineClient, ENGINE_ERROR, RpcError } from './client.js';
13
- export { forgetEngineBin, loadEngineConfig, resolveEngineBin, saveEngineConfig, setEngineBin, } from './config.js';
14
- export { binaryNameForPlatform, currentPlatform, packageForPlatform, resolveBundledEngineBin, } from './resolver.js';
15
- export { EngineCliError, registerEngineCli } from './cli.js';
16
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GAEb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
@@ -1,62 +0,0 @@
1
- /**
2
- * Bundled-binary resolver for the loop-engine subprocess.
3
- *
4
- * Pattern: esbuild / biomejs / swc — main opensquid package would declare
5
- * 6 platform-specific packages as `optionalDependencies`; each one ships
6
- * a single binary at `bin/loop-engine` (or `.exe` on Windows). npm's
7
- * `os`/`cpu` fields cause wrong-platform packages to skip install, so on
8
- * any given host exactly one optional dep is present and provides the
9
- * right binary.
10
- *
11
- * NOTE: opensquid 0.5.108 ships LOCAL-BUILD ONLY (per T.1.J §10). The
12
- * `optionalDependencies` block is not yet declared in package.json — npm
13
- * stubs land in a follow-up track. This resolver returns `null` on every
14
- * call until then, and callers fall through to `config.ts` dev-path +
15
- * `$PATH` discovery. The mapping table is kept now so the wiring is
16
- * already correct when stubs land.
17
- *
18
- * Runtime path:
19
- * 1. Map `(process.platform, process.arch)` → optional-dep name.
20
- * 2. Try `createRequire(import.meta.url).resolve(...)` on that
21
- * package's package.json. Returns `<dir>/bin/<name>` if installed.
22
- * 3. If not installed (npm `--no-optional`, wrong-platform install,
23
- * local pre-publish dev), return `null`. Caller falls back to the
24
- * dev-path + $PATH chain in `config.ts`.
25
- *
26
- * Resolution is synchronous + side-effect-free.
27
- */
28
- export interface PlatformProbe {
29
- platform: NodeJS.Platform;
30
- arch: string;
31
- }
32
- /**
33
- * Compute the (platform, arch) tuple for the current process. Wrapped
34
- * for unit testability — tests inject a synthetic probe.
35
- */
36
- export declare function currentPlatform(): PlatformProbe;
37
- /**
38
- * Look up the optional-dep package name for a given platform. Returns
39
- * `null` when the (platform, arch) pair isn't in the supported matrix.
40
- */
41
- export declare function packageForPlatform(probe: PlatformProbe): string | null;
42
- /**
43
- * Look up the binary filename for a given platform (`.exe` on Windows).
44
- */
45
- export declare function binaryNameForPlatform(probe: PlatformProbe): string | null;
46
- /**
47
- * Resolve the bundled binary path via the optional-dep mechanism.
48
- *
49
- * Returns `null` when:
50
- * - the current (platform, arch) isn't in the supported matrix,
51
- * - the optional dep isn't installed (pre-publish dev, npm
52
- * `--no-optional`, wrong-platform install), or
53
- * - the dep is installed but the expected `bin/<name>` file is missing
54
- * (broken publish — diagnostic-only; caller falls through).
55
- *
56
- * v0.6c audit fix: use `path.dirname + path.join` not string slice — on
57
- * Windows `require.resolve` returns `\` separators; slicing on the
58
- * `"/package.json".length` suffix would silently mis-strip and the
59
- * concatenation would mix separators.
60
- */
61
- export declare function resolveBundledEngineBin(probe?: PlatformProbe): string | null;
62
- //# sourceMappingURL=resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/engine/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAoCH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,aAAa,CAE/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAGtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAGzE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,GAAE,aAAiC,GAAG,MAAM,GAAG,IAAI,CAa/F"}
@@ -1,103 +0,0 @@
1
- /**
2
- * Bundled-binary resolver for the loop-engine subprocess.
3
- *
4
- * Pattern: esbuild / biomejs / swc — main opensquid package would declare
5
- * 6 platform-specific packages as `optionalDependencies`; each one ships
6
- * a single binary at `bin/loop-engine` (or `.exe` on Windows). npm's
7
- * `os`/`cpu` fields cause wrong-platform packages to skip install, so on
8
- * any given host exactly one optional dep is present and provides the
9
- * right binary.
10
- *
11
- * NOTE: opensquid 0.5.108 ships LOCAL-BUILD ONLY (per T.1.J §10). The
12
- * `optionalDependencies` block is not yet declared in package.json — npm
13
- * stubs land in a follow-up track. This resolver returns `null` on every
14
- * call until then, and callers fall through to `config.ts` dev-path +
15
- * `$PATH` discovery. The mapping table is kept now so the wiring is
16
- * already correct when stubs land.
17
- *
18
- * Runtime path:
19
- * 1. Map `(process.platform, process.arch)` → optional-dep name.
20
- * 2. Try `createRequire(import.meta.url).resolve(...)` on that
21
- * package's package.json. Returns `<dir>/bin/<name>` if installed.
22
- * 3. If not installed (npm `--no-optional`, wrong-platform install,
23
- * local pre-publish dev), return `null`. Caller falls back to the
24
- * dev-path + $PATH chain in `config.ts`.
25
- *
26
- * Resolution is synchronous + side-effect-free.
27
- */
28
- import { createRequire } from 'node:module';
29
- import * as path from 'node:path';
30
- /**
31
- * Supported targets and their optional-dep package names. Stays in sync
32
- * with `optionalDependencies` in package.json (when added) and with the
33
- * loop-engine release matrix. If you change any of those, change all.
34
- */
35
- const PACKAGE_FOR_PLATFORM = {
36
- 'darwin-x64': 'opensquid-engine-darwin-x64',
37
- 'darwin-arm64': 'opensquid-engine-darwin-arm64',
38
- 'linux-x64': 'opensquid-engine-linux-x64',
39
- 'linux-arm64': 'opensquid-engine-linux-arm64',
40
- 'win32-x64': 'opensquid-engine-win32-x64',
41
- 'win32-arm64': 'opensquid-engine-win32-arm64',
42
- };
43
- const BIN_NAME_FOR_PLATFORM = {
44
- 'darwin-x64': 'loop-engine',
45
- 'darwin-arm64': 'loop-engine',
46
- 'linux-x64': 'loop-engine',
47
- 'linux-arm64': 'loop-engine',
48
- 'win32-x64': 'loop-engine.exe',
49
- 'win32-arm64': 'loop-engine.exe',
50
- };
51
- /**
52
- * Compute the (platform, arch) tuple for the current process. Wrapped
53
- * for unit testability — tests inject a synthetic probe.
54
- */
55
- export function currentPlatform() {
56
- return { platform: process.platform, arch: process.arch };
57
- }
58
- /**
59
- * Look up the optional-dep package name for a given platform. Returns
60
- * `null` when the (platform, arch) pair isn't in the supported matrix.
61
- */
62
- export function packageForPlatform(probe) {
63
- const key = `${probe.platform}-${probe.arch}`;
64
- return PACKAGE_FOR_PLATFORM[key] ?? null;
65
- }
66
- /**
67
- * Look up the binary filename for a given platform (`.exe` on Windows).
68
- */
69
- export function binaryNameForPlatform(probe) {
70
- const key = `${probe.platform}-${probe.arch}`;
71
- return BIN_NAME_FOR_PLATFORM[key] ?? null;
72
- }
73
- /**
74
- * Resolve the bundled binary path via the optional-dep mechanism.
75
- *
76
- * Returns `null` when:
77
- * - the current (platform, arch) isn't in the supported matrix,
78
- * - the optional dep isn't installed (pre-publish dev, npm
79
- * `--no-optional`, wrong-platform install), or
80
- * - the dep is installed but the expected `bin/<name>` file is missing
81
- * (broken publish — diagnostic-only; caller falls through).
82
- *
83
- * v0.6c audit fix: use `path.dirname + path.join` not string slice — on
84
- * Windows `require.resolve` returns `\` separators; slicing on the
85
- * `"/package.json".length` suffix would silently mis-strip and the
86
- * concatenation would mix separators.
87
- */
88
- export function resolveBundledEngineBin(probe = currentPlatform()) {
89
- const pkg = packageForPlatform(probe);
90
- const binName = binaryNameForPlatform(probe);
91
- if (!pkg || !binName)
92
- return null;
93
- const req = createRequire(import.meta.url);
94
- try {
95
- const pkgJson = req.resolve(`${pkg}/package.json`);
96
- return path.join(path.dirname(pkgJson), 'bin', binName);
97
- }
98
- catch {
99
- // MODULE_NOT_FOUND — optional dep not installed for this host.
100
- return null;
101
- }
102
- }
103
- //# sourceMappingURL=resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/engine/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAUlC;;;;GAIG;AACH,MAAM,oBAAoB,GAAgC;IACxD,YAAY,EAAE,6BAA6B;IAC3C,cAAc,EAAE,+BAA+B;IAC/C,WAAW,EAAE,4BAA4B;IACzC,aAAa,EAAE,8BAA8B;IAC7C,WAAW,EAAE,4BAA4B;IACzC,aAAa,EAAE,8BAA8B;CAC9C,CAAC;AAEF,MAAM,qBAAqB,GAAgC;IACzD,YAAY,EAAE,aAAa;IAC3B,cAAc,EAAE,aAAa;IAC7B,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,iBAAiB;IAC9B,aAAa,EAAE,iBAAiB;CACjC,CAAC;AAOF;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAiB,CAAC;IAC7D,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAoB;IACxD,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAiB,CAAC;IAC7D,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAuB,eAAe,EAAE;IAC9E,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,eAAe,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,95 +0,0 @@
1
- /**
2
- * Daemon-singleton acquire-or-spawn for the loop-engine UDS daemon.
3
- *
4
- * One engine process per host. All opensquid hooks + sessions share
5
- * the same engine over a Unix domain socket at
6
- * `~/.opensquid/loop-engine.sock`. This is the keystone for cross-
7
- * session memory recall — session A writes a memory, session B reads
8
- * it through the same engine without per-process spawn cost.
9
- *
10
- * Flow (per spec T.4 / audit T.1.Y + T.1.Z + T.1.BB + T.1.DD):
11
- *
12
- * 1. Windows guard — UDS is Unix-only; named-pipe support is a
13
- * follow-up. Windows callers fall back to per-process stdio spawn
14
- * by setting `OPENSQUID_ENGINE_SOCKET=disable` upstream.
15
- *
16
- * 2. Path-byte guard — macOS limits UDS paths to 104 bytes (Linux
17
- * 108). `~/.opensquid/loop-engine.sock` ≈ 30 chars on typical
18
- * homes, but exotic `$HOME` values can exceed it. Refuse at 100
19
- * to leave margin.
20
- *
21
- * 3. Fast path — if the socket file exists, try to connect. Success
22
- * means an engine is already running; return the socket with
23
- * `spawnedByUs: false`. ECONNREFUSED means the file is stale (a
24
- * previous engine crashed without unlinking); unlink and fall
25
- * through to the spawn path.
26
- *
27
- * 4. Slow path (lock + spawn):
28
- * a. Touch `~/.opensquid/loop-engine.lock` so `proper-lockfile`
29
- * has a stable inode to lock against.
30
- * b. Acquire the lock with retry — serializes concurrent spawn
31
- * attempts across multiple opensquid processes.
32
- * c. RECHECK after the lock: another process may have spawned
33
- * the engine while we waited. If yes, connect + return.
34
- * d. Resolve the engine binary via existing `resolveEngineBin()`.
35
- * e. Spawn detached + `stdio: 'ignore'` so the engine outlives
36
- * the parent (true daemon semantics). `'inherit'` would hold
37
- * the parent's stdout/stderr pipes open and block parent exit
38
- * (per subprocess-lifecycle audit). Engine logs route to
39
- * /dev/null in this mode; `RUST_LOG=...` + a redirect-to-file
40
- * is the workaround if diagnostics are needed.
41
- * f. Write `~/.opensquid/loop-engine.pid` with the spawned pid
42
- * BEFORE `proc.unref()` so T.7's `engine kill` command can
43
- * find it.
44
- * g. `proc.unref()` — let the parent event loop exit without
45
- * waiting on the engine.
46
- * h. Wait for the socket file to appear (engine binds before
47
- * accept; 10s budget covers cold-start HNSW rehydrate of
48
- * ~76 memories on typical hardware).
49
- * i. Connect; return with `spawnedByUs: true`.
50
- *
51
- * 5. Always release the lock in a `finally` block.
52
- *
53
- * NOT a singleton class — exported as a plain async function so
54
- * callers can compose / inject without instance state. Concurrency
55
- * safety lives in `proper-lockfile`, not in this module.
56
- */
57
- import { type Socket } from 'node:net';
58
- /** Engine socket path. Override `OPENSQUID_HOME` to relocate. */
59
- export declare function engineSocketPath(): string;
60
- /** Lock file used to serialize concurrent spawn attempts. */
61
- export declare function engineLockPath(): string;
62
- /**
63
- * Pidfile path used by `engine kill` (T.7). Written after spawn
64
- * returns, before `unref()`. Note: the engine process itself does
65
- * NOT manage this file — opensquid owns its lifecycle since opensquid
66
- * is the one that spawned the engine. T.7 will add a startup-time
67
- * cleanup hook for the spawned-by-us case.
68
- */
69
- export declare function enginePidPath(): string;
70
- export interface EngineConnection {
71
- /** Connected socket to the engine's UDS endpoint. */
72
- socket: Socket;
73
- /**
74
- * `true` when this caller's invocation was the one that spawned the
75
- * engine process (cold start path). `false` when an existing engine
76
- * was found and connected to (warm path). Useful for telemetry +
77
- * test assertions; production callers usually ignore it.
78
- */
79
- spawnedByUs: boolean;
80
- }
81
- /**
82
- * Acquire a connection to the shared loop-engine daemon, spawning
83
- * one if none is running. Safe to call concurrently from multiple
84
- * processes — `proper-lockfile` serializes spawn attempts so only
85
- * one engine starts per `~/.opensquid/loop-engine.sock` lifetime.
86
- *
87
- * Throws on:
88
- * - Windows (UDS unsupported; use stdio mode upstream)
89
- * - socket path exceeds platform byte limit
90
- * - engine binary not resolvable
91
- * - socket never appears within `SOCKET_WAIT_TIMEOUT_MS`
92
- * - underlying spawn / connect / lock errors
93
- */
94
- export declare function acquireOrSpawnEngine(): Promise<EngineConnection>;
95
- //# sourceMappingURL=singleton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/engine/singleton.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAKH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAoChD,iEAAiE;AACjE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAcD,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAkJtE"}