@f5xc-salesdemos/xcsh 18.80.0 → 18.81.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.
|
|
4
|
+
"version": "18.81.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.
|
|
52
|
-
"@f5xc-salesdemos/pi-agent-core": "18.
|
|
53
|
-
"@f5xc-salesdemos/pi-ai": "18.
|
|
54
|
-
"@f5xc-salesdemos/pi-natives": "18.
|
|
55
|
-
"@f5xc-salesdemos/pi-tui": "18.
|
|
56
|
-
"@f5xc-salesdemos/pi-utils": "18.
|
|
51
|
+
"@f5xc-salesdemos/xcsh-stats": "18.81.0",
|
|
52
|
+
"@f5xc-salesdemos/pi-agent-core": "18.81.0",
|
|
53
|
+
"@f5xc-salesdemos/pi-ai": "18.81.0",
|
|
54
|
+
"@f5xc-salesdemos/pi-natives": "18.81.0",
|
|
55
|
+
"@f5xc-salesdemos/pi-tui": "18.81.0",
|
|
56
|
+
"@f5xc-salesdemos/pi-utils": "18.81.0",
|
|
57
57
|
"@sinclair/typebox": "^0.34",
|
|
58
58
|
"@xterm/headless": "^6.0",
|
|
59
59
|
"ajv": "^8.18",
|
|
@@ -17,17 +17,17 @@ export interface BuildInfo {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export const BUILD_INFO: BuildInfo = {
|
|
20
|
-
"version": "18.
|
|
21
|
-
"commit": "
|
|
22
|
-
"shortCommit": "
|
|
20
|
+
"version": "18.81.0",
|
|
21
|
+
"commit": "042ddfbad1fad8132b3dc9a1eb0190ac17b2d22d",
|
|
22
|
+
"shortCommit": "042ddfb",
|
|
23
23
|
"branch": "main",
|
|
24
|
-
"tag": "v18.
|
|
25
|
-
"commitDate": "2026-05-
|
|
26
|
-
"buildDate": "2026-05-
|
|
24
|
+
"tag": "v18.81.0",
|
|
25
|
+
"commitDate": "2026-05-25T15:40:42Z",
|
|
26
|
+
"buildDate": "2026-05-25T16:05:58.171Z",
|
|
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/
|
|
32
|
-
"releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v18.
|
|
31
|
+
"commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/042ddfbad1fad8132b3dc9a1eb0190ac17b2d22d",
|
|
32
|
+
"releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v18.81.0"
|
|
33
33
|
};
|
package/src/tools/xcsh-api.ts
CHANGED
|
@@ -427,7 +427,7 @@ export class XcshApiTool implements AgentTool<typeof xcshApiSchema, XcshApiToolD
|
|
|
427
427
|
// Only fetch specs for types that carry relationship data (LBs, pools, firewalls,
|
|
428
428
|
// healthchecks). Excludes system-generated objects (routes, virtual_hosts, etc.)
|
|
429
429
|
// that inflate the item count and don't add relationship info.
|
|
430
|
-
const SPEC_TYPES = /loadbalancer|origin_pool|app_firewall|healthcheck/i;
|
|
430
|
+
const SPEC_TYPES = /loadbalancer|origin_pool|app_firewall|healthcheck|rate_limiter/i;
|
|
431
431
|
for (const r of relevantData) {
|
|
432
432
|
const typeName = r.path.split("/").pop() ?? "";
|
|
433
433
|
if (!SPEC_TYPES.test(typeName)) continue;
|
|
@@ -472,6 +472,7 @@ export class XcshApiTool implements AgentTool<typeof xcshApiSchema, XcshApiToolD
|
|
|
472
472
|
const humanizeType = (raw: string): string =>
|
|
473
473
|
raw
|
|
474
474
|
.replace(/^http_/, "")
|
|
475
|
+
.replace(/^tcp_/, "TCP ")
|
|
475
476
|
.replace(/_/g, " ")
|
|
476
477
|
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
|
477
478
|
.replace(/([a-z])(balancer|checker)/gi, "$1 $2");
|
|
@@ -531,7 +532,13 @@ export class XcshApiTool implements AgentTool<typeof xcshApiSchema, XcshApiToolD
|
|
|
531
532
|
const rName = parts.at(-1) ?? "";
|
|
532
533
|
const rType = parts.at(-2) ?? "";
|
|
533
534
|
const labels: string[] = [];
|
|
534
|
-
if (/
|
|
535
|
+
if (/tcp_loadbalancer/i.test(rType)) {
|
|
536
|
+
const pools = extractPoolRefs(spec.origin_pools_weights);
|
|
537
|
+
if (pools.length > 0) labels.push(`pools=[${pools.join(",")}]`);
|
|
538
|
+
if (typeof spec.listen_port === "number") labels.push(`port=${spec.listen_port}`);
|
|
539
|
+
const domains = Array.isArray(spec.domains) ? (spec.domains as string[]) : [];
|
|
540
|
+
if (domains.length > 0) labels.push(`domains=[${domains.join(",")}]`);
|
|
541
|
+
} else if (/loadbalancer/i.test(rType)) {
|
|
535
542
|
const waf = extractRef(spec.app_firewall);
|
|
536
543
|
labels.push(waf ? `WAF=${waf}` : "no-WAF");
|
|
537
544
|
const pools = extractPoolRefs(spec.default_route_pools);
|
|
@@ -564,6 +571,13 @@ export class XcshApiTool implements AgentTool<typeof xcshApiSchema, XcshApiToolD
|
|
|
564
571
|
labels.push("tcp");
|
|
565
572
|
}
|
|
566
573
|
}
|
|
574
|
+
if (/rate_limiter/i.test(rType)) {
|
|
575
|
+
if (typeof spec.total_number === "number") labels.push(`threshold=${spec.total_number}`);
|
|
576
|
+
if (typeof spec.burst_size === "number") labels.push(`burst=${spec.burst_size}`);
|
|
577
|
+
if (typeof spec.committed_information_rate === "number")
|
|
578
|
+
labels.push(`rate=${spec.committed_information_rate}`);
|
|
579
|
+
if (typeof spec.unit === "string") labels.push(`unit=${spec.unit}`);
|
|
580
|
+
}
|
|
567
581
|
if (labels.length > 0) {
|
|
568
582
|
summaryLines.push(`${rName}: ${labels.join(", ")}`);
|
|
569
583
|
}
|