@code-yeongyu/senpi 2026.6.21 → 2026.6.30
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 +151 -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 +4 -3
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +34 -26
- 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/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 +19 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.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 +5 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +14 -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/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.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +13 -11
- 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/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.js +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +2 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +64 -48
- 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/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 +456 -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/security.md +4 -0
- package/docs/settings.md +63 -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 +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/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 +231 -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 +895 -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 +436 -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 +478 -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 +54 -43
- 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 +1094 -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 +657 -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} +5 -15
- 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 +45 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +45 -0
- 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 +2343 -399
- 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 +1735 -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 +1692 -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 +424 -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 +405 -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 +3210 -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 +3169 -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/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":"AAAA,OAAO,EAA4B,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,0CAA0C,EAAE,MAAM,iCAAiC,CAAC;AAmD7F,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAS,0CAA0C,CAAC,CAAC;AAE7F,MAAM,OAAO,mCAAoC,SAAQ,KAAK;IAG7D,YACC,OAAe,EACf,WAAsG;QAEtG,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qCAAqC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;CACD;AAED,MAAM,UAAU,mCAAmC,CAAC,KAAc;IACjE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,mCAAmC,CAAC,sCAAsC,EAAE,mBAAmB,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;IAC9C,IAAI,eAAe,KAAK,oCAAoC,EAAE,CAAC;QAC9D,MAAM,IAAI,mCAAmC,CAC5C,qDAAqD,MAAM,CAAC,eAAe,CAAC,EAAE,EAC9E,8BAA8B,CAC9B,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACxC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,mCAAmC,CAAC,4CAA4C,EAAE,mBAAmB,CAAC,CAAC;IAClH,CAAC;IAED,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACvF,OAAO;QACN,eAAe;QACf,cAAc,EAAE,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC;QACnE,mBAAmB,EAAE,mBAAmB,CAAC,YAAY,EAAE,qBAAqB,CAAC;QAC7E,eAAe,EAAE,mBAAmB,CAAC,YAAY,EAAE,iBAAiB,CAAC;QACrE,QAAQ,EAAE,mBAAmB,CAAC,YAAY,EAAE,UAAU,CAAC;QACvD,UAAU,EAAE,mBAAmB,CAAC,YAAY,EAAE,YAAY,CAAC;QAC3D,eAAe,EAAE,mBAAmB,CAAC,YAAY,EAAE,iBAAiB,CAAC;QACrE,mBAAmB;KACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,KAAiC;IACtF,MAAM,2BAA2B,GAAG,+BAA+B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpF,IAAI,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO;YACN,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,yBAAyB,CAAC;gBAChC,WAAW,EAAE,2BAA2B;gBACxC,OAAO,EAAE,2DAA2D;gBACpE,OAAO,EAAE,2BAA2B;aACpC,CAAC;SACF,CAAC;IACH,CAAC;IAED,OAAO;QACN,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,eAAe;QAC/C,eAAe,EAAE,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;QACtE,mBAAmB,EAAE,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;KAC5E,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAwC;IAChF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAC5B,QAAwC,EACxC,SAAsD;IAEtD,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,IAAI,QAAQ,CAAC,cAAc;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,mBAAmB;QAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACrE,IAAI,QAAQ,CAAC,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC7D,IAAI,QAAQ,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9D,IAAI,SAAS,EAAE,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1E,IAAI,SAAS,EAAE,kBAAkB;QAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACxE,IAAI,SAAS,EAAE,8BAA8B;QAAE,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC7F,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAC9B,QAAwC,EACxC,SAAsD;IAEtD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,SAAS,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACrF,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,OAAO,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,mCAAmC,CAAC,uCAAuC,EAAE,mBAAmB,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,mCAAmC,CAC5C,8CAA8C,EAC9C,mBAAmB,CACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,mCAAmC,CAC5C,4CAA4C,MAAM,EAAE,EACpD,kCAAkC,CAClC,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAwC,EAAE,GAAW;IACjF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,mCAAmC,CAAC,GAAG,GAAG,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAwC,EAAE,GAAW;IACjF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,mCAAmC,CAAC,GAAG,GAAG,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC","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"}
|