@arvo-tools/agentic 1.1.1 → 1.2.0

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.
@@ -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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"}
@@ -1,6 +1,7 @@
1
1
  import type { AgentInternalTool } from '../AgentTool/types.js';
2
2
  import type { AgentMessage, AgentServiceContract, AnyArvoOrchestratorContract, CreateArvoAgentParam } from './types.js';
3
3
  export type AgentState = {
4
+ initEventAccessControl: string | null;
4
5
  currentSubject: string;
5
6
  system: string | null;
6
7
  messages: AgentMessage[];
@@ -21,69 +22,66 @@ export type AgentState = {
21
22
  /**
22
23
  * Creates a fully-featured AI Agent implemented as an Arvo Resumable Event Handler.
23
24
  *
24
- * This factory transforms a standard Large Language Model (LLM) into a stateful, event-driven
25
- * participant in your system. Unlike standard chatbots, this Agent can interact with:
26
- * 1. **Local Tools**: Async/Sync JavaScript functions executed immediately.
27
- * 2. **MCP Servers**: External data sources via the Model Context Protocol.
28
- * 3. **Arvo Services**: Other Event Handlers in your Arvo distributed system (Async/Distributed tools).
25
+ * This factory transforms a Large Language Model into a stateful, event-driven participant
26
+ * in your Arvo system. The resulting agent operates on a start-stop-resume execution model,
27
+ * consuming zero resources between event processing cycles while maintaining conversation
28
+ * state in persistent memory.
29
29
  *
30
30
  * @remarks
31
- * **The Execution Model:**
32
- * The Agent operates on a **Start-Stop-Resume** cycle:
33
- * 1. **Init**: Receives an event -> Builds Context -> Calls LLM.
34
- * 2. **Action**:
35
- * - If the LLM chooses a `tool` or `mcp`, it executes immediately and loops back.
36
- * - If the LLM chooses a `service`, the Agent **emits an event** and **suspends execution**.
37
- * - The LLM can choose a mix all three modalities at the same time.
38
- * 3. **Resume**: When the Service replies with an event, the Agent wakes up, restores state from `memory`,
39
- * adds the result to its history, and calls the LLM again.
31
+ * The agent operates on a start-stop-resume execution model where it receives an event, invokes
32
+ * the LLM with available tools (internal Typescript functions, MCP external sources, or Arvo services),
33
+ * and either continues immediately for synchronous tools or suspends execution for service calls
34
+ * until responses arrive. When the LLM requests multiple tools simultaneously, priority-based orchestration
35
+ * ensures only the highest-priority batch executes (enabling "human-approval-first" patterns), while contract
36
+ * versioning enforces that you provide complete handler implementations for all defined versions
37
+ * (enabling safe evolution of prompts, models, and output schemas across v1, v2, etc.). The optional permission
38
+ * manager adds deterministic authorization outside the LLM's control—blocked tools trigger permission request events,
39
+ * the agent suspends until external approval, then retries with updated permissions, creating a security layer
40
+ * immune to prompt injection.
41
+
42
+ * @param param - Configuration object defining the agent's contracts, tools, memory backend,
43
+ * LLM integration, and version-specific behavior handlers.
40
44
  *
41
- * **Strict Versioning Compliance:**
42
- * Arvo enforces that your Agent implementation matches your Contract versions.
43
- * If your `self` contract defines versions `'1.0.0'` and `'2.0.0'`, you must
44
- * provide specific `context` (A context builder function which runs at init of the agent
45
- * execution and is reponsible for building the context of the agent i.e. system promot
46
- * and messages list, both are optional) and `output` builder, which takes the LLM output
47
- * and converts it into yor contract compliant structure,for *all* versions
48
- * in the `handler` parameter.
49
- *
50
- * This allows you to:
51
- * - Safely evolve prompt engineering strategies (e.g., v1 uses GPT-3.5, v2 uses GPT-4).
52
- * - Run different tests on Agent behavior within the same deployment.
53
- * - Retire old Agent behaviors gradually without breaking existing clients.
54
- *
55
- * @param param - Configuration object for the Agent.
56
- *
57
- * @returns An `ArvoResumable` instance specialised to run as an AI Agent.
45
+ * @returns An ArvoResumable instance that participates in the event fabric as a standard
46
+ * event handler, compatible with any Arvo broker implementation.
58
47
  *
59
48
  * @example
60
49
  * ```typescript
61
50
  * export const supportAgent = ({ memory }) => createArvoAgent({
62
51
  * contracts: {
63
- * self: supportAgentContract, // The interface for this agent
52
+ * self: supportAgentContract,
64
53
  * services: {
65
- * // The Agent can "call" this service by emitting an event
66
- * // and going to sleep until the billing service replies.
67
- * billing: { contract: billingServiceContract.version('1.0.0') }
54
+ * billing: {
55
+ * contract: billingServiceContract.version('1.0.0'),
56
+ * priority: 0
57
+ * },
58
+ * humanApproval: {
59
+ * contract: approvalContract.version('1.0.0'),
60
+ * domains: ['human.interaction'],
61
+ * priority: 100 // Executes before billing calls
62
+ * }
68
63
  * }
69
64
  * },
70
65
  * tools: {
71
- * // The Agent can execute this immediately in-memory
72
66
  * checkTime: createAgentTool({
73
67
  * name: 'check_time',
74
- * description: 'Checks current server time',
68
+ * description: 'Returns current server time in ISO format',
75
69
  * input: z.object({}),
76
70
  * output: z.object({ time: z.string() }),
77
71
  * fn: async () => ({ time: new Date().toISOString() })
78
72
  * })
79
73
  * },
80
74
  * llm: openaiLLMIntegration(new OpenAI(), { model: 'gpt-4o' }),
81
- * memory: memory, // Persists chat history during async calls
75
+ * memory: memory,
76
+ * permissionManager: new ToolPermissionManager(),
82
77
  * handler: {
83
78
  * '1.0.0': {
84
- * // Dynamic System Prompt Building
79
+ * permissionPolicy: async ({ services }) => [
80
+ * services.billing.name // Require permission for billing calls
81
+ * ],
85
82
  * context: AgentDefaults.CONTEXT_BUILDER(async ({ tools }) =>
86
- * `You are a support agent. You have access to billing data via the ${tools.services.billing.name} tool.`
83
+ * `You are a support agent with access to billing data via ${tools.services.billing.name}.
84
+ * You must request approval via ${tools.services.humanApproval.name} before accessing billing.`
87
85
  * ),
88
86
  * output: AgentDefaults.OUTPUT_BUILDER
89
87
  * }
@@ -91,5 +89,5 @@ export type AgentState = {
91
89
  * });
92
90
  * ```
93
91
  */
94
- export declare const createArvoAgent: <TSelfContract extends AnyArvoOrchestratorContract, TServiceContract extends Record<string, AgentServiceContract>, TTools extends Record<string, AgentInternalTool>>({ contracts, memory, handler, llm, mcp, maxToolInteractions, llmResponseType, tools, onStream, }: CreateArvoAgentParam<TSelfContract, TServiceContract, TTools>) => import("arvo-event-handler").ArvoResumable<AgentState, TSelfContract, { [K in keyof TServiceContract & string]: TServiceContract[K]["contract"]; }>;
92
+ export declare const createArvoAgent: <TSelfContract extends AnyArvoOrchestratorContract, TServiceContract extends Record<string, AgentServiceContract>, TTools extends Record<string, AgentInternalTool>>({ contracts, memory, handler, llm, mcp, maxToolInteractions, llmResponseType, tools, onStream, permissionManager, }: CreateArvoAgentParam<TSelfContract, TServiceContract, TTools>) => import("arvo-event-handler").ArvoResumable<AgentState, TSelfContract, { [K in keyof TServiceContract & string]: TServiceContract[K]["contract"]; }>;
95
93
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Agent/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAK/D,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAOpB,MAAM,MAAM,UAAU,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gBAAgB,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC1F,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,eAAO,MAAM,eAAe,GAC1B,aAAa,SAAS,2BAA2B,EACjD,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC7D,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAChD,kGAUC,oBAAoB,CAAC,aAAa,EAAE,gBAAgB,EAAE,MAAM,CAAC,8EAGtD,CAAC,yEAgQV,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Agent/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM/D,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAOpB,MAAM,MAAM,UAAU,GAAG;IACvB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gBAAgB,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC1F,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,eAAO,MAAM,eAAe,GAC1B,aAAa,SAAS,2BAA2B,EACjD,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC7D,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAChD,qHAWC,oBAAoB,CAAC,aAAa,EAAE,gBAAgB,EAAE,MAAM,CAAC,8EAGtD,CAAC,yEA2TV,CAAC"}