@f5xc-salesdemos/xcsh 19.51.1 → 19.51.2

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@f5xc-salesdemos/xcsh",
4
- "version": "19.51.1",
4
+ "version": "19.51.2",
5
5
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
6
6
  "homepage": "https://github.com/f5xc-salesdemos/xcsh",
7
7
  "author": "Can Boluk",
@@ -54,13 +54,13 @@
54
54
  "dependencies": {
55
55
  "@agentclientprotocol/sdk": "0.16.1",
56
56
  "@mozilla/readability": "^0.6",
57
- "@f5xc-salesdemos/xcsh-stats": "19.51.1",
58
- "@f5xc-salesdemos/pi-agent-core": "19.51.1",
59
- "@f5xc-salesdemos/pi-ai": "19.51.1",
60
- "@f5xc-salesdemos/pi-natives": "19.51.1",
61
- "@f5xc-salesdemos/pi-resource-management": "19.51.1",
62
- "@f5xc-salesdemos/pi-tui": "19.51.1",
63
- "@f5xc-salesdemos/pi-utils": "19.51.1",
57
+ "@f5xc-salesdemos/xcsh-stats": "19.51.2",
58
+ "@f5xc-salesdemos/pi-agent-core": "19.51.2",
59
+ "@f5xc-salesdemos/pi-ai": "19.51.2",
60
+ "@f5xc-salesdemos/pi-natives": "19.51.2",
61
+ "@f5xc-salesdemos/pi-resource-management": "19.51.2",
62
+ "@f5xc-salesdemos/pi-tui": "19.51.2",
63
+ "@f5xc-salesdemos/pi-utils": "19.51.2",
64
64
  "@sinclair/typebox": "^0.34",
65
65
  "@xterm/headless": "^6.0",
66
66
  "ajv": "^8.20",
@@ -17,17 +17,17 @@ export interface BuildInfo {
17
17
  }
18
18
 
19
19
  export const BUILD_INFO: BuildInfo = {
20
- "version": "19.51.1",
21
- "commit": "671ad2b869a09652fe8e49dc726d754f80086d9b",
22
- "shortCommit": "671ad2b",
20
+ "version": "19.51.2",
21
+ "commit": "f4e9e03352bd0a9ed941caef8acaf3df08b5fba4",
22
+ "shortCommit": "f4e9e03",
23
23
  "branch": "main",
24
- "tag": "v19.51.1",
25
- "commitDate": "2026-06-26T06:28:05Z",
26
- "buildDate": "2026-06-26T06:51:11.727Z",
24
+ "tag": "v19.51.2",
25
+ "commitDate": "2026-06-26T13:27:20Z",
26
+ "buildDate": "2026-06-26T13:55:07.344Z",
27
27
  "dirty": true,
28
28
  "prNumber": "",
29
29
  "repoUrl": "https://github.com/f5xc-salesdemos/xcsh",
30
30
  "repoSlug": "f5xc-salesdemos/xcsh",
31
- "commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/671ad2b869a09652fe8e49dc726d754f80086d9b",
32
- "releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v19.51.1"
31
+ "commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/f4e9e03352bd0a9ed941caef8acaf3df08b5fba4",
32
+ "releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v19.51.2"
33
33
  };
@@ -88,7 +88,7 @@ export const CONSOLE_CATALOG_DATA: ConsoleCatalogData = {
88
88
  "app-setting/update":
89
89
  "schema: urn:f5xc:console:workflow:v1\nid: app-setting-update\nlabel: Update App Settings\nresource: app-setting\noperation: update\nparams:\n namespace:\n required: true\n example: demo\n name:\n required: true\n example: example-app-setting\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/web-app-and-api-protection/namespaces/{namespace}/manage/ai_ml/app_settings\n wait_for: text('App Settings')\n description: Navigate to App Settings list page\n - id: scroll-actions-into-view\n action: scroll\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n description: Scroll the Actions column into view\n - id: open-row-actions\n action: click\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n wait_for: option:text('Manage Configuration')\n description: Open the row kebab menu\n - id: open-configuration\n action: click\n selector: option:text('Manage Configuration')\n wait_for: button:text('Edit Configuration')\n wait_timeout_ms: 15000\n description: Open the read-only Manage Configuration view\n - id: enter-edit-mode\n action: click\n selector: button:text('Edit Configuration')\n wait_for: \"[class*='save-bt'],[class*='submit-button']\"\n wait_timeout_ms: 20000\n description: Click 'Edit Configuration' to switch from read-only view into the editable form\n - id: modify-fields\n action: wait\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n description: The agent fills the specific fields the user asked to modify (dynamic, not pre-generated)\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('App Settings')\n wait_timeout_ms: 30000\n description: Save/submit changes (union selector matches save-bt OR submit-button)\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
90
90
  "app-type/create":
91
- "schema: urn:f5xc:console:workflow:v1\nid: app-type-create\nlabel: Create App Types\nresource: app-type\noperation: create\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\nparams:\n namespace:\n required: true\n description: Target namespace\n example: demo\n name:\n required: true\n description: App Types name (lowercase alphanumeric and hyphens)\n example: example-app-type\n ai_ml_feature_type:\n required: true\n description: \"'Field AI/ML Feature Type is required' nested inside app_type_settings\"\n app_type_settings:\n required: true\n description: \"Feedback loop: table widget → nested-resource-list (uses Add Item sub-form)\"\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/shared-configuration/security/ai_ml/app_types\n wait_for: text('App Types')\n description: Navigate to App Types list page\n - id: click-add-tab\n action: click\n selector: text('Add App Type')\n wait_for: textbox[name='Name']\n description: Click Add App Type to open the create form\n - id: fill-name\n action: fill\n selector: textbox[name='Name']\n value: \"{name}\"\n description: Enter Name\n - id: fill-ai_ml_feature_type\n action: fill\n selector: ngx-datatable input.form-control\n context: AI/ML Feature Type table\n value: \"{ai_ml_feature_type}\"\n description: Enter AI/ML Feature Type in the existing table row (no Add Item needed — the table ships one empty row)\n - id: add-app_type_settings\n action: click\n selector: button:text('Add Item')\n context: App Type Settings section\n description: Add App Type Settings entry\n then:\n - id: fill-app_type_settings-value\n action: fill\n selector: textbox\n value: \"{app_type_settings}\"\n description: Fill the first required field in the App Type Settings sub-form (the agent should provide a value via the\n 'app_type_settings' parameter)\n - id: apply-app_type_settings\n action: click\n selector: button:text('Apply')\n description: Confirm App Type Settings entry\n - id: select-ai_ml_feature_type\n action: select\n selector: listbox\n context: AI/ML Feature Type section\n value: \"{ai_ml_feature_type}\"\n description: Select AI/ML Feature Type\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('{name}')\n wait_timeout_ms: 30000\n description: Save/submit the form (union selector matches save-bt OR submit-button)\npostconditions:\n - resource_list_page_visible\n - \"resource_name_in_list: {name}\"\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
91
+ "schema: urn:f5xc:console:workflow:v1\nid: app-type-create\nlabel: Create App Types\nresource: app-type\noperation: create\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\nparams:\n namespace:\n required: true\n description: Target namespace\n example: demo\n name:\n required: true\n description: App Types name (lowercase alphanumeric and hyphens)\n example: example-app-type\n ai_ml_feature_type:\n required: true\n description: Required Select-item listbox in the Features section (ships with one row). Verified from live form screenshot.\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/shared-configuration/security/ai_ml/app_types\n wait_for: text('App Types')\n description: Navigate to App Types list page\n - id: click-add-tab\n action: click\n selector: text('Add App Type')\n wait_for: textbox[name='Name']\n description: Click Add App Type to open the create form\n - id: fill-name\n action: fill\n selector: textbox[name='Name']\n value: \"{name}\"\n description: Enter Name\n - id: select-ai_ml_feature_type\n action: select\n selector: listbox[name='AI/ML Feature Type']\n context: AI/ML Feature Type section\n value: \"{ai_ml_feature_type}\"\n description: Select AI/ML Feature Type (references an existing ai_feature_type dependency)\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('{name}')\n wait_timeout_ms: 30000\n description: Save/submit the form (union selector matches save-bt OR submit-button)\npostconditions:\n - resource_list_page_visible\n - \"resource_name_in_list: {name}\"\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
92
92
  "app-type/delete":
93
93
  "schema: urn:f5xc:console:workflow:v1\nid: app-type-delete\nlabel: Delete App Types\nresource: app-type\noperation: delete\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\n - \"resource_exists: {name}\"\nparams:\n namespace:\n required: true\n example: demo\n name:\n required: true\n example: example-app-type\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/shared-configuration/security/ai_ml/app_types\n wait_for: text('App Types')\n description: Navigate to App Types list page\n - id: scroll-actions-into-view\n action: scroll\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n description: Scroll the Actions column into view for the target row\n - id: open-row-actions\n action: click\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n wait_for: option:text('Delete')\n description: Open the row kebab menu\n - id: click-delete\n action: click\n selector: option:text('Delete')\n wait_for: button:text('Delete')\n description: Click Delete option\n - id: confirm-delete\n action: click\n selector: button:text('Delete')\n wait_for: text('App Types')\n wait_timeout_ms: 15000\n description: Confirm deletion\npostconditions:\n - resource_removed_from_list\n - list_page_visible\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
94
94
  "app-type/read":
@@ -152,7 +152,7 @@ export const CONSOLE_CATALOG_DATA: ConsoleCatalogData = {
152
152
  "bigip-virtual-server/update":
153
153
  "schema: urn:f5xc:console:workflow:v1\nid: bigip-virtual-server-update\nlabel: Update BIG-IP Virtual Servers\nresource: bigip-virtual-server\noperation: update\nparams:\n namespace:\n required: true\n example: demo\n name:\n required: true\n example: example-bigip-virtual-server\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/web-app-and-api-protection/namespaces/{namespace}/manage/bigip_virtual_server\n wait_for: text('BIG-IP Virtual Servers')\n description: Navigate to BIG-IP Virtual Servers list page\n - id: scroll-actions-into-view\n action: scroll\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n description: Scroll the Actions column into view\n - id: open-row-actions\n action: click\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n wait_for: option:text('Manage Configuration')\n description: Open the row kebab menu\n - id: open-configuration\n action: click\n selector: option:text('Manage Configuration')\n wait_for: button:text('Edit Configuration')\n wait_timeout_ms: 15000\n description: Open the read-only Manage Configuration view\n - id: enter-edit-mode\n action: click\n selector: button:text('Edit Configuration')\n wait_for: \"[class*='save-bt'],[class*='submit-button']\"\n wait_timeout_ms: 20000\n description: Click 'Edit Configuration' to switch from read-only view into the editable form\n - id: modify-fields\n action: wait\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n description: The agent fills the specific fields the user asked to modify (dynamic, not pre-generated)\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('BIG-IP Virtual Servers')\n wait_timeout_ms: 30000\n description: Save/submit changes (union selector matches save-bt OR submit-button)\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
154
154
  "cdn-cache-rule/create":
155
- "schema: urn:f5xc:console:workflow:v1\nid: cdn-cache-rule-create\nlabel: Create CDN Cache Rules\nresource: cdn-cache-rule\noperation: create\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\nparams:\n namespace:\n required: true\n description: Target namespace\n example: demo\n name:\n required: true\n description: CDN Cache Rules name (lowercase alphanumeric and hyphens)\n example: example-cdn-cache-rule\n rule_name:\n required: true\n description: Rule Name\n expressions:\n required: true\n description: Expressions\n cache_actions:\n required: false\n description: Cache Actions\n default: Bypass Cache\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/web-app-and-api-protection/namespaces/{namespace}/manage/cdn/cdn_cache_rule\n wait_for: text('CDN Cache Rules')\n description: Navigate to CDN Cache Rules list page\n - id: click-add-tab\n action: click\n selector: text('Add CDN Cache Rule')\n wait_for: textbox[name='Name']\n description: Click Add CDN Cache Rule to open the create form\n - id: fill-name\n action: fill\n selector: textbox[name='Name']\n value: \"{name}\"\n description: Enter Name\n - id: fill-rule_name\n action: fill\n selector: textbox[name='Rule Name']\n value: \"{rule_name}\"\n description: Enter Rule Name\n - id: fill-expressions\n action: fill\n selector: ngx-datatable input.form-control\n context: Expressions table\n value: \"{expressions}\"\n description: Enter Expressions in the existing table row (no Add Item needed — the table ships one empty row)\n - id: select-cache_actions\n action: select\n selector: listbox\n context: Cache Actions section\n value: \"{cache_actions}\"\n description: Select Cache Actions\n condition: params.cache_actions is set\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('{name}')\n wait_timeout_ms: 30000\n description: Save/submit the form (union selector matches save-bt OR submit-button)\npostconditions:\n - resource_list_page_visible\n - \"resource_name_in_list: {name}\"\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
155
+ "schema: urn:f5xc:console:workflow:v1\nid: cdn-cache-rule-create\nlabel: Create CDN Cache Rules\nresource: cdn-cache-rule\noperation: create\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\nparams:\n namespace:\n required: true\n description: Target namespace\n example: demo\n name:\n required: true\n description: CDN Cache Rules name (lowercase alphanumeric and hyphens)\n example: example-cdn-cache-rule\n rule_name:\n required: true\n description: Rule Name\n expressions:\n required: true\n description: Expressions table starts empty — needs Add Item before filling the inline cell.\n cache_actions:\n required: false\n description: Cache Actions\n default: Bypass Cache\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/web-app-and-api-protection/namespaces/{namespace}/manage/cdn/cdn_cache_rule\n wait_for: text('CDN Cache Rules')\n description: Navigate to CDN Cache Rules list page\n - id: click-add-tab\n action: click\n selector: text('Add CDN Cache Rules')\n wait_for: textbox[name='Name']\n description: Click Add CDN Cache Rules to open the create form\n - id: fill-name\n action: fill\n selector: textbox[name='Name']\n value: \"{name}\"\n description: Enter Name\n - id: fill-rule_name\n action: fill\n selector: textbox[name='Rule Name']\n value: \"{rule_name}\"\n description: Enter Rule Name\n - id: add-item-expressions\n action: click\n selector: button:text('Add Item')\n context: Expressions table\n description: Add a row to the Expressions table (starts empty — unlike most tables)\n - id: fill-expressions\n action: fill\n selector: ngx-datatable input.form-control\n context: Expressions table\n value: \"{expressions}\"\n description: Enter Expressions in the newly-added table row (Add Item clicked above)\n - id: select-cache_actions\n action: select\n selector: listbox\n context: Cache Actions section\n value: \"{cache_actions}\"\n description: Select Cache Actions\n condition: params.cache_actions is set\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('{name}')\n wait_timeout_ms: 30000\n description: Save/submit the form (union selector matches save-bt OR submit-button)\npostconditions:\n - resource_list_page_visible\n - \"resource_name_in_list: {name}\"\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
156
156
  "cdn-cache-rule/delete":
157
157
  "schema: urn:f5xc:console:workflow:v1\nid: cdn-cache-rule-delete\nlabel: Delete CDN Cache Rules\nresource: cdn-cache-rule\noperation: delete\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\n - \"resource_exists: {name}\"\nparams:\n namespace:\n required: true\n example: demo\n name:\n required: true\n example: example-cdn-cache-rule\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/web-app-and-api-protection/namespaces/{namespace}/manage/cdn/cdn_cache_rule\n wait_for: text('CDN Cache Rules')\n description: Navigate to CDN Cache Rules list page\n - id: scroll-actions-into-view\n action: scroll\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n description: Scroll the Actions column into view for the target row\n - id: open-row-actions\n action: click\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n wait_for: option:text('Delete')\n description: Open the row kebab menu\n - id: click-delete\n action: click\n selector: option:text('Delete')\n wait_for: button:text('Delete')\n description: Click Delete option\n - id: confirm-delete\n action: click\n selector: button:text('Delete')\n wait_for: text('CDN Cache Rules')\n wait_timeout_ms: 15000\n description: Confirm deletion\npostconditions:\n - resource_removed_from_list\n - list_page_visible\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
158
158
  "cdn-cache-rule/read":
@@ -296,7 +296,7 @@ export const CONSOLE_CATALOG_DATA: ConsoleCatalogData = {
296
296
  "dns-lb-health-check/update":
297
297
  "schema: urn:f5xc:console:workflow:v1\nid: dns-lb-health-check-update\nlabel: Update DNS Load Balancer Health Checks\nresource: dns-lb-health-check\noperation: update\nparams:\n namespace:\n required: true\n example: demo\n name:\n required: true\n example: example-dns-lb-health-check\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/dns-management/manage/dns_lb_management/dns_lb_health_check\n wait_for: text('DNS Load Balancer Health Checks')\n description: Navigate to DNS Load Balancer Health Checks list page\n - id: scroll-actions-into-view\n action: scroll\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n description: Scroll the Actions column into view\n - id: open-row-actions\n action: click\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n wait_for: option:text('Manage Configuration')\n description: Open the row kebab menu\n - id: open-configuration\n action: click\n selector: option:text('Manage Configuration')\n wait_for: button:text('Edit Configuration')\n wait_timeout_ms: 15000\n description: Open the read-only Manage Configuration view\n - id: enter-edit-mode\n action: click\n selector: button:text('Edit Configuration')\n wait_for: \"[class*='save-bt'],[class*='submit-button']\"\n wait_timeout_ms: 20000\n description: Click 'Edit Configuration' to switch from read-only view into the editable form\n - id: modify-fields\n action: wait\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n description: The agent fills the specific fields the user asked to modify (dynamic, not pre-generated)\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('DNS Load Balancer Health Checks')\n wait_timeout_ms: 30000\n description: Save/submit changes (union selector matches save-bt OR submit-button)\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
298
298
  "dns-lb-pool/create":
299
- "schema: urn:f5xc:console:workflow:v1\nid: dns-lb-pool-create\nlabel: Create DNS Load Balancer Pools\nresource: dns-lb-pool\noperation: create\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\nparams:\n namespace:\n required: true\n description: Target namespace\n example: demo\n name:\n required: true\n description: DNS Load Balancer Pools name (lowercase alphanumeric and hyphens)\n example: example-dns-lb-pool\n pool_members:\n required: true\n description: \"Server-required: Pool Members in A record type. Click Configure (link) to add members.\"\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/dns-management/manage/dns_lb_management/dns_lb_pool\n wait_for: text('DNS Load Balancer Pools')\n description: Navigate to DNS Load Balancer Pools list page\n - id: click-add-tab\n action: click\n selector: text('Add DNS Load Balancer Pool')\n wait_for: textbox[name='Name']\n description: Click Add DNS Load Balancer Pool to open the create form\n - id: fill-name\n action: fill\n selector: textbox[name='Name']\n value: \"{name}\"\n description: Enter Name\n - id: configure-pool_members\n action: click\n selector: text('Configure')\n context: Pool Members section\n description: Open the Pool Members configuration ('Configure' is a link, not a button)\n - id: fill-pool_members-value\n action: fill\n selector: textbox\n value: \"{pool_members}\"\n description: Enter the Pool Members value via the 'pool_members' parameter\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('{name}')\n wait_timeout_ms: 30000\n description: Save/submit the form (union selector matches save-bt OR submit-button)\npostconditions:\n - resource_list_page_visible\n - \"resource_name_in_list: {name}\"\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
299
+ "schema: urn:f5xc:console:workflow:v1\nid: dns-lb-pool-create\nlabel: Create DNS Load Balancer Pools\nresource: dns-lb-pool\noperation: create\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\nparams:\n namespace:\n required: true\n description: Target namespace\n example: demo\n name:\n required: true\n description: DNS Load Balancer Pools name (lowercase alphanumeric and hyphens)\n example: example-dns-lb-pool\n pool_members:\n required: true\n description: Pool Members is a nested-resource-list (Add Item, NOT Configure — verified from live form). Default A\n record member needs a Public IP.\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/dns-management/manage/dns_lb_management/dns_lb_pool\n wait_for: text('DNS Load Balancer Pools')\n description: Navigate to DNS Load Balancer Pools list page\n - id: click-add-tab\n action: click\n selector: text('Add DNS Load Balancer Pool')\n wait_for: textbox[name='Name']\n description: Click Add DNS Load Balancer Pool to open the create form\n - id: fill-name\n action: fill\n selector: textbox[name='Name']\n value: \"{name}\"\n description: Enter Name\n - id: add-pool_members\n action: click\n selector: button:text('Add Item')\n context: Pool Members section\n description: Add Pool Members entry\n then:\n - id: fill-pool_members-value\n action: fill\n selector: textbox[name='Public IP']\n value: \"{pool_members}\"\n description: Enter Public IP for the Pool Members entry\n - id: apply-pool_members\n action: click\n selector: button:text('Apply')\n description: Confirm Pool Members entry\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('{name}')\n wait_timeout_ms: 30000\n description: Save/submit the form (union selector matches save-bt OR submit-button)\npostconditions:\n - resource_list_page_visible\n - \"resource_name_in_list: {name}\"\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
300
300
  "dns-lb-pool/delete":
301
301
  "schema: urn:f5xc:console:workflow:v1\nid: dns-lb-pool-delete\nlabel: Delete DNS Load Balancer Pools\nresource: dns-lb-pool\noperation: delete\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\n - \"resource_exists: {name}\"\nparams:\n namespace:\n required: true\n example: demo\n name:\n required: true\n example: example-dns-lb-pool\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/dns-management/manage/dns_lb_management/dns_lb_pool\n wait_for: text('DNS Load Balancer Pools')\n description: Navigate to DNS Load Balancer Pools list page\n - id: scroll-actions-into-view\n action: scroll\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n description: Scroll the Actions column into view for the target row\n - id: open-row-actions\n action: click\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n wait_for: option:text('Delete')\n description: Open the row kebab menu\n - id: click-delete\n action: click\n selector: option:text('Delete')\n wait_for: button:text('Delete')\n description: Click Delete option\n - id: confirm-delete\n action: click\n selector: button:text('Delete')\n wait_for: text('DNS Load Balancer Pools')\n wait_timeout_ms: 15000\n description: Confirm deletion\npostconditions:\n - resource_removed_from_list\n - list_page_visible\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
302
302
  "dns-lb-pool/read":
@@ -304,7 +304,7 @@ export const CONSOLE_CATALOG_DATA: ConsoleCatalogData = {
304
304
  "dns-lb-pool/update":
305
305
  "schema: urn:f5xc:console:workflow:v1\nid: dns-lb-pool-update\nlabel: Update DNS Load Balancer Pools\nresource: dns-lb-pool\noperation: update\nparams:\n namespace:\n required: true\n example: demo\n name:\n required: true\n example: example-dns-lb-pool\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/dns-management/manage/dns_lb_management/dns_lb_pool\n wait_for: text('DNS Load Balancer Pools')\n description: Navigate to DNS Load Balancer Pools list page\n - id: scroll-actions-into-view\n action: scroll\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n description: Scroll the Actions column into view\n - id: open-row-actions\n action: click\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n wait_for: option:text('Manage Configuration')\n description: Open the row kebab menu\n - id: open-configuration\n action: click\n selector: option:text('Manage Configuration')\n wait_for: button:text('Edit Configuration')\n wait_timeout_ms: 15000\n description: Open the read-only Manage Configuration view\n - id: enter-edit-mode\n action: click\n selector: button:text('Edit Configuration')\n wait_for: \"[class*='save-bt'],[class*='submit-button']\"\n wait_timeout_ms: 20000\n description: Click 'Edit Configuration' to switch from read-only view into the editable form\n - id: modify-fields\n action: wait\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n description: The agent fills the specific fields the user asked to modify (dynamic, not pre-generated)\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('DNS Load Balancer Pools')\n wait_timeout_ms: 30000\n description: Save/submit changes (union selector matches save-bt OR submit-button)\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
306
306
  "dns-load-balancer/create":
307
- "schema: urn:f5xc:console:workflow:v1\nid: dns-load-balancer-create\nlabel: Create DNS Load Balancers\nresource: dns-load-balancer\noperation: create\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\nparams:\n namespace:\n required: true\n description: Target namespace\n example: demo\n name:\n required: true\n description: DNS Load Balancers name (lowercase alphanumeric and hyphens)\n example: example-dns-load-balancer\n record_type:\n required: true\n description: Record Type\n load_balancing_rules:\n required: true\n description: \"Server-required: at least one Load Balancing Rule.\"\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/dns-management/manage/dns_lb_management/dns_load_balancer\n wait_for: text('DNS Load Balancers')\n description: Navigate to DNS Load Balancers list page\n - id: click-add-tab\n action: click\n selector: text('Add DNS Load Balancer')\n wait_for: textbox[name='Name']\n description: Click Add DNS Load Balancer to open the create form\n - id: fill-name\n action: fill\n selector: textbox[name='Name']\n value: \"{name}\"\n description: Enter Name\n - id: select-record_type\n action: select\n selector: listbox\n context: Record Type section\n value: \"{record_type}\"\n description: Select Record Type\n - id: add-load_balancing_rules\n action: click\n selector: button:text('Add Item')\n context: Load Balancing Rules section\n description: Add Load Balancing Rules entry\n then:\n - id: fill-load_balancing_rules-value\n action: fill\n selector: textbox\n value: \"{load_balancing_rules}\"\n description: Fill the first required field in the Load Balancing Rules sub-form (the agent should provide a value via\n the 'load_balancing_rules' parameter)\n - id: apply-load_balancing_rules\n action: click\n selector: button:text('Apply')\n description: Confirm Load Balancing Rules entry\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('{name}')\n wait_timeout_ms: 30000\n description: Save/submit the form (union selector matches save-bt OR submit-button)\npostconditions:\n - resource_list_page_visible\n - \"resource_name_in_list: {name}\"\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
307
+ "schema: urn:f5xc:console:workflow:v1\nid: dns-load-balancer-create\nlabel: Create DNS Load Balancers\nresource: dns-load-balancer\noperation: create\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\nparams:\n namespace:\n required: true\n description: Target namespace\n example: demo\n name:\n required: true\n description: DNS Load Balancers name (lowercase alphanumeric and hyphens)\n example: example-dns-load-balancer\n record_type:\n required: true\n description: Record Type\n load_balancing_rules:\n required: true\n description: At least one Load Balancing Rule. Each rule selects a Pool (references an existing dns_lb_pool —\n dependency; create one first).\n pool:\n required: true\n description: Name of an existing dns_lb_pool to reference (dependency — create it first)\n example: example-dns_lb_pool\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/dns-management/manage/dns_lb_management/dns_load_balancer\n wait_for: text('DNS Load Balancers')\n description: Navigate to DNS Load Balancers list page\n - id: click-add-tab\n action: click\n selector: text('Add DNS Load Balancer')\n wait_for: textbox[name='Name']\n description: Click Add DNS Load Balancer to open the create form\n - id: fill-name\n action: fill\n selector: textbox[name='Name']\n value: \"{name}\"\n description: Enter Name\n - id: select-record_type\n action: select\n selector: listbox\n context: Record Type section\n value: \"{record_type}\"\n description: Select Record Type\n - id: add-load_balancing_rules\n action: click\n selector: button:text('Add Item')\n context: Load Balancing Rules section\n description: Add Load Balancing Rules entry\n then:\n - id: select-load_balancing_rules-ref\n action: select\n selector: listbox[name='Pool']\n context: Pool selector\n value: \"{pool}\"\n description: Select the Pool for the Load Balancing Rules entry (references an existing dns_lb_pool create one first)\n - id: apply-load_balancing_rules\n action: click\n selector: button:text('Apply')\n description: Confirm Load Balancing Rules entry\n - id: save\n action: click\n selector: \"[class*='save-bt'],[class*='submit-button']\"\n context: footer\n wait_for: text('{name}')\n wait_timeout_ms: 30000\n description: Save/submit the form (union selector matches save-bt OR submit-button)\npostconditions:\n - resource_list_page_visible\n - \"resource_name_in_list: {name}\"\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
308
308
  "dns-load-balancer/delete":
309
309
  "schema: urn:f5xc:console:workflow:v1\nid: dns-load-balancer-delete\nlabel: Delete DNS Load Balancers\nresource: dns-load-balancer\noperation: delete\npreconditions:\n - user_logged_in\n - namespace_selected\n - \"role_minimum: admin\"\n - \"resource_exists: {name}\"\nparams:\n namespace:\n required: true\n example: demo\n name:\n required: true\n example: example-dns-load-balancer\nsteps:\n - id: navigate-to-list\n action: navigate\n url: /web/workspaces/dns-management/manage/dns_lb_management/dns_load_balancer\n wait_for: text('DNS Load Balancers')\n description: Navigate to DNS Load Balancers list page\n - id: scroll-actions-into-view\n action: scroll\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n description: Scroll the Actions column into view for the target row\n - id: open-row-actions\n action: click\n selector: row:has-text('{name}') >> [ves-e2e-test='row-action-dropdown']\n wait_for: option:text('Delete')\n description: Open the row kebab menu\n - id: click-delete\n action: click\n selector: option:text('Delete')\n wait_for: button:text('Delete')\n description: Click Delete option\n - id: confirm-delete\n action: click\n selector: button:text('Delete')\n wait_for: text('DNS Load Balancers')\n wait_timeout_ms: 15000\n description: Confirm deletion\npostconditions:\n - resource_removed_from_list\n - list_page_visible\nmetadata:\n confidence: inferred\n discovered_at: 2026-06-24\n console_version: \"2025.06\"\n notes: Auto-generated by scripts/generate-workflows.ts from api-specs-enriched field metadata.\n",
310
310
  "dns-load-balancer/read":
@@ -1333,8 +1333,11 @@ export const CONSOLE_FIELD_METADATA: ConsoleFieldMetadataData = {
1333
1333
  label: "Load Balancing Rules",
1334
1334
  required: true,
1335
1335
  add_action: "Add Item",
1336
+ sub_select_label: "Pool",
1337
+ sub_resource_type: "dns_lb_pool",
1336
1338
  form_section: "load-balancing-rules",
1337
- description: "Server-required: at least one Load Balancing Rule.",
1339
+ description:
1340
+ "At least one Load Balancing Rule. Each rule selects a Pool (references an existing dns_lb_pool — dependency; create one first).",
1338
1341
  },
1339
1342
  },
1340
1343
  global_log_receiver: {
@@ -1839,11 +1842,14 @@ export const CONSOLE_FIELD_METADATA: ConsoleFieldMetadataData = {
1839
1842
  form_section: "metadata",
1840
1843
  },
1841
1844
  "spec.members": {
1842
- widget_type: "configurable",
1845
+ widget_type: "nested-resource-list",
1843
1846
  label: "Pool Members",
1844
1847
  form_section: "basic",
1845
1848
  required: true,
1846
- description: "Server-required: Pool Members in A record type. Click Configure (link) to add members.",
1849
+ add_action: "Add Item",
1850
+ sub_field_label: "Public IP",
1851
+ description:
1852
+ "Pool Members is a nested-resource-list (Add Item, NOT Configure — verified from live form). Default A record member needs a Public IP.",
1847
1853
  },
1848
1854
  },
1849
1855
  site_mesh_group: {
@@ -2188,8 +2194,9 @@ export const CONSOLE_FIELD_METADATA: ConsoleFieldMetadataData = {
2188
2194
  "spec.ai_ml_feature_type": {
2189
2195
  widget_type: "table",
2190
2196
  label: "AI/ML Feature Type",
2191
- required: true,
2192
2197
  form_section: "features",
2198
+ description:
2199
+ "Not a top-level required field — the AI/ML Feature Type listbox lives inside the App Type Settings Add Item sub-form (see spec.app_type_settings).",
2193
2200
  },
2194
2201
  "spec.learn_from_traffic_with_redirect_response": {
2195
2202
  widget_type: "listbox",
@@ -2204,19 +2211,21 @@ export const CONSOLE_FIELD_METADATA: ConsoleFieldMetadataData = {
2204
2211
  form_section: "api-discovery-settings",
2205
2212
  },
2206
2213
  "spec.app_type_settings": {
2207
- required: true,
2208
2214
  label: "App Type Settings",
2209
2215
  widget_type: "nested-resource-list",
2210
2216
  add_action: "Add Item",
2211
2217
  form_section: "app-type-settings",
2212
- description: "Feedback loop: table widget → nested-resource-list (uses Add Item sub-form)",
2218
+ description:
2219
+ "Optional advanced settings. The required AI/ML Feature Type is the Features-row listbox (spec.feature_type), which ships with one row — no Add Item needed.",
2213
2220
  },
2214
2221
  "spec.feature_type": {
2215
2222
  required: true,
2216
2223
  label: "AI/ML Feature Type",
2217
2224
  widget_type: "listbox",
2218
- form_section: "app-type-settings",
2219
- description: "'Field AI/ML Feature Type is required' — nested inside app_type_settings",
2225
+ resource_type: "ai_feature_type",
2226
+ form_section: "features",
2227
+ description:
2228
+ "Required Select-item listbox in the Features section (ships with one row). Verified from live form screenshot.",
2220
2229
  },
2221
2230
  },
2222
2231
  authorization_server: {
@@ -2356,7 +2365,9 @@ export const CONSOLE_FIELD_METADATA: ConsoleFieldMetadataData = {
2356
2365
  widget_type: "table",
2357
2366
  label: "Expressions",
2358
2367
  required: true,
2368
+ add_item_first: true,
2359
2369
  form_section: "cache-rule",
2370
+ description: "Expressions table starts empty — needs Add Item before filling the inline cell.",
2360
2371
  },
2361
2372
  "spec.cache_actions": {
2362
2373
  widget_type: "listbox",
@@ -5,10 +5,10 @@ import type { TerraformIndex } from "./terraform-types";
5
5
  export const TERRAFORM_INDEX: TerraformIndex = {
6
6
  version: "0.1.0",
7
7
  provider: {
8
- source: "f5xc-salesdemos/f5xc",
9
- registry: "https://registry.terraform.io/providers/f5xc-salesdemos/f5xc",
8
+ source: "f5-sales-demo/f5xc",
9
+ registry: "https://registry.terraform.io/providers/f5-sales-demo/f5xc",
10
10
  required_block:
11
- 'terraform {\n required_providers {\n xcsh = {\n source = "f5xc-salesdemos/xcsh"\n }\n }\n}',
11
+ 'terraform {\n required_providers {\n xcsh = {\n source = "f5-sales-demo/xcsh"\n }\n }\n}',
12
12
  config_block: 'provider "xcsh" {}',
13
13
  auth_methods: [
14
14
  'REQUIRED: every .tf must contain a `provider "xcsh" {}` block. Without it Terraform errors: "Provider requires explicit configuration. Add a provider block".',