@robinmordasiewicz/f5xc-api-mcp 1.0.82-2601020142 → 1.0.84-2601020313
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/auth/credential-manager.d.ts.map +1 -1
- package/dist/auth/credential-manager.js.map +1 -1
- package/dist/generator/dependency-extractor.d.ts +18 -6
- package/dist/generator/dependency-extractor.d.ts.map +1 -1
- package/dist/generator/dependency-extractor.js +108 -44
- package/dist/generator/dependency-extractor.js.map +1 -1
- package/dist/generator/domain-metadata.d.ts +168 -0
- package/dist/generator/domain-metadata.d.ts.map +1 -0
- package/dist/generator/domain-metadata.js +257 -0
- package/dist/generator/domain-metadata.js.map +1 -0
- package/dist/generator/index.d.ts +1 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +1 -0
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/tool-generator.d.ts +7 -0
- package/dist/generator/tool-generator.d.ts.map +1 -1
- package/dist/generator/tool-generator.js +87 -33
- package/dist/generator/tool-generator.js.map +1 -1
- package/dist/resources/handlers.d.ts +1 -0
- package/dist/resources/handlers.d.ts.map +1 -1
- package/dist/resources/handlers.js +4 -2
- package/dist/resources/handlers.js.map +1 -1
- package/dist/resources/index.d.ts +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +1 -1
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/templates.d.ts +20 -0
- package/dist/resources/templates.d.ts.map +1 -1
- package/dist/resources/templates.js +89 -0
- package/dist/resources/templates.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +19 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/configure-auth.d.ts +75 -0
- package/dist/tools/configure-auth.d.ts.map +1 -0
- package/dist/tools/configure-auth.js +197 -0
- package/dist/tools/configure-auth.js.map +1 -0
- package/dist/tools/discovery/index-loader.d.ts +1 -0
- package/dist/tools/discovery/index-loader.d.ts.map +1 -1
- package/dist/tools/discovery/index-loader.js +28 -10
- package/dist/tools/discovery/index-loader.js.map +1 -1
- package/dist/tools/discovery/search.d.ts.map +1 -1
- package/dist/tools/discovery/search.js +15 -4
- package/dist/tools/discovery/search.js.map +1 -1
- package/dist/tools/discovery/types.d.ts +25 -2
- package/dist/tools/discovery/types.d.ts.map +1 -1
- package/dist/tools/generated/billing_and_usage/index.js +3 -3
- package/dist/tools/generated/billing_and_usage/index.js.map +1 -1
- package/dist/tools/generated/blindfold/index.d.ts.map +1 -1
- package/dist/tools/generated/blindfold/index.js +451 -35
- package/dist/tools/generated/blindfold/index.js.map +1 -1
- package/dist/tools/generated/cdn/index.js +3 -3
- package/dist/tools/generated/cdn/index.js.map +1 -1
- package/dist/tools/generated/certificates/index.js +3 -3
- package/dist/tools/generated/certificates/index.js.map +1 -1
- package/dist/tools/generated/cloud_infrastructure/index.js +3 -3
- package/dist/tools/generated/cloud_infrastructure/index.js.map +1 -1
- package/dist/tools/generated/container_services/index.js +6 -6
- package/dist/tools/generated/container_services/index.js.map +1 -1
- package/dist/tools/generated/data_and_privacy_security/index.d.ts.map +1 -1
- package/dist/tools/generated/data_and_privacy_security/index.js +73 -8
- package/dist/tools/generated/data_and_privacy_security/index.js.map +1 -1
- package/dist/tools/generated/dependency-graph.json +677 -331
- package/dist/tools/generated/dns/index.js +6 -6
- package/dist/tools/generated/dns/index.js.map +1 -1
- package/dist/tools/generated/managed_kubernetes/index.js +6 -6
- package/dist/tools/generated/managed_kubernetes/index.js.map +1 -1
- package/dist/tools/generated/network/index.js +6 -6
- package/dist/tools/generated/network/index.js.map +1 -1
- package/dist/tools/generated/network_security/index.d.ts.map +1 -1
- package/dist/tools/generated/network_security/index.js +268 -328
- package/dist/tools/generated/network_security/index.js.map +1 -1
- package/dist/tools/generated/rate_limiting/index.js +3 -3
- package/dist/tools/generated/rate_limiting/index.js.map +1 -1
- package/dist/tools/generated/service_mesh/index.js +39 -39
- package/dist/tools/generated/service_mesh/index.js.map +1 -1
- package/dist/tools/generated/sites/index.d.ts.map +1 -1
- package/dist/tools/generated/sites/index.js +15 -39
- package/dist/tools/generated/sites/index.js.map +1 -1
- package/dist/tools/generated/statistics/index.d.ts.map +1 -1
- package/dist/tools/generated/statistics/index.js +6 -30
- package/dist/tools/generated/statistics/index.js.map +1 -1
- package/dist/tools/generated/virtual/index.js +12 -12
- package/dist/tools/generated/virtual/index.js.map +1 -1
- package/dist/utils/error-handling.d.ts.map +1 -1
- package/dist/utils/error-handling.js +2 -1
- package/dist/utils/error-handling.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure Auth Tool - MCP tool for authentication management
|
|
3
|
+
*
|
|
4
|
+
* Provides actions:
|
|
5
|
+
* - status: Check current authentication state
|
|
6
|
+
* - configure: Save credentials to xcsh profile
|
|
7
|
+
* - list-profiles: List available profiles
|
|
8
|
+
* - set-active: Switch active profile
|
|
9
|
+
*/
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { getProfileManager } from "../profile/index.js";
|
|
12
|
+
/**
|
|
13
|
+
* Tool name constant
|
|
14
|
+
*/
|
|
15
|
+
export const CONFIGURE_AUTH_TOOL = {
|
|
16
|
+
name: "f5xc-api-configure-auth",
|
|
17
|
+
description: "Configure F5XC API authentication. Check status, save credentials to xcsh profile, list profiles, or switch active profile.",
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Input schema for the configure-auth tool
|
|
21
|
+
*/
|
|
22
|
+
export const configureAuthSchema = {
|
|
23
|
+
action: z
|
|
24
|
+
.enum(["status", "configure", "list-profiles", "set-active"])
|
|
25
|
+
.optional()
|
|
26
|
+
.default("status")
|
|
27
|
+
.describe("Action to perform (default: status)"),
|
|
28
|
+
tenantUrl: z
|
|
29
|
+
.string()
|
|
30
|
+
.optional()
|
|
31
|
+
.describe("F5XC tenant URL (e.g., https://tenant.console.ves.volterra.io)"),
|
|
32
|
+
apiToken: z.string().optional().describe("API token for authentication"),
|
|
33
|
+
profileName: z
|
|
34
|
+
.string()
|
|
35
|
+
.optional()
|
|
36
|
+
.default("default")
|
|
37
|
+
.describe("Profile name (default: 'default')"),
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Handle the configure-auth tool invocation
|
|
41
|
+
*/
|
|
42
|
+
export async function handleConfigureAuth(args, credentialManager) {
|
|
43
|
+
const action = args.action ?? "status";
|
|
44
|
+
const profileManager = getProfileManager();
|
|
45
|
+
switch (action) {
|
|
46
|
+
case "status":
|
|
47
|
+
return handleStatus(credentialManager, profileManager);
|
|
48
|
+
case "configure":
|
|
49
|
+
return handleConfigure(args, credentialManager, profileManager);
|
|
50
|
+
case "list-profiles":
|
|
51
|
+
return handleListProfiles(profileManager);
|
|
52
|
+
case "set-active":
|
|
53
|
+
return handleSetActive(args.profileName ?? "default", credentialManager, profileManager);
|
|
54
|
+
default:
|
|
55
|
+
return {
|
|
56
|
+
success: false,
|
|
57
|
+
profileName: "",
|
|
58
|
+
message: `Unknown action: ${action}`,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Handle status action
|
|
64
|
+
*/
|
|
65
|
+
async function handleStatus(credentialManager, profileManager) {
|
|
66
|
+
const isAuthenticated = credentialManager.isAuthenticated();
|
|
67
|
+
const authMode = credentialManager.getAuthMode();
|
|
68
|
+
const tenantUrl = credentialManager.getApiUrl();
|
|
69
|
+
const activeProfile = credentialManager.getActiveProfile();
|
|
70
|
+
// Get list of available profiles
|
|
71
|
+
const profiles = await profileManager.list();
|
|
72
|
+
const profileNames = profiles.map((p) => p.name);
|
|
73
|
+
if (isAuthenticated) {
|
|
74
|
+
return {
|
|
75
|
+
authenticated: true,
|
|
76
|
+
mode: "execution",
|
|
77
|
+
authMethod: authMode,
|
|
78
|
+
tenantUrl,
|
|
79
|
+
activeProfile,
|
|
80
|
+
profiles: profileNames,
|
|
81
|
+
message: activeProfile
|
|
82
|
+
? `Authenticated via xcsh profile '${activeProfile}'. API execution enabled.`
|
|
83
|
+
: "Authenticated via environment variables. API execution enabled.",
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
authenticated: false,
|
|
88
|
+
mode: "documentation",
|
|
89
|
+
authMethod: "none",
|
|
90
|
+
tenantUrl: null,
|
|
91
|
+
activeProfile: null,
|
|
92
|
+
profiles: profileNames,
|
|
93
|
+
message: profileNames.length > 0
|
|
94
|
+
? `No active profile. Available profiles: ${profileNames.join(", ")}. Use action='set-active' to activate one, or action='configure' to create a new profile.`
|
|
95
|
+
: "No credentials configured. Use action='configure' with tenantUrl and apiToken to authenticate.",
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Handle configure action
|
|
100
|
+
*/
|
|
101
|
+
async function handleConfigure(args, credentialManager, profileManager) {
|
|
102
|
+
const { tenantUrl, apiToken, profileName = "default" } = args;
|
|
103
|
+
// Validate required fields
|
|
104
|
+
if (!tenantUrl) {
|
|
105
|
+
return {
|
|
106
|
+
success: false,
|
|
107
|
+
profileName,
|
|
108
|
+
message: "Missing required parameter: tenantUrl",
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
if (!apiToken) {
|
|
112
|
+
return {
|
|
113
|
+
success: false,
|
|
114
|
+
profileName,
|
|
115
|
+
message: "Missing required parameter: apiToken",
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// Create profile object
|
|
119
|
+
const profile = {
|
|
120
|
+
name: profileName,
|
|
121
|
+
apiUrl: tenantUrl,
|
|
122
|
+
apiToken,
|
|
123
|
+
};
|
|
124
|
+
// Save the profile
|
|
125
|
+
const result = await profileManager.save(profile);
|
|
126
|
+
if (!result.success) {
|
|
127
|
+
return {
|
|
128
|
+
success: false,
|
|
129
|
+
profileName,
|
|
130
|
+
message: result.message,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
// Set as active profile
|
|
134
|
+
const activeResult = await profileManager.setActive(profileName);
|
|
135
|
+
if (!activeResult.success) {
|
|
136
|
+
return {
|
|
137
|
+
success: false,
|
|
138
|
+
profileName,
|
|
139
|
+
message: `Profile saved but failed to set as active: ${activeResult.message}`,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// Reload credentials to pick up the new profile
|
|
143
|
+
await credentialManager.reload();
|
|
144
|
+
return {
|
|
145
|
+
success: true,
|
|
146
|
+
profileName,
|
|
147
|
+
message: `Credentials saved to profile '${profileName}' and set as active. API execution is now enabled.`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Handle list-profiles action
|
|
152
|
+
*/
|
|
153
|
+
async function handleListProfiles(profileManager) {
|
|
154
|
+
const profiles = await profileManager.list();
|
|
155
|
+
const activeProfileName = await profileManager.getActive();
|
|
156
|
+
const profileList = profiles.map((p) => {
|
|
157
|
+
// Determine auth method
|
|
158
|
+
let authMethod = "none";
|
|
159
|
+
if (p.apiToken)
|
|
160
|
+
authMethod = "token";
|
|
161
|
+
else if (p.p12Bundle)
|
|
162
|
+
authMethod = "p12";
|
|
163
|
+
else if (p.cert && p.key)
|
|
164
|
+
authMethod = "certificate";
|
|
165
|
+
return {
|
|
166
|
+
name: p.name,
|
|
167
|
+
isActive: p.name === activeProfileName,
|
|
168
|
+
tenantUrl: p.apiUrl,
|
|
169
|
+
authMethod,
|
|
170
|
+
};
|
|
171
|
+
});
|
|
172
|
+
return {
|
|
173
|
+
profiles: profileList,
|
|
174
|
+
activeProfile: activeProfileName,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Handle set-active action
|
|
179
|
+
*/
|
|
180
|
+
async function handleSetActive(profileName, credentialManager, profileManager) {
|
|
181
|
+
const result = await profileManager.setActive(profileName);
|
|
182
|
+
if (!result.success) {
|
|
183
|
+
return {
|
|
184
|
+
success: false,
|
|
185
|
+
profileName,
|
|
186
|
+
message: result.message,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
// Reload credentials to use the new active profile
|
|
190
|
+
await credentialManager.reload();
|
|
191
|
+
return {
|
|
192
|
+
success: true,
|
|
193
|
+
profileName,
|
|
194
|
+
message: `Switched to profile '${profileName}'. Credentials reloaded.`,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=configure-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-auth.js","sourceRoot":"","sources":["../../src/tools/configure-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Loads and caches the lightweight tool index for discovery.
|
|
5
5
|
* Generates the index from existing tool registry on first load.
|
|
6
|
+
* Enriches entries with domain metadata from upstream specs.
|
|
6
7
|
*/
|
|
7
8
|
import type { ToolIndex, ToolIndexEntry, ToolIndexMetadata } from "./types.js";
|
|
8
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-loader.d.ts","sourceRoot":"","sources":["../../../src/tools/discovery/index-loader.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index-loader.d.ts","sourceRoot":"","sources":["../../../src/tools/discovery/index-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAwD/E;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAKxC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,iBAAiB,CAEpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAGzE"}
|
|
@@ -3,24 +3,42 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Loads and caches the lightweight tool index for discovery.
|
|
5
5
|
* Generates the index from existing tool registry on first load.
|
|
6
|
+
* Enriches entries with domain metadata from upstream specs.
|
|
6
7
|
*/
|
|
7
8
|
import { allTools } from "../registry.js";
|
|
9
|
+
import { getDomainMetadata, getResourceMetadata } from "../../generator/domain-metadata.js";
|
|
8
10
|
// Cached index for performance
|
|
9
11
|
let cachedIndex = null;
|
|
10
12
|
/**
|
|
11
13
|
* Generate tool index from the existing tool registry
|
|
14
|
+
* Enriches each entry with domain and resource metadata from upstream specs (v1.0.84+)
|
|
12
15
|
*/
|
|
13
16
|
function generateIndex() {
|
|
14
|
-
const tools = allTools.map((tool) =>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
const tools = allTools.map((tool) => {
|
|
18
|
+
const domainMeta = getDomainMetadata(tool.domain);
|
|
19
|
+
// Get resource-level metadata (v1.0.84+)
|
|
20
|
+
const normalizedResource = tool.resource.replace(/-/g, "_");
|
|
21
|
+
const resourceMeta = getResourceMetadata(normalizedResource);
|
|
22
|
+
return {
|
|
23
|
+
name: tool.toolName,
|
|
24
|
+
domain: tool.domain,
|
|
25
|
+
resource: tool.resource,
|
|
26
|
+
operation: tool.operation,
|
|
27
|
+
summary: tool.summary,
|
|
28
|
+
dangerLevel: tool.dangerLevel ?? "low",
|
|
29
|
+
// Note: isDeprecated not yet extracted from x-ves-deprecated in parser
|
|
30
|
+
isDeprecated: false,
|
|
31
|
+
// Domain metadata from upstream specs
|
|
32
|
+
domainCategory: domainMeta?.domainCategory ?? null,
|
|
33
|
+
uiCategory: domainMeta?.uiCategory ?? null,
|
|
34
|
+
// Resource-level metadata from upstream specs (v1.0.84+)
|
|
35
|
+
resourceIcon: resourceMeta?.icon ?? null,
|
|
36
|
+
resourceCategory: resourceMeta?.category ?? null,
|
|
37
|
+
supportsLogs: resourceMeta?.supportsLogs ?? false,
|
|
38
|
+
supportsMetrics: resourceMeta?.supportsMetrics ?? false,
|
|
39
|
+
resourceTier: resourceMeta?.tier ?? null,
|
|
40
|
+
};
|
|
41
|
+
});
|
|
24
42
|
// Calculate domain counts
|
|
25
43
|
const domains = {};
|
|
26
44
|
for (const tool of tools) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-loader.js","sourceRoot":"","sources":["../../../src/tools/discovery/index-loader.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index-loader.js","sourceRoot":"","sources":["../../../src/tools/discovery/index-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/tools/discovery/search.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/tools/discovery/search.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAkG9E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,YAAY,EAAE,CA+EtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAGjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAIrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAG9C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAG7D"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { getToolIndex } from "./index-loader.js";
|
|
8
8
|
import { getPrerequisiteResources } from "./dependencies.js";
|
|
9
|
+
import { getResourceMetadata } from "../../generator/domain-metadata.js";
|
|
9
10
|
/**
|
|
10
11
|
* Normalize text for search matching
|
|
11
12
|
*/
|
|
@@ -126,13 +127,23 @@ export function searchTools(query, options = {}) {
|
|
|
126
127
|
if (score >= minScore) {
|
|
127
128
|
const result = { tool, score, matchedTerms };
|
|
128
129
|
// Phase B: Add prerequisite hints for create operations
|
|
130
|
+
// Enhanced with v1.0.84+ upstream dependency metadata
|
|
129
131
|
if (includeDependencies && tool.operation === "create") {
|
|
130
132
|
const prereqs = getPrerequisiteResources(tool.domain, tool.resource);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
+
const resourceNames = prereqs.map((p) => `${p.domain}/${p.resourceType}`);
|
|
134
|
+
// Get rich dependency data from upstream specs (v1.0.84+)
|
|
135
|
+
const normalizedResource = tool.resource.replace(/-/g, "_");
|
|
136
|
+
const resourceMeta = getResourceMetadata(normalizedResource);
|
|
137
|
+
if (prereqs.length > 0 || resourceMeta) {
|
|
133
138
|
result.prerequisites = {
|
|
134
|
-
resources: resourceNames,
|
|
135
|
-
hint:
|
|
139
|
+
resources: resourceNames.length > 0 ? resourceNames : [],
|
|
140
|
+
hint: prereqs.length > 0
|
|
141
|
+
? `To create ${tool.resource}, you first need: ${prereqs.map((p) => p.resourceType).join(", ")}`
|
|
142
|
+
: `No strict prerequisites for ${tool.resource}`,
|
|
143
|
+
// v1.0.84+ rich metadata fields
|
|
144
|
+
required: resourceMeta?.dependencies.required ?? [],
|
|
145
|
+
optional: resourceMeta?.dependencies.optional ?? [],
|
|
146
|
+
relationshipHints: resourceMeta?.relationshipHints ?? [],
|
|
136
147
|
};
|
|
137
148
|
}
|
|
138
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/discovery/search.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/discovery/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,15 @@
|
|
|
6
6
|
* preserving essential information for tool discovery.
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
|
-
* Lightweight tool index entry (~
|
|
9
|
+
* Lightweight tool index entry (~60 tokens vs ~375 for full ParsedOperation)
|
|
10
10
|
* Contains only the minimum information needed for search/discovery.
|
|
11
|
+
* Includes domain metadata from upstream specs for enhanced filtering.
|
|
12
|
+
* Enhanced with v1.0.84+ resource-level metadata.
|
|
11
13
|
*/
|
|
12
14
|
export interface ToolIndexEntry {
|
|
13
15
|
/** Tool name (e.g., "f5xc-api-waap-http-loadbalancer-create") */
|
|
14
16
|
name: string;
|
|
15
|
-
/** Domain
|
|
17
|
+
/** Domain identifier (e.g., "waf", "dns", "network") */
|
|
16
18
|
domain: string;
|
|
17
19
|
/** Resource type (e.g., "http-loadbalancer") */
|
|
18
20
|
resource: string;
|
|
@@ -24,15 +26,36 @@ export interface ToolIndexEntry {
|
|
|
24
26
|
dangerLevel: "low" | "medium" | "high";
|
|
25
27
|
/** Deprecation status (Phase A) */
|
|
26
28
|
isDeprecated: boolean;
|
|
29
|
+
/** Domain category from upstream specs (e.g., "Security", "Platform") */
|
|
30
|
+
domainCategory: string | null;
|
|
31
|
+
/** UI category from upstream specs (e.g., "API Protection", "Sites") */
|
|
32
|
+
uiCategory: string | null;
|
|
33
|
+
/** Resource icon from upstream specs (v1.0.84+) */
|
|
34
|
+
resourceIcon: string | null;
|
|
35
|
+
/** Resource category from upstream specs (v1.0.84+, e.g., "Load Balancing", "Security") */
|
|
36
|
+
resourceCategory: string | null;
|
|
37
|
+
/** Whether resource supports log collection (v1.0.84+) */
|
|
38
|
+
supportsLogs: boolean;
|
|
39
|
+
/** Whether resource supports metrics collection (v1.0.84+) */
|
|
40
|
+
supportsMetrics: boolean;
|
|
41
|
+
/** Resource tier requirement (v1.0.84+) */
|
|
42
|
+
resourceTier: string | null;
|
|
27
43
|
}
|
|
28
44
|
/**
|
|
29
45
|
* Prerequisite hint for create operations (Phase B)
|
|
46
|
+
* Enhanced with v1.0.84+ upstream dependency metadata
|
|
30
47
|
*/
|
|
31
48
|
export interface PrerequisiteHint {
|
|
32
49
|
/** Required resources before creating this resource */
|
|
33
50
|
resources: string[];
|
|
34
51
|
/** Human-readable hint about prerequisites */
|
|
35
52
|
hint: string;
|
|
53
|
+
/** Resources that MUST exist before creation (v1.0.84+) */
|
|
54
|
+
required?: string[];
|
|
55
|
+
/** Resources that are optional dependencies (v1.0.84+) */
|
|
56
|
+
optional?: string[];
|
|
57
|
+
/** Human-readable relationship hints from upstream (v1.0.84+) */
|
|
58
|
+
relationshipHints?: string[];
|
|
36
59
|
}
|
|
37
60
|
/**
|
|
38
61
|
* Search result with relevance scoring
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,mCAAmC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wEAAwE;IACxE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mDAAmD;IACnD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,2FAA2F;IAC3F,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0DAA0D;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,yDAAyD;IACzD,aAAa,CAAC,EAAE,gBAAgB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,uBAAuB;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB"}
|
|
@@ -1285,7 +1285,7 @@ export const billing_and_usageTools = [
|
|
|
1285
1285
|
curlExample: null,
|
|
1286
1286
|
dependencies: [
|
|
1287
1287
|
{
|
|
1288
|
-
domain: "",
|
|
1288
|
+
domain: "billing_and_usage",
|
|
1289
1289
|
fieldPath: "",
|
|
1290
1290
|
inline: false,
|
|
1291
1291
|
required: false,
|
|
@@ -1417,7 +1417,7 @@ export const billing_and_usageTools = [
|
|
|
1417
1417
|
curlExample: null,
|
|
1418
1418
|
dependencies: [
|
|
1419
1419
|
{
|
|
1420
|
-
domain: "",
|
|
1420
|
+
domain: "billing_and_usage",
|
|
1421
1421
|
fieldPath: "",
|
|
1422
1422
|
inline: false,
|
|
1423
1423
|
required: false,
|
|
@@ -1797,7 +1797,7 @@ export const billing_and_usageTools = [
|
|
|
1797
1797
|
curlExample: null,
|
|
1798
1798
|
dependencies: [
|
|
1799
1799
|
{
|
|
1800
|
-
domain: "",
|
|
1800
|
+
domain: "billing_and_usage",
|
|
1801
1801
|
fieldPath: "",
|
|
1802
1802
|
inline: false,
|
|
1803
1803
|
required: false,
|