@glbgpt/cli 0.2.3 → 0.2.4
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 +50 -4
- package/dist/src/coding/bashTool.js +27 -11
- package/dist/src/coding/bashTool.js.map +1 -1
- package/dist/src/coding/deliveryCheck.d.ts +7 -0
- package/dist/src/coding/deliveryCheck.js +143 -0
- package/dist/src/coding/deliveryCheck.js.map +1 -0
- package/dist/src/coding/permissionGate.d.ts +6 -0
- package/dist/src/coding/permissionGate.js +8 -2
- package/dist/src/coding/permissionGate.js.map +1 -1
- package/dist/src/coding/projectContext.js +11 -1
- package/dist/src/coding/projectContext.js.map +1 -1
- package/dist/src/commands/configCommand.js +9 -3
- package/dist/src/commands/configCommand.js.map +1 -1
- package/dist/src/commands/execCommand.js +18 -1
- package/dist/src/commands/execCommand.js.map +1 -1
- package/dist/src/config/configFile.d.ts +4 -0
- package/dist/src/config/configFile.js +4 -0
- package/dist/src/config/configFile.js.map +1 -1
- package/dist/src/core/compaction.d.ts +6 -1
- package/dist/src/core/compaction.js +23 -5
- package/dist/src/core/compaction.js.map +1 -1
- package/dist/src/core/httpChatBackend.js +72 -20
- package/dist/src/core/httpChatBackend.js.map +1 -1
- package/dist/src/core/progressGuard.d.ts +16 -0
- package/dist/src/core/progressGuard.js +197 -0
- package/dist/src/core/progressGuard.js.map +1 -0
- package/dist/src/core/runChat.d.ts +8 -0
- package/dist/src/core/runChat.js +23 -5
- package/dist/src/core/runChat.js.map +1 -1
- package/dist/src/core/tokenBudget.d.ts +45 -0
- package/dist/src/core/tokenBudget.js +111 -0
- package/dist/src/core/tokenBudget.js.map +1 -0
- package/dist/src/core/turnLoop.d.ts +7 -1
- package/dist/src/core/turnLoop.js +108 -44
- package/dist/src/core/turnLoop.js.map +1 -1
- package/dist/src/core/types.d.ts +21 -0
- package/dist/src/exec/output.d.ts +6 -0
- package/dist/src/exec/output.js +26 -11
- package/dist/src/exec/output.js.map +1 -1
- package/dist/src/tui/App.js +7 -3
- package/dist/src/tui/App.js.map +1 -1
- package/dist/src/tui/chatController.d.ts +11 -1
- package/dist/src/tui/chatController.js +91 -15
- package/dist/src/tui/chatController.js.map +1 -1
- package/dist/src/tui/run.js +1 -0
- package/dist/src/tui/run.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execCommand.js","sourceRoot":"","sources":["../../../src/commands/execCommand.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"execCommand.js","sourceRoot":"","sources":["../../../src/commands/execCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,10 @@ export declare const CONFIG_KEYS: {
|
|
|
31
31
|
readonly env: "GLBGPT_MAX_TOOL_CALLS";
|
|
32
32
|
readonly help: "Maximum tool calls per chat turn (0–1000); default 40; 0 disables tool calls; not a credit limit";
|
|
33
33
|
};
|
|
34
|
+
readonly 'max-turn-tokens': {
|
|
35
|
+
readonly env: "GLBGPT_MAX_TURN_TOKENS";
|
|
36
|
+
readonly help: "Cumulative chat tokens per turn (1000–10000000); default 200000; pauses further requests; estimates missing usage; not a credit limit";
|
|
37
|
+
};
|
|
34
38
|
readonly 'update-check': {
|
|
35
39
|
readonly env: "GLBGPT_UPDATE_CHECK";
|
|
36
40
|
readonly help: "Set to \"false\" to disable the startup check for newer published versions";
|
|
@@ -26,6 +26,10 @@ export const CONFIG_KEYS = {
|
|
|
26
26
|
env: 'GLBGPT_MAX_TOOL_CALLS',
|
|
27
27
|
help: 'Maximum tool calls per chat turn (0–1000); default 40; 0 disables tool calls; not a credit limit',
|
|
28
28
|
},
|
|
29
|
+
'max-turn-tokens': {
|
|
30
|
+
env: 'GLBGPT_MAX_TURN_TOKENS',
|
|
31
|
+
help: 'Cumulative chat tokens per turn (1000–10000000); default 200000; pauses further requests; estimates missing usage; not a credit limit',
|
|
32
|
+
},
|
|
29
33
|
'update-check': {
|
|
30
34
|
env: 'GLBGPT_UPDATE_CHECK',
|
|
31
35
|
help: 'Set to "false" to disable the startup check for newer published versions',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configFile.js","sourceRoot":"","sources":["../../../src/config/configFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;GAMG;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,cAAc,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,4CAA4C,EAAE;IAC9F,cAAc,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,qCAAqC,EAAE;IACtF,IAAI,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,sCAAsC,EAAE;IAC1E,iBAAiB,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,mFAAmF;KAC1F;IACD,aAAa,EAAE;QACb,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,6GAA6G;KACpH;IACD,gBAAgB,EAAE;QAChB,GAAG,EAAE,uBAAuB;QAC5B,IAAI,EAAE,kGAAkG;KACzG;IACD,cAAc,EAAE;QACd,GAAG,EAAE,qBAAqB;QAC1B,IAAI,EAAE,0EAA0E;KACjF;CACO,CAAC;AAIX,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,IAAI;IACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QAC1D,MAAM,GAAG,GAAuC,EAAE,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAgB,EAAE,CAAC;YAC1D,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAW,CAAC;QACxE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,kBAAkB,CAAC,GAAc;IAC/C,OAAO,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAc,EAAE,KAAyB;IAC9E,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC"}
|
|
1
|
+
{"version":3,"file":"configFile.js","sourceRoot":"","sources":["../../../src/config/configFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;GAMG;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,cAAc,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,4CAA4C,EAAE;IAC9F,cAAc,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,qCAAqC,EAAE;IACtF,IAAI,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,sCAAsC,EAAE;IAC1E,iBAAiB,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,mFAAmF;KAC1F;IACD,aAAa,EAAE;QACb,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,6GAA6G;KACpH;IACD,gBAAgB,EAAE;QAChB,GAAG,EAAE,uBAAuB;QAC5B,IAAI,EAAE,kGAAkG;KACzG;IACD,iBAAiB,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,uIAAuI;KAC9I;IACD,cAAc,EAAE;QACd,GAAG,EAAE,qBAAqB;QAC1B,IAAI,EAAE,0EAA0E;KACjF;CACO,CAAC;AAIX,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,IAAI;IACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QAC1D,MAAM,GAAG,GAAuC,EAAE,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAgB,EAAE,CAAC;YAC1D,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAW,CAAC;QACxE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,kBAAkB,CAAC,GAAc;IAC/C,OAAO,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAc,EAAE,KAAyB;IAC9E,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { TurnTokenBudget } from './tokenBudget.js';
|
|
2
|
+
import type { EngineEvent } from './types.js';
|
|
1
3
|
import type { ChatBackend, ChatMessage } from './types.js';
|
|
2
4
|
/**
|
|
3
5
|
* Context compaction (spec lineage: pi B1 blueprint, 2026-08-08 调研; implemented
|
|
@@ -48,5 +50,8 @@ export declare function applyCompaction(messages: ChatMessage[], c: CompactionSt
|
|
|
48
50
|
* Summarize `toSummarize` (which already embeds any prior summary note via the
|
|
49
51
|
* projection) with a plain, tool-less model call. Returns the summary text.
|
|
50
52
|
*/
|
|
51
|
-
export declare function summarizeForCompaction(backend: ChatBackend, model: string, toSummarize: ChatMessage[], signal?: AbortSignal
|
|
53
|
+
export declare function summarizeForCompaction(backend: ChatBackend, model: string, toSummarize: ChatMessage[], signal?: AbortSignal, protection?: {
|
|
54
|
+
budget: TurnTokenBudget;
|
|
55
|
+
emit: (event: EngineEvent) => void;
|
|
56
|
+
}): Promise<string>;
|
|
52
57
|
export declare function isContextOverflowError(message: string): boolean;
|
|
@@ -107,7 +107,7 @@ const SUMMARIZE_SYSTEM = 'You summarize a conversation so it can continue seamle
|
|
|
107
107
|
* Summarize `toSummarize` (which already embeds any prior summary note via the
|
|
108
108
|
* projection) with a plain, tool-less model call. Returns the summary text.
|
|
109
109
|
*/
|
|
110
|
-
export async function summarizeForCompaction(backend, model, toSummarize, signal) {
|
|
110
|
+
export async function summarizeForCompaction(backend, model, toSummarize, signal, protection) {
|
|
111
111
|
const req = {
|
|
112
112
|
model,
|
|
113
113
|
messages: [
|
|
@@ -120,11 +120,29 @@ export async function summarizeForCompaction(backend, model, toSummarize, signal
|
|
|
120
120
|
],
|
|
121
121
|
stream: true,
|
|
122
122
|
};
|
|
123
|
+
if (protection && !protection.budget.preflight(req).allowed) {
|
|
124
|
+
throw new Error('Compaction skipped: the summary request exceeds the remaining turn token budget.');
|
|
125
|
+
}
|
|
123
126
|
let text = '';
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
127
|
+
let usage;
|
|
128
|
+
try {
|
|
129
|
+
for await (const chunk of backend.stream(req, signal)) {
|
|
130
|
+
if (chunk.usage)
|
|
131
|
+
usage = chunk.usage;
|
|
132
|
+
const t = chunk.choices?.[0]?.delta?.content;
|
|
133
|
+
if (typeof t === 'string')
|
|
134
|
+
text += t;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
if (protection) {
|
|
139
|
+
const snapshot = protection.budget.recordCall(req, { content: text }, usage);
|
|
140
|
+
if (usage)
|
|
141
|
+
protection.emit({ type: 'usage', promptTokens: usage.prompt_tokens ?? 0, completionTokens: usage.completion_tokens ?? 0 });
|
|
142
|
+
protection.emit({ type: 'token_budget', ...snapshot });
|
|
143
|
+
if (protection.budget.takeWarning())
|
|
144
|
+
protection.emit({ type: 'notice', message: "Context compaction has used at least 80% of this turn's token budget. Further requests will be checked against the remaining budget." });
|
|
145
|
+
}
|
|
128
146
|
}
|
|
129
147
|
const trimmed = text.trim();
|
|
130
148
|
if (trimmed.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../../src/core/compaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../../src/core/compaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,14 +95,18 @@ export class HttpChatBackend {
|
|
|
95
95
|
// Business error path: the gateway returns HTTP 200 + a JSON body with a `code`
|
|
96
96
|
// (401 expired/invalid, 402 payment) — never trust the HTTP status.
|
|
97
97
|
const text = await res.text();
|
|
98
|
-
let
|
|
98
|
+
let parsed;
|
|
99
99
|
try {
|
|
100
|
-
|
|
100
|
+
parsed = JSON.parse(text);
|
|
101
101
|
}
|
|
102
102
|
catch {
|
|
103
103
|
/* non-JSON */
|
|
104
104
|
}
|
|
105
|
-
|
|
105
|
+
const body = asObject(parsed);
|
|
106
|
+
const usage = body && errorUsage(body);
|
|
107
|
+
if (usage)
|
|
108
|
+
yield usage;
|
|
109
|
+
throw payloadError(body) ?? businessError(undefined, nonEmptyString(body?.message) ?? (text || `status ${res.status}`));
|
|
106
110
|
}
|
|
107
111
|
if (!res.body) {
|
|
108
112
|
throw new Error('Chat response has no body');
|
|
@@ -115,14 +119,18 @@ export class HttpChatBackend {
|
|
|
115
119
|
while ((idx = buffer.indexOf('\n')) >= 0) {
|
|
116
120
|
const line = buffer.slice(0, idx).trim();
|
|
117
121
|
buffer = buffer.slice(idx + 1);
|
|
118
|
-
const
|
|
119
|
-
if (chunk)
|
|
120
|
-
yield chunk;
|
|
122
|
+
const parsed = parseSseLine(line);
|
|
123
|
+
if (parsed?.chunk)
|
|
124
|
+
yield parsed.chunk;
|
|
125
|
+
if (parsed?.error)
|
|
126
|
+
throw parsed.error;
|
|
121
127
|
}
|
|
122
128
|
}
|
|
123
129
|
const tail = parseSseLine(buffer.trim());
|
|
124
|
-
if (tail)
|
|
125
|
-
yield tail;
|
|
130
|
+
if (tail?.chunk)
|
|
131
|
+
yield tail.chunk;
|
|
132
|
+
if (tail?.error)
|
|
133
|
+
throw tail.error;
|
|
126
134
|
}
|
|
127
135
|
}
|
|
128
136
|
/** The `message` of a gateway 5xx JSON body, when it has one (never throws; empty on non-JSON/no body). */
|
|
@@ -131,8 +139,8 @@ async function upstreamBrief(res) {
|
|
|
131
139
|
const text = typeof res.text === 'function' ? await res.text() : '';
|
|
132
140
|
if (!text)
|
|
133
141
|
return '';
|
|
134
|
-
const body = JSON.parse(text);
|
|
135
|
-
return
|
|
142
|
+
const body = asObject(JSON.parse(text));
|
|
143
|
+
return nonEmptyString(body?.message) ?? providerErrorMessage(body?.error) ?? '';
|
|
136
144
|
}
|
|
137
145
|
catch {
|
|
138
146
|
return '';
|
|
@@ -160,11 +168,8 @@ function businessError(code, message, data) {
|
|
|
160
168
|
return new Error(`Chat request failed: ${message}`);
|
|
161
169
|
}
|
|
162
170
|
/**
|
|
163
|
-
* Parse one SSE line
|
|
164
|
-
*
|
|
165
|
-
* The gateway can also reject WITHIN the stream: an `event: error` frame whose data is
|
|
166
|
-
* `{code, message}` with no `choices` (e.g. a model outside the backend whitelist). Silently
|
|
167
|
-
* ignoring it would make the turn complete with no output at all, so it throws instead.
|
|
171
|
+
* Parse one SSE data line. Errors can accompany choices/usage; return their usage separately
|
|
172
|
+
* so the caller can emit it before throwing, without treating an error as normal completion.
|
|
168
173
|
*/
|
|
169
174
|
function parseSseLine(line) {
|
|
170
175
|
if (!line.startsWith('data:'))
|
|
@@ -179,11 +184,58 @@ function parseSseLine(line) {
|
|
|
179
184
|
catch {
|
|
180
185
|
return null;
|
|
181
186
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
187
|
+
const body = asObject(parsed);
|
|
188
|
+
if (!body)
|
|
189
|
+
return null;
|
|
190
|
+
const error = payloadError(body);
|
|
191
|
+
return error ? { chunk: errorUsage(body), error } : { chunk: body };
|
|
192
|
+
}
|
|
193
|
+
function payloadError(body) {
|
|
194
|
+
if (!body)
|
|
195
|
+
return undefined;
|
|
196
|
+
if (typeof body.code === 'number' &&
|
|
197
|
+
(body.code >= 400 || (body.choices === undefined && body.usage === undefined))) {
|
|
198
|
+
// Preserve the gateway's actionable login/payment/rate-limit messages.
|
|
199
|
+
return businessError(body.code, nonEmptyString(body.message) ?? `code ${body.code}`, asObject(body.data));
|
|
200
|
+
}
|
|
201
|
+
const failedResponse = body.type === 'response.failed';
|
|
202
|
+
const providerError = body.error ?? (failedResponse ? asObject(body.response)?.error : undefined);
|
|
203
|
+
if (asObject(providerError) || nonEmptyString(providerError) || failedResponse || body.type === 'error') {
|
|
204
|
+
// Provider codes describe an upstream failure, not the user's GlobalGPT login or balance.
|
|
205
|
+
return businessError(undefined, providerErrorMessage(providerError) ?? nonEmptyString(body.message) ??
|
|
206
|
+
'The model provider reported an error.');
|
|
186
207
|
}
|
|
187
|
-
return
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
function errorUsage(body) {
|
|
211
|
+
const usage = asObject(body.usage) ?? asObject(asObject(body.response)?.usage);
|
|
212
|
+
if (!usage)
|
|
213
|
+
return undefined;
|
|
214
|
+
const prompt = usage.prompt_tokens ?? usage.input_tokens;
|
|
215
|
+
const completion = usage.completion_tokens ?? usage.output_tokens;
|
|
216
|
+
const valid = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
|
|
217
|
+
if (!valid(prompt) && !valid(completion))
|
|
218
|
+
return undefined;
|
|
219
|
+
return {
|
|
220
|
+
choices: [],
|
|
221
|
+
usage: {
|
|
222
|
+
...(valid(prompt) ? { prompt_tokens: prompt } : {}),
|
|
223
|
+
...(valid(completion) ? { completion_tokens: completion } : {}),
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
function providerErrorMessage(value) {
|
|
228
|
+
const plain = nonEmptyString(value);
|
|
229
|
+
if (plain)
|
|
230
|
+
return plain;
|
|
231
|
+
const error = asObject(value);
|
|
232
|
+
return nonEmptyString(error?.message) ?? nonEmptyString(error?.type) ?? nonEmptyString(error?.code);
|
|
233
|
+
}
|
|
234
|
+
function asObject(value) {
|
|
235
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
236
|
+
? value : undefined;
|
|
237
|
+
}
|
|
238
|
+
function nonEmptyString(value) {
|
|
239
|
+
return typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
188
240
|
}
|
|
189
241
|
//# sourceMappingURL=httpChatBackend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpChatBackend.js","sourceRoot":"","sources":["../../../src/core/httpChatBackend.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"httpChatBackend.js","sourceRoot":"","sources":["../../../src/core/httpChatBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ProgressNotice {
|
|
2
|
+
kind: 'warning' | 'pause';
|
|
3
|
+
message: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Per-turn evidence of repetition, not a judgment that the overall task is solved.
|
|
7
|
+
* Unrelated reads/planning do not erase a stalled operation. A changed result resets
|
|
8
|
+
* that operation; a successful new file mutation makes earlier observations stale.
|
|
9
|
+
* Store only bounded maps of hashes, never complete commands or tool output.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ProgressGuard {
|
|
12
|
+
private readonly observations;
|
|
13
|
+
private readonly mutations;
|
|
14
|
+
observe(name: string, rawArgs: string, result: Record<string, unknown>): ProgressNotice | undefined;
|
|
15
|
+
private record;
|
|
16
|
+
}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
const WARN_AT = 3;
|
|
3
|
+
const PAUSE_AT = 5;
|
|
4
|
+
const MAX_TRACKED_OPERATIONS = 256;
|
|
5
|
+
const MUTATION_TOOLS = new Set(['write_file', 'edit_file', 'bash_kill']);
|
|
6
|
+
const NOTICE_FIELDS = new Set(['repeated_call_notice', 'progress_notice', 'context_pruning_notice']);
|
|
7
|
+
/**
|
|
8
|
+
* Per-turn evidence of repetition, not a judgment that the overall task is solved.
|
|
9
|
+
* Unrelated reads/planning do not erase a stalled operation. A changed result resets
|
|
10
|
+
* that operation; a successful new file mutation makes earlier observations stale.
|
|
11
|
+
* Store only bounded maps of hashes, never complete commands or tool output.
|
|
12
|
+
*/
|
|
13
|
+
export class ProgressGuard {
|
|
14
|
+
observations = new Map();
|
|
15
|
+
mutations = new Map();
|
|
16
|
+
observe(name, rawArgs, result) {
|
|
17
|
+
const args = parseArguments(rawArgs);
|
|
18
|
+
if (name === 'update_plan' || isRunningPoll(name, args, result))
|
|
19
|
+
return;
|
|
20
|
+
const argumentHash = fingerprint(args);
|
|
21
|
+
const substantive = Object.fromEntries(Object.entries(result).filter(([key]) => !NOTICE_FIELDS.has(key)));
|
|
22
|
+
const resultHash = fingerprint(substantive);
|
|
23
|
+
if (!argumentHash || !resultHash)
|
|
24
|
+
return; // Unserializable/deep values cannot be compared safely.
|
|
25
|
+
const failed = typeof result.error === 'string' || result.cancelled === true;
|
|
26
|
+
if (!failed && MUTATION_TOOLS.has(name)) {
|
|
27
|
+
// A write following an edit to the same file is new progress even when it
|
|
28
|
+
// restores an earlier payload. Compare with the latest mutation of that
|
|
29
|
+
// target, rather than the last invocation of each mutation tool.
|
|
30
|
+
const target = fingerprint(name === 'bash_kill'
|
|
31
|
+
? { kind: 'task', task_id: args.task_id }
|
|
32
|
+
: { kind: 'file', path: args.path });
|
|
33
|
+
const mutation = `${name}:${argumentHash}`;
|
|
34
|
+
if (target && this.mutations.get(target) !== mutation) {
|
|
35
|
+
this.observations.clear();
|
|
36
|
+
remember(this.mutations, target, mutation);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
let notice = this.record(`call:${fingerprint(name)}:${argumentHash}`, resultHash, name, 'same arguments and result', evidence(result));
|
|
40
|
+
if (name === 'bash' && typeof args.command === 'string') {
|
|
41
|
+
const scope = bashScope(args.command);
|
|
42
|
+
if (scope) {
|
|
43
|
+
const key = `bash-error:${scope}`;
|
|
44
|
+
if (typeof result.error === 'string' && result.error.trim()) {
|
|
45
|
+
const diagnostic = bashDiagnostic(result.error);
|
|
46
|
+
const diagnosticHash = fingerprint({ diagnostic, exit_code: result.exit_code, signal: result.signal });
|
|
47
|
+
if (diagnosticHash) {
|
|
48
|
+
const failure = this.record(key, diagnosticHash, name, 'same failure for the same command target', diagnostic);
|
|
49
|
+
if (failure && (!notice || failure.kind === 'pause'))
|
|
50
|
+
notice = failure;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else if (!failed) {
|
|
54
|
+
this.observations.delete(key);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return notice;
|
|
59
|
+
}
|
|
60
|
+
record(key, result, name, detail, sample) {
|
|
61
|
+
const prior = this.observations.get(key);
|
|
62
|
+
const count = prior?.result === result ? prior.count + 1 : 1;
|
|
63
|
+
remember(this.observations, key, { result, count });
|
|
64
|
+
if (count !== WARN_AT && count !== PAUSE_AT)
|
|
65
|
+
return;
|
|
66
|
+
const kind = count === PAUSE_AT ? 'pause' : 'warning';
|
|
67
|
+
return {
|
|
68
|
+
kind,
|
|
69
|
+
message: `${shortText(name)} has returned the ${detail} ${count} times without observable progress` +
|
|
70
|
+
`${sample ? `: ${shortText(sample)}` : '.'} ` +
|
|
71
|
+
(kind === 'pause'
|
|
72
|
+
? 'Further tool calls are paused so you can review the blocker and unfinished work.'
|
|
73
|
+
: 'Change the approach before trying again; two more unchanged results will pause this turn.'),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function remember(map, key, value) {
|
|
78
|
+
map.delete(key);
|
|
79
|
+
map.set(key, value);
|
|
80
|
+
if (map.size > MAX_TRACKED_OPERATIONS)
|
|
81
|
+
map.delete(map.keys().next().value);
|
|
82
|
+
}
|
|
83
|
+
function parseArguments(raw) {
|
|
84
|
+
try {
|
|
85
|
+
const parsed = JSON.parse(raw || '{}');
|
|
86
|
+
if (parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed))
|
|
87
|
+
return parsed;
|
|
88
|
+
}
|
|
89
|
+
catch { /* Invalid JSON can still repeat; preserve its identity below. */ }
|
|
90
|
+
return { unparsed_arguments: raw };
|
|
91
|
+
}
|
|
92
|
+
/** Hash all string bytes, including long output tails, without retaining/serializing a second copy. */
|
|
93
|
+
function fingerprint(value) {
|
|
94
|
+
const hash = createHash('sha256');
|
|
95
|
+
const seen = new WeakSet();
|
|
96
|
+
let nodes = 0;
|
|
97
|
+
const visit = (item, depth) => {
|
|
98
|
+
if (++nodes > 20_000 || depth > 64)
|
|
99
|
+
throw new Error('Fingerprint limit');
|
|
100
|
+
if (item === null) {
|
|
101
|
+
hash.update('null;');
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (typeof item !== 'object') {
|
|
105
|
+
const text = String(item);
|
|
106
|
+
hash.update(`${typeof item}:${Buffer.byteLength(text)}:`).update(text).update(';');
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (seen.has(item))
|
|
110
|
+
throw new Error('Cyclic result');
|
|
111
|
+
seen.add(item);
|
|
112
|
+
if (Array.isArray(item)) {
|
|
113
|
+
hash.update('array[');
|
|
114
|
+
for (const child of item)
|
|
115
|
+
visit(child, depth + 1);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
const prototype = Object.getPrototypeOf(item);
|
|
119
|
+
if (prototype !== Object.prototype && prototype !== null)
|
|
120
|
+
throw new Error('Non-JSON result');
|
|
121
|
+
hash.update('object{');
|
|
122
|
+
for (const key of Object.keys(item).sort()) {
|
|
123
|
+
visit(key, depth + 1);
|
|
124
|
+
visit(item[key], depth + 1);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
hash.update('};');
|
|
128
|
+
seen.delete(item);
|
|
129
|
+
};
|
|
130
|
+
try {
|
|
131
|
+
visit(value, 0);
|
|
132
|
+
return hash.digest('hex');
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function isRunningPoll(name, args, result) {
|
|
139
|
+
if (typeof result.error === 'string' || result.cancelled === true || typeof args.task_id !== 'string')
|
|
140
|
+
return false;
|
|
141
|
+
if (name === 'bash_output') {
|
|
142
|
+
// The current bash_output contract appends this exact status line to its output.
|
|
143
|
+
return result.status === 'running' ||
|
|
144
|
+
(typeof result.output === 'string' && /(?:^|\n)Status: running\s*$/.test(result.output));
|
|
145
|
+
}
|
|
146
|
+
// Only the actual media polling tool is exempt, never generate_* submissions or
|
|
147
|
+
// arbitrary tools that happen to include a status/task_id field.
|
|
148
|
+
return name === 'glbgpt_check_task' && result.status === 'generating';
|
|
149
|
+
}
|
|
150
|
+
/** A stable execution target for Python retries; unrelated scripts retain separate histories. */
|
|
151
|
+
function bashScope(command) {
|
|
152
|
+
const firstLine = command.trim().split(/\r?\n/, 1)[0];
|
|
153
|
+
const tokens = firstLine.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g) ?? [];
|
|
154
|
+
const firstToken = tokens[0];
|
|
155
|
+
if (!firstToken)
|
|
156
|
+
return;
|
|
157
|
+
const executable = firstToken.split('/').at(-1) ?? '';
|
|
158
|
+
if (/^python(?:\d+(?:\.\d+)*)?$/.test(executable)) {
|
|
159
|
+
// Keep interpreter flags/module/script selection, but not inline source or heredoc body.
|
|
160
|
+
const target = [firstToken];
|
|
161
|
+
for (const token of tokens.slice(1)) {
|
|
162
|
+
if (token === '-c' || token === '-' || token.startsWith('<<')) {
|
|
163
|
+
target.push(token === '-c' ? '-c' : 'stdin');
|
|
164
|
+
return fingerprint(target);
|
|
165
|
+
}
|
|
166
|
+
target.push(token);
|
|
167
|
+
if (!token.startsWith('-'))
|
|
168
|
+
return fingerprint(target);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// For other commands, only identical first command lines share an error history.
|
|
172
|
+
// Exact invocation/result tracking above still handles their ordinary repetitions.
|
|
173
|
+
return fingerprint(firstLine);
|
|
174
|
+
}
|
|
175
|
+
function bashDiagnostic(error) {
|
|
176
|
+
const tail = error.slice(-16_384).replace(/\u001b\[[0-9;]*m/g, '');
|
|
177
|
+
const lines = tail.split(/\r?\n/).map(line => line.trim()).filter(Boolean);
|
|
178
|
+
let diagnostic;
|
|
179
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
180
|
+
if (/^[\w.]+(?:Error|Exception):\s*\S/.test(lines[i])) {
|
|
181
|
+
diagnostic = lines[i];
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return diagnostic ?? error.trim();
|
|
186
|
+
}
|
|
187
|
+
function evidence(result) {
|
|
188
|
+
for (const key of ['error', 'output', 'summary', 'content']) {
|
|
189
|
+
if (typeof result[key] === 'string')
|
|
190
|
+
return result[key];
|
|
191
|
+
}
|
|
192
|
+
return '';
|
|
193
|
+
}
|
|
194
|
+
function shortText(text) {
|
|
195
|
+
return text.slice(0, 300).replace(/\u001b\[[0-9;]*m/g, '').replace(/[\x00-\x1f\x7f]+/g, ' ').trim().slice(0, 180);
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=progressGuard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progressGuard.js","sourceRoot":"","sources":["../../../src/core/progressGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AACzE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAOrG;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACP,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvD,OAAO,CAAC,IAAY,EAAE,OAAe,EAAE,MAA+B;QACpE,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;YAAE,OAAO;QAExE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,wDAAwD;QAElG,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC;QAC7E,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,0EAA0E;YAC1E,wEAAwE;YACxE,iEAAiE;YACjE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,KAAK,WAAW;gBAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACzC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,YAAY,EAAE,CAAC;YAC3C,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACtD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvI,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,GAAG,cAAc,KAAK,EAAE,CAAC;gBAClC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC5D,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChD,MAAM,cAAc,GAAG,WAAW,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACvG,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,0CAA0C,EAAE,UAAU,CAAC,CAAC;wBAC/G,IAAI,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;4BAAE,MAAM,GAAG,OAAO,CAAC;oBACzE,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,GAAW,EAAE,MAAc,EAAE,IAAY,EAAE,MAAc,EAAE,MAAc;QACtF,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ;YAAE,OAAO;QACpD,MAAM,IAAI,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,qBAAqB,MAAM,IAAI,KAAK,oCAAoC;gBACjG,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;gBAC7C,CAAC,IAAI,KAAK,OAAO;oBACf,CAAC,CAAC,kFAAkF;oBACpF,CAAC,CAAC,2FAA2F,CAAC;SACnG,CAAC;IACJ,CAAC;CACF;AAED,SAAS,QAAQ,CAAI,GAAmB,EAAE,GAAW,EAAE,KAAQ;IAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpB,IAAI,GAAG,CAAC,IAAI,GAAG,sBAAsB;QAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAiC,CAAC;IACxH,CAAC;IAAC,MAAM,CAAC,CAAC,iEAAiE,CAAC,CAAC;IAC7E,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC;AACrC,CAAC;AAED,uGAAuG;AACvG,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,KAAa,EAAQ,EAAE;QACnD,IAAI,EAAE,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACzE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACpD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,KAAK,MAAM,KAAK,IAAI,IAAI;gBAAE,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC7F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC3C,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtB,KAAK,CAAE,IAAgC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,IAAI,CAAC;QAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO;IAAC,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,IAA6B,EAAE,MAA+B;IACjG,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpH,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,iFAAiF;QACjF,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS;YAChC,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,gFAAgF;IAChF,iEAAiE;IACjE,OAAO,IAAI,KAAK,mBAAmB,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC;AACxE,CAAC;AAED,iGAAiG;AACjG,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,gCAAgC,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,IAAI,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,yFAAyF;QACzF,MAAM,MAAM,GAAa,CAAC,UAAU,CAAC,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC7C,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,iFAAiF;IACjF,mFAAmF;IACnF,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3E,IAAI,UAA8B,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,UAAU,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,MAA+B;IAC/C,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QAC5D,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,GAAG,CAAW,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpH,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ToolRegistry } from './toolRegistry.js';
|
|
2
|
+
import type { TaskAssessment, PauseReason } from './types.js';
|
|
2
3
|
import { type OutputSchemaSpec } from './structuredOutput.js';
|
|
3
4
|
import type { ChatBackend, ContentPart, EngineEvent } from './types.js';
|
|
4
5
|
/** One chat-only turn's result. `structured` is set when a response schema was requested. */
|
|
@@ -9,6 +10,7 @@ export interface ChatTurnResult {
|
|
|
9
10
|
prompt_tokens: number;
|
|
10
11
|
completion_tokens: number;
|
|
11
12
|
};
|
|
13
|
+
task?: TaskAssessment;
|
|
12
14
|
}
|
|
13
15
|
export interface ChatTurnParams {
|
|
14
16
|
backend: ChatBackend;
|
|
@@ -29,6 +31,8 @@ export interface ChatTurnParams {
|
|
|
29
31
|
responseFormat?: unknown;
|
|
30
32
|
/** Client-side tools available to this turn. Defaults to an empty registry (no tools). */
|
|
31
33
|
registry?: ToolRegistry;
|
|
34
|
+
maxTurnTokens?: number;
|
|
35
|
+
assessTask?: () => Promise<TaskAssessment | undefined>;
|
|
32
36
|
}
|
|
33
37
|
/**
|
|
34
38
|
* Run a single chat turn (client tools optional via `params.registry`; defaults to none)
|
|
@@ -40,3 +44,7 @@ export interface ChatTurnParams {
|
|
|
40
44
|
* Throws on a backend/turn error or when structured output does not parse.
|
|
41
45
|
*/
|
|
42
46
|
export declare function runChatTurn(params: ChatTurnParams, onEvent?: (event: EngineEvent) => void | Promise<void>): Promise<ChatTurnResult>;
|
|
47
|
+
export declare class TurnPausedError extends Error {
|
|
48
|
+
readonly reason: PauseReason;
|
|
49
|
+
constructor(reason: PauseReason, message: string);
|
|
50
|
+
}
|