@robinmordasiewicz/f5xc-api-mcp 3.11.0 → 3.12.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/server.d.ts.map +1 -1
- package/dist/server.js +187 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/discovery/best-practices.d.ts +140 -0
- package/dist/tools/discovery/best-practices.d.ts.map +1 -0
- package/dist/tools/discovery/best-practices.js +499 -0
- package/dist/tools/discovery/best-practices.js.map +1 -0
- package/dist/tools/discovery/cost-estimator.d.ts +114 -0
- package/dist/tools/discovery/cost-estimator.d.ts.map +1 -0
- package/dist/tools/discovery/cost-estimator.js +273 -0
- package/dist/tools/discovery/cost-estimator.js.map +1 -0
- package/dist/tools/discovery/index.d.ts +99 -0
- package/dist/tools/discovery/index.d.ts.map +1 -1
- package/dist/tools/discovery/index.js +99 -0
- package/dist/tools/discovery/index.js.map +1 -1
- package/dist/tools/discovery/resolver.d.ts +119 -0
- package/dist/tools/discovery/resolver.d.ts.map +1 -0
- package/dist/tools/discovery/resolver.js +369 -0
- package/dist/tools/discovery/resolver.js.map +1 -0
- package/dist/tools/generated/dependency-graph.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/tools/discovery/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1C,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,gCAAgC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wDAAwD;IACxD,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0CAA0C;IAC1C,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,6BAA6B;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,+CAA+C;IAC/C,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgLD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAoKxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA2E7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KACpC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAoCA"}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive Dependency Resolver
|
|
3
|
+
*
|
|
4
|
+
* Generates complete creation plans with all transitive dependencies,
|
|
5
|
+
* step-by-step workflows with tool names and required inputs,
|
|
6
|
+
* and handles oneOf groups with alternative paths.
|
|
7
|
+
*/
|
|
8
|
+
import { getResourceDependencies, getPrerequisiteResources, getOneOfGroups, getSubscriptionRequirements, } from "./dependencies.js";
|
|
9
|
+
import { searchTools } from "./search.js";
|
|
10
|
+
import { getToolByName } from "../registry.js";
|
|
11
|
+
import { createResourceKey } from "../../generator/dependency-types.js";
|
|
12
|
+
/**
|
|
13
|
+
* Find the create tool for a resource
|
|
14
|
+
*/
|
|
15
|
+
function findCreateTool(domain, resource) {
|
|
16
|
+
// Search for create tool matching this resource
|
|
17
|
+
const results = searchTools(`${resource} create`, {
|
|
18
|
+
domains: [domain],
|
|
19
|
+
operations: ["create"],
|
|
20
|
+
limit: 5,
|
|
21
|
+
});
|
|
22
|
+
if (results.length > 0 && results[0]) {
|
|
23
|
+
return results[0].tool.name;
|
|
24
|
+
}
|
|
25
|
+
// Try alternative naming patterns
|
|
26
|
+
const normalizedResource = resource.replace(/-/g, "_");
|
|
27
|
+
const altResults = searchTools(`${normalizedResource} create`, {
|
|
28
|
+
operations: ["create"],
|
|
29
|
+
limit: 5,
|
|
30
|
+
});
|
|
31
|
+
if (altResults.length > 0 && altResults[0]) {
|
|
32
|
+
return altResults[0].tool.name;
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get required input parameters for a tool
|
|
38
|
+
*/
|
|
39
|
+
function getRequiredInputs(toolName) {
|
|
40
|
+
const tool = getToolByName(toolName);
|
|
41
|
+
if (!tool) {
|
|
42
|
+
return ["namespace", "name"];
|
|
43
|
+
}
|
|
44
|
+
const required = [];
|
|
45
|
+
// Add path parameters
|
|
46
|
+
for (const param of tool.pathParameters) {
|
|
47
|
+
required.push(param.name);
|
|
48
|
+
}
|
|
49
|
+
// Add required body fields (simplified - just common ones)
|
|
50
|
+
if (tool.requiredParams) {
|
|
51
|
+
required.push(...tool.requiredParams);
|
|
52
|
+
}
|
|
53
|
+
// Always include common required fields
|
|
54
|
+
if (!required.includes("namespace")) {
|
|
55
|
+
required.push("namespace");
|
|
56
|
+
}
|
|
57
|
+
if (!required.includes("name")) {
|
|
58
|
+
required.push("name");
|
|
59
|
+
}
|
|
60
|
+
return [...new Set(required)];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Resolve all transitive dependencies for a resource
|
|
64
|
+
*/
|
|
65
|
+
function resolveTransitiveDependencies(domain, resource, existingResources, visited, includeOptional, maxDepth, currentDepth = 0) {
|
|
66
|
+
const key = createResourceKey(domain, resource);
|
|
67
|
+
if (visited.has(key) || currentDepth > maxDepth) {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
visited.add(key);
|
|
71
|
+
const prereqs = getPrerequisiteResources(domain, resource);
|
|
72
|
+
const allDeps = [];
|
|
73
|
+
for (const prereq of prereqs) {
|
|
74
|
+
// Skip optional if not requested
|
|
75
|
+
if (!prereq.required && !includeOptional) {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
// Skip if already exists
|
|
79
|
+
const prereqKey = createResourceKey(prereq.domain, prereq.resourceType);
|
|
80
|
+
if (existingResources.has(prereqKey)) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
// Recursively resolve this dependency's dependencies
|
|
84
|
+
const transitive = resolveTransitiveDependencies(prereq.domain, prereq.resourceType, existingResources, visited, includeOptional, maxDepth, currentDepth + 1);
|
|
85
|
+
allDeps.push(...transitive);
|
|
86
|
+
allDeps.push(prereq);
|
|
87
|
+
}
|
|
88
|
+
return allDeps;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Topologically sort dependencies
|
|
92
|
+
*/
|
|
93
|
+
function topologicalSort(dependencies) {
|
|
94
|
+
// Build adjacency list
|
|
95
|
+
const graph = new Map();
|
|
96
|
+
const inDegree = new Map();
|
|
97
|
+
const resourceMap = new Map();
|
|
98
|
+
for (const dep of dependencies) {
|
|
99
|
+
const key = createResourceKey(dep.domain, dep.resourceType);
|
|
100
|
+
resourceMap.set(key, dep);
|
|
101
|
+
if (!graph.has(key)) {
|
|
102
|
+
graph.set(key, new Set());
|
|
103
|
+
inDegree.set(key, 0);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Build edges based on dependencies
|
|
107
|
+
for (const dep of dependencies) {
|
|
108
|
+
const key = createResourceKey(dep.domain, dep.resourceType);
|
|
109
|
+
const prereqs = getPrerequisiteResources(dep.domain, dep.resourceType);
|
|
110
|
+
for (const prereq of prereqs) {
|
|
111
|
+
const prereqKey = createResourceKey(prereq.domain, prereq.resourceType);
|
|
112
|
+
if (graph.has(prereqKey)) {
|
|
113
|
+
graph.get(prereqKey)?.add(key);
|
|
114
|
+
inDegree.set(key, (inDegree.get(key) ?? 0) + 1);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Kahn's algorithm
|
|
119
|
+
const queue = [];
|
|
120
|
+
for (const [key, degree] of inDegree) {
|
|
121
|
+
if (degree === 0) {
|
|
122
|
+
queue.push(key);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const sorted = [];
|
|
126
|
+
while (queue.length > 0) {
|
|
127
|
+
const key = queue.shift();
|
|
128
|
+
const resource = resourceMap.get(key);
|
|
129
|
+
if (resource) {
|
|
130
|
+
sorted.push(resource);
|
|
131
|
+
}
|
|
132
|
+
for (const neighbor of graph.get(key) ?? []) {
|
|
133
|
+
const newDegree = (inDegree.get(neighbor) ?? 1) - 1;
|
|
134
|
+
inDegree.set(neighbor, newDegree);
|
|
135
|
+
if (newDegree === 0) {
|
|
136
|
+
queue.push(neighbor);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return sorted;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Resolve dependencies and generate a complete creation plan
|
|
144
|
+
*/
|
|
145
|
+
export function resolveDependencies(params) {
|
|
146
|
+
const { resource, domain, existingResources = [], includeOptional = false, maxDepth = 10, expandAlternatives = false, } = params;
|
|
147
|
+
const existingSet = new Set(existingResources);
|
|
148
|
+
const visited = new Set();
|
|
149
|
+
const warnings = [];
|
|
150
|
+
// Check if target resource exists in dependency graph
|
|
151
|
+
const deps = getResourceDependencies(domain, resource);
|
|
152
|
+
if (!deps) {
|
|
153
|
+
return {
|
|
154
|
+
success: false,
|
|
155
|
+
error: `Resource '${domain}/${resource}' not found in dependency graph. ` +
|
|
156
|
+
`Try searching for available resources with f5xc-api-search-resources.`,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
// Resolve all transitive dependencies
|
|
160
|
+
const allDeps = resolveTransitiveDependencies(domain, resource, existingSet, visited, includeOptional, maxDepth);
|
|
161
|
+
// Topologically sort dependencies
|
|
162
|
+
const sortedDeps = topologicalSort(allDeps);
|
|
163
|
+
// Build workflow steps
|
|
164
|
+
const steps = [];
|
|
165
|
+
let stepNumber = 1;
|
|
166
|
+
for (const dep of sortedDeps) {
|
|
167
|
+
const toolName = findCreateTool(dep.domain, dep.resourceType);
|
|
168
|
+
if (!toolName) {
|
|
169
|
+
warnings.push(`No create tool found for ${dep.domain}/${dep.resourceType}. ` +
|
|
170
|
+
`This resource may need to be created manually.`);
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
const prereqs = getPrerequisiteResources(dep.domain, dep.resourceType);
|
|
174
|
+
const dependsOn = prereqs
|
|
175
|
+
.filter((p) => !existingSet.has(createResourceKey(p.domain, p.resourceType)))
|
|
176
|
+
.map((p) => `${p.domain}/${p.resourceType}`);
|
|
177
|
+
const oneOfGroups = getOneOfGroups(dep.domain, dep.resourceType);
|
|
178
|
+
const step = {
|
|
179
|
+
stepNumber,
|
|
180
|
+
action: "create",
|
|
181
|
+
domain: dep.domain,
|
|
182
|
+
resource: dep.resourceType,
|
|
183
|
+
toolName,
|
|
184
|
+
dependsOn,
|
|
185
|
+
optional: !dep.required,
|
|
186
|
+
requiredInputs: getRequiredInputs(toolName),
|
|
187
|
+
};
|
|
188
|
+
if (oneOfGroups.length > 0) {
|
|
189
|
+
step.oneOfChoices = oneOfGroups.map((g) => ({
|
|
190
|
+
field: g.choiceField,
|
|
191
|
+
options: g.options,
|
|
192
|
+
description: g.description,
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
steps.push(step);
|
|
196
|
+
stepNumber++;
|
|
197
|
+
}
|
|
198
|
+
// Add final step for target resource
|
|
199
|
+
const targetToolName = findCreateTool(domain, resource);
|
|
200
|
+
if (targetToolName) {
|
|
201
|
+
const targetPrereqs = getPrerequisiteResources(domain, resource);
|
|
202
|
+
const dependsOn = targetPrereqs
|
|
203
|
+
.filter((p) => !existingSet.has(createResourceKey(p.domain, p.resourceType)))
|
|
204
|
+
.map((p) => `${p.domain}/${p.resourceType}`);
|
|
205
|
+
const oneOfGroups = getOneOfGroups(domain, resource);
|
|
206
|
+
const targetStep = {
|
|
207
|
+
stepNumber,
|
|
208
|
+
action: "create",
|
|
209
|
+
domain,
|
|
210
|
+
resource,
|
|
211
|
+
toolName: targetToolName,
|
|
212
|
+
dependsOn,
|
|
213
|
+
optional: false,
|
|
214
|
+
requiredInputs: getRequiredInputs(targetToolName),
|
|
215
|
+
};
|
|
216
|
+
if (oneOfGroups.length > 0) {
|
|
217
|
+
targetStep.oneOfChoices = oneOfGroups.map((g) => ({
|
|
218
|
+
field: g.choiceField,
|
|
219
|
+
options: g.options,
|
|
220
|
+
description: g.description,
|
|
221
|
+
}));
|
|
222
|
+
}
|
|
223
|
+
steps.push(targetStep);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
warnings.push(`No create tool found for target resource ${domain}/${resource}.`);
|
|
227
|
+
}
|
|
228
|
+
// Collect subscription requirements
|
|
229
|
+
const subscriptions = [];
|
|
230
|
+
const subs = getSubscriptionRequirements(domain, resource);
|
|
231
|
+
for (const sub of subs) {
|
|
232
|
+
subscriptions.push(`${sub.displayName} (${sub.tier})${sub.required ? " - required" : ""}`);
|
|
233
|
+
}
|
|
234
|
+
// Build alternatives for oneOf choices if requested
|
|
235
|
+
const alternatives = [];
|
|
236
|
+
if (expandAlternatives) {
|
|
237
|
+
const oneOfGroups = getOneOfGroups(domain, resource);
|
|
238
|
+
for (const group of oneOfGroups) {
|
|
239
|
+
for (const option of group.options) {
|
|
240
|
+
alternatives.push({
|
|
241
|
+
choiceField: group.choiceField,
|
|
242
|
+
selectedOption: option,
|
|
243
|
+
steps: [], // Would need more complex logic to fill these
|
|
244
|
+
description: `Alternative using ${option} for ${group.choiceField}`,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// Determine complexity
|
|
250
|
+
let complexity = "low";
|
|
251
|
+
if (steps.length > 5) {
|
|
252
|
+
complexity = "high";
|
|
253
|
+
}
|
|
254
|
+
else if (steps.length > 2) {
|
|
255
|
+
complexity = "medium";
|
|
256
|
+
}
|
|
257
|
+
const plan = {
|
|
258
|
+
targetResource: resource,
|
|
259
|
+
targetDomain: domain,
|
|
260
|
+
totalSteps: steps.length,
|
|
261
|
+
steps,
|
|
262
|
+
warnings,
|
|
263
|
+
alternatives,
|
|
264
|
+
subscriptions,
|
|
265
|
+
existingResources: existingResources.length > 0 ? existingResources : undefined,
|
|
266
|
+
complexity,
|
|
267
|
+
};
|
|
268
|
+
return {
|
|
269
|
+
success: true,
|
|
270
|
+
plan,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Format a creation plan for human-readable output
|
|
275
|
+
*/
|
|
276
|
+
export function formatCreationPlan(plan) {
|
|
277
|
+
const lines = [];
|
|
278
|
+
lines.push(`# Creation Plan for ${plan.targetDomain}/${plan.targetResource}`);
|
|
279
|
+
lines.push("");
|
|
280
|
+
lines.push(`**Complexity**: ${plan.complexity}`);
|
|
281
|
+
lines.push(`**Total Steps**: ${plan.totalSteps}`);
|
|
282
|
+
lines.push("");
|
|
283
|
+
if (plan.subscriptions.length > 0) {
|
|
284
|
+
lines.push("## Required Subscriptions");
|
|
285
|
+
for (const sub of plan.subscriptions) {
|
|
286
|
+
lines.push(`- ${sub}`);
|
|
287
|
+
}
|
|
288
|
+
lines.push("");
|
|
289
|
+
}
|
|
290
|
+
if (plan.existingResources && plan.existingResources.length > 0) {
|
|
291
|
+
lines.push("## Existing Resources (Skipped)");
|
|
292
|
+
for (const res of plan.existingResources) {
|
|
293
|
+
lines.push(`- ${res}`);
|
|
294
|
+
}
|
|
295
|
+
lines.push("");
|
|
296
|
+
}
|
|
297
|
+
lines.push("## Workflow Steps");
|
|
298
|
+
lines.push("");
|
|
299
|
+
for (const step of plan.steps) {
|
|
300
|
+
lines.push(`### Step ${step.stepNumber}: ${step.action} ${step.domain}/${step.resource}`);
|
|
301
|
+
lines.push(`**Tool**: \`${step.toolName}\``);
|
|
302
|
+
lines.push(`**Optional**: ${step.optional ? "Yes" : "No"}`);
|
|
303
|
+
if (step.dependsOn.length > 0) {
|
|
304
|
+
lines.push(`**Depends On**: ${step.dependsOn.join(", ")}`);
|
|
305
|
+
}
|
|
306
|
+
if (step.requiredInputs.length > 0) {
|
|
307
|
+
lines.push(`**Required Inputs**: ${step.requiredInputs.join(", ")}`);
|
|
308
|
+
}
|
|
309
|
+
if (step.oneOfChoices && step.oneOfChoices.length > 0) {
|
|
310
|
+
lines.push("**Mutually Exclusive Choices**:");
|
|
311
|
+
for (const choice of step.oneOfChoices) {
|
|
312
|
+
lines.push(` - \`${choice.field}\`: Choose one of [${choice.options.join(", ")}]`);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
if (step.notes) {
|
|
316
|
+
lines.push(`**Notes**: ${step.notes}`);
|
|
317
|
+
}
|
|
318
|
+
lines.push("");
|
|
319
|
+
}
|
|
320
|
+
if (plan.warnings.length > 0) {
|
|
321
|
+
lines.push("## Warnings");
|
|
322
|
+
for (const warning of plan.warnings) {
|
|
323
|
+
lines.push(`- ⚠️ ${warning}`);
|
|
324
|
+
}
|
|
325
|
+
lines.push("");
|
|
326
|
+
}
|
|
327
|
+
if (plan.alternatives.length > 0) {
|
|
328
|
+
lines.push("## Alternative Paths");
|
|
329
|
+
for (const alt of plan.alternatives) {
|
|
330
|
+
lines.push(`- **${alt.choiceField}**: ${alt.selectedOption}`);
|
|
331
|
+
if (alt.description) {
|
|
332
|
+
lines.push(` ${alt.description}`);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
lines.push("");
|
|
336
|
+
}
|
|
337
|
+
return lines.join("\n");
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Generate a compact JSON creation plan for programmatic use
|
|
341
|
+
*/
|
|
342
|
+
export function generateCompactPlan(params) {
|
|
343
|
+
const result = resolveDependencies(params);
|
|
344
|
+
if (!result.success || !result.plan) {
|
|
345
|
+
return {
|
|
346
|
+
success: false,
|
|
347
|
+
error: result.error,
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
const steps = result.plan.steps.map((step) => {
|
|
351
|
+
const compactStep = {
|
|
352
|
+
tool: step.toolName,
|
|
353
|
+
resource: `${step.domain}/${step.resource}`,
|
|
354
|
+
inputs: step.requiredInputs,
|
|
355
|
+
};
|
|
356
|
+
if (step.oneOfChoices && step.oneOfChoices.length > 0) {
|
|
357
|
+
compactStep.choices = {};
|
|
358
|
+
for (const choice of step.oneOfChoices) {
|
|
359
|
+
compactStep.choices[choice.field] = choice.options;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
return compactStep;
|
|
363
|
+
});
|
|
364
|
+
return {
|
|
365
|
+
success: true,
|
|
366
|
+
steps,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/tools/discovery/resolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED