@robinmordasiewicz/f5xc-xcsh 1.0.91-2601022359 → 1.0.91-2601030111
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/completions/_xcsh +4 -8
- package/completions/xcsh.bash +9 -9
- package/completions/xcsh.fish +7 -21
- package/dist/index.js +194 -17
- package/package.json +1 -1
package/completions/_xcsh
CHANGED
|
@@ -27,7 +27,7 @@ _xcsh() {
|
|
|
27
27
|
local -a domains builtins
|
|
28
28
|
domains=(
|
|
29
29
|
'admin_console_and_ui:Static UI components and console assets.'
|
|
30
|
-
'ai_services:AI assistant queries and feedback
|
|
30
|
+
'ai_services:AI assistant queries and feedback'
|
|
31
31
|
'api:Interface definitions, schema validation, and grouping.'
|
|
32
32
|
'authentication:Authentication API'
|
|
33
33
|
'bigip:iRules, data groups, and APM integration.'
|
|
@@ -45,7 +45,6 @@ _xcsh() {
|
|
|
45
45
|
'data_intelligence:Data Intelligence API'
|
|
46
46
|
'ddos:Volumetric attack mitigation and traffic scrubbing.'
|
|
47
47
|
'dns:Zones, record types, and load balancing.'
|
|
48
|
-
'generative_ai:AI assistant queries and feedback'
|
|
49
48
|
'login:Authentication and session management'
|
|
50
49
|
'managed_kubernetes:Cluster RBAC, pod security, and container registries.'
|
|
51
50
|
'marketplace:Add-on services, connectors, and TPM policies.'
|
|
@@ -71,9 +70,6 @@ _xcsh() {
|
|
|
71
70
|
'console-ui:Alias for admin_console_and_ui'
|
|
72
71
|
'ui-assets:Alias for admin_console_and_ui'
|
|
73
72
|
'static-components:Alias for admin_console_and_ui'
|
|
74
|
-
'ai:Alias for ai_services'
|
|
75
|
-
'genai:Alias for ai_services'
|
|
76
|
-
'assistant:Alias for ai_services'
|
|
77
73
|
'apisec:Alias for api'
|
|
78
74
|
'api-discovery:Alias for api'
|
|
79
75
|
'authn:Alias for authentication'
|
|
@@ -189,15 +185,15 @@ _xcsh() {
|
|
|
189
185
|
;;
|
|
190
186
|
(action)
|
|
191
187
|
case ${line[1]} in
|
|
188
|
+
(ai_services)
|
|
189
|
+
_values 'command' 'query:Query the AI assistant' 'chat:Interactive AI chat mode' 'feedback:Submit feedback for AI responses' 'eval:RBAC testing mode commands'
|
|
190
|
+
;;
|
|
192
191
|
(cloudstatus)
|
|
193
192
|
_values 'command' 'status:Get overall cloud status indicator' 'summary:Get complete status summary' 'components:List all components and status' 'incidents:List active and recent incidents' 'maintenance:List scheduled maintenance windows'
|
|
194
193
|
;;
|
|
195
194
|
(completion)
|
|
196
195
|
_values 'command' 'bash:Generate bash completion script' 'zsh:Generate zsh completion script' 'fish:Generate fish completion script'
|
|
197
196
|
;;
|
|
198
|
-
(generative_ai)
|
|
199
|
-
_values 'command' 'query:Query the AI assistant' 'chat:Interactive AI chat mode' 'feedback:Submit feedback for AI responses' 'eval:RBAC testing mode commands'
|
|
200
|
-
;;
|
|
201
197
|
(login)
|
|
202
198
|
_values 'command' 'banner:Display xcsh banner with logo' 'profile:Manage saved connection profiles' 'context:Manage default namespace context'
|
|
203
199
|
;;
|
package/completions/xcsh.bash
CHANGED
|
@@ -6,7 +6,7 @@ _xcsh_completions() {
|
|
|
6
6
|
local cur prev words cword
|
|
7
7
|
_init_completion || return
|
|
8
8
|
|
|
9
|
-
local commands="admin_console_and_ui ai_services api authentication bigip billing_and_usage blindfold bot_and_threat_defense cdn ce_management certificates cloud_infrastructure cloudstatus completion container_services data_and_privacy_security data_intelligence ddos dns
|
|
9
|
+
local commands="admin_console_and_ui ai_services api authentication bigip billing_and_usage blindfold bot_and_threat_defense cdn ce_management certificates cloud_infrastructure cloudstatus completion container_services data_and_privacy_security data_intelligence ddos dns login managed_kubernetes marketplace network network_security nginx_one object_storage observability rate_limiting secops_and_incident_response service_mesh shape sites statistics support telemetry_and_insights tenant_and_identity threat_campaign users virtual vpm_and_node_management waf console-ui ui-assets static-components apisec api-discovery authn oidc sso f5-bigip irule ltm billing-usage quotas usage-tracking bf encrypt secrets threat-defense tpm shape-bot cache content ce-mgmt edge-management ce-lifecycle cert certs ssl tls cloud infra provider vk8s containers workloads data-privacy pii sensitive-data lma di intelligence insights dos ddos-protect dns-zone zones mk8s appstack k8s-mgmt market addons extensions net routing bgp netsec nfw nginx nms nginx-plus storage s3 buckets obs monitoring synth ratelimit throttle policer secops incident-response mitigation mesh svc-mesh shape-sec safeap site deployment stats metrics logs tickets help-desk telemetry ti tenant-identity idm user-settings threats campaigns threat-intel user accounts iam lb loadbalancer vhost vpm nodes node-mgmt firewall appfw help quit exit clear history refresh"
|
|
10
10
|
local actions="list get create delete replace apply status patch add-labels remove-labels"
|
|
11
11
|
local builtins="help quit exit clear history context ctx refresh"
|
|
12
12
|
local global_flags="--help -h --version -v --no-color --output -o --namespace -ns --spec"
|
|
@@ -26,20 +26,20 @@ _xcsh_completions() {
|
|
|
26
26
|
# Second word: actions or subcommands based on first word
|
|
27
27
|
local domain="${words[1]}"
|
|
28
28
|
case "${domain}" in
|
|
29
|
-
|
|
30
|
-
COMPREPLY=($(compgen -W "
|
|
29
|
+
ai_services)
|
|
30
|
+
COMPREPLY=($(compgen -W "query chat feedback eval" -- "${cur}"))
|
|
31
31
|
return 0
|
|
32
32
|
;;
|
|
33
|
-
|
|
34
|
-
COMPREPLY=($(compgen -W "
|
|
33
|
+
ai_services/eval)
|
|
34
|
+
COMPREPLY=($(compgen -W "query feedback" -- "${cur}"))
|
|
35
35
|
return 0
|
|
36
36
|
;;
|
|
37
|
-
|
|
38
|
-
COMPREPLY=($(compgen -W "
|
|
37
|
+
cloudstatus)
|
|
38
|
+
COMPREPLY=($(compgen -W "status summary components incidents maintenance" -- "${cur}"))
|
|
39
39
|
return 0
|
|
40
40
|
;;
|
|
41
|
-
|
|
42
|
-
COMPREPLY=($(compgen -W "
|
|
41
|
+
completion)
|
|
42
|
+
COMPREPLY=($(compgen -W "bash zsh fish" -- "${cur}"))
|
|
43
43
|
return 0
|
|
44
44
|
;;
|
|
45
45
|
login)
|
package/completions/xcsh.fish
CHANGED
|
@@ -24,7 +24,7 @@ complete -c xcsh -n "__fish_use_subcommand" -a "ctx" -d 'Show current navigation
|
|
|
24
24
|
|
|
25
25
|
# Domain completions
|
|
26
26
|
complete -c xcsh -n "__fish_use_subcommand" -a "admin_console_and_ui" -d 'Static UI components and console assets.'
|
|
27
|
-
complete -c xcsh -n "__fish_use_subcommand" -a "ai_services" -d 'AI assistant queries and feedback
|
|
27
|
+
complete -c xcsh -n "__fish_use_subcommand" -a "ai_services" -d 'AI assistant queries and feedback'
|
|
28
28
|
complete -c xcsh -n "__fish_use_subcommand" -a "api" -d 'Interface definitions, schema validation, and grouping.'
|
|
29
29
|
complete -c xcsh -n "__fish_use_subcommand" -a "authentication" -d 'Authentication API'
|
|
30
30
|
complete -c xcsh -n "__fish_use_subcommand" -a "bigip" -d 'iRules, data groups, and APM integration.'
|
|
@@ -42,7 +42,6 @@ complete -c xcsh -n "__fish_use_subcommand" -a "data_and_privacy_security" -d 'P
|
|
|
42
42
|
complete -c xcsh -n "__fish_use_subcommand" -a "data_intelligence" -d 'Data Intelligence API'
|
|
43
43
|
complete -c xcsh -n "__fish_use_subcommand" -a "ddos" -d 'Volumetric attack mitigation and traffic scrubbing.'
|
|
44
44
|
complete -c xcsh -n "__fish_use_subcommand" -a "dns" -d 'Zones, record types, and load balancing.'
|
|
45
|
-
complete -c xcsh -n "__fish_use_subcommand" -a "generative_ai" -d 'AI assistant queries and feedback'
|
|
46
45
|
complete -c xcsh -n "__fish_use_subcommand" -a "login" -d 'Authentication and session management'
|
|
47
46
|
complete -c xcsh -n "__fish_use_subcommand" -a "managed_kubernetes" -d 'Cluster RBAC, pod security, and container registries.'
|
|
48
47
|
complete -c xcsh -n "__fish_use_subcommand" -a "marketplace" -d 'Add-on services, connectors, and TPM policies.'
|
|
@@ -70,9 +69,6 @@ complete -c xcsh -n "__fish_use_subcommand" -a "waf" -d 'Request inspection, att
|
|
|
70
69
|
complete -c xcsh -n "__fish_use_subcommand" -a "console-ui" -d 'Alias for admin_console_and_ui'
|
|
71
70
|
complete -c xcsh -n "__fish_use_subcommand" -a "ui-assets" -d 'Alias for admin_console_and_ui'
|
|
72
71
|
complete -c xcsh -n "__fish_use_subcommand" -a "static-components" -d 'Alias for admin_console_and_ui'
|
|
73
|
-
complete -c xcsh -n "__fish_use_subcommand" -a "ai" -d 'Alias for ai_services'
|
|
74
|
-
complete -c xcsh -n "__fish_use_subcommand" -a "genai" -d 'Alias for ai_services'
|
|
75
|
-
complete -c xcsh -n "__fish_use_subcommand" -a "assistant" -d 'Alias for ai_services'
|
|
76
72
|
complete -c xcsh -n "__fish_use_subcommand" -a "apisec" -d 'Alias for api'
|
|
77
73
|
complete -c xcsh -n "__fish_use_subcommand" -a "api-discovery" -d 'Alias for api'
|
|
78
74
|
complete -c xcsh -n "__fish_use_subcommand" -a "authn" -d 'Alias for authentication'
|
|
@@ -174,6 +170,12 @@ complete -c xcsh -n "__fish_use_subcommand" -a "firewall" -d 'Alias for waf'
|
|
|
174
170
|
complete -c xcsh -n "__fish_use_subcommand" -a "appfw" -d 'Alias for waf'
|
|
175
171
|
|
|
176
172
|
# Custom domain subcommands
|
|
173
|
+
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "query" -d 'Query the AI assistant'
|
|
174
|
+
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "chat" -d 'Interactive AI chat mode'
|
|
175
|
+
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "feedback" -d 'Submit feedback for AI responses'
|
|
176
|
+
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "eval" -d 'RBAC testing mode commands'
|
|
177
|
+
complete -c xcsh -n "__fish_seen_subcommand_from ai_services; and __fish_seen_subcommand_from eval" -a "query" -d 'Eval mode AI query'
|
|
178
|
+
complete -c xcsh -n "__fish_seen_subcommand_from ai_services; and __fish_seen_subcommand_from eval" -a "feedback" -d 'Eval mode feedback submission'
|
|
177
179
|
complete -c xcsh -n "__fish_seen_subcommand_from cloudstatus" -a "status" -d 'Get overall cloud status indicator'
|
|
178
180
|
complete -c xcsh -n "__fish_seen_subcommand_from cloudstatus" -a "summary" -d 'Get complete status summary'
|
|
179
181
|
complete -c xcsh -n "__fish_seen_subcommand_from cloudstatus" -a "components" -d 'List all components and status'
|
|
@@ -182,12 +184,6 @@ complete -c xcsh -n "__fish_seen_subcommand_from cloudstatus" -a "maintenance" -
|
|
|
182
184
|
complete -c xcsh -n "__fish_seen_subcommand_from completion" -a "bash" -d 'Generate bash completion script'
|
|
183
185
|
complete -c xcsh -n "__fish_seen_subcommand_from completion" -a "zsh" -d 'Generate zsh completion script'
|
|
184
186
|
complete -c xcsh -n "__fish_seen_subcommand_from completion" -a "fish" -d 'Generate fish completion script'
|
|
185
|
-
complete -c xcsh -n "__fish_seen_subcommand_from generative_ai" -a "query" -d 'Query the AI assistant'
|
|
186
|
-
complete -c xcsh -n "__fish_seen_subcommand_from generative_ai" -a "chat" -d 'Interactive AI chat mode'
|
|
187
|
-
complete -c xcsh -n "__fish_seen_subcommand_from generative_ai" -a "feedback" -d 'Submit feedback for AI responses'
|
|
188
|
-
complete -c xcsh -n "__fish_seen_subcommand_from generative_ai" -a "eval" -d 'RBAC testing mode commands'
|
|
189
|
-
complete -c xcsh -n "__fish_seen_subcommand_from generative_ai; and __fish_seen_subcommand_from eval" -a "query" -d 'Eval mode AI query'
|
|
190
|
-
complete -c xcsh -n "__fish_seen_subcommand_from generative_ai; and __fish_seen_subcommand_from eval" -a "feedback" -d 'Eval mode feedback submission'
|
|
191
187
|
complete -c xcsh -n "__fish_seen_subcommand_from login" -a "banner" -d 'Display xcsh banner with logo'
|
|
192
188
|
complete -c xcsh -n "__fish_seen_subcommand_from login" -a "profile" -d 'Manage saved connection profiles'
|
|
193
189
|
complete -c xcsh -n "__fish_seen_subcommand_from login; and __fish_seen_subcommand_from profile" -a "list" -d 'List all saved profiles'
|
|
@@ -211,16 +207,6 @@ complete -c xcsh -n "__fish_seen_subcommand_from admin_console_and_ui" -a "statu
|
|
|
211
207
|
complete -c xcsh -n "__fish_seen_subcommand_from admin_console_and_ui" -a "patch" -d 'Patch a resource'
|
|
212
208
|
complete -c xcsh -n "__fish_seen_subcommand_from admin_console_and_ui" -a "add-labels" -d 'Add labels to a resource'
|
|
213
209
|
complete -c xcsh -n "__fish_seen_subcommand_from admin_console_and_ui" -a "remove-labels" -d 'Remove labels from a resource'
|
|
214
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "list" -d 'List resources'
|
|
215
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "get" -d 'Get a specific resource'
|
|
216
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "create" -d 'Create a new resource'
|
|
217
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "delete" -d 'Delete a resource'
|
|
218
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "replace" -d 'Replace a resource'
|
|
219
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "apply" -d 'Apply configuration from file'
|
|
220
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "status" -d 'Get resource status'
|
|
221
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "patch" -d 'Patch a resource'
|
|
222
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "add-labels" -d 'Add labels to a resource'
|
|
223
|
-
complete -c xcsh -n "__fish_seen_subcommand_from ai_services" -a "remove-labels" -d 'Remove labels from a resource'
|
|
224
210
|
complete -c xcsh -n "__fish_seen_subcommand_from api" -a "list" -d 'List resources'
|
|
225
211
|
complete -c xcsh -n "__fish_seen_subcommand_from api" -a "get" -d 'Get a specific resource'
|
|
226
212
|
complete -c xcsh -n "__fish_seen_subcommand_from api" -a "create" -d 'Create a new resource'
|
package/dist/index.js
CHANGED
|
@@ -47015,8 +47015,8 @@ function getLogoModeFromEnv(envPrefix) {
|
|
|
47015
47015
|
var CLI_NAME = "xcsh";
|
|
47016
47016
|
var CLI_FULL_NAME = "F5 Distributed Cloud Shell";
|
|
47017
47017
|
function getVersion() {
|
|
47018
|
-
if ("v1.0.91-
|
|
47019
|
-
return "v1.0.91-
|
|
47018
|
+
if ("v1.0.91-2601030111") {
|
|
47019
|
+
return "v1.0.91-2601030111";
|
|
47020
47020
|
}
|
|
47021
47021
|
if (process.env.XCSH_VERSION) {
|
|
47022
47022
|
return process.env.XCSH_VERSION;
|
|
@@ -143618,6 +143618,174 @@ function buildCloudstatusSpecs() {
|
|
|
143618
143618
|
})
|
|
143619
143619
|
};
|
|
143620
143620
|
}
|
|
143621
|
+
function buildAIServicesSpecs() {
|
|
143622
|
+
return {
|
|
143623
|
+
query: buildCommandSpec({
|
|
143624
|
+
command: "ai_services query",
|
|
143625
|
+
description: "Query the F5 Distributed Cloud AI assistant with a natural language question. Get intelligent responses about load balancers, WAF, sites, security events, and platform operations.",
|
|
143626
|
+
usage: "xcsh ai_services query <question> [--namespace <ns>] [--output <format>]",
|
|
143627
|
+
flags: [
|
|
143628
|
+
{
|
|
143629
|
+
name: "--namespace",
|
|
143630
|
+
alias: "-ns",
|
|
143631
|
+
description: "Namespace context for the query",
|
|
143632
|
+
type: "string"
|
|
143633
|
+
}
|
|
143634
|
+
],
|
|
143635
|
+
examples: [
|
|
143636
|
+
{
|
|
143637
|
+
command: 'xcsh ai_services query "What load balancers exist?"',
|
|
143638
|
+
description: "Ask about load balancers in your tenant"
|
|
143639
|
+
},
|
|
143640
|
+
{
|
|
143641
|
+
command: 'xcsh ai query "Show me all WAF policies" --output json',
|
|
143642
|
+
description: "Get WAF policies as JSON using short alias"
|
|
143643
|
+
},
|
|
143644
|
+
{
|
|
143645
|
+
command: 'xcsh genai query "Are there any security events?" --namespace production',
|
|
143646
|
+
description: "Query security events in a specific namespace"
|
|
143647
|
+
}
|
|
143648
|
+
],
|
|
143649
|
+
category: "ai_services",
|
|
143650
|
+
related: ["ai_services chat", "ai_services feedback"]
|
|
143651
|
+
}),
|
|
143652
|
+
chat: buildCommandSpec({
|
|
143653
|
+
command: "ai_services chat",
|
|
143654
|
+
description: "Start an interactive multi-turn conversation with the AI assistant. Maintains context across exchanges for follow-up questions and complex troubleshooting.",
|
|
143655
|
+
usage: "xcsh ai_services chat [--namespace <ns>]",
|
|
143656
|
+
flags: [
|
|
143657
|
+
{
|
|
143658
|
+
name: "--namespace",
|
|
143659
|
+
alias: "-ns",
|
|
143660
|
+
description: "Default namespace context for the session",
|
|
143661
|
+
type: "string"
|
|
143662
|
+
}
|
|
143663
|
+
],
|
|
143664
|
+
examples: [
|
|
143665
|
+
{
|
|
143666
|
+
command: "xcsh ai_services chat",
|
|
143667
|
+
description: "Start an interactive chat session"
|
|
143668
|
+
},
|
|
143669
|
+
{
|
|
143670
|
+
command: "xcsh ai chat --namespace staging",
|
|
143671
|
+
description: "Start chat with default namespace context"
|
|
143672
|
+
}
|
|
143673
|
+
],
|
|
143674
|
+
category: "ai_services",
|
|
143675
|
+
related: ["ai_services query", "ai_services feedback"]
|
|
143676
|
+
}),
|
|
143677
|
+
feedback: buildCommandSpec({
|
|
143678
|
+
command: "ai_services feedback",
|
|
143679
|
+
description: "Submit feedback for AI responses to improve quality. Provide positive feedback for helpful responses or negative feedback with specific reasons.",
|
|
143680
|
+
usage: "xcsh ai_services feedback [--positive | --negative <type>] [--comment <text>] [--query-id <id>]",
|
|
143681
|
+
flags: [
|
|
143682
|
+
{
|
|
143683
|
+
name: "--positive",
|
|
143684
|
+
description: "Mark the response as helpful",
|
|
143685
|
+
type: "boolean"
|
|
143686
|
+
},
|
|
143687
|
+
{
|
|
143688
|
+
name: "--negative",
|
|
143689
|
+
description: "Mark response as needing improvement",
|
|
143690
|
+
type: "string",
|
|
143691
|
+
choices: [
|
|
143692
|
+
"inaccurate",
|
|
143693
|
+
"irrelevant",
|
|
143694
|
+
"incomplete",
|
|
143695
|
+
"poor_format",
|
|
143696
|
+
"slow",
|
|
143697
|
+
"other"
|
|
143698
|
+
]
|
|
143699
|
+
},
|
|
143700
|
+
{
|
|
143701
|
+
name: "--comment",
|
|
143702
|
+
alias: "-c",
|
|
143703
|
+
description: "Additional feedback comments",
|
|
143704
|
+
type: "string"
|
|
143705
|
+
},
|
|
143706
|
+
{
|
|
143707
|
+
name: "--query-id",
|
|
143708
|
+
description: "Specific query ID to provide feedback for",
|
|
143709
|
+
type: "string"
|
|
143710
|
+
}
|
|
143711
|
+
],
|
|
143712
|
+
examples: [
|
|
143713
|
+
{
|
|
143714
|
+
command: "xcsh ai_services feedback --positive",
|
|
143715
|
+
description: "Mark last response as helpful"
|
|
143716
|
+
},
|
|
143717
|
+
{
|
|
143718
|
+
command: "xcsh ai feedback --negative inaccurate --comment 'Response was outdated'",
|
|
143719
|
+
description: "Submit negative feedback with reason"
|
|
143720
|
+
}
|
|
143721
|
+
],
|
|
143722
|
+
category: "ai_services",
|
|
143723
|
+
related: ["ai_services query", "ai_services chat"]
|
|
143724
|
+
}),
|
|
143725
|
+
"eval query": buildCommandSpec({
|
|
143726
|
+
command: "ai_services eval query",
|
|
143727
|
+
description: "Test AI query access with RBAC evaluation. Evaluate whether a query would be permitted under current access control configuration.",
|
|
143728
|
+
usage: "xcsh ai_services eval query <question> [--namespace <ns>]",
|
|
143729
|
+
flags: [
|
|
143730
|
+
{
|
|
143731
|
+
name: "--namespace",
|
|
143732
|
+
alias: "-ns",
|
|
143733
|
+
description: "Namespace context for RBAC evaluation",
|
|
143734
|
+
type: "string"
|
|
143735
|
+
}
|
|
143736
|
+
],
|
|
143737
|
+
examples: [
|
|
143738
|
+
{
|
|
143739
|
+
command: 'xcsh ai_services eval query "List all namespaces"',
|
|
143740
|
+
description: "Evaluate query access permissions"
|
|
143741
|
+
},
|
|
143742
|
+
{
|
|
143743
|
+
command: 'xcsh ai eval query "Show security events" --namespace production',
|
|
143744
|
+
description: "Test namespace-scoped access"
|
|
143745
|
+
}
|
|
143746
|
+
],
|
|
143747
|
+
category: "ai_services",
|
|
143748
|
+
related: ["ai_services eval feedback", "ai_services query"]
|
|
143749
|
+
}),
|
|
143750
|
+
"eval feedback": buildCommandSpec({
|
|
143751
|
+
command: "ai_services eval feedback",
|
|
143752
|
+
description: "Test feedback submission access with RBAC evaluation. Verify feedback operations would be permitted without actually submitting.",
|
|
143753
|
+
usage: "xcsh ai_services eval feedback [--positive | --negative <type>]",
|
|
143754
|
+
flags: [
|
|
143755
|
+
{
|
|
143756
|
+
name: "--positive",
|
|
143757
|
+
description: "Test positive feedback submission",
|
|
143758
|
+
type: "boolean"
|
|
143759
|
+
},
|
|
143760
|
+
{
|
|
143761
|
+
name: "--negative",
|
|
143762
|
+
description: "Test negative feedback submission",
|
|
143763
|
+
type: "string",
|
|
143764
|
+
choices: [
|
|
143765
|
+
"inaccurate",
|
|
143766
|
+
"irrelevant",
|
|
143767
|
+
"incomplete",
|
|
143768
|
+
"poor_format",
|
|
143769
|
+
"slow",
|
|
143770
|
+
"other"
|
|
143771
|
+
]
|
|
143772
|
+
}
|
|
143773
|
+
],
|
|
143774
|
+
examples: [
|
|
143775
|
+
{
|
|
143776
|
+
command: "xcsh ai_services eval feedback --positive",
|
|
143777
|
+
description: "Evaluate positive feedback access"
|
|
143778
|
+
},
|
|
143779
|
+
{
|
|
143780
|
+
command: "xcsh ai eval feedback --negative incomplete",
|
|
143781
|
+
description: "Test negative feedback permission"
|
|
143782
|
+
}
|
|
143783
|
+
],
|
|
143784
|
+
category: "ai_services",
|
|
143785
|
+
related: ["ai_services eval query", "ai_services feedback"]
|
|
143786
|
+
})
|
|
143787
|
+
};
|
|
143788
|
+
}
|
|
143621
143789
|
function buildLoginSpecs() {
|
|
143622
143790
|
return {
|
|
143623
143791
|
banner: buildCommandSpec({
|
|
@@ -143759,6 +143927,7 @@ function buildLoginSpecs() {
|
|
|
143759
143927
|
function getCommandSpec(commandPath) {
|
|
143760
143928
|
const cloudstatusSpecs = buildCloudstatusSpecs();
|
|
143761
143929
|
const loginSpecs = buildLoginSpecs();
|
|
143930
|
+
const aiServicesSpecs = buildAIServicesSpecs();
|
|
143762
143931
|
const normalized = commandPath.toLowerCase().trim();
|
|
143763
143932
|
if (normalized.startsWith("cloudstatus ")) {
|
|
143764
143933
|
const subcommand = normalized.replace("cloudstatus ", "");
|
|
@@ -143768,6 +143937,13 @@ function getCommandSpec(commandPath) {
|
|
|
143768
143937
|
const subcommand = normalized.replace("login ", "");
|
|
143769
143938
|
return loginSpecs[subcommand];
|
|
143770
143939
|
}
|
|
143940
|
+
const aiAliases = ["ai_services ", "ai ", "genai ", "assistant "];
|
|
143941
|
+
for (const alias of aiAliases) {
|
|
143942
|
+
if (normalized.startsWith(alias)) {
|
|
143943
|
+
const subcommand = normalized.replace(alias, "");
|
|
143944
|
+
return aiServicesSpecs[subcommand];
|
|
143945
|
+
}
|
|
143946
|
+
}
|
|
143771
143947
|
return void 0;
|
|
143772
143948
|
}
|
|
143773
143949
|
function toGlobalFlagSpec(flag) {
|
|
@@ -147546,7 +147722,7 @@ var completionDomain = {
|
|
|
147546
147722
|
subcommands: /* @__PURE__ */ new Map()
|
|
147547
147723
|
};
|
|
147548
147724
|
|
|
147549
|
-
// src/domains/
|
|
147725
|
+
// src/domains/ai_services/client.ts
|
|
147550
147726
|
var GenAIClient = class {
|
|
147551
147727
|
constructor(apiClient) {
|
|
147552
147728
|
this.apiClient = apiClient;
|
|
@@ -147638,7 +147814,7 @@ function getGenAIClient(apiClient) {
|
|
|
147638
147814
|
return cachedClient;
|
|
147639
147815
|
}
|
|
147640
147816
|
|
|
147641
|
-
// src/domains/
|
|
147817
|
+
// src/domains/ai_services/types.ts
|
|
147642
147818
|
function getResponseType(response) {
|
|
147643
147819
|
if (response.generic_response) return "generic_response";
|
|
147644
147820
|
if (response.explain_log) return "explain_log";
|
|
@@ -147659,7 +147835,7 @@ function getValidFeedbackTypes() {
|
|
|
147659
147835
|
return Object.keys(FEEDBACK_TYPE_MAP);
|
|
147660
147836
|
}
|
|
147661
147837
|
|
|
147662
|
-
// src/domains/
|
|
147838
|
+
// src/domains/ai_services/response-renderer.ts
|
|
147663
147839
|
function renderResponse(response) {
|
|
147664
147840
|
const lines = [];
|
|
147665
147841
|
const responseType = getResponseType(response);
|
|
@@ -147839,7 +148015,7 @@ function renderWidgetResponse(response) {
|
|
|
147839
148015
|
return lines;
|
|
147840
148016
|
}
|
|
147841
148017
|
|
|
147842
|
-
// src/domains/
|
|
148018
|
+
// src/domains/ai_services/query.ts
|
|
147843
148019
|
var lastQueryState = {
|
|
147844
148020
|
namespace: "",
|
|
147845
148021
|
lastQueryId: null,
|
|
@@ -147954,7 +148130,7 @@ var queryCommand = {
|
|
|
147954
148130
|
}
|
|
147955
148131
|
};
|
|
147956
148132
|
|
|
147957
|
-
// src/domains/
|
|
148133
|
+
// src/domains/ai_services/chat.ts
|
|
147958
148134
|
import * as readline from "readline";
|
|
147959
148135
|
function parseChatArgs(args, session) {
|
|
147960
148136
|
const { remainingArgs } = parseDomainOutputFlags(
|
|
@@ -148213,7 +148389,7 @@ var chatCommand = {
|
|
|
148213
148389
|
}
|
|
148214
148390
|
};
|
|
148215
148391
|
|
|
148216
|
-
// src/domains/
|
|
148392
|
+
// src/domains/ai_services/feedback.ts
|
|
148217
148393
|
function parseFeedbackArgs(args, session) {
|
|
148218
148394
|
const { remainingArgs } = parseDomainOutputFlags(
|
|
148219
148395
|
args,
|
|
@@ -148357,7 +148533,7 @@ Negative types: ${validTypes}`
|
|
|
148357
148533
|
}
|
|
148358
148534
|
};
|
|
148359
148535
|
|
|
148360
|
-
// src/domains/
|
|
148536
|
+
// src/domains/ai_services/eval.ts
|
|
148361
148537
|
function parseEvalQueryArgs(args, session) {
|
|
148362
148538
|
const { options, remainingArgs } = parseDomainOutputFlags(
|
|
148363
148539
|
args,
|
|
@@ -148595,9 +148771,9 @@ var evalSubcommands = {
|
|
|
148595
148771
|
defaultCommand: evalQueryCommand
|
|
148596
148772
|
};
|
|
148597
148773
|
|
|
148598
|
-
// src/domains/
|
|
148599
|
-
var
|
|
148600
|
-
name: "
|
|
148774
|
+
// src/domains/ai_services/index.ts
|
|
148775
|
+
var aiServicesDomain = {
|
|
148776
|
+
name: "ai_services",
|
|
148601
148777
|
description: "Interact with the F5 Distributed Cloud AI assistant for natural language queries about platform operations. Ask questions about load balancers, WAF configurations, site status, security events, or any platform topic. Supports single queries with follow-up suggestions, interactive multi-turn chat sessions, and feedback submission to improve AI responses.",
|
|
148602
148778
|
descriptionShort: "AI assistant queries and feedback",
|
|
148603
148779
|
descriptionMedium: "Query the AI assistant for help with F5 XC platform operations, configurations, security analysis, and troubleshooting.",
|
|
@@ -148609,18 +148785,19 @@ var generativeAiDomain = {
|
|
|
148609
148785
|
]),
|
|
148610
148786
|
subcommands: /* @__PURE__ */ new Map([["eval", evalSubcommands]])
|
|
148611
148787
|
};
|
|
148612
|
-
var
|
|
148788
|
+
var aiServicesAliases = ["ai", "genai", "assistant"];
|
|
148613
148789
|
|
|
148614
148790
|
// src/domains/index.ts
|
|
148615
148791
|
customDomains.register(loginDomain);
|
|
148616
148792
|
customDomains.register(cloudstatusDomain);
|
|
148617
148793
|
customDomains.register(completionDomain);
|
|
148618
|
-
customDomains.register(
|
|
148794
|
+
customDomains.register(aiServicesDomain);
|
|
148619
148795
|
for (const domain of customDomains.all()) {
|
|
148620
148796
|
completionRegistry.registerDomain(fromCustomDomain(domain));
|
|
148621
148797
|
}
|
|
148798
|
+
var excludedApiDomains = /* @__PURE__ */ new Set(["generative_ai"]);
|
|
148622
148799
|
for (const [, info] of domainRegistry) {
|
|
148623
|
-
if (!completionRegistry.has(info.name)) {
|
|
148800
|
+
if (!completionRegistry.has(info.name) && !excludedApiDomains.has(info.name)) {
|
|
148624
148801
|
completionRegistry.registerDomain(fromApiDomain(info));
|
|
148625
148802
|
}
|
|
148626
148803
|
}
|
|
@@ -148628,8 +148805,8 @@ var domainAliases = /* @__PURE__ */ new Map();
|
|
|
148628
148805
|
for (const alias of cloudstatusAliases) {
|
|
148629
148806
|
domainAliases.set(alias, "cloudstatus");
|
|
148630
148807
|
}
|
|
148631
|
-
for (const alias of
|
|
148632
|
-
domainAliases.set(alias, "
|
|
148808
|
+
for (const alias of aiServicesAliases) {
|
|
148809
|
+
domainAliases.set(alias, "ai_services");
|
|
148633
148810
|
}
|
|
148634
148811
|
function resolveDomainAlias(name) {
|
|
148635
148812
|
return domainAliases.get(name) ?? name;
|