@f5xc-salesdemos/xcsh 19.33.0 → 19.34.1
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.
|
@@ -18,7 +18,7 @@ const filteredSkills = allSkills.filter(s => s.name.includes("browser") || s.nam
|
|
|
18
18
|
|
|
19
19
|
// Or define custom skills inline
|
|
20
20
|
const customSkill: Skill = {
|
|
21
|
-
name: "
|
|
21
|
+
name: "example-skill",
|
|
22
22
|
description: "Custom project instructions",
|
|
23
23
|
filePath: "/virtual/SKILL.md",
|
|
24
24
|
baseDir: "/virtual",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@f5xc-salesdemos/xcsh",
|
|
4
|
-
"version": "19.
|
|
4
|
+
"version": "19.34.1",
|
|
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",
|
|
@@ -50,13 +50,13 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@agentclientprotocol/sdk": "0.16.1",
|
|
52
52
|
"@mozilla/readability": "^0.6",
|
|
53
|
-
"@f5xc-salesdemos/xcsh-stats": "19.
|
|
54
|
-
"@f5xc-salesdemos/pi-agent-core": "19.
|
|
55
|
-
"@f5xc-salesdemos/pi-ai": "19.
|
|
56
|
-
"@f5xc-salesdemos/pi-natives": "19.
|
|
57
|
-
"@f5xc-salesdemos/pi-resource-management": "19.
|
|
58
|
-
"@f5xc-salesdemos/pi-tui": "19.
|
|
59
|
-
"@f5xc-salesdemos/pi-utils": "19.
|
|
53
|
+
"@f5xc-salesdemos/xcsh-stats": "19.34.1",
|
|
54
|
+
"@f5xc-salesdemos/pi-agent-core": "19.34.1",
|
|
55
|
+
"@f5xc-salesdemos/pi-ai": "19.34.1",
|
|
56
|
+
"@f5xc-salesdemos/pi-natives": "19.34.1",
|
|
57
|
+
"@f5xc-salesdemos/pi-resource-management": "19.34.1",
|
|
58
|
+
"@f5xc-salesdemos/pi-tui": "19.34.1",
|
|
59
|
+
"@f5xc-salesdemos/pi-utils": "19.34.1",
|
|
60
60
|
"@sinclair/typebox": "^0.34",
|
|
61
61
|
"@xterm/headless": "^6.0",
|
|
62
62
|
"ajv": "^8.20",
|
|
@@ -1359,8 +1359,13 @@ export const SETTINGS_SCHEMA = {
|
|
|
1359
1359
|
|
|
1360
1360
|
"web_search.enabled": {
|
|
1361
1361
|
type: "boolean",
|
|
1362
|
-
default:
|
|
1363
|
-
ui: {
|
|
1362
|
+
default: false,
|
|
1363
|
+
ui: {
|
|
1364
|
+
tab: "tools",
|
|
1365
|
+
label: "Web Search",
|
|
1366
|
+
description:
|
|
1367
|
+
"Enable the web_search tool for web searching (disabled by default to prevent accidental PII exposure via prompt injection)",
|
|
1368
|
+
},
|
|
1364
1369
|
},
|
|
1365
1370
|
"web_search.verbose": {
|
|
1366
1371
|
type: "boolean",
|
|
@@ -17,17 +17,17 @@ export interface BuildInfo {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export const BUILD_INFO: BuildInfo = {
|
|
20
|
-
"version": "19.
|
|
21
|
-
"commit": "
|
|
22
|
-
"shortCommit": "
|
|
20
|
+
"version": "19.34.1",
|
|
21
|
+
"commit": "c4f25152065ba8aaef7187bbab3ff5698f752cc0",
|
|
22
|
+
"shortCommit": "c4f2515",
|
|
23
23
|
"branch": "main",
|
|
24
|
-
"tag": "v19.
|
|
25
|
-
"commitDate": "2026-06-
|
|
26
|
-
"buildDate": "2026-06-
|
|
24
|
+
"tag": "v19.34.1",
|
|
25
|
+
"commitDate": "2026-06-18T03:53:26Z",
|
|
26
|
+
"buildDate": "2026-06-18T04:18:34.040Z",
|
|
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/v19.
|
|
31
|
+
"commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/c4f25152065ba8aaef7187bbab3ff5698f752cc0",
|
|
32
|
+
"releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v19.34.1"
|
|
33
33
|
};
|
|
@@ -12,6 +12,10 @@ export function validateWizardUrl(url: string): string | null {
|
|
|
12
12
|
try {
|
|
13
13
|
const parsed = new URL(url);
|
|
14
14
|
if (parsed.protocol !== "https:") return "URL must use HTTPS";
|
|
15
|
+
const labels = parsed.hostname.replace(/\.$/, "").split(".");
|
|
16
|
+
if (labels.length < 2 || labels.some(l => l.length === 0)) {
|
|
17
|
+
return "URL must include a full domain (e.g., tenant.console.ves.volterra.io)";
|
|
18
|
+
}
|
|
15
19
|
return null;
|
|
16
20
|
} catch {
|
|
17
21
|
return "Invalid URL format";
|
|
@@ -349,6 +349,11 @@ async function handleCreate(ctx: CommandContext, service: ContextService, args:
|
|
|
349
349
|
ctx.showError(t("context.create.invalidUrl"));
|
|
350
350
|
return;
|
|
351
351
|
}
|
|
352
|
+
const labels = parsed.hostname.replace(/\.$/, "").split(".");
|
|
353
|
+
if (labels.length < 2 || labels.some(l => l.length === 0)) {
|
|
354
|
+
ctx.showError(t("context.create.invalidUrl"));
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
352
357
|
} catch {
|
|
353
358
|
ctx.showError(t("context.create.invalidUrl"));
|
|
354
359
|
return;
|