@ztffn/presentation-generator-plugin 1.4.5 → 1.4.7

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.
@@ -1,10 +1,16 @@
1
1
  {
2
2
  "name": "presentation-generator",
3
3
  "description": "Generate complete graph-based presentations from natural language briefs and project documents. Pipeline: content extraction, narrative design, deterministic graph generation, and visual styling.",
4
- "version": "1.4.5",
4
+ "version": "1.4.7",
5
5
  "author": {
6
6
  "name": "Huma"
7
7
  },
8
8
  "homepage": "https://github.com/huma/humashowcase",
9
- "keywords": ["presentation", "slides", "react-flow", "graph", "pitch deck"]
9
+ "keywords": [
10
+ "presentation",
11
+ "slides",
12
+ "react-flow",
13
+ "graph",
14
+ "pitch deck"
15
+ ]
10
16
  }
package/bin/index.js CHANGED
@@ -264,19 +264,12 @@ function clearInstalledPluginsEntry() {
264
264
  function writeInstalledPluginsJson(version, installDir, scope) {
265
265
  // Claude Code's `claude plugin install` writes stale version/installPath data
266
266
  // (a known bug: https://github.com/anthropics/claude-code/issues/15642).
267
- // We overwrite the entry directly with the correct values after install.
267
+ // We overwrite the entry directly, pointing installPath at installDir so
268
+ // Claude reads from the actual installed location, not a global cache copy.
268
269
  const registryPath = path.join(
269
270
  os.homedir(), ".claude", "plugins", "installed_plugins.json"
270
271
  );
271
272
 
272
- // Ensure the cache dir exists and contains the plugin files.
273
- const cacheDir = path.join(
274
- os.homedir(), ".claude", "plugins", "cache", MARKETPLACE_NAME, PLUGIN_NAME, version
275
- );
276
- if (!fs.existsSync(cacheDir)) {
277
- execSync(`cp -r "${installDir}/." "${cacheDir}"`, { stdio: "pipe" });
278
- }
279
-
280
273
  let registry = { version: 2, plugins: {} };
281
274
  if (fs.existsSync(registryPath)) {
282
275
  try { registry = JSON.parse(fs.readFileSync(registryPath, "utf8")); } catch {}
@@ -287,7 +280,7 @@ function writeInstalledPluginsJson(version, installDir, scope) {
287
280
  const existing = (registry.plugins[key] || []).find((e) => e.scope === scope);
288
281
  const entry = {
289
282
  scope,
290
- installPath: cacheDir,
283
+ installPath: installDir,
291
284
  version,
292
285
  installedAt: existing?.installedAt || now,
293
286
  lastUpdated: now,
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@ztffn/presentation-generator-plugin",
3
- "version": "1.4.5",
3
+ "version": "1.4.7",
4
4
  "description": "Claude Code plugin for generating graph-based presentations",
5
5
  "bin": {
6
6
  "presentation-generator-plugin": "bin/index.js"
7
7
  },
8
8
  "scripts": {
9
- "postinstall": "echo 'Run: npx @ztffn/presentation-generator-plugin install'"
9
+ "postinstall": "echo 'Run: npx @ztffn/presentation-generator-plugin install'",
10
+ "prepublishOnly": "node -e \"const fs=require('fs');const pj=JSON.parse(fs.readFileSync('.claude-plugin/plugin.json','utf8'));pj.version=require('./package.json').version;fs.writeFileSync('.claude-plugin/plugin.json',JSON.stringify(pj,null,2)+'\\n')\""
10
11
  },
11
12
  "keywords": [
12
13
  "claude-code",