@dexto/agent-management 1.5.7 → 1.5.8
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/config/config-enrichment.cjs +2 -1
- package/dist/config/config-enrichment.d.ts.map +1 -1
- package/dist/config/config-enrichment.js +2 -1
- package/dist/index.cjs +11 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/models/custom-models.cjs +1 -1
- package/dist/models/custom-models.d.ts +7 -7
- package/dist/models/custom-models.d.ts.map +1 -1
- package/dist/models/custom-models.js +1 -1
- package/dist/plugins/discover-skills.cjs +4 -0
- package/dist/plugins/discover-skills.d.ts +6 -3
- package/dist/plugins/discover-skills.d.ts.map +1 -1
- package/dist/plugins/discover-skills.js +4 -0
- package/dist/preferences/errors.cjs +11 -0
- package/dist/preferences/errors.d.ts +1 -0
- package/dist/preferences/errors.d.ts.map +1 -1
- package/dist/preferences/errors.js +11 -0
- package/dist/preferences/loader.cjs +119 -6
- package/dist/preferences/loader.d.ts +21 -1
- package/dist/preferences/loader.d.ts.map +1 -1
- package/dist/preferences/loader.js +102 -1
- package/dist/preferences/schemas.cjs +12 -0
- package/dist/preferences/schemas.d.ts +38 -12
- package/dist/preferences/schemas.d.ts.map +1 -1
- package/dist/preferences/schemas.js +10 -0
- package/dist/tool-provider/llm-resolution.cjs +1 -1
- package/dist/tool-provider/llm-resolution.d.ts +4 -4
- package/dist/tool-provider/llm-resolution.js +1 -1
- package/dist/tool-provider/runtime-service.cjs +90 -13
- package/dist/tool-provider/runtime-service.d.ts +2 -0
- package/dist/tool-provider/runtime-service.d.ts.map +1 -1
- package/dist/tool-provider/runtime-service.js +80 -13
- package/dist/tool-provider/tool-provider.cjs +152 -1
- package/dist/tool-provider/tool-provider.d.ts +7 -1
- package/dist/tool-provider/tool-provider.d.ts.map +1 -1
- package/dist/tool-provider/tool-provider.js +159 -1
- package/dist/utils/api-key-resolver.cjs +1 -1
- package/dist/utils/api-key-resolver.js +1 -1
- package/dist/utils/feature-flags.cjs +3 -1
- package/dist/utils/feature-flags.d.ts +2 -2
- package/dist/utils/feature-flags.d.ts.map +1 -1
- package/dist/utils/feature-flags.js +3 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/preferences/loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/preferences/loader.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAGH,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACzB,MAAM,cAAc,CAAC;AAItB;;;;;GAKG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA+BxE;AA2BD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsB/D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4BrF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAgB3B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCzF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAGhD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yEAAyE;IACzE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,MAAM,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;CACL;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAsC7F;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACnC,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;CACjD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,wBAAwB,GAClC,OAAO,CAAC,iBAAiB,CAAC,CA4B5B"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { existsSync } from "fs";
|
|
2
2
|
import { promises as fs } from "fs";
|
|
3
3
|
import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
|
|
4
|
+
import path from "path";
|
|
4
5
|
import { getDextoGlobalPath } from "../utils/path.js";
|
|
5
6
|
import { logger } from "@dexto/core";
|
|
6
7
|
import { DextoValidationError, DextoRuntimeError } from "@dexto/core";
|
|
7
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
AgentPreferencesSchema,
|
|
10
|
+
GlobalPreferencesSchema
|
|
11
|
+
} from "./schemas.js";
|
|
8
12
|
import { PREFERENCES_FILE } from "./constants.js";
|
|
9
13
|
import { PreferenceError } from "./errors.js";
|
|
10
14
|
async function loadGlobalPreferences() {
|
|
@@ -42,6 +46,98 @@ const PREFERENCES_FILE_HEADER = `# Dexto Global Preferences
|
|
|
42
46
|
# Set sounds.enabled: false to disable all sounds.
|
|
43
47
|
|
|
44
48
|
`;
|
|
49
|
+
const AGENT_PREFERENCES_FILE_HEADER = `# Dexto Agent Preferences
|
|
50
|
+
# Stored per-agent to customize runtime behavior without changing base config.
|
|
51
|
+
# Tool control:
|
|
52
|
+
# tools.disabled: list of tool names to exclude from LLM context.
|
|
53
|
+
|
|
54
|
+
`;
|
|
55
|
+
function getAgentPreferencesPath(agentId) {
|
|
56
|
+
if (!agentId || typeof agentId !== "string") {
|
|
57
|
+
throw PreferenceError.invalidAgentId(String(agentId));
|
|
58
|
+
}
|
|
59
|
+
const trimmedId = agentId.trim();
|
|
60
|
+
if (!trimmedId) {
|
|
61
|
+
throw PreferenceError.invalidAgentId(agentId);
|
|
62
|
+
}
|
|
63
|
+
const hasSeparators = trimmedId.includes("/") || trimmedId.includes("\\");
|
|
64
|
+
if (hasSeparators || trimmedId !== path.basename(trimmedId)) {
|
|
65
|
+
throw PreferenceError.invalidAgentId(agentId);
|
|
66
|
+
}
|
|
67
|
+
const allowedPattern = /^[a-zA-Z0-9_-]+$/;
|
|
68
|
+
if (!allowedPattern.test(trimmedId)) {
|
|
69
|
+
throw PreferenceError.invalidAgentId(agentId);
|
|
70
|
+
}
|
|
71
|
+
const filename = `${trimmedId}.preferences.yml`;
|
|
72
|
+
return getDextoGlobalPath(path.join("agents", filename));
|
|
73
|
+
}
|
|
74
|
+
async function loadAgentPreferences(agentId) {
|
|
75
|
+
const preferencesPath = getAgentPreferencesPath(agentId);
|
|
76
|
+
if (!existsSync(preferencesPath)) {
|
|
77
|
+
throw PreferenceError.fileNotFound(preferencesPath);
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
const fileContent = await fs.readFile(preferencesPath, "utf-8");
|
|
81
|
+
const rawPreferences = parseYaml(fileContent);
|
|
82
|
+
const validation = AgentPreferencesSchema.safeParse(rawPreferences);
|
|
83
|
+
if (!validation.success) {
|
|
84
|
+
throw PreferenceError.validationFailed(validation.error);
|
|
85
|
+
}
|
|
86
|
+
logger.debug(`Loaded agent preferences from: ${preferencesPath}`);
|
|
87
|
+
return validation.data;
|
|
88
|
+
} catch (error) {
|
|
89
|
+
if (error instanceof DextoValidationError || error instanceof DextoRuntimeError) {
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
throw PreferenceError.fileReadError(
|
|
93
|
+
preferencesPath,
|
|
94
|
+
error instanceof Error ? error.message : String(error)
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async function saveAgentPreferences(agentId, preferences) {
|
|
99
|
+
const preferencesPath = getAgentPreferencesPath(agentId);
|
|
100
|
+
const validation = AgentPreferencesSchema.safeParse(preferences);
|
|
101
|
+
if (!validation.success) {
|
|
102
|
+
throw PreferenceError.validationFailed(validation.error);
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
logger.debug(`Saving agent preferences to: ${preferencesPath}`);
|
|
106
|
+
await fs.mkdir(path.dirname(preferencesPath), { recursive: true });
|
|
107
|
+
const yamlContent = stringifyYaml(preferences, {
|
|
108
|
+
indent: 2,
|
|
109
|
+
lineWidth: 100,
|
|
110
|
+
minContentWidth: 20
|
|
111
|
+
});
|
|
112
|
+
await fs.writeFile(preferencesPath, AGENT_PREFERENCES_FILE_HEADER + yamlContent, "utf-8");
|
|
113
|
+
logger.debug(
|
|
114
|
+
`\u2713 Saved agent preferences ${JSON.stringify(preferences)} to: ${preferencesPath}`
|
|
115
|
+
);
|
|
116
|
+
} catch (error) {
|
|
117
|
+
throw PreferenceError.fileWriteError(
|
|
118
|
+
preferencesPath,
|
|
119
|
+
error instanceof Error ? error.message : String(error)
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function agentPreferencesExist(agentId) {
|
|
124
|
+
const preferencesPath = getAgentPreferencesPath(agentId);
|
|
125
|
+
return existsSync(preferencesPath);
|
|
126
|
+
}
|
|
127
|
+
async function updateAgentPreferences(agentId, updates) {
|
|
128
|
+
const existing = await loadAgentPreferences(agentId);
|
|
129
|
+
const merged = {
|
|
130
|
+
...existing,
|
|
131
|
+
...updates,
|
|
132
|
+
tools: updates.tools ? { ...existing.tools, ...updates.tools } : existing.tools
|
|
133
|
+
};
|
|
134
|
+
const validation = AgentPreferencesSchema.safeParse(merged);
|
|
135
|
+
if (!validation.success) {
|
|
136
|
+
throw PreferenceError.validationFailed(validation.error);
|
|
137
|
+
}
|
|
138
|
+
await saveAgentPreferences(agentId, validation.data);
|
|
139
|
+
return validation.data;
|
|
140
|
+
}
|
|
45
141
|
async function saveGlobalPreferences(preferences) {
|
|
46
142
|
const preferencesPath = getDextoGlobalPath(PREFERENCES_FILE);
|
|
47
143
|
const validation = GlobalPreferencesSchema.safeParse(preferences);
|
|
@@ -127,10 +223,15 @@ async function updateGlobalPreferences(updates) {
|
|
|
127
223
|
return validation.data;
|
|
128
224
|
}
|
|
129
225
|
export {
|
|
226
|
+
agentPreferencesExist,
|
|
130
227
|
createInitialPreferences,
|
|
228
|
+
getAgentPreferencesPath,
|
|
131
229
|
getGlobalPreferencesPath,
|
|
132
230
|
globalPreferencesExist,
|
|
231
|
+
loadAgentPreferences,
|
|
133
232
|
loadGlobalPreferences,
|
|
233
|
+
saveAgentPreferences,
|
|
134
234
|
saveGlobalPreferences,
|
|
235
|
+
updateAgentPreferences,
|
|
135
236
|
updateGlobalPreferences
|
|
136
237
|
};
|
|
@@ -18,6 +18,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var schemas_exports = {};
|
|
20
20
|
__export(schemas_exports, {
|
|
21
|
+
AgentPreferencesSchema: () => AgentPreferencesSchema,
|
|
22
|
+
AgentToolPreferencesSchema: () => AgentToolPreferencesSchema,
|
|
21
23
|
GlobalPreferencesSchema: () => GlobalPreferencesSchema,
|
|
22
24
|
PreferenceDefaultsSchema: () => PreferenceDefaultsSchema,
|
|
23
25
|
PreferenceLLMSchema: () => PreferenceLLMSchema,
|
|
@@ -88,6 +90,14 @@ const PreferenceSoundsSchema = import_zod.z.object({
|
|
|
88
90
|
),
|
|
89
91
|
onTaskComplete: import_zod.z.boolean().default(true).describe("Play sound when agent task completes (default: true when sounds enabled)")
|
|
90
92
|
}).strict();
|
|
93
|
+
const AgentToolPreferencesSchema = import_zod.z.object({
|
|
94
|
+
disabled: import_zod.z.array(import_core3.NonEmptyTrimmed).default([]).describe("Tool names disabled for this agent (default: none)")
|
|
95
|
+
}).strict();
|
|
96
|
+
const AgentPreferencesSchema = import_zod.z.object({
|
|
97
|
+
tools: AgentToolPreferencesSchema.default({ disabled: [] }).describe(
|
|
98
|
+
"Tool availability preferences"
|
|
99
|
+
)
|
|
100
|
+
}).strict();
|
|
91
101
|
const GlobalPreferencesSchema = import_zod.z.object({
|
|
92
102
|
llm: PreferenceLLMSchema.describe("LLM configuration preferences"),
|
|
93
103
|
defaults: PreferenceDefaultsSchema.describe("Default behavior preferences (required)"),
|
|
@@ -100,6 +110,8 @@ const GlobalPreferencesSchema = import_zod.z.object({
|
|
|
100
110
|
}).strict();
|
|
101
111
|
// Annotate the CommonJS export names for ESM import in node:
|
|
102
112
|
0 && (module.exports = {
|
|
113
|
+
AgentPreferencesSchema,
|
|
114
|
+
AgentToolPreferencesSchema,
|
|
103
115
|
GlobalPreferencesSchema,
|
|
104
116
|
PreferenceDefaultsSchema,
|
|
105
117
|
PreferenceLLMSchema,
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const PreferenceLLMSchema: z.ZodEffects<z.ZodObject<{
|
|
3
|
-
provider: z.ZodEnum<["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "minimax", "glm", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama", "dexto"]>;
|
|
3
|
+
provider: z.ZodEnum<["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "minimax", "glm", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama", "dexto-nova"]>;
|
|
4
4
|
model: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
5
5
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
6
6
|
baseURL: z.ZodOptional<z.ZodString>;
|
|
7
7
|
reasoningEffort: z.ZodOptional<z.ZodEnum<["none", "minimal", "low", "medium", "high", "xhigh"]>>;
|
|
8
8
|
}, "strict", z.ZodTypeAny, {
|
|
9
|
-
provider: "
|
|
9
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
10
10
|
model: string;
|
|
11
11
|
apiKey?: string | undefined;
|
|
12
12
|
baseURL?: string | undefined;
|
|
13
13
|
reasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
|
|
14
14
|
}, {
|
|
15
|
-
provider: "
|
|
15
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
16
16
|
model: string;
|
|
17
17
|
apiKey?: string | undefined;
|
|
18
18
|
baseURL?: string | undefined;
|
|
19
19
|
reasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
|
|
20
20
|
}>, {
|
|
21
|
-
provider: "
|
|
21
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
22
22
|
model: string;
|
|
23
23
|
apiKey?: string | undefined;
|
|
24
24
|
baseURL?: string | undefined;
|
|
25
25
|
reasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
|
|
26
26
|
}, {
|
|
27
|
-
provider: "
|
|
27
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
28
28
|
model: string;
|
|
29
29
|
apiKey?: string | undefined;
|
|
30
30
|
baseURL?: string | undefined;
|
|
@@ -66,33 +66,57 @@ export declare const PreferenceSoundsSchema: z.ZodObject<{
|
|
|
66
66
|
onApprovalRequired?: boolean | undefined;
|
|
67
67
|
onTaskComplete?: boolean | undefined;
|
|
68
68
|
}>;
|
|
69
|
+
export declare const AgentToolPreferencesSchema: z.ZodObject<{
|
|
70
|
+
disabled: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, "many">>;
|
|
71
|
+
}, "strict", z.ZodTypeAny, {
|
|
72
|
+
disabled: string[];
|
|
73
|
+
}, {
|
|
74
|
+
disabled?: string[] | undefined;
|
|
75
|
+
}>;
|
|
76
|
+
export declare const AgentPreferencesSchema: z.ZodObject<{
|
|
77
|
+
tools: z.ZodDefault<z.ZodObject<{
|
|
78
|
+
disabled: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, "many">>;
|
|
79
|
+
}, "strict", z.ZodTypeAny, {
|
|
80
|
+
disabled: string[];
|
|
81
|
+
}, {
|
|
82
|
+
disabled?: string[] | undefined;
|
|
83
|
+
}>>;
|
|
84
|
+
}, "strict", z.ZodTypeAny, {
|
|
85
|
+
tools: {
|
|
86
|
+
disabled: string[];
|
|
87
|
+
};
|
|
88
|
+
}, {
|
|
89
|
+
tools?: {
|
|
90
|
+
disabled?: string[] | undefined;
|
|
91
|
+
} | undefined;
|
|
92
|
+
}>;
|
|
69
93
|
export declare const GlobalPreferencesSchema: z.ZodObject<{
|
|
70
94
|
llm: z.ZodEffects<z.ZodObject<{
|
|
71
|
-
provider: z.ZodEnum<["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "minimax", "glm", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama", "dexto"]>;
|
|
95
|
+
provider: z.ZodEnum<["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "minimax", "glm", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama", "dexto-nova"]>;
|
|
72
96
|
model: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
73
97
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
74
98
|
baseURL: z.ZodOptional<z.ZodString>;
|
|
75
99
|
reasoningEffort: z.ZodOptional<z.ZodEnum<["none", "minimal", "low", "medium", "high", "xhigh"]>>;
|
|
76
100
|
}, "strict", z.ZodTypeAny, {
|
|
77
|
-
provider: "
|
|
101
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
78
102
|
model: string;
|
|
79
103
|
apiKey?: string | undefined;
|
|
80
104
|
baseURL?: string | undefined;
|
|
81
105
|
reasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
|
|
82
106
|
}, {
|
|
83
|
-
provider: "
|
|
107
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
84
108
|
model: string;
|
|
85
109
|
apiKey?: string | undefined;
|
|
86
110
|
baseURL?: string | undefined;
|
|
87
111
|
reasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
|
|
88
112
|
}>, {
|
|
89
|
-
provider: "
|
|
113
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
90
114
|
model: string;
|
|
91
115
|
apiKey?: string | undefined;
|
|
92
116
|
baseURL?: string | undefined;
|
|
93
117
|
reasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
|
|
94
118
|
}, {
|
|
95
|
-
provider: "
|
|
119
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
96
120
|
model: string;
|
|
97
121
|
apiKey?: string | undefined;
|
|
98
122
|
baseURL?: string | undefined;
|
|
@@ -136,7 +160,7 @@ export declare const GlobalPreferencesSchema: z.ZodObject<{
|
|
|
136
160
|
}>>;
|
|
137
161
|
}, "strict", z.ZodTypeAny, {
|
|
138
162
|
llm: {
|
|
139
|
-
provider: "
|
|
163
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
140
164
|
model: string;
|
|
141
165
|
apiKey?: string | undefined;
|
|
142
166
|
baseURL?: string | undefined;
|
|
@@ -158,7 +182,7 @@ export declare const GlobalPreferencesSchema: z.ZodObject<{
|
|
|
158
182
|
};
|
|
159
183
|
}, {
|
|
160
184
|
llm: {
|
|
161
|
-
provider: "
|
|
185
|
+
provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
|
|
162
186
|
model: string;
|
|
163
187
|
apiKey?: string | undefined;
|
|
164
188
|
baseURL?: string | undefined;
|
|
@@ -183,5 +207,7 @@ export type PreferenceLLM = z.output<typeof PreferenceLLMSchema>;
|
|
|
183
207
|
export type PreferenceDefaults = z.output<typeof PreferenceDefaultsSchema>;
|
|
184
208
|
export type PreferenceSetup = z.output<typeof PreferenceSetupSchema>;
|
|
185
209
|
export type PreferenceSounds = z.output<typeof PreferenceSoundsSchema>;
|
|
210
|
+
export type AgentToolPreferences = z.output<typeof AgentToolPreferencesSchema>;
|
|
211
|
+
export type AgentPreferences = z.output<typeof AgentPreferencesSchema>;
|
|
186
212
|
export type GlobalPreferences = z.output<typeof GlobalPreferencesSchema>;
|
|
187
213
|
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/preferences/schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsE1B,CAAC;AAEP,eAAO,MAAM,wBAAwB;;;;;;;;;EAYxB,CAAC;AAEd,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAYrB,CAAC;AAEd,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EActB,CAAC;AAEd,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcvB,CAAC;AAGd,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACjE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC3E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/preferences/schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsE1B,CAAC;AAEP,eAAO,MAAM,wBAAwB;;;;;;;;;EAYxB,CAAC;AAEd,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAYrB,CAAC;AAEd,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EActB,CAAC;AAEd,eAAO,MAAM,0BAA0B;;;;;;EAO1B,CAAC;AAEd,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;EAMtB,CAAC;AAEd,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcvB,CAAC;AAGd,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACjE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC3E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -67,6 +67,14 @@ const PreferenceSoundsSchema = z.object({
|
|
|
67
67
|
),
|
|
68
68
|
onTaskComplete: z.boolean().default(true).describe("Play sound when agent task completes (default: true when sounds enabled)")
|
|
69
69
|
}).strict();
|
|
70
|
+
const AgentToolPreferencesSchema = z.object({
|
|
71
|
+
disabled: z.array(NonEmptyTrimmed).default([]).describe("Tool names disabled for this agent (default: none)")
|
|
72
|
+
}).strict();
|
|
73
|
+
const AgentPreferencesSchema = z.object({
|
|
74
|
+
tools: AgentToolPreferencesSchema.default({ disabled: [] }).describe(
|
|
75
|
+
"Tool availability preferences"
|
|
76
|
+
)
|
|
77
|
+
}).strict();
|
|
70
78
|
const GlobalPreferencesSchema = z.object({
|
|
71
79
|
llm: PreferenceLLMSchema.describe("LLM configuration preferences"),
|
|
72
80
|
defaults: PreferenceDefaultsSchema.describe("Default behavior preferences (required)"),
|
|
@@ -78,6 +86,8 @@ const GlobalPreferencesSchema = z.object({
|
|
|
78
86
|
)
|
|
79
87
|
}).strict();
|
|
80
88
|
export {
|
|
89
|
+
AgentPreferencesSchema,
|
|
90
|
+
AgentToolPreferencesSchema,
|
|
81
91
|
GlobalPreferencesSchema,
|
|
82
92
|
PreferenceDefaultsSchema,
|
|
83
93
|
PreferenceLLMSchema,
|
|
@@ -65,7 +65,7 @@ function resolveSubAgentLLM(options) {
|
|
|
65
65
|
return {
|
|
66
66
|
llm: parentLLM,
|
|
67
67
|
resolution: "parent-fallback",
|
|
68
|
-
reason: `${agentLabel} cannot use ${subAgentProvider}/${subAgentModel} with parent's ${parentProvider} provider. Falling back to parent's LLM config. Tip: Use 'dexto login' for Dexto Credits which supports all models.`
|
|
68
|
+
reason: `${agentLabel} cannot use ${subAgentProvider}/${subAgentModel} with parent's ${parentProvider} provider. Falling back to parent's LLM config. Tip: Use 'dexto login' for Dexto Nova Credits which supports all models.`
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* this module determines which LLM configuration the sub-agent should use.
|
|
6
6
|
*
|
|
7
7
|
* Resolution priority:
|
|
8
|
-
* 1. If parent's provider can serve sub-agent's model (dexto/openrouter/same provider)
|
|
8
|
+
* 1. If parent's provider can serve sub-agent's model (dexto-nova/openrouter/same provider)
|
|
9
9
|
* → Use parent's provider + sub-agent's model (transformed if needed)
|
|
10
10
|
* 2. If incompatible providers
|
|
11
11
|
* → Fall back to parent's full LLM config (with warning)
|
|
@@ -40,12 +40,12 @@ export interface ResolveSubAgentLLMOptions {
|
|
|
40
40
|
* when possible, while leveraging the parent's provider/credentials.
|
|
41
41
|
*
|
|
42
42
|
* @example
|
|
43
|
-
* // Parent uses dexto, sub-agent wants anthropic/haiku
|
|
43
|
+
* // Parent uses dexto-nova, sub-agent wants anthropic/haiku
|
|
44
44
|
* resolveSubAgentLLM({
|
|
45
45
|
* subAgentLLM: { provider: 'anthropic', model: 'claude-haiku-4-5-20251001', apiKey: '$ANTHROPIC_API_KEY' },
|
|
46
|
-
* parentLLM: { provider: 'dexto', model: 'anthropic/claude-sonnet-4', apiKey: '$DEXTO_API_KEY' }
|
|
46
|
+
* parentLLM: { provider: 'dexto-nova', model: 'anthropic/claude-sonnet-4', apiKey: '$DEXTO_API_KEY' }
|
|
47
47
|
* })
|
|
48
|
-
* // Returns: { provider: 'dexto', model: 'anthropic/claude-haiku-4.5', apiKey: '$DEXTO_API_KEY' }
|
|
48
|
+
* // Returns: { provider: 'dexto-nova', model: 'anthropic/claude-haiku-4.5', apiKey: '$DEXTO_API_KEY' }
|
|
49
49
|
*/
|
|
50
50
|
export declare function resolveSubAgentLLM(options: ResolveSubAgentLLMOptions): SubAgentLLMResolution;
|
|
51
51
|
//# sourceMappingURL=llm-resolution.d.ts.map
|
|
@@ -42,7 +42,7 @@ function resolveSubAgentLLM(options) {
|
|
|
42
42
|
return {
|
|
43
43
|
llm: parentLLM,
|
|
44
44
|
resolution: "parent-fallback",
|
|
45
|
-
reason: `${agentLabel} cannot use ${subAgentProvider}/${subAgentModel} with parent's ${parentProvider} provider. Falling back to parent's LLM config. Tip: Use 'dexto login' for Dexto Credits which supports all models.`
|
|
45
|
+
reason: `${agentLabel} cannot use ${subAgentProvider}/${subAgentModel} with parent's ${parentProvider} provider. Falling back to parent's LLM config. Tip: Use 'dexto login' for Dexto Nova Credits which supports all models.`
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
export {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
var runtime_service_exports = {};
|
|
20
30
|
__export(runtime_service_exports, {
|
|
@@ -26,6 +36,9 @@ var import_AgentRuntime = require("../runtime/AgentRuntime.js");
|
|
|
26
36
|
var import_approval_delegation = require("../runtime/approval-delegation.js");
|
|
27
37
|
var import_loader = require("../config/loader.js");
|
|
28
38
|
var import_registry = require("../registry/registry.js");
|
|
39
|
+
var import_types = require("../registry/types.js");
|
|
40
|
+
var import_path = require("../utils/path.js");
|
|
41
|
+
var path = __toESM(require("path"), 1);
|
|
29
42
|
var import_llm_resolution = require("./llm-resolution.js");
|
|
30
43
|
class RuntimeService {
|
|
31
44
|
runtime;
|
|
@@ -33,6 +46,37 @@ class RuntimeService {
|
|
|
33
46
|
parentAgent;
|
|
34
47
|
config;
|
|
35
48
|
logger;
|
|
49
|
+
resolveBundledAgentConfig(agentId) {
|
|
50
|
+
const baseDir = "agents";
|
|
51
|
+
const normalizedPath = path.relative(baseDir, path.join(baseDir, agentId));
|
|
52
|
+
if (normalizedPath.startsWith("..") || path.isAbsolute(normalizedPath)) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
const candidates = [
|
|
56
|
+
`agents/${agentId}/${agentId}.yml`,
|
|
57
|
+
`agents/${agentId}/${agentId}.yaml`,
|
|
58
|
+
`agents/${agentId}.yml`,
|
|
59
|
+
`agents/${agentId}.yaml`
|
|
60
|
+
];
|
|
61
|
+
for (const candidate of candidates) {
|
|
62
|
+
try {
|
|
63
|
+
return (0, import_path.resolveBundledScript)(candidate);
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
createFallbackRegistryEntry(agentId) {
|
|
70
|
+
return {
|
|
71
|
+
id: agentId,
|
|
72
|
+
name: (0, import_types.deriveDisplayName)(agentId),
|
|
73
|
+
description: "Agent specified in config (registry entry not found)",
|
|
74
|
+
author: "unknown",
|
|
75
|
+
tags: [],
|
|
76
|
+
source: agentId,
|
|
77
|
+
type: "custom"
|
|
78
|
+
};
|
|
79
|
+
}
|
|
36
80
|
constructor(parentAgent, config, logger) {
|
|
37
81
|
this.parentAgent = parentAgent;
|
|
38
82
|
this.config = config;
|
|
@@ -430,12 +474,26 @@ class RuntimeService {
|
|
|
430
474
|
);
|
|
431
475
|
const toolConfirmationMode = autoApprove ? "auto-approve" : "manual";
|
|
432
476
|
if (agentId) {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
477
|
+
let configPath = null;
|
|
478
|
+
try {
|
|
479
|
+
const registry = (0, import_registry.getAgentRegistry)();
|
|
480
|
+
if (!registry.hasAgent(agentId)) {
|
|
481
|
+
this.logger.warn(
|
|
482
|
+
`Agent '${agentId}' not found in registry. Trying bundled config paths.`
|
|
483
|
+
);
|
|
484
|
+
} else {
|
|
485
|
+
configPath = await registry.resolveAgent(agentId);
|
|
486
|
+
}
|
|
487
|
+
} catch (error) {
|
|
488
|
+
this.logger.warn(
|
|
489
|
+
`Failed to load agent registry for '${agentId}'. Trying bundled config paths. (${error instanceof Error ? error.message : String(error)})`
|
|
490
|
+
);
|
|
491
|
+
}
|
|
492
|
+
if (!configPath) {
|
|
493
|
+
configPath = this.resolveBundledAgentConfig(agentId);
|
|
494
|
+
}
|
|
495
|
+
if (configPath) {
|
|
496
|
+
this.logger.debug(`Loading agent config from registry/bundled path: ${configPath}`);
|
|
439
497
|
const loadedConfig = await (0, import_loader.loadAgentConfig)(configPath, this.logger);
|
|
440
498
|
let llmConfig = loadedConfig.llm;
|
|
441
499
|
if (inheritLlm) {
|
|
@@ -452,6 +510,9 @@ class RuntimeService {
|
|
|
452
510
|
this.logger.debug(`Sub-agent LLM resolution: ${resolution.reason}`);
|
|
453
511
|
llmConfig = resolution.llm;
|
|
454
512
|
}
|
|
513
|
+
const filteredCustomTools = loadedConfig.customTools ? loadedConfig.customTools.filter(
|
|
514
|
+
(tool) => typeof tool === "object" && tool !== null && "type" in tool && tool.type !== "agent-spawner"
|
|
515
|
+
) : void 0;
|
|
455
516
|
return {
|
|
456
517
|
...loadedConfig,
|
|
457
518
|
llm: llmConfig,
|
|
@@ -459,6 +520,7 @@ class RuntimeService {
|
|
|
459
520
|
...loadedConfig.toolConfirmation,
|
|
460
521
|
mode: toolConfirmationMode
|
|
461
522
|
},
|
|
523
|
+
customTools: filteredCustomTools,
|
|
462
524
|
// Suppress sub-agent console logs entirely using silent transport
|
|
463
525
|
logger: {
|
|
464
526
|
level: "error",
|
|
@@ -466,6 +528,9 @@ class RuntimeService {
|
|
|
466
528
|
}
|
|
467
529
|
};
|
|
468
530
|
}
|
|
531
|
+
this.logger.warn(
|
|
532
|
+
`Agent '${agentId}' not found in registry or bundled paths. Using default config.`
|
|
533
|
+
);
|
|
469
534
|
}
|
|
470
535
|
const config = {
|
|
471
536
|
llm: { ...currentParentLLM },
|
|
@@ -482,8 +547,11 @@ class RuntimeService {
|
|
|
482
547
|
internalTools: parentConfig.internalTools ? parentConfig.internalTools.filter(
|
|
483
548
|
(tool) => tool !== "ask_user" && tool !== "invoke_skill"
|
|
484
549
|
) : [],
|
|
485
|
-
// Inherit custom tools from parent
|
|
486
|
-
|
|
550
|
+
// Inherit custom tools from parent, excluding agent-spawner to prevent nested spawning (depth=1 limit)
|
|
551
|
+
// - agent-spawner: Sub-agents should not spawn their own sub-agents
|
|
552
|
+
customTools: parentConfig.customTools ? parentConfig.customTools.filter(
|
|
553
|
+
(tool) => typeof tool === "object" && tool !== null && "type" in tool && tool.type !== "agent-spawner"
|
|
554
|
+
) : [],
|
|
487
555
|
// Suppress sub-agent console logs entirely using silent transport
|
|
488
556
|
logger: {
|
|
489
557
|
level: "error",
|
|
@@ -497,15 +565,24 @@ class RuntimeService {
|
|
|
497
565
|
* Returns agent metadata from registry, filtered by allowedAgents if configured.
|
|
498
566
|
*/
|
|
499
567
|
getAvailableAgents() {
|
|
500
|
-
|
|
501
|
-
|
|
568
|
+
let allAgents;
|
|
569
|
+
try {
|
|
570
|
+
const registry = (0, import_registry.getAgentRegistry)();
|
|
571
|
+
allAgents = registry.getAvailableAgents();
|
|
572
|
+
} catch (error) {
|
|
573
|
+
this.logger.warn(
|
|
574
|
+
`Failed to load agent registry for spawn_agent description: ${error instanceof Error ? error.message : String(error)}`
|
|
575
|
+
);
|
|
576
|
+
if (this.config.allowedAgents && this.config.allowedAgents.length > 0) {
|
|
577
|
+
return this.config.allowedAgents.map((id) => this.createFallbackRegistryEntry(id));
|
|
578
|
+
}
|
|
579
|
+
return [];
|
|
580
|
+
}
|
|
502
581
|
if (this.config.allowedAgents && this.config.allowedAgents.length > 0) {
|
|
503
582
|
const result = [];
|
|
504
583
|
for (const id of this.config.allowedAgents) {
|
|
505
584
|
const agent = allAgents[id];
|
|
506
|
-
|
|
507
|
-
result.push(agent);
|
|
508
|
-
}
|
|
585
|
+
result.push(agent ?? this.createFallbackRegistryEntry(id));
|
|
509
586
|
}
|
|
510
587
|
return result;
|
|
511
588
|
}
|
|
@@ -20,6 +20,8 @@ export declare class RuntimeService implements TaskForker {
|
|
|
20
20
|
private parentAgent;
|
|
21
21
|
private config;
|
|
22
22
|
private logger;
|
|
23
|
+
private resolveBundledAgentConfig;
|
|
24
|
+
private createFallbackRegistryEntry;
|
|
23
25
|
constructor(parentAgent: DextoAgent, config: AgentSpawnerConfig, logger: IDextoLogger);
|
|
24
26
|
/**
|
|
25
27
|
* Get count of sub-agents belonging to this parent
|
|
@@ -1 +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,UAAU,EAAE,MAAM,aAAa,CAAC;AAMrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
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,UAAU,EAAE,MAAM,aAAa,CAAC;AAMrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD,qBAAa,cAAe,YAAW,UAAU;IAC7C,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,yBAAyB;IAyBjC,OAAO,CAAC,2BAA2B;gBAYvB,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY;IAuBrF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;;;;;;;;;;;;;OAcG;IACG,eAAe,CAAC,KAAK,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8C7B;;;;;;;;;;OAUG;IACG,IAAI,CAAC,OAAO,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BpE;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiH7B;;OAEG;IACH,OAAO,CAAC,UAAU;IAsBlB;;OAEG;YACW,oBAAoB;IAyPlC;;;;;;;OAOG;YACW,mBAAmB;IAoJjC;;;OAGG;IACH,kBAAkB,IAAI,kBAAkB,EAAE;IA6B1C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIjC"}
|