@arvo-tools/agentic 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,23 +1,223 @@
1
1
  # @arvo-tools/agentic
2
2
 
3
- Agentic toolset for building applications using arvo-core and arvo-event-handler.
3
+ **Official AI Agent toolkit for the Arvo event-driven ecosystem**
4
+
5
+ [![npm version](https://badge.fury.io/js/@arvo-tools%2Fagentic.svg)](https://www.npmjs.com/package/@arvo-tools/agentic)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ `@arvo-tools/agentic` extends Arvo's event-driven architecture with production-grade AI agent capabilities. Agents built with this toolkit operate as standard Arvo event handlers, accepting and emitting events while participating in workflows alongside other handlers in your system. This design philosophy ensures that AI agents aren't isolated or special components in your system but rather first-class citizens in your event-driven infrastructure, capable of seamlessly integrating with existing Arvo-based services, workflows and mesh.
9
+
10
+ The toolkit provides a robust foundation for building intelligent agents that maintain consistency with Arvo's core principles: contract-first development, strong type safety, and infrastructure independence. Whether you're building a single autonomous agent or orchestrating multiple agents in complex workflows, `@arvo-tools/agentic` offers the abstractions and utilities needed to develop, test, and deploy AI-driven components that behave predictably within your distributed system.
4
11
 
5
12
  ## Installation
6
13
 
7
- \`\`\`bash
14
+ Before installing `@arvo-tools/agentic`, you'll need to install the Arvo peer dependencies. While you don't need to adopt the complete Arvo architecture to use Arvo Agent in your application, the peer dependencies are required for the agent to function correctly. These dependencies provide the foundational event-handling infrastructure, type definitions, and runtime utilities that enable agents to communicate effectively within the Arvo ecosystem.
15
+
16
+ For the most current Arvo peer dependencies and detailed installation instructions, please refer to the [official installation guide](https://www.arvo.land/#install-arvo). The guide includes version compatibility information and platform-specific considerations that will help ensure a smooth setup process.
17
+
18
+ After installing the peer dependencies, you can add this package to your application using your preferred package manager. The package is distributed through npm and is compatible with all major Node.js package managers:
19
+ ```bash
8
20
  npm install @arvo-tools/agentic
9
- # or
10
- pnpm add @arvo-tools/agentic
11
- \`\`\`
21
+ ```
22
+ ```bash
23
+ yarn add @arvo-tools/agentic
24
+ ```
25
+ ```bash
26
+ pnpm install @arvo-tools/agentic
27
+ ```
28
+
29
+ The package is designed to work seamlessly with TypeScript, providing comprehensive type definitions that enhance development experience and catch potential issues at compile time.
30
+
31
+ ## Core Concepts
32
+
33
+ ### Agents as Event Handlers
34
+
35
+ Every agent created with `createArvoAgent` is an `ArvoResumable`—a specialized Arvo event handler that coordinates workflows through durable state execution. When an agent receives an event, it reasons about the request using an LLM, executes tools to gather information or perform actions, and emits a completion event with structured results.
36
+
37
+ **Key characteristics:**
38
+ - Accept events conforming to orchestrator contracts
39
+ - Maintain conversation history across multiple reasoning iterations
40
+ - Suspend and resume automatically when coordinating with external services
41
+ - Emit contract-compliant completion events
42
+ - Consume zero resources while waiting for service responses
43
+
44
+ ### Tool Modalities
45
+
46
+ Agents coordinate three distinct types of tools, each with different execution characteristics:
47
+
48
+ **Internal Tools** are synchronous JavaScript functions that execute within the agent's process. Use these for fast computations, data transformations, or read-only operations. The agent calls them, awaits the result, and continues reasoning in the same execution cycle.
49
+
50
+ **MCP (Model Context Protocol)** provides standardized access to external systems like filesystems, databases, or APIs.
51
+
52
+ - **Arvo Services** are other Arvo Event Handlers in your system. When the LLM requests a service tool, the agent emits an event, persists its state to memory, and suspends execution. When the service responds, the agent resumes from where it left off and continues reasoning.
53
+
54
+ ### Execution Flow
55
+
56
+ The agent follows a ReAct (Reason + Act) pattern:
57
+
58
+ 1. **Initialize**: Receive an input event and build the initial context (system prompt and message history)
59
+ 2. **Reason**: The LLM analyzes the context and decides what to do next (call tools or generate final output)
60
+ 3. **Act**: Execute requested tools—internal/MCP tools run immediately, service tools trigger suspension
61
+ 4. **Resume**: When service responses arrive, load persisted state and return to the Reason step
62
+ 5. **Complete**: Once the LLM generates final output, validate against the contract schema and emit completion event
63
+
64
+ This cycle repeats until the agent reaches a conclusion or exhausts its tool interaction quota.
65
+
66
+ ### Priority-Based Tool Execution
67
+
68
+ When the LLM requests multiple tools simultaneously, Arvo executes only the highest-priority batch and silently drops lower-priority calls. This mechanism helps enforces "priority-first" patterns e.g. authorization tools (priority 100) must execute before sensitive operations (priority 0).
69
+
70
+ ```typescript
71
+ tools: {
72
+ normalOperation: createAgentTool({
73
+ name: 'process_data',
74
+ priority: 0, // Default priority
75
+ // ...
76
+ }),
77
+ },
78
+ services: {
79
+ humanApproval: {
80
+ contract: approvalContract.version('1.0.0'),
81
+ priority: 100, // Executes first, blocks others
82
+ },
83
+ }
84
+ ```
85
+
86
+ ### Permission Management
87
+
88
+ The permission manager provides deterministic authorization control independent of LLM reasoning. When enabled, tools in the permission policy require explicit approval before execution.
89
+
90
+ **Authorization workflow:**
91
+ 1. LLM requests protected tool → Agent execution engine blocks tool execution
92
+ 2. Agent emits permission request event to configured domain
93
+ 3. External system (human approver, policy engine, IAM) responds with authorization
94
+ 4. Agent updates permission database → LLM sees approval in conversation → Retries tool call → Execution proceeds
95
+
96
+ This architecture prevents prompt injection from bypassing security controls—authorization happens outside the LLM's decision-making process.
97
+
98
+ ## Quick Start
99
+
100
+ Let's build a simple weather agent that uses an internal tool to check the current time.
101
+
102
+ **Step 1: Define the agent's contract**
103
+
104
+ The contract specifies what events the agent accepts and what it emits upon completion.
105
+
106
+ ```typescript
107
+ import { createArvoOrchestratorContract } from 'arvo-core';
108
+ import { AgentDefaults } from '@arvo-tools/agentic'
109
+ import { z } from 'zod';
110
+
111
+ const weatherAgentContract = createArvoOrchestratorContract({
112
+ uri: '#/agents/weather',
113
+ name: 'agent.weather',
114
+ description: 'Provides weather information',
115
+ versions: {
116
+ '1.0.0': {
117
+ init: AgentDefaults.INIT_SCHEMA,
118
+ complete: AgentDefaults.COMPLETE_SCHEMA,
119
+ },
120
+ },
121
+ });
122
+ ```
123
+
124
+ **Step 2: Create internal tools**
125
+
126
+ Tools are Typescript functions wrapped with Zod validation and OpenTelemetry instrumentation.
127
+
128
+ ```typescript
129
+ import { createAgentTool } from '@arvo-tools/agentic';
130
+
131
+ const timeChecker = createAgentTool({
132
+ name: 'get_current_time',
133
+ description: 'Returns the current server time in ISO format',
134
+ input: z.object({}).passthrough(),
135
+ output: z.object({ time: z.string() }),
136
+ fn: async () => ({
137
+ time: new Date().toISOString(),
138
+ }),
139
+ });
140
+ ```
141
+
142
+ **Step 3: Configure the LLM integration**
143
+
144
+ Choose an LLM provider and configure its parameters.
145
+
146
+ ```typescript
147
+ import { openaiLLMIntegration } from '@arvo-tools/agentic';
148
+ import OpenAI from 'openai';
149
+ import * as dotenv from 'dotenv';
150
+ dotenv.config()
151
+
152
+ const llm = openaiLLMIntegration(
153
+ new OpenAI({ apiKey: process.env.OPENAI_API_KEY }),
154
+ {
155
+ invocationParam: {
156
+ model: 'gpt-4o',
157
+ temperature: 0.7,
158
+ max_completion_tokens: 2048,
159
+ },
160
+ }
161
+ );
162
+ ```
163
+
164
+ **Step 4: Create the agent**
165
+
166
+ Combine the contract, tools, and LLM into an agent handler.
167
+
168
+ ```typescript
169
+ import { createArvoAgent, AgentDefaults } from '@arvo-tools/agentic';
170
+ import { SimpleMachineMemory, EventHandlerFactory, type IMachineMemory } from 'arvo-event-handler';
171
+
172
+ export const weatherAgent: EventHandlerFactory<{
173
+ memory: IMachineMemory<Record<string, unknown>>;
174
+ }> = ({ memory }) =>
175
+ createArvoAgent({
176
+ contracts: {
177
+ self: weatherAgentContract,
178
+ services: {}, // Does not coordinate with other Arvo event driven services =
179
+ },
180
+ tools: {
181
+ timeChecker,
182
+ },
183
+ llm,
184
+ memory,
185
+ handler: {
186
+ '1.0.0': {
187
+ context: AgentDefaults.CONTEXT_BUILDER(({ tools }) =>
188
+ `You are a weather assistant. When discussing forecasts,
189
+ use ${tools.tools.timeChecker.name} to reference the current time.`
190
+ ),
191
+ output: AgentDefaults.OUTPUT_BUILDER,
192
+ },
193
+ },
194
+ });
195
+ ```
196
+
197
+ **Step 5: Execute the agent**
198
+
199
+ Even though Arvo is an event-driven toolkit, you actually don't required event-driven setup or infrastructure for executing Arvo Agents (and the Arvo Event Handlers).
200
+
201
+ ```typescript
202
+ import { createArvoEventFactory } from 'arvo-core';
12
203
 
13
- ## Usage
204
+ const memory = new SimpleMachineMemory();
205
+ const agent = weatherAgent({ memory });
14
206
 
15
- \`\`\`typescript
16
- import { version } from '@arvo-tools/agentic';
207
+ const inputEvent = createArvoEventFactory(weatherAgentContract.version('1.0.0')).accepts({
208
+ source: 'weather.service',
209
+ data: {
210
+ message: 'What time is it?',
211
+ // This is a default Arvo field injected automatically for advanced operations
212
+ parentSubject$$: null,
213
+ },
214
+ });
17
215
 
18
- console.log(version);
19
- \`\`\`
216
+ const result = await agent.execute(inputEvent, { inheritFrom: 'EVENT' });
217
+ console.log(result.events[0].data.response);
218
+ // Output: "The current time is 2025-01-15T10:30:00.000Z"
219
+ ```
20
220
 
21
- ## License
221
+ # Advanced Examples
22
222
 
23
- MIT
223
+ ... coming soon
@@ -1,6 +1,7 @@
1
1
  import type z from 'zod';
2
2
  import type { AgentLLMIntegration, AgentLLMIntegrationParam } from '../Integrations/types.js';
3
3
  import type { IMCPClient } from '../interfaces.mcp.js';
4
+ import type { IPermissionManager, PermissionManagerContext } from '../interfaces.permission.manager.js';
4
5
  import type { OtelInfoType } from '../types.js';
5
6
  import type { AgentEventStreamer } from './stream/types.js';
6
7
  import type { AgentMessage, AgentOutputBuilder, AgentToolDefinition, CreateArvoAgentParam } from './types.js';
@@ -42,6 +43,9 @@ export declare const agentLoop: (param: {
42
43
  completion: number;
43
44
  };
44
45
  onStream: AgentEventStreamer;
46
+ permissionPolicy: string[];
47
+ permissionManager: IPermissionManager | null;
48
+ permissionManagerContext: PermissionManagerContext;
45
49
  }, config: {
46
50
  otelInfo: OtelInfoType;
47
51
  }) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"agentLoop.d.ts","sourceRoot":"","sources":["../../src/Agent/agentLoop.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAElB,mBAAmB,EAGnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO;IACL,aAAa,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IAC3B,aAAa,EAAE,kBAAkB,CAAC;IAClC,eAAe,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtE,GAAG,EAAE,mBAAmB,CAAC;IACzB,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,kBAAkB,CAAC;CAC9B,EACD,QAAQ;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBALtB,MAAM;oBACF,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBADV,MAAM;oBACF,MAAM;;;EA+UpB,CAAC"}
1
+ {"version":3,"file":"agentLoop.d.ts","sourceRoot":"","sources":["../../src/Agent/agentLoop.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAElB,mBAAmB,EAGnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO;IACL,aAAa,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IAC3B,aAAa,EAAE,kBAAkB,CAAC;IAClC,eAAe,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtE,GAAG,EAAE,mBAAmB,CAAC;IACzB,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC7C,wBAAwB,EAAE,wBAAwB,CAAC;CACpD,EACD,QAAQ;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBARtB,MAAM;oBACF,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBADV,MAAM;oBACF,MAAM;;;EAucpB,CAAC"}
@@ -86,6 +86,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
86
86
  exports.agentLoop = void 0;
87
87
  var openinference_semantic_conventions_1 = require("@arizeai/openinference-semantic-conventions");
88
88
  var arvo_core_1 = require("arvo-core");
89
+ var uuid_1 = require("uuid");
89
90
  var utils_1 = require("./utils");
90
91
  /**
91
92
  * The Core Cognitive Loop of the Arvo Agent.
@@ -122,11 +123,11 @@ var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void
122
123
  _a),
123
124
  },
124
125
  fn: function (span) { return __awaiter(void 0, void 0, void 0, function () {
125
- var otelInfo, nameToToolMap, lifecycle, executionUnits, tokenUsage, currentToolInteractionCount, messages, toolQuotaExhausted, response, i, arvoToolCalls, mcpToolResultPromises, internalToolResultPromises, _loop_1, _a, _b, item, _c, _d, item, e_1_1, _e, _f, item, e_2_1, outputResult;
126
- var e_3, _g, e_1, _h, e_2, _j;
127
- var _k, _l, _m, _o, _p, _q, _r, _s, _t;
128
- return __generator(this, function (_u) {
129
- switch (_u.label) {
126
+ var otelInfo, nameToToolMap, lifecycle, executionUnits, tokenUsage, currentToolInteractionCount, messages, toolQuotaExhausted, response, i, arvoToolCalls, mcpToolResultPromises, internalToolResultPromises, prioritizedToolCalls, toolPermissionMap, toolsPendingPermission, _loop_1, prioritizedToolCalls_1, prioritizedToolCalls_1_1, item, _a, _b, item, e_1_1, _c, _d, item, e_2_1, toolPermissionRequest, outputResult;
127
+ var e_3, _e, e_1, _f, e_2, _g;
128
+ var _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
129
+ return __generator(this, function (_v) {
130
+ switch (_v.label) {
130
131
  case 0:
131
132
  otelInfo = {
132
133
  span: span,
@@ -136,14 +137,14 @@ var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void
136
137
  lifecycle = param.initLifecycle;
137
138
  executionUnits = param.currentTotalExecutionUnits;
138
139
  tokenUsage = param.currentTotalUsageTokens;
139
- _u.label = 1;
140
+ _v.label = 1;
140
141
  case 1:
141
- _u.trys.push([1, , 22, 23]);
142
+ _v.trys.push([1, , 25, 26]);
142
143
  currentToolInteractionCount = param.toolInteraction.current;
143
144
  messages = __spreadArray([], __read(param.messages), false);
144
- _u.label = 2;
145
+ _v.label = 2;
145
146
  case 2:
146
- if (!(currentToolInteractionCount <= param.toolInteraction.max)) return [3 /*break*/, 21];
147
+ if (!(currentToolInteractionCount <= param.toolInteraction.max)) return [3 /*break*/, 24];
147
148
  toolQuotaExhausted = !(currentToolInteractionCount < param.toolInteraction.max);
148
149
  param.onStream({
149
150
  type: lifecycle === 'init'
@@ -180,7 +181,7 @@ var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void
180
181
  onStream: param.onStream,
181
182
  }, { otelInfo: otelInfo })];
182
183
  case 3:
183
- response = _u.sent();
184
+ response = _v.sent();
184
185
  currentToolInteractionCount++;
185
186
  executionUnits += response.executionUnits;
186
187
  tokenUsage.completion += response.usage.tokens.completion;
@@ -190,10 +191,18 @@ var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void
190
191
  for (i = 0; i < messages.length; i++) {
191
192
  messages[i].seenCount += 1;
192
193
  }
193
- if (!(response.type === 'tool_call')) return [3 /*break*/, 19];
194
+ if (!(response.type === 'tool_call')) return [3 /*break*/, 22];
194
195
  arvoToolCalls = [];
195
196
  mcpToolResultPromises = [];
196
197
  internalToolResultPromises = [];
198
+ prioritizedToolCalls = (0, utils_1.prioritizeToolCalls)(response.toolRequests, nameToToolMap);
199
+ return [4 /*yield*/, ((_h = param.permissionManager) === null || _h === void 0 ? void 0 : _h.get(param.permissionManagerContext, prioritizedToolCalls
200
+ .filter(function (item) { return param.permissionPolicy.includes(item.name); })
201
+ .map(function (item) { return nameToToolMap[item.name]; })
202
+ .filter(Boolean), { otelInfo: otelInfo }))];
203
+ case 4:
204
+ toolPermissionMap = (_j = (_v.sent())) !== null && _j !== void 0 ? _j : {};
205
+ toolsPendingPermission = [];
197
206
  _loop_1 = function (item) {
198
207
  param.onStream({
199
208
  type: 'agent.tool.request',
@@ -232,6 +241,48 @@ var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void
232
241
  });
233
242
  return "continue";
234
243
  }
244
+ // Block tool call with no permission and build permission request
245
+ if (toolPermissionMap[item.name] === false) {
246
+ toolsPendingPermission.push(resolvedToolDef);
247
+ messages.push({
248
+ role: 'user',
249
+ content: {
250
+ type: 'tool_result',
251
+ toolUseId: item.toolUseId,
252
+ content: (0, arvo_core_1.cleanString)("\n [Critical] The tool \"".concat(item.name, "\" call was blocked this time as it required external permissions. \n The permission request has been lodged and responded to. Please try again.\n You can request any tool call, the system is here to facilitate with the permission \n acquiry. You as an AI Agent don't have to concern yourself with tool permission details.\n ")),
253
+ },
254
+ seenCount: 0,
255
+ });
256
+ (0, arvo_core_1.logToSpan)({
257
+ level: 'WARNING',
258
+ message: "Tool \"".concat(item.name, "\" blocked - permission required"),
259
+ tool: JSON.stringify({
260
+ name: item.name,
261
+ kind: resolvedToolDef.serverConfig.kind,
262
+ originalName: resolvedToolDef.serverConfig.name,
263
+ toolUseId: item.toolUseId,
264
+ }),
265
+ context: JSON.stringify({
266
+ accessControl: param.permissionManagerContext.accesscontrol,
267
+ agent: param.permissionManagerContext.name,
268
+ }),
269
+ }, span);
270
+ param.onStream({
271
+ type: 'agent.tool.permission.blocked',
272
+ data: {
273
+ tools: [
274
+ {
275
+ name: item.name,
276
+ kind: resolvedToolDef.serverConfig.kind,
277
+ originalName: resolvedToolDef.serverConfig.name,
278
+ },
279
+ ],
280
+ usage: tokenUsage,
281
+ executionunits: executionUnits,
282
+ },
283
+ });
284
+ return "continue";
285
+ }
235
286
  if (resolvedToolDef.serverConfig.kind === 'mcp') {
236
287
  mcpToolResultPromises.push((function () { return __awaiter(void 0, void 0, void 0, function () {
237
288
  var response;
@@ -315,72 +366,113 @@ var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void
315
366
  }
316
367
  };
317
368
  try {
318
- for (_a = (e_3 = void 0, __values((0, utils_1.prioritizeToolCalls)(response.toolRequests, nameToToolMap))), _b = _a.next(); !_b.done; _b = _a.next()) {
319
- item = _b.value;
369
+ for (prioritizedToolCalls_1 = (e_3 = void 0, __values(prioritizedToolCalls)), prioritizedToolCalls_1_1 = prioritizedToolCalls_1.next(); !prioritizedToolCalls_1_1.done; prioritizedToolCalls_1_1 = prioritizedToolCalls_1.next()) {
370
+ item = prioritizedToolCalls_1_1.value;
320
371
  _loop_1(item);
321
372
  }
322
373
  }
323
374
  catch (e_3_1) { e_3 = { error: e_3_1 }; }
324
375
  finally {
325
376
  try {
326
- if (_b && !_b.done && (_g = _a.return)) _g.call(_a);
377
+ if (prioritizedToolCalls_1_1 && !prioritizedToolCalls_1_1.done && (_e = prioritizedToolCalls_1.return)) _e.call(prioritizedToolCalls_1);
327
378
  }
328
379
  finally { if (e_3) throw e_3.error; }
329
380
  }
330
- _u.label = 4;
331
- case 4:
332
- _u.trys.push([4, 9, 10, 11]);
381
+ _v.label = 5;
382
+ case 5:
383
+ _v.trys.push([5, 10, 11, 12]);
333
384
  e_1 = void 0;
334
385
  return [4 /*yield*/, Promise.all(mcpToolResultPromises)];
335
- case 5:
336
- _c = (__values.apply(void 0, [_u.sent()])), _d = _c.next();
337
- _u.label = 6;
338
386
  case 6:
339
- if (!!_d.done) return [3 /*break*/, 8];
340
- item = _d.value;
341
- messages.push({ role: 'user', content: item, seenCount: 0 });
342
- _u.label = 7;
387
+ _a = (__values.apply(void 0, [_v.sent()])), _b = _a.next();
388
+ _v.label = 7;
343
389
  case 7:
344
- _d = _c.next();
345
- return [3 /*break*/, 6];
346
- case 8: return [3 /*break*/, 11];
347
- case 9:
348
- e_1_1 = _u.sent();
349
- e_1 = { error: e_1_1 };
350
- return [3 /*break*/, 11];
390
+ if (!!_b.done) return [3 /*break*/, 9];
391
+ item = _b.value;
392
+ messages.push({ role: 'user', content: item, seenCount: 0 });
393
+ _v.label = 8;
394
+ case 8:
395
+ _b = _a.next();
396
+ return [3 /*break*/, 7];
397
+ case 9: return [3 /*break*/, 12];
351
398
  case 10:
399
+ e_1_1 = _v.sent();
400
+ e_1 = { error: e_1_1 };
401
+ return [3 /*break*/, 12];
402
+ case 11:
352
403
  try {
353
- if (_d && !_d.done && (_h = _c.return)) _h.call(_c);
404
+ if (_b && !_b.done && (_f = _a.return)) _f.call(_a);
354
405
  }
355
406
  finally { if (e_1) throw e_1.error; }
356
407
  return [7 /*endfinally*/];
357
- case 11:
358
- _u.trys.push([11, 16, 17, 18]);
408
+ case 12:
409
+ _v.trys.push([12, 17, 18, 19]);
359
410
  e_2 = void 0;
360
411
  return [4 /*yield*/, Promise.all(internalToolResultPromises)];
361
- case 12:
362
- _e = (__values.apply(void 0, [_u.sent()])), _f = _e.next();
363
- _u.label = 13;
364
412
  case 13:
365
- if (!!_f.done) return [3 /*break*/, 15];
366
- item = _f.value;
367
- messages.push({ role: 'user', content: item, seenCount: 0 });
368
- _u.label = 14;
413
+ _c = (__values.apply(void 0, [_v.sent()])), _d = _c.next();
414
+ _v.label = 14;
369
415
  case 14:
370
- _f = _e.next();
371
- return [3 /*break*/, 13];
372
- case 15: return [3 /*break*/, 18];
373
- case 16:
374
- e_2_1 = _u.sent();
375
- e_2 = { error: e_2_1 };
376
- return [3 /*break*/, 18];
416
+ if (!!_d.done) return [3 /*break*/, 16];
417
+ item = _d.value;
418
+ messages.push({ role: 'user', content: item, seenCount: 0 });
419
+ _v.label = 15;
420
+ case 15:
421
+ _d = _c.next();
422
+ return [3 /*break*/, 14];
423
+ case 16: return [3 /*break*/, 19];
377
424
  case 17:
425
+ e_2_1 = _v.sent();
426
+ e_2 = { error: e_2_1 };
427
+ return [3 /*break*/, 19];
428
+ case 18:
378
429
  try {
379
- if (_f && !_f.done && (_j = _e.return)) _j.call(_e);
430
+ if (_d && !_d.done && (_g = _c.return)) _g.call(_c);
380
431
  }
381
432
  finally { if (e_2) throw e_2.error; }
382
433
  return [7 /*endfinally*/];
383
- case 18:
434
+ case 19:
435
+ if (!(param.permissionManager && toolsPendingPermission.length)) return [3 /*break*/, 21];
436
+ return [4 /*yield*/, ((_u = param.permissionManager) === null || _u === void 0 ? void 0 : _u.requestBuilder(param.permissionManagerContext, toolsPendingPermission, { otelInfo: otelInfo }))];
437
+ case 20:
438
+ toolPermissionRequest = _v.sent();
439
+ arvoToolCalls.push({
440
+ type: 'tool_use',
441
+ name: param.permissionManager.contract.accepts.type,
442
+ toolUseId: (0, uuid_1.v4)(),
443
+ input: toolPermissionRequest,
444
+ });
445
+ (0, arvo_core_1.logToSpan)({
446
+ level: 'INFO',
447
+ message: "Permission request created for ".concat(toolsPendingPermission.length, " blocked tool(s)"),
448
+ permissionRequest: JSON.stringify({
449
+ contractType: param.permissionManager.contract.accepts.type,
450
+ toolCount: toolsPendingPermission.length,
451
+ tools: toolsPendingPermission.map(function (tool) { return ({
452
+ name: tool.name,
453
+ kind: tool.serverConfig.kind,
454
+ originalName: tool.serverConfig.name,
455
+ }); }),
456
+ }),
457
+ context: JSON.stringify({
458
+ accessControl: param.permissionManagerContext.accesscontrol,
459
+ agent: param.permissionManagerContext.name,
460
+ }),
461
+ }, span);
462
+ param.onStream({
463
+ type: 'agent.tool.permission.requested',
464
+ data: {
465
+ tools: toolsPendingPermission.map(function (tool) { return ({
466
+ name: tool.name,
467
+ kind: tool.serverConfig.kind,
468
+ originalName: tool.serverConfig.name,
469
+ }); }),
470
+ usage: tokenUsage,
471
+ executionunits: executionUnits,
472
+ },
473
+ });
474
+ _v.label = 21;
475
+ case 21:
384
476
  if (arvoToolCalls.length) {
385
477
  param.onStream({
386
478
  type: 'agent.tool.request.delegation',
@@ -403,7 +495,7 @@ var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void
403
495
  }
404
496
  lifecycle = 'tool_result';
405
497
  return [3 /*break*/, 2];
406
- case 19:
498
+ case 22:
407
499
  param.onStream({
408
500
  type: 'agent.output.finalization',
409
501
  data: {
@@ -413,8 +505,8 @@ var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void
413
505
  },
414
506
  });
415
507
  return [4 /*yield*/, param.outputBuilder(__assign(__assign({}, response), { outputFormat: param.outputFormat, span: span }))];
416
- case 20:
417
- outputResult = _u.sent();
508
+ case 23:
509
+ outputResult = _v.sent();
418
510
  if ('error' in outputResult && outputResult.error) {
419
511
  messages.push({
420
512
  role: 'assistant',
@@ -470,11 +562,11 @@ var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void
470
562
  }];
471
563
  }
472
564
  return [3 /*break*/, 2];
473
- case 21: throw new Error("Tool calls exhausted the max quota: ".concat(currentToolInteractionCount));
474
- case 22:
565
+ case 24: throw new Error("Tool calls exhausted the max quota: ".concat(currentToolInteractionCount));
566
+ case 25:
475
567
  span.end();
476
568
  return [7 /*endfinally*/];
477
- case 23: return [2 /*return*/];
569
+ case 26: return [2 /*return*/];
478
570
  }
479
571
  });
480
572
  }); },
@@ -1 +1 @@
1
- {"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/Agent/agentLoop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/Agent/agentLoop.ts"],"names":[],"mappings":"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"}