@code-yeongyu/senpi 2026.7.31 → 2026.8.1
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 +237 -0
- package/dist/core/agent-session.d.ts +49 -13
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +120 -37
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/dynamic-prompt/build.d.ts.map +1 -1
- package/dist/core/dynamic-prompt/build.js +4 -0
- package/dist/core/dynamic-prompt/build.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.d.ts +2 -2
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.js +25 -25
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.d.ts +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.js +2 -2
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.d.ts +9 -9
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.js +2 -2
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.d.ts +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.js +3 -3
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.d.ts +21 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.js +30 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.js.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/auth-lane.d.ts +8 -4
- package/dist/core/extensions/builtin/claude-sdk-oauth/auth-lane.d.ts.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/auth-lane.js +34 -25
- package/dist/core/extensions/builtin/claude-sdk-oauth/auth-lane.js.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.d.ts +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.js +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.js +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.d.ts +14 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.d.ts.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/guidance.js +37 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts +4 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/index.js +12 -10
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.js.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/oauth-login.d.ts +3 -3
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/oauth-login.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/oauth-login.js +2 -2
- package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/options.d.ts +18 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/options.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/options.js +70 -10
- package/dist/core/extensions/builtin/claude-sdk-oauth/options.js.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/prompt-bridge.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/prompt-bridge.js +32 -19
- package/dist/core/extensions/builtin/claude-sdk-oauth/prompt-bridge.js.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.d.ts +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.d.ts +30 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.js +197 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.d.ts +18 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.js +33 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.d.ts +3 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.js +134 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.d.ts +85 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.js +270 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.d.ts +17 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js +217 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.d.ts +49 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js +204 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts +28 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js +107 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.d.ts +2 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.js +10 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.js.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream.d.ts +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream.d.ts.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream.js +72 -53
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.d.ts +3 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.js +25 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.js.map +1 -0
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.d.ts +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.js +2 -2
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.js.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.d.ts.map +1 -1
- package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/deterministic-fallback.d.ts +18 -0
- package/dist/core/extensions/builtin/compaction/deterministic-fallback.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/deterministic-fallback.js +69 -0
- package/dist/core/extensions/builtin/compaction/deterministic-fallback.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/index.js +28 -2
- package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.d.ts +4 -1
- package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.js +22 -17
- package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/task-intent.d.ts +2 -6
- package/dist/core/extensions/builtin/compaction/task-intent.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/task-intent.js +10 -9
- package/dist/core/extensions/builtin/compaction/task-intent.js.map +1 -1
- package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts +6 -0
- package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/continuation-recovery.js +20 -0
- package/dist/core/extensions/builtin/goal/continuation-recovery.js.map +1 -0
- package/dist/core/extensions/builtin/goal/continuation.d.ts +2 -4
- package/dist/core/extensions/builtin/goal/continuation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/continuation.js +2 -8
- package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.d.ts +19 -0
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js +48 -0
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js.map +1 -0
- package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/index.js +17 -15
- 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 +12 -10
- package/dist/core/extensions/builtin/goal/lifecycle-helpers.js.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts +5 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.js +94 -52
- package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/persistence.d.ts +16 -0
- package/dist/core/extensions/builtin/goal/persistence.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/persistence.js +185 -11
- package/dist/core/extensions/builtin/goal/persistence.js.map +1 -1
- package/dist/core/extensions/builtin/goal/ui.d.ts +1 -0
- package/dist/core/extensions/builtin/goal/ui.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/ui.js +11 -2
- package/dist/core/extensions/builtin/goal/ui.js.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/extension.d.ts.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/extension.js +15 -0
- package/dist/core/extensions/builtin/gpt-apply-patch/extension.js.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/tool.d.ts.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/tool.js +30 -3
- package/dist/core/extensions/builtin/gpt-apply-patch/tool.js.map +1 -1
- package/dist/core/extensions/builtin/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +5 -2
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/detectors.d.ts +31 -0
- package/dist/core/extensions/builtin/loop-guard/detectors.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/detectors.js +111 -0
- package/dist/core/extensions/builtin/loop-guard/detectors.js.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/index.d.ts +3 -0
- package/dist/core/extensions/builtin/loop-guard/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/index.js +31 -0
- package/dist/core/extensions/builtin/loop-guard/index.js.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/notice.d.ts +5 -0
- package/dist/core/extensions/builtin/loop-guard/notice.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/notice.js +42 -0
- package/dist/core/extensions/builtin/loop-guard/notice.js.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/policy.d.ts +30 -0
- package/dist/core/extensions/builtin/loop-guard/policy.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/policy.js +30 -0
- package/dist/core/extensions/builtin/loop-guard/policy.js.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/renderer.d.ts +4 -0
- package/dist/core/extensions/builtin/loop-guard/renderer.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/renderer.js +50 -0
- package/dist/core/extensions/builtin/loop-guard/renderer.js.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/similarity.d.ts +13 -0
- package/dist/core/extensions/builtin/loop-guard/similarity.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/similarity.js +51 -0
- package/dist/core/extensions/builtin/loop-guard/similarity.js.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/tracker.d.ts +13 -0
- package/dist/core/extensions/builtin/loop-guard/tracker.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/tracker.js +39 -0
- package/dist/core/extensions/builtin/loop-guard/tracker.js.map +1 -0
- package/dist/core/extensions/builtin/monitor-state-event.d.ts +10 -0
- package/dist/core/extensions/builtin/monitor-state-event.d.ts.map +1 -1
- package/dist/core/extensions/builtin/monitor-state-event.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash-0731.d.ts +3 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash-0731.d.ts.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash-0731.js +10 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash-0731.js.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash.d.ts +3 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash.d.ts.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash.js +10 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash.js.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-pro.d.ts +3 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-pro.d.ts.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-pro.js +11 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-pro.js.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4.d.ts +13 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4.d.ts.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4.js +60 -0
- package/dist/core/extensions/builtin/prompt-preset/deepseek-v4.js.map +1 -0
- package/dist/core/extensions/builtin/prompt-preset/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/index.js +8 -4
- package/dist/core/extensions/builtin/prompt-preset/index.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/presets.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/presets.js +42 -0
- package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/settings.d.ts +1 -1
- package/dist/core/extensions/builtin/prompt-preset/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/settings.js +3 -0
- package/dist/core/extensions/builtin/prompt-preset/settings.js.map +1 -1
- package/dist/core/extensions/builtin/recommended-models/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/recommended-models/index.js +2 -1
- package/dist/core/extensions/builtin/recommended-models/index.js.map +1 -1
- package/dist/core/extensions/builtin/rules/index.js +4 -3
- package/dist/core/extensions/builtin/rules/index.js.map +1 -1
- package/dist/core/extensions/builtin/rules/rules/constants.d.ts +11 -0
- package/dist/core/extensions/builtin/rules/rules/constants.d.ts.map +1 -1
- package/dist/core/extensions/builtin/rules/rules/constants.js +11 -0
- package/dist/core/extensions/builtin/rules/rules/constants.js.map +1 -1
- package/dist/core/extensions/builtin/rules/rules/formatter.d.ts.map +1 -1
- package/dist/core/extensions/builtin/rules/rules/formatter.js +15 -1
- package/dist/core/extensions/builtin/rules/rules/formatter.js.map +1 -1
- package/dist/core/extensions/builtin/service-tier.d.ts.map +1 -1
- package/dist/core/extensions/builtin/service-tier.js +23 -21
- 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 +21 -7
- package/dist/core/extensions/builtin/terminal/extension.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-notify.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-notify.js +42 -5
- package/dist/core/extensions/builtin/terminal/monitor-notify.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts +2 -0
- package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-registry.js +2 -0
- package/dist/core/extensions/builtin/terminal/monitor-registry.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-status-ticker.d.ts +37 -0
- package/dist/core/extensions/builtin/terminal/monitor-status-ticker.d.ts.map +1 -0
- package/dist/core/extensions/builtin/terminal/monitor-status-ticker.js +61 -0
- package/dist/core/extensions/builtin/terminal/monitor-status-ticker.js.map +1 -0
- package/dist/core/extensions/builtin/terminal/monitor-status.d.ts +9 -1
- package/dist/core/extensions/builtin/terminal/monitor-status.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-status.js +35 -2
- package/dist/core/extensions/builtin/terminal/monitor-status.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/monitor.js +1 -1
- package/dist/core/extensions/builtin/terminal/tools/monitor.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/commands.d.ts +2 -2
- package/dist/core/extensions/builtin/todotools/commands.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/commands.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/index.js +6 -3
- package/dist/core/extensions/builtin/todotools/index.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/state.d.ts +1 -1
- package/dist/core/extensions/builtin/todotools/state.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/state.js +1 -1
- package/dist/core/extensions/builtin/todotools/state.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/todo-widget-component.d.ts +19 -0
- package/dist/core/extensions/builtin/todotools/todo-widget-component.d.ts.map +1 -0
- package/dist/core/extensions/builtin/todotools/todo-widget-component.js +78 -0
- package/dist/core/extensions/builtin/todotools/todo-widget-component.js.map +1 -0
- package/dist/core/extensions/builtin/todotools/todo-widget.d.ts +13 -1
- package/dist/core/extensions/builtin/todotools/todo-widget.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/todo-widget.js +32 -14
- package/dist/core/extensions/builtin/todotools/todo-widget.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/tools/todo.d.ts +2 -2
- package/dist/core/extensions/builtin/todotools/tools/todo.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/tools/todo.js +1 -1
- package/dist/core/extensions/builtin/todotools/tools/todo.js.map +1 -1
- package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.d.ts +1 -1
- package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.d.ts.map +1 -1
- package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.js +88 -29
- package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.js.map +1 -1
- package/dist/core/extensions/builtin/tps.d.ts.map +1 -1
- package/dist/core/extensions/builtin/tps.js +5 -2
- package/dist/core/extensions/builtin/tps.js.map +1 -1
- package/dist/core/extensions/builtin/ttsr/builtin-rules.d.ts +4 -0
- package/dist/core/extensions/builtin/ttsr/builtin-rules.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ttsr/builtin-rules.js +20 -0
- package/dist/core/extensions/builtin/ttsr/builtin-rules.js.map +1 -0
- package/dist/core/extensions/builtin/ttsr/commands.js +9 -1
- package/dist/core/extensions/builtin/ttsr/commands.js.map +1 -1
- package/dist/core/extensions/builtin/ttsr/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/ttsr/index.js +4 -3
- package/dist/core/extensions/builtin/ttsr/index.js.map +1 -1
- package/dist/core/extensions/builtin/ttsr/manager.js +1 -1
- package/dist/core/extensions/builtin/ttsr/manager.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/config.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/config.js +1 -0
- package/dist/core/extensions/builtin/websearch/websearch/config.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/native.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/native.js +16 -5
- package/dist/core/extensions/builtin/websearch/websearch/native.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/provider-endpoints.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/provider-endpoints.js +1 -0
- package/dist/core/extensions/builtin/websearch/websearch/provider-endpoints.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/providers/anthropic.d.ts +4 -1
- package/dist/core/extensions/builtin/websearch/websearch/providers/anthropic.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/providers/anthropic.js +44 -37
- package/dist/core/extensions/builtin/websearch/websearch/providers/anthropic.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/providers/deepseek.d.ts +3 -0
- package/dist/core/extensions/builtin/websearch/websearch/providers/deepseek.d.ts.map +1 -0
- package/dist/core/extensions/builtin/websearch/websearch/providers/deepseek.js +12 -0
- package/dist/core/extensions/builtin/websearch/websearch/providers/deepseek.js.map +1 -0
- package/dist/core/extensions/builtin/websearch/websearch/providers.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/providers.js +2 -0
- package/dist/core/extensions/builtin/websearch/websearch/providers.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/renderers.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/renderers.js +3 -3
- package/dist/core/extensions/builtin/websearch/websearch/renderers.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/search.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/search.js +1 -3
- package/dist/core/extensions/builtin/websearch/websearch/search.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/tool.js +2 -2
- package/dist/core/extensions/builtin/websearch/websearch/tool.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/types.d.ts +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/types.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +5 -0
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +1 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +3 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +22 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/model-resolver.js +2 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/thinking-levels.d.ts +5 -0
- package/dist/core/thinking-levels.d.ts.map +1 -1
- package/dist/core/thinking-levels.js +9 -39
- package/dist/core/thinking-levels.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/app-server/server/account.d.ts +1 -1
- package/dist/modes/app-server/server/account.js +1 -1
- package/dist/modes/app-server/server/account.js.map +1 -1
- package/dist/modes/app-server/server/server-core.js +1 -1
- package/dist/modes/app-server/server/server-core.js.map +1 -1
- package/dist/modes/interactive/compaction-queue-transfer.d.ts +2 -0
- package/dist/modes/interactive/compaction-queue-transfer.d.ts.map +1 -1
- package/dist/modes/interactive/compaction-queue-transfer.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +9 -5
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +38 -12
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/risky-main-model-warning.d.ts +1 -1
- package/dist/modes/interactive/risky-main-model-warning.d.ts.map +1 -1
- package/dist/modes/interactive/risky-main-model-warning.js +1 -1
- package/dist/modes/interactive/risky-main-model-warning.js.map +1 -1
- package/dist/modes/rpc/connection-handler.js +3 -3
- package/dist/modes/rpc/connection-handler.js.map +1 -1
- package/docs/extensions.md +10 -0
- package/docs/providers.md +21 -5
- package/docs/release-guide.md +2 -2
- package/docs/settings.md +1 -1
- package/examples/extensions/overlay-test.ts +1 -1
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +33 -0
- package/node_modules/@code-yeongyu/senpi-codemode/README.md +6 -3
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
- package/node_modules/@code-yeongyu/senpi-codemode/src/extension/eval-status-ticker.ts +79 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/extension/eval-status.ts +36 -3
- package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +26 -12
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-execution.ts +146 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-handler.ts +21 -119
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-runtime.ts +157 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-manager.ts +62 -208
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-notification.ts +98 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-snapshot.ts +81 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-state.ts +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-eval-result.ts +140 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-notification-queue.ts +53 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-request.ts +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool-options.ts +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +20 -342
- 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 +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
- 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 +10 -15
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses/fallback-state.d.ts +24 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses/fallback-state.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses/fallback-state.js +70 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses/fallback-state.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts +2 -16
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +10 -58
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.js +7 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/model.d.ts +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/model.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/model.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +14 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js +95 -19
- package/node_modules/@earendil-works/pi-ai/dist/models.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/azure-openai-responses.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/openrouter.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/types.d.ts +5 -0
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.js +36 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/package.json +1 -1
- package/node_modules/@earendil-works/pi-pty/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/mux.js +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/mux.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +17 -3
- 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 +6 -6
- package/dist/core/extensions/builtin/claude-agent-sdk/auth-lane.d.ts.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/auth-lane.js.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/guidance.d.ts +0 -6
- package/dist/core/extensions/builtin/claude-agent-sdk/guidance.d.ts.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/guidance.js.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/index.d.ts +0 -4
- package/dist/core/extensions/builtin/claude-agent-sdk/index.d.ts.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/index.js.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/oauth-login.js.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/options.d.ts +0 -16
- package/dist/core/extensions/builtin/claude-agent-sdk/options.js.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/prompt-bridge.js.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/settings.d.ts +0 -15
- package/dist/core/extensions/builtin/claude-agent-sdk/settings.d.ts.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/settings.js +0 -41
- package/dist/core/extensions/builtin/claude-agent-sdk/settings.js.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/stream.d.ts.map +0 -1
- package/dist/core/extensions/builtin/claude-agent-sdk/stream.js.map +0 -1
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.d.ts +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.js +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.d.ts +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.js +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.d.ts +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.js +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.d.ts +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.js +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.d.ts +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/prompt-bridge.d.ts +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.js +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.d.ts +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.js +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.d.ts +0 -0
- /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.js +0 -0
|
@@ -195,10 +195,14 @@ export class AgentSession {
|
|
|
195
195
|
this._isAgentRunActive = false;
|
|
196
196
|
this._toolExecutionDepth = 0;
|
|
197
197
|
this._promptStartPending = false;
|
|
198
|
+
this._nextInputId = 0;
|
|
198
199
|
/** Tracks pending steering messages for UI display. Removed when delivered. */
|
|
199
200
|
this._steeringMessages = [];
|
|
200
201
|
/** Tracks pending follow-up messages for UI display. Removed when delivered. */
|
|
201
202
|
this._followUpMessages = [];
|
|
203
|
+
/** Recovery-only order across both native queue modes and TUI compaction ownership. */
|
|
204
|
+
this._queuedInputOrder = [];
|
|
205
|
+
this._nextQueuedInputOrder = 0;
|
|
202
206
|
/** Messages queued to be included with the next user prompt as context ("asides"). */
|
|
203
207
|
this._pendingNextTurnMessages = [];
|
|
204
208
|
// Queues held while the first post-compaction response is classified. Agent
|
|
@@ -234,7 +238,7 @@ export class AgentSession {
|
|
|
234
238
|
this._userAbortPromise = undefined;
|
|
235
239
|
this._agentAbortSource = undefined;
|
|
236
240
|
this._suppressQueuedContinuationAfterUserAbort = false;
|
|
237
|
-
/** Set when clearQueue() drains
|
|
241
|
+
/** Set when clearQueue({ abortWillFollow: true }) drains queues immediately before abort(). */
|
|
238
242
|
this._hadClearedQueuedMessages = false;
|
|
239
243
|
this._extensionEventSignal = undefined;
|
|
240
244
|
// Bash execution state
|
|
@@ -252,7 +256,8 @@ export class AgentSession {
|
|
|
252
256
|
// Base system prompt (without extension appends) - used to apply fresh appends each turn
|
|
253
257
|
this._baseSystemPrompt = "";
|
|
254
258
|
this._currentServiceTier = undefined;
|
|
255
|
-
this.
|
|
259
|
+
this._sessionFastMode = false;
|
|
260
|
+
this._shownHighReasoningWarningKeys = new Set();
|
|
256
261
|
// Track last assistant message for auto-compaction check
|
|
257
262
|
this._lastAssistantMessage = undefined;
|
|
258
263
|
/** Internal handler for agent events - shared by subscribe and reconnect */
|
|
@@ -733,7 +738,9 @@ export class AgentSession {
|
|
|
733
738
|
this.agent.steer(message);
|
|
734
739
|
const userMessage = queuedMessages.find((message) => message.role === "user");
|
|
735
740
|
if (userMessage?.role === "user") {
|
|
736
|
-
this.
|
|
741
|
+
const text = this._extractUserMessageText(userMessage.content);
|
|
742
|
+
this._steeringMessages.push(text);
|
|
743
|
+
this._recordQueuedInput(text, "steer");
|
|
737
744
|
this._emitQueueUpdate();
|
|
738
745
|
}
|
|
739
746
|
return;
|
|
@@ -941,6 +948,7 @@ export class AgentSession {
|
|
|
941
948
|
const steeringIndex = this._steeringMessages.indexOf(messageText);
|
|
942
949
|
if (steeringIndex !== -1) {
|
|
943
950
|
this._steeringMessages.splice(steeringIndex, 1);
|
|
951
|
+
this._removeQueuedInput(messageText, "steer");
|
|
944
952
|
this._emitQueueUpdate();
|
|
945
953
|
}
|
|
946
954
|
else {
|
|
@@ -948,6 +956,7 @@ export class AgentSession {
|
|
|
948
956
|
const followUpIndex = this._followUpMessages.indexOf(messageText);
|
|
949
957
|
if (followUpIndex !== -1) {
|
|
950
958
|
this._followUpMessages.splice(followUpIndex, 1);
|
|
959
|
+
this._removeQueuedInput(messageText, "followUp");
|
|
951
960
|
this._emitQueueUpdate();
|
|
952
961
|
}
|
|
953
962
|
}
|
|
@@ -1342,6 +1351,22 @@ export class AgentSession {
|
|
|
1342
1351
|
get serviceTier() {
|
|
1343
1352
|
return this._currentServiceTier;
|
|
1344
1353
|
}
|
|
1354
|
+
/**
|
|
1355
|
+
* True when the active model is served at the priority ("fast") tier: either the model
|
|
1356
|
+
* itself is configured for it (an `openai` `-fast` catalog variant, a scoped
|
|
1357
|
+
* `provider/id:priority`) or an extension turned fast mode on for this session.
|
|
1358
|
+
*
|
|
1359
|
+
* Display-only: it never feeds request composition, so an extension toggling fast mode
|
|
1360
|
+
* for one provider cannot leak `service_tier` into another provider's payload.
|
|
1361
|
+
* `serviceTier` stays the single request-side source.
|
|
1362
|
+
*/
|
|
1363
|
+
isFastModeActive() {
|
|
1364
|
+
return this._sessionFastMode || this._currentServiceTier === "priority";
|
|
1365
|
+
}
|
|
1366
|
+
/** Session-scoped fast-mode indicator; never persisted, reset on session start. */
|
|
1367
|
+
setSessionFastMode(enabled) {
|
|
1368
|
+
this._sessionFastMode = enabled;
|
|
1369
|
+
}
|
|
1345
1370
|
/**
|
|
1346
1371
|
* Explicit scoped/favorite tiers win; otherwise fall back to the model's
|
|
1347
1372
|
* configured serviceTier from models.json/extension compatibility config.
|
|
@@ -1683,6 +1708,12 @@ export class AgentSession {
|
|
|
1683
1708
|
let messages;
|
|
1684
1709
|
let titlePrompt;
|
|
1685
1710
|
let consumedNextTurnMessages;
|
|
1711
|
+
let inputId;
|
|
1712
|
+
const emitInputDisposition = async (disposition) => {
|
|
1713
|
+
if (inputId === undefined)
|
|
1714
|
+
return;
|
|
1715
|
+
await this._extensionRunner.emit({ type: "input_disposition", inputId, disposition });
|
|
1716
|
+
};
|
|
1686
1717
|
try {
|
|
1687
1718
|
// Handle extension commands first (execute immediately, even during streaming)
|
|
1688
1719
|
// Extension commands manage their own LLM interaction via pi.sendMessage()
|
|
@@ -1700,9 +1731,11 @@ export class AgentSession {
|
|
|
1700
1731
|
let currentText = text;
|
|
1701
1732
|
let currentImages = options?.images;
|
|
1702
1733
|
if (this._extensionRunner.hasHandlers("input")) {
|
|
1703
|
-
|
|
1734
|
+
inputId = `${this.sessionManager.getSessionId()}:${++this._nextInputId}`;
|
|
1735
|
+
const inputResult = await this._extensionRunner.emitInput(currentText, currentImages, options?.source ?? "interactive", this.isStreaming ? options?.streamingBehavior : undefined, inputId);
|
|
1704
1736
|
throwIfCancelled();
|
|
1705
1737
|
if (inputResult.action === "handled") {
|
|
1738
|
+
await emitInputDisposition("handled");
|
|
1706
1739
|
promptDisposition?.("handled");
|
|
1707
1740
|
preflightResult?.(true);
|
|
1708
1741
|
return;
|
|
@@ -1733,6 +1766,7 @@ export class AgentSession {
|
|
|
1733
1766
|
else {
|
|
1734
1767
|
await this._queueSteer(expandedText, currentImages);
|
|
1735
1768
|
}
|
|
1769
|
+
await emitInputDisposition("queued");
|
|
1736
1770
|
promptDisposition?.("queued");
|
|
1737
1771
|
preflightResult?.(true);
|
|
1738
1772
|
return;
|
|
@@ -1750,6 +1784,7 @@ export class AgentSession {
|
|
|
1750
1784
|
else {
|
|
1751
1785
|
await this._queueSteer(expandedText, currentImages);
|
|
1752
1786
|
}
|
|
1787
|
+
await emitInputDisposition("queued");
|
|
1753
1788
|
promptDisposition?.("queued");
|
|
1754
1789
|
preflightResult?.(true);
|
|
1755
1790
|
return;
|
|
@@ -1773,6 +1808,7 @@ export class AgentSession {
|
|
|
1773
1808
|
else {
|
|
1774
1809
|
await this._queueSteer(expandedText, currentImages);
|
|
1775
1810
|
}
|
|
1811
|
+
await emitInputDisposition("queued");
|
|
1776
1812
|
promptDisposition?.("queued");
|
|
1777
1813
|
preflightResult?.(true);
|
|
1778
1814
|
return;
|
|
@@ -1793,6 +1829,7 @@ export class AgentSession {
|
|
|
1793
1829
|
else {
|
|
1794
1830
|
await this._queueSteer(expandedText, currentImages);
|
|
1795
1831
|
}
|
|
1832
|
+
await emitInputDisposition("queued");
|
|
1796
1833
|
promptDisposition?.("queued");
|
|
1797
1834
|
preflightResult?.(true);
|
|
1798
1835
|
return;
|
|
@@ -1866,8 +1903,11 @@ export class AgentSession {
|
|
|
1866
1903
|
// next-turn, and before_agent_start additions are also provider-visible,
|
|
1867
1904
|
// so make one final admission decision against the complete request.
|
|
1868
1905
|
await this._enforceFinalProviderAdmission(messages);
|
|
1906
|
+
throwIfCancelled();
|
|
1907
|
+
await emitInputDisposition("started");
|
|
1869
1908
|
}
|
|
1870
1909
|
catch (error) {
|
|
1910
|
+
await emitInputDisposition("rejected");
|
|
1871
1911
|
if (consumedNextTurnMessages && consumedNextTurnMessages.length > 0) {
|
|
1872
1912
|
this._pendingNextTurnMessages = [...consumedNextTurnMessages, ...this._pendingNextTurnMessages];
|
|
1873
1913
|
}
|
|
@@ -1881,7 +1921,6 @@ export class AgentSession {
|
|
|
1881
1921
|
if (!messages) {
|
|
1882
1922
|
return;
|
|
1883
1923
|
}
|
|
1884
|
-
throwIfCancelled();
|
|
1885
1924
|
promptDisposition?.("started");
|
|
1886
1925
|
preflightResult?.(true);
|
|
1887
1926
|
if (options?.thinkingLevel !== undefined) {
|
|
@@ -2001,7 +2040,7 @@ export class AgentSession {
|
|
|
2001
2040
|
* @param images Optional image attachments to include with the message
|
|
2002
2041
|
* @throws Error if text is an extension command
|
|
2003
2042
|
*/
|
|
2004
|
-
async steer(text, images) {
|
|
2043
|
+
async steer(text, images, recovery) {
|
|
2005
2044
|
// Check for extension commands (cannot be queued)
|
|
2006
2045
|
if (text.startsWith("/")) {
|
|
2007
2046
|
this._throwIfExtensionCommand(text);
|
|
@@ -2009,7 +2048,7 @@ export class AgentSession {
|
|
|
2009
2048
|
// Expand skill commands and prompt templates
|
|
2010
2049
|
let expandedText = this._expandSkillCommand(text);
|
|
2011
2050
|
expandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);
|
|
2012
|
-
await this._queueSteer(expandedText, images);
|
|
2051
|
+
await this._queueSteer(expandedText, images, recovery?.enqueueOrder);
|
|
2013
2052
|
}
|
|
2014
2053
|
/**
|
|
2015
2054
|
* Queue a follow-up message to be processed after the agent finishes.
|
|
@@ -2018,7 +2057,7 @@ export class AgentSession {
|
|
|
2018
2057
|
* @param images Optional image attachments to include with the message
|
|
2019
2058
|
* @throws Error if text is an extension command
|
|
2020
2059
|
*/
|
|
2021
|
-
async followUp(text, images) {
|
|
2060
|
+
async followUp(text, images, recovery) {
|
|
2022
2061
|
// Check for extension commands (cannot be queued)
|
|
2023
2062
|
if (text.startsWith("/")) {
|
|
2024
2063
|
this._throwIfExtensionCommand(text);
|
|
@@ -2026,7 +2065,7 @@ export class AgentSession {
|
|
|
2026
2065
|
// Expand skill commands and prompt templates
|
|
2027
2066
|
let expandedText = this._expandSkillCommand(text);
|
|
2028
2067
|
expandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);
|
|
2029
|
-
await this._queueFollowUp(expandedText, images);
|
|
2068
|
+
await this._queueFollowUp(expandedText, images, recovery?.enqueueOrder);
|
|
2030
2069
|
}
|
|
2031
2070
|
_startSessionTitleGeneration(firstPrompt) {
|
|
2032
2071
|
if (!this._autoTitleSessions || this.sessionManager.getSessionName() || shouldSkipSessionTitle(firstPrompt)) {
|
|
@@ -2100,8 +2139,9 @@ export class AgentSession {
|
|
|
2100
2139
|
/**
|
|
2101
2140
|
* Internal: Queue a steering message (already expanded, no extension command check).
|
|
2102
2141
|
*/
|
|
2103
|
-
async _queueSteer(text, images) {
|
|
2142
|
+
async _queueSteer(text, images, enqueueOrder) {
|
|
2104
2143
|
this._steeringMessages.push(text);
|
|
2144
|
+
this._recordQueuedInput(text, "steer", enqueueOrder);
|
|
2105
2145
|
this._sessionLogger.debug("queue_enqueue", { mode: "steer", count: this._steeringMessages.length });
|
|
2106
2146
|
this._emitQueueUpdate();
|
|
2107
2147
|
const content = [{ type: "text", text }];
|
|
@@ -2118,8 +2158,9 @@ export class AgentSession {
|
|
|
2118
2158
|
/**
|
|
2119
2159
|
* Internal: Queue a follow-up message (already expanded, no extension command check).
|
|
2120
2160
|
*/
|
|
2121
|
-
async _queueFollowUp(text, images) {
|
|
2161
|
+
async _queueFollowUp(text, images, enqueueOrder) {
|
|
2122
2162
|
this._followUpMessages.push(text);
|
|
2163
|
+
this._recordQueuedInput(text, "followUp", enqueueOrder);
|
|
2123
2164
|
this._sessionLogger.debug("queue_enqueue", { mode: "followUp", count: this._followUpMessages.length });
|
|
2124
2165
|
this._emitQueueUpdate();
|
|
2125
2166
|
const content = [{ type: "text", text }];
|
|
@@ -2311,26 +2352,46 @@ export class AgentSession {
|
|
|
2311
2352
|
finishSessionWork?.();
|
|
2312
2353
|
}
|
|
2313
2354
|
}
|
|
2355
|
+
/** Reserve a global order for input temporarily owned outside the native queues. */
|
|
2356
|
+
reserveQueuedInputOrder() {
|
|
2357
|
+
this._nextQueuedInputOrder += 1;
|
|
2358
|
+
return this._nextQueuedInputOrder;
|
|
2359
|
+
}
|
|
2360
|
+
_recordQueuedInput(text, mode, enqueueOrder) {
|
|
2361
|
+
const order = enqueueOrder ?? this.reserveQueuedInputOrder();
|
|
2362
|
+
this._nextQueuedInputOrder = Math.max(this._nextQueuedInputOrder, order);
|
|
2363
|
+
this._queuedInputOrder.push({ text, mode, enqueueOrder: order });
|
|
2364
|
+
}
|
|
2365
|
+
_removeQueuedInput(text, mode) {
|
|
2366
|
+
const index = this._queuedInputOrder.findIndex((message) => message.mode === mode && message.text === text);
|
|
2367
|
+
if (index !== -1)
|
|
2368
|
+
this._queuedInputOrder.splice(index, 1);
|
|
2369
|
+
}
|
|
2314
2370
|
/**
|
|
2315
|
-
* Clear all queued messages and return them.
|
|
2316
|
-
*
|
|
2317
|
-
* @
|
|
2371
|
+
* Clear all queued messages and return them. The non-enumerable `ordered`
|
|
2372
|
+
* view preserves legacy object equality and native queue semantics.
|
|
2373
|
+
* @param options.abortWillFollow Mark a non-empty drain so an immediately following abort can emit session_abort.
|
|
2318
2374
|
*/
|
|
2319
|
-
clearQueue() {
|
|
2375
|
+
clearQueue(options = { abortWillFollow: false }) {
|
|
2320
2376
|
const steering = [...this._steeringMessages];
|
|
2321
2377
|
const followUp = [...this._followUpMessages];
|
|
2322
|
-
|
|
2378
|
+
const ordered = [...this._queuedInputOrder].sort((a, b) => a.enqueueOrder - b.enqueueOrder);
|
|
2379
|
+
if (options.abortWillFollow && (steering.length > 0 || followUp.length > 0)) {
|
|
2323
2380
|
this._hadClearedQueuedMessages = true;
|
|
2381
|
+
}
|
|
2324
2382
|
// Clear every queue synchronously. Deferred post-compaction messages are
|
|
2325
2383
|
// already represented in visible bookkeeping, so they must not be returned
|
|
2326
2384
|
// a second time or later resurrected into Agent's native queues.
|
|
2327
2385
|
this._steeringMessages = [];
|
|
2328
2386
|
this._followUpMessages = [];
|
|
2387
|
+
this._queuedInputOrder = [];
|
|
2329
2388
|
this._postCompactionDeferredSteeringMessages = [];
|
|
2330
2389
|
this._postCompactionDeferredFollowUpMessages = [];
|
|
2331
2390
|
this.agent.clearAllQueues();
|
|
2332
2391
|
this._emitQueueUpdate();
|
|
2333
|
-
|
|
2392
|
+
const cleared = { steering, followUp };
|
|
2393
|
+
Object.defineProperty(cleared, "ordered", { value: ordered, enumerable: false });
|
|
2394
|
+
return cleared;
|
|
2334
2395
|
}
|
|
2335
2396
|
/** Number of pending messages (includes both steering and follow-up) */
|
|
2336
2397
|
get pendingMessageCount() {
|
|
@@ -2487,9 +2548,6 @@ export class AgentSession {
|
|
|
2487
2548
|
if (opts.ephemeralThinkingLevel !== undefined) {
|
|
2488
2549
|
this._applyEphemeralThinkingLevel(thinkingLevel);
|
|
2489
2550
|
}
|
|
2490
|
-
else if (opts.persistDefault) {
|
|
2491
|
-
this.setThinkingLevel(thinkingLevel);
|
|
2492
|
-
}
|
|
2493
2551
|
else {
|
|
2494
2552
|
this.setSessionThinkingLevel(thinkingLevel);
|
|
2495
2553
|
}
|
|
@@ -2543,10 +2601,10 @@ export class AgentSession {
|
|
|
2543
2601
|
this.settingsManager.setDefaultModelAndProvider(next.model.provider, next.model.id);
|
|
2544
2602
|
this._currentServiceTier = this._resolveServiceTier(next.model, next.serviceTier);
|
|
2545
2603
|
// Apply thinking level.
|
|
2546
|
-
// - Explicit favorite model thinking level overrides
|
|
2547
|
-
// - Undefined favorite model thinking level
|
|
2548
|
-
//
|
|
2549
|
-
this.
|
|
2604
|
+
// - Explicit favorite model thinking level overrides the effective session level
|
|
2605
|
+
// - Undefined favorite model thinking level restores the remembered user preference
|
|
2606
|
+
// setSessionThinkingLevel clamps without replacing that preference.
|
|
2607
|
+
this.setSessionThinkingLevel(thinkingLevel);
|
|
2550
2608
|
const systemPromptChange = await this._emitModelSelect(next.model, currentModel, "cycle");
|
|
2551
2609
|
const cycleResult = { model: next.model, thinkingLevel: this.thinkingLevel, isScoped: true };
|
|
2552
2610
|
if (systemPromptChange) {
|
|
@@ -2599,15 +2657,12 @@ export class AgentSession {
|
|
|
2599
2657
|
_emitHighReasoningWarningIfNeeded() {
|
|
2600
2658
|
const model = this.model;
|
|
2601
2659
|
const level = this.thinkingLevel;
|
|
2602
|
-
if (!model || !shouldWarnHighReasoning(model, level))
|
|
2603
|
-
this._lastHighReasoningWarningKey = undefined;
|
|
2660
|
+
if (!model || !shouldWarnHighReasoning(model, level))
|
|
2604
2661
|
return;
|
|
2605
|
-
}
|
|
2606
|
-
|
|
2607
|
-
if (this._lastHighReasoningWarningKey === key) {
|
|
2662
|
+
const key = `${model.provider}/${model.id}`;
|
|
2663
|
+
if (this._shownHighReasoningWarningKeys.has(key))
|
|
2608
2664
|
return;
|
|
2609
|
-
|
|
2610
|
-
this._lastHighReasoningWarningKey = key;
|
|
2665
|
+
this._shownHighReasoningWarningKeys.add(key);
|
|
2611
2666
|
this._emit({
|
|
2612
2667
|
type: "high_reasoning_warning",
|
|
2613
2668
|
modelId: model.id,
|
|
@@ -2660,10 +2715,7 @@ export class AgentSession {
|
|
|
2660
2715
|
if (explicitLevel !== undefined) {
|
|
2661
2716
|
return explicitLevel;
|
|
2662
2717
|
}
|
|
2663
|
-
|
|
2664
|
-
return this.settingsManager.getDefaultThinkingLevel() ?? DEFAULT_THINKING_LEVEL;
|
|
2665
|
-
}
|
|
2666
|
-
return this.thinkingLevel;
|
|
2718
|
+
return this.settingsManager.getDefaultThinkingLevel() ?? this.thinkingLevel ?? DEFAULT_THINKING_LEVEL;
|
|
2667
2719
|
}
|
|
2668
2720
|
_clampThinkingLevel(level, availableLevels) {
|
|
2669
2721
|
const available = new Set(availableLevels);
|
|
@@ -3287,6 +3339,8 @@ export class AgentSession {
|
|
|
3287
3339
|
if (compacted)
|
|
3288
3340
|
return true;
|
|
3289
3341
|
}
|
|
3342
|
+
if (this._isCompactionOnCooldown())
|
|
3343
|
+
return false;
|
|
3290
3344
|
throw new RequiredCompactionError();
|
|
3291
3345
|
}
|
|
3292
3346
|
/**
|
|
@@ -3325,6 +3379,8 @@ export class AgentSession {
|
|
|
3325
3379
|
throw new RequiredCompactionError();
|
|
3326
3380
|
}
|
|
3327
3381
|
const compacted = await this._runPrePromptCompaction(lastAssistantMessage, false, "pre_prompt");
|
|
3382
|
+
if (!compacted && !isOversized() && this._isCompactionOnCooldown())
|
|
3383
|
+
return;
|
|
3328
3384
|
if (!compacted || isOversized()) {
|
|
3329
3385
|
throw new RequiredCompactionError();
|
|
3330
3386
|
}
|
|
@@ -3470,6 +3526,10 @@ export class AgentSession {
|
|
|
3470
3526
|
}
|
|
3471
3527
|
return false;
|
|
3472
3528
|
}
|
|
3529
|
+
_isCompactionOnCooldown() {
|
|
3530
|
+
const state = this._compactionLifecycle.state;
|
|
3531
|
+
return state.status === "failed" && state.rejectionCause === "circuit-breaker";
|
|
3532
|
+
}
|
|
3473
3533
|
async _runPrePromptCompaction(lastAssistantMessage, skipAbortedCheck, reason = "pre_prompt", willRetry = false, allowSummaryOnly = false) {
|
|
3474
3534
|
const controller = new AbortController();
|
|
3475
3535
|
this._claimCompactionController(controller, "compaction");
|
|
@@ -3530,8 +3590,11 @@ export class AgentSession {
|
|
|
3530
3590
|
if (!shouldCompact(contextTokens, model.contextWindow, settings))
|
|
3531
3591
|
return;
|
|
3532
3592
|
const compacted = await this._runPrePromptCompaction(this._findLastAssistantMessage(), true, "pre_prompt");
|
|
3533
|
-
if (!compacted)
|
|
3593
|
+
if (!compacted) {
|
|
3594
|
+
if (this._isCompactionOnCooldown())
|
|
3595
|
+
return;
|
|
3534
3596
|
throw new RequiredCompactionError();
|
|
3597
|
+
}
|
|
3535
3598
|
this._scheduledContinuationRecompacted = true;
|
|
3536
3599
|
}
|
|
3537
3600
|
async _continueAgentAfterCurrentRun(options = {}) {
|
|
@@ -3909,6 +3972,7 @@ export class AgentSession {
|
|
|
3909
3972
|
return true;
|
|
3910
3973
|
},
|
|
3911
3974
|
setSessionThinkingLevel: (level) => this.setSessionThinkingLevel(level),
|
|
3975
|
+
setSessionFastMode: (enabled) => this.setSessionFastMode(enabled),
|
|
3912
3976
|
}, {
|
|
3913
3977
|
getModel: () => this.model,
|
|
3914
3978
|
getServiceTier: () => this.serviceTier,
|
|
@@ -4398,6 +4462,15 @@ export class AgentSession {
|
|
|
4398
4462
|
// Refusals are only retried through a new chain candidate. They never use
|
|
4399
4463
|
// same-model retries or the transient over-budget fallback escape hatch.
|
|
4400
4464
|
if (this._retryAttempt + 1 > settings.maxRetries) {
|
|
4465
|
+
if (this._retryAttempt > 0) {
|
|
4466
|
+
this._emit({
|
|
4467
|
+
type: "auto_retry_end",
|
|
4468
|
+
success: false,
|
|
4469
|
+
attempt: this._retryAttempt,
|
|
4470
|
+
finalError: message.errorMessage,
|
|
4471
|
+
});
|
|
4472
|
+
}
|
|
4473
|
+
this._retryAttempt = 0;
|
|
4401
4474
|
this._resolveRetry();
|
|
4402
4475
|
return "not-handled";
|
|
4403
4476
|
}
|
|
@@ -4407,6 +4480,15 @@ export class AgentSession {
|
|
|
4407
4480
|
if (exhaustedChainKey) {
|
|
4408
4481
|
this._emit({ type: "retry_fallback_exhausted", chainKey: exhaustedChainKey, lastError: errorMessage });
|
|
4409
4482
|
}
|
|
4483
|
+
if (this._retryAttempt > 0) {
|
|
4484
|
+
this._emit({
|
|
4485
|
+
type: "auto_retry_end",
|
|
4486
|
+
success: false,
|
|
4487
|
+
attempt: this._retryAttempt,
|
|
4488
|
+
finalError: message.errorMessage,
|
|
4489
|
+
});
|
|
4490
|
+
}
|
|
4491
|
+
this._retryAttempt = 0;
|
|
4410
4492
|
this._resolveRetry();
|
|
4411
4493
|
return "not-handled";
|
|
4412
4494
|
}
|
|
@@ -4541,7 +4623,8 @@ export class AgentSession {
|
|
|
4541
4623
|
if (compactionSettings.enabled &&
|
|
4542
4624
|
model &&
|
|
4543
4625
|
shouldCompact(contextTokens, model.contextWindow, compactionSettings)) {
|
|
4544
|
-
|
|
4626
|
+
const preRetryCompaction = await this._runPrePromptCompaction(message, true, "threshold", true, true);
|
|
4627
|
+
if (!preRetryCompaction && !this._isCompactionOnCooldown()) {
|
|
4545
4628
|
const attempt = this._retryAttempt;
|
|
4546
4629
|
this._retryAttempt = 0;
|
|
4547
4630
|
this._emit({
|