claudeup 1.7.0 → 1.8.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/dist/prerunner/index.d.ts.map +1 -1
- package/dist/prerunner/index.js +45 -12
- package/dist/prerunner/index.js.map +1 -1
- package/dist/services/update-cache.d.ts +5 -0
- package/dist/services/update-cache.d.ts.map +1 -1
- package/dist/services/update-cache.js +7 -7
- package/dist/services/update-cache.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prerunner/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prerunner/index.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAkHxE"}
|
package/dist/prerunner/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { UpdateCache } from
|
|
2
|
-
import { refreshLocalMarketplaces } from
|
|
3
|
-
import { getAvailablePlugins, clearMarketplaceCache } from
|
|
4
|
-
import { runClaude } from
|
|
1
|
+
import { UpdateCache } from "../services/update-cache.js";
|
|
2
|
+
import { refreshLocalMarketplaces } from "../services/local-marketplace.js";
|
|
3
|
+
import { getAvailablePlugins, clearMarketplaceCache, saveInstalledPluginVersion, } from "../services/plugin-manager.js";
|
|
4
|
+
import { runClaude } from "../services/claude-runner.js";
|
|
5
5
|
/**
|
|
6
6
|
* Prerun orchestration: Check for updates, apply them, then run claude
|
|
7
7
|
* @param claudeArgs - Arguments to pass to claude CLI
|
|
@@ -19,6 +19,32 @@ export async function prerunClaude(claudeArgs) {
|
|
|
19
19
|
clearMarketplaceCache();
|
|
20
20
|
// STEP 4: Get updated plugin info (to detect versions)
|
|
21
21
|
const plugins = await getAvailablePlugins();
|
|
22
|
+
// STEP 4.5: Auto-update enabled plugins with available updates
|
|
23
|
+
const autoUpdatedPlugins = [];
|
|
24
|
+
for (const plugin of plugins) {
|
|
25
|
+
// Only update if:
|
|
26
|
+
// 1. Plugin is enabled
|
|
27
|
+
// 2. Plugin has an update available
|
|
28
|
+
// 3. Plugin has both installedVersion and version (newVersion)
|
|
29
|
+
if (plugin.enabled && plugin.hasUpdate && plugin.installedVersion && plugin.version) {
|
|
30
|
+
try {
|
|
31
|
+
// Save new version - this will:
|
|
32
|
+
// 1. Update settings.json
|
|
33
|
+
// 2. Call updateInstalledPluginsRegistry()
|
|
34
|
+
// 3. Copy plugin files to cache (via copyPluginToCache())
|
|
35
|
+
await saveInstalledPluginVersion(plugin.id, plugin.version);
|
|
36
|
+
autoUpdatedPlugins.push({
|
|
37
|
+
pluginId: plugin.id,
|
|
38
|
+
oldVersion: plugin.installedVersion,
|
|
39
|
+
newVersion: plugin.version,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
// Non-fatal: Log warning and continue
|
|
44
|
+
console.warn(`⚠ Failed to auto-update ${plugin.id}:`, error instanceof Error ? error.message : "Unknown error");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
22
48
|
// STEP 5: Build summary - show all updated plugins (not just enabled)
|
|
23
49
|
const updatedMarketplaces = [];
|
|
24
50
|
const updatedPlugins = [];
|
|
@@ -27,36 +53,43 @@ export async function prerunClaude(claudeArgs) {
|
|
|
27
53
|
if (result.success && result.updated) {
|
|
28
54
|
updatedMarketplaces.push(result.name);
|
|
29
55
|
// Find ALL plugins from this marketplace (regardless of enabled state)
|
|
30
|
-
const mpPlugins = plugins.filter(p => p.marketplace === result.name);
|
|
56
|
+
const mpPlugins = plugins.filter((p) => p.marketplace === result.name);
|
|
31
57
|
if (mpPlugins.length > 0) {
|
|
32
|
-
updatedPlugins.push(...mpPlugins.map(p => `${p.name} v${p.version}`));
|
|
58
|
+
updatedPlugins.push(...mpPlugins.map((p) => `${p.name} v${p.version}`));
|
|
33
59
|
}
|
|
34
60
|
}
|
|
35
61
|
else if (!result.success) {
|
|
36
|
-
failed.push(`${result.name}${result.error ? ` (${result.error})` :
|
|
62
|
+
failed.push(`${result.name}${result.error ? ` (${result.error})` : ""}`);
|
|
37
63
|
}
|
|
38
64
|
}
|
|
39
65
|
// STEP 6: Save cache
|
|
40
66
|
await cache.saveCheck({
|
|
41
67
|
lastUpdateCheck: new Date().toISOString(),
|
|
42
|
-
lastUpdateResult: { updated: updatedPlugins, failed },
|
|
68
|
+
lastUpdateResult: { updated: updatedPlugins, failed, autoUpdated: autoUpdatedPlugins },
|
|
43
69
|
});
|
|
44
70
|
// STEP 7: Display summary (marketplace-level and plugin-level)
|
|
45
71
|
if (updatedMarketplaces.length > 0) {
|
|
46
|
-
console.log(`✓ Updated marketplace(s): ${updatedMarketplaces.join(
|
|
72
|
+
console.log(`✓ Updated marketplace(s): ${updatedMarketplaces.join(", ")}`);
|
|
47
73
|
if (updatedPlugins.length > 0) {
|
|
48
|
-
console.log(` Plugins: ${updatedPlugins.join(
|
|
74
|
+
console.log(` Plugins: ${updatedPlugins.join(", ")}`);
|
|
49
75
|
}
|
|
50
76
|
}
|
|
51
77
|
if (failed.length > 0) {
|
|
52
|
-
console.warn(`⚠ Failed to update: ${failed.join(
|
|
78
|
+
console.warn(`⚠ Failed to update: ${failed.join(", ")}`);
|
|
79
|
+
}
|
|
80
|
+
// Display auto-update summary
|
|
81
|
+
if (autoUpdatedPlugins.length > 0) {
|
|
82
|
+
console.log(`✓ Auto-updated ${autoUpdatedPlugins.length} plugin(s):`);
|
|
83
|
+
for (const { pluginId, oldVersion, newVersion } of autoUpdatedPlugins) {
|
|
84
|
+
console.log(` - ${pluginId}: ${oldVersion} → ${newVersion}`);
|
|
85
|
+
}
|
|
53
86
|
}
|
|
54
87
|
}
|
|
55
88
|
// If !shouldUpdate → silent (no output)
|
|
56
89
|
}
|
|
57
90
|
catch (error) {
|
|
58
91
|
// Non-fatal errors - warn and continue
|
|
59
|
-
console.warn(
|
|
92
|
+
console.warn("Warning: Plugin update check failed:", error instanceof Error ? error.message : "Unknown error");
|
|
60
93
|
}
|
|
61
94
|
// STEP 8: Always run claude (even if update failed)
|
|
62
95
|
return runClaude(claudeArgs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prerunner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prerunner/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-cache.d.ts","sourceRoot":"","sources":["../../src/services/update-cache.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"update-cache.d.ts","sourceRoot":"","sources":["../../src/services/update-cache.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,KAAK,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACH,CAAC;CACF;AAED,qBAAa,WAAW;IACvB,OAAO,CAAC,SAAS,CAAS;;IAOpB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAWzC,YAAY,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAW/C,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO5B"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { promises as fs } from
|
|
2
|
-
import path from
|
|
3
|
-
import os from
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import os from "node:os";
|
|
4
4
|
const CACHE_TTL_MS = 60 * 60 * 1000; // 1 hour
|
|
5
5
|
export class UpdateCache {
|
|
6
6
|
cachePath;
|
|
7
7
|
constructor() {
|
|
8
8
|
// Cache at ~/.claude/claudeup-cache.json
|
|
9
|
-
this.cachePath = path.join(os.homedir(),
|
|
9
|
+
this.cachePath = path.join(os.homedir(), ".claude", "claudeup-cache.json");
|
|
10
10
|
}
|
|
11
11
|
async shouldCheckForUpdates() {
|
|
12
12
|
const data = await this.getLastCheck();
|
|
@@ -19,7 +19,7 @@ export class UpdateCache {
|
|
|
19
19
|
}
|
|
20
20
|
async getLastCheck() {
|
|
21
21
|
try {
|
|
22
|
-
const content = await fs.readFile(this.cachePath,
|
|
22
|
+
const content = await fs.readFile(this.cachePath, "utf-8");
|
|
23
23
|
const data = JSON.parse(content);
|
|
24
24
|
return data;
|
|
25
25
|
}
|
|
@@ -34,11 +34,11 @@ export class UpdateCache {
|
|
|
34
34
|
const cacheDir = path.dirname(this.cachePath);
|
|
35
35
|
await fs.mkdir(cacheDir, { recursive: true });
|
|
36
36
|
// Write cache file
|
|
37
|
-
await fs.writeFile(this.cachePath, JSON.stringify(result, null, 2),
|
|
37
|
+
await fs.writeFile(this.cachePath, JSON.stringify(result, null, 2), "utf-8");
|
|
38
38
|
}
|
|
39
39
|
catch (error) {
|
|
40
40
|
// Non-fatal - just log and continue
|
|
41
|
-
console.warn(
|
|
41
|
+
console.warn("Warning: Failed to save update cache:", error instanceof Error ? error.message : "Unknown error");
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
async clear() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-cache.js","sourceRoot":"","sources":["../../src/services/update-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"update-cache.js","sourceRoot":"","sources":["../../src/services/update-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAe9C,MAAM,OAAO,WAAW;IACf,SAAS,CAAS;IAE1B;QACC,yCAAyC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,qBAAqB;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,WAAW;QAEnC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QAEpD,OAAO,OAAO,IAAI,YAAY,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;YACpD,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,sCAAsC;YACtC,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAuB;QACtC,IAAI,CAAC;YACJ,kCAAkC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE9C,mBAAmB;YACnB,MAAM,EAAE,CAAC,SAAS,CACjB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAC/B,OAAO,CACP,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,oCAAoC;YACpC,OAAO,CAAC,IAAI,CACX,uCAAuC,EACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CACxD,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,CAAC;YACJ,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,uCAAuC;QACxC,CAAC;IACF,CAAC;CACD"}
|