@robinmordasiewicz/f5xc-api-mcp 3.0.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.
Files changed (212) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +234 -0
  3. package/dist/auth/credential-manager.d.ts +116 -0
  4. package/dist/auth/credential-manager.d.ts.map +1 -0
  5. package/dist/auth/credential-manager.js +208 -0
  6. package/dist/auth/credential-manager.js.map +1 -0
  7. package/dist/auth/http-client.d.ts +81 -0
  8. package/dist/auth/http-client.d.ts.map +1 -0
  9. package/dist/auth/http-client.js +197 -0
  10. package/dist/auth/http-client.js.map +1 -0
  11. package/dist/auth/index.d.ts +8 -0
  12. package/dist/auth/index.d.ts.map +1 -0
  13. package/dist/auth/index.js +6 -0
  14. package/dist/auth/index.js.map +1 -0
  15. package/dist/generator/index.d.ts +7 -0
  16. package/dist/generator/index.d.ts.map +1 -0
  17. package/dist/generator/index.js +7 -0
  18. package/dist/generator/index.js.map +1 -0
  19. package/dist/generator/naming/acronyms.d.ts +81 -0
  20. package/dist/generator/naming/acronyms.d.ts.map +1 -0
  21. package/dist/generator/naming/acronyms.js +253 -0
  22. package/dist/generator/naming/acronyms.js.map +1 -0
  23. package/dist/generator/naming/index.d.ts +6 -0
  24. package/dist/generator/naming/index.d.ts.map +1 -0
  25. package/dist/generator/naming/index.js +6 -0
  26. package/dist/generator/naming/index.js.map +1 -0
  27. package/dist/generator/naming/volterra-mapping.d.ts +102 -0
  28. package/dist/generator/naming/volterra-mapping.d.ts.map +1 -0
  29. package/dist/generator/naming/volterra-mapping.js +259 -0
  30. package/dist/generator/naming/volterra-mapping.js.map +1 -0
  31. package/dist/generator/openapi-parser.d.ts +339 -0
  32. package/dist/generator/openapi-parser.d.ts.map +1 -0
  33. package/dist/generator/openapi-parser.js +463 -0
  34. package/dist/generator/openapi-parser.js.map +1 -0
  35. package/dist/generator/tool-generator.d.ts +74 -0
  36. package/dist/generator/tool-generator.d.ts.map +1 -0
  37. package/dist/generator/tool-generator.js +387 -0
  38. package/dist/generator/tool-generator.js.map +1 -0
  39. package/dist/generator/transformers/index.d.ts +7 -0
  40. package/dist/generator/transformers/index.d.ts.map +1 -0
  41. package/dist/generator/transformers/index.js +7 -0
  42. package/dist/generator/transformers/index.js.map +1 -0
  43. package/dist/generator/transformers/normalize-examples.d.ts +48 -0
  44. package/dist/generator/transformers/normalize-examples.d.ts.map +1 -0
  45. package/dist/generator/transformers/normalize-examples.js +66 -0
  46. package/dist/generator/transformers/normalize-examples.js.map +1 -0
  47. package/dist/index.d.ts +21 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +70 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/prompts/index.d.ts +6 -0
  52. package/dist/prompts/index.d.ts.map +1 -0
  53. package/dist/prompts/index.js +5 -0
  54. package/dist/prompts/index.js.map +1 -0
  55. package/dist/prompts/workflows.d.ts +59 -0
  56. package/dist/prompts/workflows.d.ts.map +1 -0
  57. package/dist/prompts/workflows.js +585 -0
  58. package/dist/prompts/workflows.js.map +1 -0
  59. package/dist/resources/handlers.d.ts +72 -0
  60. package/dist/resources/handlers.d.ts.map +1 -0
  61. package/dist/resources/handlers.js +279 -0
  62. package/dist/resources/handlers.js.map +1 -0
  63. package/dist/resources/index.d.ts +8 -0
  64. package/dist/resources/index.d.ts.map +1 -0
  65. package/dist/resources/index.js +6 -0
  66. package/dist/resources/index.js.map +1 -0
  67. package/dist/resources/templates.d.ts +86 -0
  68. package/dist/resources/templates.d.ts.map +1 -0
  69. package/dist/resources/templates.js +248 -0
  70. package/dist/resources/templates.js.map +1 -0
  71. package/dist/server.d.ts +78 -0
  72. package/dist/server.d.ts.map +1 -0
  73. package/dist/server.js +426 -0
  74. package/dist/server.js.map +1 -0
  75. package/dist/tools/discovery/consolidate.d.ts +97 -0
  76. package/dist/tools/discovery/consolidate.d.ts.map +1 -0
  77. package/dist/tools/discovery/consolidate.js +200 -0
  78. package/dist/tools/discovery/consolidate.js.map +1 -0
  79. package/dist/tools/discovery/describe.d.ts +132 -0
  80. package/dist/tools/discovery/describe.d.ts.map +1 -0
  81. package/dist/tools/discovery/describe.js +206 -0
  82. package/dist/tools/discovery/describe.js.map +1 -0
  83. package/dist/tools/discovery/execute.d.ts +98 -0
  84. package/dist/tools/discovery/execute.d.ts.map +1 -0
  85. package/dist/tools/discovery/execute.js +251 -0
  86. package/dist/tools/discovery/execute.js.map +1 -0
  87. package/dist/tools/discovery/index-loader.d.ts +28 -0
  88. package/dist/tools/discovery/index-loader.d.ts.map +1 -0
  89. package/dist/tools/discovery/index-loader.js +69 -0
  90. package/dist/tools/discovery/index-loader.js.map +1 -0
  91. package/dist/tools/discovery/index.d.ts +185 -0
  92. package/dist/tools/discovery/index.d.ts.map +1 -0
  93. package/dist/tools/discovery/index.js +177 -0
  94. package/dist/tools/discovery/index.js.map +1 -0
  95. package/dist/tools/discovery/search.d.ts +41 -0
  96. package/dist/tools/discovery/search.d.ts.map +1 -0
  97. package/dist/tools/discovery/search.js +155 -0
  98. package/dist/tools/discovery/search.js.map +1 -0
  99. package/dist/tools/discovery/types.d.ts +70 -0
  100. package/dist/tools/discovery/types.d.ts.map +1 -0
  101. package/dist/tools/discovery/types.js +9 -0
  102. package/dist/tools/discovery/types.js.map +1 -0
  103. package/dist/tools/generated/ai_intelligence/index.d.ts +8 -0
  104. package/dist/tools/generated/ai_intelligence/index.d.ts.map +1 -0
  105. package/dist/tools/generated/ai_intelligence/index.js +282 -0
  106. package/dist/tools/generated/ai_intelligence/index.js.map +1 -0
  107. package/dist/tools/generated/api_security/index.d.ts +8 -0
  108. package/dist/tools/generated/api_security/index.d.ts.map +1 -0
  109. package/dist/tools/generated/api_security/index.js +1852 -0
  110. package/dist/tools/generated/api_security/index.js.map +1 -0
  111. package/dist/tools/generated/applications/index.d.ts +8 -0
  112. package/dist/tools/generated/applications/index.d.ts.map +1 -0
  113. package/dist/tools/generated/applications/index.js +1589 -0
  114. package/dist/tools/generated/applications/index.js.map +1 -0
  115. package/dist/tools/generated/bigip/index.d.ts +8 -0
  116. package/dist/tools/generated/bigip/index.d.ts.map +1 -0
  117. package/dist/tools/generated/bigip/index.js +1173 -0
  118. package/dist/tools/generated/bigip/index.js.map +1 -0
  119. package/dist/tools/generated/billing/index.d.ts +8 -0
  120. package/dist/tools/generated/billing/index.d.ts.map +1 -0
  121. package/dist/tools/generated/billing/index.js +759 -0
  122. package/dist/tools/generated/billing/index.js.map +1 -0
  123. package/dist/tools/generated/cdn/index.d.ts +8 -0
  124. package/dist/tools/generated/cdn/index.d.ts.map +1 -0
  125. package/dist/tools/generated/cdn/index.js +841 -0
  126. package/dist/tools/generated/cdn/index.js.map +1 -0
  127. package/dist/tools/generated/config/index.d.ts +8 -0
  128. package/dist/tools/generated/config/index.d.ts.map +1 -0
  129. package/dist/tools/generated/config/index.js +316 -0
  130. package/dist/tools/generated/config/index.js.map +1 -0
  131. package/dist/tools/generated/identity/index.d.ts +8 -0
  132. package/dist/tools/generated/identity/index.d.ts.map +1 -0
  133. package/dist/tools/generated/identity/index.js +5371 -0
  134. package/dist/tools/generated/identity/index.js.map +1 -0
  135. package/dist/tools/generated/infrastructure/index.d.ts +8 -0
  136. package/dist/tools/generated/infrastructure/index.d.ts.map +1 -0
  137. package/dist/tools/generated/infrastructure/index.js +5342 -0
  138. package/dist/tools/generated/infrastructure/index.js.map +1 -0
  139. package/dist/tools/generated/infrastructure_protection/index.d.ts +8 -0
  140. package/dist/tools/generated/infrastructure_protection/index.d.ts.map +1 -0
  141. package/dist/tools/generated/infrastructure_protection/index.js +2919 -0
  142. package/dist/tools/generated/infrastructure_protection/index.js.map +1 -0
  143. package/dist/tools/generated/integrations/index.d.ts +8 -0
  144. package/dist/tools/generated/integrations/index.d.ts.map +1 -0
  145. package/dist/tools/generated/integrations/index.js +1995 -0
  146. package/dist/tools/generated/integrations/index.js.map +1 -0
  147. package/dist/tools/generated/load_balancer/index.d.ts +8 -0
  148. package/dist/tools/generated/load_balancer/index.d.ts.map +1 -0
  149. package/dist/tools/generated/load_balancer/index.js +2269 -0
  150. package/dist/tools/generated/load_balancer/index.js.map +1 -0
  151. package/dist/tools/generated/networking/index.d.ts +8 -0
  152. package/dist/tools/generated/networking/index.d.ts.map +1 -0
  153. package/dist/tools/generated/networking/index.js +11289 -0
  154. package/dist/tools/generated/networking/index.js.map +1 -0
  155. package/dist/tools/generated/nginx/index.d.ts +8 -0
  156. package/dist/tools/generated/nginx/index.d.ts.map +1 -0
  157. package/dist/tools/generated/nginx/index.js +680 -0
  158. package/dist/tools/generated/nginx/index.js.map +1 -0
  159. package/dist/tools/generated/observability/index.d.ts +8 -0
  160. package/dist/tools/generated/observability/index.d.ts.map +1 -0
  161. package/dist/tools/generated/observability/index.js +6140 -0
  162. package/dist/tools/generated/observability/index.js.map +1 -0
  163. package/dist/tools/generated/operations/index.d.ts +8 -0
  164. package/dist/tools/generated/operations/index.d.ts.map +1 -0
  165. package/dist/tools/generated/operations/index.js +1759 -0
  166. package/dist/tools/generated/operations/index.js.map +1 -0
  167. package/dist/tools/generated/security/index.d.ts +8 -0
  168. package/dist/tools/generated/security/index.d.ts.map +1 -0
  169. package/dist/tools/generated/security/index.js +9111 -0
  170. package/dist/tools/generated/security/index.js.map +1 -0
  171. package/dist/tools/generated/service_mesh/index.d.ts +8 -0
  172. package/dist/tools/generated/service_mesh/index.d.ts.map +1 -0
  173. package/dist/tools/generated/service_mesh/index.js +1628 -0
  174. package/dist/tools/generated/service_mesh/index.js.map +1 -0
  175. package/dist/tools/generated/shape_security/index.d.ts +8 -0
  176. package/dist/tools/generated/shape_security/index.d.ts.map +1 -0
  177. package/dist/tools/generated/shape_security/index.js +4121 -0
  178. package/dist/tools/generated/shape_security/index.js.map +1 -0
  179. package/dist/tools/generated/subscriptions/index.d.ts +8 -0
  180. package/dist/tools/generated/subscriptions/index.d.ts.map +1 -0
  181. package/dist/tools/generated/subscriptions/index.js +778 -0
  182. package/dist/tools/generated/subscriptions/index.js.map +1 -0
  183. package/dist/tools/generated/tenant_management/index.d.ts +8 -0
  184. package/dist/tools/generated/tenant_management/index.d.ts.map +1 -0
  185. package/dist/tools/generated/tenant_management/index.js +2292 -0
  186. package/dist/tools/generated/tenant_management/index.js.map +1 -0
  187. package/dist/tools/generated/vpn/index.d.ts +8 -0
  188. package/dist/tools/generated/vpn/index.d.ts.map +1 -0
  189. package/dist/tools/generated/vpn/index.js +1183 -0
  190. package/dist/tools/generated/vpn/index.js.map +1 -0
  191. package/dist/tools/index.d.ts +7 -0
  192. package/dist/tools/index.d.ts.map +1 -0
  193. package/dist/tools/index.js +6 -0
  194. package/dist/tools/index.js.map +1 -0
  195. package/dist/tools/registry.d.ts +27 -0
  196. package/dist/tools/registry.d.ts.map +1 -0
  197. package/dist/tools/registry.js +83 -0
  198. package/dist/tools/registry.js.map +1 -0
  199. package/dist/utils/error-handling.d.ts +109 -0
  200. package/dist/utils/error-handling.d.ts.map +1 -0
  201. package/dist/utils/error-handling.js +239 -0
  202. package/dist/utils/error-handling.js.map +1 -0
  203. package/dist/utils/index.d.ts +7 -0
  204. package/dist/utils/index.d.ts.map +1 -0
  205. package/dist/utils/index.js +6 -0
  206. package/dist/utils/index.js.map +1 -0
  207. package/dist/utils/logging.d.ts +75 -0
  208. package/dist/utils/logging.d.ts.map +1 -0
  209. package/dist/utils/logging.js +131 -0
  210. package/dist/utils/logging.js.map +1 -0
  211. package/manifest.json +143 -0
  212. package/package.json +95 -0
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Discovery Module - Dynamic Tool Discovery for Token Efficiency
3
+ *
4
+ * This module implements the Speakeasy-style dynamic toolset pattern
5
+ * that reduces token consumption by 95%+ through lazy loading.
6
+ *
7
+ * Instead of loading all 1,400+ tools upfront (~535K tokens), this module
8
+ * exposes three meta-tools that load tool schemas on-demand:
9
+ *
10
+ * 1. search_tools - Find tools matching a natural language query
11
+ * 2. describe_tool - Get full schema for a specific tool
12
+ * 3. execute_tool - Execute a discovered tool
13
+ *
14
+ * Token Impact:
15
+ * - Before: 535,000 tokens loaded at server start
16
+ * - After: ~500 tokens (meta-tools) + ~375 tokens per tool used
17
+ */
18
+ // Index loader exports
19
+ export { getToolIndex, clearIndexCache, getIndexMetadata, toolExists, getToolEntry, } from "./index-loader.js";
20
+ // Search exports
21
+ export { searchTools, getToolsByDomain, getToolsByResource, getAvailableDomains, getToolCountByDomain, } from "./search.js";
22
+ // Describe exports
23
+ export { describeTool, describeTools, describeToolSafe, describeToolCompact, getFullToolSchema, getOptimizationStats, } from "./describe.js";
24
+ // Execute exports
25
+ export { executeTool, validateExecuteParams } from "./execute.js";
26
+ export { getConsolidatedIndex, clearConsolidatedCache, getConsolidatedResource, getConsolidatedByDomain, searchConsolidatedResources, resolveConsolidatedTool, getConsolidationStats, } from "./consolidate.js";
27
+ /**
28
+ * MCP Tool Definitions for the discovery meta-tools
29
+ *
30
+ * These are the three tools that get registered with the MCP server
31
+ * instead of the 1,400+ individual API tools.
32
+ */
33
+ export const DISCOVERY_TOOLS = {
34
+ search: {
35
+ name: "f5xc-api-search-tools",
36
+ description: "Search for F5XC API tools using natural language. Returns matching tools with relevance scores. " +
37
+ "Use this to find tools for specific operations like 'create load balancer' or 'list DNS zones'.",
38
+ inputSchema: {
39
+ type: "object",
40
+ properties: {
41
+ query: {
42
+ type: "string",
43
+ description: "Natural language search query (e.g., 'http load balancer', 'create origin pool', 'delete dns zone')",
44
+ },
45
+ limit: {
46
+ type: "number",
47
+ description: "Maximum number of results to return (default: 10, max: 50)",
48
+ default: 10,
49
+ },
50
+ domains: {
51
+ type: "array",
52
+ items: { type: "string" },
53
+ description: "Filter by domain(s): waap, dns, core, network, site, security, appstack",
54
+ },
55
+ operations: {
56
+ type: "array",
57
+ items: { type: "string" },
58
+ description: "Filter by operation type(s): create, get, list, update, delete",
59
+ },
60
+ },
61
+ required: ["query"],
62
+ },
63
+ },
64
+ describe: {
65
+ name: "f5xc-api-describe-tool",
66
+ description: "Get detailed information about a specific F5XC API tool including parameters, request body schema, " +
67
+ "and usage examples. Use search_tools first to find the tool name.",
68
+ inputSchema: {
69
+ type: "object",
70
+ properties: {
71
+ toolName: {
72
+ type: "string",
73
+ description: "The exact tool name (e.g., 'f5xc-api-waap-http-loadbalancer-create')",
74
+ },
75
+ },
76
+ required: ["toolName"],
77
+ },
78
+ },
79
+ execute: {
80
+ name: "f5xc-api-execute-tool",
81
+ description: "Execute an F5XC API tool. In authenticated mode, makes the actual API call. " +
82
+ "In documentation mode, returns CLI equivalents and curl examples.",
83
+ inputSchema: {
84
+ type: "object",
85
+ properties: {
86
+ toolName: {
87
+ type: "string",
88
+ description: "The exact tool name to execute",
89
+ },
90
+ pathParams: {
91
+ type: "object",
92
+ description: "Path parameters (e.g., { namespace: 'default', name: 'example-resource' })",
93
+ additionalProperties: { type: "string" },
94
+ },
95
+ queryParams: {
96
+ type: "object",
97
+ description: "Query parameters for the request",
98
+ additionalProperties: { type: "string" },
99
+ },
100
+ body: {
101
+ type: "object",
102
+ description: "Request body for POST/PUT/PATCH operations",
103
+ },
104
+ },
105
+ required: ["toolName"],
106
+ },
107
+ },
108
+ serverInfo: {
109
+ name: "f5xc-api-server-info",
110
+ description: "Get F5XC API MCP server information including authentication status, available domains, " +
111
+ "and total tool count. Use this to understand server capabilities.",
112
+ inputSchema: {
113
+ type: "object",
114
+ properties: {},
115
+ },
116
+ },
117
+ searchResources: {
118
+ name: "f5xc-api-search-resources",
119
+ description: "Search for F5XC resources (consolidated view). Returns resources with their available CRUD operations. " +
120
+ "More efficient than searching individual tools - one result per resource instead of 5 CRUD tools.",
121
+ inputSchema: {
122
+ type: "object",
123
+ properties: {
124
+ query: {
125
+ type: "string",
126
+ description: "Natural language search query (e.g., 'http load balancer', 'origin pool', 'dns zone')",
127
+ },
128
+ limit: {
129
+ type: "number",
130
+ description: "Maximum number of results to return (default: 10)",
131
+ default: 10,
132
+ },
133
+ domains: {
134
+ type: "array",
135
+ items: { type: "string" },
136
+ description: "Filter by domain(s): waap, dns, core, network, site, security, appstack",
137
+ },
138
+ },
139
+ required: ["query"],
140
+ },
141
+ },
142
+ executeResource: {
143
+ name: "f5xc-api-execute-resource",
144
+ description: "Execute a CRUD operation on a consolidated F5XC resource. Specify the resource name and operation. " +
145
+ "Routes to the correct underlying API tool automatically.",
146
+ inputSchema: {
147
+ type: "object",
148
+ properties: {
149
+ resourceName: {
150
+ type: "string",
151
+ description: "The consolidated resource name (e.g., 'f5xc-api-waap-http-loadbalancer')",
152
+ },
153
+ operation: {
154
+ type: "string",
155
+ enum: ["create", "get", "list", "update", "delete"],
156
+ description: "The CRUD operation to perform",
157
+ },
158
+ pathParams: {
159
+ type: "object",
160
+ description: "Path parameters (e.g., { namespace: 'default', name: 'example-resource' })",
161
+ additionalProperties: { type: "string" },
162
+ },
163
+ queryParams: {
164
+ type: "object",
165
+ description: "Query parameters for the request",
166
+ additionalProperties: { type: "string" },
167
+ },
168
+ body: {
169
+ type: "object",
170
+ description: "Request body for create/update operations",
171
+ },
172
+ },
173
+ required: ["resourceName", "operation"],
174
+ },
175
+ },
176
+ };
177
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/discovery/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Tool Search Implementation
3
+ *
4
+ * Provides natural language search across the tool index.
5
+ * Uses lightweight text matching for efficient discovery.
6
+ */
7
+ import type { ToolIndexEntry, SearchResult, SearchOptions } from "./types.js";
8
+ /**
9
+ * Search for tools matching a natural language query
10
+ *
11
+ * @param query - Natural language search query
12
+ * @param options - Search options
13
+ * @returns Ranked list of matching tools
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * // Find load balancer tools
18
+ * const results = searchTools("http load balancer");
19
+ *
20
+ * // Find create operations in WAAP domain
21
+ * const results = searchTools("create", { domains: ["waap"], operations: ["create"] });
22
+ * ```
23
+ */
24
+ export declare function searchTools(query: string, options?: SearchOptions): SearchResult[];
25
+ /**
26
+ * Get tools by exact domain
27
+ */
28
+ export declare function getToolsByDomain(domain: string): ToolIndexEntry[];
29
+ /**
30
+ * Get tools by resource name
31
+ */
32
+ export declare function getToolsByResource(resource: string): ToolIndexEntry[];
33
+ /**
34
+ * Get all available domains
35
+ */
36
+ export declare function getAvailableDomains(): string[];
37
+ /**
38
+ * Get tool count by domain
39
+ */
40
+ export declare function getToolCountByDomain(): Record<string, number>;
41
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +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;AAgG9E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,YAAY,EAAE,CAkCtF;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"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Tool Search Implementation
3
+ *
4
+ * Provides natural language search across the tool index.
5
+ * Uses lightweight text matching for efficient discovery.
6
+ */
7
+ import { getToolIndex } from "./index-loader.js";
8
+ /**
9
+ * Normalize text for search matching
10
+ */
11
+ function normalizeText(text) {
12
+ return text
13
+ .toLowerCase()
14
+ .replace(/[-_]/g, " ")
15
+ .replace(/[^a-z0-9\s]/g, "")
16
+ .trim();
17
+ }
18
+ /**
19
+ * Tokenize text into searchable terms
20
+ */
21
+ function tokenize(text) {
22
+ return normalizeText(text)
23
+ .split(/\s+/)
24
+ .filter((term) => term.length > 1);
25
+ }
26
+ /**
27
+ * Calculate relevance score between query and tool
28
+ */
29
+ function calculateScore(query, tool) {
30
+ const queryTerms = tokenize(query);
31
+ const matchedTerms = [];
32
+ if (queryTerms.length === 0) {
33
+ return { score: 0, matchedTerms };
34
+ }
35
+ // Build searchable text from tool
36
+ const toolText = [tool.name, tool.domain, tool.resource, tool.operation, tool.summary].join(" ");
37
+ const normalizedToolText = normalizeText(toolText);
38
+ const toolTerms = new Set(tokenize(toolText));
39
+ let matchCount = 0;
40
+ for (const queryTerm of queryTerms) {
41
+ // Exact term match
42
+ if (toolTerms.has(queryTerm)) {
43
+ matchCount += 1;
44
+ matchedTerms.push(queryTerm);
45
+ continue;
46
+ }
47
+ // Partial match (query term contained in tool text)
48
+ if (normalizedToolText.includes(queryTerm)) {
49
+ matchCount += 0.7;
50
+ matchedTerms.push(queryTerm);
51
+ continue;
52
+ }
53
+ // Check if any tool term starts with query term (prefix match)
54
+ for (const toolTerm of toolTerms) {
55
+ if (toolTerm.startsWith(queryTerm)) {
56
+ matchCount += 0.5;
57
+ matchedTerms.push(queryTerm);
58
+ break;
59
+ }
60
+ }
61
+ }
62
+ // Boost scores for specific matches
63
+ let score = matchCount / queryTerms.length;
64
+ // Boost for domain match
65
+ if (normalizeText(tool.domain).includes(normalizeText(query.split(" ")[0] || ""))) {
66
+ score *= 1.2;
67
+ }
68
+ // Boost for operation match
69
+ const operationTerms = ["create", "get", "list", "update", "delete", "patch"];
70
+ for (const opTerm of operationTerms) {
71
+ if (query.toLowerCase().includes(opTerm) && tool.operation === opTerm) {
72
+ score *= 1.3;
73
+ break;
74
+ }
75
+ }
76
+ // Boost for resource match
77
+ if (normalizeText(tool.resource).includes(normalizeText(query))) {
78
+ score *= 1.4;
79
+ }
80
+ // Cap score at 1.0
81
+ return { score: Math.min(score, 1), matchedTerms: [...new Set(matchedTerms)] };
82
+ }
83
+ /**
84
+ * Search for tools matching a natural language query
85
+ *
86
+ * @param query - Natural language search query
87
+ * @param options - Search options
88
+ * @returns Ranked list of matching tools
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * // Find load balancer tools
93
+ * const results = searchTools("http load balancer");
94
+ *
95
+ * // Find create operations in WAAP domain
96
+ * const results = searchTools("create", { domains: ["waap"], operations: ["create"] });
97
+ * ```
98
+ */
99
+ export function searchTools(query, options = {}) {
100
+ const { limit = 10, domains, operations, minScore = 0.1 } = options;
101
+ const index = getToolIndex();
102
+ let tools = index.tools;
103
+ // Apply domain filter
104
+ if (domains && domains.length > 0) {
105
+ const domainSet = new Set(domains.map((d) => d.toLowerCase()));
106
+ tools = tools.filter((t) => domainSet.has(t.domain.toLowerCase()));
107
+ }
108
+ // Apply operation filter
109
+ if (operations && operations.length > 0) {
110
+ const opSet = new Set(operations.map((o) => o.toLowerCase()));
111
+ tools = tools.filter((t) => opSet.has(t.operation.toLowerCase()));
112
+ }
113
+ // Score and rank tools
114
+ const results = [];
115
+ for (const tool of tools) {
116
+ const { score, matchedTerms } = calculateScore(query, tool);
117
+ if (score >= minScore) {
118
+ results.push({ tool, score, matchedTerms });
119
+ }
120
+ }
121
+ // Sort by score descending
122
+ results.sort((a, b) => b.score - a.score);
123
+ // Return top results
124
+ return results.slice(0, limit);
125
+ }
126
+ /**
127
+ * Get tools by exact domain
128
+ */
129
+ export function getToolsByDomain(domain) {
130
+ const index = getToolIndex();
131
+ return index.tools.filter((t) => t.domain.toLowerCase() === domain.toLowerCase());
132
+ }
133
+ /**
134
+ * Get tools by resource name
135
+ */
136
+ export function getToolsByResource(resource) {
137
+ const index = getToolIndex();
138
+ const normalizedResource = normalizeText(resource);
139
+ return index.tools.filter((t) => normalizeText(t.resource).includes(normalizedResource));
140
+ }
141
+ /**
142
+ * Get all available domains
143
+ */
144
+ export function getAvailableDomains() {
145
+ const index = getToolIndex();
146
+ return Object.keys(index.metadata.domains);
147
+ }
148
+ /**
149
+ * Get tool count by domain
150
+ */
151
+ export function getToolCountByDomain() {
152
+ const index = getToolIndex();
153
+ return { ...index.metadata.domains };
154
+ }
155
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/discovery/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Discovery Module Type Definitions
3
+ *
4
+ * Lightweight types for the dynamic tool discovery system.
5
+ * These types are designed to minimize token usage while
6
+ * preserving essential information for tool discovery.
7
+ */
8
+ /**
9
+ * Lightweight tool index entry (~50 tokens vs ~375 for full ParsedOperation)
10
+ * Contains only the minimum information needed for search/discovery.
11
+ */
12
+ export interface ToolIndexEntry {
13
+ /** Tool name (e.g., "f5xc-api-waap-http-loadbalancer-create") */
14
+ name: string;
15
+ /** Domain category (e.g., "waap", "dns", "core") */
16
+ domain: string;
17
+ /** Resource type (e.g., "http-loadbalancer") */
18
+ resource: string;
19
+ /** Operation type (e.g., "create", "get", "list", "update", "delete") */
20
+ operation: string;
21
+ /** Brief summary for search matching */
22
+ summary: string;
23
+ }
24
+ /**
25
+ * Search result with relevance scoring
26
+ */
27
+ export interface SearchResult {
28
+ /** The matching tool entry */
29
+ tool: ToolIndexEntry;
30
+ /** Relevance score (0-1) */
31
+ score: number;
32
+ /** Matched terms for highlighting */
33
+ matchedTerms: string[];
34
+ }
35
+ /**
36
+ * Search options for customizing tool discovery
37
+ */
38
+ export interface SearchOptions {
39
+ /** Maximum number of results to return (default: 10) */
40
+ limit?: number;
41
+ /** Filter by domain(s) */
42
+ domains?: string[];
43
+ /** Filter by operation type(s) */
44
+ operations?: string[];
45
+ /** Minimum relevance score threshold (default: 0.1) */
46
+ minScore?: number;
47
+ }
48
+ /**
49
+ * Tool index metadata for the entire index
50
+ */
51
+ export interface ToolIndexMetadata {
52
+ /** Total number of tools indexed */
53
+ totalTools: number;
54
+ /** Available domains with tool counts */
55
+ domains: Record<string, number>;
56
+ /** Index generation timestamp */
57
+ generatedAt: string;
58
+ /** Version of the index format */
59
+ version: string;
60
+ }
61
+ /**
62
+ * Complete tool index structure
63
+ */
64
+ export interface ToolIndex {
65
+ /** Index metadata */
66
+ metadata: ToolIndexMetadata;
67
+ /** All tool entries */
68
+ tools: ToolIndexEntry[];
69
+ }
70
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,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;CACjB;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;CACxB;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;CACnB;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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Discovery Module Type Definitions
3
+ *
4
+ * Lightweight types for the dynamic tool discovery system.
5
+ * These types are designed to minimize token usage while
6
+ * preserving essential information for tool discovery.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated tool definitions for ai_intelligence domain
3
+ * DO NOT EDIT - This file is auto-generated by scripts/generate.ts
4
+ */
5
+ import type { ParsedOperation } from "../../../generator/openapi-parser.js";
6
+ export declare const ai_intelligenceTools: ParsedOperation[];
7
+ export default ai_intelligenceTools;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/generated/ai_intelligence/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,eAAO,MAAM,oBAAoB,EAAE,eAAe,EAqRjD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}