@code-yeongyu/senpi 2026.8.28 → 2026.8.30-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 +196 -0
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +4 -0
- 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 +50 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +330 -29
- 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 +155 -37
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/compaction/compaction-execution.d.ts +14 -0
- package/dist/core/compaction/compaction-execution.d.ts.map +1 -0
- package/dist/core/compaction/compaction-execution.js +121 -0
- package/dist/core/compaction/compaction-execution.js.map +1 -0
- package/dist/core/compaction/compaction-settings.d.ts +17 -0
- package/dist/core/compaction/compaction-settings.d.ts.map +1 -0
- package/dist/core/compaction/compaction-settings.js +17 -0
- package/dist/core/compaction/compaction-settings.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +13 -26
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +7 -136
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/ideal-compaction-settings.d.ts +9 -0
- package/dist/core/compaction/ideal-compaction-settings.d.ts.map +1 -0
- package/dist/core/compaction/ideal-compaction-settings.js +7 -0
- package/dist/core/compaction/ideal-compaction-settings.js.map +1 -0
- package/dist/core/compaction-settings-access.d.ts +19 -0
- package/dist/core/compaction-settings-access.d.ts.map +1 -0
- package/dist/core/compaction-settings-access.js +10 -0
- package/dist/core/compaction-settings-access.js.map +1 -0
- package/dist/core/compaction-settings-resolver.d.ts +22 -0
- package/dist/core/compaction-settings-resolver.d.ts.map +1 -0
- package/dist/core/compaction-settings-resolver.js +46 -0
- package/dist/core/compaction-settings-resolver.js.map +1 -0
- package/dist/core/credential-accounts.d.ts.map +1 -1
- package/dist/core/credential-accounts.js +45 -21
- package/dist/core/credential-accounts.js.map +1 -1
- package/dist/core/credential-pool/classify.d.ts +6 -1
- package/dist/core/credential-pool/classify.d.ts.map +1 -1
- package/dist/core/credential-pool/classify.js +22 -5
- package/dist/core/credential-pool/classify.js.map +1 -1
- package/dist/core/credential-pool/env-slots.d.ts.map +1 -1
- package/dist/core/credential-pool/env-slots.js +2 -0
- package/dist/core/credential-pool/env-slots.js.map +1 -1
- package/dist/core/credential-pool/failover.d.ts +8 -0
- package/dist/core/credential-pool/failover.d.ts.map +1 -1
- package/dist/core/credential-pool/failover.js +24 -6
- package/dist/core/credential-pool/failover.js.map +1 -1
- package/dist/core/credential-pool/rotation-stream.d.ts +13 -2
- package/dist/core/credential-pool/rotation-stream.d.ts.map +1 -1
- package/dist/core/credential-pool/rotation-stream.js +97 -10
- package/dist/core/credential-pool/rotation-stream.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/context-pipeline.d.ts +17 -0
- package/dist/core/extensions/builtin/compaction/context-pipeline.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/context-pipeline.js +28 -0
- package/dist/core/extensions/builtin/compaction/context-pipeline.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/deterministic-fallback.d.ts +8 -2
- package/dist/core/extensions/builtin/compaction/deterministic-fallback.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/deterministic-fallback.js +163 -48
- package/dist/core/extensions/builtin/compaction/deterministic-fallback.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/emergency-prune.d.ts +17 -0
- package/dist/core/extensions/builtin/compaction/emergency-prune.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/emergency-prune.js +64 -0
- package/dist/core/extensions/builtin/compaction/emergency-prune.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/extension-wiring.d.ts +27 -0
- package/dist/core/extensions/builtin/compaction/extension-wiring.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/extension-wiring.js +84 -0
- package/dist/core/extensions/builtin/compaction/extension-wiring.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/idle.d.ts +1 -0
- package/dist/core/extensions/builtin/compaction/idle.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/idle.js +13 -2
- package/dist/core/extensions/builtin/compaction/idle.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/index.d.ts +1 -1
- package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/index.js +121 -147
- 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 +2 -0
- package/dist/core/extensions/builtin/compaction/log.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/model-selection.d.ts +14 -0
- package/dist/core/extensions/builtin/compaction/model-selection.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/model-selection.js +37 -0
- package/dist/core/extensions/builtin/compaction/model-selection.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/openai-remote-dependencies.d.ts +9 -0
- package/dist/core/extensions/builtin/compaction/openai-remote-dependencies.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/openai-remote-dependencies.js +2 -0
- package/dist/core/extensions/builtin/compaction/openai-remote-dependencies.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/openai-remote.d.ts +3 -6
- package/dist/core/extensions/builtin/compaction/openai-remote.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/openai-remote.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/orchestration.d.ts +56 -0
- package/dist/core/extensions/builtin/compaction/orchestration.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/orchestration.js +136 -0
- package/dist/core/extensions/builtin/compaction/orchestration.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/policy.d.ts +5 -2
- package/dist/core/extensions/builtin/compaction/policy.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/policy.js +43 -26
- package/dist/core/extensions/builtin/compaction/policy.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/retained-message-safety.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/retained-message-safety.js +31 -8
- package/dist/core/extensions/builtin/compaction/retained-message-safety.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculation-lead.d.ts +8 -0
- package/dist/core/extensions/builtin/compaction/speculation-lead.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/speculation-lead.js +17 -0
- package/dist/core/extensions/builtin/compaction/speculation-lead.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/speculative-job.d.ts +22 -0
- package/dist/core/extensions/builtin/compaction/speculative-job.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/speculative-job.js +16 -0
- package/dist/core/extensions/builtin/compaction/speculative-job.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/speculative-summary.d.ts +22 -0
- package/dist/core/extensions/builtin/compaction/speculative-summary.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/speculative-summary.js +131 -0
- package/dist/core/extensions/builtin/compaction/speculative-summary.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/speculative.d.ts +8 -13
- package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.js +7 -196
- package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/token-budget-reminder.d.ts +18 -0
- package/dist/core/extensions/builtin/compaction/token-budget-reminder.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/token-budget-reminder.js +18 -0
- package/dist/core/extensions/builtin/compaction/token-budget-reminder.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/tool-admission.d.ts +36 -0
- package/dist/core/extensions/builtin/compaction/tool-admission.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/tool-admission.js +92 -0
- package/dist/core/extensions/builtin/compaction/tool-admission.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.js +8 -28
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.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/permission-system/external-dir.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/external-dir.js +15 -5
- package/dist/core/extensions/builtin/permission-system/external-dir.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 +16 -1
- package/dist/core/extensions/builtin/permission-system/parsers.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/terminal/manager.d.ts +5 -0
- package/dist/core/extensions/builtin/terminal/manager.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/manager.js +31 -3
- package/dist/core/extensions/builtin/terminal/manager.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-permission.d.ts +8 -0
- package/dist/core/extensions/builtin/terminal/monitor-permission.d.ts.map +1 -0
- package/dist/core/extensions/builtin/terminal/monitor-permission.js +16 -0
- package/dist/core/extensions/builtin/terminal/monitor-permission.js.map +1 -0
- package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts +13 -0
- package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-registry.js +403 -3
- package/dist/core/extensions/builtin/terminal/monitor-registry.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/session-bundle.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/session-bundle.js +1 -0
- package/dist/core/extensions/builtin/terminal/session-bundle.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/kill-bash.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/kill-bash.js +5 -2
- package/dist/core/extensions/builtin/terminal/tools/kill-bash.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/monitor.d.ts +4 -0
- package/dist/core/extensions/builtin/terminal/tools/monitor.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/monitor.js +40 -2
- package/dist/core/extensions/builtin/terminal/tools/monitor.js.map +1 -1
- package/dist/core/model-config-schema.d.ts +4 -4
- package/dist/core/model-resolver.js +2 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +2 -0
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +74 -37
- 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 +40 -0
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +15 -85
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +15 -17
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-public-types.d.ts +11 -0
- package/dist/core/settings-public-types.d.ts.map +1 -0
- package/dist/core/settings-public-types.js +2 -0
- package/dist/core/settings-public-types.js.map +1 -0
- package/dist/core/settings-shapes.d.ts +36 -0
- package/dist/core/settings-shapes.d.ts.map +1 -0
- package/dist/core/settings-shapes.js +2 -0
- package/dist/core/settings-shapes.js.map +1 -0
- package/dist/core/shared-host-policy.d.ts +6 -0
- package/dist/core/shared-host-policy.d.ts.map +1 -0
- package/dist/core/shared-host-policy.js +7 -0
- package/dist/core/shared-host-policy.js.map +1 -0
- package/dist/core/terminal-settings.d.ts +22 -0
- package/dist/core/terminal-settings.d.ts.map +1 -0
- package/dist/core/terminal-settings.js +2 -0
- package/dist/core/terminal-settings.js.map +1 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +97 -15
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/index.d.ts +1 -0
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +8 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +1 -1
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +76 -34
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/main.d.ts +7 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +27 -6
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/favorite-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/favorite-models-selector.js +2 -2
- package/dist/modes/interactive/components/favorite-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +7 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +34 -8
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/grok/chrome.d.ts +2 -0
- 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/interactive-host-runtime.d.ts +121 -1
- package/dist/modes/interactive/interactive-host-runtime.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-host-runtime.js +606 -45
- package/dist/modes/interactive/interactive-host-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +7 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +390 -239
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/connection-handler.d.ts +8 -1
- package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
- package/dist/modes/rpc/connection-handler.js +268 -63
- package/dist/modes/rpc/connection-handler.js.map +1 -1
- package/dist/modes/rpc/host-ensure.d.ts +19 -0
- package/dist/modes/rpc/host-ensure.d.ts.map +1 -1
- package/dist/modes/rpc/host-ensure.js +79 -15
- package/dist/modes/rpc/host-ensure.js.map +1 -1
- package/dist/modes/rpc/host-lifecycle.d.ts +29 -0
- package/dist/modes/rpc/host-lifecycle.d.ts.map +1 -1
- package/dist/modes/rpc/host-lifecycle.js +96 -25
- package/dist/modes/rpc/host-lifecycle.js.map +1 -1
- package/dist/modes/rpc/host-watchdog.d.ts +2 -0
- package/dist/modes/rpc/host-watchdog.d.ts.map +1 -1
- package/dist/modes/rpc/host-watchdog.js +23 -12
- package/dist/modes/rpc/host-watchdog.js.map +1 -1
- package/dist/modes/rpc/multi-session-host.js +20 -8
- package/dist/modes/rpc/multi-session-host.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +91 -16
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +131 -37
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-input-validation.d.ts +1 -0
- package/dist/modes/rpc/rpc-input-validation.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-input-validation.js +66 -0
- package/dist/modes/rpc/rpc-input-validation.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +3 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +3 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +248 -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-binding.d.ts +1 -0
- package/dist/modes/rpc/session-binding.d.ts.map +1 -1
- package/dist/modes/rpc/session-binding.js +21 -1
- package/dist/modes/rpc/session-binding.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 +148 -16
- package/dist/modes/rpc/session-command-router.js.map +1 -1
- package/dist/modes/rpc/session-event-writer.d.ts +4 -0
- package/dist/modes/rpc/session-event-writer.d.ts.map +1 -1
- package/dist/modes/rpc/session-event-writer.js +58 -7
- package/dist/modes/rpc/session-event-writer.js.map +1 -1
- package/dist/modes/rpc/session-extension-ui-requests.d.ts +1 -0
- package/dist/modes/rpc/session-extension-ui-requests.d.ts.map +1 -1
- package/dist/modes/rpc/session-extension-ui-requests.js +5 -0
- package/dist/modes/rpc/session-extension-ui-requests.js.map +1 -1
- package/dist/modes/rpc/session-registry.d.ts +17 -2
- package/dist/modes/rpc/session-registry.d.ts.map +1 -1
- package/dist/modes/rpc/session-registry.js +67 -4
- package/dist/modes/rpc/session-registry.js.map +1 -1
- package/dist/modes/rpc/socket-event-fanout.d.ts +22 -0
- package/dist/modes/rpc/socket-event-fanout.d.ts.map +1 -0
- package/dist/modes/rpc/socket-event-fanout.js +84 -0
- package/dist/modes/rpc/socket-event-fanout.js.map +1 -0
- package/docs/rpc.md +55 -2
- package/docs/settings.md +34 -0
- package/docs/windows.md +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +74 -0
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/worker-indirect-eval.js +139 -90
- package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +4 -4
- 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 +6 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js +40 -20
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +3 -3
- 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 +1 -1
- 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 +28 -9
- 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/package.json +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +67 -38
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/measure.d.ts +20 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/measure.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/measure.js +443 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/measure.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts +2 -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 +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.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/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/huggingface.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/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/openrouter.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/package.json +2 -2
- 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/components/editor.d.ts +7 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +5 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/mux.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/mux.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/mux.js +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/mux.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +1 -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 +19 -0
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/package.json +7 -7
|
@@ -11,7 +11,7 @@ import type { CompactionResult } from "../../core/compaction/index.ts";
|
|
|
11
11
|
import type { ServiceTier } from "../../core/extensions/builtin/service-tier.ts";
|
|
12
12
|
import type { SessionEntry, SessionTreeNode } from "../../core/session-manager.ts";
|
|
13
13
|
import type { JsonAgentSessionEvent } from "../json-event.ts";
|
|
14
|
-
import type { RpcAccountFailoverEvent, RpcAuthAccountsChangedEvent, RpcExtensionEvent, RpcProviderAccount, RpcSessionState, RpcSlashCommand } from "./rpc-types.ts";
|
|
14
|
+
import type { RpcAccountFailoverEvent, RpcAuthAccountsChangedEvent, RpcExtensionEvent, RpcExtensionUIRequest, RpcExtensionUIResponse, RpcProviderAccount, RpcSessionModelEntry, RpcSessionReplacedEvent, RpcSessionState, RpcSlashCommand } from "./rpc-types.ts";
|
|
15
15
|
export interface RpcClientOptions {
|
|
16
16
|
/** Connect to an existing multi-session Unix socket instead of spawning a child. */
|
|
17
17
|
socketPath?: string;
|
|
@@ -35,8 +35,21 @@ export interface ModelInfo {
|
|
|
35
35
|
reasoning: boolean;
|
|
36
36
|
supportedThinkingLevels?: ThinkingLevel[];
|
|
37
37
|
}
|
|
38
|
+
type PromptOptions = {
|
|
39
|
+
images?: ImageContent[];
|
|
40
|
+
streamingBehavior?: "steer" | "followUp";
|
|
41
|
+
thinkingLevel?: ThinkingLevel;
|
|
42
|
+
promptDisposition?: (disposition: PromptDisposition) => void;
|
|
43
|
+
preflightResult?: (success: boolean) => void;
|
|
44
|
+
sessionTitlePrompt?: string | false;
|
|
45
|
+
expandPromptTemplates?: boolean;
|
|
46
|
+
};
|
|
38
47
|
export type RpcProviderAccountEvent = RpcAuthAccountsChangedEvent | RpcAccountFailoverEvent;
|
|
39
|
-
export type RpcClientEvent = JsonAgentSessionEvent | RpcProviderAccountEvent | RpcExtensionEvent
|
|
48
|
+
export type RpcClientEvent = JsonAgentSessionEvent | RpcProviderAccountEvent | RpcExtensionEvent | RpcExtensionUIRequest | RpcSessionReplacedEvent | {
|
|
49
|
+
type: "bash_start";
|
|
50
|
+
} | {
|
|
51
|
+
type: "bash_end";
|
|
52
|
+
};
|
|
40
53
|
export type RpcEventListener = (event: RpcClientEvent) => void;
|
|
41
54
|
export declare class RpcClient {
|
|
42
55
|
private process;
|
|
@@ -79,6 +92,7 @@ export declare class RpcClient {
|
|
|
79
92
|
state: RpcSessionState;
|
|
80
93
|
attached?: boolean;
|
|
81
94
|
}>;
|
|
95
|
+
sendExtensionUIResponse(response: RpcExtensionUIResponse): Promise<void>;
|
|
82
96
|
closeSession(sessionId?: string | undefined): Promise<void>;
|
|
83
97
|
listSessions(): Promise<Array<{
|
|
84
98
|
sessionId: string;
|
|
@@ -99,32 +113,63 @@ export declare class RpcClient {
|
|
|
99
113
|
* order. A success response without a disposition (older host) maps to "handled"
|
|
100
114
|
* so the echo degrades to canonical-only rendering instead of double-rendering.
|
|
101
115
|
*/
|
|
102
|
-
prompt(message: string,
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
116
|
+
prompt(message: string, images?: ImageContent[]): Promise<void>;
|
|
117
|
+
prompt(message: string, options?: PromptOptions): Promise<void>;
|
|
118
|
+
appendUserMessage(content: unknown): Promise<void>;
|
|
119
|
+
appendSessionEntry(entry: import("../../core/session-manager.ts").SessionEntry): Promise<void>;
|
|
120
|
+
sendCustomMessage<T = unknown>(message: {
|
|
121
|
+
customType: string;
|
|
122
|
+
content: unknown;
|
|
123
|
+
display: boolean;
|
|
124
|
+
details?: T;
|
|
125
|
+
}, options?: {
|
|
126
|
+
triggerTurn?: boolean;
|
|
127
|
+
deliverAs?: "steer" | "followUp" | "nextTurn";
|
|
108
128
|
}): Promise<void>;
|
|
109
129
|
/**
|
|
110
130
|
* Queue a steering message to interrupt the agent mid-run.
|
|
111
131
|
*/
|
|
112
|
-
steer(message: string, images?: ImageContent[]
|
|
132
|
+
steer(message: string, images?: ImageContent[], recovery?: {
|
|
133
|
+
enqueueOrder?: number;
|
|
134
|
+
}): Promise<void>;
|
|
113
135
|
/**
|
|
114
136
|
* Queue a follow-up message to be processed after the agent finishes.
|
|
115
137
|
*/
|
|
116
|
-
followUp(message: string, images?: ImageContent[]
|
|
138
|
+
followUp(message: string, images?: ImageContent[], recovery?: {
|
|
139
|
+
enqueueOrder?: number;
|
|
140
|
+
}): Promise<void>;
|
|
117
141
|
/**
|
|
118
142
|
* Abort current operation.
|
|
119
143
|
*/
|
|
120
144
|
abort(): Promise<void>;
|
|
145
|
+
abortCompaction(): Promise<void>;
|
|
146
|
+
reload(): Promise<{
|
|
147
|
+
cancelled: boolean;
|
|
148
|
+
reason?: string;
|
|
149
|
+
}>;
|
|
150
|
+
checkReloadVeto(): Promise<{
|
|
151
|
+
cancelled: boolean;
|
|
152
|
+
reason?: string;
|
|
153
|
+
}>;
|
|
121
154
|
/**
|
|
122
155
|
* Clear queued steering and follow-up messages, returning their text.
|
|
123
156
|
*/
|
|
124
|
-
clearQueue(
|
|
157
|
+
clearQueue(options?: {
|
|
158
|
+
abortWillFollow?: boolean;
|
|
159
|
+
}): Promise<{
|
|
125
160
|
steering: string[];
|
|
126
161
|
followUp: string[];
|
|
162
|
+
ordered: Array<{
|
|
163
|
+
text: string;
|
|
164
|
+
mode: "steer" | "followUp";
|
|
165
|
+
enqueueOrder: number;
|
|
166
|
+
}>;
|
|
127
167
|
}>;
|
|
168
|
+
getSteeringMessages(): Promise<string[]>;
|
|
169
|
+
getFollowUpMessages(): Promise<string[]>;
|
|
170
|
+
abortBranchSummary(): Promise<void>;
|
|
171
|
+
recordBashResult(command: string, result: BashResult, excludeFromContext?: boolean): Promise<void>;
|
|
172
|
+
setLabel(entryId: string, label?: string): Promise<void>;
|
|
128
173
|
/**
|
|
129
174
|
* Start a new session, optionally with parent tracking.
|
|
130
175
|
* @param parentSession - Optional parent session path for lineage tracking
|
|
@@ -143,11 +188,14 @@ export declare class RpcClient {
|
|
|
143
188
|
setModel(provider: string, modelId: string): Promise<{
|
|
144
189
|
provider: string;
|
|
145
190
|
id: string;
|
|
191
|
+
systemPromptName?: string;
|
|
146
192
|
}>;
|
|
147
193
|
/**
|
|
148
194
|
* Cycle to next model.
|
|
149
195
|
*/
|
|
150
|
-
|
|
196
|
+
setFavoriteModels(models: RpcSessionModelEntry[]): Promise<void>;
|
|
197
|
+
setScopedModels(models: RpcSessionModelEntry[]): Promise<void>;
|
|
198
|
+
cycleModel(direction?: "forward" | "backward"): Promise<{
|
|
151
199
|
model: {
|
|
152
200
|
provider: string;
|
|
153
201
|
id: string;
|
|
@@ -224,11 +272,27 @@ export declare class RpcClient {
|
|
|
224
272
|
/**
|
|
225
273
|
* Execute a bash command.
|
|
226
274
|
*/
|
|
227
|
-
bash(command: string
|
|
275
|
+
bash(command: string, options?: {
|
|
276
|
+
excludeFromContext?: boolean;
|
|
277
|
+
executionId?: string;
|
|
278
|
+
operations?: Record<string, unknown>;
|
|
279
|
+
}): Promise<BashResult>;
|
|
280
|
+
navigateTree(targetId: string, options?: {
|
|
281
|
+
summarize?: boolean;
|
|
282
|
+
customInstructions?: string;
|
|
283
|
+
replaceInstructions?: boolean;
|
|
284
|
+
label?: string;
|
|
285
|
+
}): Promise<{
|
|
286
|
+
cancelled: boolean;
|
|
287
|
+
editorText?: string;
|
|
288
|
+
aborted?: boolean;
|
|
289
|
+
summaryEntry?: unknown;
|
|
290
|
+
}>;
|
|
228
291
|
/**
|
|
229
292
|
* Abort running bash command.
|
|
230
293
|
*/
|
|
231
294
|
abortBash(): Promise<void>;
|
|
295
|
+
cleanupBashOutput(path: string): Promise<void>;
|
|
232
296
|
/**
|
|
233
297
|
* Get session statistics.
|
|
234
298
|
*/
|
|
@@ -236,21 +300,28 @@ export declare class RpcClient {
|
|
|
236
300
|
/**
|
|
237
301
|
* Export session to HTML.
|
|
238
302
|
*/
|
|
239
|
-
exportHtml(outputPath?: string): Promise<{
|
|
303
|
+
exportHtml(outputPath?: string, themeName?: string): Promise<{
|
|
304
|
+
path: string;
|
|
305
|
+
}>;
|
|
306
|
+
exportJsonl(outputPath?: string): Promise<{
|
|
240
307
|
path: string;
|
|
241
308
|
}>;
|
|
242
309
|
/**
|
|
243
310
|
* Switch to a different session file.
|
|
244
311
|
* @returns Object with `cancelled: true` if an extension cancelled the switch
|
|
245
312
|
*/
|
|
246
|
-
switchSession(sessionPath: string
|
|
313
|
+
switchSession(sessionPath: string, options?: {
|
|
314
|
+
cwdOverride?: string;
|
|
315
|
+
}): Promise<{
|
|
247
316
|
cancelled: boolean;
|
|
248
317
|
}>;
|
|
249
318
|
/**
|
|
250
319
|
* Fork from a specific message.
|
|
251
320
|
* @returns Object with `text` (the message text) and `cancelled` (if extension cancelled)
|
|
252
321
|
*/
|
|
253
|
-
fork(entryId: string
|
|
322
|
+
fork(entryId: string, options?: {
|
|
323
|
+
position?: "before" | "at";
|
|
324
|
+
}): Promise<{
|
|
254
325
|
text: string;
|
|
255
326
|
cancelled: boolean;
|
|
256
327
|
}>;
|
|
@@ -290,6 +361,9 @@ export declare class RpcClient {
|
|
|
290
361
|
* Set the session display name.
|
|
291
362
|
*/
|
|
292
363
|
setSessionName(name: string): Promise<void>;
|
|
364
|
+
importJsonl(inputPath: string, cwdOverride?: string): Promise<{
|
|
365
|
+
cancelled: boolean;
|
|
366
|
+
}>;
|
|
293
367
|
/**
|
|
294
368
|
* Get all messages in the session.
|
|
295
369
|
*/
|
|
@@ -325,4 +399,5 @@ export declare class RpcClient {
|
|
|
325
399
|
private send;
|
|
326
400
|
private getData;
|
|
327
401
|
}
|
|
402
|
+
export {};
|
|
328
403
|
//# sourceMappingURL=rpc-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/rpc-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/rpc-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { spawn } from "node:child_process";
|
|
7
7
|
import { createConnection } from "node:net";
|
|
8
|
+
import { MissingSessionCwdError } from "../../core/session-cwd.js";
|
|
8
9
|
import { attachJsonlLineReader, serializeJsonLine } from "./jsonl.js";
|
|
9
10
|
function isProviderAccountEvent(event) {
|
|
10
11
|
return event.type === "auth_accounts_changed" || event.type === "account_failover";
|
|
@@ -12,6 +13,10 @@ function isProviderAccountEvent(event) {
|
|
|
12
13
|
// ============================================================================
|
|
13
14
|
// RPC Client
|
|
14
15
|
// ============================================================================
|
|
16
|
+
function isTransportGoneError(error) {
|
|
17
|
+
return (error instanceof Error &&
|
|
18
|
+
(error.message === "Client not started" || error.message.startsWith("RPC transport is not writable.")));
|
|
19
|
+
}
|
|
15
20
|
export class RpcClient {
|
|
16
21
|
constructor(options = {}) {
|
|
17
22
|
this.process = null;
|
|
@@ -184,10 +189,19 @@ export class RpcClient {
|
|
|
184
189
|
this.sessionId = opened.sessionId;
|
|
185
190
|
return opened;
|
|
186
191
|
}
|
|
192
|
+
async sendExtensionUIResponse(response) {
|
|
193
|
+
await this.send(response, true, undefined, false);
|
|
194
|
+
}
|
|
187
195
|
async closeSession(sessionId = this.sessionId) {
|
|
188
196
|
if (!sessionId)
|
|
189
197
|
return;
|
|
190
|
-
|
|
198
|
+
try {
|
|
199
|
+
await this.send({ type: "close_session", sessionId }, false);
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
if (!isTransportGoneError(error))
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
191
205
|
if (this.sessionId === sessionId)
|
|
192
206
|
this.sessionId = undefined;
|
|
193
207
|
}
|
|
@@ -195,24 +209,20 @@ export class RpcClient {
|
|
|
195
209
|
const response = await this.send({ type: "list_sessions" }, false);
|
|
196
210
|
return this.getData(response).sessions;
|
|
197
211
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
*
|
|
203
|
-
* The disposition/preflight callbacks mirror AgentSession's local prompt contract:
|
|
204
|
-
* they fire synchronously while the response frame is dispatched — before any
|
|
205
|
-
* queued message_start event — so optimistic-echo eligibility is settled in wire
|
|
206
|
-
* order. A success response without a disposition (older host) maps to "handled"
|
|
207
|
-
* so the echo degrades to canonical-only rendering instead of double-rendering.
|
|
208
|
-
*/
|
|
209
|
-
async prompt(message, options) {
|
|
212
|
+
async prompt(message, optionsOrImages) {
|
|
213
|
+
const options = Array.isArray(optionsOrImages)
|
|
214
|
+
? { images: optionsOrImages }
|
|
215
|
+
: (optionsOrImages ?? {});
|
|
210
216
|
const response = await this.send({
|
|
211
217
|
type: "prompt",
|
|
212
218
|
message,
|
|
213
|
-
...(options
|
|
214
|
-
...(options
|
|
215
|
-
...(options
|
|
219
|
+
...(options.images ? { images: options.images } : {}),
|
|
220
|
+
...(options.streamingBehavior ? { streamingBehavior: options.streamingBehavior } : {}),
|
|
221
|
+
...(options.thinkingLevel ? { thinkingLevel: options.thinkingLevel } : {}),
|
|
222
|
+
...(options.sessionTitlePrompt !== undefined ? { sessionTitlePrompt: options.sessionTitlePrompt } : {}),
|
|
223
|
+
...(options.expandPromptTemplates !== undefined
|
|
224
|
+
? { expandPromptTemplates: options.expandPromptTemplates }
|
|
225
|
+
: {}),
|
|
216
226
|
}, true, {
|
|
217
227
|
onResponse: (wireResponse) => {
|
|
218
228
|
if (!wireResponse.success) {
|
|
@@ -231,31 +241,74 @@ export class RpcClient {
|
|
|
231
241
|
throw new Error(response.error);
|
|
232
242
|
}
|
|
233
243
|
}
|
|
244
|
+
async appendUserMessage(content) {
|
|
245
|
+
await this.send({ type: "append_user_message", content });
|
|
246
|
+
}
|
|
247
|
+
async appendSessionEntry(entry) {
|
|
248
|
+
await this.send({ type: "append_session_entry", entry });
|
|
249
|
+
}
|
|
250
|
+
async sendCustomMessage(message, options) {
|
|
251
|
+
await this.send({ type: "send_custom_message", ...message, ...options });
|
|
252
|
+
}
|
|
234
253
|
/**
|
|
235
254
|
* Queue a steering message to interrupt the agent mid-run.
|
|
236
255
|
*/
|
|
237
|
-
async steer(message, images) {
|
|
238
|
-
await this.send({ type: "steer", message, images });
|
|
256
|
+
async steer(message, images, recovery) {
|
|
257
|
+
await this.send({ type: "steer", message, images, enqueueOrder: recovery?.enqueueOrder });
|
|
239
258
|
}
|
|
240
259
|
/**
|
|
241
260
|
* Queue a follow-up message to be processed after the agent finishes.
|
|
242
261
|
*/
|
|
243
|
-
async followUp(message, images) {
|
|
244
|
-
await this.send({ type: "follow_up", message, images });
|
|
262
|
+
async followUp(message, images, recovery) {
|
|
263
|
+
await this.send({ type: "follow_up", message, images, enqueueOrder: recovery?.enqueueOrder });
|
|
245
264
|
}
|
|
246
265
|
/**
|
|
247
266
|
* Abort current operation.
|
|
248
267
|
*/
|
|
249
268
|
async abort() {
|
|
250
|
-
|
|
269
|
+
try {
|
|
270
|
+
await this.send({ type: "abort" });
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
if (!isTransportGoneError(error))
|
|
274
|
+
throw error;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
async abortCompaction() {
|
|
278
|
+
await this.send({ type: "abort_compaction" });
|
|
279
|
+
}
|
|
280
|
+
async reload() {
|
|
281
|
+
const response = await this.send({ type: "reload" });
|
|
282
|
+
return this.getData(response);
|
|
283
|
+
}
|
|
284
|
+
async checkReloadVeto() {
|
|
285
|
+
const response = await this.send({ type: "check_reload_veto" });
|
|
286
|
+
return this.getData(response);
|
|
251
287
|
}
|
|
252
288
|
/**
|
|
253
289
|
* Clear queued steering and follow-up messages, returning their text.
|
|
254
290
|
*/
|
|
255
|
-
async clearQueue() {
|
|
256
|
-
const response = await this.send({ type: "clear_queue" });
|
|
291
|
+
async clearQueue(options) {
|
|
292
|
+
const response = await this.send({ type: "clear_queue", abortWillFollow: options?.abortWillFollow });
|
|
257
293
|
return this.getData(response);
|
|
258
294
|
}
|
|
295
|
+
async getSteeringMessages() {
|
|
296
|
+
const response = await this.send({ type: "get_steering_messages" });
|
|
297
|
+
return this.getData(response).messages;
|
|
298
|
+
}
|
|
299
|
+
async getFollowUpMessages() {
|
|
300
|
+
const response = await this.send({ type: "get_follow_up_messages" });
|
|
301
|
+
return this.getData(response).messages;
|
|
302
|
+
}
|
|
303
|
+
async abortBranchSummary() {
|
|
304
|
+
await this.send({ type: "abort_branch_summary" });
|
|
305
|
+
}
|
|
306
|
+
async recordBashResult(command, result, excludeFromContext) {
|
|
307
|
+
await this.send({ type: "record_bash_result", command, result, excludeFromContext });
|
|
308
|
+
}
|
|
309
|
+
async setLabel(entryId, label) {
|
|
310
|
+
await this.send({ type: "set_label", entryId, label });
|
|
311
|
+
}
|
|
259
312
|
/**
|
|
260
313
|
* Start a new session, optionally with parent tracking.
|
|
261
314
|
* @param parentSession - Optional parent session path for lineage tracking
|
|
@@ -282,8 +335,14 @@ export class RpcClient {
|
|
|
282
335
|
/**
|
|
283
336
|
* Cycle to next model.
|
|
284
337
|
*/
|
|
285
|
-
async
|
|
286
|
-
|
|
338
|
+
async setFavoriteModels(models) {
|
|
339
|
+
await this.send({ type: "set_favorite_models", models });
|
|
340
|
+
}
|
|
341
|
+
async setScopedModels(models) {
|
|
342
|
+
await this.send({ type: "set_scoped_models", models });
|
|
343
|
+
}
|
|
344
|
+
async cycleModel(direction = "forward") {
|
|
345
|
+
const response = await this.send({ type: "cycle_model", direction });
|
|
287
346
|
return this.getData(response);
|
|
288
347
|
}
|
|
289
348
|
/**
|
|
@@ -376,8 +435,18 @@ export class RpcClient {
|
|
|
376
435
|
/**
|
|
377
436
|
* Execute a bash command.
|
|
378
437
|
*/
|
|
379
|
-
async bash(command) {
|
|
380
|
-
const response = await this.send({
|
|
438
|
+
async bash(command, options) {
|
|
439
|
+
const response = await this.send({
|
|
440
|
+
type: "bash",
|
|
441
|
+
command,
|
|
442
|
+
excludeFromContext: options?.excludeFromContext,
|
|
443
|
+
executionId: options?.executionId,
|
|
444
|
+
operations: options?.operations,
|
|
445
|
+
});
|
|
446
|
+
return this.getData(response);
|
|
447
|
+
}
|
|
448
|
+
async navigateTree(targetId, options) {
|
|
449
|
+
const response = await this.send({ type: "navigate_tree", targetId, ...options });
|
|
381
450
|
return this.getData(response);
|
|
382
451
|
}
|
|
383
452
|
/**
|
|
@@ -386,6 +455,9 @@ export class RpcClient {
|
|
|
386
455
|
async abortBash() {
|
|
387
456
|
await this.send({ type: "abort_bash" });
|
|
388
457
|
}
|
|
458
|
+
async cleanupBashOutput(path) {
|
|
459
|
+
await this.send({ type: "cleanup_bash_output", path });
|
|
460
|
+
}
|
|
389
461
|
/**
|
|
390
462
|
* Get session statistics.
|
|
391
463
|
*/
|
|
@@ -396,24 +468,28 @@ export class RpcClient {
|
|
|
396
468
|
/**
|
|
397
469
|
* Export session to HTML.
|
|
398
470
|
*/
|
|
399
|
-
async exportHtml(outputPath) {
|
|
400
|
-
const response = await this.send({ type: "export_html", outputPath });
|
|
471
|
+
async exportHtml(outputPath, themeName) {
|
|
472
|
+
const response = await this.send({ type: "export_html", outputPath, themeName });
|
|
473
|
+
return this.getData(response);
|
|
474
|
+
}
|
|
475
|
+
async exportJsonl(outputPath) {
|
|
476
|
+
const response = await this.send({ type: "export_jsonl", outputPath });
|
|
401
477
|
return this.getData(response);
|
|
402
478
|
}
|
|
403
479
|
/**
|
|
404
480
|
* Switch to a different session file.
|
|
405
481
|
* @returns Object with `cancelled: true` if an extension cancelled the switch
|
|
406
482
|
*/
|
|
407
|
-
async switchSession(sessionPath) {
|
|
408
|
-
const response = await this.send({ type: "switch_session", sessionPath });
|
|
483
|
+
async switchSession(sessionPath, options) {
|
|
484
|
+
const response = await this.send({ type: "switch_session", sessionPath, cwdOverride: options?.cwdOverride });
|
|
409
485
|
return this.getData(response);
|
|
410
486
|
}
|
|
411
487
|
/**
|
|
412
488
|
* Fork from a specific message.
|
|
413
489
|
* @returns Object with `text` (the message text) and `cancelled` (if extension cancelled)
|
|
414
490
|
*/
|
|
415
|
-
async fork(entryId) {
|
|
416
|
-
const response = await this.send({ type: "fork", entryId });
|
|
491
|
+
async fork(entryId, options) {
|
|
492
|
+
const response = await this.send({ type: "fork", entryId, position: options?.position });
|
|
417
493
|
return this.getData(response);
|
|
418
494
|
}
|
|
419
495
|
/**
|
|
@@ -458,6 +534,10 @@ export class RpcClient {
|
|
|
458
534
|
async setSessionName(name) {
|
|
459
535
|
await this.send({ type: "set_session_name", name });
|
|
460
536
|
}
|
|
537
|
+
async importJsonl(inputPath, cwdOverride) {
|
|
538
|
+
const response = await this.send({ type: "import_jsonl", inputPath, cwdOverride });
|
|
539
|
+
return this.getData(response);
|
|
540
|
+
}
|
|
461
541
|
/**
|
|
462
542
|
* Get all messages in the session.
|
|
463
543
|
*/
|
|
@@ -527,7 +607,13 @@ export class RpcClient {
|
|
|
527
607
|
reject(new Error(`Timeout collecting events. Stderr: ${this.stderr}`));
|
|
528
608
|
}, timeout);
|
|
529
609
|
const unsubscribe = this.onEvent((event) => {
|
|
530
|
-
if (isProviderAccountEvent(event) ||
|
|
610
|
+
if (isProviderAccountEvent(event) ||
|
|
611
|
+
event.type === "extension_event" ||
|
|
612
|
+
event.type === "bash_start" ||
|
|
613
|
+
event.type === "bash_end" ||
|
|
614
|
+
event.type === "extension_ui_request" ||
|
|
615
|
+
// Connection-level, not part of the agent's event stream.
|
|
616
|
+
event.type === "session_replaced")
|
|
531
617
|
return;
|
|
532
618
|
events.push(event);
|
|
533
619
|
if (event.type === "agent_settled") {
|
|
@@ -585,7 +671,7 @@ export class RpcClient {
|
|
|
585
671
|
}
|
|
586
672
|
this.pendingRequests.clear();
|
|
587
673
|
}
|
|
588
|
-
async send(command, route = true, hooks) {
|
|
674
|
+
async send(command, route = true, hooks, expectResponse = true) {
|
|
589
675
|
const childProcess = this.process;
|
|
590
676
|
const stream = this.socket ?? childProcess?.stdin;
|
|
591
677
|
if (!stream) {
|
|
@@ -604,12 +690,16 @@ export class RpcClient {
|
|
|
604
690
|
this.exitError = error;
|
|
605
691
|
throw error;
|
|
606
692
|
}
|
|
607
|
-
const id = `req_${++this.requestId}`;
|
|
693
|
+
const id = "type" in command && command.type === "extension_ui_response" ? command.id : `req_${++this.requestId}`;
|
|
608
694
|
const fullCommand = {
|
|
609
695
|
...command,
|
|
610
696
|
...(route && this.sessionId && !("sessionId" in command) ? { sessionId: this.sessionId } : {}),
|
|
611
|
-
id,
|
|
697
|
+
...(command.type === "extension_ui_response" ? {} : { id }),
|
|
612
698
|
};
|
|
699
|
+
if (!expectResponse) {
|
|
700
|
+
stream.write(serializeJsonLine(fullCommand));
|
|
701
|
+
return Promise.resolve({ type: "response", command: command.type, success: true });
|
|
702
|
+
}
|
|
613
703
|
return new Promise((resolve, reject) => {
|
|
614
704
|
const timeout = setTimeout(() => {
|
|
615
705
|
const pending = this.pendingRequests.get(id);
|
|
@@ -637,6 +727,7 @@ export class RpcClient {
|
|
|
637
727
|
const writeError = error instanceof Error ? error : new Error(String(error));
|
|
638
728
|
const pending = this.pendingRequests.get(id);
|
|
639
729
|
this.pendingRequests.delete(id);
|
|
730
|
+
pending?.onReject?.(writeError);
|
|
640
731
|
pending?.reject(writeError);
|
|
641
732
|
}
|
|
642
733
|
});
|
|
@@ -644,6 +735,9 @@ export class RpcClient {
|
|
|
644
735
|
getData(response) {
|
|
645
736
|
if (!response.success) {
|
|
646
737
|
const errorResponse = response;
|
|
738
|
+
if (errorResponse.errorCode === "missing_session_cwd" && errorResponse.errorData) {
|
|
739
|
+
throw new MissingSessionCwdError(errorResponse.errorData);
|
|
740
|
+
}
|
|
647
741
|
throw new Error(errorResponse.error);
|
|
648
742
|
}
|
|
649
743
|
// Type assertion: we trust response.data matches T based on the command sent.
|