@code-yeongyu/senpi 2026.8.18-3 → 2026.8.19
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/CHANGELOG.md +52 -0
- package/dist/cli/args.d.ts +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +4 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session.d.ts +33 -4
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +293 -55
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +3 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +20 -3
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +182 -52
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts +3 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.js +18 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.d.ts +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.js +7 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts +8 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js +18 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.d.ts +7 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.js +10 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.js +12 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.d.ts +12 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.js +20 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.d.ts +11 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.js +7 -2
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.js +7 -2
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.js.map +1 -1
- package/dist/core/extensions/builtin/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +2 -0
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/builtin/loop/command-registration.d.ts +7 -0
- package/dist/core/extensions/builtin/loop/command-registration.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/command-registration.js +13 -0
- package/dist/core/extensions/builtin/loop/command-registration.js.map +1 -0
- package/dist/core/extensions/builtin/loop/command.d.ts +41 -0
- package/dist/core/extensions/builtin/loop/command.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/command.js +281 -0
- package/dist/core/extensions/builtin/loop/command.js.map +1 -0
- package/dist/core/extensions/builtin/loop/cron-planner.d.ts +23 -0
- package/dist/core/extensions/builtin/loop/cron-planner.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/cron-planner.js +88 -0
- package/dist/core/extensions/builtin/loop/cron-planner.js.map +1 -0
- package/dist/core/extensions/builtin/loop/index.d.ts +134 -0
- package/dist/core/extensions/builtin/loop/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/index.js +742 -0
- package/dist/core/extensions/builtin/loop/index.js.map +1 -0
- package/dist/core/extensions/builtin/loop/loopfile.d.ts +40 -0
- package/dist/core/extensions/builtin/loop/loopfile.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/loopfile.js +102 -0
- package/dist/core/extensions/builtin/loop/loopfile.js.map +1 -0
- package/dist/core/extensions/builtin/loop/parse.d.ts +45 -0
- package/dist/core/extensions/builtin/loop/parse.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/parse.js +92 -0
- package/dist/core/extensions/builtin/loop/parse.js.map +1 -0
- package/dist/core/extensions/builtin/loop/scheduler.d.ts +225 -0
- package/dist/core/extensions/builtin/loop/scheduler.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/scheduler.js +708 -0
- package/dist/core/extensions/builtin/loop/scheduler.js.map +1 -0
- package/dist/core/extensions/builtin/loop/status.d.ts +24 -0
- package/dist/core/extensions/builtin/loop/status.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/status.js +113 -0
- package/dist/core/extensions/builtin/loop/status.js.map +1 -0
- package/dist/core/extensions/builtin/loop/store.d.ts +49 -0
- package/dist/core/extensions/builtin/loop/store.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/store.js +424 -0
- package/dist/core/extensions/builtin/loop/store.js.map +1 -0
- package/dist/core/extensions/builtin/loop/tick-prompt.d.ts +64 -0
- package/dist/core/extensions/builtin/loop/tick-prompt.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/tick-prompt.js +183 -0
- package/dist/core/extensions/builtin/loop/tick-prompt.js.map +1 -0
- package/dist/core/extensions/builtin/loop/tools.d.ts +122 -0
- package/dist/core/extensions/builtin/loop/tools.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/tools.js +155 -0
- package/dist/core/extensions/builtin/loop/tools.js.map +1 -0
- package/dist/core/extensions/builtin/loop/types.d.ts +206 -0
- package/dist/core/extensions/builtin/loop/types.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/types.js +37 -0
- package/dist/core/extensions/builtin/loop/types.js.map +1 -0
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +10 -5
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/types.d.ts +30 -3
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +5 -10
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/model-registry.d.ts +2 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +4 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-runtime.d.ts +7 -0
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +17 -0
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +8 -4
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/provider-composer.d.ts +8 -0
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/retry-fallback/chains.d.ts +1 -0
- package/dist/core/retry-fallback/chains.d.ts.map +1 -1
- package/dist/core/retry-fallback/chains.js +3 -0
- package/dist/core/retry-fallback/chains.js.map +1 -1
- package/dist/core/retry-fallback/controller.d.ts +2 -0
- package/dist/core/retry-fallback/controller.d.ts.map +1 -1
- package/dist/core/retry-fallback/controller.js.map +1 -1
- package/dist/core/retry-fallback/expansion.d.ts +8 -0
- package/dist/core/retry-fallback/expansion.d.ts.map +1 -1
- package/dist/core/retry-fallback/expansion.js +2 -0
- package/dist/core/retry-fallback/expansion.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +14 -3
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +17 -2
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -6
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +4 -4
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/editor-paste-transfer.d.ts +10 -1
- package/dist/modes/interactive/editor-paste-transfer.d.ts.map +1 -1
- package/dist/modes/interactive/editor-paste-transfer.js +27 -2
- package/dist/modes/interactive/editor-paste-transfer.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +69 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +434 -63
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/tips/catalog/dag-tips.d.ts +7 -0
- package/dist/modes/interactive/tips/catalog/dag-tips.d.ts.map +1 -0
- package/dist/modes/interactive/tips/catalog/dag-tips.js +57 -0
- package/dist/modes/interactive/tips/catalog/dag-tips.js.map +1 -0
- package/dist/modes/interactive/tips/catalog/memory-tips.d.ts +7 -0
- package/dist/modes/interactive/tips/catalog/memory-tips.d.ts.map +1 -0
- package/dist/modes/interactive/tips/catalog/memory-tips.js +100 -0
- package/dist/modes/interactive/tips/catalog/memory-tips.js.map +1 -0
- package/dist/modes/interactive/tips/registry.d.ts.map +1 -1
- package/dist/modes/interactive/tips/registry.js +4 -0
- package/dist/modes/interactive/tips/registry.js.map +1 -1
- package/dist/utils/management-http.d.ts +5 -3
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +14 -10
- package/dist/utils/management-http.js.map +1 -1
- package/docs/compaction.md +17 -0
- package/docs/custom-provider.md +5 -2
- package/docs/extensions.md +11 -2
- package/docs/llama-cpp.md +2 -0
- package/docs/models.md +8 -2
- package/docs/providers.md +5 -3
- package/docs/settings.md +22 -2
- package/docs/skills.md +4 -3
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/git-checkpoint.ts +2 -2
- package/examples/extensions/notify.ts +3 -1
- package/examples/extensions/subagent/index.ts +6 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts +3 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +51 -17
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +4 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +5 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts +3 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.js +13 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js +14 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
- package/node_modules/@earendil-works/pi-ai/README.md +5 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts +7 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +21 -4
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +7 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +39 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.d.ts +22 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js +51 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +14 -11
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts +5 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js +16 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +13 -10
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +4 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +4 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +45 -29
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +8 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +18 -9
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.js +22 -9
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-individual.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js +1 -5
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +28 -4
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/pi-user-agent.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/pi-user-agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/pi-user-agent.js +7 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/pi-user-agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.d.ts +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +2 -3
- package/node_modules/@earendil-works/pi-pty/dist/loader.d.ts +6 -0
- package/node_modules/@earendil-works/pi-pty/dist/loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/loader.js +11 -0
- package/node_modules/@earendil-works/pi-pty/dist/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/quarantine.d.ts +15 -0
- package/node_modules/@earendil-works/pi-pty/dist/quarantine.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-pty/dist/quarantine.js +27 -0
- package/node_modules/@earendil-works/pi-pty/dist/quarantine.js.map +1 -0
- package/node_modules/@earendil-works/pi-pty/package.json +1 -1
- package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +73 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +173 -17
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.js +5 -4
- package/node_modules/@earendil-works/pi-tui/dist/components/text.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts +69 -0
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/image-markers.d.ts +46 -0
- package/node_modules/@earendil-works/pi-tui/dist/image-markers.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/image-markers.js +130 -0
- package/node_modules/@earendil-works/pi-tui/dist/image-markers.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.js +2 -0
- package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/paste-markers.d.ts +3 -0
- package/node_modules/@earendil-works/pi-tui/dist/paste-markers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/paste-markers.js +23 -7
- package/node_modules/@earendil-works/pi-tui/dist/paste-markers.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js +5 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared state model for the `/loop` builtin extension.
|
|
3
|
+
*
|
|
4
|
+
* This module is the single type home for the whole feature: the store, the scheduler,
|
|
5
|
+
* the `schedule_wakeup` tool, the tick-prompt builder, and the status presenter all
|
|
6
|
+
* consume these declarations. It is data-only — no clock access, no I/O, no timers.
|
|
7
|
+
*/
|
|
8
|
+
/** Milliseconds since the Unix epoch. */
|
|
9
|
+
export type EpochMs = number;
|
|
10
|
+
/** Identifier of a single `/loop` job within one session. */
|
|
11
|
+
export type LoopId = string;
|
|
12
|
+
/** Identifier of one dynamic wakeup (model-scheduled or keepalive fallback). */
|
|
13
|
+
export type WakeupId = string;
|
|
14
|
+
/** Identifier of one dispatched tick delivery, used to anchor sentinel reminders. */
|
|
15
|
+
export type DeliveryId = string;
|
|
16
|
+
export declare const LOOP_STATE_VERSION = 1;
|
|
17
|
+
export type LoopStateVersion = typeof LOOP_STATE_VERSION;
|
|
18
|
+
export declare const LOOP_KINDS: readonly ["fixed", "dynamic"];
|
|
19
|
+
export type LoopKind = (typeof LOOP_KINDS)[number];
|
|
20
|
+
export declare const LOOP_SENTINELS: readonly ["<<autonomous-loop>>", "<<autonomous-loop-dynamic>>", "<<loop.md>>", "<<loop.md-dynamic>>"];
|
|
21
|
+
export type LoopSentinel = (typeof LOOP_SENTINELS)[number];
|
|
22
|
+
export type LoopPayload = {
|
|
23
|
+
readonly type: "prompt";
|
|
24
|
+
/** Exact parsed prompt, including a leading slash command. */
|
|
25
|
+
readonly prompt: string;
|
|
26
|
+
} | {
|
|
27
|
+
readonly type: "sentinel";
|
|
28
|
+
readonly sentinel: LoopSentinel;
|
|
29
|
+
};
|
|
30
|
+
export declare const LOOP_PHASES: readonly ["starting", "waiting", "queued", "running", "suspended", "ended"];
|
|
31
|
+
export type LoopPhase = (typeof LOOP_PHASES)[number];
|
|
32
|
+
/**
|
|
33
|
+
* Terminal reasons, exhaustively.
|
|
34
|
+
*
|
|
35
|
+
* There is deliberately NO `session_closed`: every senpi shutdown reason
|
|
36
|
+
* (`quit|reload|new|resume|fork`) leaves the session resumable, so shutdown SUSPENDS a
|
|
37
|
+
* loop instead of ending it, and no code path can reach a session-closed terminal state.
|
|
38
|
+
*/
|
|
39
|
+
export declare const LOOP_END_REASONS: readonly ["stopped", "keepalive_exhausted", "expired", "tick_budget_exhausted", "error"];
|
|
40
|
+
export type LoopEndReason = (typeof LOOP_END_REASONS)[number];
|
|
41
|
+
export type LoopLifecycle = {
|
|
42
|
+
readonly phase: Exclude<LoopPhase, "ended">;
|
|
43
|
+
readonly endedAt?: never;
|
|
44
|
+
readonly endReason?: never;
|
|
45
|
+
readonly endDetail?: never;
|
|
46
|
+
} | {
|
|
47
|
+
readonly phase: "ended";
|
|
48
|
+
readonly endedAt: EpochMs;
|
|
49
|
+
readonly endReason: LoopEndReason;
|
|
50
|
+
/** Machine-stable subtype (e.g. `superseded`) or human-readable error detail. */
|
|
51
|
+
readonly endDetail?: string;
|
|
52
|
+
};
|
|
53
|
+
export interface LoopFileFingerprint {
|
|
54
|
+
readonly path: string;
|
|
55
|
+
readonly mtimeMs: number;
|
|
56
|
+
readonly size: number;
|
|
57
|
+
/** SHA-256 of the model-visible, truncated representation. */
|
|
58
|
+
readonly contentHash: string;
|
|
59
|
+
/** Delivery that carried the full loop-file block a reminder can point back to. */
|
|
60
|
+
readonly anchorDeliveryId: DeliveryId;
|
|
61
|
+
}
|
|
62
|
+
export interface SentinelDeliveryState {
|
|
63
|
+
/**
|
|
64
|
+
* True after a full autonomous preamble has been delivered and its anchor is still
|
|
65
|
+
* believed to be present in the compaction-aware context.
|
|
66
|
+
*/
|
|
67
|
+
readonly autonomousPreambleDelivered: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Last full loop-file representation delivered. Null before the first delivery and
|
|
70
|
+
* after the file disappears.
|
|
71
|
+
*/
|
|
72
|
+
readonly lastLoopFileDelivered: LoopFileFingerprint | null;
|
|
73
|
+
/**
|
|
74
|
+
* Set by an accepted compaction or a failed anchor reconstruction. The next fire must
|
|
75
|
+
* deliver a full preamble regardless of the fields above.
|
|
76
|
+
*/
|
|
77
|
+
readonly forceFullDelivery: boolean;
|
|
78
|
+
}
|
|
79
|
+
export declare const REQUESTED_INTERVAL_UNITS: readonly ["s", "m", "h", "d"];
|
|
80
|
+
export type RequestedIntervalUnit = (typeof REQUESTED_INTERVAL_UNITS)[number];
|
|
81
|
+
export declare const EFFECTIVE_INTERVAL_UNITS: readonly ["m", "h", "d"];
|
|
82
|
+
export type EffectiveIntervalUnit = (typeof EFFECTIVE_INTERVAL_UNITS)[number];
|
|
83
|
+
export interface RequestedInterval {
|
|
84
|
+
readonly value: number;
|
|
85
|
+
readonly unit: RequestedIntervalUnit;
|
|
86
|
+
/** Exact token parsed from the command, e.g. `90m`. */
|
|
87
|
+
readonly raw: string;
|
|
88
|
+
}
|
|
89
|
+
export interface EffectiveInterval {
|
|
90
|
+
readonly value: number;
|
|
91
|
+
readonly unit: EffectiveIntervalUnit;
|
|
92
|
+
readonly human: string;
|
|
93
|
+
readonly rounded: boolean;
|
|
94
|
+
readonly roundingNotice?: string;
|
|
95
|
+
}
|
|
96
|
+
export declare const LOOP_WAKE_SOURCE_KINDS: readonly ["terminal-monitor", "terminal-background-session", "task", "other"];
|
|
97
|
+
export type LoopWakeSourceKind = (typeof LOOP_WAKE_SOURCE_KINDS)[number];
|
|
98
|
+
export interface LoopWakeSource {
|
|
99
|
+
readonly source: LoopWakeSourceKind;
|
|
100
|
+
readonly id: string;
|
|
101
|
+
readonly description?: string;
|
|
102
|
+
readonly createdAt: EpochMs;
|
|
103
|
+
}
|
|
104
|
+
export interface PendingWakeup {
|
|
105
|
+
readonly id: WakeupId;
|
|
106
|
+
readonly loopId: LoopId;
|
|
107
|
+
readonly kind: "dynamic";
|
|
108
|
+
readonly source: "model" | "keepalive";
|
|
109
|
+
readonly requestedDelaySeconds: number;
|
|
110
|
+
/** Effective delay after the executor clamp to `[60, 3600]`. */
|
|
111
|
+
readonly delaySeconds: number;
|
|
112
|
+
readonly dueAt: EpochMs;
|
|
113
|
+
readonly reason: string;
|
|
114
|
+
/** Preserved verbatim after non-blank validation. */
|
|
115
|
+
readonly prompt: string;
|
|
116
|
+
readonly noop: boolean;
|
|
117
|
+
readonly createdAt: EpochMs;
|
|
118
|
+
}
|
|
119
|
+
export interface LoopEntryFields {
|
|
120
|
+
readonly id: LoopId;
|
|
121
|
+
/** Exact arguments after `/loop `, excluding the command name. */
|
|
122
|
+
readonly originalArgs: string;
|
|
123
|
+
/**
|
|
124
|
+
* Canonical re-entry text. A bare invocation is `/loop`; otherwise this is
|
|
125
|
+
* `"/loop " + originalArgs`.
|
|
126
|
+
*/
|
|
127
|
+
readonly reentryPrompt: string;
|
|
128
|
+
readonly payload: LoopPayload;
|
|
129
|
+
readonly createdAt: EpochMs;
|
|
130
|
+
readonly lastFiredAt: EpochMs | null;
|
|
131
|
+
readonly expiresAt: EpochMs;
|
|
132
|
+
/**
|
|
133
|
+
* Scheduled wall-clock occurrence most recently delivered. Prevents duplicate delivery
|
|
134
|
+
* after sleep, resume, or a stale timer callback.
|
|
135
|
+
*/
|
|
136
|
+
readonly lastScheduledForAt: EpochMs | null;
|
|
137
|
+
/**
|
|
138
|
+
* At most one extra fire may be pending while this loop already has a queued or
|
|
139
|
+
* running delivery. Missed occurrences coalesce into this flag; they are never replayed.
|
|
140
|
+
*/
|
|
141
|
+
readonly coalescedFirePending: boolean;
|
|
142
|
+
readonly queuedForAt: EpochMs | null;
|
|
143
|
+
/**
|
|
144
|
+
* Consecutive dynamic iterations that scheduled with `noop: true`. User input or a
|
|
145
|
+
* non-noop iteration resets it.
|
|
146
|
+
*/
|
|
147
|
+
readonly noopStreak: number;
|
|
148
|
+
/** Ticks dispatched so far; drives the `tick_budget_exhausted` safety valve. */
|
|
149
|
+
readonly tickCount: number;
|
|
150
|
+
readonly sentinelDelivery: SentinelDeliveryState;
|
|
151
|
+
/**
|
|
152
|
+
* Wake-source IDs created or adopted by this loop, used to attribute
|
|
153
|
+
* monitor/task notifications to a loop iteration.
|
|
154
|
+
*/
|
|
155
|
+
readonly wakeSources: readonly LoopWakeSource[];
|
|
156
|
+
}
|
|
157
|
+
export type LoopEntryBase = LoopEntryFields & LoopLifecycle & {
|
|
158
|
+
readonly kind: LoopKind;
|
|
159
|
+
};
|
|
160
|
+
export type FixedCronEntry = LoopEntryFields & LoopLifecycle & {
|
|
161
|
+
readonly kind: "fixed";
|
|
162
|
+
readonly requestedInterval: RequestedInterval;
|
|
163
|
+
readonly effectiveInterval: EffectiveInterval;
|
|
164
|
+
/** Display-only restricted cron string; scheduling uses `intervalMs` + `nextFireAt`. */
|
|
165
|
+
readonly cronExpression: string;
|
|
166
|
+
/** Next occurrence strictly later than the last scheduler observation. */
|
|
167
|
+
readonly nextFireAt: EpochMs;
|
|
168
|
+
readonly intervalMs: number;
|
|
169
|
+
readonly pendingWakeup?: never;
|
|
170
|
+
/** Fixed ticks are re-armed by the schedule itself, so keepalive never applies. */
|
|
171
|
+
readonly keepaliveCredit?: never;
|
|
172
|
+
};
|
|
173
|
+
export type DynamicCronEntry = LoopEntryFields & LoopLifecycle & {
|
|
174
|
+
readonly kind: "dynamic";
|
|
175
|
+
readonly requestedInterval?: never;
|
|
176
|
+
readonly effectiveInterval?: never;
|
|
177
|
+
readonly cronExpression?: never;
|
|
178
|
+
readonly nextFireAt?: never;
|
|
179
|
+
readonly intervalMs?: never;
|
|
180
|
+
readonly pendingWakeup: PendingWakeup | null;
|
|
181
|
+
/**
|
|
182
|
+
* One means an omitted `schedule_wakeup` may consume one fallback. Zero means
|
|
183
|
+
* another omission ends the loop with `keepalive_exhausted`. A successful model
|
|
184
|
+
* schedule resets this to one.
|
|
185
|
+
*/
|
|
186
|
+
readonly keepaliveCredit: 0 | 1;
|
|
187
|
+
};
|
|
188
|
+
export type CronEntry = FixedCronEntry | DynamicCronEntry;
|
|
189
|
+
export interface LoopState {
|
|
190
|
+
readonly version: LoopStateVersion;
|
|
191
|
+
readonly sessionId: string;
|
|
192
|
+
/**
|
|
193
|
+
* Includes ended records so a resume never resurrects a terminal loop.
|
|
194
|
+
*/
|
|
195
|
+
readonly entries: Readonly<Record<LoopId, CronEntry>>;
|
|
196
|
+
/** At most one dynamic loop; fixed loops may coexist with it and with each other. */
|
|
197
|
+
readonly activeDynamicId: LoopId | null;
|
|
198
|
+
readonly updatedAt: EpochMs;
|
|
199
|
+
}
|
|
200
|
+
/** Locates the per-session sidecar file. Timer handles are never persisted. */
|
|
201
|
+
export interface LoopStoreRef {
|
|
202
|
+
readonly baseDir: string;
|
|
203
|
+
readonly sessionId: string;
|
|
204
|
+
}
|
|
205
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
206
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/loop/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared state model for the `/loop` builtin extension.
|
|
3
|
+
*
|
|
4
|
+
* This module is the single type home for the whole feature: the store, the scheduler,
|
|
5
|
+
* the `schedule_wakeup` tool, the tick-prompt builder, and the status presenter all
|
|
6
|
+
* consume these declarations. It is data-only — no clock access, no I/O, no timers.
|
|
7
|
+
*/
|
|
8
|
+
export const LOOP_STATE_VERSION = 1;
|
|
9
|
+
export const LOOP_KINDS = ["fixed", "dynamic"];
|
|
10
|
+
export const LOOP_SENTINELS = [
|
|
11
|
+
"<<autonomous-loop>>",
|
|
12
|
+
"<<autonomous-loop-dynamic>>",
|
|
13
|
+
"<<loop.md>>",
|
|
14
|
+
"<<loop.md-dynamic>>",
|
|
15
|
+
];
|
|
16
|
+
export const LOOP_PHASES = ["starting", "waiting", "queued", "running", "suspended", "ended"];
|
|
17
|
+
/**
|
|
18
|
+
* Terminal reasons, exhaustively.
|
|
19
|
+
*
|
|
20
|
+
* There is deliberately NO `session_closed`: every senpi shutdown reason
|
|
21
|
+
* (`quit|reload|new|resume|fork`) leaves the session resumable, so shutdown SUSPENDS a
|
|
22
|
+
* loop instead of ending it, and no code path can reach a session-closed terminal state.
|
|
23
|
+
*/
|
|
24
|
+
export const LOOP_END_REASONS = [
|
|
25
|
+
"stopped",
|
|
26
|
+
"keepalive_exhausted",
|
|
27
|
+
"expired",
|
|
28
|
+
"tick_budget_exhausted",
|
|
29
|
+
"error",
|
|
30
|
+
];
|
|
31
|
+
export const REQUESTED_INTERVAL_UNITS = ["s", "m", "h", "d"];
|
|
32
|
+
export const EFFECTIVE_INTERVAL_UNITS = ["m", "h", "d"];
|
|
33
|
+
export const LOOP_WAKE_SOURCE_KINDS = ["terminal-monitor", "terminal-background-session", "task", "other"];
|
|
34
|
+
export function isRecord(value) {
|
|
35
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/loop/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAGpC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,SAAS,CAAU,CAAC;AAGxD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,qBAAqB;IACrB,6BAA6B;IAC7B,aAAa;IACb,qBAAqB;CACZ,CAAC;AAcX,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAU,CAAC;AAGvG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC/B,SAAS;IACT,qBAAqB;IACrB,SAAS;IACT,uBAAuB;IACvB,OAAO;CACE,CAAC;AAgDX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAGtE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAkBjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AA2IpH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC","sourcesContent":["/**\n * Shared state model for the `/loop` builtin extension.\n *\n * This module is the single type home for the whole feature: the store, the scheduler,\n * the `schedule_wakeup` tool, the tick-prompt builder, and the status presenter all\n * consume these declarations. It is data-only — no clock access, no I/O, no timers.\n */\n\n/** Milliseconds since the Unix epoch. */\nexport type EpochMs = number;\n\n/** Identifier of a single `/loop` job within one session. */\nexport type LoopId = string;\n/** Identifier of one dynamic wakeup (model-scheduled or keepalive fallback). */\nexport type WakeupId = string;\n/** Identifier of one dispatched tick delivery, used to anchor sentinel reminders. */\nexport type DeliveryId = string;\n\nexport const LOOP_STATE_VERSION = 1;\nexport type LoopStateVersion = typeof LOOP_STATE_VERSION;\n\nexport const LOOP_KINDS = [\"fixed\", \"dynamic\"] as const;\nexport type LoopKind = (typeof LOOP_KINDS)[number];\n\nexport const LOOP_SENTINELS = [\n\t\"<<autonomous-loop>>\",\n\t\"<<autonomous-loop-dynamic>>\",\n\t\"<<loop.md>>\",\n\t\"<<loop.md-dynamic>>\",\n] as const;\nexport type LoopSentinel = (typeof LOOP_SENTINELS)[number];\n\nexport type LoopPayload =\n\t| {\n\t\t\treadonly type: \"prompt\";\n\t\t\t/** Exact parsed prompt, including a leading slash command. */\n\t\t\treadonly prompt: string;\n\t }\n\t| {\n\t\t\treadonly type: \"sentinel\";\n\t\t\treadonly sentinel: LoopSentinel;\n\t };\n\nexport const LOOP_PHASES = [\"starting\", \"waiting\", \"queued\", \"running\", \"suspended\", \"ended\"] as const;\nexport type LoopPhase = (typeof LOOP_PHASES)[number];\n\n/**\n * Terminal reasons, exhaustively.\n *\n * There is deliberately NO `session_closed`: every senpi shutdown reason\n * (`quit|reload|new|resume|fork`) leaves the session resumable, so shutdown SUSPENDS a\n * loop instead of ending it, and no code path can reach a session-closed terminal state.\n */\nexport const LOOP_END_REASONS = [\n\t\"stopped\",\n\t\"keepalive_exhausted\",\n\t\"expired\",\n\t\"tick_budget_exhausted\",\n\t\"error\",\n] as const;\nexport type LoopEndReason = (typeof LOOP_END_REASONS)[number];\n\nexport type LoopLifecycle =\n\t| {\n\t\t\treadonly phase: Exclude<LoopPhase, \"ended\">;\n\t\t\treadonly endedAt?: never;\n\t\t\treadonly endReason?: never;\n\t\t\treadonly endDetail?: never;\n\t }\n\t| {\n\t\t\treadonly phase: \"ended\";\n\t\t\treadonly endedAt: EpochMs;\n\t\t\treadonly endReason: LoopEndReason;\n\t\t\t/** Machine-stable subtype (e.g. `superseded`) or human-readable error detail. */\n\t\t\treadonly endDetail?: string;\n\t };\n\nexport interface LoopFileFingerprint {\n\treadonly path: string;\n\treadonly mtimeMs: number;\n\treadonly size: number;\n\t/** SHA-256 of the model-visible, truncated representation. */\n\treadonly contentHash: string;\n\t/** Delivery that carried the full loop-file block a reminder can point back to. */\n\treadonly anchorDeliveryId: DeliveryId;\n}\n\nexport interface SentinelDeliveryState {\n\t/**\n\t * True after a full autonomous preamble has been delivered and its anchor is still\n\t * believed to be present in the compaction-aware context.\n\t */\n\treadonly autonomousPreambleDelivered: boolean;\n\n\t/**\n\t * Last full loop-file representation delivered. Null before the first delivery and\n\t * after the file disappears.\n\t */\n\treadonly lastLoopFileDelivered: LoopFileFingerprint | null;\n\n\t/**\n\t * Set by an accepted compaction or a failed anchor reconstruction. The next fire must\n\t * deliver a full preamble regardless of the fields above.\n\t */\n\treadonly forceFullDelivery: boolean;\n}\n\nexport const REQUESTED_INTERVAL_UNITS = [\"s\", \"m\", \"h\", \"d\"] as const;\nexport type RequestedIntervalUnit = (typeof REQUESTED_INTERVAL_UNITS)[number];\n\nexport const EFFECTIVE_INTERVAL_UNITS = [\"m\", \"h\", \"d\"] as const;\nexport type EffectiveIntervalUnit = (typeof EFFECTIVE_INTERVAL_UNITS)[number];\n\nexport interface RequestedInterval {\n\treadonly value: number;\n\treadonly unit: RequestedIntervalUnit;\n\t/** Exact token parsed from the command, e.g. `90m`. */\n\treadonly raw: string;\n}\n\nexport interface EffectiveInterval {\n\treadonly value: number;\n\treadonly unit: EffectiveIntervalUnit;\n\treadonly human: string;\n\treadonly rounded: boolean;\n\treadonly roundingNotice?: string;\n}\n\nexport const LOOP_WAKE_SOURCE_KINDS = [\"terminal-monitor\", \"terminal-background-session\", \"task\", \"other\"] as const;\nexport type LoopWakeSourceKind = (typeof LOOP_WAKE_SOURCE_KINDS)[number];\n\nexport interface LoopWakeSource {\n\treadonly source: LoopWakeSourceKind;\n\treadonly id: string;\n\treadonly description?: string;\n\treadonly createdAt: EpochMs;\n}\n\nexport interface PendingWakeup {\n\treadonly id: WakeupId;\n\treadonly loopId: LoopId;\n\treadonly kind: \"dynamic\";\n\treadonly source: \"model\" | \"keepalive\";\n\n\treadonly requestedDelaySeconds: number;\n\t/** Effective delay after the executor clamp to `[60, 3600]`. */\n\treadonly delaySeconds: number;\n\treadonly dueAt: EpochMs;\n\n\treadonly reason: string;\n\t/** Preserved verbatim after non-blank validation. */\n\treadonly prompt: string;\n\treadonly noop: boolean;\n\n\treadonly createdAt: EpochMs;\n}\n\nexport interface LoopEntryFields {\n\treadonly id: LoopId;\n\n\t/** Exact arguments after `/loop `, excluding the command name. */\n\treadonly originalArgs: string;\n\n\t/**\n\t * Canonical re-entry text. A bare invocation is `/loop`; otherwise this is\n\t * `\"/loop \" + originalArgs`.\n\t */\n\treadonly reentryPrompt: string;\n\n\treadonly payload: LoopPayload;\n\n\treadonly createdAt: EpochMs;\n\treadonly lastFiredAt: EpochMs | null;\n\treadonly expiresAt: EpochMs;\n\n\t/**\n\t * Scheduled wall-clock occurrence most recently delivered. Prevents duplicate delivery\n\t * after sleep, resume, or a stale timer callback.\n\t */\n\treadonly lastScheduledForAt: EpochMs | null;\n\n\t/**\n\t * At most one extra fire may be pending while this loop already has a queued or\n\t * running delivery. Missed occurrences coalesce into this flag; they are never replayed.\n\t */\n\treadonly coalescedFirePending: boolean;\n\treadonly queuedForAt: EpochMs | null;\n\n\t/**\n\t * Consecutive dynamic iterations that scheduled with `noop: true`. User input or a\n\t * non-noop iteration resets it.\n\t */\n\treadonly noopStreak: number;\n\n\t/** Ticks dispatched so far; drives the `tick_budget_exhausted` safety valve. */\n\treadonly tickCount: number;\n\n\treadonly sentinelDelivery: SentinelDeliveryState;\n\n\t/**\n\t * Wake-source IDs created or adopted by this loop, used to attribute\n\t * monitor/task notifications to a loop iteration.\n\t */\n\treadonly wakeSources: readonly LoopWakeSource[];\n}\n\nexport type LoopEntryBase = LoopEntryFields & LoopLifecycle & { readonly kind: LoopKind };\n\nexport type FixedCronEntry = LoopEntryFields &\n\tLoopLifecycle & {\n\t\treadonly kind: \"fixed\";\n\t\treadonly requestedInterval: RequestedInterval;\n\t\treadonly effectiveInterval: EffectiveInterval;\n\t\t/** Display-only restricted cron string; scheduling uses `intervalMs` + `nextFireAt`. */\n\t\treadonly cronExpression: string;\n\n\t\t/** Next occurrence strictly later than the last scheduler observation. */\n\t\treadonly nextFireAt: EpochMs;\n\t\treadonly intervalMs: number;\n\n\t\treadonly pendingWakeup?: never;\n\t\t/** Fixed ticks are re-armed by the schedule itself, so keepalive never applies. */\n\t\treadonly keepaliveCredit?: never;\n\t};\n\nexport type DynamicCronEntry = LoopEntryFields &\n\tLoopLifecycle & {\n\t\treadonly kind: \"dynamic\";\n\t\treadonly requestedInterval?: never;\n\t\treadonly effectiveInterval?: never;\n\t\treadonly cronExpression?: never;\n\t\treadonly nextFireAt?: never;\n\t\treadonly intervalMs?: never;\n\n\t\treadonly pendingWakeup: PendingWakeup | null;\n\n\t\t/**\n\t\t * One means an omitted `schedule_wakeup` may consume one fallback. Zero means\n\t\t * another omission ends the loop with `keepalive_exhausted`. A successful model\n\t\t * schedule resets this to one.\n\t\t */\n\t\treadonly keepaliveCredit: 0 | 1;\n\t};\n\nexport type CronEntry = FixedCronEntry | DynamicCronEntry;\n\nexport interface LoopState {\n\treadonly version: LoopStateVersion;\n\treadonly sessionId: string;\n\n\t/**\n\t * Includes ended records so a resume never resurrects a terminal loop.\n\t */\n\treadonly entries: Readonly<Record<LoopId, CronEntry>>;\n\n\t/** At most one dynamic loop; fixed loops may coexist with it and with each other. */\n\treadonly activeDynamicId: LoopId | null;\n\n\treadonly updatedAt: EpochMs;\n}\n\n/** Locates the per-session sidecar file. Timer handles are never persisted. */\nexport interface LoopStoreRef {\n\treadonly baseDir: string;\n\treadonly sessionId: string;\n}\n\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n"]}
|
|
@@ -7,7 +7,7 @@ export type { McpServerDeclaration } from "./builtin/mcp/config-schema.ts";
|
|
|
7
7
|
export { createExtensionRuntime, discoverAndLoadExtensions, loadExtensionFromFactory, loadExtensions, } from "./loader.ts";
|
|
8
8
|
export type { ExtensionErrorListener, ExtensionToolHookLifecycleEvent, ExtensionToolHookLifecycleObserver, ExtensionToolHookLifecycleStatus, ExtensionToolHookName, ForkHandler, NavigateTreeHandler, NewSessionHandler, ShutdownHandler, SwitchSessionHandler, } from "./runner.ts";
|
|
9
9
|
export { ExtensionRunner } from "./runner.ts";
|
|
10
|
-
export type { AfterProviderResponseEvent, AgentEndEvent, AgentSettledEvent, AgentStartEvent, AgentToolResult, AgentToolUpdateCallback, AppendEntryHandler, AppKeybinding, AutocompleteProviderFactory, BashToolCallEvent, BashToolResultEvent, BeforeAgentStartEvent, BeforeAgentStartEventResult, BeforeProviderHeadersEvent, BeforeProviderRequestEvent, BeforeProviderRequestEventResult, BuildSystemPromptOptions, CompactOptions, ContextEvent, ContextEventResult, ContextUsage, CustomToolCallEvent, CustomToolResultEvent, EditorFactory, EditToolCallEvent, EditToolResultEvent, EntryRenderer, EntryRenderOptions, ExecOptions, ExecResult, ExecuteToolErrorCode, ExecuteToolHandler, ExecuteToolOptions, ExecuteToolResult, ExecuteToolUpdateCallback, Extension, ExtensionActions, ExtensionAPI, ExtensionCommandContext, ExtensionCommandContextActions, ExtensionContext, ExtensionContextActions, ExtensionError, ExtensionEvent, ExtensionFactory, ExtensionFlag, ExtensionHandler, ExtensionMode, ExtensionRpcRequestHandler, ExtensionRuntime, ExtensionShortcut, ExtensionUIContext, ExtensionUIDialogOptions, ExtensionWidgetOptions, FilesystemOperation, FilesystemPolicy, FilesystemPolicyChecker, FilesystemPolicyDecision, FilesystemPolicyRequest, FindToolCallEvent, FindToolResultEvent, GetActiveToolsHandler, GetAllToolsHandler, GetCommandsHandler, GetThinkingLevelHandler, GrepToolCallEvent, GrepToolResultEvent, InlineExtension, InputDispositionEvent, InputEvent, InputEventResult, InputSource, KeybindingsManager, LoadExtensionsResult, LsToolCallEvent, LsToolResultEvent, MarkdownTransformContext, MarkdownTransformer, MessageEndEvent, MessageRenderer, MessageRenderOptions, MessageStartEvent, MessageUpdateEvent, ModelSelectEvent, ModelSelectEventResult, ModelSelectSource, ProjectTrustContext, ProjectTrustEvent, ProjectTrustEventDecision, ProjectTrustEventResult, ProjectTrustHandler, ProviderConfig, ProviderModelConfig, ReadToolCallEvent, ReadToolResultEvent, RegisteredCommand, RegisteredTool, ReplacedSessionContext, ResolvedCommand, ResourcesDiscoverEvent, ResourcesDiscoverResult, SendMessageHandler, SendUserMessageHandler, SessionBeforeCompactEvent, SessionBeforeCompactResult, SessionBeforeForkEvent, SessionBeforeForkResult, SessionBeforeSwitchEvent, SessionBeforeSwitchResult, SessionBeforeTreeEvent, SessionBeforeTreeResult, SessionCompactEvent, SessionEvent, SessionInfoChangedEvent, SessionShutdownEvent, SessionStartEvent, SessionTreeEvent, SetActiveToolsHandler, SetLabelHandler, SetModelHandler, SetThinkingLevelHandler, SystemPromptChangeEvent, TerminalInputHandler, ToolCallEvent, ToolCallEventResult, ToolDefinition, ToolExecutionEndEvent, ToolExecutionMode, ToolExecutionStartEvent, ToolExecutionUpdateEvent, ToolInfo, ToolRenderResultOptions, ToolResultEvent, ToolResultEventResult, TreePreparation, TurnEndEvent, TurnStartEvent, UserBashEvent, UserBashEventResult, WidgetPlacement, WorkingIndicatorOptions, WriteToolCallEvent, WriteToolResultEvent, } from "./types.ts";
|
|
10
|
+
export type { AfterProviderResponseEvent, AgentEndEvent, AgentSettledEvent, AgentStartEvent, AgentToolResult, AgentToolUpdateCallback, AppendEntryHandler, AppKeybinding, AutocompleteProviderFactory, BashToolCallEvent, BashToolResultEvent, BeforeAgentStartEvent, BeforeAgentStartEventResult, BeforeProviderHeadersEvent, BeforeProviderRequestEvent, BeforeProviderRequestEventResult, BuildSystemPromptOptions, CompactOptions, ContextEvent, ContextEventResult, ContextUsage, CustomToolCallEvent, CustomToolResultEvent, EditorFactory, EditToolCallEvent, EditToolResultEvent, EntryRenderer, EntryRenderOptions, ExecOptions, ExecResult, ExecuteToolErrorCode, ExecuteToolHandler, ExecuteToolOptions, ExecuteToolResult, ExecuteToolUpdateCallback, Extension, ExtensionActions, ExtensionAPI, ExtensionCommandContext, ExtensionCommandContextActions, ExtensionContext, ExtensionContextActions, ExtensionError, ExtensionEvent, ExtensionFactory, ExtensionFlag, ExtensionHandler, ExtensionMode, ExtensionRpcRequestHandler, ExtensionRuntime, ExtensionShortcut, ExtensionUIContext, ExtensionUIDialogOptions, ExtensionWidgetOptions, FilesystemOperation, FilesystemPolicy, FilesystemPolicyChecker, FilesystemPolicyDecision, FilesystemPolicyRequest, FindToolCallEvent, FindToolResultEvent, GetActiveToolsHandler, GetAllToolsHandler, GetCommandsHandler, GetThinkingLevelHandler, GrepToolCallEvent, GrepToolResultEvent, InlineExtension, InputDispositionEvent, InputEvent, InputEventResult, InputSource, KeybindingsManager, LoadExtensionsResult, LsToolCallEvent, LsToolResultEvent, MarkdownTransformContext, MarkdownTransformer, MessageEndEvent, MessageRenderer, MessageRenderOptions, MessageStartEvent, MessageUpdateEvent, ModelSelectEvent, ModelSelectEventResult, ModelSelectSource, ProjectTrustContext, ProjectTrustEvent, ProjectTrustEventDecision, ProjectTrustEventResult, ProjectTrustHandler, ProviderConfig, ProviderModelConfig, ReadToolCallEvent, ReadToolResultEvent, RegisteredCommand, RegisteredTool, ReplacedSessionContext, ResolvedCommand, ResourcesDiscoverEvent, ResourcesDiscoverResult, SendMessageHandler, SendUserMessageHandler, SessionBeforeCompactEvent, SessionBeforeCompactResult, SessionBeforeForkEvent, SessionBeforeForkResult, SessionBeforeSwitchEvent, SessionBeforeSwitchResult, SessionBeforeTreeEvent, SessionBeforeTreeResult, SessionCompactEvent, SessionCompactFailedEvent, SessionEvent, SessionInfoChangedEvent, SessionShutdownEvent, SessionStartEvent, SessionTreeEvent, SetActiveToolsHandler, SetLabelHandler, SetModelHandler, SetThinkingLevelHandler, SystemPromptChangeEvent, TerminalInputHandler, ToolCallEvent, ToolCallEventResult, ToolDefinition, ToolExecutionEndEvent, ToolExecutionMode, ToolExecutionStartEvent, ToolExecutionUpdateEvent, ToolInfo, ToolRenderResultOptions, ToolResultEvent, ToolResultEventResult, TreePreparation, TurnEndEvent, TurnStartEvent, UserBashEvent, UserBashEventResult, WidgetPlacement, WorkingIndicatorOptions, WriteToolCallEvent, WriteToolResultEvent, } from "./types.ts";
|
|
11
11
|
export { defineTool, ExecuteToolError, isBashToolResult, isEditToolResult, isFindToolResult, isGrepToolResult, isLsToolResult, isReadToolResult, isToolCallEventType, isWriteToolResult, RUNTIME_EXTENSION_PATH, } from "./types.ts";
|
|
12
12
|
export { wrapRegisteredTool, wrapRegisteredTools } from "./wrapper.ts";
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EACN,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,GACd,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EACN,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,GACd,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAwK9C,cAAc;AACd,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC","sourcesContent":["/**\n * Extension system for lifecycle events and custom tools.\n */\n\nexport type { SlashCommandInfo, SlashCommandSource } from \"../slash-commands.ts\";\nexport type { SourceInfo } from \"../source-info.ts\";\nexport type { McpServerDeclaration } from \"./builtin/mcp/config-schema.ts\";\nexport {\n\tcreateExtensionRuntime,\n\tdiscoverAndLoadExtensions,\n\tloadExtensionFromFactory,\n\tloadExtensions,\n} from \"./loader.ts\";\nexport type {\n\tExtensionErrorListener,\n\tExtensionToolHookLifecycleEvent,\n\tExtensionToolHookLifecycleObserver,\n\tExtensionToolHookLifecycleStatus,\n\tExtensionToolHookName,\n\tForkHandler,\n\tNavigateTreeHandler,\n\tNewSessionHandler,\n\tShutdownHandler,\n\tSwitchSessionHandler,\n} from \"./runner.ts\";\nexport { ExtensionRunner } from \"./runner.ts\";\nexport type {\n\tAfterProviderResponseEvent,\n\tAgentEndEvent,\n\tAgentSettledEvent,\n\tAgentStartEvent,\n\t// Re-exports\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tAppendEntryHandler,\n\t// App keybindings (for custom editors)\n\tAppKeybinding,\n\tAutocompleteProviderFactory,\n\t// Events - Tool (ToolCallEvent types)\n\tBashToolCallEvent,\n\tBashToolResultEvent,\n\tBeforeAgentStartEvent,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderHeadersEvent,\n\tBeforeProviderRequestEvent,\n\tBeforeProviderRequestEventResult,\n\tBuildSystemPromptOptions,\n\t// Context\n\tCompactOptions,\n\t// Events - Agent\n\tContextEvent,\n\t// Event Results\n\tContextEventResult,\n\tContextUsage,\n\tCustomToolCallEvent,\n\tCustomToolResultEvent,\n\tEditorFactory,\n\tEditToolCallEvent,\n\tEditToolResultEvent,\n\t// Message and Entry Rendering\n\tEntryRenderer,\n\tEntryRenderOptions,\n\tExecOptions,\n\tExecResult,\n\tExecuteToolErrorCode,\n\tExecuteToolHandler,\n\tExecuteToolOptions,\n\tExecuteToolResult,\n\tExecuteToolUpdateCallback,\n\tExtension,\n\tExtensionActions,\n\t// API\n\tExtensionAPI,\n\tExtensionCommandContext,\n\tExtensionCommandContextActions,\n\tExtensionContext,\n\tExtensionContextActions,\n\t// Errors\n\tExtensionError,\n\tExtensionEvent,\n\tExtensionFactory,\n\tExtensionFlag,\n\tExtensionHandler,\n\tExtensionMode,\n\tExtensionRpcRequestHandler,\n\t// Runtime\n\tExtensionRuntime,\n\tExtensionShortcut,\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tFilesystemOperation,\n\tFilesystemPolicy,\n\tFilesystemPolicyChecker,\n\tFilesystemPolicyDecision,\n\tFilesystemPolicyRequest,\n\tFindToolCallEvent,\n\tFindToolResultEvent,\n\tGetActiveToolsHandler,\n\tGetAllToolsHandler,\n\tGetCommandsHandler,\n\tGetThinkingLevelHandler,\n\tGrepToolCallEvent,\n\tGrepToolResultEvent,\n\tInlineExtension,\n\t// Events - Input\n\tInputDispositionEvent,\n\tInputEvent,\n\tInputEventResult,\n\tInputSource,\n\tKeybindingsManager,\n\tLoadExtensionsResult,\n\tLsToolCallEvent,\n\tLsToolResultEvent,\n\tMarkdownTransformContext,\n\tMarkdownTransformer,\n\t// Events - Message\n\tMessageEndEvent,\n\tMessageRenderer,\n\tMessageRenderOptions,\n\tMessageStartEvent,\n\tMessageUpdateEvent,\n\tModelSelectEvent,\n\tModelSelectEventResult,\n\tModelSelectSource,\n\tProjectTrustContext,\n\tProjectTrustEvent,\n\tProjectTrustEventDecision,\n\tProjectTrustEventResult,\n\tProjectTrustHandler,\n\t// Provider Registration\n\tProviderConfig,\n\tProviderModelConfig,\n\tReadToolCallEvent,\n\tReadToolResultEvent,\n\t// Commands\n\tRegisteredCommand,\n\tRegisteredTool,\n\tReplacedSessionContext,\n\tResolvedCommand,\n\t// Events - Resources\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tSendMessageHandler,\n\tSendUserMessageHandler,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkEvent,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeEvent,\n\tSessionBeforeTreeResult,\n\tSessionCompactEvent,\n\tSessionCompactFailedEvent,\n\tSessionEvent,\n\tSessionInfoChangedEvent,\n\tSessionShutdownEvent,\n\t// Events - Session\n\tSessionStartEvent,\n\tSessionTreeEvent,\n\tSetActiveToolsHandler,\n\tSetLabelHandler,\n\tSetModelHandler,\n\tSetThinkingLevelHandler,\n\tSystemPromptChangeEvent,\n\tTerminalInputHandler,\n\t// Events - Tool\n\tToolCallEvent,\n\tToolCallEventResult,\n\t// Tools\n\tToolDefinition,\n\t// Events - Tool Execution\n\tToolExecutionEndEvent,\n\t// Tool execution mode\n\tToolExecutionMode,\n\tToolExecutionStartEvent,\n\tToolExecutionUpdateEvent,\n\tToolInfo,\n\tToolRenderResultOptions,\n\tToolResultEvent,\n\tToolResultEventResult,\n\tTreePreparation,\n\tTurnEndEvent,\n\tTurnStartEvent,\n\t// Events - User Bash\n\tUserBashEvent,\n\tUserBashEventResult,\n\tWidgetPlacement,\n\tWorkingIndicatorOptions,\n\tWriteToolCallEvent,\n\tWriteToolResultEvent,\n} from \"./types.ts\";\n// Type guards\nexport {\n\tdefineTool,\n\tExecuteToolError,\n\tisBashToolResult,\n\tisEditToolResult,\n\tisFindToolResult,\n\tisGrepToolResult,\n\tisLsToolResult,\n\tisReadToolResult,\n\tisToolCallEventType,\n\tisWriteToolResult,\n\tRUNTIME_EXTENSION_PATH,\n} from \"./types.ts\";\nexport { wrapRegisteredTool, wrapRegisteredTools } from \"./wrapper.ts\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/loader.ts"],"names":[],"mappings":"AACA;;;GAGG;AAyBH,OAAO,EAAkB,KAAK,QAAQ,EAAuD,MAAM,iBAAiB,CAAC;AAOrH,OAAO,KAAK,EAEX,SAAS,EAET,gBAAgB,EAChB,gBAAgB,EAGhB,oBAAoB,EAGpB,2BAA2B,EAK3B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/loader.ts"],"names":[],"mappings":"AACA;;;GAGG;AAyBH,OAAO,EAAkB,KAAK,QAAQ,EAAuD,MAAM,iBAAiB,CAAC;AAOrH,OAAO,KAAK,EAEX,SAAS,EAET,gBAAgB,EAChB,gBAAgB,EAGhB,oBAAoB,EAGpB,2BAA2B,EAK3B,MAAM,YAAY,CAAC;AAiJpB,MAAM,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;AAiBrH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAyBD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAsFzD;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,gBAAgB,GAAG,2BAA2B,EAAE,CAS1G;AA8XD;;GAEG;AACH,wBAAsB,wBAAwB,CAC7C,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,gBAAgB,EACzB,aAAa,SAAa,GACxB,OAAO,CAAC,SAAS,CAAC,CAOpB;AAsDD,wBAAsB,cAAc,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,gBAAgB,EAC1B,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,wBAAwB,CAAA;CAAE,GACtD,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAED,wBAAsB,oBAAoB,CACzC,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AA2FD;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,eAAe,EAAE,MAAM,EAAE,EACzB,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,MAAsB,EAChC,QAAQ,CAAC,EAAE,QAAQ,GACjB,OAAO,CAAC,oBAAoB,CAAC,CA2C/B"}
|
|
@@ -30,7 +30,7 @@ import { readPiManifest } from "../pi-manifest.js";
|
|
|
30
30
|
import { createSyntheticSourceInfo } from "../source-info.js";
|
|
31
31
|
import { time } from "../timings.js";
|
|
32
32
|
import { validateMcpServerDeclaration } from "./builtin/mcp/config-schema.js";
|
|
33
|
-
/** Modules available to extensions via virtualModules (for compiled
|
|
33
|
+
/** Modules available to extensions via virtualModules (for compiled binaries) */
|
|
34
34
|
const VIRTUAL_MODULES = {
|
|
35
35
|
typebox: _bundledTypebox,
|
|
36
36
|
"typebox/compile": _bundledTypeboxCompile,
|
|
@@ -58,10 +58,12 @@ const VIRTUAL_MODULES = {
|
|
|
58
58
|
"@code-yeongyu/senpi": _bundledPiCodingAgent,
|
|
59
59
|
};
|
|
60
60
|
const require = createRequire(import.meta.url);
|
|
61
|
+
const isNodeSeaBinary = ("sea" in process.features && process.features.sea === true) ||
|
|
62
|
+
process.getBuiltinModule("node:sea")?.isSea() === true;
|
|
61
63
|
const isTypeScriptSourceRuntime = !isBunBinary && path.extname(fileURLToPath(import.meta.url)) === ".ts";
|
|
62
64
|
/**
|
|
63
65
|
* Get aliases for jiti (used in built Node.js mode).
|
|
64
|
-
* In
|
|
66
|
+
* In compiled binary mode, virtualModules is used instead.
|
|
65
67
|
*/
|
|
66
68
|
let _aliases = null;
|
|
67
69
|
function getAliases() {
|
|
@@ -322,6 +324,9 @@ function createExtensionAPI(extension, runtime, cwd, eventBus) {
|
|
|
322
324
|
},
|
|
323
325
|
registerFlag(name, options) {
|
|
324
326
|
runtime.assertActive();
|
|
327
|
+
if (options.default !== undefined && typeof options.default !== options.type) {
|
|
328
|
+
throw new Error(`Invalid default for flag "${name}": expected ${options.type}, got ${typeof options.default}`);
|
|
329
|
+
}
|
|
325
330
|
extension.flags.set(name, { name, extensionPath: extension.path, ...options });
|
|
326
331
|
if (options.default !== undefined && !runtime.flagValues.has(name)) {
|
|
327
332
|
runtime.flagValues.set(name, options.default);
|
|
@@ -487,9 +492,9 @@ function createExtensionAPI(extension, runtime, cwd, eventBus) {
|
|
|
487
492
|
function createExtensionModuleImporter() {
|
|
488
493
|
return createJiti(import.meta.url, {
|
|
489
494
|
moduleCache: false,
|
|
490
|
-
//
|
|
491
|
-
// host
|
|
492
|
-
...(isBunBinary
|
|
495
|
+
// Compiled binaries use modules embedded in the executable. Source TypeScript
|
|
496
|
+
// reuses host modules and root tsconfig paths. Built Node uses dist aliases.
|
|
497
|
+
...(isBunBinary || isNodeSeaBinary
|
|
493
498
|
? { virtualModules: VIRTUAL_MODULES, tryNative: false }
|
|
494
499
|
: isTypeScriptSourceRuntime
|
|
495
500
|
? { alias: getAliases(), virtualModules: VIRTUAL_MODULES, tsconfigPaths: true }
|