@f5xc-salesdemos/xcsh 18.46.0 → 18.47.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.47.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.47.0",
|
|
52
|
+
"@f5xc-salesdemos/pi-agent-core": "18.47.0",
|
|
53
|
+
"@f5xc-salesdemos/pi-ai": "18.47.0",
|
|
54
|
+
"@f5xc-salesdemos/pi-natives": "18.47.0",
|
|
55
|
+
"@f5xc-salesdemos/pi-tui": "18.47.0",
|
|
56
|
+
"@f5xc-salesdemos/pi-utils": "18.47.0",
|
|
57
57
|
"@sinclair/typebox": "^0.34",
|
|
58
58
|
"@xterm/headless": "^6.0",
|
|
59
59
|
"ajv": "^8.18",
|
|
@@ -1956,6 +1956,7 @@ export interface SkillsSettings {
|
|
|
1956
1956
|
enableCodexUser?: boolean;
|
|
1957
1957
|
enableClaudeUser?: boolean;
|
|
1958
1958
|
enableClaudeProject?: boolean;
|
|
1959
|
+
enableClaudePlugins?: boolean;
|
|
1959
1960
|
enablePiUser?: boolean;
|
|
1960
1961
|
enablePiProject?: boolean;
|
|
1961
1962
|
customDirectories?: string[];
|
|
@@ -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.47.0",
|
|
21
|
+
"commit": "d0994b94529ed5464212568134c7dc9d75506b21",
|
|
22
|
+
"shortCommit": "d0994b9",
|
|
23
23
|
"branch": "main",
|
|
24
|
-
"tag": "v18.
|
|
25
|
-
"commitDate": "2026-05-
|
|
26
|
-
"buildDate": "2026-05-
|
|
24
|
+
"tag": "v18.47.0",
|
|
25
|
+
"commitDate": "2026-05-06T06:04:50Z",
|
|
26
|
+
"buildDate": "2026-05-06T06:30:34.654Z",
|
|
27
27
|
"dirty": false,
|
|
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/d0994b94529ed5464212568134c7dc9d75506b21",
|
|
32
|
+
"releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v18.47.0"
|
|
33
33
|
};
|
|
@@ -399,3 +399,30 @@ export function mapGitHubStatus(status: WelcomeGitHubStatus | undefined): Servic
|
|
|
399
399
|
return { name: "GitHub", state: "unauthenticated", hint: "run: gh auth login" };
|
|
400
400
|
}
|
|
401
401
|
}
|
|
402
|
+
|
|
403
|
+
export type AzureCheckState = "connected" | "auth_error";
|
|
404
|
+
|
|
405
|
+
export interface WelcomeAzureStatus {
|
|
406
|
+
state: AzureCheckState;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
export async function checkAzureStatus(): Promise<WelcomeAzureStatus | undefined> {
|
|
410
|
+
try {
|
|
411
|
+
if (!$which("az")) return undefined;
|
|
412
|
+
const result = await $`az account show --output json`.quiet().nothrow();
|
|
413
|
+
return { state: result.exitCode === 0 ? "connected" : "auth_error" };
|
|
414
|
+
} catch (err) {
|
|
415
|
+
logger.warn("Azure startup check failed", { error: String(err) });
|
|
416
|
+
return { state: "auth_error" };
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
export function mapAzureStatus(status: WelcomeAzureStatus | undefined): ServiceStatus {
|
|
421
|
+
if (!status) return { name: "Azure", state: "unavailable", hint: "not installed" };
|
|
422
|
+
switch (status.state) {
|
|
423
|
+
case "connected":
|
|
424
|
+
return { name: "Azure", state: "connected" };
|
|
425
|
+
case "auth_error":
|
|
426
|
+
return { name: "Azure", state: "unauthenticated", hint: "run: az login --use-device-code" };
|
|
427
|
+
}
|
|
428
|
+
}
|
|
@@ -51,9 +51,11 @@ import { StatusLineComponent } from "./components/status-line";
|
|
|
51
51
|
import type { ToolExecutionHandle } from "./components/tool-execution";
|
|
52
52
|
import { type UpdateStatus, WelcomeComponent } from "./components/welcome";
|
|
53
53
|
import {
|
|
54
|
+
checkAzureStatus,
|
|
54
55
|
checkGitHubStatus,
|
|
55
56
|
checkGitLabStatus,
|
|
56
57
|
checkSalesforceStatus,
|
|
58
|
+
mapAzureStatus,
|
|
57
59
|
mapContextStatus,
|
|
58
60
|
mapGitHubStatus,
|
|
59
61
|
mapGitLabStatus,
|
|
@@ -316,14 +318,15 @@ export class InteractiveMode implements InteractiveModeContext {
|
|
|
316
318
|
getProjectDir(),
|
|
317
319
|
);
|
|
318
320
|
|
|
319
|
-
// Run blocking welcome screen status checks (model + context + gitlab + github + salesforce) in parallel
|
|
320
|
-
const [welcomeResult, gitlabStatus, salesforceStatus, githubStatus] = await Promise.all([
|
|
321
|
+
// Run blocking welcome screen status checks (model + context + gitlab + github + salesforce + azure) in parallel
|
|
322
|
+
const [welcomeResult, gitlabStatus, salesforceStatus, githubStatus, azureStatus] = await Promise.all([
|
|
321
323
|
logger.time("InteractiveMode.init:welcomeChecks", () =>
|
|
322
324
|
runWelcomeChecks(this.session.model, this.session.modelRegistry.authStorage),
|
|
323
325
|
),
|
|
324
326
|
checkGitLabStatus(getProjectDir()).catch(() => undefined),
|
|
325
327
|
checkSalesforceStatus(getProjectDir()).catch(() => undefined),
|
|
326
328
|
checkGitHubStatus().catch(() => undefined),
|
|
329
|
+
checkAzureStatus().catch(() => undefined),
|
|
327
330
|
]);
|
|
328
331
|
|
|
329
332
|
const startupQuiet = settings.get("startup.quiet");
|
|
@@ -344,6 +347,7 @@ export class InteractiveMode implements InteractiveModeContext {
|
|
|
344
347
|
mapGitLabStatus(gitlabStatus),
|
|
345
348
|
mapGitHubStatus(githubStatus),
|
|
346
349
|
mapSalesforceStatus(salesforceStatus),
|
|
350
|
+
mapAzureStatus(azureStatus),
|
|
347
351
|
]
|
|
348
352
|
: [];
|
|
349
353
|
this.#welcomeComponent = new WelcomeComponent(
|