@qduc/term2 0.18.0 → 0.20.0
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/dist/agent.d.ts +9 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +7 -1
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +3 -2
- package/dist/app.js.map +1 -1
- package/dist/cli.js +9 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/retry-failed-turn-command.d.ts +6 -0
- package/dist/commands/retry-failed-turn-command.d.ts.map +1 -0
- package/dist/commands/retry-failed-turn-command.js +12 -0
- package/dist/commands/retry-failed-turn-command.js.map +1 -0
- package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/components/layout/BackgroundTaskManager.js +4 -0
- package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.js +11 -1
- package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
- package/dist/components/layout/BottomArea.d.ts +6 -0
- package/dist/components/layout/BottomArea.d.ts.map +1 -1
- package/dist/components/layout/BottomArea.js +15 -5
- package/dist/components/layout/BottomArea.js.map +1 -1
- package/dist/components/layout/StatusBar.d.ts +6 -0
- package/dist/components/layout/StatusBar.d.ts.map +1 -1
- package/dist/components/layout/StatusBar.js +17 -4
- package/dist/components/layout/StatusBar.js.map +1 -1
- package/dist/components/message/CommandGroupSummary.js +4 -5
- package/dist/components/message/CommandGroupSummary.js.map +1 -1
- package/dist/components/message/MessageList.d.ts.map +1 -1
- package/dist/components/message/MessageList.js +33 -10
- package/dist/components/message/MessageList.js.map +1 -1
- package/dist/components/message/command-grouping.d.ts +7 -6
- package/dist/components/message/command-grouping.d.ts.map +1 -1
- package/dist/components/message/command-grouping.js +35 -15
- package/dist/components/message/command-grouping.js.map +1 -1
- package/dist/components/message/command-message-helpers.d.ts +5 -5
- package/dist/contracts/conversation.d.ts +2 -0
- package/dist/contracts/conversation.d.ts.map +1 -1
- package/dist/contracts/conversation.js.map +1 -1
- package/dist/contracts/run-termination.d.ts +7 -0
- package/dist/contracts/run-termination.d.ts.map +1 -0
- package/dist/contracts/run-termination.js +2 -0
- package/dist/contracts/run-termination.js.map +1 -0
- package/dist/contracts/streamed-model-turn.d.ts +4 -0
- package/dist/contracts/streamed-model-turn.d.ts.map +1 -1
- package/dist/hooks/conversation-ui-reducer.d.ts +7 -0
- package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
- package/dist/hooks/conversation-ui-reducer.js +6 -0
- package/dist/hooks/conversation-ui-reducer.js.map +1 -1
- package/dist/hooks/settings-completion-config.d.ts.map +1 -1
- package/dist/hooks/settings-completion-config.js +0 -2
- package/dist/hooks/settings-completion-config.js.map +1 -1
- package/dist/hooks/use-app-commands.d.ts +2 -1
- package/dist/hooks/use-app-commands.d.ts.map +1 -1
- package/dist/hooks/use-app-commands.js +4 -1
- package/dist/hooks/use-app-commands.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +5 -0
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +29 -4
- package/dist/hooks/use-conversation.js.map +1 -1
- package/dist/hooks/use-model-selection.d.ts +2 -0
- package/dist/hooks/use-model-selection.d.ts.map +1 -1
- package/dist/hooks/use-model-selection.js +3 -3
- package/dist/hooks/use-model-selection.js.map +1 -1
- package/dist/lib/agent-client.d.ts +18 -0
- package/dist/lib/agent-client.d.ts.map +1 -1
- package/dist/lib/agent-client.js +68 -23
- package/dist/lib/agent-client.js.map +1 -1
- package/dist/lib/agent-configuration.d.ts +8 -0
- package/dist/lib/agent-configuration.d.ts.map +1 -1
- package/dist/lib/agent-configuration.js +6 -0
- package/dist/lib/agent-configuration.js.map +1 -1
- package/dist/lib/agent-factory.d.ts +8 -0
- package/dist/lib/agent-factory.d.ts.map +1 -1
- package/dist/lib/agent-factory.js +2 -0
- package/dist/lib/agent-factory.js.map +1 -1
- package/dist/providers/aborted-stream-recorder.d.ts +26 -1
- package/dist/providers/aborted-stream-recorder.d.ts.map +1 -1
- package/dist/providers/aborted-stream-recorder.js +133 -0
- package/dist/providers/aborted-stream-recorder.js.map +1 -1
- package/dist/providers/ai-sdk-streamed-model.d.ts +5 -0
- package/dist/providers/ai-sdk-streamed-model.d.ts.map +1 -1
- package/dist/providers/ai-sdk-streamed-model.js +90 -1
- package/dist/providers/ai-sdk-streamed-model.js.map +1 -1
- package/dist/providers/codex-compact.d.ts +5 -4
- package/dist/providers/codex-compact.d.ts.map +1 -1
- package/dist/providers/codex-compact.js +5 -4
- package/dist/providers/codex-compact.js.map +1 -1
- package/dist/providers/codex-responses-model.d.ts.map +1 -1
- package/dist/providers/codex-responses-model.js +103 -20
- package/dist/providers/codex-responses-model.js.map +1 -1
- package/dist/providers/codex.provider.d.ts +1 -0
- package/dist/providers/codex.provider.d.ts.map +1 -1
- package/dist/providers/codex.provider.js +59 -3
- package/dist/providers/codex.provider.js.map +1 -1
- package/dist/providers/fetch/logging-middleware.d.ts +1 -0
- package/dist/providers/fetch/logging-middleware.d.ts.map +1 -1
- package/dist/providers/fetch/logging-middleware.js +24 -1
- package/dist/providers/fetch/logging-middleware.js.map +1 -1
- package/dist/providers/openai-chat-completions-model.d.ts.map +1 -1
- package/dist/providers/openai-chat-completions-model.js +99 -2
- package/dist/providers/openai-chat-completions-model.js.map +1 -1
- package/dist/providers/openai-responses-model.d.ts.map +1 -1
- package/dist/providers/openai-responses-model.js +21 -13
- package/dist/providers/openai-responses-model.js.map +1 -1
- package/dist/providers/retrying-model.d.ts +5 -1
- package/dist/providers/retrying-model.d.ts.map +1 -1
- package/dist/providers/retrying-model.js +29 -6
- package/dist/providers/retrying-model.js.map +1 -1
- package/dist/providers/websocket-abort-race.d.ts +13 -0
- package/dist/providers/websocket-abort-race.d.ts.map +1 -0
- package/dist/providers/websocket-abort-race.js +34 -0
- package/dist/providers/websocket-abort-race.js.map +1 -0
- package/dist/services/agent-runtime/application-run-loop.d.ts +7 -2
- package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
- package/dist/services/agent-runtime/application-run-loop.js +48 -8
- package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
- package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js +3 -3
- package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js.map +1 -1
- package/dist/services/agent-runtime/executor.d.ts.map +1 -1
- package/dist/services/agent-runtime/executor.js +2 -0
- package/dist/services/agent-runtime/executor.js.map +1 -1
- package/dist/services/agent-runtime/types.d.ts +2 -2
- package/dist/services/agent-runtime/types.d.ts.map +1 -1
- package/dist/services/agent-stream.d.ts +13 -0
- package/dist/services/agent-stream.d.ts.map +1 -1
- package/dist/services/agent-stream.js +56 -0
- package/dist/services/agent-stream.js.map +1 -1
- package/dist/services/background-task-activity.d.ts +7 -0
- package/dist/services/background-task-activity.d.ts.map +1 -1
- package/dist/services/background-task-activity.js +17 -0
- package/dist/services/background-task-activity.js.map +1 -1
- package/dist/services/conversation/conversation-events.d.ts +36 -3
- package/dist/services/conversation/conversation-events.d.ts.map +1 -1
- package/dist/services/conversation/conversation-events.js +30 -1
- package/dist/services/conversation/conversation-events.js.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.d.ts +2 -0
- package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.js +39 -1
- package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.types.d.ts +4 -0
- package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -1
- package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
- package/dist/services/conversation/conversation-result-builder.js +9 -5
- package/dist/services/conversation/conversation-result-builder.js.map +1 -1
- package/dist/services/conversation/conversation-service.d.ts +2 -0
- package/dist/services/conversation/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation/conversation-service.js +14 -2
- package/dist/services/conversation/conversation-service.js.map +1 -1
- package/dist/services/conversation/session-browser.d.ts +3 -0
- package/dist/services/conversation/session-browser.d.ts.map +1 -1
- package/dist/services/conversation/session-browser.js +42 -40
- package/dist/services/conversation/session-browser.js.map +1 -1
- package/dist/services/conversation-agent-client.d.ts +3 -0
- package/dist/services/conversation-agent-client.d.ts.map +1 -1
- package/dist/services/logging/provider-traffic.d.ts +6 -1
- package/dist/services/logging/provider-traffic.d.ts.map +1 -1
- package/dist/services/logging/provider-traffic.js +29 -4
- package/dist/services/logging/provider-traffic.js.map +1 -1
- package/dist/services/memory/memory-store.d.ts.map +1 -1
- package/dist/services/memory/memory-store.js +3 -1
- package/dist/services/memory/memory-store.js.map +1 -1
- package/dist/services/models/model-catalog-session.d.ts +1 -2
- package/dist/services/models/model-catalog-session.d.ts.map +1 -1
- package/dist/services/retry/committed-tool-continuation.d.ts +4 -0
- package/dist/services/retry/committed-tool-continuation.d.ts.map +1 -0
- package/dist/services/retry/committed-tool-continuation.js +12 -0
- package/dist/services/retry/committed-tool-continuation.js.map +1 -0
- package/dist/services/retry/in-loop-model-retry.d.ts.map +1 -1
- package/dist/services/retry/in-loop-model-retry.js +9 -0
- package/dist/services/retry/in-loop-model-retry.js.map +1 -1
- package/dist/services/retry/provider-failure-classification.d.ts +12 -0
- package/dist/services/retry/provider-failure-classification.d.ts.map +1 -0
- package/dist/services/retry/provider-failure-classification.js +55 -0
- package/dist/services/retry/provider-failure-classification.js.map +1 -0
- package/dist/services/retry/retry-classifier.d.ts.map +1 -1
- package/dist/services/retry/retry-classifier.js +68 -0
- package/dist/services/retry/retry-classifier.js.map +1 -1
- package/dist/services/retry/retry-contracts.d.ts +24 -3
- package/dist/services/retry/retry-contracts.d.ts.map +1 -1
- package/dist/services/retry/retry-event-presenter.d.ts.map +1 -1
- package/dist/services/retry/retry-event-presenter.js +14 -4
- package/dist/services/retry/retry-event-presenter.js.map +1 -1
- package/dist/services/retry/retry-recovery-budget.d.ts +51 -0
- package/dist/services/retry/retry-recovery-budget.d.ts.map +1 -0
- package/dist/services/retry/retry-recovery-budget.js +84 -0
- package/dist/services/retry/retry-recovery-budget.js.map +1 -0
- package/dist/services/service-interfaces.d.ts +67 -3
- package/dist/services/service-interfaces.d.ts.map +1 -1
- package/dist/services/session/background-check-in-scheduler.d.ts +20 -4
- package/dist/services/session/background-check-in-scheduler.d.ts.map +1 -1
- package/dist/services/session/background-check-in-scheduler.js +108 -8
- package/dist/services/session/background-check-in-scheduler.js.map +1 -1
- package/dist/services/session/continuation-recovery-handler.d.ts +1 -0
- package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
- package/dist/services/session/continuation-recovery-handler.js +42 -0
- package/dist/services/session/continuation-recovery-handler.js.map +1 -1
- package/dist/services/session/continuation-state.d.ts +4 -1
- package/dist/services/session/continuation-state.d.ts.map +1 -1
- package/dist/services/session/continuation-state.js +5 -1
- package/dist/services/session/continuation-state.js.map +1 -1
- package/dist/services/session/initial-turn-recovery-handler.d.ts +3 -0
- package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
- package/dist/services/session/initial-turn-recovery-handler.js +70 -0
- package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
- package/dist/services/session/session-composition.d.ts.map +1 -1
- package/dist/services/session/session-composition.js +5 -1
- package/dist/services/session/session-composition.js.map +1 -1
- package/dist/services/session/session-tool-tracker.d.ts +6 -0
- package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
- package/dist/services/session/session-tool-tracker.js +17 -0
- package/dist/services/session/session-tool-tracker.js.map +1 -1
- package/dist/services/session/terminal-result-collector.d.ts.map +1 -1
- package/dist/services/session/terminal-result-collector.js +3 -0
- package/dist/services/session/terminal-result-collector.js.map +1 -1
- package/dist/services/session/turn-attempt-factory.d.ts +2 -0
- package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
- package/dist/services/session/turn-attempt-factory.js +1 -0
- package/dist/services/session/turn-attempt-factory.js.map +1 -1
- package/dist/services/session/turn-attempt.d.ts +6 -0
- package/dist/services/session/turn-attempt.d.ts.map +1 -1
- package/dist/services/session/turn-attempt.js +16 -0
- package/dist/services/session/turn-attempt.js.map +1 -1
- package/dist/services/session/turn-workflow.d.ts +1 -1
- package/dist/services/session/turn-workflow.d.ts.map +1 -1
- package/dist/services/session/turn-workflow.js +83 -19
- package/dist/services/session/turn-workflow.js.map +1 -1
- package/dist/services/settings/settings-schema.d.ts +0 -4
- package/dist/services/settings/settings-schema.d.ts.map +1 -1
- package/dist/services/settings/settings-schema.js +1 -5
- package/dist/services/settings/settings-schema.js.map +1 -1
- package/dist/services/settings/settings-sources.d.ts.map +1 -1
- package/dist/services/settings/settings-sources.js +0 -1
- package/dist/services/settings/settings-sources.js.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js +0 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
- package/dist/services/subagents/execution-runner.d.ts.map +1 -1
- package/dist/services/subagents/execution-runner.js +39 -4
- package/dist/services/subagents/execution-runner.js.map +1 -1
- package/dist/services/subagents/nested-runner.d.ts.map +1 -1
- package/dist/services/subagents/nested-runner.js +23 -7
- package/dist/services/subagents/nested-runner.js.map +1 -1
- package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -1
- package/dist/services/subagents/subagent-async-registry.js +28 -2
- package/dist/services/subagents/subagent-async-registry.js.map +1 -1
- package/dist/services/subagents/subagent-notification-store.d.ts +2 -2
- package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
- package/dist/services/subagents/subagent-notification-store.js +3 -2
- package/dist/services/subagents/subagent-notification-store.js.map +1 -1
- package/dist/services/subagents/types.d.ts +31 -8
- package/dist/services/subagents/types.d.ts.map +1 -1
- package/dist/services/subagents/types.js +11 -0
- package/dist/services/subagents/types.js.map +1 -1
- package/dist/services/subagents/utils.d.ts.map +1 -1
- package/dist/services/subagents/utils.js +3 -0
- package/dist/services/subagents/utils.js.map +1 -1
- package/dist/test-helpers/terminal-e2e.d.ts +2 -0
- package/dist/test-helpers/terminal-e2e.d.ts.map +1 -1
- package/dist/test-helpers/terminal-e2e.js +13 -6
- package/dist/test-helpers/terminal-e2e.js.map +1 -1
- package/dist/test-helpers/vitest-network-guard.d.ts +2 -0
- package/dist/test-helpers/vitest-network-guard.d.ts.map +1 -0
- package/dist/test-helpers/vitest-network-guard.js +24 -0
- package/dist/test-helpers/vitest-network-guard.js.map +1 -0
- package/dist/tools/agent/configure-task-check-in.d.ts +17 -0
- package/dist/tools/agent/configure-task-check-in.d.ts.map +1 -0
- package/dist/tools/agent/configure-task-check-in.js +74 -0
- package/dist/tools/agent/configure-task-check-in.js.map +1 -0
- package/dist/tools/agent/run-subagent-async.d.ts +12 -2
- package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
- package/dist/tools/agent/run-subagent-async.js +47 -5
- package/dist/tools/agent/run-subagent-async.js.map +1 -1
- package/dist/tools/agent/run-subagent.d.ts +15 -0
- package/dist/tools/agent/run-subagent.d.ts.map +1 -1
- package/dist/tools/agent/run-subagent.js +24 -2
- package/dist/tools/agent/run-subagent.js.map +1 -1
- package/dist/tools/file/read-file.d.ts.map +1 -1
- package/dist/tools/file/read-file.js +48 -0
- package/dist/tools/file/read-file.js.map +1 -1
- package/dist/tools/format-helpers.d.ts.map +1 -1
- package/dist/tools/format-helpers.js +7 -0
- package/dist/tools/format-helpers.js.map +1 -1
- package/dist/tools/memory/memory-tools.js +1 -1
- package/dist/tools/memory/memory-tools.js.map +1 -1
- package/dist/tools/session-rollover/session-rollover-tool.d.ts.map +1 -1
- package/dist/tools/session-rollover/session-rollover-tool.js +1 -0
- package/dist/tools/session-rollover/session-rollover-tool.js.map +1 -1
- package/dist/tools/system/shell.d.ts +12 -0
- package/dist/tools/system/shell.d.ts.map +1 -1
- package/dist/tools/system/shell.js +22 -2
- package/dist/tools/system/shell.js.map +1 -1
- package/dist/tools/types.d.ts +4 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/utils/ai/token-usage.d.ts +5 -0
- package/dist/utils/ai/token-usage.d.ts.map +1 -1
- package/dist/utils/ai/token-usage.js +37 -0
- package/dist/utils/ai/token-usage.js.map +1 -1
- package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
- package/dist/utils/conversation/conversation-event-handler.js +23 -1
- package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
- package/dist/utils/settings-command.d.ts.map +1 -1
- package/dist/utils/settings-command.js +0 -5
- package/dist/utils/settings-command.js.map +1 -1
- package/dist/utils/streaming/streaming-session-factory.d.ts +7 -0
- package/dist/utils/streaming/streaming-session-factory.d.ts.map +1 -1
- package/dist/utils/streaming/streaming-session-factory.js +65 -9
- package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
- package/dist/utils/streaming/streaming-speed-tracker.d.ts +125 -0
- package/dist/utils/streaming/streaming-speed-tracker.d.ts.map +1 -0
- package/dist/utils/streaming/streaming-speed-tracker.js +265 -0
- package/dist/utils/streaming/streaming-speed-tracker.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { truncatePreview } from '../subagents/utils.js';
|
|
2
|
+
import { BACKGROUND_SHELL_QUIET_AFTER_MS, BACKGROUND_SUBAGENT_QUIET_AFTER_MS, normalizeBackgroundTaskActivity, } from '../background-task-activity.js';
|
|
2
3
|
const DEFAULT_TICK_MS = 30_000;
|
|
3
4
|
function checkInKey(target) {
|
|
4
5
|
return `${target.kind}:${target.id}`;
|
|
@@ -6,7 +7,7 @@ function checkInKey(target) {
|
|
|
6
7
|
function taskTarget(task) {
|
|
7
8
|
return task.kind === 'shell' ? { kind: 'shell', id: task.jobId } : { kind: 'subagent', id: task.runId };
|
|
8
9
|
}
|
|
9
|
-
function taskDetails(task, deps) {
|
|
10
|
+
function taskDetails(task, deps, now) {
|
|
10
11
|
if (task.kind === 'shell') {
|
|
11
12
|
const job = deps.getShellJob?.(task.jobId);
|
|
12
13
|
const rawTail = deps.getShellOutputTail?.(task.jobId, 400)?.trim();
|
|
@@ -15,6 +16,18 @@ function taskDetails(task, deps) {
|
|
|
15
16
|
kind: 'shell',
|
|
16
17
|
id: task.jobId,
|
|
17
18
|
command: task.command,
|
|
19
|
+
...(job?.lastObservation || job?.lastActivityAt !== undefined
|
|
20
|
+
? {
|
|
21
|
+
activity: normalizeBackgroundTaskActivity({
|
|
22
|
+
status: job?.status ?? task.status,
|
|
23
|
+
...(job?.lastObservation === undefined
|
|
24
|
+
? { lastActivityAt: job?.lastActivityAt }
|
|
25
|
+
: { lastObservation: job.lastObservation }),
|
|
26
|
+
now,
|
|
27
|
+
quietAfterMs: BACKGROUND_SHELL_QUIET_AFTER_MS,
|
|
28
|
+
}),
|
|
29
|
+
}
|
|
30
|
+
: {}),
|
|
18
31
|
...(job?.status ? { status: job.status } : {}),
|
|
19
32
|
...(job?.lastObservation ? { lastObservation: job.lastObservation } : {}),
|
|
20
33
|
...(outputTail ? { outputTail } : {}),
|
|
@@ -32,6 +45,26 @@ function taskDetails(task, deps) {
|
|
|
32
45
|
...(task.name !== undefined ? { name: task.name } : {}),
|
|
33
46
|
role: task.role,
|
|
34
47
|
task: task.task,
|
|
48
|
+
...(subagentStatus?.lastObservation || subagentStatus?.lastActivityAt !== undefined
|
|
49
|
+
? {
|
|
50
|
+
activity: normalizeBackgroundTaskActivity({
|
|
51
|
+
status: subagentStatus.status,
|
|
52
|
+
activityState: subagentStatus.status === 'awaiting_approval' || subagentStatus.status === 'waiting_for_answer'
|
|
53
|
+
? 'waiting'
|
|
54
|
+
: subagentStatus.activityState,
|
|
55
|
+
waitingReason: subagentStatus.status === 'awaiting_approval'
|
|
56
|
+
? 'approval'
|
|
57
|
+
: subagentStatus.status === 'waiting_for_answer'
|
|
58
|
+
? 'answer'
|
|
59
|
+
: subagentStatus.waitingReason,
|
|
60
|
+
...(subagentStatus.lastObservation === undefined
|
|
61
|
+
? { lastActivityAt: subagentStatus.lastActivityAt }
|
|
62
|
+
: { lastObservation: subagentStatus.lastObservation }),
|
|
63
|
+
now,
|
|
64
|
+
quietAfterMs: BACKGROUND_SUBAGENT_QUIET_AFTER_MS,
|
|
65
|
+
}),
|
|
66
|
+
}
|
|
67
|
+
: {}),
|
|
35
68
|
...(subagentStatus?.activityState ? { activityState: subagentStatus.activityState } : {}),
|
|
36
69
|
...(subagentStatus?.waitingReason ? { waitingReason: subagentStatus.waitingReason } : {}),
|
|
37
70
|
...(subagentStatus?.toolCounts && Object.keys(subagentStatus.toolCounts).length > 0
|
|
@@ -53,9 +86,9 @@ function taskDetails(task, deps) {
|
|
|
53
86
|
* notification pipeline (see docs/plans/background-work-control/agent-checkin.md).
|
|
54
87
|
*
|
|
55
88
|
* Owns no execution state of its own — `getRunningTasks` reads the unified
|
|
56
|
-
* task snapshot the notification store already maintains. Per-task due time
|
|
57
|
-
* and check-in count live only here, keyed by `${kind}:${id}`,
|
|
58
|
-
* dropped the moment a task leaves the running snapshot (settled or evicted),
|
|
89
|
+
* task snapshot the notification store already maintains. Per-task due time,
|
|
90
|
+
* policy overrides, and check-in count live only here, keyed by `${kind}:${id}`,
|
|
91
|
+
* and are dropped the moment a task leaves the running snapshot (settled or evicted),
|
|
59
92
|
* so a reused id after a task's lifecycle epoch bumps starts a fresh count.
|
|
60
93
|
*/
|
|
61
94
|
export class BackgroundCheckInScheduler {
|
|
@@ -69,6 +102,7 @@ export class BackgroundCheckInScheduler {
|
|
|
69
102
|
#clearInterval;
|
|
70
103
|
#timer;
|
|
71
104
|
#progress = new Map();
|
|
105
|
+
#policies = new Map();
|
|
72
106
|
constructor(deps) {
|
|
73
107
|
this.#getRunningTasks = deps.getRunningTasks;
|
|
74
108
|
this.#emit = deps.emit;
|
|
@@ -82,6 +116,63 @@ export class BackgroundCheckInScheduler {
|
|
|
82
116
|
this.#timer = setIntervalFn(() => this.tick(), deps.tickMs ?? DEFAULT_TICK_MS);
|
|
83
117
|
this.#timer.unref?.();
|
|
84
118
|
}
|
|
119
|
+
setTaskPolicy(target, policy) {
|
|
120
|
+
const key = checkInKey(target);
|
|
121
|
+
const existing = this.#policies.get(key) ?? {};
|
|
122
|
+
if (policy.enabled !== undefined)
|
|
123
|
+
existing.enabled = policy.enabled;
|
|
124
|
+
if (policy.intervalMs !== undefined)
|
|
125
|
+
existing.intervalMs = policy.intervalMs;
|
|
126
|
+
if (policy.nextDueAt !== undefined)
|
|
127
|
+
existing.nextDueAt = policy.nextDueAt;
|
|
128
|
+
this.#policies.set(key, existing);
|
|
129
|
+
}
|
|
130
|
+
getTaskPolicy(target) {
|
|
131
|
+
return this.#policies.get(checkInKey(target));
|
|
132
|
+
}
|
|
133
|
+
resolveTarget(targetNameOrId) {
|
|
134
|
+
const trimmed = targetNameOrId.trim();
|
|
135
|
+
if (!trimmed)
|
|
136
|
+
return undefined;
|
|
137
|
+
const running = this.#getRunningTasks().filter((t) => t.status === 'running');
|
|
138
|
+
for (const task of running) {
|
|
139
|
+
if (task.kind === 'shell' && task.jobId === trimmed) {
|
|
140
|
+
return { kind: 'shell', id: task.jobId };
|
|
141
|
+
}
|
|
142
|
+
if (task.kind === 'subagent') {
|
|
143
|
+
if (task.runId === trimmed || task.name === trimmed) {
|
|
144
|
+
return { kind: 'subagent', id: task.runId };
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
configureTaskCheckIn(targetNameOrId, options) {
|
|
151
|
+
const target = this.resolveTarget(targetNameOrId);
|
|
152
|
+
if (!target) {
|
|
153
|
+
return { ok: false, error: `No active running background task found matching "${targetNameOrId}".` };
|
|
154
|
+
}
|
|
155
|
+
const nextDueAt = options.nextDueInMs !== undefined ? this.#now() + options.nextDueInMs : undefined;
|
|
156
|
+
this.setTaskPolicy(target, {
|
|
157
|
+
enabled: options.enabled,
|
|
158
|
+
intervalMs: options.intervalMs,
|
|
159
|
+
nextDueAt,
|
|
160
|
+
});
|
|
161
|
+
const changes = [];
|
|
162
|
+
if (options.enabled !== undefined) {
|
|
163
|
+
changes.push(options.enabled ? 'check-ins enabled' : 'check-ins muted');
|
|
164
|
+
}
|
|
165
|
+
if (options.intervalMs !== undefined) {
|
|
166
|
+
changes.push(`interval set to ${Math.round(options.intervalMs / 1000)}s`);
|
|
167
|
+
}
|
|
168
|
+
if (options.nextDueInMs !== undefined) {
|
|
169
|
+
changes.push(`next check-in in ${Math.round(options.nextDueInMs / 1000)}s`);
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
ok: true,
|
|
173
|
+
message: `Check-in updated for ${target.kind} task "${target.id}": ${changes.join(', ')}.`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
85
176
|
/** Exposed for tests; production callers rely on the internal timer. */
|
|
86
177
|
tick() {
|
|
87
178
|
const settings = this.#getSettings();
|
|
@@ -91,20 +182,29 @@ export class BackgroundCheckInScheduler {
|
|
|
91
182
|
if (!liveKeys.has(key))
|
|
92
183
|
this.#progress.delete(key);
|
|
93
184
|
}
|
|
185
|
+
for (const key of this.#policies.keys()) {
|
|
186
|
+
if (!liveKeys.has(key))
|
|
187
|
+
this.#policies.delete(key);
|
|
188
|
+
}
|
|
94
189
|
if (!settings.enabled)
|
|
95
190
|
return;
|
|
96
191
|
const now = this.#now();
|
|
97
192
|
for (const task of runningTasks) {
|
|
98
193
|
const target = taskTarget(task);
|
|
99
194
|
const key = checkInKey(target);
|
|
195
|
+
const policy = this.#policies.get(key);
|
|
196
|
+
if (policy?.enabled === false)
|
|
197
|
+
continue;
|
|
100
198
|
const progress = this.#progress.get(key);
|
|
101
|
-
const
|
|
199
|
+
const interval = policy?.intervalMs ?? settings.intervalMs;
|
|
200
|
+
const dueAt = policy?.nextDueAt ?? (progress?.lastCheckInAt ?? task.startedAt) + interval;
|
|
102
201
|
if (now < dueAt)
|
|
103
202
|
continue;
|
|
104
203
|
const checkInIndex = (progress?.checkInCount ?? 0) + 1;
|
|
105
|
-
if (checkInIndex > settings.maxCheckInsPerTask)
|
|
106
|
-
continue;
|
|
107
204
|
this.#progress.set(key, { lastCheckInAt: now, checkInCount: checkInIndex });
|
|
205
|
+
if (policy?.nextDueAt !== undefined) {
|
|
206
|
+
policy.nextDueAt = undefined;
|
|
207
|
+
}
|
|
108
208
|
this.#emit({
|
|
109
209
|
type: 'background_check_in_due',
|
|
110
210
|
target,
|
|
@@ -114,7 +214,7 @@ export class BackgroundCheckInScheduler {
|
|
|
114
214
|
getSubagentStatus: this.#getSubagentStatus,
|
|
115
215
|
getShellJob: this.#getShellJob,
|
|
116
216
|
getShellOutputTail: this.#getShellOutputTail,
|
|
117
|
-
}),
|
|
217
|
+
}, now),
|
|
118
218
|
});
|
|
119
219
|
}
|
|
120
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-check-in-scheduler.js","sourceRoot":"","sources":["../../../source/services/session/background-check-in-scheduler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"background-check-in-scheduler.js","sourceRoot":"","sources":["../../../source/services/session/background-check-in-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-recovery-handler.d.ts","sourceRoot":"","sources":["../../../source/services/session/continuation-recovery-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"continuation-recovery-handler.d.ts","sourceRoot":"","sources":["../../../source/services/session/continuation-recovery-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,MAAM,+BAA+B,GAAG;IAC5C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,sBAAsB,CAAC;IACxC,cAAc,EAAE,iCAAiC,CAAC;IAClD,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEN,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,+BAA+B,EAAI;IAE/D,MAAM,CAAC,GAAG,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,iBAAiB,CAAC;KAC1B,GAAG,cAAc,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAqItE;CACF"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { classifyProviderFailure } from '../retry/provider-failure-classification.js';
|
|
2
|
+
import { skipsAutomaticReplayClaim } from '../retry/committed-tool-continuation.js';
|
|
1
3
|
export class ContinuationRecoveryHandler {
|
|
2
4
|
deps;
|
|
3
5
|
constructor(deps) {
|
|
@@ -7,10 +9,12 @@ export class ContinuationRecoveryHandler {
|
|
|
7
9
|
const { error, state } = ctx;
|
|
8
10
|
const maxTransientRetries = this.deps.resolveRetryLimit();
|
|
9
11
|
const retryStream = state.lastStream;
|
|
12
|
+
const committedToolContinuation = this.deps.toolTracker.inspectCommittedToolContinuation?.();
|
|
10
13
|
const classified = this.deps.retryClassifier.classify({
|
|
11
14
|
error,
|
|
12
15
|
retryCounts: state.retryCounts,
|
|
13
16
|
stream: retryStream,
|
|
17
|
+
committedToolContinuation,
|
|
14
18
|
maxTransientRetries,
|
|
15
19
|
});
|
|
16
20
|
if (classified.kind === 'chain_recovery') {
|
|
@@ -19,6 +23,13 @@ export class ContinuationRecoveryHandler {
|
|
|
19
23
|
if (classified.kind === 'unrecoverable') {
|
|
20
24
|
return { kind: 'terminated' };
|
|
21
25
|
}
|
|
26
|
+
// model_retry (hallucination/parsing/behavior detection) has its own
|
|
27
|
+
// pre-existing maxModelRetries cap and must not draw against or be capped
|
|
28
|
+
// by the shared transport-recovery envelope; see the matching comment in
|
|
29
|
+
// initial-turn-recovery-handler.ts.
|
|
30
|
+
if (classified.kind === 'transient' || classified.kind === 'chain_recovery') {
|
|
31
|
+
state.recoveryBudget.noteRetryableFailure();
|
|
32
|
+
}
|
|
22
33
|
const presentation = this.deps.retryEventPresenter.present({
|
|
23
34
|
failure: classified,
|
|
24
35
|
maxTransientRetries,
|
|
@@ -49,6 +60,37 @@ export class ContinuationRecoveryHandler {
|
|
|
49
60
|
stream: retryStream,
|
|
50
61
|
};
|
|
51
62
|
const transientDelayMs = classified.kind === 'transient' || classified.kind === 'chain_recovery' ? classified.delayMs : undefined;
|
|
63
|
+
// Only retry_fresh draws against the automatic-replay budget; replay_turn
|
|
64
|
+
// comes exclusively from model_retry, excluded for the reason above.
|
|
65
|
+
if (plan.kind === 'retry_fresh' &&
|
|
66
|
+
((!skipsAutomaticReplayClaim(classified, committedToolContinuation) &&
|
|
67
|
+
!state.recoveryBudget.claimAutomaticReplay()) ||
|
|
68
|
+
!state.recoveryBudget.claimPhysicalAttempt())) {
|
|
69
|
+
// Refusing the plan must still settle open tool calls truthfully and
|
|
70
|
+
// clear the provider chain, exactly like an ordinary termination does --
|
|
71
|
+
// see the matching comment in initial-turn-recovery-handler.ts.
|
|
72
|
+
const terminateResult = this.deps.recoveryExecutor.apply({
|
|
73
|
+
plan: { kind: 'terminate', events: [] },
|
|
74
|
+
state: recoveryState,
|
|
75
|
+
retryCounts: state.retryCounts,
|
|
76
|
+
});
|
|
77
|
+
if (terminateResult.kind === 'terminated') {
|
|
78
|
+
for (const event of terminateResult.events) {
|
|
79
|
+
yield event;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const providerName = this.deps.provider ?? 'provider';
|
|
83
|
+
yield {
|
|
84
|
+
type: 'retry_exhausted',
|
|
85
|
+
provider: providerName,
|
|
86
|
+
errorKind: classifyProviderFailure(error).errorKind,
|
|
87
|
+
attempts: state.recoveryBudget.physicalAttempts,
|
|
88
|
+
maxAttempts: state.recoveryBudget.maxPhysicalAttempts,
|
|
89
|
+
message: `Could not reach ${providerName} after ${state.recoveryBudget.physicalAttempts} attempts. No model response was received.`,
|
|
90
|
+
canRetry: true,
|
|
91
|
+
};
|
|
92
|
+
return { kind: 'terminated' };
|
|
93
|
+
}
|
|
52
94
|
const recoveryResult = this.deps.recoveryExecutor.apply({
|
|
53
95
|
plan,
|
|
54
96
|
state: recoveryState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-recovery-handler.js","sourceRoot":"","sources":["../../../source/services/session/continuation-recovery-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"continuation-recovery-handler.js","sourceRoot":"","sources":["../../../source/services/session/continuation-recovery-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import type { GenerationToken } from '../generation-guard.js';
|
|
|
9
9
|
import type { PersistedAssistantTurnItem } from '../conversation/conversation-persistence-types.js';
|
|
10
10
|
import type { AssistantJournalItemLogEvent } from '../logging/conversation-log-events.js';
|
|
11
11
|
import type { AbortedApprovalContext } from '../approval/approval-state.js';
|
|
12
|
+
import { RetryRecoveryBudget } from '../retry/retry-recovery-budget.js';
|
|
12
13
|
export interface PreparedContinuation {
|
|
13
14
|
state: ContinuationHandle;
|
|
14
15
|
interruption: unknown;
|
|
@@ -52,7 +53,9 @@ export declare class ContinuationState {
|
|
|
52
53
|
retryCounts: RetryCounts;
|
|
53
54
|
lastStream: AgentStream | null;
|
|
54
55
|
currentResumePreviousResponseId: string | null | undefined;
|
|
55
|
-
|
|
56
|
+
/** Shared with the initial attempt that started this logical turn, when one exists. */
|
|
57
|
+
readonly recoveryBudget: RetryRecoveryBudget;
|
|
58
|
+
constructor(token: number, recoveryBudget?: RetryRecoveryBudget);
|
|
56
59
|
initializeFrom(prepared: PreparedContinuation, currentCallIds: string[]): void;
|
|
57
60
|
advanceFromPlan(nextState: ContinuationHandle, _nextInterruption: unknown, nextInputMode: 'delta' | 'full_history' | undefined, mergedEmittedIds: Set<string>, journalSnapshot: AssistantJournalItemLogEvent[], currentCallIds: string[]): void;
|
|
58
61
|
setLastStream(stream: AgentStream | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-state.d.ts","sourceRoot":"","sources":["../../../source/services/session/continuation-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AACpG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"continuation-state.d.ts","sourceRoot":"","sources":["../../../source/services/session/continuation-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RetryRecoveryBudget } from '../retry/retry-recovery-budget.js';
|
|
1
2
|
export class ContinuationState {
|
|
2
3
|
token;
|
|
3
4
|
currentState;
|
|
@@ -12,8 +13,11 @@ export class ContinuationState {
|
|
|
12
13
|
retryCounts;
|
|
13
14
|
lastStream;
|
|
14
15
|
currentResumePreviousResponseId;
|
|
15
|
-
|
|
16
|
+
/** Shared with the initial attempt that started this logical turn, when one exists. */
|
|
17
|
+
recoveryBudget;
|
|
18
|
+
constructor(token, recoveryBudget) {
|
|
16
19
|
this.token = token;
|
|
20
|
+
this.recoveryBudget = recoveryBudget ?? new RetryRecoveryBudget();
|
|
17
21
|
this.currentState = { kind: 'continuation' };
|
|
18
22
|
this.currentCallIds = [];
|
|
19
23
|
this.source = 'continueRunStream';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-state.js","sourceRoot":"","sources":["../../../source/services/session/continuation-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"continuation-state.js","sourceRoot":"","sources":["../../../source/services/session/continuation-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import type { RetryEventPresenter } from '../retry/retry-event-presenter.js';
|
|
|
10
10
|
import type { NextRunInstruction } from '../retry/retry-contracts.js';
|
|
11
11
|
import type { SessionInputPlanner } from './session-input-planner.js';
|
|
12
12
|
import type { TurnAttempt } from './turn-attempt.js';
|
|
13
|
+
import type { SessionToolTracker } from './session-tool-tracker.js';
|
|
13
14
|
export type InitialTurnRecoveryResult = {
|
|
14
15
|
kind: 'run';
|
|
15
16
|
instruction: NextRunInstruction;
|
|
@@ -32,6 +33,8 @@ export type InitialTurnRecoveryHandlerDeps = {
|
|
|
32
33
|
retryClassifier: DefaultRetryClassifier;
|
|
33
34
|
retryEventPresenter: RetryEventPresenter;
|
|
34
35
|
sessionId: string;
|
|
36
|
+
provider?: string;
|
|
37
|
+
toolTracker?: Pick<SessionToolTracker, 'inspectCommittedToolContinuation'>;
|
|
35
38
|
};
|
|
36
39
|
export declare class InitialTurnRecoveryHandler {
|
|
37
40
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initial-turn-recovery-handler.d.ts","sourceRoot":"","sources":["../../../source/services/session/initial-turn-recovery-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"initial-turn-recovery-handler.d.ts","sourceRoot":"","sources":["../../../source/services/session/initial-turn-recovery-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,6BAA6B,CAAC;AAIrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,kBAAkB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GACpG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,wBAAwB,EAAE,OAAO,CAAC;IAClC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,cAAc,EAAE,iCAAiC,CAAC;IAClD,eAAe,EAAE,sBAAsB,CAAC;IACxC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,kCAAkC,CAAC,CAAC;CAC5E,CAAC;AAEF,qBAAa,0BAA0B;;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,8BAA8B,EAAI;IAE9D,MAAM,CAAC,GAAG,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,WAAW,CAAC;QACrB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;KAC5B,GAAG,cAAc,CAAC,iBAAiB,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAsNrE;CAaF"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { describeError } from '../../utils/error-helpers.js';
|
|
2
|
+
import { classifyProviderFailure } from '../retry/provider-failure-classification.js';
|
|
3
|
+
import { isRetryRecoveryBudgetExhaustedError } from '../retry/retry-recovery-budget.js';
|
|
4
|
+
import { skipsAutomaticReplayClaim } from '../retry/committed-tool-continuation.js';
|
|
2
5
|
export class InitialTurnRecoveryHandler {
|
|
3
6
|
deps;
|
|
4
7
|
constructor(deps) {
|
|
@@ -9,10 +12,13 @@ export class InitialTurnRecoveryHandler {
|
|
|
9
12
|
if (!this.deps.generationGuard.isCurrent(attempt.token)) {
|
|
10
13
|
return { kind: 'stale' };
|
|
11
14
|
}
|
|
15
|
+
const committedToolContinuation = this.deps.toolTracker?.inspectCommittedToolContinuation();
|
|
12
16
|
let classified = this.deps.retryClassifier.classify({
|
|
13
17
|
error,
|
|
14
18
|
retryCounts: attempt.retryCounts,
|
|
15
19
|
stream,
|
|
20
|
+
hasCommittedOutput: attempt.modelEventSeen,
|
|
21
|
+
committedToolContinuation,
|
|
16
22
|
maxTransientRetries: attempt.maxTransientRetries,
|
|
17
23
|
maxModelRetries: attempt.maxModelRetries,
|
|
18
24
|
});
|
|
@@ -36,6 +42,12 @@ export class InitialTurnRecoveryHandler {
|
|
|
36
42
|
classified = { kind: 'unrecoverable' };
|
|
37
43
|
}
|
|
38
44
|
if (classified.kind === 'unrecoverable') {
|
|
45
|
+
const providerFailure = classifyProviderFailure(error);
|
|
46
|
+
const exhausted = !stream &&
|
|
47
|
+
(isRetryRecoveryBudgetExhaustedError(error) ||
|
|
48
|
+
(providerFailure.retryable &&
|
|
49
|
+
providerFailure.errorKind !== 'authentication' &&
|
|
50
|
+
providerFailure.errorKind !== 'cancelled'));
|
|
39
51
|
const droppedUserMessage = attempt.addedUserMessage && !stream
|
|
40
52
|
? { text: attempt.turn.text, imageCount: attempt.turn.images?.length ?? 0 }
|
|
41
53
|
: undefined;
|
|
@@ -64,6 +76,18 @@ export class InitialTurnRecoveryHandler {
|
|
|
64
76
|
for (const event of recoveryResult.events) {
|
|
65
77
|
yield event;
|
|
66
78
|
}
|
|
79
|
+
if (exhausted) {
|
|
80
|
+
const providerName = this.deps.provider ?? 'provider';
|
|
81
|
+
yield {
|
|
82
|
+
type: 'retry_exhausted',
|
|
83
|
+
provider: providerName,
|
|
84
|
+
errorKind: providerFailure.errorKind,
|
|
85
|
+
attempts: Math.max(1, attempt.retryCounts.transientRetryCount + 1),
|
|
86
|
+
maxAttempts: attempt.maxTransientRetries + 1,
|
|
87
|
+
message: `Could not reach ${providerName} after ${Math.max(1, attempt.retryCounts.transientRetryCount + 1)} attempts. No model response was received.`,
|
|
88
|
+
canRetry: true,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
67
91
|
yield {
|
|
68
92
|
type: 'error',
|
|
69
93
|
message: describeError(error),
|
|
@@ -92,6 +116,15 @@ export class InitialTurnRecoveryHandler {
|
|
|
92
116
|
if (classified.kind === 'chain_recovery') {
|
|
93
117
|
this.deps.breakChaining?.();
|
|
94
118
|
}
|
|
119
|
+
// model_retry (hallucination/parsing/behavior detection) is a distinct,
|
|
120
|
+
// pre-existing retry policy with its own maxModelRetries cap. It is not a
|
|
121
|
+
// provider transport failure, so it must not draw against or be capped by
|
|
122
|
+
// the shared transport-recovery envelope -- doing so silently truncated
|
|
123
|
+
// an established, independently-tested retry count (see the regression
|
|
124
|
+
// test this comment sits next to in initial-turn-recovery-handler.test.ts).
|
|
125
|
+
if (classified.kind === 'transient' || classified.kind === 'chain_recovery') {
|
|
126
|
+
attempt.recoveryBudget.noteRetryableFailure();
|
|
127
|
+
}
|
|
95
128
|
attempt.advanceRetry(this.deps.recoveryPolicy.nextRetryCounts(attempt.retryCounts, classified));
|
|
96
129
|
const plan = this.deps.recoveryPolicy.plan({
|
|
97
130
|
failure: classified,
|
|
@@ -106,6 +139,43 @@ export class InitialTurnRecoveryHandler {
|
|
|
106
139
|
addedUserMessage: attempt.addedUserMessage,
|
|
107
140
|
stream,
|
|
108
141
|
};
|
|
142
|
+
// Only retry_fresh (service_tier_fallback/transient/chain_recovery/
|
|
143
|
+
// transport_downgrade) draws against the automatic-replay budget.
|
|
144
|
+
// replay_turn is produced exclusively by model_retry, which is excluded
|
|
145
|
+
// for the same reason noted above.
|
|
146
|
+
if (plan.kind === 'retry_fresh' &&
|
|
147
|
+
((!skipsAutomaticReplayClaim(classified, committedToolContinuation) &&
|
|
148
|
+
!attempt.recoveryBudget.claimAutomaticReplay()) ||
|
|
149
|
+
!attempt.recoveryBudget.claimPhysicalAttempt())) {
|
|
150
|
+
// Refusing the plan must still go through the same settlement path a
|
|
151
|
+
// normal termination does -- open tool calls settle truthfully (not as
|
|
152
|
+
// blind failures), and the chain is cleared so the next turn cannot
|
|
153
|
+
// send a text-only continuation against a response still awaiting tool
|
|
154
|
+
// output. Returning 'terminated' directly here (the original bug)
|
|
155
|
+
// skipped all of that.
|
|
156
|
+
const terminateResult = this.deps.recoveryExecutor.apply({
|
|
157
|
+
plan: { kind: 'terminate', events: [] },
|
|
158
|
+
state: recoveryState,
|
|
159
|
+
retryCounts: attempt.retryCounts,
|
|
160
|
+
maxModelRetries: attempt.maxModelRetries,
|
|
161
|
+
});
|
|
162
|
+
if (terminateResult.kind === 'terminated') {
|
|
163
|
+
for (const event of terminateResult.events) {
|
|
164
|
+
yield event;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
yield {
|
|
168
|
+
type: 'retry_exhausted',
|
|
169
|
+
provider: this.deps.provider ?? 'provider',
|
|
170
|
+
errorKind: classifyProviderFailure(error).errorKind,
|
|
171
|
+
attempts: attempt.recoveryBudget.physicalAttempts,
|
|
172
|
+
maxAttempts: attempt.recoveryBudget.maxPhysicalAttempts,
|
|
173
|
+
message: `Could not reach ${this.deps.provider ?? 'provider'} after ${attempt.recoveryBudget.physicalAttempts} attempts. No model response was received.`,
|
|
174
|
+
canRetry: true,
|
|
175
|
+
};
|
|
176
|
+
this.#logFailure(error);
|
|
177
|
+
return { kind: 'terminated' };
|
|
178
|
+
}
|
|
109
179
|
const result = this.deps.recoveryExecutor.apply({
|
|
110
180
|
plan,
|
|
111
181
|
state: recoveryState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initial-turn-recovery-handler.js","sourceRoot":"","sources":["../../../source/services/session/initial-turn-recovery-handler.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"initial-turn-recovery-handler.js","sourceRoot":"","sources":["../../../source/services/session/initial-turn-recovery-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-composition.d.ts","sourceRoot":"","sources":["../../../source/services/session/session-composition.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-composition.d.ts","sourceRoot":"","sources":["../../../source/services/session/session-composition.ts"],"names":[],"mappings":"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"}
|