@duckcodeailabs/dql-agent 1.14.3-rc.1 → 1.14.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/dist/agent-run-engine.d.ts +177 -3
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +2061 -57
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/agent-run-gates.d.ts.map +1 -1
- package/dist/agent-run-gates.js +51 -3
- package/dist/agent-run-gates.js.map +1 -1
- package/dist/agent-run-store.d.ts.map +1 -1
- package/dist/agent-run-store.js +544 -9
- package/dist/agent-run-store.js.map +1 -1
- package/dist/agentic/analyst-loop.d.ts +2 -0
- package/dist/agentic/analyst-loop.d.ts.map +1 -1
- package/dist/agentic/analyst-loop.js +41 -4
- package/dist/agentic/analyst-loop.js.map +1 -1
- package/dist/agentic/ledger-tools.d.ts.map +1 -1
- package/dist/agentic/ledger-tools.js +8 -1
- package/dist/agentic/ledger-tools.js.map +1 -1
- package/dist/agentic/orchestrator-policy.d.ts +3 -1
- package/dist/agentic/orchestrator-policy.d.ts.map +1 -1
- package/dist/agentic/orchestrator-policy.js +1 -1
- package/dist/agentic/orchestrator-policy.js.map +1 -1
- package/dist/agentic/tool-loop.d.ts +13 -1
- package/dist/agentic/tool-loop.d.ts.map +1 -1
- package/dist/agentic/tool-loop.js +441 -32
- package/dist/agentic/tool-loop.js.map +1 -1
- package/dist/analytical-frame.d.ts +19 -0
- package/dist/analytical-frame.d.ts.map +1 -1
- package/dist/analytical-frame.js +170 -12
- package/dist/analytical-frame.js.map +1 -1
- package/dist/analytical-orchestration.d.ts +949 -10
- package/dist/analytical-orchestration.d.ts.map +1 -1
- package/dist/analytical-orchestration.js +499 -56
- package/dist/analytical-orchestration.js.map +1 -1
- package/dist/answer-loop.d.ts +166 -2
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +654 -18
- package/dist/answer-loop.js.map +1 -1
- package/dist/answer-shape.d.ts +27 -0
- package/dist/answer-shape.d.ts.map +1 -1
- package/dist/answer-shape.js +55 -0
- package/dist/answer-shape.js.map +1 -1
- package/dist/ask-observability/instrumentation.d.ts.map +1 -1
- package/dist/ask-observability/instrumentation.js +52 -1
- package/dist/ask-observability/instrumentation.js.map +1 -1
- package/dist/ask-observability/portable.js +562 -0
- package/dist/ask-observability/portable.js.map +1 -1
- package/dist/ask-observability/types.d.ts +26 -3
- package/dist/ask-observability/types.d.ts.map +1 -1
- package/dist/ask-observability/types.js.map +1 -1
- package/dist/ask-runtime/ask-agent-runtime-v2.d.ts +850 -0
- package/dist/ask-runtime/ask-agent-runtime-v2.d.ts.map +1 -0
- package/dist/ask-runtime/ask-agent-runtime-v2.js +1716 -0
- package/dist/ask-runtime/ask-agent-runtime-v2.js.map +1 -0
- package/dist/ask-runtime/ask-analyst-runtime.d.ts +95 -0
- package/dist/ask-runtime/ask-analyst-runtime.d.ts.map +1 -0
- package/dist/ask-runtime/ask-analyst-runtime.js +8280 -0
- package/dist/ask-runtime/ask-analyst-runtime.js.map +1 -0
- package/dist/conversation/session-store.d.ts +31 -0
- package/dist/conversation/session-store.d.ts.map +1 -1
- package/dist/conversation/session-store.js +38 -0
- package/dist/conversation/session-store.js.map +1 -1
- package/dist/conversation/snapshot.d.ts +4 -1
- package/dist/conversation/snapshot.d.ts.map +1 -1
- package/dist/conversation/snapshot.js +85 -3
- package/dist/conversation/snapshot.js.map +1 -1
- package/dist/conversation/turn-trust.d.ts.map +1 -1
- package/dist/conversation/turn-trust.js +2 -0
- package/dist/conversation/turn-trust.js.map +1 -1
- package/dist/embeddings/provider.d.ts +1 -0
- package/dist/embeddings/provider.d.ts.map +1 -1
- package/dist/embeddings/provider.js +18 -0
- package/dist/embeddings/provider.js.map +1 -1
- package/dist/generated-analytical-proposal.js +37 -2
- package/dist/generated-analytical-proposal.js.map +1 -1
- package/dist/index.d.ts +15 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +77 -1
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +1 -1
- package/dist/intent-controller.js.map +1 -1
- package/dist/kg/build.js +32 -2
- package/dist/kg/build.js.map +1 -1
- package/dist/meaning-resolution.d.ts +129 -0
- package/dist/meaning-resolution.d.ts.map +1 -1
- package/dist/meaning-resolution.js +108 -15
- package/dist/meaning-resolution.js.map +1 -1
- package/dist/metadata/analysis-planner.js +57 -6
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/catalog.d.ts +14 -0
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +28 -1
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts +19 -0
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +113 -6
- package/dist/metadata/meaning-evidence.js.map +1 -1
- package/dist/provider-egress.d.ts +4 -1
- package/dist/provider-egress.d.ts.map +1 -1
- package/dist/provider-egress.js +50 -5
- package/dist/provider-egress.js.map +1 -1
- package/dist/providers/claude.d.ts +2 -2
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +191 -28
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts +2 -2
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +191 -21
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +79 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/requirement-clauses.d.ts +23 -0
- package/dist/requirement-clauses.d.ts.map +1 -0
- package/dist/requirement-clauses.js +70 -0
- package/dist/requirement-clauses.js.map +1 -0
- package/dist/resolved-analytical-plan.d.ts.map +1 -1
- package/dist/resolved-analytical-plan.js +201 -15
- package/dist/resolved-analytical-plan.js.map +1 -1
- package/dist/router.d.ts +109 -2
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +753 -76
- package/dist/router.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentProvider, AgentMessage, AgentToolDefinition, ProviderToolLoopOptions, ProviderRunOptions } from './types.js';
|
|
1
|
+
import type { AgentProvider, AgentMessage, AgentToolDefinition, NativeToolLoopResult, ProviderToolLoopOptions, ProviderRunOptions } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* OpenAI / Chat Completions-compatible provider. Reads OPENAI_API_KEY plus
|
|
4
4
|
* an optional OPENAI_BASE_URL (e.g. point at Azure OpenAI or vLLM).
|
|
@@ -17,7 +17,7 @@ export declare class OpenAIProvider implements AgentProvider {
|
|
|
17
17
|
});
|
|
18
18
|
available(): Promise<boolean>;
|
|
19
19
|
generate(messages: AgentMessage[], options?: ProviderRunOptions): Promise<string>;
|
|
20
|
-
generateWithTools(messages: AgentMessage[], tools: AgentToolDefinition[], options?: ProviderToolLoopOptions): Promise<
|
|
20
|
+
generateWithTools(messages: AgentMessage[], tools: AgentToolDefinition[], options?: ProviderToolLoopOptions): Promise<NativeToolLoopResult>;
|
|
21
21
|
generateStream(messages: AgentMessage[], options: ProviderRunOptions, onDelta: (delta: string) => void): Promise<string>;
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EAEnB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAgBpB;;;GAGG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAO;IAO/F,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyDrF,iBAAiB,CACrB,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,oBAAoB,CAAC;IA6S1B,cAAc,CAClB,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,MAAM,CAAC;CAgDnB"}
|
package/dist/providers/openai.js
CHANGED
|
@@ -105,21 +105,24 @@ export class OpenAIProvider {
|
|
|
105
105
|
role: message.role,
|
|
106
106
|
content: message.content,
|
|
107
107
|
}));
|
|
108
|
-
const toolDefs = tools.map((tool) => ({
|
|
109
|
-
type: 'function',
|
|
110
|
-
function: {
|
|
111
|
-
name: tool.name,
|
|
112
|
-
description: tool.description,
|
|
113
|
-
parameters: tool.inputSchema,
|
|
114
|
-
},
|
|
115
|
-
}));
|
|
116
108
|
const dispatchLimit = Math.max(1, Math.min(30, options.maxProviderDispatches ?? DEFAULT_PROVIDER_DISPATCH_LIMIT));
|
|
117
|
-
const
|
|
109
|
+
const requestedToolBudget = Math.max(0, Math.min(dispatchLimit <= 2 ? 4 : 30, options.maxToolCalls ?? 8));
|
|
110
|
+
// Keep one physical provider turn available for a controller-selected
|
|
111
|
+
// terminal action when the host publishes a live V2 tool policy. Existing
|
|
112
|
+
// callers without that policy retain their prior native-loop behavior.
|
|
113
|
+
const dynamicToolPolicy = Boolean(options.getCurrentToolPolicy);
|
|
114
|
+
const ordinaryToolBudget = dynamicToolPolicy
|
|
115
|
+
? Math.min(requestedToolBudget, Math.max(0, dispatchLimit - 1))
|
|
116
|
+
: requestedToolBudget;
|
|
118
117
|
let toolCallsUsed = 0;
|
|
119
118
|
let lastText = '';
|
|
120
119
|
let useMaxCompletionTokens = false;
|
|
121
120
|
let includeTemperature = true;
|
|
122
121
|
let dispatches = 0;
|
|
122
|
+
const requiresPostExecutionFinish = dynamicToolPolicy
|
|
123
|
+
&& tools.some((tool) => tool.name === 'finish_answer');
|
|
124
|
+
let requiredActionSignature = '';
|
|
125
|
+
let requiredActionProseRetries = 0;
|
|
123
126
|
const send = (body) => {
|
|
124
127
|
dispatches += 1;
|
|
125
128
|
return fetchProviderHttpDispatch({
|
|
@@ -154,11 +157,62 @@ export class OpenAIProvider {
|
|
|
154
157
|
return finalMessage.toolCalls.length === 0 ? finalMessage.content?.trim() ?? '' : '';
|
|
155
158
|
};
|
|
156
159
|
for (;;) {
|
|
160
|
+
const currentPolicy = nativeToolPolicy(options, tools);
|
|
161
|
+
const nextRequiredActionSignature = [...currentPolicy.terminalActionToolNames].sort().join('|');
|
|
162
|
+
if (nextRequiredActionSignature !== requiredActionSignature) {
|
|
163
|
+
requiredActionSignature = nextRequiredActionSignature;
|
|
164
|
+
requiredActionProseRetries = 0;
|
|
165
|
+
}
|
|
166
|
+
const narrationControlRound = currentPolicy.terminalActionToolNames.has('finish_answer');
|
|
167
|
+
// A clarification is its own host terminal, while a selected execution
|
|
168
|
+
// action needs the final narration send. Keep that distinction in the
|
|
169
|
+
// physical reservation so invalid clarification options remain a
|
|
170
|
+
// recoverable observation instead of consuming a nonexistent finish
|
|
171
|
+
// slot.
|
|
172
|
+
const terminalExecutionAction = [...currentPolicy.terminalActionToolNames]
|
|
173
|
+
.some((name) => !isAskV2TerminalControlTool(name));
|
|
174
|
+
const reservePostExecutionNarration = requiresPostExecutionFinish && terminalExecutionAction;
|
|
175
|
+
// An execution decision needs one remaining physical send for the
|
|
176
|
+
// post-result finish/narration control. At the last tool-followup slot,
|
|
177
|
+
// expose only the host-approved execution action. This does not select
|
|
178
|
+
// a route: it prevents another inspection from consuming the narration
|
|
179
|
+
// reserve after the V2 kernel already established its safe choices.
|
|
180
|
+
const finalExecutionActionRound = !narrationControlRound
|
|
181
|
+
&& dispatches >= Math.max(0, dispatchLimit - (reservePostExecutionNarration ? 2 : 1));
|
|
182
|
+
const terminalActionRound = dynamicToolPolicy
|
|
183
|
+
&& currentPolicy.terminalActionToolNames.size > 0
|
|
184
|
+
&& (toolCallsUsed >= ordinaryToolBudget
|
|
185
|
+
|| (narrationControlRound ? dispatches >= dispatchLimit - 1 : finalExecutionActionRound));
|
|
186
|
+
if (dynamicToolPolicy && toolCallsUsed >= ordinaryToolBudget && !terminalActionRound) {
|
|
187
|
+
return forcedFinal();
|
|
188
|
+
}
|
|
189
|
+
const roundTools = terminalActionRound
|
|
190
|
+
? currentPolicy.tools.filter((tool) => currentPolicy.terminalActionToolNames.has(tool.name))
|
|
191
|
+
: currentPolicy.tools;
|
|
192
|
+
const roundToolMap = new Map(roundTools.map((tool) => [tool.name, tool]));
|
|
193
|
+
const roundToolDefs = roundTools.map((tool) => ({
|
|
194
|
+
type: 'function',
|
|
195
|
+
function: {
|
|
196
|
+
name: tool.name,
|
|
197
|
+
description: tool.description,
|
|
198
|
+
parameters: tool.inputSchema,
|
|
199
|
+
},
|
|
200
|
+
}));
|
|
201
|
+
const policyInstruction = currentPolicy.instruction?.trim();
|
|
202
|
+
if (policyInstruction) {
|
|
203
|
+
chatMessages.push({ role: 'system', content: policyInstruction });
|
|
204
|
+
}
|
|
157
205
|
const bodyBase = {
|
|
158
206
|
model,
|
|
159
207
|
messages: chatMessages,
|
|
160
|
-
tools:
|
|
161
|
-
|
|
208
|
+
tools: roundToolDefs,
|
|
209
|
+
// When the host has narrowed the next V2 action to one execution or
|
|
210
|
+
// host terminal control, make that contract native rather than hoping
|
|
211
|
+
// the model follows prose. The tool itself still validates opaque IDs
|
|
212
|
+
// and only freezes after authorization.
|
|
213
|
+
tool_choice: dynamicToolPolicy && currentPolicy.terminalActionToolNames.size === 1
|
|
214
|
+
? { type: 'function', function: { name: [...currentPolicy.terminalActionToolNames][0] } }
|
|
215
|
+
: 'auto',
|
|
162
216
|
...openaiReasoning(model, options),
|
|
163
217
|
};
|
|
164
218
|
const body = {
|
|
@@ -167,7 +221,16 @@ export class OpenAIProvider {
|
|
|
167
221
|
};
|
|
168
222
|
if (includeTemperature)
|
|
169
223
|
body.temperature = options.temperature ?? 0.2;
|
|
170
|
-
|
|
224
|
+
let res;
|
|
225
|
+
try {
|
|
226
|
+
res = await send(body);
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
const terminal = nativeToolLoopStopForError(error, toolCallsUsed);
|
|
230
|
+
if (terminal)
|
|
231
|
+
return terminal;
|
|
232
|
+
throw error;
|
|
233
|
+
}
|
|
171
234
|
if (!res.ok) {
|
|
172
235
|
const errorBody = await res.text().catch(() => res.statusText);
|
|
173
236
|
if (!useMaxCompletionTokens && shouldRetryWithMaxCompletionTokens(errorBody)) {
|
|
@@ -181,21 +244,49 @@ export class OpenAIProvider {
|
|
|
181
244
|
throw new Error(`openai: ${res.status} ${errorBody}`);
|
|
182
245
|
}
|
|
183
246
|
const message = extractOpenAIChatMessage(await res.json());
|
|
247
|
+
if (!message.toolCalls.length) {
|
|
248
|
+
// A no-tool/prose reply cannot escape a host-required V2 action.
|
|
249
|
+
// Discard it and re-dispatch while a physical controller send remains.
|
|
250
|
+
if (dynamicToolPolicy && currentPolicy.terminalActionToolNames.size > 0) {
|
|
251
|
+
// A final admitted send that returns prose has no physical retry
|
|
252
|
+
// left. Keep it a dispatch-budget terminal so the V2 lane can
|
|
253
|
+
// preserve an already validated result with deterministic facts;
|
|
254
|
+
// only two ignored narrowed actions are an invalid tool response.
|
|
255
|
+
if (dispatches >= dispatchLimit) {
|
|
256
|
+
return nativeToolLoopStop('provider_dispatch_budget_exhausted', '', toolCallsUsed);
|
|
257
|
+
}
|
|
258
|
+
if (requiredActionProseRetries >= 1) {
|
|
259
|
+
return nativeToolLoopStop('invalid_tool_response', '', toolCallsUsed);
|
|
260
|
+
}
|
|
261
|
+
requiredActionProseRetries += 1;
|
|
262
|
+
chatMessages.push({
|
|
263
|
+
role: 'user',
|
|
264
|
+
content: `Controller progression required. Call exactly one of: ${[...currentPolicy.terminalActionToolNames].join(', ')}. Do not answer in prose.`,
|
|
265
|
+
});
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
if (message.content)
|
|
269
|
+
lastText = message.content;
|
|
270
|
+
return message.content ?? lastText;
|
|
271
|
+
}
|
|
184
272
|
if (message.content)
|
|
185
273
|
lastText = message.content;
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
if (toolCallsUsed + message.toolCalls.length >
|
|
274
|
+
const roundToolBudget = terminalActionRound ? ordinaryToolBudget + 1 : ordinaryToolBudget;
|
|
275
|
+
const invalidTerminalAction = terminalActionRound && (message.toolCalls.length !== 1 || !currentPolicy.terminalActionToolNames.has(message.toolCalls[0].name));
|
|
276
|
+
if (invalidTerminalAction || toolCallsUsed + message.toolCalls.length > roundToolBudget) {
|
|
189
277
|
options.onToolCall?.({
|
|
190
278
|
name: 'tool_budget_exhausted',
|
|
191
279
|
input: {
|
|
192
280
|
requestedToolCalls: message.toolCalls.map((call) => call.name),
|
|
193
|
-
maxToolCalls,
|
|
281
|
+
maxToolCalls: roundToolBudget,
|
|
194
282
|
toolCallsUsed,
|
|
195
283
|
},
|
|
196
284
|
output: { error: `Tool-call budget exhausted after ${toolCallsUsed} call(s).` },
|
|
197
285
|
isError: true,
|
|
198
286
|
});
|
|
287
|
+
if (dynamicToolPolicy) {
|
|
288
|
+
return nativeToolLoopStop('tool_budget_exhausted', '', toolCallsUsed);
|
|
289
|
+
}
|
|
199
290
|
// Graceful final turn: ask the model to answer NOW from what the prior tool
|
|
200
291
|
// calls already returned — with `tools`/`tool_choice` OMITTED so it cannot
|
|
201
292
|
// request another tool and the loop is guaranteed to terminate.
|
|
@@ -226,10 +317,11 @@ export class OpenAIProvider {
|
|
|
226
317
|
});
|
|
227
318
|
for (const call of message.toolCalls) {
|
|
228
319
|
toolCallsUsed += 1;
|
|
229
|
-
const tool = toolMap.get(call.name);
|
|
320
|
+
const tool = roundToolMap.get(call.name) ?? (dynamicToolPolicy ? undefined : toolMap.get(call.name));
|
|
230
321
|
const args = parseToolArguments(call.argumentsJson);
|
|
231
322
|
let output;
|
|
232
323
|
let isError = false;
|
|
324
|
+
let deadlineStop;
|
|
233
325
|
const toolStartedAt = Date.now();
|
|
234
326
|
if (!tool) {
|
|
235
327
|
output = { error: `Unknown tool: ${call.name}` };
|
|
@@ -237,22 +329,54 @@ export class OpenAIProvider {
|
|
|
237
329
|
}
|
|
238
330
|
else {
|
|
239
331
|
try {
|
|
240
|
-
assertMayStartToolCall(options);
|
|
332
|
+
assertMayStartToolCall(options, call.name);
|
|
241
333
|
output = await tool.run(args);
|
|
242
334
|
}
|
|
243
335
|
catch (err) {
|
|
244
|
-
|
|
336
|
+
const code = toolLoopErrorCode(err);
|
|
337
|
+
output = {
|
|
338
|
+
error: err instanceof Error ? err.message : String(err),
|
|
339
|
+
...(code ? { code } : {}),
|
|
340
|
+
};
|
|
245
341
|
isError = true;
|
|
342
|
+
deadlineStop = nativeToolLoopStopForError(err, toolCallsUsed);
|
|
246
343
|
}
|
|
247
344
|
}
|
|
248
345
|
options.onToolCall?.({ name: call.name, input: args, output, isError, durationMs: Date.now() - toolStartedAt });
|
|
346
|
+
if (deadlineStop)
|
|
347
|
+
return deadlineStop;
|
|
249
348
|
chatMessages.push({
|
|
250
349
|
role: 'tool',
|
|
251
350
|
tool_call_id: call.id,
|
|
252
351
|
content: compactToolOutput(output),
|
|
253
352
|
});
|
|
353
|
+
// A completed Ask V2 host control already contains the answer or
|
|
354
|
+
// stable clarification. A rejected control has no `finished` marker
|
|
355
|
+
// and must instead become the next controller observation.
|
|
356
|
+
if (isAskV2TerminalControlTool(call.name) && !isError && isFinishedToolOutput(output)) {
|
|
357
|
+
return message.content ?? lastText;
|
|
358
|
+
}
|
|
254
359
|
}
|
|
255
|
-
if (
|
|
360
|
+
if (terminalActionRound) {
|
|
361
|
+
const terminalCall = message.toolCalls[0];
|
|
362
|
+
if (terminalCall && isAskV2TerminalControlTool(terminalCall.name)) {
|
|
363
|
+
// A valid control already returned above. A denied/unfinished
|
|
364
|
+
// control has spent the final action send and must retain a typed
|
|
365
|
+
// budget/progression terminal rather than masquerading as prose.
|
|
366
|
+
return nativeToolLoopStop('tool_budget_exhausted', '', toolCallsUsed);
|
|
367
|
+
}
|
|
368
|
+
// A terminal *execution* action only ends discovery. The live V2
|
|
369
|
+
// policy now requires finish_answer on the reserved narration send;
|
|
370
|
+
// returning here would drop a validated result or turn it into prose.
|
|
371
|
+
if (reservePostExecutionNarration)
|
|
372
|
+
continue;
|
|
373
|
+
return message.content ?? lastText;
|
|
374
|
+
}
|
|
375
|
+
// A live Ask V2 policy reserves the final physical send for one
|
|
376
|
+
// controller-selected terminal action. The old two-turn shortcut
|
|
377
|
+
// would otherwise turn that reserved action into prose before the
|
|
378
|
+
// model can invoke it.
|
|
379
|
+
if (dispatchLimit <= 2 && !dynamicToolPolicy) {
|
|
256
380
|
try {
|
|
257
381
|
const finalText = await forcedFinal();
|
|
258
382
|
return finalText || lastText || JSON.stringify({
|
|
@@ -322,13 +446,59 @@ export class OpenAIProvider {
|
|
|
322
446
|
return full;
|
|
323
447
|
}
|
|
324
448
|
}
|
|
325
|
-
function assertMayStartToolCall(options) {
|
|
449
|
+
function assertMayStartToolCall(options, toolName) {
|
|
450
|
+
// finish_answer is host-local terminal control after an already admitted
|
|
451
|
+
// provider response; it must not be treated as a fresh discovery branch.
|
|
452
|
+
if (toolName === 'finish_answer')
|
|
453
|
+
return;
|
|
326
454
|
if (options.mayStartToolCall?.() === false) {
|
|
327
455
|
throw Object.assign(new Error('The run soft target elapsed before this tool branch could start.'), {
|
|
328
456
|
code: 'RUN_SOFT_TARGET_EXCEEDED',
|
|
329
457
|
});
|
|
330
458
|
}
|
|
331
459
|
}
|
|
460
|
+
function isFinishedToolOutput(value) {
|
|
461
|
+
return Boolean(value
|
|
462
|
+
&& typeof value === 'object'
|
|
463
|
+
&& !Array.isArray(value)
|
|
464
|
+
&& value.finished === true);
|
|
465
|
+
}
|
|
466
|
+
function isAskV2TerminalControlTool(name) {
|
|
467
|
+
return name === 'finish_answer' || name === 'request_clarification';
|
|
468
|
+
}
|
|
469
|
+
function nativeToolLoopStop(kind, text, toolCalls) {
|
|
470
|
+
return { version: 1, kind, text, toolCalls };
|
|
471
|
+
}
|
|
472
|
+
function toolLoopErrorCode(error) {
|
|
473
|
+
const code = error && typeof error === 'object' && 'code' in error
|
|
474
|
+
? error.code
|
|
475
|
+
: undefined;
|
|
476
|
+
return typeof code === 'string' ? code : undefined;
|
|
477
|
+
}
|
|
478
|
+
function nativeToolLoopStopForError(error, toolCalls) {
|
|
479
|
+
const code = toolLoopErrorCode(error);
|
|
480
|
+
if (code === 'RUN_SOFT_TARGET_EXCEEDED') {
|
|
481
|
+
return nativeToolLoopStop('run_soft_target_exceeded', '', toolCalls);
|
|
482
|
+
}
|
|
483
|
+
if (code === 'RUN_DEADLINE_INSUFFICIENT') {
|
|
484
|
+
return nativeToolLoopStop('run_deadline_insufficient', '', toolCalls);
|
|
485
|
+
}
|
|
486
|
+
if (code === 'PROVIDER_DISPATCH_BUDGET_EXHAUSTED') {
|
|
487
|
+
return nativeToolLoopStop('provider_dispatch_budget_exhausted', '', toolCalls);
|
|
488
|
+
}
|
|
489
|
+
return undefined;
|
|
490
|
+
}
|
|
491
|
+
/** Resolve the host's current V2 policy immediately before a native send. */
|
|
492
|
+
function nativeToolPolicy(options, tools) {
|
|
493
|
+
const policy = options.getCurrentToolPolicy?.();
|
|
494
|
+
const allowed = new Set(policy?.allowedToolNames ?? tools.map((tool) => tool.name));
|
|
495
|
+
const enabled = tools.filter((tool) => allowed.has(tool.name));
|
|
496
|
+
return {
|
|
497
|
+
tools: enabled,
|
|
498
|
+
terminalActionToolNames: new Set((policy?.terminalActionToolNames ?? []).filter((name) => allowed.has(name))),
|
|
499
|
+
...(policy?.instruction?.trim() ? { instruction: policy.instruction.trim() } : {}),
|
|
500
|
+
};
|
|
501
|
+
}
|
|
332
502
|
function shouldRetryWithMaxCompletionTokens(body) {
|
|
333
503
|
return /max_tokens/i.test(body) && /max_completion_tokens/i.test(body);
|
|
334
504
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,6 +96,13 @@ export interface ProviderRunOptions {
|
|
|
96
96
|
* exploratory-plan correction cannot be miscounted as a second generation.
|
|
97
97
|
*/
|
|
98
98
|
dispatchPhase?: import('@duckcodeailabs/dql-core').ProviderDispatchPhaseV1;
|
|
99
|
+
/**
|
|
100
|
+
* Server-owned sub-phase for the bounded analytical planner. It exists only
|
|
101
|
+
* to distinguish one initial proposal from one verifier-directed targeted
|
|
102
|
+
* revision at the local egress ledger; providers cannot use it to select a
|
|
103
|
+
* route or request another planner loop.
|
|
104
|
+
*/
|
|
105
|
+
analyticalPlanningKind?: 'initial' | 'targeted_revision';
|
|
99
106
|
/**
|
|
100
107
|
* Server-owned egress purpose paired with {@link dispatchPhase}. Ordinary
|
|
101
108
|
* Ask generation remains content-free; the only normal Ask repair purpose is
|
|
@@ -115,6 +122,43 @@ export interface AgentToolDefinition {
|
|
|
115
122
|
inputSchema: Record<string, unknown>;
|
|
116
123
|
run(args: unknown): Promise<unknown>;
|
|
117
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* A server-owned update to an in-flight tool conversation.
|
|
127
|
+
*
|
|
128
|
+
* Native tool transports obtain this immediately before every provider send;
|
|
129
|
+
* text transports append the same instruction after every observation. It
|
|
130
|
+
* lets a bounded controller narrow discovery to the next safe action without
|
|
131
|
+
* making a second, hidden planner call or trusting a provider to remember a
|
|
132
|
+
* stale tool list.
|
|
133
|
+
*/
|
|
134
|
+
export interface ProviderCurrentToolPolicy {
|
|
135
|
+
/** Canonical tools the provider may request on its next turn. */
|
|
136
|
+
allowedToolNames: readonly string[];
|
|
137
|
+
/** Safe, provider-visible explanation of why the set changed. */
|
|
138
|
+
instruction?: string;
|
|
139
|
+
/**
|
|
140
|
+
* At a physical-send reserve, one of these tools may be the final action.
|
|
141
|
+
* This is intentionally separate from `allowedToolNames`: ordinary tools
|
|
142
|
+
* must never use the last controller turn as a discovery escape hatch.
|
|
143
|
+
*/
|
|
144
|
+
terminalActionToolNames?: readonly string[];
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Host-owned phase decision for one concrete provider send.
|
|
148
|
+
*
|
|
149
|
+
* A native tool provider can issue several HTTP requests from one logical
|
|
150
|
+
* `generateWithTools` call. The outer Ask runtime is the only component that
|
|
151
|
+
* knows whether its state has advanced from discovery/execution to the one
|
|
152
|
+
* required, post-result `finish_answer` control. This callback lets that
|
|
153
|
+
* runtime classify each physical send at the transport boundary without
|
|
154
|
+
* serializing mutable state to a provider or granting a provider a lifecycle
|
|
155
|
+
* capability.
|
|
156
|
+
*/
|
|
157
|
+
export type ProviderPhysicalDispatchPhaseResolver = (input: {
|
|
158
|
+
operation: ProviderDispatchOperation;
|
|
159
|
+
attemptIndex: number;
|
|
160
|
+
requestedPhase?: import('@duckcodeailabs/dql-core').ProviderDispatchPhaseV1;
|
|
161
|
+
}) => import('@duckcodeailabs/dql-core').ProviderDispatchPhaseV1 | undefined;
|
|
118
162
|
export interface ProviderToolLoopOptions extends ProviderRunOptions {
|
|
119
163
|
/** Hard cap for provider-visible tool calls in this turn. Default 8. */
|
|
120
164
|
maxToolCalls?: number;
|
|
@@ -134,6 +178,9 @@ export interface ProviderToolLoopOptions extends ProviderRunOptions {
|
|
|
134
178
|
allowedResultRowTools?: Record<string, number>;
|
|
135
179
|
resultRowBudgetGroupByTool?: Record<string, string>;
|
|
136
180
|
cumulativeResultRowBudgets?: Record<string, number>;
|
|
181
|
+
/** Additional shape caps for bounded local Ask V2 row egress. */
|
|
182
|
+
maxResultColumns?: number;
|
|
183
|
+
maxResultCells?: number;
|
|
137
184
|
onPayload?: (event: {
|
|
138
185
|
toolName: string;
|
|
139
186
|
output: unknown;
|
|
@@ -144,7 +191,38 @@ export interface ProviderToolLoopOptions extends ProviderRunOptions {
|
|
|
144
191
|
budgetExhausted: boolean;
|
|
145
192
|
}) => void;
|
|
146
193
|
};
|
|
194
|
+
/**
|
|
195
|
+
* Optional live tool policy owned by the host runtime. The callback is
|
|
196
|
+
* process-local and is never serialized to a provider. It is evaluated at
|
|
197
|
+
* each transport turn so native and text protocols receive the same current
|
|
198
|
+
* allowed-tool set and safe progress instruction.
|
|
199
|
+
*/
|
|
200
|
+
getCurrentToolPolicy?: () => ProviderCurrentToolPolicy | undefined;
|
|
201
|
+
/**
|
|
202
|
+
* Process-local physical-send phase resolver. Only the local Ask runtime
|
|
203
|
+
* installs this. Providers carry it to the wrapper unchanged and may never
|
|
204
|
+
* use it to choose a route, tool, or egress purpose.
|
|
205
|
+
*/
|
|
206
|
+
resolvePhysicalDispatchPhase?: ProviderPhysicalDispatchPhaseResolver;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Typed native-tool-loop stop. Native transports normally return final prose,
|
|
210
|
+
* but a live Ask V2 policy must distinguish a physical controller/tool budget
|
|
211
|
+
* stop from an answer. The result deliberately contains no provider payload
|
|
212
|
+
* beyond the already-sanitized final text.
|
|
213
|
+
*/
|
|
214
|
+
export interface NativeToolLoopStop {
|
|
215
|
+
version: 1;
|
|
216
|
+
/**
|
|
217
|
+
* A typed controller stop. Deadline stops deliberately remain distinct from
|
|
218
|
+
* a tool budget: callers can preserve an already validated result and show
|
|
219
|
+
* the actual run-boundary recovery action.
|
|
220
|
+
*/
|
|
221
|
+
kind: 'tool_budget_exhausted' | 'provider_dispatch_budget_exhausted' | 'invalid_tool_response' | 'run_soft_target_exceeded' | 'run_deadline_insufficient';
|
|
222
|
+
text: string;
|
|
223
|
+
toolCalls: number;
|
|
147
224
|
}
|
|
225
|
+
export type NativeToolLoopResult = string | NativeToolLoopStop;
|
|
148
226
|
export interface AgentProvider {
|
|
149
227
|
readonly name: ProviderName;
|
|
150
228
|
/**
|
|
@@ -157,7 +235,7 @@ export interface AgentProvider {
|
|
|
157
235
|
* call supplied tools, append their observations, and resolve with the final
|
|
158
236
|
* assistant text. Callers must keep a one-shot generate() fallback.
|
|
159
237
|
*/
|
|
160
|
-
generateWithTools?(messages: AgentMessage[], tools: AgentToolDefinition[], options?: ProviderToolLoopOptions): Promise<
|
|
238
|
+
generateWithTools?(messages: AgentMessage[], tools: AgentToolDefinition[], options?: ProviderToolLoopOptions): Promise<NativeToolLoopResult>;
|
|
161
239
|
/**
|
|
162
240
|
* Optional token streaming. Calls `onDelta` with each text chunk as it arrives
|
|
163
241
|
* and resolves with the full concatenated text. Providers that omit this fall
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmQH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAuB,EACvB,QAAwB,EACxB,OAA2B,EAC3B,OAAgC;IAEhC,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single grammar for time-window clauses.
|
|
3
|
+
*
|
|
4
|
+
* Three question parsers each carried their own relative-time regexes, every
|
|
5
|
+
* one requiring the determiner to sit adjacent to the time noun — so "last
|
|
6
|
+
* month" parsed and "last two months" did not, anywhere. The phrase then
|
|
7
|
+
* degraded to a bare `month` grouping while its count was misread as a row
|
|
8
|
+
* limit, and the answer silently changed meaning.
|
|
9
|
+
*
|
|
10
|
+
* This module is the one producer of the typed window. Its accepted forms
|
|
11
|
+
* deliberately MIRROR `resolvePlanTimeRange` (resolved-analytical-plan.ts) —
|
|
12
|
+
* the already-written resolver of "last N units" into UTC bounds — so the
|
|
13
|
+
* producer and the resolver cannot drift: everything parsed here resolves
|
|
14
|
+
* there, via the canonical digits `expression`.
|
|
15
|
+
*/
|
|
16
|
+
import type { AnalyticalTimeWindowV1 } from './analytical-orchestration.js';
|
|
17
|
+
/**
|
|
18
|
+
* Parse a relative or named time window from free text. Returns undefined
|
|
19
|
+
* when the question carries no bounded period — a bare grain ("by month") is
|
|
20
|
+
* a grouping, not a window, and stays out of this clause on purpose.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseAnalyticalTimeWindow(question: string): AnalyticalTimeWindowV1 | undefined;
|
|
23
|
+
//# sourceMappingURL=requirement-clauses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement-clauses.d.ts","sourceRoot":"","sources":["../src/requirement-clauses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAS5E;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CA8C9F"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single grammar for time-window clauses.
|
|
3
|
+
*
|
|
4
|
+
* Three question parsers each carried their own relative-time regexes, every
|
|
5
|
+
* one requiring the determiner to sit adjacent to the time noun — so "last
|
|
6
|
+
* month" parsed and "last two months" did not, anywhere. The phrase then
|
|
7
|
+
* degraded to a bare `month` grouping while its count was misread as a row
|
|
8
|
+
* limit, and the answer silently changed meaning.
|
|
9
|
+
*
|
|
10
|
+
* This module is the one producer of the typed window. Its accepted forms
|
|
11
|
+
* deliberately MIRROR `resolvePlanTimeRange` (resolved-analytical-plan.ts) —
|
|
12
|
+
* the already-written resolver of "last N units" into UTC bounds — so the
|
|
13
|
+
* producer and the resolver cannot drift: everything parsed here resolves
|
|
14
|
+
* there, via the canonical digits `expression`.
|
|
15
|
+
*/
|
|
16
|
+
const WORD_COUNTS = {
|
|
17
|
+
one: 1, two: 2, three: 3, four: 4, five: 5, six: 6,
|
|
18
|
+
seven: 7, eight: 8, nine: 9, ten: 10, twelve: 12,
|
|
19
|
+
};
|
|
20
|
+
const WINDOW_UNIT_RE = 'day|week|month|quarter|year';
|
|
21
|
+
/**
|
|
22
|
+
* Parse a relative or named time window from free text. Returns undefined
|
|
23
|
+
* when the question carries no bounded period — a bare grain ("by month") is
|
|
24
|
+
* a grouping, not a window, and stays out of this clause on purpose.
|
|
25
|
+
*/
|
|
26
|
+
export function parseAnalyticalTimeWindow(question) {
|
|
27
|
+
const lower = question.toLowerCase();
|
|
28
|
+
// "2024-01-01 to 2024-03-01" — absolute, passed through verbatim.
|
|
29
|
+
const absolute = /\b(\d{4}-\d{2}-\d{2})\s+(?:to|through)\s+(\d{4}-\d{2}-\d{2})\b/.exec(lower);
|
|
30
|
+
if (absolute) {
|
|
31
|
+
return {
|
|
32
|
+
version: 1,
|
|
33
|
+
kind: 'absolute',
|
|
34
|
+
expression: `${absolute[1]} to ${absolute[2]}`,
|
|
35
|
+
absolute: { startInclusive: absolute[1], endExclusive: absolute[2] },
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// "ytd" / "month to date" — named periods.
|
|
39
|
+
const named = /\b(ytd|qtd|mtd|wtd|(?:year|quarter|month|week)[ -]to[ -]date)\b/.exec(lower);
|
|
40
|
+
if (named) {
|
|
41
|
+
const token = named[1].replace(/[ -]to[ -]date$/, (unit) => unit).trim();
|
|
42
|
+
const canonical = token.length <= 3 ? token : `${token[0]}td`;
|
|
43
|
+
return { version: 1, kind: 'named_period', expression: canonical, namedPeriod: canonical };
|
|
44
|
+
}
|
|
45
|
+
// "last two months", "past 60 days", "this quarter", "since last 2 months".
|
|
46
|
+
const relative = new RegExp(`\\b(last|this|past|previous|prior)\\s+(?:(\\d{1,3}|${Object.keys(WORD_COUNTS).join('|')})\\s+)?(${WINDOW_UNIT_RE})s?\\b`).exec(lower);
|
|
47
|
+
if (!relative)
|
|
48
|
+
return undefined;
|
|
49
|
+
const determiner = relative[1];
|
|
50
|
+
const rawCount = relative[2];
|
|
51
|
+
const unit = relative[3];
|
|
52
|
+
const count = rawCount === undefined
|
|
53
|
+
? 1
|
|
54
|
+
: /^\d+$/.test(rawCount) ? Number(rawCount) : WORD_COUNTS[rawCount] ?? 1;
|
|
55
|
+
if (count <= 0 || count > 366)
|
|
56
|
+
return undefined;
|
|
57
|
+
// Mirror `resolvePlanTimeRange` exactly: an UNcounted "last month" is the
|
|
58
|
+
// previous complete period; a COUNTED "last 2 months" is a trailing window
|
|
59
|
+
// ending now; "this month" is the current period. Diverging here would let
|
|
60
|
+
// the producer promise a different span than the resolver computes.
|
|
61
|
+
const mode = determiner === 'this' ? 'this' : 'last';
|
|
62
|
+
const complete = mode === 'last' && rawCount === undefined;
|
|
63
|
+
return {
|
|
64
|
+
version: 1,
|
|
65
|
+
kind: 'relative',
|
|
66
|
+
expression: count === 1 && mode === 'last' ? `last ${unit}` : `${mode} ${count} ${unit}${count === 1 ? '' : 's'}`,
|
|
67
|
+
relative: { count, unit, complete },
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=requirement-clauses.js.map
|