@f5xc-salesdemos/xcsh 19.18.4 → 19.18.5
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.18.
|
|
4
|
+
"version": "19.18.5",
|
|
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.18.
|
|
54
|
-
"@f5xc-salesdemos/pi-agent-core": "19.18.
|
|
55
|
-
"@f5xc-salesdemos/pi-ai": "19.18.
|
|
56
|
-
"@f5xc-salesdemos/pi-natives": "19.18.
|
|
57
|
-
"@f5xc-salesdemos/pi-tui": "19.18.
|
|
58
|
-
"@f5xc-salesdemos/pi-utils": "19.18.
|
|
53
|
+
"@f5xc-salesdemos/xcsh-stats": "19.18.5",
|
|
54
|
+
"@f5xc-salesdemos/pi-agent-core": "19.18.5",
|
|
55
|
+
"@f5xc-salesdemos/pi-ai": "19.18.5",
|
|
56
|
+
"@f5xc-salesdemos/pi-natives": "19.18.5",
|
|
57
|
+
"@f5xc-salesdemos/pi-tui": "19.18.5",
|
|
58
|
+
"@f5xc-salesdemos/pi-utils": "19.18.5",
|
|
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.18.
|
|
21
|
-
"commit": "
|
|
22
|
-
"shortCommit": "
|
|
20
|
+
"version": "19.18.5",
|
|
21
|
+
"commit": "be83ca7a8faaed15b82af6f598128140d616d505",
|
|
22
|
+
"shortCommit": "be83ca7",
|
|
23
23
|
"branch": "main",
|
|
24
|
-
"tag": "v19.18.
|
|
25
|
-
"commitDate": "2026-06-
|
|
26
|
-
"buildDate": "2026-06-08T21:
|
|
24
|
+
"tag": "v19.18.5",
|
|
25
|
+
"commitDate": "2026-06-08T21:03:00Z",
|
|
26
|
+
"buildDate": "2026-06-08T21:30:30.897Z",
|
|
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.18.
|
|
31
|
+
"commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/be83ca7a8faaed15b82af6f598128140d616d505",
|
|
32
|
+
"releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v19.18.5"
|
|
33
33
|
};
|
package/src/main.ts
CHANGED
|
@@ -716,6 +716,36 @@ export async function runRootCommand(parsed: Args, rawArgs: string[]): Promise<v
|
|
|
716
716
|
sessionManager = await SessionManager.open(selectedPath);
|
|
717
717
|
}
|
|
718
718
|
|
|
719
|
+
// Refresh stale marketplace clones before loading plugins so extensions run latest code.
|
|
720
|
+
const autoUpdate = settings.get("marketplace.autoUpdate");
|
|
721
|
+
if (autoUpdate !== "off") {
|
|
722
|
+
try {
|
|
723
|
+
const startupMgr = new MarketplaceManager({
|
|
724
|
+
marketplacesRegistryPath: getMarketplacesRegistryPath(),
|
|
725
|
+
installedRegistryPath: getInstalledPluginsRegistryPath(),
|
|
726
|
+
projectInstalledRegistryPath: (await resolveActiveProjectRegistryPath(getProjectDir())) ?? undefined,
|
|
727
|
+
marketplacesCacheDir: getMarketplacesCacheDir(),
|
|
728
|
+
pluginsCacheDir: getPluginsCacheDir(),
|
|
729
|
+
clearPluginRootsCache: (extraPaths?: readonly string[]) => {
|
|
730
|
+
const h = os.homedir();
|
|
731
|
+
invalidateFsCache(path.join(h, getConfigDirName(), "plugins", "installed_plugins.json"));
|
|
732
|
+
for (const p of extraPaths ?? []) invalidateFsCache(p);
|
|
733
|
+
clearXcshPluginRootsCache();
|
|
734
|
+
},
|
|
735
|
+
});
|
|
736
|
+
await startupMgr.refreshStaleMarketplaces();
|
|
737
|
+
if (autoUpdate === "auto") {
|
|
738
|
+
const updates = await startupMgr.checkForUpdates();
|
|
739
|
+
if (updates.length > 0) {
|
|
740
|
+
await startupMgr.upgradeAllPlugins();
|
|
741
|
+
logger.debug(`Auto-upgraded ${updates.length} marketplace plugin(s) at startup`);
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
} catch {
|
|
745
|
+
// Network failure, corrupt data, offline — proceed with cached plugins.
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
|
|
719
749
|
// Wire --plugin-dir and preload plugin roots for sync consumers (LSP config)
|
|
720
750
|
const home = os.homedir();
|
|
721
751
|
if (parsedArgs.pluginDirs && parsedArgs.pluginDirs.length > 0) {
|
|
@@ -724,9 +754,8 @@ export async function runRootCommand(parsed: Args, rawArgs: string[]): Promise<v
|
|
|
724
754
|
await logger.time("preloadPluginRoots", preloadPluginRoots, home, getProjectDir());
|
|
725
755
|
}
|
|
726
756
|
|
|
727
|
-
// Background marketplace
|
|
728
|
-
|
|
729
|
-
if (autoUpdate !== "off") {
|
|
757
|
+
// Background marketplace update notification (non-blocking).
|
|
758
|
+
if (autoUpdate === "notify") {
|
|
730
759
|
void (async () => {
|
|
731
760
|
try {
|
|
732
761
|
const mgr = new MarketplaceManager({
|
|
@@ -742,13 +771,8 @@ export async function runRootCommand(parsed: Args, rawArgs: string[]): Promise<v
|
|
|
742
771
|
clearXcshPluginRootsCache();
|
|
743
772
|
},
|
|
744
773
|
});
|
|
745
|
-
await mgr.refreshStaleMarketplaces();
|
|
746
774
|
const updates = await mgr.checkForUpdates();
|
|
747
|
-
if (updates.length
|
|
748
|
-
if (autoUpdate === "auto") {
|
|
749
|
-
await mgr.upgradeAllPlugins();
|
|
750
|
-
logger.debug(`Auto-upgraded ${updates.length} marketplace plugin(s)`);
|
|
751
|
-
} else {
|
|
775
|
+
if (updates.length > 0) {
|
|
752
776
|
logger.debug(`${updates.length} marketplace plugin update(s) available \u2014 /plugin upgrade`);
|
|
753
777
|
}
|
|
754
778
|
} catch {
|