@code-yeongyu/senpi 2026.6.21 → 2026.6.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +151 -0
- package/README.md +41 -5
- package/dist/bun/register-bedrock.js +1 -1
- package/dist/bun/register-bedrock.js.map +1 -1
- package/dist/cli/args.js +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +13 -25
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/session-picker.d.ts +2 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +5 -4
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli/startup-ui.d.ts +4 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +63 -14
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/core/agent-session.d.ts +4 -3
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +34 -26
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +6 -12
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +4 -19
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +2 -2
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +7 -4
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/dynamic-prompt/style.d.ts.map +1 -1
- package/dist/core/dynamic-prompt/style.js +26 -1
- package/dist/core/dynamic-prompt/style.js.map +1 -1
- package/dist/core/experimental.d.ts +2 -0
- package/dist/core/experimental.d.ts.map +1 -0
- package/dist/core/experimental.js +4 -0
- package/dist/core/experimental.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/openai-remote.d.ts +1 -1
- package/dist/core/extensions/builtin/compaction/openai-remote.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/openai-remote.js +1 -1
- package/dist/core/extensions/builtin/compaction/openai-remote.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.js +2 -1
- package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
- package/dist/core/extensions/builtin/goal/command-registration.d.ts +12 -0
- package/dist/core/extensions/builtin/goal/command-registration.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/command-registration.js +86 -0
- package/dist/core/extensions/builtin/goal/command-registration.js.map +1 -0
- package/dist/core/extensions/builtin/goal/continuation.d.ts +2 -1
- package/dist/core/extensions/builtin/goal/continuation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/continuation.js +33 -2
- package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/index.js +19 -136
- package/dist/core/extensions/builtin/goal/index.js.map +1 -1
- package/dist/core/extensions/builtin/goal/tool-registration.d.ts +10 -0
- package/dist/core/extensions/builtin/goal/tool-registration.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/tool-registration.js +63 -0
- package/dist/core/extensions/builtin/goal/tool-registration.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/command-runner.d.ts +25 -0
- package/dist/core/extensions/builtin/hooks/command-runner.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/command-runner.js +152 -0
- package/dist/core/extensions/builtin/hooks/command-runner.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/command.d.ts +11 -0
- package/dist/core/extensions/builtin/hooks/command.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/command.js +180 -0
- package/dist/core/extensions/builtin/hooks/command.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/config-loader.d.ts +19 -0
- package/dist/core/extensions/builtin/hooks/config-loader.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/config-loader.js +125 -0
- package/dist/core/extensions/builtin/hooks/config-loader.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.d.ts +10 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.js +14 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.d.ts +60 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.js +161 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/handler.d.ts +12 -0
- package/dist/core/extensions/builtin/hooks/handler.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/handler.js +128 -0
- package/dist/core/extensions/builtin/hooks/handler.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/index.d.ts +6 -0
- package/dist/core/extensions/builtin/hooks/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/index.js +216 -0
- package/dist/core/extensions/builtin/hooks/index.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.d.ts +29 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.js +276 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/matcher.d.ts +7 -0
- package/dist/core/extensions/builtin/hooks/matcher.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/matcher.js +109 -0
- package/dist/core/extensions/builtin/hooks/matcher.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.d.ts +29 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.js +47 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-parser.d.ts +27 -0
- package/dist/core/extensions/builtin/hooks/output-parser.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-parser.js +168 -0
- package/dist/core/extensions/builtin/hooks/output-parser.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.d.ts +11 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.js +138 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.d.ts +47 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.js +86 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.d.ts +30 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.js +59 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/safety.d.ts +14 -0
- package/dist/core/extensions/builtin/hooks/safety.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/safety.js +179 -0
- package/dist/core/extensions/builtin/hooks/safety.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/schema.d.ts +3 -0
- package/dist/core/extensions/builtin/hooks/schema.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/schema.js +94 -0
- package/dist/core/extensions/builtin/hooks/schema.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.d.ts +18 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.js +282 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.d.ts +11 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.js +158 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.d.ts +24 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.js +102 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust.d.ts +34 -0
- package/dist/core/extensions/builtin/hooks/trust.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust.js +194 -0
- package/dist/core/extensions/builtin/hooks/trust.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/types.d.ts +134 -0
- package/dist/core/extensions/builtin/hooks/types.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/types.js +36 -0
- package/dist/core/extensions/builtin/hooks/types.js.map +1 -0
- package/dist/core/extensions/builtin/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +4 -0
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/cli.d.ts +3 -1
- package/dist/core/extensions/builtin/permission-system/cli.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/cli.js +14 -0
- package/dist/core/extensions/builtin/permission-system/cli.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/config.d.ts +3 -1
- package/dist/core/extensions/builtin/permission-system/config.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/config.js +26 -0
- package/dist/core/extensions/builtin/permission-system/config.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/external-dir.js +2 -2
- package/dist/core/extensions/builtin/permission-system/external-dir.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/index.js +11 -2
- package/dist/core/extensions/builtin/permission-system/index.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/parsers.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/parsers.js +39 -16
- package/dist/core/extensions/builtin/permission-system/parsers.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/settings.d.ts +6 -5
- package/dist/core/extensions/builtin/permission-system/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/settings.js +26 -6
- package/dist/core/extensions/builtin/permission-system/settings.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/types.d.ts +1 -0
- package/dist/core/extensions/builtin/permission-system/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/types.js.map +1 -1
- package/dist/core/extensions/builtin/pi-codex-app-server/capability-negotiator.d.ts +42 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/capability-negotiator.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/capability-negotiator.js +130 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/capability-negotiator.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/error-mapper.d.ts +27 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/error-mapper.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/error-mapper.js +18 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/error-mapper.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/extension.d.ts +25 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/extension.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/extension.js +110 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/extension.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/id-mapper.d.ts +48 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/id-mapper.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/id-mapper.js +74 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/id-mapper.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/index.d.ts +3 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/index.js +5 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/index.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/item-stream-projector.d.ts +29 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/item-stream-projector.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/item-stream-projector.js +105 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/item-stream-projector.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/notification-projector.d.ts +49 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/notification-projector.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/notification-projector.js +99 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/notification-projector.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-core.d.ts +42 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-core.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-core.js +191 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-core.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-inventory.d.ts +3 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-inventory.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-inventory.js +103 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-inventory.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-required-surfaces.d.ts +7 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-required-surfaces.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-required-surfaces.js +234 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/protocol-required-surfaces.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.d.ts +18 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.js +77 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume.d.ts +70 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume.js +138 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/reconnect-resume.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router-params.d.ts +34 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router-params.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router-params.js +92 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router-params.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router.d.ts +32 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router.js +279 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/request-router.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/runtime-errors.d.ts +6 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/runtime-errors.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/runtime-errors.js +8 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/runtime-errors.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-bridge.d.ts +76 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-bridge.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-bridge.js +169 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-bridge.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-fields.d.ts +24 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-fields.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-fields.js +81 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/server-request-fields.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/session-registry.d.ts +42 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/session-registry.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/session-registry.js +89 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/session-registry.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/stream-backpressure.d.ts +36 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/stream-backpressure.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/stream-backpressure.js +94 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/stream-backpressure.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/transport-runtime.d.ts +34 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/transport-runtime.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/transport-runtime.js +179 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/transport-runtime.js.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/websocket-transport.d.ts +20 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/websocket-transport.d.ts.map +1 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/websocket-transport.js +90 -0
- package/dist/core/extensions/builtin/pi-codex-app-server/websocket-transport.js.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.d.ts +3 -0
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.d.ts.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js +12 -0
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/presets.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/presets.js +6 -0
- package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/settings.d.ts +1 -1
- package/dist/core/extensions/builtin/prompt-preset/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/settings.js +1 -0
- package/dist/core/extensions/builtin/prompt-preset/settings.js.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/content.d.ts +2 -2
- package/dist/core/extensions/builtin/webfetch/webfetch/content.d.ts.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/content.js +170 -7
- package/dist/core/extensions/builtin/webfetch/webfetch/content.js.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/fetcher.d.ts.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/fetcher.js +101 -43
- package/dist/core/extensions/builtin/webfetch/webfetch/fetcher.js.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/tool.js +2 -2
- package/dist/core/extensions/builtin/webfetch/webfetch/tool.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +25 -14
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +5 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +20 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +19 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/keybindings.d.ts +1 -1
- package/dist/core/model-registry.d.ts +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +4 -6
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.js +1 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-manager.d.ts +1 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +14 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/provider-attribution.d.ts +2 -2
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/provider-display-names.js +1 -1
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/resource-loader.d.ts +14 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +40 -0
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +20 -14
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +5 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +75 -14
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-resident-store.d.ts.map +1 -1
- package/dist/core/session-resident-store.js +63 -2
- package/dist/core/session-resident-store.js.map +1 -1
- package/dist/core/settings-manager.d.ts +5 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +14 -6
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/timings.d.ts +4 -2
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +24 -14
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +19 -11
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +12 -25
- package/dist/core/tools/read.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +22 -7
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +13 -11
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts +3 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +11 -3
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/render-signature.d.ts +2 -0
- package/dist/modes/interactive/components/render-signature.d.ts.map +1 -0
- package/dist/modes/interactive/components/render-signature.js +101 -0
- package/dist/modes/interactive/components/render-signature.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +14 -3
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +4 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/user-message.js +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +2 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +64 -48
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts +0 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +2 -13
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +10 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +11 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/rpc-entry.d.ts +3 -0
- package/dist/rpc-entry.d.ts.map +1 -0
- package/dist/rpc-entry.js +10 -0
- package/dist/rpc-entry.js.map +1 -0
- package/dist/utils/child-process.js +1 -1
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/image-convert.d.ts +1 -0
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js +21 -15
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-process.d.ts +18 -0
- package/dist/utils/image-process.d.ts.map +1 -0
- package/dist/utils/image-process.js +83 -0
- package/dist/utils/image-process.js.map +1 -0
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js +41 -0
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/version-check.d.ts +1 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +7 -0
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +3 -1
- package/docs/extensions.md +456 -1
- package/docs/index.md +1 -1
- package/docs/keybindings.md +2 -2
- package/docs/models.md +4 -2
- package/docs/packages.md +9 -6
- package/docs/providers.md +3 -2
- package/docs/security.md +4 -0
- package/docs/settings.md +63 -0
- package/docs/terminal-setup.md +1 -7
- package/docs/tui.md +3 -3
- package/docs/usage.md +6 -4
- package/examples/extensions/README.md +1 -0
- package/examples/extensions/custom-compaction.ts +5 -4
- package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +11 -7
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/examples/extensions/gondolin/package-lock.json +5 -5
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/handoff.ts +4 -4
- package/examples/extensions/plan-mode/README.md +3 -2
- package/examples/extensions/plan-mode/index.ts +87 -37
- package/examples/extensions/qna.ts +4 -4
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/summarize.ts +4 -3
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/02-custom-model.ts +2 -2
- package/examples/sdk/12-full-control.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/README.md +0 -18
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +2 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js +6 -19
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts +3 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.js +2 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts +4 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +17 -15
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +2 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +24 -22
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +19 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js +24 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +4 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
- package/node_modules/@earendil-works/pi-ai/README.md +651 -526
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts +71 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +1277 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +231 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts +38 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +895 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.d.ts +9 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.js +30 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/cloudflare.d.ts +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/cloudflare.js +7 -12
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/github-copilot-headers.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/github-copilot-headers.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts +13 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +436 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts +69 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js +346 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +478 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.d.ts +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.js +59 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.d.ts +25 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +562 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/openai-codex-responses.d.ts +2 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/openai-codex-responses.js +54 -43
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts +22 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +1094 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts +20 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +568 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts +13 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +657 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers/images/openrouter.js → api/openrouter-images.js} +5 -15
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.lazy.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.lazy.js +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/simple-options.d.ts +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/simple-options.js +11 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/context.d.ts +7 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/context.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/context.js +42 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/context.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.d.ts +16 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.js +39 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.d.ts +20 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js +46 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts +26 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +100 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.d.ts +180 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.d.ts +2 -4
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.js +3 -4
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts +65 -0
- package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/compat.js +195 -0
- package/node_modules/@earendil-works/pi-ai/dist/compat.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +45 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +45 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.d.ts +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.js +0 -3
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-models.d.ts +93 -0
- package/node_modules/@earendil-works/pi-ai/dist/images-models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images-models.js +139 -0
- package/node_modules/@earendil-works/pi-ai/dist/images-models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +21 -3
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js +10 -5
- package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.d.ts +42 -0
- package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.js +49 -0
- package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +134 -25
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +2343 -399
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +70 -17244
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js +239 -65
- package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.d.ts +21 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js +147 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts +2 -38
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js +35 -896
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts +1735 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +1692 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.d.ts +86 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js +60 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts +4 -69
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +20 -1273
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.d.ts +424 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +405 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts +2 -15
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js +11 -234
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts +804 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js +743 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.d.ts +45 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +41 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js +20 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts +765 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +666 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.d.ts +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js +85 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.js +14 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.d.ts +302 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js +239 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.d.ts +63 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js +43 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts +60 -11
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +86 -22
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.js +19 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.d.ts +376 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +294 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.js +25 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts +616 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +426 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.d.ts +1 -68
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.js +1 -345
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.d.ts +4 -13
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js +33 -478
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.d.ts +202 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js +182 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.d.ts +4 -11
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.js +15 -439
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.d.ts +328 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.js +288 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.d.ts +128 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js +125 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.d.ts +963 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js +869 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/{openrouter.d.ts → register-builtins.d.ts} +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.js +34 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.d.ts +63 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js +59 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.d.ts +54 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js +56 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.d.ts +54 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js +56 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.d.ts +2 -25
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.js +12 -567
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.d.ts +513 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js +515 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.d.ts +234 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js +169 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.d.ts +234 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js +169 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts +563 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +385 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.js +18 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts +87 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js +77 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts +2 -22
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +1 -1070
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts +1 -19
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js +1 -584
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts +2 -13
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js +1 -656
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts +805 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js +743 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +18 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.d.ts +309 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +240 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.js +22 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts +976 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +815 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.js +14 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +5402 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +4634 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.d.ts +1 -36
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.js +1 -190
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.d.ts +598 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +380 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts +3210 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +3169 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.d.ts +157 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js +131 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts +113 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +95 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts +113 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +95 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts +113 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +95 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.d.ts +135 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js +113 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.d.ts +153 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js +114 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.d.ts +153 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js +114 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/stream.d.ts +1 -5
- package/node_modules/@earendil-works/pi-ai/dist/stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/stream.js +1 -53
- package/node_modules/@earendil-works/pi-ai/dist/stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +74 -8
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.d.ts +17 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.js +98 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/headers.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/headers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/headers.js +10 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/headers.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.js +31 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +33 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/load.d.ts +5 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/load.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/load.js +22 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/load.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +49 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts +12 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +86 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/package.json +15 -42
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +2 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +5 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.js +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +3 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/node_modules/marked/README.md +8 -0
- package/node_modules/marked/bin/main.js +12 -11
- package/node_modules/marked/lib/marked.d.ts +22 -11
- package/node_modules/marked/lib/marked.esm.js +50 -46
- package/node_modules/marked/lib/marked.esm.js.map +3 -3
- package/node_modules/marked/lib/marked.umd.js +50 -46
- package/node_modules/marked/lib/marked.umd.js.map +3 -3
- package/node_modules/marked/man/marked.1 +1 -1
- package/node_modules/marked/package.json +17 -17
- package/npm-shrinkwrap.json +788 -38
- package/package.json +11 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/base.d.ts +0 -20
- package/node_modules/@earendil-works/pi-agent-core/dist/base.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/base.js +0 -20
- package/node_modules/@earendil-works/pi-agent-core/dist/base.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.d.ts +0 -20
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.js +0 -44
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/base.d.ts +0 -30
- package/node_modules/@earendil-works/pi-ai/dist/base.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/base.js +0 -18
- package/node_modules/@earendil-works/pi-ai/dist/base.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.js.map +0 -1
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/github-copilot-headers.d.ts +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/github-copilot-headers.js +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/openai-prompt-cache.d.ts +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/openai-prompt-cache.js +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/transform-messages.d.ts +0 -0
- /package/node_modules/@earendil-works/pi-ai/dist/{providers → api}/transform-messages.js +0 -0
- /package/node_modules/marked/{LICENSE.md → LICENSE} +0 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
export const PLAN_REQUIRED_CLIENT_REQUEST_SURFACES = [
|
|
2
|
+
"initialize",
|
|
3
|
+
"initialized",
|
|
4
|
+
"thread/start",
|
|
5
|
+
"thread/resume",
|
|
6
|
+
"thread/fork",
|
|
7
|
+
"thread/archive",
|
|
8
|
+
"thread/delete",
|
|
9
|
+
"thread/unsubscribe",
|
|
10
|
+
"thread/increment_elicitation",
|
|
11
|
+
"thread/decrement_elicitation",
|
|
12
|
+
"thread/name/set",
|
|
13
|
+
"thread/goal/set",
|
|
14
|
+
"thread/goal/get",
|
|
15
|
+
"thread/goal/clear",
|
|
16
|
+
"thread/metadata/update",
|
|
17
|
+
"thread/settings/update",
|
|
18
|
+
"thread/memoryMode/set",
|
|
19
|
+
"memory/reset",
|
|
20
|
+
"thread/unarchive",
|
|
21
|
+
"thread/compact/start",
|
|
22
|
+
"thread/shellCommand",
|
|
23
|
+
"thread/approveGuardianDeniedAction",
|
|
24
|
+
"thread/backgroundTerminals/clean",
|
|
25
|
+
"thread/backgroundTerminals/list",
|
|
26
|
+
"thread/backgroundTerminals/terminate",
|
|
27
|
+
"thread/rollback",
|
|
28
|
+
"thread/list",
|
|
29
|
+
"thread/search",
|
|
30
|
+
"thread/loaded/list",
|
|
31
|
+
"thread/read",
|
|
32
|
+
"thread/turns/list",
|
|
33
|
+
"thread/turns/items/list",
|
|
34
|
+
"thread/inject_items",
|
|
35
|
+
"skills/list",
|
|
36
|
+
"skills/extraRoots/set",
|
|
37
|
+
"hooks/list",
|
|
38
|
+
"marketplace/add",
|
|
39
|
+
"marketplace/remove",
|
|
40
|
+
"marketplace/upgrade",
|
|
41
|
+
"plugin/list",
|
|
42
|
+
"plugin/installed",
|
|
43
|
+
"plugin/read",
|
|
44
|
+
"plugin/skill/read",
|
|
45
|
+
"plugin/share/save",
|
|
46
|
+
"plugin/share/updateTargets",
|
|
47
|
+
"plugin/share/list",
|
|
48
|
+
"plugin/share/checkout",
|
|
49
|
+
"plugin/share/delete",
|
|
50
|
+
"app/list",
|
|
51
|
+
"fs/readFile",
|
|
52
|
+
"fs/writeFile",
|
|
53
|
+
"fs/createDirectory",
|
|
54
|
+
"fs/getMetadata",
|
|
55
|
+
"fs/readDirectory",
|
|
56
|
+
"fs/remove",
|
|
57
|
+
"fs/copy",
|
|
58
|
+
"fs/watch",
|
|
59
|
+
"fs/unwatch",
|
|
60
|
+
"skills/config/write",
|
|
61
|
+
"plugin/install",
|
|
62
|
+
"plugin/uninstall",
|
|
63
|
+
"turn/start",
|
|
64
|
+
"turn/steer",
|
|
65
|
+
"turn/interrupt",
|
|
66
|
+
"thread/realtime/start",
|
|
67
|
+
"thread/realtime/appendAudio",
|
|
68
|
+
"thread/realtime/appendText",
|
|
69
|
+
"thread/realtime/appendSpeech",
|
|
70
|
+
"thread/realtime/stop",
|
|
71
|
+
"thread/realtime/listVoices",
|
|
72
|
+
"review/start",
|
|
73
|
+
"model/list",
|
|
74
|
+
"modelProvider/capabilities/read",
|
|
75
|
+
"experimentalFeature/list",
|
|
76
|
+
"permissionProfile/list",
|
|
77
|
+
"experimentalFeature/enablement/set",
|
|
78
|
+
"remoteControl/enable",
|
|
79
|
+
"remoteControl/disable",
|
|
80
|
+
"remoteControl/status/read",
|
|
81
|
+
"remoteControl/pairing/start",
|
|
82
|
+
"remoteControl/pairing/status",
|
|
83
|
+
"remoteControl/client/list",
|
|
84
|
+
"remoteControl/client/revoke",
|
|
85
|
+
"collaborationMode/list",
|
|
86
|
+
"mock/experimentalMethod",
|
|
87
|
+
"environment/add",
|
|
88
|
+
"mcpServer/oauth/login",
|
|
89
|
+
"config/mcpServer/reload",
|
|
90
|
+
"mcpServerStatus/list",
|
|
91
|
+
"mcpServer/resource/read",
|
|
92
|
+
"mcpServer/tool/call",
|
|
93
|
+
"windowsSandbox/setupStart",
|
|
94
|
+
"windowsSandbox/readiness",
|
|
95
|
+
"account/login/start",
|
|
96
|
+
"account/login/cancel",
|
|
97
|
+
"account/logout",
|
|
98
|
+
"account/rateLimits/read",
|
|
99
|
+
"account/rateLimitResetCredit/consume",
|
|
100
|
+
"account/usage/read",
|
|
101
|
+
"account/workspaceMessages/read",
|
|
102
|
+
"account/sendAddCreditsNudgeEmail",
|
|
103
|
+
"feedback/upload",
|
|
104
|
+
"command/exec",
|
|
105
|
+
"command/exec/write",
|
|
106
|
+
"command/exec/terminate",
|
|
107
|
+
"command/exec/resize",
|
|
108
|
+
"process/spawn",
|
|
109
|
+
"process/writeStdin",
|
|
110
|
+
"process/kill",
|
|
111
|
+
"process/resizePty",
|
|
112
|
+
"config/read",
|
|
113
|
+
"externalAgentConfig/detect",
|
|
114
|
+
"externalAgentConfig/import",
|
|
115
|
+
"externalAgentConfig/import/readHistories",
|
|
116
|
+
"config/value/write",
|
|
117
|
+
"config/batchWrite",
|
|
118
|
+
"configRequirements/read",
|
|
119
|
+
"account/read",
|
|
120
|
+
"fuzzyFileSearch/sessionStart",
|
|
121
|
+
"fuzzyFileSearch/sessionUpdate",
|
|
122
|
+
"fuzzyFileSearch/sessionStop",
|
|
123
|
+
];
|
|
124
|
+
export const PLAN_REQUIRED_SERVER_REQUEST_SURFACES = [
|
|
125
|
+
"item/commandExecution/requestApproval",
|
|
126
|
+
"item/fileChange/requestApproval",
|
|
127
|
+
"item/tool/requestUserInput",
|
|
128
|
+
"mcpServer/elicitation/request",
|
|
129
|
+
"item/permissions/requestApproval",
|
|
130
|
+
"item/tool/call",
|
|
131
|
+
"account/chatgptAuthTokens/refresh",
|
|
132
|
+
"attestation/generate",
|
|
133
|
+
"currentTime/read",
|
|
134
|
+
"serverRequest/legacy/applyPatchApproval",
|
|
135
|
+
"serverRequest/legacy/execCommandApproval",
|
|
136
|
+
];
|
|
137
|
+
export const PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES = [
|
|
138
|
+
"error",
|
|
139
|
+
"thread/started",
|
|
140
|
+
"thread/status/changed",
|
|
141
|
+
"thread/archived",
|
|
142
|
+
"thread/deleted",
|
|
143
|
+
"thread/unarchived",
|
|
144
|
+
"thread/closed",
|
|
145
|
+
"skills/changed",
|
|
146
|
+
"thread/name/updated",
|
|
147
|
+
"thread/goal/updated",
|
|
148
|
+
"thread/goal/cleared",
|
|
149
|
+
"thread/settings/updated",
|
|
150
|
+
"thread/tokenUsage/updated",
|
|
151
|
+
"turn/started",
|
|
152
|
+
"hook/started",
|
|
153
|
+
"turn/completed",
|
|
154
|
+
"hook/completed",
|
|
155
|
+
"turn/diff/updated",
|
|
156
|
+
"turn/plan/updated",
|
|
157
|
+
"item/started",
|
|
158
|
+
"item/autoApprovalReview/started",
|
|
159
|
+
"item/autoApprovalReview/completed",
|
|
160
|
+
"item/completed",
|
|
161
|
+
"rawResponseItem/completed",
|
|
162
|
+
"item/agentMessage/delta",
|
|
163
|
+
"item/plan/delta",
|
|
164
|
+
"command/exec/outputDelta",
|
|
165
|
+
"process/outputDelta",
|
|
166
|
+
"process/exited",
|
|
167
|
+
"item/commandExecution/outputDelta",
|
|
168
|
+
"item/commandExecution/terminalInteraction",
|
|
169
|
+
"item/fileChange/outputDelta",
|
|
170
|
+
"item/fileChange/patchUpdated",
|
|
171
|
+
"serverRequest/resolved",
|
|
172
|
+
"item/mcpToolCall/progress",
|
|
173
|
+
"mcpServer/oauthLogin/completed",
|
|
174
|
+
"mcpServer/startupStatus/updated",
|
|
175
|
+
"account/updated",
|
|
176
|
+
"account/rateLimits/updated",
|
|
177
|
+
"app/list/updated",
|
|
178
|
+
"remoteControl/status/changed",
|
|
179
|
+
"externalAgentConfig/import/progress",
|
|
180
|
+
"externalAgentConfig/import/completed",
|
|
181
|
+
"fs/changed",
|
|
182
|
+
"item/reasoning/summaryTextDelta",
|
|
183
|
+
"item/reasoning/summaryPartAdded",
|
|
184
|
+
"item/reasoning/textDelta",
|
|
185
|
+
"thread/compacted",
|
|
186
|
+
"model/rerouted",
|
|
187
|
+
"model/verification",
|
|
188
|
+
"turn/moderationMetadata",
|
|
189
|
+
"model/safetyBuffering/updated",
|
|
190
|
+
"warning",
|
|
191
|
+
"guardianWarning",
|
|
192
|
+
"deprecationNotice",
|
|
193
|
+
"configWarning",
|
|
194
|
+
"thread/realtime/started",
|
|
195
|
+
"thread/realtime/itemAdded",
|
|
196
|
+
"thread/realtime/transcript/delta",
|
|
197
|
+
"thread/realtime/transcript/done",
|
|
198
|
+
"thread/realtime/outputAudio/delta",
|
|
199
|
+
"thread/realtime/sdp",
|
|
200
|
+
"thread/realtime/error",
|
|
201
|
+
"thread/realtime/closed",
|
|
202
|
+
"fuzzyFileSearch/sessionUpdated",
|
|
203
|
+
"fuzzyFileSearch/sessionCompleted",
|
|
204
|
+
"windows/worldWritableWarning",
|
|
205
|
+
"windowsSandbox/setupCompleted",
|
|
206
|
+
"account/login/completed",
|
|
207
|
+
];
|
|
208
|
+
export const PLAN_REQUIRED_THREAD_ITEM_VARIANT_SURFACES = [
|
|
209
|
+
"threadItem/userMessage",
|
|
210
|
+
"threadItem/hookPrompt",
|
|
211
|
+
"threadItem/agentMessage",
|
|
212
|
+
"threadItem/plan",
|
|
213
|
+
"threadItem/reasoning",
|
|
214
|
+
"threadItem/commandExecution",
|
|
215
|
+
"threadItem/fileChange",
|
|
216
|
+
"threadItem/mcpToolCall",
|
|
217
|
+
"threadItem/dynamicToolCall",
|
|
218
|
+
"threadItem/collabAgentToolCall",
|
|
219
|
+
"threadItem/subAgentActivity",
|
|
220
|
+
"threadItem/webSearch",
|
|
221
|
+
"threadItem/imageView",
|
|
222
|
+
"threadItem/sleep",
|
|
223
|
+
"threadItem/imageGeneration",
|
|
224
|
+
"threadItem/reviewMode",
|
|
225
|
+
"threadItem/contextCompaction",
|
|
226
|
+
];
|
|
227
|
+
export const PLAN_REQUIRED_APP_SERVER_SURFACES = [
|
|
228
|
+
...PLAN_REQUIRED_CLIENT_REQUEST_SURFACES,
|
|
229
|
+
...PLAN_REQUIRED_SERVER_REQUEST_SURFACES,
|
|
230
|
+
...PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES,
|
|
231
|
+
...PLAN_REQUIRED_THREAD_ITEM_VARIANT_SURFACES,
|
|
232
|
+
"appServer/futureMethod",
|
|
233
|
+
];
|
|
234
|
+
//# sourceMappingURL=protocol-required-surfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-required-surfaces.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/protocol-required-surfaces.ts"],"names":[],"mappings":"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","sourcesContent":["export const PLAN_REQUIRED_CLIENT_REQUEST_SURFACES = [\n\t\"initialize\",\n\t\"initialized\",\n\t\"thread/start\",\n\t\"thread/resume\",\n\t\"thread/fork\",\n\t\"thread/archive\",\n\t\"thread/delete\",\n\t\"thread/unsubscribe\",\n\t\"thread/increment_elicitation\",\n\t\"thread/decrement_elicitation\",\n\t\"thread/name/set\",\n\t\"thread/goal/set\",\n\t\"thread/goal/get\",\n\t\"thread/goal/clear\",\n\t\"thread/metadata/update\",\n\t\"thread/settings/update\",\n\t\"thread/memoryMode/set\",\n\t\"memory/reset\",\n\t\"thread/unarchive\",\n\t\"thread/compact/start\",\n\t\"thread/shellCommand\",\n\t\"thread/approveGuardianDeniedAction\",\n\t\"thread/backgroundTerminals/clean\",\n\t\"thread/backgroundTerminals/list\",\n\t\"thread/backgroundTerminals/terminate\",\n\t\"thread/rollback\",\n\t\"thread/list\",\n\t\"thread/search\",\n\t\"thread/loaded/list\",\n\t\"thread/read\",\n\t\"thread/turns/list\",\n\t\"thread/turns/items/list\",\n\t\"thread/inject_items\",\n\t\"skills/list\",\n\t\"skills/extraRoots/set\",\n\t\"hooks/list\",\n\t\"marketplace/add\",\n\t\"marketplace/remove\",\n\t\"marketplace/upgrade\",\n\t\"plugin/list\",\n\t\"plugin/installed\",\n\t\"plugin/read\",\n\t\"plugin/skill/read\",\n\t\"plugin/share/save\",\n\t\"plugin/share/updateTargets\",\n\t\"plugin/share/list\",\n\t\"plugin/share/checkout\",\n\t\"plugin/share/delete\",\n\t\"app/list\",\n\t\"fs/readFile\",\n\t\"fs/writeFile\",\n\t\"fs/createDirectory\",\n\t\"fs/getMetadata\",\n\t\"fs/readDirectory\",\n\t\"fs/remove\",\n\t\"fs/copy\",\n\t\"fs/watch\",\n\t\"fs/unwatch\",\n\t\"skills/config/write\",\n\t\"plugin/install\",\n\t\"plugin/uninstall\",\n\t\"turn/start\",\n\t\"turn/steer\",\n\t\"turn/interrupt\",\n\t\"thread/realtime/start\",\n\t\"thread/realtime/appendAudio\",\n\t\"thread/realtime/appendText\",\n\t\"thread/realtime/appendSpeech\",\n\t\"thread/realtime/stop\",\n\t\"thread/realtime/listVoices\",\n\t\"review/start\",\n\t\"model/list\",\n\t\"modelProvider/capabilities/read\",\n\t\"experimentalFeature/list\",\n\t\"permissionProfile/list\",\n\t\"experimentalFeature/enablement/set\",\n\t\"remoteControl/enable\",\n\t\"remoteControl/disable\",\n\t\"remoteControl/status/read\",\n\t\"remoteControl/pairing/start\",\n\t\"remoteControl/pairing/status\",\n\t\"remoteControl/client/list\",\n\t\"remoteControl/client/revoke\",\n\t\"collaborationMode/list\",\n\t\"mock/experimentalMethod\",\n\t\"environment/add\",\n\t\"mcpServer/oauth/login\",\n\t\"config/mcpServer/reload\",\n\t\"mcpServerStatus/list\",\n\t\"mcpServer/resource/read\",\n\t\"mcpServer/tool/call\",\n\t\"windowsSandbox/setupStart\",\n\t\"windowsSandbox/readiness\",\n\t\"account/login/start\",\n\t\"account/login/cancel\",\n\t\"account/logout\",\n\t\"account/rateLimits/read\",\n\t\"account/rateLimitResetCredit/consume\",\n\t\"account/usage/read\",\n\t\"account/workspaceMessages/read\",\n\t\"account/sendAddCreditsNudgeEmail\",\n\t\"feedback/upload\",\n\t\"command/exec\",\n\t\"command/exec/write\",\n\t\"command/exec/terminate\",\n\t\"command/exec/resize\",\n\t\"process/spawn\",\n\t\"process/writeStdin\",\n\t\"process/kill\",\n\t\"process/resizePty\",\n\t\"config/read\",\n\t\"externalAgentConfig/detect\",\n\t\"externalAgentConfig/import\",\n\t\"externalAgentConfig/import/readHistories\",\n\t\"config/value/write\",\n\t\"config/batchWrite\",\n\t\"configRequirements/read\",\n\t\"account/read\",\n\t\"fuzzyFileSearch/sessionStart\",\n\t\"fuzzyFileSearch/sessionUpdate\",\n\t\"fuzzyFileSearch/sessionStop\",\n] as const;\n\nexport type AppServerClientRequestSurface = (typeof PLAN_REQUIRED_CLIENT_REQUEST_SURFACES)[number];\n\nexport const PLAN_REQUIRED_SERVER_REQUEST_SURFACES = [\n\t\"item/commandExecution/requestApproval\",\n\t\"item/fileChange/requestApproval\",\n\t\"item/tool/requestUserInput\",\n\t\"mcpServer/elicitation/request\",\n\t\"item/permissions/requestApproval\",\n\t\"item/tool/call\",\n\t\"account/chatgptAuthTokens/refresh\",\n\t\"attestation/generate\",\n\t\"currentTime/read\",\n\t\"serverRequest/legacy/applyPatchApproval\",\n\t\"serverRequest/legacy/execCommandApproval\",\n] as const;\n\nexport const PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES = [\n\t\"error\",\n\t\"thread/started\",\n\t\"thread/status/changed\",\n\t\"thread/archived\",\n\t\"thread/deleted\",\n\t\"thread/unarchived\",\n\t\"thread/closed\",\n\t\"skills/changed\",\n\t\"thread/name/updated\",\n\t\"thread/goal/updated\",\n\t\"thread/goal/cleared\",\n\t\"thread/settings/updated\",\n\t\"thread/tokenUsage/updated\",\n\t\"turn/started\",\n\t\"hook/started\",\n\t\"turn/completed\",\n\t\"hook/completed\",\n\t\"turn/diff/updated\",\n\t\"turn/plan/updated\",\n\t\"item/started\",\n\t\"item/autoApprovalReview/started\",\n\t\"item/autoApprovalReview/completed\",\n\t\"item/completed\",\n\t\"rawResponseItem/completed\",\n\t\"item/agentMessage/delta\",\n\t\"item/plan/delta\",\n\t\"command/exec/outputDelta\",\n\t\"process/outputDelta\",\n\t\"process/exited\",\n\t\"item/commandExecution/outputDelta\",\n\t\"item/commandExecution/terminalInteraction\",\n\t\"item/fileChange/outputDelta\",\n\t\"item/fileChange/patchUpdated\",\n\t\"serverRequest/resolved\",\n\t\"item/mcpToolCall/progress\",\n\t\"mcpServer/oauthLogin/completed\",\n\t\"mcpServer/startupStatus/updated\",\n\t\"account/updated\",\n\t\"account/rateLimits/updated\",\n\t\"app/list/updated\",\n\t\"remoteControl/status/changed\",\n\t\"externalAgentConfig/import/progress\",\n\t\"externalAgentConfig/import/completed\",\n\t\"fs/changed\",\n\t\"item/reasoning/summaryTextDelta\",\n\t\"item/reasoning/summaryPartAdded\",\n\t\"item/reasoning/textDelta\",\n\t\"thread/compacted\",\n\t\"model/rerouted\",\n\t\"model/verification\",\n\t\"turn/moderationMetadata\",\n\t\"model/safetyBuffering/updated\",\n\t\"warning\",\n\t\"guardianWarning\",\n\t\"deprecationNotice\",\n\t\"configWarning\",\n\t\"thread/realtime/started\",\n\t\"thread/realtime/itemAdded\",\n\t\"thread/realtime/transcript/delta\",\n\t\"thread/realtime/transcript/done\",\n\t\"thread/realtime/outputAudio/delta\",\n\t\"thread/realtime/sdp\",\n\t\"thread/realtime/error\",\n\t\"thread/realtime/closed\",\n\t\"fuzzyFileSearch/sessionUpdated\",\n\t\"fuzzyFileSearch/sessionCompleted\",\n\t\"windows/worldWritableWarning\",\n\t\"windowsSandbox/setupCompleted\",\n\t\"account/login/completed\",\n] as const;\n\nexport const PLAN_REQUIRED_THREAD_ITEM_VARIANT_SURFACES = [\n\t\"threadItem/userMessage\",\n\t\"threadItem/hookPrompt\",\n\t\"threadItem/agentMessage\",\n\t\"threadItem/plan\",\n\t\"threadItem/reasoning\",\n\t\"threadItem/commandExecution\",\n\t\"threadItem/fileChange\",\n\t\"threadItem/mcpToolCall\",\n\t\"threadItem/dynamicToolCall\",\n\t\"threadItem/collabAgentToolCall\",\n\t\"threadItem/subAgentActivity\",\n\t\"threadItem/webSearch\",\n\t\"threadItem/imageView\",\n\t\"threadItem/sleep\",\n\t\"threadItem/imageGeneration\",\n\t\"threadItem/reviewMode\",\n\t\"threadItem/contextCompaction\",\n] as const;\n\nexport const PLAN_REQUIRED_APP_SERVER_SURFACES = [\n\t...PLAN_REQUIRED_CLIENT_REQUEST_SURFACES,\n\t...PLAN_REQUIRED_SERVER_REQUEST_SURFACES,\n\t...PLAN_REQUIRED_SERVER_NOTIFICATION_SURFACES,\n\t...PLAN_REQUIRED_THREAD_ITEM_VARIANT_SURFACES,\n\t\"appServer/futureMethod\",\n] as const;\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type AdapterJsonRpcError } from "./error-mapper.ts";
|
|
2
|
+
import type { ReplayCursor, SessionBinding, SessionBindingInput } from "./session-registry.ts";
|
|
3
|
+
declare const RESUME_TOKEN_VERSION = "2026-06-24.pr-010";
|
|
4
|
+
export interface ResumeTokenPayload extends SessionBindingInput {
|
|
5
|
+
readonly version: typeof RESUME_TOKEN_VERSION;
|
|
6
|
+
readonly replayCursor: ReplayCursor;
|
|
7
|
+
}
|
|
8
|
+
export type ResumeTokenParseResult = {
|
|
9
|
+
readonly kind: "parsed";
|
|
10
|
+
readonly payload: ResumeTokenPayload;
|
|
11
|
+
} | {
|
|
12
|
+
readonly kind: "adapter-error";
|
|
13
|
+
readonly error: AdapterJsonRpcError;
|
|
14
|
+
};
|
|
15
|
+
export declare function createResumeToken(binding: SessionBinding): string;
|
|
16
|
+
export declare function parseResumeToken(token: string): ResumeTokenParseResult;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=reconnect-resume-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconnect-resume-token.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE/F,QAAA,MAAM,oBAAoB,sBAAsB,CAAC;AAEjD,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACpC;AAED,MAAM,MAAM,sBAAsB,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE3E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CASjE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAUtE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
2
|
+
import { createAdapterJsonRpcError } from "./error-mapper.js";
|
|
3
|
+
const RESUME_TOKEN_VERSION = "2026-06-24.pr-010";
|
|
4
|
+
export function createResumeToken(binding) {
|
|
5
|
+
const payload = {
|
|
6
|
+
version: RESUME_TOKEN_VERSION,
|
|
7
|
+
externalSessionId: binding.externalSessionId,
|
|
8
|
+
appThreadId: binding.appThreadId,
|
|
9
|
+
appSessionId: binding.appSessionId,
|
|
10
|
+
replayCursor: binding.replayCursor,
|
|
11
|
+
};
|
|
12
|
+
return Buffer.from(JSON.stringify(payload), "utf8").toString("base64url");
|
|
13
|
+
}
|
|
14
|
+
export function parseResumeToken(token) {
|
|
15
|
+
try {
|
|
16
|
+
const parsed = JSON.parse(Buffer.from(token, "base64url").toString("utf8"));
|
|
17
|
+
const payload = readResumeTokenPayload(parsed);
|
|
18
|
+
if (!payload)
|
|
19
|
+
return malformedToken("Resume token payload is malformed.");
|
|
20
|
+
return { kind: "parsed", payload };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error instanceof Error)
|
|
24
|
+
return malformedToken(error.message);
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function readResumeTokenPayload(input) {
|
|
29
|
+
const record = readRecord(input);
|
|
30
|
+
if (!record)
|
|
31
|
+
return undefined;
|
|
32
|
+
const version = readString(record, "version");
|
|
33
|
+
const externalSessionId = readString(record, "externalSessionId");
|
|
34
|
+
const appThreadId = readString(record, "appThreadId");
|
|
35
|
+
const appSessionId = readString(record, "appSessionId");
|
|
36
|
+
const replayCursor = readReplayCursor(record.replayCursor);
|
|
37
|
+
if (version !== RESUME_TOKEN_VERSION || !externalSessionId || !appThreadId || !appSessionId || !replayCursor) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
return { version, externalSessionId, appThreadId, appSessionId, replayCursor };
|
|
41
|
+
}
|
|
42
|
+
function readReplayCursor(input) {
|
|
43
|
+
const record = readRecord(input);
|
|
44
|
+
if (!record)
|
|
45
|
+
return undefined;
|
|
46
|
+
const lastCompletedTurnId = readString(record, "lastCompletedTurnId");
|
|
47
|
+
const lastProjectedItemId = readString(record, "lastProjectedItemId");
|
|
48
|
+
const lastLosslessSequence = readNumber(record, "lastLosslessSequence");
|
|
49
|
+
return {
|
|
50
|
+
...(lastCompletedTurnId ? { lastCompletedTurnId } : {}),
|
|
51
|
+
...(lastProjectedItemId ? { lastProjectedItemId } : {}),
|
|
52
|
+
...(lastLosslessSequence === undefined ? {} : { lastLosslessSequence }),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function malformedToken(message) {
|
|
56
|
+
return {
|
|
57
|
+
kind: "adapter-error",
|
|
58
|
+
error: createAdapterJsonRpcError({
|
|
59
|
+
adapterCode: "malformed-message",
|
|
60
|
+
message: `Invalid resume token: ${message}`,
|
|
61
|
+
}),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function readString(input, key) {
|
|
65
|
+
const value = input[key];
|
|
66
|
+
return typeof value === "string" ? value : undefined;
|
|
67
|
+
}
|
|
68
|
+
function readNumber(input, key) {
|
|
69
|
+
const value = input[key];
|
|
70
|
+
return typeof value === "number" ? value : undefined;
|
|
71
|
+
}
|
|
72
|
+
function readRecord(value) {
|
|
73
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
74
|
+
return undefined;
|
|
75
|
+
return Object.fromEntries(Object.entries(value));
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=reconnect-resume-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconnect-resume-token.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/reconnect-resume-token.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from \"node:buffer\";\nimport { type AdapterJsonRpcError, createAdapterJsonRpcError } from \"./error-mapper.ts\";\nimport type { ReplayCursor, SessionBinding, SessionBindingInput } from \"./session-registry.ts\";\n\nconst RESUME_TOKEN_VERSION = \"2026-06-24.pr-010\";\n\nexport interface ResumeTokenPayload extends SessionBindingInput {\n\treadonly version: typeof RESUME_TOKEN_VERSION;\n\treadonly replayCursor: ReplayCursor;\n}\n\nexport type ResumeTokenParseResult =\n\t| { readonly kind: \"parsed\"; readonly payload: ResumeTokenPayload }\n\t| { readonly kind: \"adapter-error\"; readonly error: AdapterJsonRpcError };\n\nexport function createResumeToken(binding: SessionBinding): string {\n\tconst payload: ResumeTokenPayload = {\n\t\tversion: RESUME_TOKEN_VERSION,\n\t\texternalSessionId: binding.externalSessionId,\n\t\tappThreadId: binding.appThreadId,\n\t\tappSessionId: binding.appSessionId,\n\t\treplayCursor: binding.replayCursor,\n\t};\n\treturn Buffer.from(JSON.stringify(payload), \"utf8\").toString(\"base64url\");\n}\n\nexport function parseResumeToken(token: string): ResumeTokenParseResult {\n\ttry {\n\t\tconst parsed: unknown = JSON.parse(Buffer.from(token, \"base64url\").toString(\"utf8\"));\n\t\tconst payload = readResumeTokenPayload(parsed);\n\t\tif (!payload) return malformedToken(\"Resume token payload is malformed.\");\n\t\treturn { kind: \"parsed\", payload };\n\t} catch (error) {\n\t\tif (error instanceof Error) return malformedToken(error.message);\n\t\tthrow error;\n\t}\n}\n\nfunction readResumeTokenPayload(input: unknown): ResumeTokenPayload | undefined {\n\tconst record = readRecord(input);\n\tif (!record) return undefined;\n\tconst version = readString(record, \"version\");\n\tconst externalSessionId = readString(record, \"externalSessionId\");\n\tconst appThreadId = readString(record, \"appThreadId\");\n\tconst appSessionId = readString(record, \"appSessionId\");\n\tconst replayCursor = readReplayCursor(record.replayCursor);\n\tif (version !== RESUME_TOKEN_VERSION || !externalSessionId || !appThreadId || !appSessionId || !replayCursor) {\n\t\treturn undefined;\n\t}\n\treturn { version, externalSessionId, appThreadId, appSessionId, replayCursor };\n}\n\nfunction readReplayCursor(input: unknown): ReplayCursor | undefined {\n\tconst record = readRecord(input);\n\tif (!record) return undefined;\n\tconst lastCompletedTurnId = readString(record, \"lastCompletedTurnId\");\n\tconst lastProjectedItemId = readString(record, \"lastProjectedItemId\");\n\tconst lastLosslessSequence = readNumber(record, \"lastLosslessSequence\");\n\treturn {\n\t\t...(lastCompletedTurnId ? { lastCompletedTurnId } : {}),\n\t\t...(lastProjectedItemId ? { lastProjectedItemId } : {}),\n\t\t...(lastLosslessSequence === undefined ? {} : { lastLosslessSequence }),\n\t};\n}\n\nfunction malformedToken(message: string): { readonly kind: \"adapter-error\"; readonly error: AdapterJsonRpcError } {\n\treturn {\n\t\tkind: \"adapter-error\",\n\t\terror: createAdapterJsonRpcError({\n\t\t\tadapterCode: \"malformed-message\",\n\t\t\tmessage: `Invalid resume token: ${message}`,\n\t\t}),\n\t};\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 readRecord(value: unknown): Readonly<Record<string, unknown>> | undefined {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) return undefined;\n\treturn Object.fromEntries(Object.entries(value));\n}\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type AdapterJsonRpcError } from "./error-mapper.ts";
|
|
2
|
+
import type { AppServerRequestClient } from "./request-router.ts";
|
|
3
|
+
import type { ReplayCursor, SessionRegistry } from "./session-registry.ts";
|
|
4
|
+
declare const REPLAY_CLAIM = "snapshot-plus-new-stream";
|
|
5
|
+
export { createResumeToken } from "./reconnect-resume-token.ts";
|
|
6
|
+
export interface ReconnectResumeCoordinatorOptions {
|
|
7
|
+
readonly connectionId: string;
|
|
8
|
+
readonly client: AppServerRequestClient;
|
|
9
|
+
readonly sessionRegistry: SessionRegistry;
|
|
10
|
+
}
|
|
11
|
+
export interface ReconnectResumeCoordinator {
|
|
12
|
+
resumeFromToken(token: string): Promise<ReconnectResumeResult>;
|
|
13
|
+
recordTerminalNotification(input: TerminalNotificationInput): TerminalRecordResult;
|
|
14
|
+
createDisconnectEvent(message: string): DisconnectEvent;
|
|
15
|
+
}
|
|
16
|
+
export interface ResumeEvent {
|
|
17
|
+
readonly kind: "resume";
|
|
18
|
+
readonly method: "resume";
|
|
19
|
+
readonly connectionId: string;
|
|
20
|
+
readonly externalSessionId: string;
|
|
21
|
+
readonly appThreadId: string;
|
|
22
|
+
readonly appSessionId: string;
|
|
23
|
+
readonly streamClass: "snapshot-authoritative";
|
|
24
|
+
readonly replayCursor: ReplayCursor;
|
|
25
|
+
readonly replayClaim: typeof REPLAY_CLAIM;
|
|
26
|
+
readonly snapshot: ResumeSnapshot;
|
|
27
|
+
}
|
|
28
|
+
export interface ResumeSnapshot {
|
|
29
|
+
readonly threadResume: unknown;
|
|
30
|
+
readonly threadRead: unknown;
|
|
31
|
+
readonly turns: unknown;
|
|
32
|
+
readonly items: unknown;
|
|
33
|
+
}
|
|
34
|
+
export interface DisconnectEvent {
|
|
35
|
+
readonly kind: "disconnect";
|
|
36
|
+
readonly method: "disconnect";
|
|
37
|
+
readonly connectionId: string;
|
|
38
|
+
readonly streamClass: "control";
|
|
39
|
+
readonly message: string;
|
|
40
|
+
readonly replayClaim: typeof REPLAY_CLAIM;
|
|
41
|
+
}
|
|
42
|
+
export type ReconnectResumeResult = {
|
|
43
|
+
readonly kind: "resumed";
|
|
44
|
+
readonly event: ResumeEvent;
|
|
45
|
+
} | {
|
|
46
|
+
readonly kind: "adapter-error";
|
|
47
|
+
readonly error: AdapterJsonRpcError;
|
|
48
|
+
};
|
|
49
|
+
export interface TerminalNotificationInput {
|
|
50
|
+
readonly method: string;
|
|
51
|
+
readonly params: unknown;
|
|
52
|
+
readonly sequence: number;
|
|
53
|
+
}
|
|
54
|
+
export type TerminalRecordResult = {
|
|
55
|
+
readonly kind: "recorded";
|
|
56
|
+
readonly externalSessionId: string;
|
|
57
|
+
readonly appTurnId: string;
|
|
58
|
+
readonly sequence: number;
|
|
59
|
+
} | {
|
|
60
|
+
readonly kind: "duplicate-terminal";
|
|
61
|
+
readonly externalSessionId: string;
|
|
62
|
+
readonly appTurnId: string;
|
|
63
|
+
} | {
|
|
64
|
+
readonly kind: "ignored";
|
|
65
|
+
} | {
|
|
66
|
+
readonly kind: "adapter-error";
|
|
67
|
+
readonly error: AdapterJsonRpcError;
|
|
68
|
+
};
|
|
69
|
+
export declare function createReconnectResumeCoordinator(options: ReconnectResumeCoordinatorOptions): ReconnectResumeCoordinator;
|
|
70
|
+
//# sourceMappingURL=reconnect-resume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconnect-resume.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/reconnect-resume.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { createAdapterJsonRpcError } from "./error-mapper.js";
|
|
2
|
+
import { parseResumeToken } from "./reconnect-resume-token.js";
|
|
3
|
+
const REPLAY_CLAIM = "snapshot-plus-new-stream";
|
|
4
|
+
export { createResumeToken } from "./reconnect-resume-token.js";
|
|
5
|
+
export function createReconnectResumeCoordinator(options) {
|
|
6
|
+
return new DefaultReconnectResumeCoordinator(options);
|
|
7
|
+
}
|
|
8
|
+
class DefaultReconnectResumeCoordinator {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.completedTurnKeys = new Set();
|
|
11
|
+
this.connectionId = options.connectionId;
|
|
12
|
+
this.client = options.client;
|
|
13
|
+
this.sessionRegistry = options.sessionRegistry;
|
|
14
|
+
}
|
|
15
|
+
async resumeFromToken(token) {
|
|
16
|
+
const payload = parseResumeToken(token);
|
|
17
|
+
if (payload.kind === "adapter-error")
|
|
18
|
+
return payload;
|
|
19
|
+
const binding = this.bindOrReuseSession(payload.payload);
|
|
20
|
+
if (binding.kind === "adapter-error")
|
|
21
|
+
return binding;
|
|
22
|
+
const threadResume = await this.client.request("thread/resume", {
|
|
23
|
+
thread_id: binding.binding.appThreadId,
|
|
24
|
+
session_id: binding.binding.appSessionId,
|
|
25
|
+
});
|
|
26
|
+
const threadRead = await this.client.request("thread/read", { thread_id: binding.binding.appThreadId });
|
|
27
|
+
const turns = await this.client.request("thread/turns/list", withOptionalCursor({ thread_id: binding.binding.appThreadId }, "after_turn_id", binding.binding.replayCursor.lastCompletedTurnId));
|
|
28
|
+
const items = await this.client.request("thread/turns/items/list", withOptionalCursor({ thread_id: binding.binding.appThreadId }, "after_item_id", binding.binding.replayCursor.lastProjectedItemId));
|
|
29
|
+
return {
|
|
30
|
+
kind: "resumed",
|
|
31
|
+
event: {
|
|
32
|
+
kind: "resume",
|
|
33
|
+
method: "resume",
|
|
34
|
+
connectionId: this.connectionId,
|
|
35
|
+
externalSessionId: binding.binding.externalSessionId,
|
|
36
|
+
appThreadId: binding.binding.appThreadId,
|
|
37
|
+
appSessionId: binding.binding.appSessionId,
|
|
38
|
+
streamClass: "snapshot-authoritative",
|
|
39
|
+
replayCursor: binding.binding.replayCursor,
|
|
40
|
+
replayClaim: REPLAY_CLAIM,
|
|
41
|
+
snapshot: { threadResume, threadRead, turns, items },
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
recordTerminalNotification(input) {
|
|
46
|
+
if (!isTerminalNotification(input.method))
|
|
47
|
+
return { kind: "ignored" };
|
|
48
|
+
const params = readRecord(input.params);
|
|
49
|
+
if (!params)
|
|
50
|
+
return invalidSession("Terminal notification params must be an object.");
|
|
51
|
+
const appThreadId = readString(params, "threadId") ?? readString(params, "thread_id");
|
|
52
|
+
const appTurnId = readAppTurnId(params);
|
|
53
|
+
if (!appThreadId || !appTurnId)
|
|
54
|
+
return invalidSession("Terminal notification requires thread and turn IDs.");
|
|
55
|
+
const binding = this.sessionRegistry.getByAppThreadId(appThreadId);
|
|
56
|
+
if (!binding || binding.tombstoned)
|
|
57
|
+
return invalidSession(`Unknown or tombstoned app-server thread: ${appThreadId}`);
|
|
58
|
+
const terminalKey = `${appThreadId}:${appTurnId}`;
|
|
59
|
+
if (this.completedTurnKeys.has(terminalKey)) {
|
|
60
|
+
return { kind: "duplicate-terminal", externalSessionId: binding.externalSessionId, appTurnId };
|
|
61
|
+
}
|
|
62
|
+
this.completedTurnKeys.add(terminalKey);
|
|
63
|
+
const appItemId = readString(params, "itemId") ?? readString(params, "item_id");
|
|
64
|
+
this.sessionRegistry.updateReplayCursor(binding.externalSessionId, {
|
|
65
|
+
...binding.replayCursor,
|
|
66
|
+
lastCompletedTurnId: appTurnId,
|
|
67
|
+
...(appItemId ? { lastProjectedItemId: appItemId } : {}),
|
|
68
|
+
lastLosslessSequence: input.sequence,
|
|
69
|
+
});
|
|
70
|
+
return {
|
|
71
|
+
kind: "recorded",
|
|
72
|
+
externalSessionId: binding.externalSessionId,
|
|
73
|
+
appTurnId,
|
|
74
|
+
sequence: input.sequence,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
createDisconnectEvent(message) {
|
|
78
|
+
return {
|
|
79
|
+
kind: "disconnect",
|
|
80
|
+
method: "disconnect",
|
|
81
|
+
connectionId: this.connectionId,
|
|
82
|
+
streamClass: "control",
|
|
83
|
+
message,
|
|
84
|
+
replayClaim: REPLAY_CLAIM,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
bindOrReuseSession(payload) {
|
|
88
|
+
const existing = this.sessionRegistry.getByExternalSessionId(payload.externalSessionId);
|
|
89
|
+
if (existing?.tombstoned)
|
|
90
|
+
return invalidSession(`External session is tombstoned: ${payload.externalSessionId}`);
|
|
91
|
+
if (existing) {
|
|
92
|
+
if (existing.appThreadId !== payload.appThreadId || existing.appSessionId !== payload.appSessionId) {
|
|
93
|
+
return invalidSession(`Resume token does not match existing session binding: ${payload.externalSessionId}`);
|
|
94
|
+
}
|
|
95
|
+
return { kind: "active", binding: existing };
|
|
96
|
+
}
|
|
97
|
+
const bindResult = this.sessionRegistry.bindSession(payload);
|
|
98
|
+
if (bindResult.kind === "rejected")
|
|
99
|
+
return { kind: "adapter-error", error: bindResult.error };
|
|
100
|
+
const cursorResult = this.sessionRegistry.updateReplayCursor(payload.externalSessionId, payload.replayCursor);
|
|
101
|
+
if (cursorResult.kind === "rejected")
|
|
102
|
+
return { kind: "adapter-error", error: cursorResult.error };
|
|
103
|
+
return cursorResult;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function withOptionalCursor(params, key, value) {
|
|
107
|
+
return value ? { ...params, [key]: value } : { ...params };
|
|
108
|
+
}
|
|
109
|
+
function isTerminalNotification(method) {
|
|
110
|
+
return method === "turn/completed" || method === "error";
|
|
111
|
+
}
|
|
112
|
+
function readAppTurnId(params) {
|
|
113
|
+
const topLevelTurnId = readString(params, "turnId") ?? readString(params, "turn_id") ?? readString(params, "id");
|
|
114
|
+
if (topLevelTurnId)
|
|
115
|
+
return topLevelTurnId;
|
|
116
|
+
const turn = readRecord(params.turn);
|
|
117
|
+
return turn ? readString(turn, "id") : undefined;
|
|
118
|
+
}
|
|
119
|
+
function invalidSession(message) {
|
|
120
|
+
return {
|
|
121
|
+
kind: "adapter-error",
|
|
122
|
+
error: createAdapterJsonRpcError({
|
|
123
|
+
adapterCode: "invalid-session-state",
|
|
124
|
+
message,
|
|
125
|
+
retryable: true,
|
|
126
|
+
}),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function readString(input, key) {
|
|
130
|
+
const value = input[key];
|
|
131
|
+
return typeof value === "string" ? value : undefined;
|
|
132
|
+
}
|
|
133
|
+
function readRecord(value) {
|
|
134
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
135
|
+
return undefined;
|
|
136
|
+
return Object.fromEntries(Object.entries(value));
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=reconnect-resume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconnect-resume.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/pi-codex-app-server/reconnect-resume.ts"],"names":[],"mappings":"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","sourcesContent":["import { type AdapterJsonRpcError, createAdapterJsonRpcError } from \"./error-mapper.ts\";\nimport { parseResumeToken, type ResumeTokenPayload } from \"./reconnect-resume-token.ts\";\nimport type { AppServerRequestClient } from \"./request-router.ts\";\nimport type { ReplayCursor, SessionBinding, SessionRegistry } from \"./session-registry.ts\";\n\nconst REPLAY_CLAIM = \"snapshot-plus-new-stream\";\n\nexport { createResumeToken } from \"./reconnect-resume-token.ts\";\n\nexport interface ReconnectResumeCoordinatorOptions {\n\treadonly connectionId: string;\n\treadonly client: AppServerRequestClient;\n\treadonly sessionRegistry: SessionRegistry;\n}\n\nexport interface ReconnectResumeCoordinator {\n\tresumeFromToken(token: string): Promise<ReconnectResumeResult>;\n\trecordTerminalNotification(input: TerminalNotificationInput): TerminalRecordResult;\n\tcreateDisconnectEvent(message: string): DisconnectEvent;\n}\n\nexport interface ResumeEvent {\n\treadonly kind: \"resume\";\n\treadonly method: \"resume\";\n\treadonly connectionId: string;\n\treadonly externalSessionId: string;\n\treadonly appThreadId: string;\n\treadonly appSessionId: string;\n\treadonly streamClass: \"snapshot-authoritative\";\n\treadonly replayCursor: ReplayCursor;\n\treadonly replayClaim: typeof REPLAY_CLAIM;\n\treadonly snapshot: ResumeSnapshot;\n}\n\nexport interface ResumeSnapshot {\n\treadonly threadResume: unknown;\n\treadonly threadRead: unknown;\n\treadonly turns: unknown;\n\treadonly items: unknown;\n}\n\nexport interface DisconnectEvent {\n\treadonly kind: \"disconnect\";\n\treadonly method: \"disconnect\";\n\treadonly connectionId: string;\n\treadonly streamClass: \"control\";\n\treadonly message: string;\n\treadonly replayClaim: typeof REPLAY_CLAIM;\n}\n\nexport type ReconnectResumeResult =\n\t| { readonly kind: \"resumed\"; readonly event: ResumeEvent }\n\t| { readonly kind: \"adapter-error\"; readonly error: AdapterJsonRpcError };\n\nexport interface TerminalNotificationInput {\n\treadonly method: string;\n\treadonly params: unknown;\n\treadonly sequence: number;\n}\n\nexport type TerminalRecordResult =\n\t| {\n\t\t\treadonly kind: \"recorded\";\n\t\t\treadonly externalSessionId: string;\n\t\t\treadonly appTurnId: string;\n\t\t\treadonly sequence: number;\n\t }\n\t| { readonly kind: \"duplicate-terminal\"; readonly externalSessionId: string; readonly appTurnId: string }\n\t| { readonly kind: \"ignored\" }\n\t| { readonly kind: \"adapter-error\"; readonly error: AdapterJsonRpcError };\n\nexport function createReconnectResumeCoordinator(\n\toptions: ReconnectResumeCoordinatorOptions,\n): ReconnectResumeCoordinator {\n\treturn new DefaultReconnectResumeCoordinator(options);\n}\n\nclass DefaultReconnectResumeCoordinator implements ReconnectResumeCoordinator {\n\tprivate readonly connectionId: string;\n\tprivate readonly client: AppServerRequestClient;\n\tprivate readonly sessionRegistry: SessionRegistry;\n\tprivate readonly completedTurnKeys = new Set<string>();\n\n\tconstructor(options: ReconnectResumeCoordinatorOptions) {\n\t\tthis.connectionId = options.connectionId;\n\t\tthis.client = options.client;\n\t\tthis.sessionRegistry = options.sessionRegistry;\n\t}\n\n\tasync resumeFromToken(token: string): Promise<ReconnectResumeResult> {\n\t\tconst payload = parseResumeToken(token);\n\t\tif (payload.kind === \"adapter-error\") return payload;\n\t\tconst binding = this.bindOrReuseSession(payload.payload);\n\t\tif (binding.kind === \"adapter-error\") return binding;\n\n\t\tconst threadResume = await this.client.request(\"thread/resume\", {\n\t\t\tthread_id: binding.binding.appThreadId,\n\t\t\tsession_id: binding.binding.appSessionId,\n\t\t});\n\t\tconst threadRead = await this.client.request(\"thread/read\", { thread_id: binding.binding.appThreadId });\n\t\tconst turns = await this.client.request(\n\t\t\t\"thread/turns/list\",\n\t\t\twithOptionalCursor(\n\t\t\t\t{ thread_id: binding.binding.appThreadId },\n\t\t\t\t\"after_turn_id\",\n\t\t\t\tbinding.binding.replayCursor.lastCompletedTurnId,\n\t\t\t),\n\t\t);\n\t\tconst items = await this.client.request(\n\t\t\t\"thread/turns/items/list\",\n\t\t\twithOptionalCursor(\n\t\t\t\t{ thread_id: binding.binding.appThreadId },\n\t\t\t\t\"after_item_id\",\n\t\t\t\tbinding.binding.replayCursor.lastProjectedItemId,\n\t\t\t),\n\t\t);\n\n\t\treturn {\n\t\t\tkind: \"resumed\",\n\t\t\tevent: {\n\t\t\t\tkind: \"resume\",\n\t\t\t\tmethod: \"resume\",\n\t\t\t\tconnectionId: this.connectionId,\n\t\t\t\texternalSessionId: binding.binding.externalSessionId,\n\t\t\t\tappThreadId: binding.binding.appThreadId,\n\t\t\t\tappSessionId: binding.binding.appSessionId,\n\t\t\t\tstreamClass: \"snapshot-authoritative\",\n\t\t\t\treplayCursor: binding.binding.replayCursor,\n\t\t\t\treplayClaim: REPLAY_CLAIM,\n\t\t\t\tsnapshot: { threadResume, threadRead, turns, items },\n\t\t\t},\n\t\t};\n\t}\n\n\trecordTerminalNotification(input: TerminalNotificationInput): TerminalRecordResult {\n\t\tif (!isTerminalNotification(input.method)) return { kind: \"ignored\" };\n\t\tconst params = readRecord(input.params);\n\t\tif (!params) return invalidSession(\"Terminal notification params must be an object.\");\n\t\tconst appThreadId = readString(params, \"threadId\") ?? readString(params, \"thread_id\");\n\t\tconst appTurnId = readAppTurnId(params);\n\t\tif (!appThreadId || !appTurnId) return invalidSession(\"Terminal notification requires thread and turn IDs.\");\n\t\tconst binding = this.sessionRegistry.getByAppThreadId(appThreadId);\n\t\tif (!binding || binding.tombstoned)\n\t\t\treturn invalidSession(`Unknown or tombstoned app-server thread: ${appThreadId}`);\n\t\tconst terminalKey = `${appThreadId}:${appTurnId}`;\n\t\tif (this.completedTurnKeys.has(terminalKey)) {\n\t\t\treturn { kind: \"duplicate-terminal\", externalSessionId: binding.externalSessionId, appTurnId };\n\t\t}\n\t\tthis.completedTurnKeys.add(terminalKey);\n\t\tconst appItemId = readString(params, \"itemId\") ?? readString(params, \"item_id\");\n\t\tthis.sessionRegistry.updateReplayCursor(binding.externalSessionId, {\n\t\t\t...binding.replayCursor,\n\t\t\tlastCompletedTurnId: appTurnId,\n\t\t\t...(appItemId ? { lastProjectedItemId: appItemId } : {}),\n\t\t\tlastLosslessSequence: input.sequence,\n\t\t});\n\t\treturn {\n\t\t\tkind: \"recorded\",\n\t\t\texternalSessionId: binding.externalSessionId,\n\t\t\tappTurnId,\n\t\t\tsequence: input.sequence,\n\t\t};\n\t}\n\n\tcreateDisconnectEvent(message: string): DisconnectEvent {\n\t\treturn {\n\t\t\tkind: \"disconnect\",\n\t\t\tmethod: \"disconnect\",\n\t\t\tconnectionId: this.connectionId,\n\t\t\tstreamClass: \"control\",\n\t\t\tmessage,\n\t\t\treplayClaim: REPLAY_CLAIM,\n\t\t};\n\t}\n\n\tprivate bindOrReuseSession(\n\t\tpayload: ResumeTokenPayload,\n\t):\n\t\t| { readonly kind: \"active\"; readonly binding: SessionBinding }\n\t\t| { readonly kind: \"adapter-error\"; readonly error: AdapterJsonRpcError } {\n\t\tconst existing = this.sessionRegistry.getByExternalSessionId(payload.externalSessionId);\n\t\tif (existing?.tombstoned) return invalidSession(`External session is tombstoned: ${payload.externalSessionId}`);\n\t\tif (existing) {\n\t\t\tif (existing.appThreadId !== payload.appThreadId || existing.appSessionId !== payload.appSessionId) {\n\t\t\t\treturn invalidSession(`Resume token does not match existing session binding: ${payload.externalSessionId}`);\n\t\t\t}\n\t\t\treturn { kind: \"active\", binding: existing };\n\t\t}\n\t\tconst bindResult = this.sessionRegistry.bindSession(payload);\n\t\tif (bindResult.kind === \"rejected\") return { kind: \"adapter-error\", error: bindResult.error };\n\t\tconst cursorResult = this.sessionRegistry.updateReplayCursor(payload.externalSessionId, payload.replayCursor);\n\t\tif (cursorResult.kind === \"rejected\") return { kind: \"adapter-error\", error: cursorResult.error };\n\t\treturn cursorResult;\n\t}\n}\n\nfunction withOptionalCursor(\n\tparams: Readonly<Record<string, unknown>>,\n\tkey: string,\n\tvalue: string | undefined,\n): Record<string, unknown> {\n\treturn value ? { ...params, [key]: value } : { ...params };\n}\n\nfunction isTerminalNotification(method: string): boolean {\n\treturn method === \"turn/completed\" || method === \"error\";\n}\n\nfunction readAppTurnId(params: Readonly<Record<string, unknown>>): string | undefined {\n\tconst topLevelTurnId = readString(params, \"turnId\") ?? readString(params, \"turn_id\") ?? readString(params, \"id\");\n\tif (topLevelTurnId) return topLevelTurnId;\n\tconst turn = readRecord(params.turn);\n\treturn turn ? readString(turn, \"id\") : undefined;\n}\n\nfunction invalidSession(message: string): { readonly kind: \"adapter-error\"; readonly error: AdapterJsonRpcError } {\n\treturn {\n\t\tkind: \"adapter-error\",\n\t\terror: createAdapterJsonRpcError({\n\t\t\tadapterCode: \"invalid-session-state\",\n\t\t\tmessage,\n\t\t\tretryable: true,\n\t\t}),\n\t};\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 readRecord(value: unknown): Readonly<Record<string, unknown>> | undefined {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) return undefined;\n\treturn Object.fromEntries(Object.entries(value));\n}\n"]}
|