@code-yeongyu/senpi 2026.8.29 → 2026.8.30-3
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 +172 -0
- package/dist/core/agent-session.d.ts +47 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +406 -39
- package/dist/core/agent-session.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 +23 -9
- package/dist/core/credential-accounts.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/extensions/builtin/compaction/context-pipeline.d.ts +18 -0
- package/dist/core/extensions/builtin/compaction/context-pipeline.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/context-pipeline.js +32 -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 +164 -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-retry.d.ts +1 -1
- package/dist/core/extensions/builtin/compaction/idle-retry.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/idle-retry.js +1 -1
- package/dist/core/extensions/builtin/compaction/idle-retry.js.map +1 -1
- 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 +148 -150
- 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/model-usability-budget.d.ts +30 -0
- package/dist/core/extensions/builtin/compaction/model-usability-budget.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/model-usability-budget.js +74 -0
- package/dist/core/extensions/builtin/compaction/model-usability-budget.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 +46 -0
- package/dist/core/extensions/builtin/compaction/orchestration.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/orchestration.js +103 -0
- package/dist/core/extensions/builtin/compaction/orchestration.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/policy.d.ts +12 -2
- package/dist/core/extensions/builtin/compaction/policy.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/policy.js +52 -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 +24 -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 +25 -0
- package/dist/core/extensions/builtin/compaction/token-budget-reminder.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/tool-admission.d.ts +27 -0
- package/dist/core/extensions/builtin/compaction/tool-admission.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/tool-admission.js +56 -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/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/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/runtime-session.d.ts +11 -0
- package/dist/core/extensions/builtin/terminal/runtime-session.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/runtime-session.js +18 -2
- package/dist/core/extensions/builtin/terminal/runtime-session.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-resolver.js +2 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +5 -0
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +10 -1
- 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/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.map +1 -1
- package/dist/main.js +17 -5
- package/dist/main.js.map +1 -1
- package/dist/modes/index.d.ts +1 -1
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js +1 -1
- package/dist/modes/index.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 +132 -1
- package/dist/modes/interactive/interactive-host-runtime.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-host-runtime.js +633 -117
- 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 +114 -2
- 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 +158 -49
- 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 +6 -4
- package/dist/modes/rpc/multi-session-host.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +20 -4
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +76 -17
- 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-types.d.ts +86 -1
- 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.map +1 -1
- package/dist/modes/rpc/session-command-router.js +1 -0
- package/dist/modes/rpc/session-command-router.js.map +1 -1
- package/dist/modes/rpc/session-event-writer.d.ts +2 -0
- package/dist/modes/rpc/session-event-writer.d.ts.map +1 -1
- package/dist/modes/rpc/session-event-writer.js +54 -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 +10 -2
- package/dist/modes/rpc/session-registry.d.ts.map +1 -1
- package/dist/modes/rpc/session-registry.js +58 -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 +22 -2
- package/docs/settings.md +34 -0
- package/docs/windows.md +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +62 -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/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/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/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/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/dist/screen-operations.d.ts +42 -0
- package/node_modules/@earendil-works/pi-pty/dist/screen-operations.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-pty/dist/screen-operations.js +34 -0
- package/node_modules/@earendil-works/pi-pty/dist/screen-operations.js.map +1 -0
- package/node_modules/@earendil-works/pi-pty/dist/screen-text.d.ts +8 -0
- package/node_modules/@earendil-works/pi-pty/dist/screen-text.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-pty/dist/screen-text.js +51 -0
- package/node_modules/@earendil-works/pi-pty/dist/screen-text.js.map +1 -0
- package/node_modules/@earendil-works/pi-pty/dist/screen.d.ts +45 -0
- package/node_modules/@earendil-works/pi-pty/dist/screen.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/screen.js +178 -55
- package/node_modules/@earendil-works/pi-pty/dist/screen.js.map +1 -1
- 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
|
@@ -582,6 +582,12 @@ export class InteractiveMode {
|
|
|
582
582
|
// Track pending bash components (shown in pending area, moved to chat on submit)
|
|
583
583
|
this.pendingBashComponents = [];
|
|
584
584
|
this.compactionEscapeOverrideActive = false;
|
|
585
|
+
/**
|
|
586
|
+
* One-time notice guard for the external-owner compaction delegation episode
|
|
587
|
+
* (e.g. the Claude Agent SDK owning compaction). Armed while true; re-armed by
|
|
588
|
+
* a successful compaction, a model switch, or a session rebind.
|
|
589
|
+
*/
|
|
590
|
+
this.externalOwnerCompactionNoticeShown = false;
|
|
585
591
|
this.autoCompactionProgressText = "";
|
|
586
592
|
this.fallbackAppliedBeforeRetryStart = false;
|
|
587
593
|
this.pendingZeroDelayRetryIndicator = undefined;
|
|
@@ -629,6 +635,10 @@ export class InteractiveMode {
|
|
|
629
635
|
await this.rebindCurrentSession({ renderBeforeBind: true });
|
|
630
636
|
await this.themeController.applyFromSettings();
|
|
631
637
|
});
|
|
638
|
+
// Host-driven extension UI only exists on the shared-host lane; the classic
|
|
639
|
+
// local runtime renders extension UI in-process and has no such hook.
|
|
640
|
+
const hostUiRuntime = this.runtimeHost;
|
|
641
|
+
hostUiRuntime.setHostUiHandler?.((request) => this.handleHostUiRequest(request));
|
|
632
642
|
this.version = DISPLAY_VERSION;
|
|
633
643
|
this.renderer = createInteractiveTui({
|
|
634
644
|
tuiMode,
|
|
@@ -1982,6 +1992,9 @@ export class InteractiveMode {
|
|
|
1982
1992
|
}
|
|
1983
1993
|
async rebindCurrentSession(options = {}) {
|
|
1984
1994
|
InteractiveMode.restoreCompactionEscapeOverride(this);
|
|
1995
|
+
// A session switch/reset ends any external-owner delegation episode.
|
|
1996
|
+
this.externalOwnerCompactionNoticeShown = false;
|
|
1997
|
+
this.footer?.setCompactionDelegated?.(false);
|
|
1985
1998
|
const session = this.session;
|
|
1986
1999
|
this.unsubscribe?.();
|
|
1987
2000
|
this.unsubscribe = undefined;
|
|
@@ -2115,6 +2128,57 @@ export class InteractiveMode {
|
|
|
2115
2128
|
return false;
|
|
2116
2129
|
};
|
|
2117
2130
|
}
|
|
2131
|
+
async handleHostUiRequest(request) {
|
|
2132
|
+
switch (request.method) {
|
|
2133
|
+
case "select": {
|
|
2134
|
+
const value = await this.showExtensionSelector(request.title ?? "", request.options ?? []);
|
|
2135
|
+
return value === undefined
|
|
2136
|
+
? { type: "extension_ui_response", id: request.id, cancelled: true }
|
|
2137
|
+
: { type: "extension_ui_response", id: request.id, value };
|
|
2138
|
+
}
|
|
2139
|
+
case "confirm":
|
|
2140
|
+
return {
|
|
2141
|
+
type: "extension_ui_response",
|
|
2142
|
+
id: request.id,
|
|
2143
|
+
confirmed: await this.showExtensionConfirm(request.title ?? "", request.message ?? ""),
|
|
2144
|
+
};
|
|
2145
|
+
case "input": {
|
|
2146
|
+
const value = await this.showExtensionInput(request.title ?? "", request.placeholder);
|
|
2147
|
+
return value === undefined
|
|
2148
|
+
? { type: "extension_ui_response", id: request.id, cancelled: true }
|
|
2149
|
+
: { type: "extension_ui_response", id: request.id, value };
|
|
2150
|
+
}
|
|
2151
|
+
case "editor": {
|
|
2152
|
+
const value = await this.showExtensionEditor(request.title ?? "", request.prefill);
|
|
2153
|
+
return value === undefined
|
|
2154
|
+
? { type: "extension_ui_response", id: request.id, cancelled: true }
|
|
2155
|
+
: { type: "extension_ui_response", id: request.id, value };
|
|
2156
|
+
}
|
|
2157
|
+
case "notify":
|
|
2158
|
+
this.showExtensionNotify(request.message ?? "");
|
|
2159
|
+
return undefined;
|
|
2160
|
+
case "setStatus":
|
|
2161
|
+
this.setExtensionStatus(request.statusKey ?? "", request.statusText);
|
|
2162
|
+
return undefined;
|
|
2163
|
+
case "setTitle":
|
|
2164
|
+
this.extensionTerminalTitle = request.title ?? "";
|
|
2165
|
+
this.applyTerminalTitle();
|
|
2166
|
+
return undefined;
|
|
2167
|
+
case "set_editor_text":
|
|
2168
|
+
this.editor.setText(request.text ?? "");
|
|
2169
|
+
return undefined;
|
|
2170
|
+
case "setWidget":
|
|
2171
|
+
this.setExtensionWidget(request.widgetKey ?? "", request.widgetLines, {
|
|
2172
|
+
placement: request.widgetPlacement,
|
|
2173
|
+
});
|
|
2174
|
+
return undefined;
|
|
2175
|
+
case "custom_unsupported":
|
|
2176
|
+
this.showExtensionNotify(`${request.extensionName ?? "This extension"} requires the classic TUI; its component widget cannot be rendered in the shared host.`, "warning");
|
|
2177
|
+
return undefined;
|
|
2178
|
+
default:
|
|
2179
|
+
return undefined;
|
|
2180
|
+
}
|
|
2181
|
+
}
|
|
2118
2182
|
/**
|
|
2119
2183
|
* Set extension status text in the footer.
|
|
2120
2184
|
*/
|
|
@@ -2980,7 +3044,7 @@ export class InteractiveMode {
|
|
|
2980
3044
|
// so they work correctly regardless of which editor is active
|
|
2981
3045
|
this.defaultEditor.onEscape = () => {
|
|
2982
3046
|
if (this.session.isStreaming || this.session.retryAttempt > 0) {
|
|
2983
|
-
void this.abortAndFireQueuedMessages();
|
|
3047
|
+
void this.abortAndFireQueuedMessages().catch((error) => this.showError(error instanceof Error ? error.message : String(error)));
|
|
2984
3048
|
}
|
|
2985
3049
|
else if (this.session.isBashRunning) {
|
|
2986
3050
|
this.session.abortBash();
|
|
@@ -3736,7 +3800,23 @@ export class InteractiveMode {
|
|
|
3736
3800
|
InteractiveMode.restoreCompactionEscapeOverride(this);
|
|
3737
3801
|
this.clearStatusIndicator("compaction");
|
|
3738
3802
|
this.autoCompactionProgressText = "";
|
|
3739
|
-
|
|
3803
|
+
// Checked before `aborted`: production external-owner rejections are
|
|
3804
|
+
// emitted via `_rejectCompaction(..., true, reason)` and carry
|
|
3805
|
+
// `aborted: true`, so this branch must win for auto reasons or the
|
|
3806
|
+
// delegation state renders as a per-turn red error.
|
|
3807
|
+
if (event.rejectionCause === "external-owner" && event.reason !== "manual") {
|
|
3808
|
+
// Auto compaction is delegated to an external owner (Claude Agent SDK).
|
|
3809
|
+
// This is expected state, not an error: surface it at most once per
|
|
3810
|
+
// delegation episode as a muted informational line and mark the footer
|
|
3811
|
+
// so the saturated context meter reads as "handled natively".
|
|
3812
|
+
if (!this.externalOwnerCompactionNoticeShown) {
|
|
3813
|
+
this.externalOwnerCompactionNoticeShown = true;
|
|
3814
|
+
this.chatContainer.addChild(new Spacer(1));
|
|
3815
|
+
this.chatContainer.addChild(new Text(theme.fg("muted", "The Claude Agent SDK manages and compacts this session's context natively."), 1, 0));
|
|
3816
|
+
}
|
|
3817
|
+
this.footer?.setCompactionDelegated?.(true);
|
|
3818
|
+
}
|
|
3819
|
+
else if (event.aborted) {
|
|
3740
3820
|
// Prefer the extension-provided reason over the generic "cancelled"
|
|
3741
3821
|
// label so per-turn-cap / circuit-breaker / provider-error cancels are
|
|
3742
3822
|
// no longer indistinguishable from a user-triggered abort.
|
|
@@ -3792,6 +3872,9 @@ export class InteractiveMode {
|
|
|
3792
3872
|
this.addMessageToChat(summaryMessage);
|
|
3793
3873
|
}
|
|
3794
3874
|
this.footer.invalidate();
|
|
3875
|
+
// A real compaction landed: the delegation episode (if any) is over.
|
|
3876
|
+
this.externalOwnerCompactionNoticeShown = false;
|
|
3877
|
+
this.footer?.setCompactionDelegated?.(false);
|
|
3795
3878
|
}
|
|
3796
3879
|
else if (event.errorMessage) {
|
|
3797
3880
|
const errorMessage = sanitizeTerminalLabel(event.errorMessage);
|
|
@@ -3860,6 +3943,14 @@ export class InteractiveMode {
|
|
|
3860
3943
|
this.ui.requestRender();
|
|
3861
3944
|
break;
|
|
3862
3945
|
}
|
|
3946
|
+
case "model_changed":
|
|
3947
|
+
// Shared-host/other-client model switches arrive as model_changed wire
|
|
3948
|
+
// events; the new model must not inherit the previous model's
|
|
3949
|
+
// SDK-delegation episode (post-#1188 core emits no repeat rejection to
|
|
3950
|
+
// self-heal a stale marker).
|
|
3951
|
+
this.externalOwnerCompactionNoticeShown = false;
|
|
3952
|
+
this.footer?.setCompactionDelegated?.(false);
|
|
3953
|
+
break;
|
|
3863
3954
|
case "retry_fallback_applied": {
|
|
3864
3955
|
if (this.pendingZeroDelayRetryIndicator) {
|
|
3865
3956
|
this.pendingZeroDelayRetryIndicator.fallbackApplied = true;
|
|
@@ -3873,6 +3964,10 @@ export class InteractiveMode {
|
|
|
3873
3964
|
why: `Retry switched models (${event.reason}); the turn continues on ${event.to}.`,
|
|
3874
3965
|
});
|
|
3875
3966
|
this.setExtensionStatus(FALLBACK_STATUS_KEY, `fallback: ${event.to}`);
|
|
3967
|
+
// Provider/model failover ends any external-owner delegation episode:
|
|
3968
|
+
// the fallback model does not inherit SDK-owned compaction state.
|
|
3969
|
+
this.externalOwnerCompactionNoticeShown = false;
|
|
3970
|
+
this.footer?.setCompactionDelegated?.(false);
|
|
3876
3971
|
break;
|
|
3877
3972
|
}
|
|
3878
3973
|
case "retry_fallback_succeeded":
|
|
@@ -4412,6 +4507,11 @@ export class InteractiveMode {
|
|
|
4412
4507
|
this.chatContainer.addChild(new Text(text, 1, 0));
|
|
4413
4508
|
}
|
|
4414
4509
|
renderInitialMessages() {
|
|
4510
|
+
// Any full transcript rerender ends the external-owner delegation episode:
|
|
4511
|
+
// the rendered notice is gone, so the guard must re-arm and the footer
|
|
4512
|
+
// marker must not persist as stale state.
|
|
4513
|
+
this.externalOwnerCompactionNoticeShown = false;
|
|
4514
|
+
this.footer?.setCompactionDelegated?.(false);
|
|
4415
4515
|
const entries = this.sessionManager.buildContextEntries();
|
|
4416
4516
|
this.renderSessionEntries(entries, {
|
|
4417
4517
|
updateFooter: true,
|
|
@@ -4801,6 +4901,9 @@ export class InteractiveMode {
|
|
|
4801
4901
|
}
|
|
4802
4902
|
else {
|
|
4803
4903
|
this.footer.invalidate();
|
|
4904
|
+
// A model switch ends any external-owner delegation episode.
|
|
4905
|
+
this.externalOwnerCompactionNoticeShown = false;
|
|
4906
|
+
this.footer?.setCompactionDelegated?.(false);
|
|
4804
4907
|
this.updateEditorBorderColor();
|
|
4805
4908
|
const thinkingStr = result.model.reasoning && result.thinkingLevel !== "off" ? ` (thinking: ${result.thinkingLevel})` : "";
|
|
4806
4909
|
const systemPromptStr = result.systemPromptChange?.systemPromptName
|
|
@@ -5565,6 +5668,9 @@ export class InteractiveMode {
|
|
|
5565
5668
|
try {
|
|
5566
5669
|
const systemPromptChange = await this.session.setModel(model);
|
|
5567
5670
|
this.footer.invalidate();
|
|
5671
|
+
// A model switch ends any external-owner delegation episode.
|
|
5672
|
+
this.externalOwnerCompactionNoticeShown = false;
|
|
5673
|
+
this.footer?.setCompactionDelegated?.(false);
|
|
5568
5674
|
this.updateEditorBorderColor();
|
|
5569
5675
|
const systemPromptStr = systemPromptChange?.systemPromptName
|
|
5570
5676
|
? ` (optimized system prompt applied: ${systemPromptChange.systemPromptName})`
|
|
@@ -6602,6 +6708,12 @@ export class InteractiveMode {
|
|
|
6602
6708
|
this.resetExtensionUI();
|
|
6603
6709
|
this.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();
|
|
6604
6710
|
this.outputPad = this.settingsManager.getOutputPad();
|
|
6711
|
+
// Reload replaces the session runner: a genuine ownership boundary, so the
|
|
6712
|
+
// external-owner delegation episode ends here (settings-only rebuilds below
|
|
6713
|
+
// go through rebuildChatFromMessages and must NOT reset it — post-#1188 core
|
|
6714
|
+
// emits no repeat rejection event to restore cleared state).
|
|
6715
|
+
this.externalOwnerCompactionNoticeShown = false;
|
|
6716
|
+
this.footer?.setCompactionDelegated?.(false);
|
|
6605
6717
|
this.rebuildChatFromMessages();
|
|
6606
6718
|
time("chatRebuild", "reload");
|
|
6607
6719
|
chatRestoredBeforeSessionStart = true;
|