@f5xc-salesdemos/xcsh 19.28.0 → 19.28.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.
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@f5xc-salesdemos/xcsh",
|
|
4
|
-
"version": "19.28.
|
|
4
|
+
"version": "19.28.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,12 +50,12 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@agentclientprotocol/sdk": "0.16.1",
|
|
52
52
|
"@mozilla/readability": "^0.6",
|
|
53
|
-
"@f5xc-salesdemos/xcsh-stats": "19.28.
|
|
54
|
-
"@f5xc-salesdemos/pi-agent-core": "19.28.
|
|
55
|
-
"@f5xc-salesdemos/pi-ai": "19.28.
|
|
56
|
-
"@f5xc-salesdemos/pi-natives": "19.28.
|
|
57
|
-
"@f5xc-salesdemos/pi-tui": "19.28.
|
|
58
|
-
"@f5xc-salesdemos/pi-utils": "19.28.
|
|
53
|
+
"@f5xc-salesdemos/xcsh-stats": "19.28.1",
|
|
54
|
+
"@f5xc-salesdemos/pi-agent-core": "19.28.1",
|
|
55
|
+
"@f5xc-salesdemos/pi-ai": "19.28.1",
|
|
56
|
+
"@f5xc-salesdemos/pi-natives": "19.28.1",
|
|
57
|
+
"@f5xc-salesdemos/pi-tui": "19.28.1",
|
|
58
|
+
"@f5xc-salesdemos/pi-utils": "19.28.1",
|
|
59
59
|
"@sinclair/typebox": "^0.34",
|
|
60
60
|
"@xterm/headless": "^6.0",
|
|
61
61
|
"ajv": "^8.20",
|
|
@@ -17,17 +17,17 @@ export interface BuildInfo {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export const BUILD_INFO: BuildInfo = {
|
|
20
|
-
"version": "19.28.
|
|
21
|
-
"commit": "
|
|
22
|
-
"shortCommit": "
|
|
20
|
+
"version": "19.28.1",
|
|
21
|
+
"commit": "e614268dc72eee896142a03c2a926a73c7774e4e",
|
|
22
|
+
"shortCommit": "e614268",
|
|
23
23
|
"branch": "main",
|
|
24
|
-
"tag": "v19.28.
|
|
25
|
-
"commitDate": "2026-06-
|
|
26
|
-
"buildDate": "2026-06-
|
|
24
|
+
"tag": "v19.28.1",
|
|
25
|
+
"commitDate": "2026-06-11T20:00:30Z",
|
|
26
|
+
"buildDate": "2026-06-11T20:25:20.808Z",
|
|
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.28.
|
|
31
|
+
"commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/e614268dc72eee896142a03c2a926a73c7774e4e",
|
|
32
|
+
"releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v19.28.1"
|
|
33
33
|
};
|
|
@@ -223,11 +223,6 @@ export interface FixableService {
|
|
|
223
223
|
recheck: () => Promise<ServiceStatus>;
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
export interface RecommendedPluginStatus {
|
|
227
|
-
name: string;
|
|
228
|
-
installed: boolean;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
226
|
export type UnifiedPluginState = "connected" | "unauthenticated" | "unavailable" | "installed" | "not_installed";
|
|
232
227
|
|
|
233
228
|
export interface UnifiedPluginStatus {
|
|
@@ -316,40 +311,3 @@ export async function buildUnifiedPluginList(
|
|
|
316
311
|
return a.name.localeCompare(b.name);
|
|
317
312
|
});
|
|
318
313
|
}
|
|
319
|
-
|
|
320
|
-
export async function checkRecommendedPlugins(): Promise<RecommendedPluginStatus[]> {
|
|
321
|
-
try {
|
|
322
|
-
const mgr = new MarketplaceManager({
|
|
323
|
-
marketplacesRegistryPath: getMarketplacesRegistryPath(),
|
|
324
|
-
installedRegistryPath: getInstalledPluginsRegistryPath(),
|
|
325
|
-
marketplacesCacheDir: getMarketplacesCacheDir(),
|
|
326
|
-
pluginsCacheDir: getPluginsCacheDir(),
|
|
327
|
-
clearPluginRootsCache: () => {},
|
|
328
|
-
});
|
|
329
|
-
|
|
330
|
-
const [marketplaces, installedSummaries] = await Promise.all([
|
|
331
|
-
mgr.listMarketplaces(),
|
|
332
|
-
mgr.listInstalledPlugins(),
|
|
333
|
-
]);
|
|
334
|
-
|
|
335
|
-
const installedIds = new Set(installedSummaries.map(s => s.id));
|
|
336
|
-
const results: RecommendedPluginStatus[] = [];
|
|
337
|
-
|
|
338
|
-
for (const mkt of marketplaces) {
|
|
339
|
-
const available = await mgr.listAvailablePlugins(mkt.name).catch(() => []);
|
|
340
|
-
for (const entry of available) {
|
|
341
|
-
if (!entry.recommended) continue;
|
|
342
|
-
const pluginId = `${entry.name}@${mkt.name}`;
|
|
343
|
-
results.push({
|
|
344
|
-
name: normalizePluginDisplayName(entry.name),
|
|
345
|
-
installed: installedIds.has(pluginId),
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
return results.sort((a, b) => a.name.localeCompare(b.name));
|
|
351
|
-
} catch (err) {
|
|
352
|
-
logger.debug("checkRecommendedPlugins failed", { error: String(err) });
|
|
353
|
-
return [];
|
|
354
|
-
}
|
|
355
|
-
}
|
|
@@ -2,7 +2,7 @@ import { type Component, padding, truncateToWidth, visibleWidth } from "@f5xc-sa
|
|
|
2
2
|
import { APP_NAME, t } from "@f5xc-salesdemos/pi-utils";
|
|
3
3
|
import { theme } from "../../modes/theme/theme";
|
|
4
4
|
import { formatStatusIcon } from "../../services/f5xc-context-indicators";
|
|
5
|
-
import type { ModelStatus,
|
|
5
|
+
import type { ModelStatus, ServiceStatus, UnifiedPluginStatus } from "./welcome-checks";
|
|
6
6
|
|
|
7
7
|
export interface UpdateStatus {
|
|
8
8
|
available: boolean;
|
|
@@ -15,7 +15,6 @@ export class WelcomeComponent implements Component {
|
|
|
15
15
|
private modelStatus: ModelStatus,
|
|
16
16
|
private services: ServiceStatus[] = [],
|
|
17
17
|
private updateStatus?: UpdateStatus,
|
|
18
|
-
private recommendedPlugins: RecommendedPluginStatus[] = [],
|
|
19
18
|
private plugins: UnifiedPluginStatus[] = [],
|
|
20
19
|
) {}
|
|
21
20
|
invalidate(): void {}
|
|
@@ -28,9 +27,6 @@ export class WelcomeComponent implements Component {
|
|
|
28
27
|
setUpdateStatus(status: UpdateStatus | undefined): void {
|
|
29
28
|
this.updateStatus = status;
|
|
30
29
|
}
|
|
31
|
-
setRecommendedPlugins(plugins: RecommendedPluginStatus[]): void {
|
|
32
|
-
this.recommendedPlugins = plugins;
|
|
33
|
-
}
|
|
34
30
|
setPlugins(plugins: UnifiedPluginStatus[]): void {
|
|
35
31
|
this.plugins = plugins;
|
|
36
32
|
}
|