@code-yeongyu/senpi 2026.6.21 → 2026.6.28-4
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 +136 -0
- package/README.md +39 -4
- 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 +17 -22
- 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/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +2 -0
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/builtin/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/types.d.ts +2 -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/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.map +1 -1
- package/dist/core/resource-loader.js +2 -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 +3 -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 +62 -46
- 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/docs/compaction.md +3 -1
- package/docs/extensions.md +6 -1
- package/docs/keybindings.md +2 -2
- package/docs/models.md +4 -2
- 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/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 +2244 -293
- 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 +1718 -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 +1675 -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 +5426 -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 +4653 -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/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
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type AdapterJsonRpcError } from "./error-mapper.ts";
|
|
2
|
+
import { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from "./protocol-core.ts";
|
|
3
|
+
export type NegotiatedCapabilityFlag = "semantic-events" | "opaque-notifications" | "opaque-callbacks" | "realtime" | "filesystem" | "app-plugin-config" | "app-server-experimental-api" | "app-server-attestation" | "app-server-mcp-form-elicitation";
|
|
4
|
+
export interface ExternalInitializeCapabilities {
|
|
5
|
+
readonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;
|
|
6
|
+
readonly semanticEvents: boolean;
|
|
7
|
+
readonly opaqueNotifications: boolean;
|
|
8
|
+
readonly opaqueCallbacks: boolean;
|
|
9
|
+
readonly realtime: boolean;
|
|
10
|
+
readonly filesystem: boolean;
|
|
11
|
+
readonly appPluginConfig: boolean;
|
|
12
|
+
readonly notificationOptOuts: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
export interface AppServerInitializeCapabilities {
|
|
15
|
+
readonly experimentalApi?: boolean;
|
|
16
|
+
readonly requestAttestation?: boolean;
|
|
17
|
+
readonly mcpServerOpenaiFormElicitation?: boolean;
|
|
18
|
+
readonly optOutNotificationMethods?: readonly string[] | null;
|
|
19
|
+
}
|
|
20
|
+
export interface CapabilityNegotiationInput {
|
|
21
|
+
readonly external: ExternalInitializeCapabilities;
|
|
22
|
+
readonly appServer?: AppServerInitializeCapabilities;
|
|
23
|
+
}
|
|
24
|
+
export type CapabilityNegotiationResult = CapabilityNegotiationAccepted | CapabilityNegotiationRejected;
|
|
25
|
+
export interface CapabilityNegotiationAccepted {
|
|
26
|
+
readonly kind: "accepted";
|
|
27
|
+
readonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;
|
|
28
|
+
readonly capabilityFlags: readonly NegotiatedCapabilityFlag[];
|
|
29
|
+
readonly notificationOptOuts: readonly string[];
|
|
30
|
+
readonly error?: undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface CapabilityNegotiationRejected {
|
|
33
|
+
readonly kind: "rejected";
|
|
34
|
+
readonly error: AdapterJsonRpcError;
|
|
35
|
+
}
|
|
36
|
+
export declare class ExternalInitializeCapabilitiesError extends Error {
|
|
37
|
+
readonly adapterCode: "malformed-message" | "unsupported-protocol-version" | "unsupported-notification-opt-out";
|
|
38
|
+
constructor(message: string, adapterCode: "malformed-message" | "unsupported-protocol-version" | "unsupported-notification-opt-out");
|
|
39
|
+
}
|
|
40
|
+
export declare function parseExternalInitializeCapabilities(input: unknown): ExternalInitializeCapabilities;
|
|
41
|
+
export declare function negotiatePiCodexAppServerCapabilities(input: CapabilityNegotiationInput): CapabilityNegotiationResult;
|
|
42
|
+
//# sourceMappingURL=capability-negotiator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-negotiator.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/capability-negotiator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAG1E,MAAM,MAAM,wBAAwB,GACjC,iBAAiB,GACjB,sBAAsB,GACtB,kBAAkB,GAClB,UAAU,GACV,YAAY,GACZ,mBAAmB,GACnB,6BAA6B,GAC7B,wBAAwB,GACxB,iCAAiC,CAAC;AAErC,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,eAAe,EAAE,OAAO,oCAAoC,CAAC;IACtE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAClD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,CAAC;CACrD;AAED,MAAM,MAAM,2BAA2B,GAAG,6BAA6B,GAAG,6BAA6B,CAAC;AAExG,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,OAAO,oCAAoC,CAAC;IACtE,QAAQ,CAAC,eAAe,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC9D,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACpC;AAID,qBAAa,mCAAoC,SAAQ,KAAK;IAC7D,QAAQ,CAAC,WAAW,EAAE,mBAAmB,GAAG,8BAA8B,GAAG,kCAAkC,CAAC;IAEhH,YACC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,mBAAmB,GAAG,8BAA8B,GAAG,kCAAkC,EAKtG;CACD;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,OAAO,GAAG,8BAA8B,CA4BlG;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,0BAA0B,GAAG,2BAA2B,CAmBpH"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { createAdapterJsonRpcError } from "./error-mapper.js";
|
|
2
|
+
import { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from "./protocol-core.js";
|
|
3
|
+
import { PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES } from "./protocol-required-surfaces.js";
|
|
4
|
+
const notificationSurfaceNames = new Set(PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES);
|
|
5
|
+
export class ExternalInitializeCapabilitiesError extends Error {
|
|
6
|
+
constructor(message, adapterCode) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = "ExternalInitializeCapabilitiesError";
|
|
9
|
+
this.adapterCode = adapterCode;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function parseExternalInitializeCapabilities(input) {
|
|
13
|
+
if (!isRecord(input)) {
|
|
14
|
+
throw new ExternalInitializeCapabilitiesError("Initialize params must be an object.", "malformed-message");
|
|
15
|
+
}
|
|
16
|
+
const protocolVersion = input.protocolVersion;
|
|
17
|
+
if (protocolVersion !== PI_CODEX_APP_SERVER_PROTOCOL_VERSION) {
|
|
18
|
+
throw new ExternalInitializeCapabilitiesError(`Unsupported pi-codex-app-server protocol version: ${String(protocolVersion)}`, "unsupported-protocol-version");
|
|
19
|
+
}
|
|
20
|
+
const capabilities = input.capabilities;
|
|
21
|
+
if (!isRecord(capabilities)) {
|
|
22
|
+
throw new ExternalInitializeCapabilitiesError("Initialize capabilities must be an object.", "malformed-message");
|
|
23
|
+
}
|
|
24
|
+
const notificationOptOuts = parseNotificationOptOuts(capabilities.notificationOptOuts);
|
|
25
|
+
return {
|
|
26
|
+
protocolVersion,
|
|
27
|
+
semanticEvents: readRequiredBoolean(capabilities, "semanticEvents"),
|
|
28
|
+
opaqueNotifications: readRequiredBoolean(capabilities, "opaqueNotifications"),
|
|
29
|
+
opaqueCallbacks: readRequiredBoolean(capabilities, "opaqueCallbacks"),
|
|
30
|
+
realtime: readOptionalBoolean(capabilities, "realtime"),
|
|
31
|
+
filesystem: readOptionalBoolean(capabilities, "filesystem"),
|
|
32
|
+
appPluginConfig: readOptionalBoolean(capabilities, "appPluginConfig"),
|
|
33
|
+
notificationOptOuts,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function negotiatePiCodexAppServerCapabilities(input) {
|
|
37
|
+
const missingRequiredCapabilities = findMissingRequiredCapabilities(input.external);
|
|
38
|
+
if (missingRequiredCapabilities.length > 0) {
|
|
39
|
+
return {
|
|
40
|
+
kind: "rejected",
|
|
41
|
+
error: createAdapterJsonRpcError({
|
|
42
|
+
adapterCode: "incompatible-capabilities",
|
|
43
|
+
message: "External client is incompatible with pi-codex-app-server.",
|
|
44
|
+
details: missingRequiredCapabilities,
|
|
45
|
+
}),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
kind: "accepted",
|
|
50
|
+
protocolVersion: input.external.protocolVersion,
|
|
51
|
+
capabilityFlags: buildCapabilityFlags(input.external, input.appServer),
|
|
52
|
+
notificationOptOuts: mapNotificationOptOuts(input.external, input.appServer),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function findMissingRequiredCapabilities(external) {
|
|
56
|
+
const missing = [];
|
|
57
|
+
if (!external.opaqueNotifications) {
|
|
58
|
+
missing.push("opaqueNotifications is required so app-server notifications are never silently dropped");
|
|
59
|
+
}
|
|
60
|
+
if (!external.opaqueCallbacks) {
|
|
61
|
+
missing.push("opaqueCallbacks is required because app-server server requests are control flow");
|
|
62
|
+
}
|
|
63
|
+
return missing;
|
|
64
|
+
}
|
|
65
|
+
function buildCapabilityFlags(external, appServer) {
|
|
66
|
+
const flags = [];
|
|
67
|
+
if (external.semanticEvents)
|
|
68
|
+
flags.push("semantic-events");
|
|
69
|
+
if (external.opaqueNotifications)
|
|
70
|
+
flags.push("opaque-notifications");
|
|
71
|
+
if (external.opaqueCallbacks)
|
|
72
|
+
flags.push("opaque-callbacks");
|
|
73
|
+
if (external.realtime)
|
|
74
|
+
flags.push("realtime");
|
|
75
|
+
if (external.filesystem)
|
|
76
|
+
flags.push("filesystem");
|
|
77
|
+
if (external.appPluginConfig)
|
|
78
|
+
flags.push("app-plugin-config");
|
|
79
|
+
if (appServer?.experimentalApi)
|
|
80
|
+
flags.push("app-server-experimental-api");
|
|
81
|
+
if (appServer?.requestAttestation)
|
|
82
|
+
flags.push("app-server-attestation");
|
|
83
|
+
if (appServer?.mcpServerOpenaiFormElicitation)
|
|
84
|
+
flags.push("app-server-mcp-form-elicitation");
|
|
85
|
+
return flags;
|
|
86
|
+
}
|
|
87
|
+
function mapNotificationOptOuts(external, appServer) {
|
|
88
|
+
const appServerOptOuts = new Set(appServer?.optOutNotificationMethods ?? []);
|
|
89
|
+
if (appServerOptOuts.size === 0)
|
|
90
|
+
return [];
|
|
91
|
+
return external.notificationOptOuts.filter((method) => appServerOptOuts.has(method));
|
|
92
|
+
}
|
|
93
|
+
function parseNotificationOptOuts(value) {
|
|
94
|
+
if (value === undefined)
|
|
95
|
+
return [];
|
|
96
|
+
if (!Array.isArray(value)) {
|
|
97
|
+
throw new ExternalInitializeCapabilitiesError("notificationOptOuts must be an array.", "malformed-message");
|
|
98
|
+
}
|
|
99
|
+
const optOuts = [];
|
|
100
|
+
for (const method of value) {
|
|
101
|
+
if (typeof method !== "string") {
|
|
102
|
+
throw new ExternalInitializeCapabilitiesError("notificationOptOuts entries must be strings.", "malformed-message");
|
|
103
|
+
}
|
|
104
|
+
if (!notificationSurfaceNames.has(method)) {
|
|
105
|
+
throw new ExternalInitializeCapabilitiesError(`Unknown app-server notification opt-out: ${method}`, "unsupported-notification-opt-out");
|
|
106
|
+
}
|
|
107
|
+
optOuts.push(method);
|
|
108
|
+
}
|
|
109
|
+
return optOuts;
|
|
110
|
+
}
|
|
111
|
+
function readRequiredBoolean(input, key) {
|
|
112
|
+
const value = input[key];
|
|
113
|
+
if (typeof value !== "boolean") {
|
|
114
|
+
throw new ExternalInitializeCapabilitiesError(`${key} must be a boolean.`, "malformed-message");
|
|
115
|
+
}
|
|
116
|
+
return value;
|
|
117
|
+
}
|
|
118
|
+
function readOptionalBoolean(input, key) {
|
|
119
|
+
const value = input[key];
|
|
120
|
+
if (value === undefined)
|
|
121
|
+
return false;
|
|
122
|
+
if (typeof value !== "boolean") {
|
|
123
|
+
throw new ExternalInitializeCapabilitiesError(`${key} must be a boolean.`, "malformed-message");
|
|
124
|
+
}
|
|
125
|
+
return value;
|
|
126
|
+
}
|
|
127
|
+
function isRecord(value) {
|
|
128
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=capability-negotiator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-negotiator.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/capability-negotiator.ts"],"names":[],"mappings":"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","sourcesContent":["import { type AdapterJsonRpcError, createAdapterJsonRpcError } from \"./error-mapper.ts\";\nimport { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from \"./protocol-core.ts\";\nimport { PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES } from \"./protocol-required-surfaces.ts\";\n\nexport type NegotiatedCapabilityFlag =\n\t| \"semantic-events\"\n\t| \"opaque-notifications\"\n\t| \"opaque-callbacks\"\n\t| \"realtime\"\n\t| \"filesystem\"\n\t| \"app-plugin-config\"\n\t| \"app-server-experimental-api\"\n\t| \"app-server-attestation\"\n\t| \"app-server-mcp-form-elicitation\";\n\nexport interface ExternalInitializeCapabilities {\n\treadonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;\n\treadonly semanticEvents: boolean;\n\treadonly opaqueNotifications: boolean;\n\treadonly opaqueCallbacks: boolean;\n\treadonly realtime: boolean;\n\treadonly filesystem: boolean;\n\treadonly appPluginConfig: boolean;\n\treadonly notificationOptOuts: readonly string[];\n}\n\nexport interface AppServerInitializeCapabilities {\n\treadonly experimentalApi?: boolean;\n\treadonly requestAttestation?: boolean;\n\treadonly mcpServerOpenaiFormElicitation?: boolean;\n\treadonly optOutNotificationMethods?: readonly string[] | null;\n}\n\nexport interface CapabilityNegotiationInput {\n\treadonly external: ExternalInitializeCapabilities;\n\treadonly appServer?: AppServerInitializeCapabilities;\n}\n\nexport type CapabilityNegotiationResult = CapabilityNegotiationAccepted | CapabilityNegotiationRejected;\n\nexport interface CapabilityNegotiationAccepted {\n\treadonly kind: \"accepted\";\n\treadonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;\n\treadonly capabilityFlags: readonly NegotiatedCapabilityFlag[];\n\treadonly notificationOptOuts: readonly string[];\n\treadonly error?: undefined;\n}\n\nexport interface CapabilityNegotiationRejected {\n\treadonly kind: \"rejected\";\n\treadonly error: AdapterJsonRpcError;\n}\n\nconst notificationSurfaceNames = new Set<string>(PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES);\n\nexport class ExternalInitializeCapabilitiesError extends Error {\n\treadonly adapterCode: \"malformed-message\" | \"unsupported-protocol-version\" | \"unsupported-notification-opt-out\";\n\n\tconstructor(\n\t\tmessage: string,\n\t\tadapterCode: \"malformed-message\" | \"unsupported-protocol-version\" | \"unsupported-notification-opt-out\",\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"ExternalInitializeCapabilitiesError\";\n\t\tthis.adapterCode = adapterCode;\n\t}\n}\n\nexport function parseExternalInitializeCapabilities(input: unknown): ExternalInitializeCapabilities {\n\tif (!isRecord(input)) {\n\t\tthrow new ExternalInitializeCapabilitiesError(\"Initialize params must be an object.\", \"malformed-message\");\n\t}\n\tconst protocolVersion = input.protocolVersion;\n\tif (protocolVersion !== PI_CODEX_APP_SERVER_PROTOCOL_VERSION) {\n\t\tthrow new ExternalInitializeCapabilitiesError(\n\t\t\t`Unsupported pi-codex-app-server protocol version: ${String(protocolVersion)}`,\n\t\t\t\"unsupported-protocol-version\",\n\t\t);\n\t}\n\n\tconst capabilities = input.capabilities;\n\tif (!isRecord(capabilities)) {\n\t\tthrow new ExternalInitializeCapabilitiesError(\"Initialize capabilities must be an object.\", \"malformed-message\");\n\t}\n\n\tconst notificationOptOuts = parseNotificationOptOuts(capabilities.notificationOptOuts);\n\treturn {\n\t\tprotocolVersion,\n\t\tsemanticEvents: readRequiredBoolean(capabilities, \"semanticEvents\"),\n\t\topaqueNotifications: readRequiredBoolean(capabilities, \"opaqueNotifications\"),\n\t\topaqueCallbacks: readRequiredBoolean(capabilities, \"opaqueCallbacks\"),\n\t\trealtime: readOptionalBoolean(capabilities, \"realtime\"),\n\t\tfilesystem: readOptionalBoolean(capabilities, \"filesystem\"),\n\t\tappPluginConfig: readOptionalBoolean(capabilities, \"appPluginConfig\"),\n\t\tnotificationOptOuts,\n\t};\n}\n\nexport function negotiatePiCodexAppServerCapabilities(input: CapabilityNegotiationInput): CapabilityNegotiationResult {\n\tconst missingRequiredCapabilities = findMissingRequiredCapabilities(input.external);\n\tif (missingRequiredCapabilities.length > 0) {\n\t\treturn {\n\t\t\tkind: \"rejected\",\n\t\t\terror: createAdapterJsonRpcError({\n\t\t\t\tadapterCode: \"incompatible-capabilities\",\n\t\t\t\tmessage: \"External client is incompatible with pi-codex-app-server.\",\n\t\t\t\tdetails: missingRequiredCapabilities,\n\t\t\t}),\n\t\t};\n\t}\n\n\treturn {\n\t\tkind: \"accepted\",\n\t\tprotocolVersion: input.external.protocolVersion,\n\t\tcapabilityFlags: buildCapabilityFlags(input.external, input.appServer),\n\t\tnotificationOptOuts: mapNotificationOptOuts(input.external, input.appServer),\n\t};\n}\n\nfunction findMissingRequiredCapabilities(external: ExternalInitializeCapabilities): readonly string[] {\n\tconst missing: string[] = [];\n\tif (!external.opaqueNotifications) {\n\t\tmissing.push(\"opaqueNotifications is required so app-server notifications are never silently dropped\");\n\t}\n\tif (!external.opaqueCallbacks) {\n\t\tmissing.push(\"opaqueCallbacks is required because app-server server requests are control flow\");\n\t}\n\treturn missing;\n}\n\nfunction buildCapabilityFlags(\n\texternal: ExternalInitializeCapabilities,\n\tappServer: AppServerInitializeCapabilities | undefined,\n): readonly NegotiatedCapabilityFlag[] {\n\tconst flags: NegotiatedCapabilityFlag[] = [];\n\tif (external.semanticEvents) flags.push(\"semantic-events\");\n\tif (external.opaqueNotifications) flags.push(\"opaque-notifications\");\n\tif (external.opaqueCallbacks) flags.push(\"opaque-callbacks\");\n\tif (external.realtime) flags.push(\"realtime\");\n\tif (external.filesystem) flags.push(\"filesystem\");\n\tif (external.appPluginConfig) flags.push(\"app-plugin-config\");\n\tif (appServer?.experimentalApi) flags.push(\"app-server-experimental-api\");\n\tif (appServer?.requestAttestation) flags.push(\"app-server-attestation\");\n\tif (appServer?.mcpServerOpenaiFormElicitation) flags.push(\"app-server-mcp-form-elicitation\");\n\treturn flags;\n}\n\nfunction mapNotificationOptOuts(\n\texternal: ExternalInitializeCapabilities,\n\tappServer: AppServerInitializeCapabilities | undefined,\n): readonly string[] {\n\tconst appServerOptOuts = new Set<string>(appServer?.optOutNotificationMethods ?? []);\n\tif (appServerOptOuts.size === 0) return [];\n\treturn external.notificationOptOuts.filter((method) => appServerOptOuts.has(method));\n}\n\nfunction parseNotificationOptOuts(value: unknown): readonly string[] {\n\tif (value === undefined) return [];\n\tif (!Array.isArray(value)) {\n\t\tthrow new ExternalInitializeCapabilitiesError(\"notificationOptOuts must be an array.\", \"malformed-message\");\n\t}\n\tconst optOuts: string[] = [];\n\tfor (const method of value) {\n\t\tif (typeof method !== \"string\") {\n\t\t\tthrow new ExternalInitializeCapabilitiesError(\n\t\t\t\t\"notificationOptOuts entries must be strings.\",\n\t\t\t\t\"malformed-message\",\n\t\t\t);\n\t\t}\n\t\tif (!notificationSurfaceNames.has(method)) {\n\t\t\tthrow new ExternalInitializeCapabilitiesError(\n\t\t\t\t`Unknown app-server notification opt-out: ${method}`,\n\t\t\t\t\"unsupported-notification-opt-out\",\n\t\t\t);\n\t\t}\n\t\toptOuts.push(method);\n\t}\n\treturn optOuts;\n}\n\nfunction readRequiredBoolean(input: Readonly<Record<string, unknown>>, key: string): boolean {\n\tconst value = input[key];\n\tif (typeof value !== \"boolean\") {\n\t\tthrow new ExternalInitializeCapabilitiesError(`${key} must be a boolean.`, \"malformed-message\");\n\t}\n\treturn value;\n}\n\nfunction readOptionalBoolean(input: Readonly<Record<string, unknown>>, key: string): boolean {\n\tconst value = input[key];\n\tif (value === undefined) return false;\n\tif (typeof value !== \"boolean\") {\n\t\tthrow new ExternalInitializeCapabilitiesError(`${key} must be a boolean.`, \"malformed-message\");\n\t}\n\treturn value;\n}\n\nfunction isRecord(value: unknown): value is Readonly<Record<string, unknown>> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const ADAPTER_ERROR_SOURCE = "pi-codex-app-server";
|
|
2
|
+
export declare const ADAPTER_JSON_RPC_ERROR_CODE = -32080;
|
|
3
|
+
export type AdapterErrorCode = "duplicate-routing-id" | "invalid-callback-state" | "incompatible-capabilities" | "invalid-session-state" | "malformed-message" | "unsupported-routing-method" | "unsupported-protocol-version" | "unsupported-notification-opt-out";
|
|
4
|
+
export interface AdapterJsonRpcError {
|
|
5
|
+
readonly code: typeof ADAPTER_JSON_RPC_ERROR_CODE;
|
|
6
|
+
readonly message: string;
|
|
7
|
+
readonly data: {
|
|
8
|
+
readonly source: typeof ADAPTER_ERROR_SOURCE;
|
|
9
|
+
readonly adapterCode: AdapterErrorCode;
|
|
10
|
+
readonly details: readonly string[];
|
|
11
|
+
readonly retryable: boolean;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface AppServerJsonRpcError {
|
|
15
|
+
readonly code: number;
|
|
16
|
+
readonly message: string;
|
|
17
|
+
readonly data?: unknown;
|
|
18
|
+
}
|
|
19
|
+
export interface AdapterJsonRpcErrorInput {
|
|
20
|
+
readonly adapterCode: AdapterErrorCode;
|
|
21
|
+
readonly message: string;
|
|
22
|
+
readonly details?: readonly string[];
|
|
23
|
+
readonly retryable?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function createAdapterJsonRpcError(input: AdapterJsonRpcErrorInput): AdapterJsonRpcError;
|
|
26
|
+
export declare function preserveAppServerJsonRpcError(error: AppServerJsonRpcError): AppServerJsonRpcError;
|
|
27
|
+
//# sourceMappingURL=error-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-mapper.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/error-mapper.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAC1D,eAAO,MAAM,2BAA2B,SAAS,CAAC;AAElD,MAAM,MAAM,gBAAgB,GACzB,sBAAsB,GACtB,wBAAwB,GACxB,2BAA2B,GAC3B,uBAAuB,GACvB,mBAAmB,GACnB,4BAA4B,GAC5B,8BAA8B,GAC9B,kCAAkC,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,2BAA2B,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE,OAAO,oBAAoB,CAAC;QAC7C,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;KAC5B,CAAC;CACF;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,CAW9F;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAEjG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const ADAPTER_ERROR_SOURCE = "pi-codex-app-server";
|
|
2
|
+
export const ADAPTER_JSON_RPC_ERROR_CODE = -32080;
|
|
3
|
+
export function createAdapterJsonRpcError(input) {
|
|
4
|
+
return {
|
|
5
|
+
code: ADAPTER_JSON_RPC_ERROR_CODE,
|
|
6
|
+
message: input.message,
|
|
7
|
+
data: {
|
|
8
|
+
source: ADAPTER_ERROR_SOURCE,
|
|
9
|
+
adapterCode: input.adapterCode,
|
|
10
|
+
details: input.details ?? [],
|
|
11
|
+
retryable: input.retryable ?? false,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function preserveAppServerJsonRpcError(error) {
|
|
16
|
+
return error;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=error-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-mapper.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/error-mapper.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,CAAC;AAoClD,MAAM,UAAU,yBAAyB,CAAC,KAA+B;IACxE,OAAO;QACN,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE;YACL,MAAM,EAAE,oBAAoB;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;SACnC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAA4B;IACzE,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["export const ADAPTER_ERROR_SOURCE = \"pi-codex-app-server\";\nexport const ADAPTER_JSON_RPC_ERROR_CODE = -32080;\n\nexport type AdapterErrorCode =\n\t| \"duplicate-routing-id\"\n\t| \"invalid-callback-state\"\n\t| \"incompatible-capabilities\"\n\t| \"invalid-session-state\"\n\t| \"malformed-message\"\n\t| \"unsupported-routing-method\"\n\t| \"unsupported-protocol-version\"\n\t| \"unsupported-notification-opt-out\";\n\nexport interface AdapterJsonRpcError {\n\treadonly code: typeof ADAPTER_JSON_RPC_ERROR_CODE;\n\treadonly message: string;\n\treadonly data: {\n\t\treadonly source: typeof ADAPTER_ERROR_SOURCE;\n\t\treadonly adapterCode: AdapterErrorCode;\n\t\treadonly details: readonly string[];\n\t\treadonly retryable: boolean;\n\t};\n}\n\nexport interface AppServerJsonRpcError {\n\treadonly code: number;\n\treadonly message: string;\n\treadonly data?: unknown;\n}\n\nexport interface AdapterJsonRpcErrorInput {\n\treadonly adapterCode: AdapterErrorCode;\n\treadonly message: string;\n\treadonly details?: readonly string[];\n\treadonly retryable?: boolean;\n}\n\nexport function createAdapterJsonRpcError(input: AdapterJsonRpcErrorInput): AdapterJsonRpcError {\n\treturn {\n\t\tcode: ADAPTER_JSON_RPC_ERROR_CODE,\n\t\tmessage: input.message,\n\t\tdata: {\n\t\t\tsource: ADAPTER_ERROR_SOURCE,\n\t\t\tadapterCode: input.adapterCode,\n\t\t\tdetails: input.details ?? [],\n\t\t\tretryable: input.retryable ?? false,\n\t\t},\n\t};\n}\n\nexport function preserveAppServerJsonRpcError(error: AppServerJsonRpcError): AppServerJsonRpcError {\n\treturn error;\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ExtensionAPI, ExtensionContext, SessionShutdownEvent, SessionStartEvent } from "../../types.ts";
|
|
2
|
+
import { type PiCodexAppServerRuntimeController } from "./transport-runtime.ts";
|
|
3
|
+
export declare const PI_CODEX_APP_SERVER_COMMAND = "pi-codex-app-server";
|
|
4
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_ENABLED = "pi-codex-app-server";
|
|
5
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_MODE = "pi-codex-app-server-mode";
|
|
6
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND = "pi-codex-app-server-command";
|
|
7
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS = "pi-codex-app-server-args";
|
|
8
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_URL = "pi-codex-app-server-url";
|
|
9
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET = "pi-codex-app-server-unix-socket";
|
|
10
|
+
export declare const PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS = "pi-codex-app-server-timeout-ms";
|
|
11
|
+
interface RuntimeExtensionContext {
|
|
12
|
+
readonly hasUI: boolean;
|
|
13
|
+
readonly ui: Pick<ExtensionContext["ui"], "notify">;
|
|
14
|
+
}
|
|
15
|
+
type RuntimeLifecycleHandler<E> = (event: E, ctx: RuntimeExtensionContext) => Promise<void> | void;
|
|
16
|
+
export interface PiCodexAppServerExtensionApi {
|
|
17
|
+
readonly registerCommand: ExtensionAPI["registerCommand"];
|
|
18
|
+
readonly registerFlag: ExtensionAPI["registerFlag"];
|
|
19
|
+
readonly getFlag: ExtensionAPI["getFlag"];
|
|
20
|
+
on(event: "session_start", handler: RuntimeLifecycleHandler<SessionStartEvent>): void;
|
|
21
|
+
on(event: "session_shutdown", handler: RuntimeLifecycleHandler<SessionShutdownEvent>): void;
|
|
22
|
+
}
|
|
23
|
+
export declare function registerPiCodexAppServerExtension(pi: PiCodexAppServerExtensionApi, createRuntime?: () => PiCodexAppServerRuntimeController): void;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=extension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE9G,OAAO,EAEN,KAAK,iCAAiC,EAGtC,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AACjE,eAAO,MAAM,gCAAgC,wBAAwB,CAAC;AACtE,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AACxE,eAAO,MAAM,2CAA2C,gCAAgC,CAAC;AACzF,eAAO,MAAM,wCAAwC,6BAA6B,CAAC;AACnF,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,oCAAoC,oCAAoC,CAAC;AACtF,eAAO,MAAM,mCAAmC,mCAAmC,CAAC;AAWpF,UAAU,uBAAuB;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;CACpD;AACD,KAAK,uBAAuB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnG,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IACtF,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;CAC5F;AAED,wBAAgB,iCAAiC,CAChD,EAAE,EAAE,4BAA4B,EAChC,aAAa,GAAE,MAAM,iCAAiE,GACpF,IAAI,CAoDN"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from "./protocol-core.js";
|
|
2
|
+
import { createPiCodexAppServerRuntime, } from "./transport-runtime.js";
|
|
3
|
+
export const PI_CODEX_APP_SERVER_COMMAND = "pi-codex-app-server";
|
|
4
|
+
export const PI_CODEX_APP_SERVER_FLAG_ENABLED = "pi-codex-app-server";
|
|
5
|
+
export const PI_CODEX_APP_SERVER_FLAG_MODE = "pi-codex-app-server-mode";
|
|
6
|
+
export const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND = "pi-codex-app-server-command";
|
|
7
|
+
export const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS = "pi-codex-app-server-args";
|
|
8
|
+
export const PI_CODEX_APP_SERVER_FLAG_URL = "pi-codex-app-server-url";
|
|
9
|
+
export const PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET = "pi-codex-app-server-unix-socket";
|
|
10
|
+
export const PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS = "pi-codex-app-server-timeout-ms";
|
|
11
|
+
const DEFAULT_TRANSPORT_MODE = "stdio";
|
|
12
|
+
const DEFAULT_APP_SERVER_COMMAND = "codex";
|
|
13
|
+
const DEFAULT_APP_SERVER_ARGS = "app-server";
|
|
14
|
+
const DEFAULT_TIMEOUT_MS = "5000";
|
|
15
|
+
const RUNTIME_NOTICE_PREFIX = [
|
|
16
|
+
"pi-codex-app-server PR-004 runtime",
|
|
17
|
+
`Protocol contract: ${PI_CODEX_APP_SERVER_PROTOCOL_VERSION}`,
|
|
18
|
+
].join("\n");
|
|
19
|
+
export function registerPiCodexAppServerExtension(pi, createRuntime = createPiCodexAppServerRuntime) {
|
|
20
|
+
const runtime = createRuntime();
|
|
21
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_ENABLED, {
|
|
22
|
+
type: "boolean",
|
|
23
|
+
default: false,
|
|
24
|
+
description: "Enable pi-codex-app-server runtime transport during session lifecycle.",
|
|
25
|
+
});
|
|
26
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_MODE, {
|
|
27
|
+
type: "string",
|
|
28
|
+
default: DEFAULT_TRANSPORT_MODE,
|
|
29
|
+
description: "Select the pi-codex-app-server transport mode: stdio, websocket, or unix.",
|
|
30
|
+
});
|
|
31
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND, {
|
|
32
|
+
type: "string",
|
|
33
|
+
default: DEFAULT_APP_SERVER_COMMAND,
|
|
34
|
+
description: "Codex app-server command for stdio or unix proxy transport.",
|
|
35
|
+
});
|
|
36
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS, {
|
|
37
|
+
type: "string",
|
|
38
|
+
default: DEFAULT_APP_SERVER_ARGS,
|
|
39
|
+
description: "Codex app-server command arguments for stdio transport.",
|
|
40
|
+
});
|
|
41
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_URL, {
|
|
42
|
+
type: "string",
|
|
43
|
+
default: "",
|
|
44
|
+
description: "Remote websocket URL for websocket transport.",
|
|
45
|
+
});
|
|
46
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET, {
|
|
47
|
+
type: "string",
|
|
48
|
+
default: "",
|
|
49
|
+
description: "Unix socket path for app-server proxy transport.",
|
|
50
|
+
});
|
|
51
|
+
pi.registerFlag(PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS, {
|
|
52
|
+
type: "string",
|
|
53
|
+
default: DEFAULT_TIMEOUT_MS,
|
|
54
|
+
description: "Runtime transport setup timeout in milliseconds.",
|
|
55
|
+
});
|
|
56
|
+
pi.registerCommand(PI_CODEX_APP_SERVER_COMMAND, {
|
|
57
|
+
description: "Inspect the Codex app-server adapter runtime status",
|
|
58
|
+
handler: async (_args, ctx) => {
|
|
59
|
+
notifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\nStatus: ${runtime.getStatus().kind}`);
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
pi.on("session_start", async (_event, ctx) => {
|
|
63
|
+
const flags = readRuntimeFlags(pi);
|
|
64
|
+
const status = await runtime.start(flags);
|
|
65
|
+
notifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\nStatus: ${status.kind}`);
|
|
66
|
+
});
|
|
67
|
+
pi.on("session_shutdown", async (_event, ctx) => {
|
|
68
|
+
const status = await runtime.stop();
|
|
69
|
+
notifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\nStatus: ${status.kind}`);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function notifyIfVisible(ctx, message) {
|
|
73
|
+
if (!ctx.hasUI)
|
|
74
|
+
return;
|
|
75
|
+
ctx.ui.notify(message, "info");
|
|
76
|
+
}
|
|
77
|
+
function readRuntimeFlags(pi) {
|
|
78
|
+
return {
|
|
79
|
+
enabled: pi.getFlag(PI_CODEX_APP_SERVER_FLAG_ENABLED) === true,
|
|
80
|
+
mode: readTransportMode(pi),
|
|
81
|
+
appServerCommand: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND, DEFAULT_APP_SERVER_COMMAND),
|
|
82
|
+
appServerArgs: readArgsFlag(pi, PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS),
|
|
83
|
+
appServerUrl: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_URL, ""),
|
|
84
|
+
appServerSocketPath: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET, ""),
|
|
85
|
+
connectTimeoutMs: readPositiveIntegerFlag(pi, PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS, Number(DEFAULT_TIMEOUT_MS)),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function readTransportMode(pi) {
|
|
89
|
+
const mode = pi.getFlag(PI_CODEX_APP_SERVER_FLAG_MODE);
|
|
90
|
+
if (mode === "websocket" || mode === "unix")
|
|
91
|
+
return mode;
|
|
92
|
+
return "stdio";
|
|
93
|
+
}
|
|
94
|
+
function readStringFlag(pi, name, fallback) {
|
|
95
|
+
const value = pi.getFlag(name);
|
|
96
|
+
return typeof value === "string" ? value : fallback;
|
|
97
|
+
}
|
|
98
|
+
function readArgsFlag(pi, name) {
|
|
99
|
+
return readStringFlag(pi, name, DEFAULT_APP_SERVER_ARGS)
|
|
100
|
+
.split(" ")
|
|
101
|
+
.map((part) => part.trim())
|
|
102
|
+
.filter((part) => part.length > 0);
|
|
103
|
+
}
|
|
104
|
+
function readPositiveIntegerFlag(pi, name, fallback) {
|
|
105
|
+
const value = Number(readStringFlag(pi, name, String(fallback)));
|
|
106
|
+
if (Number.isInteger(value) && value > 0)
|
|
107
|
+
return value;
|
|
108
|
+
return fallback;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/extension.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExtensionAPI, ExtensionContext, SessionShutdownEvent, SessionStartEvent } from \"../../types.ts\";\nimport { PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from \"./protocol-core.ts\";\nimport {\n\tcreatePiCodexAppServerRuntime,\n\ttype PiCodexAppServerRuntimeController,\n\ttype PiCodexAppServerRuntimeFlags,\n\ttype PiCodexAppServerTransportMode,\n} from \"./transport-runtime.ts\";\n\nexport const PI_CODEX_APP_SERVER_COMMAND = \"pi-codex-app-server\";\nexport const PI_CODEX_APP_SERVER_FLAG_ENABLED = \"pi-codex-app-server\";\nexport const PI_CODEX_APP_SERVER_FLAG_MODE = \"pi-codex-app-server-mode\";\nexport const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND = \"pi-codex-app-server-command\";\nexport const PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS = \"pi-codex-app-server-args\";\nexport const PI_CODEX_APP_SERVER_FLAG_URL = \"pi-codex-app-server-url\";\nexport const PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET = \"pi-codex-app-server-unix-socket\";\nexport const PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS = \"pi-codex-app-server-timeout-ms\";\n\nconst DEFAULT_TRANSPORT_MODE = \"stdio\";\nconst DEFAULT_APP_SERVER_COMMAND = \"codex\";\nconst DEFAULT_APP_SERVER_ARGS = \"app-server\";\nconst DEFAULT_TIMEOUT_MS = \"5000\";\nconst RUNTIME_NOTICE_PREFIX = [\n\t\"pi-codex-app-server PR-004 runtime\",\n\t`Protocol contract: ${PI_CODEX_APP_SERVER_PROTOCOL_VERSION}`,\n].join(\"\\n\");\n\ninterface RuntimeExtensionContext {\n\treadonly hasUI: boolean;\n\treadonly ui: Pick<ExtensionContext[\"ui\"], \"notify\">;\n}\ntype RuntimeLifecycleHandler<E> = (event: E, ctx: RuntimeExtensionContext) => Promise<void> | void;\n\nexport interface PiCodexAppServerExtensionApi {\n\treadonly registerCommand: ExtensionAPI[\"registerCommand\"];\n\treadonly registerFlag: ExtensionAPI[\"registerFlag\"];\n\treadonly getFlag: ExtensionAPI[\"getFlag\"];\n\ton(event: \"session_start\", handler: RuntimeLifecycleHandler<SessionStartEvent>): void;\n\ton(event: \"session_shutdown\", handler: RuntimeLifecycleHandler<SessionShutdownEvent>): void;\n}\n\nexport function registerPiCodexAppServerExtension(\n\tpi: PiCodexAppServerExtensionApi,\n\tcreateRuntime: () => PiCodexAppServerRuntimeController = createPiCodexAppServerRuntime,\n): void {\n\tconst runtime = createRuntime();\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_ENABLED, {\n\t\ttype: \"boolean\",\n\t\tdefault: false,\n\t\tdescription: \"Enable pi-codex-app-server runtime transport during session lifecycle.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_MODE, {\n\t\ttype: \"string\",\n\t\tdefault: DEFAULT_TRANSPORT_MODE,\n\t\tdescription: \"Select the pi-codex-app-server transport mode: stdio, websocket, or unix.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND, {\n\t\ttype: \"string\",\n\t\tdefault: DEFAULT_APP_SERVER_COMMAND,\n\t\tdescription: \"Codex app-server command for stdio or unix proxy transport.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS, {\n\t\ttype: \"string\",\n\t\tdefault: DEFAULT_APP_SERVER_ARGS,\n\t\tdescription: \"Codex app-server command arguments for stdio transport.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_URL, {\n\t\ttype: \"string\",\n\t\tdefault: \"\",\n\t\tdescription: \"Remote websocket URL for websocket transport.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET, {\n\t\ttype: \"string\",\n\t\tdefault: \"\",\n\t\tdescription: \"Unix socket path for app-server proxy transport.\",\n\t});\n\tpi.registerFlag(PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS, {\n\t\ttype: \"string\",\n\t\tdefault: DEFAULT_TIMEOUT_MS,\n\t\tdescription: \"Runtime transport setup timeout in milliseconds.\",\n\t});\n\tpi.registerCommand(PI_CODEX_APP_SERVER_COMMAND, {\n\t\tdescription: \"Inspect the Codex app-server adapter runtime status\",\n\t\thandler: async (_args, ctx) => {\n\t\t\tnotifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\\nStatus: ${runtime.getStatus().kind}`);\n\t\t},\n\t});\n\tpi.on(\"session_start\", async (_event, ctx) => {\n\t\tconst flags = readRuntimeFlags(pi);\n\t\tconst status = await runtime.start(flags);\n\t\tnotifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\\nStatus: ${status.kind}`);\n\t});\n\tpi.on(\"session_shutdown\", async (_event, ctx) => {\n\t\tconst status = await runtime.stop();\n\t\tnotifyIfVisible(ctx, `${RUNTIME_NOTICE_PREFIX}\\nStatus: ${status.kind}`);\n\t});\n}\n\nfunction notifyIfVisible(ctx: RuntimeExtensionContext, message: string): void {\n\tif (!ctx.hasUI) return;\n\tctx.ui.notify(message, \"info\");\n}\n\nfunction readRuntimeFlags(pi: PiCodexAppServerExtensionApi): PiCodexAppServerRuntimeFlags {\n\treturn {\n\t\tenabled: pi.getFlag(PI_CODEX_APP_SERVER_FLAG_ENABLED) === true,\n\t\tmode: readTransportMode(pi),\n\t\tappServerCommand: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_APP_SERVER_COMMAND, DEFAULT_APP_SERVER_COMMAND),\n\t\tappServerArgs: readArgsFlag(pi, PI_CODEX_APP_SERVER_FLAG_APP_SERVER_ARGS),\n\t\tappServerUrl: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_URL, \"\"),\n\t\tappServerSocketPath: readStringFlag(pi, PI_CODEX_APP_SERVER_FLAG_UNIX_SOCKET, \"\"),\n\t\tconnectTimeoutMs: readPositiveIntegerFlag(pi, PI_CODEX_APP_SERVER_FLAG_TIMEOUT_MS, Number(DEFAULT_TIMEOUT_MS)),\n\t};\n}\n\nfunction readTransportMode(pi: PiCodexAppServerExtensionApi): PiCodexAppServerTransportMode {\n\tconst mode = pi.getFlag(PI_CODEX_APP_SERVER_FLAG_MODE);\n\tif (mode === \"websocket\" || mode === \"unix\") return mode;\n\treturn \"stdio\";\n}\n\nfunction readStringFlag(pi: PiCodexAppServerExtensionApi, name: string, fallback: string): string {\n\tconst value = pi.getFlag(name);\n\treturn typeof value === \"string\" ? value : fallback;\n}\n\nfunction readArgsFlag(pi: PiCodexAppServerExtensionApi, name: string): readonly string[] {\n\treturn readStringFlag(pi, name, DEFAULT_APP_SERVER_ARGS)\n\t\t.split(\" \")\n\t\t.map((part) => part.trim())\n\t\t.filter((part) => part.length > 0);\n}\n\nfunction readPositiveIntegerFlag(pi: PiCodexAppServerExtensionApi, name: string, fallback: number): number {\n\tconst value = Number(readStringFlag(pi, name, String(fallback)));\n\tif (Number.isInteger(value) && value > 0) return value;\n\treturn fallback;\n}\n"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type AdapterJsonRpcError } from "./error-mapper.ts";
|
|
2
|
+
export interface RoutedRequest {
|
|
3
|
+
readonly externalRequestId: string;
|
|
4
|
+
readonly appMethod: string;
|
|
5
|
+
readonly startedAtMs: number;
|
|
6
|
+
}
|
|
7
|
+
export interface RoutedTurn {
|
|
8
|
+
readonly appTurnId: string;
|
|
9
|
+
readonly appThreadId: string;
|
|
10
|
+
readonly externalTurnId?: string;
|
|
11
|
+
readonly externalMessageId?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface RoutedItem {
|
|
14
|
+
readonly appItemId: string;
|
|
15
|
+
readonly appTurnId: string;
|
|
16
|
+
readonly appThreadId: string;
|
|
17
|
+
readonly externalItemId?: string;
|
|
18
|
+
readonly itemKind: string;
|
|
19
|
+
}
|
|
20
|
+
export interface RoutedServerRequest {
|
|
21
|
+
readonly appRequestId: string;
|
|
22
|
+
readonly externalCallbackId: string;
|
|
23
|
+
readonly appThreadId?: string;
|
|
24
|
+
readonly appTurnId?: string;
|
|
25
|
+
readonly appItemId?: string;
|
|
26
|
+
readonly method: string;
|
|
27
|
+
}
|
|
28
|
+
export interface RegistrationResult {
|
|
29
|
+
readonly kind: "registered" | "resolved";
|
|
30
|
+
}
|
|
31
|
+
export type IdMapperResult = RegistrationResult | {
|
|
32
|
+
readonly kind: "rejected";
|
|
33
|
+
readonly error: AdapterJsonRpcError;
|
|
34
|
+
};
|
|
35
|
+
export interface IdMapper {
|
|
36
|
+
registerRequest(input: RoutedRequest): IdMapperResult;
|
|
37
|
+
resolveRequest(externalRequestId: string): IdMapperResult;
|
|
38
|
+
getRequest(externalRequestId: string): RoutedRequest | undefined;
|
|
39
|
+
registerTurn(input: RoutedTurn): IdMapperResult;
|
|
40
|
+
getTurn(appTurnId: string): RoutedTurn | undefined;
|
|
41
|
+
registerItem(input: RoutedItem): IdMapperResult;
|
|
42
|
+
getItem(appItemId: string): RoutedItem | undefined;
|
|
43
|
+
registerServerRequest(input: RoutedServerRequest): IdMapperResult;
|
|
44
|
+
resolveServerRequest(appRequestId: string): IdMapperResult;
|
|
45
|
+
getServerRequest(appRequestId: string): RoutedServerRequest | undefined;
|
|
46
|
+
}
|
|
47
|
+
export declare function createIdMapper(nowMs?: () => number): IdMapper;
|
|
48
|
+
//# sourceMappingURL=id-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-mapper.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/id-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,mBAAmB,CAAC;AAExF,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC;AAED,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAErH,MAAM,WAAW,QAAQ;IACxB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAAC;IACtD,cAAc,CAAC,iBAAiB,EAAE,MAAM,GAAG,cAAc,CAAC;IAC1D,UAAU,CAAC,iBAAiB,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACjE,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAAC;IAChD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACnD,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAAC;IAChD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACnD,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAAC;IAClE,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;IAC3D,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;CACxE;AAED,wBAAgB,cAAc,CAAC,KAAK,GAAE,MAAM,MAAiB,GAAG,QAAQ,CAEvE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { createAdapterJsonRpcError } from "./error-mapper.js";
|
|
2
|
+
export function createIdMapper(nowMs = Date.now) {
|
|
3
|
+
return new InMemoryIdMapper(nowMs);
|
|
4
|
+
}
|
|
5
|
+
class InMemoryIdMapper {
|
|
6
|
+
constructor(nowMs) {
|
|
7
|
+
this.requests = new Map();
|
|
8
|
+
this.turns = new Map();
|
|
9
|
+
this.items = new Map();
|
|
10
|
+
this.serverRequests = new Map();
|
|
11
|
+
this.nowMs = nowMs;
|
|
12
|
+
}
|
|
13
|
+
registerRequest(input) {
|
|
14
|
+
if (this.requests.has(input.externalRequestId)) {
|
|
15
|
+
return rejectDuplicate(`Duplicate external request id: ${input.externalRequestId}`);
|
|
16
|
+
}
|
|
17
|
+
this.requests.set(input.externalRequestId, {
|
|
18
|
+
...input,
|
|
19
|
+
startedAtMs: input.startedAtMs || this.nowMs(),
|
|
20
|
+
});
|
|
21
|
+
return { kind: "registered" };
|
|
22
|
+
}
|
|
23
|
+
resolveRequest(externalRequestId) {
|
|
24
|
+
this.requests.delete(externalRequestId);
|
|
25
|
+
return { kind: "resolved" };
|
|
26
|
+
}
|
|
27
|
+
getRequest(externalRequestId) {
|
|
28
|
+
return this.requests.get(externalRequestId);
|
|
29
|
+
}
|
|
30
|
+
registerTurn(input) {
|
|
31
|
+
if (this.turns.has(input.appTurnId)) {
|
|
32
|
+
return rejectDuplicate(`Duplicate app-server turn id: ${input.appTurnId}`);
|
|
33
|
+
}
|
|
34
|
+
this.turns.set(input.appTurnId, input);
|
|
35
|
+
return { kind: "registered" };
|
|
36
|
+
}
|
|
37
|
+
getTurn(appTurnId) {
|
|
38
|
+
return this.turns.get(appTurnId);
|
|
39
|
+
}
|
|
40
|
+
registerItem(input) {
|
|
41
|
+
if (this.items.has(input.appItemId)) {
|
|
42
|
+
return rejectDuplicate(`Duplicate app-server item id: ${input.appItemId}`);
|
|
43
|
+
}
|
|
44
|
+
this.items.set(input.appItemId, input);
|
|
45
|
+
return { kind: "registered" };
|
|
46
|
+
}
|
|
47
|
+
getItem(appItemId) {
|
|
48
|
+
return this.items.get(appItemId);
|
|
49
|
+
}
|
|
50
|
+
registerServerRequest(input) {
|
|
51
|
+
if (this.serverRequests.has(input.appRequestId)) {
|
|
52
|
+
return rejectDuplicate(`Duplicate app-server request id: ${input.appRequestId}`);
|
|
53
|
+
}
|
|
54
|
+
this.serverRequests.set(input.appRequestId, input);
|
|
55
|
+
return { kind: "registered" };
|
|
56
|
+
}
|
|
57
|
+
resolveServerRequest(appRequestId) {
|
|
58
|
+
this.serverRequests.delete(appRequestId);
|
|
59
|
+
return { kind: "resolved" };
|
|
60
|
+
}
|
|
61
|
+
getServerRequest(appRequestId) {
|
|
62
|
+
return this.serverRequests.get(appRequestId);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function rejectDuplicate(message) {
|
|
66
|
+
return {
|
|
67
|
+
kind: "rejected",
|
|
68
|
+
error: createAdapterJsonRpcError({
|
|
69
|
+
adapterCode: "duplicate-routing-id",
|
|
70
|
+
message,
|
|
71
|
+
}),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=id-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-mapper.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/id-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import { type AdapterJsonRpcError, createAdapterJsonRpcError } from \"./error-mapper.ts\";\n\nexport interface RoutedRequest {\n\treadonly externalRequestId: string;\n\treadonly appMethod: string;\n\treadonly startedAtMs: number;\n}\n\nexport interface RoutedTurn {\n\treadonly appTurnId: string;\n\treadonly appThreadId: string;\n\treadonly externalTurnId?: string;\n\treadonly externalMessageId?: string;\n}\n\nexport interface RoutedItem {\n\treadonly appItemId: string;\n\treadonly appTurnId: string;\n\treadonly appThreadId: string;\n\treadonly externalItemId?: string;\n\treadonly itemKind: string;\n}\n\nexport interface RoutedServerRequest {\n\treadonly appRequestId: string;\n\treadonly externalCallbackId: string;\n\treadonly appThreadId?: string;\n\treadonly appTurnId?: string;\n\treadonly appItemId?: string;\n\treadonly method: string;\n}\n\nexport interface RegistrationResult {\n\treadonly kind: \"registered\" | \"resolved\";\n}\n\nexport type IdMapperResult = RegistrationResult | { readonly kind: \"rejected\"; readonly error: AdapterJsonRpcError };\n\nexport interface IdMapper {\n\tregisterRequest(input: RoutedRequest): IdMapperResult;\n\tresolveRequest(externalRequestId: string): IdMapperResult;\n\tgetRequest(externalRequestId: string): RoutedRequest | undefined;\n\tregisterTurn(input: RoutedTurn): IdMapperResult;\n\tgetTurn(appTurnId: string): RoutedTurn | undefined;\n\tregisterItem(input: RoutedItem): IdMapperResult;\n\tgetItem(appItemId: string): RoutedItem | undefined;\n\tregisterServerRequest(input: RoutedServerRequest): IdMapperResult;\n\tresolveServerRequest(appRequestId: string): IdMapperResult;\n\tgetServerRequest(appRequestId: string): RoutedServerRequest | undefined;\n}\n\nexport function createIdMapper(nowMs: () => number = Date.now): IdMapper {\n\treturn new InMemoryIdMapper(nowMs);\n}\n\nclass InMemoryIdMapper implements IdMapper {\n\tprivate readonly requests = new Map<string, RoutedRequest>();\n\tprivate readonly turns = new Map<string, RoutedTurn>();\n\tprivate readonly items = new Map<string, RoutedItem>();\n\tprivate readonly serverRequests = new Map<string, RoutedServerRequest>();\n\tprivate readonly nowMs: () => number;\n\n\tconstructor(nowMs: () => number) {\n\t\tthis.nowMs = nowMs;\n\t}\n\n\tregisterRequest(input: RoutedRequest): IdMapperResult {\n\t\tif (this.requests.has(input.externalRequestId)) {\n\t\t\treturn rejectDuplicate(`Duplicate external request id: ${input.externalRequestId}`);\n\t\t}\n\t\tthis.requests.set(input.externalRequestId, {\n\t\t\t...input,\n\t\t\tstartedAtMs: input.startedAtMs || this.nowMs(),\n\t\t});\n\t\treturn { kind: \"registered\" };\n\t}\n\n\tresolveRequest(externalRequestId: string): IdMapperResult {\n\t\tthis.requests.delete(externalRequestId);\n\t\treturn { kind: \"resolved\" };\n\t}\n\n\tgetRequest(externalRequestId: string): RoutedRequest | undefined {\n\t\treturn this.requests.get(externalRequestId);\n\t}\n\n\tregisterTurn(input: RoutedTurn): IdMapperResult {\n\t\tif (this.turns.has(input.appTurnId)) {\n\t\t\treturn rejectDuplicate(`Duplicate app-server turn id: ${input.appTurnId}`);\n\t\t}\n\t\tthis.turns.set(input.appTurnId, input);\n\t\treturn { kind: \"registered\" };\n\t}\n\n\tgetTurn(appTurnId: string): RoutedTurn | undefined {\n\t\treturn this.turns.get(appTurnId);\n\t}\n\n\tregisterItem(input: RoutedItem): IdMapperResult {\n\t\tif (this.items.has(input.appItemId)) {\n\t\t\treturn rejectDuplicate(`Duplicate app-server item id: ${input.appItemId}`);\n\t\t}\n\t\tthis.items.set(input.appItemId, input);\n\t\treturn { kind: \"registered\" };\n\t}\n\n\tgetItem(appItemId: string): RoutedItem | undefined {\n\t\treturn this.items.get(appItemId);\n\t}\n\n\tregisterServerRequest(input: RoutedServerRequest): IdMapperResult {\n\t\tif (this.serverRequests.has(input.appRequestId)) {\n\t\t\treturn rejectDuplicate(`Duplicate app-server request id: ${input.appRequestId}`);\n\t\t}\n\t\tthis.serverRequests.set(input.appRequestId, input);\n\t\treturn { kind: \"registered\" };\n\t}\n\n\tresolveServerRequest(appRequestId: string): IdMapperResult {\n\t\tthis.serverRequests.delete(appRequestId);\n\t\treturn { kind: \"resolved\" };\n\t}\n\n\tgetServerRequest(appRequestId: string): RoutedServerRequest | undefined {\n\t\treturn this.serverRequests.get(appRequestId);\n\t}\n}\n\nfunction rejectDuplicate(message: string): IdMapperResult {\n\treturn {\n\t\tkind: \"rejected\",\n\t\terror: createAdapterJsonRpcError({\n\t\t\tadapterCode: \"duplicate-routing-id\",\n\t\t\tmessage,\n\t\t}),\n\t};\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAExE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAAgB;IACjE,iCAAiC,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC","sourcesContent":["import type { ExtensionAPI } from \"../../types.ts\";\nimport { registerPiCodexAppServerExtension } from \"./extension.ts\";\n\nexport default function piCodexAppServerExtension(pi: ExtensionAPI): void {\n\tregisterPiCodexAppServerExtension(pi);\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { IdMapper } from "./id-mapper.ts";
|
|
2
|
+
import type { StreamClass } from "./protocol-core.ts";
|
|
3
|
+
export type SemanticProjectionChannel = "command" | "file" | "item" | "mcp" | "plan" | "process" | "raw-response" | "reasoning" | "reasoning-summary" | "text" | "turn";
|
|
4
|
+
export type SemanticProjectionType = "completed" | "delta" | "item-completed" | "item-started" | "part-added" | "progress" | "turn-completed" | "turn-started";
|
|
5
|
+
export interface ProjectItemStreamInput {
|
|
6
|
+
readonly method: string;
|
|
7
|
+
readonly params: unknown;
|
|
8
|
+
readonly sequence: number;
|
|
9
|
+
readonly externalSessionId: string | undefined;
|
|
10
|
+
readonly idMapper: IdMapper;
|
|
11
|
+
}
|
|
12
|
+
export interface SemanticItemStreamProjection {
|
|
13
|
+
readonly kind: "semantic";
|
|
14
|
+
readonly method: string;
|
|
15
|
+
readonly sequence: number;
|
|
16
|
+
readonly channel: SemanticProjectionChannel;
|
|
17
|
+
readonly semanticType: SemanticProjectionType;
|
|
18
|
+
readonly streamClass: StreamClass;
|
|
19
|
+
readonly externalSessionId: string | undefined;
|
|
20
|
+
readonly appThreadId: string | undefined;
|
|
21
|
+
readonly appTurnId: string | undefined;
|
|
22
|
+
readonly appItemId: string | undefined;
|
|
23
|
+
readonly delta: string | undefined;
|
|
24
|
+
readonly index: number | undefined;
|
|
25
|
+
readonly completedItem: unknown;
|
|
26
|
+
readonly originalParams: unknown;
|
|
27
|
+
}
|
|
28
|
+
export declare function projectItemStreamNotification(input: ProjectItemStreamInput): SemanticItemStreamProjection | undefined;
|
|
29
|
+
//# sourceMappingURL=item-stream-projector.d.ts.map
|