@arvo-tools/agentic 1.1.0 → 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.
- package/dist/Agent/agentLoop.d.ts +4 -0
- package/dist/Agent/agentLoop.d.ts.map +1 -1
- package/dist/Agent/agentLoop.js +148 -56
- package/dist/Agent/agentLoop.js.map +1 -1
- package/dist/Agent/index.d.ts +39 -41
- package/dist/Agent/index.d.ts.map +1 -1
- package/dist/Agent/index.js +143 -93
- package/dist/Agent/index.js.map +1 -1
- package/dist/Agent/stream/schema.d.ts +156 -0
- package/dist/Agent/stream/schema.d.ts.map +1 -1
- package/dist/Agent/stream/schema.js +34 -0
- package/dist/Agent/stream/schema.js.map +1 -1
- package/dist/Agent/types.d.ts +128 -16
- package/dist/Agent/types.d.ts.map +1 -1
- package/dist/SimplePermissionManager/contract.d.ts +35 -0
- package/dist/SimplePermissionManager/contract.d.ts.map +1 -0
- package/dist/SimplePermissionManager/contract.js +34 -0
- package/dist/SimplePermissionManager/contract.js.map +1 -0
- package/dist/SimplePermissionManager/index.d.ts +144 -0
- package/dist/SimplePermissionManager/index.d.ts.map +1 -0
- package/dist/SimplePermissionManager/index.js +256 -0
- package/dist/SimplePermissionManager/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.permission.manager.d.ts +191 -0
- package/dist/interfaces.permission.manager.d.ts.map +1 -0
- package/dist/interfaces.permission.manager.js +3 -0
- package/dist/interfaces.permission.manager.js.map +1 -0
- package/package.json +1 -2
|
@@ -84,5 +84,39 @@ exports.AgentStreamEventSchema = zod_1.default.discriminatedUnion('type', [
|
|
|
84
84
|
content: zod_1.default.string(),
|
|
85
85
|
}),
|
|
86
86
|
}),
|
|
87
|
+
zod_1.default.object({
|
|
88
|
+
type: zod_1.default.literal('agent.tool.permission.blocked'),
|
|
89
|
+
data: zod_1.default.object({
|
|
90
|
+
tools: zod_1.default
|
|
91
|
+
.object({
|
|
92
|
+
name: zod_1.default.string(),
|
|
93
|
+
kind: zod_1.default.string(),
|
|
94
|
+
originalName: zod_1.default.string(),
|
|
95
|
+
})
|
|
96
|
+
.array(),
|
|
97
|
+
usage: zod_1.default.object({
|
|
98
|
+
prompt: zod_1.default.number(),
|
|
99
|
+
completion: zod_1.default.number(),
|
|
100
|
+
}),
|
|
101
|
+
executionunits: zod_1.default.number(),
|
|
102
|
+
}),
|
|
103
|
+
}),
|
|
104
|
+
zod_1.default.object({
|
|
105
|
+
type: zod_1.default.literal('agent.tool.permission.requested'),
|
|
106
|
+
data: zod_1.default.object({
|
|
107
|
+
tools: zod_1.default
|
|
108
|
+
.object({
|
|
109
|
+
name: zod_1.default.string(),
|
|
110
|
+
kind: zod_1.default.string(),
|
|
111
|
+
originalName: zod_1.default.string(),
|
|
112
|
+
})
|
|
113
|
+
.array(),
|
|
114
|
+
usage: zod_1.default.object({
|
|
115
|
+
prompt: zod_1.default.number(),
|
|
116
|
+
completion: zod_1.default.number(),
|
|
117
|
+
}),
|
|
118
|
+
executionunits: zod_1.default.number(),
|
|
119
|
+
}),
|
|
120
|
+
}),
|
|
87
121
|
]);
|
|
88
122
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/Agent/stream/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/Agent/stream/schema.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AAEpB,IAAM,gBAAgB,GAAG,aAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,aAAC,CAAC,MAAM,CAAC,aAAC,CAAC,MAAM,EAAE,EAAE,aAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE;IAC/C,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,eAAe,EAAE,aAAC,CAAC,MAAM,EAAE;IAC3B,mBAAmB,EAAE,aAAC,CAAC,MAAM,CAAC;QAC5B,GAAG,EAAE,aAAC,CAAC,MAAM,EAAE;QACf,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,aAAC,CAAC,OAAO,EAAE;KACvB,CAAC;CACH,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,aAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACjE,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC7B,IAAI,EAAE,gBAAgB;KACvB,CAAC;IACF,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/B,IAAI,EAAE,gBAAgB;KACvB,CAAC;IACF,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACxC,IAAI,EAAE,gBAAgB;KACvB,CAAC;IACF,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACrC,IAAI,EAAE,aAAC,CAAC,MAAM,CAAC;YACb,IAAI,EAAE,aAAC,CAAC,MAAM,CAAC;gBACb,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE;gBAChB,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE;gBAChB,YAAY,EAAE,aAAC,CAAC,MAAM,EAAE;aACzB,CAAC;YACF,KAAK,EAAE,aAAC,CAAC,MAAM,CAAC;gBACd,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE;gBAClB,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,cAAc,EAAE,aAAC,CAAC,MAAM,EAAE;SAC3B,CAAC;KACH,CAAC;IACF,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC;QAC5C,IAAI,EAAE,aAAC,CAAC,MAAM,CAAC;YACb,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE;YACnB,KAAK,EAAE,aAAC,CAAC,MAAM,CAAC;gBACd,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE;gBAClB,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,cAAc,EAAE,aAAC,CAAC,MAAM,EAAE;SAC3B,CAAC;KACH,CAAC;IACF,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/B,IAAI,EAAE,aAAC,CAAC,MAAM,CAAC;YACb,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE;YACnB,KAAK,EAAE,aAAC,CAAC,MAAM,CAAC;gBACd,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE;gBAClB,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,cAAc,EAAE,aAAC,CAAC,MAAM,EAAE;SAC3B,CAAC;KACH,CAAC;IACF,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC;QAChD,IAAI,EAAE,aAAC,CAAC,MAAM,CAAC;YACb,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;YACzB,KAAK,EAAE,aAAC,CAAC,MAAM,CAAC;gBACd,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE;gBAClB,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,cAAc,EAAE,aAAC,CAAC,MAAM,EAAE;SAC3B,CAAC;KACH,CAAC;IACF,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAClC,IAAI,EAAE,aAAC,CAAC,MAAM,CAAC;YACb,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE;YACjB,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE;SACpB,CAAC;KACH,CAAC;IACF,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC;QAChD,IAAI,EAAE,aAAC,CAAC,MAAM,CAAC;YACb,KAAK,EAAE,aAAC;iBACL,MAAM,CAAC;gBACN,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE;gBAChB,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE;gBAChB,YAAY,EAAE,aAAC,CAAC,MAAM,EAAE;aACzB,CAAC;iBACD,KAAK,EAAE;YACV,KAAK,EAAE,aAAC,CAAC,MAAM,CAAC;gBACd,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE;gBAClB,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,cAAc,EAAE,aAAC,CAAC,MAAM,EAAE;SAC3B,CAAC;KACH,CAAC;IACF,aAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC;QAClD,IAAI,EAAE,aAAC,CAAC,MAAM,CAAC;YACb,KAAK,EAAE,aAAC;iBACL,MAAM,CAAC;gBACN,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE;gBAChB,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE;gBAChB,YAAY,EAAE,aAAC,CAAC,MAAM,EAAE;aACzB,CAAC;iBACD,KAAK,EAAE;YACV,KAAK,EAAE,aAAC,CAAC,MAAM,CAAC;gBACd,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE;gBAClB,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,cAAc,EAAE,aAAC,CAAC,MAAM,EAAE;SAC3B,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
|
package/dist/Agent/types.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type z from 'zod';
|
|
|
5
5
|
import type { AgentInternalTool } from '../AgentTool/types';
|
|
6
6
|
import type { AgentLLMIntegration, AgentLLMIntegrationOutput, AgentLLMIntegrationParam } from '../Integrations/types';
|
|
7
7
|
import type { IMCPClient } from '../interfaces.mcp';
|
|
8
|
+
import type { IPermissionManager } from '../interfaces.permission.manager';
|
|
8
9
|
import type { NonEmptyArray, PromiseAble } from '../types';
|
|
9
10
|
import type { AgentMediaContentSchema, AgentMessageContentSchema, AgentMessageSchema, AgentTextContentSchema, AgentToolCallContentSchema, AgentToolResultContentSchema } from './schema';
|
|
10
11
|
import type { AgentStreamListener } from './stream/types';
|
|
@@ -234,6 +235,12 @@ export type CreateArvoAgentParam<TSelfContract extends AnyArvoOrchestratorContra
|
|
|
234
235
|
* @remarks
|
|
235
236
|
* Unlike local `tools`, calling a service here causes the Agent to **emit an event and suspend**.
|
|
236
237
|
* It allows the Agent to orchestrate long-running or distributed workflows.
|
|
238
|
+
*
|
|
239
|
+
* Each service can specify:
|
|
240
|
+
* - `contract`: The versioned contract of the target service
|
|
241
|
+
* - `domains`: Event routing hints (e.g., ['human.interaction'] or [ArvoDomain.FROM_EVENT_CONTRACT])
|
|
242
|
+
* - `priority`: Execution precedence for batch tool calls
|
|
243
|
+
*
|
|
237
244
|
*/
|
|
238
245
|
services: TServiceContract;
|
|
239
246
|
};
|
|
@@ -258,45 +265,150 @@ export type CreateArvoAgentParam<TSelfContract extends AnyArvoOrchestratorContra
|
|
|
258
265
|
*/
|
|
259
266
|
mcp?: IMCPClient;
|
|
260
267
|
/**
|
|
261
|
-
*
|
|
262
|
-
*
|
|
268
|
+
* Internal tools executed synchronously within the agent's process.
|
|
269
|
+
*
|
|
270
|
+
* Best suited for lightweight operations.
|
|
271
|
+
* Internal tools should complete in milliseconds. For operations requiring
|
|
272
|
+
* network I/O, database access, or extended computation, use Arvo services
|
|
273
|
+
* to avoid blocking the agent's execution.
|
|
274
|
+
*
|
|
275
|
+
* Each tool is created via `createAgentTool()` which adds automatic
|
|
276
|
+
* input validation and OpenTelemetry instrumentation.
|
|
263
277
|
*/
|
|
264
278
|
tools?: TTools;
|
|
265
279
|
/**
|
|
266
280
|
* The default mechanism to force the Agent to generate a specific output structure.
|
|
267
281
|
* - `'text'`: Standard conversational response.
|
|
268
282
|
* - `'json'`: Structured Output / JSON Mode (validated against the contract's output schema).
|
|
283
|
+
*
|
|
284
|
+
* Individual versions can override this via their handler configuration,
|
|
285
|
+
* enabling progressive migration from text to structured outputs.
|
|
269
286
|
* @defaultValue 'text'
|
|
270
287
|
*/
|
|
271
288
|
llmResponseType?: AgentLLMIntegrationParam['outputFormat']['type'];
|
|
272
289
|
/**
|
|
273
|
-
*
|
|
274
|
-
*
|
|
290
|
+
* Default LLM integration function connecting the agent to its reasoning engine.
|
|
291
|
+
* Individual versions can override this to use different models per version.
|
|
275
292
|
*/
|
|
276
293
|
llm: AgentLLMIntegration;
|
|
277
|
-
/**
|
|
294
|
+
/**
|
|
295
|
+
* Optional event stream listener for real-time agent activity monitoring.
|
|
296
|
+
*
|
|
297
|
+
* Useful for building real-time UIs or logging.
|
|
298
|
+
* Events include contextual metadata (subject, initiator, agent version) for
|
|
299
|
+
* correlation across distributed traces.
|
|
300
|
+
*/
|
|
278
301
|
onStream?: AgentStreamListener;
|
|
279
302
|
/**
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
*
|
|
303
|
+
* Optional non-LLM authorization layer for deterministic tool access control.
|
|
304
|
+
*
|
|
305
|
+
* The permission manager enforces security policies outside the LLM's reasoning,
|
|
306
|
+
* preventing prompt injection attacks from bypassing authorization.
|
|
307
|
+
* This pattern is critical for systems requiring explicity permission policy implmentation,
|
|
308
|
+
* compliance enforcement, and defense against AI jailbreaking.
|
|
309
|
+
*/
|
|
310
|
+
permissionManager?: IPermissionManager;
|
|
311
|
+
/**
|
|
312
|
+
* Version-specific handler implementations for each contract version.
|
|
313
|
+
*
|
|
314
|
+
* Arvo enforces complete version coverage: you must provide handlers for every
|
|
315
|
+
* version defined in `contracts.self.versions`.
|
|
283
316
|
*
|
|
284
|
-
*
|
|
285
|
-
* breaking consumers of
|
|
317
|
+
* Version handlers enable independent evolution of prompts, models, and output
|
|
318
|
+
* schemas without breaking existing consumers of older versions.
|
|
286
319
|
*/
|
|
287
320
|
handler: {
|
|
288
321
|
[K in keyof TSelfContract['versions'] & ArvoSemanticVersion]: {
|
|
289
322
|
/**
|
|
290
|
-
*
|
|
291
|
-
*
|
|
292
|
-
*
|
|
323
|
+
* Function defining which tools require explicit permission for this version.
|
|
324
|
+
*
|
|
325
|
+
* Tools not in this list bypass permission checks entirely. This enables
|
|
326
|
+
* selective authorization where only sensitive operations (data deletion,
|
|
327
|
+
* financial transactions, external integrations) require approval while
|
|
328
|
+
* read-only or low-risk tools execute freely.
|
|
329
|
+
*
|
|
330
|
+
* The function receives all available tools (services, MCP, internal) to
|
|
331
|
+
* support dynamic policy decisions based on the tool catalog.
|
|
332
|
+
*
|
|
333
|
+
* @example
|
|
334
|
+
* ```typescript
|
|
335
|
+
* explicityPermissionRequired: async ({ services, tools, mcp }) => [
|
|
336
|
+
* services.deleteUser.name,
|
|
337
|
+
* services.processRefund.name,
|
|
338
|
+
* tools.executeSQL.name,
|
|
339
|
+
* mcp['some_mcp_tool'].name,
|
|
340
|
+
* ]
|
|
341
|
+
* ```
|
|
342
|
+
*/
|
|
343
|
+
explicityPermissionRequired?: (tools: AgentLLMContext<TServiceContract, TTools>['tools']) => PromiseAble<string[]>;
|
|
344
|
+
/**
|
|
345
|
+
* Version-specific override for the LLM response format.
|
|
346
|
+
* Overrides the agent-level `llmResponseType` default for this version only.
|
|
293
347
|
*/
|
|
294
348
|
llmResponseType?: AgentLLMIntegrationParam['outputFormat']['type'];
|
|
295
|
-
/**
|
|
349
|
+
/**
|
|
350
|
+
* Version-specific override for the LLM integration.
|
|
351
|
+
* Overrides the agent-level `llm` default for this version only.
|
|
352
|
+
* Enables model evolution across versions.
|
|
353
|
+
* Each version can use completely different models or providers without
|
|
354
|
+
* affecting other versions or requiring code changes in consumers.
|
|
355
|
+
*/
|
|
296
356
|
llm?: AgentLLMIntegration;
|
|
297
|
-
/**
|
|
357
|
+
/**
|
|
358
|
+
* Context engineering function executed once during agent initialization.
|
|
359
|
+
*
|
|
360
|
+
* Transforms the initialization event into the agent's foundational state:
|
|
361
|
+
* - System prompt defining the agent's role and capabilities
|
|
362
|
+
* - Initial message history seeding the conversation
|
|
363
|
+
*
|
|
364
|
+
* The returned context persists in memory and forms the base that all
|
|
365
|
+
* subsequent tool results and LLM responses append to. This function
|
|
366
|
+
* runs only once per workflow—resumptions after service calls do not
|
|
367
|
+
* re-execute the context builder.
|
|
368
|
+
*
|
|
369
|
+
* @example
|
|
370
|
+
* ```typescript
|
|
371
|
+
* context: async ({ input, tools, span }) => ({
|
|
372
|
+
* system: `You are a customer support agent. Available tools:
|
|
373
|
+
* - ${tools.services.billing.name}: Access billing data
|
|
374
|
+
* - ${tools.services.ticketing.name}: Create support tickets`,
|
|
375
|
+
* messages: [
|
|
376
|
+
* {
|
|
377
|
+
* role: 'user',
|
|
378
|
+
* content: { type: 'text', content: input.data.customerQuery },
|
|
379
|
+
* seenCount: 0
|
|
380
|
+
* }
|
|
381
|
+
* ]
|
|
382
|
+
* })
|
|
383
|
+
* ```
|
|
384
|
+
*/
|
|
298
385
|
context: AgentContextBuilder<TSelfContract, K, TServiceContract, TTools>;
|
|
299
|
-
/**
|
|
386
|
+
/**
|
|
387
|
+
* Output validation function mapping LLM responses to contract-compliant events.
|
|
388
|
+
* Executes when the agent generates a final response (not a tool call).
|
|
389
|
+
*
|
|
390
|
+
* Returns either:
|
|
391
|
+
* - `{ data: {...} }`: Successfully validated output matching the contract
|
|
392
|
+
* - `{ error: Error }`: Validation failure triggering self-correction loop
|
|
393
|
+
*
|
|
394
|
+
* When validation fails, the agent appends the error to message history
|
|
395
|
+
* and re-invokes the LLM, enabling automatic correction of malformed outputs.
|
|
396
|
+
*
|
|
397
|
+
* @example
|
|
398
|
+
* ```typescript
|
|
399
|
+
* output: ({ content, parsedContent, outputFormat, span }) => {
|
|
400
|
+
* const result = outputFormat.safeParse(
|
|
401
|
+
* parsedContent ?? JSON.parse(content)
|
|
402
|
+
* );
|
|
403
|
+
*
|
|
404
|
+
* if (result.error) {
|
|
405
|
+
* return { error: result.error };
|
|
406
|
+
* }
|
|
407
|
+
*
|
|
408
|
+
* return { data: result.data };
|
|
409
|
+
* }
|
|
410
|
+
* ```
|
|
411
|
+
*/
|
|
300
412
|
output: AgentOutputBuilder<TSelfContract, K>;
|
|
301
413
|
};
|
|
302
414
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Agent/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,0FAA0F;AAC1F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,wEAAwE;AACxE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,sDAAsD;AACtD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,kFAAkF;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAG7E,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,gEAAgE;IAEhE,QAAQ,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACrC;;;;;OAKG;IACH,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;IAElC,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IAEb,wFAAwF;IACxF,QAAQ,EAAE,CAAC,CAAC;IAEZ;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SACG,qBAAqB,CAAC,eAAe,EAAE,mBAAmB,CAAC,GAC3D,iBAAiB,GACjB,IAAI,GAAG,IAAI,IACb;IACF,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IAEjD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,qDAAqD;IACrD,YAAY,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,CACzB,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CACpE,MAAM,EACN,oBAAoB,CACrB,EACD,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAClF;IACF,8DAA8D;IAC9D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sDAAsD;IACtD,QAAQ,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACvE;;;OAGG;IACH,KAAK,EAAE;QACL,QAAQ,EAAE;aACP,CAAC,IAAI,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;SACpF,CAAC;QACF,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,KAAK,EAAE;aAAG,CAAC,IAAI,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAAE,CAAC;KAChE,CAAC;IACF,6CAA6C;IAC7C,gBAAgB,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,2BAA2B,GAAG,2BAA2B,EACnE,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EACnD,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CACpE,MAAM,EACN,oBAAoB,CACrB,EACD,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAClF,CAAC,KAAK,EAAE;IACV,SAAS,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACjD,2EAA2E;IAC3E,KAAK,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1E,0CAA0C;IAC1C,YAAY,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,+DAA+D;IAC/D,KAAK,EAAE,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1D,mCAAmC;IACnC,IAAI,EAAE,IAAI,CAAC;CAEZ,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAElG;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,CAC5B,CAAC,SAAS,2BAA2B,GAAG,2BAA2B,EACnE,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,IACjD,CACF,KAAK,EAAE,OAAO,CAAC,yBAAyB,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,GAAG;IACrE,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;CACZ,KACE,WAAW,CACZ;IACE,uDAAuD;IACvD,IAAI,EAAE,0BAA0B,CAC9B,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAC5B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;QACvD,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,gBAAgB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;KACvF,CAAC;CACH,GACD;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAC9B,aAAa,SAAS,2BAA2B,GAAG,2BAA2B,EAC/E,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CACpE,MAAM,EACN,oBAAoB,CACrB,EACD,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAClF;IACF;;OAEG;IACH,SAAS,EAAE;QACT;;;;;WAKG;QACH,IAAI,EAAE,aAAa,CAAC;QAEpB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Agent/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Default permission contract for simple approval workflows.
|
|
4
|
+
*/
|
|
5
|
+
export declare const simplePermissionContract: import("arvo-core").SimpleArvoContract<"#/arvo/tools/default/agentic/permission/simple", "arvo.default.simple.permission.request", {
|
|
6
|
+
'1.0.0': {
|
|
7
|
+
accepts: z.ZodObject<{
|
|
8
|
+
agentId: z.ZodString;
|
|
9
|
+
requestedTools: z.ZodArray<z.ZodString, "many">;
|
|
10
|
+
reason: z.ZodString;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
agentId: string;
|
|
13
|
+
requestedTools: string[];
|
|
14
|
+
reason: string;
|
|
15
|
+
}, {
|
|
16
|
+
agentId: string;
|
|
17
|
+
requestedTools: string[];
|
|
18
|
+
reason: string;
|
|
19
|
+
}>;
|
|
20
|
+
emits: z.ZodObject<{
|
|
21
|
+
commentary: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
22
|
+
granted: z.ZodArray<z.ZodString, "many">;
|
|
23
|
+
denied: z.ZodArray<z.ZodString, "many">;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
commentary: string;
|
|
26
|
+
granted: string[];
|
|
27
|
+
denied: string[];
|
|
28
|
+
}, {
|
|
29
|
+
granted: string[];
|
|
30
|
+
denied: string[];
|
|
31
|
+
commentary?: string | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
}, Record<string, any>>;
|
|
35
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/SimplePermissionManager/contract.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA0BnC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.simplePermissionContract = void 0;
|
|
7
|
+
var arvo_core_1 = require("arvo-core");
|
|
8
|
+
var zod_1 = __importDefault(require("zod"));
|
|
9
|
+
/**
|
|
10
|
+
* Default permission contract for simple approval workflows.
|
|
11
|
+
*/
|
|
12
|
+
exports.simplePermissionContract = (0, arvo_core_1.createSimpleArvoContract)({
|
|
13
|
+
uri: '#/arvo/tools/default/agentic/permission/simple',
|
|
14
|
+
type: 'arvo.default.simple.permission.request',
|
|
15
|
+
description: 'Simple permission request contract for agent tool authorization',
|
|
16
|
+
versions: {
|
|
17
|
+
'1.0.0': {
|
|
18
|
+
accepts: zod_1.default.object({
|
|
19
|
+
agentId: zod_1.default.string().describe('The agent requesting permission'),
|
|
20
|
+
requestedTools: zod_1.default.array(zod_1.default.string()).describe('Tool names requiring authorization'),
|
|
21
|
+
reason: zod_1.default.string().describe('Explanation of why these tools are needed'),
|
|
22
|
+
}),
|
|
23
|
+
emits: zod_1.default.object({
|
|
24
|
+
commentary: zod_1.default
|
|
25
|
+
.string()
|
|
26
|
+
.optional()
|
|
27
|
+
.default((0, arvo_core_1.cleanString)("\n In case the same tool appears in granted and denied list, then consider it denied. \n If the permission blocked tools does not appear in the granted list, the consider it denied as well \n ")),
|
|
28
|
+
granted: zod_1.default.array(zod_1.default.string()).describe('Tool names that were granted permission'),
|
|
29
|
+
denied: zod_1.default.array(zod_1.default.string()).describe('Tool names that were denied permission'),
|
|
30
|
+
}),
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/SimplePermissionManager/contract.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAkE;AAClE,4CAAoB;AAEpB;;GAEG;AACU,QAAA,wBAAwB,GAAG,IAAA,oCAAwB,EAAC;IAC/D,GAAG,EAAE,gDAAgD;IACrD,IAAI,EAAE,wCAAwC;IAC9C,WAAW,EAAE,iEAAiE;IAC9E,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,aAAC,CAAC,MAAM,CAAC;gBAChB,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;gBAC/D,cAAc,EAAE,aAAC,CAAC,KAAK,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;gBAClF,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;aACzE,CAAC;YACF,KAAK,EAAE,aAAC,CAAC,MAAM,CAAC;gBACd,UAAU,EAAE,aAAC;qBACV,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,OAAO,CACN,IAAA,uBAAW,EAAC,yOAGX,CAAC,CACH;gBACH,OAAO,EAAE,aAAC,CAAC,KAAK,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;gBAChF,MAAM,EAAE,aAAC,CAAC,KAAK,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;aAC/E,CAAC;SACH;KACF;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { type VersionedArvoContract } from 'arvo-core';
|
|
2
|
+
import type { AgentToolDefinition } from '../Agent/types';
|
|
3
|
+
import type { IPermissionManager, PermissionManagerContext } from '../interfaces.permission.manager';
|
|
4
|
+
import type { NonEmptyArray, OtelInfoType } from '../types';
|
|
5
|
+
import { simplePermissionContract } from './contract';
|
|
6
|
+
/**
|
|
7
|
+
* Simple in-memory permission manager for development and testing.
|
|
8
|
+
*
|
|
9
|
+
* Stores permissions in a Map keyed by `${source.name}:${source.subject}`,
|
|
10
|
+
* providing workflow-scoped authorization that persists only for the lifetime
|
|
11
|
+
* of the process.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const agent = createArvoAgent({
|
|
16
|
+
* permissionManager: new SimplePermissionManager(),
|
|
17
|
+
* handler: {
|
|
18
|
+
* '1.0.0': {
|
|
19
|
+
* permissionPolicy: async ({ services }) => [
|
|
20
|
+
* services.deleteUser.name
|
|
21
|
+
* ],
|
|
22
|
+
* // ... other config
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare class SimplePermissionManager implements IPermissionManager<VersionedArvoContract<typeof simplePermissionContract, '1.0.0'>> {
|
|
29
|
+
static readonly CONTRACT: import("arvo-core").SimpleArvoContract<"#/arvo/tools/default/agentic/permission/simple", "arvo.default.simple.permission.request", {
|
|
30
|
+
'1.0.0': {
|
|
31
|
+
accepts: import("zod").ZodObject<{
|
|
32
|
+
agentId: import("zod").ZodString;
|
|
33
|
+
requestedTools: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
34
|
+
reason: import("zod").ZodString;
|
|
35
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
36
|
+
agentId: string;
|
|
37
|
+
requestedTools: string[];
|
|
38
|
+
reason: string;
|
|
39
|
+
}, {
|
|
40
|
+
agentId: string;
|
|
41
|
+
requestedTools: string[];
|
|
42
|
+
reason: string;
|
|
43
|
+
}>;
|
|
44
|
+
emits: import("zod").ZodObject<{
|
|
45
|
+
commentary: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
|
|
46
|
+
granted: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
47
|
+
denied: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
48
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
49
|
+
commentary: string;
|
|
50
|
+
granted: string[];
|
|
51
|
+
denied: string[];
|
|
52
|
+
}, {
|
|
53
|
+
granted: string[];
|
|
54
|
+
denied: string[];
|
|
55
|
+
commentary?: string | undefined;
|
|
56
|
+
}>;
|
|
57
|
+
};
|
|
58
|
+
}, Record<string, any>>;
|
|
59
|
+
static readonly VERSIONED_CONTRACT: VersionedArvoContract<import("arvo-core").SimpleArvoContract<"#/arvo/tools/default/agentic/permission/simple", "arvo.default.simple.permission.request", {
|
|
60
|
+
'1.0.0': {
|
|
61
|
+
accepts: import("zod").ZodObject<{
|
|
62
|
+
agentId: import("zod").ZodString;
|
|
63
|
+
requestedTools: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
64
|
+
reason: import("zod").ZodString;
|
|
65
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
66
|
+
agentId: string;
|
|
67
|
+
requestedTools: string[];
|
|
68
|
+
reason: string;
|
|
69
|
+
}, {
|
|
70
|
+
agentId: string;
|
|
71
|
+
requestedTools: string[];
|
|
72
|
+
reason: string;
|
|
73
|
+
}>;
|
|
74
|
+
emits: import("zod").ZodObject<{
|
|
75
|
+
commentary: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
|
|
76
|
+
granted: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
77
|
+
denied: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
78
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
79
|
+
commentary: string;
|
|
80
|
+
granted: string[];
|
|
81
|
+
denied: string[];
|
|
82
|
+
}, {
|
|
83
|
+
granted: string[];
|
|
84
|
+
denied: string[];
|
|
85
|
+
commentary?: string | undefined;
|
|
86
|
+
}>;
|
|
87
|
+
};
|
|
88
|
+
}, Record<string, any>>, "1.0.0">;
|
|
89
|
+
readonly contract: VersionedArvoContract<import("arvo-core").SimpleArvoContract<"#/arvo/tools/default/agentic/permission/simple", "arvo.default.simple.permission.request", {
|
|
90
|
+
'1.0.0': {
|
|
91
|
+
accepts: import("zod").ZodObject<{
|
|
92
|
+
agentId: import("zod").ZodString;
|
|
93
|
+
requestedTools: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
94
|
+
reason: import("zod").ZodString;
|
|
95
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
96
|
+
agentId: string;
|
|
97
|
+
requestedTools: string[];
|
|
98
|
+
reason: string;
|
|
99
|
+
}, {
|
|
100
|
+
agentId: string;
|
|
101
|
+
requestedTools: string[];
|
|
102
|
+
reason: string;
|
|
103
|
+
}>;
|
|
104
|
+
emits: import("zod").ZodObject<{
|
|
105
|
+
commentary: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
|
|
106
|
+
granted: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
107
|
+
denied: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
108
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
109
|
+
commentary: string;
|
|
110
|
+
granted: string[];
|
|
111
|
+
denied: string[];
|
|
112
|
+
}, {
|
|
113
|
+
granted: string[];
|
|
114
|
+
denied: string[];
|
|
115
|
+
commentary?: string | undefined;
|
|
116
|
+
}>;
|
|
117
|
+
};
|
|
118
|
+
}, Record<string, any>>, "1.0.0">;
|
|
119
|
+
readonly domains: NonEmptyArray<string> | null;
|
|
120
|
+
private permissions;
|
|
121
|
+
constructor(config: {
|
|
122
|
+
domains: NonEmptyArray<string> | null;
|
|
123
|
+
});
|
|
124
|
+
private getKey;
|
|
125
|
+
get(source: PermissionManagerContext, tools: AgentToolDefinition<any>[], config: {
|
|
126
|
+
otelInfo: OtelInfoType;
|
|
127
|
+
}): Promise<Record<string, boolean>>;
|
|
128
|
+
set(source: PermissionManagerContext, event: {
|
|
129
|
+
data: {
|
|
130
|
+
granted: string[];
|
|
131
|
+
denied: string[];
|
|
132
|
+
};
|
|
133
|
+
}, config: {
|
|
134
|
+
otelInfo: OtelInfoType;
|
|
135
|
+
}): Promise<void>;
|
|
136
|
+
requestBuilder(source: PermissionManagerContext, tools: AgentToolDefinition<any>[], config: {
|
|
137
|
+
otelInfo: OtelInfoType;
|
|
138
|
+
}): Promise<{
|
|
139
|
+
agentId: string;
|
|
140
|
+
requestedTools: string[];
|
|
141
|
+
reason: string;
|
|
142
|
+
}>;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SimplePermissionManager/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsC,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,uBACX,YAAW,kBAAkB,CAAC,qBAAqB,CAAC,OAAO,wBAAwB,EAAE,OAAO,CAAC,CAAC;IAE9F,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA4B;IACpD,MAAM,CAAC,QAAQ,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAA6C;IAC/E,SAAgB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAA6C;IACrE,SAAgB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACtD,OAAO,CAAC,WAAW,CAA8C;gBAErD,MAAM,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;KAAE;IAI7D,OAAO,CAAC,MAAM;IAIR,GAAG,CACP,MAAM,EAAE,wBAAwB,EAEhC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,EACjC,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GACjC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAiC7B,GAAG,CACP,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE;QAAE,IAAI,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,EACxD,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GACjC,OAAO,CAAC,IAAI,CAAC;IAoCV,cAAc,CAClB,MAAM,EAAE,wBAAwB,EAEhC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,EACjC,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GACjC,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CAgCH"}
|