@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/core/tools/bash.ts"],"names":[],"mappings":"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","sourcesContent":["import { constants } from \"node:fs\";\nimport { access as fsAccess } from \"node:fs/promises\";\nimport type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Container, Text, truncateToWidth } from \"@earendil-works/pi-tui\";\nimport { spawn } from \"child_process\";\nimport { type Static, Type } from \"typebox\";\nimport { keyHint } from \"../../modes/interactive/components/keybinding-hints.ts\";\nimport { truncateToVisualLines } from \"../../modes/interactive/components/visual-truncate.ts\";\nimport { theme } from \"../../modes/interactive/theme/theme.ts\";\nimport { waitForChildProcess } from \"../../utils/child-process.ts\";\nimport {\n\tgetShellConfig,\n\tgetShellEnv,\n\tkillProcessTree,\n\ttrackDetachedChildPid,\n\tuntrackDetachedChildPid,\n} from \"../../utils/shell.ts\";\nimport type { ExtensionContext, ToolDefinition, ToolRenderResultOptions } from \"../extensions/types.ts\";\nimport { OutputAccumulator } from \"./output-accumulator.ts\";\nimport { getTextOutput, invalidArgText, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\nimport { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, type TruncationResult } from \"./truncate.ts\";\n\nconst MAX_TIMEOUT_MS = 2_147_483_647;\nconst MAX_TIMEOUT_SECONDS = MAX_TIMEOUT_MS / 1000;\n\nfunction resolveTimeoutMs(timeout: number | undefined): number | undefined {\n\tif (timeout === undefined) return undefined;\n\tif (!Number.isFinite(timeout) || timeout <= 0) {\n\t\tthrow new Error(\"Invalid timeout: must be a finite number of seconds\");\n\t}\n\n\tconst timeoutMs = timeout * 1000;\n\tif (timeoutMs > MAX_TIMEOUT_MS) {\n\t\tthrow new Error(`Invalid timeout: maximum is ${MAX_TIMEOUT_SECONDS} seconds`);\n\t}\n\treturn timeoutMs;\n}\n\nconst bashSchema = Type.Object({\n\tcommand: Type.String({ description: \"Bash command to execute\" }),\n\ttimeout: Type.Optional(Type.Number({ description: \"Timeout in seconds (optional, no default timeout)\" })),\n});\n\nexport type BashToolInput = Static<typeof bashSchema>;\n\nexport interface BashToolDetails {\n\ttruncation?: TruncationResult;\n\tfullOutputPath?: string;\n}\n\n/**\n * Pluggable operations for the bash tool.\n * Override these to delegate command execution to remote systems (for example SSH).\n */\nexport interface BashOperations {\n\t/**\n\t * Execute a command and stream output.\n\t * @param command The command to execute\n\t * @param cwd Working directory\n\t * @param options Execution options\n\t * @returns Promise resolving to exit code (null if killed)\n\t */\n\texec: (\n\t\tcommand: string,\n\t\tcwd: string,\n\t\toptions: {\n\t\t\tonData: (data: Buffer) => void;\n\t\t\tsignal?: AbortSignal;\n\t\t\ttimeout?: number;\n\t\t\tenv?: NodeJS.ProcessEnv;\n\t\t},\n\t) => Promise<{ exitCode: number | null }>;\n}\n\n/**\n * Create bash operations using pi's built-in local shell execution backend.\n *\n * This is useful for extensions that intercept user_bash and still want pi's\n * standard local shell behavior while wrapping or rewriting commands.\n */\nexport function createLocalBashOperations(options?: { shellPath?: string }): BashOperations {\n\treturn {\n\t\texec: async (command, cwd, { onData, signal, timeout, env }) => {\n\t\t\tconst timeoutMs = resolveTimeoutMs(timeout);\n\t\t\tif (signal?.aborted) {\n\t\t\t\tthrow new Error(\"aborted\");\n\t\t\t}\n\t\t\tconst shellConfig = getShellConfig(options?.shellPath);\n\t\t\ttry {\n\t\t\t\tawait fsAccess(cwd, constants.F_OK);\n\t\t\t} catch {\n\t\t\t\tthrow new Error(`Working directory does not exist: ${cwd}\\nCannot execute bash commands.`);\n\t\t\t}\n\n\t\t\tconst commandFromStdin = shellConfig.commandTransport === \"stdin\";\n\t\t\tconst child = spawn(shellConfig.shell, commandFromStdin ? shellConfig.args : [...shellConfig.args, command], {\n\t\t\t\tcwd,\n\t\t\t\tdetached: process.platform !== \"win32\",\n\t\t\t\tenv: env ?? getShellEnv(),\n\t\t\t\tstdio: [commandFromStdin ? \"pipe\" : \"ignore\", \"pipe\", \"pipe\"],\n\t\t\t\twindowsHide: true,\n\t\t\t});\n\t\t\tif (commandFromStdin) {\n\t\t\t\tchild.stdin?.on(\"error\", () => {});\n\t\t\t\tchild.stdin?.end(command);\n\t\t\t}\n\t\t\tif (child.pid) trackDetachedChildPid(child.pid);\n\t\t\tlet timedOut = false;\n\t\t\tlet timeoutHandle: NodeJS.Timeout | undefined;\n\t\t\tconst onAbort = () => {\n\t\t\t\tif (child.pid) killProcessTree(child.pid);\n\t\t\t};\n\n\t\t\ttry {\n\t\t\t\t// Set timeout if provided.\n\t\t\t\tif (timeoutMs !== undefined) {\n\t\t\t\t\ttimeoutHandle = setTimeout(() => {\n\t\t\t\t\t\ttimedOut = true;\n\t\t\t\t\t\tif (child.pid) killProcessTree(child.pid);\n\t\t\t\t\t}, timeoutMs);\n\t\t\t\t}\n\t\t\t\t// Stream stdout and stderr.\n\t\t\t\tchild.stdout?.on(\"data\", onData);\n\t\t\t\tchild.stderr?.on(\"data\", onData);\n\t\t\t\t// Handle abort signal by killing the entire process tree.\n\t\t\t\tif (signal) {\n\t\t\t\t\tif (signal.aborted) onAbort();\n\t\t\t\t\telse signal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\t}\n\t\t\t\t// Handle shell spawn errors and wait for the process to terminate without hanging\n\t\t\t\t// on inherited stdio handles held by detached descendants.\n\t\t\t\tconst exitCode = await waitForChildProcess(child);\n\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\tthrow new Error(\"aborted\");\n\t\t\t\t}\n\t\t\t\tif (timedOut) {\n\t\t\t\t\tthrow new Error(`timeout:${timeout}`);\n\t\t\t\t}\n\t\t\t\treturn { exitCode };\n\t\t\t} finally {\n\t\t\t\tif (child.pid) untrackDetachedChildPid(child.pid);\n\t\t\t\tif (timeoutHandle) clearTimeout(timeoutHandle);\n\t\t\t\tif (signal) signal.removeEventListener(\"abort\", onAbort);\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport interface BashSpawnContext {\n\tcommand: string;\n\tcwd: string;\n\tenv: NodeJS.ProcessEnv;\n}\n\nexport type BashSpawnHook = (context: BashSpawnContext) => BashSpawnContext;\n\nfunction resolveSpawnContext(\n\tcommand: string,\n\tcwd: string,\n\tspawnHook: BashSpawnHook | undefined,\n\texposeSessionEnvironment: boolean,\n\tctx: ExtensionContext | undefined,\n): BashSpawnContext {\n\tconst env = { ...getShellEnv() };\n\tdelete env.PI_SESSION_ID;\n\tdelete env.PI_SESSION_FILE;\n\tdelete env.PI_PROVIDER;\n\tdelete env.PI_MODEL;\n\tdelete env.PI_REASONING_LEVEL;\n\tif (exposeSessionEnvironment && ctx) {\n\t\tconst model = ctx.model;\n\t\tenv.PI_SESSION_ID = ctx.sessionManager.getSessionId();\n\t\tconst sessionFile = ctx.sessionManager.getSessionFile();\n\t\tif (sessionFile) env.PI_SESSION_FILE = sessionFile;\n\t\tif (model) {\n\t\t\tenv.PI_PROVIDER = model.provider;\n\t\t\tenv.PI_MODEL = model.id;\n\t\t}\n\t\tif (ctx.thinkingLevel) env.PI_REASONING_LEVEL = ctx.thinkingLevel;\n\t}\n\tconst baseContext: BashSpawnContext = { command, cwd, env };\n\treturn spawnHook ? spawnHook(baseContext) : baseContext;\n}\n\nexport interface BashToolOptions {\n\t/** Custom operations for command execution. Default: local shell */\n\toperations?: BashOperations;\n\t/** Command prefix prepended to every command (for example shell setup commands) */\n\tcommandPrefix?: string;\n\t/** Optional explicit shell path from settings */\n\tshellPath?: string;\n\t/** Expose current Pi session metadata as PI_* environment variables. Default: true */\n\texposeSessionEnvironment?: boolean;\n\t/** Hook to adjust command, cwd, or env before execution */\n\tspawnHook?: BashSpawnHook;\n}\n\nconst BASH_PREVIEW_LINES = 5;\nconst BASH_UPDATE_THROTTLE_MS = 100;\n\ntype BashRenderState = {\n\tstartedAt: number | undefined;\n\tendedAt: number | undefined;\n\tinterval: NodeJS.Timeout | undefined;\n};\n\ntype BashResultRenderState = {\n\tcachedWidth: number | undefined;\n\tcachedLines: string[] | undefined;\n\tcachedSkipped: number | undefined;\n};\n\nclass BashResultRenderComponent extends Container {\n\tstate: BashResultRenderState = {\n\t\tcachedWidth: undefined,\n\t\tcachedLines: undefined,\n\t\tcachedSkipped: undefined,\n\t};\n}\n\nfunction formatDuration(ms: number): string {\n\treturn `${(ms / 1000).toFixed(1)}s`;\n}\n\nfunction formatBashCall(args: { command?: string; timeout?: number } | undefined): string {\n\tconst command = str(args?.command);\n\tconst timeout = args?.timeout as number | undefined;\n\tconst timeoutSuffix = timeout ? theme.fg(\"muted\", ` (timeout ${timeout}s)`) : \"\";\n\tconst commandDisplay = command === null ? invalidArgText(theme) : command ? command : theme.fg(\"toolOutput\", \"...\");\n\treturn theme.fg(\"toolTitle\", theme.bold(`$ ${commandDisplay}`)) + timeoutSuffix;\n}\n\nfunction rebuildBashResultRenderComponent(\n\tcomponent: BashResultRenderComponent,\n\tresult: {\n\t\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\t\tdetails?: BashToolDetails;\n\t},\n\toptions: ToolRenderResultOptions,\n\tshowImages: boolean,\n\tstartedAt: number | undefined,\n\tendedAt: number | undefined,\n): void {\n\tconst state = component.state;\n\tcomponent.clear();\n\n\tlet output = getTextOutput(result as any, showImages).trim();\n\tconst truncation = result.details?.truncation;\n\tconst fullOutputPath = result.details?.fullOutputPath;\n\tif (!options.isPartial && truncation?.truncated && fullOutputPath && output.endsWith(\"]\")) {\n\t\tconst footerStart = output.lastIndexOf(\"\\n\\n[\");\n\t\tif (footerStart !== -1 && output.slice(footerStart).includes(fullOutputPath)) {\n\t\t\toutput = output.slice(0, footerStart).trimEnd();\n\t\t}\n\t}\n\n\tif (output) {\n\t\tconst styledOutput = output\n\t\t\t.split(\"\\n\")\n\t\t\t.map((line) => theme.fg(\"toolOutput\", line))\n\t\t\t.join(\"\\n\");\n\n\t\tif (options.expanded) {\n\t\t\tcomponent.addChild(new Text(`\\n${styledOutput}`, 0, 0));\n\t\t} else {\n\t\t\tcomponent.addChild({\n\t\t\t\trender: (width: number) => {\n\t\t\t\t\tif (state.cachedLines === undefined || state.cachedWidth !== width) {\n\t\t\t\t\t\tconst preview = truncateToVisualLines(styledOutput, BASH_PREVIEW_LINES, width);\n\t\t\t\t\t\tstate.cachedLines = preview.visualLines;\n\t\t\t\t\t\tstate.cachedSkipped = preview.skippedCount;\n\t\t\t\t\t\tstate.cachedWidth = width;\n\t\t\t\t\t}\n\t\t\t\t\tif (state.cachedSkipped && state.cachedSkipped > 0) {\n\t\t\t\t\t\tconst hint =\n\t\t\t\t\t\t\ttheme.fg(\"muted\", `... (${state.cachedSkipped} earlier lines,`) +\n\t\t\t\t\t\t\t` ${keyHint(\"app.tools.expand\", \"to expand\")}${theme.fg(\"muted\", \")\")}`;\n\t\t\t\t\t\treturn [\"\", truncateToWidth(hint, width, \"...\"), ...(state.cachedLines ?? [])];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\"\", ...(state.cachedLines ?? [])];\n\t\t\t\t},\n\t\t\t\tinvalidate: () => {\n\t\t\t\t\tstate.cachedWidth = undefined;\n\t\t\t\t\tstate.cachedLines = undefined;\n\t\t\t\t\tstate.cachedSkipped = undefined;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tif (truncation?.truncated || fullOutputPath) {\n\t\tconst warnings: string[] = [];\n\t\tif (fullOutputPath) {\n\t\t\twarnings.push(`Full output: ${fullOutputPath}`);\n\t\t}\n\t\tif (truncation?.truncated) {\n\t\t\tif (truncation.truncatedBy === \"lines\") {\n\t\t\t\twarnings.push(`Truncated: showing ${truncation.outputLines} of ${truncation.totalLines} lines`);\n\t\t\t} else {\n\t\t\t\twarnings.push(\n\t\t\t\t\t`Truncated: ${truncation.outputLines} lines shown (${formatSize(truncation.maxBytes ?? DEFAULT_MAX_BYTES)} limit)`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tcomponent.addChild(new Text(`\\n${theme.fg(\"warning\", `[${warnings.join(\". \")}]`)}`, 0, 0));\n\t}\n\n\tif (startedAt !== undefined) {\n\t\tconst label = options.isPartial ? \"Elapsed\" : \"Took\";\n\t\tconst endTime = endedAt ?? Date.now();\n\t\tcomponent.addChild(new Text(`\\n${theme.fg(\"muted\", `${label} ${formatDuration(endTime - startedAt)}`)}`, 0, 0));\n\t}\n}\n\nexport function createBashToolDefinition(\n\tcwd: string,\n\toptions?: BashToolOptions,\n): ToolDefinition<typeof bashSchema, BashToolDetails | undefined, BashRenderState> {\n\tconst ops = options?.operations ?? createLocalBashOperations({ shellPath: options?.shellPath });\n\tconst commandPrefix = options?.commandPrefix;\n\tconst exposeSessionEnvironment = options?.exposeSessionEnvironment ?? true;\n\tconst spawnHook = options?.spawnHook;\n\treturn {\n\t\tname: \"bash\",\n\t\tlabel: \"bash\",\n\t\tdescription: `Execute a bash command in the current working directory. Returns stdout and stderr. Output is truncated to last ${DEFAULT_MAX_LINES} lines or ${DEFAULT_MAX_BYTES / 1024}KB (whichever is hit first). If truncated, full output is saved to a temp file. Optionally provide a timeout in seconds.`,\n\t\tpromptSnippet: \"Execute bash commands (ls, grep, find, etc.)\",\n\t\tpromptGuidelines: exposeSessionEnvironment\n\t\t\t? [\"Inspect PI_* environment variables for current model and session details.\"]\n\t\t\t: undefined,\n\t\tparameters: bashSchema,\n\t\tasync execute(\n\t\t\t_toolCallId,\n\t\t\t{ command, timeout }: { command: string; timeout?: number },\n\t\t\tsignal?: AbortSignal,\n\t\t\tonUpdate?,\n\t\t\tctx?,\n\t\t) {\n\t\t\tconst resolvedCommand = commandPrefix ? `${commandPrefix}\\n${command}` : command;\n\t\t\tconst spawnContext = resolveSpawnContext(resolvedCommand, cwd, spawnHook, exposeSessionEnvironment, ctx);\n\t\t\tconst output = new OutputAccumulator({ tempFilePrefix: \"pi-bash\" });\n\t\t\tlet acceptingOutput = true;\n\t\t\tlet updateTimer: NodeJS.Timeout | undefined;\n\t\t\tlet updateDirty = false;\n\t\t\tlet lastUpdateAt = 0;\n\n\t\t\tconst emitOutputUpdate = () => {\n\t\t\t\tif (!onUpdate || !updateDirty) return;\n\t\t\t\tupdateDirty = false;\n\t\t\t\tlastUpdateAt = Date.now();\n\t\t\t\tconst snapshot = output.snapshot({ persistIfTruncated: true });\n\t\t\t\tonUpdate({\n\t\t\t\t\tcontent: [{ type: \"text\", text: snapshot.content || \"\" }],\n\t\t\t\t\tdetails: {\n\t\t\t\t\t\ttruncation: snapshot.truncation.truncated ? snapshot.truncation : undefined,\n\t\t\t\t\t\tfullOutputPath: snapshot.fullOutputPath,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst clearUpdateTimer = () => {\n\t\t\t\tif (updateTimer) {\n\t\t\t\t\tclearTimeout(updateTimer);\n\t\t\t\t\tupdateTimer = undefined;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst scheduleOutputUpdate = () => {\n\t\t\t\tif (!onUpdate) return;\n\t\t\t\tupdateDirty = true;\n\t\t\t\tconst delay = BASH_UPDATE_THROTTLE_MS - (Date.now() - lastUpdateAt);\n\t\t\t\tif (delay <= 0) {\n\t\t\t\t\tclearUpdateTimer();\n\t\t\t\t\temitOutputUpdate();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tupdateTimer ??= setTimeout(() => {\n\t\t\t\t\tupdateTimer = undefined;\n\t\t\t\t\temitOutputUpdate();\n\t\t\t\t}, delay);\n\t\t\t};\n\n\t\t\tif (onUpdate) {\n\t\t\t\tonUpdate({ content: [], details: undefined });\n\t\t\t}\n\n\t\t\tconst handleData = (data: Buffer) => {\n\t\t\t\tif (!acceptingOutput) return;\n\t\t\t\toutput.append(data);\n\t\t\t\tscheduleOutputUpdate();\n\t\t\t};\n\n\t\t\tconst finishOutput = async () => {\n\t\t\t\tacceptingOutput = false;\n\t\t\t\toutput.finish();\n\t\t\t\tclearUpdateTimer();\n\t\t\t\temitOutputUpdate();\n\t\t\t\tconst snapshot = output.snapshot({ persistIfTruncated: true });\n\t\t\t\tawait output.closeTempFile();\n\t\t\t\treturn snapshot;\n\t\t\t};\n\n\t\t\tconst formatOutput = (snapshot: Awaited<ReturnType<typeof finishOutput>>, emptyText = \"(no output)\") => {\n\t\t\t\tconst truncation = snapshot.truncation;\n\t\t\t\tlet text = snapshot.content || emptyText;\n\t\t\t\tlet details: BashToolDetails | undefined;\n\t\t\t\tif (truncation.truncated) {\n\t\t\t\t\tdetails = { truncation, fullOutputPath: snapshot.fullOutputPath };\n\t\t\t\t\tconst startLine = truncation.totalLines - truncation.outputLines + 1;\n\t\t\t\t\tconst endLine = truncation.totalLines;\n\t\t\t\t\tif (truncation.lastLinePartial) {\n\t\t\t\t\t\tconst lastLineSize = formatSize(output.getLastLineBytes());\n\t\t\t\t\t\ttext += `\\n\\n[Showing last ${formatSize(truncation.outputBytes)} of line ${endLine} (line is ${lastLineSize}). Full output: ${snapshot.fullOutputPath}]`;\n\t\t\t\t\t} else if (truncation.truncatedBy === \"lines\") {\n\t\t\t\t\t\ttext += `\\n\\n[Showing lines ${startLine}-${endLine} of ${truncation.totalLines}. Full output: ${snapshot.fullOutputPath}]`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttext += `\\n\\n[Showing lines ${startLine}-${endLine} of ${truncation.totalLines} (${formatSize(DEFAULT_MAX_BYTES)} limit). Full output: ${snapshot.fullOutputPath}]`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn { text, details };\n\t\t\t};\n\n\t\t\tconst appendStatus = (text: string, status: string) => `${text ? `${text}\\n\\n` : \"\"}${status}`;\n\n\t\t\ttry {\n\t\t\t\tlet exitCode: number | null;\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await ops.exec(spawnContext.command, spawnContext.cwd, {\n\t\t\t\t\t\tonData: handleData,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\ttimeout,\n\t\t\t\t\t\tenv: spawnContext.env,\n\t\t\t\t\t});\n\t\t\t\t\texitCode = result.exitCode;\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst snapshot = await finishOutput();\n\t\t\t\t\tconst { text } = formatOutput(snapshot, \"\");\n\t\t\t\t\tif (err instanceof Error && err.message === \"aborted\") {\n\t\t\t\t\t\tthrow new Error(appendStatus(text, \"Command aborted\"));\n\t\t\t\t\t}\n\t\t\t\t\tif (err instanceof Error && err.message.startsWith(\"timeout:\")) {\n\t\t\t\t\t\tconst timeoutSecs = err.message.split(\":\")[1];\n\t\t\t\t\t\tthrow new Error(appendStatus(text, `Command timed out after ${timeoutSecs} seconds`));\n\t\t\t\t\t}\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\n\t\t\t\tconst snapshot = await finishOutput();\n\t\t\t\tconst { text: outputText, details } = formatOutput(snapshot);\n\t\t\t\tif (exitCode !== 0 && exitCode !== null) {\n\t\t\t\t\tthrow new Error(appendStatus(outputText, `Command exited with code ${exitCode}`));\n\t\t\t\t}\n\t\t\t\treturn { content: [{ type: \"text\", text: outputText }], details };\n\t\t\t} finally {\n\t\t\t\tclearUpdateTimer();\n\t\t\t}\n\t\t},\n\t\trenderCall(args, _theme, context) {\n\t\t\tconst state = context.state;\n\t\t\tif (context.executionStarted && state.startedAt === undefined) {\n\t\t\t\tstate.startedAt = Date.now();\n\t\t\t\tstate.endedAt = undefined;\n\t\t\t}\n\t\t\tconst text = (context.lastComponent as Text | undefined) ?? new Text(\"\", 0, 0);\n\t\t\ttext.setText(formatBashCall(args));\n\t\t\treturn text;\n\t\t},\n\t\trenderResult(result, options, _theme, context) {\n\t\t\tconst state = context.state;\n\t\t\tif (state.startedAt !== undefined && options.isPartial && !state.interval) {\n\t\t\t\tstate.interval = setInterval(() => context.invalidate(), 1000);\n\t\t\t}\n\t\t\tif (!options.isPartial || context.isError) {\n\t\t\t\tstate.endedAt ??= Date.now();\n\t\t\t\tif (state.interval) {\n\t\t\t\t\tclearInterval(state.interval);\n\t\t\t\t\tstate.interval = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst component =\n\t\t\t\t(context.lastComponent as BashResultRenderComponent | undefined) ?? new BashResultRenderComponent();\n\t\t\trebuildBashResultRenderComponent(\n\t\t\t\tcomponent,\n\t\t\t\tresult as any,\n\t\t\t\toptions,\n\t\t\t\tcontext.showImages,\n\t\t\t\tstate.startedAt,\n\t\t\t\tstate.endedAt,\n\t\t\t);\n\t\t\tcomponent.invalidate();\n\t\t\treturn component;\n\t\t},\n\t};\n}\n\nexport function createBashTool(cwd: string, options?: BashToolOptions): AgentTool<typeof bashSchema> {\n\tconst definition = createBashToolDefinition(cwd, options);\n\tconst tool = wrapToolDefinition(definition);\n\tObject.assign(tool, {\n\t\tpromptSnippet: definition.promptSnippet,\n\t\tpromptGuidelines: definition.promptGuidelines,\n\t});\n\treturn tool;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/core/tools/bash.ts"],"names":[],"mappings":"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","sourcesContent":["import { constants } from \"node:fs\";\nimport { access as fsAccess } from \"node:fs/promises\";\nimport type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Container, Text, truncateToWidth } from \"@earendil-works/pi-tui\";\nimport { spawn } from \"child_process\";\nimport { type Static, Type } from \"typebox\";\nimport { keyHint } from \"../../modes/interactive/components/keybinding-hints.ts\";\nimport { truncateToVisualLines } from \"../../modes/interactive/components/visual-truncate.ts\";\nimport { theme } from \"../../modes/interactive/theme/theme.ts\";\nimport { waitForChildProcess } from \"../../utils/child-process.ts\";\nimport {\n\tgetShellConfig,\n\tgetShellEnv,\n\tkillProcessTree,\n\ttrackDetachedChildPid,\n\tuntrackDetachedChildPid,\n} from \"../../utils/shell.ts\";\nimport type { ExtensionContext, ToolDefinition, ToolRenderResultOptions } from \"../extensions/types.ts\";\nimport { OutputAccumulator } from \"./output-accumulator.ts\";\nimport { getTextOutput, invalidArgText, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\nimport { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, type TruncationResult } from \"./truncate.ts\";\n\nconst MAX_TIMEOUT_MS = 2_147_483_647;\nconst MAX_TIMEOUT_SECONDS = MAX_TIMEOUT_MS / 1000;\n\nfunction resolveTimeoutMs(timeout: number | undefined): number | undefined {\n\tif (timeout === undefined) return undefined;\n\tif (!Number.isFinite(timeout) || timeout <= 0) {\n\t\tthrow new Error(\"Invalid timeout: must be a finite number of seconds\");\n\t}\n\n\tconst timeoutMs = timeout * 1000;\n\tif (timeoutMs > MAX_TIMEOUT_MS) {\n\t\tthrow new Error(`Invalid timeout: maximum is ${MAX_TIMEOUT_SECONDS} seconds`);\n\t}\n\treturn timeoutMs;\n}\n\nconst bashSchema = Type.Object({\n\tcommand: Type.String({ description: \"Bash command to execute\" }),\n\ttimeout: Type.Optional(Type.Number({ description: \"Timeout in seconds (optional, no default timeout)\" })),\n});\n\nexport const bashToolSystemPromptContribution = {\n\tsnippet: \"Execute bash commands (ls, grep, find, etc.)\",\n\tguidelines: [\"You can inspect PI_* environment variables for current model and session details.\"],\n} as const;\n\nexport type BashToolInput = Static<typeof bashSchema>;\n\nexport interface BashToolDetails {\n\ttruncation?: TruncationResult;\n\tfullOutputPath?: string;\n}\n\n/**\n * Pluggable operations for the bash tool.\n * Override these to delegate command execution to remote systems (for example SSH).\n */\nexport interface BashOperations {\n\t/**\n\t * Execute a command and stream output.\n\t * @param command The command to execute\n\t * @param cwd Working directory\n\t * @param options Execution options\n\t * @returns Promise resolving to exit code (null if killed)\n\t */\n\texec: (\n\t\tcommand: string,\n\t\tcwd: string,\n\t\toptions: {\n\t\t\tonData: (data: Buffer) => void;\n\t\t\tsignal?: AbortSignal;\n\t\t\ttimeout?: number;\n\t\t\tenv?: NodeJS.ProcessEnv;\n\t\t},\n\t) => Promise<{ exitCode: number | null }>;\n}\n\n/**\n * Create bash operations using pi's built-in local shell execution backend.\n *\n * This is useful for extensions that intercept user_bash and still want pi's\n * standard local shell behavior while wrapping or rewriting commands.\n */\nexport function createLocalBashOperations(options?: { shellPath?: string }): BashOperations {\n\treturn {\n\t\texec: async (command, cwd, { onData, signal, timeout, env }) => {\n\t\t\tconst timeoutMs = resolveTimeoutMs(timeout);\n\t\t\tif (signal?.aborted) {\n\t\t\t\tthrow new Error(\"aborted\");\n\t\t\t}\n\t\t\tconst shellConfig = getShellConfig(options?.shellPath);\n\t\t\ttry {\n\t\t\t\tawait fsAccess(cwd, constants.F_OK);\n\t\t\t} catch {\n\t\t\t\tthrow new Error(`Working directory does not exist: ${cwd}\\nCannot execute bash commands.`);\n\t\t\t}\n\n\t\t\tconst commandFromStdin = shellConfig.commandTransport === \"stdin\";\n\t\t\tconst child = spawn(shellConfig.shell, commandFromStdin ? shellConfig.args : [...shellConfig.args, command], {\n\t\t\t\tcwd,\n\t\t\t\tdetached: process.platform !== \"win32\",\n\t\t\t\tenv: env ?? getShellEnv(),\n\t\t\t\tstdio: [commandFromStdin ? \"pipe\" : \"ignore\", \"pipe\", \"pipe\"],\n\t\t\t\twindowsHide: true,\n\t\t\t});\n\t\t\tif (commandFromStdin) {\n\t\t\t\tchild.stdin?.on(\"error\", () => {});\n\t\t\t\tchild.stdin?.end(command);\n\t\t\t}\n\t\t\tif (child.pid) trackDetachedChildPid(child.pid);\n\t\t\tlet timedOut = false;\n\t\t\tlet timeoutHandle: NodeJS.Timeout | undefined;\n\t\t\tconst onAbort = () => {\n\t\t\t\tif (child.pid) killProcessTree(child.pid);\n\t\t\t};\n\n\t\t\ttry {\n\t\t\t\t// Set timeout if provided.\n\t\t\t\tif (timeoutMs !== undefined) {\n\t\t\t\t\ttimeoutHandle = setTimeout(() => {\n\t\t\t\t\t\ttimedOut = true;\n\t\t\t\t\t\tif (child.pid) killProcessTree(child.pid);\n\t\t\t\t\t}, timeoutMs);\n\t\t\t\t}\n\t\t\t\t// Stream stdout and stderr.\n\t\t\t\tchild.stdout?.on(\"data\", onData);\n\t\t\t\tchild.stderr?.on(\"data\", onData);\n\t\t\t\t// Handle abort signal by killing the entire process tree.\n\t\t\t\tif (signal) {\n\t\t\t\t\tif (signal.aborted) onAbort();\n\t\t\t\t\telse signal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\t}\n\t\t\t\t// Handle shell spawn errors and wait for the process to terminate without hanging\n\t\t\t\t// on inherited stdio handles held by detached descendants.\n\t\t\t\tconst exitCode = await waitForChildProcess(child);\n\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\tthrow new Error(\"aborted\");\n\t\t\t\t}\n\t\t\t\tif (timedOut) {\n\t\t\t\t\tthrow new Error(`timeout:${timeout}`);\n\t\t\t\t}\n\t\t\t\treturn { exitCode };\n\t\t\t} finally {\n\t\t\t\tif (child.pid) untrackDetachedChildPid(child.pid);\n\t\t\t\tif (timeoutHandle) clearTimeout(timeoutHandle);\n\t\t\t\tif (signal) signal.removeEventListener(\"abort\", onAbort);\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport interface BashSpawnContext {\n\tcommand: string;\n\tcwd: string;\n\tenv: NodeJS.ProcessEnv;\n}\n\nexport type BashSpawnHook = (context: BashSpawnContext) => BashSpawnContext;\n\nfunction resolveSpawnContext(\n\tcommand: string,\n\tcwd: string,\n\tspawnHook: BashSpawnHook | undefined,\n\texposeSessionEnvironment: boolean,\n\tctx: ExtensionContext | undefined,\n): BashSpawnContext {\n\tconst env = { ...getShellEnv() };\n\tdelete env.PI_SESSION_ID;\n\tdelete env.PI_SESSION_FILE;\n\tdelete env.PI_PROVIDER;\n\tdelete env.PI_MODEL;\n\tdelete env.PI_REASONING_LEVEL;\n\tif (exposeSessionEnvironment && ctx) {\n\t\tconst model = ctx.model;\n\t\tenv.PI_SESSION_ID = ctx.sessionManager.getSessionId();\n\t\tconst sessionFile = ctx.sessionManager.getSessionFile();\n\t\tif (sessionFile) env.PI_SESSION_FILE = sessionFile;\n\t\tif (model) {\n\t\t\tenv.PI_PROVIDER = model.provider;\n\t\t\tenv.PI_MODEL = model.id;\n\t\t}\n\t\tif (ctx.thinkingLevel) env.PI_REASONING_LEVEL = ctx.thinkingLevel;\n\t}\n\tconst baseContext: BashSpawnContext = { command, cwd, env };\n\treturn spawnHook ? spawnHook(baseContext) : baseContext;\n}\n\nexport interface BashToolOptions {\n\t/** Custom operations for command execution. Default: local shell */\n\toperations?: BashOperations;\n\t/** Command prefix prepended to every command (for example shell setup commands) */\n\tcommandPrefix?: string;\n\t/** Optional explicit shell path from settings */\n\tshellPath?: string;\n\t/** Expose current Pi session metadata as PI_* environment variables. Default: true */\n\texposeSessionEnvironment?: boolean;\n\t/** Hook to adjust command, cwd, or env before execution */\n\tspawnHook?: BashSpawnHook;\n}\n\nconst BASH_PREVIEW_LINES = 5;\nconst BASH_UPDATE_THROTTLE_MS = 100;\n\ntype BashRenderState = {\n\tstartedAt: number | undefined;\n\tendedAt: number | undefined;\n\tinterval: NodeJS.Timeout | undefined;\n};\n\ntype BashResultRenderState = {\n\tcachedWidth: number | undefined;\n\tcachedLines: string[] | undefined;\n\tcachedSkipped: number | undefined;\n};\n\nclass BashResultRenderComponent extends Container {\n\tstate: BashResultRenderState = {\n\t\tcachedWidth: undefined,\n\t\tcachedLines: undefined,\n\t\tcachedSkipped: undefined,\n\t};\n}\n\nfunction formatDuration(ms: number): string {\n\treturn `${(ms / 1000).toFixed(1)}s`;\n}\n\nfunction formatBashCall(args: { command?: string; timeout?: number } | undefined): string {\n\tconst command = str(args?.command);\n\tconst timeout = args?.timeout as number | undefined;\n\tconst timeoutSuffix = timeout ? theme.fg(\"muted\", ` (timeout ${timeout}s)`) : \"\";\n\tconst commandDisplay = command === null ? invalidArgText(theme) : command ? command : theme.fg(\"toolOutput\", \"...\");\n\treturn theme.fg(\"toolTitle\", theme.bold(`$ ${commandDisplay}`)) + timeoutSuffix;\n}\n\nfunction rebuildBashResultRenderComponent(\n\tcomponent: BashResultRenderComponent,\n\tresult: {\n\t\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\t\tdetails?: BashToolDetails;\n\t},\n\toptions: ToolRenderResultOptions,\n\tshowImages: boolean,\n\tstartedAt: number | undefined,\n\tendedAt: number | undefined,\n): void {\n\tconst state = component.state;\n\tcomponent.clear();\n\n\tlet output = getTextOutput(result as any, showImages).trim();\n\tconst truncation = result.details?.truncation;\n\tconst fullOutputPath = result.details?.fullOutputPath;\n\tif (!options.isPartial && truncation?.truncated && fullOutputPath && output.endsWith(\"]\")) {\n\t\tconst footerStart = output.lastIndexOf(\"\\n\\n[\");\n\t\tif (footerStart !== -1 && output.slice(footerStart).includes(fullOutputPath)) {\n\t\t\toutput = output.slice(0, footerStart).trimEnd();\n\t\t}\n\t}\n\n\tif (output) {\n\t\tconst styledOutput = output\n\t\t\t.split(\"\\n\")\n\t\t\t.map((line) => theme.fg(\"toolOutput\", line))\n\t\t\t.join(\"\\n\");\n\n\t\tif (options.expanded) {\n\t\t\tcomponent.addChild(new Text(`\\n${styledOutput}`, 0, 0));\n\t\t} else {\n\t\t\tcomponent.addChild({\n\t\t\t\trender: (width: number) => {\n\t\t\t\t\tif (state.cachedLines === undefined || state.cachedWidth !== width) {\n\t\t\t\t\t\tconst preview = truncateToVisualLines(styledOutput, BASH_PREVIEW_LINES, width);\n\t\t\t\t\t\tstate.cachedLines = preview.visualLines;\n\t\t\t\t\t\tstate.cachedSkipped = preview.skippedCount;\n\t\t\t\t\t\tstate.cachedWidth = width;\n\t\t\t\t\t}\n\t\t\t\t\tif (state.cachedSkipped && state.cachedSkipped > 0) {\n\t\t\t\t\t\tconst hint =\n\t\t\t\t\t\t\ttheme.fg(\"muted\", `... (${state.cachedSkipped} earlier lines,`) +\n\t\t\t\t\t\t\t` ${keyHint(\"app.tools.expand\", \"to expand\")}${theme.fg(\"muted\", \")\")}`;\n\t\t\t\t\t\treturn [\"\", truncateToWidth(hint, width, \"...\"), ...(state.cachedLines ?? [])];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\"\", ...(state.cachedLines ?? [])];\n\t\t\t\t},\n\t\t\t\tinvalidate: () => {\n\t\t\t\t\tstate.cachedWidth = undefined;\n\t\t\t\t\tstate.cachedLines = undefined;\n\t\t\t\t\tstate.cachedSkipped = undefined;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tif (truncation?.truncated || fullOutputPath) {\n\t\tconst warnings: string[] = [];\n\t\tif (fullOutputPath) {\n\t\t\twarnings.push(`Full output: ${fullOutputPath}`);\n\t\t}\n\t\tif (truncation?.truncated) {\n\t\t\tif (truncation.truncatedBy === \"lines\") {\n\t\t\t\twarnings.push(`Truncated: showing ${truncation.outputLines} of ${truncation.totalLines} lines`);\n\t\t\t} else {\n\t\t\t\twarnings.push(\n\t\t\t\t\t`Truncated: ${truncation.outputLines} lines shown (${formatSize(truncation.maxBytes ?? DEFAULT_MAX_BYTES)} limit)`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tcomponent.addChild(new Text(`\\n${theme.fg(\"warning\", `[${warnings.join(\". \")}]`)}`, 0, 0));\n\t}\n\n\tif (startedAt !== undefined) {\n\t\tconst label = options.isPartial ? \"Elapsed\" : \"Took\";\n\t\tconst endTime = endedAt ?? Date.now();\n\t\tcomponent.addChild(new Text(`\\n${theme.fg(\"muted\", `${label} ${formatDuration(endTime - startedAt)}`)}`, 0, 0));\n\t}\n}\n\nexport function createBashToolDefinition(\n\tcwd: string,\n\toptions?: BashToolOptions,\n): ToolDefinition<typeof bashSchema, BashToolDetails | undefined, BashRenderState> {\n\tconst ops = options?.operations ?? createLocalBashOperations({ shellPath: options?.shellPath });\n\tconst commandPrefix = options?.commandPrefix;\n\tconst exposeSessionEnvironment = options?.exposeSessionEnvironment ?? true;\n\tconst spawnHook = options?.spawnHook;\n\treturn {\n\t\tname: \"bash\",\n\t\tlabel: \"bash\",\n\t\tdescription: `Execute a bash command in the current working directory. Returns stdout and stderr. Output is truncated to last ${DEFAULT_MAX_LINES} lines or ${DEFAULT_MAX_BYTES / 1024}KB (whichever is hit first). If truncated, full output is saved to a temp file. Optionally provide a timeout in seconds.`,\n\t\tpromptSnippet: bashToolSystemPromptContribution.snippet,\n\t\tpromptGuidelines: exposeSessionEnvironment ? [...bashToolSystemPromptContribution.guidelines] : undefined,\n\t\tparameters: bashSchema,\n\t\tasync execute(\n\t\t\t_toolCallId,\n\t\t\t{ command, timeout }: { command: string; timeout?: number },\n\t\t\tsignal?: AbortSignal,\n\t\t\tonUpdate?,\n\t\t\tctx?,\n\t\t) {\n\t\t\tconst resolvedCommand = commandPrefix ? `${commandPrefix}\\n${command}` : command;\n\t\t\tconst spawnContext = resolveSpawnContext(resolvedCommand, cwd, spawnHook, exposeSessionEnvironment, ctx);\n\t\t\tconst output = new OutputAccumulator({ tempFilePrefix: \"pi-bash\" });\n\t\t\tlet acceptingOutput = true;\n\t\t\tlet updateTimer: NodeJS.Timeout | undefined;\n\t\t\tlet updateDirty = false;\n\t\t\tlet lastUpdateAt = 0;\n\n\t\t\tconst emitOutputUpdate = () => {\n\t\t\t\tif (!onUpdate || !updateDirty) return;\n\t\t\t\tupdateDirty = false;\n\t\t\t\tlastUpdateAt = Date.now();\n\t\t\t\tconst snapshot = output.snapshot({ persistIfTruncated: true });\n\t\t\t\tonUpdate({\n\t\t\t\t\tcontent: [{ type: \"text\", text: snapshot.content || \"\" }],\n\t\t\t\t\tdetails: {\n\t\t\t\t\t\ttruncation: snapshot.truncation.truncated ? snapshot.truncation : undefined,\n\t\t\t\t\t\tfullOutputPath: snapshot.fullOutputPath,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst clearUpdateTimer = () => {\n\t\t\t\tif (updateTimer) {\n\t\t\t\t\tclearTimeout(updateTimer);\n\t\t\t\t\tupdateTimer = undefined;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst scheduleOutputUpdate = () => {\n\t\t\t\tif (!onUpdate) return;\n\t\t\t\tupdateDirty = true;\n\t\t\t\tconst delay = BASH_UPDATE_THROTTLE_MS - (Date.now() - lastUpdateAt);\n\t\t\t\tif (delay <= 0) {\n\t\t\t\t\tclearUpdateTimer();\n\t\t\t\t\temitOutputUpdate();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tupdateTimer ??= setTimeout(() => {\n\t\t\t\t\tupdateTimer = undefined;\n\t\t\t\t\temitOutputUpdate();\n\t\t\t\t}, delay);\n\t\t\t};\n\n\t\t\tif (onUpdate) {\n\t\t\t\tonUpdate({ content: [], details: undefined });\n\t\t\t}\n\n\t\t\tconst handleData = (data: Buffer) => {\n\t\t\t\tif (!acceptingOutput) return;\n\t\t\t\toutput.append(data);\n\t\t\t\tscheduleOutputUpdate();\n\t\t\t};\n\n\t\t\tconst finishOutput = async () => {\n\t\t\t\tacceptingOutput = false;\n\t\t\t\toutput.finish();\n\t\t\t\tclearUpdateTimer();\n\t\t\t\temitOutputUpdate();\n\t\t\t\tconst snapshot = output.snapshot({ persistIfTruncated: true });\n\t\t\t\tawait output.closeTempFile();\n\t\t\t\treturn snapshot;\n\t\t\t};\n\n\t\t\tconst formatOutput = (snapshot: Awaited<ReturnType<typeof finishOutput>>, emptyText = \"(no output)\") => {\n\t\t\t\tconst truncation = snapshot.truncation;\n\t\t\t\tlet text = snapshot.content || emptyText;\n\t\t\t\tlet details: BashToolDetails | undefined;\n\t\t\t\tif (truncation.truncated) {\n\t\t\t\t\tdetails = { truncation, fullOutputPath: snapshot.fullOutputPath };\n\t\t\t\t\tconst startLine = truncation.totalLines - truncation.outputLines + 1;\n\t\t\t\t\tconst endLine = truncation.totalLines;\n\t\t\t\t\tif (truncation.lastLinePartial) {\n\t\t\t\t\t\tconst lastLineSize = formatSize(output.getLastLineBytes());\n\t\t\t\t\t\ttext += `\\n\\n[Showing last ${formatSize(truncation.outputBytes)} of line ${endLine} (line is ${lastLineSize}). Full output: ${snapshot.fullOutputPath}]`;\n\t\t\t\t\t} else if (truncation.truncatedBy === \"lines\") {\n\t\t\t\t\t\ttext += `\\n\\n[Showing lines ${startLine}-${endLine} of ${truncation.totalLines}. Full output: ${snapshot.fullOutputPath}]`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttext += `\\n\\n[Showing lines ${startLine}-${endLine} of ${truncation.totalLines} (${formatSize(DEFAULT_MAX_BYTES)} limit). Full output: ${snapshot.fullOutputPath}]`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn { text, details };\n\t\t\t};\n\n\t\t\tconst appendStatus = (text: string, status: string) => `${text ? `${text}\\n\\n` : \"\"}${status}`;\n\n\t\t\ttry {\n\t\t\t\tlet exitCode: number | null;\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await ops.exec(spawnContext.command, spawnContext.cwd, {\n\t\t\t\t\t\tonData: handleData,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\ttimeout,\n\t\t\t\t\t\tenv: spawnContext.env,\n\t\t\t\t\t});\n\t\t\t\t\texitCode = result.exitCode;\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst snapshot = await finishOutput();\n\t\t\t\t\tconst { text } = formatOutput(snapshot, \"\");\n\t\t\t\t\tif (err instanceof Error && err.message === \"aborted\") {\n\t\t\t\t\t\tthrow new Error(appendStatus(text, \"Command aborted\"));\n\t\t\t\t\t}\n\t\t\t\t\tif (err instanceof Error && err.message.startsWith(\"timeout:\")) {\n\t\t\t\t\t\tconst timeoutSecs = err.message.split(\":\")[1];\n\t\t\t\t\t\tthrow new Error(appendStatus(text, `Command timed out after ${timeoutSecs} seconds`));\n\t\t\t\t\t}\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\n\t\t\t\tconst snapshot = await finishOutput();\n\t\t\t\tconst { text: outputText, details } = formatOutput(snapshot);\n\t\t\t\tif (exitCode !== 0 && exitCode !== null) {\n\t\t\t\t\tthrow new Error(appendStatus(outputText, `Command exited with code ${exitCode}`));\n\t\t\t\t}\n\t\t\t\treturn { content: [{ type: \"text\", text: outputText }], details };\n\t\t\t} finally {\n\t\t\t\tclearUpdateTimer();\n\t\t\t}\n\t\t},\n\t\trenderCall(args, _theme, context) {\n\t\t\tconst state = context.state;\n\t\t\tif (context.executionStarted && state.startedAt === undefined) {\n\t\t\t\tstate.startedAt = Date.now();\n\t\t\t\tstate.endedAt = undefined;\n\t\t\t}\n\t\t\tconst text = (context.lastComponent as Text | undefined) ?? new Text(\"\", 0, 0);\n\t\t\ttext.setText(formatBashCall(args));\n\t\t\treturn text;\n\t\t},\n\t\trenderResult(result, options, _theme, context) {\n\t\t\tconst state = context.state;\n\t\t\tif (state.startedAt !== undefined && options.isPartial && !state.interval) {\n\t\t\t\tstate.interval = setInterval(() => context.invalidate(), 1000);\n\t\t\t}\n\t\t\tif (!options.isPartial || context.isError) {\n\t\t\t\tstate.endedAt ??= Date.now();\n\t\t\t\tif (state.interval) {\n\t\t\t\t\tclearInterval(state.interval);\n\t\t\t\t\tstate.interval = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst component =\n\t\t\t\t(context.lastComponent as BashResultRenderComponent | undefined) ?? new BashResultRenderComponent();\n\t\t\trebuildBashResultRenderComponent(\n\t\t\t\tcomponent,\n\t\t\t\tresult as any,\n\t\t\t\toptions,\n\t\t\t\tcontext.showImages,\n\t\t\t\tstate.startedAt,\n\t\t\t\tstate.endedAt,\n\t\t\t);\n\t\t\tcomponent.invalidate();\n\t\t\treturn component;\n\t\t},\n\t};\n}\n\nexport function createBashTool(cwd: string, options?: BashToolOptions): AgentTool<typeof bashSchema> {\n\tconst definition = createBashToolDefinition(cwd, options);\n\tconst tool = wrapToolDefinition(definition);\n\tObject.assign(tool, {\n\t\tpromptSnippet: definition.promptSnippet,\n\t\tpromptGuidelines: definition.promptGuidelines,\n\t});\n\treturn tool;\n}\n"]}
|
|
@@ -14,6 +14,10 @@ declare const editSchema: Type.TObject<{
|
|
|
14
14
|
newText: Type.TString;
|
|
15
15
|
}>>;
|
|
16
16
|
}>;
|
|
17
|
+
export declare const editToolSystemPromptContribution: {
|
|
18
|
+
readonly snippet: "Make precise file edits with exact text replacement, including multiple disjoint edits in one call";
|
|
19
|
+
readonly guidelines: readonly ["Use edit for precise changes (edits[].oldText must match exactly)", "When changing multiple separate locations in one file, use one edit call with multiple entries in edits[] instead of multiple edit calls", "Each edits[].oldText is matched against the original file, not after earlier edits are applied. Do not emit overlapping or nested edits. Merge nearby changes into one edit.", "Keep edits[].oldText as small as possible while still being unique in the file. Do not pad with large unchanged regions."];
|
|
20
|
+
};
|
|
17
21
|
export type EditToolInput = Static<typeof editSchema>;
|
|
18
22
|
export interface EditToolDetails {
|
|
19
23
|
/** Display-oriented diff of the changes made */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/core/tools/edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAA2B,MAAM,wBAAwB,CAAC;AAGtE,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAKN,KAAK,aAAa,EAClB,KAAK,cAAc,EAMnB,MAAM,gBAAgB,CAAC;AAMxB,KAAK,WAAW,GAAG,cAAc,GAAG,aAAa,CAAC;AAElD,KAAK,eAAe,GAAG;IACtB,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACxC,CAAC;AAaF,QAAA,MAAM,UAAU;;;;;;EASf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAMtD,MAAM,WAAW,eAAe;IAC/B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,qCAAqC;IACrC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,8BAA8B;IAC9B,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,4DAA4D;IAC5D,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAQD,MAAM,WAAW,eAAe;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,cAAc,CAAC;CAC5B;AAgDD,KAAK,uBAAuB,GAAG,GAAG,GAAG;IACpC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AA8IF,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACvB,cAAc,CAAC,OAAO,UAAU,EAAE,eAAe,GAAG,SAAS,EAAE,eAAe,CAAC,CA+IjF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CAEnG","sourcesContent":["import type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Box, Container, Spacer, Text } from \"@earendil-works/pi-tui\";\nimport { constants } from \"fs\";\nimport { access as fsAccess, readFile as fsReadFile, writeFile as fsWriteFile } from \"fs/promises\";\nimport { type Static, Type } from \"typebox\";\nimport { renderDiff } from \"../../modes/interactive/components/diff.ts\";\nimport type { Theme } from \"../../modes/interactive/theme/theme.ts\";\nimport type { ToolDefinition } from \"../extensions/types.ts\";\nimport {\n\tapplyEditsToNormalizedContent,\n\tcomputeEditsDiff,\n\tdetectLineEnding,\n\ttype Edit,\n\ttype EditDiffError,\n\ttype EditDiffResult,\n\tgenerateDiffString,\n\tgenerateUnifiedPatch,\n\tnormalizeToLF,\n\trestoreLineEndings,\n\tstripBom,\n} from \"./edit-diff.ts\";\nimport { withFileMutationQueue } from \"./file-mutation-queue.ts\";\nimport { resolveToCwd } from \"./path-utils.ts\";\nimport { renderToolPath, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\n\ntype EditPreview = EditDiffResult | EditDiffError;\n\ntype EditRenderState = {\n\tcallComponent?: EditCallRenderComponent;\n};\n\nconst replaceEditSchema = Type.Object(\n\t{\n\t\toldText: Type.String({\n\t\t\tdescription:\n\t\t\t\t\"Exact text for one targeted replacement. It must be unique in the original file and must not overlap with any other edits[].oldText in the same call.\",\n\t\t}),\n\t\tnewText: Type.String({ description: \"Replacement text for this targeted edit.\" }),\n\t},\n\t{},\n);\n\nconst editSchema = Type.Object(\n\t{\n\t\tpath: Type.String({ description: \"Path to the file to edit (relative or absolute)\" }),\n\t\tedits: Type.Array(replaceEditSchema, {\n\t\t\tdescription:\n\t\t\t\t\"One or more targeted replacements. Each edit is matched against the original file, not incrementally. Do not include overlapping or nested edits. If two changes touch the same block or nearby lines, merge them into one edit instead.\",\n\t\t}),\n\t},\n\t{},\n);\n\nexport type EditToolInput = Static<typeof editSchema>;\ntype LegacyEditToolInput = EditToolInput & {\n\toldText?: unknown;\n\tnewText?: unknown;\n};\n\nexport interface EditToolDetails {\n\t/** Display-oriented diff of the changes made */\n\tdiff: string;\n\t/** Standard unified patch of the changes made */\n\tpatch: string;\n\t/** Line number of the first change in the new file (for editor navigation) */\n\tfirstChangedLine?: number;\n}\n\n/**\n * Pluggable operations for the edit tool.\n * Override these to delegate file editing to remote systems (for example SSH).\n */\nexport interface EditOperations {\n\t/** Read file contents as a Buffer */\n\treadFile: (absolutePath: string) => Promise<Buffer>;\n\t/** Write content to a file */\n\twriteFile: (absolutePath: string, content: string) => Promise<void>;\n\t/** Check if file is readable and writable (throw if not) */\n\taccess: (absolutePath: string) => Promise<void>;\n}\n\nconst defaultEditOperations: EditOperations = {\n\treadFile: (path) => fsReadFile(path),\n\twriteFile: (path, content) => fsWriteFile(path, content, \"utf-8\"),\n\taccess: (path) => fsAccess(path, constants.R_OK | constants.W_OK),\n};\n\nexport interface EditToolOptions {\n\t/** Custom operations for file editing. Default: local filesystem */\n\toperations?: EditOperations;\n}\n\nfunction prepareEditArguments(input: unknown): EditToolInput {\n\tif (!input || typeof input !== \"object\") {\n\t\treturn input as EditToolInput;\n\t}\n\n\tconst args = input as Record<string, unknown>;\n\n\t// Some models (Opus 4.6, GLM-5.1) send edits as a JSON string instead of an array\n\tif (typeof args.edits === \"string\") {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(args.edits);\n\t\t\tif (Array.isArray(parsed)) args.edits = parsed;\n\t\t} catch {}\n\t}\n\n\tconst legacy = args as LegacyEditToolInput;\n\tif (typeof legacy.oldText !== \"string\" || typeof legacy.newText !== \"string\") {\n\t\treturn args as EditToolInput;\n\t}\n\n\tconst edits = Array.isArray(legacy.edits) ? [...legacy.edits] : [];\n\tedits.push({ oldText: legacy.oldText, newText: legacy.newText });\n\tconst { oldText: _oldText, newText: _newText, ...rest } = legacy;\n\treturn { ...rest, edits } as EditToolInput;\n}\n\nfunction validateEditInput(input: EditToolInput): { path: string; edits: Edit[] } {\n\tif (!Array.isArray(input.edits) || input.edits.length === 0) {\n\t\tthrow new Error(\"Edit tool input is invalid. edits must contain at least one replacement.\");\n\t}\n\treturn { path: input.path, edits: input.edits };\n}\n\ntype RenderableEditArgs = {\n\tpath?: string;\n\tfile_path?: string;\n\tedits?: Edit[];\n\toldText?: string;\n\tnewText?: string;\n};\n\ntype EditToolResultLike = {\n\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\tdetails?: EditToolDetails;\n};\n\ntype EditCallRenderComponent = Box & {\n\tpreview?: EditPreview;\n\tpreviewArgsKey?: string;\n\tpreviewPending?: boolean;\n\tsettledError?: boolean;\n};\n\nfunction createEditCallRenderComponent(): EditCallRenderComponent {\n\treturn Object.assign(new Box(1, 1, (text: string) => text), {\n\t\tpreview: undefined as EditPreview | undefined,\n\t\tpreviewArgsKey: undefined as string | undefined,\n\t\tpreviewPending: false,\n\t\tsettledError: false,\n\t});\n}\n\nfunction getEditCallRenderComponent(state: EditRenderState, lastComponent: unknown): EditCallRenderComponent {\n\tif (lastComponent instanceof Box) {\n\t\tconst component = lastComponent as EditCallRenderComponent;\n\t\tstate.callComponent = component;\n\t\treturn component;\n\t}\n\tif (state.callComponent) {\n\t\treturn state.callComponent;\n\t}\n\tconst component = createEditCallRenderComponent();\n\tstate.callComponent = component;\n\treturn component;\n}\n\nfunction getRenderablePreviewInput(args: RenderableEditArgs | undefined): { path: string; edits: Edit[] } | null {\n\tif (!args) {\n\t\treturn null;\n\t}\n\n\tconst path = typeof args.path === \"string\" ? args.path : typeof args.file_path === \"string\" ? args.file_path : null;\n\tif (!path) {\n\t\treturn null;\n\t}\n\n\tif (\n\t\tArray.isArray(args.edits) &&\n\t\targs.edits.length > 0 &&\n\t\targs.edits.every((edit) => typeof edit?.oldText === \"string\" && typeof edit?.newText === \"string\")\n\t) {\n\t\treturn { path, edits: args.edits };\n\t}\n\n\tif (typeof args.oldText === \"string\" && typeof args.newText === \"string\") {\n\t\treturn { path, edits: [{ oldText: args.oldText, newText: args.newText }] };\n\t}\n\n\treturn null;\n}\n\nfunction formatEditCall(args: RenderableEditArgs | undefined, theme: Theme, cwd: string): string {\n\tconst pathDisplay = renderToolPath(str(args?.file_path ?? args?.path), theme, cwd);\n\treturn `${theme.fg(\"toolTitle\", theme.bold(\"edit\"))} ${pathDisplay}`;\n}\n\nfunction formatEditResult(\n\targs: RenderableEditArgs | undefined,\n\tpreview: EditPreview | undefined,\n\tresult: EditToolResultLike,\n\ttheme: Theme,\n\tisError: boolean,\n): string | undefined {\n\tconst rawPath = str(args?.file_path ?? args?.path);\n\tconst previewDiff = preview && !(\"error\" in preview) ? preview.diff : undefined;\n\tconst previewError = preview && \"error\" in preview ? preview.error : undefined;\n\tif (isError) {\n\t\tconst errorText = result.content\n\t\t\t.filter((c) => c.type === \"text\")\n\t\t\t.map((c) => c.text || \"\")\n\t\t\t.join(\"\\n\");\n\t\tif (!errorText || errorText === previewError) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn theme.fg(\"error\", errorText);\n\t}\n\n\tconst resultDiff = result.details?.diff;\n\tif (resultDiff && resultDiff !== previewDiff) {\n\t\treturn renderDiff(resultDiff, { filePath: rawPath ?? undefined });\n\t}\n\n\treturn undefined;\n}\n\nfunction getEditHeaderBg(\n\tpreview: EditPreview | undefined,\n\tsettledError: boolean | undefined,\n\ttheme: Theme,\n): (text: string) => string {\n\tif (preview) {\n\t\tif (\"error\" in preview) {\n\t\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t\t}\n\t\treturn (text: string) => theme.bg(\"toolSuccessBg\", text);\n\t}\n\tif (settledError) {\n\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t}\n\treturn (text: string) => theme.bg(\"toolPendingBg\", text);\n}\n\nfunction buildEditCallComponent(\n\tcomponent: EditCallRenderComponent,\n\targs: RenderableEditArgs | undefined,\n\ttheme: Theme,\n\tcwd: string,\n): EditCallRenderComponent {\n\tcomponent.setBgFn(getEditHeaderBg(component.preview, component.settledError, theme));\n\tcomponent.clear();\n\tcomponent.addChild(new Text(formatEditCall(args, theme, cwd), 0, 0));\n\n\tif (!component.preview) {\n\t\treturn component;\n\t}\n\n\tconst body =\n\t\t\"error\" in component.preview ? theme.fg(\"error\", component.preview.error) : renderDiff(component.preview.diff);\n\tcomponent.addChild(new Spacer(1));\n\tcomponent.addChild(new Text(body, 0, 0));\n\treturn component;\n}\n\nfunction setEditPreview(\n\tcomponent: EditCallRenderComponent,\n\tpreview: EditPreview,\n\targsKey: string | undefined,\n): boolean {\n\tconst current = component.preview;\n\tconst changed =\n\t\tcurrent === undefined ||\n\t\t(\"error\" in current && \"error\" in preview\n\t\t\t? current.error !== preview.error\n\t\t\t: \"error\" in current !== \"error\" in preview) ||\n\t\t(!(\"error\" in current) &&\n\t\t\t!(\"error\" in preview) &&\n\t\t\t(current.diff !== preview.diff || current.firstChangedLine !== preview.firstChangedLine));\n\tcomponent.preview = preview;\n\tcomponent.previewArgsKey = argsKey;\n\tcomponent.previewPending = false;\n\treturn changed;\n}\n\nexport function createEditToolDefinition(\n\tcwd: string,\n\toptions?: EditToolOptions,\n): ToolDefinition<typeof editSchema, EditToolDetails | undefined, EditRenderState> {\n\tconst ops = options?.operations ?? defaultEditOperations;\n\treturn {\n\t\tname: \"edit\",\n\t\tlabel: \"edit\",\n\t\tdescription:\n\t\t\t\"Edit a single file using exact text replacement. Every edits[].oldText must match a unique, non-overlapping region of the original file. If two changes affect the same block or nearby lines, merge them into one edit instead of emitting overlapping edits. Do not include large unchanged regions just to connect distant changes.\",\n\t\tpromptSnippet:\n\t\t\t\"Make precise file edits with exact text replacement, including multiple disjoint edits in one call\",\n\t\tpromptGuidelines: [\n\t\t\t\"Use edit for precise changes (edits[].oldText must match exactly)\",\n\t\t\t\"When changing multiple separate locations in one file, use one edit call with multiple entries in edits[] instead of multiple edit calls\",\n\t\t\t\"Each edits[].oldText is matched against the original file, not after earlier edits are applied. Do not emit overlapping or nested edits. Merge nearby changes into one edit.\",\n\t\t\t\"Keep edits[].oldText as small as possible while still being unique in the file. Do not pad with large unchanged regions.\",\n\t\t],\n\t\tparameters: editSchema,\n\t\trenderShell: \"self\",\n\t\tprepareArguments: prepareEditArguments,\n\t\tasync execute(_toolCallId, input: EditToolInput, signal?: AbortSignal, _onUpdate?, _ctx?) {\n\t\t\tconst { path, edits } = validateEditInput(input);\n\t\t\tconst absolutePath = resolveToCwd(path, cwd);\n\n\t\t\treturn withFileMutationQueue(absolutePath, async () => {\n\t\t\t\t// Do not reject from an abort event listener here: that would release the\n\t\t\t\t// mutation queue while an in-flight filesystem operation may still finish.\n\t\t\t\t// Checking signal.aborted after each await observes the same aborts while\n\t\t\t\t// keeping the queue locked until the current operation has settled.\n\t\t\t\tconst throwIfAborted = (): void => {\n\t\t\t\t\tif (signal?.aborted) throw new Error(\"Operation aborted\");\n\t\t\t\t};\n\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Check if file exists.\n\t\t\t\ttry {\n\t\t\t\t\tawait ops.access(absolutePath);\n\t\t\t\t} catch (error: unknown) {\n\t\t\t\t\tthrowIfAborted();\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror instanceof Error && \"code\" in error ? `Error code: ${error.code}` : String(error);\n\t\t\t\t\tthrow new Error(`Could not edit file: ${path}. ${errorMessage}.`);\n\t\t\t\t}\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Read the file.\n\t\t\t\tconst buffer = await ops.readFile(absolutePath);\n\t\t\t\tconst rawContent = buffer.toString(\"utf-8\");\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Strip BOM before matching. The model will not include an invisible BOM in oldText.\n\t\t\t\tconst { bom, text: content } = stripBom(rawContent);\n\t\t\t\tconst originalEnding = detectLineEnding(content);\n\t\t\t\tconst normalizedContent = normalizeToLF(content);\n\t\t\t\tconst { baseContent, newContent } = applyEditsToNormalizedContent(normalizedContent, edits, path);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst finalContent = bom + restoreLineEndings(newContent, originalEnding);\n\t\t\t\tawait ops.writeFile(absolutePath, finalContent);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst diffResult = generateDiffString(baseContent, newContent);\n\t\t\t\tconst patch = generateUnifiedPatch(path, baseContent, newContent);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `Successfully replaced ${edits.length} block(s) in ${path}.`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdetails: { diff: diffResult.diff, patch, firstChangedLine: diffResult.firstChangedLine },\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\trenderCall(args, theme, context) {\n\t\t\tconst component = getEditCallRenderComponent(context.state, context.lastComponent);\n\t\t\tconst previewInput = getRenderablePreviewInput(args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\n\t\t\tif (component.previewArgsKey !== argsKey) {\n\t\t\t\tcomponent.preview = undefined;\n\t\t\t\tcomponent.previewArgsKey = argsKey;\n\t\t\t\tcomponent.previewPending = false;\n\t\t\t\tcomponent.settledError = false;\n\t\t\t}\n\n\t\t\tif (context.argsComplete && previewInput && !component.preview && !component.previewPending) {\n\t\t\t\tcomponent.previewPending = true;\n\t\t\t\tconst requestKey = argsKey;\n\t\t\t\tvoid computeEditsDiff(previewInput.path, previewInput.edits, context.cwd).then((preview) => {\n\t\t\t\t\tif (component.previewArgsKey === requestKey) {\n\t\t\t\t\t\tsetEditPreview(component, preview, requestKey);\n\t\t\t\t\t\tcontext.invalidate();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn buildEditCallComponent(component, args, theme, context.cwd);\n\t\t},\n\t\trenderResult(result, _options, theme, context) {\n\t\t\tconst callComponent = context.state.callComponent;\n\t\t\tconst previewInput = getRenderablePreviewInput(context.args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\t\t\tconst typedResult = result as EditToolResultLike;\n\t\t\tconst resultDiff = !context.isError ? typedResult.details?.diff : undefined;\n\t\t\tlet changed = false;\n\t\t\tif (callComponent) {\n\t\t\t\tif (typeof resultDiff === \"string\") {\n\t\t\t\t\tchanged =\n\t\t\t\t\t\tsetEditPreview(\n\t\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\t\t{ diff: resultDiff, firstChangedLine: typedResult.details?.firstChangedLine },\n\t\t\t\t\t\t\targsKey,\n\t\t\t\t\t\t) || changed;\n\t\t\t\t}\n\t\t\t\tif (callComponent.settledError !== context.isError) {\n\t\t\t\t\tcallComponent.settledError = context.isError;\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (changed) {\n\t\t\t\t\tbuildEditCallComponent(\n\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\tcontext.args as RenderableEditArgs | undefined,\n\t\t\t\t\t\ttheme,\n\t\t\t\t\t\tcontext.cwd,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst output = formatEditResult(context.args, callComponent?.preview, typedResult, theme, context.isError);\n\t\t\tconst component = (context.lastComponent as Container | undefined) ?? new Container();\n\t\t\tcomponent.clear();\n\t\t\tif (!output) {\n\t\t\t\treturn component;\n\t\t\t}\n\t\t\tcomponent.addChild(new Spacer(1));\n\t\t\tcomponent.addChild(new Text(output, 1, 0));\n\t\t\treturn component;\n\t\t},\n\t};\n}\n\nexport function createEditTool(cwd: string, options?: EditToolOptions): AgentTool<typeof editSchema> {\n\treturn wrapToolDefinition(createEditToolDefinition(cwd, options));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/core/tools/edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAA2B,MAAM,wBAAwB,CAAC;AAGtE,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAKN,KAAK,aAAa,EAClB,KAAK,cAAc,EAMnB,MAAM,gBAAgB,CAAC;AAMxB,KAAK,WAAW,GAAG,cAAc,GAAG,aAAa,CAAC;AAElD,KAAK,eAAe,GAAG;IACtB,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACxC,CAAC;AAaF,QAAA,MAAM,UAAU;;;;;;EASf,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;CAQnC,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAMtD,MAAM,WAAW,eAAe;IAC/B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,qCAAqC;IACrC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,8BAA8B;IAC9B,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,4DAA4D;IAC5D,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAQD,MAAM,WAAW,eAAe;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,cAAc,CAAC;CAC5B;AAgDD,KAAK,uBAAuB,GAAG,GAAG,GAAG;IACpC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AA8IF,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACvB,cAAc,CAAC,OAAO,UAAU,EAAE,eAAe,GAAG,SAAS,EAAE,eAAe,CAAC,CAyIjF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CAEnG","sourcesContent":["import type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Box, Container, Spacer, Text } from \"@earendil-works/pi-tui\";\nimport { constants } from \"fs\";\nimport { access as fsAccess, readFile as fsReadFile, writeFile as fsWriteFile } from \"fs/promises\";\nimport { type Static, Type } from \"typebox\";\nimport { renderDiff } from \"../../modes/interactive/components/diff.ts\";\nimport type { Theme } from \"../../modes/interactive/theme/theme.ts\";\nimport type { ToolDefinition } from \"../extensions/types.ts\";\nimport {\n\tapplyEditsToNormalizedContent,\n\tcomputeEditsDiff,\n\tdetectLineEnding,\n\ttype Edit,\n\ttype EditDiffError,\n\ttype EditDiffResult,\n\tgenerateDiffString,\n\tgenerateUnifiedPatch,\n\tnormalizeToLF,\n\trestoreLineEndings,\n\tstripBom,\n} from \"./edit-diff.ts\";\nimport { withFileMutationQueue } from \"./file-mutation-queue.ts\";\nimport { resolveToCwd } from \"./path-utils.ts\";\nimport { renderToolPath, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\n\ntype EditPreview = EditDiffResult | EditDiffError;\n\ntype EditRenderState = {\n\tcallComponent?: EditCallRenderComponent;\n};\n\nconst replaceEditSchema = Type.Object(\n\t{\n\t\toldText: Type.String({\n\t\t\tdescription:\n\t\t\t\t\"Exact text for one targeted replacement. It must be unique in the original file and must not overlap with any other edits[].oldText in the same call.\",\n\t\t}),\n\t\tnewText: Type.String({ description: \"Replacement text for this targeted edit.\" }),\n\t},\n\t{},\n);\n\nconst editSchema = Type.Object(\n\t{\n\t\tpath: Type.String({ description: \"Path to the file to edit (relative or absolute)\" }),\n\t\tedits: Type.Array(replaceEditSchema, {\n\t\t\tdescription:\n\t\t\t\t\"One or more targeted replacements. Each edit is matched against the original file, not incrementally. Do not include overlapping or nested edits. If two changes touch the same block or nearby lines, merge them into one edit instead.\",\n\t\t}),\n\t},\n\t{},\n);\n\nexport const editToolSystemPromptContribution = {\n\tsnippet: \"Make precise file edits with exact text replacement, including multiple disjoint edits in one call\",\n\tguidelines: [\n\t\t\"Use edit for precise changes (edits[].oldText must match exactly)\",\n\t\t\"When changing multiple separate locations in one file, use one edit call with multiple entries in edits[] instead of multiple edit calls\",\n\t\t\"Each edits[].oldText is matched against the original file, not after earlier edits are applied. Do not emit overlapping or nested edits. Merge nearby changes into one edit.\",\n\t\t\"Keep edits[].oldText as small as possible while still being unique in the file. Do not pad with large unchanged regions.\",\n\t],\n} as const;\n\nexport type EditToolInput = Static<typeof editSchema>;\ntype LegacyEditToolInput = EditToolInput & {\n\toldText?: unknown;\n\tnewText?: unknown;\n};\n\nexport interface EditToolDetails {\n\t/** Display-oriented diff of the changes made */\n\tdiff: string;\n\t/** Standard unified patch of the changes made */\n\tpatch: string;\n\t/** Line number of the first change in the new file (for editor navigation) */\n\tfirstChangedLine?: number;\n}\n\n/**\n * Pluggable operations for the edit tool.\n * Override these to delegate file editing to remote systems (for example SSH).\n */\nexport interface EditOperations {\n\t/** Read file contents as a Buffer */\n\treadFile: (absolutePath: string) => Promise<Buffer>;\n\t/** Write content to a file */\n\twriteFile: (absolutePath: string, content: string) => Promise<void>;\n\t/** Check if file is readable and writable (throw if not) */\n\taccess: (absolutePath: string) => Promise<void>;\n}\n\nconst defaultEditOperations: EditOperations = {\n\treadFile: (path) => fsReadFile(path),\n\twriteFile: (path, content) => fsWriteFile(path, content, \"utf-8\"),\n\taccess: (path) => fsAccess(path, constants.R_OK | constants.W_OK),\n};\n\nexport interface EditToolOptions {\n\t/** Custom operations for file editing. Default: local filesystem */\n\toperations?: EditOperations;\n}\n\nfunction prepareEditArguments(input: unknown): EditToolInput {\n\tif (!input || typeof input !== \"object\") {\n\t\treturn input as EditToolInput;\n\t}\n\n\tconst args = input as Record<string, unknown>;\n\n\t// Some models (Opus 4.6, GLM-5.1) send edits as a JSON string instead of an array\n\tif (typeof args.edits === \"string\") {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(args.edits);\n\t\t\tif (Array.isArray(parsed)) args.edits = parsed;\n\t\t} catch {}\n\t}\n\n\tconst legacy = args as LegacyEditToolInput;\n\tif (typeof legacy.oldText !== \"string\" || typeof legacy.newText !== \"string\") {\n\t\treturn args as EditToolInput;\n\t}\n\n\tconst edits = Array.isArray(legacy.edits) ? [...legacy.edits] : [];\n\tedits.push({ oldText: legacy.oldText, newText: legacy.newText });\n\tconst { oldText: _oldText, newText: _newText, ...rest } = legacy;\n\treturn { ...rest, edits } as EditToolInput;\n}\n\nfunction validateEditInput(input: EditToolInput): { path: string; edits: Edit[] } {\n\tif (!Array.isArray(input.edits) || input.edits.length === 0) {\n\t\tthrow new Error(\"Edit tool input is invalid. edits must contain at least one replacement.\");\n\t}\n\treturn { path: input.path, edits: input.edits };\n}\n\ntype RenderableEditArgs = {\n\tpath?: string;\n\tfile_path?: string;\n\tedits?: Edit[];\n\toldText?: string;\n\tnewText?: string;\n};\n\ntype EditToolResultLike = {\n\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\tdetails?: EditToolDetails;\n};\n\ntype EditCallRenderComponent = Box & {\n\tpreview?: EditPreview;\n\tpreviewArgsKey?: string;\n\tpreviewPending?: boolean;\n\tsettledError?: boolean;\n};\n\nfunction createEditCallRenderComponent(): EditCallRenderComponent {\n\treturn Object.assign(new Box(1, 1, (text: string) => text), {\n\t\tpreview: undefined as EditPreview | undefined,\n\t\tpreviewArgsKey: undefined as string | undefined,\n\t\tpreviewPending: false,\n\t\tsettledError: false,\n\t});\n}\n\nfunction getEditCallRenderComponent(state: EditRenderState, lastComponent: unknown): EditCallRenderComponent {\n\tif (lastComponent instanceof Box) {\n\t\tconst component = lastComponent as EditCallRenderComponent;\n\t\tstate.callComponent = component;\n\t\treturn component;\n\t}\n\tif (state.callComponent) {\n\t\treturn state.callComponent;\n\t}\n\tconst component = createEditCallRenderComponent();\n\tstate.callComponent = component;\n\treturn component;\n}\n\nfunction getRenderablePreviewInput(args: RenderableEditArgs | undefined): { path: string; edits: Edit[] } | null {\n\tif (!args) {\n\t\treturn null;\n\t}\n\n\tconst path = typeof args.path === \"string\" ? args.path : typeof args.file_path === \"string\" ? args.file_path : null;\n\tif (!path) {\n\t\treturn null;\n\t}\n\n\tif (\n\t\tArray.isArray(args.edits) &&\n\t\targs.edits.length > 0 &&\n\t\targs.edits.every((edit) => typeof edit?.oldText === \"string\" && typeof edit?.newText === \"string\")\n\t) {\n\t\treturn { path, edits: args.edits };\n\t}\n\n\tif (typeof args.oldText === \"string\" && typeof args.newText === \"string\") {\n\t\treturn { path, edits: [{ oldText: args.oldText, newText: args.newText }] };\n\t}\n\n\treturn null;\n}\n\nfunction formatEditCall(args: RenderableEditArgs | undefined, theme: Theme, cwd: string): string {\n\tconst pathDisplay = renderToolPath(str(args?.file_path ?? args?.path), theme, cwd);\n\treturn `${theme.fg(\"toolTitle\", theme.bold(\"edit\"))} ${pathDisplay}`;\n}\n\nfunction formatEditResult(\n\targs: RenderableEditArgs | undefined,\n\tpreview: EditPreview | undefined,\n\tresult: EditToolResultLike,\n\ttheme: Theme,\n\tisError: boolean,\n): string | undefined {\n\tconst rawPath = str(args?.file_path ?? args?.path);\n\tconst previewDiff = preview && !(\"error\" in preview) ? preview.diff : undefined;\n\tconst previewError = preview && \"error\" in preview ? preview.error : undefined;\n\tif (isError) {\n\t\tconst errorText = result.content\n\t\t\t.filter((c) => c.type === \"text\")\n\t\t\t.map((c) => c.text || \"\")\n\t\t\t.join(\"\\n\");\n\t\tif (!errorText || errorText === previewError) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn theme.fg(\"error\", errorText);\n\t}\n\n\tconst resultDiff = result.details?.diff;\n\tif (resultDiff && resultDiff !== previewDiff) {\n\t\treturn renderDiff(resultDiff, { filePath: rawPath ?? undefined });\n\t}\n\n\treturn undefined;\n}\n\nfunction getEditHeaderBg(\n\tpreview: EditPreview | undefined,\n\tsettledError: boolean | undefined,\n\ttheme: Theme,\n): (text: string) => string {\n\tif (preview) {\n\t\tif (\"error\" in preview) {\n\t\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t\t}\n\t\treturn (text: string) => theme.bg(\"toolSuccessBg\", text);\n\t}\n\tif (settledError) {\n\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t}\n\treturn (text: string) => theme.bg(\"toolPendingBg\", text);\n}\n\nfunction buildEditCallComponent(\n\tcomponent: EditCallRenderComponent,\n\targs: RenderableEditArgs | undefined,\n\ttheme: Theme,\n\tcwd: string,\n): EditCallRenderComponent {\n\tcomponent.setBgFn(getEditHeaderBg(component.preview, component.settledError, theme));\n\tcomponent.clear();\n\tcomponent.addChild(new Text(formatEditCall(args, theme, cwd), 0, 0));\n\n\tif (!component.preview) {\n\t\treturn component;\n\t}\n\n\tconst body =\n\t\t\"error\" in component.preview ? theme.fg(\"error\", component.preview.error) : renderDiff(component.preview.diff);\n\tcomponent.addChild(new Spacer(1));\n\tcomponent.addChild(new Text(body, 0, 0));\n\treturn component;\n}\n\nfunction setEditPreview(\n\tcomponent: EditCallRenderComponent,\n\tpreview: EditPreview,\n\targsKey: string | undefined,\n): boolean {\n\tconst current = component.preview;\n\tconst changed =\n\t\tcurrent === undefined ||\n\t\t(\"error\" in current && \"error\" in preview\n\t\t\t? current.error !== preview.error\n\t\t\t: \"error\" in current !== \"error\" in preview) ||\n\t\t(!(\"error\" in current) &&\n\t\t\t!(\"error\" in preview) &&\n\t\t\t(current.diff !== preview.diff || current.firstChangedLine !== preview.firstChangedLine));\n\tcomponent.preview = preview;\n\tcomponent.previewArgsKey = argsKey;\n\tcomponent.previewPending = false;\n\treturn changed;\n}\n\nexport function createEditToolDefinition(\n\tcwd: string,\n\toptions?: EditToolOptions,\n): ToolDefinition<typeof editSchema, EditToolDetails | undefined, EditRenderState> {\n\tconst ops = options?.operations ?? defaultEditOperations;\n\treturn {\n\t\tname: \"edit\",\n\t\tlabel: \"edit\",\n\t\tdescription:\n\t\t\t\"Edit a single file using exact text replacement. Every edits[].oldText must match a unique, non-overlapping region of the original file. If two changes affect the same block or nearby lines, merge them into one edit instead of emitting overlapping edits. Do not include large unchanged regions just to connect distant changes.\",\n\t\tpromptSnippet: editToolSystemPromptContribution.snippet,\n\t\tpromptGuidelines: [...editToolSystemPromptContribution.guidelines],\n\t\tparameters: editSchema,\n\t\trenderShell: \"self\",\n\t\tprepareArguments: prepareEditArguments,\n\t\tasync execute(_toolCallId, input: EditToolInput, signal?: AbortSignal, _onUpdate?, _ctx?) {\n\t\t\tconst { path, edits } = validateEditInput(input);\n\t\t\tconst absolutePath = resolveToCwd(path, cwd);\n\n\t\t\treturn withFileMutationQueue(absolutePath, async () => {\n\t\t\t\t// Do not reject from an abort event listener here: that would release the\n\t\t\t\t// mutation queue while an in-flight filesystem operation may still finish.\n\t\t\t\t// Checking signal.aborted after each await observes the same aborts while\n\t\t\t\t// keeping the queue locked until the current operation has settled.\n\t\t\t\tconst throwIfAborted = (): void => {\n\t\t\t\t\tif (signal?.aborted) throw new Error(\"Operation aborted\");\n\t\t\t\t};\n\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Check if file exists.\n\t\t\t\ttry {\n\t\t\t\t\tawait ops.access(absolutePath);\n\t\t\t\t} catch (error: unknown) {\n\t\t\t\t\tthrowIfAborted();\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror instanceof Error && \"code\" in error ? `Error code: ${error.code}` : String(error);\n\t\t\t\t\tthrow new Error(`Could not edit file: ${path}. ${errorMessage}.`);\n\t\t\t\t}\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Read the file.\n\t\t\t\tconst buffer = await ops.readFile(absolutePath);\n\t\t\t\tconst rawContent = buffer.toString(\"utf-8\");\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Strip BOM before matching. The model will not include an invisible BOM in oldText.\n\t\t\t\tconst { bom, text: content } = stripBom(rawContent);\n\t\t\t\tconst originalEnding = detectLineEnding(content);\n\t\t\t\tconst normalizedContent = normalizeToLF(content);\n\t\t\t\tconst { baseContent, newContent } = applyEditsToNormalizedContent(normalizedContent, edits, path);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst finalContent = bom + restoreLineEndings(newContent, originalEnding);\n\t\t\t\tawait ops.writeFile(absolutePath, finalContent);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst diffResult = generateDiffString(baseContent, newContent);\n\t\t\t\tconst patch = generateUnifiedPatch(path, baseContent, newContent);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `Successfully replaced ${edits.length} block(s) in ${path}.`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdetails: { diff: diffResult.diff, patch, firstChangedLine: diffResult.firstChangedLine },\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\trenderCall(args, theme, context) {\n\t\t\tconst component = getEditCallRenderComponent(context.state, context.lastComponent);\n\t\t\tconst previewInput = getRenderablePreviewInput(args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\n\t\t\tif (component.previewArgsKey !== argsKey) {\n\t\t\t\tcomponent.preview = undefined;\n\t\t\t\tcomponent.previewArgsKey = argsKey;\n\t\t\t\tcomponent.previewPending = false;\n\t\t\t\tcomponent.settledError = false;\n\t\t\t}\n\n\t\t\tif (context.argsComplete && previewInput && !component.preview && !component.previewPending) {\n\t\t\t\tcomponent.previewPending = true;\n\t\t\t\tconst requestKey = argsKey;\n\t\t\t\tvoid computeEditsDiff(previewInput.path, previewInput.edits, context.cwd).then((preview) => {\n\t\t\t\t\tif (component.previewArgsKey === requestKey) {\n\t\t\t\t\t\tsetEditPreview(component, preview, requestKey);\n\t\t\t\t\t\tcontext.invalidate();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn buildEditCallComponent(component, args, theme, context.cwd);\n\t\t},\n\t\trenderResult(result, _options, theme, context) {\n\t\t\tconst callComponent = context.state.callComponent;\n\t\t\tconst previewInput = getRenderablePreviewInput(context.args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\t\t\tconst typedResult = result as EditToolResultLike;\n\t\t\tconst resultDiff = !context.isError ? typedResult.details?.diff : undefined;\n\t\t\tlet changed = false;\n\t\t\tif (callComponent) {\n\t\t\t\tif (typeof resultDiff === \"string\") {\n\t\t\t\t\tchanged =\n\t\t\t\t\t\tsetEditPreview(\n\t\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\t\t{ diff: resultDiff, firstChangedLine: typedResult.details?.firstChangedLine },\n\t\t\t\t\t\t\targsKey,\n\t\t\t\t\t\t) || changed;\n\t\t\t\t}\n\t\t\t\tif (callComponent.settledError !== context.isError) {\n\t\t\t\t\tcallComponent.settledError = context.isError;\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (changed) {\n\t\t\t\t\tbuildEditCallComponent(\n\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\tcontext.args as RenderableEditArgs | undefined,\n\t\t\t\t\t\ttheme,\n\t\t\t\t\t\tcontext.cwd,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst output = formatEditResult(context.args, callComponent?.preview, typedResult, theme, context.isError);\n\t\t\tconst component = (context.lastComponent as Container | undefined) ?? new Container();\n\t\t\tcomponent.clear();\n\t\t\tif (!output) {\n\t\t\t\treturn component;\n\t\t\t}\n\t\t\tcomponent.addChild(new Spacer(1));\n\t\t\tcomponent.addChild(new Text(output, 1, 0));\n\t\t\treturn component;\n\t\t},\n\t};\n}\n\nexport function createEditTool(cwd: string, options?: EditToolOptions): AgentTool<typeof editSchema> {\n\treturn wrapToolDefinition(createEditToolDefinition(cwd, options));\n}\n"]}
|
|
@@ -20,6 +20,15 @@ const editSchema = Type.Object({
|
|
|
20
20
|
description: "One or more targeted replacements. Each edit is matched against the original file, not incrementally. Do not include overlapping or nested edits. If two changes touch the same block or nearby lines, merge them into one edit instead.",
|
|
21
21
|
}),
|
|
22
22
|
}, {});
|
|
23
|
+
export const editToolSystemPromptContribution = {
|
|
24
|
+
snippet: "Make precise file edits with exact text replacement, including multiple disjoint edits in one call",
|
|
25
|
+
guidelines: [
|
|
26
|
+
"Use edit for precise changes (edits[].oldText must match exactly)",
|
|
27
|
+
"When changing multiple separate locations in one file, use one edit call with multiple entries in edits[] instead of multiple edit calls",
|
|
28
|
+
"Each edits[].oldText is matched against the original file, not after earlier edits are applied. Do not emit overlapping or nested edits. Merge nearby changes into one edit.",
|
|
29
|
+
"Keep edits[].oldText as small as possible while still being unique in the file. Do not pad with large unchanged regions.",
|
|
30
|
+
],
|
|
31
|
+
};
|
|
23
32
|
const defaultEditOperations = {
|
|
24
33
|
readFile: (path) => fsReadFile(path),
|
|
25
34
|
writeFile: (path, content) => fsWriteFile(path, content, "utf-8"),
|
|
@@ -161,13 +170,8 @@ export function createEditToolDefinition(cwd, options) {
|
|
|
161
170
|
name: "edit",
|
|
162
171
|
label: "edit",
|
|
163
172
|
description: "Edit a single file using exact text replacement. Every edits[].oldText must match a unique, non-overlapping region of the original file. If two changes affect the same block or nearby lines, merge them into one edit instead of emitting overlapping edits. Do not include large unchanged regions just to connect distant changes.",
|
|
164
|
-
promptSnippet:
|
|
165
|
-
promptGuidelines: [
|
|
166
|
-
"Use edit for precise changes (edits[].oldText must match exactly)",
|
|
167
|
-
"When changing multiple separate locations in one file, use one edit call with multiple entries in edits[] instead of multiple edit calls",
|
|
168
|
-
"Each edits[].oldText is matched against the original file, not after earlier edits are applied. Do not emit overlapping or nested edits. Merge nearby changes into one edit.",
|
|
169
|
-
"Keep edits[].oldText as small as possible while still being unique in the file. Do not pad with large unchanged regions.",
|
|
170
|
-
],
|
|
173
|
+
promptSnippet: editToolSystemPromptContribution.snippet,
|
|
174
|
+
promptGuidelines: [...editToolSystemPromptContribution.guidelines],
|
|
171
175
|
parameters: editSchema,
|
|
172
176
|
renderShell: "self",
|
|
173
177
|
prepareArguments: prepareEditArguments,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/core/tools/edit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Box, Container, Spacer, Text } from \"@earendil-works/pi-tui\";\nimport { constants } from \"fs\";\nimport { access as fsAccess, readFile as fsReadFile, writeFile as fsWriteFile } from \"fs/promises\";\nimport { type Static, Type } from \"typebox\";\nimport { renderDiff } from \"../../modes/interactive/components/diff.ts\";\nimport type { Theme } from \"../../modes/interactive/theme/theme.ts\";\nimport type { ToolDefinition } from \"../extensions/types.ts\";\nimport {\n\tapplyEditsToNormalizedContent,\n\tcomputeEditsDiff,\n\tdetectLineEnding,\n\ttype Edit,\n\ttype EditDiffError,\n\ttype EditDiffResult,\n\tgenerateDiffString,\n\tgenerateUnifiedPatch,\n\tnormalizeToLF,\n\trestoreLineEndings,\n\tstripBom,\n} from \"./edit-diff.ts\";\nimport { withFileMutationQueue } from \"./file-mutation-queue.ts\";\nimport { resolveToCwd } from \"./path-utils.ts\";\nimport { renderToolPath, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\n\ntype EditPreview = EditDiffResult | EditDiffError;\n\ntype EditRenderState = {\n\tcallComponent?: EditCallRenderComponent;\n};\n\nconst replaceEditSchema = Type.Object(\n\t{\n\t\toldText: Type.String({\n\t\t\tdescription:\n\t\t\t\t\"Exact text for one targeted replacement. It must be unique in the original file and must not overlap with any other edits[].oldText in the same call.\",\n\t\t}),\n\t\tnewText: Type.String({ description: \"Replacement text for this targeted edit.\" }),\n\t},\n\t{},\n);\n\nconst editSchema = Type.Object(\n\t{\n\t\tpath: Type.String({ description: \"Path to the file to edit (relative or absolute)\" }),\n\t\tedits: Type.Array(replaceEditSchema, {\n\t\t\tdescription:\n\t\t\t\t\"One or more targeted replacements. Each edit is matched against the original file, not incrementally. Do not include overlapping or nested edits. If two changes touch the same block or nearby lines, merge them into one edit instead.\",\n\t\t}),\n\t},\n\t{},\n);\n\nexport type EditToolInput = Static<typeof editSchema>;\ntype LegacyEditToolInput = EditToolInput & {\n\toldText?: unknown;\n\tnewText?: unknown;\n};\n\nexport interface EditToolDetails {\n\t/** Display-oriented diff of the changes made */\n\tdiff: string;\n\t/** Standard unified patch of the changes made */\n\tpatch: string;\n\t/** Line number of the first change in the new file (for editor navigation) */\n\tfirstChangedLine?: number;\n}\n\n/**\n * Pluggable operations for the edit tool.\n * Override these to delegate file editing to remote systems (for example SSH).\n */\nexport interface EditOperations {\n\t/** Read file contents as a Buffer */\n\treadFile: (absolutePath: string) => Promise<Buffer>;\n\t/** Write content to a file */\n\twriteFile: (absolutePath: string, content: string) => Promise<void>;\n\t/** Check if file is readable and writable (throw if not) */\n\taccess: (absolutePath: string) => Promise<void>;\n}\n\nconst defaultEditOperations: EditOperations = {\n\treadFile: (path) => fsReadFile(path),\n\twriteFile: (path, content) => fsWriteFile(path, content, \"utf-8\"),\n\taccess: (path) => fsAccess(path, constants.R_OK | constants.W_OK),\n};\n\nexport interface EditToolOptions {\n\t/** Custom operations for file editing. Default: local filesystem */\n\toperations?: EditOperations;\n}\n\nfunction prepareEditArguments(input: unknown): EditToolInput {\n\tif (!input || typeof input !== \"object\") {\n\t\treturn input as EditToolInput;\n\t}\n\n\tconst args = input as Record<string, unknown>;\n\n\t// Some models (Opus 4.6, GLM-5.1) send edits as a JSON string instead of an array\n\tif (typeof args.edits === \"string\") {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(args.edits);\n\t\t\tif (Array.isArray(parsed)) args.edits = parsed;\n\t\t} catch {}\n\t}\n\n\tconst legacy = args as LegacyEditToolInput;\n\tif (typeof legacy.oldText !== \"string\" || typeof legacy.newText !== \"string\") {\n\t\treturn args as EditToolInput;\n\t}\n\n\tconst edits = Array.isArray(legacy.edits) ? [...legacy.edits] : [];\n\tedits.push({ oldText: legacy.oldText, newText: legacy.newText });\n\tconst { oldText: _oldText, newText: _newText, ...rest } = legacy;\n\treturn { ...rest, edits } as EditToolInput;\n}\n\nfunction validateEditInput(input: EditToolInput): { path: string; edits: Edit[] } {\n\tif (!Array.isArray(input.edits) || input.edits.length === 0) {\n\t\tthrow new Error(\"Edit tool input is invalid. edits must contain at least one replacement.\");\n\t}\n\treturn { path: input.path, edits: input.edits };\n}\n\ntype RenderableEditArgs = {\n\tpath?: string;\n\tfile_path?: string;\n\tedits?: Edit[];\n\toldText?: string;\n\tnewText?: string;\n};\n\ntype EditToolResultLike = {\n\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\tdetails?: EditToolDetails;\n};\n\ntype EditCallRenderComponent = Box & {\n\tpreview?: EditPreview;\n\tpreviewArgsKey?: string;\n\tpreviewPending?: boolean;\n\tsettledError?: boolean;\n};\n\nfunction createEditCallRenderComponent(): EditCallRenderComponent {\n\treturn Object.assign(new Box(1, 1, (text: string) => text), {\n\t\tpreview: undefined as EditPreview | undefined,\n\t\tpreviewArgsKey: undefined as string | undefined,\n\t\tpreviewPending: false,\n\t\tsettledError: false,\n\t});\n}\n\nfunction getEditCallRenderComponent(state: EditRenderState, lastComponent: unknown): EditCallRenderComponent {\n\tif (lastComponent instanceof Box) {\n\t\tconst component = lastComponent as EditCallRenderComponent;\n\t\tstate.callComponent = component;\n\t\treturn component;\n\t}\n\tif (state.callComponent) {\n\t\treturn state.callComponent;\n\t}\n\tconst component = createEditCallRenderComponent();\n\tstate.callComponent = component;\n\treturn component;\n}\n\nfunction getRenderablePreviewInput(args: RenderableEditArgs | undefined): { path: string; edits: Edit[] } | null {\n\tif (!args) {\n\t\treturn null;\n\t}\n\n\tconst path = typeof args.path === \"string\" ? args.path : typeof args.file_path === \"string\" ? args.file_path : null;\n\tif (!path) {\n\t\treturn null;\n\t}\n\n\tif (\n\t\tArray.isArray(args.edits) &&\n\t\targs.edits.length > 0 &&\n\t\targs.edits.every((edit) => typeof edit?.oldText === \"string\" && typeof edit?.newText === \"string\")\n\t) {\n\t\treturn { path, edits: args.edits };\n\t}\n\n\tif (typeof args.oldText === \"string\" && typeof args.newText === \"string\") {\n\t\treturn { path, edits: [{ oldText: args.oldText, newText: args.newText }] };\n\t}\n\n\treturn null;\n}\n\nfunction formatEditCall(args: RenderableEditArgs | undefined, theme: Theme, cwd: string): string {\n\tconst pathDisplay = renderToolPath(str(args?.file_path ?? args?.path), theme, cwd);\n\treturn `${theme.fg(\"toolTitle\", theme.bold(\"edit\"))} ${pathDisplay}`;\n}\n\nfunction formatEditResult(\n\targs: RenderableEditArgs | undefined,\n\tpreview: EditPreview | undefined,\n\tresult: EditToolResultLike,\n\ttheme: Theme,\n\tisError: boolean,\n): string | undefined {\n\tconst rawPath = str(args?.file_path ?? args?.path);\n\tconst previewDiff = preview && !(\"error\" in preview) ? preview.diff : undefined;\n\tconst previewError = preview && \"error\" in preview ? preview.error : undefined;\n\tif (isError) {\n\t\tconst errorText = result.content\n\t\t\t.filter((c) => c.type === \"text\")\n\t\t\t.map((c) => c.text || \"\")\n\t\t\t.join(\"\\n\");\n\t\tif (!errorText || errorText === previewError) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn theme.fg(\"error\", errorText);\n\t}\n\n\tconst resultDiff = result.details?.diff;\n\tif (resultDiff && resultDiff !== previewDiff) {\n\t\treturn renderDiff(resultDiff, { filePath: rawPath ?? undefined });\n\t}\n\n\treturn undefined;\n}\n\nfunction getEditHeaderBg(\n\tpreview: EditPreview | undefined,\n\tsettledError: boolean | undefined,\n\ttheme: Theme,\n): (text: string) => string {\n\tif (preview) {\n\t\tif (\"error\" in preview) {\n\t\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t\t}\n\t\treturn (text: string) => theme.bg(\"toolSuccessBg\", text);\n\t}\n\tif (settledError) {\n\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t}\n\treturn (text: string) => theme.bg(\"toolPendingBg\", text);\n}\n\nfunction buildEditCallComponent(\n\tcomponent: EditCallRenderComponent,\n\targs: RenderableEditArgs | undefined,\n\ttheme: Theme,\n\tcwd: string,\n): EditCallRenderComponent {\n\tcomponent.setBgFn(getEditHeaderBg(component.preview, component.settledError, theme));\n\tcomponent.clear();\n\tcomponent.addChild(new Text(formatEditCall(args, theme, cwd), 0, 0));\n\n\tif (!component.preview) {\n\t\treturn component;\n\t}\n\n\tconst body =\n\t\t\"error\" in component.preview ? theme.fg(\"error\", component.preview.error) : renderDiff(component.preview.diff);\n\tcomponent.addChild(new Spacer(1));\n\tcomponent.addChild(new Text(body, 0, 0));\n\treturn component;\n}\n\nfunction setEditPreview(\n\tcomponent: EditCallRenderComponent,\n\tpreview: EditPreview,\n\targsKey: string | undefined,\n): boolean {\n\tconst current = component.preview;\n\tconst changed =\n\t\tcurrent === undefined ||\n\t\t(\"error\" in current && \"error\" in preview\n\t\t\t? current.error !== preview.error\n\t\t\t: \"error\" in current !== \"error\" in preview) ||\n\t\t(!(\"error\" in current) &&\n\t\t\t!(\"error\" in preview) &&\n\t\t\t(current.diff !== preview.diff || current.firstChangedLine !== preview.firstChangedLine));\n\tcomponent.preview = preview;\n\tcomponent.previewArgsKey = argsKey;\n\tcomponent.previewPending = false;\n\treturn changed;\n}\n\nexport function createEditToolDefinition(\n\tcwd: string,\n\toptions?: EditToolOptions,\n): ToolDefinition<typeof editSchema, EditToolDetails | undefined, EditRenderState> {\n\tconst ops = options?.operations ?? defaultEditOperations;\n\treturn {\n\t\tname: \"edit\",\n\t\tlabel: \"edit\",\n\t\tdescription:\n\t\t\t\"Edit a single file using exact text replacement. Every edits[].oldText must match a unique, non-overlapping region of the original file. If two changes affect the same block or nearby lines, merge them into one edit instead of emitting overlapping edits. Do not include large unchanged regions just to connect distant changes.\",\n\t\tpromptSnippet:\n\t\t\t\"Make precise file edits with exact text replacement, including multiple disjoint edits in one call\",\n\t\tpromptGuidelines: [\n\t\t\t\"Use edit for precise changes (edits[].oldText must match exactly)\",\n\t\t\t\"When changing multiple separate locations in one file, use one edit call with multiple entries in edits[] instead of multiple edit calls\",\n\t\t\t\"Each edits[].oldText is matched against the original file, not after earlier edits are applied. Do not emit overlapping or nested edits. Merge nearby changes into one edit.\",\n\t\t\t\"Keep edits[].oldText as small as possible while still being unique in the file. Do not pad with large unchanged regions.\",\n\t\t],\n\t\tparameters: editSchema,\n\t\trenderShell: \"self\",\n\t\tprepareArguments: prepareEditArguments,\n\t\tasync execute(_toolCallId, input: EditToolInput, signal?: AbortSignal, _onUpdate?, _ctx?) {\n\t\t\tconst { path, edits } = validateEditInput(input);\n\t\t\tconst absolutePath = resolveToCwd(path, cwd);\n\n\t\t\treturn withFileMutationQueue(absolutePath, async () => {\n\t\t\t\t// Do not reject from an abort event listener here: that would release the\n\t\t\t\t// mutation queue while an in-flight filesystem operation may still finish.\n\t\t\t\t// Checking signal.aborted after each await observes the same aborts while\n\t\t\t\t// keeping the queue locked until the current operation has settled.\n\t\t\t\tconst throwIfAborted = (): void => {\n\t\t\t\t\tif (signal?.aborted) throw new Error(\"Operation aborted\");\n\t\t\t\t};\n\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Check if file exists.\n\t\t\t\ttry {\n\t\t\t\t\tawait ops.access(absolutePath);\n\t\t\t\t} catch (error: unknown) {\n\t\t\t\t\tthrowIfAborted();\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror instanceof Error && \"code\" in error ? `Error code: ${error.code}` : String(error);\n\t\t\t\t\tthrow new Error(`Could not edit file: ${path}. ${errorMessage}.`);\n\t\t\t\t}\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Read the file.\n\t\t\t\tconst buffer = await ops.readFile(absolutePath);\n\t\t\t\tconst rawContent = buffer.toString(\"utf-8\");\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Strip BOM before matching. The model will not include an invisible BOM in oldText.\n\t\t\t\tconst { bom, text: content } = stripBom(rawContent);\n\t\t\t\tconst originalEnding = detectLineEnding(content);\n\t\t\t\tconst normalizedContent = normalizeToLF(content);\n\t\t\t\tconst { baseContent, newContent } = applyEditsToNormalizedContent(normalizedContent, edits, path);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst finalContent = bom + restoreLineEndings(newContent, originalEnding);\n\t\t\t\tawait ops.writeFile(absolutePath, finalContent);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst diffResult = generateDiffString(baseContent, newContent);\n\t\t\t\tconst patch = generateUnifiedPatch(path, baseContent, newContent);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `Successfully replaced ${edits.length} block(s) in ${path}.`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdetails: { diff: diffResult.diff, patch, firstChangedLine: diffResult.firstChangedLine },\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\trenderCall(args, theme, context) {\n\t\t\tconst component = getEditCallRenderComponent(context.state, context.lastComponent);\n\t\t\tconst previewInput = getRenderablePreviewInput(args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\n\t\t\tif (component.previewArgsKey !== argsKey) {\n\t\t\t\tcomponent.preview = undefined;\n\t\t\t\tcomponent.previewArgsKey = argsKey;\n\t\t\t\tcomponent.previewPending = false;\n\t\t\t\tcomponent.settledError = false;\n\t\t\t}\n\n\t\t\tif (context.argsComplete && previewInput && !component.preview && !component.previewPending) {\n\t\t\t\tcomponent.previewPending = true;\n\t\t\t\tconst requestKey = argsKey;\n\t\t\t\tvoid computeEditsDiff(previewInput.path, previewInput.edits, context.cwd).then((preview) => {\n\t\t\t\t\tif (component.previewArgsKey === requestKey) {\n\t\t\t\t\t\tsetEditPreview(component, preview, requestKey);\n\t\t\t\t\t\tcontext.invalidate();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn buildEditCallComponent(component, args, theme, context.cwd);\n\t\t},\n\t\trenderResult(result, _options, theme, context) {\n\t\t\tconst callComponent = context.state.callComponent;\n\t\t\tconst previewInput = getRenderablePreviewInput(context.args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\t\t\tconst typedResult = result as EditToolResultLike;\n\t\t\tconst resultDiff = !context.isError ? typedResult.details?.diff : undefined;\n\t\t\tlet changed = false;\n\t\t\tif (callComponent) {\n\t\t\t\tif (typeof resultDiff === \"string\") {\n\t\t\t\t\tchanged =\n\t\t\t\t\t\tsetEditPreview(\n\t\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\t\t{ diff: resultDiff, firstChangedLine: typedResult.details?.firstChangedLine },\n\t\t\t\t\t\t\targsKey,\n\t\t\t\t\t\t) || changed;\n\t\t\t\t}\n\t\t\t\tif (callComponent.settledError !== context.isError) {\n\t\t\t\t\tcallComponent.settledError = context.isError;\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (changed) {\n\t\t\t\t\tbuildEditCallComponent(\n\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\tcontext.args as RenderableEditArgs | undefined,\n\t\t\t\t\t\ttheme,\n\t\t\t\t\t\tcontext.cwd,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst output = formatEditResult(context.args, callComponent?.preview, typedResult, theme, context.isError);\n\t\t\tconst component = (context.lastComponent as Container | undefined) ?? new Container();\n\t\t\tcomponent.clear();\n\t\t\tif (!output) {\n\t\t\t\treturn component;\n\t\t\t}\n\t\t\tcomponent.addChild(new Spacer(1));\n\t\t\tcomponent.addChild(new Text(output, 1, 0));\n\t\t\treturn component;\n\t\t},\n\t};\n}\n\nexport function createEditTool(cwd: string, options?: EditToolOptions): AgentTool<typeof editSchema> {\n\treturn wrapToolDefinition(createEditToolDefinition(cwd, options));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/core/tools/edit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,QAAQ,IAAI,UAAU,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAe,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAGxE,OAAO,EACN,6BAA6B,EAC7B,gBAAgB,EAChB,gBAAgB,EAIhB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,QAAQ,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAQlE,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CACpC;IACC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,WAAW,EACV,uJAAuJ;KACxJ,CAAC;IACF,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC;CACjF,EACD,EAAE,CACF,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAC7B;IACC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;IACrF,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;QACpC,WAAW,EACV,0OAA0O;KAC3O,CAAC;CACF,EACD,EAAE,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C,OAAO,EAAE,oGAAoG;IAC7G,UAAU,EAAE;QACX,mEAAmE;QACnE,0IAA0I;QAC1I,8KAA8K;QAC9K,0HAA0H;KAC1H;CACQ,CAAC;AA8BX,MAAM,qBAAqB,GAAmB;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;IACpC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;IACjE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;CACjE,CAAC;AAOF,SAAS,oBAAoB,CAAC,KAAc,EAAiB;IAC5D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,KAAsB,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,GAAG,KAAgC,CAAC;IAE9C,kFAAkF;IAClF,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,IAA2B,CAAC;IAC3C,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9E,OAAO,IAAqB,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACjE,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAmB,CAAC;AAAA,CAC3C;AAED,SAAS,iBAAiB,CAAC,KAAoB,EAAmC;IACjF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;AAAA,CAChD;AAsBD,SAAS,6BAA6B,GAA4B;IACjE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;QAC3D,OAAO,EAAE,SAAoC;QAC7C,cAAc,EAAE,SAA+B;QAC/C,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,KAAK;KACnB,CAAC,CAAC;AAAA,CACH;AAED,SAAS,0BAA0B,CAAC,KAAsB,EAAE,aAAsB,EAA2B;IAC5G,IAAI,aAAa,YAAY,GAAG,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,aAAwC,CAAC;QAC3D,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;QAChC,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,MAAM,SAAS,GAAG,6BAA6B,EAAE,CAAC;IAClD,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;IAChC,OAAO,SAAS,CAAC;AAAA,CACjB;AAED,SAAS,yBAAyB,CAAC,IAAoC,EAA0C;IAChH,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACpH,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IACC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,EACjG,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,OAAO,IAAI,CAAC;AAAA,CACZ;AAED,SAAS,cAAc,CAAC,IAAoC,EAAE,KAAY,EAAE,GAAW,EAAU;IAChG,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACnF,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;AAAA,CACrE;AAED,SAAS,gBAAgB,CACxB,IAAoC,EACpC,OAAgC,EAChC,MAA0B,EAC1B,KAAY,EACZ,OAAgB,EACK;IACrB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,YAAY,GAAG,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;aACxB,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;IACxC,IAAI,UAAU,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC9C,OAAO,UAAU,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,SAAS,CAAC;AAAA,CACjB;AAED,SAAS,eAAe,CACvB,OAAgC,EAChC,YAAiC,EACjC,KAAY,EACe;IAC3B,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAAA,CACzD;AAED,SAAS,sBAAsB,CAC9B,SAAkC,EAClC,IAAoC,EACpC,KAAY,EACZ,GAAW,EACe;IAC1B,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IACrF,SAAS,CAAC,KAAK,EAAE,CAAC;IAClB,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAErE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GACT,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChH,SAAS,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,SAAS,CAAC;AAAA,CACjB;AAED,SAAS,cAAc,CACtB,SAAkC,EAClC,OAAoB,EACpB,OAA2B,EACjB;IACV,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAClC,MAAM,OAAO,GACZ,OAAO,KAAK,SAAS;QACrB,CAAC,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO;YACxC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;YACjC,CAAC,CAAC,OAAO,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC;QAC7C,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;YACrB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;YACrB,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5F,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,SAAS,CAAC,cAAc,GAAG,OAAO,CAAC;IACnC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC;IACjC,OAAO,OAAO,CAAC;AAAA,CACf;AAED,MAAM,UAAU,wBAAwB,CACvC,GAAW,EACX,OAAyB,EACyD;IAClF,MAAM,GAAG,GAAG,OAAO,EAAE,UAAU,IAAI,qBAAqB,CAAC;IACzD,OAAO;QACN,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,WAAW,EACV,wUAAwU;QACzU,aAAa,EAAE,gCAAgC,CAAC,OAAO;QACvD,gBAAgB,EAAE,CAAC,GAAG,gCAAgC,CAAC,UAAU,CAAC;QAClE,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,MAAM;QACnB,gBAAgB,EAAE,oBAAoB;QACtC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAoB,EAAE,MAAoB,EAAE,SAAU,EAAE,IAAK,EAAE;YACzF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAE7C,OAAO,qBAAqB,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;gBACtD,0EAA0E;gBAC1E,2EAA2E;gBAC3E,0EAA0E;gBAC1E,oEAAoE;gBACpE,MAAM,cAAc,GAAG,GAAS,EAAE,CAAC;oBAClC,IAAI,MAAM,EAAE,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAAA,CAC1D,CAAC;gBAEF,cAAc,EAAE,CAAC;gBAEjB,wBAAwB;gBACxB,IAAI,CAAC;oBACJ,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACzB,cAAc,EAAE,CAAC;oBACjB,MAAM,YAAY,GACjB,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzF,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,KAAK,YAAY,GAAG,CAAC,CAAC;gBACnE,CAAC;gBACD,cAAc,EAAE,CAAC;gBAEjB,iBAAiB;gBACjB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAChD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC5C,cAAc,EAAE,CAAC;gBAEjB,qFAAqF;gBACrF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACpD,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACjD,MAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBACjD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,6BAA6B,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAClG,cAAc,EAAE,CAAC;gBAEjB,MAAM,YAAY,GAAG,GAAG,GAAG,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBAC1E,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAChD,cAAc,EAAE,CAAC;gBAEjB,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC/D,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;gBAClE,OAAO;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,yBAAyB,KAAK,CAAC,MAAM,gBAAgB,IAAI,GAAG;yBAClE;qBACD;oBACD,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAAE;iBACxF,CAAC;YAAA,CACF,CAAC,CAAC;QAAA,CACH;QACD,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;YAChC,MAAM,SAAS,GAAG,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YACnF,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAsC,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,YAAY;gBAC3B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;gBACxE,CAAC,CAAC,SAAS,CAAC;YAEb,IAAI,SAAS,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;gBAC1C,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC;gBAC9B,SAAS,CAAC,cAAc,GAAG,OAAO,CAAC;gBACnC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC;gBACjC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;YAChC,CAAC;YAED,IAAI,OAAO,CAAC,YAAY,IAAI,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;gBAC7F,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;gBAChC,MAAM,UAAU,GAAG,OAAO,CAAC;gBAC3B,KAAK,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC3F,IAAI,SAAS,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;wBAC7C,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;wBAC/C,OAAO,CAAC,UAAU,EAAE,CAAC;oBACtB,CAAC;gBAAA,CACD,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,sBAAsB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAAA,CACnE;QACD,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;YAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YAClD,MAAM,YAAY,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAsC,CAAC,CAAC;YAC/F,MAAM,OAAO,GAAG,YAAY;gBAC3B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;gBACxE,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,WAAW,GAAG,MAA4B,CAAC;YACjD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,aAAa,EAAE,CAAC;gBACnB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACpC,OAAO;wBACN,cAAc,CACb,aAAa,EACb,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAC7E,OAAO,CACP,IAAI,OAAO,CAAC;gBACf,CAAC;gBACD,IAAI,aAAa,CAAC,YAAY,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpD,aAAa,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;oBAC7C,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC;oBACb,sBAAsB,CACrB,aAAa,EACb,OAAO,CAAC,IAAsC,EAC9C,KAAK,EACL,OAAO,CAAC,GAAG,CACX,CAAC;gBACH,CAAC;YACF,CAAC;YAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3G,MAAM,SAAS,GAAI,OAAO,CAAC,aAAuC,IAAI,IAAI,SAAS,EAAE,CAAC;YACtF,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,SAAS,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,SAAS,CAAC;QAAA,CACjB;KACD,CAAC;AAAA,CACF;AAED,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,OAAyB,EAAgC;IACpG,OAAO,kBAAkB,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAAA,CAClE","sourcesContent":["import type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Box, Container, Spacer, Text } from \"@earendil-works/pi-tui\";\nimport { constants } from \"fs\";\nimport { access as fsAccess, readFile as fsReadFile, writeFile as fsWriteFile } from \"fs/promises\";\nimport { type Static, Type } from \"typebox\";\nimport { renderDiff } from \"../../modes/interactive/components/diff.ts\";\nimport type { Theme } from \"../../modes/interactive/theme/theme.ts\";\nimport type { ToolDefinition } from \"../extensions/types.ts\";\nimport {\n\tapplyEditsToNormalizedContent,\n\tcomputeEditsDiff,\n\tdetectLineEnding,\n\ttype Edit,\n\ttype EditDiffError,\n\ttype EditDiffResult,\n\tgenerateDiffString,\n\tgenerateUnifiedPatch,\n\tnormalizeToLF,\n\trestoreLineEndings,\n\tstripBom,\n} from \"./edit-diff.ts\";\nimport { withFileMutationQueue } from \"./file-mutation-queue.ts\";\nimport { resolveToCwd } from \"./path-utils.ts\";\nimport { renderToolPath, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\n\ntype EditPreview = EditDiffResult | EditDiffError;\n\ntype EditRenderState = {\n\tcallComponent?: EditCallRenderComponent;\n};\n\nconst replaceEditSchema = Type.Object(\n\t{\n\t\toldText: Type.String({\n\t\t\tdescription:\n\t\t\t\t\"Exact text for one targeted replacement. It must be unique in the original file and must not overlap with any other edits[].oldText in the same call.\",\n\t\t}),\n\t\tnewText: Type.String({ description: \"Replacement text for this targeted edit.\" }),\n\t},\n\t{},\n);\n\nconst editSchema = Type.Object(\n\t{\n\t\tpath: Type.String({ description: \"Path to the file to edit (relative or absolute)\" }),\n\t\tedits: Type.Array(replaceEditSchema, {\n\t\t\tdescription:\n\t\t\t\t\"One or more targeted replacements. Each edit is matched against the original file, not incrementally. Do not include overlapping or nested edits. If two changes touch the same block or nearby lines, merge them into one edit instead.\",\n\t\t}),\n\t},\n\t{},\n);\n\nexport const editToolSystemPromptContribution = {\n\tsnippet: \"Make precise file edits with exact text replacement, including multiple disjoint edits in one call\",\n\tguidelines: [\n\t\t\"Use edit for precise changes (edits[].oldText must match exactly)\",\n\t\t\"When changing multiple separate locations in one file, use one edit call with multiple entries in edits[] instead of multiple edit calls\",\n\t\t\"Each edits[].oldText is matched against the original file, not after earlier edits are applied. Do not emit overlapping or nested edits. Merge nearby changes into one edit.\",\n\t\t\"Keep edits[].oldText as small as possible while still being unique in the file. Do not pad with large unchanged regions.\",\n\t],\n} as const;\n\nexport type EditToolInput = Static<typeof editSchema>;\ntype LegacyEditToolInput = EditToolInput & {\n\toldText?: unknown;\n\tnewText?: unknown;\n};\n\nexport interface EditToolDetails {\n\t/** Display-oriented diff of the changes made */\n\tdiff: string;\n\t/** Standard unified patch of the changes made */\n\tpatch: string;\n\t/** Line number of the first change in the new file (for editor navigation) */\n\tfirstChangedLine?: number;\n}\n\n/**\n * Pluggable operations for the edit tool.\n * Override these to delegate file editing to remote systems (for example SSH).\n */\nexport interface EditOperations {\n\t/** Read file contents as a Buffer */\n\treadFile: (absolutePath: string) => Promise<Buffer>;\n\t/** Write content to a file */\n\twriteFile: (absolutePath: string, content: string) => Promise<void>;\n\t/** Check if file is readable and writable (throw if not) */\n\taccess: (absolutePath: string) => Promise<void>;\n}\n\nconst defaultEditOperations: EditOperations = {\n\treadFile: (path) => fsReadFile(path),\n\twriteFile: (path, content) => fsWriteFile(path, content, \"utf-8\"),\n\taccess: (path) => fsAccess(path, constants.R_OK | constants.W_OK),\n};\n\nexport interface EditToolOptions {\n\t/** Custom operations for file editing. Default: local filesystem */\n\toperations?: EditOperations;\n}\n\nfunction prepareEditArguments(input: unknown): EditToolInput {\n\tif (!input || typeof input !== \"object\") {\n\t\treturn input as EditToolInput;\n\t}\n\n\tconst args = input as Record<string, unknown>;\n\n\t// Some models (Opus 4.6, GLM-5.1) send edits as a JSON string instead of an array\n\tif (typeof args.edits === \"string\") {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(args.edits);\n\t\t\tif (Array.isArray(parsed)) args.edits = parsed;\n\t\t} catch {}\n\t}\n\n\tconst legacy = args as LegacyEditToolInput;\n\tif (typeof legacy.oldText !== \"string\" || typeof legacy.newText !== \"string\") {\n\t\treturn args as EditToolInput;\n\t}\n\n\tconst edits = Array.isArray(legacy.edits) ? [...legacy.edits] : [];\n\tedits.push({ oldText: legacy.oldText, newText: legacy.newText });\n\tconst { oldText: _oldText, newText: _newText, ...rest } = legacy;\n\treturn { ...rest, edits } as EditToolInput;\n}\n\nfunction validateEditInput(input: EditToolInput): { path: string; edits: Edit[] } {\n\tif (!Array.isArray(input.edits) || input.edits.length === 0) {\n\t\tthrow new Error(\"Edit tool input is invalid. edits must contain at least one replacement.\");\n\t}\n\treturn { path: input.path, edits: input.edits };\n}\n\ntype RenderableEditArgs = {\n\tpath?: string;\n\tfile_path?: string;\n\tedits?: Edit[];\n\toldText?: string;\n\tnewText?: string;\n};\n\ntype EditToolResultLike = {\n\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\tdetails?: EditToolDetails;\n};\n\ntype EditCallRenderComponent = Box & {\n\tpreview?: EditPreview;\n\tpreviewArgsKey?: string;\n\tpreviewPending?: boolean;\n\tsettledError?: boolean;\n};\n\nfunction createEditCallRenderComponent(): EditCallRenderComponent {\n\treturn Object.assign(new Box(1, 1, (text: string) => text), {\n\t\tpreview: undefined as EditPreview | undefined,\n\t\tpreviewArgsKey: undefined as string | undefined,\n\t\tpreviewPending: false,\n\t\tsettledError: false,\n\t});\n}\n\nfunction getEditCallRenderComponent(state: EditRenderState, lastComponent: unknown): EditCallRenderComponent {\n\tif (lastComponent instanceof Box) {\n\t\tconst component = lastComponent as EditCallRenderComponent;\n\t\tstate.callComponent = component;\n\t\treturn component;\n\t}\n\tif (state.callComponent) {\n\t\treturn state.callComponent;\n\t}\n\tconst component = createEditCallRenderComponent();\n\tstate.callComponent = component;\n\treturn component;\n}\n\nfunction getRenderablePreviewInput(args: RenderableEditArgs | undefined): { path: string; edits: Edit[] } | null {\n\tif (!args) {\n\t\treturn null;\n\t}\n\n\tconst path = typeof args.path === \"string\" ? args.path : typeof args.file_path === \"string\" ? args.file_path : null;\n\tif (!path) {\n\t\treturn null;\n\t}\n\n\tif (\n\t\tArray.isArray(args.edits) &&\n\t\targs.edits.length > 0 &&\n\t\targs.edits.every((edit) => typeof edit?.oldText === \"string\" && typeof edit?.newText === \"string\")\n\t) {\n\t\treturn { path, edits: args.edits };\n\t}\n\n\tif (typeof args.oldText === \"string\" && typeof args.newText === \"string\") {\n\t\treturn { path, edits: [{ oldText: args.oldText, newText: args.newText }] };\n\t}\n\n\treturn null;\n}\n\nfunction formatEditCall(args: RenderableEditArgs | undefined, theme: Theme, cwd: string): string {\n\tconst pathDisplay = renderToolPath(str(args?.file_path ?? args?.path), theme, cwd);\n\treturn `${theme.fg(\"toolTitle\", theme.bold(\"edit\"))} ${pathDisplay}`;\n}\n\nfunction formatEditResult(\n\targs: RenderableEditArgs | undefined,\n\tpreview: EditPreview | undefined,\n\tresult: EditToolResultLike,\n\ttheme: Theme,\n\tisError: boolean,\n): string | undefined {\n\tconst rawPath = str(args?.file_path ?? args?.path);\n\tconst previewDiff = preview && !(\"error\" in preview) ? preview.diff : undefined;\n\tconst previewError = preview && \"error\" in preview ? preview.error : undefined;\n\tif (isError) {\n\t\tconst errorText = result.content\n\t\t\t.filter((c) => c.type === \"text\")\n\t\t\t.map((c) => c.text || \"\")\n\t\t\t.join(\"\\n\");\n\t\tif (!errorText || errorText === previewError) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn theme.fg(\"error\", errorText);\n\t}\n\n\tconst resultDiff = result.details?.diff;\n\tif (resultDiff && resultDiff !== previewDiff) {\n\t\treturn renderDiff(resultDiff, { filePath: rawPath ?? undefined });\n\t}\n\n\treturn undefined;\n}\n\nfunction getEditHeaderBg(\n\tpreview: EditPreview | undefined,\n\tsettledError: boolean | undefined,\n\ttheme: Theme,\n): (text: string) => string {\n\tif (preview) {\n\t\tif (\"error\" in preview) {\n\t\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t\t}\n\t\treturn (text: string) => theme.bg(\"toolSuccessBg\", text);\n\t}\n\tif (settledError) {\n\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t}\n\treturn (text: string) => theme.bg(\"toolPendingBg\", text);\n}\n\nfunction buildEditCallComponent(\n\tcomponent: EditCallRenderComponent,\n\targs: RenderableEditArgs | undefined,\n\ttheme: Theme,\n\tcwd: string,\n): EditCallRenderComponent {\n\tcomponent.setBgFn(getEditHeaderBg(component.preview, component.settledError, theme));\n\tcomponent.clear();\n\tcomponent.addChild(new Text(formatEditCall(args, theme, cwd), 0, 0));\n\n\tif (!component.preview) {\n\t\treturn component;\n\t}\n\n\tconst body =\n\t\t\"error\" in component.preview ? theme.fg(\"error\", component.preview.error) : renderDiff(component.preview.diff);\n\tcomponent.addChild(new Spacer(1));\n\tcomponent.addChild(new Text(body, 0, 0));\n\treturn component;\n}\n\nfunction setEditPreview(\n\tcomponent: EditCallRenderComponent,\n\tpreview: EditPreview,\n\targsKey: string | undefined,\n): boolean {\n\tconst current = component.preview;\n\tconst changed =\n\t\tcurrent === undefined ||\n\t\t(\"error\" in current && \"error\" in preview\n\t\t\t? current.error !== preview.error\n\t\t\t: \"error\" in current !== \"error\" in preview) ||\n\t\t(!(\"error\" in current) &&\n\t\t\t!(\"error\" in preview) &&\n\t\t\t(current.diff !== preview.diff || current.firstChangedLine !== preview.firstChangedLine));\n\tcomponent.preview = preview;\n\tcomponent.previewArgsKey = argsKey;\n\tcomponent.previewPending = false;\n\treturn changed;\n}\n\nexport function createEditToolDefinition(\n\tcwd: string,\n\toptions?: EditToolOptions,\n): ToolDefinition<typeof editSchema, EditToolDetails | undefined, EditRenderState> {\n\tconst ops = options?.operations ?? defaultEditOperations;\n\treturn {\n\t\tname: \"edit\",\n\t\tlabel: \"edit\",\n\t\tdescription:\n\t\t\t\"Edit a single file using exact text replacement. Every edits[].oldText must match a unique, non-overlapping region of the original file. If two changes affect the same block or nearby lines, merge them into one edit instead of emitting overlapping edits. Do not include large unchanged regions just to connect distant changes.\",\n\t\tpromptSnippet: editToolSystemPromptContribution.snippet,\n\t\tpromptGuidelines: [...editToolSystemPromptContribution.guidelines],\n\t\tparameters: editSchema,\n\t\trenderShell: \"self\",\n\t\tprepareArguments: prepareEditArguments,\n\t\tasync execute(_toolCallId, input: EditToolInput, signal?: AbortSignal, _onUpdate?, _ctx?) {\n\t\t\tconst { path, edits } = validateEditInput(input);\n\t\t\tconst absolutePath = resolveToCwd(path, cwd);\n\n\t\t\treturn withFileMutationQueue(absolutePath, async () => {\n\t\t\t\t// Do not reject from an abort event listener here: that would release the\n\t\t\t\t// mutation queue while an in-flight filesystem operation may still finish.\n\t\t\t\t// Checking signal.aborted after each await observes the same aborts while\n\t\t\t\t// keeping the queue locked until the current operation has settled.\n\t\t\t\tconst throwIfAborted = (): void => {\n\t\t\t\t\tif (signal?.aborted) throw new Error(\"Operation aborted\");\n\t\t\t\t};\n\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Check if file exists.\n\t\t\t\ttry {\n\t\t\t\t\tawait ops.access(absolutePath);\n\t\t\t\t} catch (error: unknown) {\n\t\t\t\t\tthrowIfAborted();\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror instanceof Error && \"code\" in error ? `Error code: ${error.code}` : String(error);\n\t\t\t\t\tthrow new Error(`Could not edit file: ${path}. ${errorMessage}.`);\n\t\t\t\t}\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Read the file.\n\t\t\t\tconst buffer = await ops.readFile(absolutePath);\n\t\t\t\tconst rawContent = buffer.toString(\"utf-8\");\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Strip BOM before matching. The model will not include an invisible BOM in oldText.\n\t\t\t\tconst { bom, text: content } = stripBom(rawContent);\n\t\t\t\tconst originalEnding = detectLineEnding(content);\n\t\t\t\tconst normalizedContent = normalizeToLF(content);\n\t\t\t\tconst { baseContent, newContent } = applyEditsToNormalizedContent(normalizedContent, edits, path);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst finalContent = bom + restoreLineEndings(newContent, originalEnding);\n\t\t\t\tawait ops.writeFile(absolutePath, finalContent);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst diffResult = generateDiffString(baseContent, newContent);\n\t\t\t\tconst patch = generateUnifiedPatch(path, baseContent, newContent);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `Successfully replaced ${edits.length} block(s) in ${path}.`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdetails: { diff: diffResult.diff, patch, firstChangedLine: diffResult.firstChangedLine },\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\trenderCall(args, theme, context) {\n\t\t\tconst component = getEditCallRenderComponent(context.state, context.lastComponent);\n\t\t\tconst previewInput = getRenderablePreviewInput(args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\n\t\t\tif (component.previewArgsKey !== argsKey) {\n\t\t\t\tcomponent.preview = undefined;\n\t\t\t\tcomponent.previewArgsKey = argsKey;\n\t\t\t\tcomponent.previewPending = false;\n\t\t\t\tcomponent.settledError = false;\n\t\t\t}\n\n\t\t\tif (context.argsComplete && previewInput && !component.preview && !component.previewPending) {\n\t\t\t\tcomponent.previewPending = true;\n\t\t\t\tconst requestKey = argsKey;\n\t\t\t\tvoid computeEditsDiff(previewInput.path, previewInput.edits, context.cwd).then((preview) => {\n\t\t\t\t\tif (component.previewArgsKey === requestKey) {\n\t\t\t\t\t\tsetEditPreview(component, preview, requestKey);\n\t\t\t\t\t\tcontext.invalidate();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn buildEditCallComponent(component, args, theme, context.cwd);\n\t\t},\n\t\trenderResult(result, _options, theme, context) {\n\t\t\tconst callComponent = context.state.callComponent;\n\t\t\tconst previewInput = getRenderablePreviewInput(context.args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\t\t\tconst typedResult = result as EditToolResultLike;\n\t\t\tconst resultDiff = !context.isError ? typedResult.details?.diff : undefined;\n\t\t\tlet changed = false;\n\t\t\tif (callComponent) {\n\t\t\t\tif (typeof resultDiff === \"string\") {\n\t\t\t\t\tchanged =\n\t\t\t\t\t\tsetEditPreview(\n\t\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\t\t{ diff: resultDiff, firstChangedLine: typedResult.details?.firstChangedLine },\n\t\t\t\t\t\t\targsKey,\n\t\t\t\t\t\t) || changed;\n\t\t\t\t}\n\t\t\t\tif (callComponent.settledError !== context.isError) {\n\t\t\t\t\tcallComponent.settledError = context.isError;\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (changed) {\n\t\t\t\t\tbuildEditCallComponent(\n\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\tcontext.args as RenderableEditArgs | undefined,\n\t\t\t\t\t\ttheme,\n\t\t\t\t\t\tcontext.cwd,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst output = formatEditResult(context.args, callComponent?.preview, typedResult, theme, context.isError);\n\t\t\tconst component = (context.lastComponent as Container | undefined) ?? new Container();\n\t\t\tcomponent.clear();\n\t\t\tif (!output) {\n\t\t\t\treturn component;\n\t\t\t}\n\t\t\tcomponent.addChild(new Spacer(1));\n\t\t\tcomponent.addChild(new Text(output, 1, 0));\n\t\t\treturn component;\n\t\t},\n\t};\n}\n\nexport function createEditTool(cwd: string, options?: EditToolOptions): AgentTool<typeof editSchema> {\n\treturn wrapToolDefinition(createEditToolDefinition(cwd, options));\n}\n"]}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import type { AgentTool } from "@earendil-works/pi-agent-core";
|
|
2
|
+
import path from "path";
|
|
2
3
|
import { type Static, Type } from "typebox";
|
|
3
4
|
import type { ToolDefinition } from "../extensions/types.ts";
|
|
4
5
|
import { type TruncationResult } from "./truncate.ts";
|
|
6
|
+
/** Relativize a find result against the search root and normalize it to posix separators. */
|
|
7
|
+
export declare function relativizeFindResultPath(resultPath: string, searchPath: string, pathModule?: path.PlatformPath): string;
|
|
5
8
|
declare const findSchema: Type.TObject<{
|
|
6
9
|
pattern: Type.TString;
|
|
7
10
|
path: Type.TOptional<Type.TString>;
|
|
8
11
|
limit: Type.TOptional<Type.TNumber>;
|
|
9
12
|
}>;
|
|
13
|
+
export declare const findToolSystemPromptContribution: {
|
|
14
|
+
readonly snippet: "Find files by glob pattern (respects .gitignore)";
|
|
15
|
+
readonly guidelines: readonly [];
|
|
16
|
+
};
|
|
10
17
|
export type FindToolInput = Static<typeof findSchema>;
|
|
11
18
|
export interface FindToolDetails {
|
|
12
19
|
truncation?: TruncationResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/core/tools/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,wBAAwB,CAAC;AAItF,OAAO,EAAiC,KAAK,gBAAgB,EAAgB,MAAM,eAAe,CAAC;AAMnG,QAAA,MAAM,UAAU;;;;EAMd,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAItD,MAAM,WAAW,eAAe;IAC/B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,2BAA2B;IAC3B,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC7D,4EAA4E;IAC5E,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;CACnH;AAQD,MAAM,WAAW,eAAe;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,cAAc,CAAC;CAC5B;AAoDD,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACvB,cAAc,CAAC,OAAO,UAAU,EAAE,eAAe,GAAG,SAAS,CAAC,CAkQhE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CAEnG","sourcesContent":["import { createInterface } from \"node:readline\";\nimport type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Text } from \"@earendil-works/pi-tui\";\nimport { spawn } from \"child_process\";\nimport path from \"path\";\nimport { type Static, Type } from \"typebox\";\nimport { keyHint } from \"../../modes/interactive/components/keybinding-hints.ts\";\nimport type { Theme } from \"../../modes/interactive/theme/theme.ts\";\nimport { ensureTool } from \"../../utils/tools-manager.ts\";\nimport type { ToolDefinition, ToolRenderResultOptions } from \"../extensions/types.ts\";\nimport { pathExists, resolveToCwd } from \"./path-utils.ts\";\nimport { getTextOutput, invalidArgText, shortenPath, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\nimport { DEFAULT_MAX_BYTES, formatSize, type TruncationResult, truncateHead } from \"./truncate.ts\";\n\nfunction toPosixPath(value: string): string {\n\treturn value.split(path.sep).join(\"/\");\n}\n\nconst findSchema = Type.Object({\n\tpattern: Type.String({\n\t\tdescription: \"Glob pattern to match files, e.g. '*.ts', '**/*.json', or 'src/**/*.spec.ts'\",\n\t}),\n\tpath: Type.Optional(Type.String({ description: \"Directory to search in (default: current directory)\" })),\n\tlimit: Type.Optional(Type.Number({ description: \"Maximum number of results (default: 1000)\" })),\n});\n\nexport type FindToolInput = Static<typeof findSchema>;\n\nconst DEFAULT_LIMIT = 1000;\n\nexport interface FindToolDetails {\n\ttruncation?: TruncationResult;\n\tresultLimitReached?: number;\n}\n\n/**\n * Pluggable operations for the find tool.\n * Override these to delegate file search to remote systems (for example SSH).\n */\nexport interface FindOperations {\n\t/** Check if path exists */\n\texists: (absolutePath: string) => Promise<boolean> | boolean;\n\t/** Find files matching glob pattern. Returns relative or absolute paths. */\n\tglob: (pattern: string, cwd: string, options: { ignore: string[]; limit: number }) => Promise<string[]> | string[];\n}\n\nconst defaultFindOperations: FindOperations = {\n\texists: pathExists,\n\t// This is a placeholder. Actual fd execution happens in execute() when no custom glob is provided.\n\tglob: () => [],\n};\n\nexport interface FindToolOptions {\n\t/** Custom operations for find. Default: local filesystem plus fd */\n\toperations?: FindOperations;\n}\n\nfunction formatFindCall(args: { pattern: string; path?: string; limit?: number } | undefined, theme: Theme): string {\n\tconst pattern = str(args?.pattern);\n\tconst rawPath = str(args?.path);\n\tconst path = rawPath !== null ? shortenPath(rawPath || \".\") : null;\n\tconst limit = args?.limit;\n\tconst invalidArg = invalidArgText(theme);\n\tlet text =\n\t\ttheme.fg(\"toolTitle\", theme.bold(\"find\")) +\n\t\t\" \" +\n\t\t(pattern === null ? invalidArg : theme.fg(\"accent\", pattern || \"\")) +\n\t\ttheme.fg(\"toolOutput\", ` in ${path === null ? invalidArg : path}`);\n\tif (limit !== undefined) {\n\t\ttext += theme.fg(\"toolOutput\", ` (limit ${limit})`);\n\t}\n\treturn text;\n}\n\nfunction formatFindResult(\n\tresult: {\n\t\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\t\tdetails?: FindToolDetails;\n\t},\n\toptions: ToolRenderResultOptions,\n\ttheme: Theme,\n\tshowImages: boolean,\n): string {\n\tconst output = getTextOutput(result, showImages).trim();\n\tlet text = \"\";\n\tif (output) {\n\t\tconst lines = output.split(\"\\n\");\n\t\tconst maxLines = options.expanded ? lines.length : 20;\n\t\tconst displayLines = lines.slice(0, maxLines);\n\t\tconst remaining = lines.length - maxLines;\n\t\ttext += `\\n${displayLines.map((line) => theme.fg(\"toolOutput\", line)).join(\"\\n\")}`;\n\t\tif (remaining > 0) {\n\t\t\ttext += `${theme.fg(\"muted\", `\\n... (${remaining} more lines,`)} ${keyHint(\"app.tools.expand\", \"to expand\")}${theme.fg(\"muted\", \")\")}`;\n\t\t}\n\t}\n\n\tconst resultLimit = result.details?.resultLimitReached;\n\tconst truncation = result.details?.truncation;\n\tif (resultLimit || truncation?.truncated) {\n\t\tconst warnings: string[] = [];\n\t\tif (resultLimit) warnings.push(`${resultLimit} results limit`);\n\t\tif (truncation?.truncated) warnings.push(`${formatSize(truncation.maxBytes ?? DEFAULT_MAX_BYTES)} limit`);\n\t\ttext += `\\n${theme.fg(\"warning\", `[Truncated: ${warnings.join(\", \")}]`)}`;\n\t}\n\treturn text;\n}\n\nexport function createFindToolDefinition(\n\tcwd: string,\n\toptions?: FindToolOptions,\n): ToolDefinition<typeof findSchema, FindToolDetails | undefined> {\n\tconst customOps = options?.operations;\n\treturn {\n\t\tname: \"find\",\n\t\tlabel: \"find\",\n\t\tdescription: `Search for files by glob pattern. Returns matching file paths relative to the search directory. Respects .gitignore. Output is truncated to ${DEFAULT_LIMIT} results or ${DEFAULT_MAX_BYTES / 1024}KB (whichever is hit first).`,\n\t\tpromptSnippet: \"Find files by glob pattern (respects .gitignore)\",\n\t\tparameters: findSchema,\n\t\tasync execute(\n\t\t\t_toolCallId,\n\t\t\t{ pattern, path: searchDir, limit }: { pattern: string; path?: string; limit?: number },\n\t\t\tsignal?: AbortSignal,\n\t\t\t_onUpdate?,\n\t\t\t_ctx?,\n\t\t) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\treject(new Error(\"Operation aborted\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet settled = false;\n\t\t\t\tlet stopChild: (() => void) | undefined;\n\t\t\t\tconst settle = (fn: () => void) => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\tstopChild = undefined;\n\t\t\t\t\tfn();\n\t\t\t\t};\n\t\t\t\tconst onAbort = () => {\n\t\t\t\t\tstopChild?.();\n\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t};\n\t\t\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\n\t\t\t\t(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst searchPath = resolveToCwd(searchDir || \".\", cwd);\n\t\t\t\t\t\tconst effectiveLimit = limit ?? DEFAULT_LIMIT;\n\t\t\t\t\t\tconst ops = customOps ?? defaultFindOperations;\n\n\t\t\t\t\t\t// If custom operations provide glob(), use that instead of fd.\n\t\t\t\t\t\tif (customOps?.glob) {\n\t\t\t\t\t\t\tif (!(await ops.exists(searchPath))) {\n\t\t\t\t\t\t\t\tsettle(() => reject(new Error(`Path not found: ${searchPath}`)));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst results = await ops.glob(pattern, searchPath, {\n\t\t\t\t\t\t\t\tignore: [\"**/node_modules/**\", \"**/.git/**\"],\n\t\t\t\t\t\t\t\tlimit: effectiveLimit,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (results.length === 0) {\n\t\t\t\t\t\t\t\tsettle(() =>\n\t\t\t\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: \"No files found matching pattern\" }],\n\t\t\t\t\t\t\t\t\t\tdetails: undefined,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Relativize paths against the search root for stable output.\n\t\t\t\t\t\t\tconst relativized = results.map((p) => {\n\t\t\t\t\t\t\t\tif (p.startsWith(searchPath)) return toPosixPath(p.slice(searchPath.length + 1));\n\t\t\t\t\t\t\t\treturn toPosixPath(path.relative(searchPath, p));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst resultLimitReached = relativized.length >= effectiveLimit;\n\t\t\t\t\t\t\tconst rawOutput = relativized.join(\"\\n\");\n\t\t\t\t\t\t\tconst truncation = truncateHead(rawOutput, { maxLines: Number.MAX_SAFE_INTEGER });\n\t\t\t\t\t\t\tlet resultOutput = truncation.content;\n\t\t\t\t\t\t\tconst details: FindToolDetails = {};\n\t\t\t\t\t\t\tconst notices: string[] = [];\n\t\t\t\t\t\t\tif (resultLimitReached) {\n\t\t\t\t\t\t\t\tnotices.push(`${effectiveLimit} results limit reached`);\n\t\t\t\t\t\t\t\tdetails.resultLimitReached = effectiveLimit;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (truncation.truncated) {\n\t\t\t\t\t\t\t\tnotices.push(`${formatSize(DEFAULT_MAX_BYTES)} limit reached`);\n\t\t\t\t\t\t\t\tdetails.truncation = truncation;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (notices.length > 0) {\n\t\t\t\t\t\t\t\tresultOutput += `\\n\\n[${notices.join(\". \")}]`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsettle(() =>\n\t\t\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: resultOutput }],\n\t\t\t\t\t\t\t\t\tdetails: Object.keys(details).length > 0 ? details : undefined,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Default implementation uses fd.\n\t\t\t\t\t\tconst fdPath = await ensureTool(\"fd\", true);\n\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!fdPath) {\n\t\t\t\t\t\t\tsettle(() => reject(new Error(\"fd is not available and could not be downloaded\")));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst args: string[] = [\"--glob\", \"--color=never\", \"--hidden\"];\n\n\t\t\t\t\t\t// fd normally ignores .gitignore outside git repos, so keep --no-require-git\n\t\t\t\t\t\t// there. Inside repos, use fd's default git-aware behavior so parent\n\t\t\t\t\t\t// .gitignore rules stop at nested repo boundaries:\n\t\t\t\t\t\t// https://github.com/earendil-works/pi/issues/5960\n\t\t\t\t\t\tlet insideGitRepo = false;\n\t\t\t\t\t\tfor (let current = searchPath; ; ) {\n\t\t\t\t\t\t\tif (await pathExists(path.join(current, \".git\"))) {\n\t\t\t\t\t\t\t\tinsideGitRepo = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst parent = path.dirname(current);\n\t\t\t\t\t\t\tif (parent === current) break;\n\t\t\t\t\t\t\tcurrent = parent;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!insideGitRepo) args.push(\"--no-require-git\");\n\t\t\t\t\t\targs.push(\"--max-results\", String(effectiveLimit));\n\n\t\t\t\t\t\t// fd --glob matches against the basename unless --full-path is set; in --full-path\n\t\t\t\t\t\t// mode it matches against the absolute candidate path, so a path-containing\n\t\t\t\t\t\t// pattern like 'src/**/*.spec.ts' needs a leading '**/' to match anything.\n\t\t\t\t\t\tlet effectivePattern = pattern;\n\t\t\t\t\t\tif (pattern.includes(\"/\")) {\n\t\t\t\t\t\t\targs.push(\"--full-path\");\n\t\t\t\t\t\t\tif (!pattern.startsWith(\"/\") && !pattern.startsWith(\"**/\") && pattern !== \"**\") {\n\t\t\t\t\t\t\t\teffectivePattern = `**/${pattern}`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\targs.push(\"--\", effectivePattern, searchPath);\n\n\t\t\t\t\t\tconst child = spawn(fdPath, args, { stdio: [\"ignore\", \"pipe\", \"pipe\"] });\n\t\t\t\t\t\tconst rl = createInterface({ input: child.stdout });\n\t\t\t\t\t\tlet stderr = \"\";\n\t\t\t\t\t\tconst lines: string[] = [];\n\n\t\t\t\t\t\tstopChild = () => {\n\t\t\t\t\t\t\tif (!child.killed) {\n\t\t\t\t\t\t\t\tchild.kill();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tconst cleanup = () => {\n\t\t\t\t\t\t\trl.close();\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tchild.stderr?.on(\"data\", (chunk) => {\n\t\t\t\t\t\t\tstderr += chunk.toString();\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\trl.on(\"line\", (line) => {\n\t\t\t\t\t\t\tlines.push(line);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchild.on(\"error\", (error) => {\n\t\t\t\t\t\t\tcleanup();\n\t\t\t\t\t\t\tsettle(() => reject(new Error(`Failed to run fd: ${error.message}`)));\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchild.on(\"close\", (code) => {\n\t\t\t\t\t\t\tcleanup();\n\t\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst output = lines.join(\"\\n\");\n\t\t\t\t\t\t\tif (code !== 0) {\n\t\t\t\t\t\t\t\tconst errorMsg = stderr.trim() || `fd exited with code ${code}`;\n\t\t\t\t\t\t\t\tif (!output) {\n\t\t\t\t\t\t\t\t\tsettle(() => reject(new Error(errorMsg)));\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!output) {\n\t\t\t\t\t\t\t\tsettle(() =>\n\t\t\t\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: \"No files found matching pattern\" }],\n\t\t\t\t\t\t\t\t\t\tdetails: undefined,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst relativized: string[] = [];\n\t\t\t\t\t\t\tfor (const rawLine of lines) {\n\t\t\t\t\t\t\t\tconst line = rawLine.replace(/\\r$/, \"\").trim();\n\t\t\t\t\t\t\t\tif (!line) continue;\n\t\t\t\t\t\t\t\tconst hadTrailingSlash = line.endsWith(\"/\") || line.endsWith(\"\\\\\");\n\t\t\t\t\t\t\t\tlet relativePath = line;\n\t\t\t\t\t\t\t\tif (line.startsWith(searchPath)) {\n\t\t\t\t\t\t\t\t\trelativePath = line.slice(searchPath.length + 1);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trelativePath = path.relative(searchPath, line);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (hadTrailingSlash && !relativePath.endsWith(\"/\")) relativePath += \"/\";\n\t\t\t\t\t\t\t\trelativized.push(toPosixPath(relativePath));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst resultLimitReached = relativized.length >= effectiveLimit;\n\t\t\t\t\t\t\tconst rawOutput = relativized.join(\"\\n\");\n\t\t\t\t\t\t\tconst truncation = truncateHead(rawOutput, { maxLines: Number.MAX_SAFE_INTEGER });\n\t\t\t\t\t\t\tlet resultOutput = truncation.content;\n\t\t\t\t\t\t\tconst details: FindToolDetails = {};\n\t\t\t\t\t\t\tconst notices: string[] = [];\n\t\t\t\t\t\t\tif (resultLimitReached) {\n\t\t\t\t\t\t\t\tnotices.push(\n\t\t\t\t\t\t\t\t\t`${effectiveLimit} results limit reached. Use limit=${effectiveLimit * 2} for more, or refine pattern`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tdetails.resultLimitReached = effectiveLimit;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (truncation.truncated) {\n\t\t\t\t\t\t\t\tnotices.push(`${formatSize(DEFAULT_MAX_BYTES)} limit reached`);\n\t\t\t\t\t\t\t\tdetails.truncation = truncation;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (notices.length > 0) {\n\t\t\t\t\t\t\t\tresultOutput += `\\n\\n[${notices.join(\". \")}]`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsettle(() =>\n\t\t\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: resultOutput }],\n\t\t\t\t\t\t\t\t\tdetails: Object.keys(details).length > 0 ? details : undefined,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst error = e instanceof Error ? e : new Error(String(e));\n\t\t\t\t\t\tsettle(() => reject(error));\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t});\n\t\t},\n\t\trenderCall(args, theme, context) {\n\t\t\tconst text = (context.lastComponent as Text | undefined) ?? new Text(\"\", 0, 0);\n\t\t\ttext.setText(formatFindCall(args, theme));\n\t\t\treturn text;\n\t\t},\n\t\trenderResult(result, options, theme, context) {\n\t\t\tconst text = (context.lastComponent as Text | undefined) ?? new Text(\"\", 0, 0);\n\t\t\ttext.setText(formatFindResult(result as any, options, theme, context.showImages));\n\t\t\treturn text;\n\t\t},\n\t};\n}\n\nexport function createFindTool(cwd: string, options?: FindToolOptions): AgentTool<typeof findSchema> {\n\treturn wrapToolDefinition(createFindToolDefinition(cwd, options));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/core/tools/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,wBAAwB,CAAC;AAItF,OAAO,EAAiC,KAAK,gBAAgB,EAAgB,MAAM,eAAe,CAAC;AAEnG,6FAA6F;AAC7F,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,IAAI,CAAC,YAAmB,GAClC,MAAM,CAMR;AAED,QAAA,MAAM,UAAU;;;;EAMd,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;CAGnC,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAItD,MAAM,WAAW,eAAe;IAC/B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,2BAA2B;IAC3B,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC7D,4EAA4E;IAC5E,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;CACnH;AAQD,MAAM,WAAW,eAAe;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,cAAc,CAAC;CAC5B;AAoDD,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACvB,cAAc,CAAC,OAAO,UAAU,EAAE,eAAe,GAAG,SAAS,CAAC,CA0PhE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CAEnG","sourcesContent":["import { createInterface } from \"node:readline\";\nimport type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Text } from \"@earendil-works/pi-tui\";\nimport { spawn } from \"child_process\";\nimport path from \"path\";\nimport { type Static, Type } from \"typebox\";\nimport { keyHint } from \"../../modes/interactive/components/keybinding-hints.ts\";\nimport type { Theme } from \"../../modes/interactive/theme/theme.ts\";\nimport { ensureTool } from \"../../utils/tools-manager.ts\";\nimport type { ToolDefinition, ToolRenderResultOptions } from \"../extensions/types.ts\";\nimport { pathExists, resolveToCwd } from \"./path-utils.ts\";\nimport { getTextOutput, invalidArgText, shortenPath, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\nimport { DEFAULT_MAX_BYTES, formatSize, type TruncationResult, truncateHead } from \"./truncate.ts\";\n\n/** Relativize a find result against the search root and normalize it to posix separators. */\nexport function relativizeFindResultPath(\n\tresultPath: string,\n\tsearchPath: string,\n\tpathModule: path.PlatformPath = path,\n): string {\n\tconst hadTrailingSeparator =\n\t\tresultPath.endsWith(pathModule.sep) || (pathModule.sep === \"\\\\\" && resultPath.endsWith(\"/\"));\n\tconst relativePath = pathModule.isAbsolute(resultPath) ? pathModule.relative(searchPath, resultPath) : resultPath;\n\tconst posixPath = relativePath.split(pathModule.sep).join(\"/\");\n\treturn hadTrailingSeparator && !posixPath.endsWith(\"/\") ? `${posixPath}/` : posixPath;\n}\n\nconst findSchema = Type.Object({\n\tpattern: Type.String({\n\t\tdescription: \"Glob pattern to match files, e.g. '*.ts', '**/*.json', or 'src/**/*.spec.ts'\",\n\t}),\n\tpath: Type.Optional(Type.String({ description: \"Directory to search in (default: current directory)\" })),\n\tlimit: Type.Optional(Type.Number({ description: \"Maximum number of results (default: 1000)\" })),\n});\n\nexport const findToolSystemPromptContribution = {\n\tsnippet: \"Find files by glob pattern (respects .gitignore)\",\n\tguidelines: [],\n} as const;\n\nexport type FindToolInput = Static<typeof findSchema>;\n\nconst DEFAULT_LIMIT = 1000;\n\nexport interface FindToolDetails {\n\ttruncation?: TruncationResult;\n\tresultLimitReached?: number;\n}\n\n/**\n * Pluggable operations for the find tool.\n * Override these to delegate file search to remote systems (for example SSH).\n */\nexport interface FindOperations {\n\t/** Check if path exists */\n\texists: (absolutePath: string) => Promise<boolean> | boolean;\n\t/** Find files matching glob pattern. Returns relative or absolute paths. */\n\tglob: (pattern: string, cwd: string, options: { ignore: string[]; limit: number }) => Promise<string[]> | string[];\n}\n\nconst defaultFindOperations: FindOperations = {\n\texists: pathExists,\n\t// This is a placeholder. Actual fd execution happens in execute() when no custom glob is provided.\n\tglob: () => [],\n};\n\nexport interface FindToolOptions {\n\t/** Custom operations for find. Default: local filesystem plus fd */\n\toperations?: FindOperations;\n}\n\nfunction formatFindCall(args: { pattern: string; path?: string; limit?: number } | undefined, theme: Theme): string {\n\tconst pattern = str(args?.pattern);\n\tconst rawPath = str(args?.path);\n\tconst path = rawPath !== null ? shortenPath(rawPath || \".\") : null;\n\tconst limit = args?.limit;\n\tconst invalidArg = invalidArgText(theme);\n\tlet text =\n\t\ttheme.fg(\"toolTitle\", theme.bold(\"find\")) +\n\t\t\" \" +\n\t\t(pattern === null ? invalidArg : theme.fg(\"accent\", pattern || \"\")) +\n\t\ttheme.fg(\"toolOutput\", ` in ${path === null ? invalidArg : path}`);\n\tif (limit !== undefined) {\n\t\ttext += theme.fg(\"toolOutput\", ` (limit ${limit})`);\n\t}\n\treturn text;\n}\n\nfunction formatFindResult(\n\tresult: {\n\t\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\t\tdetails?: FindToolDetails;\n\t},\n\toptions: ToolRenderResultOptions,\n\ttheme: Theme,\n\tshowImages: boolean,\n): string {\n\tconst output = getTextOutput(result, showImages).trim();\n\tlet text = \"\";\n\tif (output) {\n\t\tconst lines = output.split(\"\\n\");\n\t\tconst maxLines = options.expanded ? lines.length : 20;\n\t\tconst displayLines = lines.slice(0, maxLines);\n\t\tconst remaining = lines.length - maxLines;\n\t\ttext += `\\n${displayLines.map((line) => theme.fg(\"toolOutput\", line)).join(\"\\n\")}`;\n\t\tif (remaining > 0) {\n\t\t\ttext += `${theme.fg(\"muted\", `\\n... (${remaining} more lines,`)} ${keyHint(\"app.tools.expand\", \"to expand\")}${theme.fg(\"muted\", \")\")}`;\n\t\t}\n\t}\n\n\tconst resultLimit = result.details?.resultLimitReached;\n\tconst truncation = result.details?.truncation;\n\tif (resultLimit || truncation?.truncated) {\n\t\tconst warnings: string[] = [];\n\t\tif (resultLimit) warnings.push(`${resultLimit} results limit`);\n\t\tif (truncation?.truncated) warnings.push(`${formatSize(truncation.maxBytes ?? DEFAULT_MAX_BYTES)} limit`);\n\t\ttext += `\\n${theme.fg(\"warning\", `[Truncated: ${warnings.join(\", \")}]`)}`;\n\t}\n\treturn text;\n}\n\nexport function createFindToolDefinition(\n\tcwd: string,\n\toptions?: FindToolOptions,\n): ToolDefinition<typeof findSchema, FindToolDetails | undefined> {\n\tconst customOps = options?.operations;\n\treturn {\n\t\tname: \"find\",\n\t\tlabel: \"find\",\n\t\tdescription: `Search for files by glob pattern. Returns matching file paths relative to the search directory. Respects .gitignore. Output is truncated to ${DEFAULT_LIMIT} results or ${DEFAULT_MAX_BYTES / 1024}KB (whichever is hit first).`,\n\t\tpromptSnippet: findToolSystemPromptContribution.snippet,\n\t\tparameters: findSchema,\n\t\tasync execute(\n\t\t\t_toolCallId,\n\t\t\t{ pattern, path: searchDir, limit }: { pattern: string; path?: string; limit?: number },\n\t\t\tsignal?: AbortSignal,\n\t\t\t_onUpdate?,\n\t\t\t_ctx?,\n\t\t) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\treject(new Error(\"Operation aborted\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet settled = false;\n\t\t\t\tlet stopChild: (() => void) | undefined;\n\t\t\t\tconst settle = (fn: () => void) => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\tstopChild = undefined;\n\t\t\t\t\tfn();\n\t\t\t\t};\n\t\t\t\tconst onAbort = () => {\n\t\t\t\t\tstopChild?.();\n\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t};\n\t\t\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\n\t\t\t\t(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst searchPath = resolveToCwd(searchDir || \".\", cwd);\n\t\t\t\t\t\tconst effectiveLimit = limit ?? DEFAULT_LIMIT;\n\t\t\t\t\t\tconst ops = customOps ?? defaultFindOperations;\n\n\t\t\t\t\t\t// If custom operations provide glob(), use that instead of fd.\n\t\t\t\t\t\tif (customOps?.glob) {\n\t\t\t\t\t\t\tif (!(await ops.exists(searchPath))) {\n\t\t\t\t\t\t\t\tsettle(() => reject(new Error(`Path not found: ${searchPath}`)));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst results = await ops.glob(pattern, searchPath, {\n\t\t\t\t\t\t\t\tignore: [\"**/node_modules/**\", \"**/.git/**\"],\n\t\t\t\t\t\t\t\tlimit: effectiveLimit,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (results.length === 0) {\n\t\t\t\t\t\t\t\tsettle(() =>\n\t\t\t\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: \"No files found matching pattern\" }],\n\t\t\t\t\t\t\t\t\t\tdetails: undefined,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Relativize paths against the search root for stable output.\n\t\t\t\t\t\t\tconst relativized = results.map((p) => relativizeFindResultPath(p, searchPath));\n\t\t\t\t\t\t\tconst resultLimitReached = relativized.length >= effectiveLimit;\n\t\t\t\t\t\t\tconst rawOutput = relativized.join(\"\\n\");\n\t\t\t\t\t\t\tconst truncation = truncateHead(rawOutput, { maxLines: Number.MAX_SAFE_INTEGER });\n\t\t\t\t\t\t\tlet resultOutput = truncation.content;\n\t\t\t\t\t\t\tconst details: FindToolDetails = {};\n\t\t\t\t\t\t\tconst notices: string[] = [];\n\t\t\t\t\t\t\tif (resultLimitReached) {\n\t\t\t\t\t\t\t\tnotices.push(`${effectiveLimit} results limit reached`);\n\t\t\t\t\t\t\t\tdetails.resultLimitReached = effectiveLimit;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (truncation.truncated) {\n\t\t\t\t\t\t\t\tnotices.push(`${formatSize(DEFAULT_MAX_BYTES)} limit reached`);\n\t\t\t\t\t\t\t\tdetails.truncation = truncation;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (notices.length > 0) {\n\t\t\t\t\t\t\t\tresultOutput += `\\n\\n[${notices.join(\". \")}]`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsettle(() =>\n\t\t\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: resultOutput }],\n\t\t\t\t\t\t\t\t\tdetails: Object.keys(details).length > 0 ? details : undefined,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Default implementation uses fd.\n\t\t\t\t\t\tconst fdPath = await ensureTool(\"fd\", true);\n\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!fdPath) {\n\t\t\t\t\t\t\tsettle(() => reject(new Error(\"fd is not available and could not be downloaded\")));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst args: string[] = [\"--glob\", \"--color=never\", \"--hidden\"];\n\n\t\t\t\t\t\t// fd normally ignores .gitignore outside git repos, so keep --no-require-git\n\t\t\t\t\t\t// there. Inside repos, use fd's default git-aware behavior so parent\n\t\t\t\t\t\t// .gitignore rules stop at nested repo boundaries:\n\t\t\t\t\t\t// https://github.com/earendil-works/pi/issues/5960\n\t\t\t\t\t\tlet insideGitRepo = false;\n\t\t\t\t\t\tfor (let current = searchPath; ; ) {\n\t\t\t\t\t\t\tif (await pathExists(path.join(current, \".git\"))) {\n\t\t\t\t\t\t\t\tinsideGitRepo = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst parent = path.dirname(current);\n\t\t\t\t\t\t\tif (parent === current) break;\n\t\t\t\t\t\t\tcurrent = parent;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!insideGitRepo) args.push(\"--no-require-git\");\n\t\t\t\t\t\targs.push(\"--max-results\", String(effectiveLimit));\n\n\t\t\t\t\t\t// fd --glob matches against the basename unless --full-path is set; in --full-path\n\t\t\t\t\t\t// mode it matches against the absolute candidate path, so a path-containing\n\t\t\t\t\t\t// pattern like 'src/**/*.spec.ts' needs a leading '**/' to match anything.\n\t\t\t\t\t\tlet effectivePattern = pattern;\n\t\t\t\t\t\tif (pattern.includes(\"/\")) {\n\t\t\t\t\t\t\targs.push(\"--full-path\");\n\t\t\t\t\t\t\tif (!pattern.startsWith(\"/\") && !pattern.startsWith(\"**/\") && pattern !== \"**\") {\n\t\t\t\t\t\t\t\teffectivePattern = `**/${pattern}`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// fd matches full paths using native separators on Windows.\n\t\t\t\t\t\t\tif (process.platform === \"win32\")\n\t\t\t\t\t\t\t\teffectivePattern = effectivePattern.replaceAll(\"/\", String.raw`[/\\\\]`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\targs.push(\"--\", effectivePattern, searchPath);\n\n\t\t\t\t\t\tconst child = spawn(fdPath, args, { stdio: [\"ignore\", \"pipe\", \"pipe\"] });\n\t\t\t\t\t\tconst rl = createInterface({ input: child.stdout });\n\t\t\t\t\t\tlet stderr = \"\";\n\t\t\t\t\t\tconst lines: string[] = [];\n\n\t\t\t\t\t\tstopChild = () => {\n\t\t\t\t\t\t\tif (!child.killed) {\n\t\t\t\t\t\t\t\tchild.kill();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tconst cleanup = () => {\n\t\t\t\t\t\t\trl.close();\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tchild.stderr?.on(\"data\", (chunk) => {\n\t\t\t\t\t\t\tstderr += chunk.toString();\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\trl.on(\"line\", (line) => {\n\t\t\t\t\t\t\tlines.push(line);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchild.on(\"error\", (error) => {\n\t\t\t\t\t\t\tcleanup();\n\t\t\t\t\t\t\tsettle(() => reject(new Error(`Failed to run fd: ${error.message}`)));\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchild.on(\"close\", (code) => {\n\t\t\t\t\t\t\tcleanup();\n\t\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst output = lines.join(\"\\n\");\n\t\t\t\t\t\t\tif (code !== 0) {\n\t\t\t\t\t\t\t\tconst errorMsg = stderr.trim() || `fd exited with code ${code}`;\n\t\t\t\t\t\t\t\tif (!output) {\n\t\t\t\t\t\t\t\t\tsettle(() => reject(new Error(errorMsg)));\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!output) {\n\t\t\t\t\t\t\t\tsettle(() =>\n\t\t\t\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: \"No files found matching pattern\" }],\n\t\t\t\t\t\t\t\t\t\tdetails: undefined,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst relativized: string[] = [];\n\t\t\t\t\t\t\tfor (const rawLine of lines) {\n\t\t\t\t\t\t\t\tconst line = rawLine.replace(/\\r$/, \"\").trim();\n\t\t\t\t\t\t\t\tif (!line) continue;\n\t\t\t\t\t\t\t\trelativized.push(relativizeFindResultPath(line, searchPath));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst resultLimitReached = relativized.length >= effectiveLimit;\n\t\t\t\t\t\t\tconst rawOutput = relativized.join(\"\\n\");\n\t\t\t\t\t\t\tconst truncation = truncateHead(rawOutput, { maxLines: Number.MAX_SAFE_INTEGER });\n\t\t\t\t\t\t\tlet resultOutput = truncation.content;\n\t\t\t\t\t\t\tconst details: FindToolDetails = {};\n\t\t\t\t\t\t\tconst notices: string[] = [];\n\t\t\t\t\t\t\tif (resultLimitReached) {\n\t\t\t\t\t\t\t\tnotices.push(\n\t\t\t\t\t\t\t\t\t`${effectiveLimit} results limit reached. Use limit=${effectiveLimit * 2} for more, or refine pattern`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tdetails.resultLimitReached = effectiveLimit;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (truncation.truncated) {\n\t\t\t\t\t\t\t\tnotices.push(`${formatSize(DEFAULT_MAX_BYTES)} limit reached`);\n\t\t\t\t\t\t\t\tdetails.truncation = truncation;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (notices.length > 0) {\n\t\t\t\t\t\t\t\tresultOutput += `\\n\\n[${notices.join(\". \")}]`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsettle(() =>\n\t\t\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: resultOutput }],\n\t\t\t\t\t\t\t\t\tdetails: Object.keys(details).length > 0 ? details : undefined,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\t\tsettle(() => reject(new Error(\"Operation aborted\")));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst error = e instanceof Error ? e : new Error(String(e));\n\t\t\t\t\t\tsettle(() => reject(error));\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t});\n\t\t},\n\t\trenderCall(args, theme, context) {\n\t\t\tconst text = (context.lastComponent as Text | undefined) ?? new Text(\"\", 0, 0);\n\t\t\ttext.setText(formatFindCall(args, theme));\n\t\t\treturn text;\n\t\t},\n\t\trenderResult(result, options, theme, context) {\n\t\t\tconst text = (context.lastComponent as Text | undefined) ?? new Text(\"\", 0, 0);\n\t\t\ttext.setText(formatFindResult(result as any, options, theme, context.showImages));\n\t\t\treturn text;\n\t\t},\n\t};\n}\n\nexport function createFindTool(cwd: string, options?: FindToolOptions): AgentTool<typeof findSchema> {\n\treturn wrapToolDefinition(createFindToolDefinition(cwd, options));\n}\n"]}
|