@dexto/agent-management 1.5.2 → 1.5.4

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.
Files changed (87) hide show
  1. package/dist/config/config-enrichment.d.ts +4 -3
  2. package/dist/config/config-enrichment.d.ts.map +1 -1
  3. package/dist/config/discover-prompts.cjs +24 -19
  4. package/dist/config/discover-prompts.d.ts +13 -5
  5. package/dist/config/discover-prompts.d.ts.map +1 -1
  6. package/dist/config/discover-prompts.js +24 -19
  7. package/dist/index.cjs +6 -1
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -0
  11. package/dist/preferences/index.cjs +2 -0
  12. package/dist/preferences/index.d.ts +2 -2
  13. package/dist/preferences/index.d.ts.map +1 -1
  14. package/dist/preferences/index.js +3 -1
  15. package/dist/preferences/loader.cjs +39 -41
  16. package/dist/preferences/loader.d.ts +7 -5
  17. package/dist/preferences/loader.d.ts.map +1 -1
  18. package/dist/preferences/loader.js +39 -41
  19. package/dist/preferences/schemas.cjs +14 -2
  20. package/dist/preferences/schemas.d.ts +37 -0
  21. package/dist/preferences/schemas.d.ts.map +1 -1
  22. package/dist/preferences/schemas.js +12 -1
  23. package/dist/runtime/AgentPool.cjs +181 -0
  24. package/dist/runtime/AgentPool.d.ts +76 -0
  25. package/dist/runtime/AgentPool.d.ts.map +1 -0
  26. package/dist/runtime/AgentPool.js +160 -0
  27. package/dist/runtime/AgentRuntime.cjs +225 -0
  28. package/dist/runtime/AgentRuntime.d.ts +77 -0
  29. package/dist/runtime/AgentRuntime.d.ts.map +1 -0
  30. package/dist/runtime/AgentRuntime.js +201 -0
  31. package/dist/runtime/approval-delegation.cjs +97 -0
  32. package/dist/runtime/approval-delegation.d.ts +30 -0
  33. package/dist/runtime/approval-delegation.d.ts.map +1 -0
  34. package/dist/runtime/approval-delegation.js +73 -0
  35. package/dist/runtime/error-codes.cjs +40 -0
  36. package/dist/runtime/error-codes.d.ts +17 -0
  37. package/dist/runtime/error-codes.d.ts.map +1 -0
  38. package/dist/runtime/error-codes.js +16 -0
  39. package/dist/runtime/errors.cjs +135 -0
  40. package/dist/runtime/errors.d.ts +40 -0
  41. package/dist/runtime/errors.d.ts.map +1 -0
  42. package/dist/runtime/errors.js +111 -0
  43. package/dist/runtime/index.cjs +53 -0
  44. package/dist/runtime/index.d.ts +19 -0
  45. package/dist/runtime/index.d.ts.map +1 -0
  46. package/dist/runtime/index.js +26 -0
  47. package/dist/runtime/schemas.cjs +64 -0
  48. package/dist/runtime/schemas.d.ts +69 -0
  49. package/dist/runtime/schemas.d.ts.map +1 -0
  50. package/dist/runtime/schemas.js +35 -0
  51. package/dist/runtime/types.cjs +16 -0
  52. package/dist/runtime/types.d.ts +94 -0
  53. package/dist/runtime/types.d.ts.map +1 -0
  54. package/dist/runtime/types.js +0 -0
  55. package/dist/tool-provider/error-codes.cjs +35 -0
  56. package/dist/tool-provider/error-codes.d.ts +11 -0
  57. package/dist/tool-provider/error-codes.d.ts.map +1 -0
  58. package/dist/tool-provider/error-codes.js +11 -0
  59. package/dist/tool-provider/errors.cjs +81 -0
  60. package/dist/tool-provider/errors.d.ts +19 -0
  61. package/dist/tool-provider/errors.d.ts.map +1 -0
  62. package/dist/tool-provider/errors.js +57 -0
  63. package/dist/tool-provider/index.cjs +46 -0
  64. package/dist/tool-provider/index.d.ts +16 -0
  65. package/dist/tool-provider/index.d.ts.map +1 -0
  66. package/dist/tool-provider/index.js +16 -0
  67. package/dist/tool-provider/runtime-service.cjs +390 -0
  68. package/dist/tool-provider/runtime-service.d.ts +83 -0
  69. package/dist/tool-provider/runtime-service.d.ts.map +1 -0
  70. package/dist/tool-provider/runtime-service.js +366 -0
  71. package/dist/tool-provider/schemas.cjs +73 -0
  72. package/dist/tool-provider/schemas.d.ts +83 -0
  73. package/dist/tool-provider/schemas.d.ts.map +1 -0
  74. package/dist/tool-provider/schemas.js +48 -0
  75. package/dist/tool-provider/spawn-agent-tool.cjs +89 -0
  76. package/dist/tool-provider/spawn-agent-tool.d.ts +10 -0
  77. package/dist/tool-provider/spawn-agent-tool.d.ts.map +1 -0
  78. package/dist/tool-provider/spawn-agent-tool.js +65 -0
  79. package/dist/tool-provider/tool-provider.cjs +44 -0
  80. package/dist/tool-provider/tool-provider.d.ts +24 -0
  81. package/dist/tool-provider/tool-provider.d.ts.map +1 -0
  82. package/dist/tool-provider/tool-provider.js +20 -0
  83. package/dist/tool-provider/types.cjs +16 -0
  84. package/dist/tool-provider/types.d.ts +17 -0
  85. package/dist/tool-provider/types.d.ts.map +1 -0
  86. package/dist/tool-provider/types.js +0 -0
  87. package/package.json +2 -2
@@ -0,0 +1,390 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var runtime_service_exports = {};
20
+ __export(runtime_service_exports, {
21
+ RuntimeService: () => RuntimeService
22
+ });
23
+ module.exports = __toCommonJS(runtime_service_exports);
24
+ var import_AgentRuntime = require("../runtime/AgentRuntime.js");
25
+ var import_approval_delegation = require("../runtime/approval-delegation.js");
26
+ var import_loader = require("../config/loader.js");
27
+ var import_registry = require("../registry/registry.js");
28
+ class RuntimeService {
29
+ runtime;
30
+ parentId;
31
+ parentAgent;
32
+ config;
33
+ logger;
34
+ constructor(parentAgent, config, logger) {
35
+ this.parentAgent = parentAgent;
36
+ this.config = config;
37
+ this.logger = logger;
38
+ this.parentId = parentAgent.config.agentId ?? `parent-${Date.now()}`;
39
+ this.runtime = new import_AgentRuntime.AgentRuntime({
40
+ config: {
41
+ maxAgents: config.maxConcurrentAgents,
42
+ defaultTaskTimeout: config.defaultTimeout
43
+ },
44
+ logger
45
+ });
46
+ this.logger.debug(
47
+ `RuntimeService initialized for parent '${this.parentId}' (maxAgents: ${config.maxConcurrentAgents})`
48
+ );
49
+ }
50
+ /**
51
+ * Get count of sub-agents belonging to this parent
52
+ */
53
+ getSubAgentCount() {
54
+ return this.runtime.listAgents({ group: this.parentId }).length;
55
+ }
56
+ /**
57
+ * Check if this parent can spawn another sub-agent
58
+ */
59
+ canSpawn() {
60
+ return this.getSubAgentCount() < this.config.maxConcurrentAgents;
61
+ }
62
+ /**
63
+ * Spawn a sub-agent and execute a task
64
+ *
65
+ * This is the main method for the spawn_agent tool.
66
+ * It creates a sub-agent, executes the task, and cleans up after completion.
67
+ * If the sub-agent's LLM config fails, automatically falls back to parent's LLM.
68
+ *
69
+ * @param input.task - Short task description (for logging/UI)
70
+ * @param input.instructions - Full prompt sent to sub-agent
71
+ * @param input.agentId - Optional agent ID from registry
72
+ * @param input.timeout - Optional task timeout in milliseconds
73
+ * @param input.toolCallId - Optional tool call ID for progress events
74
+ * @param input.sessionId - Optional session ID for progress events
75
+ */
76
+ async spawnAndExecute(input) {
77
+ if (!this.config.allowSpawning) {
78
+ return {
79
+ success: false,
80
+ error: "Agent spawning is disabled in configuration"
81
+ };
82
+ }
83
+ if (!this.canSpawn()) {
84
+ return {
85
+ success: false,
86
+ error: `Maximum sub-agents limit (${this.config.maxConcurrentAgents}) reached for this parent`
87
+ };
88
+ }
89
+ if (input.agentId && this.config.allowedAgents) {
90
+ if (!this.config.allowedAgents.includes(input.agentId)) {
91
+ return {
92
+ success: false,
93
+ error: `Agent '${input.agentId}' is not in the allowed agents list. Allowed: ${this.config.allowedAgents.join(", ")}`
94
+ };
95
+ }
96
+ }
97
+ const timeout = input.timeout ?? this.config.defaultTimeout;
98
+ let autoApprove = false;
99
+ if (input.agentId && this.config.autoApproveAgents) {
100
+ autoApprove = this.config.autoApproveAgents.includes(input.agentId);
101
+ }
102
+ const result = await this.trySpawnWithFallback(
103
+ input,
104
+ timeout,
105
+ autoApprove,
106
+ input.toolCallId,
107
+ input.sessionId
108
+ );
109
+ return result;
110
+ }
111
+ /**
112
+ * Set up progress event emission for a sub-agent.
113
+ * Subscribes to llm:tool-call and llm:response events and emits service:event with progress data.
114
+ *
115
+ * @returns Cleanup function to unsubscribe from events
116
+ */
117
+ setupProgressTracking(subAgentHandle, input, toolCallId, sessionId) {
118
+ if (!toolCallId || !sessionId) {
119
+ this.logger.debug(
120
+ `[Progress] Skipping progress tracking - missing toolCallId (${toolCallId}) or sessionId (${sessionId})`
121
+ );
122
+ return () => {
123
+ };
124
+ }
125
+ this.logger.debug(
126
+ `[Progress] Setting up progress tracking for sub-agent ${subAgentHandle.agentId} (toolCallId: ${toolCallId}, sessionId: ${sessionId})`
127
+ );
128
+ let toolCount = 0;
129
+ const tokenUsage = { input: 0, output: 0, total: 0 };
130
+ let currentTool = "";
131
+ const subAgentBus = subAgentHandle.agent.agentEventBus;
132
+ const parentBus = this.parentAgent.agentEventBus;
133
+ const emitProgress = (tool, args) => {
134
+ parentBus.emit("service:event", {
135
+ service: "agent-spawner",
136
+ event: "progress",
137
+ toolCallId,
138
+ sessionId,
139
+ data: {
140
+ task: input.task,
141
+ agentId: input.agentId ?? "default",
142
+ toolsCalled: toolCount,
143
+ currentTool: tool,
144
+ currentArgs: args,
145
+ tokenUsage: { ...tokenUsage }
146
+ }
147
+ });
148
+ };
149
+ const toolCallHandler = (event) => {
150
+ toolCount++;
151
+ let displayToolName = event.toolName;
152
+ if (displayToolName.startsWith("internal--")) {
153
+ displayToolName = displayToolName.replace("internal--", "");
154
+ } else if (displayToolName.startsWith("custom--")) {
155
+ displayToolName = displayToolName.replace("custom--", "");
156
+ } else if (displayToolName.startsWith("mcp--")) {
157
+ const parts = displayToolName.split("--");
158
+ if (parts.length >= 3) {
159
+ displayToolName = parts.slice(2).join("--");
160
+ }
161
+ }
162
+ currentTool = displayToolName;
163
+ this.logger.debug(
164
+ `[Progress] Sub-agent tool call #${toolCount}: ${displayToolName} (toolCallId: ${toolCallId})`
165
+ );
166
+ emitProgress(displayToolName, event.args);
167
+ };
168
+ const responseHandler = (event) => {
169
+ if (event.tokenUsage) {
170
+ tokenUsage.input = event.tokenUsage.inputTokens ?? 0;
171
+ tokenUsage.output += event.tokenUsage.outputTokens ?? 0;
172
+ tokenUsage.total = tokenUsage.input + tokenUsage.output;
173
+ this.logger.debug(
174
+ `[Progress] Sub-agent tokens: input=${tokenUsage.input}, cumOutput=${tokenUsage.output}, total=${tokenUsage.total}`
175
+ );
176
+ emitProgress(currentTool || "processing");
177
+ }
178
+ };
179
+ subAgentBus.on("llm:tool-call", toolCallHandler);
180
+ subAgentBus.on("llm:response", responseHandler);
181
+ return () => {
182
+ subAgentBus.off("llm:tool-call", toolCallHandler);
183
+ subAgentBus.off("llm:response", responseHandler);
184
+ };
185
+ }
186
+ /**
187
+ * Try to spawn agent, falling back to parent's LLM config if the sub-agent's config fails
188
+ */
189
+ async trySpawnWithFallback(input, timeout, autoApprove, toolCallId, sessionId) {
190
+ let spawnedAgentId;
191
+ let usedFallback = false;
192
+ let cleanupProgressTracking;
193
+ try {
194
+ const buildOptions = {};
195
+ if (input.agentId !== void 0) {
196
+ buildOptions.agentId = input.agentId;
197
+ }
198
+ if (autoApprove) {
199
+ buildOptions.autoApprove = autoApprove;
200
+ }
201
+ let subAgentConfig = await this.buildSubAgentConfig(buildOptions);
202
+ let handle;
203
+ try {
204
+ handle = await this.runtime.spawnAgent({
205
+ agentConfig: subAgentConfig,
206
+ ephemeral: true,
207
+ group: this.parentId,
208
+ metadata: {
209
+ parentId: this.parentId,
210
+ task: input.task,
211
+ autoApprove,
212
+ spawnedAt: (/* @__PURE__ */ new Date()).toISOString()
213
+ },
214
+ onBeforeStart: (agent) => {
215
+ if (!autoApprove) {
216
+ const delegatingHandler = (0, import_approval_delegation.createDelegatingApprovalHandler)(
217
+ this.parentAgent.services.approvalManager,
218
+ agent.config.agentId ?? "unknown",
219
+ this.logger
220
+ );
221
+ agent.setApprovalHandler(delegatingHandler);
222
+ }
223
+ }
224
+ });
225
+ spawnedAgentId = handle.agentId;
226
+ } catch (spawnError) {
227
+ const errorMsg = spawnError instanceof Error ? spawnError.message : String(spawnError);
228
+ const isLlmError = errorMsg.includes("Model") || errorMsg.includes("model") || errorMsg.includes("API") || errorMsg.includes("apiKey") || errorMsg.includes("provider");
229
+ if (isLlmError && input.agentId) {
230
+ this.logger.warn(
231
+ `Sub-agent LLM config failed: ${errorMsg}. Falling back to parent's LLM config.`
232
+ );
233
+ usedFallback = true;
234
+ buildOptions.inheritLlm = true;
235
+ subAgentConfig = await this.buildSubAgentConfig(buildOptions);
236
+ handle = await this.runtime.spawnAgent({
237
+ agentConfig: subAgentConfig,
238
+ ephemeral: true,
239
+ group: this.parentId,
240
+ metadata: {
241
+ parentId: this.parentId,
242
+ task: input.task,
243
+ autoApprove,
244
+ usedLlmFallback: true,
245
+ spawnedAt: (/* @__PURE__ */ new Date()).toISOString()
246
+ },
247
+ onBeforeStart: (agent) => {
248
+ if (!autoApprove) {
249
+ const delegatingHandler = (0, import_approval_delegation.createDelegatingApprovalHandler)(
250
+ this.parentAgent.services.approvalManager,
251
+ agent.config.agentId ?? "unknown",
252
+ this.logger
253
+ );
254
+ agent.setApprovalHandler(delegatingHandler);
255
+ }
256
+ }
257
+ });
258
+ spawnedAgentId = handle.agentId;
259
+ } else {
260
+ throw spawnError;
261
+ }
262
+ }
263
+ this.logger.info(
264
+ `Spawned sub-agent '${spawnedAgentId}' for task: ${input.task}${autoApprove ? " (auto-approve)" : ""}${usedFallback ? " (using parent LLM)" : ""}`
265
+ );
266
+ cleanupProgressTracking = this.setupProgressTracking(
267
+ handle,
268
+ input,
269
+ toolCallId,
270
+ sessionId
271
+ );
272
+ const result = await this.runtime.executeTask(
273
+ spawnedAgentId,
274
+ input.instructions,
275
+ timeout
276
+ );
277
+ const output = {
278
+ success: result.success
279
+ };
280
+ if (result.response !== void 0) {
281
+ output.response = result.response;
282
+ }
283
+ if (result.error !== void 0) {
284
+ output.error = result.error;
285
+ }
286
+ return output;
287
+ } catch (error) {
288
+ const errorMessage = error instanceof Error ? error.message : String(error);
289
+ this.logger.error(`Failed to spawn and execute: ${errorMessage}`);
290
+ return {
291
+ success: false,
292
+ error: errorMessage
293
+ };
294
+ } finally {
295
+ if (cleanupProgressTracking) {
296
+ cleanupProgressTracking();
297
+ }
298
+ if (spawnedAgentId) {
299
+ try {
300
+ await this.runtime.stopAgent(spawnedAgentId);
301
+ } catch {
302
+ }
303
+ }
304
+ }
305
+ }
306
+ /**
307
+ * Build sub-agent config based on registry agent ID or parent config
308
+ *
309
+ * @param options.agentId - Agent ID from registry
310
+ * @param options.inheritLlm - Use parent's LLM config instead of sub-agent's
311
+ * @param options.autoApprove - Auto-approve all tool calls
312
+ */
313
+ async buildSubAgentConfig(options) {
314
+ const { agentId, inheritLlm, autoApprove } = options;
315
+ const parentConfig = this.parentAgent.config;
316
+ const toolConfirmationMode = autoApprove ? "auto-approve" : "manual";
317
+ if (agentId) {
318
+ const registry = (0, import_registry.getAgentRegistry)();
319
+ if (!registry.hasAgent(agentId)) {
320
+ this.logger.warn(`Agent '${agentId}' not found in registry. Using default config.`);
321
+ } else {
322
+ const configPath = await registry.resolveAgent(agentId);
323
+ this.logger.debug(`Loading agent config from registry: ${configPath}`);
324
+ const loadedConfig = await (0, import_loader.loadAgentConfig)(configPath, this.logger);
325
+ let llmConfig = loadedConfig.llm;
326
+ if (inheritLlm) {
327
+ this.logger.debug("Using parent LLM config (inheritLlm=true)");
328
+ llmConfig = { ...parentConfig.llm };
329
+ }
330
+ return {
331
+ ...loadedConfig,
332
+ llm: llmConfig,
333
+ toolConfirmation: {
334
+ ...loadedConfig.toolConfirmation,
335
+ mode: toolConfirmationMode
336
+ },
337
+ // Suppress sub-agent console logs entirely using silent transport
338
+ logger: {
339
+ level: "error",
340
+ transports: [{ type: "silent" }]
341
+ }
342
+ };
343
+ }
344
+ }
345
+ const config = {
346
+ llm: { ...parentConfig.llm },
347
+ // Default system prompt for sub-agents
348
+ systemPrompt: "You are a helpful sub-agent. Complete the task given to you efficiently and concisely.",
349
+ toolConfirmation: {
350
+ mode: toolConfirmationMode
351
+ },
352
+ // Suppress sub-agent console logs entirely using silent transport
353
+ logger: {
354
+ level: "error",
355
+ transports: [{ type: "silent" }]
356
+ }
357
+ };
358
+ return config;
359
+ }
360
+ /**
361
+ * Get information about available agents for tool description.
362
+ * Returns agent metadata from registry, filtered by allowedAgents if configured.
363
+ */
364
+ getAvailableAgents() {
365
+ const registry = (0, import_registry.getAgentRegistry)();
366
+ const allAgents = registry.getAvailableAgents();
367
+ if (this.config.allowedAgents && this.config.allowedAgents.length > 0) {
368
+ const result = [];
369
+ for (const id of this.config.allowedAgents) {
370
+ const agent = allAgents[id];
371
+ if (agent) {
372
+ result.push(agent);
373
+ }
374
+ }
375
+ return result;
376
+ }
377
+ return Object.values(allAgents);
378
+ }
379
+ /**
380
+ * Clean up all sub-agents (called when parent stops)
381
+ */
382
+ async cleanup() {
383
+ this.logger.debug(`Cleaning up RuntimeService for parent '${this.parentId}'`);
384
+ await this.runtime.stopAll({ group: this.parentId });
385
+ }
386
+ }
387
+ // Annotate the CommonJS export names for ESM import in node:
388
+ 0 && (module.exports = {
389
+ RuntimeService
390
+ });
@@ -0,0 +1,83 @@
1
+ /**
2
+ * RuntimeService - Bridge between tools and AgentRuntime
3
+ *
4
+ * Manages the relationship between a parent agent and its sub-agents,
5
+ * providing methods that tools can call to spawn and execute tasks.
6
+ *
7
+ * This service adds parent-child semantics on top of the general-purpose AgentRuntime:
8
+ * - Uses `group` to associate spawned agents with the parent
9
+ * - Wires up approval delegation so sub-agent tool requests go to parent
10
+ * - Enforces per-parent agent limits
11
+ * - Always cleans up agents after task completion (synchronous model)
12
+ */
13
+ import type { DextoAgent, IDextoLogger } from '@dexto/core';
14
+ import type { AgentRegistryEntry } from '../registry/types.js';
15
+ import type { AgentSpawnerConfig } from './schemas.js';
16
+ import type { SpawnAgentOutput } from './types.js';
17
+ export declare class RuntimeService {
18
+ private runtime;
19
+ private parentId;
20
+ private parentAgent;
21
+ private config;
22
+ private logger;
23
+ constructor(parentAgent: DextoAgent, config: AgentSpawnerConfig, logger: IDextoLogger);
24
+ /**
25
+ * Get count of sub-agents belonging to this parent
26
+ */
27
+ private getSubAgentCount;
28
+ /**
29
+ * Check if this parent can spawn another sub-agent
30
+ */
31
+ private canSpawn;
32
+ /**
33
+ * Spawn a sub-agent and execute a task
34
+ *
35
+ * This is the main method for the spawn_agent tool.
36
+ * It creates a sub-agent, executes the task, and cleans up after completion.
37
+ * If the sub-agent's LLM config fails, automatically falls back to parent's LLM.
38
+ *
39
+ * @param input.task - Short task description (for logging/UI)
40
+ * @param input.instructions - Full prompt sent to sub-agent
41
+ * @param input.agentId - Optional agent ID from registry
42
+ * @param input.timeout - Optional task timeout in milliseconds
43
+ * @param input.toolCallId - Optional tool call ID for progress events
44
+ * @param input.sessionId - Optional session ID for progress events
45
+ */
46
+ spawnAndExecute(input: {
47
+ task: string;
48
+ instructions: string;
49
+ agentId?: string;
50
+ timeout?: number;
51
+ toolCallId?: string;
52
+ sessionId?: string;
53
+ }): Promise<SpawnAgentOutput>;
54
+ /**
55
+ * Set up progress event emission for a sub-agent.
56
+ * Subscribes to llm:tool-call and llm:response events and emits service:event with progress data.
57
+ *
58
+ * @returns Cleanup function to unsubscribe from events
59
+ */
60
+ private setupProgressTracking;
61
+ /**
62
+ * Try to spawn agent, falling back to parent's LLM config if the sub-agent's config fails
63
+ */
64
+ private trySpawnWithFallback;
65
+ /**
66
+ * Build sub-agent config based on registry agent ID or parent config
67
+ *
68
+ * @param options.agentId - Agent ID from registry
69
+ * @param options.inheritLlm - Use parent's LLM config instead of sub-agent's
70
+ * @param options.autoApprove - Auto-approve all tool calls
71
+ */
72
+ private buildSubAgentConfig;
73
+ /**
74
+ * Get information about available agents for tool description.
75
+ * Returns agent metadata from registry, filtered by allowedAgents if configured.
76
+ */
77
+ getAvailableAgents(): AgentRegistryEntry[];
78
+ /**
79
+ * Clean up all sub-agents (called when parent stops)
80
+ */
81
+ cleanup(): Promise<void>;
82
+ }
83
+ //# sourceMappingURL=runtime-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-service.d.ts","sourceRoot":"","sources":["../../src/tool-provider/runtime-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAe,MAAM,aAAa,CAAC;AAKzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qBAAa,cAAc;IACvB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAe;gBAEjB,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY;IAuBrF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,KAAK,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8C7B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiH7B;;OAEG;YACW,oBAAoB;IAgKlC;;;;;;OAMG;YACW,mBAAmB;IAuEjC;;;OAGG;IACH,kBAAkB,IAAI,kBAAkB,EAAE;IAoB1C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIjC"}