@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.
Files changed (63) hide show
  1. package/dist/channels/conversation-bridge.d.ts +6 -0
  2. package/dist/channels/conversation-bridge.d.ts.map +1 -1
  3. package/dist/channels/conversation-bridge.js +38 -1
  4. package/dist/channels/conversation-bridge.js.map +1 -1
  5. package/dist/channels/conversation-bridge.test.js +12 -0
  6. package/dist/channels/conversation-bridge.test.js.map +1 -1
  7. package/dist/mcp/conversation-channels.d.ts.map +1 -1
  8. package/dist/mcp/conversation-channels.js +2 -0
  9. package/dist/mcp/conversation-channels.js.map +1 -1
  10. package/dist/routes/agents.d.ts.map +1 -1
  11. package/dist/routes/agents.js +2 -0
  12. package/dist/routes/agents.js.map +1 -1
  13. package/dist/routes/completions/agent-step-runner.d.ts +2 -1
  14. package/dist/routes/completions/agent-step-runner.d.ts.map +1 -1
  15. package/dist/routes/completions/agent-step-runner.js +29 -4
  16. package/dist/routes/completions/agent-step-runner.js.map +1 -1
  17. package/dist/routes/completions/chat-via-run-handler.test.js +78 -0
  18. package/dist/routes/completions/chat-via-run-handler.test.js.map +1 -1
  19. package/dist/routes/completions/conversation-turn.d.ts +3 -0
  20. package/dist/routes/completions/conversation-turn.d.ts.map +1 -1
  21. package/dist/routes/completions/conversation-turn.js +59 -4
  22. package/dist/routes/completions/conversation-turn.js.map +1 -1
  23. package/dist/routes/completions/project-loop-runner.d.ts +7 -1
  24. package/dist/routes/completions/project-loop-runner.d.ts.map +1 -1
  25. package/dist/routes/completions/project-loop-runner.js +66 -12
  26. package/dist/routes/completions/project-loop-runner.js.map +1 -1
  27. package/dist/routes/completions/project-loop-runner.test.js +8 -0
  28. package/dist/routes/completions/project-loop-runner.test.js.map +1 -1
  29. package/dist/routes/completions/runtime-plan-hook.test.js +18 -4
  30. package/dist/routes/completions/runtime-plan-hook.test.js.map +1 -1
  31. package/dist/routes/completions/schemas.d.ts +6 -0
  32. package/dist/routes/completions/schemas.d.ts.map +1 -1
  33. package/dist/routes/completions/schemas.js +21 -0
  34. package/dist/routes/completions/schemas.js.map +1 -1
  35. package/dist/routes/completions/schemas.test.js +20 -0
  36. package/dist/routes/completions/schemas.test.js.map +1 -1
  37. package/dist/routes/completions/sse.d.ts +1 -1
  38. package/dist/routes/completions/sse.d.ts.map +1 -1
  39. package/dist/routes/completions/sse.js +9 -1
  40. package/dist/routes/completions/sse.js.map +1 -1
  41. package/dist/routes/completions/tool-policy-runtime.d.ts +41 -0
  42. package/dist/routes/completions/tool-policy-runtime.d.ts.map +1 -0
  43. package/dist/routes/completions/tool-policy-runtime.js +52 -0
  44. package/dist/routes/completions/tool-policy-runtime.js.map +1 -0
  45. package/dist/routes/completions/tool-policy-runtime.test.d.ts +2 -0
  46. package/dist/routes/completions/tool-policy-runtime.test.d.ts.map +1 -0
  47. package/dist/routes/completions/tool-policy-runtime.test.js +84 -0
  48. package/dist/routes/completions/tool-policy-runtime.test.js.map +1 -0
  49. package/dist/routes/completions-loop-runtime.test.js +50 -2
  50. package/dist/routes/completions-loop-runtime.test.js.map +1 -1
  51. package/dist/routes/completions.d.ts +6 -0
  52. package/dist/routes/completions.d.ts.map +1 -1
  53. package/dist/routes/completions.js.map +1 -1
  54. package/dist/routes/conversation-channels.d.ts.map +1 -1
  55. package/dist/routes/conversation-channels.js +17 -0
  56. package/dist/routes/conversation-channels.js.map +1 -1
  57. package/dist/schemas.d.ts +8 -0
  58. package/dist/schemas.d.ts.map +1 -1
  59. package/dist/schemas.js +16 -1
  60. package/dist/schemas.js.map +1 -1
  61. package/dist/schemas.test.js +9 -0
  62. package/dist/schemas.test.js.map +1 -1
  63. 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
- const clientSideTools = {
363
+ let clientSideTools = {
362
364
  ...builtInClientSideTools,
363
365
  ...requestClientSideTools,
364
366
  };
365
- const clientSideToolNames = new Set(Object.keys(clientSideTools));
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":"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"}
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
- surface,
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 deterministicTools = rootTools.runtimeTools ?? rootTools.tools;
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: rootTools.runtimeExecutor ?? rootTools.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;