@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.
- package/CHANGELOG.md +74 -0
- package/README.md +415 -0
- package/dist/auth/credential-manager.d.ts +151 -0
- package/dist/auth/credential-manager.d.ts.map +1 -0
- package/dist/auth/credential-manager.js +330 -0
- package/dist/auth/credential-manager.js.map +1 -0
- package/dist/auth/http-client.d.ts +81 -0
- package/dist/auth/http-client.d.ts.map +1 -0
- package/dist/auth/http-client.js +197 -0
- package/dist/auth/http-client.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +6 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/config/config-manager.d.ts +72 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +247 -0
- package/dist/config/config-manager.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/schema.d.ts +74 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +75 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/types.d.ts +77 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +31 -0
- package/dist/config/types.js.map +1 -0
- package/dist/generator/dependency-extractor.d.ts +103 -0
- package/dist/generator/dependency-extractor.d.ts.map +1 -0
- package/dist/generator/dependency-extractor.js +473 -0
- package/dist/generator/dependency-extractor.js.map +1 -0
- package/dist/generator/dependency-graph.d.ts +67 -0
- package/dist/generator/dependency-graph.d.ts.map +1 -0
- package/dist/generator/dependency-graph.js +330 -0
- package/dist/generator/dependency-graph.js.map +1 -0
- package/dist/generator/dependency-types.d.ts +206 -0
- package/dist/generator/dependency-types.d.ts.map +1 -0
- package/dist/generator/dependency-types.js +37 -0
- package/dist/generator/dependency-types.js.map +1 -0
- package/dist/generator/index.d.ts +7 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +7 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/naming/acronyms.d.ts +81 -0
- package/dist/generator/naming/acronyms.d.ts.map +1 -0
- package/dist/generator/naming/acronyms.js +253 -0
- package/dist/generator/naming/acronyms.js.map +1 -0
- package/dist/generator/naming/index.d.ts +6 -0
- package/dist/generator/naming/index.d.ts.map +1 -0
- package/dist/generator/naming/index.js +6 -0
- package/dist/generator/naming/index.js.map +1 -0
- package/dist/generator/naming/volterra-mapping.d.ts +102 -0
- package/dist/generator/naming/volterra-mapping.d.ts.map +1 -0
- package/dist/generator/naming/volterra-mapping.js +259 -0
- package/dist/generator/naming/volterra-mapping.js.map +1 -0
- package/dist/generator/openapi-parser.d.ts +701 -0
- package/dist/generator/openapi-parser.d.ts.map +1 -0
- package/dist/generator/openapi-parser.js +704 -0
- package/dist/generator/openapi-parser.js.map +1 -0
- package/dist/generator/tool-generator.d.ts +118 -0
- package/dist/generator/tool-generator.d.ts.map +1 -0
- package/dist/generator/tool-generator.js +529 -0
- package/dist/generator/tool-generator.js.map +1 -0
- package/dist/generator/transformers/index.d.ts +7 -0
- package/dist/generator/transformers/index.d.ts.map +1 -0
- package/dist/generator/transformers/index.js +7 -0
- package/dist/generator/transformers/index.js.map +1 -0
- package/dist/generator/transformers/normalize-examples.d.ts +48 -0
- package/dist/generator/transformers/normalize-examples.d.ts.map +1 -0
- package/dist/generator/transformers/normalize-examples.js +66 -0
- package/dist/generator/transformers/normalize-examples.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +101 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/error-resolution.d.ts +70 -0
- package/dist/prompts/error-resolution.d.ts.map +1 -0
- package/dist/prompts/error-resolution.js +350 -0
- package/dist/prompts/error-resolution.js.map +1 -0
- package/dist/prompts/index.d.ts +8 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +7 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/workflows.d.ts +59 -0
- package/dist/prompts/workflows.d.ts.map +1 -0
- package/dist/prompts/workflows.js +441 -0
- package/dist/prompts/workflows.js.map +1 -0
- package/dist/resources/handlers.d.ts +70 -0
- package/dist/resources/handlers.d.ts.map +1 -0
- package/dist/resources/handlers.js +270 -0
- package/dist/resources/handlers.js.map +1 -0
- package/dist/resources/index.d.ts +8 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +6 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/templates.d.ts +86 -0
- package/dist/resources/templates.d.ts.map +1 -0
- package/dist/resources/templates.js +248 -0
- package/dist/resources/templates.js.map +1 -0
- package/dist/server.d.ts +78 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +721 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/discovery/best-practices.d.ts +140 -0
- package/dist/tools/discovery/best-practices.d.ts.map +1 -0
- package/dist/tools/discovery/best-practices.js +499 -0
- package/dist/tools/discovery/best-practices.js.map +1 -0
- package/dist/tools/discovery/consolidate.d.ts +97 -0
- package/dist/tools/discovery/consolidate.d.ts.map +1 -0
- package/dist/tools/discovery/consolidate.js +200 -0
- package/dist/tools/discovery/consolidate.js.map +1 -0
- package/dist/tools/discovery/cost-estimator.d.ts +114 -0
- package/dist/tools/discovery/cost-estimator.d.ts.map +1 -0
- package/dist/tools/discovery/cost-estimator.js +273 -0
- package/dist/tools/discovery/cost-estimator.js.map +1 -0
- package/dist/tools/discovery/dependencies.d.ts +113 -0
- package/dist/tools/discovery/dependencies.d.ts.map +1 -0
- package/dist/tools/discovery/dependencies.js +258 -0
- package/dist/tools/discovery/dependencies.js.map +1 -0
- package/dist/tools/discovery/describe.d.ts +133 -0
- package/dist/tools/discovery/describe.d.ts.map +1 -0
- package/dist/tools/discovery/describe.js +208 -0
- package/dist/tools/discovery/describe.js.map +1 -0
- package/dist/tools/discovery/execute.d.ts +96 -0
- package/dist/tools/discovery/execute.d.ts.map +1 -0
- package/dist/tools/discovery/execute.js +220 -0
- package/dist/tools/discovery/execute.js.map +1 -0
- package/dist/tools/discovery/index-loader.d.ts +28 -0
- package/dist/tools/discovery/index-loader.d.ts.map +1 -0
- package/dist/tools/discovery/index-loader.js +72 -0
- package/dist/tools/discovery/index-loader.js.map +1 -0
- package/dist/tools/discovery/index.d.ts +363 -0
- package/dist/tools/discovery/index.d.ts.map +1 -0
- package/dist/tools/discovery/index.js +361 -0
- package/dist/tools/discovery/index.js.map +1 -0
- package/dist/tools/discovery/resolver.d.ts +119 -0
- package/dist/tools/discovery/resolver.d.ts.map +1 -0
- package/dist/tools/discovery/resolver.js +369 -0
- package/dist/tools/discovery/resolver.js.map +1 -0
- package/dist/tools/discovery/search.d.ts +41 -0
- package/dist/tools/discovery/search.d.ts.map +1 -0
- package/dist/tools/discovery/search.js +176 -0
- package/dist/tools/discovery/search.js.map +1 -0
- package/dist/tools/discovery/types.d.ts +91 -0
- package/dist/tools/discovery/types.d.ts.map +1 -0
- package/dist/tools/discovery/types.js +9 -0
- package/dist/tools/discovery/types.js.map +1 -0
- package/dist/tools/discovery/validate.d.ts +63 -0
- package/dist/tools/discovery/validate.d.ts.map +1 -0
- package/dist/tools/discovery/validate.js +239 -0
- package/dist/tools/discovery/validate.js.map +1 -0
- package/dist/tools/generated/admin_console_and_ui/index.d.ts +8 -0
- package/dist/tools/generated/admin_console_and_ui/index.d.ts.map +1 -0
- package/dist/tools/generated/admin_console_and_ui/index.js +265 -0
- package/dist/tools/generated/admin_console_and_ui/index.js.map +1 -0
- package/dist/tools/generated/api/index.d.ts +8 -0
- package/dist/tools/generated/api/index.d.ts.map +1 -0
- package/dist/tools/generated/api/index.js +7016 -0
- package/dist/tools/generated/api/index.js.map +1 -0
- package/dist/tools/generated/authentication/index.d.ts +8 -0
- package/dist/tools/generated/authentication/index.d.ts.map +1 -0
- package/dist/tools/generated/authentication/index.js +907 -0
- package/dist/tools/generated/authentication/index.js.map +1 -0
- package/dist/tools/generated/bigip/index.d.ts +8 -0
- package/dist/tools/generated/bigip/index.d.ts.map +1 -0
- package/dist/tools/generated/bigip/index.js +3152 -0
- package/dist/tools/generated/bigip/index.js.map +1 -0
- package/dist/tools/generated/billing_and_usage/index.d.ts +8 -0
- package/dist/tools/generated/billing_and_usage/index.d.ts.map +1 -0
- package/dist/tools/generated/billing_and_usage/index.js +2452 -0
- package/dist/tools/generated/billing_and_usage/index.js.map +1 -0
- package/dist/tools/generated/blindfold/index.d.ts +8 -0
- package/dist/tools/generated/blindfold/index.d.ts.map +1 -0
- package/dist/tools/generated/blindfold/index.js +3790 -0
- package/dist/tools/generated/blindfold/index.js.map +1 -0
- package/dist/tools/generated/bot_and_threat_defense/index.d.ts +8 -0
- package/dist/tools/generated/bot_and_threat_defense/index.d.ts.map +1 -0
- package/dist/tools/generated/bot_and_threat_defense/index.js +2746 -0
- package/dist/tools/generated/bot_and_threat_defense/index.js.map +1 -0
- package/dist/tools/generated/cdn/index.d.ts +8 -0
- package/dist/tools/generated/cdn/index.d.ts.map +1 -0
- package/dist/tools/generated/cdn/index.js +2686 -0
- package/dist/tools/generated/cdn/index.js.map +1 -0
- package/dist/tools/generated/ce_management/index.d.ts +8 -0
- package/dist/tools/generated/ce_management/index.d.ts.map +1 -0
- package/dist/tools/generated/ce_management/index.js +3812 -0
- package/dist/tools/generated/ce_management/index.js.map +1 -0
- package/dist/tools/generated/certificates/index.d.ts +8 -0
- package/dist/tools/generated/certificates/index.d.ts.map +1 -0
- package/dist/tools/generated/certificates/index.js +2547 -0
- package/dist/tools/generated/certificates/index.js.map +1 -0
- package/dist/tools/generated/cloud_infrastructure/index.d.ts +8 -0
- package/dist/tools/generated/cloud_infrastructure/index.d.ts.map +1 -0
- package/dist/tools/generated/cloud_infrastructure/index.js +3959 -0
- package/dist/tools/generated/cloud_infrastructure/index.js.map +1 -0
- package/dist/tools/generated/container_services/index.d.ts +8 -0
- package/dist/tools/generated/container_services/index.d.ts.map +1 -0
- package/dist/tools/generated/container_services/index.js +2018 -0
- package/dist/tools/generated/container_services/index.js.map +1 -0
- package/dist/tools/generated/data_and_privacy_security/index.d.ts +8 -0
- package/dist/tools/generated/data_and_privacy_security/index.d.ts.map +1 -0
- package/dist/tools/generated/data_and_privacy_security/index.js +1662 -0
- package/dist/tools/generated/data_and_privacy_security/index.js.map +1 -0
- package/dist/tools/generated/data_intelligence/index.d.ts +8 -0
- package/dist/tools/generated/data_intelligence/index.d.ts.map +1 -0
- package/dist/tools/generated/data_intelligence/index.js +1600 -0
- package/dist/tools/generated/data_intelligence/index.js.map +1 -0
- package/dist/tools/generated/ddos/index.d.ts +8 -0
- package/dist/tools/generated/ddos/index.d.ts.map +1 -0
- package/dist/tools/generated/ddos/index.js +8091 -0
- package/dist/tools/generated/ddos/index.js.map +1 -0
- package/dist/tools/generated/dependency-graph.json +26358 -0
- package/dist/tools/generated/dns/index.d.ts +8 -0
- package/dist/tools/generated/dns/index.d.ts.map +1 -0
- package/dist/tools/generated/dns/index.js +6096 -0
- package/dist/tools/generated/dns/index.js.map +1 -0
- package/dist/tools/generated/generative_ai/index.d.ts +8 -0
- package/dist/tools/generated/generative_ai/index.d.ts.map +1 -0
- package/dist/tools/generated/generative_ai/index.js +1019 -0
- package/dist/tools/generated/generative_ai/index.js.map +1 -0
- package/dist/tools/generated/managed_kubernetes/index.d.ts +8 -0
- package/dist/tools/generated/managed_kubernetes/index.d.ts.map +1 -0
- package/dist/tools/generated/managed_kubernetes/index.js +3368 -0
- package/dist/tools/generated/managed_kubernetes/index.js.map +1 -0
- package/dist/tools/generated/marketplace/index.d.ts +8 -0
- package/dist/tools/generated/marketplace/index.d.ts.map +1 -0
- package/dist/tools/generated/marketplace/index.js +4329 -0
- package/dist/tools/generated/marketplace/index.js.map +1 -0
- package/dist/tools/generated/network/index.d.ts +8 -0
- package/dist/tools/generated/network/index.d.ts.map +1 -0
- package/dist/tools/generated/network/index.js +12424 -0
- package/dist/tools/generated/network/index.js.map +1 -0
- package/dist/tools/generated/network_security/index.d.ts +8 -0
- package/dist/tools/generated/network_security/index.d.ts.map +1 -0
- package/dist/tools/generated/network_security/index.js +9637 -0
- package/dist/tools/generated/network_security/index.js.map +1 -0
- package/dist/tools/generated/nginx_one/index.d.ts +8 -0
- package/dist/tools/generated/nginx_one/index.d.ts.map +1 -0
- package/dist/tools/generated/nginx_one/index.js +1692 -0
- package/dist/tools/generated/nginx_one/index.js.map +1 -0
- package/dist/tools/generated/object_storage/index.d.ts +8 -0
- package/dist/tools/generated/object_storage/index.d.ts.map +1 -0
- package/dist/tools/generated/object_storage/index.js +996 -0
- package/dist/tools/generated/object_storage/index.js.map +1 -0
- package/dist/tools/generated/observability/index.d.ts +8 -0
- package/dist/tools/generated/observability/index.d.ts.map +1 -0
- package/dist/tools/generated/observability/index.js +5285 -0
- package/dist/tools/generated/observability/index.js.map +1 -0
- package/dist/tools/generated/rate_limiting/index.d.ts +8 -0
- package/dist/tools/generated/rate_limiting/index.d.ts.map +1 -0
- package/dist/tools/generated/rate_limiting/index.js +2108 -0
- package/dist/tools/generated/rate_limiting/index.js.map +1 -0
- package/dist/tools/generated/secops_and_incident_response/index.d.ts +8 -0
- package/dist/tools/generated/secops_and_incident_response/index.d.ts.map +1 -0
- package/dist/tools/generated/secops_and_incident_response/index.js +710 -0
- package/dist/tools/generated/secops_and_incident_response/index.js.map +1 -0
- package/dist/tools/generated/service_mesh/index.d.ts +8 -0
- package/dist/tools/generated/service_mesh/index.d.ts.map +1 -0
- package/dist/tools/generated/service_mesh/index.js +6062 -0
- package/dist/tools/generated/service_mesh/index.js.map +1 -0
- package/dist/tools/generated/shape/index.d.ts +8 -0
- package/dist/tools/generated/shape/index.d.ts.map +1 -0
- package/dist/tools/generated/shape/index.js +19381 -0
- package/dist/tools/generated/shape/index.js.map +1 -0
- package/dist/tools/generated/sites/index.d.ts +8 -0
- package/dist/tools/generated/sites/index.d.ts.map +1 -0
- package/dist/tools/generated/sites/index.js +13160 -0
- package/dist/tools/generated/sites/index.js.map +1 -0
- package/dist/tools/generated/statistics/index.d.ts +8 -0
- package/dist/tools/generated/statistics/index.d.ts.map +1 -0
- package/dist/tools/generated/statistics/index.js +8131 -0
- package/dist/tools/generated/statistics/index.js.map +1 -0
- package/dist/tools/generated/support/index.d.ts +8 -0
- package/dist/tools/generated/support/index.d.ts.map +1 -0
- package/dist/tools/generated/support/index.js +5608 -0
- package/dist/tools/generated/support/index.js.map +1 -0
- package/dist/tools/generated/telemetry_and_insights/index.d.ts +8 -0
- package/dist/tools/generated/telemetry_and_insights/index.d.ts.map +1 -0
- package/dist/tools/generated/telemetry_and_insights/index.js +2404 -0
- package/dist/tools/generated/telemetry_and_insights/index.js.map +1 -0
- package/dist/tools/generated/tenant_and_identity/index.d.ts +8 -0
- package/dist/tools/generated/tenant_and_identity/index.d.ts.map +1 -0
- package/dist/tools/generated/tenant_and_identity/index.js +18938 -0
- package/dist/tools/generated/tenant_and_identity/index.js.map +1 -0
- package/dist/tools/generated/threat_campaign/index.d.ts +8 -0
- package/dist/tools/generated/threat_campaign/index.d.ts.map +1 -0
- package/dist/tools/generated/threat_campaign/index.js +102 -0
- package/dist/tools/generated/threat_campaign/index.js.map +1 -0
- package/dist/tools/generated/users/index.d.ts +8 -0
- package/dist/tools/generated/users/index.d.ts.map +1 -0
- package/dist/tools/generated/users/index.js +1515 -0
- package/dist/tools/generated/users/index.js.map +1 -0
- package/dist/tools/generated/virtual/index.d.ts +8 -0
- package/dist/tools/generated/virtual/index.d.ts.map +1 -0
- package/dist/tools/generated/virtual/index.js +11263 -0
- package/dist/tools/generated/virtual/index.js.map +1 -0
- package/dist/tools/generated/vpm_and_node_management/index.d.ts +8 -0
- package/dist/tools/generated/vpm_and_node_management/index.d.ts.map +1 -0
- package/dist/tools/generated/vpm_and_node_management/index.js +88 -0
- package/dist/tools/generated/vpm_and_node_management/index.js.map +1 -0
- package/dist/tools/generated/waf/index.d.ts +8 -0
- package/dist/tools/generated/waf/index.d.ts.map +1 -0
- package/dist/tools/generated/waf/index.js +4586 -0
- package/dist/tools/generated/waf/index.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +27 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +115 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/utils/error-handling.d.ts +109 -0
- package/dist/utils/error-handling.d.ts.map +1 -0
- package/dist/utils/error-handling.js +239 -0
- package/dist/utils/error-handling.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logging.d.ts +75 -0
- package/dist/utils/logging.d.ts.map +1 -0
- package/dist/utils/logging.js +131 -0
- package/dist/utils/logging.js.map +1 -0
- package/manifest.json +143 -0
- 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":"AAAA;;;;;GAKG;AA4BH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAmB;IAC1D,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACT,iGAAiG;IACnG,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2DAA2D;YACxE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFX;CACA,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,+DAA+D;IAC5E,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDX;CACA,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAmB;IACxD,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,4DAA4D;IACzE,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,IAAI;SACf;KACF;IACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DX;CACA,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,+DAA+D;IAC5E,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEX;CACA,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,4BAA4B;IAC5B,kBAAkB;IAClB,0BAA0B;IAC1B,uBAAuB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,IAA4B;IAClF,IAAI,MAAM,GAAG,QAAQ,CAAC;IAEtB,2CAA2C;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,6CAA6C;IAC7C,MAAM,SAAS,GAAG,4CAA4C,CAAC;IAC/D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,OAAe,EAAE,EAAE;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,KAAK,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,SAAS,GAAG,iEAAiE,CAAC;IACpF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,QAAgB,EAAE,OAAe,EAAE,EAAE;QAC3F,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -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"}
|