@f5xc-salesdemos/xcsh 18.62.0 → 18.63.0

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": "18.62.0",
4
+ "version": "18.63.0",
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",
@@ -48,12 +48,12 @@
48
48
  "dependencies": {
49
49
  "@agentclientprotocol/sdk": "0.16.1",
50
50
  "@mozilla/readability": "^0.6",
51
- "@f5xc-salesdemos/xcsh-stats": "18.62.0",
52
- "@f5xc-salesdemos/pi-agent-core": "18.62.0",
53
- "@f5xc-salesdemos/pi-ai": "18.62.0",
54
- "@f5xc-salesdemos/pi-natives": "18.62.0",
55
- "@f5xc-salesdemos/pi-tui": "18.62.0",
56
- "@f5xc-salesdemos/pi-utils": "18.62.0",
51
+ "@f5xc-salesdemos/xcsh-stats": "18.63.0",
52
+ "@f5xc-salesdemos/pi-agent-core": "18.63.0",
53
+ "@f5xc-salesdemos/pi-ai": "18.63.0",
54
+ "@f5xc-salesdemos/pi-natives": "18.63.0",
55
+ "@f5xc-salesdemos/pi-tui": "18.63.0",
56
+ "@f5xc-salesdemos/pi-utils": "18.63.0",
57
57
  "@sinclair/typebox": "^0.34",
58
58
  "@xterm/headless": "^6.0",
59
59
  "ajv": "^8.18",
@@ -151,6 +151,7 @@ function formatConstraints(constraints: Record<string, unknown> | undefined): st
151
151
  }
152
152
  if (constraints.format) parts.push(`format: ${constraints.format}`);
153
153
  if (Array.isArray(constraints.enum)) parts.push(`enum: ${constraints.enum.join(", ")}`);
154
+ if (Array.isArray(constraints.enumValues)) parts.push(`enum: ${(constraints.enumValues as string[]).join(", ")}`);
154
155
  const meta = constraints.metadata as Record<string, unknown> | undefined;
155
156
  if (meta?.note) parts.push(`note: ${String(meta.note)}`);
156
157
  return parts.length > 0 ? parts.join(", ") : "--";
@@ -252,17 +253,43 @@ function renderCatalogDetail(cat: ApiCatalogCategory, index: ApiCatalogIndex, op
252
253
  const reqFor = formatRequiredFor(meta.required_for);
253
254
  const def = sanitizeTableCell(formatDefault(meta.default, meta.serverDefault));
254
255
  sections.push(`| ${field} | ${meta.type} | ${desc} | ${constraint} | ${reqFor} | ${def} |`);
256
+ // Render cross-field dependencies inline
257
+ if (meta.requires && meta.requires.length > 0) {
258
+ for (const dep of meta.requires) {
259
+ const depNote = dep.min_items != null ? ` (min_items: ${dep.min_items})` : "";
260
+ sections.push(
261
+ `| └─ ${field} | | **requires** ${dep.field}${depNote} | ${sanitizeTableCell(dep.reason ?? "")} | | |`,
262
+ );
263
+ }
264
+ }
265
+ // Render conflictsWith inline
266
+ if (meta.conflictsWith && meta.conflictsWith.length > 0) {
267
+ sections.push(`| └─ ${field} | | **conflicts with** ${meta.conflictsWith.join(", ")} | | | |`);
268
+ }
255
269
  }
256
270
  }
257
271
  }
258
272
 
259
- // OneOf Recommendations
260
- if (op.oneOfRecommendations && Object.keys(op.oneOfRecommendations).length > 0) {
261
- sections.push("", "### OneOf Recommendations", "");
262
- sections.push("| Path | Recommended Variant |");
263
- sections.push("|------|-------------------|");
264
- for (const [path, variant] of Object.entries(op.oneOfRecommendations)) {
265
- sections.push(`| ${path} | ${variant} |`);
273
+ // OneOf Groups — combined recommendations + available variants
274
+ const hasRecs = op.oneOfRecommendations && Object.keys(op.oneOfRecommendations).length > 0;
275
+ const hasVariants = op.oneOfVariants && Object.keys(op.oneOfVariants).length > 0;
276
+
277
+ if (hasRecs || hasVariants) {
278
+ sections.push("", "### OneOf Groups", "");
279
+ sections.push("| Group | Recommended | Available Variants |");
280
+ sections.push("|-------|-------------|-------------------|");
281
+
282
+ // Merge all keys from both maps
283
+ const allGroups = new Set([
284
+ ...Object.keys(op.oneOfRecommendations ?? {}),
285
+ ...Object.keys(op.oneOfVariants ?? {}),
286
+ ]);
287
+
288
+ for (const group of [...allGroups].sort()) {
289
+ const rec = op.oneOfRecommendations?.[group] ?? "--";
290
+ const variants = op.oneOfVariants?.[group];
291
+ const variantStr = variants ? variants.join(", ") : "--";
292
+ sections.push(`| ${group} | ${rec} | ${variantStr} |`);
266
293
  }
267
294
  }
268
295
 
@@ -33,6 +33,13 @@ export interface ApiCatalogFieldMeta {
33
33
  readonly recommendedValue?: unknown;
34
34
  readonly constraints?: Record<string, unknown>;
35
35
  readonly conflictsWith?: readonly string[];
36
+ readonly requires?: ReadonlyArray<{
37
+ readonly field: string;
38
+ readonly required?: boolean;
39
+ readonly requires_field?: string;
40
+ readonly reason?: string;
41
+ readonly min_items?: number;
42
+ }>;
36
43
  }
37
44
 
38
45
  export interface ApiCatalogResponseField {
@@ -53,6 +60,7 @@ export interface ApiCatalogOperation {
53
60
  readonly minimumPayload?: ApiCatalogMinimumPayload;
54
61
  readonly fieldMetadata?: Readonly<Record<string, ApiCatalogFieldMeta>>;
55
62
  readonly oneOfRecommendations?: Readonly<Record<string, string>>;
63
+ readonly oneOfVariants?: Readonly<Record<string, readonly string[]>>;
56
64
  readonly responseSummary?: readonly ApiCatalogResponseField[];
57
65
  }
58
66
 
@@ -17,17 +17,17 @@ export interface BuildInfo {
17
17
  }
18
18
 
19
19
  export const BUILD_INFO: BuildInfo = {
20
- "version": "18.62.0",
21
- "commit": "45f8f524a90fb2b3eaa542b522fd4779873ca151",
22
- "shortCommit": "45f8f52",
20
+ "version": "18.63.0",
21
+ "commit": "8d5a9fc0bb6d4a264e25e3066f29273b7f0a6760",
22
+ "shortCommit": "8d5a9fc",
23
23
  "branch": "main",
24
- "tag": "v18.62.0",
25
- "commitDate": "2026-05-10T21:40:34Z",
26
- "buildDate": "2026-05-10T22:05:24.704Z",
24
+ "tag": "v18.63.0",
25
+ "commitDate": "2026-05-11T07:20:24Z",
26
+ "buildDate": "2026-05-11T07:45:28.251Z",
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/45f8f524a90fb2b3eaa542b522fd4779873ca151",
32
- "releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v18.62.0"
31
+ "commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/8d5a9fc0bb6d4a264e25e3066f29273b7f0a6760",
32
+ "releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v18.63.0"
33
33
  };