@graphit/cli 0.1.36 → 0.1.39
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/.claude-plugin/marketplace.json +12 -5
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/dist/commands/plugin.d.ts +2 -0
- package/dist/commands/plugin.js +39 -0
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/setup.js +94 -5
- package/dist/commands/setup.js.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/skill-version.d.ts +20 -0
- package/dist/skill-version.js +139 -0
- package/dist/skill-version.js.map +1 -0
- package/dist/update-check.js +10 -6
- package/dist/update-check.js.map +1 -1
- package/hooks/hooks.json +30 -0
- package/package.json +8 -3
- package/scripts/plugin-status.mjs +285 -0
- package/scripts/sync-plugin-version.mjs +123 -0
- package/skills/graphit/SKILL.md +48 -10
- package/skills/graphit/VERSION.json +5 -0
- package/skills/graphit/graphit.mdc +165 -48
|
@@ -7,19 +7,26 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "Graphit CLI plugin for AI coding assistants",
|
|
10
|
-
"version": "1.
|
|
10
|
+
"version": "0.1.39"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
14
14
|
"name": "graphit",
|
|
15
15
|
"description": "Build custom HTML dashboards from real data. KB-aware queries, entity wrapping, cached data sources.",
|
|
16
16
|
"source": {
|
|
17
|
-
"
|
|
18
|
-
"package": "@graphit/cli"
|
|
17
|
+
"source": "npm",
|
|
18
|
+
"package": "@graphit/cli",
|
|
19
|
+
"version": "0.1.39"
|
|
19
20
|
},
|
|
20
|
-
"version": "0.1.
|
|
21
|
+
"version": "0.1.39",
|
|
21
22
|
"category": "data-visualization",
|
|
22
|
-
"tags": [
|
|
23
|
+
"tags": [
|
|
24
|
+
"bi",
|
|
25
|
+
"dashboard",
|
|
26
|
+
"sql",
|
|
27
|
+
"data",
|
|
28
|
+
"visualization"
|
|
29
|
+
]
|
|
23
30
|
}
|
|
24
31
|
]
|
|
25
32
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
function resolvePluginStatusScript() {
|
|
6
|
+
const root = dirname(dirname(dirname(fileURLToPath(import.meta.url))));
|
|
7
|
+
return join(root, "scripts", "plugin-status.mjs");
|
|
8
|
+
}
|
|
9
|
+
export function registerPluginCommands(program) {
|
|
10
|
+
const plugin = program
|
|
11
|
+
.command("plugin")
|
|
12
|
+
.description("Inspect Graphit assistant plugin status");
|
|
13
|
+
plugin
|
|
14
|
+
.command("status")
|
|
15
|
+
.description("Check plugin/package/skill version health")
|
|
16
|
+
.option("--json", "Print structured JSON")
|
|
17
|
+
.option("--quiet", "Print only when action is needed")
|
|
18
|
+
.option("--skip-network", "Skip npm latest-version lookup")
|
|
19
|
+
.action(function () {
|
|
20
|
+
const script = resolvePluginStatusScript();
|
|
21
|
+
if (!existsSync(script)) {
|
|
22
|
+
console.error(JSON.stringify({ error: "Graphit plugin status script is missing from this package." }));
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const opts = this.opts();
|
|
26
|
+
const args = [script];
|
|
27
|
+
if (opts.json)
|
|
28
|
+
args.push("--json");
|
|
29
|
+
if (opts.quiet)
|
|
30
|
+
args.push("--quiet");
|
|
31
|
+
if (opts.skipNetwork)
|
|
32
|
+
args.push("--skip-network");
|
|
33
|
+
const result = spawnSync(process.execPath, args, {
|
|
34
|
+
stdio: "inherit",
|
|
35
|
+
});
|
|
36
|
+
process.exit(result.status ?? 1);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,SAAS,yBAAyB;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yCAAyC,CAAC,CAAC;IAE1D,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;SACrD,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;SAC1D,MAAM,CAAC;QACN,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,4DAA4D,EAAE,CAAC,CAAC,CAAC;YACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;YAC/C,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { existsSync, readdirSync } from "node:fs";
|
|
2
|
-
import { readFile, writeFile, mkdir, copyFile } from "node:fs/promises";
|
|
2
|
+
import { readFile, writeFile, mkdir, copyFile, rm } from "node:fs/promises";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { join, dirname } from "node:path";
|
|
5
5
|
import { execFileSync } from "node:child_process";
|
|
6
6
|
import { readCredentials } from "../auth/credentials.js";
|
|
7
|
+
const PLUGIN_MANAGED_EDITORS = new Set(["claude-code", "codex"]);
|
|
7
8
|
function resolveSkillDir() {
|
|
8
9
|
const fromDist = join(dirname(new URL(import.meta.url).pathname), "..", "..", "skills", "graphit");
|
|
9
10
|
if (existsSync(join(fromDist, "SKILL.md")))
|
|
@@ -31,7 +32,57 @@ function commandExists(cmd) {
|
|
|
31
32
|
return false;
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
|
-
function
|
|
35
|
+
function isPluginManagedEditor(editor) {
|
|
36
|
+
return PLUGIN_MANAGED_EDITORS.has(editor);
|
|
37
|
+
}
|
|
38
|
+
function getLegacyCopyDir(editor, project) {
|
|
39
|
+
const home = homedir();
|
|
40
|
+
switch (editor) {
|
|
41
|
+
case "claude-code":
|
|
42
|
+
return project
|
|
43
|
+
? join(".claude", "skills", "graphit")
|
|
44
|
+
: join(home, ".claude", "skills", "graphit");
|
|
45
|
+
case "codex":
|
|
46
|
+
return project
|
|
47
|
+
? join(".codex", "skills", "graphit")
|
|
48
|
+
: join(home, ".codex", "skills", "graphit");
|
|
49
|
+
default:
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function removeLegacyCopies(editors, project, dryRun) {
|
|
54
|
+
const pluginEditors = editors.filter(isPluginManagedEditor);
|
|
55
|
+
if (pluginEditors.length === 0) {
|
|
56
|
+
console.log("No Claude Code or Codex legacy copied-skill targets selected.");
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
for (const editor of pluginEditors) {
|
|
60
|
+
const dir = getLegacyCopyDir(editor, project);
|
|
61
|
+
if (!dir)
|
|
62
|
+
continue;
|
|
63
|
+
if (!existsSync(dir)) {
|
|
64
|
+
console.log(`No legacy copied Graphit skill found for ${editor} at ${dir}.`);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (dryRun) {
|
|
68
|
+
console.log(`Would remove legacy copied Graphit skill for ${editor}: ${dir}`);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
await rm(dir, { recursive: true, force: true });
|
|
73
|
+
console.log(`Removed legacy copied Graphit skill for ${editor}: ${dir}`);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
77
|
+
console.error(`Failed to remove legacy copied Graphit skill for ${editor}: ${message}`);
|
|
78
|
+
process.exitCode = 1;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
console.log(dryRun
|
|
82
|
+
? "\nDry run complete. Graphit plugin bundle should be the source of truth for Claude Code/Codex."
|
|
83
|
+
: "\nGraphit plugin bundle is now the source of truth for Claude Code/Codex.");
|
|
84
|
+
}
|
|
85
|
+
function getInstallTargets(editors, project, skillMd, cursorMdc, versionJson) {
|
|
35
86
|
const targets = [];
|
|
36
87
|
const home = homedir();
|
|
37
88
|
for (const editor of editors) {
|
|
@@ -45,6 +96,8 @@ function getInstallTargets(editors, project, skillMd, cursorMdc) {
|
|
|
45
96
|
path: join(base, "SKILL.md"),
|
|
46
97
|
content: skillMd,
|
|
47
98
|
refsDir: join(base, "references"),
|
|
99
|
+
versionPath: versionJson ? join(base, "VERSION.json") : undefined,
|
|
100
|
+
versionContent: versionJson ?? undefined,
|
|
48
101
|
});
|
|
49
102
|
break;
|
|
50
103
|
}
|
|
@@ -57,6 +110,8 @@ function getInstallTargets(editors, project, skillMd, cursorMdc) {
|
|
|
57
110
|
path: join(base, "SKILL.md"),
|
|
58
111
|
content: skillMd,
|
|
59
112
|
refsDir: join(base, "references"),
|
|
113
|
+
versionPath: versionJson ? join(base, "VERSION.json") : undefined,
|
|
114
|
+
versionContent: versionJson ?? undefined,
|
|
60
115
|
});
|
|
61
116
|
break;
|
|
62
117
|
}
|
|
@@ -102,10 +157,12 @@ async function installReferences(sourceRefsDir, targetRefsDir, update) {
|
|
|
102
157
|
export function registerSetupCommand(program) {
|
|
103
158
|
program
|
|
104
159
|
.command("setup")
|
|
105
|
-
.description("Install Graphit
|
|
160
|
+
.description("Install legacy copied Graphit assistant files for Cursor or fallback setups")
|
|
106
161
|
.option("--editor <name>", "Override editor detection (claude-code, cursor, codex, vscode)")
|
|
107
162
|
.option("--project", "Install at project level (in repo, committable)")
|
|
108
163
|
.option("--update", "Overwrite existing skill files")
|
|
164
|
+
.option("--legacy-copy", "Allow legacy copied Claude Code/Codex skill install when plugin manager is unavailable")
|
|
165
|
+
.option("--remove-legacy-copies", "Remove legacy copied Claude Code/Codex Graphit skill snapshots")
|
|
109
166
|
.option("--dry-run", "Show what would be installed without writing")
|
|
110
167
|
.action(async function () {
|
|
111
168
|
const opts = this.opts();
|
|
@@ -117,6 +174,9 @@ export function registerSetupCommand(program) {
|
|
|
117
174
|
if (opts.editor) {
|
|
118
175
|
editors = [opts.editor];
|
|
119
176
|
}
|
|
177
|
+
else if (opts.removeLegacyCopies) {
|
|
178
|
+
editors = ["claude-code", "codex"];
|
|
179
|
+
}
|
|
120
180
|
else {
|
|
121
181
|
editors = detectEditors();
|
|
122
182
|
if (editors.length === 0) {
|
|
@@ -126,12 +186,31 @@ export function registerSetupCommand(program) {
|
|
|
126
186
|
process.exit(1);
|
|
127
187
|
}
|
|
128
188
|
}
|
|
189
|
+
if (opts.removeLegacyCopies) {
|
|
190
|
+
await removeLegacyCopies(editors, !!opts.project, !!opts.dryRun);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const skippedPluginEditors = editors.filter(isPluginManagedEditor);
|
|
194
|
+
if (!opts.legacyCopy && skippedPluginEditors.length > 0) {
|
|
195
|
+
editors = editors.filter((editor) => !isPluginManagedEditor(editor));
|
|
196
|
+
console.log("Graphit uses plugin-managed skills by default for Claude Code and Codex.\n" +
|
|
197
|
+
`Skipped legacy copied-skill install for: ${skippedPluginEditors.join(", ")}.\n` +
|
|
198
|
+
"Install/update Graphit through your assistant's plugin manager instead.\n" +
|
|
199
|
+
"If you intentionally need copied fallback files, rerun with `--legacy-copy`.\n" +
|
|
200
|
+
"To remove old copied snapshots, run `graphit setup --remove-legacy-copies`.\n");
|
|
201
|
+
}
|
|
129
202
|
const skillDir = resolveSkillDir();
|
|
130
203
|
const skillMd = await readFile(join(skillDir, "SKILL.md"), "utf-8");
|
|
131
204
|
const cursorMdc = await readFile(join(skillDir, "graphit.mdc"), "utf-8");
|
|
132
205
|
const sourceRefsDir = join(skillDir, "references");
|
|
133
|
-
const
|
|
206
|
+
const versionPath = join(skillDir, "VERSION.json");
|
|
207
|
+
const versionJson = existsSync(versionPath) ? await readFile(versionPath, "utf-8") : null;
|
|
208
|
+
const targets = getInstallTargets(editors, !!opts.project, skillMd, cursorMdc, versionJson);
|
|
134
209
|
if (targets.length === 0) {
|
|
210
|
+
if (skippedPluginEditors.length > 0 && !opts.legacyCopy) {
|
|
211
|
+
console.log("No legacy copied files were installed because all selected editors are plugin-managed.");
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
135
214
|
console.error(JSON.stringify({ error: "No install targets found." }));
|
|
136
215
|
process.exit(1);
|
|
137
216
|
}
|
|
@@ -143,6 +222,9 @@ export function registerSetupCommand(program) {
|
|
|
143
222
|
const refs = readdirSync(sourceRefsDir).filter((f) => f.endsWith(".md"));
|
|
144
223
|
refs.forEach((r) => console.log(` ${t.editor}: ${join(t.refsDir, r)}`));
|
|
145
224
|
}
|
|
225
|
+
if (t.versionPath) {
|
|
226
|
+
console.log(` ${t.editor}: ${t.versionPath}`);
|
|
227
|
+
}
|
|
146
228
|
}
|
|
147
229
|
return;
|
|
148
230
|
}
|
|
@@ -157,6 +239,13 @@ export function registerSetupCommand(program) {
|
|
|
157
239
|
await mkdir(dirname(target.path), { recursive: true });
|
|
158
240
|
await writeFile(target.path, target.content, "utf-8");
|
|
159
241
|
console.log(`Written: ${target.path}`);
|
|
242
|
+
if (target.versionPath && target.versionContent) {
|
|
243
|
+
if (existsSync(target.versionPath) && opts.update) {
|
|
244
|
+
await copyFile(target.versionPath, `${target.versionPath}.bak`);
|
|
245
|
+
}
|
|
246
|
+
await writeFile(target.versionPath, target.versionContent, "utf-8");
|
|
247
|
+
console.log(`Written: ${target.versionPath}`);
|
|
248
|
+
}
|
|
160
249
|
if (target.refsDir) {
|
|
161
250
|
const refFiles = await installReferences(sourceRefsDir, target.refsDir, !!opts.update);
|
|
162
251
|
if (refFiles.length > 0) {
|
|
@@ -166,7 +255,7 @@ export function registerSetupCommand(program) {
|
|
|
166
255
|
}
|
|
167
256
|
const mode = opts.project ? "project" : "global";
|
|
168
257
|
const editorNames = editors.join(", ");
|
|
169
|
-
console.log(`\nGraphit
|
|
258
|
+
console.log(`\nGraphit legacy copied assistant files installed for ${editorNames} (${mode}).`);
|
|
170
259
|
console.log('\nTry: "Explore the Graphit KB and build a revenue dashboard"');
|
|
171
260
|
});
|
|
172
261
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,8 +9,13 @@ import { registerConnectorCommands } from "./commands/connector.js";
|
|
|
9
9
|
import { registerSetupCommand } from "./commands/setup.js";
|
|
10
10
|
import { registerGovernanceCommands } from "./commands/governance.js";
|
|
11
11
|
import { registerTeamCommands } from "./commands/team.js";
|
|
12
|
+
import { registerPluginCommands } from "./commands/plugin.js";
|
|
12
13
|
import { getCurrentVersion, printUpdateBanner, fireBackgroundCheck, } from "./update-check.js";
|
|
13
14
|
const program = new Command();
|
|
15
|
+
const args = process.argv.slice(2);
|
|
16
|
+
const pluginArgIndex = args.indexOf("plugin");
|
|
17
|
+
const statusArgIndex = args.indexOf("status");
|
|
18
|
+
const isPluginStatusCommand = pluginArgIndex >= 0 && statusArgIndex === pluginArgIndex + 1;
|
|
14
19
|
program
|
|
15
20
|
.name("graphit")
|
|
16
21
|
.description("Graphit CLI - Build custom dashboards from any AI coding assistant")
|
|
@@ -24,8 +29,11 @@ registerDashboardCommands(program);
|
|
|
24
29
|
registerConnectorCommands(program);
|
|
25
30
|
registerGovernanceCommands(program);
|
|
26
31
|
registerTeamCommands(program);
|
|
32
|
+
registerPluginCommands(program);
|
|
27
33
|
registerSetupCommand(program);
|
|
28
|
-
|
|
34
|
+
if (!isPluginStatusCommand) {
|
|
35
|
+
printUpdateBanner();
|
|
36
|
+
}
|
|
29
37
|
program.parse();
|
|
30
38
|
fireBackgroundCheck();
|
|
31
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC9C,MAAM,qBAAqB,GAAG,cAAc,IAAI,CAAC,IAAI,cAAc,KAAK,cAAc,GAAG,CAAC,CAAC;AAE3F,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,iBAAiB,EAAE,CAAC;KAC5B,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,EAAE,MAAM,CAAC,CAAC;AAE1F,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC3B,iBAAiB,EAAE,CAAC;AACtB,CAAC;AACD,OAAO,CAAC,KAAK,EAAE,CAAC;AAChB,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type SkillInstallKind = "claude-code" | "codex" | "cursor";
|
|
2
|
+
export type SkillInstallScope = "global" | "project";
|
|
3
|
+
export interface SkillInstallTarget {
|
|
4
|
+
kind: SkillInstallKind;
|
|
5
|
+
scope: SkillInstallScope;
|
|
6
|
+
path: string;
|
|
7
|
+
}
|
|
8
|
+
export interface SkillInstallStatus extends SkillInstallTarget {
|
|
9
|
+
installedVersion: string | null;
|
|
10
|
+
reason: "legacy-copy-present" | "missing-version" | "older-version";
|
|
11
|
+
}
|
|
12
|
+
interface FindOutdatedOptions {
|
|
13
|
+
homeDir?: string;
|
|
14
|
+
cwd?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function readSkillVersion(path: string): string | null;
|
|
17
|
+
export declare function getSkillInstallTargets(options?: FindOutdatedOptions): SkillInstallTarget[];
|
|
18
|
+
export declare function findOutdatedSkillInstalls(currentVersion: string, options?: FindOutdatedOptions): SkillInstallStatus[];
|
|
19
|
+
export declare function formatSkillStalenessBanner(statuses: SkillInstallStatus[], currentVersion: string): string | null;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
function compareVersions(left, right) {
|
|
5
|
+
const leftParts = left.split(".").map(Number);
|
|
6
|
+
const rightParts = right.split(".").map(Number);
|
|
7
|
+
for (let index = 0; index < 3; index += 1) {
|
|
8
|
+
const leftPart = leftParts[index] ?? 0;
|
|
9
|
+
const rightPart = rightParts[index] ?? 0;
|
|
10
|
+
if (leftPart > rightPart)
|
|
11
|
+
return 1;
|
|
12
|
+
if (leftPart < rightPart)
|
|
13
|
+
return -1;
|
|
14
|
+
}
|
|
15
|
+
return 0;
|
|
16
|
+
}
|
|
17
|
+
function readVersionJson(path) {
|
|
18
|
+
try {
|
|
19
|
+
if (!existsSync(path))
|
|
20
|
+
return null;
|
|
21
|
+
const parsed = JSON.parse(readFileSync(path, "utf-8"));
|
|
22
|
+
return typeof parsed.version === "string" ? parsed.version : null;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function readSkillVersion(path) {
|
|
29
|
+
try {
|
|
30
|
+
const content = readFileSync(path, "utf-8");
|
|
31
|
+
const match = content.match(/^skill_version:\s*["']?([^"'\n]+)["']?\s*$/m);
|
|
32
|
+
return match?.[1] ?? null;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function readInstalledVersion(target) {
|
|
39
|
+
if (!existsSync(target.path))
|
|
40
|
+
return null;
|
|
41
|
+
if (target.kind !== "cursor") {
|
|
42
|
+
const versionJson = readVersionJson(join(target.path.replace(/SKILL\.md$/, ""), "VERSION.json"));
|
|
43
|
+
if (versionJson)
|
|
44
|
+
return versionJson;
|
|
45
|
+
}
|
|
46
|
+
return readSkillVersion(target.path);
|
|
47
|
+
}
|
|
48
|
+
function isPluginManagedKind(kind) {
|
|
49
|
+
return kind === "claude-code" || kind === "codex";
|
|
50
|
+
}
|
|
51
|
+
export function getSkillInstallTargets(options = {}) {
|
|
52
|
+
const home = options.homeDir ?? homedir();
|
|
53
|
+
const cwd = options.cwd ?? process.cwd();
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
kind: "claude-code",
|
|
57
|
+
scope: "global",
|
|
58
|
+
path: join(home, ".claude", "skills", "graphit", "SKILL.md"),
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
kind: "codex",
|
|
62
|
+
scope: "global",
|
|
63
|
+
path: join(home, ".codex", "skills", "graphit", "SKILL.md"),
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
kind: "cursor",
|
|
67
|
+
scope: "global",
|
|
68
|
+
path: join(home, ".cursor", "rules", "graphit.mdc"),
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
kind: "claude-code",
|
|
72
|
+
scope: "project",
|
|
73
|
+
path: join(cwd, ".claude", "skills", "graphit", "SKILL.md"),
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
kind: "codex",
|
|
77
|
+
scope: "project",
|
|
78
|
+
path: join(cwd, ".codex", "skills", "graphit", "SKILL.md"),
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
kind: "cursor",
|
|
82
|
+
scope: "project",
|
|
83
|
+
path: join(cwd, ".cursor", "rules", "graphit.mdc"),
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
}
|
|
87
|
+
export function findOutdatedSkillInstalls(currentVersion, options = {}) {
|
|
88
|
+
const statuses = [];
|
|
89
|
+
for (const target of getSkillInstallTargets(options)) {
|
|
90
|
+
if (!existsSync(target.path))
|
|
91
|
+
continue;
|
|
92
|
+
const installedVersion = readInstalledVersion(target);
|
|
93
|
+
if (isPluginManagedKind(target.kind)) {
|
|
94
|
+
statuses.push({ ...target, installedVersion, reason: "legacy-copy-present" });
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (!installedVersion) {
|
|
98
|
+
statuses.push({ ...target, installedVersion: null, reason: "missing-version" });
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (compareVersions(installedVersion, currentVersion) < 0) {
|
|
102
|
+
statuses.push({ ...target, installedVersion, reason: "older-version" });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return statuses;
|
|
106
|
+
}
|
|
107
|
+
function formatKind(kind) {
|
|
108
|
+
switch (kind) {
|
|
109
|
+
case "claude-code":
|
|
110
|
+
return "Claude Code";
|
|
111
|
+
case "codex":
|
|
112
|
+
return "Codex";
|
|
113
|
+
case "cursor":
|
|
114
|
+
return "Cursor";
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export function formatSkillStalenessBanner(statuses, currentVersion) {
|
|
118
|
+
if (statuses.length === 0)
|
|
119
|
+
return null;
|
|
120
|
+
const lines = statuses.map((status) => {
|
|
121
|
+
const installed = status.installedVersion ?? "unversioned";
|
|
122
|
+
if (status.reason === "legacy-copy-present") {
|
|
123
|
+
return ` - ${formatKind(status.kind)} ${status.scope}: legacy copied snapshot present (${installed})`;
|
|
124
|
+
}
|
|
125
|
+
return ` - ${formatKind(status.kind)} ${status.scope}: ${installed} → ${currentVersion}`;
|
|
126
|
+
});
|
|
127
|
+
const hasPluginManagedCopies = statuses.some((status) => isPluginManagedKind(status.kind));
|
|
128
|
+
const hasCursorCopies = statuses.some((status) => status.kind === "cursor");
|
|
129
|
+
return ("\n Legacy copied Graphit assistant files need attention:\n" +
|
|
130
|
+
`${lines.join("\n")}\n` +
|
|
131
|
+
(hasPluginManagedCopies
|
|
132
|
+
? " Claude Code/Codex should use the Graphit plugin bundle. Remove old copied snapshots with `graphit setup --remove-legacy-copies` after confirming the plugin is installed.\n"
|
|
133
|
+
: "") +
|
|
134
|
+
(hasCursorCopies
|
|
135
|
+
? " Cursor currently uses copied rules; refresh them with `graphit setup --editor cursor --update`.\n"
|
|
136
|
+
: "") +
|
|
137
|
+
" Update Graphit through your assistant's plugin manager whenever plugin install is available.\n\n");
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=skill-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-version.js","sourceRoot":"","sources":["../src/skill-version.ts"],"names":[],"mappings":"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"}
|
package/dist/update-check.js
CHANGED
|
@@ -2,6 +2,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
|
2
2
|
import { homedir } from "os";
|
|
3
3
|
import { join } from "path";
|
|
4
4
|
import { createRequire } from "module";
|
|
5
|
+
import { findOutdatedSkillInstalls, formatSkillStalenessBanner, } from "./skill-version.js";
|
|
5
6
|
const require = createRequire(import.meta.url);
|
|
6
7
|
const pkg = require("../package.json");
|
|
7
8
|
const REGISTRY_URL = "https://registry.npmjs.org/@graphit/cli/latest";
|
|
@@ -45,13 +46,16 @@ export function getCurrentVersion() {
|
|
|
45
46
|
}
|
|
46
47
|
export function printUpdateBanner() {
|
|
47
48
|
const cache = readCache();
|
|
48
|
-
if (!cache)
|
|
49
|
-
return;
|
|
50
49
|
const current = getCurrentVersion();
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
if (cache && isNewer(cache.latestVersion, current)) {
|
|
51
|
+
process.stderr.write(`\n Update available: ${current} → ${cache.latestVersion}\n` +
|
|
52
|
+
" Update Graphit through your assistant's plugin manager when available.\n" +
|
|
53
|
+
" Standalone npm users can run `npm update -g @graphit/cli`.\n\n");
|
|
54
|
+
}
|
|
55
|
+
const skillBanner = formatSkillStalenessBanner(findOutdatedSkillInstalls(current), current);
|
|
56
|
+
if (skillBanner) {
|
|
57
|
+
process.stderr.write(skillBanner);
|
|
58
|
+
}
|
|
55
59
|
}
|
|
56
60
|
export function fireBackgroundCheck() {
|
|
57
61
|
const cache = readCache();
|
package/dist/update-check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"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"}
|
package/hooks/hooks.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Graphit plugin status checks",
|
|
3
|
+
"hooks": {
|
|
4
|
+
"SessionStart": [
|
|
5
|
+
{
|
|
6
|
+
"matcher": "startup|resume|clear|compact",
|
|
7
|
+
"hooks": [
|
|
8
|
+
{
|
|
9
|
+
"type": "command",
|
|
10
|
+
"command": "node",
|
|
11
|
+
"args": ["${CLAUDE_PLUGIN_ROOT}/scripts/plugin-status.mjs", "--hook", "SessionStart"],
|
|
12
|
+
"timeout": 5
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"UserPromptSubmit": [
|
|
18
|
+
{
|
|
19
|
+
"hooks": [
|
|
20
|
+
{
|
|
21
|
+
"type": "command",
|
|
22
|
+
"command": "node",
|
|
23
|
+
"args": ["${CLAUDE_PLUGIN_ROOT}/scripts/plugin-status.mjs", "--hook", "UserPromptSubmit"],
|
|
24
|
+
"timeout": 5
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
package/package.json
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphit/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.39",
|
|
4
4
|
"description": "Graphit CLI - Build custom dashboards from any AI coding assistant",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"graphit": "./dist/index.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"build": "tsc",
|
|
10
|
+
"build": "npm run sync:version && tsc",
|
|
11
11
|
"dev": "tsx src/index.ts",
|
|
12
|
-
"lint": "tsc --noEmit"
|
|
12
|
+
"lint": "npm run check:version && tsc --noEmit",
|
|
13
|
+
"test": "npm run build && node --test test/*.test.mjs",
|
|
14
|
+
"sync:version": "node scripts/sync-plugin-version.mjs",
|
|
15
|
+
"check:version": "node scripts/sync-plugin-version.mjs --check"
|
|
13
16
|
},
|
|
14
17
|
"engines": {
|
|
15
18
|
"node": ">=18"
|
|
@@ -17,6 +20,8 @@
|
|
|
17
20
|
"files": [
|
|
18
21
|
"dist",
|
|
19
22
|
"skills",
|
|
23
|
+
"hooks",
|
|
24
|
+
"scripts",
|
|
20
25
|
".claude-plugin",
|
|
21
26
|
".codex-plugin"
|
|
22
27
|
],
|