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.
- package/README.md +1 -0
- package/dist/functions/arm_scope.d.ts +27 -0
- package/dist/functions/arm_scope.d.ts.map +1 -0
- package/dist/functions/arm_scope.js +52 -0
- package/dist/functions/arm_scope.js.map +1 -0
- package/dist/functions/event.d.ts.map +1 -1
- package/dist/functions/event.js +18 -2
- package/dist/functions/event.js.map +1 -1
- package/dist/functions/index.d.ts +4 -0
- package/dist/functions/index.d.ts.map +1 -1
- package/dist/functions/index.js +4 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/inject_context.d.ts +18 -0
- package/dist/functions/inject_context.d.ts.map +1 -0
- package/dist/functions/inject_context.js +16 -0
- package/dist/functions/inject_context.js.map +1 -0
- package/dist/functions/procedure_pre_inject.d.ts +23 -0
- package/dist/functions/procedure_pre_inject.d.ts.map +1 -0
- package/dist/functions/procedure_pre_inject.js +49 -0
- package/dist/functions/procedure_pre_inject.js.map +1 -0
- package/dist/functions/registry.d.ts +6 -0
- package/dist/functions/registry.d.ts.map +1 -1
- package/dist/functions/registry.js.map +1 -1
- package/dist/functions/rubric_pre_inject.d.ts.map +1 -1
- package/dist/functions/rubric_pre_inject.js +2 -1
- package/dist/functions/rubric_pre_inject.js.map +1 -1
- package/dist/functions/set_request_type.d.ts +11 -0
- package/dist/functions/set_request_type.d.ts.map +1 -0
- package/dist/functions/set_request_type.js +34 -0
- package/dist/functions/set_request_type.js.map +1 -0
- package/dist/functions/shell_parse.d.ts +1 -0
- package/dist/functions/shell_parse.d.ts.map +1 -1
- package/dist/functions/shell_parse.js +22 -4
- package/dist/functions/shell_parse.js.map +1 -1
- package/dist/packs/loader.d.ts.map +1 -1
- package/dist/packs/loader.js +26 -0
- package/dist/packs/loader.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts.map +1 -1
- package/dist/runtime/bootstrap.js +6 -0
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/fsm_state.d.ts +6 -0
- package/dist/runtime/fsm_state.d.ts.map +1 -1
- package/dist/runtime/fsm_state.js +14 -0
- package/dist/runtime/fsm_state.js.map +1 -1
- package/dist/runtime/handoff/render.d.ts +5 -4
- package/dist/runtime/handoff/render.d.ts.map +1 -1
- package/dist/runtime/handoff/render.js +7 -7
- package/dist/runtime/handoff/render.js.map +1 -1
- package/dist/runtime/handoff/stranded_scoping.d.ts +21 -0
- package/dist/runtime/handoff/stranded_scoping.d.ts.map +1 -0
- package/dist/runtime/handoff/stranded_scoping.js +39 -0
- package/dist/runtime/handoff/stranded_scoping.js.map +1 -0
- package/dist/runtime/hooks/active_task_mirror.js +0 -0
- package/dist/runtime/hooks/apply_patch.js +0 -0
- package/dist/runtime/hooks/dispatch.d.ts.map +1 -1
- package/dist/runtime/hooks/dispatch.js +3 -0
- package/dist/runtime/hooks/dispatch.js.map +1 -1
- package/dist/runtime/hooks/hook_output.js +0 -0
- package/dist/runtime/hooks/memory_reconcile.js +0 -0
- package/dist/runtime/hooks/new_project_detect.js +0 -0
- package/dist/runtime/hooks/profession_resolver.js +0 -0
- package/dist/runtime/hooks/scope_intent.js +0 -0
- package/dist/runtime/hooks/session-start.js +17 -0
- package/dist/runtime/hooks/session-start.js.map +1 -1
- package/dist/runtime/hooks/session_id.js +0 -0
- package/dist/runtime/hooks/session_liveness.js +0 -0
- package/dist/runtime/hooks/stop_drive.js +0 -0
- package/dist/runtime/hooks/stop_stream.js +0 -0
- package/dist/runtime/hooks/subagent_guard.js +0 -0
- package/dist/runtime/hooks/transcript.js +0 -0
- package/dist/runtime/hooks/transcript_tasks.js +0 -0
- package/dist/runtime/hooks/user-prompt-submit.d.ts.map +1 -1
- package/dist/runtime/hooks/user-prompt-submit.js +22 -1
- package/dist/runtime/hooks/user-prompt-submit.js.map +1 -1
- package/dist/runtime/ralph/orchestrator.d.ts.map +1 -1
- package/dist/runtime/ralph/orchestrator.js +2 -1
- package/dist/runtime/ralph/orchestrator.js.map +1 -1
- package/dist/runtime/request_type.d.ts +33 -0
- package/dist/runtime/request_type.d.ts.map +1 -0
- package/dist/runtime/request_type.js +38 -0
- package/dist/runtime/request_type.js.map +1 -0
- package/dist/runtime/session_state.d.ts +11 -0
- package/dist/runtime/session_state.d.ts.map +1 -1
- package/dist/runtime/session_state.js +30 -0
- package/dist/runtime/session_state.js.map +1 -1
- package/dist/runtime/types.d.ts +5 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/types.js +3 -0
- package/dist/runtime/types.js.map +1 -1
- package/dist/setup/cli/limits_state.d.ts.map +1 -1
- package/dist/setup/cli/limits_state.js +6 -40
- package/dist/setup/cli/limits_state.js.map +1 -1
- package/dist/setup/cli/pack_walk.d.ts +32 -0
- package/dist/setup/cli/pack_walk.d.ts.map +1 -0
- package/dist/setup/cli/pack_walk.js +76 -0
- package/dist/setup/cli/pack_walk.js.map +1 -0
- package/dist/setup/cli/permissions_state.d.ts.map +1 -1
- package/dist/setup/cli/permissions_state.js +6 -37
- package/dist/setup/cli/permissions_state.js.map +1 -1
- package/dist/setup/cli/triggers_state.d.ts.map +1 -1
- package/dist/setup/cli/triggers_state.js +3 -29
- package/dist/setup/cli/triggers_state.js.map +1 -1
- package/dist/workgraph/events.d.ts.map +1 -1
- package/dist/workgraph/events.js +10 -0
- package/dist/workgraph/events.js.map +1 -1
- package/dist/workgraph/store.d.ts.map +1 -1
- package/dist/workgraph/store.js +5 -0
- package/dist/workgraph/store.js.map +1 -1
- package/dist/workgraph/types.d.ts +2 -1
- package/dist/workgraph/types.d.ts.map +1 -1
- package/docs/ARCHITECTURE.md +268 -0
- package/docs/pack-runtime.md +26 -10
- package/package.json +5 -3
- package/packs/builtin/coding-flow/procedure.md +43 -0
- package/packs/builtin/coding-flow/skills/entry-and-handoffs/skill.yaml +49 -6
- package/packs/builtin/coding-flow/skills/pause-stop-guard/skill.yaml +11 -1
- package/packs/builtin/default-discipline/manifest.yaml +15 -6
- package/packs/builtin/pack-architect/skills/skill-yaml-author-walkthrough/skill.yaml +8 -0
- package/dist/anti-drift/evaluator.d.ts +0 -88
- package/dist/anti-drift/evaluator.d.ts.map +0 -1
- package/dist/anti-drift/evaluator.js +0 -417
- package/dist/anti-drift/evaluator.js.map +0 -1
- package/dist/anti-drift/evaluator.test.js +0 -78
- package/dist/anti-drift/rules.d.ts +0 -80
- package/dist/anti-drift/rules.d.ts.map +0 -1
- package/dist/anti-drift/rules.js +0 -368
- package/dist/anti-drift/rules.js.map +0 -1
- package/dist/anti-drift/rules.test.js +0 -213
- package/dist/anti-drift/state.d.ts +0 -107
- package/dist/anti-drift/state.d.ts.map +0 -1
- package/dist/anti-drift/state.js +0 -177
- package/dist/anti-drift/state.js.map +0 -1
- package/dist/anti-drift/state.test.js +0 -120
- package/dist/chat/adapters/discord.d.ts +0 -41
- package/dist/chat/adapters/discord.d.ts.map +0 -1
- package/dist/chat/adapters/discord.js +0 -176
- package/dist/chat/adapters/discord.js.map +0 -1
- package/dist/chat/adapters/discord.test.js +0 -25
- package/dist/chat/adapters/slack.d.ts +0 -43
- package/dist/chat/adapters/slack.d.ts.map +0 -1
- package/dist/chat/adapters/slack.js +0 -172
- package/dist/chat/adapters/slack.js.map +0 -1
- package/dist/chat/adapters/slack.test.js +0 -30
- package/dist/chat/adapters/telegram.d.ts +0 -148
- package/dist/chat/adapters/telegram.d.ts.map +0 -1
- package/dist/chat/adapters/telegram.js +0 -498
- package/dist/chat/adapters/telegram.js.map +0 -1
- package/dist/chat/adapters/telegram.test.js +0 -94
- package/dist/chat/config.d.ts +0 -98
- package/dist/chat/config.d.ts.map +0 -1
- package/dist/chat/config.js +0 -185
- package/dist/chat/config.js.map +0 -1
- package/dist/chat/daemon/active-project.d.ts +0 -17
- package/dist/chat/daemon/active-project.d.ts.map +0 -1
- package/dist/chat/daemon/active-project.js +0 -23
- package/dist/chat/daemon/active-project.js.map +0 -1
- package/dist/chat/daemon/autospawn.d.ts +0 -40
- package/dist/chat/daemon/autospawn.d.ts.map +0 -1
- package/dist/chat/daemon/autospawn.js +0 -129
- package/dist/chat/daemon/autospawn.js.map +0 -1
- package/dist/chat/daemon/autospawn.test.js +0 -112
- package/dist/chat/daemon/cli.d.ts +0 -18
- package/dist/chat/daemon/cli.d.ts.map +0 -1
- package/dist/chat/daemon/cli.js +0 -71
- package/dist/chat/daemon/cli.js.map +0 -1
- package/dist/chat/daemon/collisions.js +0 -384
- package/dist/chat/daemon/health-check.d.ts +0 -69
- package/dist/chat/daemon/health-check.d.ts.map +0 -1
- package/dist/chat/daemon/health-check.js +0 -112
- package/dist/chat/daemon/health-check.js.map +0 -1
- package/dist/chat/daemon/inbox-read.d.ts +0 -35
- package/dist/chat/daemon/inbox-read.d.ts.map +0 -1
- package/dist/chat/daemon/inbox-read.js +0 -75
- package/dist/chat/daemon/inbox-read.js.map +0 -1
- package/dist/chat/daemon/inbox-read.test.js +0 -97
- package/dist/chat/daemon/inbox.d.ts +0 -63
- package/dist/chat/daemon/inbox.d.ts.map +0 -1
- package/dist/chat/daemon/inbox.js +0 -56
- package/dist/chat/daemon/inbox.js.map +0 -1
- package/dist/chat/daemon/inbox.test.js +0 -110
- package/dist/chat/daemon/lifecycle.d.ts +0 -71
- package/dist/chat/daemon/lifecycle.d.ts.map +0 -1
- package/dist/chat/daemon/lifecycle.js +0 -221
- package/dist/chat/daemon/lifecycle.js.map +0 -1
- package/dist/chat/daemon/lifecycle.test.js +0 -163
- package/dist/chat/daemon/protocol.d.ts +0 -107
- package/dist/chat/daemon/protocol.d.ts.map +0 -1
- package/dist/chat/daemon/protocol.js +0 -54
- package/dist/chat/daemon/protocol.js.map +0 -1
- package/dist/chat/daemon/routing.d.ts +0 -140
- package/dist/chat/daemon/routing.d.ts.map +0 -1
- package/dist/chat/daemon/routing.js +0 -198
- package/dist/chat/daemon/routing.js.map +0 -1
- package/dist/chat/daemon/routing.test.js +0 -259
- package/dist/chat/daemon/rpc-client.d.ts +0 -45
- package/dist/chat/daemon/rpc-client.d.ts.map +0 -1
- package/dist/chat/daemon/rpc-client.js +0 -133
- package/dist/chat/daemon/rpc-client.js.map +0 -1
- package/dist/chat/daemon/rpc-server.d.ts +0 -39
- package/dist/chat/daemon/rpc-server.d.ts.map +0 -1
- package/dist/chat/daemon/rpc-server.js +0 -385
- package/dist/chat/daemon/rpc-server.js.map +0 -1
- package/dist/chat/daemon/rpc.test.js +0 -177
- package/dist/chat/daemon/subscribers.js +0 -257
- package/dist/chat/daemon/worker.d.ts +0 -27
- package/dist/chat/daemon/worker.d.ts.map +0 -1
- package/dist/chat/daemon/worker.js +0 -313
- package/dist/chat/daemon/worker.js.map +0 -1
- package/dist/chat/daemon/workspace-topic.js +0 -324
- package/dist/chat/env-token.d.ts +0 -60
- package/dist/chat/env-token.d.ts.map +0 -1
- package/dist/chat/env-token.js +0 -137
- package/dist/chat/env-token.js.map +0 -1
- package/dist/chat/env-token.test.js +0 -160
- package/dist/chat/factory.d.ts +0 -30
- package/dist/chat/factory.d.ts.map +0 -1
- package/dist/chat/factory.js +0 -50
- package/dist/chat/factory.js.map +0 -1
- package/dist/chat/factory.test.js +0 -55
- package/dist/chat/gateway.d.ts +0 -176
- package/dist/chat/gateway.d.ts.map +0 -1
- package/dist/chat/gateway.js +0 -146
- package/dist/chat/gateway.js.map +0 -1
- package/dist/chat/gateway.test.js +0 -192
- package/dist/claude-md.d.ts +0 -39
- package/dist/claude-md.d.ts.map +0 -1
- package/dist/claude-md.js +0 -113
- package/dist/claude-md.js.map +0 -1
- package/dist/claude-md.test.js +0 -91
- package/dist/codex/activate.d.ts +0 -66
- package/dist/codex/activate.d.ts.map +0 -1
- package/dist/codex/activate.js +0 -329
- package/dist/codex/activate.js.map +0 -1
- package/dist/codex/activate.test.js +0 -229
- package/dist/codex/bundled-default/bundled-default.test.js +0 -161
- package/dist/codex/cli-publish.test.js +0 -133
- package/dist/codex/cli.d.ts +0 -35
- package/dist/codex/cli.d.ts.map +0 -1
- package/dist/codex/cli.js +0 -554
- package/dist/codex/cli.js.map +0 -1
- package/dist/codex/cli.test.js +0 -277
- package/dist/codex/import-skill-md.d.ts +0 -53
- package/dist/codex/import-skill-md.d.ts.map +0 -1
- package/dist/codex/import-skill-md.js +0 -236
- package/dist/codex/import-skill-md.js.map +0 -1
- package/dist/codex/import-skill-md.test.js +0 -225
- package/dist/codex/loader.d.ts +0 -27
- package/dist/codex/loader.d.ts.map +0 -1
- package/dist/codex/loader.js +0 -86
- package/dist/codex/loader.js.map +0 -1
- package/dist/codex/loader.test.js +0 -75
- package/dist/codex/parse.d.ts +0 -28
- package/dist/codex/parse.d.ts.map +0 -1
- package/dist/codex/parse.js +0 -309
- package/dist/codex/parse.js.map +0 -1
- package/dist/codex/parse.test.js +0 -241
- package/dist/codex/store.d.ts +0 -87
- package/dist/codex/store.d.ts.map +0 -1
- package/dist/codex/store.js +0 -205
- package/dist/codex/store.js.map +0 -1
- package/dist/codex/store.test.js +0 -242
- package/dist/codex/types.d.ts +0 -398
- package/dist/codex/types.d.ts.map +0 -1
- package/dist/codex/types.js +0 -21
- package/dist/codex/types.js.map +0 -1
- package/dist/config.d.ts +0 -53
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -202
- package/dist/config.js.map +0 -1
- package/dist/config.test.js +0 -117
- package/dist/engine/cli.d.ts +0 -14
- package/dist/engine/cli.d.ts.map +0 -1
- package/dist/engine/cli.js +0 -171
- package/dist/engine/cli.js.map +0 -1
- package/dist/engine/client.d.ts +0 -219
- package/dist/engine/client.d.ts.map +0 -1
- package/dist/engine/client.js +0 -312
- package/dist/engine/client.js.map +0 -1
- package/dist/engine/config.d.ts +0 -62
- package/dist/engine/config.d.ts.map +0 -1
- package/dist/engine/config.js +0 -223
- package/dist/engine/config.js.map +0 -1
- package/dist/engine/index.d.ts +0 -17
- package/dist/engine/index.d.ts.map +0 -1
- package/dist/engine/index.js +0 -16
- package/dist/engine/index.js.map +0 -1
- package/dist/engine/resolver.d.ts +0 -62
- package/dist/engine/resolver.d.ts.map +0 -1
- package/dist/engine/resolver.js +0 -103
- package/dist/engine/resolver.js.map +0 -1
- package/dist/engine/singleton.d.ts +0 -95
- package/dist/engine/singleton.d.ts.map +0 -1
- package/dist/engine/singleton.js +0 -325
- package/dist/engine/singleton.js.map +0 -1
- package/dist/engine/types.d.ts +0 -402
- package/dist/engine/types.d.ts.map +0 -1
- package/dist/engine/types.js +0 -22
- package/dist/engine/types.js.map +0 -1
- package/dist/engine-binary-resolver.js +0 -110
- package/dist/engine-binary-resolver.test.js +0 -61
- package/dist/engine-cli.js +0 -60
- package/dist/engine-client.js +0 -301
- package/dist/engine-client.test.js +0 -118
- package/dist/functions/chain_state.d.ts +0 -51
- package/dist/functions/chain_state.d.ts.map +0 -1
- package/dist/functions/chain_state.js +0 -59
- package/dist/functions/chain_state.js.map +0 -1
- package/dist/hooks/drift-catalog.d.ts +0 -68
- package/dist/hooks/drift-catalog.d.ts.map +0 -1
- package/dist/hooks/drift-catalog.js +0 -184
- package/dist/hooks/drift-catalog.js.map +0 -1
- package/dist/hooks/drift-catalog.test.js +0 -154
- package/dist/hooks/drift-patterns.d.ts +0 -110
- package/dist/hooks/drift-patterns.d.ts.map +0 -1
- package/dist/hooks/drift-patterns.js +0 -289
- package/dist/hooks/drift-patterns.js.map +0 -1
- package/dist/hooks/drift-patterns.test.js +0 -325
- package/dist/hooks/engine-vocab-gate.d.ts +0 -108
- package/dist/hooks/engine-vocab-gate.d.ts.map +0 -1
- package/dist/hooks/engine-vocab-gate.js +0 -225
- package/dist/hooks/engine-vocab-gate.js.map +0 -1
- package/dist/hooks/engine-vocab-gate.test.js +0 -170
- package/dist/hooks/heartbeat.d.ts +0 -107
- package/dist/hooks/heartbeat.d.ts.map +0 -1
- package/dist/hooks/heartbeat.js +0 -316
- package/dist/hooks/heartbeat.js.map +0 -1
- package/dist/hooks/heartbeat.test.js +0 -393
- package/dist/hooks/honesty-ledger-session-scope.test.js +0 -100
- package/dist/hooks/honesty-ledger.d.ts +0 -123
- package/dist/hooks/honesty-ledger.d.ts.map +0 -1
- package/dist/hooks/honesty-ledger.js +0 -226
- package/dist/hooks/honesty-ledger.js.map +0 -1
- package/dist/hooks/honesty-ledger.test.js +0 -466
- package/dist/hooks/inline-report-check.d.ts +0 -63
- package/dist/hooks/inline-report-check.d.ts.map +0 -1
- package/dist/hooks/inline-report-check.js +0 -88
- package/dist/hooks/inline-report-check.js.map +0 -1
- package/dist/hooks/inline-report-check.test.js +0 -96
- package/dist/hooks/pre-tool-use.d.ts +0 -62
- package/dist/hooks/pre-tool-use.d.ts.map +0 -1
- package/dist/hooks/pre-tool-use.js +0 -342
- package/dist/hooks/pre-tool-use.js.map +0 -1
- package/dist/hooks/pre-tool-use.test.js +0 -134
- package/dist/hooks/session-end.d.ts +0 -15
- package/dist/hooks/session-end.d.ts.map +0 -1
- package/dist/hooks/session-end.js +0 -60
- package/dist/hooks/session-end.js.map +0 -1
- package/dist/hooks/session-end.test.js +0 -52
- package/dist/hooks/stop.d.ts +0 -35
- package/dist/hooks/stop.d.ts.map +0 -1
- package/dist/hooks/stop.js +0 -136
- package/dist/hooks/stop.js.map +0 -1
- package/dist/hooks/transcript-active-task.test.js +0 -342
- package/dist/hooks/transcript.d.ts +0 -26
- package/dist/hooks/transcript.d.ts.map +0 -1
- package/dist/hooks/transcript.js +0 -266
- package/dist/hooks/transcript.js.map +0 -1
- package/dist/hooks/transcript.test.js +0 -103
- package/dist/hooks/user-prompt-submit.d.ts +0 -74
- package/dist/hooks/user-prompt-submit.d.ts.map +0 -1
- package/dist/hooks/user-prompt-submit.js +0 -256
- package/dist/hooks/user-prompt-submit.js.map +0 -1
- package/dist/hooks/user-prompt-submit.test.js +0 -118
- package/dist/hooks/versioning-gate.d.ts +0 -101
- package/dist/hooks/versioning-gate.d.ts.map +0 -1
- package/dist/hooks/versioning-gate.js +0 -245
- package/dist/hooks/versioning-gate.js.map +0 -1
- package/dist/hooks/versioning-gate.test.js +0 -368
- package/dist/hooks/workflow-gate.d.ts +0 -64
- package/dist/hooks/workflow-gate.d.ts.map +0 -1
- package/dist/hooks/workflow-gate.js +0 -152
- package/dist/hooks/workflow-gate.js.map +0 -1
- package/dist/hooks/workflow-gate.test.js +0 -197
- package/dist/hooks-cli.d.ts +0 -25
- package/dist/hooks-cli.d.ts.map +0 -1
- package/dist/hooks-cli.js +0 -286
- package/dist/hooks-cli.js.map +0 -1
- package/dist/hooks-cli.test.js +0 -148
- package/dist/origin.d.ts +0 -16
- package/dist/origin.d.ts.map +0 -1
- package/dist/origin.js +0 -92
- package/dist/origin.js.map +0 -1
- package/dist/packs/seed_lessons_ingest.d.ts +0 -30
- package/dist/packs/seed_lessons_ingest.d.ts.map +0 -1
- package/dist/packs/seed_lessons_ingest.js +0 -107
- package/dist/packs/seed_lessons_ingest.js.map +0 -1
- package/dist/project-cli.d.ts +0 -7
- package/dist/project-cli.d.ts.map +0 -1
- package/dist/project-cli.js +0 -145
- package/dist/project-cli.js.map +0 -1
- package/dist/project.d.ts +0 -127
- package/dist/project.d.ts.map +0 -1
- package/dist/project.js +0 -281
- package/dist/project.js.map +0 -1
- package/dist/project.test.js +0 -287
- package/dist/rag/backends/loop_engine.d.ts +0 -61
- package/dist/rag/backends/loop_engine.d.ts.map +0 -1
- package/dist/rag/backends/loop_engine.js +0 -160
- package/dist/rag/backends/loop_engine.js.map +0 -1
- package/dist/recall.d.ts +0 -82
- package/dist/recall.d.ts.map +0 -1
- package/dist/recall.js +0 -81
- package/dist/recall.js.map +0 -1
- package/dist/runtime/agent_bridge/autospawn.d.ts +0 -131
- package/dist/runtime/agent_bridge/autospawn.d.ts.map +0 -1
- package/dist/runtime/agent_bridge/autospawn.js +0 -251
- package/dist/runtime/agent_bridge/autospawn.js.map +0 -1
- package/dist/runtime/chain_state.d.ts +0 -124
- package/dist/runtime/chain_state.d.ts.map +0 -1
- package/dist/runtime/chain_state.js +0 -189
- package/dist/runtime/chain_state.js.map +0 -1
- package/dist/runtime/hooks/permission_decision.d.ts +0 -34
- package/dist/runtime/hooks/permission_decision.d.ts.map +0 -1
- package/dist/runtime/hooks/permission_decision.js +0 -39
- package/dist/runtime/hooks/permission_decision.js.map +0 -1
- package/dist/runtime/workflow_fsm.d.ts +0 -21
- package/dist/runtime/workflow_fsm.d.ts.map +0 -1
- package/dist/runtime/workflow_fsm.js +0 -25
- package/dist/runtime/workflow_fsm.js.map +0 -1
- package/dist/runtime/workflow_map.d.ts +0 -26
- package/dist/runtime/workflow_map.d.ts.map +0 -1
- package/dist/runtime/workflow_map.js +0 -38
- package/dist/runtime/workflow_map.js.map +0 -1
- package/dist/scope.d.ts +0 -48
- package/dist/scope.d.ts.map +0 -1
- package/dist/scope.js +0 -111
- package/dist/scope.js.map +0 -1
- package/dist/setup/cli/topic_create_step.d.ts +0 -84
- package/dist/setup/cli/topic_create_step.d.ts.map +0 -1
- package/dist/setup/cli/topic_create_step.js +0 -213
- package/dist/setup/cli/topic_create_step.js.map +0 -1
- package/dist/system-export.d.ts +0 -65
- package/dist/system-export.d.ts.map +0 -1
- package/dist/system-export.js +0 -194
- package/dist/system-export.js.map +0 -1
- package/dist/utterance/classifier.d.ts +0 -53
- package/dist/utterance/classifier.d.ts.map +0 -1
- package/dist/utterance/classifier.js +0 -184
- package/dist/utterance/classifier.js.map +0 -1
- package/dist/utterance/classifier.test.js +0 -147
package/dist/engine/singleton.js
DELETED
|
@@ -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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"}
|