@polpo-ai/server 0.15.97 → 0.15.98
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/channels/conversation-bridge.d.ts +6 -0
- package/dist/channels/conversation-bridge.d.ts.map +1 -1
- package/dist/channels/conversation-bridge.js +38 -1
- package/dist/channels/conversation-bridge.js.map +1 -1
- package/dist/channels/conversation-bridge.test.js +12 -0
- package/dist/channels/conversation-bridge.test.js.map +1 -1
- package/dist/mcp/conversation-channels.d.ts.map +1 -1
- package/dist/mcp/conversation-channels.js +2 -0
- package/dist/mcp/conversation-channels.js.map +1 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +2 -0
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/completions/agent-step-runner.d.ts +2 -1
- package/dist/routes/completions/agent-step-runner.d.ts.map +1 -1
- package/dist/routes/completions/agent-step-runner.js +29 -4
- package/dist/routes/completions/agent-step-runner.js.map +1 -1
- package/dist/routes/completions/chat-via-run-handler.test.js +78 -0
- package/dist/routes/completions/chat-via-run-handler.test.js.map +1 -1
- package/dist/routes/completions/conversation-turn.d.ts +3 -0
- package/dist/routes/completions/conversation-turn.d.ts.map +1 -1
- package/dist/routes/completions/conversation-turn.js +59 -4
- package/dist/routes/completions/conversation-turn.js.map +1 -1
- package/dist/routes/completions/project-loop-runner.d.ts +7 -1
- package/dist/routes/completions/project-loop-runner.d.ts.map +1 -1
- package/dist/routes/completions/project-loop-runner.js +66 -12
- package/dist/routes/completions/project-loop-runner.js.map +1 -1
- package/dist/routes/completions/project-loop-runner.test.js +8 -0
- package/dist/routes/completions/project-loop-runner.test.js.map +1 -1
- package/dist/routes/completions/runtime-plan-hook.test.js +18 -4
- package/dist/routes/completions/runtime-plan-hook.test.js.map +1 -1
- package/dist/routes/completions/schemas.d.ts +6 -0
- package/dist/routes/completions/schemas.d.ts.map +1 -1
- package/dist/routes/completions/schemas.js +21 -0
- package/dist/routes/completions/schemas.js.map +1 -1
- package/dist/routes/completions/schemas.test.js +20 -0
- package/dist/routes/completions/schemas.test.js.map +1 -1
- package/dist/routes/completions/sse.d.ts +1 -1
- package/dist/routes/completions/sse.d.ts.map +1 -1
- package/dist/routes/completions/sse.js +9 -1
- package/dist/routes/completions/sse.js.map +1 -1
- package/dist/routes/completions/tool-policy-runtime.d.ts +41 -0
- package/dist/routes/completions/tool-policy-runtime.d.ts.map +1 -0
- package/dist/routes/completions/tool-policy-runtime.js +52 -0
- package/dist/routes/completions/tool-policy-runtime.js.map +1 -0
- package/dist/routes/completions/tool-policy-runtime.test.d.ts +2 -0
- package/dist/routes/completions/tool-policy-runtime.test.d.ts.map +1 -0
- package/dist/routes/completions/tool-policy-runtime.test.js +84 -0
- package/dist/routes/completions/tool-policy-runtime.test.js.map +1 -0
- package/dist/routes/completions-loop-runtime.test.js +50 -2
- package/dist/routes/completions-loop-runtime.test.js.map +1 -1
- package/dist/routes/completions.d.ts +6 -0
- package/dist/routes/completions.d.ts.map +1 -1
- package/dist/routes/completions.js.map +1 -1
- package/dist/routes/conversation-channels.d.ts.map +1 -1
- package/dist/routes/conversation-channels.js +17 -0
- package/dist/routes/conversation-channels.js.map +1 -1
- package/dist/schemas.d.ts +8 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +16 -1
- package/dist/schemas.js.map +1 -1
- package/dist/schemas.test.js +9 -0
- package/dist/schemas.test.js.map +1 -1
- package/package.json +7 -7
|
@@ -16,6 +16,7 @@ import { applyCompletionOutputPolicy } from "./output-guardrails.js";
|
|
|
16
16
|
import { guardrailErrorEnvelope } from "./sse.js";
|
|
17
17
|
import { MODEL_CONTROLLED_TOOL_PROMPT, createModelControlledToolPool, forcedModelToolName, } from "./tool-disclosure.js";
|
|
18
18
|
import { isStructuredResponseFormat, modelOutputForResponseFormat, } from "./structured-output.js";
|
|
19
|
+
import { createPolicyGuardedToolExecutor, filterToolDefinitionsByPolicy, filterToolRecordByPolicy, resolveExecutionToolPolicy, toolPolicyAuditData, } from "./tool-policy-runtime.js";
|
|
19
20
|
function projectLoopHasAgentStep(loop) {
|
|
20
21
|
const candidate = loop;
|
|
21
22
|
if (candidate.steps && typeof candidate.steps === "object") {
|
|
@@ -197,14 +198,14 @@ function completionInvocation(invocation) {
|
|
|
197
198
|
return invocation ?? { surface: "agent", source: "request" };
|
|
198
199
|
}
|
|
199
200
|
function toolInvocationSurface(invocation, loop) {
|
|
201
|
+
if (loop || invocation.source === "loop-step")
|
|
202
|
+
return "loop";
|
|
200
203
|
if (invocation.surface === "channel" || invocation.source === "channel")
|
|
201
204
|
return "channel";
|
|
202
205
|
if (invocation.source === "schedule")
|
|
203
206
|
return "schedule";
|
|
204
207
|
if (invocation.surface === "task" || invocation.source === "task")
|
|
205
208
|
return "task";
|
|
206
|
-
if (loop || invocation.source === "loop-step")
|
|
207
|
-
return "loop";
|
|
208
209
|
return "chat";
|
|
209
210
|
}
|
|
210
211
|
export function createCompletionToolInvocation(input) {
|
|
@@ -336,6 +337,7 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
|
|
|
336
337
|
let runtimePlan;
|
|
337
338
|
let runtimeContext;
|
|
338
339
|
let executionRoute;
|
|
340
|
+
let selectedLoopAllowedTools;
|
|
339
341
|
let activatedSkills = [];
|
|
340
342
|
let deferredAgentTools = false;
|
|
341
343
|
let completionId = options.completionId ?? `chatcmpl-${nanoid(24)}`;
|
|
@@ -358,11 +360,11 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
|
|
|
358
360
|
throw error;
|
|
359
361
|
}
|
|
360
362
|
const requestClientSideTools = createRequestClientTools(body.tools);
|
|
361
|
-
|
|
363
|
+
let clientSideTools = {
|
|
362
364
|
...builtInClientSideTools,
|
|
363
365
|
...requestClientSideTools,
|
|
364
366
|
};
|
|
365
|
-
|
|
367
|
+
let clientSideToolNames = new Set(Object.keys(clientSideTools));
|
|
366
368
|
const contextTrust = normalizeRuntimeContextTrustMode(deps.getConfig()?.settings?.contextTrust);
|
|
367
369
|
const converted = convertMessages(body.messages, contextTrust);
|
|
368
370
|
let { aiMessages, extraSystemParts, promptContextSegments, } = converted;
|
|
@@ -377,6 +379,7 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
|
|
|
377
379
|
if (!selection)
|
|
378
380
|
throw new Error(`Loop "${body.loop}" was not resolved`);
|
|
379
381
|
agentConfig = selection.agent;
|
|
382
|
+
selectedLoopAllowedTools = selection.allowedTools;
|
|
380
383
|
options.setHeader?.("x-loop", selection.name);
|
|
381
384
|
const invocation = completionInvocation(options.runtime);
|
|
382
385
|
executionRoute = createExplicitExecutionRoute({
|
|
@@ -419,6 +422,7 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
|
|
|
419
422
|
throw new Error(`Execution router loop "${selection.name}" was not loaded`);
|
|
420
423
|
}
|
|
421
424
|
agentConfig = selection.agent;
|
|
425
|
+
selectedLoopAllowedTools = selection.allowedTools;
|
|
422
426
|
projectLoopRuntime = { agentConfig, projectLoop };
|
|
423
427
|
options.setHeader?.("x-loop", selection.name);
|
|
424
428
|
}
|
|
@@ -726,6 +730,30 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
|
|
|
726
730
|
extraAiTools = resolvedTools.extraAiTools;
|
|
727
731
|
}
|
|
728
732
|
if (!projectLoopRuntime) {
|
|
733
|
+
const runtimeInvocation = completionInvocation(options.runtime);
|
|
734
|
+
const policyMode = body.loop
|
|
735
|
+
|| runtimeInvocation.source === "loop-step"
|
|
736
|
+
? "loop"
|
|
737
|
+
: runtimeInvocation.surface === "channel"
|
|
738
|
+
|| runtimeInvocation.source === "channel"
|
|
739
|
+
? "channels"
|
|
740
|
+
: "chat";
|
|
741
|
+
const toolPolicy = resolveExecutionToolPolicy({
|
|
742
|
+
agent: resolvedAgentConfig,
|
|
743
|
+
mode: policyMode,
|
|
744
|
+
routeAllowedTools: options.runtime?.toolPolicy?.routeAllowedTools,
|
|
745
|
+
requestAllowedTools: body.polpo?.execution?.allowedTools,
|
|
746
|
+
executionAllowedTools: options.runtime?.toolPolicy?.executionAllowedTools,
|
|
747
|
+
loopAllowedTools: selectedLoopAllowedTools,
|
|
748
|
+
grantAllowedTools: options.runtime?.toolPolicy?.grantAllowedTools,
|
|
749
|
+
});
|
|
750
|
+
const requestedToolNames = [
|
|
751
|
+
...effectiveTools
|
|
752
|
+
.map((tool) => tool?.name)
|
|
753
|
+
.filter((name) => typeof name === "string"),
|
|
754
|
+
...Object.keys(extraAiTools ?? {}),
|
|
755
|
+
...Object.keys(clientSideTools),
|
|
756
|
+
];
|
|
729
757
|
try {
|
|
730
758
|
assertRequestClientToolNamesAvailable(body.tools, [
|
|
731
759
|
...effectiveTools
|
|
@@ -741,6 +769,27 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
|
|
|
741
769
|
}
|
|
742
770
|
throw error;
|
|
743
771
|
}
|
|
772
|
+
effectiveTools = filterToolDefinitionsByPolicy(effectiveTools, toolPolicy);
|
|
773
|
+
extraAiTools = filterToolRecordByPolicy(extraAiTools, toolPolicy);
|
|
774
|
+
clientSideTools = filterToolRecordByPolicy(clientSideTools, toolPolicy);
|
|
775
|
+
clientSideToolNames = new Set(Object.keys(clientSideTools));
|
|
776
|
+
effectiveToolExecutor = createPolicyGuardedToolExecutor(effectiveToolExecutor, toolPolicy);
|
|
777
|
+
deps.emit("runtime:tool-policy", toolPolicyAuditData({
|
|
778
|
+
policy: toolPolicy,
|
|
779
|
+
requested: requestedToolNames,
|
|
780
|
+
mode: policyMode,
|
|
781
|
+
}));
|
|
782
|
+
const forcedTool = typeof body.tool_choice === "object"
|
|
783
|
+
? body.tool_choice.function.name
|
|
784
|
+
: forcedModelToolName(modelToolChoice);
|
|
785
|
+
if (forcedTool && ![
|
|
786
|
+
...effectiveTools.map((tool) => tool?.name),
|
|
787
|
+
...Object.keys(extraAiTools),
|
|
788
|
+
...Object.keys(clientSideTools),
|
|
789
|
+
].includes(forcedTool)) {
|
|
790
|
+
await cleanupFailedPreparation(onResponseFinished);
|
|
791
|
+
return completionError(`Tool "${forcedTool}" is not allowed by the effective execution policy`, 400, "tool_policy_denied");
|
|
792
|
+
}
|
|
744
793
|
effectiveToolExecutor = createGuardedCompletionToolExecutor({
|
|
745
794
|
executor: effectiveToolExecutor,
|
|
746
795
|
tools: effectiveTools,
|
|
@@ -811,6 +860,9 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
|
|
|
811
860
|
runtimeInvocation: options.runtime,
|
|
812
861
|
executionRoute,
|
|
813
862
|
activatedSkills,
|
|
863
|
+
requestAllowedTools: body.polpo?.execution?.allowedTools,
|
|
864
|
+
executionAllowedTools: options.runtime?.toolPolicy?.executionAllowedTools,
|
|
865
|
+
grantAllowedTools: options.runtime?.toolPolicy?.grantAllowedTools,
|
|
814
866
|
};
|
|
815
867
|
}
|
|
816
868
|
if (body.tool_choice !== undefined) {
|
|
@@ -903,6 +955,9 @@ export async function runConversationTurn(deps, input) {
|
|
|
903
955
|
executionRoute: prepared.executionRoute,
|
|
904
956
|
activatedSkills: prepared.activatedSkills,
|
|
905
957
|
parallelToolCalls: prepared.body.parallel_tool_calls,
|
|
958
|
+
requestAllowedTools: prepared.requestAllowedTools,
|
|
959
|
+
executionAllowedTools: prepared.executionAllowedTools,
|
|
960
|
+
grantAllowedTools: prepared.grantAllowedTools,
|
|
906
961
|
});
|
|
907
962
|
finalText = await applyCompletionOutputPolicy({
|
|
908
963
|
outputPolicy: prepared.deps.runOutputPolicy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-turn.js","sourceRoot":"","sources":["../../../src/routes/completions/conversation-turn.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation-turn.js","sourceRoot":"","sources":["../../../src/routes/completions/conversation-turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,12 +50,15 @@ export declare function runProjectLoopCompletion(options: {
|
|
|
50
50
|
activatedSkills?: readonly string[];
|
|
51
51
|
deliveryRunId?: string;
|
|
52
52
|
parallelToolCalls?: boolean;
|
|
53
|
+
requestAllowedTools?: readonly string[];
|
|
54
|
+
executionAllowedTools?: readonly string[];
|
|
55
|
+
grantAllowedTools?: readonly string[];
|
|
53
56
|
}): Promise<ProjectLoopRunResult>;
|
|
54
57
|
export declare function buildLoopResumeState(continuation: {
|
|
55
58
|
context: ContextBag;
|
|
56
59
|
steps: any[];
|
|
57
60
|
previousNode?: string;
|
|
58
|
-
} | undefined, aiMessages: any[], extraSystemParts: string[], approvedGates: LoopApprovedGate[] | undefined, contextTrust?: RuntimeContextTrustMode, activatedSkills?: readonly string[], parallelToolCalls?: boolean): LoopResumeState | undefined;
|
|
61
|
+
} | undefined, aiMessages: any[], extraSystemParts: string[], approvedGates: LoopApprovedGate[] | undefined, contextTrust?: RuntimeContextTrustMode, activatedSkills?: readonly string[], parallelToolCalls?: boolean, requestAllowedTools?: readonly string[], executionAllowedTools?: readonly string[], grantAllowedTools?: readonly string[]): LoopResumeState | undefined;
|
|
59
62
|
export declare function resumeProjectLoopRun(options: {
|
|
60
63
|
deps: CompletionRouteDeps;
|
|
61
64
|
runId: string;
|
|
@@ -88,6 +91,9 @@ export interface ProjectLoopCompletionOptions {
|
|
|
88
91
|
runtimePlan?: RuntimePlan;
|
|
89
92
|
executionRoute?: ResolvedExecutionRoute;
|
|
90
93
|
activatedSkills?: readonly string[];
|
|
94
|
+
requestAllowedTools?: readonly string[];
|
|
95
|
+
executionAllowedTools?: readonly string[];
|
|
96
|
+
grantAllowedTools?: readonly string[];
|
|
91
97
|
}
|
|
92
98
|
export declare function handleProjectLoopCompletion(c: any, options: ProjectLoopCompletionOptions): Promise<any>;
|
|
93
99
|
/** Transport-independent loop producer used by attached and durable followers. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-loop-runner.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/project-loop-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAcL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAE3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EAA4C,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-loop-runner.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/project-loop-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import { agentConfigForModelPrimary, addUsage, runAgentStepCompletion, } from ".
|
|
|
14
14
|
import { completionResponse, guardrailErrorEnvelope, loopRuntimeErrorEnvelope, modelNotFoundEnvelope, sseChunk, } from "./sse.js";
|
|
15
15
|
import { emitFileChanged, persistAssistantMessage } from "./tool-mapping.js";
|
|
16
16
|
import { createGuardedCompletionToolExecutor } from "./tool-guardrails.js";
|
|
17
|
+
import { createPolicyGuardedToolExecutor, filterToolDefinitionsByPolicy, resolveExecutionToolPolicy, toolPolicyAuditData, } from "./tool-policy-runtime.js";
|
|
17
18
|
import { applyCompletionOutputPolicy, streamingOutputPolicyMode, } from "./output-guardrails.js";
|
|
18
19
|
const runtimeSurfaces = new Set(["agent", "task", "channel", "webhook"]);
|
|
19
20
|
const runtimeSources = new Set([
|
|
@@ -70,16 +71,18 @@ function runtimeInvocationMetadata(value) {
|
|
|
70
71
|
: {}),
|
|
71
72
|
};
|
|
72
73
|
}
|
|
74
|
+
function stringArrayRuntimeValue(value, field) {
|
|
75
|
+
if (value === undefined)
|
|
76
|
+
return undefined;
|
|
77
|
+
if (!Array.isArray(value)
|
|
78
|
+
|| value.some((entry) => typeof entry !== "string" || !entry.trim())) {
|
|
79
|
+
throw new Error(`Loop resume ${field} is invalid`);
|
|
80
|
+
}
|
|
81
|
+
return value.map((entry) => entry.trim());
|
|
82
|
+
}
|
|
73
83
|
function projectLoopToolInvocation(input) {
|
|
74
84
|
const runtime = input.runtimeInvocation;
|
|
75
85
|
const id = input.loopRunId ?? runtime?.runId ?? runtime?.requestId ?? `loop-${nanoid(16)}`;
|
|
76
|
-
const surface = runtime?.surface === "channel" || runtime?.source === "channel"
|
|
77
|
-
? "channel"
|
|
78
|
-
: runtime?.source === "schedule"
|
|
79
|
-
? "schedule"
|
|
80
|
-
: runtime?.surface === "task" || runtime?.source === "task"
|
|
81
|
-
? "task"
|
|
82
|
-
: "loop";
|
|
83
86
|
return createToolInvocationContext({
|
|
84
87
|
requestId: runtime?.requestId ?? id,
|
|
85
88
|
runId: input.loopRunId ?? runtime?.runId ?? id,
|
|
@@ -87,7 +90,9 @@ function projectLoopToolInvocation(input) {
|
|
|
87
90
|
...(runtime?.user ?? input.user ? { user: runtime?.user ?? input.user } : {}),
|
|
88
91
|
metadata: (runtime?.metadata ?? input.requestMetadata ?? {}),
|
|
89
92
|
...(runtime?.scope ? { scope: runtime.scope } : {}),
|
|
90
|
-
|
|
93
|
+
// The invocation has transitioned into a Project Loop. Preserve trusted
|
|
94
|
+
// ingress identity separately, but do not leak the prior surface policy.
|
|
95
|
+
surface: "loop",
|
|
91
96
|
});
|
|
92
97
|
}
|
|
93
98
|
function loopRequestMetadata(run) {
|
|
@@ -201,9 +206,26 @@ export async function runProjectLoopCompletion(options) {
|
|
|
201
206
|
await rootTools.cleanup?.().catch(() => { });
|
|
202
207
|
await toolRunScope?.cleanup?.().catch(() => { });
|
|
203
208
|
};
|
|
204
|
-
const
|
|
209
|
+
const rootPolicy = resolveExecutionToolPolicy({
|
|
210
|
+
agent: agentConfig,
|
|
211
|
+
mode: "loop",
|
|
212
|
+
requestAllowedTools: options.requestAllowedTools,
|
|
213
|
+
executionAllowedTools: options.executionAllowedTools,
|
|
214
|
+
loopAllowedTools: projectLoop.allowedTools,
|
|
215
|
+
grantAllowedTools: options.grantAllowedTools,
|
|
216
|
+
});
|
|
217
|
+
const rootResolvedTools = rootTools.runtimeTools ?? rootTools.tools;
|
|
218
|
+
const deterministicTools = filterToolDefinitionsByPolicy(rootResolvedTools, rootPolicy);
|
|
219
|
+
deps.emit("runtime:tool-policy", toolPolicyAuditData({
|
|
220
|
+
policy: rootPolicy,
|
|
221
|
+
requested: rootResolvedTools
|
|
222
|
+
.map((tool) => tool?.name)
|
|
223
|
+
.filter((name) => typeof name === "string"),
|
|
224
|
+
mode: "loop",
|
|
225
|
+
}));
|
|
226
|
+
const rootExecutor = createPolicyGuardedToolExecutor(rootTools.runtimeExecutor ?? rootTools.executor, rootPolicy);
|
|
205
227
|
const executeLoopTool = createGuardedCompletionToolExecutor({
|
|
206
|
-
executor:
|
|
228
|
+
executor: rootExecutor,
|
|
207
229
|
tools: deterministicTools,
|
|
208
230
|
middleware: deps.runToolMiddleware,
|
|
209
231
|
context: {
|
|
@@ -407,6 +429,16 @@ export async function runProjectLoopCompletion(options) {
|
|
|
407
429
|
state: "calling",
|
|
408
430
|
});
|
|
409
431
|
const stepAgent = buildLoopStepAgent(agentConfig, name, loop);
|
|
432
|
+
const stepAllowedTools = loop.allowedTools ?? loop.tools;
|
|
433
|
+
const stepToolPolicy = resolveExecutionToolPolicy({
|
|
434
|
+
agent: agentConfig,
|
|
435
|
+
mode: "loop",
|
|
436
|
+
requestAllowedTools: options.requestAllowedTools,
|
|
437
|
+
executionAllowedTools: options.executionAllowedTools,
|
|
438
|
+
loopAllowedTools: projectLoop.allowedTools,
|
|
439
|
+
stepAllowedTools,
|
|
440
|
+
grantAllowedTools: options.grantAllowedTools,
|
|
441
|
+
});
|
|
410
442
|
const stepSkillNames = new Set(Array.isArray(stepAgent.skills)
|
|
411
443
|
? stepAgent.skills.filter((skill) => typeof skill === "string")
|
|
412
444
|
: []);
|
|
@@ -429,6 +461,7 @@ export async function runProjectLoopCompletion(options) {
|
|
|
429
461
|
toolInvocation,
|
|
430
462
|
onToolCall,
|
|
431
463
|
parallelToolCalls: options.parallelToolCalls,
|
|
464
|
+
toolPolicy: stepToolPolicy,
|
|
432
465
|
});
|
|
433
466
|
finalText = stepResult.text || finalText;
|
|
434
467
|
totalUsage = addUsage(totalUsage, stepResult.usage);
|
|
@@ -527,7 +560,7 @@ export async function runProjectLoopCompletion(options) {
|
|
|
527
560
|
context: err.context,
|
|
528
561
|
status: "pending",
|
|
529
562
|
},
|
|
530
|
-
resume: buildLoopResumeState(err.resume, aiMessages, extraSystemParts, resumeRun?.resume?.approvedGates, contextTrust, activatedSkills, options.parallelToolCalls),
|
|
563
|
+
resume: buildLoopResumeState(err.resume, aiMessages, extraSystemParts, resumeRun?.resume?.approvedGates, contextTrust, activatedSkills, options.parallelToolCalls, options.requestAllowedTools, options.executionAllowedTools, options.grantAllowedTools),
|
|
531
564
|
error: err.message,
|
|
532
565
|
});
|
|
533
566
|
}
|
|
@@ -546,7 +579,7 @@ export async function runProjectLoopCompletion(options) {
|
|
|
546
579
|
await cleanupToolRun();
|
|
547
580
|
}
|
|
548
581
|
}
|
|
549
|
-
export function buildLoopResumeState(continuation, aiMessages, extraSystemParts, approvedGates, contextTrust = "off", activatedSkills = [], parallelToolCalls) {
|
|
582
|
+
export function buildLoopResumeState(continuation, aiMessages, extraSystemParts, approvedGates, contextTrust = "off", activatedSkills = [], parallelToolCalls, requestAllowedTools, executionAllowedTools, grantAllowedTools) {
|
|
550
583
|
if (!continuation)
|
|
551
584
|
return undefined;
|
|
552
585
|
return {
|
|
@@ -562,6 +595,15 @@ export function buildLoopResumeState(continuation, aiMessages, extraSystemParts,
|
|
|
562
595
|
? { activatedSkills: [...activatedSkills] }
|
|
563
596
|
: {}),
|
|
564
597
|
...(parallelToolCalls !== undefined ? { parallelToolCalls } : {}),
|
|
598
|
+
...(requestAllowedTools !== undefined
|
|
599
|
+
? { requestAllowedTools: [...requestAllowedTools] }
|
|
600
|
+
: {}),
|
|
601
|
+
...(executionAllowedTools !== undefined
|
|
602
|
+
? { executionAllowedTools: [...executionAllowedTools] }
|
|
603
|
+
: {}),
|
|
604
|
+
...(grantAllowedTools !== undefined
|
|
605
|
+
? { grantAllowedTools: [...grantAllowedTools] }
|
|
606
|
+
: {}),
|
|
565
607
|
},
|
|
566
608
|
attempts: 0,
|
|
567
609
|
createdAt: new Date().toISOString(),
|
|
@@ -600,6 +642,9 @@ export async function resumeProjectLoopRun(options) {
|
|
|
600
642
|
const parallelToolCalls = typeof run.resume.runtime?.parallelToolCalls === "boolean"
|
|
601
643
|
? run.resume.runtime.parallelToolCalls
|
|
602
644
|
: undefined;
|
|
645
|
+
const requestAllowedTools = stringArrayRuntimeValue(run.resume.runtime?.requestAllowedTools, "requestAllowedTools");
|
|
646
|
+
const executionAllowedTools = stringArrayRuntimeValue(run.resume.runtime?.executionAllowedTools, "executionAllowedTools");
|
|
647
|
+
const grantAllowedTools = stringArrayRuntimeValue(run.resume.runtime?.grantAllowedTools, "grantAllowedTools");
|
|
603
648
|
const assignedSkills = new Set(Array.isArray(agentConfig.skills)
|
|
604
649
|
? agentConfig.skills.filter((skill) => typeof skill === "string")
|
|
605
650
|
: []);
|
|
@@ -653,6 +698,9 @@ export async function resumeProjectLoopRun(options) {
|
|
|
653
698
|
requestMetadata: loopRequestMetadata(run),
|
|
654
699
|
activatedSkills,
|
|
655
700
|
parallelToolCalls,
|
|
701
|
+
requestAllowedTools,
|
|
702
|
+
executionAllowedTools,
|
|
703
|
+
grantAllowedTools,
|
|
656
704
|
resumeRun: run,
|
|
657
705
|
});
|
|
658
706
|
const updated = await loopRunStore.getRun(run.id);
|
|
@@ -720,6 +768,9 @@ export async function executeStreamingProjectLoopCompletion(stream, options, sig
|
|
|
720
768
|
activatedSkills,
|
|
721
769
|
deliveryRunId: completionId,
|
|
722
770
|
parallelToolCalls: body.parallel_tool_calls,
|
|
771
|
+
requestAllowedTools: options.requestAllowedTools,
|
|
772
|
+
executionAllowedTools: options.executionAllowedTools,
|
|
773
|
+
grantAllowedTools: options.grantAllowedTools,
|
|
723
774
|
onToolCall: async (toolCall) => {
|
|
724
775
|
if (signal.aborted)
|
|
725
776
|
return;
|
|
@@ -833,6 +884,9 @@ async function runNonStreamingProjectLoopCompletion(c, options) {
|
|
|
833
884
|
activatedSkills,
|
|
834
885
|
deliveryRunId: completionId,
|
|
835
886
|
parallelToolCalls: body.parallel_tool_calls,
|
|
887
|
+
requestAllowedTools: options.requestAllowedTools,
|
|
888
|
+
executionAllowedTools: options.executionAllowedTools,
|
|
889
|
+
grantAllowedTools: options.grantAllowedTools,
|
|
836
890
|
});
|
|
837
891
|
finalText = run.text;
|
|
838
892
|
runUsage = run.usage;
|