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,325 +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 { existsSync } from 'node:fs';
58
- import { open, unlink, writeFile } from 'node:fs/promises';
59
- import { spawn } from 'node:child_process';
60
- import { connect } from 'node:net';
61
- import { join } from 'node:path';
62
- import { homedir } from 'node:os';
63
- import lockfile from 'proper-lockfile';
64
- import { resolveEngineBin } from './config.js';
65
- // ---- Constants -----------------------------------------------------
66
- // Layout under `~/.opensquid/`. Keep all three colocated so cleanup
67
- // scripts can `rm ~/.opensquid/loop-engine.*` without hunting.
68
- const SOCK_FILENAME = 'loop-engine.sock';
69
- const LOCK_FILENAME = 'loop-engine.lock';
70
- const PID_FILENAME = 'loop-engine.pid';
71
- /**
72
- * macOS sockaddr_un caps the path at 104 bytes; Linux at 108. We
73
- * guard at 100 to leave margin for either platform. Failure here is
74
- * fast + actionable — the alternative is a cryptic `ENAMETOOLONG`
75
- * from `bind(2)` deep inside engine startup.
76
- */
77
- const SOCKET_PATH_BYTE_LIMIT = 100;
78
- /**
79
- * Cold-start budget for the engine. Bind happens in <500ms cold, but
80
- * HNSW rehydrate of ~76 memories adds 1-3s on typical hardware.
81
- * 10s is forgiving without making real failure modes (missing
82
- * binary, wrong --socket path) feel slow.
83
- */
84
- const SOCKET_WAIT_TIMEOUT_MS = 10_000;
85
- const SOCKET_WAIT_POLL_INTERVAL_MS = 50;
86
- // ---- Path helpers --------------------------------------------------
87
- /** Engine socket path. Override `OPENSQUID_HOME` to relocate. */
88
- export function engineSocketPath() {
89
- return join(opensquidHome(), SOCK_FILENAME);
90
- }
91
- /** Lock file used to serialize concurrent spawn attempts. */
92
- export function engineLockPath() {
93
- return join(opensquidHome(), LOCK_FILENAME);
94
- }
95
- /**
96
- * Pidfile path used by `engine kill` (T.7). Written after spawn
97
- * returns, before `unref()`. Note: the engine process itself does
98
- * NOT manage this file — opensquid owns its lifecycle since opensquid
99
- * is the one that spawned the engine. T.7 will add a startup-time
100
- * cleanup hook for the spawned-by-us case.
101
- */
102
- export function enginePidPath() {
103
- return join(opensquidHome(), PID_FILENAME);
104
- }
105
- function opensquidHome() {
106
- // Mirrors `OPENSQUID_HOME` resolution from runtime/paths.ts without
107
- // importing it (avoid cycles + keep this module's import surface
108
- // narrow). Override semantics: env wins → default `~/.opensquid`.
109
- const env = process.env.OPENSQUID_HOME?.trim();
110
- // `??` would let an empty-string env through; we want to fall back
111
- // on empty just like on undefined, so guard explicitly.
112
- return env && env.length > 0 ? env : join(homedir(), '.opensquid');
113
- }
114
- /**
115
- * Acquire a connection to the shared loop-engine daemon, spawning
116
- * one if none is running. Safe to call concurrently from multiple
117
- * processes — `proper-lockfile` serializes spawn attempts so only
118
- * one engine starts per `~/.opensquid/loop-engine.sock` lifetime.
119
- *
120
- * Throws on:
121
- * - Windows (UDS unsupported; use stdio mode upstream)
122
- * - socket path exceeds platform byte limit
123
- * - engine binary not resolvable
124
- * - socket never appears within `SOCKET_WAIT_TIMEOUT_MS`
125
- * - underlying spawn / connect / lock errors
126
- */
127
- export async function acquireOrSpawnEngine() {
128
- // Windows: UDS isn't supported (engine returns an error on this
129
- // path too). Throw clearly so callers can route around it rather
130
- // than failing deep in `net.connect`.
131
- if (process.platform === 'win32') {
132
- throw new Error('UDS singleton not supported on Windows yet; ' +
133
- 'set OPENSQUID_ENGINE_SOCKET=disable to fall back to per-process stdio spawn');
134
- }
135
- const sockPath = engineSocketPath();
136
- if (Buffer.byteLength(sockPath, 'utf8') > SOCKET_PATH_BYTE_LIMIT) {
137
- throw new Error(`UDS path ${sockPath} exceeds ${SOCKET_PATH_BYTE_LIMIT}-byte limit ` +
138
- `(macOS=104, Linux=108). Move OPENSQUID_HOME to a shorter path.`);
139
- }
140
- // Fast path: existing engine.
141
- if (existsSync(sockPath)) {
142
- const warm = await tryConnect(sockPath).catch(() => null);
143
- if (warm) {
144
- return { socket: warm, spawnedByUs: false };
145
- }
146
- // ECONNREFUSED → stale socket file. Drop it; fall through to
147
- // the lock + spawn path. Errors from unlink are swallowed (the
148
- // recheck-after-lock step will catch any residual state).
149
- await unlink(sockPath).catch(() => undefined);
150
- }
151
- // Slow path: serialize spawn attempts.
152
- await ensureOpensquidHome();
153
- const lockPath = engineLockPath();
154
- await touchFile(lockPath);
155
- const release = await lockfile.lock(lockPath, {
156
- realpath: false,
157
- retries: {
158
- retries: 5,
159
- factor: 2,
160
- minTimeout: 50,
161
- maxTimeout: 500,
162
- },
163
- // 10s stale-lock window — covers our 10s socket-wait + slack.
164
- // Without this, a crashed spawning-process would hold the lock
165
- // forever and every subsequent acquire would time out.
166
- stale: 10_000,
167
- });
168
- try {
169
- // RECHECK: another process may have raced past us between the
170
- // fast-path miss and the lock acquisition.
171
- if (existsSync(sockPath)) {
172
- const warm = await tryConnect(sockPath).catch(() => null);
173
- if (warm) {
174
- return { socket: warm, spawnedByUs: false };
175
- }
176
- await unlink(sockPath).catch(() => undefined);
177
- }
178
- const bin = await resolveEngineBin();
179
- if (!bin) {
180
- throw new Error('loop-engine binary not found. Set OPENSQUID_ENGINE_BIN, run ' +
181
- '`opensquid engine set-path <path>`, or build at ' +
182
- '~/projects/loop/engine/target/release/loop-engine');
183
- }
184
- // Detached + ignored stdio = true daemon. Both flags are
185
- // load-bearing:
186
- // - `detached: true` puts the child in its own process group so
187
- // it survives parent exit (Unix double-fork semantics).
188
- // - `stdio: ['ignore', 'ignore', 'ignore']` closes the
189
- // inherited stdio fds. `'inherit'` would hold the parent's
190
- // stdout/stderr pipes open and block parent exit (e.g. the
191
- // Node CLI would never return to the shell).
192
- //
193
- // Side effect: engine `tracing` output writes to /dev/null. If
194
- // diagnostics are needed, set `RUST_LOG` AND redirect engine
195
- // stderr to a file via a wrapper script — opensquid does not
196
- // own that policy.
197
- const proc = spawn(bin, ['serve', '--socket', sockPath], {
198
- stdio: ['ignore', 'ignore', 'ignore'],
199
- env: {
200
- ...process.env,
201
- // Pin the engine's storage root to ~/.opensquid (T.1.D regression
202
- // guard). Engine defaults to ~/.loop; without this pin, memories +
203
- // lessons written via opensquid would be invisible to subsequent
204
- // engine reads.
205
- LOOP_HOME: process.env.LOOP_HOME ?? join(homedir(), '.opensquid'),
206
- },
207
- detached: true,
208
- });
209
- // Pidfile write BEFORE `unref()` so T.7's `engine kill` can find
210
- // the pid even if the spawning Node process exits immediately.
211
- // Best-effort: a pidfile-write failure shouldn't tank the
212
- // acquire (T.7 falls back to `pgrep` if the pidfile is missing).
213
- if (proc.pid !== undefined) {
214
- await writeFile(enginePidPath(), `${String(proc.pid)}\n`, 'utf8').catch((e) => {
215
- process.stderr.write(`[opensquid] warning: failed to write engine pidfile: ${String(e)}\n`);
216
- });
217
- }
218
- // Detach the child from the parent's reference count. Without
219
- // this, the parent's event loop would stay alive waiting on the
220
- // child even though we never read its (closed) stdio.
221
- proc.unref();
222
- // Track spawn-time errors before the socket appears. Capture the
223
- // first error so we can re-throw it AS the cause instead of letting
224
- // it dead-end at stderr while waitForSocket times out 10s later
225
- // with a misleading "Timeout waiting for engine UDS at ..." message.
226
- // Spawn ENOENT (missing binary), EACCES (not executable), etc. now
227
- // surface their actual cause to the caller.
228
- let spawnErr;
229
- proc.once('error', (err) => {
230
- spawnErr = err;
231
- process.stderr.write(`[opensquid] engine spawn error: ${err.message}\n`);
232
- });
233
- try {
234
- await waitForSocket(sockPath, SOCKET_WAIT_TIMEOUT_MS);
235
- }
236
- catch (waitErr) {
237
- // Prefer the spawn error if one fired — it's the real cause.
238
- // The waitForSocket timeout is the symptom, not the diagnosis.
239
- if (spawnErr) {
240
- throw new Error(`engine spawn failed before socket appeared: ${spawnErr.message}`, {
241
- cause: spawnErr,
242
- });
243
- }
244
- throw waitErr;
245
- }
246
- const sock = await tryConnect(sockPath);
247
- return { socket: sock, spawnedByUs: true };
248
- }
249
- finally {
250
- await release().catch((e) => {
251
- // Lock release failure is informational — proper-lockfile's
252
- // stale-window will let subsequent acquires recover.
253
- process.stderr.write(`[opensquid] warning: failed to release engine spawn lock: ${String(e)}\n`);
254
- });
255
- }
256
- }
257
- // ---- Internals -----------------------------------------------------
258
- /**
259
- * Attempt a UDS connect, resolving with the socket on success and
260
- * rejecting with the connect-time error on failure. The `error`
261
- * listener doubles as the rejection path — ECONNREFUSED, ENOENT,
262
- * etc. all surface here. Caller decides whether to retry / unlink.
263
- */
264
- function tryConnect(path) {
265
- return new Promise((resolve, reject) => {
266
- const sock = connect(path);
267
- // Cleanup helper — single source of truth for listener removal
268
- // so success + failure paths don't leak.
269
- const cleanup = () => {
270
- sock.off('connect', onConnect);
271
- sock.off('error', onError);
272
- };
273
- const onConnect = () => {
274
- cleanup();
275
- resolve(sock);
276
- };
277
- const onError = (err) => {
278
- cleanup();
279
- // Make sure the failed socket doesn't linger in a half-open
280
- // state on the event loop.
281
- sock.destroy();
282
- reject(err);
283
- };
284
- sock.once('connect', onConnect);
285
- sock.once('error', onError);
286
- });
287
- }
288
- /**
289
- * Poll for socket existence with a deadline. The engine binds the
290
- * UDS BEFORE entering its accept loop, so file existence is a sound
291
- * readiness signal — `connect()` may still race for a tick or two
292
- * but `tryConnect` handles that.
293
- */
294
- async function waitForSocket(path, timeoutMs) {
295
- const start = Date.now();
296
- while (Date.now() - start < timeoutMs) {
297
- if (existsSync(path))
298
- return;
299
- await new Promise((r) => setTimeout(r, SOCKET_WAIT_POLL_INTERVAL_MS));
300
- }
301
- throw new Error(`Timeout (${String(timeoutMs)}ms) waiting for engine UDS at ${path}. ` +
302
- `Likely causes: engine binary failed to start (try OPENSQUID_ENGINE_BIN=<path> ` +
303
- `loop-engine serve --socket ${path} manually to see stderr), or HNSW ` +
304
- `rehydrate is unusually slow on this machine.`);
305
- }
306
- /**
307
- * Ensure `~/.opensquid/` exists so the lock + pidfile + socket
308
- * paths under it are writable. `mkdir -p` semantics — no error if
309
- * the dir already exists.
310
- */
311
- async function ensureOpensquidHome() {
312
- const { mkdir } = await import('node:fs/promises');
313
- await mkdir(opensquidHome(), { recursive: true });
314
- }
315
- /**
316
- * Create the lock file if it doesn't already exist.
317
- * `proper-lockfile.lock()` rejects with ENOENT if the target is
318
- * absent; this is the standard touch-then-lock idiom (matches
319
- * `src/functions/state.ts`).
320
- */
321
- async function touchFile(path) {
322
- const fh = await open(path, 'a');
323
- await fh.close();
324
- }
325
- //# sourceMappingURL=singleton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"singleton.js","sourceRoot":"","sources":["../../src/engine/singleton.ts"],"names":[],"mappings":"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"}