opensquid 0.5.395
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/LICENSE +21 -0
- package/README.md +330 -0
- package/dist/anti-drift/evaluator.d.ts +88 -0
- package/dist/anti-drift/evaluator.d.ts.map +1 -0
- package/dist/anti-drift/evaluator.js +417 -0
- package/dist/anti-drift/evaluator.js.map +1 -0
- package/dist/anti-drift/evaluator.test.js +78 -0
- package/dist/anti-drift/rules.d.ts +80 -0
- package/dist/anti-drift/rules.d.ts.map +1 -0
- package/dist/anti-drift/rules.js +368 -0
- package/dist/anti-drift/rules.js.map +1 -0
- package/dist/anti-drift/rules.test.js +213 -0
- package/dist/anti-drift/state.d.ts +107 -0
- package/dist/anti-drift/state.d.ts.map +1 -0
- package/dist/anti-drift/state.js +177 -0
- package/dist/anti-drift/state.js.map +1 -0
- package/dist/anti-drift/state.test.js +120 -0
- package/dist/channels/adapters/discord.d.ts +45 -0
- package/dist/channels/adapters/discord.d.ts.map +1 -0
- package/dist/channels/adapters/discord.js +220 -0
- package/dist/channels/adapters/discord.js.map +1 -0
- package/dist/channels/adapters/slack.d.ts +63 -0
- package/dist/channels/adapters/slack.d.ts.map +1 -0
- package/dist/channels/adapters/slack.js +216 -0
- package/dist/channels/adapters/slack.js.map +1 -0
- package/dist/channels/adapters/telegram.d.ts +89 -0
- package/dist/channels/adapters/telegram.d.ts.map +1 -0
- package/dist/channels/adapters/telegram.js +400 -0
- package/dist/channels/adapters/telegram.js.map +1 -0
- package/dist/channels/adapters/webhook.d.ts +53 -0
- package/dist/channels/adapters/webhook.d.ts.map +1 -0
- package/dist/channels/adapters/webhook.js +98 -0
- package/dist/channels/adapters/webhook.js.map +1 -0
- package/dist/channels/chat.d.ts +18 -0
- package/dist/channels/chat.d.ts.map +1 -0
- package/dist/channels/chat.js +35 -0
- package/dist/channels/chat.js.map +1 -0
- package/dist/channels/config.d.ts +110 -0
- package/dist/channels/config.d.ts.map +1 -0
- package/dist/channels/config.js +223 -0
- package/dist/channels/config.js.map +1 -0
- package/dist/channels/daemon/autospawn.d.ts +64 -0
- package/dist/channels/daemon/autospawn.d.ts.map +1 -0
- package/dist/channels/daemon/autospawn.js +145 -0
- package/dist/channels/daemon/autospawn.js.map +1 -0
- package/dist/channels/daemon/cli.d.ts +38 -0
- package/dist/channels/daemon/cli.d.ts.map +1 -0
- package/dist/channels/daemon/cli.js +98 -0
- package/dist/channels/daemon/cli.js.map +1 -0
- package/dist/channels/daemon/lifecycle.d.ts +68 -0
- package/dist/channels/daemon/lifecycle.d.ts.map +1 -0
- package/dist/channels/daemon/lifecycle.js +182 -0
- package/dist/channels/daemon/lifecycle.js.map +1 -0
- package/dist/channels/daemon/protocol.d.ts +118 -0
- package/dist/channels/daemon/protocol.d.ts.map +1 -0
- package/dist/channels/daemon/protocol.js +61 -0
- package/dist/channels/daemon/protocol.js.map +1 -0
- package/dist/channels/daemon/rpc_server.d.ts +48 -0
- package/dist/channels/daemon/rpc_server.d.ts.map +1 -0
- package/dist/channels/daemon/rpc_server.js +229 -0
- package/dist/channels/daemon/rpc_server.js.map +1 -0
- package/dist/channels/daemon/worker.d.ts +48 -0
- package/dist/channels/daemon/worker.d.ts.map +1 -0
- package/dist/channels/daemon/worker.js +218 -0
- package/dist/channels/daemon/worker.js.map +1 -0
- package/dist/channels/env-token.d.ts +71 -0
- package/dist/channels/env-token.d.ts.map +1 -0
- package/dist/channels/env-token.js +150 -0
- package/dist/channels/env-token.js.map +1 -0
- package/dist/channels/factory.d.ts +52 -0
- package/dist/channels/factory.d.ts.map +1 -0
- package/dist/channels/factory.js +88 -0
- package/dist/channels/factory.js.map +1 -0
- package/dist/channels/gateway.d.ts +109 -0
- package/dist/channels/gateway.d.ts.map +1 -0
- package/dist/channels/gateway.js +142 -0
- package/dist/channels/gateway.js.map +1 -0
- package/dist/channels/inbound_router.d.ts +110 -0
- package/dist/channels/inbound_router.d.ts.map +1 -0
- package/dist/channels/inbound_router.js +182 -0
- package/dist/channels/inbound_router.js.map +1 -0
- package/dist/channels/index.d.ts +20 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +19 -0
- package/dist/channels/index.js.map +1 -0
- package/dist/channels/migrate.d.ts +133 -0
- package/dist/channels/migrate.d.ts.map +1 -0
- package/dist/channels/migrate.js +0 -0
- package/dist/channels/migrate.js.map +1 -0
- package/dist/channels/router.d.ts +54 -0
- package/dist/channels/router.d.ts.map +1 -0
- package/dist/channels/router.js +80 -0
- package/dist/channels/router.js.map +1 -0
- package/dist/channels/routing.d.ts +281 -0
- package/dist/channels/routing.d.ts.map +1 -0
- package/dist/channels/routing.js +206 -0
- package/dist/channels/routing.js.map +1 -0
- package/dist/channels/transport_inbox.d.ts +75 -0
- package/dist/channels/transport_inbox.d.ts.map +1 -0
- package/dist/channels/transport_inbox.js +97 -0
- package/dist/channels/transport_inbox.js.map +1 -0
- package/dist/channels/types.d.ts +149 -0
- package/dist/channels/types.d.ts.map +1 -0
- package/dist/channels/types.js +10 -0
- package/dist/channels/types.js.map +1 -0
- package/dist/chat/adapters/discord.d.ts +41 -0
- package/dist/chat/adapters/discord.d.ts.map +1 -0
- package/dist/chat/adapters/discord.js +176 -0
- package/dist/chat/adapters/discord.js.map +1 -0
- package/dist/chat/adapters/discord.test.js +25 -0
- package/dist/chat/adapters/slack.d.ts +43 -0
- package/dist/chat/adapters/slack.d.ts.map +1 -0
- package/dist/chat/adapters/slack.js +172 -0
- package/dist/chat/adapters/slack.js.map +1 -0
- package/dist/chat/adapters/slack.test.js +30 -0
- package/dist/chat/adapters/telegram.d.ts +148 -0
- package/dist/chat/adapters/telegram.d.ts.map +1 -0
- package/dist/chat/adapters/telegram.js +498 -0
- package/dist/chat/adapters/telegram.js.map +1 -0
- package/dist/chat/adapters/telegram.test.js +94 -0
- package/dist/chat/config.d.ts +98 -0
- package/dist/chat/config.d.ts.map +1 -0
- package/dist/chat/config.js +185 -0
- package/dist/chat/config.js.map +1 -0
- package/dist/chat/daemon/active-project.d.ts +17 -0
- package/dist/chat/daemon/active-project.d.ts.map +1 -0
- package/dist/chat/daemon/active-project.js +23 -0
- package/dist/chat/daemon/active-project.js.map +1 -0
- package/dist/chat/daemon/autospawn.d.ts +40 -0
- package/dist/chat/daemon/autospawn.d.ts.map +1 -0
- package/dist/chat/daemon/autospawn.js +129 -0
- package/dist/chat/daemon/autospawn.js.map +1 -0
- package/dist/chat/daemon/autospawn.test.js +112 -0
- package/dist/chat/daemon/cli.d.ts +18 -0
- package/dist/chat/daemon/cli.d.ts.map +1 -0
- package/dist/chat/daemon/cli.js +71 -0
- package/dist/chat/daemon/cli.js.map +1 -0
- package/dist/chat/daemon/collisions.js +384 -0
- package/dist/chat/daemon/health-check.d.ts +69 -0
- package/dist/chat/daemon/health-check.d.ts.map +1 -0
- package/dist/chat/daemon/health-check.js +112 -0
- package/dist/chat/daemon/health-check.js.map +1 -0
- package/dist/chat/daemon/inbox-read.d.ts +35 -0
- package/dist/chat/daemon/inbox-read.d.ts.map +1 -0
- package/dist/chat/daemon/inbox-read.js +75 -0
- package/dist/chat/daemon/inbox-read.js.map +1 -0
- package/dist/chat/daemon/inbox-read.test.js +97 -0
- package/dist/chat/daemon/inbox.d.ts +63 -0
- package/dist/chat/daemon/inbox.d.ts.map +1 -0
- package/dist/chat/daemon/inbox.js +56 -0
- package/dist/chat/daemon/inbox.js.map +1 -0
- package/dist/chat/daemon/inbox.test.js +110 -0
- package/dist/chat/daemon/lifecycle.d.ts +71 -0
- package/dist/chat/daemon/lifecycle.d.ts.map +1 -0
- package/dist/chat/daemon/lifecycle.js +221 -0
- package/dist/chat/daemon/lifecycle.js.map +1 -0
- package/dist/chat/daemon/lifecycle.test.js +163 -0
- package/dist/chat/daemon/protocol.d.ts +107 -0
- package/dist/chat/daemon/protocol.d.ts.map +1 -0
- package/dist/chat/daemon/protocol.js +54 -0
- package/dist/chat/daemon/protocol.js.map +1 -0
- package/dist/chat/daemon/routing.d.ts +140 -0
- package/dist/chat/daemon/routing.d.ts.map +1 -0
- package/dist/chat/daemon/routing.js +198 -0
- package/dist/chat/daemon/routing.js.map +1 -0
- package/dist/chat/daemon/routing.test.js +259 -0
- package/dist/chat/daemon/rpc-client.d.ts +45 -0
- package/dist/chat/daemon/rpc-client.d.ts.map +1 -0
- package/dist/chat/daemon/rpc-client.js +133 -0
- package/dist/chat/daemon/rpc-client.js.map +1 -0
- package/dist/chat/daemon/rpc-server.d.ts +39 -0
- package/dist/chat/daemon/rpc-server.d.ts.map +1 -0
- package/dist/chat/daemon/rpc-server.js +385 -0
- package/dist/chat/daemon/rpc-server.js.map +1 -0
- package/dist/chat/daemon/rpc.test.js +177 -0
- package/dist/chat/daemon/subscribers.js +257 -0
- package/dist/chat/daemon/worker.d.ts +27 -0
- package/dist/chat/daemon/worker.d.ts.map +1 -0
- package/dist/chat/daemon/worker.js +313 -0
- package/dist/chat/daemon/worker.js.map +1 -0
- package/dist/chat/daemon/workspace-topic.js +324 -0
- package/dist/chat/env-token.d.ts +60 -0
- package/dist/chat/env-token.d.ts.map +1 -0
- package/dist/chat/env-token.js +137 -0
- package/dist/chat/env-token.js.map +1 -0
- package/dist/chat/env-token.test.js +160 -0
- package/dist/chat/factory.d.ts +30 -0
- package/dist/chat/factory.d.ts.map +1 -0
- package/dist/chat/factory.js +50 -0
- package/dist/chat/factory.js.map +1 -0
- package/dist/chat/factory.test.js +55 -0
- package/dist/chat/gateway.d.ts +176 -0
- package/dist/chat/gateway.d.ts.map +1 -0
- package/dist/chat/gateway.js +146 -0
- package/dist/chat/gateway.js.map +1 -0
- package/dist/chat/gateway.test.js +192 -0
- package/dist/chat_daemon/client.d.ts +61 -0
- package/dist/chat_daemon/client.d.ts.map +1 -0
- package/dist/chat_daemon/client.js +122 -0
- package/dist/chat_daemon/client.js.map +1 -0
- package/dist/claude-md.d.ts +39 -0
- package/dist/claude-md.d.ts.map +1 -0
- package/dist/claude-md.js +113 -0
- package/dist/claude-md.js.map +1 -0
- package/dist/claude-md.test.js +91 -0
- package/dist/cli/pack.d.ts +14 -0
- package/dist/cli/pack.d.ts.map +1 -0
- package/dist/cli/pack.js +232 -0
- package/dist/cli/pack.js.map +1 -0
- package/dist/cli.d.ts +18 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +317 -0
- package/dist/cli.js.map +1 -0
- package/dist/codex/activate.d.ts +66 -0
- package/dist/codex/activate.d.ts.map +1 -0
- package/dist/codex/activate.js +329 -0
- package/dist/codex/activate.js.map +1 -0
- package/dist/codex/activate.test.js +229 -0
- package/dist/codex/bundled-default/bundled-default.test.js +161 -0
- package/dist/codex/cli-publish.test.js +133 -0
- package/dist/codex/cli.d.ts +35 -0
- package/dist/codex/cli.d.ts.map +1 -0
- package/dist/codex/cli.js +554 -0
- package/dist/codex/cli.js.map +1 -0
- package/dist/codex/cli.test.js +277 -0
- package/dist/codex/import-skill-md.d.ts +53 -0
- package/dist/codex/import-skill-md.d.ts.map +1 -0
- package/dist/codex/import-skill-md.js +236 -0
- package/dist/codex/import-skill-md.js.map +1 -0
- package/dist/codex/import-skill-md.test.js +225 -0
- package/dist/codex/loader.d.ts +27 -0
- package/dist/codex/loader.d.ts.map +1 -0
- package/dist/codex/loader.js +86 -0
- package/dist/codex/loader.js.map +1 -0
- package/dist/codex/loader.test.js +75 -0
- package/dist/codex/parse.d.ts +28 -0
- package/dist/codex/parse.d.ts.map +1 -0
- package/dist/codex/parse.js +309 -0
- package/dist/codex/parse.js.map +1 -0
- package/dist/codex/parse.test.js +241 -0
- package/dist/codex/store.d.ts +87 -0
- package/dist/codex/store.d.ts.map +1 -0
- package/dist/codex/store.js +205 -0
- package/dist/codex/store.js.map +1 -0
- package/dist/codex/store.test.js +242 -0
- package/dist/codex/types.d.ts +398 -0
- package/dist/codex/types.d.ts.map +1 -0
- package/dist/codex/types.js +21 -0
- package/dist/codex/types.js.map +1 -0
- package/dist/config.d.ts +53 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +202 -0
- package/dist/config.js.map +1 -0
- package/dist/config.test.js +117 -0
- package/dist/engine/cli.d.ts +14 -0
- package/dist/engine/cli.d.ts.map +1 -0
- package/dist/engine/cli.js +171 -0
- package/dist/engine/cli.js.map +1 -0
- package/dist/engine/client.d.ts +219 -0
- package/dist/engine/client.d.ts.map +1 -0
- package/dist/engine/client.js +312 -0
- package/dist/engine/client.js.map +1 -0
- package/dist/engine/config.d.ts +62 -0
- package/dist/engine/config.d.ts.map +1 -0
- package/dist/engine/config.js +223 -0
- package/dist/engine/config.js.map +1 -0
- package/dist/engine/index.d.ts +17 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +16 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/resolver.d.ts +62 -0
- package/dist/engine/resolver.d.ts.map +1 -0
- package/dist/engine/resolver.js +103 -0
- package/dist/engine/resolver.js.map +1 -0
- package/dist/engine/singleton.d.ts +95 -0
- package/dist/engine/singleton.d.ts.map +1 -0
- package/dist/engine/singleton.js +325 -0
- package/dist/engine/singleton.js.map +1 -0
- package/dist/engine/types.d.ts +402 -0
- package/dist/engine/types.d.ts.map +1 -0
- package/dist/engine/types.js +22 -0
- package/dist/engine/types.js.map +1 -0
- package/dist/engine-binary-resolver.js +110 -0
- package/dist/engine-binary-resolver.test.js +61 -0
- package/dist/engine-cli.js +60 -0
- package/dist/engine-client.js +301 -0
- package/dist/engine-client.test.js +118 -0
- package/dist/functions/active_task.d.ts +90 -0
- package/dist/functions/active_task.d.ts.map +1 -0
- package/dist/functions/active_task.js +203 -0
- package/dist/functions/active_task.js.map +1 -0
- package/dist/functions/cached_audit.d.ts +33 -0
- package/dist/functions/cached_audit.d.ts.map +1 -0
- package/dist/functions/cached_audit.js +143 -0
- package/dist/functions/cached_audit.js.map +1 -0
- package/dist/functions/chain_state.d.ts +51 -0
- package/dist/functions/chain_state.d.ts.map +1 -0
- package/dist/functions/chain_state.js +59 -0
- package/dist/functions/chain_state.js.map +1 -0
- package/dist/functions/chat_watcher_autostart.d.ts +33 -0
- package/dist/functions/chat_watcher_autostart.d.ts.map +1 -0
- package/dist/functions/chat_watcher_autostart.js +59 -0
- package/dist/functions/chat_watcher_autostart.js.map +1 -0
- package/dist/functions/check_chat_connection.d.ts +49 -0
- package/dist/functions/check_chat_connection.d.ts.map +1 -0
- package/dist/functions/check_chat_connection.js +124 -0
- package/dist/functions/check_chat_connection.js.map +1 -0
- package/dist/functions/check_flow_health.d.ts +43 -0
- package/dist/functions/check_flow_health.d.ts.map +1 -0
- package/dist/functions/check_flow_health.js +93 -0
- package/dist/functions/check_flow_health.js.map +1 -0
- package/dist/functions/destination_check.d.ts +49 -0
- package/dist/functions/destination_check.d.ts.map +1 -0
- package/dist/functions/destination_check.js +136 -0
- package/dist/functions/destination_check.js.map +1 -0
- package/dist/functions/effective_content.d.ts +31 -0
- package/dist/functions/effective_content.d.ts.map +1 -0
- package/dist/functions/effective_content.js +74 -0
- package/dist/functions/effective_content.js.map +1 -0
- package/dist/functions/ensure_umbrella_topic.d.ts +66 -0
- package/dist/functions/ensure_umbrella_topic.d.ts.map +1 -0
- package/dist/functions/ensure_umbrella_topic.js +148 -0
- package/dist/functions/ensure_umbrella_topic.js.map +1 -0
- package/dist/functions/event.d.ts +34 -0
- package/dist/functions/event.d.ts.map +1 -0
- package/dist/functions/event.js +164 -0
- package/dist/functions/event.js.map +1 -0
- package/dist/functions/file_write.d.ts +35 -0
- package/dist/functions/file_write.d.ts.map +1 -0
- package/dist/functions/file_write.js +86 -0
- package/dist/functions/file_write.js.map +1 -0
- package/dist/functions/fsm.d.ts +3 -0
- package/dist/functions/fsm.d.ts.map +1 -0
- package/dist/functions/fsm.js +62 -0
- package/dist/functions/fsm.js.map +1 -0
- package/dist/functions/handoff_session_start.d.ts +26 -0
- package/dist/functions/handoff_session_start.d.ts.map +1 -0
- package/dist/functions/handoff_session_start.js +81 -0
- package/dist/functions/handoff_session_start.js.map +1 -0
- package/dist/functions/http_request.d.ts +23 -0
- package/dist/functions/http_request.d.ts.map +1 -0
- package/dist/functions/http_request.js +59 -0
- package/dist/functions/http_request.js.map +1 -0
- package/dist/functions/index.d.ts +24 -0
- package/dist/functions/index.d.ts.map +1 -0
- package/dist/functions/index.js +28 -0
- package/dist/functions/index.js.map +1 -0
- package/dist/functions/is_automation_mode.d.ts +42 -0
- package/dist/functions/is_automation_mode.d.ts.map +1 -0
- package/dist/functions/is_automation_mode.js +53 -0
- package/dist/functions/is_automation_mode.js.map +1 -0
- package/dist/functions/lessons.d.ts +84 -0
- package/dist/functions/lessons.d.ts.map +1 -0
- package/dist/functions/lessons.js +241 -0
- package/dist/functions/lessons.js.map +1 -0
- package/dist/functions/llm.d.ts +44 -0
- package/dist/functions/llm.d.ts.map +1 -0
- package/dist/functions/llm.js +160 -0
- package/dist/functions/llm.js.map +1 -0
- package/dist/functions/path_exists.d.ts +60 -0
- package/dist/functions/path_exists.d.ts.map +1 -0
- package/dist/functions/path_exists.js +129 -0
- package/dist/functions/path_exists.js.map +1 -0
- package/dist/functions/rag.d.ts +39 -0
- package/dist/functions/rag.d.ts.map +1 -0
- package/dist/functions/rag.js +142 -0
- package/dist/functions/rag.js.map +1 -0
- package/dist/functions/recall_pre_inject.d.ts +40 -0
- package/dist/functions/recall_pre_inject.d.ts.map +1 -0
- package/dist/functions/recall_pre_inject.js +180 -0
- package/dist/functions/recall_pre_inject.js.map +1 -0
- package/dist/functions/registry.d.ts +90 -0
- package/dist/functions/registry.d.ts.map +1 -0
- package/dist/functions/registry.js +90 -0
- package/dist/functions/registry.js.map +1 -0
- package/dist/functions/scope_dwell.d.ts +33 -0
- package/dist/functions/scope_dwell.d.ts.map +1 -0
- package/dist/functions/scope_dwell.js +76 -0
- package/dist/functions/scope_dwell.js.map +1 -0
- package/dist/functions/session_status_manifest.d.ts +47 -0
- package/dist/functions/session_status_manifest.d.ts.map +1 -0
- package/dist/functions/session_status_manifest.js +148 -0
- package/dist/functions/session_status_manifest.js.map +1 -0
- package/dist/functions/session_tool_history.d.ts +46 -0
- package/dist/functions/session_tool_history.d.ts.map +1 -0
- package/dist/functions/session_tool_history.js +52 -0
- package/dist/functions/session_tool_history.js.map +1 -0
- package/dist/functions/shell_exec.d.ts +23 -0
- package/dist/functions/shell_exec.d.ts.map +1 -0
- package/dist/functions/shell_exec.js +58 -0
- package/dist/functions/shell_exec.js.map +1 -0
- package/dist/functions/state.d.ts +29 -0
- package/dist/functions/state.d.ts.map +1 -0
- package/dist/functions/state.js +165 -0
- package/dist/functions/state.js.map +1 -0
- package/dist/functions/subagent.d.ts +107 -0
- package/dist/functions/subagent.d.ts.map +1 -0
- package/dist/functions/subagent.js +202 -0
- package/dist/functions/subagent.js.map +1 -0
- package/dist/functions/text_pattern_match.d.ts +54 -0
- package/dist/functions/text_pattern_match.d.ts.map +1 -0
- package/dist/functions/text_pattern_match.js +89 -0
- package/dist/functions/text_pattern_match.js.map +1 -0
- package/dist/functions/verdict.d.ts +39 -0
- package/dist/functions/verdict.d.ts.map +1 -0
- package/dist/functions/verdict.js +105 -0
- package/dist/functions/verdict.js.map +1 -0
- package/dist/hooks/drift-catalog.d.ts +68 -0
- package/dist/hooks/drift-catalog.d.ts.map +1 -0
- package/dist/hooks/drift-catalog.js +184 -0
- package/dist/hooks/drift-catalog.js.map +1 -0
- package/dist/hooks/drift-catalog.test.js +154 -0
- package/dist/hooks/drift-patterns.d.ts +110 -0
- package/dist/hooks/drift-patterns.d.ts.map +1 -0
- package/dist/hooks/drift-patterns.js +289 -0
- package/dist/hooks/drift-patterns.js.map +1 -0
- package/dist/hooks/drift-patterns.test.js +325 -0
- package/dist/hooks/engine-vocab-gate.d.ts +108 -0
- package/dist/hooks/engine-vocab-gate.d.ts.map +1 -0
- package/dist/hooks/engine-vocab-gate.js +225 -0
- package/dist/hooks/engine-vocab-gate.js.map +1 -0
- package/dist/hooks/engine-vocab-gate.test.js +170 -0
- package/dist/hooks/heartbeat.d.ts +107 -0
- package/dist/hooks/heartbeat.d.ts.map +1 -0
- package/dist/hooks/heartbeat.js +316 -0
- package/dist/hooks/heartbeat.js.map +1 -0
- package/dist/hooks/heartbeat.test.js +393 -0
- package/dist/hooks/honesty-ledger-session-scope.test.js +100 -0
- package/dist/hooks/honesty-ledger.d.ts +123 -0
- package/dist/hooks/honesty-ledger.d.ts.map +1 -0
- package/dist/hooks/honesty-ledger.js +226 -0
- package/dist/hooks/honesty-ledger.js.map +1 -0
- package/dist/hooks/honesty-ledger.test.js +466 -0
- package/dist/hooks/inline-report-check.d.ts +63 -0
- package/dist/hooks/inline-report-check.d.ts.map +1 -0
- package/dist/hooks/inline-report-check.js +88 -0
- package/dist/hooks/inline-report-check.js.map +1 -0
- package/dist/hooks/inline-report-check.test.js +96 -0
- package/dist/hooks/pre-tool-use.d.ts +62 -0
- package/dist/hooks/pre-tool-use.d.ts.map +1 -0
- package/dist/hooks/pre-tool-use.js +342 -0
- package/dist/hooks/pre-tool-use.js.map +1 -0
- package/dist/hooks/pre-tool-use.test.js +134 -0
- package/dist/hooks/session-end.d.ts +15 -0
- package/dist/hooks/session-end.d.ts.map +1 -0
- package/dist/hooks/session-end.js +60 -0
- package/dist/hooks/session-end.js.map +1 -0
- package/dist/hooks/session-end.test.js +52 -0
- package/dist/hooks/stop.d.ts +35 -0
- package/dist/hooks/stop.d.ts.map +1 -0
- package/dist/hooks/stop.js +136 -0
- package/dist/hooks/stop.js.map +1 -0
- package/dist/hooks/transcript-active-task.test.js +342 -0
- package/dist/hooks/transcript.d.ts +26 -0
- package/dist/hooks/transcript.d.ts.map +1 -0
- package/dist/hooks/transcript.js +266 -0
- package/dist/hooks/transcript.js.map +1 -0
- package/dist/hooks/transcript.test.js +103 -0
- package/dist/hooks/user-prompt-submit.d.ts +74 -0
- package/dist/hooks/user-prompt-submit.d.ts.map +1 -0
- package/dist/hooks/user-prompt-submit.js +256 -0
- package/dist/hooks/user-prompt-submit.js.map +1 -0
- package/dist/hooks/user-prompt-submit.test.js +118 -0
- package/dist/hooks/versioning-gate.d.ts +101 -0
- package/dist/hooks/versioning-gate.d.ts.map +1 -0
- package/dist/hooks/versioning-gate.js +245 -0
- package/dist/hooks/versioning-gate.js.map +1 -0
- package/dist/hooks/versioning-gate.test.js +368 -0
- package/dist/hooks/workflow-gate.d.ts +64 -0
- package/dist/hooks/workflow-gate.d.ts.map +1 -0
- package/dist/hooks/workflow-gate.js +152 -0
- package/dist/hooks/workflow-gate.js.map +1 -0
- package/dist/hooks/workflow-gate.test.js +197 -0
- package/dist/hooks-cli.d.ts +25 -0
- package/dist/hooks-cli.d.ts.map +1 -0
- package/dist/hooks-cli.js +286 -0
- package/dist/hooks-cli.js.map +1 -0
- package/dist/hooks-cli.test.js +148 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/anchor.d.ts +20 -0
- package/dist/mcp/anchor.d.ts.map +1 -0
- package/dist/mcp/anchor.js +25 -0
- package/dist/mcp/anchor.js.map +1 -0
- package/dist/mcp/chat-bridge-server.d.ts +45 -0
- package/dist/mcp/chat-bridge-server.d.ts.map +1 -0
- package/dist/mcp/chat-bridge-server.js +475 -0
- package/dist/mcp/chat-bridge-server.js.map +1 -0
- package/dist/mcp/chat_bridge_subscriber.d.ts +101 -0
- package/dist/mcp/chat_bridge_subscriber.d.ts.map +1 -0
- package/dist/mcp/chat_bridge_subscriber.js +227 -0
- package/dist/mcp/chat_bridge_subscriber.js.map +1 -0
- package/dist/mcp/index.d.ts +21 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +18 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +39 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +298 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/forget.d.ts +45 -0
- package/dist/mcp/tools/forget.d.ts.map +1 -0
- package/dist/mcp/tools/forget.js +45 -0
- package/dist/mcp/tools/forget.js.map +1 -0
- package/dist/mcp/tools/inspect-skill.d.ts +28 -0
- package/dist/mcp/tools/inspect-skill.d.ts.map +1 -0
- package/dist/mcp/tools/inspect-skill.js +70 -0
- package/dist/mcp/tools/inspect-skill.js.map +1 -0
- package/dist/mcp/tools/list-drift-events.d.ts +27 -0
- package/dist/mcp/tools/list-drift-events.d.ts.map +1 -0
- package/dist/mcp/tools/list-drift-events.js +38 -0
- package/dist/mcp/tools/list-drift-events.js.map +1 -0
- package/dist/mcp/tools/list-packs.d.ts +18 -0
- package/dist/mcp/tools/list-packs.d.ts.map +1 -0
- package/dist/mcp/tools/list-packs.js +29 -0
- package/dist/mcp/tools/list-packs.js.map +1 -0
- package/dist/mcp/tools/list-skills.d.ts +22 -0
- package/dist/mcp/tools/list-skills.d.ts.map +1 -0
- package/dist/mcp/tools/list-skills.js +42 -0
- package/dist/mcp/tools/list-skills.js.map +1 -0
- package/dist/mcp/tools/log_phase.d.ts +49 -0
- package/dist/mcp/tools/log_phase.d.ts.map +1 -0
- package/dist/mcp/tools/log_phase.js +67 -0
- package/dist/mcp/tools/log_phase.js.map +1 -0
- package/dist/mcp/tools/memorize.d.ts +79 -0
- package/dist/mcp/tools/memorize.d.ts.map +1 -0
- package/dist/mcp/tools/memorize.js +133 -0
- package/dist/mcp/tools/memorize.js.map +1 -0
- package/dist/mcp/tools/read-state.d.ts +24 -0
- package/dist/mcp/tools/read-state.d.ts.map +1 -0
- package/dist/mcp/tools/read-state.js +41 -0
- package/dist/mcp/tools/read-state.js.map +1 -0
- package/dist/mcp/tools/read-violations.d.ts +19 -0
- package/dist/mcp/tools/read-violations.d.ts.map +1 -0
- package/dist/mcp/tools/read-violations.js +36 -0
- package/dist/mcp/tools/read-violations.js.map +1 -0
- package/dist/mcp/tools/recall.d.ts +39 -0
- package/dist/mcp/tools/recall.d.ts.map +1 -0
- package/dist/mcp/tools/recall.js +54 -0
- package/dist/mcp/tools/recall.js.map +1 -0
- package/dist/mcp/tools/store-lesson.d.ts +49 -0
- package/dist/mcp/tools/store-lesson.d.ts.map +1 -0
- package/dist/mcp/tools/store-lesson.js +53 -0
- package/dist/mcp/tools/store-lesson.js.map +1 -0
- package/dist/mcp/tools/workgraph.d.ts +74 -0
- package/dist/mcp/tools/workgraph.d.ts.map +1 -0
- package/dist/mcp/tools/workgraph.js +43 -0
- package/dist/mcp/tools/workgraph.js.map +1 -0
- package/dist/models/cost_router.d.ts +116 -0
- package/dist/models/cost_router.d.ts.map +1 -0
- package/dist/models/cost_router.js +127 -0
- package/dist/models/cost_router.js.map +1 -0
- package/dist/models/dispatcher.d.ts +38 -0
- package/dist/models/dispatcher.d.ts.map +1 -0
- package/dist/models/dispatcher.js +76 -0
- package/dist/models/dispatcher.js.map +1 -0
- package/dist/models/index.d.ts +12 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +5 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/load_config.d.ts +51 -0
- package/dist/models/load_config.d.ts.map +1 -0
- package/dist/models/load_config.js +99 -0
- package/dist/models/load_config.js.map +1 -0
- package/dist/models/strategies/_stub.d.ts +23 -0
- package/dist/models/strategies/_stub.d.ts.map +1 -0
- package/dist/models/strategies/_stub.js +30 -0
- package/dist/models/strategies/_stub.js.map +1 -0
- package/dist/models/strategies/api_anthropic.d.ts +68 -0
- package/dist/models/strategies/api_anthropic.d.ts.map +1 -0
- package/dist/models/strategies/api_anthropic.js +99 -0
- package/dist/models/strategies/api_anthropic.js.map +1 -0
- package/dist/models/strategies/api_openai.d.ts +57 -0
- package/dist/models/strategies/api_openai.d.ts.map +1 -0
- package/dist/models/strategies/api_openai.js +83 -0
- package/dist/models/strategies/api_openai.js.map +1 -0
- package/dist/models/strategies/local_ollama.d.ts +41 -0
- package/dist/models/strategies/local_ollama.d.ts.map +1 -0
- package/dist/models/strategies/local_ollama.js +60 -0
- package/dist/models/strategies/local_ollama.js.map +1 -0
- package/dist/models/strategies/mcp.d.ts +65 -0
- package/dist/models/strategies/mcp.d.ts.map +1 -0
- package/dist/models/strategies/mcp.js +86 -0
- package/dist/models/strategies/mcp.js.map +1 -0
- package/dist/models/strategies/subscription_cli.d.ts +48 -0
- package/dist/models/strategies/subscription_cli.d.ts.map +1 -0
- package/dist/models/strategies/subscription_cli.js +122 -0
- package/dist/models/strategies/subscription_cli.js.map +1 -0
- package/dist/models/strategies/subscription_sdk.d.ts +50 -0
- package/dist/models/strategies/subscription_sdk.d.ts.map +1 -0
- package/dist/models/strategies/subscription_sdk.js +65 -0
- package/dist/models/strategies/subscription_sdk.js.map +1 -0
- package/dist/models/types.d.ts +42 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +23 -0
- package/dist/models/types.js.map +1 -0
- package/dist/origin.d.ts +16 -0
- package/dist/origin.d.ts.map +1 -0
- package/dist/origin.js +92 -0
- package/dist/origin.js.map +1 -0
- package/dist/packs/apply_extends.d.ts +47 -0
- package/dist/packs/apply_extends.d.ts.map +1 -0
- package/dist/packs/apply_extends.js +96 -0
- package/dist/packs/apply_extends.js.map +1 -0
- package/dist/packs/composite_resolver.d.ts +14 -0
- package/dist/packs/composite_resolver.d.ts.map +1 -0
- package/dist/packs/composite_resolver.js +131 -0
- package/dist/packs/composite_resolver.js.map +1 -0
- package/dist/packs/discovery.d.ts +98 -0
- package/dist/packs/discovery.d.ts.map +1 -0
- package/dist/packs/discovery.js +255 -0
- package/dist/packs/discovery.js.map +1 -0
- package/dist/packs/flows_compiler.d.ts +37 -0
- package/dist/packs/flows_compiler.d.ts.map +1 -0
- package/dist/packs/flows_compiler.js +55 -0
- package/dist/packs/flows_compiler.js.map +1 -0
- package/dist/packs/guards_compiler.d.ts +51 -0
- package/dist/packs/guards_compiler.d.ts.map +1 -0
- package/dist/packs/guards_compiler.js +56 -0
- package/dist/packs/guards_compiler.js.map +1 -0
- package/dist/packs/index.d.ts +18 -0
- package/dist/packs/index.d.ts.map +1 -0
- package/dist/packs/index.js +33 -0
- package/dist/packs/index.js.map +1 -0
- package/dist/packs/living_pack.d.ts +17 -0
- package/dist/packs/living_pack.d.ts.map +1 -0
- package/dist/packs/living_pack.js +41 -0
- package/dist/packs/living_pack.js.map +1 -0
- package/dist/packs/load_order.d.ts +32 -0
- package/dist/packs/load_order.d.ts.map +1 -0
- package/dist/packs/load_order.js +51 -0
- package/dist/packs/load_order.js.map +1 -0
- package/dist/packs/loader.d.ts +48 -0
- package/dist/packs/loader.d.ts.map +1 -0
- package/dist/packs/loader.js +357 -0
- package/dist/packs/loader.js.map +1 -0
- package/dist/packs/personal_revision.d.ts +82 -0
- package/dist/packs/personal_revision.d.ts.map +1 -0
- package/dist/packs/personal_revision.js +158 -0
- package/dist/packs/personal_revision.js.map +1 -0
- package/dist/packs/schemas/channels.d.ts +30 -0
- package/dist/packs/schemas/channels.d.ts.map +1 -0
- package/dist/packs/schemas/channels.js +44 -0
- package/dist/packs/schemas/channels.js.map +1 -0
- package/dist/packs/schemas/chat_agent.d.ts +78 -0
- package/dist/packs/schemas/chat_agent.d.ts.map +1 -0
- package/dist/packs/schemas/chat_agent.js +88 -0
- package/dist/packs/schemas/chat_agent.js.map +1 -0
- package/dist/packs/schemas/drift_response.d.ts +47 -0
- package/dist/packs/schemas/drift_response.d.ts.map +1 -0
- package/dist/packs/schemas/drift_response.js +65 -0
- package/dist/packs/schemas/drift_response.js.map +1 -0
- package/dist/packs/schemas/index.d.ts +39 -0
- package/dist/packs/schemas/index.d.ts.map +1 -0
- package/dist/packs/schemas/index.js +39 -0
- package/dist/packs/schemas/index.js.map +1 -0
- package/dist/packs/schemas/manifest.d.ts +1907 -0
- package/dist/packs/schemas/manifest.d.ts.map +1 -0
- package/dist/packs/schemas/manifest.js +532 -0
- package/dist/packs/schemas/manifest.js.map +1 -0
- package/dist/packs/schemas/models.d.ts +108 -0
- package/dist/packs/schemas/models.d.ts.map +1 -0
- package/dist/packs/schemas/models.js +67 -0
- package/dist/packs/schemas/models.js.map +1 -0
- package/dist/packs/schemas/notifications.d.ts +44 -0
- package/dist/packs/schemas/notifications.d.ts.map +1 -0
- package/dist/packs/schemas/notifications.js +66 -0
- package/dist/packs/schemas/notifications.js.map +1 -0
- package/dist/packs/schemas/skill.d.ts +740 -0
- package/dist/packs/schemas/skill.d.ts.map +1 -0
- package/dist/packs/schemas/skill.js +292 -0
- package/dist/packs/schemas/skill.js.map +1 -0
- package/dist/packs/schemas/team.d.ts +99 -0
- package/dist/packs/schemas/team.d.ts.map +1 -0
- package/dist/packs/schemas/team.js +63 -0
- package/dist/packs/schemas/team.js.map +1 -0
- package/dist/packs/seed_lessons_ingest.d.ts +30 -0
- package/dist/packs/seed_lessons_ingest.d.ts.map +1 -0
- package/dist/packs/seed_lessons_ingest.js +107 -0
- package/dist/packs/seed_lessons_ingest.js.map +1 -0
- package/dist/packs/validate_functions.d.ts +26 -0
- package/dist/packs/validate_functions.d.ts.map +1 -0
- package/dist/packs/validate_functions.js +91 -0
- package/dist/packs/validate_functions.js.map +1 -0
- package/dist/packs/validate_uniqueness.d.ts +16 -0
- package/dist/packs/validate_uniqueness.d.ts.map +1 -0
- package/dist/packs/validate_uniqueness.js +33 -0
- package/dist/packs/validate_uniqueness.js.map +1 -0
- package/dist/packs/verify_gates_compiler.d.ts +47 -0
- package/dist/packs/verify_gates_compiler.d.ts.map +1 -0
- package/dist/packs/verify_gates_compiler.js +59 -0
- package/dist/packs/verify_gates_compiler.js.map +1 -0
- package/dist/packs/yaml.d.ts +39 -0
- package/dist/packs/yaml.d.ts.map +1 -0
- package/dist/packs/yaml.js +79 -0
- package/dist/packs/yaml.js.map +1 -0
- package/dist/project-cli.d.ts +7 -0
- package/dist/project-cli.d.ts.map +1 -0
- package/dist/project-cli.js +145 -0
- package/dist/project-cli.js.map +1 -0
- package/dist/project.d.ts +127 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +281 -0
- package/dist/project.js.map +1 -0
- package/dist/project.test.js +287 -0
- package/dist/rag/backend_factory.d.ts +59 -0
- package/dist/rag/backend_factory.d.ts.map +1 -0
- package/dist/rag/backend_factory.js +125 -0
- package/dist/rag/backend_factory.js.map +1 -0
- package/dist/rag/backends/claude_auto_memory.d.ts +46 -0
- package/dist/rag/backends/claude_auto_memory.d.ts.map +1 -0
- package/dist/rag/backends/claude_auto_memory.js +152 -0
- package/dist/rag/backends/claude_auto_memory.js.map +1 -0
- package/dist/rag/backends/libsql_lexical.d.ts +33 -0
- package/dist/rag/backends/libsql_lexical.d.ts.map +1 -0
- package/dist/rag/backends/libsql_lexical.js +164 -0
- package/dist/rag/backends/libsql_lexical.js.map +1 -0
- package/dist/rag/backends/libsql_qwen3.d.ts +8 -0
- package/dist/rag/backends/libsql_qwen3.d.ts.map +1 -0
- package/dist/rag/backends/libsql_qwen3.js +23 -0
- package/dist/rag/backends/libsql_qwen3.js.map +1 -0
- package/dist/rag/backends/libsql_store.d.ts +28 -0
- package/dist/rag/backends/libsql_store.d.ts.map +1 -0
- package/dist/rag/backends/libsql_store.js +246 -0
- package/dist/rag/backends/libsql_store.js.map +1 -0
- package/dist/rag/backends/loop_engine.d.ts +61 -0
- package/dist/rag/backends/loop_engine.d.ts.map +1 -0
- package/dist/rag/backends/loop_engine.js +160 -0
- package/dist/rag/backends/loop_engine.js.map +1 -0
- package/dist/rag/backends/perfile_source.d.ts +8 -0
- package/dist/rag/backends/perfile_source.d.ts.map +1 -0
- package/dist/rag/backends/perfile_source.js +78 -0
- package/dist/rag/backends/perfile_source.js.map +1 -0
- package/dist/rag/config.d.ts +38 -0
- package/dist/rag/config.d.ts.map +1 -0
- package/dist/rag/config.js +127 -0
- package/dist/rag/config.js.map +1 -0
- package/dist/rag/embedders/fastembed.d.ts +3 -0
- package/dist/rag/embedders/fastembed.d.ts.map +1 -0
- package/dist/rag/embedders/fastembed.js +51 -0
- package/dist/rag/embedders/fastembed.js.map +1 -0
- package/dist/rag/embedders/ollama_qwen3.d.ts +6 -0
- package/dist/rag/embedders/ollama_qwen3.d.ts.map +1 -0
- package/dist/rag/embedders/ollama_qwen3.js +30 -0
- package/dist/rag/embedders/ollama_qwen3.js.map +1 -0
- package/dist/rag/embedders/types.d.ts +20 -0
- package/dist/rag/embedders/types.d.ts.map +1 -0
- package/dist/rag/embedders/types.js +2 -0
- package/dist/rag/embedders/types.js.map +1 -0
- package/dist/rag/index.d.ts +18 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +16 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/memory/compress.d.ts +36 -0
- package/dist/rag/memory/compress.d.ts.map +1 -0
- package/dist/rag/memory/compress.js +158 -0
- package/dist/rag/memory/compress.js.map +1 -0
- package/dist/rag/memory/consolidate.d.ts +32 -0
- package/dist/rag/memory/consolidate.d.ts.map +1 -0
- package/dist/rag/memory/consolidate.js +77 -0
- package/dist/rag/memory/consolidate.js.map +1 -0
- package/dist/rag/memory/cycle.d.ts +24 -0
- package/dist/rag/memory/cycle.d.ts.map +1 -0
- package/dist/rag/memory/cycle.js +50 -0
- package/dist/rag/memory/cycle.js.map +1 -0
- package/dist/rag/memory/store.d.ts +48 -0
- package/dist/rag/memory/store.d.ts.map +1 -0
- package/dist/rag/memory/store.js +126 -0
- package/dist/rag/memory/store.js.map +1 -0
- package/dist/rag/migrate_memories.d.ts +22 -0
- package/dist/rag/migrate_memories.d.ts.map +1 -0
- package/dist/rag/migrate_memories.js +53 -0
- package/dist/rag/migrate_memories.js.map +1 -0
- package/dist/rag/ollama_client.d.ts +28 -0
- package/dist/rag/ollama_client.d.ts.map +1 -0
- package/dist/rag/ollama_client.js +43 -0
- package/dist/rag/ollama_client.js.map +1 -0
- package/dist/rag/rrf.d.ts +20 -0
- package/dist/rag/rrf.d.ts.map +1 -0
- package/dist/rag/rrf.js +37 -0
- package/dist/rag/rrf.js.map +1 -0
- package/dist/rag/scope.d.ts +10 -0
- package/dist/rag/scope.d.ts.map +1 -0
- package/dist/rag/scope.js +45 -0
- package/dist/rag/scope.js.map +1 -0
- package/dist/rag/types.d.ts +76 -0
- package/dist/rag/types.d.ts.map +1 -0
- package/dist/rag/types.js +43 -0
- package/dist/rag/types.js.map +1 -0
- package/dist/rag/wedge/gate.d.ts +69 -0
- package/dist/rag/wedge/gate.d.ts.map +1 -0
- package/dist/rag/wedge/gate.js +104 -0
- package/dist/rag/wedge/gate.js.map +1 -0
- package/dist/rag/wedge/migrate.d.ts +7 -0
- package/dist/rag/wedge/migrate.d.ts.map +1 -0
- package/dist/rag/wedge/migrate.js +21 -0
- package/dist/rag/wedge/migrate.js.map +1 -0
- package/dist/rag/wedge/paths.d.ts +3 -0
- package/dist/rag/wedge/paths.d.ts.map +1 -0
- package/dist/rag/wedge/paths.js +13 -0
- package/dist/rag/wedge/paths.js.map +1 -0
- package/dist/rag/wedge/source.d.ts +11 -0
- package/dist/rag/wedge/source.d.ts.map +1 -0
- package/dist/rag/wedge/source.js +111 -0
- package/dist/rag/wedge/source.js.map +1 -0
- package/dist/rag/wedge/store.d.ts +64 -0
- package/dist/rag/wedge/store.d.ts.map +1 -0
- package/dist/rag/wedge/store.js +255 -0
- package/dist/rag/wedge/store.js.map +1 -0
- package/dist/recall.d.ts +82 -0
- package/dist/recall.d.ts.map +1 -0
- package/dist/recall.js +81 -0
- package/dist/recall.js.map +1 -0
- package/dist/runtime/agent_bridge/agent_loop.d.ts +151 -0
- package/dist/runtime/agent_bridge/agent_loop.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/agent_loop.js +229 -0
- package/dist/runtime/agent_bridge/agent_loop.js.map +1 -0
- package/dist/runtime/agent_bridge/agent_loop_subscription.d.ts +144 -0
- package/dist/runtime/agent_bridge/agent_loop_subscription.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/agent_loop_subscription.js +224 -0
- package/dist/runtime/agent_bridge/agent_loop_subscription.js.map +1 -0
- package/dist/runtime/agent_bridge/autospawn.d.ts +131 -0
- package/dist/runtime/agent_bridge/autospawn.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/autospawn.js +251 -0
- package/dist/runtime/agent_bridge/autospawn.js.map +1 -0
- package/dist/runtime/agent_bridge/batch.d.ts +135 -0
- package/dist/runtime/agent_bridge/batch.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/batch.js +197 -0
- package/dist/runtime/agent_bridge/batch.js.map +1 -0
- package/dist/runtime/agent_bridge/cli.d.ts +54 -0
- package/dist/runtime/agent_bridge/cli.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/cli.js +272 -0
- package/dist/runtime/agent_bridge/cli.js.map +1 -0
- package/dist/runtime/agent_bridge/daemon.d.ts +198 -0
- package/dist/runtime/agent_bridge/daemon.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/daemon.js +452 -0
- package/dist/runtime/agent_bridge/daemon.js.map +1 -0
- package/dist/runtime/agent_bridge/dispatcher.d.ts +170 -0
- package/dist/runtime/agent_bridge/dispatcher.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/dispatcher.js +333 -0
- package/dist/runtime/agent_bridge/dispatcher.js.map +1 -0
- package/dist/runtime/agent_bridge/event_bus.d.ts +44 -0
- package/dist/runtime/agent_bridge/event_bus.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/event_bus.js +56 -0
- package/dist/runtime/agent_bridge/event_bus.js.map +1 -0
- package/dist/runtime/agent_bridge/headless_lease.d.ts +113 -0
- package/dist/runtime/agent_bridge/headless_lease.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/headless_lease.js +190 -0
- package/dist/runtime/agent_bridge/headless_lease.js.map +1 -0
- package/dist/runtime/agent_bridge/index.d.ts +38 -0
- package/dist/runtime/agent_bridge/index.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/index.js +38 -0
- package/dist/runtime/agent_bridge/index.js.map +1 -0
- package/dist/runtime/agent_bridge/mcp_config.d.ts +68 -0
- package/dist/runtime/agent_bridge/mcp_config.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/mcp_config.js +102 -0
- package/dist/runtime/agent_bridge/mcp_config.js.map +1 -0
- package/dist/runtime/agent_bridge/pack_binding.d.ts +84 -0
- package/dist/runtime/agent_bridge/pack_binding.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/pack_binding.js +202 -0
- package/dist/runtime/agent_bridge/pack_binding.js.map +1 -0
- package/dist/runtime/agent_bridge/session_manager.d.ts +133 -0
- package/dist/runtime/agent_bridge/session_manager.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/session_manager.js +226 -0
- package/dist/runtime/agent_bridge/session_manager.js.map +1 -0
- package/dist/runtime/agent_bridge/session_persistence.d.ts +95 -0
- package/dist/runtime/agent_bridge/session_persistence.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/session_persistence.js +178 -0
- package/dist/runtime/agent_bridge/session_persistence.js.map +1 -0
- package/dist/runtime/agent_bridge/tool_dispatcher.d.ts +60 -0
- package/dist/runtime/agent_bridge/tool_dispatcher.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/tool_dispatcher.js +104 -0
- package/dist/runtime/agent_bridge/tool_dispatcher.js.map +1 -0
- package/dist/runtime/agent_bridge/tools/chat_send.d.ts +56 -0
- package/dist/runtime/agent_bridge/tools/chat_send.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/tools/chat_send.js +101 -0
- package/dist/runtime/agent_bridge/tools/chat_send.js.map +1 -0
- package/dist/runtime/agent_bridge/tools/index.d.ts +38 -0
- package/dist/runtime/agent_bridge/tools/index.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/tools/index.js +37 -0
- package/dist/runtime/agent_bridge/tools/index.js.map +1 -0
- package/dist/runtime/agent_bridge/tools/recall.d.ts +38 -0
- package/dist/runtime/agent_bridge/tools/recall.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/tools/recall.js +90 -0
- package/dist/runtime/agent_bridge/tools/recall.js.map +1 -0
- package/dist/runtime/agent_bridge/tools/store_lesson.d.ts +41 -0
- package/dist/runtime/agent_bridge/tools/store_lesson.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/tools/store_lesson.js +103 -0
- package/dist/runtime/agent_bridge/tools/store_lesson.js.map +1 -0
- package/dist/runtime/agent_bridge/transport_bridge.d.ts +133 -0
- package/dist/runtime/agent_bridge/transport_bridge.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/transport_bridge.js +371 -0
- package/dist/runtime/agent_bridge/transport_bridge.js.map +1 -0
- package/dist/runtime/agent_bridge/types.d.ts +320 -0
- package/dist/runtime/agent_bridge/types.d.ts.map +1 -0
- package/dist/runtime/agent_bridge/types.js +157 -0
- package/dist/runtime/agent_bridge/types.js.map +1 -0
- package/dist/runtime/atomic_write.d.ts +15 -0
- package/dist/runtime/atomic_write.d.ts.map +1 -0
- package/dist/runtime/atomic_write.js +23 -0
- package/dist/runtime/atomic_write.js.map +1 -0
- package/dist/runtime/audit_adapters.d.ts +97 -0
- package/dist/runtime/audit_adapters.d.ts.map +1 -0
- package/dist/runtime/audit_adapters.js +190 -0
- package/dist/runtime/audit_adapters.js.map +1 -0
- package/dist/runtime/audit_log.d.ts +85 -0
- package/dist/runtime/audit_log.d.ts.map +1 -0
- package/dist/runtime/audit_log.js +215 -0
- package/dist/runtime/audit_log.js.map +1 -0
- package/dist/runtime/auto_correct.d.ts +67 -0
- package/dist/runtime/auto_correct.d.ts.map +1 -0
- package/dist/runtime/auto_correct.js +122 -0
- package/dist/runtime/auto_correct.js.map +1 -0
- package/dist/runtime/automation_state.d.ts +41 -0
- package/dist/runtime/automation_state.d.ts.map +1 -0
- package/dist/runtime/automation_state.js +68 -0
- package/dist/runtime/automation_state.js.map +1 -0
- package/dist/runtime/bootstrap.d.ts +87 -0
- package/dist/runtime/bootstrap.d.ts.map +1 -0
- package/dist/runtime/bootstrap.js +381 -0
- package/dist/runtime/bootstrap.js.map +1 -0
- package/dist/runtime/builtin_denylist.d.ts +25 -0
- package/dist/runtime/builtin_denylist.d.ts.map +1 -0
- package/dist/runtime/builtin_denylist.js +98 -0
- package/dist/runtime/builtin_denylist.js.map +1 -0
- package/dist/runtime/capability_gate.d.ts +86 -0
- package/dist/runtime/capability_gate.d.ts.map +1 -0
- package/dist/runtime/capability_gate.js +295 -0
- package/dist/runtime/capability_gate.js.map +1 -0
- package/dist/runtime/chain_state.d.ts +124 -0
- package/dist/runtime/chain_state.d.ts.map +1 -0
- package/dist/runtime/chain_state.js +189 -0
- package/dist/runtime/chain_state.js.map +1 -0
- package/dist/runtime/chat/claim_lease.d.ts +35 -0
- package/dist/runtime/chat/claim_lease.d.ts.map +1 -0
- package/dist/runtime/chat/claim_lease.js +65 -0
- package/dist/runtime/chat/claim_lease.js.map +1 -0
- package/dist/runtime/chat/inbound_watch.d.ts +58 -0
- package/dist/runtime/chat/inbound_watch.d.ts.map +1 -0
- package/dist/runtime/chat/inbound_watch.js +194 -0
- package/dist/runtime/chat/inbound_watch.js.map +1 -0
- package/dist/runtime/chat/inbox.d.ts +161 -0
- package/dist/runtime/chat/inbox.d.ts.map +1 -0
- package/dist/runtime/chat/inbox.js +167 -0
- package/dist/runtime/chat/inbox.js.map +1 -0
- package/dist/runtime/chat/inbox_drain.d.ts +43 -0
- package/dist/runtime/chat/inbox_drain.d.ts.map +1 -0
- package/dist/runtime/chat/inbox_drain.js +97 -0
- package/dist/runtime/chat/inbox_drain.js.map +1 -0
- package/dist/runtime/chat/inbox_inject.d.ts +64 -0
- package/dist/runtime/chat/inbox_inject.d.ts.map +1 -0
- package/dist/runtime/chat/inbox_inject.js +120 -0
- package/dist/runtime/chat/inbox_inject.js.map +1 -0
- package/dist/runtime/chat/inbox_writer.d.ts +35 -0
- package/dist/runtime/chat/inbox_writer.d.ts.map +1 -0
- package/dist/runtime/chat/inbox_writer.js +69 -0
- package/dist/runtime/chat/inbox_writer.js.map +1 -0
- package/dist/runtime/chat/live_session_lease.d.ts +66 -0
- package/dist/runtime/chat/live_session_lease.d.ts.map +1 -0
- package/dist/runtime/chat/live_session_lease.js +110 -0
- package/dist/runtime/chat/live_session_lease.js.map +1 -0
- package/dist/runtime/chat/session_routing.d.ts +64 -0
- package/dist/runtime/chat/session_routing.d.ts.map +1 -0
- package/dist/runtime/chat/session_routing.js +95 -0
- package/dist/runtime/chat/session_routing.js.map +1 -0
- package/dist/runtime/chat/watch.d.ts +72 -0
- package/dist/runtime/chat/watch.d.ts.map +1 -0
- package/dist/runtime/chat/watch.js +143 -0
- package/dist/runtime/chat/watch.js.map +1 -0
- package/dist/runtime/chat/watch_cli.d.ts +49 -0
- package/dist/runtime/chat/watch_cli.d.ts.map +1 -0
- package/dist/runtime/chat/watch_cli.js +124 -0
- package/dist/runtime/chat/watch_cli.js.map +1 -0
- package/dist/runtime/compression_orchestrator.d.ts +75 -0
- package/dist/runtime/compression_orchestrator.d.ts.map +1 -0
- package/dist/runtime/compression_orchestrator.js +127 -0
- package/dist/runtime/compression_orchestrator.js.map +1 -0
- package/dist/runtime/context_inherit.d.ts +65 -0
- package/dist/runtime/context_inherit.d.ts.map +1 -0
- package/dist/runtime/context_inherit.js +76 -0
- package/dist/runtime/context_inherit.js.map +1 -0
- package/dist/runtime/daemon.d.ts +184 -0
- package/dist/runtime/daemon.d.ts.map +1 -0
- package/dist/runtime/daemon.js +460 -0
- package/dist/runtime/daemon.js.map +1 -0
- package/dist/runtime/deliver_only.d.ts +68 -0
- package/dist/runtime/deliver_only.d.ts.map +1 -0
- package/dist/runtime/deliver_only.js +98 -0
- package/dist/runtime/deliver_only.js.map +1 -0
- package/dist/runtime/destination_scheduler.d.ts +52 -0
- package/dist/runtime/destination_scheduler.d.ts.map +1 -0
- package/dist/runtime/destination_scheduler.js +156 -0
- package/dist/runtime/destination_scheduler.js.map +1 -0
- package/dist/runtime/detection.d.ts +32 -0
- package/dist/runtime/detection.d.ts.map +1 -0
- package/dist/runtime/detection.js +113 -0
- package/dist/runtime/detection.js.map +1 -0
- package/dist/runtime/drift_catalog.d.ts +69 -0
- package/dist/runtime/drift_catalog.d.ts.map +1 -0
- package/dist/runtime/drift_catalog.js +152 -0
- package/dist/runtime/drift_catalog.js.map +1 -0
- package/dist/runtime/drift_response.d.ts +82 -0
- package/dist/runtime/drift_response.d.ts.map +1 -0
- package/dist/runtime/drift_response.js +108 -0
- package/dist/runtime/drift_response.js.map +1 -0
- package/dist/runtime/durable/canonical_json.d.ts +47 -0
- package/dist/runtime/durable/canonical_json.d.ts.map +1 -0
- package/dist/runtime/durable/canonical_json.js +127 -0
- package/dist/runtime/durable/canonical_json.js.map +1 -0
- package/dist/runtime/durable/checkpoint_store.d.ts +228 -0
- package/dist/runtime/durable/checkpoint_store.d.ts.map +1 -0
- package/dist/runtime/durable/checkpoint_store.js +415 -0
- package/dist/runtime/durable/checkpoint_store.js.map +1 -0
- package/dist/runtime/durable/index.d.ts +36 -0
- package/dist/runtime/durable/index.d.ts.map +1 -0
- package/dist/runtime/durable/index.js +36 -0
- package/dist/runtime/durable/index.js.map +1 -0
- package/dist/runtime/durable/memo_cache.d.ts +195 -0
- package/dist/runtime/durable/memo_cache.d.ts.map +1 -0
- package/dist/runtime/durable/memo_cache.js +364 -0
- package/dist/runtime/durable/memo_cache.js.map +1 -0
- package/dist/runtime/durable/resumer.d.ts +131 -0
- package/dist/runtime/durable/resumer.d.ts.map +1 -0
- package/dist/runtime/durable/resumer.js +190 -0
- package/dist/runtime/durable/resumer.js.map +1 -0
- package/dist/runtime/durable/run_id.d.ts +50 -0
- package/dist/runtime/durable/run_id.d.ts.map +1 -0
- package/dist/runtime/durable/run_id.js +52 -0
- package/dist/runtime/durable/run_id.js.map +1 -0
- package/dist/runtime/escalate.d.ts +89 -0
- package/dist/runtime/escalate.d.ts.map +1 -0
- package/dist/runtime/escalate.js +118 -0
- package/dist/runtime/escalate.js.map +1 -0
- package/dist/runtime/evaluator/expression/ast.d.ts +57 -0
- package/dist/runtime/evaluator/expression/ast.d.ts.map +1 -0
- package/dist/runtime/evaluator/expression/ast.js +156 -0
- package/dist/runtime/evaluator/expression/ast.js.map +1 -0
- package/dist/runtime/evaluator/expression/cache.d.ts +40 -0
- package/dist/runtime/evaluator/expression/cache.d.ts.map +1 -0
- package/dist/runtime/evaluator/expression/cache.js +46 -0
- package/dist/runtime/evaluator/expression/cache.js.map +1 -0
- package/dist/runtime/evaluator/expression/functions.d.ts +61 -0
- package/dist/runtime/evaluator/expression/functions.d.ts.map +1 -0
- package/dist/runtime/evaluator/expression/functions.js +143 -0
- package/dist/runtime/evaluator/expression/functions.js.map +1 -0
- package/dist/runtime/evaluator/expression/index.d.ts +86 -0
- package/dist/runtime/evaluator/expression/index.d.ts.map +1 -0
- package/dist/runtime/evaluator/expression/index.js +144 -0
- package/dist/runtime/evaluator/expression/index.js.map +1 -0
- package/dist/runtime/evaluator/expression/interpreter.d.ts +83 -0
- package/dist/runtime/evaluator/expression/interpreter.d.ts.map +1 -0
- package/dist/runtime/evaluator/expression/interpreter.js +191 -0
- package/dist/runtime/evaluator/expression/interpreter.js.map +1 -0
- package/dist/runtime/evaluator/expression/lexer.d.ts +63 -0
- package/dist/runtime/evaluator/expression/lexer.d.ts.map +1 -0
- package/dist/runtime/evaluator/expression/lexer.js +98 -0
- package/dist/runtime/evaluator/expression/lexer.js.map +1 -0
- package/dist/runtime/evaluator/expression/parser.d.ts +76 -0
- package/dist/runtime/evaluator/expression/parser.d.ts.map +1 -0
- package/dist/runtime/evaluator/expression/parser.js +169 -0
- package/dist/runtime/evaluator/expression/parser.js.map +1 -0
- package/dist/runtime/evaluator.d.ts +112 -0
- package/dist/runtime/evaluator.d.ts.map +1 -0
- package/dist/runtime/evaluator.js +520 -0
- package/dist/runtime/evaluator.js.map +1 -0
- package/dist/runtime/event.d.ts +535 -0
- package/dist/runtime/event.d.ts.map +1 -0
- package/dist/runtime/event.js +303 -0
- package/dist/runtime/event.js.map +1 -0
- package/dist/runtime/failure_handling.d.ts +68 -0
- package/dist/runtime/failure_handling.d.ts.map +1 -0
- package/dist/runtime/failure_handling.js +103 -0
- package/dist/runtime/failure_handling.js.map +1 -0
- package/dist/runtime/fsm.d.ts +120 -0
- package/dist/runtime/fsm.d.ts.map +1 -0
- package/dist/runtime/fsm.js +92 -0
- package/dist/runtime/fsm.js.map +1 -0
- package/dist/runtime/fsm_state.d.ts +42 -0
- package/dist/runtime/fsm_state.d.ts.map +1 -0
- package/dist/runtime/fsm_state.js +114 -0
- package/dist/runtime/fsm_state.js.map +1 -0
- package/dist/runtime/handoff/collect.d.ts +64 -0
- package/dist/runtime/handoff/collect.d.ts.map +1 -0
- package/dist/runtime/handoff/collect.js +211 -0
- package/dist/runtime/handoff/collect.js.map +1 -0
- package/dist/runtime/handoff/index.d.ts +21 -0
- package/dist/runtime/handoff/index.d.ts.map +1 -0
- package/dist/runtime/handoff/index.js +33 -0
- package/dist/runtime/handoff/index.js.map +1 -0
- package/dist/runtime/handoff/narrate.d.ts +19 -0
- package/dist/runtime/handoff/narrate.d.ts.map +1 -0
- package/dist/runtime/handoff/narrate.js +44 -0
- package/dist/runtime/handoff/narrate.js.map +1 -0
- package/dist/runtime/handoff/render.d.ts +25 -0
- package/dist/runtime/handoff/render.d.ts.map +1 -0
- package/dist/runtime/handoff/render.js +162 -0
- package/dist/runtime/handoff/render.js.map +1 -0
- package/dist/runtime/handoff/substance.d.ts +19 -0
- package/dist/runtime/handoff/substance.d.ts.map +1 -0
- package/dist/runtime/handoff/substance.js +48 -0
- package/dist/runtime/handoff/substance.js.map +1 -0
- package/dist/runtime/handoff/write.d.ts +39 -0
- package/dist/runtime/handoff/write.d.ts.map +1 -0
- package/dist/runtime/handoff/write.js +131 -0
- package/dist/runtime/handoff/write.js.map +1 -0
- package/dist/runtime/hooks/active_task_mirror.d.ts +70 -0
- package/dist/runtime/hooks/active_task_mirror.d.ts.map +1 -0
- package/dist/runtime/hooks/active_task_mirror.js +226 -0
- package/dist/runtime/hooks/active_task_mirror.js.map +1 -0
- package/dist/runtime/hooks/apply_patch.d.ts +27 -0
- package/dist/runtime/hooks/apply_patch.d.ts.map +1 -0
- package/dist/runtime/hooks/apply_patch.js +54 -0
- package/dist/runtime/hooks/apply_patch.js.map +1 -0
- package/dist/runtime/hooks/dispatch.d.ts +152 -0
- package/dist/runtime/hooks/dispatch.d.ts.map +1 -0
- package/dist/runtime/hooks/dispatch.js +468 -0
- package/dist/runtime/hooks/dispatch.js.map +1 -0
- package/dist/runtime/hooks/hook_output.d.ts +40 -0
- package/dist/runtime/hooks/hook_output.d.ts.map +1 -0
- package/dist/runtime/hooks/hook_output.js +50 -0
- package/dist/runtime/hooks/hook_output.js.map +1 -0
- package/dist/runtime/hooks/memory_reconcile.d.ts +39 -0
- package/dist/runtime/hooks/memory_reconcile.d.ts.map +1 -0
- package/dist/runtime/hooks/memory_reconcile.js +75 -0
- package/dist/runtime/hooks/memory_reconcile.js.map +1 -0
- package/dist/runtime/hooks/new_project_detect.d.ts +35 -0
- package/dist/runtime/hooks/new_project_detect.d.ts.map +1 -0
- package/dist/runtime/hooks/new_project_detect.js +93 -0
- package/dist/runtime/hooks/new_project_detect.js.map +1 -0
- package/dist/runtime/hooks/permission_decision.d.ts +34 -0
- package/dist/runtime/hooks/permission_decision.d.ts.map +1 -0
- package/dist/runtime/hooks/permission_decision.js +39 -0
- package/dist/runtime/hooks/permission_decision.js.map +1 -0
- package/dist/runtime/hooks/post-tool-use.d.ts +3 -0
- package/dist/runtime/hooks/post-tool-use.d.ts.map +1 -0
- package/dist/runtime/hooks/post-tool-use.js +97 -0
- package/dist/runtime/hooks/post-tool-use.js.map +1 -0
- package/dist/runtime/hooks/pre-tool-use.d.ts +3 -0
- package/dist/runtime/hooks/pre-tool-use.d.ts.map +1 -0
- package/dist/runtime/hooks/pre-tool-use.js +169 -0
- package/dist/runtime/hooks/pre-tool-use.js.map +1 -0
- package/dist/runtime/hooks/profession_resolver.d.ts +65 -0
- package/dist/runtime/hooks/profession_resolver.d.ts.map +1 -0
- package/dist/runtime/hooks/profession_resolver.js +86 -0
- package/dist/runtime/hooks/profession_resolver.js.map +1 -0
- package/dist/runtime/hooks/scope_intent.d.ts +32 -0
- package/dist/runtime/hooks/scope_intent.d.ts.map +1 -0
- package/dist/runtime/hooks/scope_intent.js +32 -0
- package/dist/runtime/hooks/scope_intent.js.map +1 -0
- package/dist/runtime/hooks/session-end.d.ts +3 -0
- package/dist/runtime/hooks/session-end.d.ts.map +1 -0
- package/dist/runtime/hooks/session-end.js +159 -0
- package/dist/runtime/hooks/session-end.js.map +1 -0
- package/dist/runtime/hooks/session-start.d.ts +3 -0
- package/dist/runtime/hooks/session-start.d.ts.map +1 -0
- package/dist/runtime/hooks/session-start.js +116 -0
- package/dist/runtime/hooks/session-start.js.map +1 -0
- package/dist/runtime/hooks/session_id.d.ts +86 -0
- package/dist/runtime/hooks/session_id.d.ts.map +1 -0
- package/dist/runtime/hooks/session_id.js +186 -0
- package/dist/runtime/hooks/session_id.js.map +1 -0
- package/dist/runtime/hooks/session_liveness.d.ts +49 -0
- package/dist/runtime/hooks/session_liveness.d.ts.map +1 -0
- package/dist/runtime/hooks/session_liveness.js +65 -0
- package/dist/runtime/hooks/session_liveness.js.map +1 -0
- package/dist/runtime/hooks/stop.d.ts +3 -0
- package/dist/runtime/hooks/stop.d.ts.map +1 -0
- package/dist/runtime/hooks/stop.js +128 -0
- package/dist/runtime/hooks/stop.js.map +1 -0
- package/dist/runtime/hooks/stop_drive.d.ts +37 -0
- package/dist/runtime/hooks/stop_drive.d.ts.map +1 -0
- package/dist/runtime/hooks/stop_drive.js +86 -0
- package/dist/runtime/hooks/stop_drive.js.map +1 -0
- package/dist/runtime/hooks/stop_stream.d.ts +32 -0
- package/dist/runtime/hooks/stop_stream.d.ts.map +1 -0
- package/dist/runtime/hooks/stop_stream.js +74 -0
- package/dist/runtime/hooks/stop_stream.js.map +1 -0
- package/dist/runtime/hooks/transcript.d.ts +47 -0
- package/dist/runtime/hooks/transcript.d.ts.map +1 -0
- package/dist/runtime/hooks/transcript.js +115 -0
- package/dist/runtime/hooks/transcript.js.map +1 -0
- package/dist/runtime/hooks/transcript_tasks.d.ts +66 -0
- package/dist/runtime/hooks/transcript_tasks.d.ts.map +1 -0
- package/dist/runtime/hooks/transcript_tasks.js +193 -0
- package/dist/runtime/hooks/transcript_tasks.js.map +1 -0
- package/dist/runtime/hooks/user-prompt-submit.d.ts +4 -0
- package/dist/runtime/hooks/user-prompt-submit.d.ts.map +1 -0
- package/dist/runtime/hooks/user-prompt-submit.js +184 -0
- package/dist/runtime/hooks/user-prompt-submit.js.map +1 -0
- package/dist/runtime/index.d.ts +30 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +43 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/load_budget.d.ts +48 -0
- package/dist/runtime/load_budget.d.ts.map +1 -0
- package/dist/runtime/load_budget.js +43 -0
- package/dist/runtime/load_budget.js.map +1 -0
- package/dist/runtime/load_matchers.d.ts +139 -0
- package/dist/runtime/load_matchers.d.ts.map +1 -0
- package/dist/runtime/load_matchers.js +190 -0
- package/dist/runtime/load_matchers.js.map +1 -0
- package/dist/runtime/observability/index.d.ts +21 -0
- package/dist/runtime/observability/index.d.ts.map +1 -0
- package/dist/runtime/observability/index.js +20 -0
- package/dist/runtime/observability/index.js.map +1 -0
- package/dist/runtime/observability/otel_export.d.ts +58 -0
- package/dist/runtime/observability/otel_export.d.ts.map +1 -0
- package/dist/runtime/observability/otel_export.js +74 -0
- package/dist/runtime/observability/otel_export.js.map +1 -0
- package/dist/runtime/observability/trace_reader.d.ts +104 -0
- package/dist/runtime/observability/trace_reader.d.ts.map +1 -0
- package/dist/runtime/observability/trace_reader.js +357 -0
- package/dist/runtime/observability/trace_reader.js.map +1 -0
- package/dist/runtime/observability/trace_types.d.ts +64 -0
- package/dist/runtime/observability/trace_types.d.ts.map +1 -0
- package/dist/runtime/observability/trace_types.js +15 -0
- package/dist/runtime/observability/trace_types.js.map +1 -0
- package/dist/runtime/paths.d.ts +136 -0
- package/dist/runtime/paths.d.ts.map +1 -0
- package/dist/runtime/paths.js +303 -0
- package/dist/runtime/paths.js.map +1 -0
- package/dist/runtime/phase_ledger.d.ts +56 -0
- package/dist/runtime/phase_ledger.d.ts.map +1 -0
- package/dist/runtime/phase_ledger.js +88 -0
- package/dist/runtime/phase_ledger.js.map +1 -0
- package/dist/runtime/pinned_skills.d.ts +63 -0
- package/dist/runtime/pinned_skills.d.ts.map +1 -0
- package/dist/runtime/pinned_skills.js +75 -0
- package/dist/runtime/pinned_skills.js.map +1 -0
- package/dist/runtime/rate_limit.d.ts +109 -0
- package/dist/runtime/rate_limit.d.ts.map +1 -0
- package/dist/runtime/rate_limit.js +222 -0
- package/dist/runtime/rate_limit.js.map +1 -0
- package/dist/runtime/result.d.ts +26 -0
- package/dist/runtime/result.d.ts.map +1 -0
- package/dist/runtime/result.js +17 -0
- package/dist/runtime/result.js.map +1 -0
- package/dist/runtime/satisfaction_probe.d.ts +80 -0
- package/dist/runtime/satisfaction_probe.d.ts.map +1 -0
- package/dist/runtime/satisfaction_probe.js +165 -0
- package/dist/runtime/satisfaction_probe.js.map +1 -0
- package/dist/runtime/schedule_registry.d.ts +64 -0
- package/dist/runtime/schedule_registry.d.ts.map +1 -0
- package/dist/runtime/schedule_registry.js +96 -0
- package/dist/runtime/schedule_registry.js.map +1 -0
- package/dist/runtime/session_state.d.ts +127 -0
- package/dist/runtime/session_state.d.ts.map +1 -0
- package/dist/runtime/session_state.js +335 -0
- package/dist/runtime/session_state.js.map +1 -0
- package/dist/runtime/skill_prefilter.d.ts +60 -0
- package/dist/runtime/skill_prefilter.d.ts.map +1 -0
- package/dist/runtime/skill_prefilter.js +117 -0
- package/dist/runtime/skill_prefilter.js.map +1 -0
- package/dist/runtime/skill_requires.d.ts +77 -0
- package/dist/runtime/skill_requires.d.ts.map +1 -0
- package/dist/runtime/skill_requires.js +124 -0
- package/dist/runtime/skill_requires.js.map +1 -0
- package/dist/runtime/skill_router.d.ts +57 -0
- package/dist/runtime/skill_router.d.ts.map +1 -0
- package/dist/runtime/skill_router.js +97 -0
- package/dist/runtime/skill_router.js.map +1 -0
- package/dist/runtime/tick.d.ts +44 -0
- package/dist/runtime/tick.d.ts.map +1 -0
- package/dist/runtime/tick.js +99 -0
- package/dist/runtime/tick.js.map +1 -0
- package/dist/runtime/triggers/file_watcher.d.ts +100 -0
- package/dist/runtime/triggers/file_watcher.d.ts.map +1 -0
- package/dist/runtime/triggers/file_watcher.js +202 -0
- package/dist/runtime/triggers/file_watcher.js.map +1 -0
- package/dist/runtime/triggers/index.d.ts +17 -0
- package/dist/runtime/triggers/index.d.ts.map +1 -0
- package/dist/runtime/triggers/index.js +17 -0
- package/dist/runtime/triggers/index.js.map +1 -0
- package/dist/runtime/types.d.ts +1988 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +337 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/unload_conditions.d.ts +97 -0
- package/dist/runtime/unload_conditions.d.ts.map +1 -0
- package/dist/runtime/unload_conditions.js +96 -0
- package/dist/runtime/unload_conditions.js.map +1 -0
- package/dist/runtime/versioning.d.ts +38 -0
- package/dist/runtime/versioning.d.ts.map +1 -0
- package/dist/runtime/versioning.js +189 -0
- package/dist/runtime/versioning.js.map +1 -0
- package/dist/runtime/webhook_server.d.ts +146 -0
- package/dist/runtime/webhook_server.d.ts.map +1 -0
- package/dist/runtime/webhook_server.js +301 -0
- package/dist/runtime/webhook_server.js.map +1 -0
- package/dist/runtime/webhook_subscriptions.d.ts +178 -0
- package/dist/runtime/webhook_subscriptions.d.ts.map +1 -0
- package/dist/runtime/webhook_subscriptions.js +192 -0
- package/dist/runtime/webhook_subscriptions.js.map +1 -0
- package/dist/runtime/wedge/automation_buffer.d.ts +56 -0
- package/dist/runtime/wedge/automation_buffer.d.ts.map +1 -0
- package/dist/runtime/wedge/automation_buffer.js +202 -0
- package/dist/runtime/wedge/automation_buffer.js.map +1 -0
- package/dist/runtime/wedge/capture.d.ts +40 -0
- package/dist/runtime/wedge/capture.d.ts.map +1 -0
- package/dist/runtime/wedge/capture.js +127 -0
- package/dist/runtime/wedge/capture.js.map +1 -0
- package/dist/runtime/wedge/compress_candidates.d.ts +63 -0
- package/dist/runtime/wedge/compress_candidates.d.ts.map +1 -0
- package/dist/runtime/wedge/compress_candidates.js +109 -0
- package/dist/runtime/wedge/compress_candidates.js.map +1 -0
- package/dist/runtime/wedge/compression_deps.d.ts +12 -0
- package/dist/runtime/wedge/compression_deps.d.ts.map +1 -0
- package/dist/runtime/wedge/compression_deps.js +63 -0
- package/dist/runtime/wedge/compression_deps.js.map +1 -0
- package/dist/runtime/wedge/cost_outcome.d.ts +112 -0
- package/dist/runtime/wedge/cost_outcome.d.ts.map +1 -0
- package/dist/runtime/wedge/cost_outcome.js +85 -0
- package/dist/runtime/wedge/cost_outcome.js.map +1 -0
- package/dist/runtime/wedge/eviction.d.ts +41 -0
- package/dist/runtime/wedge/eviction.d.ts.map +1 -0
- package/dist/runtime/wedge/eviction.js +62 -0
- package/dist/runtime/wedge/eviction.js.map +1 -0
- package/dist/runtime/wedge/index.d.ts +20 -0
- package/dist/runtime/wedge/index.d.ts.map +1 -0
- package/dist/runtime/wedge/index.js +26 -0
- package/dist/runtime/wedge/index.js.map +1 -0
- package/dist/runtime/wedge/mutate_skill.d.ts +30 -0
- package/dist/runtime/wedge/mutate_skill.d.ts.map +1 -0
- package/dist/runtime/wedge/mutate_skill.js +62 -0
- package/dist/runtime/wedge/mutate_skill.js.map +1 -0
- package/dist/runtime/wedge/promote.d.ts +57 -0
- package/dist/runtime/wedge/promote.d.ts.map +1 -0
- package/dist/runtime/wedge/promote.js +66 -0
- package/dist/runtime/wedge/promote.js.map +1 -0
- package/dist/runtime/wedge/schedule_outcome.d.ts +107 -0
- package/dist/runtime/wedge/schedule_outcome.d.ts.map +1 -0
- package/dist/runtime/wedge/schedule_outcome.js +287 -0
- package/dist/runtime/wedge/schedule_outcome.js.map +1 -0
- package/dist/runtime/wedge/types.d.ts +43 -0
- package/dist/runtime/wedge/types.d.ts.map +1 -0
- package/dist/runtime/wedge/types.js +34 -0
- package/dist/runtime/wedge/types.js.map +1 -0
- package/dist/runtime/workflow_fsm.d.ts +21 -0
- package/dist/runtime/workflow_fsm.d.ts.map +1 -0
- package/dist/runtime/workflow_fsm.js +25 -0
- package/dist/runtime/workflow_fsm.js.map +1 -0
- package/dist/runtime/workflow_map.d.ts +26 -0
- package/dist/runtime/workflow_map.d.ts.map +1 -0
- package/dist/runtime/workflow_map.js +38 -0
- package/dist/runtime/workflow_map.js.map +1 -0
- package/dist/runtime/workflow_phases.d.ts +50 -0
- package/dist/runtime/workflow_phases.d.ts.map +1 -0
- package/dist/runtime/workflow_phases.js +92 -0
- package/dist/runtime/workflow_phases.js.map +1 -0
- package/dist/scope.d.ts +48 -0
- package/dist/scope.d.ts.map +1 -0
- package/dist/scope.js +111 -0
- package/dist/scope.js.map +1 -0
- package/dist/secrets/backends/dotenv.d.ts +26 -0
- package/dist/secrets/backends/dotenv.d.ts.map +1 -0
- package/dist/secrets/backends/dotenv.js +65 -0
- package/dist/secrets/backends/dotenv.js.map +1 -0
- package/dist/secrets/backends/keychain.d.ts +59 -0
- package/dist/secrets/backends/keychain.d.ts.map +1 -0
- package/dist/secrets/backends/keychain.js +133 -0
- package/dist/secrets/backends/keychain.js.map +1 -0
- package/dist/secrets/backends/literal.d.ts +19 -0
- package/dist/secrets/backends/literal.d.ts.map +1 -0
- package/dist/secrets/backends/literal.js +25 -0
- package/dist/secrets/backends/literal.js.map +1 -0
- package/dist/secrets/backends/op.d.ts +36 -0
- package/dist/secrets/backends/op.d.ts.map +1 -0
- package/dist/secrets/backends/op.js +69 -0
- package/dist/secrets/backends/op.js.map +1 -0
- package/dist/secrets/index.d.ts +14 -0
- package/dist/secrets/index.d.ts.map +1 -0
- package/dist/secrets/index.js +13 -0
- package/dist/secrets/index.js.map +1 -0
- package/dist/secrets/resolver.d.ts +19 -0
- package/dist/secrets/resolver.d.ts.map +1 -0
- package/dist/secrets/resolver.js +40 -0
- package/dist/secrets/resolver.js.map +1 -0
- package/dist/secrets/types.d.ts +28 -0
- package/dist/secrets/types.d.ts.map +1 -0
- package/dist/secrets/types.js +14 -0
- package/dist/secrets/types.js.map +1 -0
- package/dist/setup/cli/attestations.d.ts +32 -0
- package/dist/setup/cli/attestations.d.ts.map +1 -0
- package/dist/setup/cli/attestations.js +52 -0
- package/dist/setup/cli/attestations.js.map +1 -0
- package/dist/setup/cli/audit.d.ts +30 -0
- package/dist/setup/cli/audit.d.ts.map +1 -0
- package/dist/setup/cli/audit.js +139 -0
- package/dist/setup/cli/audit.js.map +1 -0
- package/dist/setup/cli/audit_actions.d.ts +54 -0
- package/dist/setup/cli/audit_actions.d.ts.map +1 -0
- package/dist/setup/cli/audit_actions.js +200 -0
- package/dist/setup/cli/audit_actions.js.map +1 -0
- package/dist/setup/cli/audit_state.d.ts +27 -0
- package/dist/setup/cli/audit_state.d.ts.map +1 -0
- package/dist/setup/cli/audit_state.js +52 -0
- package/dist/setup/cli/audit_state.js.map +1 -0
- package/dist/setup/cli/automation.d.ts +47 -0
- package/dist/setup/cli/automation.d.ts.map +1 -0
- package/dist/setup/cli/automation.js +156 -0
- package/dist/setup/cli/automation.js.map +1 -0
- package/dist/setup/cli/cache.d.ts +44 -0
- package/dist/setup/cli/cache.d.ts.map +1 -0
- package/dist/setup/cli/cache.js +154 -0
- package/dist/setup/cli/cache.js.map +1 -0
- package/dist/setup/cli/chat.d.ts +69 -0
- package/dist/setup/cli/chat.d.ts.map +1 -0
- package/dist/setup/cli/chat.js +95 -0
- package/dist/setup/cli/chat.js.map +1 -0
- package/dist/setup/cli/chat_actions.d.ts +57 -0
- package/dist/setup/cli/chat_actions.d.ts.map +1 -0
- package/dist/setup/cli/chat_actions.js +358 -0
- package/dist/setup/cli/chat_actions.js.map +1 -0
- package/dist/setup/cli/chat_actions_prompts.d.ts +51 -0
- package/dist/setup/cli/chat_actions_prompts.d.ts.map +1 -0
- package/dist/setup/cli/chat_actions_prompts.js +319 -0
- package/dist/setup/cli/chat_actions_prompts.js.map +1 -0
- package/dist/setup/cli/chat_actions_prompts_alias.d.ts +37 -0
- package/dist/setup/cli/chat_actions_prompts_alias.d.ts.map +1 -0
- package/dist/setup/cli/chat_actions_prompts_alias.js +185 -0
- package/dist/setup/cli/chat_actions_prompts_alias.js.map +1 -0
- package/dist/setup/cli/chat_actions_test_helpers.d.ts +37 -0
- package/dist/setup/cli/chat_actions_test_helpers.d.ts.map +1 -0
- package/dist/setup/cli/chat_actions_test_helpers.js +125 -0
- package/dist/setup/cli/chat_actions_test_helpers.js.map +1 -0
- package/dist/setup/cli/chat_actions_test_step.d.ts +86 -0
- package/dist/setup/cli/chat_actions_test_step.d.ts.map +1 -0
- package/dist/setup/cli/chat_actions_test_step.js +303 -0
- package/dist/setup/cli/chat_actions_test_step.js.map +1 -0
- package/dist/setup/cli/chat_actions_writers.d.ts +140 -0
- package/dist/setup/cli/chat_actions_writers.d.ts.map +1 -0
- package/dist/setup/cli/chat_actions_writers.js +297 -0
- package/dist/setup/cli/chat_actions_writers.js.map +1 -0
- package/dist/setup/cli/chat_state.d.ts +121 -0
- package/dist/setup/cli/chat_state.d.ts.map +1 -0
- package/dist/setup/cli/chat_state.js +310 -0
- package/dist/setup/cli/chat_state.js.map +1 -0
- package/dist/setup/cli/checkpoints.d.ts +47 -0
- package/dist/setup/cli/checkpoints.d.ts.map +1 -0
- package/dist/setup/cli/checkpoints.js +85 -0
- package/dist/setup/cli/checkpoints.js.map +1 -0
- package/dist/setup/cli/checkpoints_actions.d.ts +47 -0
- package/dist/setup/cli/checkpoints_actions.d.ts.map +1 -0
- package/dist/setup/cli/checkpoints_actions.js +153 -0
- package/dist/setup/cli/checkpoints_actions.js.map +1 -0
- package/dist/setup/cli/checkpoints_core.d.ts +57 -0
- package/dist/setup/cli/checkpoints_core.d.ts.map +1 -0
- package/dist/setup/cli/checkpoints_core.js +73 -0
- package/dist/setup/cli/checkpoints_core.js.map +1 -0
- package/dist/setup/cli/checkpoints_render.d.ts +23 -0
- package/dist/setup/cli/checkpoints_render.d.ts.map +1 -0
- package/dist/setup/cli/checkpoints_render.js +65 -0
- package/dist/setup/cli/checkpoints_render.js.map +1 -0
- package/dist/setup/cli/codex_hooks.d.ts +27 -0
- package/dist/setup/cli/codex_hooks.d.ts.map +1 -0
- package/dist/setup/cli/codex_hooks.js +73 -0
- package/dist/setup/cli/codex_hooks.js.map +1 -0
- package/dist/setup/cli/cost.d.ts +29 -0
- package/dist/setup/cli/cost.d.ts.map +1 -0
- package/dist/setup/cli/cost.js +98 -0
- package/dist/setup/cli/cost.js.map +1 -0
- package/dist/setup/cli/cost_state.d.ts +86 -0
- package/dist/setup/cli/cost_state.d.ts.map +1 -0
- package/dist/setup/cli/cost_state.js +223 -0
- package/dist/setup/cli/cost_state.js.map +1 -0
- package/dist/setup/cli/doctor.d.ts +47 -0
- package/dist/setup/cli/doctor.d.ts.map +1 -0
- package/dist/setup/cli/doctor.js +314 -0
- package/dist/setup/cli/doctor.js.map +1 -0
- package/dist/setup/cli/gate.d.ts +71 -0
- package/dist/setup/cli/gate.d.ts.map +1 -0
- package/dist/setup/cli/gate.js +287 -0
- package/dist/setup/cli/gate.js.map +1 -0
- package/dist/setup/cli/hooks.d.ts +69 -0
- package/dist/setup/cli/hooks.d.ts.map +1 -0
- package/dist/setup/cli/hooks.js +104 -0
- package/dist/setup/cli/hooks.js.map +1 -0
- package/dist/setup/cli/index.d.ts +11 -0
- package/dist/setup/cli/index.d.ts.map +1 -0
- package/dist/setup/cli/index.js +11 -0
- package/dist/setup/cli/index.js.map +1 -0
- package/dist/setup/cli/limits.d.ts +30 -0
- package/dist/setup/cli/limits.d.ts.map +1 -0
- package/dist/setup/cli/limits.js +102 -0
- package/dist/setup/cli/limits.js.map +1 -0
- package/dist/setup/cli/limits_state.d.ts +77 -0
- package/dist/setup/cli/limits_state.d.ts.map +1 -0
- package/dist/setup/cli/limits_state.js +170 -0
- package/dist/setup/cli/limits_state.js.map +1 -0
- package/dist/setup/cli/mcp.d.ts +73 -0
- package/dist/setup/cli/mcp.d.ts.map +1 -0
- package/dist/setup/cli/mcp.js +175 -0
- package/dist/setup/cli/mcp.js.map +1 -0
- package/dist/setup/cli/memory.d.ts +55 -0
- package/dist/setup/cli/memory.d.ts.map +1 -0
- package/dist/setup/cli/memory.js +139 -0
- package/dist/setup/cli/memory.js.map +1 -0
- package/dist/setup/cli/permissions.d.ts +49 -0
- package/dist/setup/cli/permissions.d.ts.map +1 -0
- package/dist/setup/cli/permissions.js +77 -0
- package/dist/setup/cli/permissions.js.map +1 -0
- package/dist/setup/cli/permissions_actions.d.ts +72 -0
- package/dist/setup/cli/permissions_actions.d.ts.map +1 -0
- package/dist/setup/cli/permissions_actions.js +208 -0
- package/dist/setup/cli/permissions_actions.js.map +1 -0
- package/dist/setup/cli/permissions_state.d.ts +98 -0
- package/dist/setup/cli/permissions_state.d.ts.map +1 -0
- package/dist/setup/cli/permissions_state.js +202 -0
- package/dist/setup/cli/permissions_state.js.map +1 -0
- package/dist/setup/cli/portability.d.ts +68 -0
- package/dist/setup/cli/portability.d.ts.map +1 -0
- package/dist/setup/cli/portability.js +413 -0
- package/dist/setup/cli/portability.js.map +1 -0
- package/dist/setup/cli/schedule.d.ts +45 -0
- package/dist/setup/cli/schedule.d.ts.map +1 -0
- package/dist/setup/cli/schedule.js +92 -0
- package/dist/setup/cli/schedule.js.map +1 -0
- package/dist/setup/cli/schedule_actions.d.ts +63 -0
- package/dist/setup/cli/schedule_actions.d.ts.map +1 -0
- package/dist/setup/cli/schedule_actions.js +299 -0
- package/dist/setup/cli/schedule_actions.js.map +1 -0
- package/dist/setup/cli/schedule_render.d.ts +18 -0
- package/dist/setup/cli/schedule_render.d.ts.map +1 -0
- package/dist/setup/cli/schedule_render.js +69 -0
- package/dist/setup/cli/schedule_render.js.map +1 -0
- package/dist/setup/cli/schedule_state.d.ts +92 -0
- package/dist/setup/cli/schedule_state.d.ts.map +1 -0
- package/dist/setup/cli/schedule_state.js +291 -0
- package/dist/setup/cli/schedule_state.js.map +1 -0
- package/dist/setup/cli/state_io.d.ts +67 -0
- package/dist/setup/cli/state_io.d.ts.map +1 -0
- package/dist/setup/cli/state_io.js +130 -0
- package/dist/setup/cli/state_io.js.map +1 -0
- package/dist/setup/cli/topic_create_step.d.ts +84 -0
- package/dist/setup/cli/topic_create_step.d.ts.map +1 -0
- package/dist/setup/cli/topic_create_step.js +213 -0
- package/dist/setup/cli/topic_create_step.js.map +1 -0
- package/dist/setup/cli/trace.d.ts +52 -0
- package/dist/setup/cli/trace.d.ts.map +1 -0
- package/dist/setup/cli/trace.js +239 -0
- package/dist/setup/cli/trace.js.map +1 -0
- package/dist/setup/cli/triggers.d.ts +32 -0
- package/dist/setup/cli/triggers.d.ts.map +1 -0
- package/dist/setup/cli/triggers.js +141 -0
- package/dist/setup/cli/triggers.js.map +1 -0
- package/dist/setup/cli/triggers_state.d.ts +47 -0
- package/dist/setup/cli/triggers_state.d.ts.map +1 -0
- package/dist/setup/cli/triggers_state.js +119 -0
- package/dist/setup/cli/triggers_state.js.map +1 -0
- package/dist/setup/cli/triggers_synth.d.ts +19 -0
- package/dist/setup/cli/triggers_synth.d.ts.map +1 -0
- package/dist/setup/cli/triggers_synth.js +70 -0
- package/dist/setup/cli/triggers_synth.js.map +1 -0
- package/dist/setup/cli/webhooks.d.ts +42 -0
- package/dist/setup/cli/webhooks.d.ts.map +1 -0
- package/dist/setup/cli/webhooks.js +77 -0
- package/dist/setup/cli/webhooks.js.map +1 -0
- package/dist/setup/cli/webhooks_actions.d.ts +86 -0
- package/dist/setup/cli/webhooks_actions.d.ts.map +1 -0
- package/dist/setup/cli/webhooks_actions.js +301 -0
- package/dist/setup/cli/webhooks_actions.js.map +1 -0
- package/dist/setup/cli/webhooks_state.d.ts +79 -0
- package/dist/setup/cli/webhooks_state.d.ts.map +1 -0
- package/dist/setup/cli/webhooks_state.js +73 -0
- package/dist/setup/cli/webhooks_state.js.map +1 -0
- package/dist/setup/index.d.ts +9 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +9 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/migrate/auto_memory_importer.d.ts +101 -0
- package/dist/setup/migrate/auto_memory_importer.d.ts.map +1 -0
- package/dist/setup/migrate/auto_memory_importer.js +163 -0
- package/dist/setup/migrate/auto_memory_importer.js.map +1 -0
- package/dist/setup/migrate/auto_memory_reader.d.ts +84 -0
- package/dist/setup/migrate/auto_memory_reader.d.ts.map +1 -0
- package/dist/setup/migrate/auto_memory_reader.js +99 -0
- package/dist/setup/migrate/auto_memory_reader.js.map +1 -0
- package/dist/setup/migrate/auto_memory_snapshot.d.ts +33 -0
- package/dist/setup/migrate/auto_memory_snapshot.d.ts.map +1 -0
- package/dist/setup/migrate/auto_memory_snapshot.js +67 -0
- package/dist/setup/migrate/auto_memory_snapshot.js.map +1 -0
- package/dist/setup/migrate/memory_drift.d.ts +45 -0
- package/dist/setup/migrate/memory_drift.d.ts.map +1 -0
- package/dist/setup/migrate/memory_drift.js +92 -0
- package/dist/setup/migrate/memory_drift.js.map +1 -0
- package/dist/setup/migrate/memory_store_handle.d.ts +31 -0
- package/dist/setup/migrate/memory_store_handle.d.ts.map +1 -0
- package/dist/setup/migrate/memory_store_handle.js +93 -0
- package/dist/setup/migrate/memory_store_handle.js.map +1 -0
- package/dist/setup/migrate/migrate-scope.d.ts +25 -0
- package/dist/setup/migrate/migrate-scope.d.ts.map +1 -0
- package/dist/setup/migrate/migrate-scope.js +82 -0
- package/dist/setup/migrate/migrate-scope.js.map +1 -0
- package/dist/setup/schedule_nl.d.ts +88 -0
- package/dist/setup/schedule_nl.d.ts.map +1 -0
- package/dist/setup/schedule_nl.js +183 -0
- package/dist/setup/schedule_nl.js.map +1 -0
- package/dist/setup/wizard/codex-hooks-writer.d.ts +67 -0
- package/dist/setup/wizard/codex-hooks-writer.d.ts.map +1 -0
- package/dist/setup/wizard/codex-hooks-writer.js +104 -0
- package/dist/setup/wizard/codex-hooks-writer.js.map +1 -0
- package/dist/setup/wizard/git-hooks.d.ts +49 -0
- package/dist/setup/wizard/git-hooks.d.ts.map +1 -0
- package/dist/setup/wizard/git-hooks.js +106 -0
- package/dist/setup/wizard/git-hooks.js.map +1 -0
- package/dist/setup/wizard/mcp-hosts.d.ts +44 -0
- package/dist/setup/wizard/mcp-hosts.d.ts.map +1 -0
- package/dist/setup/wizard/mcp-hosts.js +87 -0
- package/dist/setup/wizard/mcp-hosts.js.map +1 -0
- package/dist/setup/wizard/mcp-writer.d.ts +81 -0
- package/dist/setup/wizard/mcp-writer.d.ts.map +1 -0
- package/dist/setup/wizard/mcp-writer.js +115 -0
- package/dist/setup/wizard/mcp-writer.js.map +1 -0
- package/dist/setup/wizard/settings-reader.d.ts +74 -0
- package/dist/setup/wizard/settings-reader.d.ts.map +1 -0
- package/dist/setup/wizard/settings-reader.js +81 -0
- package/dist/setup/wizard/settings-reader.js.map +1 -0
- package/dist/setup/wizard/settings-writer.d.ts +95 -0
- package/dist/setup/wizard/settings-writer.d.ts.map +1 -0
- package/dist/setup/wizard/settings-writer.js +154 -0
- package/dist/setup/wizard/settings-writer.js.map +1 -0
- package/dist/storage/atomic_file.d.ts +3 -0
- package/dist/storage/atomic_file.d.ts.map +1 -0
- package/dist/storage/atomic_file.js +27 -0
- package/dist/storage/atomic_file.js.map +1 -0
- package/dist/system-export.d.ts +65 -0
- package/dist/system-export.d.ts.map +1 -0
- package/dist/system-export.js +194 -0
- package/dist/system-export.js.map +1 -0
- package/dist/utterance/classifier.d.ts +53 -0
- package/dist/utterance/classifier.d.ts.map +1 -0
- package/dist/utterance/classifier.js +184 -0
- package/dist/utterance/classifier.js.map +1 -0
- package/dist/utterance/classifier.test.js +147 -0
- package/dist/workgraph/events.d.ts +12 -0
- package/dist/workgraph/events.d.ts.map +1 -0
- package/dist/workgraph/events.js +90 -0
- package/dist/workgraph/events.js.map +1 -0
- package/dist/workgraph/store.d.ts +15 -0
- package/dist/workgraph/store.d.ts.map +1 -0
- package/dist/workgraph/store.js +195 -0
- package/dist/workgraph/store.js.map +1 -0
- package/dist/workgraph/types.d.ts +49 -0
- package/dist/workgraph/types.d.ts.map +1 -0
- package/dist/workgraph/types.js +2 -0
- package/dist/workgraph/types.js.map +1 -0
- package/docs/load-budget.md +98 -0
- package/docs/pack-runtime.md +1205 -0
- package/docs/skill-grammar-guide.md +646 -0
- package/package.json +145 -0
- package/packs/builtin/coding-flow/PROFILES.md +39 -0
- package/packs/builtin/coding-flow/fsm.yaml +52 -0
- package/packs/builtin/coding-flow/manifest.yaml +29 -0
- package/packs/builtin/coding-flow/skills/entry-and-handoffs/skill.yaml +246 -0
- package/packs/builtin/coding-flow/skills/execute-gate/skill.yaml +71 -0
- package/packs/builtin/coding-flow/skills/flow-health-check/skill.yaml +42 -0
- package/packs/builtin/coding-flow/skills/pause-prevention/skill.yaml +73 -0
- package/packs/builtin/coding-flow/skills/pause-stop-guard/skill.yaml +67 -0
- package/packs/builtin/coding-flow/skills/phase-advance/skill.yaml +28 -0
- package/packs/builtin/coding-flow/skills/phase-audit/skill.yaml +68 -0
- package/packs/builtin/coding-flow/skills/scope-lifecycle/skill.yaml +362 -0
- package/packs/builtin/coding-flow/skills/task-start/skill.yaml +42 -0
- package/packs/builtin/cycle-pack/manifest.yaml +20 -0
- package/packs/builtin/cycle-pack/skills/lesson-capture/prose.md +34 -0
- package/packs/builtin/cycle-pack/skills/lesson-capture/skill.yaml +57 -0
- package/packs/builtin/default-discipline/channels.yaml +8 -0
- package/packs/builtin/default-discipline/drift_response.yaml +51 -0
- package/packs/builtin/default-discipline/manifest.yaml +297 -0
- package/packs/builtin/default-discipline/models.yaml +8 -0
- package/packs/builtin/default-discipline/notifications.yaml +12 -0
- package/packs/builtin/default-discipline/skills/d9-guard/skill.yaml +82 -0
- package/packs/builtin/default-discipline/skills/inbound-greeter/SKILL.md +38 -0
- package/packs/builtin/default-discipline/skills/inbound-greeter/skill.yaml +36 -0
- package/packs/builtin/default-discipline/skills/session-connection-check/SKILL.md +45 -0
- package/packs/builtin/default-discipline/skills/session-connection-check/skill.yaml +55 -0
- package/packs/builtin/default-discipline/skills/workflow/skill.yaml +65 -0
- package/packs/builtin/examples/file-pattern-guard/BEFORE.md +70 -0
- package/packs/builtin/examples/file-pattern-guard/SKILL.md +79 -0
- package/packs/builtin/examples/file-pattern-guard/fixtures/edit_node_modules.expected.json +3 -0
- package/packs/builtin/examples/file-pattern-guard/fixtures/edit_node_modules.input.json +9 -0
- package/packs/builtin/examples/file-pattern-guard/fixtures/edit_src.expected.json +3 -0
- package/packs/builtin/examples/file-pattern-guard/fixtures/edit_src.input.json +9 -0
- package/packs/builtin/examples/file-pattern-guard/manifest.yaml +18 -0
- package/packs/builtin/examples/file-pattern-guard/skills/guard/skill.yaml +33 -0
- package/packs/builtin/examples/multi-clause-drift-detector/BEFORE.md +62 -0
- package/packs/builtin/examples/multi-clause-drift-detector/SKILL.md +90 -0
- package/packs/builtin/examples/multi-clause-drift-detector/fixtures/drift_no_verify.expected.json +3 -0
- package/packs/builtin/examples/multi-clause-drift-detector/fixtures/drift_no_verify.input.json +18 -0
- package/packs/builtin/examples/multi-clause-drift-detector/fixtures/drift_with_verify.expected.json +3 -0
- package/packs/builtin/examples/multi-clause-drift-detector/fixtures/drift_with_verify.input.json +18 -0
- package/packs/builtin/examples/multi-clause-drift-detector/manifest.yaml +18 -0
- package/packs/builtin/examples/multi-clause-drift-detector/skills/drift/skill.yaml +60 -0
- package/packs/builtin/examples/tool-history-correlator/BEFORE.md +73 -0
- package/packs/builtin/examples/tool-history-correlator/SKILL.md +85 -0
- package/packs/builtin/examples/tool-history-correlator/fixtures/few_bash.expected.json +3 -0
- package/packs/builtin/examples/tool-history-correlator/fixtures/few_bash.input.json +10 -0
- package/packs/builtin/examples/tool-history-correlator/fixtures/many_bash.expected.json +3 -0
- package/packs/builtin/examples/tool-history-correlator/fixtures/many_bash.input.json +10 -0
- package/packs/builtin/examples/tool-history-correlator/manifest.yaml +18 -0
- package/packs/builtin/examples/tool-history-correlator/skills/correlator/skill.yaml +46 -0
- package/packs/builtin/focused-atomic-design/README.md +21 -0
- package/packs/builtin/focused-atomic-design/manifest.yaml +151 -0
- package/packs/builtin/focused-react-19/README.md +36 -0
- package/packs/builtin/focused-react-19/manifest.yaml +171 -0
- package/packs/builtin/focused-typescript-strict/README.md +21 -0
- package/packs/builtin/focused-typescript-strict/manifest.yaml +163 -0
- package/packs/builtin/frontend-react-19-atomic/README.md +61 -0
- package/packs/builtin/frontend-react-19-atomic/manifest.yaml +124 -0
- package/packs/builtin/general/chat_agent.yaml +16 -0
- package/packs/builtin/general/manifest.yaml +39 -0
- package/packs/builtin/general/system_prompt.md +11 -0
- package/packs/builtin/pack-architect/SKILL.md +74 -0
- package/packs/builtin/pack-architect/manifest.yaml +53 -0
- package/packs/builtin/pack-architect/skills/fsm-author-walkthrough/skill.yaml +45 -0
- package/packs/builtin/pack-architect/skills/manifest-author-walkthrough/skill.yaml +50 -0
- package/packs/builtin/pack-architect/skills/pack-scope-elicit/skill.yaml +44 -0
- package/packs/builtin/pack-architect/skills/skill-yaml-author-walkthrough/skill.yaml +52 -0
- package/packs/builtin/pack-architect/team.yaml +84 -0
- package/packs/builtin/scope-architect/manifest.yaml +43 -0
- package/packs/builtin/scope-architect/skills/inline-spec-block/skill.yaml +56 -0
- package/packs/builtin/scope-architect/skills/pack-skill-authoring/skill.yaml +83 -0
- package/packs/builtin/scope-architect/skills/pre-research-authoring/skill.yaml +142 -0
- package/packs/builtin/scope-architect/skills/scope-before-code/skill.yaml +34 -0
- package/packs/builtin/scope-architect/skills/scope-detect/skill.yaml +73 -0
- package/packs/builtin/scope-architect/skills/task-list-generated/skill.yaml +28 -0
- package/packs/builtin/scope-architect/skills/taskcreate-spec-required/skill.yaml +27 -0
- package/packs/builtin/scope-architect/team.yaml +65 -0
- package/packs/builtin/seo-aeo-expert/drift_response.yaml +11 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/citation_allow_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/citation_allow_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/citation_cross_section_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/citation_cross_section_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/citation_robots_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/citation_robots_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/training_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/training_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/training_unrelated_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/training_unrelated_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/wildcard_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/wildcard_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/wildcard_path_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/bot-policy-guard/wildcard_path_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ground-truth-gate/no_claims_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ground-truth-gate/no_claims_pass.input.json +14 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ground-truth-gate/offer_no_doc_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ground-truth-gate/offer_no_doc_fire.input.json +14 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ground-truth-gate/offer_with_doc_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ground-truth-gate/offer_with_doc_pass.input.json +14 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/desc_long_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/desc_long_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/desc_ok_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/desc_ok_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/img_alt_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/img_alt_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/img_alt_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/img_alt_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/title_long_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/title_long_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/title_ok_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/meta-quality-gate/title_ok_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/page-removal-guard/rm_other_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/page-removal-guard/rm_other_pass.input.json +6 -0
- package/packs/builtin/seo-aeo-expert/fixtures/page-removal-guard/rm_page_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/page-removal-guard/rm_page_fire.input.json +6 -0
- package/packs/builtin/seo-aeo-expert/fixtures/pre-push-seo-checklist/checklist_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/pre-push-seo-checklist/checklist_fire.input.json +7 -0
- package/packs/builtin/seo-aeo-expert/fixtures/pre-push-seo-checklist/checklist_shipped_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/pre-push-seo-checklist/checklist_shipped_pass.input.json +7 -0
- package/packs/builtin/seo-aeo-expert/fixtures/pre-push-seo-checklist/push_fixing_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/pre-push-seo-checklist/push_fixing_fire.input.json +7 -0
- package/packs/builtin/seo-aeo-expert/fixtures/pre-push-seo-checklist/push_idle_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/pre-push-seo-checklist/push_idle_pass.input.json +7 -0
- package/packs/builtin/seo-aeo-expert/fixtures/run.mjs +123 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/lint_product_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/lint_product_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/lint_product_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/lint_product_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/lint_rating_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/lint_rating_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/lint_rating_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/lint_rating_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/schema_touched_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/schema_touched_fire.input.json +12 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/schema_touched_in_cycle_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/schema_touched_in_cycle_pass.input.json +12 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/validation_run_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/validation_run_fire.input.json +6 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/validation_run_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/schema-validation-gate/validation_run_pass.input.json +6 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ssr-regression-guard/fetch_effect_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ssr-regression-guard/fetch_effect_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ssr-regression-guard/organism_leaf_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ssr-regression-guard/organism_leaf_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ssr-regression-guard/server_page_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ssr-regression-guard/server_page_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ssr-regression-guard/use_client_page_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/ssr-regression-guard/use_client_page_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/stale-tactic-guard/clean_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/stale-tactic-guard/clean_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/stale-tactic-guard/docs_exempt_pass.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/stale-tactic-guard/docs_exempt_pass.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/stale-tactic-guard/faq_schema_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/stale-tactic-guard/faq_schema_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fixtures/stale-tactic-guard/llms_claim_fire.expected.json +3 -0
- package/packs/builtin/seo-aeo-expert/fixtures/stale-tactic-guard/llms_claim_fire.input.json +10 -0
- package/packs/builtin/seo-aeo-expert/fsm.yaml +43 -0
- package/packs/builtin/seo-aeo-expert/lessons/ai-mode-default-fanout/lesson.md +16 -0
- package/packs/builtin/seo-aeo-expert/lessons/bing-is-chatgpt/lesson.md +15 -0
- package/packs/builtin/seo-aeo-expert/lessons/bot-taxonomy-three-classes/lesson.md +21 -0
- package/packs/builtin/seo-aeo-expert/lessons/chunk-shape/lesson.md +18 -0
- package/packs/builtin/seo-aeo-expert/lessons/citation-over-rank/lesson.md +19 -0
- package/packs/builtin/seo-aeo-expert/lessons/cloudflare-default-block/lesson.md +18 -0
- package/packs/builtin/seo-aeo-expert/lessons/deprecated-tactics-2026/lesson.md +32 -0
- package/packs/builtin/seo-aeo-expert/lessons/engine-divergence/lesson.md +22 -0
- package/packs/builtin/seo-aeo-expert/lessons/freehand-schema-forbidden/lesson.md +21 -0
- package/packs/builtin/seo-aeo-expert/lessons/geo-content-levers/lesson.md +20 -0
- package/packs/builtin/seo-aeo-expert/lessons/google-official-ai-guide/lesson.md +17 -0
- package/packs/builtin/seo-aeo-expert/lessons/llms-txt-dead/lesson.md +19 -0
- package/packs/builtin/seo-aeo-expert/lessons/local-ai-gap/lesson.md +20 -0
- package/packs/builtin/seo-aeo-expert/lessons/measurement-discontinuities/lesson.md +29 -0
- package/packs/builtin/seo-aeo-expert/lessons/mentions-beat-backlinks/lesson.md +16 -0
- package/packs/builtin/seo-aeo-expert/lessons/no-js-execution/lesson.md +18 -0
- package/packs/builtin/seo-aeo-expert/lessons/schema-actual-role/lesson.md +22 -0
- package/packs/builtin/seo-aeo-expert/lessons/schema-claims-need-ground-truth/lesson.md +34 -0
- package/packs/builtin/seo-aeo-expert/lessons/ugc-citation-channels/lesson.md +22 -0
- package/packs/builtin/seo-aeo-expert/manifest.yaml +128 -0
- package/packs/builtin/seo-aeo-expert/models.yaml +19 -0
- package/packs/builtin/seo-aeo-expert/skills/bot-policy-guard/skill.yaml +159 -0
- package/packs/builtin/seo-aeo-expert/skills/ground-truth-gate/skill.yaml +66 -0
- package/packs/builtin/seo-aeo-expert/skills/meta-quality-gate/skill.yaml +137 -0
- package/packs/builtin/seo-aeo-expert/skills/page-removal-guard/skill.yaml +30 -0
- package/packs/builtin/seo-aeo-expert/skills/pre-push-seo-checklist/skill.yaml +61 -0
- package/packs/builtin/seo-aeo-expert/skills/schema-validation-gate/skill.yaml +163 -0
- package/packs/builtin/seo-aeo-expert/skills/ssr-regression-guard/skill.yaml +58 -0
- package/packs/builtin/seo-aeo-expert/skills/stale-tactic-guard/skill.yaml +72 -0
- package/packs/builtin/task-spec-author/SKILL.md +469 -0
- package/packs/builtin/task-spec-author/manifest.yaml +41 -0
- package/packs/builtin/task-spec-author/skills-catalog.md +115 -0
- package/packs/builtin/task-spec-author/team.yaml +33 -0
- package/schemas/channels.schema.json +13 -0
- package/schemas/drift_response.schema.json +47 -0
- package/schemas/manifest.schema.json +904 -0
- package/schemas/models.schema.json +68 -0
- package/schemas/notifications.schema.json +64 -0
- package/schemas/skill.schema.json +556 -0
|
@@ -0,0 +1,1205 @@
|
|
|
1
|
+
# Pack runtime — authoritative reference
|
|
2
|
+
|
|
3
|
+
Version: 0.5.293 · Last updated: 2026-06-03 · Spec: T-IDENTITY-FOUNDATION (IDF.1–IDF.5) + T-PACK-FSM-STANDARDIZATION (FSM engine, `fsm.yaml`, `guards:`, `read_fsm_state`/`advance_fsm`)
|
|
4
|
+
|
|
5
|
+
This document is the authoritative reference for the opensquid pack
|
|
6
|
+
runtime: how a pack is identified on disk, what it can declare, how
|
|
7
|
+
the dispatcher loads + walks it, what verdicts it can emit, and which
|
|
8
|
+
primitives its rules can call.
|
|
9
|
+
|
|
10
|
+
Pack authors should treat this document as the **contract for what's
|
|
11
|
+
shipped**. Source code is the canonical truth, but this doc collects
|
|
12
|
+
the schema + lifecycle + primitive catalog in one place so an author
|
|
13
|
+
doesn't have to spelunk through `src/packs/` and `src/functions/` to
|
|
14
|
+
understand what a pack can do.
|
|
15
|
+
|
|
16
|
+
> **File:line citations** use line _ranges_ rather than exact lines so
|
|
17
|
+
> they survive small code shifts. Always cross-check against the
|
|
18
|
+
> current source if you're chasing a specific symbol.
|
|
19
|
+
|
|
20
|
+
Cross-references:
|
|
21
|
+
|
|
22
|
+
- `docs/skill-grammar-guide.md` — companion doc for the `if:`
|
|
23
|
+
expression grammar (loaded via the same evaluator that walks
|
|
24
|
+
`process:` steps).
|
|
25
|
+
- `docs/load-budget.md` — companion doc for the load-side cost
|
|
26
|
+
budget pack authors should respect.
|
|
27
|
+
- `docs/pack-fsm-architecture.md` — companion doc for the pack-FSM
|
|
28
|
+
stack (`fsm.yaml` lifecycle, the generic total-transition engine, the
|
|
29
|
+
`read_fsm_state`/`advance_fsm` primitives, and the `guards:` gate
|
|
30
|
+
template). This doc documents the schema/loader/primitive surface;
|
|
31
|
+
pack-fsm-architecture.md is the all-levels conceptual walkthrough.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 1. Pack identity
|
|
36
|
+
|
|
37
|
+
A pack is a directory under `<scope-root>/packs/<name>/` containing:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
packs/<name>/
|
|
41
|
+
manifest.yaml # required — pack identity + activation
|
|
42
|
+
skills/ # required — one folder per skill
|
|
43
|
+
<skill-name>/
|
|
44
|
+
skill.yaml # required — skill rules
|
|
45
|
+
fsm.yaml # optional — pack-lifecycle FSM (auto-loaded by name; see 1.13)
|
|
46
|
+
chat_agent.yaml # optional — chat-bridge agent identity
|
|
47
|
+
models.yaml # optional — model aliases for LLM primitives
|
|
48
|
+
channels.yaml # optional — chat channel registry
|
|
49
|
+
notifications.yaml # optional — notification routing
|
|
50
|
+
drift_response.yaml # optional — per-rule drift policies
|
|
51
|
+
team.yaml # optional — marker file for profession packs
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 1.1 `manifest.yaml` fields
|
|
55
|
+
|
|
56
|
+
Schema: `src/packs/schemas/manifest.ts:1-360` · Loader fold:
|
|
57
|
+
`src/packs/loader.ts:80-130`. The loader applies Zod defaults at parse
|
|
58
|
+
time, so every field below has a deterministic value at runtime even
|
|
59
|
+
when omitted from disk.
|
|
60
|
+
|
|
61
|
+
| Field | Type | Default | Purpose |
|
|
62
|
+
| -------------------- | -------- | ----------- | -------------------------------------------------------------- |
|
|
63
|
+
| `name` | string | required | Pack name, must match folder name |
|
|
64
|
+
| `version` | semver | required | Pack version (independent of opensquid version) |
|
|
65
|
+
| `scope` | enum | required | Layering precedence (see 1.6) |
|
|
66
|
+
| `goal` | string | required | One-line statement of what the pack does |
|
|
67
|
+
| `description` | string | `''` | Longer description |
|
|
68
|
+
| `requires` | string[] | `[]` | Other packs this depends on (by name) |
|
|
69
|
+
| `conflicts` | string[] | `[]` | Other packs this conflicts with (by name) |
|
|
70
|
+
| `evolves` | bool | `true` | Whether lessons can mutate this pack's skills |
|
|
71
|
+
| `activation_scope` | enum | `'project'` | WHO the pack applies to (see 1.3) |
|
|
72
|
+
| `detected_by` | array | `[]` | WHEN the pack auto-activates (see 1.4) |
|
|
73
|
+
| `foundation` | object | absent | Taxonomy block — tools/domains/methodologies (see 1.2) |
|
|
74
|
+
| `chat_agent_ref` | string | absent | Reference to chat_agent.yaml (see 1.5) |
|
|
75
|
+
| `models_ref` | string | absent | Reference to models.yaml (see 1.5) |
|
|
76
|
+
| `channels_ref` | string | absent | Reference to channels.yaml (see 1.5) |
|
|
77
|
+
| `notifications_ref` | string | absent | Reference to notifications.yaml (see 1.5) |
|
|
78
|
+
| `drift_response_ref` | string | absent | Reference to drift_response.yaml (see 1.5) |
|
|
79
|
+
| `team_ref` | string | absent | Reference to team.yaml (profession marker) |
|
|
80
|
+
| `kind` | enum | `'focused'` | Pack type (see 1.7) — `'focused' \| 'composite'` |
|
|
81
|
+
| `usage` | enum | `'active'` | Load mode (see 1.7) — `'active' \| 'profession' \| 'both'` |
|
|
82
|
+
| `includes` | array | `[]` | Composite-only — `{pack_id, semver}` entries (see 1.7) |
|
|
83
|
+
| `seed_lessons` | array | `[]` | Pack-author knowledge ingest (see 1.10) |
|
|
84
|
+
| `verify_gates` | array | `[]` | Declarative author gates → synthetic `<pack>/verify` (1.11) |
|
|
85
|
+
| `guards` | array | `[]` | Reusable detect→verdict gate template → `<pack>/guards` (1.13) |
|
|
86
|
+
|
|
87
|
+
(The `fsm.yaml` lifecycle is NOT a `manifest.yaml` field — it is a side file
|
|
88
|
+
auto-loaded by filename and folded onto the runtime `Pack` as `pack.fsm`; see
|
|
89
|
+
§1.5 + §1.13.)
|
|
90
|
+
|
|
91
|
+
The schema is `.strict()` — unknown keys at the top level are
|
|
92
|
+
rejected at load time so typos surface loudly rather than silently
|
|
93
|
+
no-op.
|
|
94
|
+
|
|
95
|
+
### 1.7 `kind` / `usage` / `includes` (MM.1 + MM.2 + MM.3 + MM.4)
|
|
96
|
+
|
|
97
|
+
Schema: `src/packs/schemas/manifest.ts:287-305` (enums + CompositeInclude)
|
|
98
|
+
|
|
99
|
+
- `:330-365` (Manifest superRefine). Loader: `src/packs/loader.ts:110-150`
|
|
100
|
+
(team.yaml load + folds). Resolver: `src/packs/composite_resolver.ts`.
|
|
101
|
+
|
|
102
|
+
**Pack kind semantics (MM.1):**
|
|
103
|
+
|
|
104
|
+
- **focused** — own content + own foundation + own detected_by. The
|
|
105
|
+
canonical pack shape. All pre-MM.1 packs default to focused.
|
|
106
|
+
- **composite** — pure aggregator with no own content. MUST have
|
|
107
|
+
non-empty `includes:`; MUST NOT declare `foundation`. References
|
|
108
|
+
focused packs via `{pack_id, semver}` entries; the loader expands
|
|
109
|
+
these at discovery time (§3.1). Composite packs appear in the
|
|
110
|
+
loaded-pack list alongside their expanded includes (for audit
|
|
111
|
+
identity); when the dispatcher walks, it traverses the focused packs
|
|
112
|
+
(composites have no own skills to walk).
|
|
113
|
+
|
|
114
|
+
**Pack usage semantics (MM.1 + MM.2):**
|
|
115
|
+
|
|
116
|
+
- **active** — pack loads into the parent agent's mind via discovery +
|
|
117
|
+
dispatcher walks its skills on every event. Pre-MM.1 default.
|
|
118
|
+
- **profession** — pack does NOT load actively; SPAWNED as a subagent
|
|
119
|
+
via the `spawn_subagent` primitive when a directive's
|
|
120
|
+
`next_action.profession` references it. REQUIRES `team.yaml` with
|
|
121
|
+
≥ 1 role (loader enforces existence + parse).
|
|
122
|
+
- **both** — eligible for either path. Most shipped profession packs
|
|
123
|
+
(scope-architect, pack-architect) use `both` so they fire actively
|
|
124
|
+
when opted-in AND can be spawned on demand.
|
|
125
|
+
|
|
126
|
+
**`includes:` shape:**
|
|
127
|
+
|
|
128
|
+
```yaml
|
|
129
|
+
includes:
|
|
130
|
+
- pack_id: scope-architect
|
|
131
|
+
semver: '>=0.1.0'
|
|
132
|
+
- pack_id: pack-architect
|
|
133
|
+
semver: '^0.1.0'
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Semver ranges follow the standard `semver` npm syntax. Load-time
|
|
137
|
+
resolution validates each include against the discovered pack registry
|
|
138
|
+
(see §3.1 for the 5 error codes).
|
|
139
|
+
|
|
140
|
+
**Profession spawn (MM.2 + MM.3 + MM.4):** when a rule emits a
|
|
141
|
+
`directive` verdict with `next_action.profession: <name>`, the
|
|
142
|
+
dispatcher validates the named pack exists, has `usage: profession|both`,
|
|
143
|
+
and has a loaded team.yaml (see §3.4 for the 5 error codes + the
|
|
144
|
+
no-agent-loop invariant — opensquid emits the directive, the agent
|
|
145
|
+
invokes `spawn_subagent`).
|
|
146
|
+
|
|
147
|
+
### 1.2 `foundation:` taxonomy (IDF.1)
|
|
148
|
+
|
|
149
|
+
Schema: `src/packs/schemas/manifest.ts:200-225`. Optional descriptive
|
|
150
|
+
block declaring what a pack knows about. Runtime treats it as
|
|
151
|
+
metadata in IDF.1 — Phase 2 multi-mode addressing will consume it
|
|
152
|
+
for taxonomic matching.
|
|
153
|
+
|
|
154
|
+
```yaml
|
|
155
|
+
foundation:
|
|
156
|
+
tools:
|
|
157
|
+
- { name: react, semver: ^19 }
|
|
158
|
+
- { name: typescript, semver: ^5.4 }
|
|
159
|
+
domains:
|
|
160
|
+
- frontend
|
|
161
|
+
- state-management
|
|
162
|
+
methodologies:
|
|
163
|
+
- atomic-design
|
|
164
|
+
- test-driven-development
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
- `tools[]` — `{name, semver?}` entries. `semver` is freeform string
|
|
168
|
+
(the runtime doesn't currently parse it; Phase 2 will).
|
|
169
|
+
- `domains[]` — free-text strings; pack-architect's discovery uses
|
|
170
|
+
these.
|
|
171
|
+
- `methodologies[]` — free-text strings.
|
|
172
|
+
|
|
173
|
+
All three sub-fields default to `[]`. Omitting the whole `foundation:`
|
|
174
|
+
block is fine — the field is `Foundation.optional()` at the schema
|
|
175
|
+
layer.
|
|
176
|
+
|
|
177
|
+
### 1.3 `activation_scope:` (IDF.1 + IDF.4)
|
|
178
|
+
|
|
179
|
+
Schema: `src/packs/schemas/manifest.ts:227-235`. Dispatcher routing:
|
|
180
|
+
`src/runtime/hooks/dispatch.ts:168-210` (`activationScopeApplies`).
|
|
181
|
+
|
|
182
|
+
Distinct axis from `scope:` — `scope:` is **layering precedence**
|
|
183
|
+
(universal → domain → specialty → workflow → project for sort
|
|
184
|
+
ordering), `activation_scope:` is **WHO the pack applies to** for
|
|
185
|
+
dispatch routing.
|
|
186
|
+
|
|
187
|
+
| Value | When applies | Notes |
|
|
188
|
+
| --------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
|
|
189
|
+
| `project` | When `ctx.inProject` (default — matches today's implicit behavior) | Pack only fires in projects where it's been opted in |
|
|
190
|
+
| `user` | When `ctx.isUserSession` (always true today) | Per-user, regardless of cwd |
|
|
191
|
+
| `hybrid` | When BOTH `inProject` AND `isUserSession` | Project + user signals must coincide |
|
|
192
|
+
| `team` | Always **inert** | Ships semantic; will fire when team-mode infrastructure lands. Packs declaring `team` are silently dormant in v0.5.x |
|
|
193
|
+
| `global` | When `ctx.isUserSession` (today, equivalent to `user`) | Distinguishable from `user` only when multi-user infrastructure lands (post-v1) |
|
|
194
|
+
|
|
195
|
+
Default: `'project'` (Zod default — packs that omit `activation_scope:`
|
|
196
|
+
behave identically to today's per-cwd loading).
|
|
197
|
+
|
|
198
|
+
### 1.4 `detected_by[]` (IDF.1 + IDF.2 + IDF.3)
|
|
199
|
+
|
|
200
|
+
Schema: `src/packs/schemas/manifest.ts:237-310` (7-kind discriminated
|
|
201
|
+
union). Evaluator: `src/runtime/detection.ts:50-145`
|
|
202
|
+
(`matchesDetectedBy`). Auto-activation: `src/packs/discovery.ts:50-100`
|
|
203
|
+
(per-pack gate).
|
|
204
|
+
|
|
205
|
+
A pack lists detection clauses that the runtime evaluates against the
|
|
206
|
+
current cwd + memory + prompts. **OR semantics across clauses**: first
|
|
207
|
+
clause that matches wins. **Empty array** (or omitted block) → always
|
|
208
|
+
matches (back-compat).
|
|
209
|
+
|
|
210
|
+
**Opt-in invariant**: a pack must STILL be listed in `active.json` to
|
|
211
|
+
load. `detected_by` gates WHEN among opted-in packs; it never causes
|
|
212
|
+
silent installs.
|
|
213
|
+
|
|
214
|
+
The 7 kinds:
|
|
215
|
+
|
|
216
|
+
| Kind | Required fields | Semantic |
|
|
217
|
+
| --------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
218
|
+
| `file_exists` | `path` | True iff `ctx.files[path] === true` |
|
|
219
|
+
| `dir_exists` | `path` | True iff `ctx.dirs[path] === true` |
|
|
220
|
+
| `file_match` | `path`, `matches: {jsonPath → regex}` | Parse JSON at `path`; for each `matches[]` entry, resolve dotted JSON path + regex-test the value. AND across keys |
|
|
221
|
+
| `file_glob` | `pattern`, `min_count` (default 1) | Count files in `ctx.files` matching the minimatch pattern; true iff ≥ `min_count` |
|
|
222
|
+
| `memory_match` | `pattern` | RegExp test against `ctx.memoryBodies` |
|
|
223
|
+
| `conversation_signal` | `pattern` | RegExp test against `ctx.recentPrompts` |
|
|
224
|
+
| `user_pinned` | (none) | True iff `ctx.userPinned`. **⚠ CURRENTLY INERT** — see caveat below |
|
|
225
|
+
|
|
226
|
+
```yaml
|
|
227
|
+
detected_by:
|
|
228
|
+
- kind: file_exists
|
|
229
|
+
path: package.json
|
|
230
|
+
- kind: file_match
|
|
231
|
+
path: package.json
|
|
232
|
+
matches:
|
|
233
|
+
'dependencies.react': "\\^19"
|
|
234
|
+
- kind: dir_exists
|
|
235
|
+
path: src/components/atoms
|
|
236
|
+
- kind: file_glob
|
|
237
|
+
pattern: '**/*.tsx'
|
|
238
|
+
min_count: 3
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**⚠ `user_pinned` is currently inert — never gate a pack solely on it.**
|
|
242
|
+
`ctx.userPinned` is not yet populated (`bootstrap.ts` `buildDetectionContext`
|
|
243
|
+
leaves it `false`, deferred to a later phase). Because the real loader passes a
|
|
244
|
+
non-`null` `ctx`, a pack whose ONLY `detected_by` clause is `user_pinned` fails
|
|
245
|
+
its detection gate and is **silently excluded even when listed in `active.json`**
|
|
246
|
+
(this is exactly the EWG.3.1 bug that disabled `scope-fsm`/`workflow-fsm`). For a
|
|
247
|
+
pack that should load purely on opt-in, declare NO `detected_by` block — an empty
|
|
248
|
+
array always matches (`discovery.ts:194`). Opt-in via `active.json` IS the pin.
|
|
249
|
+
|
|
250
|
+
**No LLM in detection.** All 7 kinds are pure regex / filesystem /
|
|
251
|
+
prompt-substring matches. Per `feedback_stop_haiku_drift` L4 — LLM
|
|
252
|
+
calls in the hot path break determinism + cost predictability.
|
|
253
|
+
|
|
254
|
+
**Malformed-input safety**: malformed JSON in `file_match` silently
|
|
255
|
+
returns false; malformed regex returns false. Pack-load-time RE2
|
|
256
|
+
validation is a deferred follow-up.
|
|
257
|
+
|
|
258
|
+
### 1.5 Side files
|
|
259
|
+
|
|
260
|
+
Most side files are referenced from `manifest.yaml` via a `*_ref:`
|
|
261
|
+
field naming a file in the same pack directory. The loader reads +
|
|
262
|
+
validates each via its own Zod schema; failures throw with a
|
|
263
|
+
path-bearing error so authors can fix the config.
|
|
264
|
+
|
|
265
|
+
| Side file | Schema | Purpose |
|
|
266
|
+
| --------------------- | ------------------------------------- | ------------------------------------------------------------------------------- |
|
|
267
|
+
| `chat_agent.yaml` | `src/packs/schemas/chat_agent.ts` | Chat-bridge identity (display name + persona) |
|
|
268
|
+
| `models.yaml` | `src/packs/schemas/models.ts` | Model aliases (e.g. `reasoning` → vendor model id) — keeps source model-neutral |
|
|
269
|
+
| `channels.yaml` | `src/packs/schemas/channels.ts` | Chat channel registry (project-bridge mapping) |
|
|
270
|
+
| `notifications.yaml` | `src/packs/schemas/notifications.ts` | Notification routing rules |
|
|
271
|
+
| `drift_response.yaml` | `src/packs/schemas/drift_response.ts` | Per-rule drift policy + corrective_skills (see §4.3) |
|
|
272
|
+
| `team.yaml` | `src/packs/schemas/team.ts` | Profession-pack marker (`role:` + `skills_catalog:`) |
|
|
273
|
+
| `fsm.yaml` | `Fsm` in `src/runtime/fsm.ts` | Pack-lifecycle FSM (see §1.13). **Auto-loaded by filename — NO `*_ref`.** |
|
|
274
|
+
|
|
275
|
+
**`fsm.yaml` is the exception to the `*_ref:` rule.** It is read by
|
|
276
|
+
fixed filename (`loader.ts:199` `loadOptionalFsm`), validated for totality
|
|
277
|
+
(`validateFsm`), and folded onto the runtime `Pack` as `pack.fsm`
|
|
278
|
+
(`types.ts:415`). Absent file → `pack.fsm` is `undefined`; the FSM primitives
|
|
279
|
+
then return `null` (no machine to walk).
|
|
280
|
+
|
|
281
|
+
### 1.6 `scope:` (layering precedence)
|
|
282
|
+
|
|
283
|
+
Schema: `src/packs/schemas/manifest.ts` (Scope enum). Distinct from
|
|
284
|
+
`activation_scope:` (§1.3). Five layers, descending precedence:
|
|
285
|
+
|
|
286
|
+
1. `universal` — discipline that applies to every domain
|
|
287
|
+
2. `domain` — domain-specific knowledge (e.g. all frontend work)
|
|
288
|
+
3. `specialty` — narrower domain (e.g. atomic-design within frontend)
|
|
289
|
+
4. `workflow` — process discipline (e.g. test-driven workflow)
|
|
290
|
+
5. `project` — project-local rules
|
|
291
|
+
|
|
292
|
+
`sortPacksByScope` (`src/packs/load_order.ts`) orders the loaded pack
|
|
293
|
+
list by `scope` precedence (universal first), then alphabetically by
|
|
294
|
+
name within a scope. First-match short-circuit in the dispatcher means
|
|
295
|
+
higher-precedence packs' verdicts win.
|
|
296
|
+
|
|
297
|
+
### 1.8 `base_version` + `personal_revision` — living-pack state (LP.1 + LP.3)
|
|
298
|
+
|
|
299
|
+
A **living pack** consists of two layers:
|
|
300
|
+
|
|
301
|
+
- **`base_version`** (immutable semver) — set once at install from the
|
|
302
|
+
vanilla source's `manifest.yaml#version`. NEVER mutated by the engine
|
|
303
|
+
after install. The anchor point for 3-way merges on subsequent vanilla
|
|
304
|
+
upgrades (see §3.5).
|
|
305
|
+
- **`personal_revision`** — monotonic counter + per-lesson YAML files at
|
|
306
|
+
`~/.opensquid/packs/<id>/personal_revision/`. Grown by the
|
|
307
|
+
wedge-promote pipeline (LP.3) on each Stage 2 lesson promotion. Each
|
|
308
|
+
lesson is stored as `lesson_<n>.yaml` with `n` monotonic from 1.
|
|
309
|
+
|
|
310
|
+
State file: `version.json` at `<state-dir>/personal_revision/version.json`:
|
|
311
|
+
|
|
312
|
+
```json
|
|
313
|
+
{
|
|
314
|
+
"base_version": "1.2.3",
|
|
315
|
+
"personal_revision_id": 5,
|
|
316
|
+
"last_merged_vanilla": "1.2.3"
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
`last_merged_vanilla` records the most recent vanilla version
|
|
321
|
+
successfully 3-way-merged against (or `null` if never upgraded). The
|
|
322
|
+
upgrade gate (`checkAndMergeUpgrades`) compares this against the
|
|
323
|
+
current vanilla `manifest.version` to decide whether to fire LP.2's
|
|
324
|
+
merger.
|
|
325
|
+
|
|
326
|
+
Helpers: `readVersionJson` / `writeVersionJson` / `readLessonFiles` /
|
|
327
|
+
`appendLessonFile` / `initPersonalRevision` /
|
|
328
|
+
`persistPromotedLesson` in `src/packs/personal_revision.ts:1-220`.
|
|
329
|
+
All writes go through atomic `<file>.tmp.<pid>.<rand>` + `fs.rename`.
|
|
330
|
+
|
|
331
|
+
### 1.9 Pack export modes (LP.4)
|
|
332
|
+
|
|
333
|
+
`opensquid pack export <name> --mode <m>` ships a pack as a directory
|
|
334
|
+
(or `.tgz` in v1.5+) with one of these stripping policies:
|
|
335
|
+
|
|
336
|
+
| Mode | Memory citations | Memory bodies | Use case | Status |
|
|
337
|
+
| ------------------------ | -------------------------- | --------------- | ------------------------- | --------------- |
|
|
338
|
+
| `lessons-only` (DEFAULT) | Stripped (regex) | Dropped | Safe peer-sharing path | v1 |
|
|
339
|
+
| `raw` | Preserved verbatim | Preserved | Local self-backup only | v1 |
|
|
340
|
+
| `with-evidence` | Re-mapped `mem-export-<n>` | Included inline | Trusted team/org transfer | v1.5 (deferred) |
|
|
341
|
+
|
|
342
|
+
Stripping is regex-based, deterministic, no LLM calls per
|
|
343
|
+
[[feedback_stop_haiku_drift]]. See `src/cli/pack.ts:buildExportCommand`.
|
|
344
|
+
|
|
345
|
+
### 1.10 `seed_lessons:[]` — pack-author knowledge ingest (DOG.3 + DOG.4)
|
|
346
|
+
|
|
347
|
+
Optional array on `manifest.yaml`. Each entry is ingested into the
|
|
348
|
+
engine's lessons table at load time via `engine.lessonCreate({
|
|
349
|
+
authored_by: 'pack', pack_id, external_id, seed_as_promoted: true })`.
|
|
350
|
+
|
|
351
|
+
```yaml
|
|
352
|
+
seed_lessons:
|
|
353
|
+
- title: 'Server Components by default; "use client" only at the leaf'
|
|
354
|
+
body: |
|
|
355
|
+
In React 19, every component defaults to server-render. Add
|
|
356
|
+
"use client" at the leaf where interactivity is genuinely required.
|
|
357
|
+
scope: user # or 'global'
|
|
358
|
+
tags: [react-19, server-components, performance]
|
|
359
|
+
source: 'https://react.dev/reference/rsc/server-components'
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Contract:
|
|
363
|
+
|
|
364
|
+
- **Idempotent re-ingest** — `external_id = pack-seed:<sha256(<pack>@<version>|<title>).slice(0,24)>`.
|
|
365
|
+
Engine returns `updated: true` for an UPSERT hit; `false` for a new
|
|
366
|
+
row. Re-running `loadPack` after a manifest edit re-ingests only the
|
|
367
|
+
delta (entries with new title text or new pack version).
|
|
368
|
+
- **Eviction-immune** — `authored_by: 'pack'` mirrors the user-authored
|
|
369
|
+
immunity contract per [[feedback_user_authored_lessons_immune]].
|
|
370
|
+
The engine refuses `delete(force)` on these rows.
|
|
371
|
+
- **Promoted-on-ingest** — `seed_as_promoted: true` bypasses the
|
|
372
|
+
pending → promoted gate so seed knowledge is recall-eligible from the
|
|
373
|
+
first session.
|
|
374
|
+
- **Fire-and-forget failure handling** — per-seed RPC errors are
|
|
375
|
+
COLLECTED, never thrown. A missing or down engine does NOT block pack
|
|
376
|
+
load; seeds are simply absent from recall until the next loadPack
|
|
377
|
+
with an engine present.
|
|
378
|
+
|
|
379
|
+
Schema: `SeedLesson` in `src/packs/schemas/manifest.ts`. Ingest
|
|
380
|
+
implementation: `src/packs/seed_lessons_ingest.ts`. The runtime Pack
|
|
381
|
+
type hoists `seedLessons?: SeedLesson[]` so downstream consumers
|
|
382
|
+
(audit-trail, future fixture sync) can read without re-parsing YAML.
|
|
383
|
+
|
|
384
|
+
### 1.11 `verify_gates:[]` — declarative author gates (DOG.3 + DOG.4)
|
|
385
|
+
|
|
386
|
+
Optional array on `manifest.yaml`. Each entry compiles at load time
|
|
387
|
+
into one `TrackCheckRule` whose process is a single `verdict` primitive
|
|
388
|
+
call gated by the gate's `check` if-expression. The compiled rules are
|
|
389
|
+
grouped under a synthetic skill named `<pack>/verify` with triggers
|
|
390
|
+
derived from each gate's `when.event_kind`.
|
|
391
|
+
|
|
392
|
+
```yaml
|
|
393
|
+
verify_gates:
|
|
394
|
+
- name: no-rm-rf
|
|
395
|
+
when:
|
|
396
|
+
event_kind: tool_call
|
|
397
|
+
check: 'contains(tool_args.command, "rm -rf")'
|
|
398
|
+
on_fail:
|
|
399
|
+
level: block
|
|
400
|
+
message: |
|
|
401
|
+
BLOCKED: `rm -rf` is too destructive.
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
Contract:
|
|
405
|
+
|
|
406
|
+
- **Pre-parse validation** — every `check` expression is run through
|
|
407
|
+
`parseExpression` at load time. A malformed expression throws at
|
|
408
|
+
`loadPack` with the offending gate name (no silent skipping).
|
|
409
|
+
- **5-fn allow-list** — `check` uses `len` / `contains` / `startsWith`
|
|
410
|
+
/ `endsWith` / `match`. Identifiers reference bindings the dispatcher
|
|
411
|
+
populates from the event (e.g. `tool_args.command`, `prompt`).
|
|
412
|
+
- **Synthetic skill provenance** — compiled rule ids follow the
|
|
413
|
+
`gate:<gate-name>` pattern so drift-catalog greps can attribute the
|
|
414
|
+
verdict to its source gate.
|
|
415
|
+
- **Trigger dedup** — multiple gates on the same `event_kind` produce
|
|
416
|
+
ONE trigger entry on the synthetic skill.
|
|
417
|
+
- **Tool-name filtering belongs in the check expression** — the
|
|
418
|
+
`tool_call` `Trigger` variant in `event.ts` carries no per-trigger
|
|
419
|
+
`tool_match` field; use `match(tool, "^Bash$") && ...` inside the
|
|
420
|
+
`check` instead.
|
|
421
|
+
|
|
422
|
+
Schema: `VerifyGate` + `VerifyGateWhen` in `src/packs/schemas/manifest.ts`.
|
|
423
|
+
Compiler: `src/packs/verify_gates_compiler.ts`.
|
|
424
|
+
|
|
425
|
+
### 1.12 `livingVersion` runtime field (DOG.5)
|
|
426
|
+
|
|
427
|
+
The loader folds the per-pack `personal_revision/version.json` shape
|
|
428
|
+
(LP.1) into a single convenience triple on the runtime `Pack`:
|
|
429
|
+
|
|
430
|
+
```ts
|
|
431
|
+
pack.livingVersion; // {base: string, revision: number} | undefined
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
- `base` — semver string the pack was installed at (immutable per LP.1).
|
|
435
|
+
- `revision` — monotonic count of promoted lessons; 0 for a fresh install.
|
|
436
|
+
- `undefined` — pack isn't user-installed (built-in pack with no
|
|
437
|
+
`~/.opensquid/packs/<id>/` state dir).
|
|
438
|
+
|
|
439
|
+
Read API: `getLivingPackVersion(packId): Promise<LivingPackVersion |
|
|
440
|
+
null>` in `src/packs/living_pack.ts`. Honors `OPENSQUID_HOME` env
|
|
441
|
+
override (test seam wired through LP.3's `resolvePackStateDir`).
|
|
442
|
+
|
|
443
|
+
### 1.13 `guards:[]` — reusable detect→verdict gate template (T-PACK-FSM-STANDARDIZATION slice B)
|
|
444
|
+
|
|
445
|
+
Optional array on `manifest.yaml`. A guard is the compressed form of the
|
|
446
|
+
recurring "inspect the event, then emit a verdict if a condition holds" pattern —
|
|
447
|
+
the generalization of §1.11's `verify_gates`. Each guard compiles at load time
|
|
448
|
+
into a `TrackCheckRule` (a `detect` step when present, then a gated `verdict`
|
|
449
|
+
step) under a synthetic skill named `<pack>/guards`, triggered on the guard's
|
|
450
|
+
`on:` event kind.
|
|
451
|
+
|
|
452
|
+
```yaml
|
|
453
|
+
guards:
|
|
454
|
+
- name: no-rm-rf
|
|
455
|
+
on: tool_call # tool_call | prompt_submit | stop | session_end (default tool_call)
|
|
456
|
+
detect: # optional — a primitive call whose result binds to `as`
|
|
457
|
+
call: tool_args
|
|
458
|
+
as: targs # binding name for the detect result (default `hit`)
|
|
459
|
+
when: 'contains(targs.command, "rm -rf")' # if-expression; the verdict condition
|
|
460
|
+
level: block # warn | block
|
|
461
|
+
message: |
|
|
462
|
+
BLOCKED: `rm -rf` is too destructive.
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Schema: `Guard` + `GuardDetect` in `src/packs/schemas/manifest.ts:452-479`.
|
|
466
|
+
Compiler: `src/packs/guards_compiler.ts` (`compileGuards`). Loader fold:
|
|
467
|
+
`src/packs/loader.ts:130`.
|
|
468
|
+
|
|
469
|
+
Contract:
|
|
470
|
+
|
|
471
|
+
- **`detect` is optional.** With `detect`, the named primitive runs first and its
|
|
472
|
+
result binds to `as` (default `hit`); `when` typically references that binding.
|
|
473
|
+
Without `detect`, `when` is a standalone check (the `verify_gates` case) — the
|
|
474
|
+
two features share the same compile target.
|
|
475
|
+
- **Pre-parse validation** — every `when` expression runs through the compiler's
|
|
476
|
+
`parseExpression` at load time; a malformed expression throws at `loadPack` with
|
|
477
|
+
the offending guard name (fail-loud, same as `verify_gates`).
|
|
478
|
+
- **`guards:` vs `verify_gates:`** — `verify_gates` is the `when`-only special
|
|
479
|
+
case (no `detect` step, `event_kind` nested under `when:`); `guards` adds the
|
|
480
|
+
optional `detect` step + a flat `on:` field. New packs should prefer `guards:`;
|
|
481
|
+
`verify_gates:` stays for back-compat.
|
|
482
|
+
- **`guards:` vs hand-written skills** — a guard is for the common
|
|
483
|
+
single-detect-then-verdict shape. A rule needing multiple primitive calls,
|
|
484
|
+
branching, or state reads still warrants a hand-written `skill.yaml`.
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
## 2. Skill format
|
|
489
|
+
|
|
490
|
+
A skill lives at `packs/<name>/skills/<skill-name>/skill.yaml`.
|
|
491
|
+
|
|
492
|
+
### 2.1 `skill.yaml` fields
|
|
493
|
+
|
|
494
|
+
Schema: `src/packs/schemas/skill.ts:285-330`.
|
|
495
|
+
|
|
496
|
+
| Field | Type | Default | Purpose |
|
|
497
|
+
| -------------- | ----------------- | ----------------------- | ------------------------------------------------------------------- |
|
|
498
|
+
| `name` | string | required | Skill name (must be unique within the pack) |
|
|
499
|
+
| `load` | enum | `'lazy'` | `'preload'` keeps skill resident; `'lazy'` loads per `when_to_load` |
|
|
500
|
+
| `when_to_load` | Matcher[] | `[]` | When a `lazy` skill loads (see 2.2) |
|
|
501
|
+
| `requires` | SkillRequires[] | `[]` | AND-preconditions evaluated at dispatcher (see 2.3) |
|
|
502
|
+
| `unloads_when` | UnloadCondition[] | `[]` | When a dynamic skill unloads (idle ticks, etc.) |
|
|
503
|
+
| `triggers` | Trigger[] | `[{kind: 'tool_call'}]` | Which Event kinds wake this skill (see 2.4) |
|
|
504
|
+
| `rules` | Rule[] | required | The skill's actual logic (see 2.5) |
|
|
505
|
+
|
|
506
|
+
### 2.2 `when_to_load:` matchers
|
|
507
|
+
|
|
508
|
+
Schema: `src/runtime/load_matchers.ts:50-180`. Each matcher is a
|
|
509
|
+
discriminated-union variant; the skill loads when ANY matcher
|
|
510
|
+
matches the current event/context.
|
|
511
|
+
|
|
512
|
+
Common matcher kinds (full list in `load_matchers.ts`):
|
|
513
|
+
|
|
514
|
+
- `event_type` — `{event_type: 'prompt_submit'}` matches any
|
|
515
|
+
prompt-submit event
|
|
516
|
+
- `tool_used` — `{tool_used: 'Write'}` matches Write tool calls
|
|
517
|
+
- `cwd_match` — regex against cwd
|
|
518
|
+
- `command_match` — regex against bash command
|
|
519
|
+
- `path_match` — regex against file_path arg
|
|
520
|
+
- `prompt_match` — regex against prompt text
|
|
521
|
+
|
|
522
|
+
### 2.3 `Skill.requires:` AND-preconditions (T-ASC ASC.2)
|
|
523
|
+
|
|
524
|
+
Schema: `src/runtime/skill_requires.ts`. Each `requires:` entry is a
|
|
525
|
+
precondition the dispatcher evaluates BEFORE walking any rule. If any
|
|
526
|
+
precondition is false, the entire skill is skipped (no rules
|
|
527
|
+
evaluate, no `inject_context` fires).
|
|
528
|
+
|
|
529
|
+
```yaml
|
|
530
|
+
requires:
|
|
531
|
+
- kind: automation_mode_on
|
|
532
|
+
- kind: active_task_present
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
Schema: each entry is `{kind: <variant>}`. Two variants ship today
|
|
536
|
+
(`skill_requires.ts:48-49`): `automation_mode_on` (stat the session
|
|
537
|
+
`automation.flag`) and `active_task_present` (stat the session
|
|
538
|
+
`active-task.json`). The former `chain_stage:` precondition was REMOVED with
|
|
539
|
+
chain_state (`skill_requires.ts:11`) — gate on FSM state via the `read_fsm_state`
|
|
540
|
+
primitive inside a rule's `process:` instead (see §2.6 + §5.2).
|
|
541
|
+
|
|
542
|
+
Preconditions are AND-composed. An empty `requires:[]` trivially
|
|
543
|
+
holds (back-compat).
|
|
544
|
+
|
|
545
|
+
A `RequiresCache` (`src/runtime/skill_requires.ts:RequiresCache`)
|
|
546
|
+
amortizes precondition reads across N skills that share the same
|
|
547
|
+
precondition within a single `dispatchEvent` call.
|
|
548
|
+
|
|
549
|
+
### 2.4 `triggers:` (Event kinds)
|
|
550
|
+
|
|
551
|
+
Schema: `src/packs/schemas/skill.ts:286-329` (the
|
|
552
|
+
`triggers:` field). Each trigger is a discriminated-union object.
|
|
553
|
+
|
|
554
|
+
Event kinds (`src/runtime/event.ts:1-200`):
|
|
555
|
+
|
|
556
|
+
| Kind | Source | Common matchers |
|
|
557
|
+
| ----------------- | ---------------------------- | ---------------------------- |
|
|
558
|
+
| `tool_call` | Claude Code PreToolUse hook | `tool_used`, `command_match` |
|
|
559
|
+
| `post_tool_call` | Claude Code PostToolUse hook | `tool_used` |
|
|
560
|
+
| `prompt_submit` | UserPromptSubmit hook | `prompt_match` |
|
|
561
|
+
| `session_end` | SessionEnd hook | — |
|
|
562
|
+
| `stop` | Stop hook | — |
|
|
563
|
+
| `schedule` | scheduler tick (SCHED.1) | `cron:` literal in trigger |
|
|
564
|
+
| `webhook` | webhook intake (SCHED.2) | route literal in trigger |
|
|
565
|
+
| `inbound_channel` | chat inbound (LL.3 watcher) | `channel`, `sender_pattern` |
|
|
566
|
+
| `file_changed` | file-watcher (SCHED.3) | path glob in trigger |
|
|
567
|
+
|
|
568
|
+
Omitting `triggers:` defaults to `[{kind: 'tool_call'}]` —
|
|
569
|
+
preserves Phase 1+ behavior verbatim.
|
|
570
|
+
|
|
571
|
+
**`inbound_channel` filter semantics** (T-L3-LOOP LL.3 / LL.4):
|
|
572
|
+
|
|
573
|
+
- `channel: 'telegram' | 'slack' | 'discord'` (optional). When set, the
|
|
574
|
+
trigger fires only if the parsed scheme of `event.channelUri` matches
|
|
575
|
+
(e.g. `'telegram'` matches `telegram://...`). Omit to accept all
|
|
576
|
+
platforms.
|
|
577
|
+
- `sender_pattern: string` (optional). JS RegExp (first-party trust
|
|
578
|
+
boundary — packs are vendored; pack authors are trusted to write
|
|
579
|
+
non-pathological patterns). Matched against `event.sender`. Empty
|
|
580
|
+
string OR omitted = accept all senders. Malformed pattern → trigger
|
|
581
|
+
silently skipped at dispatch.
|
|
582
|
+
- `cost_tier:` (optional, inherits the general trigger field).
|
|
583
|
+
|
|
584
|
+
**`InboundChannelEvent` payload** (defined at `src/runtime/event.ts:136-144`):
|
|
585
|
+
|
|
586
|
+
| Field | Type | Description |
|
|
587
|
+
| ------------ | ------- | ------------------------------------------------ |
|
|
588
|
+
| `channelUri` | string | `<platform>://<channel>[/<thread_id>]` per LL.3 |
|
|
589
|
+
| `sender` | string | platform display name (e.g. Telegram first_name) |
|
|
590
|
+
| `text` | string | message body |
|
|
591
|
+
| `threadKey` | string? | thread/topic id (Telegram `message_thread_id`) |
|
|
592
|
+
| `receivedAt` | string | ISO-8601, platform-stamped |
|
|
593
|
+
|
|
594
|
+
Multi-platform within one skill: declare two `triggers:` entries (one
|
|
595
|
+
per platform). Skill-rule composition is layered — not OR-ed at the
|
|
596
|
+
trigger schema.
|
|
597
|
+
|
|
598
|
+
Reference example: `packs/builtin/default-discipline/skills/inbound-greeter/`
|
|
599
|
+
demonstrates the trigger pattern (surface-verdict acknowledgment of any
|
|
600
|
+
inbound message).
|
|
601
|
+
|
|
602
|
+
### 2.5 `rules:` (Rule discriminated union)
|
|
603
|
+
|
|
604
|
+
Schema: `src/packs/schemas/skill.ts:135-200`. Two kinds:
|
|
605
|
+
|
|
606
|
+
- `track_check` — per-event rule walked at dispatch time. The
|
|
607
|
+
default. Evaluates `process:` steps, may emit a verdict.
|
|
608
|
+
- `destination_check` — periodic rule walked by the destination
|
|
609
|
+
scheduler (every N tool calls). Does NOT fire through the
|
|
610
|
+
per-event dispatcher.
|
|
611
|
+
|
|
612
|
+
```yaml
|
|
613
|
+
rules:
|
|
614
|
+
- id: warn-on-amend
|
|
615
|
+
kind: track_check
|
|
616
|
+
requires: [] # rule-local preconditions (peer to Skill.requires)
|
|
617
|
+
process:
|
|
618
|
+
- call: tool_name
|
|
619
|
+
as: tool
|
|
620
|
+
- call: match_command
|
|
621
|
+
as: m
|
|
622
|
+
- call: verdict
|
|
623
|
+
if: 'tool == "Bash" && m.matched == true'
|
|
624
|
+
args:
|
|
625
|
+
level: warn
|
|
626
|
+
message: 'avoid git commit --amend in shared branches'
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
### 2.6 `process:` step grammar
|
|
630
|
+
|
|
631
|
+
Schema: `src/packs/schemas/skill.ts:101-130`. Each step is one of:
|
|
632
|
+
|
|
633
|
+
- `call:` a primitive name (see §5 for catalog) + `as:` binding
|
|
634
|
+
name + optional `args:` + optional `if:` predicate + optional
|
|
635
|
+
`on_empty:` for empty-result short-circuits
|
|
636
|
+
- `set:` literal binding (no primitive call)
|
|
637
|
+
|
|
638
|
+
The `if:` expression grammar is documented in `docs/skill-grammar-guide.md`
|
|
639
|
+
— it supports `==`/`!=`, `&&`/`||`/`!`, dotted path access into
|
|
640
|
+
bound bindings (e.g. `tool.value`), the `contains(haystack, needle)`
|
|
641
|
+
helper, and a few well-known booleans (`true`/`false`/`null`).
|
|
642
|
+
|
|
643
|
+
Evaluation is strictly sequential: each step's `as:` binding is
|
|
644
|
+
visible to all subsequent steps via dotted access.
|
|
645
|
+
|
|
646
|
+
---
|
|
647
|
+
|
|
648
|
+
## 3. Lifecycle
|
|
649
|
+
|
|
650
|
+
### 3.1 Discovery (`active.json` + `detected_by`)
|
|
651
|
+
|
|
652
|
+
Module: `src/packs/discovery.ts:1-130`.
|
|
653
|
+
|
|
654
|
+
1. **Scope resolution** — `resolveUserScopeRoot()` returns
|
|
655
|
+
`~/.opensquid/`; `resolveProjectScopeRoot(cwd)` walks up from cwd
|
|
656
|
+
looking for `.opensquid/` (returns `null` if none above cwd).
|
|
657
|
+
2. **active.json read** — `<scope>/active.json` is JSON with shape
|
|
658
|
+
`{packs: string[]}`. ENOENT → empty pack list (no opt-in). Malformed
|
|
659
|
+
JSON / missing `packs:` → throws path-bearing error (fail-LOUD per
|
|
660
|
+
`project_opensquid_runtime_failure_handling`).
|
|
661
|
+
3. **Per-pack load** — `loadPack(<scope>/packs/<name>/)` parses
|
|
662
|
+
`manifest.yaml` + every `skills/*/skill.yaml` + side files.
|
|
663
|
+
4. **Detection gate (IDF.3)** — if the caller passed a
|
|
664
|
+
`DetectionContext`, each opted-in pack is gated on
|
|
665
|
+
`matchesDetectedBy(pack.detectedBy ?? [], ctx)`. Mismatched packs
|
|
666
|
+
are skipped from results. `null` ctx → legacy behavior (all
|
|
667
|
+
opted-in packs load).
|
|
668
|
+
5. **Opt-in invariant** — a pack NOT in `active.json` is NEVER
|
|
669
|
+
loaded regardless of `detected_by`. No silent installs.
|
|
670
|
+
6. **Composite expansion (MM.1)** — after per-pack discovery + detected_by
|
|
671
|
+
filtering, `discoverActivePacks` calls `expandComposites`
|
|
672
|
+
(`src/packs/composite_resolver.ts`) to walk every composite pack's
|
|
673
|
+
`includes:` against the discovered focused-pack registry. The
|
|
674
|
+
expanded list contains:
|
|
675
|
+
- Every original focused pack (deduped)
|
|
676
|
+
- Every composite pack (preserved for audit identity — composites have
|
|
677
|
+
no skills to walk, but stay in the list for diagnostics)
|
|
678
|
+
- Every focused pack referenced by any composite's includes (deduped;
|
|
679
|
+
first-occurrence-wins; scope-precedence preserved)
|
|
680
|
+
|
|
681
|
+
Composite resolution errors throw `CompositeResolutionError` with a
|
|
682
|
+
`cause` field:
|
|
683
|
+
|
|
684
|
+
| Cause code | Trigger |
|
|
685
|
+
| ----------------- | ------------------------------------------------------------------------- |
|
|
686
|
+
| `unknown-pack` | composite references a `pack_id` not in the registry |
|
|
687
|
+
| `semver-mismatch` | registry version doesn't satisfy the include's range |
|
|
688
|
+
| `cycle` | composite A → B → A (or longer chain) detected within one resolution walk |
|
|
689
|
+
| `depth-exceeded` | > 3 levels of nested composite expansion |
|
|
690
|
+
| `invalid-semver` | malformed range string |
|
|
691
|
+
|
|
692
|
+
### 3.2 Load order
|
|
693
|
+
|
|
694
|
+
Module: `src/packs/load_order.ts` (`sortPacksByScope`).
|
|
695
|
+
|
|
696
|
+
After discovery returns user + project packs, the loader concatenates
|
|
697
|
+
them and sorts by `scope:` precedence (universal first, project last)
|
|
698
|
+
then alphabetically within a scope. First-match short-circuit means
|
|
699
|
+
higher-precedence packs win.
|
|
700
|
+
|
|
701
|
+
### 3.3 `extends:` inheritance (planned)
|
|
702
|
+
|
|
703
|
+
Not shipped in v0.5.x. Skill-level `extends:` will let a pack inherit
|
|
704
|
+
another pack's skill + selectively override fields. Tracked
|
|
705
|
+
separately.
|
|
706
|
+
|
|
707
|
+
### 3.5 Vanilla upgrade lifecycle (LP.2 + LP.5)
|
|
708
|
+
|
|
709
|
+
When a user runs `opensquid pack install <newer-source>` for an
|
|
710
|
+
already-installed pack OR when session-load discovery sees
|
|
711
|
+
`manifest.version > base_version` AND personal_revision has lessons
|
|
712
|
+
(id > 0) AND `last_merged_vanilla !== current vanilla`, the lazy 3-way
|
|
713
|
+
merge resolver triggers:
|
|
714
|
+
|
|
715
|
+
1. Read base snapshot (immutable installed version) from
|
|
716
|
+
`<state-dir>/base/`
|
|
717
|
+
2. Read personal lesson files from
|
|
718
|
+
`<state-dir>/personal_revision/lesson_*.yaml`
|
|
719
|
+
3. Read vanilla snapshot from the install source / extracted directory
|
|
720
|
+
4. For each file in the union (.yaml/.yml/.md only; node_modules/.git/
|
|
721
|
+
skipped):
|
|
722
|
+
- Both base & vanilla unchanged → `unchanged`
|
|
723
|
+
- Only personal touched → `auto-merged-personal` (preserve personal)
|
|
724
|
+
- Only vanilla touched → `auto-merged-vanilla` (adopt vanilla)
|
|
725
|
+
- Both touched → `conflict`: emit `lesson_<n>.conflict.yaml` sidecar
|
|
726
|
+
with YAML-comment-safe git-style markers (`# <<<<<<< base`, `#
|
|
727
|
+
=======`, `# >>>>>>> vanilla <semver>`)
|
|
728
|
+
5. Update `last_merged_vanilla` in version.json on success
|
|
729
|
+
|
|
730
|
+
User resolves conflicts manually by editing the `.conflict.yaml`
|
|
731
|
+
sidecar + renaming back to `.yaml`. On next discovery the resolved
|
|
732
|
+
file is picked up as the canonical lesson.
|
|
733
|
+
|
|
734
|
+
**Lazy by design (per L10):** no background poller; the merge fires on
|
|
735
|
+
next discovery only. **Idempotent (per L11):** same vanillaVersion →
|
|
736
|
+
returns `noop: true` without file writes. **base_version immutable:**
|
|
737
|
+
only `last_merged_vanilla` mutates; `base_version` stays the
|
|
738
|
+
install-time value.
|
|
739
|
+
|
|
740
|
+
Per-session cache: `(packId, base, vanilla, revisionId)` tuple
|
|
741
|
+
short-circuits redundant calls. Cleared via `clearMergeCache()` (called
|
|
742
|
+
by bootstrap on SessionStart).
|
|
743
|
+
|
|
744
|
+
Helpers: `checkAndMergeUpgrades` + `clearMergeCache` in
|
|
745
|
+
`src/packs/discovery.ts`. Underlying merger: `runThreeWayMerge` in
|
|
746
|
+
`src/runtime/versioning.ts:1-250`.
|
|
747
|
+
|
|
748
|
+
### 3.4 Dispatch flow
|
|
749
|
+
|
|
750
|
+
Module: `src/runtime/hooks/dispatch.ts:205-380` (`dispatchEvent`).
|
|
751
|
+
|
|
752
|
+
```
|
|
753
|
+
event (ToolCallEvent | …)
|
|
754
|
+
↓
|
|
755
|
+
for each pack in packs (already scope-sorted):
|
|
756
|
+
↓
|
|
757
|
+
IDF.4 filter: activationScopeApplies(pack.activationScope ?? 'project', scopeCtx)
|
|
758
|
+
│
|
|
759
|
+
↓ true (else skip pack)
|
|
760
|
+
↓
|
|
761
|
+
for each skill in pack.skills:
|
|
762
|
+
↓
|
|
763
|
+
unload check: dynamicSkillNames has skill AND unloadSkip has skill → skip
|
|
764
|
+
AUTO.1 filter: skill.triggers some kind == event.kind → walk, else skip
|
|
765
|
+
ASC.2 gate: every skill.requires precondition holds → walk, else skip
|
|
766
|
+
↓
|
|
767
|
+
for each rule in skill.rules:
|
|
768
|
+
↓
|
|
769
|
+
destination_check kind → skip (handled by scheduler)
|
|
770
|
+
↓
|
|
771
|
+
evaluateProcess(rule.process, …) → RuleResult
|
|
772
|
+
↓
|
|
773
|
+
verdict (pass | block | warn | surface | directive)
|
|
774
|
+
OR inject_context (string aggregated)
|
|
775
|
+
OR no_verdict (continue)
|
|
776
|
+
↓
|
|
777
|
+
verdict resolved → consult pack.driftResponse?.per_rule[rule.id] ?? .default ?? 'block_tool'
|
|
778
|
+
↓
|
|
779
|
+
applyDriftResponse → {exitCode, stderr, …}
|
|
780
|
+
↓
|
|
781
|
+
FIRST verdict short-circuits the walk (within the dispatchEvent call)
|
|
782
|
+
|
|
783
|
+
Special case — verdict.level === 'directive' (ASC.3 + MM.2):
|
|
784
|
+
↓
|
|
785
|
+
Aggregate onto the per-event directives[] list (peer to contextInjections).
|
|
786
|
+
↓
|
|
787
|
+
MM.2 — if next_action.profession is set:
|
|
788
|
+
1. Look up profession pack in loaded registry
|
|
789
|
+
2. Validate pack.usage in {'profession', 'both'}
|
|
790
|
+
3. Validate pack.team is set + has >= 1 role
|
|
791
|
+
4. On success: aggregate; UserPromptSubmit surfaces via envelope.
|
|
792
|
+
5. On failure: DROP the directive + emit a stderr warning naming
|
|
793
|
+
the ProfessionResolutionError cause; the agent never sees a
|
|
794
|
+
malformed directive (fail-safe — no misleading the agent into
|
|
795
|
+
spawning an invalid profession).
|
|
796
|
+
↓
|
|
797
|
+
The AGENT reads the surfaced directive + invokes spawn_subagent(...).
|
|
798
|
+
opensquid NEVER invokes spawn_subagent itself per
|
|
799
|
+
[[project_opensquid_no_agent_loop]] — the invariant is preserved.
|
|
800
|
+
```
|
|
801
|
+
|
|
802
|
+
Profession-directive validation error codes (`ProfessionResolutionError`):
|
|
803
|
+
|
|
804
|
+
| Code | Trigger |
|
|
805
|
+
| ---------------- | ----------------------------------------------------------------- |
|
|
806
|
+
| `unknown-pack` | `next_action.profession` names a pack not in the loaded registry |
|
|
807
|
+
| `wrong-usage` | named pack exists but `usage === 'active'` |
|
|
808
|
+
| `missing-team` | named pack has `usage: profession\|both` but no loaded team.yaml |
|
|
809
|
+
| `no-roles` | team.yaml declares zero roles (defensive — schema enforces ≥ 1) |
|
|
810
|
+
| `role-not-found` | (multi-role) directive's `args.role` names a role not in the team |
|
|
811
|
+
|
|
812
|
+
Exit-code mapping (`src/runtime/hooks/dispatch.ts:45-60`):
|
|
813
|
+
|
|
814
|
+
| Policy | exitCode | stderr |
|
|
815
|
+
| -------------------- | -------- | --------------------------------------- |
|
|
816
|
+
| `block_tool` | 2 | message |
|
|
817
|
+
| `warn` | 0 | message |
|
|
818
|
+
| `full_stop_and_redo` | 2 | message |
|
|
819
|
+
| `notify_and_pause` | 0 | '' (Phase 4 wires channels) |
|
|
820
|
+
| `auto_correct` | 0 | '' (invokes corrective skill) |
|
|
821
|
+
| `escalate` | 2 | message (severity bumped to 'critical') |
|
|
822
|
+
|
|
823
|
+
Note `notify_and_pause` + `auto_correct` exit 0 in v0.5.x — their
|
|
824
|
+
real behavior lands as their wiring (channels, corrective dispatch)
|
|
825
|
+
ships in later phases. A misconfigured pack-declared policy won't
|
|
826
|
+
silently block tools today.
|
|
827
|
+
|
|
828
|
+
---
|
|
829
|
+
|
|
830
|
+
## 4. Verdict shapes
|
|
831
|
+
|
|
832
|
+
### 4.1 Five levels
|
|
833
|
+
|
|
834
|
+
Schema: `src/runtime/types.ts:54-130` (`VerdictLevel` enum +
|
|
835
|
+
`Verdict` discriminated union).
|
|
836
|
+
|
|
837
|
+
| Level | Effect at dispatcher |
|
|
838
|
+
| ----------- | ---------------------------------------------------------------------------------------- |
|
|
839
|
+
| `pass` | Continue rule walk; no exit-code change |
|
|
840
|
+
| `block` | Resolve via drift_response → typically exit 2 |
|
|
841
|
+
| `warn` | Resolve via drift_response → typically exit 0 + stderr |
|
|
842
|
+
| `surface` | Aggregate to `contextInjections` (UserPromptSubmit hook surfaces) |
|
|
843
|
+
| `directive` | Aggregate to `directives[]` (UserPromptSubmit hook surfaces under `⛔ DIRECTIVE` marker) |
|
|
844
|
+
|
|
845
|
+
`surface` and `directive` COEXIST with `block` — a `block` verdict
|
|
846
|
+
sets the exit code, but earlier `surface`/`directive` aggregations
|
|
847
|
+
still surface via the hook envelope.
|
|
848
|
+
|
|
849
|
+
### 4.2 `NextAction` shape (ASC.3 + DPC.1)
|
|
850
|
+
|
|
851
|
+
Schema: `src/runtime/types.ts:NextAction`. Used in `directive` verdicts.
|
|
852
|
+
|
|
853
|
+
```typescript
|
|
854
|
+
{
|
|
855
|
+
skill?: string, // exactly one of skill / tool / profession (XOR)
|
|
856
|
+
tool?: string,
|
|
857
|
+
profession?: string,
|
|
858
|
+
args?: Record<string, unknown>,
|
|
859
|
+
rationale: string,
|
|
860
|
+
}
|
|
861
|
+
```
|
|
862
|
+
|
|
863
|
+
The XOR is enforced via a Zod `.refine` — exactly one of `skill`,
|
|
864
|
+
`tool`, or `profession` must be set. The agent reading the directive
|
|
865
|
+
chooses what to do next based on the populated field.
|
|
866
|
+
|
|
867
|
+
`profession:` (DPC.1) routes the agent to a profession pack rather
|
|
868
|
+
than a single skill — useful when the next-action requires loading
|
|
869
|
+
a whole persona (e.g. `task-spec-author` / `scope-architect`).
|
|
870
|
+
|
|
871
|
+
### 4.3 `drift_response.yaml` composition
|
|
872
|
+
|
|
873
|
+
Schema: `src/packs/schemas/drift_response.ts`. Six policies in the
|
|
874
|
+
`DriftPolicyEnum`:
|
|
875
|
+
|
|
876
|
+
| Policy | Semantic |
|
|
877
|
+
| -------------------- | -------------------------------------------------------------------------- |
|
|
878
|
+
| `block_tool` | Exit 2 with the verdict message — the default Phase-1 fallback |
|
|
879
|
+
| `warn` | Exit 0 + stderr message |
|
|
880
|
+
| `full_stop_and_redo` | Same exit-code shape as `block_tool`; corrective intent encoded in message |
|
|
881
|
+
| `notify_and_pause` | Exit 0 today; will route to channels (Phase 4) |
|
|
882
|
+
| `auto_correct` | Invokes a corrective sub-skill named via `corrective_skills:` (AUTO.4) |
|
|
883
|
+
| `escalate` | Bumps severity to `critical` + reroutes (AUTO.4) |
|
|
884
|
+
|
|
885
|
+
Per-rule overrides:
|
|
886
|
+
|
|
887
|
+
```yaml
|
|
888
|
+
default: block_tool
|
|
889
|
+
per_rule:
|
|
890
|
+
warn-on-amend: warn
|
|
891
|
+
no-pre-emit-gate: notify_and_pause
|
|
892
|
+
corrective_skills:
|
|
893
|
+
no-pre-emit-gate: corrective-pre-emit-redo
|
|
894
|
+
```
|
|
895
|
+
|
|
896
|
+
Resolution order at dispatch: `pack.driftResponse?.per_rule[rule.id]
|
|
897
|
+
?? pack.driftResponse?.default ?? 'block_tool'`. The fallback
|
|
898
|
+
`'block_tool'` is the "no drift_response.yaml at all" branch — when
|
|
899
|
+
the file IS present but omits `default:`, the schema default
|
|
900
|
+
applies.
|
|
901
|
+
|
|
902
|
+
---
|
|
903
|
+
|
|
904
|
+
## 5. Primitive catalog
|
|
905
|
+
|
|
906
|
+
Primitives live in `src/functions/*.ts` and register against
|
|
907
|
+
`FunctionRegistry` at bootstrap. Pack rules invoke them via
|
|
908
|
+
`call: <name>` in `process:` steps. The catalog below lists every
|
|
909
|
+
shipped primitive by category.
|
|
910
|
+
|
|
911
|
+
### 5.1 Event inspection (`src/functions/event.ts`)
|
|
912
|
+
|
|
913
|
+
| Primitive | Returns | Use |
|
|
914
|
+
| ------------------------ | ----------------------------- | ----------------------------------------------- |
|
|
915
|
+
| `tool_name` | `{value: string}` | The tool being called (`Bash`, `Write`, etc.) |
|
|
916
|
+
| `tool_args` | object | The tool's parsed args |
|
|
917
|
+
| `cwd` | `{value: string}` | Current working directory |
|
|
918
|
+
| `last_assistant_message` | `{value: string}` | Most recent assistant output |
|
|
919
|
+
| `match_command` | `{matched: bool, groups?: …}` | Regex-match against bash command (args.pattern) |
|
|
920
|
+
|
|
921
|
+
### 5.2 State + FSM (`src/functions/state.ts`, `fsm.ts`, `session_tool_history.ts`)
|
|
922
|
+
|
|
923
|
+
| Primitive | Returns | Use |
|
|
924
|
+
| ---------------------- | -------------------- | -------------------------------------------------------------------------- |
|
|
925
|
+
| `read_state` | bound value | Read a session-scoped state key |
|
|
926
|
+
| `write_state` | `{ok: true}` | Write a session-scoped state key |
|
|
927
|
+
| `append_log` | `{ok: true}` | Append to a session-scoped log file |
|
|
928
|
+
| `read_fsm_state` | state string\|`null` | Read a pack-FSM's current state (own pack, or another via `pack:` arg) |
|
|
929
|
+
| `advance_fsm` | next-state string | Fire an `event:` against the own pack's FSM; persists + returns next state |
|
|
930
|
+
| `session_tool_history` | `{tools: string[]}` | Last N tool names this session |
|
|
931
|
+
|
|
932
|
+
`read_chain_state` was REMOVED with chain_state. The 7-phase workflow is now the
|
|
933
|
+
`coding-flow` pack's lifecycle; gate on it via `read_fsm_state` (`pack:
|
|
934
|
+
coding-flow` for a cross-pack read) — see §6.3. Both FSM primitives live in
|
|
935
|
+
`src/functions/fsm.ts:37,52`; `read_fsm_state` returns `null` when the pack has no
|
|
936
|
+
`fsm.yaml` or the machine is unstarted (`advance_fsm` then defaults to `initial`).
|
|
937
|
+
|
|
938
|
+
### 5.3 Active-task (`src/functions/active_task.ts`)
|
|
939
|
+
|
|
940
|
+
| Primitive | Returns | Use |
|
|
941
|
+
| -------------------------- | ------------------- | ------------------------------------------------ |
|
|
942
|
+
| `has_active_task` | `{value: bool}` | Is there an active task at all? |
|
|
943
|
+
| `has_generated_spec` | `{generated: bool}` | Does active task have a metadata.spec disk file? |
|
|
944
|
+
| `task_list_generated` | `{value: bool}` | Has a task list been generated? |
|
|
945
|
+
| `workflow_phases_complete` | `{value: bool}` | Are all phases of active task logged? |
|
|
946
|
+
|
|
947
|
+
### 5.4 Memory + recall (`src/functions/rag.ts` + `lessons.ts` + `recall_pre_inject.ts`)
|
|
948
|
+
|
|
949
|
+
| Primitive | Returns | Use |
|
|
950
|
+
| ------------------- | -------------------- | --------------------------------------- |
|
|
951
|
+
| `recall` | `{hits: [...]}` | Query the engine RAG for memory matches |
|
|
952
|
+
| `embed` | `{vector: number[]}` | Compute embedding |
|
|
953
|
+
| `store_lesson` | `{ok: true}` | Store a verified lesson |
|
|
954
|
+
| `propose_lesson` | `{ok: true}` | Propose a lesson (awaits promotion) |
|
|
955
|
+
| `promote_lesson` | `{ok: true}` | Promote a proposed lesson |
|
|
956
|
+
| `recall_lesson` | `{lesson?}` | Read a specific lesson by id |
|
|
957
|
+
| `recall_pre_inject` | `{value: string}` | Pre-inject recall hits at prompt submit |
|
|
958
|
+
|
|
959
|
+
### 5.5 Pattern matching (`text_pattern_match.ts` + `path_exists.ts`)
|
|
960
|
+
|
|
961
|
+
| Primitive | Returns | Use |
|
|
962
|
+
| -------------------- | ----------------- | ----------------------------- |
|
|
963
|
+
| `text_pattern_match` | `{matched: bool}` | Regex match on a bound string |
|
|
964
|
+
| `path_exists` | `{exists: bool}` | Filesystem existence check |
|
|
965
|
+
|
|
966
|
+
### 5.6 LLM + model-aliased (`src/functions/llm.ts` + `subagent.ts` + `destination_check.ts`)
|
|
967
|
+
|
|
968
|
+
All LLM-calling primitives route via `model_alias:` (no vendor model
|
|
969
|
+
names in source per `feedback_stop_haiku_drift`).
|
|
970
|
+
|
|
971
|
+
| Primitive | Returns | Use |
|
|
972
|
+
| ------------------- | ------------------------------------- | -------------------------------- |
|
|
973
|
+
| `llm_classify` | `{label: string, confidence: number}` | Classify input via aliased model |
|
|
974
|
+
| `subagent_call` | `{response: string}` | One-shot subagent invocation |
|
|
975
|
+
| `spawn_subagent` | `{id: string}` | Long-running subagent spawn |
|
|
976
|
+
| `check_destination` | `{state: …}` | Destination_check rule body |
|
|
977
|
+
|
|
978
|
+
### 5.7 Verdict + control (`src/functions/verdict.ts`)
|
|
979
|
+
|
|
980
|
+
| Primitive | Returns | Use |
|
|
981
|
+
| ----------------------- | ------------------ | ---------------------------------------------- |
|
|
982
|
+
| `verdict` | RuleResult.verdict | Emit a verdict (level + message ± next_action) |
|
|
983
|
+
| `halt_task` | RuleResult | Halt the current task |
|
|
984
|
+
| `restart_workflow` | RuleResult | Restart the workflow chain |
|
|
985
|
+
| `set_active_task_state` | `{ok: true}` | Write to active-task state |
|
|
986
|
+
|
|
987
|
+
### 5.8 Capability-gated (`src/functions/file_write.ts`, `shell_exec.ts`, `http_request.ts`)
|
|
988
|
+
|
|
989
|
+
These primitives MUST pass the `CapabilityGate`
|
|
990
|
+
(`src/runtime/capability_gate.ts`) at runtime. The built-in denylist
|
|
991
|
+
(`src/runtime/builtin_denylist.ts`) sealed via `Object.freeze` covers
|
|
992
|
+
the worst shell/path patterns (rm -rf /, fork bombs, dd to /dev/sd\*,
|
|
993
|
+
curl|sh, etc.).
|
|
994
|
+
|
|
995
|
+
| Primitive | Returns | Use |
|
|
996
|
+
| -------------- | ---------------------------- | ----------------------------- |
|
|
997
|
+
| `file_write` | `{ok: bool}` | Write to a permitted path |
|
|
998
|
+
| `shell_exec` | `{stdout, stderr, exitCode}` | Run a permitted shell command |
|
|
999
|
+
| `http_request` | `{status, body}` | Make a permitted HTTP request |
|
|
1000
|
+
|
|
1001
|
+
### 5.9 Session signals (`src/functions/is_automation_mode.ts`)
|
|
1002
|
+
|
|
1003
|
+
| Primitive | Returns | Use |
|
|
1004
|
+
| -------------------- | --------------- | -------------------------------------------- |
|
|
1005
|
+
| `is_automation_mode` | `{value: bool}` | Is the automation flag set for this session? |
|
|
1006
|
+
|
|
1007
|
+
---
|
|
1008
|
+
|
|
1009
|
+
## 6. Audit + drift catalog
|
|
1010
|
+
|
|
1011
|
+
### 6.1 Files written
|
|
1012
|
+
|
|
1013
|
+
| File | Writer | Purpose |
|
|
1014
|
+
| ------------------------------ | --------------------- | --------------------------------------------- |
|
|
1015
|
+
| `<sess>/violations.log` | `applyDriftResponse` | Append-only log of every fired drift policy |
|
|
1016
|
+
| `<sess>/drift-catalog.jsonl` | drift_response writer | One JSONL row per violation with full context |
|
|
1017
|
+
| `<sess>/state/fsm-<pack>.json` | `advanceFsmState` | A pack-FSM's `{state, history[]}` (per pack) |
|
|
1018
|
+
| `<sess>/active-task.json` | `writeActiveTask` | Current active task + metadata.spec |
|
|
1019
|
+
| `<sess>/workflow-phases.jsonl` | `log_phase` MCP tool | Per-task phase log (7-phase machine) |
|
|
1020
|
+
| `<sess>/skill-ticks.json` | `advanceSkillTicks` | Dynamic-skill unload tick counters |
|
|
1021
|
+
|
|
1022
|
+
### 6.2 Audit-trail provenance
|
|
1023
|
+
|
|
1024
|
+
Each violation row carries:
|
|
1025
|
+
|
|
1026
|
+
- `ruleId` — which rule fired
|
|
1027
|
+
- `packName` — which pack owned the rule
|
|
1028
|
+
- `skillName` — which skill the rule belonged to
|
|
1029
|
+
- `subagentId` (when set) — which subagent emitted the input that
|
|
1030
|
+
triggered the verdict
|
|
1031
|
+
- `professionPack` (when set) — which profession pack the subagent
|
|
1032
|
+
was running under
|
|
1033
|
+
|
|
1034
|
+
This provenance lets the user trace any drift back to the pack + rule
|
|
1035
|
+
that fired, and (when enabled) to the subagent + profession that
|
|
1036
|
+
caused the input.
|
|
1037
|
+
|
|
1038
|
+
### 6.3 The workflow as a pack FSM (replaces chain_state)
|
|
1039
|
+
|
|
1040
|
+
The 7-phase workflow used to live in a bespoke `src/runtime/chain_state.ts`
|
|
1041
|
+
machine driven by 5 scattered hook-bin transition sites. It is now the
|
|
1042
|
+
**`coding-flow` pack's lifecycle** (`packs/builtin/coding-flow/fsm.yaml`), driven by
|
|
1043
|
+
the generic total-transition engine (`src/runtime/fsm.ts`) — the unified replacement
|
|
1044
|
+
that absorbed the earlier `scope-fsm` + `workflow-fsm` split (T-FSM-UNIFY). ONE
|
|
1045
|
+
behavior-pattern FSM with three gated stages, each enforced by a CONTENT gate (not a
|
|
1046
|
+
presence marker):
|
|
1047
|
+
|
|
1048
|
+
```
|
|
1049
|
+
idle → scoping ⇄ researching → researched SCOPE (gate: guess-audit loop-back)
|
|
1050
|
+
→ spec_authored → spec_complete → tasks_loaded AUTHOR (gate: spec-audit, 11-field + real code)
|
|
1051
|
+
→ phases_in_flight → phases_complete CODE (gate: phase-log before commit)
|
|
1052
|
+
```
|
|
1053
|
+
|
|
1054
|
+
State persists per session per pack at `<sess>/state/fsm-coding-flow.json` as
|
|
1055
|
+
`{state, history[]}` (`advanceFsmState`, `src/runtime/fsm_state.ts`); the FSM is
|
|
1056
|
+
TOTAL — a non-matching event is an explicit stay, not a crash. The `scope-lifecycle`
|
|
1057
|
+
skill advances it on the canonical signals (the prompt, and the pre-research / spec /
|
|
1058
|
+
task writes) via `advance_fsm` and runs each stage's content audit; any gate reads
|
|
1059
|
+
the stage via `read_fsm_state` (the research-before-code gate blocks code before
|
|
1060
|
+
`researched`; the task-authoring gate blocks TaskCreate before `spec_complete`).
|
|
1061
|
+
Cross-pack reads pass `pack: coding-flow`. "Coding" is the gate profile — the FSM
|
|
1062
|
+
lifecycle itself is domain-general. Full walkthrough: `docs/pack-fsm-architecture.md`.
|
|
1063
|
+
|
|
1064
|
+
---
|
|
1065
|
+
|
|
1066
|
+
## 7. Authoring patterns
|
|
1067
|
+
|
|
1068
|
+
### 7.1 Soft warn vs hard block vs directive vs surface
|
|
1069
|
+
|
|
1070
|
+
- **Hard `block`** — coding errors with a clear correct path. The
|
|
1071
|
+
user must redo before the tool fires. Reserved for things that
|
|
1072
|
+
break invariants (e.g. coding before scope spec exists).
|
|
1073
|
+
- **Soft `warn`** — practices the user might want to deviate from
|
|
1074
|
+
(e.g. `git commit --amend` on a shared branch). Surface the
|
|
1075
|
+
context, don't block.
|
|
1076
|
+
- **`directive`** — a structured next-action handoff. The agent
|
|
1077
|
+
reads `next_action.skill` / `next_action.tool` /
|
|
1078
|
+
`next_action.profession` and executes. Use for chain handoffs
|
|
1079
|
+
between pipeline stages.
|
|
1080
|
+
- **`surface`** — context that should ride along on the next prompt
|
|
1081
|
+
but isn't a verdict per se (e.g. recall hits pre-injected at
|
|
1082
|
+
prompt submit).
|
|
1083
|
+
|
|
1084
|
+
### 7.2 `destination_check` vs `track_check`
|
|
1085
|
+
|
|
1086
|
+
`track_check` fires per event. `destination_check` fires on a
|
|
1087
|
+
periodic scheduler tick (every N tool calls). Use
|
|
1088
|
+
`destination_check` for "is the agent heading toward the right
|
|
1089
|
+
destination" questions where per-event evaluation would be too
|
|
1090
|
+
expensive.
|
|
1091
|
+
|
|
1092
|
+
### 7.3 Composing AND-preconditions via `Skill.requires:`
|
|
1093
|
+
|
|
1094
|
+
Move shared preconditions UP from rule-local `requires:` to
|
|
1095
|
+
skill-level when 2+ rules share them. Saves dispatcher walks (the
|
|
1096
|
+
skill is skipped entirely when any precondition fails) and the
|
|
1097
|
+
`RequiresCache` amortizes the precondition reads across rules.
|
|
1098
|
+
|
|
1099
|
+
### 7.4 Lifecycle-handoff directives + FSM transitions
|
|
1100
|
+
|
|
1101
|
+
When a rule's purpose is "the lifecycle has moved to the next stage,
|
|
1102
|
+
load the appropriate profession", emit a `directive` verdict with
|
|
1103
|
+
`next_action.profession:` set. Couple with an `advance_fsm` call (event →
|
|
1104
|
+
next state) so subsequent rules — in this pack or another, via
|
|
1105
|
+
`read_fsm_state` with `pack:` — see the new state. Declare the legal
|
|
1106
|
+
transitions in the pack's `fsm.yaml`; the engine keeps the machine total, so an
|
|
1107
|
+
unexpected event is a no-op stay rather than a crash. (This replaces the old
|
|
1108
|
+
`transition_chain_stage` + `read_chain_state` pair.)
|
|
1109
|
+
|
|
1110
|
+
### 7.5 Anti-patterns to avoid
|
|
1111
|
+
|
|
1112
|
+
- **No LLM in detection.** All `detected_by[]` evaluation is pure
|
|
1113
|
+
regex / filesystem / prompt-substring. Adding LLM calls to
|
|
1114
|
+
detection breaks the cost + determinism budget.
|
|
1115
|
+
- **No vendor model names in source.** Route via `model_alias:` in
|
|
1116
|
+
`models.yaml`. Per `feedback_stop_haiku_drift` — the project is
|
|
1117
|
+
model-neutral.
|
|
1118
|
+
- **No pre-emit gate.** Claude Code has no pre-emit hook surface;
|
|
1119
|
+
PreToolUse is the closest, but it fires AFTER the model's
|
|
1120
|
+
decision. The corrective pattern is post-emit redo (Stop + exit 2),
|
|
1121
|
+
not pre-emit prevention. Trying to enforce "the model shouldn't
|
|
1122
|
+
have done X" via PreToolUse is structurally wrong.
|
|
1123
|
+
- **No silent fail-open at user-authored config.** When a pack
|
|
1124
|
+
configuration is malformed (active.json, manifest.yaml, side files),
|
|
1125
|
+
fail LOUD with a path-bearing error. The two test seams
|
|
1126
|
+
(`OPENSQUID_TEST_PACK`, `OPENSQUID_TEST_PACK_DIR`) deliberately
|
|
1127
|
+
fail-open because their fixtures are opensquid-authored; real
|
|
1128
|
+
user-authored config never gets this treatment.
|
|
1129
|
+
- **No back-channel writes outside session-scoped paths.** All
|
|
1130
|
+
on-disk state goes under `<OPENSQUID_HOME>/sessions/<sess>/` —
|
|
1131
|
+
never spread state across the user's home directory or arbitrary
|
|
1132
|
+
paths.
|
|
1133
|
+
- **Inbound dispatch is best-effort; unreachable sessions stay silent**
|
|
1134
|
+
(T-L3-LOOP L7 / L12). When an inbound row arrives via the chat-daemon
|
|
1135
|
+
but no `live-session.lease` is fresh (`chat watch` not running or
|
|
1136
|
+
crashed), the LL.3 inbound watcher appends an `unrouted.jsonl` row to
|
|
1137
|
+
`~/.opensquid/projects/<uuid>/inbox/` and LEAVES the inbox row
|
|
1138
|
+
intact. The next session-start drains the backlog via the LL.4 UPS
|
|
1139
|
+
hook — "lazy push", not "eager wake". Pack-author implication: never
|
|
1140
|
+
assume your `inbound_channel` skill will fire at message-arrival
|
|
1141
|
+
latency. The latency floor is `min(time_until_next_user_prompt,
|
|
1142
|
+
time_until_chat_watch_resume)`. Designs that depend on real-time
|
|
1143
|
+
inbound reaction (e.g. on-call alert triage) belong in the
|
|
1144
|
+
agent-bridge daemon path (`src/runtime/agent_bridge/`), not the
|
|
1145
|
+
interactive `chat watch` path.
|
|
1146
|
+
- **Inbound skills are passive evaluators — never mutate the inbox**
|
|
1147
|
+
(T-L3-LOOP L8). A skill triggered by `inbound_channel` can emit any
|
|
1148
|
+
Verdict shape (pass / block / warn / surface / directive) but the
|
|
1149
|
+
inbox + ack state are runtime-managed. There is no
|
|
1150
|
+
`mark_inbound_read` or `delete_inbound` primitive at LL scope —
|
|
1151
|
+
opensquid's invariant: **packs propose; runtime disposes**. Adding a
|
|
1152
|
+
mutation primitive for inbound would re-introduce the cross-pack
|
|
1153
|
+
race condition the ack ledger exists to prevent. If a pack needs
|
|
1154
|
+
richer inbound auditing (which messages were injected this turn, in
|
|
1155
|
+
what order), inspect the prompt-history `additionalContext` directly
|
|
1156
|
+
via `recall`. A first-class `recall_injected_inbound` primitive is
|
|
1157
|
+
deferred to post-v1.
|
|
1158
|
+
|
|
1159
|
+
---
|
|
1160
|
+
|
|
1161
|
+
## Appendix A — Citation index
|
|
1162
|
+
|
|
1163
|
+
The doc above cites these source files; this list is a quick-jump
|
|
1164
|
+
index for editors:
|
|
1165
|
+
|
|
1166
|
+
| Topic | File |
|
|
1167
|
+
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1168
|
+
| Manifest schema | `src/packs/schemas/manifest.ts` |
|
|
1169
|
+
| Skill schema | `src/packs/schemas/skill.ts` |
|
|
1170
|
+
| Side-file schemas | `src/packs/schemas/{chat_agent,models,channels,notifications,drift_response,team}.ts` |
|
|
1171
|
+
| Pack runtime type | `src/runtime/types.ts` |
|
|
1172
|
+
| Detection evaluator | `src/runtime/detection.ts` |
|
|
1173
|
+
| Discovery + opt-in | `src/packs/discovery.ts` |
|
|
1174
|
+
| Pack loader | `src/packs/loader.ts` |
|
|
1175
|
+
| Bootstrap + DetectionContext staging | `src/runtime/bootstrap.ts` |
|
|
1176
|
+
| Dispatcher | `src/runtime/hooks/dispatch.ts` |
|
|
1177
|
+
| Evaluator | `src/runtime/evaluator.ts` |
|
|
1178
|
+
| Drift response | `src/runtime/drift_response.ts` |
|
|
1179
|
+
| Skill requires | `src/runtime/skill_requires.ts` |
|
|
1180
|
+
| FSM engine + state | `src/runtime/fsm.ts` (total-transition engine), `src/runtime/fsm_state.ts` (per-session state) |
|
|
1181
|
+
| Guards template | `src/packs/guards_compiler.ts` |
|
|
1182
|
+
| Capability gate | `src/runtime/capability_gate.ts` |
|
|
1183
|
+
| Built-in denylist | `src/runtime/builtin_denylist.ts` |
|
|
1184
|
+
| Primitive registry | `src/functions/registry.ts` |
|
|
1185
|
+
| Primitives | `src/functions/{event,state,fsm,active_task,rag,lessons,llm,verdict,path_exists,text_pattern_match,session_tool_history,destination_check,file_write,shell_exec,http_request,recall_pre_inject,subagent,is_automation_mode}.ts` |
|
|
1186
|
+
|
|
1187
|
+
---
|
|
1188
|
+
|
|
1189
|
+
## Appendix B — Glossary
|
|
1190
|
+
|
|
1191
|
+
| Term | Meaning |
|
|
1192
|
+
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1193
|
+
| Pack | A directory under `<scope-root>/packs/<name>/` containing a manifest + skills + side files |
|
|
1194
|
+
| Skill | A YAML file declaring `rules:` + `triggers:` + lifecycle metadata |
|
|
1195
|
+
| Rule | A `process:` chain of primitive calls producing a verdict / inject_context / no_verdict |
|
|
1196
|
+
| Primitive | A registered function (`src/functions/*.ts`) callable from rule `process:` steps |
|
|
1197
|
+
| Verdict | A typed runtime result: `pass` / `block` / `warn` / `surface` / `directive` |
|
|
1198
|
+
| Drift policy | What the dispatcher does with a verdict (6 enum values) |
|
|
1199
|
+
| Activation scope | WHO the pack applies to (`project`/`user`/`hybrid`/`team`/`global`) |
|
|
1200
|
+
| Scope | Layering precedence for pack ordering (`universal` → `project`) |
|
|
1201
|
+
| Detection | The 7-kind clause set the runtime evaluates to decide WHEN among opted-in packs |
|
|
1202
|
+
| Pack FSM | A pack's lifecycle declared in `fsm.yaml` (states + total transitions), walked by the generic engine; state persists per session as `fsm-<pack>.json` |
|
|
1203
|
+
| FSM state | The current state string of a pack FSM; read via `read_fsm_state`, advanced via `advance_fsm` |
|
|
1204
|
+
| Guard | A `manifest.guards[]` entry compiled to a synthetic `<pack>/guards` detect→verdict rule |
|
|
1205
|
+
| Profession pack | A pack whose `team.yaml` marker declares a `role:` for next-action `profession:` directives |
|