@daniel156161/prism 0.2.76 → 0.2.81
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/dist/pi/pi-env.d.ts +1 -1
- package/dist/pi/pi-env.js +1 -1
- package/dist/pi/pi-patch-extension-loader.js +2 -0
- package/dist/pi/pi-patch-extension-loader.js.map +1 -1
- package/dist/pi/pi-patch-interactive.js +8 -5
- package/dist/pi/pi-patch-interactive.js.map +1 -1
- package/dist/prism-extensions/integrations/ai-memory-errors.d.ts +16 -0
- package/dist/prism-extensions/integrations/ai-memory-errors.js +52 -0
- package/dist/prism-extensions/integrations/ai-memory-errors.js.map +1 -0
- package/dist/prism-extensions/integrations/ai-memory-system.d.ts +3 -0
- package/dist/prism-extensions/integrations/ai-memory-system.js +335 -7
- package/dist/prism-extensions/integrations/ai-memory-system.js.map +1 -1
- package/dist/prism-extensions/integrations/research-tools.js +5 -2
- package/dist/prism-extensions/integrations/research-tools.js.map +1 -1
- package/dist/prism-extensions/integrations/youtube.d.ts +32 -0
- package/dist/prism-extensions/integrations/youtube.js +250 -0
- package/dist/prism-extensions/integrations/youtube.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/README.md +13 -7
- 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 +5 -1
- 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 +3 -1
- 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 +9 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts +452 -85
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js +204 -917
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts +13 -6
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.js +11 -15
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts +14 -17
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +23 -36
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js +23 -7
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts +3 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.js +3 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.js +4 -9
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/reducer.d.ts +100 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/reducer.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/reducer.js +415 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/reducer.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/result.d.ts +40 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/result.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/result.js +41 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/result.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/context.d.ts +22 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/context.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/context.js +67 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/context.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/index.d.ts +7 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/index.js +6 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/index.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/codec.d.ts +8 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/codec.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/codec.js +190 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/codec.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/errors.d.ts +5 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/errors.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/errors.js +11 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/errors.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/repo.d.ts +23 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/repo.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/repo.js +132 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/repo.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/storage.d.ts +43 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/storage.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/storage.js +208 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/storage.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/types.d.ts +38 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/types.js +2 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/types.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl.d.ts +3 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl.js +2 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory.d.ts +44 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory.js +141 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/search.d.ts +19 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/search.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/search.js +42 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/search.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts +43 -42
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +187 -228
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/state.d.ts +65 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/state.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/state.js +319 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/state.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance.d.ts +4 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance.js +743 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/index.d.ts +3 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/index.js +2 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/index.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/types.d.ts +14 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/types.js +2 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/types.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/types.d.ts +333 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/types.js +10 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/types.js.map +1 -0
- 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 +21 -19
- 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/telemetry.d.ts +1221 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/telemetry.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/telemetry.js +508 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/telemetry.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +6 -459
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js +0 -19
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +10 -9
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js +7 -8
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +6 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +9 -2
- package/node_modules/@earendil-works/pi-ai/README.md +24 -8
- 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 +3 -3
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +5 -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 +48 -0
- 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/google-generative-ai.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +2 -2
- 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 +11 -1
- 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 +44 -7
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.d.ts +5 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.js +19 -7
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.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 +39 -19
- 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 +5 -2
- 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 +57 -8
- 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-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +22 -9
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.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 +5 -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/simple-options.d.ts +2 -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 +8 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.d.ts +6 -6
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.js +22 -11
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js +7 -2
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/anthropic.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/anthropic.js +14 -8
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.d.ts +1 -1
- 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 +4 -4
- 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 +43 -30
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.js +17 -5
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openai-codex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openai-codex.js +12 -5
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openai-codex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.js +10 -10
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/radius.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/radius.js +8 -7
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/radius.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/xai.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/xai.js +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/xai.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +24 -13
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.d.ts +20 -8
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cli.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +30 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +32 -2
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-models.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images-models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models-store.d.ts +9 -12
- package/node_modules/@earendil-works/pi-ai/dist/models-store.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models-store.js +6 -3
- package/node_modules/@earendil-works/pi-ai/dist/models-store.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +40 -18
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js +245 -89
- package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js +15 -7
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +15 -6
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/baseten.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/baseten.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/baseten.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/baseten.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/baseten.models.d.ts +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/baseten.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/baseten.models.js +6 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/baseten.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js +15 -10
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.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/amazon-bedrock.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/azure-openai-responses.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.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/groq.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.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-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-individual.json +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.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/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/faux.d.ts +18 -13
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +95 -5
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js +15 -7
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.js +5 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.models.d.ts +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.models.js +6 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/radius.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/radius.js +36 -26
- package/node_modules/@earendil-works/pi-ai/dist/providers/radius.js.map +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 -0
- 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 +96 -80
- 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/abort.d.ts +8 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/abort.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/abort.js +49 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/abort.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js +23 -4
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +10 -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 +12 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.js +6 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +2 -1
- package/node_modules/@earendil-works/pi-client/CHANGELOG.md +13 -0
- package/node_modules/@earendil-works/pi-client/README.md +63 -0
- package/node_modules/@earendil-works/pi-client/dist/client.d.ts +25 -0
- package/node_modules/@earendil-works/pi-client/dist/client.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/client.js +385 -0
- package/node_modules/@earendil-works/pi-client/dist/client.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/connection.d.ts +24 -0
- package/node_modules/@earendil-works/pi-client/dist/connection.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/connection.js +204 -0
- package/node_modules/@earendil-works/pi-client/dist/connection.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/errors.d.ts +23 -0
- package/node_modules/@earendil-works/pi-client/dist/errors.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/errors.js +46 -0
- package/node_modules/@earendil-works/pi-client/dist/errors.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/index.d.ts +6 -0
- package/node_modules/@earendil-works/pi-client/dist/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/index.js +3 -0
- package/node_modules/@earendil-works/pi-client/dist/index.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/promise.d.ts +8 -0
- package/node_modules/@earendil-works/pi-client/dist/promise.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/promise.js +11 -0
- package/node_modules/@earendil-works/pi-client/dist/promise.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/session-handle.d.ts +54 -0
- package/node_modules/@earendil-works/pi-client/dist/session-handle.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/session-handle.js +51 -0
- package/node_modules/@earendil-works/pi-client/dist/session-handle.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/state.d.ts +22 -0
- package/node_modules/@earendil-works/pi-client/dist/state.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/state.js +145 -0
- package/node_modules/@earendil-works/pi-client/dist/state.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/transport.d.ts +17 -0
- package/node_modules/@earendil-works/pi-client/dist/transport.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/transport.js +2 -0
- package/node_modules/@earendil-works/pi-client/dist/transport.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/types.d.ts +22 -0
- package/node_modules/@earendil-works/pi-client/dist/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/types.js +2 -0
- package/node_modules/@earendil-works/pi-client/dist/types.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/unix.d.ts +8 -0
- package/node_modules/@earendil-works/pi-client/dist/unix.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-client/dist/unix.js +151 -0
- package/node_modules/@earendil-works/pi-client/dist/unix.js.map +1 -0
- package/node_modules/@earendil-works/pi-client/package.json +56 -0
- package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +227 -0
- package/node_modules/@earendil-works/pi-coding-agent/README.md +5 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js +22 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/auth-check.d.ts +19 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/auth-check.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/auth-check.js +50 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/auth-check.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/auth-command.d.ts +24 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/auth-command.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/auth-command.js +102 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/auth-command.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.js +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/credential-print.d.ts +5 -15
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/credential-print.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/credential-print.js +42 -82
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/credential-print.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/auth.d.ts +16 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/auth.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/auth.js +13 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/auth.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/cli.d.ts +6 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/cli.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/cli.js +5 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/cli.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/command-options.d.ts +17 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/command-options.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/command-options.js +35 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/command-options.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/command.d.ts +63 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/command.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/command.js +130 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/command.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/client.d.ts +13 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/client.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/client.js +25 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/client.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/pi.d.ts +15 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/pi.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/pi.js +28 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/pi.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/server.d.ts +13 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/server.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/server.js +25 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/commands/server.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/transport-address.d.ts +10 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/transport-address.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/transport-address.js +38 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/experimental/transport-address.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.js +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli.js +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/index.d.ts +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/index.js +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/index.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/remote-session.d.ts +53 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/remote-session.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/remote-session.js +340 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/remote-session.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/transcript.d.ts +12 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/transcript.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/transcript.js +98 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/client/transcript.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts +1 -10
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +72 -70
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.d.ts +25 -9
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +237 -39
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +43 -20
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts +26 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.js +5 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.d.ts +44 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.d.ts +29 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.js +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.d.ts +5 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +13 -10
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts +4 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +42 -10
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-runtime.d.ts +30 -13
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-runtime.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-runtime.js +233 -73
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-runtime.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/models-store.d.ts +12 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/models-store.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/models-store.js +83 -14
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/models-store.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts +4 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +63 -36
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/pi-manifest.d.ts +8 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/pi-manifest.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/pi-manifest.js +25 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/pi-manifest.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-composer.d.ts +4 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-composer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-composer.js +36 -15
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-composer.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/remote-catalog-provider.js +73 -67
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/remote-catalog-provider.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/runtime-credentials.d.ts +5 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/runtime-credentials.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/runtime-credentials.js +11 -8
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/runtime-credentials.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js +267 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +24 -10
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts +12 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +40 -16
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +6 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.d.ts +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +11 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts +7 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js +16 -19
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js +5 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js +5 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +7 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js +6 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/index.js +11 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/provider.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/provider.js +21 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/provider.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts +4 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +70 -25
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts +5 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +13 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-editor.js +7 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/markdown-transform.js +19 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/markdown-transform.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/mermaid.d.ts +11 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/mermaid.js +75 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/mermaid.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.js +16 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.d.ts +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.js +26 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +8 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +30 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js +9 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +36 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +435 -2477
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/dark.json +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/light.json +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme-controller.d.ts +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme-controller.js +10 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme-schema.json +5 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js +24 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/json-event.d.ts +28 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/json-event.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/json-event.js +12 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/json-event.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.js +12 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts +5 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +4 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js +11 -9
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/rpc-entry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/rpc-entry.js +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/rpc-entry.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/server/create-harness.d.ts +26 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/server/create-harness.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/server/create-harness.js +104 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/server/create-harness.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/abort.d.ts +5 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/abort.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/abort.js +48 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/abort.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.js +22 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/management-http.d.ts +23 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/management-http.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/management-http.js +50 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/management-http.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.d.ts +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.js +23 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tool-result-images.d.ts +19 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tool-result-images.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tool-result-images.js +45 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tool-result-images.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tools-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tools-manager.js +4 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tools-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.d.ts +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.js +20 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/compaction.md +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/custom-provider.md +7 -5
- package/node_modules/@earendil-works/pi-coding-agent/docs/extensions.md +30 -5
- package/node_modules/@earendil-works/pi-coding-agent/docs/json.md +19 -14
- package/node_modules/@earendil-works/pi-coding-agent/docs/keybindings.md +46 -14
- package/node_modules/@earendil-works/pi-coding-agent/docs/models.md +24 -3
- package/node_modules/@earendil-works/pi-coding-agent/docs/providers.md +9 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/quickstart.md +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/rpc.md +13 -11
- package/node_modules/@earendil-works/pi-coding-agent/docs/sdk.md +21 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/security.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/settings.md +4 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/themes.md +5 -3
- package/node_modules/@earendil-works/pi-coding-agent/docs/usage.md +7 -0
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-compaction.ts +1 -16
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/index.ts +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/doom-overlay/wad-finder.ts +7 -3
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package-lock.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/handoff.ts +2 -11
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/qna.ts +3 -7
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package-lock.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/summarize.ts +7 -18
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package-lock.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/rpc-extension-ui.ts +11 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/sdk/02-custom-model.ts +1 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/sdk/09-api-keys-and-oauth.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/sdk/12-full-control.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/sdk/README.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/package.json +13 -6
- package/node_modules/@earendil-works/pi-protocol/README.md +69 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/decoder.d.ts +4 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/decoder.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/decoder.js +165 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/decoder.js.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/encoder.d.ts +4 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/encoder.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/encoder.js +201 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/encoder.js.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/index.d.ts +4 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/index.js +4 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/index.js.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/options.d.ts +26 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/options.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/options.js +29 -0
- package/node_modules/@earendil-works/pi-protocol/dist/cbor/options.js.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/codec.d.ts +29 -0
- package/node_modules/@earendil-works/pi-protocol/dist/codec.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/codec.js +146 -0
- package/node_modules/@earendil-works/pi-protocol/dist/codec.js.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/framing.d.ts +29 -0
- package/node_modules/@earendil-works/pi-protocol/dist/framing.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/framing.js +155 -0
- package/node_modules/@earendil-works/pi-protocol/dist/framing.js.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/index.d.ts +5 -0
- package/node_modules/@earendil-works/pi-protocol/dist/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/index.js +5 -0
- package/node_modules/@earendil-works/pi-protocol/dist/index.js.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/schemas.d.ts +13739 -0
- package/node_modules/@earendil-works/pi-protocol/dist/schemas.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/dist/schemas.js +386 -0
- package/node_modules/@earendil-works/pi-protocol/dist/schemas.js.map +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/compile/code.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/compile/code.mjs +65 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/compile/compile.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/compile/compile.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/compile/index.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/compile/index.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/compile/validator.d.mts +35 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/compile/validator.mjs +91 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/error/errors.d.mts +208 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/error/errors.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/error/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/error/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/_idna.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/_idna.mjs +246 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/_puny.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/_puny.mjs +77 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/_registry.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/_registry.mjs +96 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/date.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/date.mjs +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/date_time.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/date_time.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/duration.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/duration.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/email.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/email.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/format.d.mts +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/format.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/hostname.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/hostname.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/idn_email.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/idn_email.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/idn_hostname.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/idn_hostname.mjs +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/index.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/index.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/ipv4.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/ipv4.mjs +38 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/ipv6.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/ipv6.mjs +67 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/iri.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/iri.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/iri_reference.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/iri_reference.mjs +60 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/json_pointer.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/json_pointer.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/json_pointer_uri_fragment.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/json_pointer_uri_fragment.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/regex.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/regex.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/relative_json_pointer.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/relative_json_pointer.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/time.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/time.mjs +27 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/uri.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/uri.mjs +135 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/uri_reference.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/uri_reference.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/uri_template.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/uri_template.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/url.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/url.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/uuid.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/format/uuid.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/emit.d.mts +54 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/emit.mjs +186 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/globals.d.mts +35 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/globals.mjs +90 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/guard.d.mts +65 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/guard.mjs +212 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/index.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/index.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/native.d.mts +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/native.mjs +60 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/string.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/guard/string.mjs +176 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/index.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/index.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/build.d.mts +39 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/build.mjs +118 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/check.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/check.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/compile.d.mts +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/compile.mjs +46 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_context.d.mts +35 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_context.mjs +129 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_exact_optional.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_exact_optional.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_externals.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_externals.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_functions.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_functions.mjs +66 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_reducer.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_reducer.mjs +45 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_refine.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_refine.mjs +29 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_stack.d.mts +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_stack.mjs +107 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_unique.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/_unique.mjs +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/additionalItems.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/additionalItems.mjs +50 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/additionalProperties.mjs +110 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/allOf.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/allOf.mjs +47 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/anyOf.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/anyOf.mjs +52 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/boolean.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/boolean.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/const.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/const.mjs +30 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/contains.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/contains.mjs +42 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/dependencies.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/dependencies.mjs +45 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/dependentRequired.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +38 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/dynamicRef.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/enum.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/enum.mjs +33 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/format.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/format.mjs +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/if.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/if.mjs +47 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/index.d.mts +48 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/index.mjs +54 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/items.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/items.mjs +68 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maxContains.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maxContains.mjs +42 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maxItems.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maxItems.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maxLength.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maxLength.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maxProperties.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maxProperties.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maximum.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/maximum.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minContains.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minContains.mjs +41 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minItems.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minItems.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minLength.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minLength.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minProperties.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minProperties.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minimum.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/minimum.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/multipleOf.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/multipleOf.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/not.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/not.mjs +37 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/oneOf.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/oneOf.mjs +58 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/pattern.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/pattern.mjs +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/patternProperties.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/patternProperties.mjs +44 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/prefixItems.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/prefixItems.mjs +35 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/properties.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/properties.mjs +75 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/propertyNames.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/propertyNames.mjs +39 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/recursiveRef.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/ref.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/ref.mjs +58 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/required.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/required.mjs +32 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/schema.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/schema.mjs +347 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/type.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/type.mjs +70 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +51 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +51 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/engine/uniqueItems.mjs +51 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/errors.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/errors.mjs +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/index.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/index.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/parse.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/parse.mjs +27 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/pointer/index.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/pointer/index.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/pointer/pointer.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/pointer/pointer.mjs +106 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/pointer/pointer_get.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/pointer/pointer_get.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/resolve/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/resolve/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/resolve/ref.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/resolve/ref.mjs +146 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/resolve/resolve.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/resolve/resolve.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/schema.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/schema.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/_canonical.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/_canonical.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/_comparer.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/_comparer.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/_elements.d.mts +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/_elements.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/additionalProperties.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/additionalProperties.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/allOf.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/allOf.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/anyOf.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/anyOf.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/const.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/const.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/enum.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/enum.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/if.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/if.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/items.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/items.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/oneOf.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/oneOf.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/patternProperties.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/patternProperties.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/prefixItems.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/prefixItems.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/properties.d.mts +32 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/properties.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/ref.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/ref.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/required.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/required.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/schema.d.mts +56 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/schema.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/static.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/static.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/type.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/type.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/unevaluatedProperties.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/static/unevaluatedProperties.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/_refine.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/_refine.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/additionalItems.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/additionalItems.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/additionalProperties.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/additionalProperties.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/allOf.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/allOf.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/anchor.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/anchor.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/anyOf.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/anyOf.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/const.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/const.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/contains.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/contains.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/contentEncoding.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/contentEncoding.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/contentMediaType.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/contentMediaType.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/default.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/default.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/defs.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/defs.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dependencies.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dependencies.mjs +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dependentRequired.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dependentRequired.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dependentSchemas.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dependentSchemas.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dynamicAnchor.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dynamicAnchor.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dynamicRef.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/dynamicRef.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/else.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/else.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/enum.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/enum.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/exclusiveMaximum.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/exclusiveMaximum.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/exclusiveMinimum.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/exclusiveMinimum.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/format.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/format.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/id.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/id.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/if.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/if.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/index.d.mts +53 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/index.mjs +59 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/items.d.mts +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/items.mjs +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maxContains.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maxContains.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maxItems.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maxItems.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maxLength.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maxLength.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maxProperties.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maxProperties.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maximum.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/maximum.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minContains.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minContains.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minItems.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minItems.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minLength.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minLength.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minProperties.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minProperties.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minimum.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/minimum.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/multipleOf.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/multipleOf.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/not.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/not.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/oneOf.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/oneOf.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/pattern.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/pattern.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/patternProperties.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/patternProperties.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/prefixItems.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/prefixItems.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/properties.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/properties.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/propertyNames.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/propertyNames.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/recursiveAnchor.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/recursiveAnchor.mjs +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/recursiveRef.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/recursiveRef.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/ref.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/ref.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/required.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/required.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/schema.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/schema.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/then.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/then.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/type.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/type.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/unevaluatedItems.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/unevaluatedItems.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/unevaluatedProperties.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/unevaluatedProperties.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/uniqueItems.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/schema/types/uniqueItems.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/arguments/arguments.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/arguments/arguments.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/arguments/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/arguments/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/environment/environment.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/environment/environment.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/environment/evaluate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/environment/evaluate.mjs +37 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/environment/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/environment/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/hashing/hash.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/hashing/hash.mjs +232 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/hashing/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/hashing/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/index.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/index.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/_config.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/_config.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/_locale.d.mts +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/_locale.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ar_001.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ar_001.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/bn_BD.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/bn_BD.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/cs_CZ.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/cs_CZ.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/de_DE.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/de_DE.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/el_GR.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/el_GR.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/en_US.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/en_US.mjs +39 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/es_419.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/es_419.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/es_AR.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/es_AR.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/es_ES.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/es_ES.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/es_MX.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/es_MX.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/fa_IR.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/fa_IR.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/fil_PH.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/fil_PH.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/fr_CA.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/fr_CA.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/fr_FR.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/fr_FR.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ha_NG.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ha_NG.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/hi_IN.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/hi_IN.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/hu_HU.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/hu_HU.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/id_ID.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/id_ID.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/it_IT.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/it_IT.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ja_JP.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ja_JP.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ko_KR.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ko_KR.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ms_MY.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ms_MY.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/nl_NL.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/nl_NL.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/pl_PL.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/pl_PL.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/pt_BR.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/pt_BR.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/pt_PT.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/pt_PT.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ro_RO.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ro_RO.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ru_RU.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ru_RU.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/sv_SE.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/sv_SE.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/sw_TZ.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/sw_TZ.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/th_TH.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/th_TH.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/tr_TR.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/tr_TR.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/uk_UA.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/uk_UA.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ur_PK.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/ur_PK.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/vi_VN.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/vi_VN.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/yo_NG.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/yo_NG.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/zh_Hans.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/zh_Hans.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/zh_Hant.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/locale/zh_Hant.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/assign.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/assign.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/clone.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/clone.mjs +110 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/create.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/create.mjs +30 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/discard.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/discard.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/memory.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/memory.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/metrics.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/metrics.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/update.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/memory/update.mjs +32 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/settings/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/settings/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/settings/settings.d.mts +71 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/settings/settings.mjs +34 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/system.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/system.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/unreachable/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/unreachable/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/unreachable/unreachable.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/system/unreachable/unreachable.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_add_immutable.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_add_immutable.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_add_optional.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_add_optional.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_add_readonly.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_add_readonly.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_remove_immutable.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_remove_immutable.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_remove_optional.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_remove_optional.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_remove_readonly.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/_remove_readonly.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/capitalize.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/capitalize.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/conditional.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/conditional.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/constructor_parameters.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/constructor_parameters.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/evaluate.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/evaluate.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/exclude.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/exclude.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/extract.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/extract.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/index.d.mts +30 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/index.mjs +30 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/indexed.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/indexed.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/instance_type.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/instance_type.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/interface.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/interface.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/keyof.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/keyof.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/lowercase.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/lowercase.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/mapped.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/mapped.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/module.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/module.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/non_nullable.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/non_nullable.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/omit.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/omit.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/parameters.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/parameters.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/partial.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/partial.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/pick.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/pick.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/readonly_object.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/readonly_object.mjs +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/required.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/required.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/return_type.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/return_type.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/uncapitalize.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/uncapitalize.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/uppercase.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/uppercase.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/with.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/action/with.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +53 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/call/instantiate.d.mts +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/call/instantiate.mjs +49 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/call/resolve_arguments.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/call/resolve_arguments.mjs +33 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/call/resolve_target.d.mts +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/call/resolve_target.mjs +27 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/conditional/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/conditional/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/conditional/instantiate.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/conditional/instantiate.mjs +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/constructor_parameters/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/constructor_parameters/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/candidates.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/candidates.mjs +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/check.d.mts +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/check.mjs +45 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/dependencies.d.mts +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/dependencies.mjs +47 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/extends.d.mts +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/extends.mjs +47 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/index.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/index.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/instantiate.d.mts +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/instantiate.mjs +31 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/target.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/cyclic/target.mjs +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/enum/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/enum/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/enum/typescript_enum_to_enum_values.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/enum/typescript_enum_to_enum_values.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +43 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/compare.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +34 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/composite.mjs +67 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +45 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +53 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/index.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/index.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/instantiate.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/instantiate.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/exclude/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/exclude/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/exclude/instantiate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/exclude/instantiate.mjs +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/exclude/operation.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/exclude/operation.mjs +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/extract/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/extract/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/extract/instantiate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/extract/instantiate.mjs +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/extract/operation.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/extract/operation.mjs +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/helpers/index.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/helpers/index.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/helpers/keys.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/helpers/keys.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/helpers/keys_to_indexer.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/helpers/keys_to_indexer.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/helpers/union.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/helpers/union.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/immutable/instantiate_add.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/immutable/instantiate_remove.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/immutable/instantiate_remove.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/index.d.mts +31 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/index.mjs +37 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_cyclic.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_cyclic.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_dependent.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_dependent.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_enum.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_enum.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_intersect.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_intersect.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_literal.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_literal.mjs +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_template_literal.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_template_literal.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_type.d.mts +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_type.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_union.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/from_union.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/to_indexable.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/to_indexable.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/to_indexable_keys.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexable/to_indexable_keys.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/array_indexer.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/array_indexer.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/from_array.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/from_array.mjs +35 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/from_object.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/from_object.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/from_tuple.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/from_tuple.mjs +35 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/from_type.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/from_type.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/instantiate.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/indexed/instantiate.mjs +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/instance_type/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/instance_type/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/instance_type/instantiate.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/instance_type/instantiate.mjs +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/instantiate.d.mts +178 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/instantiate.mjs +158 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/interface/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/interface/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/interface/instantiate.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/interface/instantiate.mjs +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/from_literal.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/from_literal.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/from_type.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/from_type.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/from_union.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/from_union.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/instantiate.d.mts +38 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/instantiate.mjs +52 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/mapping.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/intrinsics/mapping.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_any.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_any.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_array.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_array.mjs +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_object.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_object.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_record.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_record.mjs +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_tuple.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_tuple.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_type.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/from_type.mjs +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/instantiate.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/keyof/instantiate.mjs +29 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/mapped/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/mapped/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/mapped/instantiate.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/mapped/instantiate.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/mapped/mapped_operation.d.mts +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/mapped/mapped_operation.mjs +42 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/mapped/mapped_variants.d.mts +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/mapped/mapped_variants.mjs +39 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/module/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/module/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/module/instantiate.d.mts +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/module/instantiate.mjs +36 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/non_nullable/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/non_nullable/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/non_nullable/instantiate.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/non_nullable/instantiate.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/collapse.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/collapse.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_cyclic.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_cyclic.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_dependent.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_dependent.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_intersect.d.mts +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_intersect.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_object.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_object.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_tuple.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_tuple.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_type.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_type.mjs +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_union.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/from_union.mjs +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/object/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/omit/from_type.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/omit/from_type.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/omit/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/omit/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/omit/instantiate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/omit/instantiate.mjs +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/optional/instantiate_add.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/optional/instantiate_remove.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/optional/instantiate_remove.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/parameters/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/parameters/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/parameters/instantiate.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/parameters/instantiate.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_cyclic.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_cyclic.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_dependent.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_dependent.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_intersect.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_intersect.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_object.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_object.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_type.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_type.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_union.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/from_union.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/instantiate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/partial/instantiate.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/patterns/index.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/patterns/index.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/patterns/pattern.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/patterns/pattern.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/patterns/template.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/patterns/template.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/pick/from_type.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/pick/from_type.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/pick/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/pick/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/pick/instantiate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/pick/instantiate.mjs +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/priority/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/priority/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/priority/priority.d.mts +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/priority/priority.mjs +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly/instantiate_add.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly/instantiate_remove.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly/instantiate_remove.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_array.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_array.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_cyclic.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_cyclic.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_dependent.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_dependent.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_intersect.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_intersect.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_object.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_object.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_tuple.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_tuple.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_type.d.mts +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_type.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_union.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/from_union.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/instantiate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/readonly_object/instantiate.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key.d.mts +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key.mjs +40 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_any.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_any.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_boolean.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_boolean.mjs +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_enum.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_enum.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_integer.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_integer.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_intersect.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_intersect.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_literal.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_literal.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_number.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_number.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_string.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_string.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_template_literal.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_template_literal.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_union.d.mts +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/from_key_union.mjs +39 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/instantiate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/instantiate.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/record_create.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/record/record_create.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/ref/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/ref/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/ref/instantiate.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/ref/instantiate.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_cyclic.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_cyclic.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_dependent.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_dependent.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_intersect.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_intersect.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_object.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_object.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_type.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_type.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_union.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/from_union.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/instantiate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/required/instantiate.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/rest/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/rest/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/rest/spread.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/rest/spread.mjs +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/return_type/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/return_type/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/return_type/instantiate.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/return_type/instantiate.mjs +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/create.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/create.mjs +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/decode.d.mts +30 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/decode.mjs +81 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/encode.d.mts +33 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/encode.mjs +81 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/index.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/index.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/instantiate.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/instantiate.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/is_finite.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/is_finite.mjs +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/is_pattern.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/is_pattern.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/static.d.mts +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/template_literal/static.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/this/expand_this.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/this/expand_this.mjs +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/tuple/to_object.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/tuple/to_object.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/with/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/with/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/with/instantiate.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/engine/with/instantiate.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/any.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/any.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/array.d.mts +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/array.mjs +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/bigint.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/bigint.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/boolean.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/boolean.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/constructor.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/constructor.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/dependent.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/dependent.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/enum.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/enum.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/extends.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/extends.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/extends_left.d.mts +53 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/extends_left.mjs +80 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/extends_right.d.mts +27 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/extends_right.mjs +49 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/function.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/function.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/index.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/index.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/inference.d.mts +34 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/inference.mjs +62 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/integer.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/integer.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/intersect.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/intersect.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/literal.d.mts +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/literal.mjs +44 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/never.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/never.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/null.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/null.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/number.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/number.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/object.d.mts +32 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/object.mjs +109 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/parameters.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/parameters.mjs +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/record.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/record.mjs +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/result.d.mts +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/result.mjs +36 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/return_type.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/return_type.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/string.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/string.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/symbol.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/symbol.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/template_literal.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/template_literal.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/tuple.d.mts +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/tuple.mjs +61 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/undefined.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/undefined.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/union.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/union.mjs +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/unknown.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/unknown.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/void.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/extends/void.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/index.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/index.mjs +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/mapping.d.mts +353 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/mapping.mjs +535 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/parser.d.mts +262 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/parser.mjs +136 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/script.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/script.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/bigint.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/bigint.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/const.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/const.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/ident.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/ident.mjs +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/index.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/index.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/integer.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/integer.mjs +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/char.d.mts +75 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/char.mjs +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/guard.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/guard.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/many.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/many.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/match.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/match.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/optional.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/optional.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/take.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/take.mjs +30 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/trim.d.mts +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/internal/trim.mjs +34 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/number.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/number.mjs +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/rest.d.mts +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/rest.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/span.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/span.mjs +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/string.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/string.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/unsigned_integer.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/unsigned_integer.mjs +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/unsigned_number.d.mts +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/unsigned_number.mjs +38 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/until.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/until.mjs +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/until_1.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/script/token/until_1.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_codec.d.mts +30 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_codec.mjs +60 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_immutable.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_immutable.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_optional.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_optional.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_readonly.d.mts +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_readonly.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_refine.d.mts +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/_refine.mjs +36 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/any.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/any.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/array.d.mts +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/array.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/bigint.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/bigint.mjs +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/boolean.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/boolean.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/call.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/call.mjs +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/constructor.d.mts +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/constructor.mjs +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/cyclic.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/cyclic.mjs +29 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/deferred.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/deferred.mjs +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/dependent.d.mts +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/dependent.mjs +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/enum.d.mts +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/enum.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/function.d.mts +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/function.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/generic.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/generic.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/identifier.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/identifier.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/index.d.mts +45 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/index.mjs +51 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/infer.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/infer.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/integer.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/integer.mjs +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/intersect.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/intersect.mjs +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/literal.d.mts +31 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/literal.mjs +62 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/never.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/never.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/null.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/null.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/number.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/number.mjs +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/object.d.mts +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/object.mjs +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/parameter.d.mts +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/parameter.mjs +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/properties.d.mts +43 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/properties.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/record.d.mts +52 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/record.mjs +66 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/ref.d.mts +19 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/ref.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/rest.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/rest.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/schema.d.mts +176 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/schema.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/static.d.mts +45 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/static.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/string.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/string.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/symbol.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/symbol.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/template_literal.d.mts +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/template_literal.mjs +37 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/this.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/this.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/tuple.d.mts +38 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/tuple.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/undefined.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/undefined.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/union.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/union.mjs +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/unknown.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/unknown.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/unsafe.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/unsafe.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/void.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/type/types/void.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/typebox.d.mts +69 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/typebox.mjs +85 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/assert/assert.d.mts +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/assert/assert.mjs +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/assert/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/assert/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/check/check.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/check/check.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/check/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/check/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/additional.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/additional.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/clean.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/clean.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_array.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_array.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_cyclic.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_cyclic.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_intersect.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_intersect.mjs +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_object.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_object.mjs +31 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_record.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_record.mjs +32 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_ref.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_ref.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_tuple.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_tuple.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_type.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_type.mjs +21 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_union.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/from_union.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clean/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clone/clone.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clone/clone.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clone/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/clone/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/callback.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/callback.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/decode.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/decode.mjs +52 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/encode.d.mts +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/encode.mjs +52 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_array.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_array.mjs +35 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_cyclic.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_cyclic.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_intersect.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_intersect.mjs +58 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_object.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_object.mjs +42 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_record.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_record.mjs +39 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_ref.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_ref.mjs +31 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_tuple.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_tuple.mjs +32 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_type.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_type.mjs +22 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_union.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/from_union.mjs +39 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/has.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/has.mjs +93 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/index.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/codec/index.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/convert.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/convert.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_additional.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_additional.mjs +18 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_array.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_array.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_bigint.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_bigint.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_boolean.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_boolean.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_cyclic.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_cyclic.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_enum.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_enum.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_integer.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_integer.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_intersect.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_intersect.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_literal.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_literal.mjs +44 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_null.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_null.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_number.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_number.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_object.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_object.mjs +28 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_record.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_record.mjs +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_ref.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_ref.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_string.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_string.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_template_literal.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_template_literal.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_tuple.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_tuple.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_type.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_type.mjs +43 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_undefined.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_undefined.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_union.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_union.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_void.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/from_void.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_array.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_array.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_bigint.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_bigint.mjs +45 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_boolean.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_boolean.mjs +41 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_null.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_null.mjs +44 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_number.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_number.mjs +44 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_result.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_result.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_string.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_string.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_undefined.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/convert/try/try_undefined.mjs +44 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/create.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/create.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/error.d.mts +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/error.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_array.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_array.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_bigint.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_bigint.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_boolean.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_boolean.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_constructor.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_constructor.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_cyclic.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_cyclic.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_default.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_default.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_enum.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_enum.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_function.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_function.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_integer.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_integer.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_intersect.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_intersect.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_literal.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_literal.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_never.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_never.mjs +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_null.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_null.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_number.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_number.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_object.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_object.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_record.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_record.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_ref.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_ref.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_string.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_string.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_symbol.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_symbol.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_template_literal.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_template_literal.mjs +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_tuple.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_tuple.mjs +5 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_type.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_type.mjs +61 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_undefined.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_undefined.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_union.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_union.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_void.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/from_void.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/index.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/create/index.mjs +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/default.d.mts +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/default.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_array.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_array.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_cyclic.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_cyclic.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_default.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_default.mjs +13 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_intersect.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_intersect.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_object.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_object.mjs +32 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_record.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_record.mjs +26 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_ref.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_ref.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_tuple.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_tuple.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_type.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_type.mjs +25 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_union.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/from_union.mjs +14 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/default/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/delta/diff.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/delta/diff.mjs +135 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/delta/edit.d.mts +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/delta/edit.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/delta/index.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/delta/index.mjs +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/delta/patch.d.mts +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/delta/patch.mjs +42 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/equal/equal.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/equal/equal.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/equal/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/equal/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/errors/errors.d.mts +16 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/errors/errors.mjs +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/errors/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/errors/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/hash/hash.d.mts +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/hash/hash.mjs +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/hash/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/hash/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/index.d.mts +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/index.mjs +29 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/parse/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/parse/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/parse/parse.d.mts +11 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/parse/parse.mjs +47 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/pipeline/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/pipeline/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/pipeline/pipeline.d.mts +10 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/pipeline/pipeline.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/pointer/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/pointer/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/error.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/error.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_array.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_array.mjs +39 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_enum.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_enum.mjs +6 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_intersect.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_intersect.mjs +8 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_object.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_object.mjs +33 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_record.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_record.mjs +33 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_ref.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_ref.mjs +9 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_template_literal.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_template_literal.mjs +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_tuple.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_tuple.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_type.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_type.mjs +88 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_union.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_union.mjs +24 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_unknown.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/from_unknown.mjs +12 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/index.d.mts +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/index.mjs +1 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/repair.d.mts +17 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/repair/repair.mjs +20 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/shared/index.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/shared/index.mjs +4 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/shared/optional_undefined.d.mts +2 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/shared/optional_undefined.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/shared/union_priority_sort.d.mts +7 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/shared/union_priority_sort.mjs +72 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/shared/union_score_select.d.mts +3 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/shared/union_score_select.mjs +51 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/value.d.mts +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/build/value/value.mjs +15 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/license +23 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/package.json +87 -0
- package/node_modules/@earendil-works/pi-protocol/node_modules/typebox/readme.md +370 -0
- package/node_modules/@earendil-works/pi-protocol/package.json +48 -0
- package/node_modules/@earendil-works/pi-telemetry/README.md +464 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/index.d.ts +194 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/index.js +18 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/index.js.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/memory.d.ts +26 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/memory.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/memory.js +154 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/memory.js.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/noop.d.ts +4 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/noop.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/noop.js +18 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/noop.js.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/conformance.d.ts +4 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/conformance.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/conformance.js +294 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/conformance.js.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/index.d.ts +3 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/index.js +2 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/index.js.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/types.d.ts +16 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/types.js +2 -0
- package/node_modules/@earendil-works/pi-telemetry/dist/testing/types.js.map +1 -0
- package/node_modules/@earendil-works/pi-telemetry/package.json +47 -0
- package/node_modules/@earendil-works/pi-tui/README.md +77 -14
- package/node_modules/@earendil-works/pi-tui/dist/components/alt-screen-flash.d.ts +13 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/alt-screen-flash.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/alt-screen-flash.js +37 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/alt-screen-flash.js.map +1 -0
- 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 +11 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.d.ts +7 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.js +43 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +4 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +128 -2
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.d.ts +51 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.js +173 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js +3 -6
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/stack.d.ts +32 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/stack.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/stack.js +111 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/stack.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.d.ts +8 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.js +26 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +9 -2
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.js +10 -2
- package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +54 -4
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.js +39 -4
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/latex.d.ts +10 -0
- package/node_modules/@earendil-works/pi-tui/dist/latex.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/latex.js +1264 -0
- package/node_modules/@earendil-works/pi-tui/dist/latex.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/layout-node.d.ts +40 -0
- package/node_modules/@earendil-works/pi-tui/dist/layout-node.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/layout-node.js +6 -0
- package/node_modules/@earendil-works/pi-tui/dist/layout-node.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/layout.d.ts +40 -0
- package/node_modules/@earendil-works/pi-tui/dist/layout.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/layout.js +314 -0
- package/node_modules/@earendil-works/pi-tui/dist/layout.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +10 -3
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal-colors.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal-colors.js +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal-colors.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts +21 -0
- package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +128 -3
- package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js +10 -7
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.d.ts +97 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js +902 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui-main-screen.d.ts +39 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui-main-screen.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui-main-screen.js +533 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui-main-screen.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +75 -38
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +98 -573
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts +11 -0
- package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/utils.js +119 -6
- package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/native/darwin/README.md +20 -0
- package/node_modules/@earendil-works/pi-tui/native/darwin/build.sh +62 -0
- package/node_modules/@earendil-works/pi-tui/native/darwin/src/darwin-modifiers.c +70 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/README.md +22 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/build.mjs +229 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/src/win32-console-mode.c +119 -0
- package/node_modules/@earendil-works/pi-tui/package.json +9 -1
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/child_process.d.ts +0 -1
- package/node_modules/@types/node/crypto.d.ts +6 -6
- package/node_modules/@types/node/dns/promises.d.ts +5 -5
- package/node_modules/@types/node/dns.d.ts +5 -5
- package/node_modules/@types/node/fs.d.ts +7 -0
- package/node_modules/@types/node/http.d.ts +30 -0
- package/node_modules/@types/node/http2.d.ts +4 -4
- package/node_modules/@types/node/os.d.ts +30 -30
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/node/perf_hooks.d.ts +2 -1
- package/node_modules/@types/node/process.d.ts +42 -43
- package/node_modules/@types/node/quic.d.ts +1049 -84
- package/node_modules/@types/node/sqlite.d.ts +14 -1
- package/node_modules/@types/node/stream/iter.d.ts +3 -2
- package/node_modules/@types/node/test.d.ts +61 -0
- package/node_modules/@types/node/v8.d.ts +20 -23
- package/node_modules/grok-mermaid/CHANGELOG.md +40 -0
- package/node_modules/grok-mermaid/LICENSE +205 -0
- package/node_modules/grok-mermaid/README.md +191 -0
- package/node_modules/grok-mermaid/dist/ansi.d.ts +16 -0
- package/node_modules/grok-mermaid/dist/ansi.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/ansi.js +23 -0
- package/node_modules/grok-mermaid/dist/ansi.js.map +1 -0
- package/node_modules/grok-mermaid/dist/canvas.d.ts +87 -0
- package/node_modules/grok-mermaid/dist/canvas.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/canvas.js +366 -0
- package/node_modules/grok-mermaid/dist/canvas.js.map +1 -0
- package/node_modules/grok-mermaid/dist/graph.d.ts +74 -0
- package/node_modules/grok-mermaid/dist/graph.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/graph.js +91 -0
- package/node_modules/grok-mermaid/dist/graph.js.map +1 -0
- package/node_modules/grok-mermaid/dist/index.d.ts +32 -0
- package/node_modules/grok-mermaid/dist/index.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/index.js +100 -0
- package/node_modules/grok-mermaid/dist/index.js.map +1 -0
- package/node_modules/grok-mermaid/dist/labels.d.ts +62 -0
- package/node_modules/grok-mermaid/dist/labels.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/labels.js +324 -0
- package/node_modules/grok-mermaid/dist/labels.js.map +1 -0
- package/node_modules/grok-mermaid/dist/layout-seq.d.ts +12 -0
- package/node_modules/grok-mermaid/dist/layout-seq.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/layout-seq.js +194 -0
- package/node_modules/grok-mermaid/dist/layout-seq.js.map +1 -0
- package/node_modules/grok-mermaid/dist/layout.d.ts +87 -0
- package/node_modules/grok-mermaid/dist/layout.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/layout.js +881 -0
- package/node_modules/grok-mermaid/dist/layout.js.map +1 -0
- package/node_modules/grok-mermaid/dist/parse.d.ts +83 -0
- package/node_modules/grok-mermaid/dist/parse.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/parse.js +1108 -0
- package/node_modules/grok-mermaid/dist/parse.js.map +1 -0
- package/node_modules/grok-mermaid/dist/source-box.d.ts +18 -0
- package/node_modules/grok-mermaid/dist/source-box.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/source-box.js +78 -0
- package/node_modules/grok-mermaid/dist/source-box.js.map +1 -0
- package/node_modules/grok-mermaid/dist/types.d.ts +42 -0
- package/node_modules/grok-mermaid/dist/types.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/types.js +1 -0
- package/node_modules/grok-mermaid/dist/types.js.map +1 -0
- package/node_modules/grok-mermaid/dist/width-data.d.ts +2 -0
- package/node_modules/grok-mermaid/dist/width-data.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/width-data.js +994 -0
- package/node_modules/grok-mermaid/dist/width-data.js.map +1 -0
- package/node_modules/grok-mermaid/dist/width.d.ts +18 -0
- package/node_modules/grok-mermaid/dist/width.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/width.js +76 -0
- package/node_modules/grok-mermaid/dist/width.js.map +1 -0
- package/node_modules/grok-mermaid/package.json +49 -0
- package/node_modules/grok-mermaid/src/ansi.ts +34 -0
- package/node_modules/grok-mermaid/src/canvas.ts +373 -0
- package/node_modules/grok-mermaid/src/graph.ts +142 -0
- package/node_modules/grok-mermaid/src/index.ts +104 -0
- package/node_modules/grok-mermaid/src/labels.ts +326 -0
- package/node_modules/grok-mermaid/src/layout-seq.ts +203 -0
- package/node_modules/grok-mermaid/src/layout.ts +1015 -0
- package/node_modules/grok-mermaid/src/parse.ts +1150 -0
- package/node_modules/grok-mermaid/src/source-box.ts +89 -0
- package/node_modules/grok-mermaid/src/types.ts +43 -0
- package/node_modules/grok-mermaid/src/width-data.ts +993 -0
- package/node_modules/grok-mermaid/src/width.ts +74 -0
- package/node_modules/undici/README.md +8 -2
- package/node_modules/undici/docs/docs/api/Agent.md +248 -44
- package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
- package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
- package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
- package/node_modules/undici/docs/docs/api/Client.md +369 -179
- package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
- package/node_modules/undici/docs/docs/api/Connector.md +118 -36
- package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
- package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
- package/node_modules/undici/docs/docs/api/Debug.md +34 -18
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
- package/node_modules/undici/docs/docs/api/Dispatcher.md +485 -1102
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +101 -87
- package/node_modules/undici/docs/docs/api/Errors.md +503 -40
- package/node_modules/undici/docs/docs/api/EventSource.md +294 -32
- package/node_modules/undici/docs/docs/api/Fetch.md +680 -31
- package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -98
- package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
- package/node_modules/undici/docs/docs/api/Interceptors.md +414 -0
- package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
- package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
- package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
- package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
- package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
- package/node_modules/undici/docs/docs/api/MockPool.md +321 -258
- package/node_modules/undici/docs/docs/api/Pool.md +235 -43
- package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
- package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
- package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -63
- package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -26
- package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -77
- package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
- package/node_modules/undici/docs/docs/api/SnapshotAgent.md +264 -542
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +162 -187
- package/node_modules/undici/docs/docs/api/Util.md +68 -11
- package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
- package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
- package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
- package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
- package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +6 -4
- package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
- package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
- package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
- package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
- package/node_modules/undici/docs/docs/{GettingStarted.md → getting-started.md} +22 -19
- package/node_modules/undici/docs/docs/index.md +784 -0
- package/node_modules/undici/docs/docs/site.json +125 -0
- package/node_modules/undici/docs/docs/type-map.json +79 -0
- package/node_modules/undici/lib/api/api-request.js +7 -1
- package/node_modules/undici/lib/api/readable.js +47 -2
- package/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
- package/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
- package/node_modules/undici/lib/core/errors.js +20 -0
- package/node_modules/undici/lib/core/request.js +14 -3
- package/node_modules/undici/lib/core/util.js +30 -2
- package/node_modules/undici/lib/dispatcher/agent.js +3 -3
- package/node_modules/undici/lib/dispatcher/client-h1.js +65 -8
- package/node_modules/undici/lib/dispatcher/client-h2.js +265 -142
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +40 -6
- package/node_modules/undici/lib/global.js +36 -16
- package/node_modules/undici/lib/handler/cache-handler.js +269 -61
- package/node_modules/undici/lib/handler/cache-revalidation-handler.js +13 -3
- package/node_modules/undici/lib/handler/redirect-handler.js +6 -2
- package/node_modules/undici/lib/handler/retry-handler.js +87 -23
- package/node_modules/undici/lib/interceptor/cache.js +159 -52
- package/node_modules/undici/lib/interceptor/decompress.js +9 -2
- package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/node_modules/undici/lib/mock/mock-utils.js +39 -10
- package/node_modules/undici/lib/util/cache.js +372 -68
- package/node_modules/undici/lib/util/date.js +23 -6
- package/node_modules/undici/lib/web/cookies/parse.js +3 -2
- package/node_modules/undici/lib/web/cookies/util.js +79 -9
- package/node_modules/undici/lib/web/eventsource/util.js +1 -1
- package/node_modules/undici/lib/web/fetch/body.js +2 -1
- package/node_modules/undici/lib/web/fetch/constants.js +1 -1
- package/node_modules/undici/lib/web/fetch/index.js +11 -2
- package/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/node_modules/undici/lib/web/fetch/util.js +4 -1
- package/node_modules/undici/package.json +2 -2
- package/node_modules/undici/types/client.d.ts +3 -3
- package/node_modules/undici/types/cookies.d.ts +1 -1
- package/node_modules/undici/types/dispatcher.d.ts +3 -3
- package/node_modules/undici/types/errors.d.ts +10 -0
- package/node_modules/undici/types/handlers.d.ts +2 -0
- package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/node_modules/undici/types/proxy-agent.d.ts +7 -0
- package/package.json +8 -8
- package/src/prism-extensions/integrations/ai-memory-errors.ts +53 -0
- package/src/prism-extensions/integrations/ai-memory-system.ts +357 -8
- package/src/prism-extensions/integrations/research-tools.ts +4 -2
- package/src/prism-extensions/integrations/youtube.ts +292 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts +0 -26
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js +0 -103
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -42
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js +0 -293
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.d.ts +0 -18
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.js +0 -42
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.d.ts +0 -33
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.js +0 -168
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.d.ts +0 -11
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.js +0 -39
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.js.map +0 -1
package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js
CHANGED
|
@@ -6,7 +6,8 @@ import * as crypto from "node:crypto";
|
|
|
6
6
|
import * as fs from "node:fs";
|
|
7
7
|
import * as os from "node:os";
|
|
8
8
|
import * as path from "node:path";
|
|
9
|
-
import
|
|
9
|
+
import * as TuiLayouts from "@earendil-works/pi-tui";
|
|
10
|
+
import { CombinedAutocompleteProvider, Container, fuzzyFilter, getCapabilities, hyperlink, Markdown, matchesKey, ProcessTerminal, Spacer, setKeybindings, Text, TruncatedText, TuiAltScreen, TuiMainScreen, visibleWidth, } from "@earendil-works/pi-tui";
|
|
10
11
|
import chalk from "chalk";
|
|
11
12
|
import { spawn, spawnSync } from "child_process";
|
|
12
13
|
import { APP_NAME, APP_TITLE, CONFIG_DIR_NAME, getAgentDir, getAuthPath, getDebugLogPath, getDocsPath, getShareViewerUrl, VERSION, } from "../../config.js";
|
|
@@ -17,7 +18,8 @@ import { FooterDataProvider } from "../../core/footer-data-provider.js";
|
|
|
17
18
|
import { configureHttpDispatcher, formatHttpIdleTimeoutMs } from "../../core/http-dispatcher.js";
|
|
18
19
|
import { KeybindingsManager } from "../../core/keybindings.js";
|
|
19
20
|
import { createCompactionSummaryMessage } from "../../core/messages.js";
|
|
20
|
-
import { defaultModelPerProvider, findExactModelReferenceMatch,
|
|
21
|
+
import { defaultModelPerProvider, findExactModelReferenceMatch, resolveModelScopeFromModels, } from "../../core/model-resolver.js";
|
|
22
|
+
import { CredentialSynchronizationError } from "../../core/model-runtime.js";
|
|
21
23
|
import { DefaultPackageManager } from "../../core/package-manager.js";
|
|
22
24
|
import { formatMissingSessionCwdPrompt, MissingSessionCwdError } from "../../core/session-cwd.js";
|
|
23
25
|
import { SessionManager, sessionEntryToContextMessages } from "../../core/session-manager.js";
|
|
@@ -29,6 +31,7 @@ import { getChangelogPath, getNewEntries, normalizeChangelogLinks, parseChangelo
|
|
|
29
31
|
import { copyToClipboard, readClipboardText } from "../../utils/clipboard.js";
|
|
30
32
|
import { extensionForImageMimeType, readClipboardImage } from "../../utils/clipboard-image.js";
|
|
31
33
|
import { parseGitUrl } from "../../utils/git.js";
|
|
34
|
+
import { openBrowser } from "../../utils/open-browser.js";
|
|
32
35
|
import { getCwdRelativePath } from "../../utils/paths.js";
|
|
33
36
|
import { getPiUserAgent } from "../../utils/pi-user-agent.js";
|
|
34
37
|
import { killTrackedDetachedChildren } from "../../utils/shell.js";
|
|
@@ -52,6 +55,7 @@ import { ExtensionSelectorComponent } from "./components/extension-selector.js";
|
|
|
52
55
|
import { FooterComponent, formatTokens } from "./components/footer.js";
|
|
53
56
|
import { formatKeyText, keyDisplayText, keyHint, keyText, rawKeyHint } from "./components/keybinding-hints.js";
|
|
54
57
|
import { LoginDialogComponent } from "./components/login-dialog.js";
|
|
58
|
+
import { createMermaidMarkdownTransformer } from "./components/mermaid.js";
|
|
55
59
|
import { ModelSelectorComponent } from "./components/model-selector.js";
|
|
56
60
|
import { formatAuthSelectorProviderType, OAuthSelectorComponent, } from "./components/oauth-selector.js";
|
|
57
61
|
import { ScopedModelsSelectorComponent } from "./components/scoped-models-selector.js";
|
|
@@ -161,11 +165,58 @@ function formatLoginProviderCompletionDescription(provider) {
|
|
|
161
165
|
const authTypes = provider.authTypes.map(formatAuthSelectorProviderType).join("/");
|
|
162
166
|
return provider.name === provider.id ? authTypes : `${provider.name} · ${authTypes}`;
|
|
163
167
|
}
|
|
168
|
+
/** Composition root for selecting the interactive terminal renderer. */
|
|
169
|
+
export function createInteractiveTui(options) {
|
|
170
|
+
const terminal = options.terminal ?? new ProcessTerminal();
|
|
171
|
+
if (options.tuiMode === "fullscreen") {
|
|
172
|
+
return new TuiAltScreen(terminal, options.showHardwareCursor, options.logDirectory, {
|
|
173
|
+
openUrl: openBrowser,
|
|
174
|
+
onRightClickPaste: options.onRightClickPaste,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return new TuiMainScreen(terminal, options.showHardwareCursor, options.logDirectory);
|
|
178
|
+
}
|
|
179
|
+
/** Stable reference for components while InteractiveMode replaces the active renderer. */
|
|
180
|
+
export function createInteractiveTuiReference(getTui) {
|
|
181
|
+
return new Proxy({}, {
|
|
182
|
+
get: (_target, property) => {
|
|
183
|
+
const tui = getTui();
|
|
184
|
+
const value = Reflect.get(tui, property, tui);
|
|
185
|
+
if (typeof value !== "function")
|
|
186
|
+
return value;
|
|
187
|
+
let methodTui = tui;
|
|
188
|
+
let method = value;
|
|
189
|
+
return (...args) => {
|
|
190
|
+
const currentTui = getTui();
|
|
191
|
+
if (currentTui !== methodTui) {
|
|
192
|
+
const currentMethod = Reflect.get(currentTui, property, currentTui);
|
|
193
|
+
if (typeof currentMethod !== "function") {
|
|
194
|
+
throw new TypeError(`TUI property ${String(property)} is not callable`);
|
|
195
|
+
}
|
|
196
|
+
methodTui = currentTui;
|
|
197
|
+
method = currentMethod;
|
|
198
|
+
}
|
|
199
|
+
return Reflect.apply(method, methodTui, args);
|
|
200
|
+
};
|
|
201
|
+
},
|
|
202
|
+
set: (_target, property, value) => {
|
|
203
|
+
const tui = getTui();
|
|
204
|
+
return Reflect.set(tui, property, value, tui);
|
|
205
|
+
},
|
|
206
|
+
has: (_target, property) => Reflect.has(getTui(), property),
|
|
207
|
+
getPrototypeOf: () => Reflect.getPrototypeOf(getTui()),
|
|
208
|
+
});
|
|
209
|
+
}
|
|
164
210
|
export class InteractiveMode {
|
|
165
211
|
runtimeHost;
|
|
212
|
+
renderer;
|
|
166
213
|
ui;
|
|
214
|
+
mainScreenRenderState;
|
|
167
215
|
loadedResourcesContainer;
|
|
168
216
|
chatContainer;
|
|
217
|
+
documentContainer;
|
|
218
|
+
transcriptScrollView;
|
|
219
|
+
fullscreenLayoutRoot;
|
|
169
220
|
pendingMessagesContainer;
|
|
170
221
|
statusContainer;
|
|
171
222
|
defaultEditor;
|
|
@@ -175,7 +226,10 @@ export class InteractiveMode {
|
|
|
175
226
|
autocompleteProviderWrappers = [];
|
|
176
227
|
fdPath;
|
|
177
228
|
editorContainer;
|
|
229
|
+
activeSelectorToken;
|
|
230
|
+
activeSelectorDispose;
|
|
178
231
|
footer;
|
|
232
|
+
footerContainer;
|
|
179
233
|
footerDataProvider;
|
|
180
234
|
// Stored so the same manager can be injected into custom editors, selectors, and extension UI.
|
|
181
235
|
keybindings;
|
|
@@ -209,6 +263,10 @@ export class InteractiveMode {
|
|
|
209
263
|
// Thinking block visibility state
|
|
210
264
|
hideThinkingBlock = false;
|
|
211
265
|
outputPad = 1;
|
|
266
|
+
mermaidMarkdownTransformer = createMermaidMarkdownTransformer({
|
|
267
|
+
getMode: () => this.settingsManager.getMermaidRenderingMode(),
|
|
268
|
+
theme,
|
|
269
|
+
});
|
|
212
270
|
// Skill commands: command name -> skill file path
|
|
213
271
|
skillCommands = new Map();
|
|
214
272
|
// Agent subscription unsubscribe function
|
|
@@ -232,7 +290,7 @@ export class InteractiveMode {
|
|
|
232
290
|
extensionSelector = undefined;
|
|
233
291
|
extensionInput = undefined;
|
|
234
292
|
extensionEditor = undefined;
|
|
235
|
-
|
|
293
|
+
extensionTerminalInputSubscriptions = new Set();
|
|
236
294
|
// Extension widgets (components rendered above/below the editor)
|
|
237
295
|
extensionWidgetsAbove = new Map();
|
|
238
296
|
extensionWidgetsBelow = new Map();
|
|
@@ -247,6 +305,9 @@ export class InteractiveMode {
|
|
|
247
305
|
// Custom header from extension (undefined = use built-in header)
|
|
248
306
|
customHeader = undefined;
|
|
249
307
|
options;
|
|
308
|
+
onRightClickPaste = () => {
|
|
309
|
+
void this.handleRightClickPaste();
|
|
310
|
+
};
|
|
250
311
|
autoTrustOnReloadCwd;
|
|
251
312
|
themeController;
|
|
252
313
|
// Convenience accessors
|
|
@@ -264,7 +325,8 @@ export class InteractiveMode {
|
|
|
264
325
|
}
|
|
265
326
|
constructor(runtimeHost, options = {}) {
|
|
266
327
|
this.runtimeHost = runtimeHost;
|
|
267
|
-
|
|
328
|
+
const tuiMode = options.tuiMode ?? this.settingsManager.getTuiMode();
|
|
329
|
+
this.options = { ...options, tuiMode };
|
|
268
330
|
this.autoTrustOnReloadCwd = options.autoTrustOnReloadCwd;
|
|
269
331
|
this.runtimeHost.setBeforeSessionInvalidate(() => {
|
|
270
332
|
this.resetExtensionUI();
|
|
@@ -273,11 +335,21 @@ export class InteractiveMode {
|
|
|
273
335
|
await this.rebindCurrentSession({ renderBeforeBind: true });
|
|
274
336
|
});
|
|
275
337
|
this.version = VERSION;
|
|
276
|
-
this.
|
|
338
|
+
this.renderer = createInteractiveTui({
|
|
339
|
+
tuiMode,
|
|
340
|
+
showHardwareCursor: this.settingsManager.getShowHardwareCursor(),
|
|
341
|
+
logDirectory: getAgentDir(),
|
|
342
|
+
onRightClickPaste: this.onRightClickPaste,
|
|
343
|
+
});
|
|
344
|
+
this.ui = createInteractiveTuiReference(() => this.renderer);
|
|
277
345
|
this.ui.setClearOnShrink(this.settingsManager.getClearOnShrink());
|
|
278
346
|
this.headerContainer = new Container();
|
|
279
347
|
this.loadedResourcesContainer = new Container();
|
|
280
348
|
this.chatContainer = new Container();
|
|
349
|
+
this.documentContainer = new Container();
|
|
350
|
+
this.documentContainer.addChild(this.headerContainer);
|
|
351
|
+
this.documentContainer.addChild(this.loadedResourcesContainer);
|
|
352
|
+
this.documentContainer.addChild(this.chatContainer);
|
|
281
353
|
this.pendingMessagesContainer = new Container();
|
|
282
354
|
this.statusContainer = new Container();
|
|
283
355
|
this.widgetContainerAbove = new Container();
|
|
@@ -296,6 +368,8 @@ export class InteractiveMode {
|
|
|
296
368
|
this.footerDataProvider = new FooterDataProvider(this.sessionManager.getCwd());
|
|
297
369
|
this.footer = new FooterComponent(this.session, this.footerDataProvider);
|
|
298
370
|
this.footer.setAutoCompactEnabled(this.session.autoCompactionEnabled);
|
|
371
|
+
this.footerContainer = new Container();
|
|
372
|
+
this.footerContainer.addChild(this.footer);
|
|
299
373
|
// Load hide thinking block setting
|
|
300
374
|
this.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();
|
|
301
375
|
this.outputPad = this.settingsManager.getOutputPad();
|
|
@@ -351,11 +425,10 @@ export class InteractiveMode {
|
|
|
351
425
|
}));
|
|
352
426
|
const modelCommand = slashCommands.find((command) => command.name === "model");
|
|
353
427
|
if (modelCommand) {
|
|
354
|
-
modelCommand.getArgumentCompletions =
|
|
355
|
-
// Get available models (scoped or from registry)
|
|
428
|
+
modelCommand.getArgumentCompletions = (prefix) => {
|
|
356
429
|
const models = this.session.scopedModels.length > 0
|
|
357
430
|
? this.session.scopedModels.map((s) => s.model)
|
|
358
|
-
:
|
|
431
|
+
: this.session.modelRuntime.getAvailableSnapshot();
|
|
359
432
|
if (models.length === 0)
|
|
360
433
|
return null;
|
|
361
434
|
// Create items with provider/id format
|
|
@@ -459,6 +532,73 @@ export class InteractiveMode {
|
|
|
459
532
|
}
|
|
460
533
|
this.chatContainer.addChild(new DynamicBorder());
|
|
461
534
|
}
|
|
535
|
+
mountInteractiveTui(tui, components) {
|
|
536
|
+
for (const component of components)
|
|
537
|
+
tui.addChild(component);
|
|
538
|
+
if (TuiLayouts.isViewportTUI(tui)) {
|
|
539
|
+
if (!this.fullscreenLayoutRoot)
|
|
540
|
+
throw new Error("Fullscreen layout is not initialized");
|
|
541
|
+
tui.setLayoutRoot(this.fullscreenLayoutRoot);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
stopInteractiveTui() {
|
|
545
|
+
if (this.renderer.mode === "fullscreen") {
|
|
546
|
+
while (this.renderer.hasOverlayEntries)
|
|
547
|
+
this.renderer.hideOverlay();
|
|
548
|
+
this.switchTuiMode("regular", false, false);
|
|
549
|
+
this.renderer.renderNow();
|
|
550
|
+
}
|
|
551
|
+
this.ui.stop();
|
|
552
|
+
}
|
|
553
|
+
switchTuiMode(mode, restoreProgress = true, startRenderer = true) {
|
|
554
|
+
const previousUi = this.renderer;
|
|
555
|
+
if (mode === previousUi.mode)
|
|
556
|
+
return true;
|
|
557
|
+
if (previousUi.hasOverlayEntries)
|
|
558
|
+
return false;
|
|
559
|
+
const components = [...previousUi.children];
|
|
560
|
+
const focus = previousUi.getFocusedComponent();
|
|
561
|
+
const terminal = previousUi.terminal;
|
|
562
|
+
const showHardwareCursor = previousUi.getShowHardwareCursor();
|
|
563
|
+
const clearOnShrink = previousUi.getClearOnShrink();
|
|
564
|
+
const onDebug = previousUi.onDebug;
|
|
565
|
+
if (previousUi instanceof TuiMainScreen) {
|
|
566
|
+
this.mainScreenRenderState = previousUi.captureRenderState();
|
|
567
|
+
}
|
|
568
|
+
previousUi.stop({ preserveScreen: true });
|
|
569
|
+
previousUi.setFocus(null);
|
|
570
|
+
previousUi.clear();
|
|
571
|
+
if (TuiLayouts.isViewportTUI(previousUi))
|
|
572
|
+
previousUi.setLayoutRoot(undefined);
|
|
573
|
+
const nextUi = createInteractiveTui({
|
|
574
|
+
tuiMode: mode,
|
|
575
|
+
showHardwareCursor,
|
|
576
|
+
logDirectory: getAgentDir(),
|
|
577
|
+
terminal,
|
|
578
|
+
onRightClickPaste: this.onRightClickPaste,
|
|
579
|
+
});
|
|
580
|
+
nextUi.setClearOnShrink(clearOnShrink);
|
|
581
|
+
nextUi.onDebug = onDebug;
|
|
582
|
+
if (nextUi instanceof TuiMainScreen && this.mainScreenRenderState) {
|
|
583
|
+
nextUi.restoreRenderState(this.mainScreenRenderState);
|
|
584
|
+
}
|
|
585
|
+
this.renderer = nextUi;
|
|
586
|
+
this.options.tuiMode = mode;
|
|
587
|
+
this.mountInteractiveTui(nextUi, components);
|
|
588
|
+
nextUi.invalidate();
|
|
589
|
+
nextUi.setFocus(focus);
|
|
590
|
+
if (!startRenderer)
|
|
591
|
+
return true;
|
|
592
|
+
nextUi.start();
|
|
593
|
+
this.themeController.rebindTui();
|
|
594
|
+
this.rebindExtensionTerminalInputListeners();
|
|
595
|
+
if (restoreProgress &&
|
|
596
|
+
this.settingsManager.getShowTerminalProgress() &&
|
|
597
|
+
(this.session.isStreaming || this.session.isCompacting)) {
|
|
598
|
+
terminal.setProgress(true);
|
|
599
|
+
}
|
|
600
|
+
return true;
|
|
601
|
+
}
|
|
462
602
|
async init() {
|
|
463
603
|
if (this.isInitialized)
|
|
464
604
|
return;
|
|
@@ -482,18 +622,36 @@ export class InteractiveMode {
|
|
|
482
622
|
: "";
|
|
483
623
|
console.log(theme.fg("dim", `Model scope: ${modelList}${cycleHint}`));
|
|
484
624
|
}
|
|
485
|
-
//
|
|
486
|
-
// Keep loaded resources before chat so restored session messages never precede them.
|
|
487
|
-
this.ui.addChild(this.headerContainer);
|
|
488
|
-
this.ui.addChild(this.loadedResourcesContainer);
|
|
489
|
-
this.ui.addChild(this.chatContainer);
|
|
490
|
-
this.ui.addChild(this.pendingMessagesContainer);
|
|
491
|
-
this.ui.addChild(this.statusContainer);
|
|
625
|
+
// Keep one component tree and remount it when changing renderers.
|
|
492
626
|
this.renderWidgets(); // Initialize with default spacer
|
|
493
|
-
this.
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
627
|
+
this.transcriptScrollView = new TuiLayouts.ScrollView(this.documentContainer, {
|
|
628
|
+
follow: "end",
|
|
629
|
+
primary: true,
|
|
630
|
+
overscroll: "chain",
|
|
631
|
+
scrollbar: this.settingsManager.getFullscreenScrollbar(),
|
|
632
|
+
scrollbarStyle: (text) => theme.bg("scrollbarThumb", text),
|
|
633
|
+
});
|
|
634
|
+
const dock = new TuiLayouts.VStack([
|
|
635
|
+
{ component: this.pendingMessagesContainer, shrink: 1, minSize: 0 },
|
|
636
|
+
{ component: this.statusContainer, shrink: 1, minSize: 0 },
|
|
637
|
+
{ component: this.widgetContainerAbove, shrink: 1, minSize: 0 },
|
|
638
|
+
{ component: this.editorContainer, shrink: 1, minSize: 3 },
|
|
639
|
+
{ component: this.widgetContainerBelow, shrink: 1, minSize: 0 },
|
|
640
|
+
{ component: this.footerContainer, shrink: 1, minSize: 1 },
|
|
641
|
+
]);
|
|
642
|
+
this.fullscreenLayoutRoot = new TuiLayouts.VStack([
|
|
643
|
+
{ component: this.transcriptScrollView, basis: 0, grow: 1, shrink: 1, minSize: 1 },
|
|
644
|
+
{ component: dock, basis: "auto", grow: 0, shrink: 1, minSize: 1 },
|
|
645
|
+
]);
|
|
646
|
+
this.mountInteractiveTui(this.renderer, [
|
|
647
|
+
this.documentContainer,
|
|
648
|
+
this.pendingMessagesContainer,
|
|
649
|
+
this.statusContainer,
|
|
650
|
+
this.widgetContainerAbove,
|
|
651
|
+
this.editorContainer,
|
|
652
|
+
this.widgetContainerBelow,
|
|
653
|
+
this.footerContainer,
|
|
654
|
+
]);
|
|
497
655
|
this.ui.setFocus(this.editor);
|
|
498
656
|
this.setupKeyHandlers();
|
|
499
657
|
this.setupEditorSubmitHandler();
|
|
@@ -503,7 +661,7 @@ export class InteractiveMode {
|
|
|
503
661
|
await this.themeController.applyFromSettings();
|
|
504
662
|
// Add header with keybindings from config (unless silenced)
|
|
505
663
|
if (this.options.verbose || !this.settingsManager.getQuietStartup()) {
|
|
506
|
-
const logo = "▲ \u001b[38;5;196mp\u001b[38;5;202mr\u001b[38;5;226mi\u001b[38;5;46ms\u001b[38;5;51mm\u001b[0m v0.2.
|
|
664
|
+
const logo = "▲ \u001b[38;5;196mp\u001b[38;5;202mr\u001b[38;5;226mi\u001b[38;5;46ms\u001b[38;5;51mm\u001b[0m v0.2.81";
|
|
507
665
|
// Build startup instructions using keybinding hint helpers
|
|
508
666
|
const hint = (keybinding, description) => keyHint(keybinding, description);
|
|
509
667
|
const expandedInstructions = [
|
|
@@ -585,10 +743,13 @@ export class InteractiveMode {
|
|
|
585
743
|
async run() {
|
|
586
744
|
await this.init();
|
|
587
745
|
if (!process.env.PI_OFFLINE) {
|
|
746
|
+
const controller = new AbortController();
|
|
747
|
+
const timeout = setTimeout(() => controller.abort(), 15_000);
|
|
588
748
|
void this.session.modelRuntime
|
|
589
|
-
.refresh()
|
|
749
|
+
.refresh({ signal: controller.signal })
|
|
590
750
|
.then(() => this.updateAvailableProviderCount())
|
|
591
|
-
.catch(() => { })
|
|
751
|
+
.catch(() => { })
|
|
752
|
+
.finally(() => clearTimeout(timeout));
|
|
592
753
|
}
|
|
593
754
|
// Start version check asynchronously
|
|
594
755
|
checkForNewPiVersion(this.version).then((newRelease) => {
|
|
@@ -636,6 +797,7 @@ export class InteractiveMode {
|
|
|
636
797
|
}
|
|
637
798
|
catch (error) {
|
|
638
799
|
const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
|
|
800
|
+
errorMessage = this.humanizeUsageLimitError(errorMessage);
|
|
639
801
|
this.showError(errorMessage);
|
|
640
802
|
}
|
|
641
803
|
}
|
|
@@ -646,7 +808,8 @@ export class InteractiveMode {
|
|
|
646
808
|
}
|
|
647
809
|
catch (error) {
|
|
648
810
|
const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
|
|
649
|
-
this.
|
|
811
|
+
errorMessage = this.humanizeUsageLimitError(errorMessage);
|
|
812
|
+
this.showError(errorMessage);
|
|
650
813
|
}
|
|
651
814
|
}
|
|
652
815
|
}
|
|
@@ -658,6 +821,7 @@ export class InteractiveMode {
|
|
|
658
821
|
}
|
|
659
822
|
catch (error) {
|
|
660
823
|
const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
|
|
824
|
+
errorMessage = this.humanizeUsageLimitError(errorMessage);
|
|
661
825
|
this.showError(errorMessage);
|
|
662
826
|
}
|
|
663
827
|
}
|
|
@@ -734,19 +898,19 @@ export class InteractiveMode {
|
|
|
734
898
|
const entries = parseChangelog(changelogPath);
|
|
735
899
|
if (!lastVersion) {
|
|
736
900
|
// Fresh install - record the version, send telemetry, don't show changelog
|
|
737
|
-
this.settingsManager.setLastChangelogVersion("0.
|
|
738
|
-
this.reportInstallTelemetry("0.
|
|
901
|
+
this.settingsManager.setLastChangelogVersion("0.84.1");
|
|
902
|
+
this.reportInstallTelemetry("0.84.1");
|
|
739
903
|
return undefined;
|
|
740
904
|
}
|
|
741
905
|
const newEntries = getNewEntries(entries, lastVersion);
|
|
742
906
|
if (entries.length > 0 && newEntries.length === entries.length) {
|
|
743
|
-
this.settingsManager.setLastChangelogVersion("0.
|
|
744
|
-
this.reportInstallTelemetry("0.
|
|
907
|
+
this.settingsManager.setLastChangelogVersion("0.84.1");
|
|
908
|
+
this.reportInstallTelemetry("0.84.1");
|
|
745
909
|
return normalizeChangelogLinks(entries[0].content, entries[0]);
|
|
746
910
|
}
|
|
747
911
|
if (newEntries.length > 0) {
|
|
748
|
-
this.settingsManager.setLastChangelogVersion("0.
|
|
749
|
-
this.reportInstallTelemetry("0.
|
|
912
|
+
this.settingsManager.setLastChangelogVersion("0.84.1");
|
|
913
|
+
this.reportInstallTelemetry("0.84.1");
|
|
750
914
|
return newEntries.map((e) => normalizeChangelogLinks(e.content, e)).join("\n\n");
|
|
751
915
|
}
|
|
752
916
|
return undefined;
|
|
@@ -1300,8 +1464,12 @@ export class InteractiveMode {
|
|
|
1300
1464
|
this.showLoadedResources({ force: false, showDiagnosticsWhenQuiet: true });
|
|
1301
1465
|
this.showStartupNoticesIfNeeded();
|
|
1302
1466
|
}
|
|
1467
|
+
applyFullscreenScrollbarSetting() {
|
|
1468
|
+
this.transcriptScrollView?.setScrollbar(this.settingsManager.getFullscreenScrollbar());
|
|
1469
|
+
}
|
|
1303
1470
|
applyRuntimeSettings() {
|
|
1304
1471
|
configureHttpDispatcher(this.settingsManager.getHttpIdleTimeoutMs());
|
|
1472
|
+
this.applyFullscreenScrollbarSetting();
|
|
1305
1473
|
this.footer.setSession(this.session);
|
|
1306
1474
|
this.footer.setAutoCompactEnabled(this.session.autoCompactionEnabled);
|
|
1307
1475
|
this.footerDataProvider.setCwd(this.sessionManager.getCwd());
|
|
@@ -1365,6 +1533,9 @@ export class InteractiveMode {
|
|
|
1365
1533
|
getRegisteredToolDefinition(toolName) {
|
|
1366
1534
|
return this.session.getToolDefinition(toolName);
|
|
1367
1535
|
}
|
|
1536
|
+
getMarkdownTransformers() {
|
|
1537
|
+
return [this.mermaidMarkdownTransformer, ...this.session.extensionRunner.getMarkdownTransformers()];
|
|
1538
|
+
}
|
|
1368
1539
|
/**
|
|
1369
1540
|
* Set up keyboard shortcuts registered by extensions.
|
|
1370
1541
|
*/
|
|
@@ -1444,7 +1615,7 @@ export class InteractiveMode {
|
|
|
1444
1615
|
this.activeStatusIndicator?.dispose();
|
|
1445
1616
|
this.activeStatusIndicator = undefined;
|
|
1446
1617
|
this.statusContainer.clear();
|
|
1447
|
-
if (hadActiveStatusIndicator && this.ui.getClearOnShrink()) {
|
|
1618
|
+
if (hadActiveStatusIndicator && this.options.tuiMode === "regular" && this.ui.getClearOnShrink()) {
|
|
1448
1619
|
this.statusContainer.addChild(this.idleStatus);
|
|
1449
1620
|
}
|
|
1450
1621
|
}
|
|
@@ -1592,22 +1763,16 @@ export class InteractiveMode {
|
|
|
1592
1763
|
if (this.customFooter?.dispose) {
|
|
1593
1764
|
this.customFooter.dispose();
|
|
1594
1765
|
}
|
|
1595
|
-
|
|
1596
|
-
if (this.customFooter) {
|
|
1597
|
-
this.ui.removeChild(this.customFooter);
|
|
1598
|
-
}
|
|
1599
|
-
else {
|
|
1600
|
-
this.ui.removeChild(this.footer);
|
|
1601
|
-
}
|
|
1766
|
+
this.footerContainer.clear();
|
|
1602
1767
|
if (factory) {
|
|
1603
1768
|
// Create and add custom footer, passing the data provider
|
|
1604
1769
|
this.customFooter = factory(this.ui, theme, this.footerDataProvider);
|
|
1605
|
-
this.
|
|
1770
|
+
this.footerContainer.addChild(this.customFooter);
|
|
1606
1771
|
}
|
|
1607
1772
|
else {
|
|
1608
1773
|
// Restore built-in footer
|
|
1609
1774
|
this.customFooter = undefined;
|
|
1610
|
-
this.
|
|
1775
|
+
this.footerContainer.addChild(this.footer);
|
|
1611
1776
|
}
|
|
1612
1777
|
this.ui.requestRender();
|
|
1613
1778
|
}
|
|
@@ -1653,18 +1818,23 @@ export class InteractiveMode {
|
|
|
1653
1818
|
this.ui.requestRender();
|
|
1654
1819
|
}
|
|
1655
1820
|
addExtensionTerminalInputListener(handler) {
|
|
1656
|
-
const
|
|
1657
|
-
this.
|
|
1821
|
+
const subscription = { handler, unsubscribe: this.ui.addInputListener(handler) };
|
|
1822
|
+
this.extensionTerminalInputSubscriptions.add(subscription);
|
|
1658
1823
|
return () => {
|
|
1659
|
-
unsubscribe();
|
|
1660
|
-
this.
|
|
1824
|
+
subscription.unsubscribe();
|
|
1825
|
+
this.extensionTerminalInputSubscriptions.delete(subscription);
|
|
1661
1826
|
};
|
|
1662
1827
|
}
|
|
1663
|
-
|
|
1664
|
-
for (const
|
|
1665
|
-
unsubscribe();
|
|
1828
|
+
rebindExtensionTerminalInputListeners() {
|
|
1829
|
+
for (const subscription of this.extensionTerminalInputSubscriptions) {
|
|
1830
|
+
subscription.unsubscribe();
|
|
1831
|
+
subscription.unsubscribe = this.ui.addInputListener(subscription.handler);
|
|
1666
1832
|
}
|
|
1667
|
-
|
|
1833
|
+
}
|
|
1834
|
+
clearExtensionTerminalInputListeners() {
|
|
1835
|
+
for (const subscription of this.extensionTerminalInputSubscriptions)
|
|
1836
|
+
subscription.unsubscribe();
|
|
1837
|
+
this.extensionTerminalInputSubscriptions.clear();
|
|
1668
1838
|
}
|
|
1669
1839
|
/**
|
|
1670
1840
|
* Create the ExtensionUIContext for extensions.
|
|
@@ -1759,6 +1929,7 @@ export class InteractiveMode {
|
|
|
1759
1929
|
this.hideExtensionSelector();
|
|
1760
1930
|
resolve(undefined);
|
|
1761
1931
|
}, { tui: this.ui, timeout: opts?.timeout, onToggleToolsExpanded: () => this.toggleToolOutputExpansion() });
|
|
1932
|
+
this.disposeActiveSelector();
|
|
1762
1933
|
this.editorContainer.clear();
|
|
1763
1934
|
this.editorContainer.addChild(this.extensionSelector);
|
|
1764
1935
|
this.ui.setFocus(this.extensionSelector);
|
|
@@ -1810,6 +1981,7 @@ export class InteractiveMode {
|
|
|
1810
1981
|
this.hideExtensionInput();
|
|
1811
1982
|
resolve(undefined);
|
|
1812
1983
|
}, { tui: this.ui, timeout: opts?.timeout });
|
|
1984
|
+
this.disposeActiveSelector();
|
|
1813
1985
|
this.editorContainer.clear();
|
|
1814
1986
|
this.editorContainer.addChild(this.extensionInput);
|
|
1815
1987
|
this.ui.setFocus(this.extensionInput);
|
|
@@ -1839,6 +2011,7 @@ export class InteractiveMode {
|
|
|
1839
2011
|
this.hideExtensionEditor();
|
|
1840
2012
|
resolve(undefined);
|
|
1841
2013
|
}, undefined, this.settingsManager.getExternalEditorCommand());
|
|
2014
|
+
this.disposeActiveSelector();
|
|
1842
2015
|
this.editorContainer.clear();
|
|
1843
2016
|
this.editorContainer.addChild(this.extensionEditor);
|
|
1844
2017
|
this.ui.setFocus(this.extensionEditor);
|
|
@@ -1863,6 +2036,7 @@ export class InteractiveMode {
|
|
|
1863
2036
|
this.editorComponentFactory = factory;
|
|
1864
2037
|
// Save text from current editor before switching
|
|
1865
2038
|
const currentText = this.editor.getText();
|
|
2039
|
+
this.disposeActiveSelector();
|
|
1866
2040
|
this.editorContainer.clear();
|
|
1867
2041
|
if (factory) {
|
|
1868
2042
|
// Create the custom editor with tui, theme, and keybindings
|
|
@@ -1879,6 +2053,9 @@ export class InteractiveMode {
|
|
|
1879
2053
|
if (newEditor.setPaddingX !== undefined) {
|
|
1880
2054
|
newEditor.setPaddingX(this.defaultEditor.getPaddingX());
|
|
1881
2055
|
}
|
|
2056
|
+
if (newEditor.setAutocompleteMaxVisible !== undefined) {
|
|
2057
|
+
newEditor.setAutocompleteMaxVisible(this.defaultEditor.getAutocompleteMaxVisible());
|
|
2058
|
+
}
|
|
1882
2059
|
// Set autocomplete if supported
|
|
1883
2060
|
if (newEditor.setAutocompleteProvider && this.autocompleteProvider) {
|
|
1884
2061
|
newEditor.setAutocompleteProvider(this.autocompleteProvider);
|
|
@@ -1983,6 +2160,7 @@ export class InteractiveMode {
|
|
|
1983
2160
|
options?.onHandle?.(handle);
|
|
1984
2161
|
}
|
|
1985
2162
|
else {
|
|
2163
|
+
this.disposeActiveSelector();
|
|
1986
2164
|
this.editorContainer.clear();
|
|
1987
2165
|
this.editorContainer.addChild(component);
|
|
1988
2166
|
this.ui.setFocus(component);
|
|
@@ -2069,7 +2247,7 @@ export class InteractiveMode {
|
|
|
2069
2247
|
this.defaultEditor.onAction("app.tools.expand", () => this.toggleToolOutputExpansion());
|
|
2070
2248
|
this.defaultEditor.onAction("app.thinking.toggle", () => this.toggleThinkingBlockVisibility());
|
|
2071
2249
|
this.defaultEditor.onAction("app.editor.external", () => void this.handleOpenExternalEditor());
|
|
2072
|
-
this.defaultEditor.onAction("app.message.copy", () => void this.handleCopyCommand());
|
|
2250
|
+
this.defaultEditor.onAction("app.message.copy", () => void this.handleCopyCommand({ flashConfirmation: true }));
|
|
2073
2251
|
this.defaultEditor.onAction("app.message.followUp", () => this.handleFollowUp());
|
|
2074
2252
|
this.defaultEditor.onAction("app.message.dequeue", () => this.handleDequeue());
|
|
2075
2253
|
this.defaultEditor.onAction("app.session.new", () => this.handleClearCommand());
|
|
@@ -2089,6 +2267,22 @@ export class InteractiveMode {
|
|
|
2089
2267
|
void this.handleClipboardPaste();
|
|
2090
2268
|
};
|
|
2091
2269
|
}
|
|
2270
|
+
async handleRightClickPaste() {
|
|
2271
|
+
const target = this.renderer.getFocusedComponent();
|
|
2272
|
+
const handleInput = target?.handleInput;
|
|
2273
|
+
if (!target || !handleInput)
|
|
2274
|
+
return;
|
|
2275
|
+
try {
|
|
2276
|
+
const text = await readClipboardText();
|
|
2277
|
+
if (!text || this.renderer.getFocusedComponent() !== target)
|
|
2278
|
+
return;
|
|
2279
|
+
handleInput.call(target, `\x1b[200~${text}\x1b[201~`);
|
|
2280
|
+
this.ui.requestRender();
|
|
2281
|
+
}
|
|
2282
|
+
catch {
|
|
2283
|
+
// Silently ignore clipboard errors (may not have permission, etc.)
|
|
2284
|
+
}
|
|
2285
|
+
}
|
|
2092
2286
|
async handleClipboardPaste() {
|
|
2093
2287
|
try {
|
|
2094
2288
|
const image = await readClipboardImage();
|
|
@@ -2378,17 +2572,17 @@ export class InteractiveMode {
|
|
|
2378
2572
|
this.ui.requestRender();
|
|
2379
2573
|
}
|
|
2380
2574
|
else if (event.message.role === "assistant") {
|
|
2381
|
-
this.streamingComponent = new AssistantMessageComponent(undefined, this.hideThinkingBlock, this.getMarkdownThemeWithSettings(), this.hiddenThinkingLabel, this.outputPad);
|
|
2575
|
+
this.streamingComponent = new AssistantMessageComponent(undefined, this.hideThinkingBlock, this.getMarkdownThemeWithSettings(), this.hiddenThinkingLabel, this.outputPad, this.getMarkdownTransformers());
|
|
2382
2576
|
this.streamingMessage = event.message;
|
|
2383
2577
|
this.chatContainer.addChild(this.streamingComponent);
|
|
2384
|
-
this.streamingComponent.updateContent(this.streamingMessage);
|
|
2578
|
+
this.streamingComponent.updateContent(this.streamingMessage, true);
|
|
2385
2579
|
this.ui.requestRender();
|
|
2386
2580
|
}
|
|
2387
2581
|
break;
|
|
2388
2582
|
case "message_update":
|
|
2389
2583
|
if (this.streamingComponent && event.message.role === "assistant") {
|
|
2390
2584
|
this.streamingMessage = event.message;
|
|
2391
|
-
this.streamingComponent.updateContent(this.streamingMessage);
|
|
2585
|
+
this.streamingComponent.updateContent(this.streamingMessage, true);
|
|
2392
2586
|
for (const content of this.streamingMessage.content) {
|
|
2393
2587
|
if (content.type === "toolCall") {
|
|
2394
2588
|
if (!this.pendingTools.has(content.id)) {
|
|
@@ -2425,7 +2619,7 @@ export class InteractiveMode {
|
|
|
2425
2619
|
: "Operation aborted";
|
|
2426
2620
|
this.streamingMessage.errorMessage = errorMessage;
|
|
2427
2621
|
}
|
|
2428
|
-
this.streamingComponent.updateContent(this.streamingMessage);
|
|
2622
|
+
this.streamingComponent.updateContent(this.streamingMessage, false);
|
|
2429
2623
|
if (this.streamingMessage.stopReason === "aborted" || this.streamingMessage.stopReason === "error") {
|
|
2430
2624
|
if (!errorMessage) {
|
|
2431
2625
|
errorMessage = this.streamingMessage.errorMessage || "Error";
|
|
@@ -2501,6 +2695,8 @@ export class InteractiveMode {
|
|
|
2501
2695
|
break;
|
|
2502
2696
|
case "agent_settled":
|
|
2503
2697
|
await this.checkShutdownRequested();
|
|
2698
|
+
void this.maybeShowUsageLimitRecoveryMenu(event);
|
|
2699
|
+
void this.maybeShowPrismPlanApprovalMenu(event);
|
|
2504
2700
|
break;
|
|
2505
2701
|
case "compaction_start": {
|
|
2506
2702
|
if (this.settingsManager.getShowTerminalProgress()) {
|
|
@@ -2599,6 +2795,189 @@ export class InteractiveMode {
|
|
|
2599
2795
|
}
|
|
2600
2796
|
}
|
|
2601
2797
|
}
|
|
2798
|
+
formatUsageLimitDuration(ms) {
|
|
2799
|
+
const totalMinutes = Math.ceil(ms / 60000);
|
|
2800
|
+
const hours = Math.floor(totalMinutes / 60);
|
|
2801
|
+
const minutes = totalMinutes % 60;
|
|
2802
|
+
const parts = [];
|
|
2803
|
+
if (hours > 0) parts.push(hours + "h");
|
|
2804
|
+
if (minutes > 0 || parts.length === 0) parts.push(minutes + "min");
|
|
2805
|
+
return parts.join(" ");
|
|
2806
|
+
}
|
|
2807
|
+
humanizeUsageLimitError(errorMessage) {
|
|
2808
|
+
return String(errorMessage || "").replace(/(~|about\s*)?(\d+)\s*min\b/gi, (_match, prefix, minutes) => {
|
|
2809
|
+
return (prefix || "") + this.formatUsageLimitDuration(Number(minutes) * 60 * 1000);
|
|
2810
|
+
});
|
|
2811
|
+
}
|
|
2812
|
+
extractUsageLimitWaitMs(errorMessage) {
|
|
2813
|
+
const text = String(errorMessage || "");
|
|
2814
|
+
const parsedSeconds = text.match(/"(?:resets_in_seconds|X-Codex-Primary-Reset-After-Seconds|Retry-After)"\s*:?\s*"?(\d+)"?/i)?.[1];
|
|
2815
|
+
if (parsedSeconds) return Number(parsedSeconds) * 1000;
|
|
2816
|
+
const resetAt = text.match(/"(?:resets_at|X-Codex-Primary-Reset-At)"\s*:?\s*"?(\d+)"?/i)?.[1];
|
|
2817
|
+
if (resetAt) {
|
|
2818
|
+
const resetMs = Number(resetAt) * 1000 - Date.now();
|
|
2819
|
+
if (Number.isFinite(resetMs) && resetMs > 0) return resetMs;
|
|
2820
|
+
}
|
|
2821
|
+
const hours = text.match(/(?:~|about\s*)?(\d+)\s*h(?:our)?/i)?.[1];
|
|
2822
|
+
if (hours) return Number(hours) * 60 * 60 * 1000;
|
|
2823
|
+
const minutes = text.match(/(?:~|about\s*)?(\d+)\s*min/i)?.[1];
|
|
2824
|
+
if (minutes) return Number(minutes) * 60 * 1000;
|
|
2825
|
+
const seconds = text.match(/(?:~|about\s*)?(\d+)\s*s(?:ec|econd)?/i)?.[1];
|
|
2826
|
+
if (seconds) return Number(seconds) * 1000;
|
|
2827
|
+
return 5 * 60 * 1000;
|
|
2828
|
+
}
|
|
2829
|
+
getUsageLimitError(event) {
|
|
2830
|
+
const last = event?.messages?.[event.messages.length - 1];
|
|
2831
|
+
let errorMessage = last?.errorMessage || last?.content?.find?.((block) => block?.type === "text")?.text || "";
|
|
2832
|
+
if (last?.role !== "assistant" || last?.stopReason !== "error") return undefined;
|
|
2833
|
+
errorMessage = this.humanizeUsageLimitError(errorMessage);
|
|
2834
|
+
return /usage limit|try again in/i.test(errorMessage) ? String(errorMessage) : undefined;
|
|
2835
|
+
}
|
|
2836
|
+
removeLastAssistantErrorFromState() {
|
|
2837
|
+
const messages = this.agent.state.messages;
|
|
2838
|
+
const last = messages[messages.length - 1];
|
|
2839
|
+
if (last?.role === "assistant" && last?.stopReason === "error") this.agent.state.messages = messages.slice(0, -1);
|
|
2840
|
+
}
|
|
2841
|
+
async continueAfterUsageLimitRecovery() {
|
|
2842
|
+
try {
|
|
2843
|
+
await this.agent.continue();
|
|
2844
|
+
} catch (error) {
|
|
2845
|
+
this.showError(error instanceof Error ? error.message : String(error));
|
|
2846
|
+
}
|
|
2847
|
+
}
|
|
2848
|
+
maybeShowUsageLimitRecoveryMenu(event) {
|
|
2849
|
+
const errorMessage = this.getUsageLimitError(event);
|
|
2850
|
+
if (!errorMessage) return;
|
|
2851
|
+
const delayMs = this.extractUsageLimitWaitMs(errorMessage);
|
|
2852
|
+
const waitLabel = "Wait " + this.formatUsageLimitDuration(delayMs) + " then retry";
|
|
2853
|
+
this.showSelector((done) => {
|
|
2854
|
+
const selector = new ExtensionSelectorComponent("Usage limit hit", [waitLabel, "Change model and retry", "Cancel"], async (selected) => {
|
|
2855
|
+
done();
|
|
2856
|
+
if (selected === "Cancel") return;
|
|
2857
|
+
this.removeLastAssistantErrorFromState();
|
|
2858
|
+
if (selected === waitLabel) {
|
|
2859
|
+
const endTime = Date.now() + delayMs;
|
|
2860
|
+
const updateCountdown = () => {
|
|
2861
|
+
const remaining = Math.max(0, endTime - Date.now());
|
|
2862
|
+
this.showStatus("Waiting " + this.formatUsageLimitDuration(remaining) + " for usage limit, then retrying...");
|
|
2863
|
+
this.ui.requestRender();
|
|
2864
|
+
};
|
|
2865
|
+
updateCountdown();
|
|
2866
|
+
const countdownInterval = setInterval(updateCountdown, 60000);
|
|
2867
|
+
setTimeout(() => { clearInterval(countdownInterval); void this.continueAfterUsageLimitRecovery(); }, delayMs);
|
|
2868
|
+
return;
|
|
2869
|
+
}
|
|
2870
|
+
this.showUsageLimitModelSelector();
|
|
2871
|
+
}, () => {
|
|
2872
|
+
done();
|
|
2873
|
+
this.ui.requestRender();
|
|
2874
|
+
}, { tui: this.ui });
|
|
2875
|
+
return { component: selector, focus: selector };
|
|
2876
|
+
});
|
|
2877
|
+
}
|
|
2878
|
+
showUsageLimitModelSelector(initialSearchInput) {
|
|
2879
|
+
this.showSelector((done) => {
|
|
2880
|
+
const selector = new ModelSelectorComponent(this.ui, this.session.model, this.settingsManager, this.session.modelRegistry, this.session.scopedModels, async (model) => {
|
|
2881
|
+
try {
|
|
2882
|
+
await this.session.setModel(model);
|
|
2883
|
+
this.footer.invalidate();
|
|
2884
|
+
this.updateEditorBorderColor();
|
|
2885
|
+
done();
|
|
2886
|
+
this.showStatus("Model: " + model.id + "; retrying...");
|
|
2887
|
+
void this.maybeWarnAboutAnthropicSubscriptionAuth(model);
|
|
2888
|
+
this.checkDaxnutsEasterEgg(model);
|
|
2889
|
+
void this.continueAfterUsageLimitRecovery();
|
|
2890
|
+
} catch (error) {
|
|
2891
|
+
done();
|
|
2892
|
+
this.showError(error instanceof Error ? error.message : String(error));
|
|
2893
|
+
}
|
|
2894
|
+
}, () => {
|
|
2895
|
+
done();
|
|
2896
|
+
this.ui.requestRender();
|
|
2897
|
+
}, initialSearchInput);
|
|
2898
|
+
return { component: selector, focus: selector };
|
|
2899
|
+
});
|
|
2900
|
+
}
|
|
2901
|
+
getPrismReadOnlyToolNames() {
|
|
2902
|
+
const readOnly = new Set(["read", "grep", "find", "ls", "obsidian_memory_read", "obsidian_memory_search", "obsidian_memory_list", "web_search", "web_fetch"]);
|
|
2903
|
+
return this.session.getActiveToolNames().filter((name) => readOnly.has(name));
|
|
2904
|
+
}
|
|
2905
|
+
setPrismPlanStatus(enabled) {
|
|
2906
|
+
this.prismPlanMode = enabled;
|
|
2907
|
+
this.setExtensionStatus("prism-mode", enabled ? "[Plan]" : undefined);
|
|
2908
|
+
this.footer.invalidate();
|
|
2909
|
+
}
|
|
2910
|
+
async startPrismPlanMode(task) {
|
|
2911
|
+
if (!this.prismPlanPreviousTools) this.prismPlanPreviousTools = this.session.getActiveToolNames();
|
|
2912
|
+
if (this.prismPlanLeafId === undefined) this.prismPlanLeafId = this.session.sessionManager.getLeafId();
|
|
2913
|
+
this.session.setActiveToolsByName(this.getPrismReadOnlyToolNames());
|
|
2914
|
+
this.setPrismPlanStatus(true);
|
|
2915
|
+
globalThis.__PRISM_MANIFEST_TIER_OVERRIDE__ = "plan";
|
|
2916
|
+
const prompt = "PLAN MODE ACTIVE. You must only inspect and plan. Do not modify files or run mutating commands. Ask concise clarification questions if needed. When ready, write the full implementation plan, then end with exactly: /plan:ready\n\nTask: " + (task || "Create an implementation plan for the user's next change.");
|
|
2917
|
+
await this.session.prompt(prompt);
|
|
2918
|
+
}
|
|
2919
|
+
getPrismLastAssistantText(event) {
|
|
2920
|
+
const last = event?.messages?.[event.messages.length - 1];
|
|
2921
|
+
if (last?.role !== "assistant") return "";
|
|
2922
|
+
return (last.content || []).map((block) => block?.type === "text" ? block.text || "" : "").join("\n");
|
|
2923
|
+
}
|
|
2924
|
+
maybeShowPrismPlanApprovalMenu(event) {
|
|
2925
|
+
if (!this.prismPlanMode) return;
|
|
2926
|
+
const text = this.getPrismLastAssistantText(event);
|
|
2927
|
+
if (!text.includes("/plan:ready")) return;
|
|
2928
|
+
this.prismPlanText = text.replace("/plan:ready", "").trim();
|
|
2929
|
+
this.showSelector((done) => {
|
|
2930
|
+
const selector = new ExtensionSelectorComponent("Plan ready", ["Approve -> make changes", "Reject -> add more context", "Cancel plan"], async (selected) => {
|
|
2931
|
+
done();
|
|
2932
|
+
if (selected.startsWith("Approve")) return void this.approvePrismPlan();
|
|
2933
|
+
if (selected.startsWith("Reject")) return this.rejectPrismPlan();
|
|
2934
|
+
this.cancelPrismPlan();
|
|
2935
|
+
}, () => {
|
|
2936
|
+
done();
|
|
2937
|
+
this.ui.requestRender();
|
|
2938
|
+
}, { tui: this.ui });
|
|
2939
|
+
return { component: selector, focus: selector };
|
|
2940
|
+
});
|
|
2941
|
+
}
|
|
2942
|
+
restorePrismPlanTools() {
|
|
2943
|
+
if (this.prismPlanPreviousTools) this.session.setActiveToolsByName(this.prismPlanPreviousTools);
|
|
2944
|
+
this.prismPlanPreviousTools = undefined;
|
|
2945
|
+
if (globalThis.__PRISM_MANIFEST_TIER_OVERRIDE__ === "plan") globalThis.__PRISM_MANIFEST_TIER_OVERRIDE__ = undefined;
|
|
2946
|
+
this.setPrismPlanStatus(false);
|
|
2947
|
+
}
|
|
2948
|
+
restorePrismPlanBranch() {
|
|
2949
|
+
if (this.prismPlanLeafId === undefined) return;
|
|
2950
|
+
if (this.prismPlanLeafId === null) {
|
|
2951
|
+
this.session.sessionManager.resetLeaf();
|
|
2952
|
+
} else {
|
|
2953
|
+
this.session.sessionManager.branch(this.prismPlanLeafId);
|
|
2954
|
+
}
|
|
2955
|
+
this.agent.state.messages = this.session.sessionManager.buildSessionContext().messages;
|
|
2956
|
+
this.prismPlanLeafId = undefined;
|
|
2957
|
+
}
|
|
2958
|
+
async approvePrismPlan() {
|
|
2959
|
+
if (!this.prismPlanMode) return this.showWarning("No active plan to approve.");
|
|
2960
|
+
const planText = this.prismPlanText || "";
|
|
2961
|
+
this.prismPlanText = undefined;
|
|
2962
|
+
this.restorePrismPlanBranch();
|
|
2963
|
+
this.restorePrismPlanTools();
|
|
2964
|
+
await this.session.prompt("Implement this plan:\n\n" + planText);
|
|
2965
|
+
}
|
|
2966
|
+
rejectPrismPlan() {
|
|
2967
|
+
if (!this.prismPlanMode) return this.showWarning("No active plan to reject.");
|
|
2968
|
+
this.prismPlanText = undefined;
|
|
2969
|
+
this.editor.setText("/plan ");
|
|
2970
|
+
this.showStatus("Add more context after /plan and submit.");
|
|
2971
|
+
this.ui.requestRender();
|
|
2972
|
+
}
|
|
2973
|
+
cancelPrismPlan() {
|
|
2974
|
+
if (!this.prismPlanMode) return this.showWarning("No active plan to cancel.");
|
|
2975
|
+
this.restorePrismPlanBranch();
|
|
2976
|
+
this.prismPlanText = undefined;
|
|
2977
|
+
this.restorePrismPlanTools();
|
|
2978
|
+
this.showStatus("Plan cancelled");
|
|
2979
|
+
this.ui.requestRender();
|
|
2980
|
+
}
|
|
2602
2981
|
/** Extract text content from a user message */
|
|
2603
2982
|
getUserMessageText(message) {
|
|
2604
2983
|
if (message.role !== "user")
|
|
@@ -2699,12 +3078,12 @@ export class InteractiveMode {
|
|
|
2699
3078
|
// Render user message separately if present
|
|
2700
3079
|
if (skillBlock.userMessage) {
|
|
2701
3080
|
this.chatContainer.addChild(new Spacer(1));
|
|
2702
|
-
const userComponent = new UserMessageComponent(skillBlock.userMessage, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
3081
|
+
const userComponent = new UserMessageComponent(skillBlock.userMessage, this.getMarkdownThemeWithSettings(), this.outputPad, this.getMarkdownTransformers());
|
|
2703
3082
|
this.chatContainer.addChild(userComponent);
|
|
2704
3083
|
}
|
|
2705
3084
|
}
|
|
2706
3085
|
else {
|
|
2707
|
-
const userComponent = new UserMessageComponent(textContent, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
3086
|
+
const userComponent = new UserMessageComponent(textContent, this.getMarkdownThemeWithSettings(), this.outputPad, this.getMarkdownTransformers());
|
|
2708
3087
|
this.chatContainer.addChild(userComponent);
|
|
2709
3088
|
}
|
|
2710
3089
|
if (options?.populateHistory) {
|
|
@@ -2714,7 +3093,7 @@ export class InteractiveMode {
|
|
|
2714
3093
|
break;
|
|
2715
3094
|
}
|
|
2716
3095
|
case "assistant": {
|
|
2717
|
-
const assistantComponent = new AssistantMessageComponent(message, this.hideThinkingBlock, this.getMarkdownThemeWithSettings(), this.hiddenThinkingLabel, this.outputPad);
|
|
3096
|
+
const assistantComponent = new AssistantMessageComponent(message, this.hideThinkingBlock, this.getMarkdownThemeWithSettings(), this.hiddenThinkingLabel, this.outputPad, this.getMarkdownTransformers());
|
|
2718
3097
|
this.chatContainer.addChild(assistantComponent);
|
|
2719
3098
|
break;
|
|
2720
3099
|
}
|
|
@@ -2863,2425 +3242,4 @@ export class InteractiveMode {
|
|
|
2863
3242
|
if (this.settingsManager.isProjectTrusted() || !hasTrustRequiringProjectResources(this.sessionManager.getCwd())) {
|
|
2864
3243
|
return;
|
|
2865
3244
|
}
|
|
2866
|
-
if (this.chatContainer.children.length >
|
|
2867
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
2868
|
-
}
|
|
2869
|
-
this.chatContainer.addChild(new Text(theme.fg("warning", `This project is not trusted. Project ${CONFIG_DIR_NAME} resources and packages are ignored. Use /trust to save a trust decision, then restart pi.`), 1, 0));
|
|
2870
|
-
}
|
|
2871
|
-
async getUserInput() {
|
|
2872
|
-
const queuedInput = this.pendingUserInputs.shift();
|
|
2873
|
-
if (queuedInput !== undefined) {
|
|
2874
|
-
return queuedInput;
|
|
2875
|
-
}
|
|
2876
|
-
return new Promise((resolve) => {
|
|
2877
|
-
this.onInputCallback = (text) => {
|
|
2878
|
-
this.onInputCallback = undefined;
|
|
2879
|
-
resolve(text);
|
|
2880
|
-
};
|
|
2881
|
-
});
|
|
2882
|
-
}
|
|
2883
|
-
rebuildChatFromMessages() {
|
|
2884
|
-
this.chatContainer.clear();
|
|
2885
|
-
this.renderSessionEntries(this.sessionManager.buildContextEntries());
|
|
2886
|
-
}
|
|
2887
|
-
// =========================================================================
|
|
2888
|
-
// Key handlers
|
|
2889
|
-
// =========================================================================
|
|
2890
|
-
handleCtrlC() {
|
|
2891
|
-
const now = Date.now();
|
|
2892
|
-
if (now - this.lastSigintTime < 500) {
|
|
2893
|
-
void this.shutdown();
|
|
2894
|
-
}
|
|
2895
|
-
else {
|
|
2896
|
-
this.clearEditor();
|
|
2897
|
-
this.lastSigintTime = now;
|
|
2898
|
-
}
|
|
2899
|
-
}
|
|
2900
|
-
handleCtrlD() {
|
|
2901
|
-
// Only called when editor is empty (enforced by CustomEditor)
|
|
2902
|
-
void this.shutdown();
|
|
2903
|
-
}
|
|
2904
|
-
/**
|
|
2905
|
-
* Gracefully shutdown the agent.
|
|
2906
|
-
* Stops the TUI before emitting shutdown events so extension UI cleanup cannot
|
|
2907
|
-
* repaint the final frame while the process is exiting.
|
|
2908
|
-
*/
|
|
2909
|
-
isShuttingDown = false;
|
|
2910
|
-
async shutdown(options) {
|
|
2911
|
-
if (this.isShuttingDown)
|
|
2912
|
-
return;
|
|
2913
|
-
this.isShuttingDown = true;
|
|
2914
|
-
// Keep signal handlers registered until terminal cleanup has completed.
|
|
2915
|
-
// `signal-exit` checks the listener list during the same SIGTERM/SIGHUP
|
|
2916
|
-
// dispatch and re-sends the signal if only its own listeners remain.
|
|
2917
|
-
if (options?.fromSignal) {
|
|
2918
|
-
// Signal-triggered shutdown (SIGTERM/SIGHUP). Emit extension cleanup
|
|
2919
|
-
// (session_shutdown) BEFORE touching the terminal. Extension teardown
|
|
2920
|
-
// such as removing sockets does not write to the tty, so it must not be
|
|
2921
|
-
// skipped if a later terminal-restore write fails on a dead or stalled
|
|
2922
|
-
// terminal. If the terminal is gone, the restore writes below emit EIO,
|
|
2923
|
-
// which the stdout/stderr error handler turns into emergencyTerminalExit;
|
|
2924
|
-
// the render loop is already idle, so this cannot hot-spin (see #4144).
|
|
2925
|
-
await this.runtimeHost.dispose();
|
|
2926
|
-
this.themeController.disableAutoSync();
|
|
2927
|
-
await this.ui.terminal.drainInput(1000);
|
|
2928
|
-
this.stop();
|
|
2929
|
-
process.exit(0);
|
|
2930
|
-
}
|
|
2931
|
-
// Interactive quit (Ctrl+D, Ctrl+C, /quit, extension shutdown()). Stop the
|
|
2932
|
-
// TUI before emitting shutdown events so extension UI cleanup cannot repaint
|
|
2933
|
-
// the final frame while the process is exiting.
|
|
2934
|
-
// Drain any in-flight Kitty key release events before stopping.
|
|
2935
|
-
// This prevents escape sequences from leaking to the parent shell over slow SSH.
|
|
2936
|
-
this.themeController.disableAutoSync();
|
|
2937
|
-
await this.ui.terminal.drainInput(1000);
|
|
2938
|
-
this.stop();
|
|
2939
|
-
await this.runtimeHost.dispose();
|
|
2940
|
-
const resumeCommand = formatResumeCommand(this.sessionManager);
|
|
2941
|
-
if (resumeCommand) {
|
|
2942
|
-
process.stdout.write(`${chalk.dim("To resume this session:")} ${resumeCommand}\n`);
|
|
2943
|
-
}
|
|
2944
|
-
process.exit(0);
|
|
2945
|
-
}
|
|
2946
|
-
emergencyTerminalExit() {
|
|
2947
|
-
this.isShuttingDown = true;
|
|
2948
|
-
this.unregisterSignalHandlers();
|
|
2949
|
-
killTrackedDetachedChildren();
|
|
2950
|
-
// The terminal is gone. Do not run normal shutdown because TUI and
|
|
2951
|
-
// extension cleanup can write restore sequences and re-trigger EIO.
|
|
2952
|
-
process.exit(129);
|
|
2953
|
-
}
|
|
2954
|
-
/**
|
|
2955
|
-
* Last-resort handler for uncaught exceptions. The TUI puts stdin into raw
|
|
2956
|
-
* mode and hides the cursor; without this handler, an uncaught throw from
|
|
2957
|
-
* anywhere (e.g. an extension's async `ChildProcess.on("exit")` callback)
|
|
2958
|
-
* tears down the process while leaving the terminal in raw mode with no
|
|
2959
|
-
* cursor, requiring `stty sane && reset` to recover.
|
|
2960
|
-
*
|
|
2961
|
-
* Unlike emergencyTerminalExit, the terminal is still alive here, so we
|
|
2962
|
-
* call ui.stop() to restore cooked mode, the cursor, and disable bracketed
|
|
2963
|
-
* paste / Kitty / modifyOtherKeys sequences.
|
|
2964
|
-
*/
|
|
2965
|
-
uncaughtCrash(error) {
|
|
2966
|
-
if (this.isShuttingDown) {
|
|
2967
|
-
process.exit(1);
|
|
2968
|
-
}
|
|
2969
|
-
this.isShuttingDown = true;
|
|
2970
|
-
try {
|
|
2971
|
-
this.unregisterSignalHandlers();
|
|
2972
|
-
}
|
|
2973
|
-
catch { }
|
|
2974
|
-
try {
|
|
2975
|
-
killTrackedDetachedChildren();
|
|
2976
|
-
}
|
|
2977
|
-
catch { }
|
|
2978
|
-
try {
|
|
2979
|
-
this.ui.stop();
|
|
2980
|
-
}
|
|
2981
|
-
catch { }
|
|
2982
|
-
console.error("pi exiting due to uncaughtException:");
|
|
2983
|
-
console.error(error);
|
|
2984
|
-
process.exit(1);
|
|
2985
|
-
}
|
|
2986
|
-
/**
|
|
2987
|
-
* Check if shutdown was requested and perform shutdown if so.
|
|
2988
|
-
*/
|
|
2989
|
-
async checkShutdownRequested() {
|
|
2990
|
-
if (!this.shutdownRequested)
|
|
2991
|
-
return;
|
|
2992
|
-
await this.shutdown();
|
|
2993
|
-
}
|
|
2994
|
-
registerSignalHandlers() {
|
|
2995
|
-
this.unregisterSignalHandlers();
|
|
2996
|
-
const signals = ["SIGTERM"];
|
|
2997
|
-
if (process.platform !== "win32") {
|
|
2998
|
-
signals.push("SIGHUP");
|
|
2999
|
-
}
|
|
3000
|
-
for (const signal of signals) {
|
|
3001
|
-
const handler = () => {
|
|
3002
|
-
// SIGHUP no longer hard-exits: graceful shutdown emits session_shutdown
|
|
3003
|
-
// first, then attempts terminal restore. A genuinely dead terminal
|
|
3004
|
-
// surfaces as an EIO on the restore writes, which the stdout/stderr
|
|
3005
|
-
// error handler converts into emergencyTerminalExit (see #4144, #5080).
|
|
3006
|
-
killTrackedDetachedChildren();
|
|
3007
|
-
void this.shutdown({ fromSignal: true });
|
|
3008
|
-
};
|
|
3009
|
-
process.prependListener(signal, handler);
|
|
3010
|
-
this.signalCleanupHandlers.push(() => process.off(signal, handler));
|
|
3011
|
-
}
|
|
3012
|
-
const terminalErrorHandler = (error) => {
|
|
3013
|
-
if (isDeadTerminalError(error)) {
|
|
3014
|
-
this.emergencyTerminalExit();
|
|
3015
|
-
}
|
|
3016
|
-
throw error;
|
|
3017
|
-
};
|
|
3018
|
-
process.stdout.on("error", terminalErrorHandler);
|
|
3019
|
-
process.stderr.on("error", terminalErrorHandler);
|
|
3020
|
-
this.signalCleanupHandlers.push(() => process.stdout.off("error", terminalErrorHandler));
|
|
3021
|
-
this.signalCleanupHandlers.push(() => process.stderr.off("error", terminalErrorHandler));
|
|
3022
|
-
// Restore the terminal before the process dies on any uncaught throw.
|
|
3023
|
-
// Without this, an unhandled exception from extension code (or anywhere
|
|
3024
|
-
// in pi) leaves the terminal in raw mode with no cursor.
|
|
3025
|
-
const uncaughtExceptionHandler = (error) => this.uncaughtCrash(error);
|
|
3026
|
-
process.prependListener("uncaughtException", uncaughtExceptionHandler);
|
|
3027
|
-
this.signalCleanupHandlers.push(() => process.off("uncaughtException", uncaughtExceptionHandler));
|
|
3028
|
-
}
|
|
3029
|
-
unregisterSignalHandlers() {
|
|
3030
|
-
for (const cleanup of this.signalCleanupHandlers) {
|
|
3031
|
-
cleanup();
|
|
3032
|
-
}
|
|
3033
|
-
this.signalCleanupHandlers = [];
|
|
3034
|
-
}
|
|
3035
|
-
handleCtrlZ() {
|
|
3036
|
-
if (process.platform === "win32") {
|
|
3037
|
-
this.showStatus("Suspend to background is not supported on Windows");
|
|
3038
|
-
return;
|
|
3039
|
-
}
|
|
3040
|
-
// Keep the event loop alive while suspended. Without this, stopping the TUI
|
|
3041
|
-
// can leave Node with no ref'ed handles, causing the process to exit on fg
|
|
3042
|
-
// before the SIGCONT handler gets a chance to restore the terminal.
|
|
3043
|
-
const suspendKeepAlive = setInterval(() => { }, 2 ** 30);
|
|
3044
|
-
// Ignore SIGINT while suspended so Ctrl+C in the terminal does not
|
|
3045
|
-
// kill the backgrounded process. The handler is removed on resume.
|
|
3046
|
-
const ignoreSigint = () => { };
|
|
3047
|
-
process.on("SIGINT", ignoreSigint);
|
|
3048
|
-
// Set up handler to restore TUI when resumed
|
|
3049
|
-
process.once("SIGCONT", () => {
|
|
3050
|
-
clearInterval(suspendKeepAlive);
|
|
3051
|
-
process.removeListener("SIGINT", ignoreSigint);
|
|
3052
|
-
this.ui.start();
|
|
3053
|
-
this.ui.requestRender(true);
|
|
3054
|
-
});
|
|
3055
|
-
try {
|
|
3056
|
-
// Stop the TUI (restore terminal to normal mode)
|
|
3057
|
-
this.ui.stop();
|
|
3058
|
-
// Send SIGTSTP to process group (pid=0 means all processes in group)
|
|
3059
|
-
process.kill(0, "SIGTSTP");
|
|
3060
|
-
}
|
|
3061
|
-
catch (error) {
|
|
3062
|
-
clearInterval(suspendKeepAlive);
|
|
3063
|
-
process.removeListener("SIGINT", ignoreSigint);
|
|
3064
|
-
throw error;
|
|
3065
|
-
}
|
|
3066
|
-
}
|
|
3067
|
-
async handleFollowUp() {
|
|
3068
|
-
const text = (this.editor.getExpandedText?.() ?? this.editor.getText()).trim();
|
|
3069
|
-
if (!text)
|
|
3070
|
-
return;
|
|
3071
|
-
// Queue input during compaction (extension commands execute immediately)
|
|
3072
|
-
if (this.session.isCompacting) {
|
|
3073
|
-
if (this.isExtensionCommand(text)) {
|
|
3074
|
-
this.editor.addToHistory?.(text);
|
|
3075
|
-
this.editor.setText("");
|
|
3076
|
-
await this.session.prompt(text);
|
|
3077
|
-
}
|
|
3078
|
-
else {
|
|
3079
|
-
this.queueCompactionMessage(text, "followUp");
|
|
3080
|
-
}
|
|
3081
|
-
return;
|
|
3082
|
-
}
|
|
3083
|
-
// Alt+Enter queues a follow-up message (waits until agent finishes)
|
|
3084
|
-
// This handles extension commands (execute immediately), prompt template expansion, and queueing
|
|
3085
|
-
if (this.session.isStreaming) {
|
|
3086
|
-
this.editor.addToHistory?.(text);
|
|
3087
|
-
this.editor.setText("");
|
|
3088
|
-
await this.session.prompt(text, { streamingBehavior: "followUp" });
|
|
3089
|
-
this.updatePendingMessagesDisplay();
|
|
3090
|
-
this.ui.requestRender();
|
|
3091
|
-
}
|
|
3092
|
-
// If not streaming, Alt+Enter acts like regular Enter (trigger onSubmit)
|
|
3093
|
-
else if (this.editor.onSubmit) {
|
|
3094
|
-
this.editor.setText("");
|
|
3095
|
-
this.editor.onSubmit(text);
|
|
3096
|
-
}
|
|
3097
|
-
}
|
|
3098
|
-
handleDequeue() {
|
|
3099
|
-
const restored = this.restoreQueuedMessagesToEditor();
|
|
3100
|
-
if (restored === 0) {
|
|
3101
|
-
this.showStatus("No queued messages to restore");
|
|
3102
|
-
}
|
|
3103
|
-
else {
|
|
3104
|
-
this.showStatus(`Restored ${restored} queued message${restored > 1 ? "s" : ""} to editor`);
|
|
3105
|
-
}
|
|
3106
|
-
}
|
|
3107
|
-
updateEditorBorderColor() {
|
|
3108
|
-
if (this.isBashMode) {
|
|
3109
|
-
this.editor.borderColor = theme.getBashModeBorderColor();
|
|
3110
|
-
}
|
|
3111
|
-
else {
|
|
3112
|
-
const level = this.session.thinkingLevel || "off";
|
|
3113
|
-
this.editor.borderColor = theme.getThinkingBorderColor(level);
|
|
3114
|
-
}
|
|
3115
|
-
this.ui.requestRender();
|
|
3116
|
-
}
|
|
3117
|
-
cycleThinkingLevel() {
|
|
3118
|
-
const newLevel = this.session.cycleThinkingLevel();
|
|
3119
|
-
if (newLevel === undefined) {
|
|
3120
|
-
this.showStatus("Current model does not support thinking");
|
|
3121
|
-
}
|
|
3122
|
-
else {
|
|
3123
|
-
this.footer.invalidate();
|
|
3124
|
-
this.updateEditorBorderColor();
|
|
3125
|
-
this.showStatus(`Thinking level: ${newLevel}`);
|
|
3126
|
-
}
|
|
3127
|
-
}
|
|
3128
|
-
async cycleModel(direction) {
|
|
3129
|
-
try {
|
|
3130
|
-
const result = await this.session.cycleModel(direction);
|
|
3131
|
-
if (result === undefined) {
|
|
3132
|
-
const msg = this.session.scopedModels.length > 0 ? "Only one model in scope" : "Only one model available";
|
|
3133
|
-
this.showStatus(msg);
|
|
3134
|
-
}
|
|
3135
|
-
else {
|
|
3136
|
-
this.footer.invalidate();
|
|
3137
|
-
this.updateEditorBorderColor();
|
|
3138
|
-
const thinkingStr = result.model.reasoning && result.thinkingLevel !== "off" ? ` (thinking: ${result.thinkingLevel})` : "";
|
|
3139
|
-
this.showStatus(`Switched to ${result.model.name || result.model.id}${thinkingStr}`);
|
|
3140
|
-
void this.maybeWarnAboutAnthropicSubscriptionAuth(result.model);
|
|
3141
|
-
}
|
|
3142
|
-
}
|
|
3143
|
-
catch (error) {
|
|
3144
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
3145
|
-
}
|
|
3146
|
-
}
|
|
3147
|
-
toggleToolOutputExpansion() {
|
|
3148
|
-
this.setToolsExpanded(!this.toolOutputExpanded);
|
|
3149
|
-
}
|
|
3150
|
-
setToolsExpanded(expanded) {
|
|
3151
|
-
this.toolOutputExpanded = expanded;
|
|
3152
|
-
const activeHeader = this.customHeader ?? this.builtInHeader;
|
|
3153
|
-
if (isExpandable(activeHeader)) {
|
|
3154
|
-
activeHeader.setExpanded(expanded);
|
|
3155
|
-
}
|
|
3156
|
-
for (const container of [this.loadedResourcesContainer, this.chatContainer]) {
|
|
3157
|
-
for (const child of container.children) {
|
|
3158
|
-
if (isExpandable(child)) {
|
|
3159
|
-
child.setExpanded(expanded);
|
|
3160
|
-
}
|
|
3161
|
-
}
|
|
3162
|
-
}
|
|
3163
|
-
this.showStatus(`Tool output: ${expanded ? "expanded" : "collapsed"}`);
|
|
3164
|
-
}
|
|
3165
|
-
toggleThinkingBlockVisibility() {
|
|
3166
|
-
this.hideThinkingBlock = !this.hideThinkingBlock;
|
|
3167
|
-
this.settingsManager.setHideThinkingBlock(this.hideThinkingBlock);
|
|
3168
|
-
// Rebuild chat from session messages
|
|
3169
|
-
this.chatContainer.clear();
|
|
3170
|
-
this.rebuildChatFromMessages();
|
|
3171
|
-
// If streaming, re-add the streaming component with updated visibility and re-render
|
|
3172
|
-
if (this.streamingComponent && this.streamingMessage) {
|
|
3173
|
-
this.streamingComponent.setHideThinkingBlock(this.hideThinkingBlock);
|
|
3174
|
-
this.streamingComponent.updateContent(this.streamingMessage);
|
|
3175
|
-
this.chatContainer.addChild(this.streamingComponent);
|
|
3176
|
-
}
|
|
3177
|
-
this.showStatus(`Thinking blocks: ${this.hideThinkingBlock ? "hidden" : "visible"}`);
|
|
3178
|
-
}
|
|
3179
|
-
async handleOpenExternalEditor() {
|
|
3180
|
-
const editorCmd = this.settingsManager.getExternalEditorCommand();
|
|
3181
|
-
const content = this.editor.getExpandedText?.() ?? this.editor.getText();
|
|
3182
|
-
this.ui.stop();
|
|
3183
|
-
try {
|
|
3184
|
-
const result = await editInExternalEditor({
|
|
3185
|
-
command: editorCmd,
|
|
3186
|
-
content,
|
|
3187
|
-
});
|
|
3188
|
-
if (result.status === "complete") {
|
|
3189
|
-
this.editor.setText(result.content);
|
|
3190
|
-
}
|
|
3191
|
-
}
|
|
3192
|
-
finally {
|
|
3193
|
-
this.ui.start();
|
|
3194
|
-
this.ui.requestRender(true);
|
|
3195
|
-
}
|
|
3196
|
-
}
|
|
3197
|
-
// =========================================================================
|
|
3198
|
-
// UI helpers
|
|
3199
|
-
// =========================================================================
|
|
3200
|
-
clearEditor() {
|
|
3201
|
-
this.editor.setText("");
|
|
3202
|
-
this.ui.requestRender();
|
|
3203
|
-
}
|
|
3204
|
-
showError(errorMessage) {
|
|
3205
|
-
errorMessage = this.humanizeUsageLimitError(errorMessage);
|
|
3206
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
3207
|
-
this.chatContainer.addChild(new Text(theme.fg("error", `Error: ${errorMessage}`), 1, 0));
|
|
3208
|
-
this.ui.requestRender();
|
|
3209
|
-
}
|
|
3210
|
-
showWarning(warningMessage) {
|
|
3211
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
3212
|
-
this.chatContainer.addChild(new Text(theme.fg("warning", `Warning: ${warningMessage}`), 1, 0));
|
|
3213
|
-
this.ui.requestRender();
|
|
3214
|
-
}
|
|
3215
|
-
showNewVersionNotification(release) {
|
|
3216
|
-
const action = theme.fg("accent", `${APP_NAME} update`);
|
|
3217
|
-
const updateInstruction = theme.fg("muted", `New version ${release.version} is available. Run `) + action;
|
|
3218
|
-
const changelogUrl = "https://pi.dev/changelog";
|
|
3219
|
-
const changelogLink = getCapabilities().hyperlinks
|
|
3220
|
-
? hyperlink(theme.fg("accent", changelogUrl), changelogUrl)
|
|
3221
|
-
: theme.fg("accent", changelogUrl);
|
|
3222
|
-
const changelogLine = theme.fg("muted", "Changelog: ") + changelogLink;
|
|
3223
|
-
const note = release.note?.trim();
|
|
3224
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
3225
|
-
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
3226
|
-
this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Update Available"))}\n${updateInstruction}`, 1, 0));
|
|
3227
|
-
if (note) {
|
|
3228
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
3229
|
-
this.chatContainer.addChild(new Markdown(note, 1, 0, this.getMarkdownThemeWithSettings(), {
|
|
3230
|
-
color: (text) => theme.fg("muted", text),
|
|
3231
|
-
}));
|
|
3232
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
3233
|
-
}
|
|
3234
|
-
this.chatContainer.addChild(new Text(changelogLine, 1, 0));
|
|
3235
|
-
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
3236
|
-
this.ui.requestRender();
|
|
3237
|
-
}
|
|
3238
|
-
showPackageUpdateNotification(packages) {
|
|
3239
|
-
const action = theme.fg("accent", `${APP_NAME} update --extensions`);
|
|
3240
|
-
const updateInstruction = theme.fg("muted", "Package updates are available. Run ") + action;
|
|
3241
|
-
const packageLines = packages.map((pkg) => `- ${pkg}`).join("\n");
|
|
3242
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
3243
|
-
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
3244
|
-
this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Package Updates Available"))}\n${updateInstruction}\n${theme.fg("muted", "Packages:")}\n${packageLines}`, 1, 0));
|
|
3245
|
-
this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
|
|
3246
|
-
this.ui.requestRender();
|
|
3247
|
-
}
|
|
3248
|
-
/**
|
|
3249
|
-
* Get all queued messages (read-only).
|
|
3250
|
-
* Combines session queue and compaction queue.
|
|
3251
|
-
*/
|
|
3252
|
-
getAllQueuedMessages() {
|
|
3253
|
-
return {
|
|
3254
|
-
steering: [
|
|
3255
|
-
...this.session.getSteeringMessages(),
|
|
3256
|
-
...this.compactionQueuedMessages.filter((msg) => msg.mode === "steer").map((msg) => msg.text),
|
|
3257
|
-
],
|
|
3258
|
-
followUp: [
|
|
3259
|
-
...this.session.getFollowUpMessages(),
|
|
3260
|
-
...this.compactionQueuedMessages.filter((msg) => msg.mode === "followUp").map((msg) => msg.text),
|
|
3261
|
-
],
|
|
3262
|
-
};
|
|
3263
|
-
}
|
|
3264
|
-
/**
|
|
3265
|
-
* Clear all queued messages and return their contents.
|
|
3266
|
-
* Clears both session queue and compaction queue.
|
|
3267
|
-
*/
|
|
3268
|
-
clearAllQueues() {
|
|
3269
|
-
const { steering, followUp } = this.session.clearQueue();
|
|
3270
|
-
const compactionSteering = this.compactionQueuedMessages
|
|
3271
|
-
.filter((msg) => msg.mode === "steer")
|
|
3272
|
-
.map((msg) => msg.text);
|
|
3273
|
-
const compactionFollowUp = this.compactionQueuedMessages
|
|
3274
|
-
.filter((msg) => msg.mode === "followUp")
|
|
3275
|
-
.map((msg) => msg.text);
|
|
3276
|
-
this.compactionQueuedMessages = [];
|
|
3277
|
-
return {
|
|
3278
|
-
steering: [...steering, ...compactionSteering],
|
|
3279
|
-
followUp: [...followUp, ...compactionFollowUp],
|
|
3280
|
-
};
|
|
3281
|
-
}
|
|
3282
|
-
updatePendingMessagesDisplay() {
|
|
3283
|
-
this.pendingMessagesContainer.clear();
|
|
3284
|
-
const { steering: steeringMessages, followUp: followUpMessages } = this.getAllQueuedMessages();
|
|
3285
|
-
if (steeringMessages.length > 0 || followUpMessages.length > 0) {
|
|
3286
|
-
this.pendingMessagesContainer.addChild(new Spacer(1));
|
|
3287
|
-
for (const message of steeringMessages) {
|
|
3288
|
-
const text = theme.fg("dim", `Steering: ${message}`);
|
|
3289
|
-
this.pendingMessagesContainer.addChild(new TruncatedText(text, 1, 0));
|
|
3290
|
-
}
|
|
3291
|
-
for (const message of followUpMessages) {
|
|
3292
|
-
const text = theme.fg("dim", `Follow-up: ${message}`);
|
|
3293
|
-
this.pendingMessagesContainer.addChild(new TruncatedText(text, 1, 0));
|
|
3294
|
-
}
|
|
3295
|
-
const dequeueHint = this.getAppKeyDisplay("app.message.dequeue");
|
|
3296
|
-
const hintText = theme.fg("dim", `↳ ${dequeueHint} to edit all queued messages`);
|
|
3297
|
-
this.pendingMessagesContainer.addChild(new TruncatedText(hintText, 1, 0));
|
|
3298
|
-
}
|
|
3299
|
-
}
|
|
3300
|
-
restoreQueuedMessagesToEditor(options) {
|
|
3301
|
-
const { steering, followUp } = this.clearAllQueues();
|
|
3302
|
-
const allQueued = [...steering, ...followUp];
|
|
3303
|
-
if (allQueued.length === 0) {
|
|
3304
|
-
this.updatePendingMessagesDisplay();
|
|
3305
|
-
if (options?.abort) {
|
|
3306
|
-
this.agent.abort();
|
|
3307
|
-
}
|
|
3308
|
-
return 0;
|
|
3309
|
-
}
|
|
3310
|
-
const queuedText = allQueued.join("\n\n");
|
|
3311
|
-
const currentText = options?.currentText ?? this.editor.getText();
|
|
3312
|
-
const combinedText = [queuedText, currentText].filter((t) => t.trim()).join("\n\n");
|
|
3313
|
-
this.editor.setText(combinedText);
|
|
3314
|
-
this.updatePendingMessagesDisplay();
|
|
3315
|
-
if (options?.abort) {
|
|
3316
|
-
this.agent.abort();
|
|
3317
|
-
}
|
|
3318
|
-
return allQueued.length;
|
|
3319
|
-
}
|
|
3320
|
-
queueCompactionMessage(text, mode) {
|
|
3321
|
-
this.compactionQueuedMessages.push({ text, mode });
|
|
3322
|
-
this.editor.addToHistory?.(text);
|
|
3323
|
-
this.editor.setText("");
|
|
3324
|
-
this.updatePendingMessagesDisplay();
|
|
3325
|
-
this.showStatus("Queued message for after compaction");
|
|
3326
|
-
}
|
|
3327
|
-
isExtensionCommand(text) {
|
|
3328
|
-
if (!text.startsWith("/"))
|
|
3329
|
-
return false;
|
|
3330
|
-
const extensionRunner = this.session.extensionRunner;
|
|
3331
|
-
const spaceIndex = text.indexOf(" ");
|
|
3332
|
-
const commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);
|
|
3333
|
-
return !!extensionRunner.getCommand(commandName);
|
|
3334
|
-
}
|
|
3335
|
-
async flushCompactionQueue(options) {
|
|
3336
|
-
if (this.compactionQueuedMessages.length === 0) {
|
|
3337
|
-
return;
|
|
3338
|
-
}
|
|
3339
|
-
const queuedMessages = [...this.compactionQueuedMessages];
|
|
3340
|
-
this.compactionQueuedMessages = [];
|
|
3341
|
-
this.updatePendingMessagesDisplay();
|
|
3342
|
-
const restoreQueue = (error) => {
|
|
3343
|
-
this.session.clearQueue();
|
|
3344
|
-
this.compactionQueuedMessages = queuedMessages;
|
|
3345
|
-
this.updatePendingMessagesDisplay();
|
|
3346
|
-
this.showError(`Failed to send queued message${queuedMessages.length > 1 ? "s" : ""}: ${error instanceof Error ? error.message : String(error)}`);
|
|
3347
|
-
};
|
|
3348
|
-
try {
|
|
3349
|
-
if (options?.willRetry) {
|
|
3350
|
-
// When retry is pending, queue messages for the retry turn
|
|
3351
|
-
for (const message of queuedMessages) {
|
|
3352
|
-
if (this.isExtensionCommand(message.text)) {
|
|
3353
|
-
await this.session.prompt(message.text);
|
|
3354
|
-
}
|
|
3355
|
-
else if (message.mode === "followUp") {
|
|
3356
|
-
await this.session.followUp(message.text);
|
|
3357
|
-
}
|
|
3358
|
-
else {
|
|
3359
|
-
await this.session.steer(message.text);
|
|
3360
|
-
}
|
|
3361
|
-
}
|
|
3362
|
-
this.updatePendingMessagesDisplay();
|
|
3363
|
-
return;
|
|
3364
|
-
}
|
|
3365
|
-
// Find first non-extension-command message to use as prompt
|
|
3366
|
-
const firstPromptIndex = queuedMessages.findIndex((message) => !this.isExtensionCommand(message.text));
|
|
3367
|
-
if (firstPromptIndex === -1) {
|
|
3368
|
-
// All extension commands - execute them all
|
|
3369
|
-
for (const message of queuedMessages) {
|
|
3370
|
-
await this.session.prompt(message.text);
|
|
3371
|
-
}
|
|
3372
|
-
return;
|
|
3373
|
-
}
|
|
3374
|
-
// Execute any extension commands before the first prompt
|
|
3375
|
-
const preCommands = queuedMessages.slice(0, firstPromptIndex);
|
|
3376
|
-
const firstPrompt = queuedMessages[firstPromptIndex];
|
|
3377
|
-
const rest = queuedMessages.slice(firstPromptIndex + 1);
|
|
3378
|
-
for (const message of preCommands) {
|
|
3379
|
-
await this.session.prompt(message.text);
|
|
3380
|
-
}
|
|
3381
|
-
// Start a prompt when idle, or queue it into a run still finishing compaction.
|
|
3382
|
-
const promptPromise = this.session
|
|
3383
|
-
.prompt(firstPrompt.text, { streamingBehavior: firstPrompt.mode })
|
|
3384
|
-
.catch((error) => {
|
|
3385
|
-
restoreQueue(error);
|
|
3386
|
-
});
|
|
3387
|
-
// Queue remaining messages
|
|
3388
|
-
for (const message of rest) {
|
|
3389
|
-
if (this.isExtensionCommand(message.text)) {
|
|
3390
|
-
await this.session.prompt(message.text);
|
|
3391
|
-
}
|
|
3392
|
-
else if (message.mode === "followUp") {
|
|
3393
|
-
await this.session.followUp(message.text);
|
|
3394
|
-
}
|
|
3395
|
-
else {
|
|
3396
|
-
await this.session.steer(message.text);
|
|
3397
|
-
}
|
|
3398
|
-
}
|
|
3399
|
-
this.updatePendingMessagesDisplay();
|
|
3400
|
-
void promptPromise;
|
|
3401
|
-
}
|
|
3402
|
-
catch (error) {
|
|
3403
|
-
restoreQueue(error);
|
|
3404
|
-
}
|
|
3405
|
-
}
|
|
3406
|
-
/** Move pending bash components from pending area to chat */
|
|
3407
|
-
flushPendingBashComponents() {
|
|
3408
|
-
for (const component of this.pendingBashComponents) {
|
|
3409
|
-
this.pendingMessagesContainer.removeChild(component);
|
|
3410
|
-
this.chatContainer.addChild(component);
|
|
3411
|
-
}
|
|
3412
|
-
this.pendingBashComponents = [];
|
|
3413
|
-
}
|
|
3414
|
-
// =========================================================================
|
|
3415
|
-
// Selectors
|
|
3416
|
-
// =========================================================================
|
|
3417
|
-
/**
|
|
3418
|
-
* Shows a selector component in place of the editor.
|
|
3419
|
-
* @param create Factory that receives a `done` callback and returns the component and focus target
|
|
3420
|
-
*/
|
|
3421
|
-
showSelector(create) {
|
|
3422
|
-
const done = () => {
|
|
3423
|
-
this.editorContainer.clear();
|
|
3424
|
-
this.editorContainer.addChild(this.editor);
|
|
3425
|
-
this.ui.setFocus(this.editor);
|
|
3426
|
-
};
|
|
3427
|
-
const { component, focus } = create(done);
|
|
3428
|
-
this.editorContainer.clear();
|
|
3429
|
-
this.editorContainer.addChild(component);
|
|
3430
|
-
this.ui.setFocus(focus);
|
|
3431
|
-
this.ui.requestRender();
|
|
3432
|
-
}
|
|
3433
|
-
showSettingsSelector() {
|
|
3434
|
-
this.showSelector((done) => {
|
|
3435
|
-
const selector = new SettingsSelectorComponent({
|
|
3436
|
-
autoCompact: this.session.autoCompactionEnabled,
|
|
3437
|
-
showImages: this.settingsManager.getShowImages(),
|
|
3438
|
-
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
3439
|
-
autoResizeImages: this.settingsManager.getImageAutoResize(),
|
|
3440
|
-
blockImages: this.settingsManager.getBlockImages(),
|
|
3441
|
-
enableSkillCommands: this.settingsManager.getEnableSkillCommands(),
|
|
3442
|
-
steeringMode: this.session.steeringMode,
|
|
3443
|
-
followUpMode: this.session.followUpMode,
|
|
3444
|
-
transport: this.settingsManager.getTransport(),
|
|
3445
|
-
httpIdleTimeoutMs: this.settingsManager.getHttpIdleTimeoutMs(),
|
|
3446
|
-
thinkingLevel: this.session.thinkingLevel,
|
|
3447
|
-
availableThinkingLevels: this.session.getAvailableThinkingLevels(),
|
|
3448
|
-
currentTheme: this.settingsManager.getThemeSetting() || "dark",
|
|
3449
|
-
terminalTheme: this.themeController.getTerminalTheme(),
|
|
3450
|
-
availableThemes: getAvailableThemes(),
|
|
3451
|
-
hideThinkingBlock: this.hideThinkingBlock,
|
|
3452
|
-
collapseChangelog: this.settingsManager.getCollapseChangelog(),
|
|
3453
|
-
enableInstallTelemetry: this.settingsManager.getEnableInstallTelemetry(),
|
|
3454
|
-
doubleEscapeAction: this.settingsManager.getDoubleEscapeAction(),
|
|
3455
|
-
treeFilterMode: this.settingsManager.getTreeFilterMode(),
|
|
3456
|
-
showHardwareCursor: this.settingsManager.getShowHardwareCursor(),
|
|
3457
|
-
showCacheMissNotices: this.settingsManager.getShowCacheMissNotices(),
|
|
3458
|
-
defaultProjectTrust: this.settingsManager.getDefaultProjectTrust(),
|
|
3459
|
-
editorPaddingX: this.settingsManager.getEditorPaddingX(),
|
|
3460
|
-
outputPad: this.settingsManager.getOutputPad(),
|
|
3461
|
-
autocompleteMaxVisible: this.settingsManager.getAutocompleteMaxVisible(),
|
|
3462
|
-
quietStartup: this.settingsManager.getQuietStartup(),
|
|
3463
|
-
clearOnShrink: this.settingsManager.getClearOnShrink(),
|
|
3464
|
-
showTerminalProgress: this.settingsManager.getShowTerminalProgress(),
|
|
3465
|
-
warnings: this.settingsManager.getWarnings(),
|
|
3466
|
-
}, {
|
|
3467
|
-
onAutoCompactChange: (enabled) => {
|
|
3468
|
-
this.session.setAutoCompactionEnabled(enabled);
|
|
3469
|
-
this.footer.setAutoCompactEnabled(enabled);
|
|
3470
|
-
},
|
|
3471
|
-
onShowImagesChange: (enabled) => {
|
|
3472
|
-
this.settingsManager.setShowImages(enabled);
|
|
3473
|
-
for (const child of this.chatContainer.children) {
|
|
3474
|
-
if (child instanceof ToolExecutionComponent) {
|
|
3475
|
-
child.setShowImages(enabled);
|
|
3476
|
-
}
|
|
3477
|
-
}
|
|
3478
|
-
},
|
|
3479
|
-
onImageWidthCellsChange: (width) => {
|
|
3480
|
-
this.settingsManager.setImageWidthCells(width);
|
|
3481
|
-
for (const child of this.chatContainer.children) {
|
|
3482
|
-
if (child instanceof ToolExecutionComponent) {
|
|
3483
|
-
child.setImageWidthCells(width);
|
|
3484
|
-
}
|
|
3485
|
-
}
|
|
3486
|
-
},
|
|
3487
|
-
onAutoResizeImagesChange: (enabled) => {
|
|
3488
|
-
this.settingsManager.setImageAutoResize(enabled);
|
|
3489
|
-
},
|
|
3490
|
-
onBlockImagesChange: (blocked) => {
|
|
3491
|
-
this.settingsManager.setBlockImages(blocked);
|
|
3492
|
-
},
|
|
3493
|
-
onEnableSkillCommandsChange: (enabled) => {
|
|
3494
|
-
this.settingsManager.setEnableSkillCommands(enabled);
|
|
3495
|
-
this.setupAutocompleteProvider();
|
|
3496
|
-
},
|
|
3497
|
-
onSteeringModeChange: (mode) => {
|
|
3498
|
-
this.session.setSteeringMode(mode);
|
|
3499
|
-
},
|
|
3500
|
-
onFollowUpModeChange: (mode) => {
|
|
3501
|
-
this.session.setFollowUpMode(mode);
|
|
3502
|
-
},
|
|
3503
|
-
onTransportChange: (transport) => {
|
|
3504
|
-
this.settingsManager.setTransport(transport);
|
|
3505
|
-
this.session.agent.transport = transport;
|
|
3506
|
-
},
|
|
3507
|
-
onHttpIdleTimeoutMsChange: (timeoutMs) => {
|
|
3508
|
-
this.settingsManager.setHttpIdleTimeoutMs(timeoutMs);
|
|
3509
|
-
configureHttpDispatcher(timeoutMs);
|
|
3510
|
-
this.showStatus(`HTTP idle timeout: ${formatHttpIdleTimeoutMs(timeoutMs)}`);
|
|
3511
|
-
},
|
|
3512
|
-
onThinkingLevelChange: (level) => {
|
|
3513
|
-
this.session.setThinkingLevel(level);
|
|
3514
|
-
this.footer.invalidate();
|
|
3515
|
-
this.updateEditorBorderColor();
|
|
3516
|
-
},
|
|
3517
|
-
onThemeChange: (themeSetting) => {
|
|
3518
|
-
this.settingsManager.setTheme(themeSetting);
|
|
3519
|
-
void this.themeController.applyFromSettings();
|
|
3520
|
-
},
|
|
3521
|
-
onThemePreview: (themeName) => this.themeController.preview(themeName),
|
|
3522
|
-
onHideThinkingBlockChange: (hidden) => {
|
|
3523
|
-
this.hideThinkingBlock = hidden;
|
|
3524
|
-
this.settingsManager.setHideThinkingBlock(hidden);
|
|
3525
|
-
for (const child of this.chatContainer.children) {
|
|
3526
|
-
if (child instanceof AssistantMessageComponent) {
|
|
3527
|
-
child.setHideThinkingBlock(hidden);
|
|
3528
|
-
}
|
|
3529
|
-
}
|
|
3530
|
-
this.chatContainer.clear();
|
|
3531
|
-
this.rebuildChatFromMessages();
|
|
3532
|
-
},
|
|
3533
|
-
onShowCacheMissNoticesChange: (shown) => {
|
|
3534
|
-
this.settingsManager.setShowCacheMissNotices(shown);
|
|
3535
|
-
this.rebuildChatFromMessages();
|
|
3536
|
-
},
|
|
3537
|
-
onCollapseChangelogChange: (collapsed) => {
|
|
3538
|
-
this.settingsManager.setCollapseChangelog(collapsed);
|
|
3539
|
-
},
|
|
3540
|
-
onEnableInstallTelemetryChange: (enabled) => {
|
|
3541
|
-
this.settingsManager.setEnableInstallTelemetry(enabled);
|
|
3542
|
-
},
|
|
3543
|
-
onQuietStartupChange: (enabled) => {
|
|
3544
|
-
this.settingsManager.setQuietStartup(enabled);
|
|
3545
|
-
},
|
|
3546
|
-
onDefaultProjectTrustChange: (defaultProjectTrust) => {
|
|
3547
|
-
this.settingsManager.setDefaultProjectTrust(defaultProjectTrust);
|
|
3548
|
-
},
|
|
3549
|
-
onDoubleEscapeActionChange: (action) => {
|
|
3550
|
-
this.settingsManager.setDoubleEscapeAction(action);
|
|
3551
|
-
},
|
|
3552
|
-
onTreeFilterModeChange: (mode) => {
|
|
3553
|
-
this.settingsManager.setTreeFilterMode(mode);
|
|
3554
|
-
},
|
|
3555
|
-
onShowHardwareCursorChange: (enabled) => {
|
|
3556
|
-
this.settingsManager.setShowHardwareCursor(enabled);
|
|
3557
|
-
this.ui.setShowHardwareCursor(enabled);
|
|
3558
|
-
},
|
|
3559
|
-
onEditorPaddingXChange: (padding) => {
|
|
3560
|
-
this.settingsManager.setEditorPaddingX(padding);
|
|
3561
|
-
this.defaultEditor.setPaddingX(padding);
|
|
3562
|
-
if (this.editor !== this.defaultEditor && this.editor.setPaddingX !== undefined) {
|
|
3563
|
-
this.editor.setPaddingX(padding);
|
|
3564
|
-
}
|
|
3565
|
-
},
|
|
3566
|
-
onOutputPadChange: (padding) => {
|
|
3567
|
-
this.settingsManager.setOutputPad(padding);
|
|
3568
|
-
this.outputPad = padding;
|
|
3569
|
-
if (this.streamingComponent || this.session.isStreaming) {
|
|
3570
|
-
for (const child of this.chatContainer.children) {
|
|
3571
|
-
if (child instanceof AssistantMessageComponent ||
|
|
3572
|
-
child instanceof CustomMessageComponent ||
|
|
3573
|
-
child instanceof UserMessageComponent) {
|
|
3574
|
-
child.setOutputPad(padding);
|
|
3575
|
-
}
|
|
3576
|
-
}
|
|
3577
|
-
if (this.streamingComponent) {
|
|
3578
|
-
this.streamingComponent.setOutputPad(padding);
|
|
3579
|
-
}
|
|
3580
|
-
this.ui.requestRender();
|
|
3581
|
-
return;
|
|
3582
|
-
}
|
|
3583
|
-
this.rebuildChatFromMessages();
|
|
3584
|
-
},
|
|
3585
|
-
onAutocompleteMaxVisibleChange: (maxVisible) => {
|
|
3586
|
-
this.settingsManager.setAutocompleteMaxVisible(maxVisible);
|
|
3587
|
-
this.defaultEditor.setAutocompleteMaxVisible(maxVisible);
|
|
3588
|
-
if (this.editor !== this.defaultEditor && this.editor.setAutocompleteMaxVisible !== undefined) {
|
|
3589
|
-
this.editor.setAutocompleteMaxVisible(maxVisible);
|
|
3590
|
-
}
|
|
3591
|
-
},
|
|
3592
|
-
onClearOnShrinkChange: (enabled) => {
|
|
3593
|
-
this.settingsManager.setClearOnShrink(enabled);
|
|
3594
|
-
this.ui.setClearOnShrink(enabled);
|
|
3595
|
-
if (!enabled && !this.activeStatusIndicator) {
|
|
3596
|
-
this.statusContainer.clear();
|
|
3597
|
-
}
|
|
3598
|
-
},
|
|
3599
|
-
onShowTerminalProgressChange: (enabled) => {
|
|
3600
|
-
this.settingsManager.setShowTerminalProgress(enabled);
|
|
3601
|
-
},
|
|
3602
|
-
onWarningsChange: (warnings) => {
|
|
3603
|
-
this.settingsManager.setWarnings(warnings);
|
|
3604
|
-
},
|
|
3605
|
-
onCancel: () => {
|
|
3606
|
-
done();
|
|
3607
|
-
this.ui.requestRender();
|
|
3608
|
-
},
|
|
3609
|
-
});
|
|
3610
|
-
return { component: selector, focus: selector.getSettingsList() };
|
|
3611
|
-
});
|
|
3612
|
-
}
|
|
3613
|
-
async handleModelCommand(searchTerm) {
|
|
3614
|
-
if (!searchTerm) {
|
|
3615
|
-
this.showModelSelector();
|
|
3616
|
-
return;
|
|
3617
|
-
}
|
|
3618
|
-
const model = await this.findExactModelMatch(searchTerm);
|
|
3619
|
-
if (model) {
|
|
3620
|
-
try {
|
|
3621
|
-
await this.session.setModel(model);
|
|
3622
|
-
this.footer.invalidate();
|
|
3623
|
-
this.updateEditorBorderColor();
|
|
3624
|
-
this.showStatus(`Model: ${model.id}`);
|
|
3625
|
-
void this.maybeWarnAboutAnthropicSubscriptionAuth(model);
|
|
3626
|
-
this.checkDaxnutsEasterEgg(model);
|
|
3627
|
-
}
|
|
3628
|
-
catch (error) {
|
|
3629
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
3630
|
-
}
|
|
3631
|
-
return;
|
|
3632
|
-
}
|
|
3633
|
-
this.showModelSelector(searchTerm);
|
|
3634
|
-
}
|
|
3635
|
-
async findExactModelMatch(searchTerm) {
|
|
3636
|
-
const models = await this.getModelCandidates();
|
|
3637
|
-
return findExactModelReferenceMatch(searchTerm, models);
|
|
3638
|
-
}
|
|
3639
|
-
async getModelCandidates() {
|
|
3640
|
-
if (this.session.scopedModels.length > 0) {
|
|
3641
|
-
return this.session.scopedModels.map((scoped) => scoped.model);
|
|
3642
|
-
}
|
|
3643
|
-
try {
|
|
3644
|
-
await this.session.modelRuntime.refresh();
|
|
3645
|
-
return [...(await this.session.modelRuntime.getAvailable())];
|
|
3646
|
-
}
|
|
3647
|
-
catch {
|
|
3648
|
-
return [];
|
|
3649
|
-
}
|
|
3650
|
-
}
|
|
3651
|
-
/** Update the footer's available provider count from the current snapshot without refreshing catalogs. */
|
|
3652
|
-
updateAvailableProviderCount() {
|
|
3653
|
-
const models = this.session.scopedModels.length > 0
|
|
3654
|
-
? this.session.scopedModels.map((scoped) => scoped.model)
|
|
3655
|
-
: this.session.modelRuntime.getAvailableSnapshot();
|
|
3656
|
-
const uniqueProviders = new Set(models.map((model) => model.provider));
|
|
3657
|
-
this.footerDataProvider.setAvailableProviderCount(uniqueProviders.size);
|
|
3658
|
-
}
|
|
3659
|
-
async maybeWarnAboutAnthropicSubscriptionAuth(model = this.session.model) {
|
|
3660
|
-
if (this.settingsManager.getWarnings().anthropicExtraUsage === false) {
|
|
3661
|
-
return;
|
|
3662
|
-
}
|
|
3663
|
-
if (this.anthropicSubscriptionWarningShown) {
|
|
3664
|
-
return;
|
|
3665
|
-
}
|
|
3666
|
-
if (!model || model.provider !== "anthropic") {
|
|
3667
|
-
return;
|
|
3668
|
-
}
|
|
3669
|
-
try {
|
|
3670
|
-
if ((await this.session.modelRuntime.checkAuth("anthropic"))?.type === "oauth") {
|
|
3671
|
-
this.anthropicSubscriptionWarningShown = true;
|
|
3672
|
-
this.showWarning(ANTHROPIC_SUBSCRIPTION_AUTH_WARNING);
|
|
3673
|
-
return;
|
|
3674
|
-
}
|
|
3675
|
-
const apiKey = (await this.session.modelRuntime.getAuth(model.provider))?.auth.apiKey;
|
|
3676
|
-
if (!isAnthropicSubscriptionAuthKey(apiKey)) {
|
|
3677
|
-
return;
|
|
3678
|
-
}
|
|
3679
|
-
this.anthropicSubscriptionWarningShown = true;
|
|
3680
|
-
this.showWarning(ANTHROPIC_SUBSCRIPTION_AUTH_WARNING);
|
|
3681
|
-
}
|
|
3682
|
-
catch {
|
|
3683
|
-
// Ignore auth lookup failures for warning-only checks.
|
|
3684
|
-
}
|
|
3685
|
-
}
|
|
3686
|
-
maybeSaveImplicitProjectTrustAfterReload() {
|
|
3687
|
-
const cwd = this.sessionManager.getCwd();
|
|
3688
|
-
if (this.autoTrustOnReloadCwd !== cwd) {
|
|
3689
|
-
return false;
|
|
3690
|
-
}
|
|
3691
|
-
if (!this.settingsManager.isProjectTrusted() || !hasTrustRequiringProjectResources(cwd)) {
|
|
3692
|
-
return false;
|
|
3693
|
-
}
|
|
3694
|
-
const trustStore = new ProjectTrustStore(this.runtimeHost.services.agentDir);
|
|
3695
|
-
try {
|
|
3696
|
-
if (trustStore.get(cwd) !== null) {
|
|
3697
|
-
this.autoTrustOnReloadCwd = undefined;
|
|
3698
|
-
return false;
|
|
3699
|
-
}
|
|
3700
|
-
trustStore.set(cwd, true);
|
|
3701
|
-
this.autoTrustOnReloadCwd = undefined;
|
|
3702
|
-
return true;
|
|
3703
|
-
}
|
|
3704
|
-
catch (error) {
|
|
3705
|
-
this.showWarning(`Could not save project trust after reload: ${error instanceof Error ? error.message : String(error)}`);
|
|
3706
|
-
return false;
|
|
3707
|
-
}
|
|
3708
|
-
}
|
|
3709
|
-
showTrustSelector() {
|
|
3710
|
-
const cwd = this.sessionManager.getCwd();
|
|
3711
|
-
const trustStore = new ProjectTrustStore(this.runtimeHost.services.agentDir);
|
|
3712
|
-
const savedDecision = trustStore.getEntry(cwd);
|
|
3713
|
-
this.showSelector((done) => {
|
|
3714
|
-
const selector = new TrustSelectorComponent({
|
|
3715
|
-
cwd,
|
|
3716
|
-
savedDecision,
|
|
3717
|
-
projectTrusted: this.settingsManager.isProjectTrusted(),
|
|
3718
|
-
onSelect: (selection) => {
|
|
3719
|
-
trustStore.setMany(selection.updates);
|
|
3720
|
-
done();
|
|
3721
|
-
this.showStatus(`Saved trust decision: ${selection.trusted ? "trusted" : "untrusted"}. Restart pi for this to take effect.`);
|
|
3722
|
-
},
|
|
3723
|
-
onCancel: () => {
|
|
3724
|
-
done();
|
|
3725
|
-
this.ui.requestRender();
|
|
3726
|
-
},
|
|
3727
|
-
});
|
|
3728
|
-
return { component: selector, focus: selector };
|
|
3729
|
-
});
|
|
3730
|
-
}
|
|
3731
|
-
formatUsageLimitDuration(ms) {
|
|
3732
|
-
const totalMinutes = Math.ceil(ms / 60000);
|
|
3733
|
-
const hours = Math.floor(totalMinutes / 60);
|
|
3734
|
-
const minutes = totalMinutes % 60;
|
|
3735
|
-
const parts = [];
|
|
3736
|
-
if (hours > 0) parts.push(hours + "h");
|
|
3737
|
-
if (minutes > 0 || parts.length === 0) parts.push(minutes + "min");
|
|
3738
|
-
return parts.join(" ");
|
|
3739
|
-
}
|
|
3740
|
-
humanizeUsageLimitError(errorMessage) {
|
|
3741
|
-
return String(errorMessage || "").replace(/(~|about\s*)?(\d+)\s*min\b/gi, (_match, prefix, minutes) => {
|
|
3742
|
-
return (prefix || "") + this.formatUsageLimitDuration(Number(minutes) * 60 * 1000);
|
|
3743
|
-
});
|
|
3744
|
-
}
|
|
3745
|
-
extractUsageLimitWaitMs(errorMessage) {
|
|
3746
|
-
const text = String(errorMessage || "");
|
|
3747
|
-
const parsedSeconds = text.match(/"(?:resets_in_seconds|X-Codex-Primary-Reset-After-Seconds|Retry-After)"\s*:?\s*"?(\d+)"?/i)?.[1];
|
|
3748
|
-
if (parsedSeconds) return Number(parsedSeconds) * 1000;
|
|
3749
|
-
const resetAt = text.match(/"(?:resets_at|X-Codex-Primary-Reset-At)"\s*:?\s*"?(\d+)"?/i)?.[1];
|
|
3750
|
-
if (resetAt) {
|
|
3751
|
-
const resetMs = Number(resetAt) * 1000 - Date.now();
|
|
3752
|
-
if (Number.isFinite(resetMs) && resetMs > 0) return resetMs;
|
|
3753
|
-
}
|
|
3754
|
-
const hours = text.match(/(?:~|about\s*)?(\d+)\s*h(?:our)?/i)?.[1];
|
|
3755
|
-
if (hours) return Number(hours) * 60 * 60 * 1000;
|
|
3756
|
-
const minutes = text.match(/(?:~|about\s*)?(\d+)\s*min/i)?.[1];
|
|
3757
|
-
if (minutes) return Number(minutes) * 60 * 1000;
|
|
3758
|
-
const seconds = text.match(/(?:~|about\s*)?(\d+)\s*s(?:ec|econd)?/i)?.[1];
|
|
3759
|
-
if (seconds) return Number(seconds) * 1000;
|
|
3760
|
-
return 5 * 60 * 1000;
|
|
3761
|
-
}
|
|
3762
|
-
getUsageLimitError(event) {
|
|
3763
|
-
const last = event?.messages?.[event.messages.length - 1];
|
|
3764
|
-
const errorMessage = last?.errorMessage || last?.content?.find?.((block) => block?.type === "text")?.text || "";
|
|
3765
|
-
if (last?.role !== "assistant" || last?.stopReason !== "error") return undefined;
|
|
3766
|
-
return /usage limit|try again in/i.test(errorMessage) ? String(errorMessage) : undefined;
|
|
3767
|
-
}
|
|
3768
|
-
removeLastAssistantErrorFromState() {
|
|
3769
|
-
const messages = this.agent.state.messages;
|
|
3770
|
-
const last = messages[messages.length - 1];
|
|
3771
|
-
if (last?.role === "assistant" && last?.stopReason === "error") this.agent.state.messages = messages.slice(0, -1);
|
|
3772
|
-
}
|
|
3773
|
-
async continueAfterUsageLimitRecovery() {
|
|
3774
|
-
try {
|
|
3775
|
-
await this.agent.continue();
|
|
3776
|
-
} catch (error) {
|
|
3777
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
3778
|
-
}
|
|
3779
|
-
}
|
|
3780
|
-
maybeShowUsageLimitRecoveryMenu(event) {
|
|
3781
|
-
const errorMessage = this.getUsageLimitError(event);
|
|
3782
|
-
if (!errorMessage) return;
|
|
3783
|
-
const delayMs = this.extractUsageLimitWaitMs(errorMessage);
|
|
3784
|
-
const waitLabel = "Wait " + this.formatUsageLimitDuration(delayMs) + " then retry";
|
|
3785
|
-
this.showSelector((done) => {
|
|
3786
|
-
const selector = new ExtensionSelectorComponent("Usage limit hit", [waitLabel, "Change model and retry", "Cancel"], async (selected) => {
|
|
3787
|
-
done();
|
|
3788
|
-
if (selected === "Cancel") return;
|
|
3789
|
-
this.removeLastAssistantErrorFromState();
|
|
3790
|
-
if (selected === waitLabel) {
|
|
3791
|
-
const endTime = Date.now() + delayMs;
|
|
3792
|
-
const updateCountdown = () => {
|
|
3793
|
-
const remaining = Math.max(0, endTime - Date.now());
|
|
3794
|
-
this.showStatus("Waiting " + this.formatUsageLimitDuration(remaining) + " for usage limit, then retrying...");
|
|
3795
|
-
this.ui.requestRender();
|
|
3796
|
-
};
|
|
3797
|
-
updateCountdown();
|
|
3798
|
-
const countdownInterval = setInterval(updateCountdown, 60000);
|
|
3799
|
-
setTimeout(() => { clearInterval(countdownInterval); void this.continueAfterUsageLimitRecovery(); }, delayMs);
|
|
3800
|
-
return;
|
|
3801
|
-
}
|
|
3802
|
-
this.showUsageLimitModelSelector();
|
|
3803
|
-
}, () => {
|
|
3804
|
-
done();
|
|
3805
|
-
this.ui.requestRender();
|
|
3806
|
-
}, { tui: this.ui });
|
|
3807
|
-
return { component: selector, focus: selector };
|
|
3808
|
-
});
|
|
3809
|
-
}
|
|
3810
|
-
showUsageLimitModelSelector(initialSearchInput) {
|
|
3811
|
-
this.showSelector((done) => {
|
|
3812
|
-
const selector = new ModelSelectorComponent(this.ui, this.session.model, this.settingsManager, this.session.modelRegistry, this.session.scopedModels, async (model) => {
|
|
3813
|
-
try {
|
|
3814
|
-
await this.session.setModel(model);
|
|
3815
|
-
this.footer.invalidate();
|
|
3816
|
-
this.updateEditorBorderColor();
|
|
3817
|
-
done();
|
|
3818
|
-
this.showStatus("Model: " + model.id + "; retrying...");
|
|
3819
|
-
void this.maybeWarnAboutAnthropicSubscriptionAuth(model);
|
|
3820
|
-
this.checkDaxnutsEasterEgg(model);
|
|
3821
|
-
void this.continueAfterUsageLimitRecovery();
|
|
3822
|
-
} catch (error) {
|
|
3823
|
-
done();
|
|
3824
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
3825
|
-
}
|
|
3826
|
-
}, () => {
|
|
3827
|
-
done();
|
|
3828
|
-
this.ui.requestRender();
|
|
3829
|
-
}, initialSearchInput);
|
|
3830
|
-
return { component: selector, focus: selector };
|
|
3831
|
-
});
|
|
3832
|
-
}
|
|
3833
|
-
getPrismReadOnlyToolNames() {
|
|
3834
|
-
const readOnly = new Set(["read", "grep", "find", "ls", "obsidian_memory_read", "obsidian_memory_search", "obsidian_memory_list", "web_search", "web_fetch"]);
|
|
3835
|
-
return this.session.getActiveToolNames().filter((name) => readOnly.has(name));
|
|
3836
|
-
}
|
|
3837
|
-
setPrismPlanStatus(enabled) {
|
|
3838
|
-
this.prismPlanMode = enabled;
|
|
3839
|
-
this.setExtensionStatus("prism-mode", enabled ? "[Plan]" : undefined);
|
|
3840
|
-
this.footer.invalidate();
|
|
3841
|
-
}
|
|
3842
|
-
async startPrismPlanMode(task) {
|
|
3843
|
-
if (!this.prismPlanPreviousTools) this.prismPlanPreviousTools = this.session.getActiveToolNames();
|
|
3844
|
-
if (this.prismPlanLeafId === undefined) this.prismPlanLeafId = this.session.sessionManager.getLeafId();
|
|
3845
|
-
this.session.setActiveToolsByName(this.getPrismReadOnlyToolNames());
|
|
3846
|
-
this.setPrismPlanStatus(true);
|
|
3847
|
-
globalThis.__PRISM_MANIFEST_TIER_OVERRIDE__ = "plan";
|
|
3848
|
-
const prompt = "PLAN MODE ACTIVE. You must only inspect and plan. Do not modify files or run mutating commands. Ask concise clarification questions if needed. When ready, write the full implementation plan, then end with exactly: /plan:ready\n\nTask: " + (task || "Create an implementation plan for the user's next change.");
|
|
3849
|
-
await this.session.prompt(prompt);
|
|
3850
|
-
}
|
|
3851
|
-
getPrismLastAssistantText(event) {
|
|
3852
|
-
const last = event?.messages?.[event.messages.length - 1];
|
|
3853
|
-
if (last?.role !== "assistant") return "";
|
|
3854
|
-
return (last.content || []).map((block) => block?.type === "text" ? block.text || "" : "").join("\n");
|
|
3855
|
-
}
|
|
3856
|
-
maybeShowPrismPlanApprovalMenu(event) {
|
|
3857
|
-
if (!this.prismPlanMode) return;
|
|
3858
|
-
const text = this.getPrismLastAssistantText(event);
|
|
3859
|
-
if (!text.includes("/plan:ready")) return;
|
|
3860
|
-
this.prismPlanText = text.replace("/plan:ready", "").trim();
|
|
3861
|
-
this.showSelector((done) => {
|
|
3862
|
-
const selector = new ExtensionSelectorComponent("Plan ready", ["Approve -> make changes", "Reject -> add more context", "Cancel plan"], async (selected) => {
|
|
3863
|
-
done();
|
|
3864
|
-
if (selected.startsWith("Approve")) return void this.approvePrismPlan();
|
|
3865
|
-
if (selected.startsWith("Reject")) return this.rejectPrismPlan();
|
|
3866
|
-
this.cancelPrismPlan();
|
|
3867
|
-
}, () => {
|
|
3868
|
-
done();
|
|
3869
|
-
this.ui.requestRender();
|
|
3870
|
-
}, { tui: this.ui });
|
|
3871
|
-
return { component: selector, focus: selector };
|
|
3872
|
-
});
|
|
3873
|
-
}
|
|
3874
|
-
restorePrismPlanTools() {
|
|
3875
|
-
if (this.prismPlanPreviousTools) this.session.setActiveToolsByName(this.prismPlanPreviousTools);
|
|
3876
|
-
this.prismPlanPreviousTools = undefined;
|
|
3877
|
-
if (globalThis.__PRISM_MANIFEST_TIER_OVERRIDE__ === "plan") globalThis.__PRISM_MANIFEST_TIER_OVERRIDE__ = undefined;
|
|
3878
|
-
this.setPrismPlanStatus(false);
|
|
3879
|
-
}
|
|
3880
|
-
restorePrismPlanBranch() {
|
|
3881
|
-
if (this.prismPlanLeafId === undefined) return;
|
|
3882
|
-
if (this.prismPlanLeafId === null) {
|
|
3883
|
-
this.session.sessionManager.resetLeaf();
|
|
3884
|
-
} else {
|
|
3885
|
-
this.session.sessionManager.branch(this.prismPlanLeafId);
|
|
3886
|
-
}
|
|
3887
|
-
this.agent.state.messages = this.session.sessionManager.buildSessionContext().messages;
|
|
3888
|
-
this.prismPlanLeafId = undefined;
|
|
3889
|
-
}
|
|
3890
|
-
async approvePrismPlan() {
|
|
3891
|
-
if (!this.prismPlanMode) return this.showWarning("No active plan to approve.");
|
|
3892
|
-
const planText = this.prismPlanText || "";
|
|
3893
|
-
this.prismPlanText = undefined;
|
|
3894
|
-
this.restorePrismPlanBranch();
|
|
3895
|
-
this.restorePrismPlanTools();
|
|
3896
|
-
await this.session.prompt("Implement this plan:\n\n" + planText);
|
|
3897
|
-
}
|
|
3898
|
-
rejectPrismPlan() {
|
|
3899
|
-
if (!this.prismPlanMode) return this.showWarning("No active plan to reject.");
|
|
3900
|
-
this.prismPlanText = undefined;
|
|
3901
|
-
this.editor.setText("/plan ");
|
|
3902
|
-
this.showStatus("Add more context after /plan and submit.");
|
|
3903
|
-
this.ui.requestRender();
|
|
3904
|
-
}
|
|
3905
|
-
cancelPrismPlan() {
|
|
3906
|
-
if (!this.prismPlanMode) return this.showWarning("No active plan to cancel.");
|
|
3907
|
-
this.restorePrismPlanBranch();
|
|
3908
|
-
this.prismPlanText = undefined;
|
|
3909
|
-
this.restorePrismPlanTools();
|
|
3910
|
-
this.showStatus("Plan cancelled");
|
|
3911
|
-
this.ui.requestRender();
|
|
3912
|
-
}
|
|
3913
|
-
showModelSelector(initialSearchInput) {
|
|
3914
|
-
this.showSelector((done) => {
|
|
3915
|
-
const selector = new ModelSelectorComponent(this.ui, this.session.model, this.settingsManager, this.session.modelRuntime, this.session.scopedModels, async (model) => {
|
|
3916
|
-
try {
|
|
3917
|
-
await this.session.setModel(model);
|
|
3918
|
-
this.footer.invalidate();
|
|
3919
|
-
this.updateEditorBorderColor();
|
|
3920
|
-
done();
|
|
3921
|
-
this.showStatus(`Model: ${model.id}`);
|
|
3922
|
-
void this.maybeWarnAboutAnthropicSubscriptionAuth(model);
|
|
3923
|
-
this.checkDaxnutsEasterEgg(model);
|
|
3924
|
-
}
|
|
3925
|
-
catch (error) {
|
|
3926
|
-
done();
|
|
3927
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
3928
|
-
}
|
|
3929
|
-
}, () => {
|
|
3930
|
-
done();
|
|
3931
|
-
this.ui.requestRender();
|
|
3932
|
-
}, initialSearchInput);
|
|
3933
|
-
return { component: selector, focus: selector };
|
|
3934
|
-
});
|
|
3935
|
-
}
|
|
3936
|
-
async showModelsSelector() {
|
|
3937
|
-
// Get all available models
|
|
3938
|
-
await this.session.modelRuntime.refresh();
|
|
3939
|
-
const allModels = [...(await this.session.modelRuntime.getAvailable())];
|
|
3940
|
-
const allModelIds = new Set(allModels.map((model) => `${model.provider}/${model.id}`));
|
|
3941
|
-
const configuredPatterns = this.settingsManager.getEnabledModels();
|
|
3942
|
-
const sessionScopedModels = this.session.scopedModels;
|
|
3943
|
-
if (allModels.length === 0 && !configuredPatterns?.length && sessionScopedModels.length === 0) {
|
|
3944
|
-
this.showStatus("No models available");
|
|
3945
|
-
return;
|
|
3946
|
-
}
|
|
3947
|
-
const configuredScope = configuredPatterns?.length
|
|
3948
|
-
? await resolveModelScopeWithDiagnostics(configuredPatterns, this.session.modelRuntime)
|
|
3949
|
-
: undefined;
|
|
3950
|
-
// Check if session has scoped models (from previous session-only changes or CLI --models)
|
|
3951
|
-
const hasSessionScope = sessionScopedModels.length > 0;
|
|
3952
|
-
// Build enabled model IDs from session state or settings
|
|
3953
|
-
let currentEnabledIds = null;
|
|
3954
|
-
if (hasSessionScope) {
|
|
3955
|
-
// Use current session's scoped models
|
|
3956
|
-
currentEnabledIds = sessionScopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
3957
|
-
}
|
|
3958
|
-
else if (configuredScope) {
|
|
3959
|
-
currentEnabledIds = configuredScope.scopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
3960
|
-
}
|
|
3961
|
-
for (const diagnostic of configuredScope?.diagnostics ?? []) {
|
|
3962
|
-
if (diagnostic.code !== "no-match")
|
|
3963
|
-
continue;
|
|
3964
|
-
currentEnabledIds ??= [];
|
|
3965
|
-
if (!currentEnabledIds.includes(diagnostic.pattern))
|
|
3966
|
-
currentEnabledIds.push(diagnostic.pattern);
|
|
3967
|
-
}
|
|
3968
|
-
// Helper to update session's scoped models (session-only, no persist)
|
|
3969
|
-
const updateSessionModels = async (enabledIds) => {
|
|
3970
|
-
currentEnabledIds = enabledIds === null ? null : [...enabledIds];
|
|
3971
|
-
const hasEnabledAvailableModel = enabledIds?.some((id) => allModelIds.has(id)) ?? false;
|
|
3972
|
-
const allAvailableModelsEnabled = enabledIds !== null && [...allModelIds].every((id) => enabledIds.includes(id));
|
|
3973
|
-
if (enabledIds && hasEnabledAvailableModel && !allAvailableModelsEnabled) {
|
|
3974
|
-
const newScopedModels = await resolveModelScope(enabledIds, this.session.modelRuntime);
|
|
3975
|
-
this.session.setScopedModels(newScopedModels.map((sm) => ({
|
|
3976
|
-
model: sm.model,
|
|
3977
|
-
thinkingLevel: sm.thinkingLevel,
|
|
3978
|
-
})));
|
|
3979
|
-
}
|
|
3980
|
-
else {
|
|
3981
|
-
// All enabled or none enabled = no filter
|
|
3982
|
-
this.session.setScopedModels([]);
|
|
3983
|
-
}
|
|
3984
|
-
await this.updateAvailableProviderCount();
|
|
3985
|
-
this.ui.requestRender();
|
|
3986
|
-
};
|
|
3987
|
-
this.showSelector((done) => {
|
|
3988
|
-
const selector = new ScopedModelsSelectorComponent({
|
|
3989
|
-
allModels,
|
|
3990
|
-
enabledModelIds: currentEnabledIds,
|
|
3991
|
-
}, {
|
|
3992
|
-
onChange: async (enabledIds) => {
|
|
3993
|
-
await updateSessionModels(enabledIds);
|
|
3994
|
-
},
|
|
3995
|
-
onPersist: (enabledIds) => {
|
|
3996
|
-
// Persist to settings
|
|
3997
|
-
const allEnabled = enabledIds !== null &&
|
|
3998
|
-
enabledIds.length === allModels.length &&
|
|
3999
|
-
enabledIds.every((id) => allModelIds.has(id));
|
|
4000
|
-
const newPatterns = enabledIds === null || allEnabled ? undefined : enabledIds;
|
|
4001
|
-
this.settingsManager.setEnabledModels(newPatterns ? [...newPatterns] : undefined);
|
|
4002
|
-
this.showStatus("Model selection saved to settings");
|
|
4003
|
-
},
|
|
4004
|
-
onCancel: () => {
|
|
4005
|
-
done();
|
|
4006
|
-
this.ui.requestRender();
|
|
4007
|
-
},
|
|
4008
|
-
});
|
|
4009
|
-
return { component: selector, focus: selector };
|
|
4010
|
-
});
|
|
4011
|
-
}
|
|
4012
|
-
showUserMessageSelector() {
|
|
4013
|
-
const userMessages = this.session.getUserMessagesForForking();
|
|
4014
|
-
if (userMessages.length === 0) {
|
|
4015
|
-
this.showStatus("No messages to fork from");
|
|
4016
|
-
return;
|
|
4017
|
-
}
|
|
4018
|
-
const initialSelectedId = userMessages[userMessages.length - 1]?.entryId;
|
|
4019
|
-
this.showSelector((done) => {
|
|
4020
|
-
const selector = new UserMessageSelectorComponent(userMessages.map((m) => ({ id: m.entryId, text: m.text })), async (entryId) => {
|
|
4021
|
-
done();
|
|
4022
|
-
try {
|
|
4023
|
-
const result = await this.runtimeHost.fork(entryId);
|
|
4024
|
-
if (result.cancelled) {
|
|
4025
|
-
this.ui.requestRender();
|
|
4026
|
-
return;
|
|
4027
|
-
}
|
|
4028
|
-
this.editor.setText(result.selectedText ?? "");
|
|
4029
|
-
this.showStatus("Forked to new session");
|
|
4030
|
-
}
|
|
4031
|
-
catch (error) {
|
|
4032
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
4033
|
-
}
|
|
4034
|
-
}, () => {
|
|
4035
|
-
done();
|
|
4036
|
-
this.ui.requestRender();
|
|
4037
|
-
}, initialSelectedId);
|
|
4038
|
-
return { component: selector, focus: selector.getMessageList() };
|
|
4039
|
-
});
|
|
4040
|
-
}
|
|
4041
|
-
async handleCloneCommand() {
|
|
4042
|
-
const leafId = this.sessionManager.getLeafId();
|
|
4043
|
-
if (!leafId) {
|
|
4044
|
-
this.showStatus("Nothing to clone yet");
|
|
4045
|
-
return;
|
|
4046
|
-
}
|
|
4047
|
-
try {
|
|
4048
|
-
const result = await this.runtimeHost.fork(leafId, { position: "at" });
|
|
4049
|
-
if (result.cancelled) {
|
|
4050
|
-
this.ui.requestRender();
|
|
4051
|
-
return;
|
|
4052
|
-
}
|
|
4053
|
-
this.editor.setText("");
|
|
4054
|
-
this.showStatus("Cloned to new session");
|
|
4055
|
-
}
|
|
4056
|
-
catch (error) {
|
|
4057
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
4058
|
-
}
|
|
4059
|
-
}
|
|
4060
|
-
showTreeSelector(initialSelectedId) {
|
|
4061
|
-
const tree = this.sessionManager.getTree();
|
|
4062
|
-
const realLeafId = this.sessionManager.getLeafId();
|
|
4063
|
-
const initialFilterMode = this.settingsManager.getTreeFilterMode();
|
|
4064
|
-
if (tree.length === 0) {
|
|
4065
|
-
this.showStatus("No entries in session");
|
|
4066
|
-
return;
|
|
4067
|
-
}
|
|
4068
|
-
this.showSelector((done) => {
|
|
4069
|
-
const selector = new TreeSelectorComponent(tree, realLeafId, this.ui.terminal.rows, async (entryId) => {
|
|
4070
|
-
// Selecting the current leaf is a no-op (already there)
|
|
4071
|
-
if (entryId === this.sessionManager.getLeafId()) {
|
|
4072
|
-
done();
|
|
4073
|
-
this.showStatus("Already at this point");
|
|
4074
|
-
return;
|
|
4075
|
-
}
|
|
4076
|
-
// Ask about summarization
|
|
4077
|
-
done(); // Close selector first
|
|
4078
|
-
// Loop until user makes a complete choice or cancels to tree
|
|
4079
|
-
let wantsSummary = false;
|
|
4080
|
-
let customInstructions;
|
|
4081
|
-
// Check if we should skip the prompt (user preference to always default to no summary)
|
|
4082
|
-
if (!this.settingsManager.getBranchSummarySkipPrompt()) {
|
|
4083
|
-
while (true) {
|
|
4084
|
-
const summaryChoice = await this.showExtensionSelector("Summarize branch?", [
|
|
4085
|
-
"No summary",
|
|
4086
|
-
"Summarize",
|
|
4087
|
-
"Summarize with custom prompt",
|
|
4088
|
-
]);
|
|
4089
|
-
if (summaryChoice === undefined) {
|
|
4090
|
-
// User pressed escape - re-show tree selector with same selection
|
|
4091
|
-
this.showTreeSelector(entryId);
|
|
4092
|
-
return;
|
|
4093
|
-
}
|
|
4094
|
-
wantsSummary = summaryChoice !== "No summary";
|
|
4095
|
-
if (summaryChoice === "Summarize with custom prompt") {
|
|
4096
|
-
customInstructions = await this.showExtensionEditor("Custom summarization instructions");
|
|
4097
|
-
if (customInstructions === undefined) {
|
|
4098
|
-
// User cancelled - loop back to summary selector
|
|
4099
|
-
continue;
|
|
4100
|
-
}
|
|
4101
|
-
}
|
|
4102
|
-
// User made a complete choice
|
|
4103
|
-
break;
|
|
4104
|
-
}
|
|
4105
|
-
}
|
|
4106
|
-
// The user committed to navigating: stop the active response first.
|
|
4107
|
-
if (this.session.isStreaming) {
|
|
4108
|
-
this.restoreQueuedMessagesToEditor();
|
|
4109
|
-
await this.session.abort();
|
|
4110
|
-
}
|
|
4111
|
-
// Set up escape handler and status indicator if summarizing
|
|
4112
|
-
let showingSummaryIndicator = false;
|
|
4113
|
-
const originalOnEscape = this.defaultEditor.onEscape;
|
|
4114
|
-
if (wantsSummary) {
|
|
4115
|
-
this.defaultEditor.onEscape = () => {
|
|
4116
|
-
this.session.abortBranchSummary();
|
|
4117
|
-
};
|
|
4118
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
4119
|
-
this.showStatusIndicator(new BranchSummaryStatusIndicator(this.ui));
|
|
4120
|
-
showingSummaryIndicator = true;
|
|
4121
|
-
this.ui.requestRender();
|
|
4122
|
-
}
|
|
4123
|
-
try {
|
|
4124
|
-
const result = await this.session.navigateTree(entryId, {
|
|
4125
|
-
summarize: wantsSummary,
|
|
4126
|
-
customInstructions,
|
|
4127
|
-
});
|
|
4128
|
-
if (result.aborted) {
|
|
4129
|
-
// Summarization aborted - re-show tree selector with same selection
|
|
4130
|
-
this.showStatus("Branch summarization cancelled");
|
|
4131
|
-
this.showTreeSelector(entryId);
|
|
4132
|
-
return;
|
|
4133
|
-
}
|
|
4134
|
-
if (result.cancelled) {
|
|
4135
|
-
this.showStatus("Navigation cancelled");
|
|
4136
|
-
return;
|
|
4137
|
-
}
|
|
4138
|
-
// Update UI
|
|
4139
|
-
this.chatContainer.clear();
|
|
4140
|
-
this.renderInitialMessages();
|
|
4141
|
-
if (result.editorText && !this.editor.getText().trim()) {
|
|
4142
|
-
this.editor.setText(result.editorText);
|
|
4143
|
-
}
|
|
4144
|
-
this.showStatus("Navigated to selected point");
|
|
4145
|
-
void this.flushCompactionQueue({ willRetry: false });
|
|
4146
|
-
}
|
|
4147
|
-
catch (error) {
|
|
4148
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
4149
|
-
}
|
|
4150
|
-
finally {
|
|
4151
|
-
if (showingSummaryIndicator) {
|
|
4152
|
-
this.clearStatusIndicator("branchSummary");
|
|
4153
|
-
}
|
|
4154
|
-
this.defaultEditor.onEscape = originalOnEscape;
|
|
4155
|
-
}
|
|
4156
|
-
}, () => {
|
|
4157
|
-
done();
|
|
4158
|
-
this.ui.requestRender();
|
|
4159
|
-
}, (entryId, label) => {
|
|
4160
|
-
this.sessionManager.appendLabelChange(entryId, label);
|
|
4161
|
-
this.ui.requestRender();
|
|
4162
|
-
}, initialSelectedId, initialFilterMode);
|
|
4163
|
-
selector.onCopy = async (text) => {
|
|
4164
|
-
if (!text) {
|
|
4165
|
-
this.showError("Selected entry has no text to copy");
|
|
4166
|
-
return;
|
|
4167
|
-
}
|
|
4168
|
-
try {
|
|
4169
|
-
await copyToClipboard(text);
|
|
4170
|
-
this.showStatus("Copied selected message to clipboard");
|
|
4171
|
-
}
|
|
4172
|
-
catch (error) {
|
|
4173
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
4174
|
-
}
|
|
4175
|
-
};
|
|
4176
|
-
return { component: selector, focus: selector };
|
|
4177
|
-
});
|
|
4178
|
-
}
|
|
4179
|
-
showSessionSelector() {
|
|
4180
|
-
this.showSelector((done) => {
|
|
4181
|
-
const selector = new SessionSelectorComponent((onProgress) => SessionManager.list(this.sessionManager.getCwd(), this.sessionManager.getSessionDir(), onProgress), (onProgress) => this.sessionManager.usesDefaultSessionDir()
|
|
4182
|
-
? SessionManager.listAll(onProgress)
|
|
4183
|
-
: SessionManager.listAll(this.sessionManager.getSessionDir(), onProgress), async (sessionPath) => {
|
|
4184
|
-
done();
|
|
4185
|
-
await this.handleResumeSession(sessionPath);
|
|
4186
|
-
}, () => {
|
|
4187
|
-
done();
|
|
4188
|
-
this.ui.requestRender();
|
|
4189
|
-
}, () => {
|
|
4190
|
-
void this.shutdown();
|
|
4191
|
-
}, () => this.ui.requestRender(), {
|
|
4192
|
-
renameSession: async (sessionFilePath, nextName) => {
|
|
4193
|
-
const next = (nextName ?? "").trim();
|
|
4194
|
-
if (!next)
|
|
4195
|
-
return;
|
|
4196
|
-
const mgr = SessionManager.open(sessionFilePath);
|
|
4197
|
-
mgr.appendSessionInfo(next);
|
|
4198
|
-
},
|
|
4199
|
-
showRenameHint: true,
|
|
4200
|
-
keybindings: this.keybindings,
|
|
4201
|
-
}, this.sessionManager.getSessionFile());
|
|
4202
|
-
return { component: selector, focus: selector };
|
|
4203
|
-
});
|
|
4204
|
-
}
|
|
4205
|
-
async handleResumeSession(sessionPath, options) {
|
|
4206
|
-
this.clearStatusIndicator();
|
|
4207
|
-
try {
|
|
4208
|
-
const result = await this.runtimeHost.switchSession(sessionPath, {
|
|
4209
|
-
withSession: options?.withSession,
|
|
4210
|
-
projectTrustContextFactory: (cwd) => this.createProjectTrustContext(cwd),
|
|
4211
|
-
});
|
|
4212
|
-
if (result.cancelled) {
|
|
4213
|
-
return result;
|
|
4214
|
-
}
|
|
4215
|
-
this.showStatus("Resumed session");
|
|
4216
|
-
return result;
|
|
4217
|
-
}
|
|
4218
|
-
catch (error) {
|
|
4219
|
-
if (error instanceof MissingSessionCwdError) {
|
|
4220
|
-
const selectedCwd = await this.promptForMissingSessionCwd(error);
|
|
4221
|
-
if (!selectedCwd) {
|
|
4222
|
-
this.showStatus("Resume cancelled");
|
|
4223
|
-
return { cancelled: true };
|
|
4224
|
-
}
|
|
4225
|
-
const result = await this.runtimeHost.switchSession(sessionPath, {
|
|
4226
|
-
cwdOverride: selectedCwd,
|
|
4227
|
-
withSession: options?.withSession,
|
|
4228
|
-
projectTrustContextFactory: (cwd) => this.createProjectTrustContext(cwd),
|
|
4229
|
-
});
|
|
4230
|
-
if (result.cancelled) {
|
|
4231
|
-
return result;
|
|
4232
|
-
}
|
|
4233
|
-
this.showStatus("Resumed session in current cwd");
|
|
4234
|
-
return result;
|
|
4235
|
-
}
|
|
4236
|
-
return this.handleFatalRuntimeError("Failed to resume session", error);
|
|
4237
|
-
}
|
|
4238
|
-
}
|
|
4239
|
-
getLoginProviderOptions(authType) {
|
|
4240
|
-
const options = [];
|
|
4241
|
-
for (const provider of this.session.modelRuntime.getProviders()) {
|
|
4242
|
-
const authStatus = this.session.modelRuntime.getProviderAuthStatus(provider.id);
|
|
4243
|
-
const status = authStatus.configured
|
|
4244
|
-
? {
|
|
4245
|
-
type: this.session.modelRuntime.isUsingOAuth(provider.id) ? "oauth" : "api_key",
|
|
4246
|
-
source: authStatus.label ?? authStatus.source,
|
|
4247
|
-
}
|
|
4248
|
-
: undefined;
|
|
4249
|
-
if ((!authType || authType === "oauth") && provider.auth.oauth) {
|
|
4250
|
-
options.push({
|
|
4251
|
-
id: provider.id,
|
|
4252
|
-
name: provider.name,
|
|
4253
|
-
authType: "oauth",
|
|
4254
|
-
method: provider.auth.oauth,
|
|
4255
|
-
status,
|
|
4256
|
-
});
|
|
4257
|
-
}
|
|
4258
|
-
if ((!authType || authType === "api_key") && provider.auth.apiKey) {
|
|
4259
|
-
options.push({
|
|
4260
|
-
id: provider.id,
|
|
4261
|
-
name: provider.name,
|
|
4262
|
-
authType: "api_key",
|
|
4263
|
-
method: provider.auth.apiKey,
|
|
4264
|
-
status,
|
|
4265
|
-
});
|
|
4266
|
-
}
|
|
4267
|
-
}
|
|
4268
|
-
return options.sort((a, b) => a.name.localeCompare(b.name));
|
|
4269
|
-
}
|
|
4270
|
-
async getLogoutProviderOptions() {
|
|
4271
|
-
return (await this.session.modelRuntime.listCredentials())
|
|
4272
|
-
.map(({ providerId, type }) => ({
|
|
4273
|
-
id: providerId,
|
|
4274
|
-
name: this.session.modelRuntime.getProvider(providerId)?.name ?? providerId,
|
|
4275
|
-
authType: type,
|
|
4276
|
-
status: { type, source: "stored credential" },
|
|
4277
|
-
}))
|
|
4278
|
-
.sort((a, b) => a.name.localeCompare(b.name));
|
|
4279
|
-
}
|
|
4280
|
-
findLoginProviderOptions(providerRef) {
|
|
4281
|
-
const normalizedProviderRef = providerRef.trim().toLowerCase();
|
|
4282
|
-
if (!normalizedProviderRef) {
|
|
4283
|
-
return [];
|
|
4284
|
-
}
|
|
4285
|
-
return this.getLoginProviderOptions().filter((provider) => provider.id.toLowerCase() === normalizedProviderRef ||
|
|
4286
|
-
provider.name.toLowerCase() === normalizedProviderRef);
|
|
4287
|
-
}
|
|
4288
|
-
async handleLoginCommand(providerRef) {
|
|
4289
|
-
await this.session.modelRuntime.getAvailable();
|
|
4290
|
-
if (!providerRef) {
|
|
4291
|
-
this.showLoginAuthTypeSelector();
|
|
4292
|
-
return;
|
|
4293
|
-
}
|
|
4294
|
-
const providerOptions = this.findLoginProviderOptions(providerRef);
|
|
4295
|
-
if (providerOptions.length === 1) {
|
|
4296
|
-
await this.startProviderLogin(providerOptions[0]);
|
|
4297
|
-
return;
|
|
4298
|
-
}
|
|
4299
|
-
if (providerOptions.length > 1) {
|
|
4300
|
-
const providerIds = new Set(providerOptions.map((provider) => provider.id));
|
|
4301
|
-
if (providerIds.size === 1) {
|
|
4302
|
-
this.showLoginAuthTypeSelector(providerOptions);
|
|
4303
|
-
return;
|
|
4304
|
-
}
|
|
4305
|
-
}
|
|
4306
|
-
this.showLoginProviderSelector(undefined, providerRef);
|
|
4307
|
-
}
|
|
4308
|
-
async startProviderLogin(providerOption) {
|
|
4309
|
-
if (providerOption.authType === "oauth") {
|
|
4310
|
-
await this.showLoginDialog(providerOption.id, providerOption.name);
|
|
4311
|
-
}
|
|
4312
|
-
else if (providerOption.method?.login) {
|
|
4313
|
-
await this.showApiKeyLoginDialog(providerOption.id, providerOption.name);
|
|
4314
|
-
}
|
|
4315
|
-
else {
|
|
4316
|
-
this.showAmbientAuthDialog(providerOption);
|
|
4317
|
-
}
|
|
4318
|
-
}
|
|
4319
|
-
showLoginAuthTypeSelector(providerOptions) {
|
|
4320
|
-
const oauthProvider = providerOptions?.find((provider) => provider.authType === "oauth");
|
|
4321
|
-
const oauthLoginLabel = oauthProvider?.method && "loginLabel" in oauthProvider.method ? oauthProvider.method.loginLabel : undefined;
|
|
4322
|
-
const subscriptionLabel = oauthLoginLabel ?? "Sign in with an account";
|
|
4323
|
-
const apiKeyLabel = "Sign in with an API key";
|
|
4324
|
-
const availableAuthTypes = providerOptions
|
|
4325
|
-
? new Set(providerOptions.map((provider) => provider.authType))
|
|
4326
|
-
: new Set(["oauth", "api_key"]);
|
|
4327
|
-
const options = [];
|
|
4328
|
-
if (availableAuthTypes.has("oauth")) {
|
|
4329
|
-
options.push(subscriptionLabel);
|
|
4330
|
-
}
|
|
4331
|
-
if (availableAuthTypes.has("api_key")) {
|
|
4332
|
-
options.push(apiKeyLabel);
|
|
4333
|
-
}
|
|
4334
|
-
if (options.length === 0) {
|
|
4335
|
-
this.showStatus("No login methods available.");
|
|
4336
|
-
return;
|
|
4337
|
-
}
|
|
4338
|
-
if (providerOptions && options.length === 1) {
|
|
4339
|
-
const providerOption = providerOptions[0];
|
|
4340
|
-
if (providerOption) {
|
|
4341
|
-
void this.startProviderLogin(providerOption);
|
|
4342
|
-
}
|
|
4343
|
-
return;
|
|
4344
|
-
}
|
|
4345
|
-
const title = providerOptions?.[0]
|
|
4346
|
-
? `Select authentication method for ${providerOptions[0].name}:`
|
|
4347
|
-
: "Select authentication method:";
|
|
4348
|
-
this.showSelector((done) => {
|
|
4349
|
-
const selector = new ExtensionSelectorComponent(title, options, (option) => {
|
|
4350
|
-
done();
|
|
4351
|
-
const authType = option === subscriptionLabel ? "oauth" : "api_key";
|
|
4352
|
-
if (providerOptions) {
|
|
4353
|
-
const providerOption = providerOptions.find((provider) => provider.authType === authType);
|
|
4354
|
-
if (providerOption) {
|
|
4355
|
-
void this.startProviderLogin(providerOption);
|
|
4356
|
-
}
|
|
4357
|
-
return;
|
|
4358
|
-
}
|
|
4359
|
-
this.showLoginProviderSelector(authType);
|
|
4360
|
-
}, () => {
|
|
4361
|
-
done();
|
|
4362
|
-
this.ui.requestRender();
|
|
4363
|
-
});
|
|
4364
|
-
return { component: selector, focus: selector };
|
|
4365
|
-
});
|
|
4366
|
-
}
|
|
4367
|
-
showLoginProviderSelector(authType, initialSearchInput) {
|
|
4368
|
-
const providerOptions = this.getLoginProviderOptions(authType);
|
|
4369
|
-
if (providerOptions.length === 0) {
|
|
4370
|
-
const message = authType === "oauth"
|
|
4371
|
-
? "No subscription providers available."
|
|
4372
|
-
: authType === "api_key"
|
|
4373
|
-
? "No API key providers available."
|
|
4374
|
-
: "No login providers available.";
|
|
4375
|
-
this.showStatus(message);
|
|
4376
|
-
return;
|
|
4377
|
-
}
|
|
4378
|
-
this.showSelector((done) => {
|
|
4379
|
-
const selector = new OAuthSelectorComponent("login", providerOptions, async (providerId, selectedAuthType) => {
|
|
4380
|
-
done();
|
|
4381
|
-
const providerOption = providerOptions.find((provider) => provider.id === providerId && provider.authType === selectedAuthType);
|
|
4382
|
-
if (!providerOption) {
|
|
4383
|
-
return;
|
|
4384
|
-
}
|
|
4385
|
-
await this.startProviderLogin(providerOption);
|
|
4386
|
-
}, () => {
|
|
4387
|
-
done();
|
|
4388
|
-
if (authType) {
|
|
4389
|
-
this.showLoginAuthTypeSelector();
|
|
4390
|
-
}
|
|
4391
|
-
else {
|
|
4392
|
-
this.ui.requestRender();
|
|
4393
|
-
}
|
|
4394
|
-
}, initialSearchInput);
|
|
4395
|
-
return { component: selector, focus: selector };
|
|
4396
|
-
});
|
|
4397
|
-
}
|
|
4398
|
-
async showOAuthSelector(mode) {
|
|
4399
|
-
if (mode === "login") {
|
|
4400
|
-
this.showLoginAuthTypeSelector();
|
|
4401
|
-
return;
|
|
4402
|
-
}
|
|
4403
|
-
const providerOptions = await this.getLogoutProviderOptions();
|
|
4404
|
-
if (providerOptions.length === 0) {
|
|
4405
|
-
this.showStatus("No stored credentials to remove. /logout only removes credentials saved by /login; environment variables and models.json config are unchanged.");
|
|
4406
|
-
return;
|
|
4407
|
-
}
|
|
4408
|
-
this.showSelector((done) => {
|
|
4409
|
-
const selector = new OAuthSelectorComponent(mode, providerOptions, async (providerId) => {
|
|
4410
|
-
done();
|
|
4411
|
-
const providerOption = providerOptions.find((provider) => provider.id === providerId);
|
|
4412
|
-
if (!providerOption) {
|
|
4413
|
-
return;
|
|
4414
|
-
}
|
|
4415
|
-
try {
|
|
4416
|
-
await this.session.modelRuntime.logout(providerOption.id);
|
|
4417
|
-
await this.updateAvailableProviderCount();
|
|
4418
|
-
const message = providerOption.authType === "oauth"
|
|
4419
|
-
? `Logged out of ${providerOption.name}`
|
|
4420
|
-
: `Removed stored API key for ${providerOption.name}. Environment variables and models.json config are unchanged.`;
|
|
4421
|
-
this.showStatus(message);
|
|
4422
|
-
}
|
|
4423
|
-
catch (error) {
|
|
4424
|
-
this.showError(`Logout failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
4425
|
-
}
|
|
4426
|
-
}, () => {
|
|
4427
|
-
done();
|
|
4428
|
-
this.ui.requestRender();
|
|
4429
|
-
});
|
|
4430
|
-
return { component: selector, focus: selector };
|
|
4431
|
-
});
|
|
4432
|
-
}
|
|
4433
|
-
async completeProviderAuthentication(providerId, providerName, authType, previousModel) {
|
|
4434
|
-
await this.session.modelRuntime.getAvailable();
|
|
4435
|
-
const actionLabel = authType === "oauth" ? `Logged in to ${providerName}` : `Saved API key for ${providerName}`;
|
|
4436
|
-
let selectedModel;
|
|
4437
|
-
let selectionError;
|
|
4438
|
-
if (isUnknownModel(previousModel)) {
|
|
4439
|
-
const availableModels = await this.session.modelRuntime.getAvailable();
|
|
4440
|
-
const providerModels = availableModels.filter((model) => model.provider === providerId);
|
|
4441
|
-
if (!hasDefaultModelProvider(providerId)) {
|
|
4442
|
-
selectionError = `${actionLabel}, but no default model is configured for provider "${providerId}". Use /model to select a model.`;
|
|
4443
|
-
}
|
|
4444
|
-
else if (providerModels.length === 0) {
|
|
4445
|
-
selectionError = `${actionLabel}, but no models are available for that provider. Use /model to select a model.`;
|
|
4446
|
-
}
|
|
4447
|
-
else {
|
|
4448
|
-
const defaultModelId = defaultModelPerProvider[providerId];
|
|
4449
|
-
selectedModel = providerModels.find((model) => model.id === defaultModelId);
|
|
4450
|
-
if (!selectedModel) {
|
|
4451
|
-
selectionError = `${actionLabel}, but its default model "${defaultModelId}" is not available. Use /model to select a model.`;
|
|
4452
|
-
}
|
|
4453
|
-
else {
|
|
4454
|
-
try {
|
|
4455
|
-
await this.session.setModel(selectedModel);
|
|
4456
|
-
}
|
|
4457
|
-
catch (error) {
|
|
4458
|
-
selectedModel = undefined;
|
|
4459
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
4460
|
-
selectionError = `${actionLabel}, but selecting its default model failed: ${errorMessage}. Use /model to select a model.`;
|
|
4461
|
-
}
|
|
4462
|
-
}
|
|
4463
|
-
}
|
|
4464
|
-
}
|
|
4465
|
-
await this.updateAvailableProviderCount();
|
|
4466
|
-
this.footer.invalidate();
|
|
4467
|
-
this.updateEditorBorderColor();
|
|
4468
|
-
if (selectedModel) {
|
|
4469
|
-
this.showStatus(`${actionLabel}. Selected ${selectedModel.id}. Credentials saved to ${getAuthPath()}`);
|
|
4470
|
-
void this.maybeWarnAboutAnthropicSubscriptionAuth(selectedModel);
|
|
4471
|
-
this.checkDaxnutsEasterEgg(selectedModel);
|
|
4472
|
-
}
|
|
4473
|
-
else {
|
|
4474
|
-
this.showStatus(`${actionLabel}. Credentials saved to ${getAuthPath()}`);
|
|
4475
|
-
if (selectionError) {
|
|
4476
|
-
this.showError(selectionError);
|
|
4477
|
-
}
|
|
4478
|
-
else {
|
|
4479
|
-
void this.maybeWarnAboutAnthropicSubscriptionAuth();
|
|
4480
|
-
}
|
|
4481
|
-
}
|
|
4482
|
-
}
|
|
4483
|
-
showAmbientAuthDialog(providerOption) {
|
|
4484
|
-
const restoreEditor = () => {
|
|
4485
|
-
this.editorContainer.clear();
|
|
4486
|
-
this.editorContainer.addChild(this.editor);
|
|
4487
|
-
this.ui.setFocus(this.editor);
|
|
4488
|
-
this.ui.requestRender();
|
|
4489
|
-
};
|
|
4490
|
-
const dialog = new LoginDialogComponent(this.ui, providerOption.id, () => restoreEditor(), providerOption.name, `${providerOption.name} setup`);
|
|
4491
|
-
dialog.showInfo(`${providerOption.method?.name ?? "Authentication"} is configured outside pi.`, [], true);
|
|
4492
|
-
this.editorContainer.clear();
|
|
4493
|
-
this.editorContainer.addChild(dialog);
|
|
4494
|
-
this.ui.setFocus(dialog);
|
|
4495
|
-
this.ui.requestRender();
|
|
4496
|
-
}
|
|
4497
|
-
async showApiKeyLoginDialog(providerId, providerName) {
|
|
4498
|
-
const previousModel = this.session.model;
|
|
4499
|
-
const dialog = new LoginDialogComponent(this.ui, providerId, (_success, _message) => {
|
|
4500
|
-
// Completion handled below
|
|
4501
|
-
}, providerName);
|
|
4502
|
-
if (providerId === "amazon-bedrock") {
|
|
4503
|
-
dialog.showDetails([
|
|
4504
|
-
theme.fg("text", "You can also use an AWS profile, IAM keys, or role-based credentials."),
|
|
4505
|
-
theme.fg("muted", "See:"),
|
|
4506
|
-
theme.fg("accent", ` ${path.join(getDocsPath(), "providers.md")}`),
|
|
4507
|
-
]);
|
|
4508
|
-
}
|
|
4509
|
-
this.editorContainer.clear();
|
|
4510
|
-
this.editorContainer.addChild(dialog);
|
|
4511
|
-
this.ui.setFocus(dialog);
|
|
4512
|
-
this.ui.requestRender();
|
|
4513
|
-
const restoreEditor = () => {
|
|
4514
|
-
this.editorContainer.clear();
|
|
4515
|
-
this.editorContainer.addChild(this.editor);
|
|
4516
|
-
this.ui.setFocus(this.editor);
|
|
4517
|
-
this.ui.requestRender();
|
|
4518
|
-
};
|
|
4519
|
-
try {
|
|
4520
|
-
await this.loginProvider(dialog, providerId, "api_key");
|
|
4521
|
-
restoreEditor();
|
|
4522
|
-
await this.completeProviderAuthentication(providerId, providerName, "api_key", previousModel);
|
|
4523
|
-
}
|
|
4524
|
-
catch (error) {
|
|
4525
|
-
restoreEditor();
|
|
4526
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
4527
|
-
if (errorMsg !== "Login cancelled") {
|
|
4528
|
-
this.showError(`Failed to save API key for ${providerName}: ${errorMsg}`);
|
|
4529
|
-
}
|
|
4530
|
-
}
|
|
4531
|
-
}
|
|
4532
|
-
showAuthSelect(dialog, prompt) {
|
|
4533
|
-
return new Promise((resolve, reject) => {
|
|
4534
|
-
const restoreDialog = () => {
|
|
4535
|
-
this.editorContainer.clear();
|
|
4536
|
-
this.editorContainer.addChild(dialog);
|
|
4537
|
-
this.ui.setFocus(dialog);
|
|
4538
|
-
this.ui.requestRender();
|
|
4539
|
-
};
|
|
4540
|
-
const labels = prompt.options.map((option) => option.label);
|
|
4541
|
-
const selector = new ExtensionSelectorComponent(prompt.message, labels, (optionLabel) => {
|
|
4542
|
-
restoreDialog();
|
|
4543
|
-
const id = prompt.options.find((option) => option.label === optionLabel)?.id;
|
|
4544
|
-
if (id)
|
|
4545
|
-
resolve(id);
|
|
4546
|
-
else
|
|
4547
|
-
reject(new Error("Login cancelled"));
|
|
4548
|
-
}, () => {
|
|
4549
|
-
restoreDialog();
|
|
4550
|
-
reject(new Error("Login cancelled"));
|
|
4551
|
-
});
|
|
4552
|
-
this.editorContainer.clear();
|
|
4553
|
-
this.editorContainer.addChild(selector);
|
|
4554
|
-
this.ui.setFocus(selector);
|
|
4555
|
-
this.ui.requestRender();
|
|
4556
|
-
});
|
|
4557
|
-
}
|
|
4558
|
-
async showAuthPrompt(dialog, prompt) {
|
|
4559
|
-
let response;
|
|
4560
|
-
if (prompt.type === "select") {
|
|
4561
|
-
response = this.showAuthSelect(dialog, prompt);
|
|
4562
|
-
}
|
|
4563
|
-
else if (prompt.type === "manual_code") {
|
|
4564
|
-
response = dialog.showManualInput(prompt.message);
|
|
4565
|
-
}
|
|
4566
|
-
else {
|
|
4567
|
-
response = dialog.showPrompt(prompt.message, prompt.placeholder);
|
|
4568
|
-
}
|
|
4569
|
-
if (!prompt.signal)
|
|
4570
|
-
return response;
|
|
4571
|
-
if (prompt.signal.aborted)
|
|
4572
|
-
throw new Error("Login cancelled");
|
|
4573
|
-
const signal = prompt.signal;
|
|
4574
|
-
let onAbort;
|
|
4575
|
-
const aborted = new Promise((_resolve, reject) => {
|
|
4576
|
-
onAbort = () => reject(new Error("Login cancelled"));
|
|
4577
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
4578
|
-
});
|
|
4579
|
-
try {
|
|
4580
|
-
return await Promise.race([response, aborted]);
|
|
4581
|
-
}
|
|
4582
|
-
finally {
|
|
4583
|
-
if (onAbort)
|
|
4584
|
-
signal.removeEventListener("abort", onAbort);
|
|
4585
|
-
}
|
|
4586
|
-
}
|
|
4587
|
-
notifyAuthDialog(dialog, event) {
|
|
4588
|
-
if (event.type === "auth_url") {
|
|
4589
|
-
dialog.showAuth(event.url, event.instructions);
|
|
4590
|
-
}
|
|
4591
|
-
else if (event.type === "device_code") {
|
|
4592
|
-
dialog.showDeviceCode(event);
|
|
4593
|
-
dialog.showWaiting("Waiting for authentication...");
|
|
4594
|
-
}
|
|
4595
|
-
else if (event.type === "info") {
|
|
4596
|
-
dialog.showInfo(event.message, event.links);
|
|
4597
|
-
}
|
|
4598
|
-
else {
|
|
4599
|
-
dialog.showProgress(event.message);
|
|
4600
|
-
}
|
|
4601
|
-
}
|
|
4602
|
-
async loginProvider(dialog, providerId, method) {
|
|
4603
|
-
await this.session.modelRuntime.login(providerId, method, {
|
|
4604
|
-
signal: dialog.signal,
|
|
4605
|
-
prompt: (prompt) => this.showAuthPrompt(dialog, prompt),
|
|
4606
|
-
notify: (event) => this.notifyAuthDialog(dialog, event),
|
|
4607
|
-
});
|
|
4608
|
-
}
|
|
4609
|
-
async showLoginDialog(providerId, providerName) {
|
|
4610
|
-
const previousModel = this.session.model;
|
|
4611
|
-
const dialog = new LoginDialogComponent(this.ui, providerId, (_success, _message) => { }, providerName);
|
|
4612
|
-
this.editorContainer.clear();
|
|
4613
|
-
this.editorContainer.addChild(dialog);
|
|
4614
|
-
this.ui.setFocus(dialog);
|
|
4615
|
-
this.ui.requestRender();
|
|
4616
|
-
const restoreEditor = () => {
|
|
4617
|
-
this.editorContainer.clear();
|
|
4618
|
-
this.editorContainer.addChild(this.editor);
|
|
4619
|
-
this.ui.setFocus(this.editor);
|
|
4620
|
-
this.ui.requestRender();
|
|
4621
|
-
};
|
|
4622
|
-
try {
|
|
4623
|
-
await this.loginProvider(dialog, providerId, "oauth");
|
|
4624
|
-
restoreEditor();
|
|
4625
|
-
await this.completeProviderAuthentication(providerId, providerName, "oauth", previousModel);
|
|
4626
|
-
}
|
|
4627
|
-
catch (error) {
|
|
4628
|
-
restoreEditor();
|
|
4629
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
4630
|
-
if (errorMsg !== "Login cancelled") {
|
|
4631
|
-
this.showError(`Failed to login to ${providerName}: ${errorMsg}`);
|
|
4632
|
-
}
|
|
4633
|
-
}
|
|
4634
|
-
}
|
|
4635
|
-
// =========================================================================
|
|
4636
|
-
// Command handlers
|
|
4637
|
-
// =========================================================================
|
|
4638
|
-
async handleReloadCommand() {
|
|
4639
|
-
if (this.session.isStreaming) {
|
|
4640
|
-
this.showWarning("Wait for the current response to finish before reloading.");
|
|
4641
|
-
return;
|
|
4642
|
-
}
|
|
4643
|
-
if (this.session.isCompacting) {
|
|
4644
|
-
this.showWarning("Wait for compaction to finish before reloading.");
|
|
4645
|
-
return;
|
|
4646
|
-
}
|
|
4647
|
-
this.resetExtensionUI();
|
|
4648
|
-
const reloadBox = new Container();
|
|
4649
|
-
const borderColor = (s) => theme.fg("border", s);
|
|
4650
|
-
reloadBox.addChild(new DynamicBorder(borderColor));
|
|
4651
|
-
reloadBox.addChild(new Spacer(1));
|
|
4652
|
-
reloadBox.addChild(new Text(theme.fg("muted", "Reloading keybindings, extensions, skills, prompts, themes, and context files..."), 1, 0));
|
|
4653
|
-
reloadBox.addChild(new Spacer(1));
|
|
4654
|
-
reloadBox.addChild(new DynamicBorder(borderColor));
|
|
4655
|
-
const previousEditor = this.editor;
|
|
4656
|
-
this.editorContainer.clear();
|
|
4657
|
-
this.editorContainer.addChild(reloadBox);
|
|
4658
|
-
this.ui.setFocus(reloadBox);
|
|
4659
|
-
this.ui.requestRender(true);
|
|
4660
|
-
await new Promise((resolve) => process.nextTick(resolve));
|
|
4661
|
-
const dismissReloadBox = (editor) => {
|
|
4662
|
-
this.editorContainer.clear();
|
|
4663
|
-
this.editorContainer.addChild(editor);
|
|
4664
|
-
this.ui.setFocus(editor);
|
|
4665
|
-
this.ui.requestRender();
|
|
4666
|
-
};
|
|
4667
|
-
let chatRestoredBeforeSessionStart = false;
|
|
4668
|
-
let reloadBoxDismissed = false;
|
|
4669
|
-
const restoreChatBeforeSessionStart = () => {
|
|
4670
|
-
if (chatRestoredBeforeSessionStart) {
|
|
4671
|
-
return;
|
|
4672
|
-
}
|
|
4673
|
-
this.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();
|
|
4674
|
-
this.outputPad = this.settingsManager.getOutputPad();
|
|
4675
|
-
this.rebuildChatFromMessages();
|
|
4676
|
-
chatRestoredBeforeSessionStart = true;
|
|
4677
|
-
};
|
|
4678
|
-
try {
|
|
4679
|
-
await this.session.reload({ beforeSessionStart: restoreChatBeforeSessionStart });
|
|
4680
|
-
restoreChatBeforeSessionStart();
|
|
4681
|
-
configureHttpDispatcher(this.settingsManager.getHttpIdleTimeoutMs());
|
|
4682
|
-
this.keybindings.reload();
|
|
4683
|
-
const activeHeader = this.customHeader ?? this.builtInHeader;
|
|
4684
|
-
if (isExpandable(activeHeader)) {
|
|
4685
|
-
activeHeader.setExpanded(this.toolOutputExpanded);
|
|
4686
|
-
}
|
|
4687
|
-
setRegisteredThemes(this.session.resourceLoader.getThemes().themes);
|
|
4688
|
-
await this.themeController.applyFromSettings();
|
|
4689
|
-
const editorPaddingX = this.settingsManager.getEditorPaddingX();
|
|
4690
|
-
const autocompleteMaxVisible = this.settingsManager.getAutocompleteMaxVisible();
|
|
4691
|
-
this.defaultEditor.setPaddingX(editorPaddingX);
|
|
4692
|
-
this.defaultEditor.setAutocompleteMaxVisible(autocompleteMaxVisible);
|
|
4693
|
-
if (this.editor !== this.defaultEditor) {
|
|
4694
|
-
this.editor.setPaddingX?.(editorPaddingX);
|
|
4695
|
-
this.editor.setAutocompleteMaxVisible?.(autocompleteMaxVisible);
|
|
4696
|
-
}
|
|
4697
|
-
this.ui.setShowHardwareCursor(this.settingsManager.getShowHardwareCursor());
|
|
4698
|
-
const clearOnShrink = this.settingsManager.getClearOnShrink();
|
|
4699
|
-
this.ui.setClearOnShrink(clearOnShrink);
|
|
4700
|
-
if (!clearOnShrink && !this.activeStatusIndicator) {
|
|
4701
|
-
this.statusContainer.clear();
|
|
4702
|
-
}
|
|
4703
|
-
this.setupAutocompleteProvider();
|
|
4704
|
-
const runner = this.session.extensionRunner;
|
|
4705
|
-
this.setupExtensionShortcuts(runner);
|
|
4706
|
-
this.showLoadedResources({
|
|
4707
|
-
force: false,
|
|
4708
|
-
showDiagnosticsWhenQuiet: true,
|
|
4709
|
-
});
|
|
4710
|
-
const savedImplicitProjectTrust = this.maybeSaveImplicitProjectTrustAfterReload();
|
|
4711
|
-
const modelsJsonError = this.session.modelRuntime.getError();
|
|
4712
|
-
if (modelsJsonError) {
|
|
4713
|
-
this.showError(`models.json error: ${modelsJsonError}`);
|
|
4714
|
-
}
|
|
4715
|
-
this.showStatus(savedImplicitProjectTrust
|
|
4716
|
-
? "Reloaded keybindings, extensions, skills, prompts, themes, and context files; saved project trust"
|
|
4717
|
-
: "Reloaded keybindings, extensions, skills, prompts, themes, and context files");
|
|
4718
|
-
dismissReloadBox(this.editor);
|
|
4719
|
-
reloadBoxDismissed = true;
|
|
4720
|
-
}
|
|
4721
|
-
catch (error) {
|
|
4722
|
-
if (!reloadBoxDismissed) {
|
|
4723
|
-
dismissReloadBox(previousEditor);
|
|
4724
|
-
}
|
|
4725
|
-
this.showError(`Reload failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
4726
|
-
}
|
|
4727
|
-
}
|
|
4728
|
-
async handleExportCommand(text) {
|
|
4729
|
-
const outputPath = this.getPathCommandArgument(text, "/export");
|
|
4730
|
-
try {
|
|
4731
|
-
if (outputPath?.endsWith(".jsonl")) {
|
|
4732
|
-
const filePath = this.session.exportToJsonl(outputPath);
|
|
4733
|
-
this.showStatus(`Session exported to: ${filePath}`);
|
|
4734
|
-
}
|
|
4735
|
-
else {
|
|
4736
|
-
const filePath = await this.session.exportToHtml(outputPath);
|
|
4737
|
-
this.showStatus(`Session exported to: ${filePath}`);
|
|
4738
|
-
}
|
|
4739
|
-
}
|
|
4740
|
-
catch (error) {
|
|
4741
|
-
this.showError(`Failed to export session: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
4742
|
-
}
|
|
4743
|
-
}
|
|
4744
|
-
getPathCommandArgument(text, command) {
|
|
4745
|
-
if (text === command) {
|
|
4746
|
-
return undefined;
|
|
4747
|
-
}
|
|
4748
|
-
if (!text.startsWith(`${command} `)) {
|
|
4749
|
-
return undefined;
|
|
4750
|
-
}
|
|
4751
|
-
const argsString = text.slice(command.length + 1).trimStart();
|
|
4752
|
-
if (!argsString) {
|
|
4753
|
-
return undefined;
|
|
4754
|
-
}
|
|
4755
|
-
const firstChar = argsString[0];
|
|
4756
|
-
if (firstChar === '"' || firstChar === "'") {
|
|
4757
|
-
const closingQuoteIndex = argsString.indexOf(firstChar, 1);
|
|
4758
|
-
if (closingQuoteIndex < 0) {
|
|
4759
|
-
return undefined;
|
|
4760
|
-
}
|
|
4761
|
-
return argsString.slice(1, closingQuoteIndex);
|
|
4762
|
-
}
|
|
4763
|
-
const firstWhitespaceIndex = argsString.search(/\s/);
|
|
4764
|
-
if (firstWhitespaceIndex < 0) {
|
|
4765
|
-
return argsString;
|
|
4766
|
-
}
|
|
4767
|
-
return argsString.slice(0, firstWhitespaceIndex);
|
|
4768
|
-
}
|
|
4769
|
-
async handleImportCommand(text) {
|
|
4770
|
-
const inputPath = this.getPathCommandArgument(text, "/import");
|
|
4771
|
-
if (!inputPath) {
|
|
4772
|
-
this.showError("Usage: /import <path.jsonl>");
|
|
4773
|
-
return;
|
|
4774
|
-
}
|
|
4775
|
-
const confirmed = await this.showExtensionConfirm("Import session", `Replace current session with ${inputPath}?`);
|
|
4776
|
-
if (!confirmed) {
|
|
4777
|
-
this.showStatus("Import cancelled");
|
|
4778
|
-
return;
|
|
4779
|
-
}
|
|
4780
|
-
try {
|
|
4781
|
-
this.clearStatusIndicator();
|
|
4782
|
-
const result = await this.runtimeHost.importFromJsonl(inputPath);
|
|
4783
|
-
if (result.cancelled) {
|
|
4784
|
-
this.showStatus("Import cancelled");
|
|
4785
|
-
return;
|
|
4786
|
-
}
|
|
4787
|
-
this.showStatus(`Session imported from: ${inputPath}`);
|
|
4788
|
-
}
|
|
4789
|
-
catch (error) {
|
|
4790
|
-
if (error instanceof MissingSessionCwdError) {
|
|
4791
|
-
const selectedCwd = await this.promptForMissingSessionCwd(error);
|
|
4792
|
-
if (!selectedCwd) {
|
|
4793
|
-
this.showStatus("Import cancelled");
|
|
4794
|
-
return;
|
|
4795
|
-
}
|
|
4796
|
-
const result = await this.runtimeHost.importFromJsonl(inputPath, selectedCwd);
|
|
4797
|
-
if (result.cancelled) {
|
|
4798
|
-
this.showStatus("Import cancelled");
|
|
4799
|
-
return;
|
|
4800
|
-
}
|
|
4801
|
-
this.showStatus(`Session imported from: ${inputPath}`);
|
|
4802
|
-
return;
|
|
4803
|
-
}
|
|
4804
|
-
if (error instanceof SessionImportFileNotFoundError) {
|
|
4805
|
-
this.showError(`Failed to import session: ${error.message}`);
|
|
4806
|
-
return;
|
|
4807
|
-
}
|
|
4808
|
-
await this.handleFatalRuntimeError("Failed to import session", error);
|
|
4809
|
-
}
|
|
4810
|
-
}
|
|
4811
|
-
async handleShareCommand() {
|
|
4812
|
-
// Check if gh is available and logged in
|
|
4813
|
-
try {
|
|
4814
|
-
const authResult = spawnSync("gh", ["auth", "status"], { encoding: "utf-8" });
|
|
4815
|
-
if (authResult.status !== 0) {
|
|
4816
|
-
this.showError("GitHub CLI is not logged in. Run 'gh auth login' first.");
|
|
4817
|
-
return;
|
|
4818
|
-
}
|
|
4819
|
-
}
|
|
4820
|
-
catch {
|
|
4821
|
-
this.showError("GitHub CLI (gh) is not installed. Install it from https://cli.github.com/");
|
|
4822
|
-
return;
|
|
4823
|
-
}
|
|
4824
|
-
// Export to a temp file
|
|
4825
|
-
const tmpFile = path.join(os.tmpdir(), "session.html");
|
|
4826
|
-
try {
|
|
4827
|
-
await this.session.exportToHtml(tmpFile);
|
|
4828
|
-
}
|
|
4829
|
-
catch (error) {
|
|
4830
|
-
this.showError(`Failed to export session: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
4831
|
-
return;
|
|
4832
|
-
}
|
|
4833
|
-
// Show cancellable loader, replacing the editor
|
|
4834
|
-
const loader = new BorderedLoader(this.ui, theme, "Creating gist...");
|
|
4835
|
-
this.editorContainer.clear();
|
|
4836
|
-
this.editorContainer.addChild(loader);
|
|
4837
|
-
this.ui.setFocus(loader);
|
|
4838
|
-
this.ui.requestRender();
|
|
4839
|
-
const restoreEditor = () => {
|
|
4840
|
-
loader.dispose();
|
|
4841
|
-
this.editorContainer.clear();
|
|
4842
|
-
this.editorContainer.addChild(this.editor);
|
|
4843
|
-
this.ui.setFocus(this.editor);
|
|
4844
|
-
try {
|
|
4845
|
-
fs.unlinkSync(tmpFile);
|
|
4846
|
-
}
|
|
4847
|
-
catch {
|
|
4848
|
-
// Ignore cleanup errors
|
|
4849
|
-
}
|
|
4850
|
-
};
|
|
4851
|
-
// Create a secret gist asynchronously
|
|
4852
|
-
let proc = null;
|
|
4853
|
-
loader.onAbort = () => {
|
|
4854
|
-
proc?.kill();
|
|
4855
|
-
restoreEditor();
|
|
4856
|
-
this.showStatus("Share cancelled");
|
|
4857
|
-
};
|
|
4858
|
-
try {
|
|
4859
|
-
const result = await new Promise((resolve) => {
|
|
4860
|
-
proc = spawn("gh", ["gist", "create", "--public=false", tmpFile]);
|
|
4861
|
-
let stdout = "";
|
|
4862
|
-
let stderr = "";
|
|
4863
|
-
proc.stdout?.on("data", (data) => {
|
|
4864
|
-
stdout += data.toString();
|
|
4865
|
-
});
|
|
4866
|
-
proc.stderr?.on("data", (data) => {
|
|
4867
|
-
stderr += data.toString();
|
|
4868
|
-
});
|
|
4869
|
-
proc.on("close", (code) => resolve({ stdout, stderr, code }));
|
|
4870
|
-
});
|
|
4871
|
-
if (loader.signal.aborted)
|
|
4872
|
-
return;
|
|
4873
|
-
restoreEditor();
|
|
4874
|
-
if (result.code !== 0) {
|
|
4875
|
-
const errorMsg = result.stderr?.trim() || "Unknown error";
|
|
4876
|
-
this.showError(`Failed to create gist: ${errorMsg}`);
|
|
4877
|
-
return;
|
|
4878
|
-
}
|
|
4879
|
-
// Extract gist ID from the URL returned by gh
|
|
4880
|
-
// gh returns something like: https://gist.github.com/username/GIST_ID
|
|
4881
|
-
const gistUrl = result.stdout?.trim();
|
|
4882
|
-
const gistId = gistUrl?.split("/").pop();
|
|
4883
|
-
if (!gistId) {
|
|
4884
|
-
this.showError("Failed to parse gist ID from gh output");
|
|
4885
|
-
return;
|
|
4886
|
-
}
|
|
4887
|
-
// Create the preview URL
|
|
4888
|
-
const previewUrl = getShareViewerUrl(gistId);
|
|
4889
|
-
this.showStatus(`Share URL: ${previewUrl}\nGist: ${gistUrl}`);
|
|
4890
|
-
}
|
|
4891
|
-
catch (error) {
|
|
4892
|
-
if (!loader.signal.aborted) {
|
|
4893
|
-
restoreEditor();
|
|
4894
|
-
this.showError(`Failed to create gist: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
4895
|
-
}
|
|
4896
|
-
}
|
|
4897
|
-
}
|
|
4898
|
-
async handleCopyCommand() {
|
|
4899
|
-
const text = this.session.getLastAssistantText();
|
|
4900
|
-
if (!text) {
|
|
4901
|
-
this.showError("No agent messages to copy yet.");
|
|
4902
|
-
return;
|
|
4903
|
-
}
|
|
4904
|
-
try {
|
|
4905
|
-
await copyToClipboard(text);
|
|
4906
|
-
this.showStatus("Copied last agent message to clipboard");
|
|
4907
|
-
}
|
|
4908
|
-
catch (error) {
|
|
4909
|
-
this.showError(error instanceof Error ? error.message : String(error));
|
|
4910
|
-
}
|
|
4911
|
-
}
|
|
4912
|
-
handleNameCommand(text) {
|
|
4913
|
-
const name = text.replace(/^\/name\s*/, "").trim();
|
|
4914
|
-
if (!name) {
|
|
4915
|
-
const currentName = this.sessionManager.getSessionName();
|
|
4916
|
-
if (currentName) {
|
|
4917
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
4918
|
-
this.chatContainer.addChild(new Text(theme.fg("dim", `Session name: ${currentName}`), 1, 0));
|
|
4919
|
-
}
|
|
4920
|
-
else {
|
|
4921
|
-
this.showWarning("Usage: /name <name>");
|
|
4922
|
-
}
|
|
4923
|
-
this.ui.requestRender();
|
|
4924
|
-
return;
|
|
4925
|
-
}
|
|
4926
|
-
this.session.setSessionName(name);
|
|
4927
|
-
const sessionName = this.sessionManager.getSessionName();
|
|
4928
|
-
if (sessionName !== name) {
|
|
4929
|
-
this.showWarning(`Session name was normalized from ${JSON.stringify(name)} to ${JSON.stringify(sessionName)}`);
|
|
4930
|
-
}
|
|
4931
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
4932
|
-
this.chatContainer.addChild(new Text(theme.fg("dim", `Session name set: ${sessionName ?? name}`), 1, 0));
|
|
4933
|
-
this.ui.requestRender();
|
|
4934
|
-
}
|
|
4935
|
-
handleSessionCommand() {
|
|
4936
|
-
const stats = this.session.getSessionStats();
|
|
4937
|
-
const sessionName = this.sessionManager.getSessionName();
|
|
4938
|
-
const entries = this.sessionManager.getEntries();
|
|
4939
|
-
const cacheWaste = computeCacheWaste(entries, this.session.modelRuntime);
|
|
4940
|
-
// Cost/token totals per provider/model actually used (e.g. OpenRouter `auto`
|
|
4941
|
-
// resolves to a concrete responseModel). Usage without model attribution is
|
|
4942
|
-
// grouped separately so the breakdown reconciles with the session total.
|
|
4943
|
-
const usageBreakdown = getUsageCostBreakdown(entries);
|
|
4944
|
-
let info = `${theme.bold("Session Info")}\n\n`;
|
|
4945
|
-
if (sessionName) {
|
|
4946
|
-
info += `${theme.fg("dim", "Name:")} ${sessionName}\n`;
|
|
4947
|
-
}
|
|
4948
|
-
info += `${theme.fg("dim", "File:")} ${stats.sessionFile ?? "In-memory"}\n`;
|
|
4949
|
-
info += `${theme.fg("dim", "ID:")} ${stats.sessionId}\n\n`;
|
|
4950
|
-
info += `${theme.bold("Messages")}\n`;
|
|
4951
|
-
info += `${theme.fg("dim", "Total:")} ${stats.totalMessages}\n`;
|
|
4952
|
-
info += `${theme.fg("dim", "User:")} ${stats.userMessages}\n`;
|
|
4953
|
-
info += `${theme.fg("dim", "Assistant:")} ${stats.assistantMessages}\n`;
|
|
4954
|
-
info += `${theme.fg("dim", "Tools:")} ${stats.toolCalls} calls, ${stats.toolResults} results\n\n`;
|
|
4955
|
-
info += `${theme.bold("Tokens")}\n`;
|
|
4956
|
-
// "Input" is the full prompt volume. With cache activity, split it into
|
|
4957
|
-
// cached (served from cache) vs uncached (everything else) - the only
|
|
4958
|
-
// provider-independent split. Cache writes, where reported, are a detail
|
|
4959
|
-
// of the uncached portion.
|
|
4960
|
-
const { input, cacheRead, cacheWrite } = stats.tokens;
|
|
4961
|
-
const promptTokens = input + cacheRead + cacheWrite;
|
|
4962
|
-
info += `${theme.fg("dim", "Input:")} ${promptTokens.toLocaleString()}\n`;
|
|
4963
|
-
if (promptTokens > 0 && (cacheRead > 0 || cacheWrite > 0)) {
|
|
4964
|
-
const hitRate = theme.fg("dim", `(${((cacheRead / promptTokens) * 100).toFixed(1)}%)`);
|
|
4965
|
-
info += ` ${theme.fg("dim", "Cached:")} ${cacheRead.toLocaleString()} ${hitRate}\n`;
|
|
4966
|
-
const written = cacheWrite > 0 ? ` ${theme.fg("dim", `(${cacheWrite.toLocaleString()} written to cache)`)}` : "";
|
|
4967
|
-
info += ` ${theme.fg("dim", "Uncached:")} ${(input + cacheWrite).toLocaleString()}${written}\n`;
|
|
4968
|
-
}
|
|
4969
|
-
info += `${theme.fg("dim", "Output:")} ${stats.tokens.output.toLocaleString()}\n`;
|
|
4970
|
-
info += `${theme.fg("dim", "Total:")} ${stats.tokens.total.toLocaleString()}\n`;
|
|
4971
|
-
if (stats.cost > 0 || cacheWaste.missedTokens > 0) {
|
|
4972
|
-
info += `\n${theme.bold("Cost")}\n`;
|
|
4973
|
-
info += `${theme.fg("dim", "Total:")} $${stats.cost.toFixed(3)}`;
|
|
4974
|
-
if (usageBreakdown.length > 1) {
|
|
4975
|
-
for (const entry of usageBreakdown) {
|
|
4976
|
-
info += `\n ${theme.fg("dim", `${entry.key}:`)} $${entry.cost.toFixed(3)} ${theme.fg("dim", `(${formatTokens(entry.tokens)} tokens)`)}`;
|
|
4977
|
-
}
|
|
4978
|
-
}
|
|
4979
|
-
if (cacheWaste.missedTokens > 0) {
|
|
4980
|
-
const missLabel = cacheWaste.missCount === 1 ? "1 miss" : `${cacheWaste.missCount} misses`;
|
|
4981
|
-
const detail = `${cacheWaste.missedTokens.toLocaleString()} tokens, ${missLabel}`;
|
|
4982
|
-
info +=
|
|
4983
|
-
cacheWaste.missedCost >= 0.0001
|
|
4984
|
-
? `\n${theme.fg("dim", "Cache Re-billed:")} $${cacheWaste.missedCost.toFixed(3)} ${theme.fg("dim", `(${detail})`)}`
|
|
4985
|
-
: `\n${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
|
|
4986
|
-
}
|
|
4987
|
-
}
|
|
4988
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
4989
|
-
this.chatContainer.addChild(new Text(info, 1, 0));
|
|
4990
|
-
this.ui.requestRender();
|
|
4991
|
-
}
|
|
4992
|
-
handleChangelogCommand() {
|
|
4993
|
-
const changelogPath = getChangelogPath();
|
|
4994
|
-
const allEntries = parseChangelog(changelogPath);
|
|
4995
|
-
const changelogMarkdown = allEntries.length > 0
|
|
4996
|
-
? allEntries
|
|
4997
|
-
.reverse()
|
|
4998
|
-
.map((e) => normalizeChangelogLinks(e.content, e))
|
|
4999
|
-
.join("\n\n")
|
|
5000
|
-
: "No changelog entries found.";
|
|
5001
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
5002
|
-
this.chatContainer.addChild(new DynamicBorder());
|
|
5003
|
-
this.chatContainer.addChild(new Text(theme.bold(theme.fg("accent", "What's New")), 1, 0));
|
|
5004
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
5005
|
-
this.chatContainer.addChild(new Markdown(changelogMarkdown, 1, 1, this.getMarkdownThemeWithSettings()));
|
|
5006
|
-
this.chatContainer.addChild(new DynamicBorder());
|
|
5007
|
-
this.ui.requestRender();
|
|
5008
|
-
}
|
|
5009
|
-
/**
|
|
5010
|
-
* Get capitalized display string for an app keybinding action.
|
|
5011
|
-
*/
|
|
5012
|
-
getAppKeyDisplay(action) {
|
|
5013
|
-
return keyDisplayText(action);
|
|
5014
|
-
}
|
|
5015
|
-
/**
|
|
5016
|
-
* Get capitalized display string for an editor keybinding action.
|
|
5017
|
-
*/
|
|
5018
|
-
getEditorKeyDisplay(action) {
|
|
5019
|
-
return keyDisplayText(action);
|
|
5020
|
-
}
|
|
5021
|
-
handleHotkeysCommand() {
|
|
5022
|
-
// Navigation keybindings
|
|
5023
|
-
const cursorUp = this.getEditorKeyDisplay("tui.editor.cursorUp");
|
|
5024
|
-
const cursorDown = this.getEditorKeyDisplay("tui.editor.cursorDown");
|
|
5025
|
-
const cursorLeft = this.getEditorKeyDisplay("tui.editor.cursorLeft");
|
|
5026
|
-
const cursorRight = this.getEditorKeyDisplay("tui.editor.cursorRight");
|
|
5027
|
-
const cursorWordLeft = this.getEditorKeyDisplay("tui.editor.cursorWordLeft");
|
|
5028
|
-
const cursorWordRight = this.getEditorKeyDisplay("tui.editor.cursorWordRight");
|
|
5029
|
-
const cursorLineStart = this.getEditorKeyDisplay("tui.editor.cursorLineStart");
|
|
5030
|
-
const cursorLineEnd = this.getEditorKeyDisplay("tui.editor.cursorLineEnd");
|
|
5031
|
-
const jumpForward = this.getEditorKeyDisplay("tui.editor.jumpForward");
|
|
5032
|
-
const jumpBackward = this.getEditorKeyDisplay("tui.editor.jumpBackward");
|
|
5033
|
-
const pageUp = this.getEditorKeyDisplay("tui.editor.pageUp");
|
|
5034
|
-
const pageDown = this.getEditorKeyDisplay("tui.editor.pageDown");
|
|
5035
|
-
// Editing keybindings
|
|
5036
|
-
const submit = this.getEditorKeyDisplay("tui.input.submit");
|
|
5037
|
-
const newLine = this.getEditorKeyDisplay("tui.input.newLine");
|
|
5038
|
-
const deleteWordBackward = this.getEditorKeyDisplay("tui.editor.deleteWordBackward");
|
|
5039
|
-
const deleteWordForward = this.getEditorKeyDisplay("tui.editor.deleteWordForward");
|
|
5040
|
-
const deleteToLineStart = this.getEditorKeyDisplay("tui.editor.deleteToLineStart");
|
|
5041
|
-
const deleteToLineEnd = this.getEditorKeyDisplay("tui.editor.deleteToLineEnd");
|
|
5042
|
-
const yank = this.getEditorKeyDisplay("tui.editor.yank");
|
|
5043
|
-
const yankPop = this.getEditorKeyDisplay("tui.editor.yankPop");
|
|
5044
|
-
const undo = this.getEditorKeyDisplay("tui.editor.undo");
|
|
5045
|
-
const tab = this.getEditorKeyDisplay("tui.input.tab");
|
|
5046
|
-
// App keybindings
|
|
5047
|
-
const interrupt = this.getAppKeyDisplay("app.interrupt");
|
|
5048
|
-
const clear = this.getAppKeyDisplay("app.clear");
|
|
5049
|
-
const exit = this.getAppKeyDisplay("app.exit");
|
|
5050
|
-
const suspend = this.getAppKeyDisplay("app.suspend");
|
|
5051
|
-
const cycleThinkingLevel = this.getAppKeyDisplay("app.thinking.cycle");
|
|
5052
|
-
const cycleModelForward = this.getAppKeyDisplay("app.model.cycleForward");
|
|
5053
|
-
const selectModel = this.getAppKeyDisplay("app.model.select");
|
|
5054
|
-
const expandTools = this.getAppKeyDisplay("app.tools.expand");
|
|
5055
|
-
const toggleThinking = this.getAppKeyDisplay("app.thinking.toggle");
|
|
5056
|
-
const externalEditor = this.getAppKeyDisplay("app.editor.external");
|
|
5057
|
-
const cycleModelBackward = this.getAppKeyDisplay("app.model.cycleBackward");
|
|
5058
|
-
const copyMessage = this.getAppKeyDisplay("app.message.copy");
|
|
5059
|
-
const followUp = this.getAppKeyDisplay("app.message.followUp");
|
|
5060
|
-
const dequeue = this.getAppKeyDisplay("app.message.dequeue");
|
|
5061
|
-
const pasteImage = this.getAppKeyDisplay("app.clipboard.pasteImage");
|
|
5062
|
-
let hotkeys = `
|
|
5063
|
-
**Navigation**
|
|
5064
|
-
| Key | Action |
|
|
5065
|
-
|-----|--------|
|
|
5066
|
-
| \`${cursorUp}\` / \`${cursorDown}\` / \`${cursorLeft}\` / \`${cursorRight}\` | Move cursor / browse history |
|
|
5067
|
-
| \`${cursorWordLeft}\` / \`${cursorWordRight}\` | Move by word |
|
|
5068
|
-
| \`${cursorLineStart}\` | Start of line |
|
|
5069
|
-
| \`${cursorLineEnd}\` | End of line |
|
|
5070
|
-
| \`${jumpForward}\` | Jump forward to character |
|
|
5071
|
-
| \`${jumpBackward}\` | Jump backward to character |
|
|
5072
|
-
| \`${pageUp}\` / \`${pageDown}\` | Scroll by page |
|
|
5073
|
-
|
|
5074
|
-
**Editing**
|
|
5075
|
-
| Key | Action |
|
|
5076
|
-
|-----|--------|
|
|
5077
|
-
| \`${submit}\` | Send message |
|
|
5078
|
-
| \`${newLine}\` | New line${process.platform === "win32" ? " (Ctrl+Enter on Windows Terminal)" : ""} |
|
|
5079
|
-
| \`${deleteWordBackward}\` | Delete word backwards |
|
|
5080
|
-
| \`${deleteWordForward}\` | Delete word forwards |
|
|
5081
|
-
| \`${deleteToLineStart}\` | Delete to start of line |
|
|
5082
|
-
| \`${deleteToLineEnd}\` | Delete to end of line |
|
|
5083
|
-
| \`${yank}\` | Paste the most-recently-deleted text |
|
|
5084
|
-
| \`${yankPop}\` | Cycle through the deleted text after pasting |
|
|
5085
|
-
| \`${undo}\` | Undo |
|
|
5086
|
-
|
|
5087
|
-
**Other**
|
|
5088
|
-
| Key | Action |
|
|
5089
|
-
|-----|--------|
|
|
5090
|
-
| \`${tab}\` | Path completion / accept autocomplete |
|
|
5091
|
-
| \`${interrupt}\` | Cancel autocomplete / abort streaming |
|
|
5092
|
-
| \`${clear}\` | Clear editor (first) / exit (second) |
|
|
5093
|
-
| \`${exit}\` | Exit (when editor is empty) |
|
|
5094
|
-
| \`${suspend}\` | Suspend to background |
|
|
5095
|
-
| \`${cycleThinkingLevel}\` | Cycle thinking level |
|
|
5096
|
-
| \`${cycleModelForward}\` / \`${cycleModelBackward}\` | Cycle models |
|
|
5097
|
-
| \`${selectModel}\` | Open model selector |
|
|
5098
|
-
| \`${expandTools}\` | Toggle tool output expansion |
|
|
5099
|
-
| \`${toggleThinking}\` | Toggle thinking block visibility |
|
|
5100
|
-
| \`${externalEditor}\` | Edit message in external editor |
|
|
5101
|
-
| \`${copyMessage}\` | Copy last assistant message |
|
|
5102
|
-
| \`${followUp}\` | Queue follow-up message |
|
|
5103
|
-
| \`${dequeue}\` | Restore queued messages |
|
|
5104
|
-
| \`${pasteImage}\` | Paste image or text from clipboard |
|
|
5105
|
-
| \`/\` | Slash commands |
|
|
5106
|
-
| \`!\` | Run bash command |
|
|
5107
|
-
| \`!!\` | Run bash command (excluded from context) |
|
|
5108
|
-
`;
|
|
5109
|
-
// Add extension-registered shortcuts
|
|
5110
|
-
const extensionRunner = this.session.extensionRunner;
|
|
5111
|
-
const shortcuts = extensionRunner.getShortcuts(this.keybindings.getEffectiveConfig());
|
|
5112
|
-
if (shortcuts.size > 0) {
|
|
5113
|
-
hotkeys += `
|
|
5114
|
-
**Extensions**
|
|
5115
|
-
| Key | Action |
|
|
5116
|
-
|-----|--------|
|
|
5117
|
-
`;
|
|
5118
|
-
for (const [key, shortcut] of shortcuts) {
|
|
5119
|
-
const description = shortcut.description ?? shortcut.extensionPath;
|
|
5120
|
-
const keyDisplay = formatKeyText(key, { capitalize: true });
|
|
5121
|
-
hotkeys += `| \`${keyDisplay}\` | ${description} |\n`;
|
|
5122
|
-
}
|
|
5123
|
-
}
|
|
5124
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
5125
|
-
this.chatContainer.addChild(new DynamicBorder());
|
|
5126
|
-
this.chatContainer.addChild(new Text(theme.bold(theme.fg("accent", "Keyboard Shortcuts")), 1, 0));
|
|
5127
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
5128
|
-
this.chatContainer.addChild(new Markdown(hotkeys.trim(), 1, 1, this.getMarkdownThemeWithSettings()));
|
|
5129
|
-
this.chatContainer.addChild(new DynamicBorder());
|
|
5130
|
-
this.ui.requestRender();
|
|
5131
|
-
}
|
|
5132
|
-
async handleClearCommand() {
|
|
5133
|
-
this.clearStatusIndicator();
|
|
5134
|
-
try {
|
|
5135
|
-
const result = await this.runtimeHost.newSession();
|
|
5136
|
-
if (result.cancelled) {
|
|
5137
|
-
return;
|
|
5138
|
-
}
|
|
5139
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
5140
|
-
this.chatContainer.addChild(new Text(`${theme.fg("accent", "✓ New session started")}`, 1, 1));
|
|
5141
|
-
this.ui.requestRender();
|
|
5142
|
-
}
|
|
5143
|
-
catch (error) {
|
|
5144
|
-
await this.handleFatalRuntimeError("Failed to create session", error);
|
|
5145
|
-
}
|
|
5146
|
-
}
|
|
5147
|
-
handleDebugCommand() {
|
|
5148
|
-
const width = this.ui.terminal.columns;
|
|
5149
|
-
const height = this.ui.terminal.rows;
|
|
5150
|
-
const allLines = this.ui.render(width);
|
|
5151
|
-
const debugLogPath = getDebugLogPath();
|
|
5152
|
-
const debugData = [
|
|
5153
|
-
`Debug output at ${new Date().toISOString()}`,
|
|
5154
|
-
`Terminal: ${width}x${height}`,
|
|
5155
|
-
`Total lines: ${allLines.length}`,
|
|
5156
|
-
"",
|
|
5157
|
-
"=== All rendered lines with visible widths ===",
|
|
5158
|
-
...allLines.map((line, idx) => {
|
|
5159
|
-
const vw = visibleWidth(line);
|
|
5160
|
-
const escaped = JSON.stringify(line);
|
|
5161
|
-
return `[${idx}] (w=${vw}) ${escaped}`;
|
|
5162
|
-
}),
|
|
5163
|
-
"",
|
|
5164
|
-
"=== Agent messages (JSONL) ===",
|
|
5165
|
-
...this.session.messages.map((msg) => JSON.stringify(msg)),
|
|
5166
|
-
"",
|
|
5167
|
-
].join("\n");
|
|
5168
|
-
fs.mkdirSync(path.dirname(debugLogPath), { recursive: true });
|
|
5169
|
-
fs.writeFileSync(debugLogPath, debugData);
|
|
5170
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
5171
|
-
this.chatContainer.addChild(new Text(`${theme.fg("accent", "✓ Debug log written")}\n${theme.fg("muted", debugLogPath)}`, 1, 1));
|
|
5172
|
-
this.ui.requestRender();
|
|
5173
|
-
}
|
|
5174
|
-
handleArminSaysHi() {
|
|
5175
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
5176
|
-
this.chatContainer.addChild(new ArminComponent(this.ui));
|
|
5177
|
-
this.ui.requestRender();
|
|
5178
|
-
}
|
|
5179
|
-
handleDementedDelves() {
|
|
5180
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
5181
|
-
this.chatContainer.addChild(new EarendilAnnouncementComponent());
|
|
5182
|
-
this.ui.requestRender();
|
|
5183
|
-
}
|
|
5184
|
-
handleDaxnuts() {
|
|
5185
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
5186
|
-
this.chatContainer.addChild(new DaxnutsComponent(this.ui));
|
|
5187
|
-
this.ui.requestRender();
|
|
5188
|
-
}
|
|
5189
|
-
checkDaxnutsEasterEgg(model) {
|
|
5190
|
-
if (model.provider === "opencode" && model.id.toLowerCase().includes("kimi-k2.5")) {
|
|
5191
|
-
this.handleDaxnuts();
|
|
5192
|
-
}
|
|
5193
|
-
}
|
|
5194
|
-
async handleBashCommand(command, excludeFromContext = false) {
|
|
5195
|
-
const extensionRunner = this.session.extensionRunner;
|
|
5196
|
-
// Emit user_bash event to let extensions intercept
|
|
5197
|
-
const eventResult = await extensionRunner.emitUserBash({
|
|
5198
|
-
type: "user_bash",
|
|
5199
|
-
command,
|
|
5200
|
-
excludeFromContext,
|
|
5201
|
-
cwd: this.sessionManager.getCwd(),
|
|
5202
|
-
});
|
|
5203
|
-
// If extension returned a full result, use it directly
|
|
5204
|
-
if (eventResult?.result) {
|
|
5205
|
-
const result = eventResult.result;
|
|
5206
|
-
// Create UI component for display
|
|
5207
|
-
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext);
|
|
5208
|
-
if (this.session.isStreaming) {
|
|
5209
|
-
this.pendingMessagesContainer.addChild(this.bashComponent);
|
|
5210
|
-
this.pendingBashComponents.push(this.bashComponent);
|
|
5211
|
-
}
|
|
5212
|
-
else {
|
|
5213
|
-
this.chatContainer.addChild(this.bashComponent);
|
|
5214
|
-
}
|
|
5215
|
-
// Show output and complete
|
|
5216
|
-
if (result.output) {
|
|
5217
|
-
this.bashComponent.appendOutput(result.output);
|
|
5218
|
-
}
|
|
5219
|
-
this.bashComponent.setComplete(result.exitCode, result.cancelled, result.truncated ? { truncated: true, content: result.output } : undefined, result.fullOutputPath);
|
|
5220
|
-
// Record the result in session
|
|
5221
|
-
this.session.recordBashResult(command, result, { excludeFromContext });
|
|
5222
|
-
this.bashComponent = undefined;
|
|
5223
|
-
this.ui.requestRender();
|
|
5224
|
-
return;
|
|
5225
|
-
}
|
|
5226
|
-
// Normal execution path (possibly with custom operations)
|
|
5227
|
-
const isDeferred = this.session.isStreaming;
|
|
5228
|
-
this.bashComponent = new BashExecutionComponent(command, this.ui, excludeFromContext);
|
|
5229
|
-
if (isDeferred) {
|
|
5230
|
-
// Show in pending area when agent is streaming
|
|
5231
|
-
this.pendingMessagesContainer.addChild(this.bashComponent);
|
|
5232
|
-
this.pendingBashComponents.push(this.bashComponent);
|
|
5233
|
-
}
|
|
5234
|
-
else {
|
|
5235
|
-
// Show in chat immediately when agent is idle
|
|
5236
|
-
this.chatContainer.addChild(this.bashComponent);
|
|
5237
|
-
}
|
|
5238
|
-
this.ui.requestRender();
|
|
5239
|
-
try {
|
|
5240
|
-
const result = await this.session.executeBash(command, (chunk) => {
|
|
5241
|
-
if (this.bashComponent) {
|
|
5242
|
-
this.bashComponent.appendOutput(chunk);
|
|
5243
|
-
this.ui.requestRender();
|
|
5244
|
-
}
|
|
5245
|
-
}, { excludeFromContext, operations: eventResult?.operations });
|
|
5246
|
-
if (this.bashComponent) {
|
|
5247
|
-
this.bashComponent.setComplete(result.exitCode, result.cancelled, result.truncated ? { truncated: true, content: result.output } : undefined, result.fullOutputPath);
|
|
5248
|
-
}
|
|
5249
|
-
}
|
|
5250
|
-
catch (error) {
|
|
5251
|
-
if (this.bashComponent) {
|
|
5252
|
-
this.bashComponent.setComplete(undefined, false);
|
|
5253
|
-
}
|
|
5254
|
-
this.showError(`Bash command failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
5255
|
-
}
|
|
5256
|
-
this.bashComponent = undefined;
|
|
5257
|
-
this.ui.requestRender();
|
|
5258
|
-
}
|
|
5259
|
-
async handleCompactCommand(customInstructions) {
|
|
5260
|
-
this.clearStatusIndicator();
|
|
5261
|
-
try {
|
|
5262
|
-
await this.session.compact(customInstructions);
|
|
5263
|
-
}
|
|
5264
|
-
catch {
|
|
5265
|
-
// Ignore, will be emitted as an event
|
|
5266
|
-
}
|
|
5267
|
-
}
|
|
5268
|
-
stop() {
|
|
5269
|
-
if (this.settingsManager.getShowTerminalProgress()) {
|
|
5270
|
-
this.ui.terminal.setProgress(false);
|
|
5271
|
-
}
|
|
5272
|
-
this.clearStatusIndicator();
|
|
5273
|
-
this.themeController.disableAutoSync();
|
|
5274
|
-
this.clearExtensionTerminalInputListeners();
|
|
5275
|
-
this.footer.dispose();
|
|
5276
|
-
this.footerDataProvider.dispose();
|
|
5277
|
-
if (this.unsubscribe) {
|
|
5278
|
-
this.unsubscribe();
|
|
5279
|
-
}
|
|
5280
|
-
if (this.isInitialized) {
|
|
5281
|
-
this.ui.stop();
|
|
5282
|
-
this.isInitialized = false;
|
|
5283
|
-
}
|
|
5284
|
-
this.unregisterSignalHandlers();
|
|
5285
|
-
}
|
|
5286
|
-
}
|
|
5287
|
-
//# sourceMappingURL=interactive-mode.js.map
|
|
3245
|
+
if (this.chatContainer.children.length >
|