@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 @@
|
|
|
1
|
+
{"version":3,"file":"item-stream-projector.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/item-stream-projector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,yBAAyB,GAClC,SAAS,GACT,MAAM,GACN,MAAM,GACN,KAAK,GACL,MAAM,GACN,SAAS,GACT,cAAc,GACd,WAAW,GACX,mBAAmB,GACnB,MAAM,GACN,MAAM,CAAC;AAEV,MAAM,MAAM,sBAAsB,GAC/B,WAAW,GACX,OAAO,GACP,gBAAgB,GAChB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,gBAAgB,GAChB,cAAc,CAAC;AAElB,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CACjC;AAqCD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,GAAG,4BAA4B,GAAG,SAAS,CAqCrH"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
const itemProjectionShapes = {
|
|
2
|
+
"item/started": { channel: "item", semanticType: "item-started", streamClass: "lossless" },
|
|
3
|
+
"item/completed": { channel: "item", semanticType: "item-completed", streamClass: "lossless" },
|
|
4
|
+
"rawResponseItem/completed": { channel: "raw-response", semanticType: "completed", streamClass: "lossless" },
|
|
5
|
+
"item/agentMessage/delta": { channel: "text", semanticType: "delta", streamClass: "lossless" },
|
|
6
|
+
"item/plan/delta": { channel: "plan", semanticType: "delta", streamClass: "lossless" },
|
|
7
|
+
"item/reasoning/summaryTextDelta": { channel: "reasoning-summary", semanticType: "delta", streamClass: "lossless" },
|
|
8
|
+
"item/reasoning/summaryPartAdded": {
|
|
9
|
+
channel: "reasoning-summary",
|
|
10
|
+
semanticType: "part-added",
|
|
11
|
+
streamClass: "lossless",
|
|
12
|
+
},
|
|
13
|
+
"item/reasoning/textDelta": { channel: "reasoning", semanticType: "delta", streamClass: "lossless" },
|
|
14
|
+
"command/exec/outputDelta": { channel: "command", semanticType: "progress", streamClass: "best-effort" },
|
|
15
|
+
"item/commandExecution/outputDelta": { channel: "command", semanticType: "progress", streamClass: "best-effort" },
|
|
16
|
+
"item/commandExecution/terminalInteraction": {
|
|
17
|
+
channel: "command",
|
|
18
|
+
semanticType: "progress",
|
|
19
|
+
streamClass: "best-effort",
|
|
20
|
+
},
|
|
21
|
+
"process/outputDelta": { channel: "process", semanticType: "progress", streamClass: "best-effort" },
|
|
22
|
+
"process/exited": { channel: "process", semanticType: "completed", streamClass: "lossless" },
|
|
23
|
+
"item/fileChange/outputDelta": { channel: "file", semanticType: "progress", streamClass: "best-effort" },
|
|
24
|
+
"item/fileChange/patchUpdated": { channel: "file", semanticType: "progress", streamClass: "best-effort" },
|
|
25
|
+
"item/mcpToolCall/progress": { channel: "mcp", semanticType: "progress", streamClass: "best-effort" },
|
|
26
|
+
"turn/started": { channel: "turn", semanticType: "turn-started", streamClass: "lossless" },
|
|
27
|
+
"turn/completed": { channel: "turn", semanticType: "turn-completed", streamClass: "lossless" },
|
|
28
|
+
};
|
|
29
|
+
export function projectItemStreamNotification(input) {
|
|
30
|
+
const shape = itemProjectionShapes[input.method];
|
|
31
|
+
if (!shape)
|
|
32
|
+
return undefined;
|
|
33
|
+
const params = isRecord(input.params) ? input.params : {};
|
|
34
|
+
const appThreadId = readAppThreadId(params);
|
|
35
|
+
const appTurnId = readAppTurnId(params);
|
|
36
|
+
const completedItem = readCompletedItem(input.method, params);
|
|
37
|
+
const appItemId = readItemId(params, completedItem);
|
|
38
|
+
const delta = readString(params, "delta");
|
|
39
|
+
const index = readNumber(params, "index");
|
|
40
|
+
if (input.method === "item/started" && appThreadId && appTurnId && appItemId) {
|
|
41
|
+
registerItemIfNeeded(input.idMapper, {
|
|
42
|
+
appThreadId,
|
|
43
|
+
appTurnId,
|
|
44
|
+
appItemId,
|
|
45
|
+
itemKind: readItemKind(completedItem),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
kind: "semantic",
|
|
50
|
+
method: input.method,
|
|
51
|
+
sequence: input.sequence,
|
|
52
|
+
channel: shape.channel,
|
|
53
|
+
semanticType: shape.semanticType,
|
|
54
|
+
streamClass: shape.streamClass,
|
|
55
|
+
externalSessionId: input.externalSessionId,
|
|
56
|
+
appThreadId,
|
|
57
|
+
appTurnId,
|
|
58
|
+
appItemId,
|
|
59
|
+
delta,
|
|
60
|
+
index,
|
|
61
|
+
completedItem,
|
|
62
|
+
originalParams: input.params,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function registerItemIfNeeded(idMapper, input) {
|
|
66
|
+
if (idMapper.getItem(input.appItemId))
|
|
67
|
+
return;
|
|
68
|
+
idMapper.registerItem(input);
|
|
69
|
+
}
|
|
70
|
+
function readCompletedItem(method, params) {
|
|
71
|
+
if (method !== "item/started" && method !== "item/completed")
|
|
72
|
+
return undefined;
|
|
73
|
+
return params.item;
|
|
74
|
+
}
|
|
75
|
+
function readAppThreadId(params) {
|
|
76
|
+
return readString(params, "threadId") ?? readString(params, "thread_id");
|
|
77
|
+
}
|
|
78
|
+
function readAppTurnId(params) {
|
|
79
|
+
return readString(params, "turnId") ?? readString(params, "turn_id");
|
|
80
|
+
}
|
|
81
|
+
function readItemId(params, completedItem) {
|
|
82
|
+
const itemId = readString(params, "itemId") ?? readString(params, "item_id");
|
|
83
|
+
if (itemId)
|
|
84
|
+
return itemId;
|
|
85
|
+
if (!isRecord(completedItem))
|
|
86
|
+
return undefined;
|
|
87
|
+
return readString(completedItem, "id");
|
|
88
|
+
}
|
|
89
|
+
function readItemKind(item) {
|
|
90
|
+
if (!isRecord(item))
|
|
91
|
+
return "unknown";
|
|
92
|
+
return readString(item, "type") ?? readString(item, "kind") ?? "unknown";
|
|
93
|
+
}
|
|
94
|
+
function readString(input, key) {
|
|
95
|
+
const value = input[key];
|
|
96
|
+
return typeof value === "string" ? value : undefined;
|
|
97
|
+
}
|
|
98
|
+
function readNumber(input, key) {
|
|
99
|
+
const value = input[key];
|
|
100
|
+
return typeof value === "number" ? value : undefined;
|
|
101
|
+
}
|
|
102
|
+
function isRecord(value) {
|
|
103
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=item-stream-projector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-stream-projector.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/item-stream-projector.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IdMapper } from \"./id-mapper.ts\";\nimport type { StreamClass } from \"./protocol-core.ts\";\n\nexport type SemanticProjectionChannel =\n\t| \"command\"\n\t| \"file\"\n\t| \"item\"\n\t| \"mcp\"\n\t| \"plan\"\n\t| \"process\"\n\t| \"raw-response\"\n\t| \"reasoning\"\n\t| \"reasoning-summary\"\n\t| \"text\"\n\t| \"turn\";\n\nexport type SemanticProjectionType =\n\t| \"completed\"\n\t| \"delta\"\n\t| \"item-completed\"\n\t| \"item-started\"\n\t| \"part-added\"\n\t| \"progress\"\n\t| \"turn-completed\"\n\t| \"turn-started\";\n\nexport interface ProjectItemStreamInput {\n\treadonly method: string;\n\treadonly params: unknown;\n\treadonly sequence: number;\n\treadonly externalSessionId: string | undefined;\n\treadonly idMapper: IdMapper;\n}\n\nexport interface SemanticItemStreamProjection {\n\treadonly kind: \"semantic\";\n\treadonly method: string;\n\treadonly sequence: number;\n\treadonly channel: SemanticProjectionChannel;\n\treadonly semanticType: SemanticProjectionType;\n\treadonly streamClass: StreamClass;\n\treadonly externalSessionId: string | undefined;\n\treadonly appThreadId: string | undefined;\n\treadonly appTurnId: string | undefined;\n\treadonly appItemId: string | undefined;\n\treadonly delta: string | undefined;\n\treadonly index: number | undefined;\n\treadonly completedItem: unknown;\n\treadonly originalParams: unknown;\n}\n\ninterface ItemProjectionShape {\n\treadonly channel: SemanticProjectionChannel;\n\treadonly semanticType: SemanticProjectionType;\n\treadonly streamClass: StreamClass;\n}\n\nconst itemProjectionShapes: Readonly<Record<string, ItemProjectionShape>> = {\n\t\"item/started\": { channel: \"item\", semanticType: \"item-started\", streamClass: \"lossless\" },\n\t\"item/completed\": { channel: \"item\", semanticType: \"item-completed\", streamClass: \"lossless\" },\n\t\"rawResponseItem/completed\": { channel: \"raw-response\", semanticType: \"completed\", streamClass: \"lossless\" },\n\t\"item/agentMessage/delta\": { channel: \"text\", semanticType: \"delta\", streamClass: \"lossless\" },\n\t\"item/plan/delta\": { channel: \"plan\", semanticType: \"delta\", streamClass: \"lossless\" },\n\t\"item/reasoning/summaryTextDelta\": { channel: \"reasoning-summary\", semanticType: \"delta\", streamClass: \"lossless\" },\n\t\"item/reasoning/summaryPartAdded\": {\n\t\tchannel: \"reasoning-summary\",\n\t\tsemanticType: \"part-added\",\n\t\tstreamClass: \"lossless\",\n\t},\n\t\"item/reasoning/textDelta\": { channel: \"reasoning\", semanticType: \"delta\", streamClass: \"lossless\" },\n\t\"command/exec/outputDelta\": { channel: \"command\", semanticType: \"progress\", streamClass: \"best-effort\" },\n\t\"item/commandExecution/outputDelta\": { channel: \"command\", semanticType: \"progress\", streamClass: \"best-effort\" },\n\t\"item/commandExecution/terminalInteraction\": {\n\t\tchannel: \"command\",\n\t\tsemanticType: \"progress\",\n\t\tstreamClass: \"best-effort\",\n\t},\n\t\"process/outputDelta\": { channel: \"process\", semanticType: \"progress\", streamClass: \"best-effort\" },\n\t\"process/exited\": { channel: \"process\", semanticType: \"completed\", streamClass: \"lossless\" },\n\t\"item/fileChange/outputDelta\": { channel: \"file\", semanticType: \"progress\", streamClass: \"best-effort\" },\n\t\"item/fileChange/patchUpdated\": { channel: \"file\", semanticType: \"progress\", streamClass: \"best-effort\" },\n\t\"item/mcpToolCall/progress\": { channel: \"mcp\", semanticType: \"progress\", streamClass: \"best-effort\" },\n\t\"turn/started\": { channel: \"turn\", semanticType: \"turn-started\", streamClass: \"lossless\" },\n\t\"turn/completed\": { channel: \"turn\", semanticType: \"turn-completed\", streamClass: \"lossless\" },\n};\n\nexport function projectItemStreamNotification(input: ProjectItemStreamInput): SemanticItemStreamProjection | undefined {\n\tconst shape = itemProjectionShapes[input.method];\n\tif (!shape) return undefined;\n\n\tconst params = isRecord(input.params) ? input.params : {};\n\tconst appThreadId = readAppThreadId(params);\n\tconst appTurnId = readAppTurnId(params);\n\tconst completedItem = readCompletedItem(input.method, params);\n\tconst appItemId = readItemId(params, completedItem);\n\tconst delta = readString(params, \"delta\");\n\tconst index = readNumber(params, \"index\");\n\n\tif (input.method === \"item/started\" && appThreadId && appTurnId && appItemId) {\n\t\tregisterItemIfNeeded(input.idMapper, {\n\t\t\tappThreadId,\n\t\t\tappTurnId,\n\t\t\tappItemId,\n\t\t\titemKind: readItemKind(completedItem),\n\t\t});\n\t}\n\n\treturn {\n\t\tkind: \"semantic\",\n\t\tmethod: input.method,\n\t\tsequence: input.sequence,\n\t\tchannel: shape.channel,\n\t\tsemanticType: shape.semanticType,\n\t\tstreamClass: shape.streamClass,\n\t\texternalSessionId: input.externalSessionId,\n\t\tappThreadId,\n\t\tappTurnId,\n\t\tappItemId,\n\t\tdelta,\n\t\tindex,\n\t\tcompletedItem,\n\t\toriginalParams: input.params,\n\t};\n}\n\ninterface RegisterItemInput {\n\treadonly appThreadId: string;\n\treadonly appTurnId: string;\n\treadonly appItemId: string;\n\treadonly itemKind: string;\n}\n\nfunction registerItemIfNeeded(idMapper: IdMapper, input: RegisterItemInput): void {\n\tif (idMapper.getItem(input.appItemId)) return;\n\tidMapper.registerItem(input);\n}\n\nfunction readCompletedItem(method: string, params: Readonly<Record<string, unknown>>): unknown {\n\tif (method !== \"item/started\" && method !== \"item/completed\") return undefined;\n\treturn params.item;\n}\n\nfunction readAppThreadId(params: Readonly<Record<string, unknown>>): string | undefined {\n\treturn readString(params, \"threadId\") ?? readString(params, \"thread_id\");\n}\n\nfunction readAppTurnId(params: Readonly<Record<string, unknown>>): string | undefined {\n\treturn readString(params, \"turnId\") ?? readString(params, \"turn_id\");\n}\n\nfunction readItemId(params: Readonly<Record<string, unknown>>, completedItem: unknown): string | undefined {\n\tconst itemId = readString(params, \"itemId\") ?? readString(params, \"item_id\");\n\tif (itemId) return itemId;\n\tif (!isRecord(completedItem)) return undefined;\n\treturn readString(completedItem, \"id\");\n}\n\nfunction readItemKind(item: unknown): string {\n\tif (!isRecord(item)) return \"unknown\";\n\treturn readString(item, \"type\") ?? readString(item, \"kind\") ?? \"unknown\";\n}\n\nfunction readString(input: Readonly<Record<string, unknown>>, key: string): string | undefined {\n\tconst value = input[key];\n\treturn typeof value === \"string\" ? value : undefined;\n}\n\nfunction readNumber(input: Readonly<Record<string, unknown>>, key: string): number | undefined {\n\tconst value = input[key];\n\treturn typeof value === \"number\" ? value : undefined;\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,49 @@
|
|
|
1
|
+
import type { IdMapper } from "./id-mapper.ts";
|
|
2
|
+
import { type SemanticItemStreamProjection } from "./item-stream-projector.ts";
|
|
3
|
+
import { PI_CODEX_APP_SERVER_PROTOCOL_VERSION, type StreamClass } from "./protocol-core.ts";
|
|
4
|
+
import type { SessionRegistry } from "./session-registry.ts";
|
|
5
|
+
export interface NotificationProjectorOptions {
|
|
6
|
+
readonly connectionId: string;
|
|
7
|
+
readonly capabilityFlags: readonly string[];
|
|
8
|
+
readonly notificationOptOuts: readonly string[];
|
|
9
|
+
readonly idMapper: IdMapper;
|
|
10
|
+
readonly sessionRegistry: SessionRegistry;
|
|
11
|
+
}
|
|
12
|
+
export interface AppServerNotificationInput {
|
|
13
|
+
readonly method: string;
|
|
14
|
+
readonly params: unknown;
|
|
15
|
+
}
|
|
16
|
+
export interface OpaqueAppServerEnvelope {
|
|
17
|
+
readonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;
|
|
18
|
+
readonly connectionId: string;
|
|
19
|
+
readonly externalSessionId: string | undefined;
|
|
20
|
+
readonly externalRequestId: string | undefined;
|
|
21
|
+
readonly externalMessageId: string | undefined;
|
|
22
|
+
readonly externalCallbackId: string | undefined;
|
|
23
|
+
readonly appThreadId: string | undefined;
|
|
24
|
+
readonly appSessionId: string | undefined;
|
|
25
|
+
readonly appTurnId: string | undefined;
|
|
26
|
+
readonly appItemId: string | undefined;
|
|
27
|
+
readonly appRequestId: string | undefined;
|
|
28
|
+
readonly sequence: number;
|
|
29
|
+
readonly streamClass: StreamClass;
|
|
30
|
+
readonly capabilityFlags: readonly string[];
|
|
31
|
+
readonly originalMethod: string;
|
|
32
|
+
readonly originalParams: unknown;
|
|
33
|
+
readonly redactionClass: "public-contract" | "secret-bearing";
|
|
34
|
+
}
|
|
35
|
+
export interface OpaqueNotificationProjection {
|
|
36
|
+
readonly kind: "opaque";
|
|
37
|
+
readonly method: "appServer/event";
|
|
38
|
+
readonly envelope: OpaqueAppServerEnvelope;
|
|
39
|
+
}
|
|
40
|
+
export interface SkippedNotificationProjection {
|
|
41
|
+
readonly kind: "skipped";
|
|
42
|
+
readonly reason: "notification-opt-out";
|
|
43
|
+
}
|
|
44
|
+
export type NotificationProjection = OpaqueNotificationProjection | SemanticItemStreamProjection | SkippedNotificationProjection;
|
|
45
|
+
export interface NotificationProjector {
|
|
46
|
+
project(input: AppServerNotificationInput): NotificationProjection;
|
|
47
|
+
}
|
|
48
|
+
export declare function createNotificationProjector(options: NotificationProjectorOptions): NotificationProjector;
|
|
49
|
+
//# sourceMappingURL=notification-projector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-projector.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/notification-projector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAiC,KAAK,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC9G,OAAO,EAA4B,oCAAoC,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC1C;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,eAAe,EAAE,OAAO,oCAAoC,CAAC;IACtE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;CAC9D;AAED,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;CAC3C;AAED,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;CACxC;AAED,MAAM,MAAM,sBAAsB,GAC/B,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,sBAAsB,CAAC;CACnE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,4BAA4B,GAAG,qBAAqB,CAExG"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { projectItemStreamNotification } from "./item-stream-projector.js";
|
|
2
|
+
import { classifyAppServerSurface, PI_CODEX_APP_SERVER_PROTOCOL_VERSION } from "./protocol-core.js";
|
|
3
|
+
export function createNotificationProjector(options) {
|
|
4
|
+
return new DefaultNotificationProjector(options);
|
|
5
|
+
}
|
|
6
|
+
class DefaultNotificationProjector {
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.sequence = 0;
|
|
9
|
+
this.connectionId = options.connectionId;
|
|
10
|
+
this.capabilityFlags = options.capabilityFlags;
|
|
11
|
+
this.notificationOptOuts = new Set(options.notificationOptOuts);
|
|
12
|
+
this.idMapper = options.idMapper;
|
|
13
|
+
this.sessionRegistry = options.sessionRegistry;
|
|
14
|
+
}
|
|
15
|
+
project(input) {
|
|
16
|
+
if (this.notificationOptOuts.has(input.method)) {
|
|
17
|
+
return { kind: "skipped", reason: "notification-opt-out" };
|
|
18
|
+
}
|
|
19
|
+
const sequence = this.nextSequence();
|
|
20
|
+
const appThreadId = readAppThreadId(input.params);
|
|
21
|
+
const externalSessionId = this.readExternalSessionId(appThreadId);
|
|
22
|
+
const semantic = projectItemStreamNotification({
|
|
23
|
+
method: input.method,
|
|
24
|
+
params: input.params,
|
|
25
|
+
sequence,
|
|
26
|
+
externalSessionId,
|
|
27
|
+
idMapper: this.idMapper,
|
|
28
|
+
});
|
|
29
|
+
if (semantic)
|
|
30
|
+
return semantic;
|
|
31
|
+
return {
|
|
32
|
+
kind: "opaque",
|
|
33
|
+
method: "appServer/event",
|
|
34
|
+
envelope: this.createOpaqueEnvelope(input, sequence, appThreadId, externalSessionId),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
nextSequence() {
|
|
38
|
+
this.sequence += 1;
|
|
39
|
+
return this.sequence;
|
|
40
|
+
}
|
|
41
|
+
readExternalSessionId(appThreadId) {
|
|
42
|
+
if (!appThreadId)
|
|
43
|
+
return undefined;
|
|
44
|
+
return this.sessionRegistry.getByAppThreadId(appThreadId)?.externalSessionId;
|
|
45
|
+
}
|
|
46
|
+
createOpaqueEnvelope(input, sequence, appThreadId, externalSessionId) {
|
|
47
|
+
const params = isRecord(input.params) ? input.params : {};
|
|
48
|
+
const binding = appThreadId ? this.sessionRegistry.getByAppThreadId(appThreadId) : undefined;
|
|
49
|
+
return {
|
|
50
|
+
protocolVersion: PI_CODEX_APP_SERVER_PROTOCOL_VERSION,
|
|
51
|
+
connectionId: this.connectionId,
|
|
52
|
+
externalSessionId,
|
|
53
|
+
externalRequestId: undefined,
|
|
54
|
+
externalMessageId: undefined,
|
|
55
|
+
externalCallbackId: undefined,
|
|
56
|
+
appThreadId,
|
|
57
|
+
appSessionId: binding?.appSessionId,
|
|
58
|
+
appTurnId: readAppTurnId(params),
|
|
59
|
+
appItemId: readAppItemId(input.params),
|
|
60
|
+
appRequestId: readAppRequestId(params),
|
|
61
|
+
sequence,
|
|
62
|
+
streamClass: classifyAppServerSurface(input.method)?.streamClass ?? "lossless",
|
|
63
|
+
capabilityFlags: this.capabilityFlags,
|
|
64
|
+
originalMethod: input.method,
|
|
65
|
+
originalParams: input.params,
|
|
66
|
+
redactionClass: "public-contract",
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function readAppThreadId(params) {
|
|
71
|
+
if (!isRecord(params))
|
|
72
|
+
return undefined;
|
|
73
|
+
return readString(params, "threadId") ?? readString(params, "thread_id");
|
|
74
|
+
}
|
|
75
|
+
function readAppTurnId(params) {
|
|
76
|
+
return readString(params, "turnId") ?? readString(params, "turn_id");
|
|
77
|
+
}
|
|
78
|
+
function readAppItemId(params) {
|
|
79
|
+
if (!isRecord(params))
|
|
80
|
+
return undefined;
|
|
81
|
+
const itemId = readString(params, "itemId") ?? readString(params, "item_id");
|
|
82
|
+
if (itemId)
|
|
83
|
+
return itemId;
|
|
84
|
+
const item = params.item;
|
|
85
|
+
if (!isRecord(item))
|
|
86
|
+
return undefined;
|
|
87
|
+
return readString(item, "id");
|
|
88
|
+
}
|
|
89
|
+
function readAppRequestId(params) {
|
|
90
|
+
return readString(params, "requestId") ?? readString(params, "request_id") ?? readString(params, "id");
|
|
91
|
+
}
|
|
92
|
+
function readString(input, key) {
|
|
93
|
+
const value = input[key];
|
|
94
|
+
return typeof value === "string" ? value : undefined;
|
|
95
|
+
}
|
|
96
|
+
function isRecord(value) {
|
|
97
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=notification-projector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-projector.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/notification-projector.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IdMapper } from \"./id-mapper.ts\";\nimport { projectItemStreamNotification, type SemanticItemStreamProjection } from \"./item-stream-projector.ts\";\nimport { classifyAppServerSurface, PI_CODEX_APP_SERVER_PROTOCOL_VERSION, type StreamClass } from \"./protocol-core.ts\";\nimport type { SessionRegistry } from \"./session-registry.ts\";\n\nexport interface NotificationProjectorOptions {\n\treadonly connectionId: string;\n\treadonly capabilityFlags: readonly string[];\n\treadonly notificationOptOuts: readonly string[];\n\treadonly idMapper: IdMapper;\n\treadonly sessionRegistry: SessionRegistry;\n}\n\nexport interface AppServerNotificationInput {\n\treadonly method: string;\n\treadonly params: unknown;\n}\n\nexport interface OpaqueAppServerEnvelope {\n\treadonly protocolVersion: typeof PI_CODEX_APP_SERVER_PROTOCOL_VERSION;\n\treadonly connectionId: string;\n\treadonly externalSessionId: string | undefined;\n\treadonly externalRequestId: string | undefined;\n\treadonly externalMessageId: string | undefined;\n\treadonly externalCallbackId: string | undefined;\n\treadonly appThreadId: string | undefined;\n\treadonly appSessionId: string | undefined;\n\treadonly appTurnId: string | undefined;\n\treadonly appItemId: string | undefined;\n\treadonly appRequestId: string | undefined;\n\treadonly sequence: number;\n\treadonly streamClass: StreamClass;\n\treadonly capabilityFlags: readonly string[];\n\treadonly originalMethod: string;\n\treadonly originalParams: unknown;\n\treadonly redactionClass: \"public-contract\" | \"secret-bearing\";\n}\n\nexport interface OpaqueNotificationProjection {\n\treadonly kind: \"opaque\";\n\treadonly method: \"appServer/event\";\n\treadonly envelope: OpaqueAppServerEnvelope;\n}\n\nexport interface SkippedNotificationProjection {\n\treadonly kind: \"skipped\";\n\treadonly reason: \"notification-opt-out\";\n}\n\nexport type NotificationProjection =\n\t| OpaqueNotificationProjection\n\t| SemanticItemStreamProjection\n\t| SkippedNotificationProjection;\n\nexport interface NotificationProjector {\n\tproject(input: AppServerNotificationInput): NotificationProjection;\n}\n\nexport function createNotificationProjector(options: NotificationProjectorOptions): NotificationProjector {\n\treturn new DefaultNotificationProjector(options);\n}\n\nclass DefaultNotificationProjector implements NotificationProjector {\n\tprivate readonly connectionId: string;\n\tprivate readonly capabilityFlags: readonly string[];\n\tprivate readonly notificationOptOuts: ReadonlySet<string>;\n\tprivate readonly idMapper: IdMapper;\n\tprivate readonly sessionRegistry: SessionRegistry;\n\tprivate sequence = 0;\n\n\tconstructor(options: NotificationProjectorOptions) {\n\t\tthis.connectionId = options.connectionId;\n\t\tthis.capabilityFlags = options.capabilityFlags;\n\t\tthis.notificationOptOuts = new Set(options.notificationOptOuts);\n\t\tthis.idMapper = options.idMapper;\n\t\tthis.sessionRegistry = options.sessionRegistry;\n\t}\n\n\tproject(input: AppServerNotificationInput): NotificationProjection {\n\t\tif (this.notificationOptOuts.has(input.method)) {\n\t\t\treturn { kind: \"skipped\", reason: \"notification-opt-out\" };\n\t\t}\n\n\t\tconst sequence = this.nextSequence();\n\t\tconst appThreadId = readAppThreadId(input.params);\n\t\tconst externalSessionId = this.readExternalSessionId(appThreadId);\n\t\tconst semantic = projectItemStreamNotification({\n\t\t\tmethod: input.method,\n\t\t\tparams: input.params,\n\t\t\tsequence,\n\t\t\texternalSessionId,\n\t\t\tidMapper: this.idMapper,\n\t\t});\n\t\tif (semantic) return semantic;\n\n\t\treturn {\n\t\t\tkind: \"opaque\",\n\t\t\tmethod: \"appServer/event\",\n\t\t\tenvelope: this.createOpaqueEnvelope(input, sequence, appThreadId, externalSessionId),\n\t\t};\n\t}\n\n\tprivate nextSequence(): number {\n\t\tthis.sequence += 1;\n\t\treturn this.sequence;\n\t}\n\n\tprivate readExternalSessionId(appThreadId: string | undefined): string | undefined {\n\t\tif (!appThreadId) return undefined;\n\t\treturn this.sessionRegistry.getByAppThreadId(appThreadId)?.externalSessionId;\n\t}\n\n\tprivate createOpaqueEnvelope(\n\t\tinput: AppServerNotificationInput,\n\t\tsequence: number,\n\t\tappThreadId: string | undefined,\n\t\texternalSessionId: string | undefined,\n\t): OpaqueAppServerEnvelope {\n\t\tconst params = isRecord(input.params) ? input.params : {};\n\t\tconst binding = appThreadId ? this.sessionRegistry.getByAppThreadId(appThreadId) : undefined;\n\t\treturn {\n\t\t\tprotocolVersion: PI_CODEX_APP_SERVER_PROTOCOL_VERSION,\n\t\t\tconnectionId: this.connectionId,\n\t\t\texternalSessionId,\n\t\t\texternalRequestId: undefined,\n\t\t\texternalMessageId: undefined,\n\t\t\texternalCallbackId: undefined,\n\t\t\tappThreadId,\n\t\t\tappSessionId: binding?.appSessionId,\n\t\t\tappTurnId: readAppTurnId(params),\n\t\t\tappItemId: readAppItemId(input.params),\n\t\t\tappRequestId: readAppRequestId(params),\n\t\t\tsequence,\n\t\t\tstreamClass: classifyAppServerSurface(input.method)?.streamClass ?? \"lossless\",\n\t\t\tcapabilityFlags: this.capabilityFlags,\n\t\t\toriginalMethod: input.method,\n\t\t\toriginalParams: input.params,\n\t\t\tredactionClass: \"public-contract\",\n\t\t};\n\t}\n}\n\nfunction readAppThreadId(params: unknown): string | undefined {\n\tif (!isRecord(params)) return undefined;\n\treturn readString(params, \"threadId\") ?? readString(params, \"thread_id\");\n}\n\nfunction readAppTurnId(params: Readonly<Record<string, unknown>>): string | undefined {\n\treturn readString(params, \"turnId\") ?? readString(params, \"turn_id\");\n}\n\nfunction readAppItemId(params: unknown): string | undefined {\n\tif (!isRecord(params)) return undefined;\n\tconst itemId = readString(params, \"itemId\") ?? readString(params, \"item_id\");\n\tif (itemId) return itemId;\n\tconst item = params.item;\n\tif (!isRecord(item)) return undefined;\n\treturn readString(item, \"id\");\n}\n\nfunction readAppRequestId(params: Readonly<Record<string, unknown>>): string | undefined {\n\treturn readString(params, \"requestId\") ?? readString(params, \"request_id\") ?? readString(params, \"id\");\n}\n\nfunction readString(input: Readonly<Record<string, unknown>>, key: string): string | undefined {\n\tconst value = input[key];\n\treturn typeof value === \"string\" ? value : undefined;\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,42 @@
|
|
|
1
|
+
import type { AppServerClientRequestSurface } from "./protocol-required-surfaces.ts";
|
|
2
|
+
export { APP_SERVER_SURFACE_INVENTORY } from "./protocol-inventory.ts";
|
|
3
|
+
export declare const PI_CODEX_APP_SERVER_PROTOCOL_VERSION = "2026-06-24.pr-001";
|
|
4
|
+
export type CoreExternalProtocolMethodName = "initialize" | "initialized" | "session/new" | "session/resume" | "session/fork" | "session/list" | "session/read" | "session/archive" | "session/delete" | "session/unsubscribe" | "turn/start" | "turn/steer" | "turn/interrupt" | "callback/respond" | "callback/reject" | "appServer/event" | "appServer/request" | "appServer/response" | "lag" | "disconnect" | "resume";
|
|
5
|
+
export type ExternalProtocolMethodName = CoreExternalProtocolMethodName | AppServerClientRequestSurface;
|
|
6
|
+
export type StreamClass = "lossless" | "best-effort" | "snapshot-authoritative" | "control";
|
|
7
|
+
export type RelayClass = "semantic" | "opaque-lossless" | "opaque-best-effort" | "snapshot-authoritative";
|
|
8
|
+
export type SurfaceDirection = "external-to-app" | "app-to-external" | "bidirectional";
|
|
9
|
+
export interface ExternalProtocolMethod {
|
|
10
|
+
readonly name: ExternalProtocolMethodName;
|
|
11
|
+
readonly direction: SurfaceDirection;
|
|
12
|
+
readonly streamClass: StreamClass;
|
|
13
|
+
readonly capabilityGate: string;
|
|
14
|
+
readonly errorBehavior: string;
|
|
15
|
+
}
|
|
16
|
+
export interface OpaqueEnvelopeField {
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly required: boolean;
|
|
19
|
+
readonly description: string;
|
|
20
|
+
}
|
|
21
|
+
export interface AppServerSurfaceInventoryEntry {
|
|
22
|
+
readonly method: string;
|
|
23
|
+
readonly direction: SurfaceDirection;
|
|
24
|
+
readonly relayClass: RelayClass;
|
|
25
|
+
readonly streamClass: StreamClass;
|
|
26
|
+
readonly surface: string;
|
|
27
|
+
readonly idFields: readonly string[];
|
|
28
|
+
readonly source: string;
|
|
29
|
+
}
|
|
30
|
+
export interface ReviewerEvidencePacketTemplate {
|
|
31
|
+
readonly summaryFile: string;
|
|
32
|
+
readonly commandsFile: string;
|
|
33
|
+
readonly inventoryDiff: string;
|
|
34
|
+
readonly cleanupReceipt: string;
|
|
35
|
+
readonly secretSafety: string;
|
|
36
|
+
readonly residualRisks: string;
|
|
37
|
+
}
|
|
38
|
+
export declare const EXTERNAL_PROTOCOL_METHODS: readonly ExternalProtocolMethod[];
|
|
39
|
+
export declare const OPAQUE_APP_SERVER_ENVELOPE_FIELDS: readonly OpaqueEnvelopeField[];
|
|
40
|
+
export declare function classifyAppServerSurface(method: string): AppServerSurfaceInventoryEntry | undefined;
|
|
41
|
+
export declare function createReviewerEvidencePacketTemplate(): ReviewerEvidencePacketTemplate;
|
|
42
|
+
//# sourceMappingURL=protocol-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-core.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/protocol-core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAEvE,eAAO,MAAM,oCAAoC,sBAAsB,CAAC;AAExE,MAAM,MAAM,8BAA8B,GACvC,YAAY,GACZ,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,GACrB,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,KAAK,GACL,YAAY,GACZ,QAAQ,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,8BAA8B,GAAG,6BAA6B,CAAC;AAExG,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,wBAAwB,GAAG,SAAS,CAAC;AAC5F,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAC1G,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEvF,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,yBAAyB,EAAE,SAAS,sBAAsB,EAoJtE,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,SAAS,mBAAmB,EAkB3E,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,8BAA8B,GAAG,SAAS,CAOnG;AAED,wBAAgB,oCAAoC,IAAI,8BAA8B,CAUrF"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { APP_SERVER_SURFACE_INVENTORY } from "./protocol-inventory.js";
|
|
2
|
+
export { APP_SERVER_SURFACE_INVENTORY } from "./protocol-inventory.js";
|
|
3
|
+
export const PI_CODEX_APP_SERVER_PROTOCOL_VERSION = "2026-06-24.pr-001";
|
|
4
|
+
export const EXTERNAL_PROTOCOL_METHODS = [
|
|
5
|
+
{
|
|
6
|
+
name: "initialize",
|
|
7
|
+
direction: "external-to-app",
|
|
8
|
+
streamClass: "control",
|
|
9
|
+
capabilityGate: "opaque notifications and opaque callbacks",
|
|
10
|
+
errorBehavior: "Reject incompatible clients before any app-server request is routed.",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: "initialized",
|
|
14
|
+
direction: "external-to-app",
|
|
15
|
+
streamClass: "control",
|
|
16
|
+
capabilityGate: "initialize accepted",
|
|
17
|
+
errorBehavior: "Return method-order error if sent before initialize succeeds.",
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: "session/new",
|
|
21
|
+
direction: "external-to-app",
|
|
22
|
+
streamClass: "snapshot-authoritative",
|
|
23
|
+
capabilityGate: "thread lifecycle",
|
|
24
|
+
errorBehavior: "Pass through app-server validation errors with source metadata.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "session/resume",
|
|
28
|
+
direction: "external-to-app",
|
|
29
|
+
streamClass: "snapshot-authoritative",
|
|
30
|
+
capabilityGate: "thread lifecycle",
|
|
31
|
+
errorBehavior: "Return explicit resume failure; never invent missing app-server IDs.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: "session/fork",
|
|
35
|
+
direction: "external-to-app",
|
|
36
|
+
streamClass: "snapshot-authoritative",
|
|
37
|
+
capabilityGate: "thread lifecycle",
|
|
38
|
+
errorBehavior: "Reject when source mapping is missing or app-server fork fails.",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: "session/list",
|
|
42
|
+
direction: "external-to-app",
|
|
43
|
+
streamClass: "snapshot-authoritative",
|
|
44
|
+
capabilityGate: "thread inventory",
|
|
45
|
+
errorBehavior: "Preserve app-server cursor and error payloads.",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "session/read",
|
|
49
|
+
direction: "external-to-app",
|
|
50
|
+
streamClass: "snapshot-authoritative",
|
|
51
|
+
capabilityGate: "thread inventory",
|
|
52
|
+
errorBehavior: "Preserve app-server read errors and tombstone state.",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "session/archive",
|
|
56
|
+
direction: "external-to-app",
|
|
57
|
+
streamClass: "control",
|
|
58
|
+
capabilityGate: "thread lifecycle",
|
|
59
|
+
errorBehavior: "Pass through archive errors and tombstone only after app-server success.",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "session/delete",
|
|
63
|
+
direction: "external-to-app",
|
|
64
|
+
streamClass: "control",
|
|
65
|
+
capabilityGate: "thread lifecycle",
|
|
66
|
+
errorBehavior: "Pass through delete errors and tombstone only after app-server success.",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: "session/unsubscribe",
|
|
70
|
+
direction: "external-to-app",
|
|
71
|
+
streamClass: "control",
|
|
72
|
+
capabilityGate: "thread lifecycle",
|
|
73
|
+
errorBehavior: "Propagate unsubscribe failure without deleting the thread mapping.",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "turn/start",
|
|
77
|
+
direction: "external-to-app",
|
|
78
|
+
streamClass: "lossless",
|
|
79
|
+
capabilityGate: "turn lifecycle",
|
|
80
|
+
errorBehavior: "Reject if no bound app-server thread exists.",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "turn/steer",
|
|
84
|
+
direction: "external-to-app",
|
|
85
|
+
streamClass: "lossless",
|
|
86
|
+
capabilityGate: "turn lifecycle",
|
|
87
|
+
errorBehavior: "Preserve expected app-server turn guard errors.",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: "turn/interrupt",
|
|
91
|
+
direction: "external-to-app",
|
|
92
|
+
streamClass: "control",
|
|
93
|
+
capabilityGate: "turn lifecycle",
|
|
94
|
+
errorBehavior: "Completion is proven only by app-server turn/completed interrupted status.",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: "callback/respond",
|
|
98
|
+
direction: "external-to-app",
|
|
99
|
+
streamClass: "lossless",
|
|
100
|
+
capabilityGate: "opaque callbacks",
|
|
101
|
+
errorBehavior: "Reject unknown, duplicate, or timed-out callback IDs explicitly.",
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: "callback/reject",
|
|
105
|
+
direction: "external-to-app",
|
|
106
|
+
streamClass: "lossless",
|
|
107
|
+
capabilityGate: "opaque callbacks",
|
|
108
|
+
errorBehavior: "Pass structured rejection to app-server; never auto-approve.",
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: "appServer/event",
|
|
112
|
+
direction: "app-to-external",
|
|
113
|
+
streamClass: "lossless",
|
|
114
|
+
capabilityGate: "opaque notifications",
|
|
115
|
+
errorBehavior: "Connection is incompatible if opaque notifications are refused.",
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: "appServer/request",
|
|
119
|
+
direction: "app-to-external",
|
|
120
|
+
streamClass: "lossless",
|
|
121
|
+
capabilityGate: "opaque callbacks",
|
|
122
|
+
errorBehavior: "Reject app-server callback if it cannot be delivered externally.",
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: "appServer/response",
|
|
126
|
+
direction: "app-to-external",
|
|
127
|
+
streamClass: "lossless",
|
|
128
|
+
capabilityGate: "opaque responses",
|
|
129
|
+
errorBehavior: "Preserve original app-server JSON-RPC code, message, and data.",
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: "lag",
|
|
133
|
+
direction: "app-to-external",
|
|
134
|
+
streamClass: "control",
|
|
135
|
+
capabilityGate: "stream health",
|
|
136
|
+
errorBehavior: "Emit before the next lossless event after best-effort drops.",
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: "disconnect",
|
|
140
|
+
direction: "app-to-external",
|
|
141
|
+
streamClass: "control",
|
|
142
|
+
capabilityGate: "transport health",
|
|
143
|
+
errorBehavior: "Surface disconnect without claiming lost deltas were replayed.",
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: "resume",
|
|
147
|
+
direction: "bidirectional",
|
|
148
|
+
streamClass: "snapshot-authoritative",
|
|
149
|
+
capabilityGate: "resume",
|
|
150
|
+
errorBehavior: "Rebuild from app-server snapshot plus new stream, or return explicit resume error.",
|
|
151
|
+
},
|
|
152
|
+
];
|
|
153
|
+
export const OPAQUE_APP_SERVER_ENVELOPE_FIELDS = [
|
|
154
|
+
{ name: "protocolVersion", required: true, description: "pi-codex-app-server protocol version." },
|
|
155
|
+
{ name: "connectionId", required: true, description: "External connection correlation ID." },
|
|
156
|
+
{ name: "externalSessionId", required: false, description: "External session correlation ID." },
|
|
157
|
+
{ name: "externalRequestId", required: false, description: "External JSON-RPC request correlation ID." },
|
|
158
|
+
{ name: "externalMessageId", required: false, description: "External message correlation ID." },
|
|
159
|
+
{ name: "externalCallbackId", required: false, description: "External callback correlation ID." },
|
|
160
|
+
{ name: "appThreadId", required: false, description: "Authoritative app-server thread_id." },
|
|
161
|
+
{ name: "appSessionId", required: false, description: "Authoritative app-server session_id." },
|
|
162
|
+
{ name: "appTurnId", required: false, description: "Authoritative app-server turn_id." },
|
|
163
|
+
{ name: "appItemId", required: false, description: "Authoritative app-server item_id." },
|
|
164
|
+
{ name: "appRequestId", required: false, description: "Authoritative app-server RequestId or JSON-RPC id." },
|
|
165
|
+
{ name: "sequence", required: true, description: "Adapter-owned per-connection ordering sequence." },
|
|
166
|
+
{ name: "streamClass", required: true, description: "Lossless, best-effort, snapshot, or control classification." },
|
|
167
|
+
{ name: "capabilityFlags", required: true, description: "Negotiated capability flags that allowed this relay." },
|
|
168
|
+
{ name: "originalMethod", required: true, description: "Original app-server method name." },
|
|
169
|
+
{ name: "originalParams", required: true, description: "Original app-server params object." },
|
|
170
|
+
{ name: "redactionClass", required: true, description: "Evidence redaction class for the original payload." },
|
|
171
|
+
];
|
|
172
|
+
export function classifyAppServerSurface(method) {
|
|
173
|
+
const exactMatch = APP_SERVER_SURFACE_INVENTORY.find((entry) => entry.method === method);
|
|
174
|
+
if (exactMatch)
|
|
175
|
+
return exactMatch;
|
|
176
|
+
if (method.startsWith("appServer/")) {
|
|
177
|
+
return APP_SERVER_SURFACE_INVENTORY.find((entry) => entry.method === "appServer/futureMethod");
|
|
178
|
+
}
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
export function createReviewerEvidencePacketTemplate() {
|
|
182
|
+
return {
|
|
183
|
+
summaryFile: "summary.md records user-facing change, before/after behavior, observed result, and residual risk.",
|
|
184
|
+
commandsFile: "commands.txt records exact commands, cwd, sanitized environment choices, and exit codes.",
|
|
185
|
+
inventoryDiff: "inventory-diff.json records expected vs classified app-server surfaces and must be empty.",
|
|
186
|
+
cleanupReceipt: "cleanup-receipt.txt states: No runtime process, socket, port, tmux session, or temp dir was created by PR-001.",
|
|
187
|
+
secretSafety: "No raw secret-bearing logs, auth headers, tokens, cookies, or private credentials are allowed.",
|
|
188
|
+
residualRisks: "residual-risks.md maps deferred runtime behavior to the later PR that owns it.",
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=protocol-core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-core.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/protocol-core.ts"],"names":[],"mappings":"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","sourcesContent":["import { APP_SERVER_SURFACE_INVENTORY } from \"./protocol-inventory.ts\";\nimport type { AppServerClientRequestSurface } from \"./protocol-required-surfaces.ts\";\n\nexport { APP_SERVER_SURFACE_INVENTORY } from \"./protocol-inventory.ts\";\n\nexport const PI_CODEX_APP_SERVER_PROTOCOL_VERSION = \"2026-06-24.pr-001\";\n\nexport type CoreExternalProtocolMethodName =\n\t| \"initialize\"\n\t| \"initialized\"\n\t| \"session/new\"\n\t| \"session/resume\"\n\t| \"session/fork\"\n\t| \"session/list\"\n\t| \"session/read\"\n\t| \"session/archive\"\n\t| \"session/delete\"\n\t| \"session/unsubscribe\"\n\t| \"turn/start\"\n\t| \"turn/steer\"\n\t| \"turn/interrupt\"\n\t| \"callback/respond\"\n\t| \"callback/reject\"\n\t| \"appServer/event\"\n\t| \"appServer/request\"\n\t| \"appServer/response\"\n\t| \"lag\"\n\t| \"disconnect\"\n\t| \"resume\";\nexport type ExternalProtocolMethodName = CoreExternalProtocolMethodName | AppServerClientRequestSurface;\n\nexport type StreamClass = \"lossless\" | \"best-effort\" | \"snapshot-authoritative\" | \"control\";\nexport type RelayClass = \"semantic\" | \"opaque-lossless\" | \"opaque-best-effort\" | \"snapshot-authoritative\";\nexport type SurfaceDirection = \"external-to-app\" | \"app-to-external\" | \"bidirectional\";\n\nexport interface ExternalProtocolMethod {\n\treadonly name: ExternalProtocolMethodName;\n\treadonly direction: SurfaceDirection;\n\treadonly streamClass: StreamClass;\n\treadonly capabilityGate: string;\n\treadonly errorBehavior: string;\n}\n\nexport interface OpaqueEnvelopeField {\n\treadonly name: string;\n\treadonly required: boolean;\n\treadonly description: string;\n}\n\nexport interface AppServerSurfaceInventoryEntry {\n\treadonly method: string;\n\treadonly direction: SurfaceDirection;\n\treadonly relayClass: RelayClass;\n\treadonly streamClass: StreamClass;\n\treadonly surface: string;\n\treadonly idFields: readonly string[];\n\treadonly source: string;\n}\n\nexport interface ReviewerEvidencePacketTemplate {\n\treadonly summaryFile: string;\n\treadonly commandsFile: string;\n\treadonly inventoryDiff: string;\n\treadonly cleanupReceipt: string;\n\treadonly secretSafety: string;\n\treadonly residualRisks: string;\n}\n\nexport const EXTERNAL_PROTOCOL_METHODS: readonly ExternalProtocolMethod[] = [\n\t{\n\t\tname: \"initialize\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"control\",\n\t\tcapabilityGate: \"opaque notifications and opaque callbacks\",\n\t\terrorBehavior: \"Reject incompatible clients before any app-server request is routed.\",\n\t},\n\t{\n\t\tname: \"initialized\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"control\",\n\t\tcapabilityGate: \"initialize accepted\",\n\t\terrorBehavior: \"Return method-order error if sent before initialize succeeds.\",\n\t},\n\t{\n\t\tname: \"session/new\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"snapshot-authoritative\",\n\t\tcapabilityGate: \"thread lifecycle\",\n\t\terrorBehavior: \"Pass through app-server validation errors with source metadata.\",\n\t},\n\t{\n\t\tname: \"session/resume\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"snapshot-authoritative\",\n\t\tcapabilityGate: \"thread lifecycle\",\n\t\terrorBehavior: \"Return explicit resume failure; never invent missing app-server IDs.\",\n\t},\n\t{\n\t\tname: \"session/fork\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"snapshot-authoritative\",\n\t\tcapabilityGate: \"thread lifecycle\",\n\t\terrorBehavior: \"Reject when source mapping is missing or app-server fork fails.\",\n\t},\n\t{\n\t\tname: \"session/list\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"snapshot-authoritative\",\n\t\tcapabilityGate: \"thread inventory\",\n\t\terrorBehavior: \"Preserve app-server cursor and error payloads.\",\n\t},\n\t{\n\t\tname: \"session/read\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"snapshot-authoritative\",\n\t\tcapabilityGate: \"thread inventory\",\n\t\terrorBehavior: \"Preserve app-server read errors and tombstone state.\",\n\t},\n\t{\n\t\tname: \"session/archive\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"control\",\n\t\tcapabilityGate: \"thread lifecycle\",\n\t\terrorBehavior: \"Pass through archive errors and tombstone only after app-server success.\",\n\t},\n\t{\n\t\tname: \"session/delete\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"control\",\n\t\tcapabilityGate: \"thread lifecycle\",\n\t\terrorBehavior: \"Pass through delete errors and tombstone only after app-server success.\",\n\t},\n\t{\n\t\tname: \"session/unsubscribe\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"control\",\n\t\tcapabilityGate: \"thread lifecycle\",\n\t\terrorBehavior: \"Propagate unsubscribe failure without deleting the thread mapping.\",\n\t},\n\t{\n\t\tname: \"turn/start\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"lossless\",\n\t\tcapabilityGate: \"turn lifecycle\",\n\t\terrorBehavior: \"Reject if no bound app-server thread exists.\",\n\t},\n\t{\n\t\tname: \"turn/steer\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"lossless\",\n\t\tcapabilityGate: \"turn lifecycle\",\n\t\terrorBehavior: \"Preserve expected app-server turn guard errors.\",\n\t},\n\t{\n\t\tname: \"turn/interrupt\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"control\",\n\t\tcapabilityGate: \"turn lifecycle\",\n\t\terrorBehavior: \"Completion is proven only by app-server turn/completed interrupted status.\",\n\t},\n\t{\n\t\tname: \"callback/respond\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"lossless\",\n\t\tcapabilityGate: \"opaque callbacks\",\n\t\terrorBehavior: \"Reject unknown, duplicate, or timed-out callback IDs explicitly.\",\n\t},\n\t{\n\t\tname: \"callback/reject\",\n\t\tdirection: \"external-to-app\",\n\t\tstreamClass: \"lossless\",\n\t\tcapabilityGate: \"opaque callbacks\",\n\t\terrorBehavior: \"Pass structured rejection to app-server; never auto-approve.\",\n\t},\n\t{\n\t\tname: \"appServer/event\",\n\t\tdirection: \"app-to-external\",\n\t\tstreamClass: \"lossless\",\n\t\tcapabilityGate: \"opaque notifications\",\n\t\terrorBehavior: \"Connection is incompatible if opaque notifications are refused.\",\n\t},\n\t{\n\t\tname: \"appServer/request\",\n\t\tdirection: \"app-to-external\",\n\t\tstreamClass: \"lossless\",\n\t\tcapabilityGate: \"opaque callbacks\",\n\t\terrorBehavior: \"Reject app-server callback if it cannot be delivered externally.\",\n\t},\n\t{\n\t\tname: \"appServer/response\",\n\t\tdirection: \"app-to-external\",\n\t\tstreamClass: \"lossless\",\n\t\tcapabilityGate: \"opaque responses\",\n\t\terrorBehavior: \"Preserve original app-server JSON-RPC code, message, and data.\",\n\t},\n\t{\n\t\tname: \"lag\",\n\t\tdirection: \"app-to-external\",\n\t\tstreamClass: \"control\",\n\t\tcapabilityGate: \"stream health\",\n\t\terrorBehavior: \"Emit before the next lossless event after best-effort drops.\",\n\t},\n\t{\n\t\tname: \"disconnect\",\n\t\tdirection: \"app-to-external\",\n\t\tstreamClass: \"control\",\n\t\tcapabilityGate: \"transport health\",\n\t\terrorBehavior: \"Surface disconnect without claiming lost deltas were replayed.\",\n\t},\n\t{\n\t\tname: \"resume\",\n\t\tdirection: \"bidirectional\",\n\t\tstreamClass: \"snapshot-authoritative\",\n\t\tcapabilityGate: \"resume\",\n\t\terrorBehavior: \"Rebuild from app-server snapshot plus new stream, or return explicit resume error.\",\n\t},\n];\n\nexport const OPAQUE_APP_SERVER_ENVELOPE_FIELDS: readonly OpaqueEnvelopeField[] = [\n\t{ name: \"protocolVersion\", required: true, description: \"pi-codex-app-server protocol version.\" },\n\t{ name: \"connectionId\", required: true, description: \"External connection correlation ID.\" },\n\t{ name: \"externalSessionId\", required: false, description: \"External session correlation ID.\" },\n\t{ name: \"externalRequestId\", required: false, description: \"External JSON-RPC request correlation ID.\" },\n\t{ name: \"externalMessageId\", required: false, description: \"External message correlation ID.\" },\n\t{ name: \"externalCallbackId\", required: false, description: \"External callback correlation ID.\" },\n\t{ name: \"appThreadId\", required: false, description: \"Authoritative app-server thread_id.\" },\n\t{ name: \"appSessionId\", required: false, description: \"Authoritative app-server session_id.\" },\n\t{ name: \"appTurnId\", required: false, description: \"Authoritative app-server turn_id.\" },\n\t{ name: \"appItemId\", required: false, description: \"Authoritative app-server item_id.\" },\n\t{ name: \"appRequestId\", required: false, description: \"Authoritative app-server RequestId or JSON-RPC id.\" },\n\t{ name: \"sequence\", required: true, description: \"Adapter-owned per-connection ordering sequence.\" },\n\t{ name: \"streamClass\", required: true, description: \"Lossless, best-effort, snapshot, or control classification.\" },\n\t{ name: \"capabilityFlags\", required: true, description: \"Negotiated capability flags that allowed this relay.\" },\n\t{ name: \"originalMethod\", required: true, description: \"Original app-server method name.\" },\n\t{ name: \"originalParams\", required: true, description: \"Original app-server params object.\" },\n\t{ name: \"redactionClass\", required: true, description: \"Evidence redaction class for the original payload.\" },\n];\n\nexport function classifyAppServerSurface(method: string): AppServerSurfaceInventoryEntry | undefined {\n\tconst exactMatch = APP_SERVER_SURFACE_INVENTORY.find((entry) => entry.method === method);\n\tif (exactMatch) return exactMatch;\n\tif (method.startsWith(\"appServer/\")) {\n\t\treturn APP_SERVER_SURFACE_INVENTORY.find((entry) => entry.method === \"appServer/futureMethod\");\n\t}\n\treturn undefined;\n}\n\nexport function createReviewerEvidencePacketTemplate(): ReviewerEvidencePacketTemplate {\n\treturn {\n\t\tsummaryFile: \"summary.md records user-facing change, before/after behavior, observed result, and residual risk.\",\n\t\tcommandsFile: \"commands.txt records exact commands, cwd, sanitized environment choices, and exit codes.\",\n\t\tinventoryDiff: \"inventory-diff.json records expected vs classified app-server surfaces and must be empty.\",\n\t\tcleanupReceipt:\n\t\t\t\"cleanup-receipt.txt states: No runtime process, socket, port, tmux session, or temp dir was created by PR-001.\",\n\t\tsecretSafety: \"No raw secret-bearing logs, auth headers, tokens, cookies, or private credentials are allowed.\",\n\t\tresidualRisks: \"residual-risks.md maps deferred runtime behavior to the later PR that owns it.\",\n\t};\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-inventory.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/protocol-inventory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAA6C,MAAM,oBAAoB,CAAC;AAmFpH,eAAO,MAAM,4BAA4B,EAAE,SAAS,8BAA8B,EAY/E,CAAC"}
|