@robinmordasiewicz/f5xc-api-mcp 1.0.82-2512312028

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 (329) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +415 -0
  3. package/dist/auth/credential-manager.d.ts +151 -0
  4. package/dist/auth/credential-manager.d.ts.map +1 -0
  5. package/dist/auth/credential-manager.js +330 -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/config/config-manager.d.ts +72 -0
  16. package/dist/config/config-manager.d.ts.map +1 -0
  17. package/dist/config/config-manager.js +247 -0
  18. package/dist/config/config-manager.js.map +1 -0
  19. package/dist/config/index.d.ts +7 -0
  20. package/dist/config/index.d.ts.map +1 -0
  21. package/dist/config/index.js +7 -0
  22. package/dist/config/index.js.map +1 -0
  23. package/dist/config/schema.d.ts +74 -0
  24. package/dist/config/schema.d.ts.map +1 -0
  25. package/dist/config/schema.js +75 -0
  26. package/dist/config/schema.js.map +1 -0
  27. package/dist/config/types.d.ts +77 -0
  28. package/dist/config/types.d.ts.map +1 -0
  29. package/dist/config/types.js +31 -0
  30. package/dist/config/types.js.map +1 -0
  31. package/dist/generator/dependency-extractor.d.ts +103 -0
  32. package/dist/generator/dependency-extractor.d.ts.map +1 -0
  33. package/dist/generator/dependency-extractor.js +473 -0
  34. package/dist/generator/dependency-extractor.js.map +1 -0
  35. package/dist/generator/dependency-graph.d.ts +67 -0
  36. package/dist/generator/dependency-graph.d.ts.map +1 -0
  37. package/dist/generator/dependency-graph.js +330 -0
  38. package/dist/generator/dependency-graph.js.map +1 -0
  39. package/dist/generator/dependency-types.d.ts +206 -0
  40. package/dist/generator/dependency-types.d.ts.map +1 -0
  41. package/dist/generator/dependency-types.js +37 -0
  42. package/dist/generator/dependency-types.js.map +1 -0
  43. package/dist/generator/index.d.ts +7 -0
  44. package/dist/generator/index.d.ts.map +1 -0
  45. package/dist/generator/index.js +7 -0
  46. package/dist/generator/index.js.map +1 -0
  47. package/dist/generator/naming/acronyms.d.ts +81 -0
  48. package/dist/generator/naming/acronyms.d.ts.map +1 -0
  49. package/dist/generator/naming/acronyms.js +253 -0
  50. package/dist/generator/naming/acronyms.js.map +1 -0
  51. package/dist/generator/naming/index.d.ts +6 -0
  52. package/dist/generator/naming/index.d.ts.map +1 -0
  53. package/dist/generator/naming/index.js +6 -0
  54. package/dist/generator/naming/index.js.map +1 -0
  55. package/dist/generator/naming/volterra-mapping.d.ts +102 -0
  56. package/dist/generator/naming/volterra-mapping.d.ts.map +1 -0
  57. package/dist/generator/naming/volterra-mapping.js +259 -0
  58. package/dist/generator/naming/volterra-mapping.js.map +1 -0
  59. package/dist/generator/openapi-parser.d.ts +701 -0
  60. package/dist/generator/openapi-parser.d.ts.map +1 -0
  61. package/dist/generator/openapi-parser.js +704 -0
  62. package/dist/generator/openapi-parser.js.map +1 -0
  63. package/dist/generator/tool-generator.d.ts +118 -0
  64. package/dist/generator/tool-generator.d.ts.map +1 -0
  65. package/dist/generator/tool-generator.js +529 -0
  66. package/dist/generator/tool-generator.js.map +1 -0
  67. package/dist/generator/transformers/index.d.ts +7 -0
  68. package/dist/generator/transformers/index.d.ts.map +1 -0
  69. package/dist/generator/transformers/index.js +7 -0
  70. package/dist/generator/transformers/index.js.map +1 -0
  71. package/dist/generator/transformers/normalize-examples.d.ts +48 -0
  72. package/dist/generator/transformers/normalize-examples.d.ts.map +1 -0
  73. package/dist/generator/transformers/normalize-examples.js +66 -0
  74. package/dist/generator/transformers/normalize-examples.js.map +1 -0
  75. package/dist/index.d.ts +22 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +101 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/prompts/error-resolution.d.ts +70 -0
  80. package/dist/prompts/error-resolution.d.ts.map +1 -0
  81. package/dist/prompts/error-resolution.js +350 -0
  82. package/dist/prompts/error-resolution.js.map +1 -0
  83. package/dist/prompts/index.d.ts +8 -0
  84. package/dist/prompts/index.d.ts.map +1 -0
  85. package/dist/prompts/index.js +7 -0
  86. package/dist/prompts/index.js.map +1 -0
  87. package/dist/prompts/workflows.d.ts +59 -0
  88. package/dist/prompts/workflows.d.ts.map +1 -0
  89. package/dist/prompts/workflows.js +441 -0
  90. package/dist/prompts/workflows.js.map +1 -0
  91. package/dist/resources/handlers.d.ts +70 -0
  92. package/dist/resources/handlers.d.ts.map +1 -0
  93. package/dist/resources/handlers.js +270 -0
  94. package/dist/resources/handlers.js.map +1 -0
  95. package/dist/resources/index.d.ts +8 -0
  96. package/dist/resources/index.d.ts.map +1 -0
  97. package/dist/resources/index.js +6 -0
  98. package/dist/resources/index.js.map +1 -0
  99. package/dist/resources/templates.d.ts +86 -0
  100. package/dist/resources/templates.d.ts.map +1 -0
  101. package/dist/resources/templates.js +248 -0
  102. package/dist/resources/templates.js.map +1 -0
  103. package/dist/server.d.ts +78 -0
  104. package/dist/server.d.ts.map +1 -0
  105. package/dist/server.js +721 -0
  106. package/dist/server.js.map +1 -0
  107. package/dist/tools/discovery/best-practices.d.ts +140 -0
  108. package/dist/tools/discovery/best-practices.d.ts.map +1 -0
  109. package/dist/tools/discovery/best-practices.js +499 -0
  110. package/dist/tools/discovery/best-practices.js.map +1 -0
  111. package/dist/tools/discovery/consolidate.d.ts +97 -0
  112. package/dist/tools/discovery/consolidate.d.ts.map +1 -0
  113. package/dist/tools/discovery/consolidate.js +200 -0
  114. package/dist/tools/discovery/consolidate.js.map +1 -0
  115. package/dist/tools/discovery/cost-estimator.d.ts +114 -0
  116. package/dist/tools/discovery/cost-estimator.d.ts.map +1 -0
  117. package/dist/tools/discovery/cost-estimator.js +273 -0
  118. package/dist/tools/discovery/cost-estimator.js.map +1 -0
  119. package/dist/tools/discovery/dependencies.d.ts +113 -0
  120. package/dist/tools/discovery/dependencies.d.ts.map +1 -0
  121. package/dist/tools/discovery/dependencies.js +258 -0
  122. package/dist/tools/discovery/dependencies.js.map +1 -0
  123. package/dist/tools/discovery/describe.d.ts +133 -0
  124. package/dist/tools/discovery/describe.d.ts.map +1 -0
  125. package/dist/tools/discovery/describe.js +208 -0
  126. package/dist/tools/discovery/describe.js.map +1 -0
  127. package/dist/tools/discovery/execute.d.ts +96 -0
  128. package/dist/tools/discovery/execute.d.ts.map +1 -0
  129. package/dist/tools/discovery/execute.js +220 -0
  130. package/dist/tools/discovery/execute.js.map +1 -0
  131. package/dist/tools/discovery/index-loader.d.ts +28 -0
  132. package/dist/tools/discovery/index-loader.d.ts.map +1 -0
  133. package/dist/tools/discovery/index-loader.js +72 -0
  134. package/dist/tools/discovery/index-loader.js.map +1 -0
  135. package/dist/tools/discovery/index.d.ts +363 -0
  136. package/dist/tools/discovery/index.d.ts.map +1 -0
  137. package/dist/tools/discovery/index.js +361 -0
  138. package/dist/tools/discovery/index.js.map +1 -0
  139. package/dist/tools/discovery/resolver.d.ts +119 -0
  140. package/dist/tools/discovery/resolver.d.ts.map +1 -0
  141. package/dist/tools/discovery/resolver.js +369 -0
  142. package/dist/tools/discovery/resolver.js.map +1 -0
  143. package/dist/tools/discovery/search.d.ts +41 -0
  144. package/dist/tools/discovery/search.d.ts.map +1 -0
  145. package/dist/tools/discovery/search.js +176 -0
  146. package/dist/tools/discovery/search.js.map +1 -0
  147. package/dist/tools/discovery/types.d.ts +91 -0
  148. package/dist/tools/discovery/types.d.ts.map +1 -0
  149. package/dist/tools/discovery/types.js +9 -0
  150. package/dist/tools/discovery/types.js.map +1 -0
  151. package/dist/tools/discovery/validate.d.ts +63 -0
  152. package/dist/tools/discovery/validate.d.ts.map +1 -0
  153. package/dist/tools/discovery/validate.js +239 -0
  154. package/dist/tools/discovery/validate.js.map +1 -0
  155. package/dist/tools/generated/admin_console_and_ui/index.d.ts +8 -0
  156. package/dist/tools/generated/admin_console_and_ui/index.d.ts.map +1 -0
  157. package/dist/tools/generated/admin_console_and_ui/index.js +265 -0
  158. package/dist/tools/generated/admin_console_and_ui/index.js.map +1 -0
  159. package/dist/tools/generated/api/index.d.ts +8 -0
  160. package/dist/tools/generated/api/index.d.ts.map +1 -0
  161. package/dist/tools/generated/api/index.js +7016 -0
  162. package/dist/tools/generated/api/index.js.map +1 -0
  163. package/dist/tools/generated/authentication/index.d.ts +8 -0
  164. package/dist/tools/generated/authentication/index.d.ts.map +1 -0
  165. package/dist/tools/generated/authentication/index.js +907 -0
  166. package/dist/tools/generated/authentication/index.js.map +1 -0
  167. package/dist/tools/generated/bigip/index.d.ts +8 -0
  168. package/dist/tools/generated/bigip/index.d.ts.map +1 -0
  169. package/dist/tools/generated/bigip/index.js +3152 -0
  170. package/dist/tools/generated/bigip/index.js.map +1 -0
  171. package/dist/tools/generated/billing_and_usage/index.d.ts +8 -0
  172. package/dist/tools/generated/billing_and_usage/index.d.ts.map +1 -0
  173. package/dist/tools/generated/billing_and_usage/index.js +2452 -0
  174. package/dist/tools/generated/billing_and_usage/index.js.map +1 -0
  175. package/dist/tools/generated/blindfold/index.d.ts +8 -0
  176. package/dist/tools/generated/blindfold/index.d.ts.map +1 -0
  177. package/dist/tools/generated/blindfold/index.js +3790 -0
  178. package/dist/tools/generated/blindfold/index.js.map +1 -0
  179. package/dist/tools/generated/bot_and_threat_defense/index.d.ts +8 -0
  180. package/dist/tools/generated/bot_and_threat_defense/index.d.ts.map +1 -0
  181. package/dist/tools/generated/bot_and_threat_defense/index.js +2746 -0
  182. package/dist/tools/generated/bot_and_threat_defense/index.js.map +1 -0
  183. package/dist/tools/generated/cdn/index.d.ts +8 -0
  184. package/dist/tools/generated/cdn/index.d.ts.map +1 -0
  185. package/dist/tools/generated/cdn/index.js +2686 -0
  186. package/dist/tools/generated/cdn/index.js.map +1 -0
  187. package/dist/tools/generated/ce_management/index.d.ts +8 -0
  188. package/dist/tools/generated/ce_management/index.d.ts.map +1 -0
  189. package/dist/tools/generated/ce_management/index.js +3812 -0
  190. package/dist/tools/generated/ce_management/index.js.map +1 -0
  191. package/dist/tools/generated/certificates/index.d.ts +8 -0
  192. package/dist/tools/generated/certificates/index.d.ts.map +1 -0
  193. package/dist/tools/generated/certificates/index.js +2547 -0
  194. package/dist/tools/generated/certificates/index.js.map +1 -0
  195. package/dist/tools/generated/cloud_infrastructure/index.d.ts +8 -0
  196. package/dist/tools/generated/cloud_infrastructure/index.d.ts.map +1 -0
  197. package/dist/tools/generated/cloud_infrastructure/index.js +3959 -0
  198. package/dist/tools/generated/cloud_infrastructure/index.js.map +1 -0
  199. package/dist/tools/generated/container_services/index.d.ts +8 -0
  200. package/dist/tools/generated/container_services/index.d.ts.map +1 -0
  201. package/dist/tools/generated/container_services/index.js +2018 -0
  202. package/dist/tools/generated/container_services/index.js.map +1 -0
  203. package/dist/tools/generated/data_and_privacy_security/index.d.ts +8 -0
  204. package/dist/tools/generated/data_and_privacy_security/index.d.ts.map +1 -0
  205. package/dist/tools/generated/data_and_privacy_security/index.js +1662 -0
  206. package/dist/tools/generated/data_and_privacy_security/index.js.map +1 -0
  207. package/dist/tools/generated/data_intelligence/index.d.ts +8 -0
  208. package/dist/tools/generated/data_intelligence/index.d.ts.map +1 -0
  209. package/dist/tools/generated/data_intelligence/index.js +1600 -0
  210. package/dist/tools/generated/data_intelligence/index.js.map +1 -0
  211. package/dist/tools/generated/ddos/index.d.ts +8 -0
  212. package/dist/tools/generated/ddos/index.d.ts.map +1 -0
  213. package/dist/tools/generated/ddos/index.js +8091 -0
  214. package/dist/tools/generated/ddos/index.js.map +1 -0
  215. package/dist/tools/generated/dependency-graph.json +26358 -0
  216. package/dist/tools/generated/dns/index.d.ts +8 -0
  217. package/dist/tools/generated/dns/index.d.ts.map +1 -0
  218. package/dist/tools/generated/dns/index.js +6096 -0
  219. package/dist/tools/generated/dns/index.js.map +1 -0
  220. package/dist/tools/generated/generative_ai/index.d.ts +8 -0
  221. package/dist/tools/generated/generative_ai/index.d.ts.map +1 -0
  222. package/dist/tools/generated/generative_ai/index.js +1019 -0
  223. package/dist/tools/generated/generative_ai/index.js.map +1 -0
  224. package/dist/tools/generated/managed_kubernetes/index.d.ts +8 -0
  225. package/dist/tools/generated/managed_kubernetes/index.d.ts.map +1 -0
  226. package/dist/tools/generated/managed_kubernetes/index.js +3368 -0
  227. package/dist/tools/generated/managed_kubernetes/index.js.map +1 -0
  228. package/dist/tools/generated/marketplace/index.d.ts +8 -0
  229. package/dist/tools/generated/marketplace/index.d.ts.map +1 -0
  230. package/dist/tools/generated/marketplace/index.js +4329 -0
  231. package/dist/tools/generated/marketplace/index.js.map +1 -0
  232. package/dist/tools/generated/network/index.d.ts +8 -0
  233. package/dist/tools/generated/network/index.d.ts.map +1 -0
  234. package/dist/tools/generated/network/index.js +12424 -0
  235. package/dist/tools/generated/network/index.js.map +1 -0
  236. package/dist/tools/generated/network_security/index.d.ts +8 -0
  237. package/dist/tools/generated/network_security/index.d.ts.map +1 -0
  238. package/dist/tools/generated/network_security/index.js +9637 -0
  239. package/dist/tools/generated/network_security/index.js.map +1 -0
  240. package/dist/tools/generated/nginx_one/index.d.ts +8 -0
  241. package/dist/tools/generated/nginx_one/index.d.ts.map +1 -0
  242. package/dist/tools/generated/nginx_one/index.js +1692 -0
  243. package/dist/tools/generated/nginx_one/index.js.map +1 -0
  244. package/dist/tools/generated/object_storage/index.d.ts +8 -0
  245. package/dist/tools/generated/object_storage/index.d.ts.map +1 -0
  246. package/dist/tools/generated/object_storage/index.js +996 -0
  247. package/dist/tools/generated/object_storage/index.js.map +1 -0
  248. package/dist/tools/generated/observability/index.d.ts +8 -0
  249. package/dist/tools/generated/observability/index.d.ts.map +1 -0
  250. package/dist/tools/generated/observability/index.js +5285 -0
  251. package/dist/tools/generated/observability/index.js.map +1 -0
  252. package/dist/tools/generated/rate_limiting/index.d.ts +8 -0
  253. package/dist/tools/generated/rate_limiting/index.d.ts.map +1 -0
  254. package/dist/tools/generated/rate_limiting/index.js +2108 -0
  255. package/dist/tools/generated/rate_limiting/index.js.map +1 -0
  256. package/dist/tools/generated/secops_and_incident_response/index.d.ts +8 -0
  257. package/dist/tools/generated/secops_and_incident_response/index.d.ts.map +1 -0
  258. package/dist/tools/generated/secops_and_incident_response/index.js +710 -0
  259. package/dist/tools/generated/secops_and_incident_response/index.js.map +1 -0
  260. package/dist/tools/generated/service_mesh/index.d.ts +8 -0
  261. package/dist/tools/generated/service_mesh/index.d.ts.map +1 -0
  262. package/dist/tools/generated/service_mesh/index.js +6062 -0
  263. package/dist/tools/generated/service_mesh/index.js.map +1 -0
  264. package/dist/tools/generated/shape/index.d.ts +8 -0
  265. package/dist/tools/generated/shape/index.d.ts.map +1 -0
  266. package/dist/tools/generated/shape/index.js +19381 -0
  267. package/dist/tools/generated/shape/index.js.map +1 -0
  268. package/dist/tools/generated/sites/index.d.ts +8 -0
  269. package/dist/tools/generated/sites/index.d.ts.map +1 -0
  270. package/dist/tools/generated/sites/index.js +13160 -0
  271. package/dist/tools/generated/sites/index.js.map +1 -0
  272. package/dist/tools/generated/statistics/index.d.ts +8 -0
  273. package/dist/tools/generated/statistics/index.d.ts.map +1 -0
  274. package/dist/tools/generated/statistics/index.js +8131 -0
  275. package/dist/tools/generated/statistics/index.js.map +1 -0
  276. package/dist/tools/generated/support/index.d.ts +8 -0
  277. package/dist/tools/generated/support/index.d.ts.map +1 -0
  278. package/dist/tools/generated/support/index.js +5608 -0
  279. package/dist/tools/generated/support/index.js.map +1 -0
  280. package/dist/tools/generated/telemetry_and_insights/index.d.ts +8 -0
  281. package/dist/tools/generated/telemetry_and_insights/index.d.ts.map +1 -0
  282. package/dist/tools/generated/telemetry_and_insights/index.js +2404 -0
  283. package/dist/tools/generated/telemetry_and_insights/index.js.map +1 -0
  284. package/dist/tools/generated/tenant_and_identity/index.d.ts +8 -0
  285. package/dist/tools/generated/tenant_and_identity/index.d.ts.map +1 -0
  286. package/dist/tools/generated/tenant_and_identity/index.js +18938 -0
  287. package/dist/tools/generated/tenant_and_identity/index.js.map +1 -0
  288. package/dist/tools/generated/threat_campaign/index.d.ts +8 -0
  289. package/dist/tools/generated/threat_campaign/index.d.ts.map +1 -0
  290. package/dist/tools/generated/threat_campaign/index.js +102 -0
  291. package/dist/tools/generated/threat_campaign/index.js.map +1 -0
  292. package/dist/tools/generated/users/index.d.ts +8 -0
  293. package/dist/tools/generated/users/index.d.ts.map +1 -0
  294. package/dist/tools/generated/users/index.js +1515 -0
  295. package/dist/tools/generated/users/index.js.map +1 -0
  296. package/dist/tools/generated/virtual/index.d.ts +8 -0
  297. package/dist/tools/generated/virtual/index.d.ts.map +1 -0
  298. package/dist/tools/generated/virtual/index.js +11263 -0
  299. package/dist/tools/generated/virtual/index.js.map +1 -0
  300. package/dist/tools/generated/vpm_and_node_management/index.d.ts +8 -0
  301. package/dist/tools/generated/vpm_and_node_management/index.d.ts.map +1 -0
  302. package/dist/tools/generated/vpm_and_node_management/index.js +88 -0
  303. package/dist/tools/generated/vpm_and_node_management/index.js.map +1 -0
  304. package/dist/tools/generated/waf/index.d.ts +8 -0
  305. package/dist/tools/generated/waf/index.d.ts.map +1 -0
  306. package/dist/tools/generated/waf/index.js +4586 -0
  307. package/dist/tools/generated/waf/index.js.map +1 -0
  308. package/dist/tools/index.d.ts +7 -0
  309. package/dist/tools/index.d.ts.map +1 -0
  310. package/dist/tools/index.js +6 -0
  311. package/dist/tools/index.js.map +1 -0
  312. package/dist/tools/registry.d.ts +27 -0
  313. package/dist/tools/registry.d.ts.map +1 -0
  314. package/dist/tools/registry.js +115 -0
  315. package/dist/tools/registry.js.map +1 -0
  316. package/dist/utils/error-handling.d.ts +109 -0
  317. package/dist/utils/error-handling.d.ts.map +1 -0
  318. package/dist/utils/error-handling.js +239 -0
  319. package/dist/utils/error-handling.js.map +1 -0
  320. package/dist/utils/index.d.ts +7 -0
  321. package/dist/utils/index.d.ts.map +1 -0
  322. package/dist/utils/index.js +6 -0
  323. package/dist/utils/index.js.map +1 -0
  324. package/dist/utils/logging.d.ts +75 -0
  325. package/dist/utils/logging.d.ts.map +1 -0
  326. package/dist/utils/logging.js +131 -0
  327. package/dist/utils/logging.js.map +1 -0
  328. package/manifest.json +143 -0
  329. package/package.json +110 -0
@@ -0,0 +1,59 @@
1
+ /**
2
+ * MCP Workflow Prompts
3
+ *
4
+ * Provides guided workflows for common F5XC operations.
5
+ * These prompts help users accomplish complex multi-step tasks.
6
+ */
7
+ /**
8
+ * Workflow prompt definition
9
+ */
10
+ export interface WorkflowPrompt {
11
+ /** Unique prompt identifier */
12
+ name: string;
13
+ /** Human-readable description */
14
+ description: string;
15
+ /** Prompt arguments */
16
+ arguments: WorkflowArgument[];
17
+ /** Prompt template */
18
+ template: string;
19
+ }
20
+ /**
21
+ * Workflow argument
22
+ */
23
+ export interface WorkflowArgument {
24
+ /** Argument name */
25
+ name: string;
26
+ /** Argument description */
27
+ description: string;
28
+ /** Whether argument is required */
29
+ required: boolean;
30
+ }
31
+ /**
32
+ * Deploy HTTP Load Balancer workflow
33
+ */
34
+ export declare const deployHttpLoadBalancerPrompt: WorkflowPrompt;
35
+ /**
36
+ * Configure WAF workflow
37
+ */
38
+ export declare const configureWafPrompt: WorkflowPrompt;
39
+ /**
40
+ * Create Multi-Cloud Site workflow
41
+ */
42
+ export declare const createMultiCloudSitePrompt: WorkflowPrompt;
43
+ /**
44
+ * Generate Terraform from F5XC workflow
45
+ */
46
+ export declare const generateTerraformPrompt: WorkflowPrompt;
47
+ /**
48
+ * All workflow prompts
49
+ */
50
+ export declare const WORKFLOW_PROMPTS: WorkflowPrompt[];
51
+ /**
52
+ * Get workflow prompt by name
53
+ */
54
+ export declare function getWorkflowPrompt(name: string): WorkflowPrompt | undefined;
55
+ /**
56
+ * Process prompt template with arguments
57
+ */
58
+ export declare function processPromptTemplate(template: string, args: Record<string, string>): string;
59
+ //# sourceMappingURL=workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/prompts/workflows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,cAsH1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAgFhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,cA6FxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cA0FrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAK5C,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE1E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAuB5F"}
@@ -0,0 +1,441 @@
1
+ /**
2
+ * MCP Workflow Prompts
3
+ *
4
+ * Provides guided workflows for common F5XC operations.
5
+ * These prompts help users accomplish complex multi-step tasks.
6
+ */
7
+ /**
8
+ * Deploy HTTP Load Balancer workflow
9
+ */
10
+ export const deployHttpLoadBalancerPrompt = {
11
+ name: "deploy-http-loadbalancer",
12
+ description: "Guide through deploying an HTTP Load Balancer with origin pool, health checks, and optional WAF",
13
+ arguments: [
14
+ {
15
+ name: "namespace",
16
+ description: "Namespace for the load balancer",
17
+ required: true,
18
+ },
19
+ {
20
+ name: "name",
21
+ description: "Name for the load balancer",
22
+ required: true,
23
+ },
24
+ {
25
+ name: "domain",
26
+ description: "Domain name for the load balancer (e.g., app.example.com)",
27
+ required: true,
28
+ },
29
+ {
30
+ name: "backend_ip",
31
+ description: "IP address of the backend server",
32
+ required: true,
33
+ },
34
+ {
35
+ name: "backend_port",
36
+ description: "Port of the backend server (default: 80)",
37
+ required: false,
38
+ },
39
+ {
40
+ name: "enable_waf",
41
+ description: "Enable Web Application Firewall (true/false)",
42
+ required: false,
43
+ },
44
+ ],
45
+ template: `# Deploy HTTP Load Balancer Workflow
46
+
47
+ I'll help you deploy an HTTP Load Balancer in F5 Distributed Cloud.
48
+
49
+ ## Configuration Summary
50
+ - **Namespace**: {{namespace}}
51
+ - **Load Balancer Name**: {{name}}
52
+ - **Domain**: {{domain}}
53
+ - **Backend**: {{backend_ip}}:{{backend_port}}
54
+ - **WAF Enabled**: {{enable_waf}}
55
+
56
+ ## Steps
57
+
58
+ ### Step 1: Create Origin Pool
59
+ First, create an origin pool to define your backend servers.
60
+
61
+ Use the **f5xc-api-waap-origin-pool-create** tool or Terraform:
62
+
63
+ **Terraform:**
64
+ \`\`\`hcl
65
+ resource "volterra_origin_pool" "{{name}}" {
66
+ name = "{{name}}-origin-pool"
67
+ namespace = "{{namespace}}"
68
+
69
+ origin_servers {
70
+ public_ip {
71
+ ip = "{{backend_ip}}"
72
+ }
73
+ }
74
+
75
+ port = {{backend_port}}
76
+ no_tls = true
77
+ endpoint_selection = "LOCAL_PREFERRED"
78
+ loadbalancer_algorithm = "ROUND_ROBIN"
79
+ }
80
+ \`\`\`
81
+
82
+ ### Step 2: Create HTTP Load Balancer
83
+
84
+ Use the **f5xc-api-waap-http-loadbalancer-create** tool or Terraform:
85
+
86
+ **Terraform:**
87
+ \`\`\`hcl
88
+ resource "volterra_http_loadbalancer" "{{name}}" {
89
+ name = "{{name}}"
90
+ namespace = "{{namespace}}"
91
+
92
+ domains = ["{{domain}}"]
93
+
94
+ http {
95
+ dns_volterra_managed = true
96
+ }
97
+
98
+ default_route_pools {
99
+ pool {
100
+ name = volterra_origin_pool.{{name}}.name
101
+ namespace = "{{namespace}}"
102
+ }
103
+ weight = 1
104
+ }
105
+
106
+ advertise_on_public_default_vip = true
107
+ }
108
+ \`\`\`
109
+
110
+ {{#if enable_waf}}
111
+ ### Step 3: Enable WAF Protection
112
+
113
+ Use the **f5xc-api-waf-app-firewall-create** tool to create a WAF policy.
114
+ {{/if}}
115
+
116
+ ## Verification
117
+
118
+ After deployment, verify using the following API tools:
119
+ - **f5xc-api-waap-http-loadbalancer-get** with name={{name}}, namespace={{namespace}}
120
+ - **f5xc-api-waap-origin-pool-get** with name={{name}}-origin-pool, namespace={{namespace}}
121
+
122
+ ## Next Steps
123
+ - Configure DNS to point {{domain}} to the F5XC VIP
124
+ - Set up monitoring and alerts
125
+ - Consider enabling additional security features
126
+ `,
127
+ };
128
+ /**
129
+ * Configure WAF workflow
130
+ */
131
+ export const configureWafPrompt = {
132
+ name: "configure-waf",
133
+ description: "Guide through configuring Web Application Firewall protection",
134
+ arguments: [
135
+ {
136
+ name: "namespace",
137
+ description: "Namespace for the WAF policy",
138
+ required: true,
139
+ },
140
+ {
141
+ name: "name",
142
+ description: "Name for the WAF policy",
143
+ required: true,
144
+ },
145
+ {
146
+ name: "loadbalancer",
147
+ description: "Name of the HTTP Load Balancer to protect",
148
+ required: true,
149
+ },
150
+ {
151
+ name: "mode",
152
+ description: "WAF mode: blocking or monitoring",
153
+ required: false,
154
+ },
155
+ ],
156
+ template: `# Configure WAF Protection Workflow
157
+
158
+ I'll help you configure Web Application Firewall protection for your application.
159
+
160
+ ## Configuration Summary
161
+ - **Namespace**: {{namespace}}
162
+ - **WAF Policy Name**: {{name}}
163
+ - **Load Balancer**: {{loadbalancer}}
164
+ - **Mode**: {{mode}}
165
+
166
+ ## Steps
167
+
168
+ ### Step 1: Create Application Firewall Policy
169
+
170
+ Use the **f5xc-api-waf-app-firewall-create** tool or Terraform:
171
+
172
+ **Terraform:**
173
+ \`\`\`hcl
174
+ resource "volterra_app_firewall" "{{name}}" {
175
+ name = "{{name}}"
176
+ namespace = "{{namespace}}"
177
+
178
+ detection_settings {
179
+ signature_selection_setting {
180
+ default_attack_type_settings {}
181
+ high_medium_accuracy_signatures {}
182
+ }
183
+ enable_suppression {}
184
+ enable_threat_campaigns {}
185
+ }
186
+
187
+ bot_protection_setting {
188
+ malicious_bot_action = "BLOCK"
189
+ suspicious_bot_action = "REPORT"
190
+ good_bot_action = "REPORT"
191
+ }
192
+
193
+ blocking {}
194
+ }
195
+ \`\`\`
196
+
197
+ ### Step 2: Attach WAF to Load Balancer
198
+
199
+ Update your HTTP Load Balancer to use the WAF policy.
200
+
201
+ ## Verification
202
+
203
+ Use the **f5xc-api-waf-app-firewall-get** tool with name={{name}}, namespace={{namespace}}.
204
+
205
+ ## Security Recommendations
206
+ - Start in monitoring mode before enabling blocking
207
+ - Review security events regularly
208
+ - Fine-tune signature settings based on your application
209
+ - Consider enabling bot defense for API endpoints
210
+ `,
211
+ };
212
+ /**
213
+ * Create Multi-Cloud Site workflow
214
+ */
215
+ export const createMultiCloudSitePrompt = {
216
+ name: "create-multicloud-site",
217
+ description: "Guide through deploying an F5XC site in AWS, Azure, or GCP",
218
+ arguments: [
219
+ {
220
+ name: "namespace",
221
+ description: "Namespace for the site",
222
+ required: true,
223
+ },
224
+ {
225
+ name: "name",
226
+ description: "Name for the site",
227
+ required: true,
228
+ },
229
+ {
230
+ name: "cloud",
231
+ description: "Cloud provider: aws, azure, or gcp",
232
+ required: true,
233
+ },
234
+ {
235
+ name: "region",
236
+ description: "Cloud region for deployment",
237
+ required: true,
238
+ },
239
+ {
240
+ name: "vpc_id",
241
+ description: "VPC/VNet ID to deploy into",
242
+ required: true,
243
+ },
244
+ ],
245
+ template: `# Create Multi-Cloud Site Workflow
246
+
247
+ I'll help you deploy an F5 Distributed Cloud site in {{cloud}}.
248
+
249
+ ## Configuration Summary
250
+ - **Namespace**: {{namespace}}
251
+ - **Site Name**: {{name}}
252
+ - **Cloud Provider**: {{cloud}}
253
+ - **Region**: {{region}}
254
+ - **VPC/VNet**: {{vpc_id}}
255
+
256
+ ## Prerequisites
257
+ 1. Cloud credentials configured in F5XC
258
+ 2. Appropriate IAM permissions in {{cloud}}
259
+ 3. VPC/VNet exists and is accessible
260
+
261
+ ## Steps
262
+
263
+ ### Step 1: Verify Cloud Credentials
264
+
265
+ Use the **f5xc-api-cloud-infrastructure-cloud-credentials-list** tool to verify credentials.
266
+
267
+ ### Step 2: Create Site
268
+
269
+ Use the appropriate API tool based on your cloud provider:
270
+
271
+ {{#if (eq cloud "aws")}}
272
+ **AWS VPC Site:**
273
+ Use **f5xc-api-sites-aws-vpc-site-create** with appropriate parameters.
274
+ {{/if}}
275
+
276
+ {{#if (eq cloud "azure")}}
277
+ **Azure VNet Site:**
278
+ Use **f5xc-api-sites-azure-vnet-site-create** with appropriate parameters.
279
+ {{/if}}
280
+
281
+ {{#if (eq cloud "gcp")}}
282
+ **GCP VPC Site:**
283
+ Use **f5xc-api-sites-gcp-vpc-site-create** with appropriate parameters.
284
+ {{/if}}
285
+
286
+ ### Step 3: Apply Terraform Configuration
287
+
288
+ \`\`\`bash
289
+ terraform apply -auto-approve
290
+ \`\`\`
291
+
292
+ ### Step 4: Monitor Site Status
293
+
294
+ Use the appropriate API get tool to check site status:
295
+ - AWS: **f5xc-api-sites-aws-vpc-site-get**
296
+ - Azure: **f5xc-api-sites-azure-vnet-site-get**
297
+ - GCP: **f5xc-api-sites-gcp-vpc-site-get**
298
+
299
+ ## Verification
300
+
301
+ Use **f5xc-api-sites-site-list** to view all sites.
302
+
303
+ ## Next Steps
304
+ - Configure network policies
305
+ - Set up load balancers to use this site
306
+ - Enable monitoring and logging
307
+ `,
308
+ };
309
+ /**
310
+ * Generate Terraform from F5XC workflow
311
+ */
312
+ export const generateTerraformPrompt = {
313
+ name: "generate-terraform",
314
+ description: "Generate Terraform configuration from existing F5XC resources",
315
+ arguments: [
316
+ {
317
+ name: "namespace",
318
+ description: "Namespace to export",
319
+ required: true,
320
+ },
321
+ {
322
+ name: "resource_type",
323
+ description: "Resource type to export (e.g., http_loadbalancer)",
324
+ required: false,
325
+ },
326
+ {
327
+ name: "name",
328
+ description: "Specific resource name to export",
329
+ required: false,
330
+ },
331
+ ],
332
+ template: `# Generate Terraform Configuration
333
+
334
+ I'll help you export F5XC resources as Terraform configuration.
335
+
336
+ ## Export Parameters
337
+ - **Namespace**: {{namespace}}
338
+ - **Resource Type**: {{resource_type}}
339
+ - **Resource Name**: {{name}}
340
+
341
+ ## Steps
342
+
343
+ ### Step 1: List Resources
344
+
345
+ Use the appropriate list tool to view existing resources:
346
+ {{#if resource_type}}
347
+ - **f5xc-api-*-{{resource_type}}-list** with namespace={{namespace}}
348
+ {{else}}
349
+ - **f5xc-api-waap-http-loadbalancer-list**
350
+ - **f5xc-api-waap-origin-pool-list**
351
+ - **f5xc-api-waf-app-firewall-list**
352
+ {{/if}}
353
+
354
+ ### Step 2: Get Resource Details
355
+
356
+ {{#if name}}
357
+ Use **f5xc-api-*-{{resource_type}}-get** with name={{name}}, namespace={{namespace}} to get full resource configuration.
358
+ {{else}}
359
+ Use the appropriate get tool to retrieve each resource's configuration for Terraform export.
360
+ {{/if}}
361
+
362
+ ### Step 3: Generate Terraform Configuration
363
+
364
+ The API response contains all the configuration data needed to create Terraform resources.
365
+ Use the response structure to populate your Terraform configuration.
366
+
367
+ ## Example Output
368
+
369
+ \`\`\`hcl
370
+ # Generated Terraform configuration
371
+ terraform {
372
+ required_providers {
373
+ volterra = {
374
+ source = "volterraedge/volterra"
375
+ version = "~> 0.11"
376
+ }
377
+ }
378
+ }
379
+
380
+ provider "volterra" {
381
+ api_p12_file = var.api_p12_file
382
+ url = var.api_url
383
+ }
384
+
385
+ # Import command:
386
+ # terraform import volterra_{{resource_type}}.{{name}} {{namespace}}/{{name}}
387
+
388
+ resource "volterra_{{resource_type}}" "{{name}}" {
389
+ name = "{{name}}"
390
+ namespace = "{{namespace}}"
391
+
392
+ # Configuration exported from F5XC
393
+ }
394
+ \`\`\`
395
+
396
+ ## Best Practices
397
+ - Use variables for sensitive values
398
+ - Organize resources by namespace
399
+ - Use modules for reusable configurations
400
+ - Store state in remote backend
401
+ `,
402
+ };
403
+ /**
404
+ * All workflow prompts
405
+ */
406
+ export const WORKFLOW_PROMPTS = [
407
+ deployHttpLoadBalancerPrompt,
408
+ configureWafPrompt,
409
+ createMultiCloudSitePrompt,
410
+ generateTerraformPrompt,
411
+ ];
412
+ /**
413
+ * Get workflow prompt by name
414
+ */
415
+ export function getWorkflowPrompt(name) {
416
+ return WORKFLOW_PROMPTS.find((p) => p.name === name);
417
+ }
418
+ /**
419
+ * Process prompt template with arguments
420
+ */
421
+ export function processPromptTemplate(template, args) {
422
+ let result = template;
423
+ // Replace simple {{variable}} placeholders
424
+ for (const [key, value] of Object.entries(args)) {
425
+ const pattern = new RegExp(`\\{\\{${key}\\}\\}`, "g");
426
+ result = result.replace(pattern, value ?? "");
427
+ }
428
+ // Handle {{#if variable}} ... {{/if}} blocks
429
+ const ifPattern = /\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g;
430
+ result = result.replace(ifPattern, (_, varName, content) => {
431
+ const value = args[varName];
432
+ return value && value !== "false" ? content : "";
433
+ });
434
+ // Handle {{#if (eq var "value")}} ... {{/if}} blocks
435
+ const eqPattern = /\{\{#if\s+\(eq\s+(\w+)\s+"([^"]+)"\)\}\}([\s\S]*?)\{\{\/if\}\}/g;
436
+ result = result.replace(eqPattern, (_, varName, expected, content) => {
437
+ return args[varName] === expected ? content : "";
438
+ });
439
+ return result;
440
+ }
441
+ //# sourceMappingURL=workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/prompts/workflows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * MCP Resource Handlers
3
+ *
4
+ * Implements resource read handlers for F5XC configuration objects.
5
+ * Supports both documentation mode (returns schema info) and
6
+ * execution mode (fetches actual resource data).
7
+ */
8
+ import { ResourceType } from "./templates.js";
9
+ import { CredentialManager } from "../auth/credential-manager.js";
10
+ import { HttpClient } from "../auth/http-client.js";
11
+ /**
12
+ * Resource read result
13
+ */
14
+ export interface ResourceReadResult {
15
+ /** Resource URI */
16
+ uri: string;
17
+ /** MIME type of content */
18
+ mimeType: string;
19
+ /** Resource content */
20
+ content: string;
21
+ /** Whether this is documentation or actual data */
22
+ mode: "documentation" | "execution";
23
+ }
24
+ /**
25
+ * Resource documentation (for unauthenticated mode)
26
+ */
27
+ export interface ResourceDocumentation {
28
+ /** Resource URI */
29
+ uri: string;
30
+ /** Resource type information */
31
+ resourceType: ResourceType;
32
+ /** API path for this resource */
33
+ apiPath: string;
34
+ /** Example resource structure */
35
+ exampleResource: Record<string, unknown>;
36
+ /** Terraform data source */
37
+ terraformDataSource: string;
38
+ /** Related resources */
39
+ relatedResources: string[];
40
+ }
41
+ /**
42
+ * Resource Handler class
43
+ */
44
+ export declare class ResourceHandler {
45
+ private credentialManager;
46
+ private httpClient;
47
+ constructor(credentialManager: CredentialManager, httpClient: HttpClient | null);
48
+ /**
49
+ * Read a resource by URI
50
+ */
51
+ readResource(uri: string): Promise<ResourceReadResult>;
52
+ /**
53
+ * List available resource templates
54
+ */
55
+ listResourceTemplates(): Array<{
56
+ uriTemplate: string;
57
+ name: string;
58
+ description: string;
59
+ mimeType: string;
60
+ }>;
61
+ /**
62
+ * List resources of a specific type in a namespace
63
+ */
64
+ listResources(namespace: string, resourceType: string): Promise<ResourceReadResult>;
65
+ }
66
+ /**
67
+ * Create resource handler
68
+ */
69
+ export declare function createResourceHandler(credentialManager: CredentialManager, httpClient: HttpClient | null): ResourceHandler;
70
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/resources/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAY,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,4BAA4B;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAkKD;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,UAAU,CAAoB;gBAE1B,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAK/E;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmD5D;;OAEG;IACH,qBAAqB,IAAI,KAAK,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAaF;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAmD1F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,GAAG,IAAI,GAC5B,eAAe,CAEjB"}