@robinmordasiewicz/f5xc-xcsh 1.0.84-2601020301 → 1.0.84-2601020527

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 CHANGED
@@ -11,7 +11,7 @@ _xcsh() {
11
11
  '(-h --help)'{-h,--help}'[Show help information]'
12
12
  '(-v --version)'{-v,--version}'[Show version number]'
13
13
  '--no-color[Disable color output]'
14
- '(-o --output)'{-o,--output}'[Output format]:format:(json yaml table)'
14
+ '(-o --output)'{-o,--output}'[Output format]:format:(json yaml table text tsv none spec)'
15
15
  '(-ns --namespace)'{-ns,--namespace}'[Namespace]:namespace:_xcsh_namespaces'
16
16
  '--spec[Output command specification as JSON for AI assistants]'
17
17
  )
@@ -221,7 +221,7 @@ _xcsh() {
221
221
  action_opts=(
222
222
  '(-n --name)'{-n,--name}'[Resource name]:name:'
223
223
  '(-ns --namespace)'{-ns,--namespace}'[Namespace]:namespace:_xcsh_namespaces'
224
- '(-o --output)'{-o,--output}'[Output format]:format:(json yaml table)'
224
+ '(-o --output)'{-o,--output}'[Output format]:format:(json yaml table text tsv none spec)'
225
225
  '--limit[Maximum results]:limit:'
226
226
  '--label[Filter by label]:label:'
227
227
  '(-f --file)'{-f,--file}'[Configuration file]:file:_files'
@@ -8,7 +8,7 @@ complete -c xcsh -f
8
8
  complete -c xcsh -s h -l help -d 'Show help information'
9
9
  complete -c xcsh -s v -l version -d 'Show version number'
10
10
  complete -c xcsh -l no-color -d 'Disable color output'
11
- complete -c xcsh -s o -l output -d 'Output format' -xa 'json yaml table'
11
+ complete -c xcsh -s o -l output -d 'Output format' -xa 'json yaml table text tsv none spec'
12
12
  complete -c xcsh -l namespace -s ns -d 'Namespace' -xa 'default system shared'
13
13
  complete -c xcsh -l spec -d 'Output command specification as JSON for AI assistants'
14
14
 
package/dist/index.js CHANGED
@@ -46435,41 +46435,41 @@ var HistoryManager = class _HistoryManager {
46435
46435
  // src/domains/descriptions.generated.ts
46436
46436
  var generatedDescriptions = {
46437
46437
  version: "1.0.0",
46438
- generatedAt: "2025-12-30T03:58:36.781Z",
46438
+ generatedAt: "2026-01-02T03:29:16.852Z",
46439
46439
  cli: {
46440
46440
  "xcsh": {
46441
- short: "Navigate cloud services via interactive shell",
46442
- medium: "Manage multi-tenant connections, execute domain operations across 100+ services, and output results in JSON, YAML, or table format.",
46443
- long: "Interact with cloud services through an intelligent shell environment. Navigate over 100 domain operations using tab completion for commands, flags, and values. Organize multiple tenant connections with named profiles and switch contexts without re-authenticating. Execute commands directly from scripts or explore interactively with history and suggestions. Configure output format as JSON, YAML, or formatted tables. Set behavior through environment variables or persistent profile settings. Generate shell completions for bash, zsh, and fish terminals."
46441
+ short: "Configure multi-cloud application delivery services",
46442
+ medium: "Manage load balancers, security policies, DNS routing, and cloud site provisioning across hybrid environments.",
46443
+ long: "Deploy distributed application infrastructure spanning AWS, Azure, GCP, and edge locations. Create origin pools with health monitoring and traffic management. Apply WAF rules, bot mitigation, and DDoS protection. Set up DNS zones supporting geographic and weighted routing strategies. Establish network segmentation and service mesh configurations. Monitor performance through observability dashboards. Validate subscription quotas before resource creation. Generate JSON output for CI/CD pipeline integration."
46444
46444
  }
46445
46445
  },
46446
46446
  domains: {
46447
46447
  "login": {
46448
- short: "Configure session credentials and environment profiles",
46449
- medium: "Set up authentication tokens, organize named profiles for multiple tenants, and switch between target environments for CLI operations.",
46450
- long: "Control authentication and session state across multiple environments. Run 'show' to display current connection details and token status. Organize credentials with 'profile' to maintain separate configurations for development, staging, and production tenants. Switch active targets via 'context' without re-authenticating. Run 'banner' for visual confirmation of the active environment. Profiles persist locally with token-based and certificate authentication support.",
46448
+ short: "Configure credentials, profiles, and session context",
46449
+ medium: "Set up authentication credentials, organize named profiles for different environments, and control which connection applies to subsequent operations.",
46450
+ long: "Handle authentication and session configuration for CLI operations. Create named profiles to maintain separate credentials for development, staging, and production environments. View current authentication status with 'show', organize credentials using 'profile', switch active connections with 'context', and display session information via 'banner'. Profiles store tokens and target URLs, enabling quick environment switching without re-entering credentials.",
46451
46451
  subcommands: {
46452
46452
  "profile": {
46453
- short: "Manage saved connection configurations for authentication",
46454
- medium: "Store and switch between multiple tenant connection settings. Create, list, and activate named configurations to avoid repeated credential entry.",
46455
- long: "Organize tenant connections as reusable named entries for rapid environment switching. Each entry persists URLs and authentication tokens, removing manual reconfiguration overhead. Available operations: 'list' enumerates saved entries, 'show' reveals configuration details, 'create' registers new connections, 'delete' purges obsolete ones, 'active' identifies the current selection, and 'use' changes context. Ideal for workflows spanning development, staging, and production tiers."
46453
+ short: "Manage saved authentication credentials for tenants",
46454
+ medium: "Store named configurations with URLs and tokens for quick switching between staging, production, and development environments.",
46455
+ long: "Organize credentials and tenant configurations in named entries for streamlined environment management. Create entries to store connection URLs and tokens, list available configurations, switch between active contexts, and remove outdated items. Settings persist across sessions, eliminating repeated credential entry when working with multiple tenants. Use the active command to display the current selection, or switch contexts with the use command for immediate environment changes."
46456
46456
  },
46457
46457
  "context": {
46458
- short: "Manage default namespace for scoping operations",
46459
- medium: "Configure and display the active namespace used to scope commands. Set, view, or list available namespaces for your session.",
46460
- long: "Control which namespace subsequent operations target by default. Namespaces partition resources and configurations, ensuring commands affect only the intended area. Use 'show' to display the current selection, 'set' to switch contexts, and 'list' to enumerate accessible options. Once configured, the choice persists across commands until explicitly changed, eliminating repeated namespace flag usage."
46458
+ short: "Manage default namespace scope for CLI operations",
46459
+ medium: "Configure and switch between namespace settings that control the default boundary for all commands.",
46460
+ long: "Organize resources into logical groupings through namespace scope management. Setting a default namespace eliminates the need to pass --namespace on every command, streamlining workflows when operating within a single boundary for extended periods. Use 'show' to display current settings, 'set' to change the active namespace, and 'list' to view available options. These preferences persist across sessions until explicitly changed."
46461
46461
  }
46462
46462
  }
46463
46463
  },
46464
46464
  "cloudstatus": {
46465
- short: "Check infrastructure health and active incidents",
46466
- medium: "Query service availability, component health, ongoing incidents, and scheduled maintenance windows across infrastructure regions.",
46467
- long: "Display real-time operational state for infrastructure components and services. Track ongoing incidents with severity levels and resolution timelines. View upcoming maintenance windows affecting particular regions or deployments. Filter results by component type, severity, time range, or operational condition. Retrieve incident history and outage notifications. Commands support monitoring degraded performance indicators and uptime metrics useful for operations teams."
46465
+ short: "Track service health and operational incidents",
46466
+ medium: "Display real-time platform availability, active incident reports, scheduled maintenance windows, and component status across global regions.",
46467
+ long: "Query operational health for infrastructure components and services. Retrieve active incident details with severity levels and resolution timelines. List upcoming maintenance windows and generate status summaries. Filter results by component type, geographic region, or time range. Output formats support automation workflows and alerting integrations. Commands include status overview, component breakdown, incident history, and maintenance schedules."
46468
46468
  },
46469
46469
  "completion": {
46470
- short: "Generate tab-assist scripts for supported shells",
46471
- medium: "Create shell scripts enabling tab-triggered suggestions for commands, subcommands, flags, and option values in bash, zsh, and fish.",
46472
- long: "Output autocomplete functionality for your terminal environment. Bash, zsh, and fish are fully supported with context-aware prompts covering command names, nested subcommands, available flags, and valid argument values. Installation requires sourcing the generated content in your shell's configuration file (.bashrc, .zshrc, or config.fish). Execute the appropriate subcommand to produce the script, then follow shell-specific setup instructions to activate intelligent tab behavior."
46470
+ short: "Generate tab-completion scripts for popular shells",
46471
+ medium: "Create autocompletion support for bash, zsh, and fish terminals enabling tab-triggered command and flag discovery.",
46472
+ long: "Build shell integration scripts that activate tab-triggered suggestions in your terminal environment. Supports bash, zsh, and fish with automatic command discovery, flag hints, and argument recommendations. Install the generated output in your shell's configuration directory to enable this functionality. Each supported shell includes tailored setup instructions and behaviors matching its native conventions for seamless integration."
46473
46473
  }
46474
46474
  }
46475
46475
  };
@@ -46620,8 +46620,8 @@ function getLogoModeFromEnv(envPrefix) {
46620
46620
  var CLI_NAME = "xcsh";
46621
46621
  var CLI_FULL_NAME = "F5 Distributed Cloud Shell";
46622
46622
  function getVersion() {
46623
- if ("v1.0.84-2601020301") {
46624
- return "v1.0.84-2601020301";
46623
+ if ("v1.0.84-2601020527") {
46624
+ return "v1.0.84-2601020527";
46625
46625
  }
46626
46626
  if (process.env.XCSH_VERSION) {
46627
46627
  return process.env.XCSH_VERSION;
@@ -47363,6 +47363,16 @@ var APIClient = class {
47363
47363
  var import_yaml2 = __toESM(require_dist(), 1);
47364
47364
 
47365
47365
  // src/output/types.ts
47366
+ var ALL_OUTPUT_FORMATS = [
47367
+ "json",
47368
+ "yaml",
47369
+ "table",
47370
+ "text",
47371
+ "tsv",
47372
+ "none",
47373
+ "spec"
47374
+ ];
47375
+ var OUTPUT_FORMAT_HELP = ALL_OUTPUT_FORMATS.join(", ");
47366
47376
  var DEFAULT_TABLE_STYLE = {
47367
47377
  unicode: true,
47368
47378
  coloredBorders: true,
@@ -47374,7 +47384,7 @@ var PLAIN_TABLE_STYLE = {
47374
47384
  headerStyle: "normal"
47375
47385
  };
47376
47386
  function isValidOutputFormat(format) {
47377
- return ["json", "yaml", "table", "text", "tsv", "none", "spec"].includes(
47387
+ return ALL_OUTPUT_FORMATS.includes(
47378
47388
  format.toLowerCase()
47379
47389
  );
47380
47390
  }
@@ -48000,6 +48010,140 @@ function formatLabel(key) {
48000
48010
  return withSpaces.charAt(0).toUpperCase() + withSpaces.slice(1);
48001
48011
  }
48002
48012
 
48013
+ // src/cloudstatus/types.ts
48014
+ var BASE_URL = "https://www.f5cloudstatus.com/api/v2";
48015
+ var StatusIndicator = {
48016
+ None: "none",
48017
+ Minor: "minor",
48018
+ Major: "major",
48019
+ Critical: "critical",
48020
+ Maintenance: "maintenance"
48021
+ };
48022
+ var ComponentStatus = {
48023
+ Operational: "operational",
48024
+ DegradedPerformance: "degraded_performance",
48025
+ PartialOutage: "partial_outage",
48026
+ MajorOutage: "major_outage",
48027
+ UnderMaintenance: "under_maintenance"
48028
+ };
48029
+ var IncidentStatus = {
48030
+ Investigating: "investigating",
48031
+ Identified: "identified",
48032
+ Monitoring: "monitoring",
48033
+ Resolved: "resolved",
48034
+ Postmortem: "postmortem"
48035
+ };
48036
+ var MaintenanceStatus = {
48037
+ Scheduled: "scheduled",
48038
+ InProgress: "in_progress",
48039
+ Verifying: "verifying",
48040
+ Completed: "completed"
48041
+ };
48042
+ var ExitCode = {
48043
+ Healthy: 0,
48044
+ Minor: 1,
48045
+ Major: 2,
48046
+ Critical: 3,
48047
+ Maintenance: 4,
48048
+ APIError: 10,
48049
+ ParseError: 11
48050
+ };
48051
+ var EXIT_CODE_HELP = Object.entries(ExitCode).filter(([, v]) => typeof v === "number" && v < 10).map(([k, v]) => `${v}=${k.toLowerCase()}`).join(", ");
48052
+ var PredefinedRegions = [
48053
+ {
48054
+ id: "north-america",
48055
+ name: "north-america",
48056
+ displayName: "North America"
48057
+ },
48058
+ {
48059
+ id: "south-america",
48060
+ name: "south-america",
48061
+ displayName: "South America"
48062
+ },
48063
+ { id: "europe", name: "europe", displayName: "Europe" },
48064
+ { id: "asia", name: "asia", displayName: "Asia" },
48065
+ { id: "oceania", name: "oceania", displayName: "Oceania" },
48066
+ { id: "middle-east", name: "middle-east", displayName: "Middle East" }
48067
+ ];
48068
+ function isComponentOperational(component) {
48069
+ return component.status === ComponentStatus.Operational;
48070
+ }
48071
+ function isComponentDegraded(component) {
48072
+ return component.status !== ComponentStatus.Operational;
48073
+ }
48074
+ function isIncidentResolved(incident) {
48075
+ return incident.status === IncidentStatus.Resolved || incident.status === IncidentStatus.Postmortem;
48076
+ }
48077
+ function isIncidentActive(incident) {
48078
+ return !isIncidentResolved(incident);
48079
+ }
48080
+ function isMaintenanceUpcoming(maint) {
48081
+ return maint.status === MaintenanceStatus.Scheduled;
48082
+ }
48083
+ function isMaintenanceActive(maint) {
48084
+ return maint.status === MaintenanceStatus.InProgress || maint.status === MaintenanceStatus.Verifying;
48085
+ }
48086
+ function isMaintenanceCompleted(maint) {
48087
+ return maint.status === MaintenanceStatus.Completed;
48088
+ }
48089
+ function statusIndicatorToExitCode(indicator) {
48090
+ switch (indicator) {
48091
+ case StatusIndicator.None:
48092
+ return ExitCode.Healthy;
48093
+ case StatusIndicator.Minor:
48094
+ return ExitCode.Minor;
48095
+ case StatusIndicator.Major:
48096
+ return ExitCode.Major;
48097
+ case StatusIndicator.Critical:
48098
+ return ExitCode.Critical;
48099
+ case StatusIndicator.Maintenance:
48100
+ return ExitCode.Maintenance;
48101
+ default:
48102
+ return ExitCode.Healthy;
48103
+ }
48104
+ }
48105
+
48106
+ // src/config/settings.ts
48107
+ var import_yaml3 = __toESM(require_dist(), 1);
48108
+ var LOGO_MODES = [
48109
+ {
48110
+ mode: "image",
48111
+ description: "Image if terminal supports, else ASCII (default)"
48112
+ },
48113
+ { mode: "ascii", description: "ASCII art only" },
48114
+ { mode: "none", description: "No logo" }
48115
+ ];
48116
+ var LOGO_MODE_HELP = LOGO_MODES.map((m) => m.mode).join(", ");
48117
+ var DEFAULT_SETTINGS = {
48118
+ logo: "image"
48119
+ };
48120
+ function isValidLogoMode(mode) {
48121
+ return LOGO_MODES.some((m) => m.mode === mode);
48122
+ }
48123
+ function validateSettings(settings) {
48124
+ const validated = {};
48125
+ if (settings.logo && isValidLogoMode(settings.logo)) {
48126
+ validated.logo = settings.logo;
48127
+ }
48128
+ return validated;
48129
+ }
48130
+ function loadSettingsSync() {
48131
+ const configPath = paths.settings;
48132
+ try {
48133
+ const content = __require("fs").readFileSync(
48134
+ configPath,
48135
+ "utf-8"
48136
+ );
48137
+ const parsed = import_yaml3.default.parse(content);
48138
+ return {
48139
+ ...DEFAULT_SETTINGS,
48140
+ ...validateSettings(parsed)
48141
+ };
48142
+ } catch {
48143
+ return DEFAULT_SETTINGS;
48144
+ }
48145
+ }
48146
+
48003
48147
  // src/config/envvars.ts
48004
48148
  var EnvVarRegistry = [
48005
48149
  {
@@ -48021,12 +48165,12 @@ var EnvVarRegistry = [
48021
48165
  },
48022
48166
  {
48023
48167
  name: `${ENV_PREFIX}_OUTPUT_FORMAT`,
48024
- description: "Output format (json, yaml, table)",
48168
+ description: `Output format (${OUTPUT_FORMAT_HELP})`,
48025
48169
  relatedFlag: "-o"
48026
48170
  },
48027
48171
  {
48028
48172
  name: `${ENV_PREFIX}_LOGO`,
48029
- description: "Logo display mode (auto, image, ascii, both, none)",
48173
+ description: `Logo display mode (${LOGO_MODE_HELP})`,
48030
48174
  relatedFlag: "--logo"
48031
48175
  },
48032
48176
  {
@@ -142254,7 +142398,7 @@ function formatGlobalFlags() {
142254
142398
  " -v, --version Show version number",
142255
142399
  " -h, --help Show this help",
142256
142400
  " --no-color Disable color output",
142257
- " -o, --output <fmt> Output format (json, yaml, table)",
142401
+ ` -o, --output <fmt> Output format (${OUTPUT_FORMAT_HELP})`,
142258
142402
  " -ns, --namespace <ns> Target namespace",
142259
142403
  " --spec Output command specification as JSON (for AI)"
142260
142404
  ];
@@ -142462,7 +142606,9 @@ function formatActionHelp(domainName, action) {
142462
142606
  output.push("OPTIONS");
142463
142607
  output.push(" -n, --name <name> Resource name");
142464
142608
  output.push(" -ns, --namespace <ns> Target namespace");
142465
- output.push(" -o, --output <fmt> Output format (json, yaml, table)");
142609
+ output.push(
142610
+ ` -o, --output <fmt> Output format (${OUTPUT_FORMAT_HELP})`
142611
+ );
142466
142612
  output.push(" -f, --file <path> Configuration file");
142467
142613
  output.push("");
142468
142614
  if (opInfo?.externalDocs) {
@@ -142904,7 +143050,7 @@ function buildCommandSpec(options) {
142904
143050
  usage: options.usage ?? `xcsh ${options.command} [options]`,
142905
143051
  flags: options.flags ?? [],
142906
143052
  examples: options.examples ?? [],
142907
- outputFormats: options.outputFormats ?? ["table", "json", "yaml"]
143053
+ outputFormats: options.outputFormats ?? [...ALL_OUTPUT_FORMATS]
142908
143054
  };
142909
143055
  if (options.related !== void 0) {
142910
143056
  spec.related = options.related;
@@ -142924,7 +143070,7 @@ var GLOBAL_FLAGS = [
142924
143070
  description: "Output format",
142925
143071
  type: "string",
142926
143072
  default: "table",
142927
- choices: ["table", "json", "yaml", "tsv"]
143073
+ choices: [...ALL_OUTPUT_FORMATS]
142928
143074
  },
142929
143075
  {
142930
143076
  name: "--namespace",
@@ -142966,7 +143112,7 @@ function buildCloudstatusSpecs() {
142966
143112
  {
142967
143113
  name: "--quiet",
142968
143114
  alias: "-q",
142969
- description: "Return exit code only (0=operational, 1=degraded, 2=outage)",
143115
+ description: `Return exit code only (${EXIT_CODE_HELP})`,
142970
143116
  type: "boolean"
142971
143117
  }
142972
143118
  ],
@@ -145154,46 +145300,6 @@ var contextSubcommands = {
145154
145300
  ])
145155
145301
  };
145156
145302
 
145157
- // src/config/settings.ts
145158
- var import_yaml3 = __toESM(require_dist(), 1);
145159
- var LOGO_MODES = [
145160
- {
145161
- mode: "image",
145162
- description: "Image if terminal supports, else ASCII (default)"
145163
- },
145164
- { mode: "ascii", description: "ASCII art only" },
145165
- { mode: "none", description: "No logo" }
145166
- ];
145167
- var DEFAULT_SETTINGS = {
145168
- logo: "image"
145169
- };
145170
- function isValidLogoMode(mode) {
145171
- return LOGO_MODES.some((m) => m.mode === mode);
145172
- }
145173
- function validateSettings(settings) {
145174
- const validated = {};
145175
- if (settings.logo && isValidLogoMode(settings.logo)) {
145176
- validated.logo = settings.logo;
145177
- }
145178
- return validated;
145179
- }
145180
- function loadSettingsSync() {
145181
- const configPath = paths.settings;
145182
- try {
145183
- const content = __require("fs").readFileSync(
145184
- configPath,
145185
- "utf-8"
145186
- );
145187
- const parsed = import_yaml3.default.parse(content);
145188
- return {
145189
- ...DEFAULT_SETTINGS,
145190
- ...validateSettings(parsed)
145191
- };
145192
- } catch {
145193
- return DEFAULT_SETTINGS;
145194
- }
145195
- }
145196
-
145197
145303
  // src/domains/login/banner/display.ts
145198
145304
  function colorizeLogoLine(line) {
145199
145305
  let result = "";
@@ -145771,98 +145877,6 @@ var loginDomain = {
145771
145877
  ])
145772
145878
  };
145773
145879
 
145774
- // src/cloudstatus/types.ts
145775
- var BASE_URL = "https://www.f5cloudstatus.com/api/v2";
145776
- var StatusIndicator = {
145777
- None: "none",
145778
- Minor: "minor",
145779
- Major: "major",
145780
- Critical: "critical",
145781
- Maintenance: "maintenance"
145782
- };
145783
- var ComponentStatus = {
145784
- Operational: "operational",
145785
- DegradedPerformance: "degraded_performance",
145786
- PartialOutage: "partial_outage",
145787
- MajorOutage: "major_outage",
145788
- UnderMaintenance: "under_maintenance"
145789
- };
145790
- var IncidentStatus = {
145791
- Investigating: "investigating",
145792
- Identified: "identified",
145793
- Monitoring: "monitoring",
145794
- Resolved: "resolved",
145795
- Postmortem: "postmortem"
145796
- };
145797
- var MaintenanceStatus = {
145798
- Scheduled: "scheduled",
145799
- InProgress: "in_progress",
145800
- Verifying: "verifying",
145801
- Completed: "completed"
145802
- };
145803
- var ExitCode = {
145804
- Healthy: 0,
145805
- Minor: 1,
145806
- Major: 2,
145807
- Critical: 3,
145808
- Maintenance: 4,
145809
- APIError: 10,
145810
- ParseError: 11
145811
- };
145812
- var PredefinedRegions = [
145813
- {
145814
- id: "north-america",
145815
- name: "north-america",
145816
- displayName: "North America"
145817
- },
145818
- {
145819
- id: "south-america",
145820
- name: "south-america",
145821
- displayName: "South America"
145822
- },
145823
- { id: "europe", name: "europe", displayName: "Europe" },
145824
- { id: "asia", name: "asia", displayName: "Asia" },
145825
- { id: "oceania", name: "oceania", displayName: "Oceania" },
145826
- { id: "middle-east", name: "middle-east", displayName: "Middle East" }
145827
- ];
145828
- function isComponentOperational(component) {
145829
- return component.status === ComponentStatus.Operational;
145830
- }
145831
- function isComponentDegraded(component) {
145832
- return component.status !== ComponentStatus.Operational;
145833
- }
145834
- function isIncidentResolved(incident) {
145835
- return incident.status === IncidentStatus.Resolved || incident.status === IncidentStatus.Postmortem;
145836
- }
145837
- function isIncidentActive(incident) {
145838
- return !isIncidentResolved(incident);
145839
- }
145840
- function isMaintenanceUpcoming(maint) {
145841
- return maint.status === MaintenanceStatus.Scheduled;
145842
- }
145843
- function isMaintenanceActive(maint) {
145844
- return maint.status === MaintenanceStatus.InProgress || maint.status === MaintenanceStatus.Verifying;
145845
- }
145846
- function isMaintenanceCompleted(maint) {
145847
- return maint.status === MaintenanceStatus.Completed;
145848
- }
145849
- function statusIndicatorToExitCode(indicator) {
145850
- switch (indicator) {
145851
- case StatusIndicator.None:
145852
- return ExitCode.Healthy;
145853
- case StatusIndicator.Minor:
145854
- return ExitCode.Minor;
145855
- case StatusIndicator.Major:
145856
- return ExitCode.Major;
145857
- case StatusIndicator.Critical:
145858
- return ExitCode.Critical;
145859
- case StatusIndicator.Maintenance:
145860
- return ExitCode.Maintenance;
145861
- default:
145862
- return ExitCode.Healthy;
145863
- }
145864
- }
145865
-
145866
145880
  // src/cloudstatus/client.ts
145867
145881
  var Cache = class {
145868
145882
  entries = /* @__PURE__ */ new Map();
@@ -146902,7 +146916,7 @@ _xcsh() {
146902
146916
  '(-h --help)'{-h,--help}'[Show help information]'
146903
146917
  '(-v --version)'{-v,--version}'[Show version number]'
146904
146918
  '--no-color[Disable color output]'
146905
- '(-o --output)'{-o,--output}'[Output format]:format:(json yaml table)'
146919
+ '(-o --output)'{-o,--output}'[Output format]:format:(${ALL_OUTPUT_FORMATS.join(" ")})'
146906
146920
  '(-ns --namespace)'{-ns,--namespace}'[Namespace]:namespace:_xcsh_namespaces'
146907
146921
  '--spec[Output command specification as JSON for AI assistants]'
146908
146922
  )
@@ -146951,7 +146965,7 @@ ${customDomainCompletions.join("\n")}
146951
146965
  action_opts=(
146952
146966
  '(-n --name)'{-n,--name}'[Resource name]:name:'
146953
146967
  '(-ns --namespace)'{-ns,--namespace}'[Namespace]:namespace:_xcsh_namespaces'
146954
- '(-o --output)'{-o,--output}'[Output format]:format:(json yaml table)'
146968
+ '(-o --output)'{-o,--output}'[Output format]:format:(${ALL_OUTPUT_FORMATS.join(" ")})'
146955
146969
  '--limit[Maximum results]:limit:'
146956
146970
  '--label[Filter by label]:label:'
146957
146971
  '(-f --file)'{-f,--file}'[Configuration file]:file:_files'
@@ -147017,7 +147031,7 @@ complete -c xcsh -f
147017
147031
  complete -c xcsh -s h -l help -d 'Show help information'
147018
147032
  complete -c xcsh -s v -l version -d 'Show version number'
147019
147033
  complete -c xcsh -l no-color -d 'Disable color output'
147020
- complete -c xcsh -s o -l output -d 'Output format' -xa 'json yaml table'
147034
+ complete -c xcsh -s o -l output -d 'Output format' -xa '${ALL_OUTPUT_FORMATS.join(" ")}'
147021
147035
  complete -c xcsh -l namespace -s ns -d 'Namespace' -xa 'default system shared'
147022
147036
  complete -c xcsh -l spec -d 'Output command specification as JSON for AI assistants'
147023
147037
 
@@ -147908,7 +147922,7 @@ var Completer = class {
147908
147922
  { text: "--namespace", description: "Namespace", category: "flag" },
147909
147923
  {
147910
147924
  text: "--output",
147911
- description: "Output format (json, yaml, table)",
147925
+ description: `Output format (${OUTPUT_FORMAT_HELP})`,
147912
147926
  category: "flag"
147913
147927
  },
147914
147928
  {
@@ -147996,23 +148010,13 @@ var Completer = class {
147996
148010
  switch (flag) {
147997
148011
  case "--output":
147998
148012
  case "-o":
147999
- return [
148000
- {
148001
- text: "json",
148002
- description: "JSON format",
148003
- category: "value"
148004
- },
148005
- {
148006
- text: "yaml",
148007
- description: "YAML format",
148008
- category: "value"
148009
- },
148010
- {
148011
- text: "table",
148012
- description: "Table format",
148013
- category: "value"
148014
- }
148015
- ].filter((s) => s.text.toLowerCase().startsWith(lowerPartial));
148013
+ return ALL_OUTPUT_FORMATS.map((fmt) => ({
148014
+ text: fmt,
148015
+ description: `${fmt.toUpperCase()} format`,
148016
+ category: "value"
148017
+ })).filter(
148018
+ (s) => s.text.toLowerCase().startsWith(lowerPartial)
148019
+ );
148016
148020
  case "--namespace":
148017
148021
  case "-ns":
148018
148022
  return this.completeNamespace(valuePartial);
@@ -149034,7 +149038,7 @@ Suggestion: Use --namespace ${nsValidation.suggestion}` : "";
149034
149038
  name: "--output",
149035
149039
  alias: "-o",
149036
149040
  type: "string",
149037
- description: "Output format (json, yaml, table)"
149041
+ description: `Output format (${OUTPUT_FORMAT_HELP})`
149038
149042
  },
149039
149043
  {
149040
149044
  name: "--name",
@@ -149042,7 +149046,7 @@ Suggestion: Use --namespace ${nsValidation.suggestion}` : "";
149042
149046
  description: "Resource name"
149043
149047
  }
149044
149048
  ],
149045
- outputFormats: ["table", "json", "yaml"]
149049
+ outputFormats: [...ALL_OUTPUT_FORMATS]
149046
149050
  };
149047
149051
  return {
149048
149052
  output: [JSON.stringify(basicSpec, null, 2)],
@@ -149951,7 +149955,7 @@ var program2 = new Command();
149951
149955
  program2.configureHelp({
149952
149956
  formatHelp: () => formatRootHelp().join("\n")
149953
149957
  });
149954
- program2.name(CLI_NAME).description("F5 Distributed Cloud Shell - Interactive CLI for F5 XC").version(CLI_VERSION, "-v, --version", "Show version number").option("--no-color", "Disable color output").option("--logo <mode>", "Logo display mode: image, ascii, none").option("-o, --output <format>", "Output format (json, yaml, table)").option("--spec", "Output command specification as JSON (for AI)").option("--headless", "Run in headless JSON protocol mode (for AI agents)").option("-h, --help", "Show help").argument("[command...]", "Command to execute non-interactively").allowUnknownOption(true).helpOption(false).action(
149958
+ program2.name(CLI_NAME).description("F5 Distributed Cloud Shell - Interactive CLI for F5 XC").version(CLI_VERSION, "-v, --version", "Show version number").option("--no-color", "Disable color output").option("--logo <mode>", `Logo display mode: ${LOGO_MODE_HELP}`).option("-o, --output <format>", `Output format (${OUTPUT_FORMAT_HELP})`).option("--spec", "Output command specification as JSON (for AI)").option("--headless", "Run in headless JSON protocol mode (for AI agents)").option("-h, --help", "Show help").argument("[command...]", "Command to execute non-interactively").allowUnknownOption(true).helpOption(false).action(
149955
149959
  async (commandArgs, options) => {
149956
149960
  if (options.help && commandArgs.length === 0) {
149957
149961
  formatRootHelp().forEach((line) => console.log(line));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robinmordasiewicz/f5xc-xcsh",
3
- "version": "1.0.84-2601020301",
3
+ "version": "1.0.84-2601020527",
4
4
  "description": "F5 Distributed Cloud Shell - Interactive CLI for F5 XC",
5
5
  "type": "module",
6
6
  "bin": {