@code-yeongyu/senpi 2026.6.21 → 2026.6.30-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +177 -0
- package/README.md +41 -5
- package/dist/bun/register-bedrock.js +1 -1
- package/dist/bun/register-bedrock.js.map +1 -1
- package/dist/cli/args.js +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +13 -25
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/session-picker.d.ts +2 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +5 -4
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli/startup-ui.d.ts +4 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +63 -14
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/core/agent-session.d.ts +6 -3
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +71 -50
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +6 -12
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +4 -19
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +2 -2
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +7 -4
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/dynamic-prompt/style.d.ts.map +1 -1
- package/dist/core/dynamic-prompt/style.js +26 -1
- package/dist/core/dynamic-prompt/style.js.map +1 -1
- package/dist/core/experimental.d.ts +2 -0
- package/dist/core/experimental.d.ts.map +1 -0
- package/dist/core/experimental.js +4 -0
- package/dist/core/experimental.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/openai-remote.d.ts +1 -1
- package/dist/core/extensions/builtin/compaction/openai-remote.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/openai-remote.js +1 -1
- package/dist/core/extensions/builtin/compaction/openai-remote.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.js +2 -1
- package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
- package/dist/core/extensions/builtin/goal/command-registration.d.ts +12 -0
- package/dist/core/extensions/builtin/goal/command-registration.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/command-registration.js +86 -0
- package/dist/core/extensions/builtin/goal/command-registration.js.map +1 -0
- package/dist/core/extensions/builtin/goal/continuation.d.ts +2 -1
- package/dist/core/extensions/builtin/goal/continuation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/continuation.js +33 -2
- package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/index.js +19 -136
- package/dist/core/extensions/builtin/goal/index.js.map +1 -1
- package/dist/core/extensions/builtin/goal/tool-registration.d.ts +10 -0
- package/dist/core/extensions/builtin/goal/tool-registration.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/tool-registration.js +63 -0
- package/dist/core/extensions/builtin/goal/tool-registration.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/command-runner.d.ts +25 -0
- package/dist/core/extensions/builtin/hooks/command-runner.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/command-runner.js +152 -0
- package/dist/core/extensions/builtin/hooks/command-runner.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/command.d.ts +11 -0
- package/dist/core/extensions/builtin/hooks/command.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/command.js +180 -0
- package/dist/core/extensions/builtin/hooks/command.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/config-loader.d.ts +19 -0
- package/dist/core/extensions/builtin/hooks/config-loader.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/config-loader.js +125 -0
- package/dist/core/extensions/builtin/hooks/config-loader.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.d.ts +10 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.js +14 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.d.ts +60 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.js +161 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/handler.d.ts +12 -0
- package/dist/core/extensions/builtin/hooks/handler.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/handler.js +128 -0
- package/dist/core/extensions/builtin/hooks/handler.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/index.d.ts +6 -0
- package/dist/core/extensions/builtin/hooks/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/index.js +216 -0
- package/dist/core/extensions/builtin/hooks/index.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.d.ts +29 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.js +276 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/matcher.d.ts +7 -0
- package/dist/core/extensions/builtin/hooks/matcher.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/matcher.js +109 -0
- package/dist/core/extensions/builtin/hooks/matcher.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.d.ts +29 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.js +47 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-parser.d.ts +27 -0
- package/dist/core/extensions/builtin/hooks/output-parser.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-parser.js +168 -0
- package/dist/core/extensions/builtin/hooks/output-parser.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.d.ts +11 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.js +138 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.d.ts +47 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.js +86 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.d.ts +30 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.js +59 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/safety.d.ts +14 -0
- package/dist/core/extensions/builtin/hooks/safety.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/safety.js +179 -0
- package/dist/core/extensions/builtin/hooks/safety.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/schema.d.ts +3 -0
- package/dist/core/extensions/builtin/hooks/schema.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/schema.js +94 -0
- package/dist/core/extensions/builtin/hooks/schema.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.d.ts +18 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.js +282 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.d.ts +11 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.js +158 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.d.ts +24 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.js +102 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust.d.ts +34 -0
- package/dist/core/extensions/builtin/hooks/trust.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust.js +194 -0
- package/dist/core/extensions/builtin/hooks/trust.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/types.d.ts +134 -0
- package/dist/core/extensions/builtin/hooks/types.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/types.js +36 -0
- package/dist/core/extensions/builtin/hooks/types.js.map +1 -0
- package/dist/core/extensions/builtin/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +4 -0
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/cli.d.ts +3 -1
- package/dist/core/extensions/builtin/permission-system/cli.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/cli.js +14 -0
- package/dist/core/extensions/builtin/permission-system/cli.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/config.d.ts +3 -1
- package/dist/core/extensions/builtin/permission-system/config.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/config.js +26 -0
- package/dist/core/extensions/builtin/permission-system/config.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/external-dir.js +2 -2
- package/dist/core/extensions/builtin/permission-system/external-dir.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/index.js +11 -2
- package/dist/core/extensions/builtin/permission-system/index.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/parsers.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/parsers.js +39 -16
- package/dist/core/extensions/builtin/permission-system/parsers.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/settings.d.ts +6 -5
- package/dist/core/extensions/builtin/permission-system/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/settings.js +26 -6
- package/dist/core/extensions/builtin/permission-system/settings.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/types.d.ts +1 -0
- package/dist/core/extensions/builtin/permission-system/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/types.js.map +1 -1
- package/dist/core/extensions/builtin/pi-codex-app-server/capability-negotiator.d.ts +42 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/capability-negotiator.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/capability-negotiator.js +130 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/capability-negotiator.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/error-mapper.d.ts +27 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/error-mapper.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/error-mapper.js +18 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/error-mapper.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/extension.d.ts +25 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/extension.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/extension.js +110 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/extension.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/id-mapper.d.ts +48 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/id-mapper.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/id-mapper.js +74 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/id-mapper.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/index.d.ts +3 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/index.js +5 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/index.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/item-stream-projector.d.ts +29 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/item-stream-projector.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/item-stream-projector.js +105 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/item-stream-projector.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/notification-projector.d.ts +49 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/notification-projector.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/notification-projector.js +99 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/notification-projector.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-core.d.ts +42 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-core.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-core.js +191 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-core.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-inventory.d.ts +3 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-inventory.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-inventory.js +103 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-inventory.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-required-surfaces.d.ts +7 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-required-surfaces.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-required-surfaces.js +234 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-required-surfaces.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.d.ts +18 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.js +77 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume.d.ts +70 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume.js +138 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router-params.d.ts +34 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router-params.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router-params.js +92 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router-params.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router.d.ts +32 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router.js +279 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/runtime-errors.d.ts +6 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/runtime-errors.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/runtime-errors.js +8 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/runtime-errors.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-bridge.d.ts +76 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-bridge.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-bridge.js +169 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-bridge.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-fields.d.ts +24 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-fields.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-fields.js +81 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-fields.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/session-registry.d.ts +42 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/session-registry.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/session-registry.js +89 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/session-registry.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/stream-backpressure.d.ts +36 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/stream-backpressure.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/stream-backpressure.js +94 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/stream-backpressure.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/transport-runtime.d.ts +34 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/transport-runtime.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/transport-runtime.js +179 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/transport-runtime.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/websocket-transport.d.ts +20 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/websocket-transport.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/websocket-transport.js +90 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/websocket-transport.js.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.d.ts +3 -0
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.d.ts.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js +12 -0
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/presets.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/presets.js +6 -0
- package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/settings.d.ts +1 -1
- package/dist/core/extensions/builtin/prompt-preset/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/settings.js +1 -0
- package/dist/core/extensions/builtin/prompt-preset/settings.js.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/content.d.ts +2 -2
- package/dist/core/extensions/builtin/webfetch/webfetch/content.d.ts.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/content.js +170 -7
- package/dist/core/extensions/builtin/webfetch/webfetch/content.js.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/fetcher.d.ts.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/fetcher.js +101 -43
- package/dist/core/extensions/builtin/webfetch/webfetch/fetcher.js.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/tool.js +2 -2
- package/dist/core/extensions/builtin/webfetch/webfetch/tool.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +25 -14
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +5 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +20 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +27 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +28 -1
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/keybindings.d.ts +1 -1
- package/dist/core/model-registry.d.ts +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +4 -6
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.js +1 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-manager.d.ts +1 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +14 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/provider-attribution.d.ts +2 -2
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/provider-display-names.js +1 -1
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/resource-loader.d.ts +14 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +40 -0
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +20 -14
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +5 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +75 -14
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-resident-store.d.ts.map +1 -1
- package/dist/core/session-resident-store.js +63 -2
- package/dist/core/session-resident-store.js.map +1 -1
- package/dist/core/settings-manager.d.ts +8 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +22 -6
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/timings.d.ts +4 -2
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +24 -14
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +19 -11
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +12 -25
- package/dist/core/tools/read.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +22 -7
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +3 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +27 -17
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts +3 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +11 -3
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/render-signature.d.ts +2 -0
- package/dist/modes/interactive/components/render-signature.d.ts.map +1 -0
- package/dist/modes/interactive/components/render-signature.js +101 -0
- package/dist/modes/interactive/components/render-signature.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +14 -3
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +13 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts +27 -0
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
- package/dist/modes/interactive/components/status-indicator.js +64 -0
- package/dist/modes/interactive/components/status-indicator.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +4 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +6 -2
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +16 -5
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +11 -13
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +185 -171
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts +0 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +2 -13
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +10 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +11 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +15 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +14 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +16 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +26 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/rpc-entry.d.ts +3 -0
- package/dist/rpc-entry.d.ts.map +1 -0
- package/dist/rpc-entry.js +10 -0
- package/dist/rpc-entry.js.map +1 -0
- package/dist/utils/child-process.js +1 -1
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/image-convert.d.ts +1 -0
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js +21 -15
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-process.d.ts +18 -0
- package/dist/utils/image-process.d.ts.map +1 -0
- package/dist/utils/image-process.js +83 -0
- package/dist/utils/image-process.js.map +1 -0
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js +41 -0
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/version-check.d.ts +1 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +7 -0
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +3 -1
- package/docs/extensions.md +470 -1
- package/docs/index.md +1 -1
- package/docs/keybindings.md +2 -2
- package/docs/models.md +4 -2
- package/docs/packages.md +9 -6
- package/docs/providers.md +3 -2
- package/docs/rpc.md +58 -0
- package/docs/security.md +4 -0
- package/docs/settings.md +64 -0
- package/docs/terminal-setup.md +1 -7
- package/docs/tui.md +3 -3
- package/docs/usage.md +6 -4
- package/examples/extensions/README.md +1 -0
- package/examples/extensions/custom-compaction.ts +5 -4
- package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +11 -7
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/examples/extensions/gondolin/package-lock.json +5 -5
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/handoff.ts +4 -4
- package/examples/extensions/plan-mode/README.md +3 -2
- package/examples/extensions/plan-mode/index.ts +87 -37
- package/examples/extensions/qna.ts +4 -4
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/summarize.ts +4 -3
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/02-custom-model.ts +2 -2
- package/examples/sdk/12-full-control.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/README.md +0 -18
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +2 -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 +4 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +10 -2
- 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 +2 -2
- 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 +6 -19
- 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 +3 -5
- 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 +2 -3
- 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 +4 -4
- 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 +17 -15
- 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/compaction/utils.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts +1 -1
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts +1 -1
- 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 +2 -1
- 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/types.d.ts +24 -22
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +19 -2
- 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 +24 -4
- 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 -1
- 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 +4 -3
- 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 +2 -2
- package/node_modules/@earendil-works/pi-ai/README.md +651 -526
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts +71 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +1277 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +219 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts +38 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +903 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.d.ts +9 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.js +30 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/cloudflare.d.ts +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/cloudflare.js +7 -12
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/github-copilot-headers.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/github-copilot-headers.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts +13 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +437 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts +69 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js +346 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +479 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.d.ts +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.js +59 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.d.ts +25 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +562 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/openai-codex-responses.d.ts +2 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/openai-codex-responses.js +63 -66
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts +22 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +1099 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts +20 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +568 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts +13 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +645 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers/images/openrouter.js → api/openrouter-images.js} +7 -16
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.lazy.js +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/simple-options.d.ts +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/simple-options.js +11 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/context.d.ts +7 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/context.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/context.js +42 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/context.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.d.ts +16 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.js +39 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.d.ts +20 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js +46 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts +26 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +100 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.d.ts +180 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.d.ts +2 -4
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.js +3 -4
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts +65 -0
- package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/compat.js +195 -0
- package/node_modules/@earendil-works/pi-ai/dist/compat.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +34 -19
- 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 +60 -45
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.d.ts +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.js +0 -3
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-models.d.ts +93 -0
- package/node_modules/@earendil-works/pi-ai/dist/images-models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images-models.js +139 -0
- package/node_modules/@earendil-works/pi-ai/dist/images-models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +21 -3
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js +10 -5
- package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.d.ts +42 -0
- package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.js +49 -0
- package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +134 -25
- 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 +2434 -348
- 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 +70 -17244
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js +239 -65
- 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 +21 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js +147 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts +2 -38
- 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 +35 -896
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts +1837 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +1794 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.d.ts +86 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js +60 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts +4 -69
- 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 +20 -1273
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.d.ts +444 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +423 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts +2 -15
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js +11 -234
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts +804 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js +743 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.d.ts +45 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +41 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js +20 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts +765 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +666 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.d.ts +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js +85 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.js +14 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.d.ts +302 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js +239 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.d.ts +63 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js +43 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts +60 -11
- 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 +86 -22
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.js +19 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.d.ts +376 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +294 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.js +25 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts +616 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +426 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.d.ts +1 -68
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.js +1 -345
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.d.ts +4 -13
- 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 +33 -478
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.d.ts +202 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js +182 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.d.ts +4 -11
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.js +15 -439
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.d.ts +328 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.js +288 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.d.ts +128 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js +125 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.d.ts +963 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js +869 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/{openrouter.d.ts → register-builtins.d.ts} +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.js +34 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.d.ts +63 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js +59 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.d.ts +54 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js +56 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.d.ts +54 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js +56 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.d.ts +2 -25
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.js +12 -567
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.d.ts +513 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js +515 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.d.ts +234 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js +169 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.d.ts +234 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js +169 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts +563 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +385 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.js +18 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts +87 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js +77 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts +2 -22
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +1 -1070
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts +1 -19
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js +1 -584
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts +2 -13
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js +1 -656
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts +805 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js +743 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +18 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.d.ts +309 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +240 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.js +22 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts +976 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +815 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.js +14 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +5402 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +4634 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.d.ts +1 -36
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.js +1 -190
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.d.ts +598 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +380 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts +3230 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +3187 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.d.ts +157 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js +131 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts +113 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +95 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts +113 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +95 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts +113 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +95 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.d.ts +135 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js +113 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.d.ts +153 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js +114 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.d.ts +153 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js +114 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/stream.d.ts +1 -5
- package/node_modules/@earendil-works/pi-ai/dist/stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/stream.js +1 -53
- package/node_modules/@earendil-works/pi-ai/dist/stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +74 -8
- 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/error-body.d.ts +25 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js +109 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.d.ts +17 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.js +98 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/headers.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/headers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/headers.js +10 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/headers.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.js +31 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +33 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/load.d.ts +5 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/load.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/load.js +22 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/load.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +49 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts +12 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +86 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/package.json +15 -42
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +2 -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 +5 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.js +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +3 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/node_modules/marked/README.md +8 -0
- package/node_modules/marked/bin/main.js +12 -11
- package/node_modules/marked/lib/marked.d.ts +22 -11
- package/node_modules/marked/lib/marked.esm.js +50 -46
- package/node_modules/marked/lib/marked.esm.js.map +3 -3
- package/node_modules/marked/lib/marked.umd.js +50 -46
- package/node_modules/marked/lib/marked.umd.js.map +3 -3
- package/node_modules/marked/man/marked.1 +1 -1
- package/node_modules/marked/package.json +17 -17
- package/npm-shrinkwrap.json +788 -38
- package/package.json +11 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/base.d.ts +0 -20
- package/node_modules/@earendil-works/pi-agent-core/dist/base.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/base.js +0 -20
- package/node_modules/@earendil-works/pi-agent-core/dist/base.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.d.ts +0 -20
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.js +0 -44
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/base.d.ts +0 -30
- package/node_modules/@earendil-works/pi-ai/dist/base.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/base.js +0 -18
- package/node_modules/@earendil-works/pi-ai/dist/base.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.js.map +0 -1
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/github-copilot-headers.d.ts +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/github-copilot-headers.js +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/openai-prompt-cache.d.ts +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/openai-prompt-cache.js +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/transform-messages.d.ts +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/transform-messages.js +0 -0
- /package/node_modules/marked/{LICENSE.md → LICENSE} +0 -0
|
@@ -1,23 +1,43 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { parsePermissionPresetName } from "./cli.js";
|
|
2
|
+
import { DEFAULT_PERMISSION_PRESET, fromConfig, merge, rulesForPreset } from "./config.js";
|
|
2
3
|
import { loadApproved } from "./storage.js";
|
|
3
4
|
/**
|
|
4
5
|
* Load permission settings from global and project settings.json files.
|
|
5
6
|
*
|
|
6
7
|
* Merge order (highest precedence last):
|
|
7
|
-
* 1.
|
|
8
|
-
* 2.
|
|
9
|
-
* 3.
|
|
8
|
+
* 1. Default preset
|
|
9
|
+
* 2. Global preset and rules (~/.senpi/agent/settings.json)
|
|
10
|
+
* 3. Project preset and rules (.senpi/settings.json)
|
|
11
|
+
* 4. CLI preset and rules
|
|
10
12
|
*
|
|
11
13
|
* Runtime approvals are stored separately in .senpi/permissions-approved.jsonl
|
|
12
14
|
* and loaded via loadApproved() from storage.ts.
|
|
13
15
|
*/
|
|
14
|
-
export function loadPermissionSettings(settingsManager, cliOverride, projectDir) {
|
|
16
|
+
export function loadPermissionSettings(settingsManager, cliOverride, projectDir, cliPresetOverride) {
|
|
15
17
|
const globalSettings = settingsManager.getGlobalSettings();
|
|
18
|
+
const globalPreset = parseSettingsPreset(globalSettings.permissionPreset, "global");
|
|
19
|
+
const globalPresetRuleset = globalPreset ? rulesForPreset(globalPreset) : [];
|
|
16
20
|
const globalRuleset = globalSettings.permission ? fromConfig(globalSettings.permission) : [];
|
|
17
21
|
const projectSettings = settingsManager.getProjectSettings();
|
|
22
|
+
const projectPreset = parseSettingsPreset(projectSettings.permissionPreset, "project");
|
|
23
|
+
const projectPresetRuleset = projectPreset ? rulesForPreset(projectPreset) : [];
|
|
18
24
|
const projectRuleset = projectSettings.permission ? fromConfig(projectSettings.permission) : [];
|
|
19
|
-
const
|
|
25
|
+
const cliPresetRuleset = cliPresetOverride ? rulesForPreset(cliPresetOverride) : [];
|
|
26
|
+
const staticRuleset = merge(rulesForPreset(DEFAULT_PERMISSION_PRESET), globalPresetRuleset, globalRuleset, projectPresetRuleset, projectRuleset, cliPresetRuleset, cliOverride);
|
|
20
27
|
const approved = loadApproved(projectDir);
|
|
21
28
|
return { staticRuleset, approved };
|
|
22
29
|
}
|
|
30
|
+
function parseSettingsPreset(value, scope) {
|
|
31
|
+
if (value === undefined) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
if (typeof value !== "string") {
|
|
35
|
+
throw new Error(`Invalid ${scope} permissionPreset ${JSON.stringify(value)}. Expected a string.`);
|
|
36
|
+
}
|
|
37
|
+
const preset = parsePermissionPresetName(value);
|
|
38
|
+
if (!preset) {
|
|
39
|
+
throw new Error(`Invalid ${scope} permissionPreset "${value}". Expected one of: full-access, workspace, read-only, ask.`);
|
|
40
|
+
}
|
|
41
|
+
return preset;
|
|
42
|
+
}
|
|
23
43
|
//# sourceMappingURL=settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ5C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACrC,eAAgC,EAChC,WAAoB,EACpB,UAAkB,EAClB,iBAAwC;IAExC,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,EAAmC,CAAC;IAC5F,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACpF,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7F,MAAM,eAAe,GAAG,eAAe,CAAC,kBAAkB,EAAmC,CAAC;IAC9F,MAAM,aAAa,GAAG,mBAAmB,CAAC,eAAe,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACvF,MAAM,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhG,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,aAAa,GAAG,KAAK,CAC1B,cAAc,CAAC,yBAAyB,CAAC,EACzC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,CACX,CAAC;IACF,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE1C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,KAA2B;IACvE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACd,WAAW,KAAK,sBAAsB,KAAK,6DAA6D,CACxG,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC","sourcesContent":["import type { Settings, SettingsManager } from \"../../../settings-manager.ts\";\nimport { parsePermissionPresetName } from \"./cli.ts\";\nimport { DEFAULT_PERMISSION_PRESET, fromConfig, merge, rulesForPreset } from \"./config.ts\";\nimport { loadApproved } from \"./storage.ts\";\nimport type { PermissionConfig, PermissionPresetName, Ruleset } from \"./types.ts\";\n\ntype PermissionSettings = {\n\tpermission?: PermissionConfig;\n\tpermissionPreset?: unknown;\n};\n\n/**\n * Load permission settings from global and project settings.json files.\n *\n * Merge order (highest precedence last):\n * 1. Default preset\n * 2. Global preset and rules (~/.senpi/agent/settings.json)\n * 3. Project preset and rules (.senpi/settings.json)\n * 4. CLI preset and rules\n *\n * Runtime approvals are stored separately in .senpi/permissions-approved.jsonl\n * and loaded via loadApproved() from storage.ts.\n */\nexport function loadPermissionSettings(\n\tsettingsManager: SettingsManager,\n\tcliOverride: Ruleset,\n\tprojectDir: string,\n\tcliPresetOverride?: PermissionPresetName,\n): { staticRuleset: Ruleset; approved: Ruleset } {\n\tconst globalSettings = settingsManager.getGlobalSettings() as Settings & PermissionSettings;\n\tconst globalPreset = parseSettingsPreset(globalSettings.permissionPreset, \"global\");\n\tconst globalPresetRuleset = globalPreset ? rulesForPreset(globalPreset) : [];\n\tconst globalRuleset = globalSettings.permission ? fromConfig(globalSettings.permission) : [];\n\n\tconst projectSettings = settingsManager.getProjectSettings() as Settings & PermissionSettings;\n\tconst projectPreset = parseSettingsPreset(projectSettings.permissionPreset, \"project\");\n\tconst projectPresetRuleset = projectPreset ? rulesForPreset(projectPreset) : [];\n\tconst projectRuleset = projectSettings.permission ? fromConfig(projectSettings.permission) : [];\n\n\tconst cliPresetRuleset = cliPresetOverride ? rulesForPreset(cliPresetOverride) : [];\n\tconst staticRuleset = merge(\n\t\trulesForPreset(DEFAULT_PERMISSION_PRESET),\n\t\tglobalPresetRuleset,\n\t\tglobalRuleset,\n\t\tprojectPresetRuleset,\n\t\tprojectRuleset,\n\t\tcliPresetRuleset,\n\t\tcliOverride,\n\t);\n\tconst approved = loadApproved(projectDir);\n\n\treturn { staticRuleset, approved };\n}\n\nfunction parseSettingsPreset(value: unknown, scope: \"global\" | \"project\"): PermissionPresetName | undefined {\n\tif (value === undefined) {\n\t\treturn undefined;\n\t}\n\tif (typeof value !== \"string\") {\n\t\tthrow new Error(`Invalid ${scope} permissionPreset ${JSON.stringify(value)}. Expected a string.`);\n\t}\n\n\tconst preset = parsePermissionPresetName(value);\n\tif (!preset) {\n\t\tthrow new Error(\n\t\t\t`Invalid ${scope} permissionPreset \"${value}\". Expected one of: full-access, workspace, read-only, ask.`,\n\t\t);\n\t}\n\treturn preset;\n}\n"]}
|
|
@@ -10,6 +10,7 @@ export type Rule = {
|
|
|
10
10
|
export type Ruleset = Rule[];
|
|
11
11
|
/** Configuration format for settings.json */
|
|
12
12
|
export type PermissionConfig = Record<string, Action | Record<string, Action>>;
|
|
13
|
+
export type PermissionPresetName = "full-access" | "workspace" | "read-only" | "ask";
|
|
13
14
|
/** User reply to a permission request */
|
|
14
15
|
export type Reply = "once" | "always" | "reject";
|
|
15
16
|
/** Final permission decision: user reply or auto-grant from rules */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE9C,qDAAqD;AACrD,MAAM,MAAM,IAAI,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;AAE7B,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/E,yCAAyC;AACzC,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEjD,mDAAmD;AACnD,MAAM,MAAM,OAAO,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;CACF,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0DAA0D;AAC1D,qBAAa,aAAc,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,6BAA6B;IAE1C,cAGC;CACD;AAED,kEAAkE;AAClE,qBAAa,cAAe,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,YAAY,QAAQ,EAAE,MAAM,EAI3B;CACD;AAED,qDAAqD;AACrD,qBAAa,WAAY,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAE5B,YAAY,QAAQ,EAAE,MAAM,EAAE,EAI7B;CACD;AAED,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAE3E,qCAAqC;AACrC,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,KAAK,IAAI,CAAC;CACtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE9C,qDAAqD;AACrD,MAAM,MAAM,IAAI,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;AAE7B,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC;AAErF,yCAAyC;AACzC,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEjD,mDAAmD;AACnD,MAAM,MAAM,OAAO,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;CACF,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0DAA0D;AAC1D,qBAAa,aAAc,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,6BAA6B;IAE1C,cAGC;CACD;AAED,kEAAkE;AAClE,qBAAa,cAAe,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,YAAY,QAAQ,EAAE,MAAM,EAI3B;CACD;AAED,qDAAqD;AACrD,qBAAa,WAAY,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAE5B,YAAY,QAAQ,EAAE,MAAM,EAAE,EAI7B;CACD;AAED,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAE3E,qCAAqC;AACrC,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,KAAK,IAAI,CAAC;CACtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/types.ts"],"names":[],"mappings":"AA6CA,0DAA0D;AAC1D,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGvC;QACC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAH9D,SAAI,GAAG,yBAAyB,CAAC;QAIzC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC7B,CAAC;CACD;AAED,kEAAkE;AAClE,MAAM,OAAO,cAAe,SAAQ,KAAK;IAIxC,YAAY,QAAgB;QAC3B,KAAK,CAAC,4FAA4F,QAAQ,EAAE,CAAC,CAAC;QAJtG,SAAI,GAAG,0BAA0B,CAAC;QAK1C,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;CACD;AAED,qDAAqD;AACrD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAIrC,YAAY,QAAkB;QAC7B,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAJtF,SAAI,GAAG,uBAAuB,CAAC;QAKvC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;CACD","sourcesContent":["/** Permission action: allow (grant), deny (block), or ask (prompt user) */\nexport type Action = \"allow\" | \"deny\" | \"ask\";\n\n/** A single permission rule with pattern matching */\nexport type Rule = {\n\tpermission: string;\n\tpattern: string;\n\taction: Action;\n};\n\n/** Ordered list of rules for evaluation (last match wins) */\nexport type Ruleset = Rule[];\n\n/** Configuration format for settings.json */\nexport type PermissionConfig = Record<string, Action | Record<string, Action>>;\n\nexport type PermissionPresetName = \"full-access\" | \"workspace\" | \"read-only\" | \"ask\";\n\n/** User reply to a permission request */\nexport type Reply = \"once\" | \"always\" | \"reject\";\n\n/** Final permission decision: user reply or auto-grant from rules */\nexport type PermissionDecision = Reply | \"allow\";\n\n/** Permission request sent to user for approval */\nexport type Request = {\n\tid: string;\n\tsessionID: string;\n\tpermission: string;\n\tpatterns: string[];\n\talways: string[];\n\tmetadata: Record<string, unknown>;\n\ttool?: {\n\t\tmessageID: string;\n\t\tcallID: string;\n\t};\n};\n\n/** Input for replying to a permission request */\nexport type ReplyInput = {\n\trequestID: string;\n\treply: Reply;\n\tmessage?: string;\n};\n\n/** Error thrown when user rejects a permission request */\nexport class RejectedError extends Error {\n\treadonly _tag = \"PermissionRejectedError\";\n\n\tconstructor() {\n\t\tsuper(\"The user rejected permission to use this specific tool call.\");\n\t\tthis.name = \"RejectedError\";\n\t}\n}\n\n/** Error thrown when user rejects with feedback for correction */\nexport class CorrectedError extends Error {\n\treadonly _tag = \"PermissionCorrectedError\";\n\treadonly feedback: string;\n\n\tconstructor(feedback: string) {\n\t\tsuper(`The user rejected permission to use this specific tool call with the following feedback: ${feedback}`);\n\t\tthis.name = \"CorrectedError\";\n\t\tthis.feedback = feedback;\n\t}\n}\n\n/** Error thrown when a rule denies the permission */\nexport class DeniedError extends Error {\n\treadonly _tag = \"PermissionDeniedError\";\n\treadonly patterns: string[];\n\n\tconstructor(patterns: string[]) {\n\t\tsuper(`The user has specified a rule which prevents you from using this specific tool call.`);\n\t\tthis.name = \"DeniedError\";\n\t\tthis.patterns = patterns;\n\t}\n}\n\n/** Union of all permission-related errors */\nexport type PermissionError = RejectedError | CorrectedError | DeniedError;\n\n/** Internal pending request entry */\nexport type PendingEntry = {\n\tinfo: Request;\n\tresolve: () => void;\n\treject: (err: RejectedError | CorrectedError) => void;\n};\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type AdapterJsonRpcError } from "./error-mapper.ts";
|
|
2
|
+
import { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from "./protocol-core.ts";
|
|
3
|
+
export type NegotiatedCapabilityFlag = "semantic-events" | "opaque-notifications" | "opaque-callbacks" | "realtime" | "filesystem" | "app-plugin-config" | "app-server-experimental-api" | "app-server-attestation" | "app-server-mcp-form-elicitation";
|
|
4
|
+
export interface ExternalInitializeCapabilities {
|
|
5
|
+
readonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;
|
|
6
|
+
readonly semanticEvents: boolean;
|
|
7
|
+
readonly opaqueNotifications: boolean;
|
|
8
|
+
readonly opaqueCallbacks: boolean;
|
|
9
|
+
readonly realtime: boolean;
|
|
10
|
+
readonly filesystem: boolean;
|
|
11
|
+
readonly appPluginConfig: boolean;
|
|
12
|
+
readonly notificationOptOuts: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
export interface AppServerInitializeCapabilities {
|
|
15
|
+
readonly experimentalApi?: boolean;
|
|
16
|
+
readonly requestAttestation?: boolean;
|
|
17
|
+
readonly mcpServerOpenaiFormElicitation?: boolean;
|
|
18
|
+
readonly optOutNotificationMethods?: readonly string[] | null;
|
|
19
|
+
}
|
|
20
|
+
export interface CapabilityNegotiationInput {
|
|
21
|
+
readonly external: ExternalInitializeCapabilities;
|
|
22
|
+
readonly appServer?: AppServerInitializeCapabilities;
|
|
23
|
+
}
|
|
24
|
+
export type CapabilityNegotiationResult = CapabilityNegotiationAccepted | CapabilityNegotiationRejected;
|
|
25
|
+
export interface CapabilityNegotiationAccepted {
|
|
26
|
+
readonly kind: "accepted";
|
|
27
|
+
readonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;
|
|
28
|
+
readonly capabilityFlags: readonly NegotiatedCapabilityFlag[];
|
|
29
|
+
readonly notificationOptOuts: readonly string[];
|
|
30
|
+
readonly error?: undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface CapabilityNegotiationRejected {
|
|
33
|
+
readonly kind: "rejected";
|
|
34
|
+
readonly error: AdapterJsonRpcError;
|
|
35
|
+
}
|
|
36
|
+
export declare class ExternalInitializeCapabilitiesError extends Error {
|
|
37
|
+
readonly adapterCode: "malformed-message" | "unsupported-protocol-version" | "unsupported-notification-opt-out";
|
|
38
|
+
constructor(message: string, adapterCode: "malformed-message" | "unsupported-protocol-version" | "unsupported-notification-opt-out");
|
|
39
|
+
}
|
|
40
|
+
export declare function parseExternalInitializeCapabilities(input: unknown): ExternalInitializeCapabilities;
|
|
41
|
+
export declare function negotiatePiCodexAppServerCapabilities(input: CapabilityNegotiationInput): CapabilityNegotiationResult;
|
|
42
|
+
//# sourceMappingURL=capability-negotiator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-negotiator.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/capability-negotiator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAG1E,MAAM,MAAM,wBAAwB,GACjC,iBAAiB,GACjB,sBAAsB,GACtB,kBAAkB,GAClB,UAAU,GACV,YAAY,GACZ,mBAAmB,GACnB,6BAA6B,GAC7B,wBAAwB,GACxB,iCAAiC,CAAC;AAErC,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,eAAe,EAAE,OAAO,oCAAoC,CAAC;IACtE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAClD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,CAAC;CACrD;AAED,MAAM,MAAM,2BAA2B,GAAG,6BAA6B,GAAG,6BAA6B,CAAC;AAExG,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,OAAO,oCAAoC,CAAC;IACtE,QAAQ,CAAC,eAAe,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC9D,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACpC;AAID,qBAAa,mCAAoC,SAAQ,KAAK;IAC7D,QAAQ,CAAC,WAAW,EAAE,mBAAmB,GAAG,8BAA8B,GAAG,kCAAkC,CAAC;IAEhH,YACC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,mBAAmB,GAAG,8BAA8B,GAAG,kCAAkC,EAKtG;CACD;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,OAAO,GAAG,8BAA8B,CA4BlG;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,0BAA0B,GAAG,2BAA2B,CAmBpH"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { createAdapterJsonRpcError } from "./error-mapper.js";
|
|
2
|
+
import { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from "./protocol-core.js";
|
|
3
|
+
import { PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES } from "./protocol-required-surfaces.js";
|
|
4
|
+
const notificationSurfaceNames = new Set(PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES);
|
|
5
|
+
export class ExternalInitializeCapabilitiesError extends Error {
|
|
6
|
+
constructor(message, adapterCode) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = "ExternalInitializeCapabilitiesError";
|
|
9
|
+
this.adapterCode = adapterCode;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function parseExternalInitializeCapabilities(input) {
|
|
13
|
+
if (!isRecord(input)) {
|
|
14
|
+
throw new ExternalInitializeCapabilitiesError("Initialize params must be an object.", "malformed-message");
|
|
15
|
+
}
|
|
16
|
+
const protocolVersion = input.protocolVersion;
|
|
17
|
+
if (protocolVersion !== PI_CODEX_APP_SERVER_PROTOCOL_VERSION) {
|
|
18
|
+
throw new ExternalInitializeCapabilitiesError(`Unsupported pi-codex-app-server protocol version: ${String(protocolVersion)}`, "unsupported-protocol-version");
|
|
19
|
+
}
|
|
20
|
+
const capabilities = input.capabilities;
|
|
21
|
+
if (!isRecord(capabilities)) {
|
|
22
|
+
throw new ExternalInitializeCapabilitiesError("Initialize capabilities must be an object.", "malformed-message");
|
|
23
|
+
}
|
|
24
|
+
const notificationOptOuts = parseNotificationOptOuts(capabilities.notificationOptOuts);
|
|
25
|
+
return {
|
|
26
|
+
protocolVersion,
|
|
27
|
+
semanticEvents: readRequiredBoolean(capabilities, "semanticEvents"),
|
|
28
|
+
opaqueNotifications: readRequiredBoolean(capabilities, "opaqueNotifications"),
|
|
29
|
+
opaqueCallbacks: readRequiredBoolean(capabilities, "opaqueCallbacks"),
|
|
30
|
+
realtime: readOptionalBoolean(capabilities, "realtime"),
|
|
31
|
+
filesystem: readOptionalBoolean(capabilities, "filesystem"),
|
|
32
|
+
appPluginConfig: readOptionalBoolean(capabilities, "appPluginConfig"),
|
|
33
|
+
notificationOptOuts,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function negotiatePiCodexAppServerCapabilities(input) {
|
|
37
|
+
const missingRequiredCapabilities = findMissingRequiredCapabilities(input.external);
|
|
38
|
+
if (missingRequiredCapabilities.length > 0) {
|
|
39
|
+
return {
|
|
40
|
+
kind: "rejected",
|
|
41
|
+
error: createAdapterJsonRpcError({
|
|
42
|
+
adapterCode: "incompatible-capabilities",
|
|
43
|
+
message: "External client is incompatible with pi-codex-app-server.",
|
|
44
|
+
details: missingRequiredCapabilities,
|
|
45
|
+
}),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
kind: "accepted",
|
|
50
|
+
protocolVersion: input.external.protocolVersion,
|
|
51
|
+
capabilityFlags: buildCapabilityFlags(input.external, input.appServer),
|
|
52
|
+
notificationOptOuts: mapNotificationOptOuts(input.external, input.appServer),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function findMissingRequiredCapabilities(external) {
|
|
56
|
+
const missing = [];
|
|
57
|
+
if (!external.opaqueNotifications) {
|
|
58
|
+
missing.push("opaqueNotifications is required so app-server notifications are never silently dropped");
|
|
59
|
+
}
|
|
60
|
+
if (!external.opaqueCallbacks) {
|
|
61
|
+
missing.push("opaqueCallbacks is required because app-server server requests are control flow");
|
|
62
|
+
}
|
|
63
|
+
return missing;
|
|
64
|
+
}
|
|
65
|
+
function buildCapabilityFlags(external, appServer) {
|
|
66
|
+
const flags = [];
|
|
67
|
+
if (external.semanticEvents)
|
|
68
|
+
flags.push("semantic-events");
|
|
69
|
+
if (external.opaqueNotifications)
|
|
70
|
+
flags.push("opaque-notifications");
|
|
71
|
+
if (external.opaqueCallbacks)
|
|
72
|
+
flags.push("opaque-callbacks");
|
|
73
|
+
if (external.realtime)
|
|
74
|
+
flags.push("realtime");
|
|
75
|
+
if (external.filesystem)
|
|
76
|
+
flags.push("filesystem");
|
|
77
|
+
if (external.appPluginConfig)
|
|
78
|
+
flags.push("app-plugin-config");
|
|
79
|
+
if (appServer?.experimentalApi)
|
|
80
|
+
flags.push("app-server-experimental-api");
|
|
81
|
+
if (appServer?.requestAttestation)
|
|
82
|
+
flags.push("app-server-attestation");
|
|
83
|
+
if (appServer?.mcpServerOpenaiFormElicitation)
|
|
84
|
+
flags.push("app-server-mcp-form-elicitation");
|
|
85
|
+
return flags;
|
|
86
|
+
}
|
|
87
|
+
function mapNotificationOptOuts(external, appServer) {
|
|
88
|
+
const appServerOptOuts = new Set(appServer?.optOutNotificationMethods ?? []);
|
|
89
|
+
if (appServerOptOuts.size === 0)
|
|
90
|
+
return [];
|
|
91
|
+
return external.notificationOptOuts.filter((method) => appServerOptOuts.has(method));
|
|
92
|
+
}
|
|
93
|
+
function parseNotificationOptOuts(value) {
|
|
94
|
+
if (value === undefined)
|
|
95
|
+
return [];
|
|
96
|
+
if (!Array.isArray(value)) {
|
|
97
|
+
throw new ExternalInitializeCapabilitiesError("notificationOptOuts must be an array.", "malformed-message");
|
|
98
|
+
}
|
|
99
|
+
const optOuts = [];
|
|
100
|
+
for (const method of value) {
|
|
101
|
+
if (typeof method !== "string") {
|
|
102
|
+
throw new ExternalInitializeCapabilitiesError("notificationOptOuts entries must be strings.", "malformed-message");
|
|
103
|
+
}
|
|
104
|
+
if (!notificationSurfaceNames.has(method)) {
|
|
105
|
+
throw new ExternalInitializeCapabilitiesError(`Unknown app-server notification opt-out: ${method}`, "unsupported-notification-opt-out");
|
|
106
|
+
}
|
|
107
|
+
optOuts.push(method);
|
|
108
|
+
}
|
|
109
|
+
return optOuts;
|
|
110
|
+
}
|
|
111
|
+
function readRequiredBoolean(input, key) {
|
|
112
|
+
const value = input[key];
|
|
113
|
+
if (typeof value !== "boolean") {
|
|
114
|
+
throw new ExternalInitializeCapabilitiesError(`${key} must be a boolean.`, "malformed-message");
|
|
115
|
+
}
|
|
116
|
+
return value;
|
|
117
|
+
}
|
|
118
|
+
function readOptionalBoolean(input, key) {
|
|
119
|
+
const value = input[key];
|
|
120
|
+
if (value === undefined)
|
|
121
|
+
return false;
|
|
122
|
+
if (typeof value !== "boolean") {
|
|
123
|
+
throw new ExternalInitializeCapabilitiesError(`${key} must be a boolean.`, "malformed-message");
|
|
124
|
+
}
|
|
125
|
+
return value;
|
|
126
|
+
}
|
|
127
|
+
function isRecord(value) {
|
|
128
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=capability-negotiator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-negotiator.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/capability-negotiator.ts"],"names":[],"mappings":"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","sourcesContent":["import { type AdapterJsonRpcError, createAdapterJsonRpcError } from \"./error-mapper.ts\";\nimport { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from \"./protocol-core.ts\";\nimport { PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES } from \"./protocol-required-surfaces.ts\";\n\nexport type NegotiatedCapabilityFlag =\n\t| \"semantic-events\"\n\t| \"opaque-notifications\"\n\t| \"opaque-callbacks\"\n\t| \"realtime\"\n\t| \"filesystem\"\n\t| \"app-plugin-config\"\n\t| \"app-server-experimental-api\"\n\t| \"app-server-attestation\"\n\t| \"app-server-mcp-form-elicitation\";\n\nexport interface ExternalInitializeCapabilities {\n\treadonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;\n\treadonly semanticEvents: boolean;\n\treadonly opaqueNotifications: boolean;\n\treadonly opaqueCallbacks: boolean;\n\treadonly realtime: boolean;\n\treadonly filesystem: boolean;\n\treadonly appPluginConfig: boolean;\n\treadonly notificationOptOuts: readonly string[];\n}\n\nexport interface AppServerInitializeCapabilities {\n\treadonly experimentalApi?: boolean;\n\treadonly requestAttestation?: boolean;\n\treadonly mcpServerOpenaiFormElicitation?: boolean;\n\treadonly optOutNotificationMethods?: readonly string[] | null;\n}\n\nexport interface CapabilityNegotiationInput {\n\treadonly external: ExternalInitializeCapabilities;\n\treadonly appServer?: AppServerInitializeCapabilities;\n}\n\nexport type CapabilityNegotiationResult = CapabilityNegotiationAccepted | CapabilityNegotiationRejected;\n\nexport interface CapabilityNegotiationAccepted {\n\treadonly kind: \"accepted\";\n\treadonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;\n\treadonly capabilityFlags: readonly NegotiatedCapabilityFlag[];\n\treadonly notificationOptOuts: readonly string[];\n\treadonly error?: undefined;\n}\n\nexport interface CapabilityNegotiationRejected {\n\treadonly kind: \"rejected\";\n\treadonly error: AdapterJsonRpcError;\n}\n\nconst notificationSurfaceNames = new Set<string>(PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES);\n\nexport class ExternalInitializeCapabilitiesError extends Error {\n\treadonly adapterCode: \"malformed-message\" | \"unsupported-protocol-version\" | \"unsupported-notification-opt-out\";\n\n\tconstructor(\n\t\tmessage: string,\n\t\tadapterCode: \"malformed-message\" | \"unsupported-protocol-version\" | \"unsupported-notification-opt-out\",\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"ExternalInitializeCapabilitiesError\";\n\t\tthis.adapterCode = adapterCode;\n\t}\n}\n\nexport function parseExternalInitializeCapabilities(input: unknown): ExternalInitializeCapabilities {\n\tif (!isRecord(input)) {\n\t\tthrow new ExternalInitializeCapabilitiesError(\"Initialize params must be an object.\", \"malformed-message\");\n\t}\n\tconst protocolVersion = input.protocolVersion;\n\tif (protocolVersion !== PI_CODEX_APP_SERVER_PROTOCOL_VERSION) {\n\t\tthrow new ExternalInitializeCapabilitiesError(\n\t\t\t`Unsupported pi-codex-app-server protocol version: ${String(protocolVersion)}`,\n\t\t\t\"unsupported-protocol-version\",\n\t\t);\n\t}\n\n\tconst capabilities = input.capabilities;\n\tif (!isRecord(capabilities)) {\n\t\tthrow new ExternalInitializeCapabilitiesError(\"Initialize capabilities must be an object.\", \"malformed-message\");\n\t}\n\n\tconst notificationOptOuts = parseNotificationOptOuts(capabilities.notificationOptOuts);\n\treturn {\n\t\tprotocolVersion,\n\t\tsemanticEvents: readRequiredBoolean(capabilities, \"semanticEvents\"),\n\t\topaqueNotifications: readRequiredBoolean(capabilities, \"opaqueNotifications\"),\n\t\topaqueCallbacks: readRequiredBoolean(capabilities, \"opaqueCallbacks\"),\n\t\trealtime: readOptionalBoolean(capabilities, \"realtime\"),\n\t\tfilesystem: readOptionalBoolean(capabilities, \"filesystem\"),\n\t\tappPluginConfig: readOptionalBoolean(capabilities, \"appPluginConfig\"),\n\t\tnotificationOptOuts,\n\t};\n}\n\nexport function negotiatePiCodexAppServerCapabilities(input: CapabilityNegotiationInput): CapabilityNegotiationResult {\n\tconst missingRequiredCapabilities = findMissingRequiredCapabilities(input.external);\n\tif (missingRequiredCapabilities.length > 0) {\n\t\treturn {\n\t\t\tkind: \"rejected\",\n\t\t\terror: createAdapterJsonRpcError({\n\t\t\t\tadapterCode: \"incompatible-capabilities\",\n\t\t\t\tmessage: \"External client is incompatible with pi-codex-app-server.\",\n\t\t\t\tdetails: missingRequiredCapabilities,\n\t\t\t}),\n\t\t};\n\t}\n\n\treturn {\n\t\tkind: \"accepted\",\n\t\tprotocolVersion: input.external.protocolVersion,\n\t\tcapabilityFlags: buildCapabilityFlags(input.external, input.appServer),\n\t\tnotificationOptOuts: mapNotificationOptOuts(input.external, input.appServer),\n\t};\n}\n\nfunction findMissingRequiredCapabilities(external: ExternalInitializeCapabilities): readonly string[] {\n\tconst missing: string[] = [];\n\tif (!external.opaqueNotifications) {\n\t\tmissing.push(\"opaqueNotifications is required so app-server notifications are never silently dropped\");\n\t}\n\tif (!external.opaqueCallbacks) {\n\t\tmissing.push(\"opaqueCallbacks is required because app-server server requests are control flow\");\n\t}\n\treturn missing;\n}\n\nfunction buildCapabilityFlags(\n\texternal: ExternalInitializeCapabilities,\n\tappServer: AppServerInitializeCapabilities | undefined,\n): readonly NegotiatedCapabilityFlag[] {\n\tconst flags: NegotiatedCapabilityFlag[] = [];\n\tif (external.semanticEvents) flags.push(\"semantic-events\");\n\tif (external.opaqueNotifications) flags.push(\"opaque-notifications\");\n\tif (external.opaqueCallbacks) flags.push(\"opaque-callbacks\");\n\tif (external.realtime) flags.push(\"realtime\");\n\tif (external.filesystem) flags.push(\"filesystem\");\n\tif (external.appPluginConfig) flags.push(\"app-plugin-config\");\n\tif (appServer?.experimentalApi) flags.push(\"app-server-experimental-api\");\n\tif (appServer?.requestAttestation) flags.push(\"app-server-attestation\");\n\tif (appServer?.mcpServerOpenaiFormElicitation) flags.push(\"app-server-mcp-form-elicitation\");\n\treturn flags;\n}\n\nfunction mapNotificationOptOuts(\n\texternal: ExternalInitializeCapabilities,\n\tappServer: AppServerInitializeCapabilities | undefined,\n): readonly string[] {\n\tconst appServerOptOuts = new Set<string>(appServer?.optOutNotificationMethods ?? []);\n\tif (appServerOptOuts.size === 0) return [];\n\treturn external.notificationOptOuts.filter((method) => appServerOptOuts.has(method));\n}\n\nfunction parseNotificationOptOuts(value: unknown): readonly string[] {\n\tif (value === undefined) return [];\n\tif (!Array.isArray(value)) {\n\t\tthrow new ExternalInitializeCapabilitiesError(\"notificationOptOuts must be an array.\", \"malformed-message\");\n\t}\n\tconst optOuts: string[] = [];\n\tfor (const method of value) {\n\t\tif (typeof method !== \"string\") {\n\t\t\tthrow new ExternalInitializeCapabilitiesError(\n\t\t\t\t\"notificationOptOuts entries must be strings.\",\n\t\t\t\t\"malformed-message\",\n\t\t\t);\n\t\t}\n\t\tif (!notificationSurfaceNames.has(method)) {\n\t\t\tthrow new ExternalInitializeCapabilitiesError(\n\t\t\t\t`Unknown app-server notification opt-out: ${method}`,\n\t\t\t\t\"unsupported-notification-opt-out\",\n\t\t\t);\n\t\t}\n\t\toptOuts.push(method);\n\t}\n\treturn optOuts;\n}\n\nfunction readRequiredBoolean(input: Readonly<Record<string, unknown>>, key: string): boolean {\n\tconst value = input[key];\n\tif (typeof value !== \"boolean\") {\n\t\tthrow new ExternalInitializeCapabilitiesError(`${key} must be a boolean.`, \"malformed-message\");\n\t}\n\treturn value;\n}\n\nfunction readOptionalBoolean(input: Readonly<Record<string, unknown>>, key: string): boolean {\n\tconst value = input[key];\n\tif (value === undefined) return false;\n\tif (typeof value !== \"boolean\") {\n\t\tthrow new ExternalInitializeCapabilitiesError(`${key} must be a boolean.`, \"malformed-message\");\n\t}\n\treturn value;\n}\n\nfunction isRecord(value: unknown): value is Readonly<Record<string, unknown>> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const ADAPTER_ERROR_SOURCE = "pi-codex-app-server";
|
|
2
|
+
export declare const ADAPTER_JSON_RPC_ERROR_CODE = -32080;
|
|
3
|
+
export type AdapterErrorCode = "duplicate-routing-id" | "invalid-callback-state" | "incompatible-capabilities" | "invalid-session-state" | "malformed-message" | "unsupported-routing-method" | "unsupported-protocol-version" | "unsupported-notification-opt-out";
|
|
4
|
+
export interface AdapterJsonRpcError {
|
|
5
|
+
readonly code: typeof ADAPTER_JSON_RPC_ERROR_CODE;
|
|
6
|
+
readonly message: string;
|
|
7
|
+
readonly data: {
|
|
8
|
+
readonly source: typeof ADAPTER_ERROR_SOURCE;
|
|
9
|
+
readonly adapterCode: AdapterErrorCode;
|
|
10
|
+
readonly details: readonly string[];
|
|
11
|
+
readonly retryable: boolean;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface AppServerJsonRpcError {
|
|
15
|
+
readonly code: number;
|
|
16
|
+
readonly message: string;
|
|
17
|
+
readonly data?: unknown;
|
|
18
|
+
}
|
|
19
|
+
export interface AdapterJsonRpcErrorInput {
|
|
20
|
+
readonly adapterCode: AdapterErrorCode;
|
|
21
|
+
readonly message: string;
|
|
22
|
+
readonly details?: readonly string[];
|
|
23
|
+
readonly retryable?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function createAdapterJsonRpcError(input: AdapterJsonRpcErrorInput): AdapterJsonRpcError;
|
|
26
|
+
export declare function preserveAppServerJsonRpcError(error: AppServerJsonRpcError): AppServerJsonRpcError;
|
|
27
|
+
//# sourceMappingURL=error-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-mapper.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/error-mapper.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAC1D,eAAO,MAAM,2BAA2B,SAAS,CAAC;AAElD,MAAM,MAAM,gBAAgB,GACzB,sBAAsB,GACtB,wBAAwB,GACxB,2BAA2B,GAC3B,uBAAuB,GACvB,mBAAmB,GACnB,4BAA4B,GAC5B,8BAA8B,GAC9B,kCAAkC,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,2BAA2B,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE,OAAO,oBAAoB,CAAC;QAC7C,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;KAC5B,CAAC;CACF;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,CAW9F;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAEjG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const ADAPTER_ERROR_SOURCE = "pi-codex-app-server";
|
|
2
|
+
export const ADAPTER_JSON_RPC_ERROR_CODE = -32080;
|
|
3
|
+
export function createAdapterJsonRpcError(input) {
|
|
4
|
+
return {
|
|
5
|
+
code: ADAPTER_JSON_RPC_ERROR_CODE,
|
|
6
|
+
message: input.message,
|
|
7
|
+
data: {
|
|
8
|
+
source: ADAPTER_ERROR_SOURCE,
|
|
9
|
+
adapterCode: input.adapterCode,
|
|
10
|
+
details: input.details ?? [],
|
|
11
|
+
retryable: input.retryable ?? false,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function preserveAppServerJsonRpcError(error) {
|
|
16
|
+
return error;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=error-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-mapper.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/error-mapper.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,CAAC;AAoClD,MAAM,UAAU,yBAAyB,CAAC,KAA+B;IACxE,OAAO;QACN,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE;YACL,MAAM,EAAE,oBAAoB;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;SACnC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAA4B;IACzE,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["export const ADAPTER_ERROR_SOURCE = \"pi-codex-app-server\";\nexport const ADAPTER_JSON_RPC_ERROR_CODE = -32080;\n\nexport type AdapterErrorCode =\n\t| \"duplicate-routing-id\"\n\t| \"invalid-callback-state\"\n\t| \"incompatible-capabilities\"\n\t| \"invalid-session-state\"\n\t| \"malformed-message\"\n\t| \"unsupported-routing-method\"\n\t| \"unsupported-protocol-version\"\n\t| \"unsupported-notification-opt-out\";\n\nexport interface AdapterJsonRpcError {\n\treadonly code: typeof ADAPTER_JSON_RPC_ERROR_CODE;\n\treadonly message: string;\n\treadonly data: {\n\t\treadonly source: typeof ADAPTER_ERROR_SOURCE;\n\t\treadonly adapterCode: AdapterErrorCode;\n\t\treadonly details: readonly string[];\n\t\treadonly retryable: boolean;\n\t};\n}\n\nexport interface AppServerJsonRpcError {\n\treadonly code: number;\n\treadonly message: string;\n\treadonly data?: unknown;\n}\n\nexport interface AdapterJsonRpcErrorInput {\n\treadonly adapterCode: AdapterErrorCode;\n\treadonly message: string;\n\treadonly details?: readonly string[];\n\treadonly retryable?: boolean;\n}\n\nexport function createAdapterJsonRpcError(input: AdapterJsonRpcErrorInput): AdapterJsonRpcError {\n\treturn {\n\t\tcode: ADAPTER_JSON_RPC_ERROR_CODE,\n\t\tmessage: input.message,\n\t\tdata: {\n\t\t\tsource: ADAPTER_ERROR_SOURCE,\n\t\t\tadapterCode: input.adapterCode,\n\t\t\tdetails: input.details ?? [],\n\t\t\tretryable: input.retryable ?? false,\n\t\t},\n\t};\n}\n\nexport function preserveAppServerJsonRpcError(error: AppServerJsonRpcError): AppServerJsonRpcError {\n\treturn error;\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ExtensionAPI, ExtensionContext, SessionShutdownEvent, SessionStartEvent } from "../../types.ts";
|
|
2
|
+
import { type PiCodexAppServerRuntimeController } from "./transport-runtime.ts";
|
|
3
|
+
export declare const PI_CODEX_APP_SERVER_COMMAND = "pi-codex-app-server";
|
|
4
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_ENABLED = "pi-codex-app-server";
|
|
5
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_MODE = "pi-codex-app-server-mode";
|
|
6
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND = "pi-codex-app-server-command";
|
|
7
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS = "pi-codex-app-server-args";
|
|
8
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_URL = "pi-codex-app-server-url";
|
|
9
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET = "pi-codex-app-server-unix-socket";
|
|
10
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS = "pi-codex-app-server-timeout-ms";
|
|
11
|
+
interface RuntimeExtensionContext {
|
|
12
|
+
readonly hasUI: boolean;
|
|
13
|
+
readonly ui: Pick<ExtensionContext["ui"], "notify">;
|
|
14
|
+
}
|
|
15
|
+
type RuntimeLifecycleHandler<E> = (event: E, ctx: RuntimeExtensionContext) => Promise<void> | void;
|
|
16
|
+
export interface PiCodexAppServerExtensionApi {
|
|
17
|
+
readonly registerCommand: ExtensionAPI["registerCommand"];
|
|
18
|
+
readonly registerFlag: ExtensionAPI["registerFlag"];
|
|
19
|
+
readonly getFlag: ExtensionAPI["getFlag"];
|
|
20
|
+
on(event: "session_start", handler: RuntimeLifecycleHandler<SessionStartEvent>): void;
|
|
21
|
+
on(event: "session_shutdown", handler: RuntimeLifecycleHandler<SessionShutdownEvent>): void;
|
|
22
|
+
}
|
|
23
|
+
export declare function registerPiCodexAppServerExtension(pi: PiCodexAppServerExtensionApi, createRuntime?: () => PiCodexAppServerRuntimeController): void;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=extension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE9G,OAAO,EAEN,KAAK,iCAAiC,EAGtC,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AACjE,eAAO,MAAM,gCAAgC,wBAAwB,CAAC;AACtE,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AACxE,eAAO,MAAM,2CAA2C,gCAAgC,CAAC;AACzF,eAAO,MAAM,wCAAwC,6BAA6B,CAAC;AACnF,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,oCAAoC,oCAAoC,CAAC;AACtF,eAAO,MAAM,mCAAmC,mCAAmC,CAAC;AAWpF,UAAU,uBAAuB;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;CACpD;AACD,KAAK,uBAAuB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnG,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IACtF,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;CAC5F;AAED,wBAAgB,iCAAiC,CAChD,EAAE,EAAE,4BAA4B,EAChC,aAAa,GAAE,MAAM,iCAAiE,GACpF,IAAI,CAoDN"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from "./protocol-core.js";
|
|
2
|
+
import { createPiCodexAppServerRuntime, } from "./transport-runtime.js";
|
|
3
|
+
export const PI_CODEX_APP_SERVER_COMMAND = "pi-codex-app-server";
|
|
4
|
+
export const PI_CODEX_APP_SERVER_FLAG_ENABLED = "pi-codex-app-server";
|
|
5
|
+
export const PI_CODEX_APP_SERVER_FLAG_MODE = "pi-codex-app-server-mode";
|
|
6
|
+
export const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND = "pi-codex-app-server-command";
|
|
7
|
+
export const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS = "pi-codex-app-server-args";
|
|
8
|
+
export const PI_CODEX_APP_SERVER_FLAG_URL = "pi-codex-app-server-url";
|
|
9
|
+
export const PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET = "pi-codex-app-server-unix-socket";
|
|
10
|
+
export const PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS = "pi-codex-app-server-timeout-ms";
|
|
11
|
+
const DEFAULT_TRANSPORT_MODE = "stdio";
|
|
12
|
+
const DEFAULT_APP_SERVER_COMMAND = "codex";
|
|
13
|
+
const DEFAULT_APP_SERVER_ARGS = "app-server";
|
|
14
|
+
const DEFAULT_TIMEOUT_MS = "5000";
|
|
15
|
+
const RUNTIME_NOTICE_PREFIX = [
|
|
16
|
+
"pi-codex-app-server PR-004 runtime",
|
|
17
|
+
`Protocol contract: ${PI_CODEX_APP_SERVER_PROTOCOL_VERSION}`,
|
|
18
|
+
].join("\n");
|
|
19
|
+
export function registerPiCodexAppServerExtension(pi, createRuntime = createPiCodexAppServerRuntime) {
|
|
20
|
+
const runtime = createRuntime();
|
|
21
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_ENABLED, {
|
|
22
|
+
type: "boolean",
|
|
23
|
+
default: false,
|
|
24
|
+
description: "Enable pi-codex-app-server runtime transport during session lifecycle.",
|
|
25
|
+
});
|
|
26
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_MODE, {
|
|
27
|
+
type: "string",
|
|
28
|
+
default: DEFAULT_TRANSPORT_MODE,
|
|
29
|
+
description: "Select the pi-codex-app-server transport mode: stdio, websocket, or unix.",
|
|
30
|
+
});
|
|
31
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND, {
|
|
32
|
+
type: "string",
|
|
33
|
+
default: DEFAULT_APP_SERVER_COMMAND,
|
|
34
|
+
description: "Codex app-server command for stdio or unix proxy transport.",
|
|
35
|
+
});
|
|
36
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS, {
|
|
37
|
+
type: "string",
|
|
38
|
+
default: DEFAULT_APP_SERVER_ARGS,
|
|
39
|
+
description: "Codex app-server command arguments for stdio transport.",
|
|
40
|
+
});
|
|
41
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_URL, {
|
|
42
|
+
type: "string",
|
|
43
|
+
default: "",
|
|
44
|
+
description: "Remote websocket URL for websocket transport.",
|
|
45
|
+
});
|
|
46
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET, {
|
|
47
|
+
type: "string",
|
|
48
|
+
default: "",
|
|
49
|
+
description: "Unix socket path for app-server proxy transport.",
|
|
50
|
+
});
|
|
51
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS, {
|
|
52
|
+
type: "string",
|
|
53
|
+
default: DEFAULT_TIMEOUT_MS,
|
|
54
|
+
description: "Runtime transport setup timeout in milliseconds.",
|
|
55
|
+
});
|
|
56
|
+
pi.registerCommand(PI_CODEX_APP_SERVER_COMMAND, {
|
|
57
|
+
description: "Inspect the Codex app-server adapter runtime status",
|
|
58
|
+
handler: async (_args, ctx) => {
|
|
59
|
+
notifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\nStatus: ${runtime.getStatus().kind}`);
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
pi.on("session_start", async (_event, ctx) => {
|
|
63
|
+
const flags = readRuntimeFlags(pi);
|
|
64
|
+
const status = await runtime.start(flags);
|
|
65
|
+
notifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\nStatus: ${status.kind}`);
|
|
66
|
+
});
|
|
67
|
+
pi.on("session_shutdown", async (_event, ctx) => {
|
|
68
|
+
const status = await runtime.stop();
|
|
69
|
+
notifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\nStatus: ${status.kind}`);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function notifyIfVisible(ctx, message) {
|
|
73
|
+
if (!ctx.hasUI)
|
|
74
|
+
return;
|
|
75
|
+
ctx.ui.notify(message, "info");
|
|
76
|
+
}
|
|
77
|
+
function readRuntimeFlags(pi) {
|
|
78
|
+
return {
|
|
79
|
+
enabled: pi.getFlag(PI_CODEX_APP_SERVER_FLAG_ENABLED) === true,
|
|
80
|
+
mode: readTransportMode(pi),
|
|
81
|
+
appServerCommand: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND, DEFAULT_APP_SERVER_COMMAND),
|
|
82
|
+
appServerArgs: readArgsFlag(pi, PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS),
|
|
83
|
+
appServerUrl: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_URL, ""),
|
|
84
|
+
appServerSocketPath: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET, ""),
|
|
85
|
+
connectTimeoutMs: readPositiveIntegerFlag(pi, PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS, Number(DEFAULT_TIMEOUT_MS)),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function readTransportMode(pi) {
|
|
89
|
+
const mode = pi.getFlag(PI_CODEX_APP_SERVER_FLAG_MODE);
|
|
90
|
+
if (mode === "websocket" || mode === "unix")
|
|
91
|
+
return mode;
|
|
92
|
+
return "stdio";
|
|
93
|
+
}
|
|
94
|
+
function readStringFlag(pi, name, fallback) {
|
|
95
|
+
const value = pi.getFlag(name);
|
|
96
|
+
return typeof value === "string" ? value : fallback;
|
|
97
|
+
}
|
|
98
|
+
function readArgsFlag(pi, name) {
|
|
99
|
+
return readStringFlag(pi, name, DEFAULT_APP_SERVER_ARGS)
|
|
100
|
+
.split(" ")
|
|
101
|
+
.map((part) => part.trim())
|
|
102
|
+
.filter((part) => part.length > 0);
|
|
103
|
+
}
|
|
104
|
+
function readPositiveIntegerFlag(pi, name, fallback) {
|
|
105
|
+
const value = Number(readStringFlag(pi, name, String(fallback)));
|
|
106
|
+
if (Number.isInteger(value) && value > 0)
|
|
107
|
+
return value;
|
|
108
|
+
return fallback;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/extension.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExtensionAPI, ExtensionContext, SessionShutdownEvent, SessionStartEvent } from \"../../types.ts\";\nimport { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from \"./protocol-core.ts\";\nimport {\n\tcreatePiCodexAppServerRuntime,\n\ttype PiCodexAppServerRuntimeController,\n\ttype PiCodexAppServerRuntimeFlags,\n\ttype PiCodexAppServerTransportMode,\n} from \"./transport-runtime.ts\";\n\nexport const PI_CODEX_APP_SERVER_COMMAND = \"pi-codex-app-server\";\nexport const PI_CODEX_APP_SERVER_FLAG_ENABLED = \"pi-codex-app-server\";\nexport const PI_CODEX_APP_SERVER_FLAG_MODE = \"pi-codex-app-server-mode\";\nexport const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND = \"pi-codex-app-server-command\";\nexport const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS = \"pi-codex-app-server-args\";\nexport const PI_CODEX_APP_SERVER_FLAG_URL = \"pi-codex-app-server-url\";\nexport const PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET = \"pi-codex-app-server-unix-socket\";\nexport const PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS = \"pi-codex-app-server-timeout-ms\";\n\nconst DEFAULT_TRANSPORT_MODE = \"stdio\";\nconst DEFAULT_APP_SERVER_COMMAND = \"codex\";\nconst DEFAULT_APP_SERVER_ARGS = \"app-server\";\nconst DEFAULT_TIMEOUT_MS = \"5000\";\nconst RUNTIME_NOTICE_PREFIX = [\n\t\"pi-codex-app-server PR-004 runtime\",\n\t`Protocol contract: ${PI_CODEX_APP_SERVER_PROTOCOL_VERSION}`,\n].join(\"\\n\");\n\ninterface RuntimeExtensionContext {\n\treadonly hasUI: boolean;\n\treadonly ui: Pick<ExtensionContext[\"ui\"], \"notify\">;\n}\ntype RuntimeLifecycleHandler<E> = (event: E, ctx: RuntimeExtensionContext) => Promise<void> | void;\n\nexport interface PiCodexAppServerExtensionApi {\n\treadonly registerCommand: ExtensionAPI[\"registerCommand\"];\n\treadonly registerFlag: ExtensionAPI[\"registerFlag\"];\n\treadonly getFlag: ExtensionAPI[\"getFlag\"];\n\ton(event: \"session_start\", handler: RuntimeLifecycleHandler<SessionStartEvent>): void;\n\ton(event: \"session_shutdown\", handler: RuntimeLifecycleHandler<SessionShutdownEvent>): void;\n}\n\nexport function registerPiCodexAppServerExtension(\n\tpi: PiCodexAppServerExtensionApi,\n\tcreateRuntime: () => PiCodexAppServerRuntimeController = createPiCodexAppServerRuntime,\n): void {\n\tconst runtime = createRuntime();\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_ENABLED, {\n\t\ttype: \"boolean\",\n\t\tdefault: false,\n\t\tdescription: \"Enable pi-codex-app-server runtime transport during session lifecycle.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_MODE, {\n\t\ttype: \"string\",\n\t\tdefault: DEFAULT_TRANSPORT_MODE,\n\t\tdescription: \"Select the pi-codex-app-server transport mode: stdio, websocket, or unix.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND, {\n\t\ttype: \"string\",\n\t\tdefault: DEFAULT_APP_SERVER_COMMAND,\n\t\tdescription: \"Codex app-server command for stdio or unix proxy transport.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS, {\n\t\ttype: \"string\",\n\t\tdefault: DEFAULT_APP_SERVER_ARGS,\n\t\tdescription: \"Codex app-server command arguments for stdio transport.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_URL, {\n\t\ttype: \"string\",\n\t\tdefault: \"\",\n\t\tdescription: \"Remote websocket URL for websocket transport.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET, {\n\t\ttype: \"string\",\n\t\tdefault: \"\",\n\t\tdescription: \"Unix socket path for app-server proxy transport.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS, {\n\t\ttype: \"string\",\n\t\tdefault: DEFAULT_TIMEOUT_MS,\n\t\tdescription: \"Runtime transport setup timeout in milliseconds.\",\n\t});\n\tpi.registerCommand(PI_CODEX_APP_SERVER_COMMAND, {\n\t\tdescription: \"Inspect the Codex app-server adapter runtime status\",\n\t\thandler: async (_args, ctx) => {\n\t\t\tnotifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\\nStatus: ${runtime.getStatus().kind}`);\n\t\t},\n\t});\n\tpi.on(\"session_start\", async (_event, ctx) => {\n\t\tconst flags = readRuntimeFlags(pi);\n\t\tconst status = await runtime.start(flags);\n\t\tnotifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\\nStatus: ${status.kind}`);\n\t});\n\tpi.on(\"session_shutdown\", async (_event, ctx) => {\n\t\tconst status = await runtime.stop();\n\t\tnotifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\\nStatus: ${status.kind}`);\n\t});\n}\n\nfunction notifyIfVisible(ctx: RuntimeExtensionContext, message: string): void {\n\tif (!ctx.hasUI) return;\n\tctx.ui.notify(message, \"info\");\n}\n\nfunction readRuntimeFlags(pi: PiCodexAppServerExtensionApi): PiCodexAppServerRuntimeFlags {\n\treturn {\n\t\tenabled: pi.getFlag(PI_CODEX_APP_SERVER_FLAG_ENABLED) === true,\n\t\tmode: readTransportMode(pi),\n\t\tappServerCommand: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND, DEFAULT_APP_SERVER_COMMAND),\n\t\tappServerArgs: readArgsFlag(pi, PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS),\n\t\tappServerUrl: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_URL, \"\"),\n\t\tappServerSocketPath: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET, \"\"),\n\t\tconnectTimeoutMs: readPositiveIntegerFlag(pi, PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS, Number(DEFAULT_TIMEOUT_MS)),\n\t};\n}\n\nfunction readTransportMode(pi: PiCodexAppServerExtensionApi): PiCodexAppServerTransportMode {\n\tconst mode = pi.getFlag(PI_CODEX_APP_SERVER_FLAG_MODE);\n\tif (mode === \"websocket\" || mode === \"unix\") return mode;\n\treturn \"stdio\";\n}\n\nfunction readStringFlag(pi: PiCodexAppServerExtensionApi, name: string, fallback: string): string {\n\tconst value = pi.getFlag(name);\n\treturn typeof value === \"string\" ? value : fallback;\n}\n\nfunction readArgsFlag(pi: PiCodexAppServerExtensionApi, name: string): readonly string[] {\n\treturn readStringFlag(pi, name, DEFAULT_APP_SERVER_ARGS)\n\t\t.split(\" \")\n\t\t.map((part) => part.trim())\n\t\t.filter((part) => part.length > 0);\n}\n\nfunction readPositiveIntegerFlag(pi: PiCodexAppServerExtensionApi, name: string, fallback: number): number {\n\tconst value = Number(readStringFlag(pi, name, String(fallback)));\n\tif (Number.isInteger(value) && value > 0) return value;\n\treturn fallback;\n}\n"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type AdapterJsonRpcError } from "./error-mapper.ts";
|
|
2
|
+
export interface RoutedRequest {
|
|
3
|
+
readonly externalRequestId: string;
|
|
4
|
+
readonly appMethod: string;
|
|
5
|
+
readonly startedAtMs: number;
|
|
6
|
+
}
|
|
7
|
+
export interface RoutedTurn {
|
|
8
|
+
readonly appTurnId: string;
|
|
9
|
+
readonly appThreadId: string;
|
|
10
|
+
readonly externalTurnId?: string;
|
|
11
|
+
readonly externalMessageId?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface RoutedItem {
|
|
14
|
+
readonly appItemId: string;
|
|
15
|
+
readonly appTurnId: string;
|
|
16
|
+
readonly appThreadId: string;
|
|
17
|
+
readonly externalItemId?: string;
|
|
18
|
+
readonly itemKind: string;
|
|
19
|
+
}
|
|
20
|
+
export interface RoutedServerRequest {
|
|
21
|
+
readonly appRequestId: string;
|
|
22
|
+
readonly externalCallbackId: string;
|
|
23
|
+
readonly appThreadId?: string;
|
|
24
|
+
readonly appTurnId?: string;
|
|
25
|
+
readonly appItemId?: string;
|
|
26
|
+
readonly method: string;
|
|
27
|
+
}
|
|
28
|
+
export interface RegistrationResult {
|
|
29
|
+
readonly kind: "registered" | "resolved";
|
|
30
|
+
}
|
|
31
|
+
export type IdMapperResult = RegistrationResult | {
|
|
32
|
+
readonly kind: "rejected";
|
|
33
|
+
readonly error: AdapterJsonRpcError;
|
|
34
|
+
};
|
|
35
|
+
export interface IdMapper {
|
|
36
|
+
registerRequest(input: RoutedRequest): IdMapperResult;
|
|
37
|
+
resolveRequest(externalRequestId: string): IdMapperResult;
|
|
38
|
+
getRequest(externalRequestId: string): RoutedRequest | undefined;
|
|
39
|
+
registerTurn(input: RoutedTurn): IdMapperResult;
|
|
40
|
+
getTurn(appTurnId: string): RoutedTurn | undefined;
|
|
41
|
+
registerItem(input: RoutedItem): IdMapperResult;
|
|
42
|
+
getItem(appItemId: string): RoutedItem | undefined;
|
|
43
|
+
registerServerRequest(input: RoutedServerRequest): IdMapperResult;
|
|
44
|
+
resolveServerRequest(appRequestId: string): IdMapperResult;
|
|
45
|
+
getServerRequest(appRequestId: string): RoutedServerRequest | undefined;
|
|
46
|
+
}
|
|
47
|
+
export declare function createIdMapper(nowMs?: () => number): IdMapper;
|
|
48
|
+
//# sourceMappingURL=id-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-mapper.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/id-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,mBAAmB,CAAC;AAExF,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC;AAED,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAErH,MAAM,WAAW,QAAQ;IACxB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAAC;IACtD,cAAc,CAAC,iBAAiB,EAAE,MAAM,GAAG,cAAc,CAAC;IAC1D,UAAU,CAAC,iBAAiB,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACjE,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAAC;IAChD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACnD,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAAC;IAChD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACnD,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAAC;IAClE,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;IAC3D,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;CACxE;AAED,wBAAgB,cAAc,CAAC,KAAK,GAAE,MAAM,MAAiB,GAAG,QAAQ,CAEvE"}
|