@amodalai/runtime 0.3.39 → 0.3.41
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/src/agent/local-server.js +394 -1
- package/dist/src/agent/local-server.js.map +1 -1
- package/dist/src/session/session-builder.js +2 -0
- package/dist/src/session/session-builder.js.map +1 -1
- package/dist/src/tools/request-tool.d.ts +5 -0
- package/dist/src/tools/request-tool.js +38 -0
- package/dist/src/tools/request-tool.js.map +1 -1
- package/dist/src/tools/request-tool.test.js +98 -0
- package/dist/src/tools/request-tool.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -152,6 +152,44 @@ export function createRequestTool(options) {
|
|
|
152
152
|
}
|
|
153
153
|
// Build headers
|
|
154
154
|
const resolvedHeaders = buildHeaders(connConfig, requestConfig, extraHeaders);
|
|
155
|
+
// Apply context injection from connection spec
|
|
156
|
+
const loadedConn = options.loadedConnections?.get(connection);
|
|
157
|
+
const contextInjection = loadedConn?.spec.contextInjection;
|
|
158
|
+
if (contextInjection) {
|
|
159
|
+
for (const [contextKey, injection] of Object.entries(contextInjection)) {
|
|
160
|
+
const value = options.scopeContext?.[contextKey];
|
|
161
|
+
if (value === undefined) {
|
|
162
|
+
if (injection.required) {
|
|
163
|
+
throw new ConnectionError(`Required context injection key "${contextKey}" is missing from scope context for connection "${connection}"`, { connection, action: `${method} ${endpoint}` });
|
|
164
|
+
}
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
switch (injection.in) {
|
|
168
|
+
case 'header':
|
|
169
|
+
resolvedHeaders[injection.field] = value;
|
|
170
|
+
break;
|
|
171
|
+
case 'query': {
|
|
172
|
+
const separator = url.includes('?') ? '&' : '?';
|
|
173
|
+
url += `${separator}${encodeURIComponent(injection.field)}=${encodeURIComponent(value)}`;
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
case 'path':
|
|
177
|
+
url = url.replace(`{${injection.field}}`, encodeURIComponent(value));
|
|
178
|
+
break;
|
|
179
|
+
case 'body':
|
|
180
|
+
if (typeof data !== 'object' || data === null) {
|
|
181
|
+
throw new ConnectionError(`Context injection target "body" requires a request body for connection "${connection}"`, { connection, action: `${method} ${endpoint}` });
|
|
182
|
+
}
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- data is validated as object above
|
|
184
|
+
data[injection.field] = value;
|
|
185
|
+
break;
|
|
186
|
+
default: {
|
|
187
|
+
const _exhaustive = injection.in;
|
|
188
|
+
throw new ConnectionError(`Unknown injection target: ${String(_exhaustive)}`, { connection, action: `${method} ${endpoint}` });
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
155
193
|
// Execute HTTP request
|
|
156
194
|
const fetchOptions = {
|
|
157
195
|
method: method.toUpperCase(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-tool.js","sourceRoot":"","sources":["../../../src/tools/request-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;GASG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"request-tool.js","sourceRoot":"","sources":["../../../src/tools/request-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -226,6 +226,104 @@ describe('createRequestTool', () => {
|
|
|
226
226
|
expect(url).toContain('tag=ai');
|
|
227
227
|
expect(url).toContain('active=true');
|
|
228
228
|
});
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
// Context injection
|
|
231
|
+
// ---------------------------------------------------------------------------
|
|
232
|
+
/** Build a typed loadedConnections map with only contextInjection set. */
|
|
233
|
+
function makeLoadedConnections(injection) {
|
|
234
|
+
return new Map([
|
|
235
|
+
['test-api', { spec: { protocol: 'rest', contextInjection: injection } }],
|
|
236
|
+
]);
|
|
237
|
+
}
|
|
238
|
+
it('injects header from scopeContext via contextInjection', async () => {
|
|
239
|
+
const loadedConnections = makeLoadedConnections({ tenant_id: { in: 'header', field: 'X-Tenant-Id', required: true } });
|
|
240
|
+
const tool = createRequestTool({
|
|
241
|
+
connectionsMap: makeConnectionsMap(),
|
|
242
|
+
permissionChecker: allowAllChecker,
|
|
243
|
+
loadedConnections,
|
|
244
|
+
scopeContext: { tenant_id: 'abc-123' },
|
|
245
|
+
});
|
|
246
|
+
const result = await tool.execute({
|
|
247
|
+
connection: 'test-api',
|
|
248
|
+
method: 'GET',
|
|
249
|
+
endpoint: '/data',
|
|
250
|
+
intent: 'read',
|
|
251
|
+
}, mockCtx);
|
|
252
|
+
expect(result['status']).toBe(200);
|
|
253
|
+
const data = result['data'];
|
|
254
|
+
const headers = data['headers'];
|
|
255
|
+
expect(headers['x-tenant-id']).toBe('abc-123');
|
|
256
|
+
});
|
|
257
|
+
it('injects query param from scopeContext via contextInjection', async () => {
|
|
258
|
+
const loadedConnections = makeLoadedConnections({ org_id: { in: 'query', field: 'org_id' } });
|
|
259
|
+
const tool = createRequestTool({
|
|
260
|
+
connectionsMap: makeConnectionsMap(),
|
|
261
|
+
permissionChecker: allowAllChecker,
|
|
262
|
+
loadedConnections,
|
|
263
|
+
scopeContext: { org_id: 'org-456' },
|
|
264
|
+
});
|
|
265
|
+
const result = await tool.execute({
|
|
266
|
+
connection: 'test-api',
|
|
267
|
+
method: 'GET',
|
|
268
|
+
endpoint: '/items',
|
|
269
|
+
intent: 'read',
|
|
270
|
+
}, mockCtx);
|
|
271
|
+
const data = result['data'];
|
|
272
|
+
expect(data['url']).toContain('org_id=org-456');
|
|
273
|
+
});
|
|
274
|
+
it('throws when required context injection key is missing', async () => {
|
|
275
|
+
const loadedConnections = makeLoadedConnections({ tenant_id: { in: 'header', field: 'X-Tenant-Id', required: true } });
|
|
276
|
+
const tool = createRequestTool({
|
|
277
|
+
connectionsMap: makeConnectionsMap(),
|
|
278
|
+
permissionChecker: allowAllChecker,
|
|
279
|
+
loadedConnections,
|
|
280
|
+
scopeContext: {}, // missing tenant_id
|
|
281
|
+
});
|
|
282
|
+
await expect(tool.execute({
|
|
283
|
+
connection: 'test-api',
|
|
284
|
+
method: 'GET',
|
|
285
|
+
endpoint: '/data',
|
|
286
|
+
intent: 'read',
|
|
287
|
+
}, mockCtx)).rejects.toThrow(ConnectionError);
|
|
288
|
+
});
|
|
289
|
+
it('skips optional context injection key when missing', async () => {
|
|
290
|
+
const loadedConnections = makeLoadedConnections({ tenant_id: { in: 'header', field: 'X-Tenant-Id' } });
|
|
291
|
+
const tool = createRequestTool({
|
|
292
|
+
connectionsMap: makeConnectionsMap(),
|
|
293
|
+
permissionChecker: allowAllChecker,
|
|
294
|
+
loadedConnections,
|
|
295
|
+
scopeContext: {}, // missing but not required
|
|
296
|
+
});
|
|
297
|
+
const result = await tool.execute({
|
|
298
|
+
connection: 'test-api',
|
|
299
|
+
method: 'GET',
|
|
300
|
+
endpoint: '/data',
|
|
301
|
+
intent: 'read',
|
|
302
|
+
}, mockCtx);
|
|
303
|
+
expect(result['status']).toBe(200);
|
|
304
|
+
const data = result['data'];
|
|
305
|
+
const headers = data['headers'];
|
|
306
|
+
expect(headers['x-tenant-id']).toBeUndefined();
|
|
307
|
+
});
|
|
308
|
+
it('throws when body injection has no request body', async () => {
|
|
309
|
+
const loadedConnections = makeLoadedConnections({ tenant_id: { in: 'body', field: 'tenant_id', required: true } });
|
|
310
|
+
const tool = createRequestTool({
|
|
311
|
+
connectionsMap: makeConnectionsMap(),
|
|
312
|
+
permissionChecker: allowAllChecker,
|
|
313
|
+
loadedConnections,
|
|
314
|
+
scopeContext: { tenant_id: 'abc' },
|
|
315
|
+
});
|
|
316
|
+
await expect(tool.execute({
|
|
317
|
+
connection: 'test-api',
|
|
318
|
+
method: 'GET',
|
|
319
|
+
endpoint: '/data',
|
|
320
|
+
intent: 'read',
|
|
321
|
+
// no data — body injection should throw
|
|
322
|
+
}, mockCtx)).rejects.toThrow(ConnectionError);
|
|
323
|
+
});
|
|
324
|
+
// ---------------------------------------------------------------------------
|
|
325
|
+
// Permission checker shape
|
|
326
|
+
// ---------------------------------------------------------------------------
|
|
229
327
|
it('passes permission checker the correct request shape', async () => {
|
|
230
328
|
const checkSpy = vi.fn().mockReturnValue({ allowed: true });
|
|
231
329
|
const spyChecker = { check: checkSpy };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-tool.test.js","sourceRoot":"","sources":["../../../src/tools/request-tool.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAC,YAAY,EAAc,MAAM,WAAW,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAG7C,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,IAAI,MAAc,CAAC;AACnB,IAAI,OAAe,CAAC;AAEpB,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACjC,4BAA4B;QAC5B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC/B,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,IAAI,EAAE,IAAI,IAAI,SAAS;aACxB,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,GAAG,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACpD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE;IACZ,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,eAAe,GAAsB;IACzC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAsB,CAAA;CACnD,CAAC;AAEF,MAAM,cAAc,GAAsB;IACxC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAsB,CAAA;CAC7G,CAAC;AAEF,MAAM,WAAW,GAAsB;IACrC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAsB,CAAA;CACjF,CAAC;AAEF,SAAS,kBAAkB,CAAC,YAA6C,EAAE;IACzE,OAAO;QACL,UAAU,EAAE;YACV,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,gBAAgB;YACzB,eAAe,EAAE;gBACf,cAAc,EAAE,UAAU;gBAC1B,IAAI,EAAE,CAAC,EAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAC,CAAC;gBACvE,eAAe,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAC;aACxC;YACD,GAAG,SAAS;SACb;KACF,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAgB;IAC3B,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;IAChB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;IACd,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IACZ,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;IACjC,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAChC,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,MAAM;SACf,EAAE,OAAO,CAA4B,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAA4B,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAA4B,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAChC,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,WAAW;YACrB,MAAM,EAAE,iBAAiB;YACzB,IAAI,EAAE,EAAC,KAAK,EAAE,cAAc,EAAC;SAC9B,EAAE,OAAO,CAA4B,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAA4B,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,cAAc;SAClC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAChC,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,WAAW;YACrB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,EAAC,KAAK,EAAE,OAAO,EAAC;SACvB,EAAE,OAAO,CAA4B,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,WAAW;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAChC,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,OAAO;SAChB,EAAE,OAAO,CAA4B,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAI,CAAC,OAAO,CAAC;YACX,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,MAAM;SACf,EAAE,OAAO,CAAC,CACZ,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,EAAC,QAAQ,EAAE,EAA4B,EAAC;YACxD,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAI,CAAC,OAAO,CAAC;YACX,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,MAAM;SACf,EAAE,OAAO,CAAC,CACZ,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,eAAe;YAClC,UAAU,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAChC,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,sBAAsB;YAChC,MAAM,EAAE,MAAM;SACf,EAAE,OAAO,CAA4B,CAAC;QAEvC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAA4B,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAChC,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,EAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAC;SACjC,EAAE,OAAO,CAA4B,CAAC;QAEvC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAA4B,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAW,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAChC,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAsC;SACrF,EAAE,OAAO,CAA4B,CAAC;QAEvC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAA4B,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAW,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAsB,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;QAExD,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,cAAc,EAAE,kBAAkB,EAAE;YACpC,iBAAiB,EAAE,UAAU;YAC7B,QAAQ,EAAE,IAAI;YACd,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;SAC3B,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,OAAO,CAAC;YACjB,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,MAAM;SACf,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAoC,CAAC,CAAC,CAAC;QAE9D,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,MAAM,CAAC,gBAAgB,CAAC;YACtB,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI;YACd,cAAc,EAAE,IAAI;SACrB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"request-tool.test.js","sourceRoot":"","sources":["../../../src/tools/request-tool.test.ts"],"names":[],"mappings":"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"}
|