@code-yeongyu/senpi 2026.8.26 → 2026.8.28-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +138 -0
- package/README.md +3 -3
- package/dist/cli/args.d.ts +5 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +18 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +2 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +5 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +11 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +1 -0
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +3 -0
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +67 -29
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/credential-accounts.d.ts +31 -0
- package/dist/core/credential-accounts.d.ts.map +1 -0
- package/dist/core/credential-accounts.js +135 -0
- package/dist/core/credential-accounts.js.map +1 -0
- package/dist/core/credential-pool/classify.d.ts +47 -0
- package/dist/core/credential-pool/classify.d.ts.map +1 -0
- package/dist/core/credential-pool/classify.js +92 -0
- package/dist/core/credential-pool/classify.js.map +1 -0
- package/dist/core/credential-pool/env-slots.d.ts +22 -0
- package/dist/core/credential-pool/env-slots.d.ts.map +1 -0
- package/dist/core/credential-pool/env-slots.js +37 -0
- package/dist/core/credential-pool/env-slots.js.map +1 -0
- package/dist/core/credential-pool/failover.d.ts +62 -0
- package/dist/core/credential-pool/failover.d.ts.map +1 -0
- package/dist/core/credential-pool/failover.js +124 -0
- package/dist/core/credential-pool/failover.js.map +1 -0
- package/dist/core/credential-pool/rotation-stream.d.ts +54 -0
- package/dist/core/credential-pool/rotation-stream.d.ts.map +1 -0
- package/dist/core/credential-pool/rotation-stream.js +183 -0
- package/dist/core/credential-pool/rotation-stream.js.map +1 -0
- package/dist/core/credential-pool/state-store.d.ts +89 -0
- package/dist/core/credential-pool/state-store.d.ts.map +1 -0
- package/dist/core/credential-pool/state-store.js +166 -0
- package/dist/core/credential-pool/state-store.js.map +1 -0
- package/dist/core/extensions/builtin/account/index.d.ts +9 -0
- package/dist/core/extensions/builtin/account/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/account/index.js +69 -0
- package/dist/core/extensions/builtin/account/index.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/index.js +67 -0
- package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/log.d.ts +1 -1
- package/dist/core/extensions/builtin/compaction/log.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/log.js +1 -0
- package/dist/core/extensions/builtin/compaction/log.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/index.js +14 -22
- package/dist/core/extensions/builtin/config-reload/index.js.map +1 -1
- package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts +1 -0
- package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/continuation-recovery.js +2 -0
- package/dist/core/extensions/builtin/goal/continuation-recovery.js.map +1 -1
- package/dist/core/extensions/builtin/goal/continuation.d.ts +8 -1
- package/dist/core/extensions/builtin/goal/continuation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/continuation.js +15 -0
- package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js +2 -2
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js.map +1 -1
- package/dist/core/extensions/builtin/goal/format.d.ts +6 -1
- package/dist/core/extensions/builtin/goal/format.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/format.js +6 -0
- package/dist/core/extensions/builtin/goal/format.js.map +1 -1
- package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/index.js +7 -0
- package/dist/core/extensions/builtin/goal/index.js.map +1 -1
- package/dist/core/extensions/builtin/goal/lifecycle-helpers.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/lifecycle-helpers.js +5 -2
- package/dist/core/extensions/builtin/goal/lifecycle-helpers.js.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.js +31 -7
- package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/persistence.js +2 -0
- package/dist/core/extensions/builtin/goal/persistence.js.map +1 -1
- package/dist/core/extensions/builtin/goal/renderers.d.ts +14 -0
- package/dist/core/extensions/builtin/goal/renderers.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/renderers.js +153 -0
- package/dist/core/extensions/builtin/goal/renderers.js.map +1 -0
- package/dist/core/extensions/builtin/goal/store.d.ts +6 -2
- package/dist/core/extensions/builtin/goal/store.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/store.js +8 -2
- package/dist/core/extensions/builtin/goal/store.js.map +1 -1
- package/dist/core/extensions/builtin/goal/tool-registration.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/tool-registration.js +16 -6
- package/dist/core/extensions/builtin/goal/tool-registration.js.map +1 -1
- package/dist/core/extensions/builtin/goal/types.d.ts +1 -0
- package/dist/core/extensions/builtin/goal/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/types.js.map +1 -1
- package/dist/core/extensions/builtin/imagegen/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/imagegen/index.js +10 -3
- package/dist/core/extensions/builtin/imagegen/index.js.map +1 -1
- 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/service-tier.d.ts.map +1 -1
- package/dist/core/extensions/builtin/service-tier.js +13 -0
- package/dist/core/extensions/builtin/service-tier.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/extension.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/extension.js +4 -2
- package/dist/core/extensions/builtin/terminal/extension.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/index.js +1 -1
- package/dist/core/extensions/builtin/todotools/index.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/native-todo-mirror.d.ts +1 -1
- package/dist/core/extensions/builtin/todotools/native-todo-mirror.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/native-todo-mirror.js +1 -1
- package/dist/core/extensions/builtin/todotools/native-todo-mirror.js.map +1 -1
- package/dist/core/hidden-stdout-log.d.ts +10 -0
- package/dist/core/hidden-stdout-log.d.ts.map +1 -1
- package/dist/core/hidden-stdout-log.js +36 -5
- package/dist/core/hidden-stdout-log.js.map +1 -1
- package/dist/core/model-config-schema.d.ts +85 -12
- package/dist/core/model-config-schema.d.ts.map +1 -1
- package/dist/core/model-config-schema.js +25 -0
- package/dist/core/model-config-schema.js.map +1 -1
- package/dist/core/model-runtime.d.ts +36 -1
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +142 -12
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/retry-fallback/chains.d.ts +23 -1
- package/dist/core/retry-fallback/chains.d.ts.map +1 -1
- package/dist/core/retry-fallback/chains.js +59 -3
- package/dist/core/retry-fallback/chains.js.map +1 -1
- package/dist/core/retry-fallback/controller.d.ts.map +1 -1
- package/dist/core/retry-fallback/controller.js +9 -2
- package/dist/core/retry-fallback/controller.js.map +1 -1
- package/dist/core/retry-fallback/settings.d.ts.map +1 -1
- package/dist/core/retry-fallback/settings.js +9 -0
- package/dist/core/retry-fallback/settings.js.map +1 -1
- package/dist/core/retry-fallback/validate.js +1 -1
- package/dist/core/retry-fallback/validate.js.map +1 -1
- package/dist/core/sdk.js +1 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +9 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +31 -0
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +2 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +32 -7
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +7 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +48 -4
- package/dist/main.js.map +1 -1
- package/dist/modes/app-server/server/account.d.ts.map +1 -1
- package/dist/modes/app-server/server/account.js +5 -5
- package/dist/modes/app-server/server/account.js.map +1 -1
- package/dist/modes/index.d.ts +1 -0
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js +1 -0
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +11 -3
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +31 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution-fallback.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution-fallback.js +82 -1
- package/dist/modes/interactive/components/tool-execution-fallback.js.map +1 -1
- package/dist/modes/interactive/grok/chrome.d.ts +4 -4
- package/dist/modes/interactive/grok/chrome.d.ts.map +1 -1
- package/dist/modes/interactive/grok/chrome.js.map +1 -1
- package/dist/modes/interactive/grok/footer.d.ts +3 -3
- package/dist/modes/interactive/grok/footer.d.ts.map +1 -1
- package/dist/modes/interactive/grok/footer.js.map +1 -1
- package/dist/modes/interactive/interactive-host-runtime.d.ts +44 -0
- package/dist/modes/interactive/interactive-host-runtime.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-host-runtime.js +529 -0
- package/dist/modes/interactive/interactive-host-runtime.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +340 -257
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
- package/dist/modes/rpc/connection-handler.js +151 -30
- package/dist/modes/rpc/connection-handler.js.map +1 -1
- package/dist/modes/rpc/host-ensure.d.ts +41 -0
- package/dist/modes/rpc/host-ensure.d.ts.map +1 -0
- package/dist/modes/rpc/host-ensure.js +245 -0
- package/dist/modes/rpc/host-ensure.js.map +1 -0
- package/dist/modes/rpc/host-lifecycle.d.ts +57 -0
- package/dist/modes/rpc/host-lifecycle.d.ts.map +1 -0
- package/dist/modes/rpc/host-lifecycle.js +491 -0
- package/dist/modes/rpc/host-lifecycle.js.map +1 -0
- package/dist/modes/rpc/host-watchdog.d.ts +33 -0
- package/dist/modes/rpc/host-watchdog.d.ts.map +1 -0
- package/dist/modes/rpc/host-watchdog.js +142 -0
- package/dist/modes/rpc/host-watchdog.js.map +1 -0
- package/dist/modes/rpc/multi-session-host.d.ts +7 -1
- package/dist/modes/rpc/multi-session-host.d.ts.map +1 -1
- package/dist/modes/rpc/multi-session-host.js +216 -32
- package/dist/modes/rpc/multi-session-host.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +115 -8
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +200 -32
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +4 -2
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +4 -2
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +166 -3
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/modes/rpc/session-command-router.d.ts +22 -0
- package/dist/modes/rpc/session-command-router.d.ts.map +1 -1
- package/dist/modes/rpc/session-command-router.js +165 -16
- package/dist/modes/rpc/session-command-router.js.map +1 -1
- package/dist/modes/rpc/session-event-writer.d.ts +15 -2
- package/dist/modes/rpc/session-event-writer.d.ts.map +1 -1
- package/dist/modes/rpc/session-event-writer.js +69 -25
- package/dist/modes/rpc/session-event-writer.js.map +1 -1
- package/dist/modes/rpc/session-registry.d.ts +16 -0
- package/dist/modes/rpc/session-registry.d.ts.map +1 -1
- package/dist/modes/rpc/session-registry.js +40 -3
- package/dist/modes/rpc/session-registry.js.map +1 -1
- package/docs/providers.md +48 -0
- package/docs/rpc.md +96 -5
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +56 -0
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/context-manager.ts +13 -1
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/inline-worker.ts +15 -1
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/worker-indirect-eval.js +711 -1
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/py/transport.ts +14 -1
- package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +10 -10
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-eval-result.ts +9 -3
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +6 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js +20 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/index.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/post-mutate.d.ts +21 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/post-mutate.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/post-mutate.js +27 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/post-mutate.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/tool-context.d.ts +24 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/tool-context.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/tool-context.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.js +7 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.js +46 -14
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts +11 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js +30 -16
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.d.ts +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/classify.d.ts +16 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/classify.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/classify.js +75 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/classify.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/failover.d.ts +45 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/failover.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/failover.js +81 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/failover.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/select.d.ts +31 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/select.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/select.js +65 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/select.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.d.ts +12 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.js +37 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts +6 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +32 -6
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.d.ts +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts +6 -0
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +6 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +75 -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 +75 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/alibaba-token-plan.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opengateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +5 -5
- package/node_modules/@earendil-works/pi-pty/package.json +1 -1
- package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +5 -0
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js +90 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +1 -1
- 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/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-handler.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/connection-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"connection-handler.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/connection-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAwC/E,OAAO,KAAK,EAWX,eAAe,EAEf,MAAM,gBAAgB,CAAC;AAGxB,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACpC,mFAAmF;IACnF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACpC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,sEAAsE;IACtE,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C;;;OAGG;IACH,mBAAmB,IAAI,OAAO,CAAC;IAC/B,iFAAiF;IACjF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AA4BD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,eAAe,CAqC3E;AA4BD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACzC,WAAW,EAAE,mBAAmB,EAChC,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,oBAAyB,GAChC,oBAAoB,CA4pCtB"}
|
|
@@ -15,10 +15,13 @@
|
|
|
15
15
|
* (and whether) to end the process.
|
|
16
16
|
*/
|
|
17
17
|
import * as crypto from "node:crypto";
|
|
18
|
+
import { existsSync } from "node:fs";
|
|
18
19
|
import { basename, dirname, extname } from "node:path";
|
|
20
|
+
import { VERSION } from "../../config.js";
|
|
19
21
|
import { buildLoginProviderInfos } from "../../core/auth-providers.js";
|
|
22
|
+
import { getCredentialAccounts, pinCredentialAccount, removeCredentialAccount, } from "../../core/credential-accounts.js";
|
|
20
23
|
import { emitProviderAccountsChanged, subscribeProviderAccountEvents, } from "../../core/extensions/builtin/claude-sdk-oauth/account-events.js";
|
|
21
|
-
import { CLAUDE_SDK_OAUTH_PROVIDER_ID
|
|
24
|
+
import { CLAUDE_SDK_OAUTH_PROVIDER_ID } from "../../core/extensions/builtin/claude-sdk-oauth/account-management.js";
|
|
22
25
|
import { isMcpControlInventoryChanged, MCP_CONTROL_INVENTORY_CHANGED_EVENT, MCP_CONTROL_INVENTORY_REQUEST_EVENT, } from "../../core/extensions/builtin/mcp/control-inventory.js";
|
|
23
26
|
import { applyFastMode, resolveServiceTierMemoryModel, } from "../../core/extensions/builtin/service-tier.js";
|
|
24
27
|
import { getSupportedThinkingLevels } from "../../core/thinking-levels.js";
|
|
@@ -71,11 +74,27 @@ export function buildRpcSessionState(session) {
|
|
|
71
74
|
fastMode: session.isFastModeActive(),
|
|
72
75
|
isStreaming: session.isStreaming,
|
|
73
76
|
isCompacting: session.isCompacting,
|
|
77
|
+
retryAttempt: session.retryAttempt,
|
|
78
|
+
isBashRunning: session.isBashRunning,
|
|
74
79
|
steeringMode: session.steeringMode,
|
|
75
80
|
followUpMode: session.followUpMode,
|
|
76
81
|
sessionFile: session.sessionFile,
|
|
77
82
|
sessionId: session.sessionId,
|
|
78
83
|
sessionName: session.sessionName,
|
|
84
|
+
cwd: session.sessionManager.getCwd(),
|
|
85
|
+
projectTrusted: session.settingsManager?.isProjectTrusted?.() ?? true,
|
|
86
|
+
...(session.sessionFile &&
|
|
87
|
+
!existsSync(session.sessionFile) &&
|
|
88
|
+
session.sessionManager
|
|
89
|
+
.getEntries()
|
|
90
|
+
.some((entry) => entry.type !== "model_change" && entry.type !== "thinking_level_change")
|
|
91
|
+
? { entries: session.sessionManager.getEntries() }
|
|
92
|
+
: {}),
|
|
93
|
+
steering: typeof session.getSteeringMessages === "function" ? [...session.getSteeringMessages()] : [],
|
|
94
|
+
followUp: typeof session.getFollowUpMessages === "function" ? [...session.getFollowUpMessages()] : [],
|
|
95
|
+
ordered: [
|
|
96
|
+
...(session._queuedInputOrder ?? []),
|
|
97
|
+
].sort((a, b) => a.enqueueOrder - b.enqueueOrder),
|
|
79
98
|
autoCompactionEnabled: session.autoCompactionEnabled,
|
|
80
99
|
messageCount: session.messages.length,
|
|
81
100
|
pendingMessageCount: session.pendingMessageCount,
|
|
@@ -189,8 +208,16 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
189
208
|
}
|
|
190
209
|
return { id, type: "response", command, success: true, data };
|
|
191
210
|
};
|
|
192
|
-
const error = (id, command, message) => {
|
|
193
|
-
return {
|
|
211
|
+
const error = (id, command, message, errorCode, errorData) => {
|
|
212
|
+
return {
|
|
213
|
+
id,
|
|
214
|
+
type: "response",
|
|
215
|
+
command,
|
|
216
|
+
success: false,
|
|
217
|
+
error: message,
|
|
218
|
+
...(errorCode ? { errorCode } : {}),
|
|
219
|
+
...(errorData === undefined ? {} : { errorData }),
|
|
220
|
+
};
|
|
194
221
|
};
|
|
195
222
|
// Pending extension UI requests waiting for response
|
|
196
223
|
const pendingExtensionRequests = new SessionExtensionUiRequests();
|
|
@@ -568,7 +595,12 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
568
595
|
type: "response",
|
|
569
596
|
command: "get_protocol_info",
|
|
570
597
|
success: true,
|
|
571
|
-
data: {
|
|
598
|
+
data: {
|
|
599
|
+
protocolVersion: 1,
|
|
600
|
+
serverVersion: VERSION,
|
|
601
|
+
capabilities: [...new Set(["multi_session", ...(options.capabilities ?? [])])],
|
|
602
|
+
mode: "classic",
|
|
603
|
+
},
|
|
572
604
|
};
|
|
573
605
|
case "open_session":
|
|
574
606
|
return error(id, "open_session", "multi_session_disabled");
|
|
@@ -581,17 +613,24 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
581
613
|
}
|
|
582
614
|
// Start prompt handling immediately, but emit the authoritative response only after
|
|
583
615
|
// prompt preflight succeeds. Queued and immediately handled prompts also count as success.
|
|
616
|
+
// The disposition is captured for the wire: AgentSession always fires promptDisposition
|
|
617
|
+
// strictly before preflightResult(true), so the success frame carries the final value.
|
|
584
618
|
let preflightSucceeded = false;
|
|
619
|
+
let disposition;
|
|
585
620
|
void session
|
|
586
621
|
.prompt(command.message, {
|
|
587
622
|
images: command.images,
|
|
588
623
|
streamingBehavior: command.streamingBehavior,
|
|
589
624
|
thinkingLevel: command.thinkingLevel,
|
|
625
|
+
expandPromptTemplates: command.expandPromptTemplates,
|
|
590
626
|
source: "rpc",
|
|
627
|
+
promptDisposition: (nextDisposition) => {
|
|
628
|
+
disposition = nextDisposition;
|
|
629
|
+
},
|
|
591
630
|
preflightResult: (didSucceed) => {
|
|
592
631
|
if (didSucceed && !preflightSucceeded) {
|
|
593
632
|
preflightSucceeded = true;
|
|
594
|
-
output(success(id, "prompt"));
|
|
633
|
+
output(success(id, "prompt", { ...(disposition !== undefined ? { disposition } : {}) }));
|
|
595
634
|
}
|
|
596
635
|
},
|
|
597
636
|
})
|
|
@@ -602,21 +641,68 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
602
641
|
});
|
|
603
642
|
return undefined;
|
|
604
643
|
}
|
|
644
|
+
case "append_user_message": {
|
|
645
|
+
const content = command.content;
|
|
646
|
+
const message = typeof content === "string"
|
|
647
|
+
? { role: "user", content, timestamp: Date.now() }
|
|
648
|
+
: { role: "user", content, timestamp: Date.now() };
|
|
649
|
+
session.sessionManager.appendMessage(message);
|
|
650
|
+
session.messages.push(message);
|
|
651
|
+
return success(id, "append_user_message");
|
|
652
|
+
}
|
|
653
|
+
case "append_session_entry": {
|
|
654
|
+
session.sessionManager.appendEntry(command.entry);
|
|
655
|
+
if (command.entry.type === "message")
|
|
656
|
+
session.messages.push(command.entry.message);
|
|
657
|
+
return success(id, "append_session_entry");
|
|
658
|
+
}
|
|
659
|
+
case "send_custom_message": {
|
|
660
|
+
await session.sendCustomMessage({
|
|
661
|
+
customType: command.customType,
|
|
662
|
+
content: command.content,
|
|
663
|
+
display: command.display,
|
|
664
|
+
details: command.details,
|
|
665
|
+
}, { triggerTurn: command.triggerTurn, deliverAs: command.deliverAs });
|
|
666
|
+
return success(id, "send_custom_message");
|
|
667
|
+
}
|
|
605
668
|
case "steer": {
|
|
606
|
-
await session.steer(command.message, command.images);
|
|
669
|
+
await session.steer(command.message, command.images, { enqueueOrder: command.enqueueOrder });
|
|
607
670
|
return success(id, "steer");
|
|
608
671
|
}
|
|
609
672
|
case "follow_up": {
|
|
610
|
-
await session.followUp(command.message, command.images);
|
|
673
|
+
await session.followUp(command.message, command.images, { enqueueOrder: command.enqueueOrder });
|
|
611
674
|
return success(id, "follow_up");
|
|
612
675
|
}
|
|
613
676
|
case "abort": {
|
|
614
677
|
await session.abort();
|
|
615
678
|
return success(id, "abort");
|
|
616
679
|
}
|
|
680
|
+
case "abort_compaction": {
|
|
681
|
+
session.abortCompaction();
|
|
682
|
+
return success(id, "abort_compaction");
|
|
683
|
+
}
|
|
684
|
+
case "reload": {
|
|
685
|
+
const result = await session.reload();
|
|
686
|
+
return success(id, "reload", result);
|
|
687
|
+
}
|
|
688
|
+
case "check_reload_veto": {
|
|
689
|
+
return success(id, "check_reload_veto", await session.checkReloadVeto());
|
|
690
|
+
}
|
|
617
691
|
case "clear_queue": {
|
|
618
|
-
|
|
692
|
+
const cleared = session.clearQueue({ abortWillFollow: command.abortWillFollow ?? false });
|
|
693
|
+
return success(id, "clear_queue", {
|
|
694
|
+
steering: cleared.steering,
|
|
695
|
+
followUp: cleared.followUp,
|
|
696
|
+
ordered: [...cleared.ordered],
|
|
697
|
+
});
|
|
619
698
|
}
|
|
699
|
+
case "get_steering_messages":
|
|
700
|
+
return success(id, "get_steering_messages", { messages: [...session.getSteeringMessages()] });
|
|
701
|
+
case "get_follow_up_messages":
|
|
702
|
+
return success(id, "get_follow_up_messages", { messages: [...session.getFollowUpMessages()] });
|
|
703
|
+
case "abort_branch_summary":
|
|
704
|
+
session.abortBranchSummary();
|
|
705
|
+
return success(id, "abort_branch_summary");
|
|
620
706
|
case "new_session": {
|
|
621
707
|
const options = command.parentSession ? { parentSession: command.parentSession } : undefined;
|
|
622
708
|
const result = await runtimeHost.newSession(options);
|
|
@@ -639,8 +725,8 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
639
725
|
if (!model) {
|
|
640
726
|
return error(id, "set_model", `Model not found: ${command.provider}/${command.modelId}`);
|
|
641
727
|
}
|
|
642
|
-
await session.setModel(model);
|
|
643
|
-
return success(id, "set_model", model);
|
|
728
|
+
const systemPromptChange = await session.setModel(model);
|
|
729
|
+
return success(id, "set_model", { ...model, systemPromptName: systemPromptChange?.systemPromptName });
|
|
644
730
|
}
|
|
645
731
|
case "cycle_model": {
|
|
646
732
|
const result = await session.cycleModel();
|
|
@@ -756,24 +842,49 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
756
842
|
// =================================================================
|
|
757
843
|
// Bash
|
|
758
844
|
// =================================================================
|
|
759
|
-
case "
|
|
760
|
-
const
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
845
|
+
case "navigate_tree": {
|
|
846
|
+
const result = await session.navigateTree(command.targetId, {
|
|
847
|
+
summarize: command.summarize,
|
|
848
|
+
customInstructions: command.customInstructions,
|
|
849
|
+
replaceInstructions: command.replaceInstructions,
|
|
850
|
+
label: command.label,
|
|
765
851
|
});
|
|
766
|
-
|
|
767
|
-
|
|
852
|
+
return success(id, "navigate_tree", result);
|
|
853
|
+
}
|
|
854
|
+
case "record_bash_result":
|
|
855
|
+
session.recordBashResult(command.command, command.result, {
|
|
856
|
+
excludeFromContext: command.excludeFromContext,
|
|
857
|
+
});
|
|
858
|
+
return success(id, "record_bash_result");
|
|
859
|
+
case "set_label":
|
|
860
|
+
session.sessionManager.appendLabelChange(command.entryId, command.label);
|
|
861
|
+
return success(id, "set_label");
|
|
862
|
+
case "bash": {
|
|
863
|
+
outputEvent({ type: "bash_start" });
|
|
864
|
+
try {
|
|
865
|
+
const eventResult = await session.extensionRunner.emitUserBash({
|
|
866
|
+
type: "user_bash",
|
|
867
|
+
command: command.command,
|
|
868
|
+
excludeFromContext: command.excludeFromContext ?? false,
|
|
869
|
+
cwd: session.sessionManager.getCwd(),
|
|
870
|
+
});
|
|
871
|
+
if (eventResult?.result) {
|
|
872
|
+
session.recordBashResult(command.command, eventResult.result, {
|
|
873
|
+
excludeFromContext: command.excludeFromContext,
|
|
874
|
+
});
|
|
875
|
+
return success(id, "bash", eventResult.result);
|
|
876
|
+
}
|
|
877
|
+
const result = await session.executeBash(command.command, undefined, {
|
|
768
878
|
excludeFromContext: command.excludeFromContext,
|
|
879
|
+
// Functions cannot cross JSONL. Host extensions may still provide the
|
|
880
|
+
// executable operations object; client-supplied data is only a wire-safe hint.
|
|
881
|
+
operations: eventResult?.operations,
|
|
769
882
|
});
|
|
770
|
-
return success(id, "bash",
|
|
883
|
+
return success(id, "bash", result);
|
|
884
|
+
}
|
|
885
|
+
finally {
|
|
886
|
+
outputEvent({ type: "bash_end" });
|
|
771
887
|
}
|
|
772
|
-
const result = await session.executeBash(command.command, undefined, {
|
|
773
|
-
excludeFromContext: command.excludeFromContext,
|
|
774
|
-
operations: eventResult?.operations,
|
|
775
|
-
});
|
|
776
|
-
return success(id, "bash", result);
|
|
777
888
|
}
|
|
778
889
|
case "abort_bash": {
|
|
779
890
|
session.abortBash();
|
|
@@ -790,15 +901,18 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
790
901
|
const path = await session.exportToHtml(command.outputPath);
|
|
791
902
|
return success(id, "export_html", { path });
|
|
792
903
|
}
|
|
904
|
+
case "export_jsonl": {
|
|
905
|
+
return success(id, "export_jsonl", { path: session.exportToJsonl(command.outputPath) });
|
|
906
|
+
}
|
|
793
907
|
case "switch_session": {
|
|
794
|
-
const result = await runtimeHost.switchSession(command.sessionPath);
|
|
908
|
+
const result = await runtimeHost.switchSession(command.sessionPath, { cwdOverride: command.cwdOverride });
|
|
795
909
|
if (!result.cancelled) {
|
|
796
910
|
await rebindSession();
|
|
797
911
|
}
|
|
798
912
|
return success(id, "switch_session", result);
|
|
799
913
|
}
|
|
800
914
|
case "fork": {
|
|
801
|
-
const result = await runtimeHost.fork(command.entryId);
|
|
915
|
+
const result = await runtimeHost.fork(command.entryId, { position: command.position });
|
|
802
916
|
if (!result.cancelled) {
|
|
803
917
|
await rebindSession();
|
|
804
918
|
}
|
|
@@ -839,6 +953,12 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
839
953
|
const text = session.getLastAssistantText();
|
|
840
954
|
return success(id, "get_last_assistant_text", { text });
|
|
841
955
|
}
|
|
956
|
+
case "import_jsonl": {
|
|
957
|
+
const result = await runtimeHost.importFromJsonl(command.inputPath, command.cwdOverride);
|
|
958
|
+
if (!result.cancelled)
|
|
959
|
+
await rebindSession();
|
|
960
|
+
return success(id, "import_jsonl", result);
|
|
961
|
+
}
|
|
842
962
|
case "set_session_name": {
|
|
843
963
|
const name = command.name.trim();
|
|
844
964
|
if (!name) {
|
|
@@ -911,15 +1031,15 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
911
1031
|
return success(id, "logout");
|
|
912
1032
|
}
|
|
913
1033
|
case "get_provider_accounts": {
|
|
914
|
-
const accounts =
|
|
1034
|
+
const accounts = await getCredentialAccounts(session.modelRegistry.authStorage, command.provider);
|
|
915
1035
|
return success(id, "get_provider_accounts", { accounts });
|
|
916
1036
|
}
|
|
917
1037
|
case "account_pin": {
|
|
918
|
-
await
|
|
1038
|
+
await pinCredentialAccount(session.modelRegistry.authStorage, command.provider, command.name);
|
|
919
1039
|
return success(id, "account_pin");
|
|
920
1040
|
}
|
|
921
1041
|
case "account_remove": {
|
|
922
|
-
await
|
|
1042
|
+
await removeCredentialAccount(session.modelRegistry.authStorage, command.provider, command.name);
|
|
923
1043
|
return success(id, "account_remove");
|
|
924
1044
|
}
|
|
925
1045
|
default: {
|
|
@@ -972,7 +1092,8 @@ export function createRpcConnectionHandler(runtimeHost, sink, options = {}) {
|
|
|
972
1092
|
}
|
|
973
1093
|
}
|
|
974
1094
|
catch (commandError) {
|
|
975
|
-
|
|
1095
|
+
const missingCwd = commandError instanceof Error && commandError.name === "MissingSessionCwdError" && "issue" in commandError;
|
|
1096
|
+
output(error(command.id, command.type, commandError instanceof Error ? commandError.message : String(commandError), missingCwd ? "missing_session_cwd" : undefined, missingCwd ? commandError.issue : undefined));
|
|
976
1097
|
await waitForRpcBackpressure();
|
|
977
1098
|
}
|
|
978
1099
|
};
|