@polpo-ai/server 0.15.43 → 0.15.45
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/routes/completions/agent-step-runner.d.ts +7 -2
- package/dist/routes/completions/agent-step-runner.d.ts.map +1 -1
- package/dist/routes/completions/agent-step-runner.js +50 -10
- package/dist/routes/completions/agent-step-runner.js.map +1 -1
- package/dist/routes/completions/chat-handler.d.ts +5 -2
- package/dist/routes/completions/chat-handler.d.ts.map +1 -1
- package/dist/routes/completions/chat-handler.js +99 -14
- package/dist/routes/completions/chat-handler.js.map +1 -1
- package/dist/routes/completions/chat-via-run-handler.d.ts +6 -0
- package/dist/routes/completions/chat-via-run-handler.d.ts.map +1 -1
- package/dist/routes/completions/chat-via-run-handler.js +79 -11
- package/dist/routes/completions/chat-via-run-handler.js.map +1 -1
- package/dist/routes/completions/chat-via-run-handler.test.js +299 -0
- package/dist/routes/completions/chat-via-run-handler.test.js.map +1 -1
- package/dist/routes/completions/conversation-turn.d.ts +2 -1
- package/dist/routes/completions/conversation-turn.d.ts.map +1 -1
- package/dist/routes/completions/conversation-turn.js +37 -9
- package/dist/routes/completions/conversation-turn.js.map +1 -1
- package/dist/routes/completions/message-mapping.d.ts +4 -2
- package/dist/routes/completions/message-mapping.d.ts.map +1 -1
- package/dist/routes/completions/message-mapping.js +34 -10
- package/dist/routes/completions/message-mapping.js.map +1 -1
- package/dist/routes/completions/message-mapping.test.js +65 -0
- package/dist/routes/completions/message-mapping.test.js.map +1 -1
- package/dist/routes/completions/output-guardrails.d.ts +15 -0
- package/dist/routes/completions/output-guardrails.d.ts.map +1 -0
- package/dist/routes/completions/output-guardrails.js +22 -0
- package/dist/routes/completions/output-guardrails.js.map +1 -0
- package/dist/routes/completions/project-loop-runner.d.ts +6 -3
- package/dist/routes/completions/project-loop-runner.d.ts.map +1 -1
- package/dist/routes/completions/project-loop-runner.js +73 -8
- package/dist/routes/completions/project-loop-runner.js.map +1 -1
- package/dist/routes/completions/project-loop-runner.test.d.ts +2 -0
- package/dist/routes/completions/project-loop-runner.test.d.ts.map +1 -0
- package/dist/routes/completions/project-loop-runner.test.js +41 -0
- package/dist/routes/completions/project-loop-runner.test.js.map +1 -0
- package/dist/routes/completions/sse.d.ts +5 -0
- package/dist/routes/completions/sse.d.ts.map +1 -1
- package/dist/routes/completions/sse.js +34 -1
- package/dist/routes/completions/sse.js.map +1 -1
- package/dist/routes/completions/tool-guardrails.d.ts +18 -0
- package/dist/routes/completions/tool-guardrails.d.ts.map +1 -0
- package/dist/routes/completions/tool-guardrails.js +32 -0
- package/dist/routes/completions/tool-guardrails.js.map +1 -0
- package/dist/routes/completions/tool-guardrails.test.d.ts +2 -0
- package/dist/routes/completions/tool-guardrails.test.d.ts.map +1 -0
- package/dist/routes/completions/tool-guardrails.test.js +87 -0
- package/dist/routes/completions/tool-guardrails.test.js.map +1 -0
- package/dist/routes/completions-loop-runtime.test.js +115 -2
- package/dist/routes/completions-loop-runtime.test.js.map +1 -1
- package/dist/routes/completions-provider-tools.test.js +109 -0
- package/dist/routes/completions-provider-tools.test.js.map +1 -1
- package/dist/routes/completions.d.ts +17 -4
- package/dist/routes/completions.d.ts.map +1 -1
- package/dist/routes/completions.js +1 -0
- package/dist/routes/completions.js.map +1 -1
- package/package.json +6 -6
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* step's overlay-merged agent config — used by the project loop runtime
|
|
6
6
|
* to execute `loop:` steps inside a deterministic pipeline.
|
|
7
7
|
*/
|
|
8
|
-
import { type ContextBag, type ModelSelection, type RuntimeContextResolution, type PolpoSettings, type SummarizeFn } from "@polpo-ai/core";
|
|
8
|
+
import { type ContextBag, type ModelSelection, type RuntimeContextResolution, type PolpoSettings, type RuntimePlan, type SummarizeFn, type RuntimeContextTrustMode } from "@polpo-ai/core";
|
|
9
9
|
import { type LanguageModel, type LanguageModelUsage } from "ai";
|
|
10
10
|
import type { CompletionRouteDeps } from "../completions.js";
|
|
11
11
|
import { type LoopRuntimeToolCall } from "./tool-mapping.js";
|
|
@@ -53,7 +53,7 @@ export declare function addUsage(a: LanguageModelUsage, b: LanguageModelUsage):
|
|
|
53
53
|
* Used by context compaction to summarize conversation history.
|
|
54
54
|
*/
|
|
55
55
|
export declare function buildSummarizeFn(m: ResolvedModelInfo, providerOptions?: Record<string, any>): SummarizeFn;
|
|
56
|
-
export declare function buildRuntimeAgentPrompt(deps: CompletionRouteDeps, agentConfig: any, extraSystemParts: string[], loopContextPart?: string, runtimeContext?: RuntimeContextResolution): Promise<string>;
|
|
56
|
+
export declare function buildRuntimeAgentPrompt(deps: CompletionRouteDeps, agentConfig: any, extraSystemParts: string[], loopContextPart?: string, contextTrust?: RuntimeContextTrustMode, runtimeContext?: RuntimeContextResolution): Promise<string>;
|
|
57
57
|
export declare function runAgentStepCompletion(options: {
|
|
58
58
|
deps: CompletionRouteDeps;
|
|
59
59
|
agentConfig: any;
|
|
@@ -61,6 +61,11 @@ export declare function runAgentStepCompletion(options: {
|
|
|
61
61
|
extraSystemParts: string[];
|
|
62
62
|
context: Readonly<ContextBag>;
|
|
63
63
|
stepName: string;
|
|
64
|
+
contextTrust?: RuntimeContextTrustMode;
|
|
65
|
+
runtimePlan?: RuntimePlan;
|
|
66
|
+
signal?: AbortSignal;
|
|
67
|
+
runId?: string;
|
|
68
|
+
sessionId?: string;
|
|
64
69
|
runtimeContext?: RuntimeContextResolution;
|
|
65
70
|
onToolCall?: (toolCall: LoopRuntimeToolCall) => Promise<void>;
|
|
66
71
|
}): Promise<AgentStepRunResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-step-runner.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/agent-step-runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"agent-step-runner.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/agent-step-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
* step's overlay-merged agent config — used by the project loop runtime
|
|
6
6
|
* to execute `loop:` steps inside a deterministic pipeline.
|
|
7
7
|
*/
|
|
8
|
-
import { agentMemoryScope, compactIfNeeded, loopContextPrompt, maybeParseJson, renderRuntimeContextPrompt, resolveConfiguredModelSelection, } from "@polpo-ai/core";
|
|
8
|
+
import { agentMemoryScope, compactIfNeeded, createRuntimePromptContextSegment, loopContextPrompt, maybeParseJson, normalizeRuntimeContextTrustMode, protectRuntimeToolResultMessages, renderRuntimePromptContextSegment, renderRuntimeToolResult, renderRuntimeContextPrompt, resolveConfiguredModelSelection, } from "@polpo-ai/core";
|
|
9
9
|
import { generateText } from "ai";
|
|
10
10
|
import { runModelPolicyTurn } from "@polpo-ai/llm";
|
|
11
11
|
import { appendModelResponseMessages } from "./message-mapping.js";
|
|
12
12
|
import { emitFileChanged, indexToolResultsByCallId, invalidModelToolCallEvent, isInvalidModelToolCall, providerToolCallEvent, toAITools, toAIToolChoice, } from "./tool-mapping.js";
|
|
13
|
+
import { createGuardedCompletionToolExecutor } from "./tool-guardrails.js";
|
|
13
14
|
export const MAX_TURNS = 20;
|
|
14
15
|
export function completionResolvedModelInfo(model) {
|
|
15
16
|
return {
|
|
@@ -68,7 +69,7 @@ export function buildSummarizeFn(m, providerOptions) {
|
|
|
68
69
|
return result.text.trim();
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
|
-
export async function buildRuntimeAgentPrompt(deps, agentConfig, extraSystemParts, loopContextPart, runtimeContext) {
|
|
72
|
+
export async function buildRuntimeAgentPrompt(deps, agentConfig, extraSystemParts, loopContextPart, contextTrust = "off", runtimeContext) {
|
|
72
73
|
let fullSystemPrompt;
|
|
73
74
|
if (deps.buildRuntimePrompt) {
|
|
74
75
|
fullSystemPrompt = await deps.buildRuntimePrompt(agentConfig, {
|
|
@@ -96,7 +97,14 @@ export async function buildRuntimeAgentPrompt(deps, agentConfig, extraSystemPart
|
|
|
96
97
|
const memoryStore = deps.getMemoryStore();
|
|
97
98
|
const agentMemory = await memoryStore?.get(agentMemoryScope(agentConfig.name));
|
|
98
99
|
if (agentMemory) {
|
|
99
|
-
fullSystemPrompt +=
|
|
100
|
+
fullSystemPrompt += contextTrust === "enforce"
|
|
101
|
+
? `\n\n${renderRuntimePromptContextSegment(createRuntimePromptContextSegment({
|
|
102
|
+
kind: "memory.agent",
|
|
103
|
+
sourceId: agentConfig.name,
|
|
104
|
+
trust: "untrusted",
|
|
105
|
+
content: agentMemory,
|
|
106
|
+
}))}`
|
|
107
|
+
: `\n\n## Your persistent memory\n\n${agentMemory}`;
|
|
100
108
|
}
|
|
101
109
|
}
|
|
102
110
|
const runtimeContextPrompt = renderRuntimeContextPrompt(runtimeContext);
|
|
@@ -108,20 +116,36 @@ export async function buildRuntimeAgentPrompt(deps, agentConfig, extraSystemPart
|
|
|
108
116
|
export async function runAgentStepCompletion(options) {
|
|
109
117
|
const { deps, agentConfig, aiMessages, extraSystemParts, context, stepName, runtimeContext, onToolCall, } = options;
|
|
110
118
|
const settings = deps.getConfig()?.settings;
|
|
119
|
+
const contextTrust = normalizeRuntimeContextTrustMode(options.contextTrust ?? settings?.contextTrust);
|
|
111
120
|
const reasoning = agentConfig.reasoning ?? settings?.reasoning;
|
|
112
121
|
const initialResolved = await deps.resolveAgentModel(agentConfigForModelPrimary(agentConfig, settings), reasoning);
|
|
113
122
|
let m = initialResolved.model;
|
|
114
123
|
let providerOpts = initialResolved.providerOptions;
|
|
115
124
|
const modelSelection = modelSelectionForAgent(agentConfig, modelSelectionForResolvedModel(m), settings);
|
|
116
125
|
const resolvedTools = await deps.resolveAgentTools(agentConfig);
|
|
126
|
+
const executeTool = createGuardedCompletionToolExecutor({
|
|
127
|
+
executor: resolvedTools.executor,
|
|
128
|
+
tools: resolvedTools.tools,
|
|
129
|
+
middleware: deps.runToolMiddleware,
|
|
130
|
+
context: {
|
|
131
|
+
planId: options.runtimePlan?.id,
|
|
132
|
+
surface: options.runtimePlan?.surface,
|
|
133
|
+
source: "loop-step",
|
|
134
|
+
agent: agentConfig.name,
|
|
135
|
+
runId: options.runId,
|
|
136
|
+
sessionId: options.sessionId,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
117
139
|
const aiTools = {
|
|
118
140
|
...toAITools(resolvedTools.tools),
|
|
119
141
|
...(resolvedTools.extraAiTools ?? {}),
|
|
120
142
|
};
|
|
121
143
|
const providerToolNames = new Set(Object.keys(resolvedTools.extraAiTools ?? {}));
|
|
122
144
|
const modelToolChoice = toAIToolChoice(agentConfig.toolChoice);
|
|
123
|
-
const fullSystemPrompt = await buildRuntimeAgentPrompt(deps, agentConfig, extraSystemParts, loopContextPrompt(stepName, context), runtimeContext);
|
|
124
|
-
const messages =
|
|
145
|
+
const fullSystemPrompt = await buildRuntimeAgentPrompt(deps, agentConfig, extraSystemParts, loopContextPrompt(stepName, context, contextTrust), contextTrust, runtimeContext);
|
|
146
|
+
const messages = contextTrust === "enforce"
|
|
147
|
+
? protectRuntimeToolResultMessages(aiMessages)
|
|
148
|
+
: [...aiMessages];
|
|
125
149
|
let finalText = "";
|
|
126
150
|
let totalUsage = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
|
|
127
151
|
let lastProviderMetadata;
|
|
@@ -140,7 +164,10 @@ export async function runAgentStepCompletion(options) {
|
|
|
140
164
|
mode: "chat",
|
|
141
165
|
});
|
|
142
166
|
if (compactionResult.compacted) {
|
|
143
|
-
|
|
167
|
+
const compacted = contextTrust === "enforce"
|
|
168
|
+
? protectRuntimeToolResultMessages(compactionResult.messages)
|
|
169
|
+
: compactionResult.messages;
|
|
170
|
+
messages.splice(0, messages.length, ...compacted);
|
|
144
171
|
}
|
|
145
172
|
const toolCallNames = new Map();
|
|
146
173
|
const toolCallArgsText = new Map();
|
|
@@ -191,7 +218,7 @@ export async function runAgentStepCompletion(options) {
|
|
|
191
218
|
}
|
|
192
219
|
totalUsage = addUsage(totalUsage, turnResult.usage);
|
|
193
220
|
lastProviderMetadata = turnResult.providerMetadata;
|
|
194
|
-
await appendModelResponseMessages(messages, turnResult, turnText, turnResult.toolCalls);
|
|
221
|
+
await appendModelResponseMessages(messages, turnResult, turnText, turnResult.toolCalls, contextTrust);
|
|
195
222
|
finalText += turnText;
|
|
196
223
|
if (turnResult.toolCalls.length === 0)
|
|
197
224
|
break;
|
|
@@ -218,7 +245,10 @@ export async function runAgentStepCompletion(options) {
|
|
|
218
245
|
arguments: callArgs,
|
|
219
246
|
state: "calling",
|
|
220
247
|
});
|
|
221
|
-
const result = await
|
|
248
|
+
const result = await executeTool(call.toolName, callArgs, {
|
|
249
|
+
callId: call.toolCallId,
|
|
250
|
+
signal: options.signal,
|
|
251
|
+
});
|
|
222
252
|
const isError = result.startsWith("Error:");
|
|
223
253
|
emitFileChanged(call.toolName, callArgs, result, deps.emit);
|
|
224
254
|
const event = {
|
|
@@ -237,8 +267,18 @@ export async function runAgentStepCompletion(options) {
|
|
|
237
267
|
toolCallId: call.toolCallId,
|
|
238
268
|
toolName: call.toolName,
|
|
239
269
|
output: isError
|
|
240
|
-
? {
|
|
241
|
-
|
|
270
|
+
? {
|
|
271
|
+
type: "error-text",
|
|
272
|
+
value: contextTrust === "enforce"
|
|
273
|
+
? renderRuntimeToolResult(call.toolName, call.toolCallId, result)
|
|
274
|
+
: result,
|
|
275
|
+
}
|
|
276
|
+
: {
|
|
277
|
+
type: "text",
|
|
278
|
+
value: contextTrust === "enforce"
|
|
279
|
+
? renderRuntimeToolResult(call.toolName, call.toolCallId, result)
|
|
280
|
+
: result,
|
|
281
|
+
},
|
|
242
282
|
}],
|
|
243
283
|
});
|
|
244
284
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-step-runner.js","sourceRoot":"","sources":["../../../src/routes/completions/agent-step-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-step-runner.js","sourceRoot":"","sources":["../../../src/routes/completions/agent-step-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
* interactive orchestrator tools, provider-executed tools, context
|
|
7
7
|
* compaction, session persistence, and metering callbacks.
|
|
8
8
|
*/
|
|
9
|
-
import { type ModelSelection, type ResolvedExecutionRoute, type RuntimePlan, type RuntimeContextResolution } from "@polpo-ai/core";
|
|
9
|
+
import { type ModelSelection, type RuntimeContextTrustMode, type ResolvedExecutionRoute, type RuntimePlan, type RuntimeContextResolution } from "@polpo-ai/core";
|
|
10
10
|
import type { RuntimeSandboxOptions } from "@polpo-ai/core";
|
|
11
11
|
import type { CompletionRouteDeps } from "../completions.js";
|
|
12
12
|
import { type ResolvedModelInfo } from "./agent-step-runner.js";
|
|
13
|
+
import type { CompletionToolExecutor } from "./tool-guardrails.js";
|
|
13
14
|
/** Resolved execution context for a standard (non-loop) chat completion. */
|
|
14
15
|
export interface ChatCompletionExecution {
|
|
15
16
|
deps: CompletionRouteDeps;
|
|
@@ -30,7 +31,7 @@ export interface ChatCompletionExecution {
|
|
|
30
31
|
modelSelection?: ModelSelection;
|
|
31
32
|
modelToolChoice?: unknown;
|
|
32
33
|
effectiveTools: any[];
|
|
33
|
-
effectiveToolExecutor:
|
|
34
|
+
effectiveToolExecutor: CompletionToolExecutor;
|
|
34
35
|
/**
|
|
35
36
|
* Provider-executed tools the host wants merged into the AI SDK tool
|
|
36
37
|
* palette as-is. Polpo never invokes these locally — the SDK / model
|
|
@@ -44,6 +45,8 @@ export interface ChatCompletionExecution {
|
|
|
44
45
|
sessionId: string | null;
|
|
45
46
|
/** Frozen, secret-free runtime decision emitted before provider/tool resolution. */
|
|
46
47
|
runtimePlan?: RuntimePlan;
|
|
48
|
+
/** Explicit, host-resolved context-trust mode for this conversation turn. */
|
|
49
|
+
contextTrust?: RuntimeContextTrustMode;
|
|
47
50
|
/** Structured snapshot used to assemble fullSystemPrompt for this turn. */
|
|
48
51
|
runtimeContext?: RuntimeContextResolution;
|
|
49
52
|
/** Validated direct-or-loop decision for audit and downstream propagation. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-handler.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/chat-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"chat-handler.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/chat-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAoBhC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAMnE,4EAA4E;AAC5E,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,qBAAqB,CAAA;KAAE,CAAC;IAC3F,YAAY,EAAE,MAAM,CAAC;IACrB;2EACuE;IACvE,WAAW,EAAE,GAAG,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,CAAC,EAAE,iBAAiB,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,GAAG,EAAE,CAAC;IACtB,qBAAqB,EAAE,sBAAsB,CAAC;IAC9C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,YAAY,EAAE,GAAG,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oFAAoF;IACpF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,8EAA8E;IAC9E,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAmBD,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,uBAAuB,GAAG,GAAG,CA+d/E;AAED,oEAAoE;AACpE,wBAAsB,6BAA6B,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,CA4XvG"}
|
|
@@ -7,12 +7,13 @@
|
|
|
7
7
|
* compaction, session persistence, and metering callbacks.
|
|
8
8
|
*/
|
|
9
9
|
import { streamSSE } from "hono/streaming";
|
|
10
|
-
import { compactIfNeeded, } from "@polpo-ai/core";
|
|
10
|
+
import { compactIfNeeded, renderRuntimeToolResult, } from "@polpo-ai/core";
|
|
11
11
|
import { runModelPolicyTurn } from "@polpo-ai/llm";
|
|
12
12
|
import { agentConfigForModelAttempt, buildSummarizeFn, completionResolvedModelInfo, MAX_TURNS, modelSelectionForResolvedModel, } from "./agent-step-runner.js";
|
|
13
13
|
import { appendModelResponseMessages } from "./message-mapping.js";
|
|
14
|
-
import { completionResponse, modelErrorEnvelope, modelNotFoundEnvelope, sseChunk } from "./sse.js";
|
|
14
|
+
import { completionResponse, guardrailErrorEnvelope, modelErrorEnvelope, modelNotFoundEnvelope, sseChunk, } from "./sse.js";
|
|
15
15
|
import { CLIENT_SIDE_TOOLS, CLIENT_SIDE_TOOL_NAMES, emitFileChanged, indexToolResultsByCallId, invalidModelToolCallEvent, isInvalidModelToolCall, persistAssistantMessage, recordProviderToolCall, toAITools, } from "./tool-mapping.js";
|
|
16
|
+
import { applyCompletionOutputPolicy, streamingOutputPolicyMode, } from "./output-guardrails.js";
|
|
16
17
|
/**
|
|
17
18
|
* Merge the effective tool palette for the LLM.
|
|
18
19
|
*
|
|
@@ -37,6 +38,7 @@ export function streamChatCompletion(c, exec) {
|
|
|
37
38
|
let providerOpts = primaryProviderOpts;
|
|
38
39
|
const modelSelection = exec.modelSelection ?? modelSelectionForResolvedModel(primaryModel);
|
|
39
40
|
const reasoning = exec.agentConfig?.reasoning ?? deps.getConfig()?.settings?.reasoning;
|
|
41
|
+
const outputMode = streamingOutputPolicyMode(deps.runOutputPolicy);
|
|
40
42
|
return streamSSE(c, async (stream) => {
|
|
41
43
|
// Abort controller: cancelled when the client disconnects (closes SSE)
|
|
42
44
|
const abortController = new AbortController();
|
|
@@ -68,6 +70,24 @@ export function streamChatCompletion(c, exec) {
|
|
|
68
70
|
let totalUsage = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
|
|
69
71
|
const toolCallsAccum = [];
|
|
70
72
|
let lastProviderMetadata;
|
|
73
|
+
let outputPolicyApplied = false;
|
|
74
|
+
const finalizeOutput = async () => {
|
|
75
|
+
if (outputPolicyApplied)
|
|
76
|
+
return;
|
|
77
|
+
finalText = await applyCompletionOutputPolicy({
|
|
78
|
+
outputPolicy: deps.runOutputPolicy,
|
|
79
|
+
text: finalText,
|
|
80
|
+
mode: outputMode === "buffer" ? "enforce" : "audit",
|
|
81
|
+
runtimePlan: exec.runtimePlan,
|
|
82
|
+
agent: body.agent,
|
|
83
|
+
sessionId,
|
|
84
|
+
signal: abortController.signal,
|
|
85
|
+
});
|
|
86
|
+
outputPolicyApplied = true;
|
|
87
|
+
if (outputMode === "buffer" && finalText) {
|
|
88
|
+
await stream.writeSSE({ data: sseChunk(completionId, { content: finalText }) });
|
|
89
|
+
}
|
|
90
|
+
};
|
|
71
91
|
try {
|
|
72
92
|
for (let turn = 0; turn < MAX_TURNS; turn++) {
|
|
73
93
|
// Bail out early if the client already disconnected
|
|
@@ -140,7 +160,9 @@ export function streamChatCompletion(c, exec) {
|
|
|
140
160
|
else if (event.type === "text-delta") {
|
|
141
161
|
turnText += event.text;
|
|
142
162
|
finalText += event.text;
|
|
143
|
-
|
|
163
|
+
if (outputMode !== "buffer") {
|
|
164
|
+
await stream.writeSSE({ data: sseChunk(completionId, { content: event.text }) });
|
|
165
|
+
}
|
|
144
166
|
}
|
|
145
167
|
else if (event.type === "tool-input-start") {
|
|
146
168
|
// Emit early "preparing" signal — the LLM has started generating a tool call
|
|
@@ -182,7 +204,9 @@ export function streamChatCompletion(c, exec) {
|
|
|
182
204
|
}
|
|
183
205
|
if (streamError) {
|
|
184
206
|
finalText += `\n\nError: ${streamError}`;
|
|
185
|
-
|
|
207
|
+
if (outputMode !== "buffer") {
|
|
208
|
+
await stream.writeSSE({ data: sseChunk(completionId, { content: `\n\nError: ${streamError}` }) });
|
|
209
|
+
}
|
|
186
210
|
break;
|
|
187
211
|
}
|
|
188
212
|
const toolCalls = result.toolCalls;
|
|
@@ -198,7 +222,7 @@ export function streamChatCompletion(c, exec) {
|
|
|
198
222
|
totalTokens: (totalUsage.totalTokens ?? 0) + (usage.totalTokens ?? 0),
|
|
199
223
|
};
|
|
200
224
|
lastProviderMetadata = result.providerMetadata;
|
|
201
|
-
await appendModelResponseMessages(messages, result, turnText, toolCalls);
|
|
225
|
+
await appendModelResponseMessages(messages, result, turnText, toolCalls, exec.contextTrust ?? "off");
|
|
202
226
|
if (toolCalls.length === 0)
|
|
203
227
|
break;
|
|
204
228
|
const dispatchableToolCalls = toolCalls.filter((call) => !isInvalidModelToolCall(call));
|
|
@@ -223,6 +247,7 @@ export function streamChatCompletion(c, exec) {
|
|
|
223
247
|
arguments: clientSideCall.input,
|
|
224
248
|
state: "interrupted",
|
|
225
249
|
});
|
|
250
|
+
await finalizeOutput();
|
|
226
251
|
// Send as standard OpenAI tool_calls finish reason
|
|
227
252
|
await stream.writeSSE({
|
|
228
253
|
data: JSON.stringify({
|
|
@@ -259,6 +284,7 @@ export function streamChatCompletion(c, exec) {
|
|
|
259
284
|
arguments: interactiveCall.input,
|
|
260
285
|
state: "interrupted",
|
|
261
286
|
});
|
|
287
|
+
await finalizeOutput();
|
|
262
288
|
if (interactiveCall.toolName === "ask_user") {
|
|
263
289
|
const questions = interactiveCall.input?.questions ?? [];
|
|
264
290
|
await stream.writeSSE({
|
|
@@ -356,7 +382,10 @@ export function streamChatCompletion(c, exec) {
|
|
|
356
382
|
tool_call: { id: call.toolCallId, name: call.toolName, arguments: callArgs, state: "calling" },
|
|
357
383
|
}),
|
|
358
384
|
});
|
|
359
|
-
const result = await effectiveToolExecutor(call.toolName, callArgs
|
|
385
|
+
const result = await effectiveToolExecutor(call.toolName, callArgs, {
|
|
386
|
+
callId: call.toolCallId,
|
|
387
|
+
signal: abortController.signal,
|
|
388
|
+
});
|
|
360
389
|
const isError = result.startsWith("Error:");
|
|
361
390
|
emitFileChanged(call.toolName, callArgs, result, deps.emit);
|
|
362
391
|
// Accumulate for persistence
|
|
@@ -383,13 +412,24 @@ export function streamChatCompletion(c, exec) {
|
|
|
383
412
|
toolCallId: call.toolCallId,
|
|
384
413
|
toolName: call.toolName,
|
|
385
414
|
output: isError
|
|
386
|
-
? {
|
|
387
|
-
|
|
415
|
+
? {
|
|
416
|
+
type: "error-text",
|
|
417
|
+
value: exec.contextTrust === "enforce"
|
|
418
|
+
? renderRuntimeToolResult(call.toolName, call.toolCallId, result)
|
|
419
|
+
: result,
|
|
420
|
+
}
|
|
421
|
+
: {
|
|
422
|
+
type: "text",
|
|
423
|
+
value: exec.contextTrust === "enforce"
|
|
424
|
+
? renderRuntimeToolResult(call.toolName, call.toolCallId, result)
|
|
425
|
+
: result,
|
|
426
|
+
},
|
|
388
427
|
}],
|
|
389
428
|
});
|
|
390
429
|
}
|
|
391
430
|
}
|
|
392
431
|
if (!abortController.signal.aborted) {
|
|
432
|
+
await finalizeOutput();
|
|
393
433
|
await stream.writeSSE({ data: sseChunk(completionId, {}, "stop") });
|
|
394
434
|
await stream.writeSSE({ data: "[DONE]" });
|
|
395
435
|
}
|
|
@@ -403,8 +443,17 @@ export function streamChatCompletion(c, exec) {
|
|
|
403
443
|
// Friendly model_not_found surface — gateway returns 404 for
|
|
404
444
|
// renamed/deprecated SKUs (e.g. xai/grok-4-fast after the 4.1
|
|
405
445
|
// rename). Without this catch the error propagates as a 500.
|
|
446
|
+
const guardrailError = guardrailErrorEnvelope(err);
|
|
406
447
|
const notFound = modelNotFoundEnvelope(err, m?.id, body.agent);
|
|
407
|
-
if (
|
|
448
|
+
if (guardrailError) {
|
|
449
|
+
finalText = guardrailError.message;
|
|
450
|
+
outputPolicyApplied = true;
|
|
451
|
+
await stream.writeSSE({
|
|
452
|
+
data: sseChunk(completionId, {}, "stop", { error: guardrailError }),
|
|
453
|
+
});
|
|
454
|
+
await stream.writeSSE({ data: "[DONE]" });
|
|
455
|
+
}
|
|
456
|
+
else if (notFound) {
|
|
408
457
|
await stream.writeSSE({
|
|
409
458
|
data: sseChunk(completionId, {}, "stop", { error: notFound }),
|
|
410
459
|
});
|
|
@@ -413,7 +462,7 @@ export function streamChatCompletion(c, exec) {
|
|
|
413
462
|
else {
|
|
414
463
|
const error = modelErrorEnvelope(err);
|
|
415
464
|
const text = `Model request failed: ${error.message}`;
|
|
416
|
-
finalText
|
|
465
|
+
finalText = outputMode === "buffer" ? text : finalText + text;
|
|
417
466
|
await stream.writeSSE({ data: sseChunk(completionId, { content: text }) });
|
|
418
467
|
await stream.writeSSE({ data: sseChunk(completionId, {}, "stop", { error }) });
|
|
419
468
|
await stream.writeSSE({ data: "[DONE]" });
|
|
@@ -466,6 +515,20 @@ export async function runNonStreamingChatCompletion(c, exec) {
|
|
|
466
515
|
let totalUsage = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
|
|
467
516
|
const toolCallsAccum = [];
|
|
468
517
|
let lastProviderMetadata;
|
|
518
|
+
let outputPolicyApplied = false;
|
|
519
|
+
const finalizeOutput = async () => {
|
|
520
|
+
if (outputPolicyApplied)
|
|
521
|
+
return;
|
|
522
|
+
finalText = await applyCompletionOutputPolicy({
|
|
523
|
+
outputPolicy: deps.runOutputPolicy,
|
|
524
|
+
text: finalText,
|
|
525
|
+
mode: "enforce",
|
|
526
|
+
runtimePlan: exec.runtimePlan,
|
|
527
|
+
agent: body.agent,
|
|
528
|
+
sessionId,
|
|
529
|
+
});
|
|
530
|
+
outputPolicyApplied = true;
|
|
531
|
+
};
|
|
469
532
|
try {
|
|
470
533
|
for (let turn = 0; turn < MAX_TURNS; turn++) {
|
|
471
534
|
// Compact context if approaching the model's context window limit.
|
|
@@ -518,7 +581,7 @@ export async function runNonStreamingChatCompletion(c, exec) {
|
|
|
518
581
|
totalTokens: (totalUsage.totalTokens ?? 0) + (usage.totalTokens ?? 0),
|
|
519
582
|
};
|
|
520
583
|
lastProviderMetadata = turnResult.providerMetadata;
|
|
521
|
-
await appendModelResponseMessages(messages, turnResult, turnText, turnResult.toolCalls);
|
|
584
|
+
await appendModelResponseMessages(messages, turnResult, turnText, turnResult.toolCalls, exec.contextTrust ?? "off");
|
|
522
585
|
finalText += turnText;
|
|
523
586
|
const toolCalls = turnResult.toolCalls;
|
|
524
587
|
if (toolCalls.length === 0)
|
|
@@ -538,6 +601,7 @@ export async function runNonStreamingChatCompletion(c, exec) {
|
|
|
538
601
|
arguments: clientSideCall.input,
|
|
539
602
|
state: "interrupted",
|
|
540
603
|
});
|
|
604
|
+
await finalizeOutput();
|
|
541
605
|
return c.json({
|
|
542
606
|
id: completionId,
|
|
543
607
|
object: "chat.completion",
|
|
@@ -576,6 +640,7 @@ export async function runNonStreamingChatCompletion(c, exec) {
|
|
|
576
640
|
arguments: interactiveCall.input,
|
|
577
641
|
state: "interrupted",
|
|
578
642
|
});
|
|
643
|
+
await finalizeOutput();
|
|
579
644
|
const baseResponse = {
|
|
580
645
|
id: completionId,
|
|
581
646
|
object: "chat.completion",
|
|
@@ -700,7 +765,10 @@ export async function runNonStreamingChatCompletion(c, exec) {
|
|
|
700
765
|
recordProviderToolCall(toolCallsAccum, call, providerToolResults);
|
|
701
766
|
continue;
|
|
702
767
|
}
|
|
703
|
-
const result = await effectiveToolExecutor(call.toolName, callArgs
|
|
768
|
+
const result = await effectiveToolExecutor(call.toolName, callArgs, {
|
|
769
|
+
callId: call.toolCallId,
|
|
770
|
+
signal: c.req.raw.signal,
|
|
771
|
+
});
|
|
704
772
|
const isError = result.startsWith("Error:");
|
|
705
773
|
emitFileChanged(call.toolName, callArgs, result, deps.emit);
|
|
706
774
|
// Accumulate for persistence
|
|
@@ -719,18 +787,35 @@ export async function runNonStreamingChatCompletion(c, exec) {
|
|
|
719
787
|
toolCallId: call.toolCallId,
|
|
720
788
|
toolName: call.toolName,
|
|
721
789
|
output: isError
|
|
722
|
-
? {
|
|
723
|
-
|
|
790
|
+
? {
|
|
791
|
+
type: "error-text",
|
|
792
|
+
value: exec.contextTrust === "enforce"
|
|
793
|
+
? renderRuntimeToolResult(call.toolName, call.toolCallId, result)
|
|
794
|
+
: result,
|
|
795
|
+
}
|
|
796
|
+
: {
|
|
797
|
+
type: "text",
|
|
798
|
+
value: exec.contextTrust === "enforce"
|
|
799
|
+
? renderRuntimeToolResult(call.toolName, call.toolCallId, result)
|
|
800
|
+
: result,
|
|
801
|
+
},
|
|
724
802
|
}],
|
|
725
803
|
});
|
|
726
804
|
}
|
|
727
805
|
}
|
|
806
|
+
await finalizeOutput();
|
|
728
807
|
return c.json(completionResponse(completionId, finalText, totalUsage));
|
|
729
808
|
}
|
|
730
809
|
catch (err) {
|
|
731
810
|
// Friendly model_not_found surface — gateway returns 404 for
|
|
732
811
|
// renamed/deprecated SKUs (e.g. xai/grok-4-fast after the 4.1
|
|
733
812
|
// rename). Without this catch the error propagates as a 500.
|
|
813
|
+
const guardrailError = guardrailErrorEnvelope(err);
|
|
814
|
+
if (guardrailError) {
|
|
815
|
+
finalText = guardrailError.message;
|
|
816
|
+
outputPolicyApplied = true;
|
|
817
|
+
return c.json({ error: guardrailError }, (guardrailError.code === "guardrail_approval_required" ? 409 : 403));
|
|
818
|
+
}
|
|
734
819
|
const notFound = modelNotFoundEnvelope(err, m?.id, body.agent);
|
|
735
820
|
if (notFound) {
|
|
736
821
|
return c.json({ error: notFound }, 400);
|