@arvo-tools/agentic 0.1.0 → 0.3.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.
- package/dist/Agent/AgentDefaults.d.ts +28 -0
- package/dist/Agent/AgentDefaults.d.ts.map +1 -0
- package/dist/Agent/AgentDefaults.js +154 -0
- package/dist/Agent/AgentDefaults.js.map +1 -0
- package/dist/Agent/agentLoop.d.ts +109 -0
- package/dist/Agent/agentLoop.d.ts.map +1 -0
- package/dist/Agent/agentLoop.js +391 -0
- package/dist/Agent/agentLoop.js.map +1 -0
- package/dist/Agent/index.d.ts +18 -0
- package/dist/Agent/index.d.ts.map +1 -0
- package/dist/Agent/index.js +293 -0
- package/dist/Agent/index.js.map +1 -0
- package/dist/Agent/schema.d.ts +363 -0
- package/dist/Agent/schema.d.ts.map +1 -0
- package/dist/Agent/schema.js +51 -0
- package/dist/Agent/schema.js.map +1 -0
- package/dist/Agent/types.d.ts +135 -0
- package/dist/Agent/types.d.ts.map +1 -0
- package/dist/Agent/types.js +3 -0
- package/dist/Agent/types.js.map +1 -0
- package/dist/Agent/utils.d.ts +31 -0
- package/dist/Agent/utils.d.ts.map +1 -0
- package/dist/Agent/utils.js +345 -0
- package/dist/Agent/utils.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/interfaces.mcp.d.ts +26 -0
- package/dist/interfaces.mcp.d.ts.map +1 -0
- package/dist/interfaces.mcp.js +3 -0
- package/dist/interfaces.mcp.js.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +10 -4
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
50
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
51
|
+
if (!m) return o;
|
|
52
|
+
var i = m.call(o), r, ar = [], e;
|
|
53
|
+
try {
|
|
54
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
55
|
+
}
|
|
56
|
+
catch (error) { e = { error: error }; }
|
|
57
|
+
finally {
|
|
58
|
+
try {
|
|
59
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
60
|
+
}
|
|
61
|
+
finally { if (e) throw e.error; }
|
|
62
|
+
}
|
|
63
|
+
return ar;
|
|
64
|
+
};
|
|
65
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
66
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
67
|
+
if (ar || !(i in from)) {
|
|
68
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
69
|
+
ar[i] = from[i];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
73
|
+
};
|
|
74
|
+
var __values = (this && this.__values) || function(o) {
|
|
75
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
76
|
+
if (m) return m.call(o);
|
|
77
|
+
if (o && typeof o.length === "number") return {
|
|
78
|
+
next: function () {
|
|
79
|
+
if (o && i >= o.length) o = void 0;
|
|
80
|
+
return { value: o && o[i++], done: !o };
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
84
|
+
};
|
|
85
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
86
|
+
exports.agentLoop = void 0;
|
|
87
|
+
var openinference_semantic_conventions_1 = require("@arizeai/openinference-semantic-conventions");
|
|
88
|
+
var arvo_core_1 = require("arvo-core");
|
|
89
|
+
var utils_1 = require("./utils");
|
|
90
|
+
var agentLoop = function (param, config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
91
|
+
var _a;
|
|
92
|
+
return __generator(this, function (_b) {
|
|
93
|
+
switch (_b.label) {
|
|
94
|
+
case 0: return [4 /*yield*/, arvo_core_1.ArvoOpenTelemetry.getInstance().startActiveSpan({
|
|
95
|
+
name: 'AgentLoop',
|
|
96
|
+
context: {
|
|
97
|
+
inheritFrom: 'TRACE_HEADERS',
|
|
98
|
+
traceHeaders: config.otelInfo.headers,
|
|
99
|
+
},
|
|
100
|
+
disableSpanManagement: true,
|
|
101
|
+
spanOptions: {
|
|
102
|
+
attributes: (_a = {},
|
|
103
|
+
_a[openinference_semantic_conventions_1.SemanticConventions.OPENINFERENCE_SPAN_KIND] = openinference_semantic_conventions_1.OpenInferenceSpanKind.AGENT,
|
|
104
|
+
_a),
|
|
105
|
+
},
|
|
106
|
+
fn: function (span) { return __awaiter(void 0, void 0, void 0, function () {
|
|
107
|
+
var otelInfo, nameToToolMap, lifecycle, executionUnits, currentToolInteractionCount, messages, toolQuotaExhausted, response, arvoToolCalls, mcpToolResultPromises, internalToolResultPromises, _loop_1, _a, _b, item, _c, _d, item, e_1_1, _e, _f, item, e_2_1, outputResult;
|
|
108
|
+
var e_3, _g, e_1, _h, e_2, _j;
|
|
109
|
+
var _k, _l, _m;
|
|
110
|
+
return __generator(this, function (_o) {
|
|
111
|
+
switch (_o.label) {
|
|
112
|
+
case 0:
|
|
113
|
+
otelInfo = {
|
|
114
|
+
span: span,
|
|
115
|
+
headers: (0, arvo_core_1.getOtelHeaderFromSpan)(span),
|
|
116
|
+
};
|
|
117
|
+
nameToToolMap = Object.fromEntries(param.tools.map(function (item) { return [item.name, item]; }));
|
|
118
|
+
lifecycle = param.initLifecycle;
|
|
119
|
+
executionUnits = param.currentTotalExecutionUnits;
|
|
120
|
+
_o.label = 1;
|
|
121
|
+
case 1:
|
|
122
|
+
_o.trys.push([1, , 22, 23]);
|
|
123
|
+
currentToolInteractionCount = param.toolInteraction.current;
|
|
124
|
+
messages = __spreadArray([], __read(param.messages), false);
|
|
125
|
+
_o.label = 2;
|
|
126
|
+
case 2:
|
|
127
|
+
if (!(currentToolInteractionCount <= param.toolInteraction.max)) return [3 /*break*/, 21];
|
|
128
|
+
toolQuotaExhausted = !(currentToolInteractionCount < param.toolInteraction.max);
|
|
129
|
+
return [4 /*yield*/, param.llm({
|
|
130
|
+
lifecycle: lifecycle,
|
|
131
|
+
system: param.system,
|
|
132
|
+
messages: messages,
|
|
133
|
+
tools: param.tools,
|
|
134
|
+
toolInteractions: {
|
|
135
|
+
current: currentToolInteractionCount,
|
|
136
|
+
max: param.toolInteraction.max,
|
|
137
|
+
exhausted: toolQuotaExhausted,
|
|
138
|
+
},
|
|
139
|
+
outputFormat: {
|
|
140
|
+
type: param.llmResponseType,
|
|
141
|
+
format: param.outputFormat,
|
|
142
|
+
},
|
|
143
|
+
}, { otelInfo: otelInfo })];
|
|
144
|
+
case 3:
|
|
145
|
+
response = _o.sent();
|
|
146
|
+
currentToolInteractionCount++;
|
|
147
|
+
executionUnits += response.executionUnits;
|
|
148
|
+
if (!(response.type === 'tool_call')) return [3 /*break*/, 19];
|
|
149
|
+
arvoToolCalls = [];
|
|
150
|
+
mcpToolResultPromises = [];
|
|
151
|
+
internalToolResultPromises = [];
|
|
152
|
+
_loop_1 = function (item) {
|
|
153
|
+
var toolCallContent = {
|
|
154
|
+
type: 'tool_use',
|
|
155
|
+
toolUseId: item.toolUseId,
|
|
156
|
+
name: item.name,
|
|
157
|
+
input: item.input,
|
|
158
|
+
};
|
|
159
|
+
messages.push({ role: 'assistant', content: toolCallContent });
|
|
160
|
+
var resolvedToolDef = nameToToolMap[item.name];
|
|
161
|
+
if (!resolvedToolDef) {
|
|
162
|
+
messages.push({
|
|
163
|
+
role: 'user',
|
|
164
|
+
content: {
|
|
165
|
+
type: 'tool_result',
|
|
166
|
+
toolUseId: item.toolUseId,
|
|
167
|
+
content: "The tool ".concat(item.name, " does not exist. Please check if you are using the correct tool and don't call this tool again till you have confirmed the existance of the correct tool"),
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
return "continue";
|
|
171
|
+
}
|
|
172
|
+
if (resolvedToolDef.serverConfig.kind === 'mcp') {
|
|
173
|
+
mcpToolResultPromises.push((function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
174
|
+
var response;
|
|
175
|
+
var _a, _b;
|
|
176
|
+
return __generator(this, function (_c) {
|
|
177
|
+
switch (_c.label) {
|
|
178
|
+
case 0: return [4 /*yield*/, ((_b = (_a = param.mcp) === null || _a === void 0 ? void 0 : _a.invokeTool({ name: resolvedToolDef.serverConfig.name, arguments: item.input }, { otelInfo: otelInfo })) === null || _b === void 0 ? void 0 : _b.catch(function (err) { return ({
|
|
179
|
+
type: 'error',
|
|
180
|
+
name: err.name,
|
|
181
|
+
message: err.message,
|
|
182
|
+
}); }))];
|
|
183
|
+
case 1:
|
|
184
|
+
response = _c.sent();
|
|
185
|
+
return [2 /*return*/, {
|
|
186
|
+
type: 'tool_result',
|
|
187
|
+
toolUseId: item.toolUseId,
|
|
188
|
+
content: response
|
|
189
|
+
? JSON.stringify(response)
|
|
190
|
+
: 'No response available from the MCP',
|
|
191
|
+
}];
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}); })());
|
|
195
|
+
}
|
|
196
|
+
else if (resolvedToolDef.serverConfig.kind === 'internal') {
|
|
197
|
+
internalToolResultPromises.push((function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
198
|
+
var serverConfig, response;
|
|
199
|
+
var _a;
|
|
200
|
+
return __generator(this, function (_b) {
|
|
201
|
+
switch (_b.label) {
|
|
202
|
+
case 0:
|
|
203
|
+
serverConfig = resolvedToolDef.serverConfig;
|
|
204
|
+
if (!('fn' in serverConfig.contract &&
|
|
205
|
+
serverConfig.contract.fn &&
|
|
206
|
+
typeof serverConfig.contract.fn === 'function')) {
|
|
207
|
+
return [2 /*return*/, {
|
|
208
|
+
type: 'tool_result',
|
|
209
|
+
toolUseId: item.toolUseId,
|
|
210
|
+
content: 'Invalid internal tool call',
|
|
211
|
+
}];
|
|
212
|
+
}
|
|
213
|
+
return [4 /*yield*/, ((_a = serverConfig.contract
|
|
214
|
+
.fn(item.input, { otelInfo: otelInfo })) === null || _a === void 0 ? void 0 : _a.catch(function (err) { return ({
|
|
215
|
+
type: 'error',
|
|
216
|
+
name: err.name,
|
|
217
|
+
message: err.message,
|
|
218
|
+
}); }))];
|
|
219
|
+
case 1:
|
|
220
|
+
response = _b.sent();
|
|
221
|
+
return [2 /*return*/, {
|
|
222
|
+
type: 'tool_result',
|
|
223
|
+
toolUseId: item.toolUseId,
|
|
224
|
+
content: response
|
|
225
|
+
? JSON.stringify(response)
|
|
226
|
+
: 'No response available from the internal tool',
|
|
227
|
+
}];
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
}); })());
|
|
231
|
+
}
|
|
232
|
+
else if (resolvedToolDef.serverConfig.kind === 'arvo') {
|
|
233
|
+
var zodParseResult = ((_k = resolvedToolDef.serverConfig.contract) === null || _k === void 0 ? void 0 : _k.accepts.schema).safeParse(item.input);
|
|
234
|
+
if (zodParseResult === null || zodParseResult === void 0 ? void 0 : zodParseResult.error) {
|
|
235
|
+
messages.push({
|
|
236
|
+
role: 'user',
|
|
237
|
+
content: {
|
|
238
|
+
type: 'tool_result',
|
|
239
|
+
toolUseId: item.toolUseId,
|
|
240
|
+
content: JSON.stringify({
|
|
241
|
+
type: 'error',
|
|
242
|
+
name: "".concat(zodParseResult.error.name, " Please refer to the tool definition for '").concat(item.name, "'"),
|
|
243
|
+
message: zodParseResult.error.message,
|
|
244
|
+
}),
|
|
245
|
+
},
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
arvoToolCalls.push(__assign(__assign({}, toolCallContent), { name: (_m = (_l = resolvedToolDef.serverConfig.contract) === null || _l === void 0 ? void 0 : _l.accepts.type) !== null && _m !== void 0 ? _m : resolvedToolDef.serverConfig.name }));
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
try {
|
|
254
|
+
for (_a = (e_3 = void 0, __values((0, utils_1.prioritizeToolCalls)(response.toolRequests, nameToToolMap))), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
255
|
+
item = _b.value;
|
|
256
|
+
_loop_1(item);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
260
|
+
finally {
|
|
261
|
+
try {
|
|
262
|
+
if (_b && !_b.done && (_g = _a.return)) _g.call(_a);
|
|
263
|
+
}
|
|
264
|
+
finally { if (e_3) throw e_3.error; }
|
|
265
|
+
}
|
|
266
|
+
_o.label = 4;
|
|
267
|
+
case 4:
|
|
268
|
+
_o.trys.push([4, 9, 10, 11]);
|
|
269
|
+
e_1 = void 0;
|
|
270
|
+
return [4 /*yield*/, Promise.all(mcpToolResultPromises)];
|
|
271
|
+
case 5:
|
|
272
|
+
_c = (__values.apply(void 0, [_o.sent()])), _d = _c.next();
|
|
273
|
+
_o.label = 6;
|
|
274
|
+
case 6:
|
|
275
|
+
if (!!_d.done) return [3 /*break*/, 8];
|
|
276
|
+
item = _d.value;
|
|
277
|
+
messages.push({ role: 'user', content: item });
|
|
278
|
+
_o.label = 7;
|
|
279
|
+
case 7:
|
|
280
|
+
_d = _c.next();
|
|
281
|
+
return [3 /*break*/, 6];
|
|
282
|
+
case 8: return [3 /*break*/, 11];
|
|
283
|
+
case 9:
|
|
284
|
+
e_1_1 = _o.sent();
|
|
285
|
+
e_1 = { error: e_1_1 };
|
|
286
|
+
return [3 /*break*/, 11];
|
|
287
|
+
case 10:
|
|
288
|
+
try {
|
|
289
|
+
if (_d && !_d.done && (_h = _c.return)) _h.call(_c);
|
|
290
|
+
}
|
|
291
|
+
finally { if (e_1) throw e_1.error; }
|
|
292
|
+
return [7 /*endfinally*/];
|
|
293
|
+
case 11:
|
|
294
|
+
_o.trys.push([11, 16, 17, 18]);
|
|
295
|
+
e_2 = void 0;
|
|
296
|
+
return [4 /*yield*/, Promise.all(internalToolResultPromises)];
|
|
297
|
+
case 12:
|
|
298
|
+
_e = (__values.apply(void 0, [_o.sent()])), _f = _e.next();
|
|
299
|
+
_o.label = 13;
|
|
300
|
+
case 13:
|
|
301
|
+
if (!!_f.done) return [3 /*break*/, 15];
|
|
302
|
+
item = _f.value;
|
|
303
|
+
messages.push({ role: 'user', content: item });
|
|
304
|
+
_o.label = 14;
|
|
305
|
+
case 14:
|
|
306
|
+
_f = _e.next();
|
|
307
|
+
return [3 /*break*/, 13];
|
|
308
|
+
case 15: return [3 /*break*/, 18];
|
|
309
|
+
case 16:
|
|
310
|
+
e_2_1 = _o.sent();
|
|
311
|
+
e_2 = { error: e_2_1 };
|
|
312
|
+
return [3 /*break*/, 18];
|
|
313
|
+
case 17:
|
|
314
|
+
try {
|
|
315
|
+
if (_f && !_f.done && (_j = _e.return)) _j.call(_e);
|
|
316
|
+
}
|
|
317
|
+
finally { if (e_2) throw e_2.error; }
|
|
318
|
+
return [7 /*endfinally*/];
|
|
319
|
+
case 18:
|
|
320
|
+
if (arvoToolCalls.length) {
|
|
321
|
+
return [2 /*return*/, {
|
|
322
|
+
messages: messages,
|
|
323
|
+
toolCalls: arvoToolCalls,
|
|
324
|
+
toolInteractions: {
|
|
325
|
+
current: currentToolInteractionCount,
|
|
326
|
+
max: param.toolInteraction.max,
|
|
327
|
+
},
|
|
328
|
+
executionUnits: executionUnits,
|
|
329
|
+
}];
|
|
330
|
+
}
|
|
331
|
+
lifecycle = 'tool_result';
|
|
332
|
+
return [3 /*break*/, 2];
|
|
333
|
+
case 19: return [4 /*yield*/, param.outputBuilder(__assign(__assign({}, response), { outputFormat: param.outputFormat, span: span }))];
|
|
334
|
+
case 20:
|
|
335
|
+
outputResult = _o.sent();
|
|
336
|
+
if ('error' in outputResult && outputResult.error) {
|
|
337
|
+
messages.push({
|
|
338
|
+
role: 'assistant',
|
|
339
|
+
content: {
|
|
340
|
+
type: 'text',
|
|
341
|
+
content: 'content' in response && response.content ? response.content : 'No response',
|
|
342
|
+
},
|
|
343
|
+
});
|
|
344
|
+
messages.push({
|
|
345
|
+
role: 'user',
|
|
346
|
+
content: {
|
|
347
|
+
type: 'text',
|
|
348
|
+
content: JSON.stringify({
|
|
349
|
+
type: 'error',
|
|
350
|
+
name: outputResult.error.name,
|
|
351
|
+
message: outputResult.error.message,
|
|
352
|
+
}),
|
|
353
|
+
},
|
|
354
|
+
});
|
|
355
|
+
lifecycle = 'output_error_feedback';
|
|
356
|
+
return [3 /*break*/, 2];
|
|
357
|
+
}
|
|
358
|
+
if ('data' in outputResult && outputResult.data) {
|
|
359
|
+
messages.push({
|
|
360
|
+
role: 'assistant',
|
|
361
|
+
content: {
|
|
362
|
+
type: 'text',
|
|
363
|
+
content: JSON.stringify(outputResult.data),
|
|
364
|
+
},
|
|
365
|
+
});
|
|
366
|
+
return [2 /*return*/, {
|
|
367
|
+
messages: messages,
|
|
368
|
+
output: outputResult.data,
|
|
369
|
+
toolInteractions: {
|
|
370
|
+
current: currentToolInteractionCount,
|
|
371
|
+
max: param.toolInteraction.max,
|
|
372
|
+
},
|
|
373
|
+
executionUnits: executionUnits,
|
|
374
|
+
}];
|
|
375
|
+
}
|
|
376
|
+
return [3 /*break*/, 2];
|
|
377
|
+
case 21: throw new Error("Tool calls exhausted the max quota: ".concat(currentToolInteractionCount));
|
|
378
|
+
case 22:
|
|
379
|
+
span.end();
|
|
380
|
+
return [7 /*endfinally*/];
|
|
381
|
+
case 23: return [2 /*return*/];
|
|
382
|
+
}
|
|
383
|
+
});
|
|
384
|
+
}); },
|
|
385
|
+
})];
|
|
386
|
+
case 1: return [2 /*return*/, _b.sent()];
|
|
387
|
+
}
|
|
388
|
+
});
|
|
389
|
+
}); };
|
|
390
|
+
exports.agentLoop = agentLoop;
|
|
391
|
+
//# sourceMappingURL=agentLoop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/Agent/agentLoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AgentInternalTool, AgentMessage, AgentServiceContract, AnyArvoOrchestratorContract, CreateArvoAgentParam } from './types.js';
|
|
2
|
+
type AgentState = {
|
|
3
|
+
currentSubject: string;
|
|
4
|
+
system: string | null;
|
|
5
|
+
messages: AgentMessage[];
|
|
6
|
+
toolInteractions: {
|
|
7
|
+
max: number;
|
|
8
|
+
current: number;
|
|
9
|
+
};
|
|
10
|
+
awaitingToolCalls: Record<string, {
|
|
11
|
+
type: string;
|
|
12
|
+
data: Record<string, unknown> | null;
|
|
13
|
+
}>;
|
|
14
|
+
totalExecutionUnits: number;
|
|
15
|
+
};
|
|
16
|
+
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, }: CreateArvoAgentParam<TSelfContract, TServiceContract, TTools>) => import("arvo-event-handler").ArvoResumable<AgentState, TSelfContract, { [K in keyof TServiceContract & string]: TServiceContract[K]["contract"]; }>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Agent/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAOpB,KAAK,UAAU,GAAG;IAChB,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;CAC7B,CAAC;AAEF,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,wFASC,oBAAoB,CAAC,aAAa,EAAE,gBAAgB,EAAE,MAAM,CAAC,8EAGtD,CAAC,yEAuNV,CAAC"}
|