@robinmordasiewicz/f5xc-terraform-mcp 3.4.0 → 3.5.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/README.md +1 -1
- package/dist/docs/data-sources/bgp.md +2 -2
- package/dist/docs/data-sources/discovery.md +2 -2
- package/dist/docs/data-sources/site.md +2 -2
- package/dist/docs/index.md +276 -0
- package/dist/docs/resources/bgp.md +205 -37
- package/dist/docs/resources/discovery.md +259 -8
- package/dist/docs/resources/securemesh_site.md +253 -1614
- package/dist/docs/resources/site.md +200 -911
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +75 -4
- package/dist/index.js.map +1 -1
- package/dist/metadata/error-patterns.json +192 -0
- package/dist/metadata/resource-metadata.json +13095 -0
- package/dist/metadata/validation-patterns.json +69 -0
- package/dist/schemas/common.d.ts +33 -0
- package/dist/schemas/common.d.ts.map +1 -1
- package/dist/schemas/common.js +32 -0
- package/dist/schemas/common.js.map +1 -1
- package/dist/services/documentation.d.ts.map +1 -1
- package/dist/services/documentation.js +9 -0
- package/dist/services/documentation.js.map +1 -1
- package/dist/services/metadata.d.ts +193 -0
- package/dist/services/metadata.d.ts.map +1 -0
- package/dist/services/metadata.js +367 -0
- package/dist/services/metadata.js.map +1 -0
- package/dist/tools/discover.d.ts.map +1 -1
- package/dist/tools/discover.js +8 -0
- package/dist/tools/discover.js.map +1 -1
- package/dist/tools/metadata.d.ts +19 -0
- package/dist/tools/metadata.d.ts.map +1 -0
- package/dist/tools/metadata.js +612 -0
- package/dist/tools/metadata.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,612 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consolidated Metadata Tool Handler
|
|
3
|
+
*
|
|
4
|
+
* Tool: f5xc_terraform_metadata
|
|
5
|
+
*
|
|
6
|
+
* Provides access to resource metadata for deterministic AI configuration generation.
|
|
7
|
+
* Includes OneOf groups, validation patterns, defaults, and attribute information.
|
|
8
|
+
*/
|
|
9
|
+
import { ResponseFormat } from '../types.js';
|
|
10
|
+
import { getResourceMetadata, getResourceOneOfGroups, getAttributesWithDefaults, getAttributesWithEnums, getRequiredAttributes, getRequiresReplaceAttributes, getValidationPattern, getAllValidationPatterns, listResourcesWithMetadata, isMetadataAvailable, getResourceTier, getResourcesByTier, getResourceImportFormat, getResourceDependencies, computeCreationOrder, getErrorCodeInfo, findErrorByPattern, getAllErrorCodes, getDiagnosticTips, getEnhancedMetadataSummary, } from '../services/metadata.js';
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// HANDLER
|
|
13
|
+
// =============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Handles the f5xc_terraform_metadata tool invocation
|
|
16
|
+
* Routes to appropriate operation based on input.operation
|
|
17
|
+
*/
|
|
18
|
+
export async function handleMetadata(input) {
|
|
19
|
+
const { operation, response_format } = input;
|
|
20
|
+
// Check if metadata is available
|
|
21
|
+
if (!isMetadataAvailable()) {
|
|
22
|
+
return formatError('Metadata not available', 'Metadata files have not been generated. Run the schema generator to create metadata.', response_format);
|
|
23
|
+
}
|
|
24
|
+
switch (operation) {
|
|
25
|
+
case 'oneof':
|
|
26
|
+
return handleOneOf(input, response_format);
|
|
27
|
+
case 'validation':
|
|
28
|
+
return handleValidation(input, response_format);
|
|
29
|
+
case 'defaults':
|
|
30
|
+
return handleDefaults(input, response_format);
|
|
31
|
+
case 'enums':
|
|
32
|
+
return handleEnums(input, response_format);
|
|
33
|
+
case 'attribute':
|
|
34
|
+
return handleAttribute(input, response_format);
|
|
35
|
+
case 'requires_replace':
|
|
36
|
+
return handleRequiresReplace(input, response_format);
|
|
37
|
+
case 'tier':
|
|
38
|
+
return handleTier(input, response_format);
|
|
39
|
+
case 'dependencies':
|
|
40
|
+
return handleDependencies(input, response_format);
|
|
41
|
+
case 'troubleshoot':
|
|
42
|
+
return handleTroubleshoot(input, response_format);
|
|
43
|
+
case 'summary':
|
|
44
|
+
return handleSummary(response_format);
|
|
45
|
+
default:
|
|
46
|
+
throw new Error(`Unknown operation: ${operation}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// =============================================================================
|
|
50
|
+
// OPERATION HANDLERS
|
|
51
|
+
// =============================================================================
|
|
52
|
+
function handleOneOf(input, format) {
|
|
53
|
+
const { resource } = input;
|
|
54
|
+
if (!resource) {
|
|
55
|
+
return formatError('Missing parameter', 'resource parameter is required for oneof operation', format);
|
|
56
|
+
}
|
|
57
|
+
const oneOfGroups = getResourceOneOfGroups(resource);
|
|
58
|
+
if (Object.keys(oneOfGroups).length === 0) {
|
|
59
|
+
return formatNoData('No OneOf groups found', `Resource '${resource}' has no mutually exclusive field groups.`, format);
|
|
60
|
+
}
|
|
61
|
+
if (format === ResponseFormat.JSON) {
|
|
62
|
+
return JSON.stringify({
|
|
63
|
+
operation: 'oneof',
|
|
64
|
+
resource,
|
|
65
|
+
groups: oneOfGroups,
|
|
66
|
+
total_groups: Object.keys(oneOfGroups).length,
|
|
67
|
+
}, null, 2);
|
|
68
|
+
}
|
|
69
|
+
// Markdown format
|
|
70
|
+
const lines = [
|
|
71
|
+
`# OneOf Groups: ${resource}`,
|
|
72
|
+
'',
|
|
73
|
+
'These field groups are **mutually exclusive** - only one field from each group can be set.',
|
|
74
|
+
'',
|
|
75
|
+
];
|
|
76
|
+
for (const [groupName, group] of Object.entries(oneOfGroups)) {
|
|
77
|
+
lines.push(`## ${groupName}`);
|
|
78
|
+
lines.push('');
|
|
79
|
+
lines.push(`**Fields**: ${group.fields.join(', ')}`);
|
|
80
|
+
if (group.default) {
|
|
81
|
+
lines.push(`**Recommended Default**: \`${group.default}\``);
|
|
82
|
+
}
|
|
83
|
+
if (group.description) {
|
|
84
|
+
lines.push(`**Description**: ${group.description}`);
|
|
85
|
+
}
|
|
86
|
+
lines.push('');
|
|
87
|
+
}
|
|
88
|
+
return lines.join('\n');
|
|
89
|
+
}
|
|
90
|
+
function handleValidation(input, format) {
|
|
91
|
+
const { pattern } = input;
|
|
92
|
+
// If pattern specified, return that specific pattern
|
|
93
|
+
if (pattern) {
|
|
94
|
+
const validationPattern = getValidationPattern(pattern);
|
|
95
|
+
if (!validationPattern) {
|
|
96
|
+
return formatError('Pattern not found', `Validation pattern '${pattern}' not found. Available: name, domain, port, namespace`, format);
|
|
97
|
+
}
|
|
98
|
+
if (format === ResponseFormat.JSON) {
|
|
99
|
+
return JSON.stringify({
|
|
100
|
+
operation: 'validation',
|
|
101
|
+
pattern,
|
|
102
|
+
...validationPattern,
|
|
103
|
+
}, null, 2);
|
|
104
|
+
}
|
|
105
|
+
const lines = [
|
|
106
|
+
`# Validation Pattern: ${pattern}`,
|
|
107
|
+
'',
|
|
108
|
+
`**Type**: ${validationPattern.type}`,
|
|
109
|
+
'',
|
|
110
|
+
];
|
|
111
|
+
if (validationPattern.pattern) {
|
|
112
|
+
lines.push(`**Pattern**: \`${validationPattern.pattern}\``);
|
|
113
|
+
}
|
|
114
|
+
if (validationPattern.min !== undefined) {
|
|
115
|
+
lines.push(`**Min**: ${validationPattern.min}`);
|
|
116
|
+
}
|
|
117
|
+
if (validationPattern.max !== undefined) {
|
|
118
|
+
lines.push(`**Max**: ${validationPattern.max}`);
|
|
119
|
+
}
|
|
120
|
+
lines.push('');
|
|
121
|
+
lines.push(`**Description**: ${validationPattern.description}`);
|
|
122
|
+
lines.push('');
|
|
123
|
+
if (validationPattern.examples && validationPattern.examples.length > 0) {
|
|
124
|
+
lines.push('**Valid Examples**:');
|
|
125
|
+
for (const ex of validationPattern.examples) {
|
|
126
|
+
lines.push(`- \`${ex}\``);
|
|
127
|
+
}
|
|
128
|
+
lines.push('');
|
|
129
|
+
}
|
|
130
|
+
if (validationPattern.invalid && validationPattern.invalid.length > 0) {
|
|
131
|
+
lines.push('**Invalid Examples**:');
|
|
132
|
+
for (const ex of validationPattern.invalid) {
|
|
133
|
+
lines.push(`- \`${ex}\``);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return lines.join('\n');
|
|
137
|
+
}
|
|
138
|
+
// Return all patterns
|
|
139
|
+
const allPatterns = getAllValidationPatterns();
|
|
140
|
+
if (format === ResponseFormat.JSON) {
|
|
141
|
+
return JSON.stringify({
|
|
142
|
+
operation: 'validation',
|
|
143
|
+
patterns: allPatterns,
|
|
144
|
+
total: Object.keys(allPatterns).length,
|
|
145
|
+
}, null, 2);
|
|
146
|
+
}
|
|
147
|
+
const lines = ['# Validation Patterns', '', '| Pattern | Type | Description |', '|---------|------|-------------|'];
|
|
148
|
+
for (const [name, pat] of Object.entries(allPatterns)) {
|
|
149
|
+
lines.push(`| ${name} | ${pat.type} | ${pat.description.slice(0, 50)}... |`);
|
|
150
|
+
}
|
|
151
|
+
lines.push('');
|
|
152
|
+
lines.push('Use `pattern` parameter to get full details for a specific pattern.');
|
|
153
|
+
return lines.join('\n');
|
|
154
|
+
}
|
|
155
|
+
function handleDefaults(input, format) {
|
|
156
|
+
const { resource } = input;
|
|
157
|
+
if (!resource) {
|
|
158
|
+
return formatError('Missing parameter', 'resource parameter is required for defaults operation', format);
|
|
159
|
+
}
|
|
160
|
+
const defaults = getAttributesWithDefaults(resource);
|
|
161
|
+
if (Object.keys(defaults).length === 0) {
|
|
162
|
+
return formatNoData('No defaults found', `Resource '${resource}' has no attributes with default values.`, format);
|
|
163
|
+
}
|
|
164
|
+
if (format === ResponseFormat.JSON) {
|
|
165
|
+
return JSON.stringify({
|
|
166
|
+
operation: 'defaults',
|
|
167
|
+
resource,
|
|
168
|
+
defaults,
|
|
169
|
+
total: Object.keys(defaults).length,
|
|
170
|
+
}, null, 2);
|
|
171
|
+
}
|
|
172
|
+
const lines = [
|
|
173
|
+
`# Default Values: ${resource}`,
|
|
174
|
+
'',
|
|
175
|
+
'These attributes have default values when not specified:',
|
|
176
|
+
'',
|
|
177
|
+
'| Attribute | Default Value |',
|
|
178
|
+
'|-----------|---------------|',
|
|
179
|
+
];
|
|
180
|
+
for (const [name, value] of Object.entries(defaults)) {
|
|
181
|
+
const displayValue = typeof value === 'string' ? `"${value}"` : JSON.stringify(value);
|
|
182
|
+
lines.push(`| ${name} | ${displayValue} |`);
|
|
183
|
+
}
|
|
184
|
+
return lines.join('\n');
|
|
185
|
+
}
|
|
186
|
+
function handleEnums(input, format) {
|
|
187
|
+
const { resource } = input;
|
|
188
|
+
if (!resource) {
|
|
189
|
+
return formatError('Missing parameter', 'resource parameter is required for enums operation', format);
|
|
190
|
+
}
|
|
191
|
+
const enums = getAttributesWithEnums(resource);
|
|
192
|
+
if (Object.keys(enums).length === 0) {
|
|
193
|
+
return formatNoData('No enums found', `Resource '${resource}' has no attributes with enum constraints.`, format);
|
|
194
|
+
}
|
|
195
|
+
if (format === ResponseFormat.JSON) {
|
|
196
|
+
return JSON.stringify({
|
|
197
|
+
operation: 'enums',
|
|
198
|
+
resource,
|
|
199
|
+
enums,
|
|
200
|
+
total: Object.keys(enums).length,
|
|
201
|
+
}, null, 2);
|
|
202
|
+
}
|
|
203
|
+
const lines = [
|
|
204
|
+
`# Enum Constraints: ${resource}`,
|
|
205
|
+
'',
|
|
206
|
+
'These attributes only accept specific values:',
|
|
207
|
+
'',
|
|
208
|
+
];
|
|
209
|
+
for (const [name, values] of Object.entries(enums)) {
|
|
210
|
+
lines.push(`## ${name}`);
|
|
211
|
+
lines.push('');
|
|
212
|
+
lines.push(`**Valid values**: ${values.map(v => `\`${v}\``).join(', ')}`);
|
|
213
|
+
lines.push('');
|
|
214
|
+
}
|
|
215
|
+
return lines.join('\n');
|
|
216
|
+
}
|
|
217
|
+
function handleAttribute(input, format) {
|
|
218
|
+
const { resource, attribute } = input;
|
|
219
|
+
if (!resource || !attribute) {
|
|
220
|
+
return formatError('Missing parameter', 'Both resource and attribute parameters are required for attribute operation', format);
|
|
221
|
+
}
|
|
222
|
+
const resourceMeta = getResourceMetadata(resource);
|
|
223
|
+
if (!resourceMeta) {
|
|
224
|
+
return formatError('Resource not found', `Resource '${resource}' not found in metadata`, format);
|
|
225
|
+
}
|
|
226
|
+
const attrMeta = resourceMeta.attributes[attribute];
|
|
227
|
+
if (!attrMeta) {
|
|
228
|
+
const availableAttrs = Object.keys(resourceMeta.attributes).slice(0, 10);
|
|
229
|
+
return formatError('Attribute not found', `Attribute '${attribute}' not found in ${resource}. Available: ${availableAttrs.join(', ')}...`, format);
|
|
230
|
+
}
|
|
231
|
+
if (format === ResponseFormat.JSON) {
|
|
232
|
+
return JSON.stringify({
|
|
233
|
+
operation: 'attribute',
|
|
234
|
+
resource,
|
|
235
|
+
attribute,
|
|
236
|
+
...attrMeta,
|
|
237
|
+
}, null, 2);
|
|
238
|
+
}
|
|
239
|
+
const lines = [
|
|
240
|
+
`# Attribute: ${resource}.${attribute}`,
|
|
241
|
+
'',
|
|
242
|
+
`**Type**: ${attrMeta.type}`,
|
|
243
|
+
`**Required**: ${attrMeta.required ? 'Yes' : 'No'}`,
|
|
244
|
+
];
|
|
245
|
+
if (attrMeta.computed)
|
|
246
|
+
lines.push(`**Computed**: Yes`);
|
|
247
|
+
if (attrMeta.sensitive)
|
|
248
|
+
lines.push(`**Sensitive**: Yes`);
|
|
249
|
+
if (attrMeta.is_block)
|
|
250
|
+
lines.push(`**Block Type**: Yes`);
|
|
251
|
+
if (attrMeta.plan_modifier)
|
|
252
|
+
lines.push(`**Plan Modifier**: ${attrMeta.plan_modifier}`);
|
|
253
|
+
if (attrMeta.validation)
|
|
254
|
+
lines.push(`**Validation**: ${attrMeta.validation}`);
|
|
255
|
+
if (attrMeta.oneof_group)
|
|
256
|
+
lines.push(`**OneOf Group**: ${attrMeta.oneof_group}`);
|
|
257
|
+
lines.push('');
|
|
258
|
+
lines.push(`**Description**: ${attrMeta.description}`);
|
|
259
|
+
if (attrMeta.enum && attrMeta.enum.length > 0) {
|
|
260
|
+
lines.push('');
|
|
261
|
+
lines.push(`**Valid Values**: ${attrMeta.enum.map(v => `\`${v}\``).join(', ')}`);
|
|
262
|
+
}
|
|
263
|
+
if (attrMeta.default !== undefined) {
|
|
264
|
+
lines.push('');
|
|
265
|
+
lines.push(`**Default**: ${JSON.stringify(attrMeta.default)}`);
|
|
266
|
+
}
|
|
267
|
+
return lines.join('\n');
|
|
268
|
+
}
|
|
269
|
+
function handleRequiresReplace(input, format) {
|
|
270
|
+
const { resource } = input;
|
|
271
|
+
if (!resource) {
|
|
272
|
+
return formatError('Missing parameter', 'resource parameter is required for requires_replace operation', format);
|
|
273
|
+
}
|
|
274
|
+
const attrs = getRequiresReplaceAttributes(resource);
|
|
275
|
+
const required = getRequiredAttributes(resource);
|
|
276
|
+
if (format === ResponseFormat.JSON) {
|
|
277
|
+
return JSON.stringify({
|
|
278
|
+
operation: 'requires_replace',
|
|
279
|
+
resource,
|
|
280
|
+
requires_replace_attributes: attrs,
|
|
281
|
+
required_attributes: required,
|
|
282
|
+
}, null, 2);
|
|
283
|
+
}
|
|
284
|
+
const lines = [
|
|
285
|
+
`# Important Attributes: ${resource}`,
|
|
286
|
+
'',
|
|
287
|
+
'## Requires Replacement',
|
|
288
|
+
'',
|
|
289
|
+
'Changing these attributes will destroy and recreate the resource:',
|
|
290
|
+
'',
|
|
291
|
+
];
|
|
292
|
+
if (attrs.length > 0) {
|
|
293
|
+
for (const attr of attrs) {
|
|
294
|
+
lines.push(`- \`${attr}\``);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
lines.push('*No attributes require replacement.*');
|
|
299
|
+
}
|
|
300
|
+
lines.push('');
|
|
301
|
+
lines.push('## Required Attributes');
|
|
302
|
+
lines.push('');
|
|
303
|
+
lines.push('These attributes must be specified:');
|
|
304
|
+
lines.push('');
|
|
305
|
+
for (const attr of required) {
|
|
306
|
+
lines.push(`- \`${attr}\``);
|
|
307
|
+
}
|
|
308
|
+
return lines.join('\n');
|
|
309
|
+
}
|
|
310
|
+
function handleTier(input, format) {
|
|
311
|
+
const { resource, tier } = input;
|
|
312
|
+
// If resource specified, return tier for that resource
|
|
313
|
+
if (resource) {
|
|
314
|
+
const resourceTier = getResourceTier(resource);
|
|
315
|
+
const importFormat = getResourceImportFormat(resource);
|
|
316
|
+
if (!resourceTier) {
|
|
317
|
+
return formatNoData('Tier not found', `Resource '${resource}' does not have tier information in metadata.`, format);
|
|
318
|
+
}
|
|
319
|
+
if (format === ResponseFormat.JSON) {
|
|
320
|
+
return JSON.stringify({
|
|
321
|
+
operation: 'tier',
|
|
322
|
+
resource,
|
|
323
|
+
tier: resourceTier,
|
|
324
|
+
import_format: importFormat,
|
|
325
|
+
}, null, 2);
|
|
326
|
+
}
|
|
327
|
+
const lines = [
|
|
328
|
+
`# Subscription Tier: ${resource}`,
|
|
329
|
+
'',
|
|
330
|
+
`**Tier**: ${resourceTier}`,
|
|
331
|
+
`**Import Format**: \`${importFormat || 'unknown'}\``,
|
|
332
|
+
'',
|
|
333
|
+
'## Tier Descriptions',
|
|
334
|
+
'',
|
|
335
|
+
'- **STANDARD**: Included with base F5 XC subscription',
|
|
336
|
+
'- **ADVANCED**: Requires Advanced tier subscription',
|
|
337
|
+
'- **PREMIUM**: Requires Premium tier subscription',
|
|
338
|
+
];
|
|
339
|
+
return lines.join('\n');
|
|
340
|
+
}
|
|
341
|
+
// If tier specified, return all resources with that tier
|
|
342
|
+
if (tier) {
|
|
343
|
+
const resources = getResourcesByTier(tier);
|
|
344
|
+
if (resources.length === 0) {
|
|
345
|
+
return formatNoData('No resources found', `No resources found requiring tier '${tier}'.`, format);
|
|
346
|
+
}
|
|
347
|
+
if (format === ResponseFormat.JSON) {
|
|
348
|
+
return JSON.stringify({
|
|
349
|
+
operation: 'tier',
|
|
350
|
+
tier,
|
|
351
|
+
resources,
|
|
352
|
+
total: resources.length,
|
|
353
|
+
}, null, 2);
|
|
354
|
+
}
|
|
355
|
+
const lines = [
|
|
356
|
+
`# Resources Requiring ${tier} Tier`,
|
|
357
|
+
'',
|
|
358
|
+
`Total: ${resources.length} resources`,
|
|
359
|
+
'',
|
|
360
|
+
'| Resource |',
|
|
361
|
+
'|----------|',
|
|
362
|
+
];
|
|
363
|
+
for (const res of resources) {
|
|
364
|
+
lines.push(`| ${res} |`);
|
|
365
|
+
}
|
|
366
|
+
return lines.join('\n');
|
|
367
|
+
}
|
|
368
|
+
// No resource or tier specified - return summary of tiers
|
|
369
|
+
const summary = getEnhancedMetadataSummary();
|
|
370
|
+
if (format === ResponseFormat.JSON) {
|
|
371
|
+
return JSON.stringify({
|
|
372
|
+
operation: 'tier',
|
|
373
|
+
tier_distribution: summary.resourcesWithTier,
|
|
374
|
+
total_resources: summary.resourceCount,
|
|
375
|
+
}, null, 2);
|
|
376
|
+
}
|
|
377
|
+
const lines = [
|
|
378
|
+
'# Subscription Tier Distribution',
|
|
379
|
+
'',
|
|
380
|
+
'| Tier | Resource Count |',
|
|
381
|
+
'|------|----------------|',
|
|
382
|
+
];
|
|
383
|
+
for (const [tierName, count] of Object.entries(summary.resourcesWithTier)) {
|
|
384
|
+
lines.push(`| ${tierName} | ${count} |`);
|
|
385
|
+
}
|
|
386
|
+
lines.push('');
|
|
387
|
+
lines.push(`Total resources: ${summary.resourceCount}`);
|
|
388
|
+
lines.push('');
|
|
389
|
+
lines.push('Use `resource` parameter to check a specific resource, or `tier` parameter to list resources by tier.');
|
|
390
|
+
return lines.join('\n');
|
|
391
|
+
}
|
|
392
|
+
function handleDependencies(input, format) {
|
|
393
|
+
const { resource } = input;
|
|
394
|
+
if (!resource) {
|
|
395
|
+
return formatError('Missing parameter', 'resource parameter is required for dependencies operation', format);
|
|
396
|
+
}
|
|
397
|
+
const dependencies = getResourceDependencies(resource);
|
|
398
|
+
const creationOrder = computeCreationOrder(resource);
|
|
399
|
+
const importFormat = getResourceImportFormat(resource);
|
|
400
|
+
if (format === ResponseFormat.JSON) {
|
|
401
|
+
return JSON.stringify({
|
|
402
|
+
operation: 'dependencies',
|
|
403
|
+
resource,
|
|
404
|
+
import_format: importFormat,
|
|
405
|
+
dependencies: dependencies || { references: [], referenced_by: [] },
|
|
406
|
+
creation_order: creationOrder,
|
|
407
|
+
}, null, 2);
|
|
408
|
+
}
|
|
409
|
+
const lines = [
|
|
410
|
+
`# Dependencies: ${resource}`,
|
|
411
|
+
'',
|
|
412
|
+
`**Import Format**: \`${importFormat || 'unknown'}\``,
|
|
413
|
+
'',
|
|
414
|
+
];
|
|
415
|
+
if (dependencies?.references && dependencies.references.length > 0) {
|
|
416
|
+
lines.push('## Required Dependencies');
|
|
417
|
+
lines.push('');
|
|
418
|
+
lines.push('This resource depends on:');
|
|
419
|
+
lines.push('');
|
|
420
|
+
for (const dep of dependencies.references) {
|
|
421
|
+
lines.push(`- \`${dep}\``);
|
|
422
|
+
}
|
|
423
|
+
lines.push('');
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
lines.push('## Required Dependencies');
|
|
427
|
+
lines.push('');
|
|
428
|
+
lines.push('*No dependencies detected.*');
|
|
429
|
+
lines.push('');
|
|
430
|
+
}
|
|
431
|
+
if (dependencies?.referenced_by && dependencies.referenced_by.length > 0) {
|
|
432
|
+
lines.push('## Referenced By');
|
|
433
|
+
lines.push('');
|
|
434
|
+
lines.push('This resource is used by:');
|
|
435
|
+
lines.push('');
|
|
436
|
+
for (const ref of dependencies.referenced_by) {
|
|
437
|
+
lines.push(`- \`${ref}\``);
|
|
438
|
+
}
|
|
439
|
+
lines.push('');
|
|
440
|
+
}
|
|
441
|
+
lines.push('## Creation Order');
|
|
442
|
+
lines.push('');
|
|
443
|
+
lines.push('Create resources in this order:');
|
|
444
|
+
lines.push('');
|
|
445
|
+
for (let i = 0; i < creationOrder.length; i++) {
|
|
446
|
+
lines.push(`${i + 1}. \`${creationOrder[i]}\``);
|
|
447
|
+
}
|
|
448
|
+
return lines.join('\n');
|
|
449
|
+
}
|
|
450
|
+
function handleTroubleshoot(input, format) {
|
|
451
|
+
const { error_code, error_message } = input;
|
|
452
|
+
// If error_code specified, return that error's info
|
|
453
|
+
if (error_code) {
|
|
454
|
+
const errorInfo = getErrorCodeInfo(error_code);
|
|
455
|
+
if (!errorInfo) {
|
|
456
|
+
const availableCodes = Object.keys(getAllErrorCodes());
|
|
457
|
+
return formatError('Error code not found', `Error code '${error_code}' not found. Available: ${availableCodes.join(', ')}`, format);
|
|
458
|
+
}
|
|
459
|
+
if (format === ResponseFormat.JSON) {
|
|
460
|
+
return JSON.stringify({
|
|
461
|
+
operation: 'troubleshoot',
|
|
462
|
+
error_code,
|
|
463
|
+
...errorInfo,
|
|
464
|
+
}, null, 2);
|
|
465
|
+
}
|
|
466
|
+
const lines = [
|
|
467
|
+
`# Error: ${error_code}`,
|
|
468
|
+
'',
|
|
469
|
+
`**HTTP Status**: ${errorInfo.status}`,
|
|
470
|
+
'',
|
|
471
|
+
'## Common Causes',
|
|
472
|
+
'',
|
|
473
|
+
];
|
|
474
|
+
for (const cause of errorInfo.causes) {
|
|
475
|
+
lines.push(`- ${cause}`);
|
|
476
|
+
}
|
|
477
|
+
lines.push('');
|
|
478
|
+
lines.push('## Remediation Steps');
|
|
479
|
+
lines.push('');
|
|
480
|
+
for (const step of errorInfo.remediation) {
|
|
481
|
+
lines.push(`- ${step}`);
|
|
482
|
+
}
|
|
483
|
+
lines.push('');
|
|
484
|
+
lines.push(`**Affected Operations**: ${errorInfo.operations.join(', ')}`);
|
|
485
|
+
return lines.join('\n');
|
|
486
|
+
}
|
|
487
|
+
// If error_message specified, try pattern matching
|
|
488
|
+
if (error_message) {
|
|
489
|
+
const match = findErrorByPattern(error_message);
|
|
490
|
+
if (!match) {
|
|
491
|
+
return formatNoData('No pattern match', `Could not find a matching error pattern for: "${error_message.slice(0, 100)}..."`, format);
|
|
492
|
+
}
|
|
493
|
+
if (format === ResponseFormat.JSON) {
|
|
494
|
+
return JSON.stringify({
|
|
495
|
+
operation: 'troubleshoot',
|
|
496
|
+
matched_pattern: match.name,
|
|
497
|
+
...match.info,
|
|
498
|
+
}, null, 2);
|
|
499
|
+
}
|
|
500
|
+
const lines = [
|
|
501
|
+
`# Matched Pattern: ${match.name}`,
|
|
502
|
+
'',
|
|
503
|
+
`**Pattern**: \`${match.info.pattern}\``,
|
|
504
|
+
'',
|
|
505
|
+
`**Cause**: ${match.info.cause}`,
|
|
506
|
+
'',
|
|
507
|
+
`**Remediation**: ${match.info.remediation}`,
|
|
508
|
+
];
|
|
509
|
+
return lines.join('\n');
|
|
510
|
+
}
|
|
511
|
+
// No error specified - return all error codes and tips
|
|
512
|
+
const allErrors = getAllErrorCodes();
|
|
513
|
+
const tips = getDiagnosticTips();
|
|
514
|
+
if (format === ResponseFormat.JSON) {
|
|
515
|
+
return JSON.stringify({
|
|
516
|
+
operation: 'troubleshoot',
|
|
517
|
+
error_codes: allErrors,
|
|
518
|
+
diagnostic_tips: tips,
|
|
519
|
+
total_codes: Object.keys(allErrors).length,
|
|
520
|
+
}, null, 2);
|
|
521
|
+
}
|
|
522
|
+
const lines = [
|
|
523
|
+
'# Error Troubleshooting Guide',
|
|
524
|
+
'',
|
|
525
|
+
'## Error Codes',
|
|
526
|
+
'',
|
|
527
|
+
'| Code | Status | Primary Cause |',
|
|
528
|
+
'|------|--------|---------------|',
|
|
529
|
+
];
|
|
530
|
+
for (const [code, info] of Object.entries(allErrors)) {
|
|
531
|
+
lines.push(`| ${code} | ${info.status} | ${info.causes[0]} |`);
|
|
532
|
+
}
|
|
533
|
+
lines.push('');
|
|
534
|
+
lines.push('## Diagnostic Tips');
|
|
535
|
+
lines.push('');
|
|
536
|
+
for (const [key, tip] of Object.entries(tips)) {
|
|
537
|
+
lines.push(`- **${key}**: ${tip}`);
|
|
538
|
+
}
|
|
539
|
+
lines.push('');
|
|
540
|
+
lines.push('Use `error_code` parameter for detailed info, or `error_message` for pattern matching.');
|
|
541
|
+
return lines.join('\n');
|
|
542
|
+
}
|
|
543
|
+
function handleSummary(format) {
|
|
544
|
+
const summary = getEnhancedMetadataSummary();
|
|
545
|
+
const resources = listResourcesWithMetadata();
|
|
546
|
+
if (format === ResponseFormat.JSON) {
|
|
547
|
+
return JSON.stringify({
|
|
548
|
+
operation: 'summary',
|
|
549
|
+
...summary,
|
|
550
|
+
sample_resources: resources.slice(0, 20),
|
|
551
|
+
}, null, 2);
|
|
552
|
+
}
|
|
553
|
+
const lines = [
|
|
554
|
+
'# Metadata Summary',
|
|
555
|
+
'',
|
|
556
|
+
'| Metric | Value |',
|
|
557
|
+
'|--------|-------|',
|
|
558
|
+
`| Resources with Metadata | ${summary.resourceCount} |`,
|
|
559
|
+
`| Resources with OneOf Groups | ${summary.resourcesWithOneOf} |`,
|
|
560
|
+
`| Resources with Dependencies | ${summary.resourcesWithDependencies} |`,
|
|
561
|
+
`| Validation Patterns | ${summary.validationPatternCount} |`,
|
|
562
|
+
`| Error Codes Indexed | ${summary.errorCodeCount} |`,
|
|
563
|
+
`| Generated At | ${summary.generatedAt || 'Unknown'} |`,
|
|
564
|
+
'',
|
|
565
|
+
'## Tier Distribution',
|
|
566
|
+
'',
|
|
567
|
+
'| Tier | Count |',
|
|
568
|
+
'|------|-------|',
|
|
569
|
+
];
|
|
570
|
+
for (const [tierName, count] of Object.entries(summary.resourcesWithTier)) {
|
|
571
|
+
lines.push(`| ${tierName} | ${count} |`);
|
|
572
|
+
}
|
|
573
|
+
lines.push('');
|
|
574
|
+
lines.push('## Available Operations');
|
|
575
|
+
lines.push('');
|
|
576
|
+
lines.push('| Operation | Description |');
|
|
577
|
+
lines.push('|-----------|-------------|');
|
|
578
|
+
lines.push('| `oneof` | Get mutually exclusive field groups for a resource |');
|
|
579
|
+
lines.push('| `validation` | Get validation patterns (regex/range rules) |');
|
|
580
|
+
lines.push('| `defaults` | Get default values for a resource |');
|
|
581
|
+
lines.push('| `enums` | Get enum constraints for a resource |');
|
|
582
|
+
lines.push('| `attribute` | Get full metadata for a specific attribute |');
|
|
583
|
+
lines.push('| `requires_replace` | Get attributes that trigger resource replacement |');
|
|
584
|
+
lines.push('| `tier` | Get subscription tier requirements for resources |');
|
|
585
|
+
lines.push('| `dependencies` | Get resource dependencies and creation order |');
|
|
586
|
+
lines.push('| `troubleshoot` | Get error codes, causes, and remediation steps |');
|
|
587
|
+
lines.push('| `summary` | This summary |');
|
|
588
|
+
return lines.join('\n');
|
|
589
|
+
}
|
|
590
|
+
// =============================================================================
|
|
591
|
+
// HELPERS
|
|
592
|
+
// =============================================================================
|
|
593
|
+
function formatError(title, message, format) {
|
|
594
|
+
if (format === ResponseFormat.JSON) {
|
|
595
|
+
return JSON.stringify({ error: title, message }, null, 2);
|
|
596
|
+
}
|
|
597
|
+
return `# Error: ${title}\n\n${message}`;
|
|
598
|
+
}
|
|
599
|
+
function formatNoData(title, message, format) {
|
|
600
|
+
if (format === ResponseFormat.JSON) {
|
|
601
|
+
return JSON.stringify({ info: title, message }, null, 2);
|
|
602
|
+
}
|
|
603
|
+
return `# ${title}\n\n${message}`;
|
|
604
|
+
}
|
|
605
|
+
// =============================================================================
|
|
606
|
+
// TOOL DEFINITION
|
|
607
|
+
// =============================================================================
|
|
608
|
+
export const METADATA_TOOL_DEFINITION = {
|
|
609
|
+
name: 'f5xc_terraform_metadata',
|
|
610
|
+
description: 'Query resource metadata for deterministic Terraform configuration generation. Operations: oneof (mutually exclusive fields), validation (regex/range patterns), defaults, enums, attribute (full metadata), requires_replace, tier (subscription requirements), dependencies (creation order), troubleshoot (error remediation), summary.',
|
|
611
|
+
};
|
|
612
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/tools/metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
export interface ResourceDoc {
|
|
5
5
|
name: string;
|
|
6
6
|
path: string;
|
|
7
|
-
type: 'resource' | 'data-source' | 'function' | 'guide';
|
|
7
|
+
type: 'resource' | 'data-source' | 'function' | 'guide' | 'provider';
|
|
8
8
|
content?: string;
|
|
9
9
|
subscriptionTier?: SubscriptionTier;
|
|
10
10
|
addonService?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|