@qduc/term2 0.31.1 → 0.32.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/README.md +52 -370
- package/dist/agent.d.ts +2 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +11 -1
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts +3 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +44 -4
- package/dist/app.js.map +1 -1
- package/dist/build-info.json +2 -2
- package/dist/cli.js +13 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/goal-command.d.ts.map +1 -1
- package/dist/commands/goal-command.js +9 -8
- package/dist/commands/goal-command.js.map +1 -1
- package/dist/commands/retry-failed-turn-command.d.ts.map +1 -1
- package/dist/commands/retry-failed-turn-command.js +3 -4
- package/dist/commands/retry-failed-turn-command.js.map +1 -1
- package/dist/components/InputBox.js +16 -9
- package/dist/components/InputBox.js.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.js +6 -8
- package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
- package/dist/components/layout/BottomArea.d.ts.map +1 -1
- package/dist/components/layout/BottomArea.js +13 -11
- package/dist/components/layout/BottomArea.js.map +1 -1
- package/dist/components/message/MessageList.d.ts +3 -1
- package/dist/components/message/MessageList.d.ts.map +1 -1
- package/dist/components/message/MessageList.js +5 -2
- package/dist/components/message/MessageList.js.map +1 -1
- package/dist/components/message/SessionBoundary.d.ts +11 -0
- package/dist/components/message/SessionBoundary.d.ts.map +1 -0
- package/dist/components/message/SessionBoundary.js +22 -0
- package/dist/components/message/SessionBoundary.js.map +1 -0
- package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.js +22 -1
- package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
- package/dist/contracts/provider-input.d.ts +10 -0
- package/dist/contracts/provider-input.d.ts.map +1 -1
- package/dist/contracts/provider-input.js.map +1 -1
- package/dist/contracts/run-termination.d.ts +3 -1
- package/dist/contracts/run-termination.d.ts.map +1 -1
- package/dist/hooks/settings-completion-config.d.ts.map +1 -1
- package/dist/hooks/settings-completion-config.js +1 -0
- package/dist/hooks/settings-completion-config.js.map +1 -1
- package/dist/lib/agent-chat-service.d.ts +6 -0
- package/dist/lib/agent-chat-service.d.ts.map +1 -1
- package/dist/lib/agent-chat-service.js +29 -5
- package/dist/lib/agent-chat-service.js.map +1 -1
- package/dist/lib/agent-client.d.ts +6 -0
- package/dist/lib/agent-client.d.ts.map +1 -1
- package/dist/lib/agent-client.js +82 -24
- package/dist/lib/agent-client.js.map +1 -1
- package/dist/lib/agent-configuration.d.ts +7 -3
- package/dist/lib/agent-configuration.d.ts.map +1 -1
- package/dist/lib/agent-configuration.js +10 -4
- package/dist/lib/agent-configuration.js.map +1 -1
- package/dist/lib/agent-factory.d.ts.map +1 -1
- package/dist/lib/agent-factory.js +15 -4
- package/dist/lib/agent-factory.js.map +1 -1
- package/dist/non-interactive.d.ts +5 -0
- package/dist/non-interactive.d.ts.map +1 -1
- package/dist/non-interactive.js +63 -6
- package/dist/non-interactive.js.map +1 -1
- package/dist/prompts/durable-goal-context.d.ts.map +1 -1
- package/dist/prompts/durable-goal-context.js +12 -2
- package/dist/prompts/durable-goal-context.js.map +1 -1
- package/dist/prompts/durable-goal-context.ts +13 -2
- package/dist/providers/ai-sdk-openrouter.provider.js +3 -2
- package/dist/providers/ai-sdk-openrouter.provider.js.map +1 -1
- package/dist/providers/ai-sdk-streamed-model.d.ts.map +1 -1
- package/dist/providers/ai-sdk-streamed-model.js +12 -2
- package/dist/providers/ai-sdk-streamed-model.js.map +1 -1
- package/dist/providers/codex-responses-model.d.ts.map +1 -1
- package/dist/providers/codex-responses-model.js +35 -16
- package/dist/providers/codex-responses-model.js.map +1 -1
- package/dist/providers/openai-chat-completions-model.d.ts.map +1 -1
- package/dist/providers/openai-chat-completions-model.js +11 -3
- package/dist/providers/openai-chat-completions-model.js.map +1 -1
- package/dist/services/agent-runtime/application-run-loop.d.ts +34 -1
- package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
- package/dist/services/agent-runtime/application-run-loop.js +174 -33
- package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
- package/dist/services/agent-runtime/context-compaction/index.d.ts.map +1 -1
- package/dist/services/agent-runtime/context-compaction/index.js +65 -16
- package/dist/services/agent-runtime/context-compaction/index.js.map +1 -1
- package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts +7 -1
- package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts.map +1 -1
- package/dist/services/agent-runtime/context-compaction/local-context-compactor.js +115 -20
- package/dist/services/agent-runtime/context-compaction/local-context-compactor.js.map +1 -1
- package/dist/services/agent-runtime/model-context-policy.d.ts +21 -0
- package/dist/services/agent-runtime/model-context-policy.d.ts.map +1 -0
- package/dist/services/agent-runtime/model-context-policy.js +46 -0
- package/dist/services/agent-runtime/model-context-policy.js.map +1 -0
- package/dist/services/agent-runtime/request-input-limit.d.ts +31 -0
- package/dist/services/agent-runtime/request-input-limit.d.ts.map +1 -0
- package/dist/services/agent-runtime/request-input-limit.js +86 -0
- package/dist/services/agent-runtime/request-input-limit.js.map +1 -0
- package/dist/services/agent-runtime/run-budget.d.ts +3 -5
- package/dist/services/agent-runtime/run-budget.d.ts.map +1 -1
- package/dist/services/agent-runtime/run-budget.js.map +1 -1
- package/dist/services/agent-runtime/tool-call-execution.d.ts +24 -2
- package/dist/services/agent-runtime/tool-call-execution.d.ts.map +1 -1
- package/dist/services/agent-runtime/tool-call-execution.js +36 -6
- package/dist/services/agent-runtime/tool-call-execution.js.map +1 -1
- package/dist/services/agent-runtime/tool-invocation-context.d.ts +24 -12
- package/dist/services/agent-runtime/tool-invocation-context.d.ts.map +1 -1
- package/dist/services/agent-runtime/tool-invocation-context.js +38 -27
- package/dist/services/agent-runtime/tool-invocation-context.js.map +1 -1
- package/dist/services/approval/approval-replay.d.ts +15 -24
- package/dist/services/approval/approval-replay.d.ts.map +1 -1
- package/dist/services/approval/approval-replay.js +12 -30
- package/dist/services/approval/approval-replay.js.map +1 -1
- package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
- package/dist/services/approval/non-interactive-approval-policy.js +11 -0
- package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
- package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
- package/dist/services/approval/tool-approval-batch-coordinator.js +0 -5
- package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
- package/dist/services/conversation/conversation-checkpoint-provenance.d.ts.map +1 -1
- package/dist/services/conversation/conversation-checkpoint-provenance.js +10 -2
- package/dist/services/conversation/conversation-checkpoint-provenance.js.map +1 -1
- package/dist/services/conversation/conversation-events.d.ts +2 -0
- package/dist/services/conversation/conversation-events.d.ts.map +1 -1
- package/dist/services/conversation/conversation-events.js.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.d.ts +1 -1
- package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.js +14 -2
- package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
- package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
- package/dist/services/conversation/conversation-replay.js +78 -3
- package/dist/services/conversation/conversation-replay.js.map +1 -1
- package/dist/services/conversation/conversation-service.d.ts +2 -2
- package/dist/services/conversation/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation/conversation-service.js +5 -1
- package/dist/services/conversation/conversation-service.js.map +1 -1
- package/dist/services/conversation/conversation-state-projector.d.ts +1 -0
- package/dist/services/conversation/conversation-state-projector.d.ts.map +1 -1
- package/dist/services/conversation/conversation-state-projector.js +5 -1
- package/dist/services/conversation/conversation-state-projector.js.map +1 -1
- package/dist/services/conversation/durable-goal-stop-check.d.ts +141 -0
- package/dist/services/conversation/durable-goal-stop-check.d.ts.map +1 -0
- package/dist/services/conversation/durable-goal-stop-check.js +351 -0
- package/dist/services/conversation/durable-goal-stop-check.js.map +1 -0
- package/dist/services/conversation/durable-goal.d.ts +16 -1
- package/dist/services/conversation/durable-goal.d.ts.map +1 -1
- package/dist/services/conversation/durable-goal.js +8 -0
- package/dist/services/conversation/durable-goal.js.map +1 -1
- package/dist/services/conversation/local-checkpoint-projection.d.ts.map +1 -1
- package/dist/services/conversation/local-checkpoint-projection.js +12 -1
- package/dist/services/conversation/local-checkpoint-projection.js.map +1 -1
- package/dist/services/conversation/session-browser.d.ts +2 -0
- package/dist/services/conversation/session-browser.d.ts.map +1 -1
- package/dist/services/conversation/session-browser.js +23 -8
- package/dist/services/conversation/session-browser.js.map +1 -1
- package/dist/services/conversation/session-index/session-index-worker-client.d.ts +3 -0
- package/dist/services/conversation/session-index/session-index-worker-client.d.ts.map +1 -1
- package/dist/services/conversation/session-index/session-index-worker-client.js +6 -1
- package/dist/services/conversation/session-index/session-index-worker-client.js.map +1 -1
- package/dist/services/conversation/session-index/session-index-worker.d.ts +16 -1
- package/dist/services/conversation/session-index/session-index-worker.d.ts.map +1 -1
- package/dist/services/conversation/session-index/session-index-worker.js +16 -0
- package/dist/services/conversation/session-index/session-index-worker.js.map +1 -1
- package/dist/services/conversation-agent-client.d.ts +1 -0
- package/dist/services/conversation-agent-client.d.ts.map +1 -1
- package/dist/services/logging/conversation-log-events.d.ts +7 -0
- package/dist/services/logging/conversation-log-events.d.ts.map +1 -1
- package/dist/services/logging/conversation-log-events.js.map +1 -1
- package/dist/services/retry/retry-classifier.d.ts.map +1 -1
- package/dist/services/retry/retry-classifier.js +2 -1
- package/dist/services/retry/retry-classifier.js.map +1 -1
- package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
- package/dist/services/retry/retry-error-classification.js +1 -0
- package/dist/services/retry/retry-error-classification.js.map +1 -1
- package/dist/services/service-interfaces.d.ts +2 -0
- package/dist/services/service-interfaces.d.ts.map +1 -1
- package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
- package/dist/services/session/initial-turn-recovery-handler.js +6 -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 +7 -5
- package/dist/services/session/session-composition.js.map +1 -1
- package/dist/services/session/session-manager.d.ts +2 -0
- package/dist/services/session/session-manager.d.ts.map +1 -1
- package/dist/services/session/session-manager.js +10 -0
- package/dist/services/session/session-manager.js.map +1 -1
- package/dist/services/session/session-stream-processor.d.ts.map +1 -1
- package/dist/services/session/session-stream-processor.js +11 -0
- package/dist/services/session/session-stream-processor.js.map +1 -1
- package/dist/services/session/session-tool-tracker.d.ts +18 -1
- package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
- package/dist/services/session/session-tool-tracker.js +38 -1
- 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-workflow.d.ts.map +1 -1
- package/dist/services/session/turn-workflow.js +3 -0
- package/dist/services/session/turn-workflow.js.map +1 -1
- package/dist/services/settings/settings-env.d.ts.map +1 -1
- package/dist/services/settings/settings-env.js +6 -0
- package/dist/services/settings/settings-env.js.map +1 -1
- package/dist/services/settings/settings-persistence.d.ts +2 -1
- package/dist/services/settings/settings-persistence.d.ts.map +1 -1
- package/dist/services/settings/settings-persistence.js +1 -1
- package/dist/services/settings/settings-persistence.js.map +1 -1
- package/dist/services/settings/settings-schema.d.ts +7 -1
- package/dist/services/settings/settings-schema.d.ts.map +1 -1
- package/dist/services/settings/settings-schema.js +17 -6
- package/dist/services/settings/settings-schema.js.map +1 -1
- package/dist/services/settings/settings-service.d.ts +3 -0
- package/dist/services/settings/settings-service.d.ts.map +1 -1
- package/dist/services/settings/settings-service.js +74 -31
- package/dist/services/settings/settings-service.js.map +1 -1
- package/dist/services/settings/settings-sources.d.ts +1 -0
- package/dist/services/settings/settings-sources.d.ts.map +1 -1
- package/dist/services/settings/settings-sources.js +1 -0
- package/dist/services/settings/settings-sources.js.map +1 -1
- package/dist/services/settings/settings-ui-metadata.js +1 -1
- package/dist/services/settings/settings-ui-metadata.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 +1 -0
- 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 +16 -3
- 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 +3 -2
- package/dist/services/subagents/nested-runner.js.map +1 -1
- package/dist/services/tool-execution-ledger.d.ts +22 -0
- package/dist/services/tool-execution-ledger.d.ts.map +1 -1
- package/dist/services/tool-execution-ledger.js +40 -3
- package/dist/services/tool-execution-ledger.js.map +1 -1
- package/dist/services/workflow-evolution/cli.d.ts +2 -0
- package/dist/services/workflow-evolution/cli.d.ts.map +1 -0
- package/dist/services/workflow-evolution/cli.js +26 -0
- package/dist/services/workflow-evolution/cli.js.map +1 -0
- package/dist/services/workflow-evolution/demo.d.ts +18 -0
- package/dist/services/workflow-evolution/demo.d.ts.map +1 -0
- package/dist/services/workflow-evolution/demo.js +177 -0
- package/dist/services/workflow-evolution/demo.js.map +1 -0
- package/dist/services/workflow-evolution/experiment.d.ts +304 -0
- package/dist/services/workflow-evolution/experiment.d.ts.map +1 -0
- package/dist/services/workflow-evolution/experiment.js +251 -0
- package/dist/services/workflow-evolution/experiment.js.map +1 -0
- package/dist/services/workflow-evolution/ledger.d.ts +5 -0
- package/dist/services/workflow-evolution/ledger.d.ts.map +1 -0
- package/dist/services/workflow-evolution/ledger.js +57 -0
- package/dist/services/workflow-evolution/ledger.js.map +1 -0
- package/dist/skins/rail/status.d.ts.map +1 -1
- package/dist/skins/rail/status.js +21 -11
- package/dist/skins/rail/status.js.map +1 -1
- package/dist/tools/agent/goal-check.d.ts +23 -0
- package/dist/tools/agent/goal-check.d.ts.map +1 -0
- package/dist/tools/agent/goal-check.js +79 -0
- package/dist/tools/agent/goal-check.js.map +1 -0
- package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -1
- package/dist/tools/system/run-code/run-code-runtime.js +3 -1
- package/dist/tools/system/run-code/run-code-runtime.js.map +1 -1
- package/dist/tools/tool-names.d.ts +1 -0
- package/dist/tools/tool-names.d.ts.map +1 -1
- package/dist/tools/tool-names.js +1 -0
- package/dist/tools/tool-names.js.map +1 -1
- package/dist/tools/types.d.ts +21 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +7 -0
- package/dist/tools/types.js.map +1 -1
- package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
- package/dist/utils/conversation/conversation-event-handler.js +7 -1
- package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
- package/dist/utils/output/text-snippet.js +25 -33
- package/dist/utils/output/text-snippet.js.map +1 -1
- package/dist/utils/streaming/extract-command-messages.d.ts +2 -0
- package/dist/utils/streaming/extract-command-messages.d.ts.map +1 -1
- package/dist/utils/streaming/extract-command-messages.js +4 -0
- package/dist/utils/streaming/extract-command-messages.js.map +1 -1
- package/dist/utils/value-suggestions.d.ts.map +1 -1
- package/dist/utils/value-suggestions.js +1 -0
- package/dist/utils/value-suggestions.js.map +1 -1
- package/package.json +3 -5
- package/dist/prompts/durable-goal-context.test.ts +0 -56
- package/dist/prompts/explorer-delegation-contract.test.ts +0 -44
- package/dist/prompts/memory-recall-notice.test.ts +0 -50
- package/dist/prompts/orchestrator-prompt.test.ts +0 -111
- package/dist/prompts/prefix-quality.test.ts +0 -115
- package/dist/prompts/prompt-constructor.test.ts +0 -423
- package/dist/prompts/prompt-profiles.test.ts +0 -22
- package/dist/prompts/reasoning-efficiency.test.ts +0 -12
- package/dist/prompts/search-via-shell.test.ts +0 -69
- package/dist/prompts/steering-notice.test.ts +0 -36
- package/dist/prompts/subagent-delegation.test.ts +0 -112
- package/dist/prompts/subagents/worker-prompt.test.ts +0 -54
- package/dist/prompts/unified-gpt-prompt.test.ts +0 -53
|
@@ -1,8 +1,19 @@
|
|
|
1
|
+
import { getCatalogModel } from '../providers/model-catalog/catalog.js';
|
|
2
|
+
import { resolveOutputAllocation } from '../services/agent-runtime/model-context-policy.js';
|
|
1
3
|
import { ApplicationRunLoop } from '../services/agent-runtime/application-run-loop.js';
|
|
2
4
|
import { getProvider } from '../providers/index.js';
|
|
3
5
|
import { fetchModels, getModelDefaultReasoningLevel, getProviderDefaultReasoningLevel, } from '../services/model-service.js';
|
|
4
6
|
import { selectAgentStreamItems } from '../services/agent-stream.js';
|
|
5
7
|
import { normalizeUsage } from '../utils/ai/token-usage.js';
|
|
8
|
+
/** A failed dispatched helper still owns its request accounting. */
|
|
9
|
+
export class AgentChatFailure extends Error {
|
|
10
|
+
costRecords;
|
|
11
|
+
constructor(costRecords, cause) {
|
|
12
|
+
super(cause instanceof Error ? cause.message : String(cause), { cause });
|
|
13
|
+
this.costRecords = costRecords;
|
|
14
|
+
this.name = cause instanceof Error ? cause.name : 'AgentChatFailure';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
6
17
|
/**
|
|
7
18
|
* Owns the simple chat and structured chat (chatJson) methods extracted from
|
|
8
19
|
* AgentClient. Uses the same `#runAgentWithProvider` and `#extractResponse`
|
|
@@ -70,8 +81,15 @@ export class AgentChatService {
|
|
|
70
81
|
const loop = new ApplicationRunLoop({ resolveModel: () => this.#getModel(providerId, agent.model) });
|
|
71
82
|
this.#activeRunLoops.add(loop);
|
|
72
83
|
try {
|
|
73
|
-
const stream = loop.startStream(agent, input, options);
|
|
74
|
-
|
|
84
|
+
const stream = loop.startStream(agent, input, { ...options, providerId });
|
|
85
|
+
try {
|
|
86
|
+
await stream.completed;
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (stream.runCostRecords?.length)
|
|
90
|
+
throw new AgentChatFailure(stream.runCostRecords, error);
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
75
93
|
return stream;
|
|
76
94
|
}
|
|
77
95
|
finally {
|
|
@@ -112,7 +130,7 @@ export class AgentChatService {
|
|
|
112
130
|
if (tempProvider === 'codex' && isDefaultSetting) {
|
|
113
131
|
try {
|
|
114
132
|
await fetchModels({ settingsService: settings, loggingService: logger }, 'codex');
|
|
115
|
-
agentConfig.refreshAgent();
|
|
133
|
+
agentConfig.refreshAgent({ configurationChanged: false });
|
|
116
134
|
}
|
|
117
135
|
catch (_err) {
|
|
118
136
|
// ignore
|
|
@@ -131,7 +149,12 @@ export class AgentChatService {
|
|
|
131
149
|
if (options.model || options.reasoningEffort || options.instructions || options.provider) {
|
|
132
150
|
const modelSettings = {
|
|
133
151
|
retry: { maxRetries: settings.get('agent.retryAttempts') ?? 2 },
|
|
134
|
-
|
|
152
|
+
maxRequestInputTokens: settings.get('agent.maxRequestInputTokens'),
|
|
153
|
+
maxStreamOutputChars: settings.get('agent.maxStreamOutputChars'),
|
|
154
|
+
maxModelRequestDurationMs: settings.get('agent.maxModelRequestDurationMs'),
|
|
155
|
+
maxModelStreamIdleMs: settings.get('agent.maxModelStreamIdleMs'),
|
|
156
|
+
maxTokens: options.maxTokens ??
|
|
157
|
+
resolveOutputAllocation(getCatalogModel(tempProvider, tempModel), settings.get('agent.maxOutputTokens'), settings.getSource?.('agent.maxOutputTokens') === 'default'),
|
|
135
158
|
};
|
|
136
159
|
let effectiveEffort = tempEffort;
|
|
137
160
|
if (isDefaultSetting && (!effectiveEffort || effectiveEffort === 'default')) {
|
|
@@ -159,6 +182,7 @@ export class AgentChatService {
|
|
|
159
182
|
}
|
|
160
183
|
const result = await this.#runAgentWithProvider(tempProvider, agentForChat, message, {
|
|
161
184
|
maxTurns: 1, // Chat is usually single turn
|
|
185
|
+
signal: options.signal,
|
|
162
186
|
});
|
|
163
187
|
const usage = normalizeUsage(result.runUsage);
|
|
164
188
|
return {
|
|
@@ -187,7 +211,7 @@ export class AgentChatService {
|
|
|
187
211
|
if (tempProvider === 'codex' && isDefaultSetting) {
|
|
188
212
|
try {
|
|
189
213
|
await fetchModels({ settingsService: settings, loggingService: logger }, 'codex');
|
|
190
|
-
agentConfig.refreshAgent();
|
|
214
|
+
agentConfig.refreshAgent({ configurationChanged: false });
|
|
191
215
|
}
|
|
192
216
|
catch (_err) {
|
|
193
217
|
// ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat-service.js","sourceRoot":"","sources":["../../source/lib/agent-chat-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,mDAAmD,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,OAAO,EACL,WAAW,EACX,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-chat-service.js","sourceRoot":"","sources":["../../source/lib/agent-chat-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,12 @@ export declare class AgentClient {
|
|
|
74
74
|
logger: ILoggingService;
|
|
75
75
|
settings: ISettingsService;
|
|
76
76
|
getGoal?: () => DurableGoal | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* Persist a goal that a recorded achieved `goal_check` closed at the stop
|
|
79
|
+
* seam. Root clients only: transient clients have no goal source, so no
|
|
80
|
+
* stop policy and no write.
|
|
81
|
+
*/
|
|
82
|
+
onGoalAchieved?: (goal: DurableGoal) => void;
|
|
77
83
|
/** Interactive-only goal proposal callbacks; absent in non-interactive/gateway sessions. */
|
|
78
84
|
proposeGoal?: {
|
|
79
85
|
appendGoal: (goal: DurableGoal) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../../source/lib/agent-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../../source/lib/agent-client.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/agent-client.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
import { isProviderContextOverflow, ProviderContextOverflowError, } from '../services/agent-runtime/request-input-limit.js';
|
|
2
|
+
import { resolveModelContextPolicy, resolveRequestOutput } from '../services/agent-runtime/model-context-policy.js';
|
|
1
3
|
import { normalizeApplicationInput, } from '../services/agent-runtime/application-run-loop.js';
|
|
2
4
|
import { readRunBudgetPolicy } from '../services/agent-runtime/run-budget.js';
|
|
3
5
|
import { AskUserAnswerStore } from './ask-user-answer-store.js';
|
|
4
6
|
import { AgentConfiguration } from './agent-configuration.js';
|
|
5
7
|
import { SubagentBridge } from './subagent-bridge.js';
|
|
6
8
|
import { ToolInterceptorRegistry } from './tool-interceptor-registry.js';
|
|
7
|
-
import { AgentChatService } from './agent-chat-service.js';
|
|
9
|
+
import { AgentChatService, AgentChatFailure } from './agent-chat-service.js';
|
|
8
10
|
import { ShellChildRegistry } from '../utils/shell/shell-child-registry.js';
|
|
9
11
|
import { getProvider } from '../providers/index.js';
|
|
10
12
|
import { ApplicationRunLoop } from '../services/agent-runtime/application-run-loop.js';
|
|
13
|
+
import { createGoalStopPolicy } from '../services/conversation/durable-goal-stop-check.js';
|
|
11
14
|
import { randomUUID } from 'node:crypto';
|
|
12
15
|
import { fetchModels } from '../services/model-service.js';
|
|
13
16
|
import { prepareOpenAIRequestPrefixBinding, runWithOpenAIRequestPrefixBindingScope, } from '../providers/openai-request-prefix-binding.js';
|
|
@@ -18,7 +21,7 @@ import { CONTEXT_COMPACTION_INSTRUCTIONS } from '../prompts/context-compaction.j
|
|
|
18
21
|
import { getCatalogModel } from '../providers/model-catalog/catalog.js';
|
|
19
22
|
import { supportsContextCompactionModel } from '../providers/openai-responses-model.js';
|
|
20
23
|
import { isCodexCompactionIncompatible } from '../providers/codex-compact.js';
|
|
21
|
-
import { estimateContext,
|
|
24
|
+
import { estimateContext, rearmAtTokens, shouldDeferAutomaticCompaction, } from '../services/agent-runtime/context-compaction/index.js';
|
|
22
25
|
import { projectConversationMessage } from '../services/conversation/conversation-message-projection.js';
|
|
23
26
|
import { isLocalContextSummary } from '../contracts/provider-input.js';
|
|
24
27
|
import { classifyProviderFailure } from '../services/retry/provider-failure-classification.js';
|
|
@@ -68,6 +71,7 @@ export class AgentClient {
|
|
|
68
71
|
#chatService;
|
|
69
72
|
#logger;
|
|
70
73
|
#settings;
|
|
74
|
+
#onGoalAchieved;
|
|
71
75
|
#sessionContextService;
|
|
72
76
|
#requestCapture;
|
|
73
77
|
#providerRegistry;
|
|
@@ -147,18 +151,28 @@ export class AgentClient {
|
|
|
147
151
|
}
|
|
148
152
|
async #compactCodexHistory(input) {
|
|
149
153
|
const catalog = getCatalogModel('codex', input.model);
|
|
150
|
-
const
|
|
154
|
+
const inputCeiling = this.#settings.get('agent.maxRequestInputTokens');
|
|
155
|
+
const policy = resolveModelContextPolicy({
|
|
151
156
|
contextWindow: catalog?.contextWindow,
|
|
152
|
-
|
|
153
|
-
|
|
157
|
+
maxOutputTokens: resolveRequestOutput(catalog, this.#agentConfig.getApplicationAgent().modelSettings?.maxTokens),
|
|
158
|
+
inputLimit: inputCeiling,
|
|
159
|
+
ratio: this.#settings.get('agent.contextCompaction.compactThreshold') ?? 0.8,
|
|
160
|
+
rawTrigger: this.#settings.get('agent.contextCompaction.compactThresholdTokens'),
|
|
154
161
|
});
|
|
162
|
+
const threshold = { available: policy.softTrigger !== undefined, effectiveThreshold: policy.softTrigger ?? 0 };
|
|
155
163
|
const estimate = estimateContext({
|
|
156
164
|
history: input.history,
|
|
165
|
+
instructions: input.instructions,
|
|
166
|
+
tools: input.tools,
|
|
157
167
|
contextWindow: catalog?.contextWindow,
|
|
158
|
-
maxOutputTokens: catalog?.maxTokens,
|
|
168
|
+
maxOutputTokens: resolveRequestOutput(catalog, this.#agentConfig.getApplicationAgent().modelSettings?.maxTokens),
|
|
159
169
|
});
|
|
160
170
|
const measuredInputTokens = Math.max(input.lastCompletedInputTokens ?? 0, estimate.renderedInputTokens);
|
|
161
171
|
if (!input.manual) {
|
|
172
|
+
// Native replacement has no portable growth checkpoint. Preserve its
|
|
173
|
+
// existing one-successful-replacement-per-run policy; local checkpoints rearm by growth.
|
|
174
|
+
if (input.automaticCompactionsThisRun >= 1)
|
|
175
|
+
return { kind: 'unchanged' };
|
|
162
176
|
if (!threshold.available || measuredInputTokens < threshold.effectiveThreshold) {
|
|
163
177
|
this.#logger.debug('Codex native compaction threshold not reached', {
|
|
164
178
|
model: input.model,
|
|
@@ -202,6 +216,8 @@ export class AgentClient {
|
|
|
202
216
|
catch (error) {
|
|
203
217
|
if (input.signal?.aborted)
|
|
204
218
|
throw error;
|
|
219
|
+
if (isProviderContextOverflow(error))
|
|
220
|
+
throw new ProviderContextOverflowError(error);
|
|
205
221
|
const nativeUnavailable = isCodexCompactionIncompatible(error);
|
|
206
222
|
if (nativeUnavailable)
|
|
207
223
|
this.#unavailableCodexCompaction.add(streamed);
|
|
@@ -220,7 +236,7 @@ export class AgentClient {
|
|
|
220
236
|
if (!enabled)
|
|
221
237
|
return undefined;
|
|
222
238
|
return {
|
|
223
|
-
compact: async ({ history, automaticCompactionsThisRun, lastCompletedInputTokens, signal, onStarted, }) => {
|
|
239
|
+
compact: async ({ history, instructions, tools, recordCostRecords, automaticCompactionsThisRun, lastCompletedInputTokens, signal, onStarted, }) => {
|
|
224
240
|
const mode = this.#settings.get('agent.contextCompaction.mode') ?? 'native';
|
|
225
241
|
const provider = this.#agentConfig.getProvider();
|
|
226
242
|
const model = this.#agentConfig.getModel();
|
|
@@ -232,6 +248,8 @@ export class AgentClient {
|
|
|
232
248
|
if (provider === 'codex' && mode !== 'local') {
|
|
233
249
|
const native = await this.#compactCodexHistory({
|
|
234
250
|
history,
|
|
251
|
+
instructions,
|
|
252
|
+
tools,
|
|
235
253
|
model,
|
|
236
254
|
automaticCompactionsThisRun,
|
|
237
255
|
lastCompletedInputTokens,
|
|
@@ -244,23 +262,38 @@ export class AgentClient {
|
|
|
244
262
|
// Auto was explicitly selected. Keep the existing local safe-cut and
|
|
245
263
|
// opaque-history checks; a rejected native call never discards history.
|
|
246
264
|
}
|
|
265
|
+
const inputCeiling = this.#settings.get('agent.maxRequestInputTokens');
|
|
266
|
+
const boundaryEstimate = estimateContext({ history, instructions, tools });
|
|
267
|
+
// Inline native compaction owns its opaque state. Its trigger is bounded
|
|
268
|
+
// by admission in auto mode; never replace ciphertext with a guessed summary.
|
|
247
269
|
if (mode === 'native' || (mode === 'auto' && openaiInlineNative))
|
|
248
270
|
return { kind: 'unchanged' };
|
|
249
|
-
const configuredMaxOutput = this.#
|
|
271
|
+
const configuredMaxOutput = resolveRequestOutput(catalog, this.#agentConfig.getApplicationAgent().modelSettings?.maxTokens);
|
|
250
272
|
let started = false;
|
|
251
273
|
const compactor = new LocalContextCompactor({
|
|
252
|
-
generate: async ({ renderedInput, maxOutputTokens }) => {
|
|
274
|
+
generate: async ({ renderedInput, maxOutputTokens, signal: summarySignal }) => {
|
|
253
275
|
if (!started) {
|
|
254
276
|
started = true;
|
|
255
277
|
onStarted(provider);
|
|
256
278
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
279
|
+
let result;
|
|
280
|
+
try {
|
|
281
|
+
result = await this.#chatService.chatDetailed(renderedInput, {
|
|
282
|
+
provider,
|
|
283
|
+
model,
|
|
284
|
+
reasoningEffort,
|
|
285
|
+
instructions: CONTEXT_COMPACTION_INSTRUCTIONS,
|
|
286
|
+
maxTokens: maxOutputTokens,
|
|
287
|
+
signal: summarySignal,
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
catch (error) {
|
|
291
|
+
if (error instanceof AgentChatFailure && error.costRecords.length)
|
|
292
|
+
recordCostRecords?.(error.costRecords);
|
|
293
|
+
throw error;
|
|
294
|
+
}
|
|
295
|
+
if (result.costRecords?.length && recordCostRecords && !recordCostRecords(result.costRecords))
|
|
296
|
+
throw new Error('Run budget exhausted while reducing context; original history retained.');
|
|
264
297
|
return {
|
|
265
298
|
text: result.text,
|
|
266
299
|
usage: result.usage
|
|
@@ -288,13 +321,14 @@ export class AgentClient {
|
|
|
288
321
|
try {
|
|
289
322
|
outcome = await compactor.compactAtBoundary({
|
|
290
323
|
history,
|
|
324
|
+
instructions,
|
|
325
|
+
tools,
|
|
326
|
+
maxRequestInputTokens: inputCeiling,
|
|
291
327
|
provider,
|
|
292
328
|
model,
|
|
293
329
|
sourceRevision: 0,
|
|
294
330
|
contextWindow: catalog?.contextWindow,
|
|
295
|
-
maxOutputTokens: configuredMaxOutput
|
|
296
|
-
? catalog?.maxTokens
|
|
297
|
-
: Math.min(configuredMaxOutput, catalog?.maxTokens ?? configuredMaxOutput),
|
|
331
|
+
maxOutputTokens: configuredMaxOutput,
|
|
298
332
|
compactThreshold: this.#settings.get('agent.contextCompaction.compactThreshold') ?? 0.8,
|
|
299
333
|
compactThresholdTokens: this.#settings.get('agent.contextCompaction.compactThresholdTokens') ?? null,
|
|
300
334
|
manual: false,
|
|
@@ -307,6 +341,11 @@ export class AgentClient {
|
|
|
307
341
|
});
|
|
308
342
|
}
|
|
309
343
|
catch (error) {
|
|
344
|
+
if (signal?.aborted)
|
|
345
|
+
throw error;
|
|
346
|
+
if (isProviderContextOverflow(error))
|
|
347
|
+
throw new ProviderContextOverflowError(error);
|
|
348
|
+
this.#blockedCompactionRearmAtEstimatedTokens = rearmAtTokens(boundaryEstimate.renderedInputTokens, inputCeiling ?? catalog?.contextWindow ?? 64_000);
|
|
310
349
|
this.#logger.warn('Automatic local context compaction failed; continuing with uncompacted history', {
|
|
311
350
|
provider,
|
|
312
351
|
model,
|
|
@@ -316,7 +355,12 @@ export class AgentClient {
|
|
|
316
355
|
}
|
|
317
356
|
if (outcome.kind === 'blocked' &&
|
|
318
357
|
(outcome.reason === 'single_turn_too_large' || outcome.reason === 'result_still_too_large')) {
|
|
319
|
-
|
|
358
|
+
return {
|
|
359
|
+
kind: 'failed',
|
|
360
|
+
provider,
|
|
361
|
+
costRecords: outcome.costRecords,
|
|
362
|
+
error: new ContextCompactionHardFitError(outcome.reason),
|
|
363
|
+
};
|
|
320
364
|
}
|
|
321
365
|
if (outcome.kind !== 'compacted') {
|
|
322
366
|
// A blocked outcome leaves context growing, so it must be visible in
|
|
@@ -336,11 +380,13 @@ export class AgentClient {
|
|
|
336
380
|
if (outcome.reason === 'no_complete_cold_turn') {
|
|
337
381
|
return {
|
|
338
382
|
kind: 'unchanged',
|
|
339
|
-
notice: 'Local compaction cannot shorten this history yet: it
|
|
383
|
+
notice: 'Local compaction cannot shorten this history yet: it needs an older completed turn or settled tool rounds and preserves all user requests. ' +
|
|
340
384
|
'Continue the current work; keep outputs concise and save durable progress. If session_rollover is available, consider it at a safe idle boundary; live background work survives rollover, so do not wait for it solely to rotate. Do not repeat completed work or manufacture user turns to force compaction.',
|
|
341
385
|
};
|
|
342
386
|
}
|
|
343
387
|
}
|
|
388
|
+
if (outcome.kind === 'blocked' && outcome.costRecords?.length)
|
|
389
|
+
return { kind: 'failed', provider, costRecords: outcome.costRecords };
|
|
344
390
|
return { kind: 'unchanged' };
|
|
345
391
|
}
|
|
346
392
|
this.#blockedCompactionRearmAtEstimatedTokens = undefined;
|
|
@@ -385,7 +431,7 @@ export class AgentClient {
|
|
|
385
431
|
instructions: agent.resolveInstructionsForRequest?.() ?? agent.instructions,
|
|
386
432
|
tools: agent.tools,
|
|
387
433
|
contextWindow: catalog?.contextWindow,
|
|
388
|
-
maxOutputTokens: catalog?.maxTokens,
|
|
434
|
+
maxOutputTokens: resolveRequestOutput(catalog, this.#agentConfig.getApplicationAgent().modelSettings?.maxTokens),
|
|
389
435
|
});
|
|
390
436
|
const measuredHardFitTokens = estimate.hardFitTokens + Math.max(0, (lastCompletedInputTokens ?? 0) - estimate.renderedInputTokens);
|
|
391
437
|
const canSafelyDeferCompaction = catalog?.contextWindow !== undefined && measuredHardFitTokens <= catalog.contextWindow;
|
|
@@ -485,6 +531,7 @@ export class AgentClient {
|
|
|
485
531
|
this.#logger = deps.logger;
|
|
486
532
|
this.#toolInterceptorRegistry = new ToolInterceptorRegistry({ logger: this.#logger });
|
|
487
533
|
this.#settings = deps.settings;
|
|
534
|
+
this.#onGoalAchieved = deps.onGoalAchieved;
|
|
488
535
|
this.#sessionContextService = deps.sessionContextService;
|
|
489
536
|
this.#providerRegistry = deps.providerRegistry;
|
|
490
537
|
this.#toolLifecycle = toolLifecycle;
|
|
@@ -731,6 +778,11 @@ export class AgentClient {
|
|
|
731
778
|
const policy = readRunBudgetPolicy(this.#settings);
|
|
732
779
|
return { ...policy, turnBackstop: Math.min(policy.turnBackstop, this.#maxTurns) };
|
|
733
780
|
}
|
|
781
|
+
/** Root-only active-goal stop check; transient clients never receive one. */
|
|
782
|
+
#goalStopCheck() {
|
|
783
|
+
const getGoal = this.#agentConfig.goalSource;
|
|
784
|
+
return getGoal ? createGoalStopPolicy(getGoal, this.#onGoalAchieved) : undefined;
|
|
785
|
+
}
|
|
734
786
|
/** Grant one finite extension to the active run-budget envelope. */
|
|
735
787
|
grantRunBudgetExtension() {
|
|
736
788
|
return this.#applicationRunLoop.grantRunBudgetExtension();
|
|
@@ -942,7 +994,7 @@ export class AgentClient {
|
|
|
942
994
|
await fetchModels({ settingsService: this.#settings, loggingService: this.#logger, signal }, 'codex');
|
|
943
995
|
if (signal.aborted)
|
|
944
996
|
throw Object.assign(new Error('Operation aborted'), { name: 'AbortError' });
|
|
945
|
-
this.#agentConfig.refreshAgent();
|
|
997
|
+
this.#agentConfig.refreshAgent({ configurationChanged: false });
|
|
946
998
|
agentRefreshed = true;
|
|
947
999
|
}
|
|
948
1000
|
catch {
|
|
@@ -953,7 +1005,7 @@ export class AgentClient {
|
|
|
953
1005
|
throw Object.assign(new Error('Operation aborted'), { name: 'AbortError' });
|
|
954
1006
|
const isFirstMessage = !options.previousResponseId && (!Array.isArray(userInput) || (userInput.length > 0 && userInput.length <= 1));
|
|
955
1007
|
if (isFirstMessage && !agentRefreshed)
|
|
956
|
-
this.#agentConfig.refreshAgent();
|
|
1008
|
+
this.#agentConfig.refreshAgent({ configurationChanged: false });
|
|
957
1009
|
this.#currentCorrelationId = randomUUID();
|
|
958
1010
|
this.#logger.setCorrelationId(this.#currentCorrelationId);
|
|
959
1011
|
this.#logger.debug('Agent stream started', {
|
|
@@ -1086,8 +1138,10 @@ export class AgentClient {
|
|
|
1086
1138
|
const requestPreparation = this.#openAIRequestPreparation(options);
|
|
1087
1139
|
const boundaryCompaction = this.#boundaryCompaction();
|
|
1088
1140
|
const runBudget = this.#runBudgetPolicy();
|
|
1141
|
+
const goalStopCheck = this.#goalStopCheck();
|
|
1089
1142
|
const run = () => {
|
|
1090
1143
|
return this.#applicationRunLoop.startStream(agent, userInput, {
|
|
1144
|
+
requestInputLimit: () => this.#settings.get('agent.maxRequestInputTokens'),
|
|
1091
1145
|
...(boundaryCompaction ? { boundaryCompaction } : {}),
|
|
1092
1146
|
...(requestPreparation ? { requestPreparation } : {}),
|
|
1093
1147
|
...(supportsChaining && options.previousResponseId && !options.disableChainingForAttempt
|
|
@@ -1115,6 +1169,7 @@ export class AgentClient {
|
|
|
1115
1169
|
}
|
|
1116
1170
|
return this.#observeContextMilestones(history, onReminder, observation.lastCompletedInputTokens);
|
|
1117
1171
|
},
|
|
1172
|
+
...(goalStopCheck ? { onNormalStop: goalStopCheck } : {}),
|
|
1118
1173
|
});
|
|
1119
1174
|
};
|
|
1120
1175
|
const stream = run();
|
|
@@ -1139,7 +1194,9 @@ export class AgentClient {
|
|
|
1139
1194
|
const requestPreparation = this.#openAIRequestPreparation(options);
|
|
1140
1195
|
const boundaryCompaction = this.#boundaryCompaction();
|
|
1141
1196
|
const runBudget = this.#runBudgetPolicy();
|
|
1197
|
+
const goalStopCheck = this.#goalStopCheck();
|
|
1142
1198
|
const stream = this.#applicationRunLoop.continueRunStream(state, {
|
|
1199
|
+
requestInputLimit: () => this.#settings.get('agent.maxRequestInputTokens'),
|
|
1143
1200
|
...(boundaryCompaction ? { boundaryCompaction } : {}),
|
|
1144
1201
|
...(requestPreparation ? { requestPreparation } : {}),
|
|
1145
1202
|
...(supportsChaining && options.previousResponseId && !options.disableChainingForAttempt
|
|
@@ -1167,6 +1224,7 @@ export class AgentClient {
|
|
|
1167
1224
|
return this.#observeContextMilestones(history, onReminder, observation.lastCompletedInputTokens);
|
|
1168
1225
|
},
|
|
1169
1226
|
...(options.stopAfterApprovalResolution ? { stopAfterApprovalResolution: true } : {}),
|
|
1227
|
+
...(goalStopCheck ? { onNormalStop: goalStopCheck } : {}),
|
|
1170
1228
|
});
|
|
1171
1229
|
this.#observeCompletion(stream, state, provider, this.#agentConfig.getModel());
|
|
1172
1230
|
return stream;
|