@graphit/cli 0.2.259 → 0.2.260
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 +3 -3
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/bin/graphit +1 -1
- package/bin/graphit.ps1 +1 -1
- package/dist/commands/ds/api.d.ts +19 -0
- package/dist/commands/ds/api.js +74 -0
- package/dist/commands/ds/api.js.map +1 -0
- package/dist/commands/ds/polling.d.ts +13 -0
- package/dist/commands/ds/polling.js +189 -0
- package/dist/commands/ds/polling.js.map +1 -0
- package/dist/commands/ds/render.d.ts +15 -0
- package/dist/commands/ds/render.js +88 -0
- package/dist/commands/ds/render.js.map +1 -0
- package/dist/commands/ds/types.d.ts +65 -0
- package/dist/commands/ds/types.js +31 -0
- package/dist/commands/ds/types.js.map +1 -0
- package/dist/commands/ds/ui-only.d.ts +15 -0
- package/dist/commands/ds/ui-only.js +29 -0
- package/dist/commands/ds/ui-only.js.map +1 -0
- package/dist/commands/ds.js +7 -352
- package/dist/commands/ds.js.map +1 -1
- package/package.json +1 -1
- package/scripts/sync-plugin-marketplace.sh +134 -0
- package/skills/graphit/SKILL.md +2 -2
- package/skills/graphit/VERSION.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-only.js","sourceRoot":"","sources":["../../../src/commands/ds/ui-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,MAAM,CAAC,MAAM,kBAAkB,GAAwC;IACrE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,sEAAsE,EAAE;IACxG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,oFAAoF,EAAE;CACrH,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,EAAW;IACjD,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;aACpB,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;aAC3B,MAAM,CAAC;YACN,MAAM,GAAG,GAAG,GAAG,cAAc,EAAE,+BAA+B,CAAC;YAC/D,WAAW,CACT,IAAI,KAAK,CACP,QAAQ,IAAI,+CAA+C,IAAI,iBAAiB;gBAC9E,6EAA6E,GAAG,EAAE,CACrF,CACF,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
|
package/dist/commands/ds.js
CHANGED
|
@@ -1,359 +1,14 @@
|
|
|
1
|
-
import { Option } from "commander";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
|
-
import { readFile } from "node:fs/promises";
|
|
4
|
-
import { basename } from "node:path";
|
|
5
1
|
import { apiClient } from "../api/client.js";
|
|
6
|
-
import {
|
|
2
|
+
import { errorOutput, getOutputFormat, note, output } from "../output/format.js";
|
|
7
3
|
import { writeStderr } from "../stderr.js";
|
|
8
|
-
import { getFrontendUrl } from "../config.js";
|
|
9
|
-
import { reconcilePoll, NOT_FOUND_STATUS, isCreatePollTerminal } from "./ds-poll.js";
|
|
10
4
|
import { buildRefreshConfigBody, resolveCreateMode } from "./ds-config.js";
|
|
5
|
+
import { createDataSourceFromFile, fetchDSList, triggerRefresh } from "./ds/api.js";
|
|
6
|
+
import { pollUntilDSReady, pollUntilReady, scanAndPrintSummary } from "./ds/polling.js";
|
|
11
7
|
import { registerRefreshHistoryCommand } from "./ds/refresh-history.js";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return;
|
|
17
|
-
note("");
|
|
18
|
-
for (const w of validation.warnings) {
|
|
19
|
-
note(` ! ${w}`);
|
|
20
|
-
}
|
|
21
|
-
note("");
|
|
22
|
-
}
|
|
23
|
-
const POLL_INTERVAL_MS = 3_000;
|
|
24
|
-
const MAX_POLL_DURATION_MS = 5 * 60_000;
|
|
25
|
-
// Feature #661 + #665: creation runs in a durable Job whose export budget was raised
|
|
26
|
-
// to 60 min (Feature #665), with the worker socket timeout at ~70 min (budget + margin).
|
|
27
|
-
// The create poller must outlast the server-side budget so a legit large load isn't
|
|
28
|
-
// reported as "timed out" client-side while it's still materializing.
|
|
29
|
-
const MAX_CREATE_POLL_DURATION_MS = 70 * 60_000;
|
|
30
|
-
const SCAN_TIMEOUT_MS = 90_000;
|
|
31
|
-
const REFRESH_TRIGGER_TIMEOUT_MS = 60_000;
|
|
32
|
-
// Issue #775: a small/single-table create routes INLINE (Project #247) - the POST
|
|
33
|
-
// itself runs the warehouse export + scan + canonical birth in-request and returns
|
|
34
|
-
// a terminal status, so it needs the same extended budget as the other
|
|
35
|
-
// warehouse-touching POSTs (upload 120s, scan 90s) instead of the 30s default,
|
|
36
|
-
// which a cold-connection inline export races even though the source is born fine.
|
|
37
|
-
// A Job-routed create returns CREATING immediately and never approaches this ceiling.
|
|
38
|
-
const CREATE_TIMEOUT_MS = 120_000;
|
|
39
|
-
async function fetchDSList(limit = 200) {
|
|
40
|
-
const resp = await apiClient.get(`/api/v1/cli/ds?limit=${limit}`);
|
|
41
|
-
return resp.data_sources;
|
|
42
|
-
}
|
|
43
|
-
async function triggerRefresh(id, force = false) {
|
|
44
|
-
try {
|
|
45
|
-
const query = force ? "?force=true" : "";
|
|
46
|
-
const resp = await apiClient.post(`/api/v1/cli/ds/${id}/refresh${query}`, {}, { timeoutMs: REFRESH_TRIGGER_TIMEOUT_MS });
|
|
47
|
-
return resp;
|
|
48
|
-
}
|
|
49
|
-
catch (err) {
|
|
50
|
-
const msg = err instanceof Error ? err.message : String(err.detail ?? err);
|
|
51
|
-
if (msg.toLowerCase().includes("timeout") || msg.toLowerCase().includes("timed out")) {
|
|
52
|
-
return { id, status: "refreshing", error: "trigger timed out (refresh continues server-side)" };
|
|
53
|
-
}
|
|
54
|
-
return { id, status: "error", error: msg };
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
function formatRowCount(n) {
|
|
58
|
-
if (n >= 1_000_000)
|
|
59
|
-
return `${(n / 1_000_000).toFixed(1)}M`;
|
|
60
|
-
if (n >= 1_000)
|
|
61
|
-
return `${(n / 1_000).toFixed(1)}K`;
|
|
62
|
-
return String(n);
|
|
63
|
-
}
|
|
64
|
-
function printStatusTable(targets, statuses, errors, clearPrevious) {
|
|
65
|
-
const lines = [];
|
|
66
|
-
const nameWidth = Math.max(4, ...Array.from(targets.values()).map((ds) => ds.name.length));
|
|
67
|
-
lines.push(` ${"NAME".padEnd(nameWidth)} ${"STATUS".padEnd(12)} ${"ROWS".padStart(8)}`);
|
|
68
|
-
lines.push(` ${"─".repeat(nameWidth)} ${"─".repeat(12)} ${"─".repeat(8)}`);
|
|
69
|
-
for (const [id, ds] of targets) {
|
|
70
|
-
const status = statuses.get(id) ?? ds.status;
|
|
71
|
-
const error = errors.get(id);
|
|
72
|
-
const icon = status === "ready" ? "+" : status === "error" ? "x" : status === NOT_FOUND_STATUS ? "?" : "*";
|
|
73
|
-
const rowStr = formatRowCount(ds.row_count).padStart(8);
|
|
74
|
-
let line = ` ${ds.name.padEnd(nameWidth)} ${icon} ${status.padEnd(10)} ${rowStr}`;
|
|
75
|
-
if (error)
|
|
76
|
-
line += ` ${error}`;
|
|
77
|
-
lines.push(line);
|
|
78
|
-
}
|
|
79
|
-
// Progress table is decoration -> stderr (with its in-place cursor escapes on
|
|
80
|
-
// the same stream), so stdout stays a clean payload.
|
|
81
|
-
if (clearPrevious) {
|
|
82
|
-
process.stderr.write(`\x1B[${lines.length + 1}A\x1B[J`);
|
|
83
|
-
}
|
|
84
|
-
note(lines.join("\n"));
|
|
85
|
-
return lines.length;
|
|
86
|
-
}
|
|
87
|
-
// Returns true if it gave up at the timeout, false if every target reached a
|
|
88
|
-
// terminal state - the caller surfaces this as `timed_out` in the JSON summary.
|
|
89
|
-
async function pollUntilReady(targetIds, targets, errors) {
|
|
90
|
-
const isTTY = process.stderr.isTTY ?? false;
|
|
91
|
-
const statuses = new Map();
|
|
92
|
-
for (const id of targetIds)
|
|
93
|
-
statuses.set(id, "refreshing");
|
|
94
|
-
const missCounts = new Map();
|
|
95
|
-
let printed = false;
|
|
96
|
-
printStatusTable(targets, statuses, errors, false);
|
|
97
|
-
printed = true;
|
|
98
|
-
const pollStart = Date.now();
|
|
99
|
-
while (true) {
|
|
100
|
-
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
101
|
-
if (Date.now() - pollStart > MAX_POLL_DURATION_MS) {
|
|
102
|
-
note(`\n Timed out after ${MAX_POLL_DURATION_MS / 60_000}m waiting for refresh to complete.`);
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
let fresh;
|
|
106
|
-
try {
|
|
107
|
-
fresh = await fetchDSList();
|
|
108
|
-
}
|
|
109
|
-
catch {
|
|
110
|
-
// Issue #775: tolerate a transient network/transport blip during the wait
|
|
111
|
-
// instead of aborting the refresh-wait and misreporting still-refreshing
|
|
112
|
-
// sources as failed. Re-poll (the loop sleeps first) until the timeout cap.
|
|
113
|
-
continue;
|
|
114
|
-
}
|
|
115
|
-
const freshMap = new Map(fresh.map((ds) => [ds.id, ds]));
|
|
116
|
-
// A target absent from the fresh list (deleted mid-wait, or transiently
|
|
117
|
-
// omitted) is declared not_found after a couple of polls so the loop ends
|
|
118
|
-
// promptly instead of spinning to MAX_POLL_DURATION_MS.
|
|
119
|
-
const allDone = reconcilePoll(targetIds, freshMap, statuses, targets, missCounts);
|
|
120
|
-
if (isTTY && printed) {
|
|
121
|
-
printStatusTable(targets, statuses, errors, true);
|
|
122
|
-
}
|
|
123
|
-
if (allDone) {
|
|
124
|
-
if (!isTTY && printed) {
|
|
125
|
-
note("");
|
|
126
|
-
printStatusTable(targets, statuses, errors, false);
|
|
127
|
-
}
|
|
128
|
-
// A target only counts as refreshed if it reached "ready" AND nothing went
|
|
129
|
-
// wrong for it. A trigger that errored (or timed out) leaves the source at
|
|
130
|
-
// its previous "ready", so counting status alone reported "1/1 refreshed"
|
|
131
|
-
// with the error sitting in the same payload - the summary contradicting
|
|
132
|
-
// the data beneath it.
|
|
133
|
-
const readyCount = Array.from(statuses.entries()).filter(([id, s]) => s === "ready" && !errors.has(id)).length;
|
|
134
|
-
const errorCount = Array.from(statuses.entries()).filter(([id, s]) => s === "error" || errors.has(id)).length;
|
|
135
|
-
const notFoundCount = Array.from(statuses.values()).filter((s) => s === NOT_FOUND_STATUS).length;
|
|
136
|
-
note(`\n ${readyCount}/${targetIds.size} refreshed${errorCount > 0 ? `, ${errorCount} failed` : ""}${notFoundCount > 0 ? `, ${notFoundCount} not found` : ""}`);
|
|
137
|
-
return false;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
142
|
-
async function scanDS(id, force = false, acceptSchema = false) {
|
|
143
|
-
const params = new URLSearchParams();
|
|
144
|
-
if (force)
|
|
145
|
-
params.set("force", "true");
|
|
146
|
-
if (acceptSchema)
|
|
147
|
-
params.set("accept_schema", "true");
|
|
148
|
-
const qs = params.toString();
|
|
149
|
-
return apiClient.post(`/api/v1/cli/ds/${id}/scan${qs ? `?${qs}` : ""}`, {}, { timeoutMs: SCAN_TIMEOUT_MS });
|
|
150
|
-
}
|
|
151
|
-
async function pollUntilDSReady(id, name) {
|
|
152
|
-
const isTTY = process.stderr.isTTY ?? false;
|
|
153
|
-
const start = Date.now();
|
|
154
|
-
if (isTTY)
|
|
155
|
-
process.stderr.write(` Materializing ${name}...`);
|
|
156
|
-
// Feature #661: creation gets the longer create-poll budget (not the 5-min
|
|
157
|
-
// refresh cap), so a legit large load isn't reported as timed-out while still
|
|
158
|
-
// materializing in the Job.
|
|
159
|
-
let firstPoll = true;
|
|
160
|
-
while (Date.now() - start < MAX_CREATE_POLL_DURATION_MS) {
|
|
161
|
-
// Issue #775: poll immediately on the first pass, then wait between polls.
|
|
162
|
-
// An inline create (Project #247) already returned a terminal status from
|
|
163
|
-
// the POST, so sleeping first would tax every inline `ds create --sql` a
|
|
164
|
-
// guaranteed ~POLL_INTERVAL_MS before it can report done. Every `continue`
|
|
165
|
-
// below falls back here, so later passes (and retries) still wait first.
|
|
166
|
-
if (!firstPoll)
|
|
167
|
-
await new Promise((r) => setTimeout(r, POLL_INTERVAL_MS));
|
|
168
|
-
firstPoll = false;
|
|
169
|
-
let all;
|
|
170
|
-
try {
|
|
171
|
-
all = await fetchDSList();
|
|
172
|
-
}
|
|
173
|
-
catch {
|
|
174
|
-
// Issue #775: a transient network/transport blip during the up-to-70-min
|
|
175
|
-
// create window must NOT abort the poll and misreport a still-materializing
|
|
176
|
-
// source as failed. Tolerate the throw and re-poll (the next pass waits the
|
|
177
|
-
// poll interval first, matching triggerRefresh's tolerance). A genuine
|
|
178
|
-
// create failure arrives as status "error" in a successful response and is
|
|
179
|
-
// handled below - it is never swallowed here.
|
|
180
|
-
continue;
|
|
181
|
-
}
|
|
182
|
-
const ds = all.find((d) => d.id === id);
|
|
183
|
-
if (!ds)
|
|
184
|
-
continue;
|
|
185
|
-
if (!isCreatePollTerminal(ds.status))
|
|
186
|
-
continue;
|
|
187
|
-
// Issue #775: pending_verification is a terminal SUCCESS (server-side scan
|
|
188
|
-
// succeeded during creation); without this branch the loop spun to the
|
|
189
|
-
// 70-minute create cap on every scan-succeeded SQL create.
|
|
190
|
-
if (ds.status === "pending_verification") {
|
|
191
|
-
if (isTTY)
|
|
192
|
-
process.stderr.write(` scanned (${formatRowCount(ds.row_count)} rows), awaiting verification\n`);
|
|
193
|
-
else
|
|
194
|
-
note(` ${name}: scanned (${formatRowCount(ds.row_count)} rows), awaiting verification`);
|
|
195
|
-
return ds;
|
|
196
|
-
}
|
|
197
|
-
if (ds.status === "ready") {
|
|
198
|
-
if (isTTY)
|
|
199
|
-
process.stderr.write(` ready (${formatRowCount(ds.row_count)} rows)\n`);
|
|
200
|
-
else
|
|
201
|
-
note(` ${name}: ready (${formatRowCount(ds.row_count)} rows)`);
|
|
202
|
-
return ds;
|
|
203
|
-
}
|
|
204
|
-
if (ds.status === "error") {
|
|
205
|
-
// Feature #661: surface the real, actionable failure reason (was a bare
|
|
206
|
-
// "error" before - useless to a foreign agent driving the CLI).
|
|
207
|
-
if (isTTY)
|
|
208
|
-
process.stderr.write(` failed\n`);
|
|
209
|
-
const detail = ds.last_error || "Data source creation failed.";
|
|
210
|
-
note(` ${name}: ${detail}`);
|
|
211
|
-
return ds;
|
|
212
|
-
}
|
|
213
|
-
// Issue #775: guard the #775 regression. The status is already terminal (it
|
|
214
|
-
// passed isCreatePollTerminal), so any status without a branch above - e.g. a
|
|
215
|
-
// success status later added to CREATE_SUCCESS_STATUSES - must still end the
|
|
216
|
-
// poll. Falling through here would spin to the 70-min cap and reintroduce the
|
|
217
|
-
// hang the guard and branches must not drift into.
|
|
218
|
-
if (isTTY)
|
|
219
|
-
process.stderr.write(` ${ds.status} (${formatRowCount(ds.row_count)} rows)\n`);
|
|
220
|
-
else
|
|
221
|
-
note(` ${name}: ${ds.status} (${formatRowCount(ds.row_count)} rows)`);
|
|
222
|
-
return ds;
|
|
223
|
-
}
|
|
224
|
-
// Feature #661: non-alarming - the Job may still be materializing server-side.
|
|
225
|
-
note(`\n ${name} is still materializing server-side. Check status later with: graphit ds list`);
|
|
226
|
-
return null;
|
|
227
|
-
}
|
|
228
|
-
// Issue #775: single copy of the "scanned, awaiting verification" call to action.
|
|
229
|
-
// Printed identically after a create that lands at pending_verification and after
|
|
230
|
-
// `ds verify` scans a warehouse/SQL source - kept in one place so the two paths
|
|
231
|
-
// (create action + printVerifySummary) cannot drift.
|
|
232
|
-
function printVerificationCTA(dsId) {
|
|
233
|
-
const url = `${getFrontendUrl()}/sources?tab=sources&sub=data&id=${dsId}`;
|
|
234
|
-
note(`\n Scanned and awaiting verification. Review and activate in the platform:`);
|
|
235
|
-
note(` ${url}`);
|
|
236
|
-
note(`\n Or accept the AI schema as-is from the CLI:`);
|
|
237
|
-
note(` graphit ds verify ${dsId} --accept-schema\n`);
|
|
238
|
-
}
|
|
239
|
-
function printVerifySummary(scan, dsId, rowCount) {
|
|
240
|
-
const line = "─".repeat(Math.max(scan.table_name.length, 30));
|
|
241
|
-
note(`\n ${scan.table_name}`);
|
|
242
|
-
note(` ${line}`);
|
|
243
|
-
const colSummary = scan.columns
|
|
244
|
-
.slice(0, 6)
|
|
245
|
-
.map((c) => `${c.name} (${c.type})`)
|
|
246
|
-
.join(", ");
|
|
247
|
-
const more = scan.columns.length > 6 ? `, +${scan.columns.length - 6} more` : "";
|
|
248
|
-
note(` Columns: ${colSummary}${more}`);
|
|
249
|
-
if (rowCount !== undefined) {
|
|
250
|
-
note(` Rows: ${formatRowCount(rowCount)}`);
|
|
251
|
-
}
|
|
252
|
-
// A file-upload verify (or an --accept-schema warehouse verify) activates the
|
|
253
|
-
// source server-side, so there is nothing left to do - say so (Issue #544/#546).
|
|
254
|
-
// Confirmed against the state the server reports back, not against the request
|
|
255
|
-
// we made: a scan that demoted the source must fall through to the CTA below.
|
|
256
|
-
if (scan.activated && scan.status !== "pending_verification") {
|
|
257
|
-
note(`\n Verified - this data source is now queryable.\n`);
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
// Scanned but awaiting review (warehouse/SQL): the AI-inferred schema needs a
|
|
261
|
-
// human to accept it. Offer both governed paths - review in the platform wizard,
|
|
262
|
-
// or accept the schema as-is from the CLI (Issue #546). This is not "still
|
|
263
|
-
// materializing" - the data is on disk; only verification is pending.
|
|
264
|
-
printVerificationCTA(dsId);
|
|
265
|
-
}
|
|
266
|
-
async function scanAndPrintSummary(dsId, dsName, rowCount, force = false, acceptSchema = false) {
|
|
267
|
-
const isTTY = process.stderr.isTTY ?? false;
|
|
268
|
-
if (isTTY)
|
|
269
|
-
process.stderr.write(` Scanning schema...`);
|
|
270
|
-
try {
|
|
271
|
-
const scan = await scanDS(dsId, force, acceptSchema);
|
|
272
|
-
if (isTTY) {
|
|
273
|
-
const label = scan.already_scanned ? "already scanned" : "done";
|
|
274
|
-
process.stderr.write(` ${label} (${scan.column_count} columns)\n`);
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
note(` ${dsName}: scanned (${scan.column_count} columns)`);
|
|
278
|
-
}
|
|
279
|
-
printVerifySummary(scan, dsId, rowCount);
|
|
280
|
-
printShapeWarnings(scan.validation);
|
|
281
|
-
return scan;
|
|
282
|
-
}
|
|
283
|
-
catch (err) {
|
|
284
|
-
if (isTTY)
|
|
285
|
-
process.stderr.write(` failed\n`);
|
|
286
|
-
const msg = err instanceof Error ? err.message : String(err.detail ?? err);
|
|
287
|
-
note(` Scan failed: ${msg}`);
|
|
288
|
-
// Project #263 Phase 13 (13.8): never advise a retry the server has already
|
|
289
|
-
// said cannot work. `ds verify` is a gated write, so this catch now sees
|
|
290
|
-
// permission denials - and offering "you can retry" on a `retryable: false`
|
|
291
|
-
// problem is the retry-loop bait 13.5 removed from the denial body, put back
|
|
292
|
-
// by the client. Read the FIELD, not the prose.
|
|
293
|
-
const problem = err.problem;
|
|
294
|
-
if (problem?.retryable === false) {
|
|
295
|
-
if (problem.next_step)
|
|
296
|
-
note(` ${problem.next_step}`);
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
note(` You can retry with: graphit ds verify ${dsId}`);
|
|
300
|
-
}
|
|
301
|
-
return null;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Create a data source from a local Excel/CSV file (Feature #645). Uploads the
|
|
306
|
-
* file as multipart; the server parses, runs the inline AI scan, encrypts, and
|
|
307
|
-
* (optionally) attaches the new table to a domain - all in one request.
|
|
308
|
-
*/
|
|
309
|
-
async function createDataSourceFromFile(cmd, opts) {
|
|
310
|
-
const filePath = String(opts.file);
|
|
311
|
-
if (!existsSync(filePath)) {
|
|
312
|
-
errorOutput(new Error(`File not found: ${filePath}`));
|
|
313
|
-
return;
|
|
314
|
-
}
|
|
315
|
-
const buf = await readFile(filePath);
|
|
316
|
-
const filename = basename(filePath);
|
|
317
|
-
const form = new FormData();
|
|
318
|
-
form.append("file", new Blob([buf]), filename);
|
|
319
|
-
if (opts.name)
|
|
320
|
-
form.append("name", String(opts.name));
|
|
321
|
-
if (opts.sheet)
|
|
322
|
-
form.append("sheet", String(opts.sheet));
|
|
323
|
-
if (opts.domain)
|
|
324
|
-
form.append("domain", String(opts.domain));
|
|
325
|
-
note(` Uploading ${filename}...`);
|
|
326
|
-
const resp = await apiClient.postMultipart("/api/v1/cli/ds/upload", form, { timeoutMs: 120_000 });
|
|
327
|
-
if (resp.domain_note)
|
|
328
|
-
note(` ${resp.domain_note}`);
|
|
329
|
-
output(cmd, resp, { keyValue: true });
|
|
330
|
-
}
|
|
331
|
-
// Data-source lifecycle actions that are deliberately UI-only. Destroying or
|
|
332
|
-
// re-pointing a source cascades into dashboards, KB tables and cached snapshots,
|
|
333
|
-
// so it stays behind the Sources Hub where the blast radius is shown before you
|
|
334
|
-
// commit. Creating one from the CLI is safe and stays supported.
|
|
335
|
-
//
|
|
336
|
-
// Registered as real commands rather than left to Commander's bare
|
|
337
|
-
// `unknown command 'delete'`: an agent that gets "unknown command" concludes the
|
|
338
|
-
// CLI is incomplete and goes hunting for a flag or a workaround. It needs to
|
|
339
|
-
// learn the boundary is intentional and where the action actually lives.
|
|
340
|
-
const UI_ONLY_DS_ACTIONS = [
|
|
341
|
-
{ name: "delete <id>", summary: "Delete a data source - not available on the CLI, use the Sources Hub" },
|
|
342
|
-
{ name: "move <id>", summary: "Move a data source between domains - not available on the CLI, use the Sources Hub" },
|
|
343
|
-
];
|
|
344
|
-
function registerUiOnlyDSActions(ds) {
|
|
345
|
-
for (const action of UI_ONLY_DS_ACTIONS) {
|
|
346
|
-
const verb = action.name.split(" ")[0];
|
|
347
|
-
ds.command(action.name)
|
|
348
|
-
.description(action.summary)
|
|
349
|
-
.action(function () {
|
|
350
|
-
const url = `${getFrontendUrl()}/sources?tab=sources&sub=data`;
|
|
351
|
-
errorOutput(new Error(`\`ds ${verb}\` is not available on the CLI. Data source ${verb} runs from the ` +
|
|
352
|
-
`Sources Hub, which shows what the change cascades into before it happens: ${url}`));
|
|
353
|
-
process.exitCode = 1;
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
}
|
|
8
|
+
import { printShapeWarnings, printStatusTable, printVerificationCTA } from "./ds/render.js";
|
|
9
|
+
import { CREATE_TIMEOUT_MS } from "./ds/types.js";
|
|
10
|
+
import { registerUiOnlyDSActions } from "./ds/ui-only.js";
|
|
11
|
+
import { Option } from "commander";
|
|
357
12
|
export function registerDSCommands(program) {
|
|
358
13
|
const ds = program.command("ds").description("Data source management");
|
|
359
14
|
// Project #258: read-only refresh-run lineage; lives in its own module to keep
|
package/dist/commands/ds.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds.js","sourceRoot":"","sources":["../../src/commands/ds.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ds.js","sourceRoot":"","sources":["../../src/commands/ds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAA2B,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAEvE,+EAA+E;IAC/E,mFAAmF;IACnF,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAElC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAE5B,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gGAAgG,CAAC;SAC7G,MAAM,CAAC,aAAa,EAAE,qBAAqB,EAAE,IAAI,CAAC;SAClD,MAAM,CAAC,KAAK;QACX,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAK7B,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACzC,qEAAqE;YACrE,oEAAoE;YACpE,sDAAsD;YACtD,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;oBAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC;iBAC3D,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,gDAAgD,CAAC,CAAC;gBAC/F,CAAC;YACH,CAAC;YACD,2EAA2E;YAC3E,+EAA+E;YAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,YAAmC,CAAC;YACtD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kFAAkF,CAAC;SAC/F,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC;SAC3C,MAAM,CAAC,eAAe,EAAE,6DAA6D,CAAC;SACtF,MAAM,CAAC,mBAAmB,EAAE,4DAA4D,CAAC;SACzF,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,aAAa,EAAE,4CAA4C,CAAC;SACnE,MAAM,CAAC,iBAAiB,EAAE,oFAAoF,CAAC;SAC/G,MAAM,CAAC,wBAAwB,EAAE,+FAA+F,CAAC;SACjI,MAAM,CAAC,eAAe,EAAE,4DAA4D,CAAC;SACrF,MAAM,CAAC,iBAAiB,EAAE,uHAAuH,CAAC;SAClJ,MAAM,CAAC,gBAAgB,EAAE,oEAAoE,CAAC;SAC9F,MAAM,CAAC,KAAK;QACX,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,wEAAwE;YACxE,uEAAuE;YACvE,qCAAqC;YACrC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACd,WAAW,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBAC1D,OAAO;gBACT,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CACnC,8BAA8B,EAC9B,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAClB,CAAC;gBACF,IAAI,CAAC,iCAAiC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACvF,MAAM,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5E,OAAO;YACT,CAAC;YAED,wEAAwE;YACxE,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1B,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,MAAM,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,iEAAiE;YACjE,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY;gBACtC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;qBACtB,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;qBAClC,MAAM,CAAC,OAAO,CAAC;gBACpB,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAO/B,gBAAgB,EAChB;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,aAAa,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;gBACtC,WAAW,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,eAAe;gBAC5C,aAAa,EAAE,cAAc,EAAE,kCAAkC;aAClE,EACD,EAAE,SAAS,EAAE,iBAAiB,EAAE,CACjC,CAAC;YAEF,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACpD,uEAAuE;YACvE,oDAAoD;YACpD,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,+BAA+B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtD,yEAAyE;YACzE,uEAAuE;YACvE,qEAAqE;YACrE,IAAI,EAAE,EAAE,MAAM,KAAK,sBAAsB,EAAE,CAAC;gBAC1C,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9B,MAAM,CAAC,IAAI,EAAE;oBACX,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,SAAS,EAAE,EAAE,CAAC,SAAS;oBACvB,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,IAAI;oBACb,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,eAAe;iBACzD,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACjC,mEAAmE;gBACnE,wEAAwE;gBACxE,uEAAuE;gBACvE,IAAI,EAAE,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,EAAE;wBACX,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,MAAM,EAAE,OAAO;wBACf,cAAc,EAAE,EAAE,CAAC,cAAc,IAAI,IAAI;wBACzC,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI;wBACjC,QAAQ,EAAE,KAAK;wBACf,OAAO,EAAE,KAAK;qBACf,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvB,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,+CAA+C,CAAC,CAAC;gBACtD,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrI,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,EAAE;gBACX,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI,KAAK,IAAI;gBACtB,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,IAAI;gBACxC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,eAAe;aACzD,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,4NAA4N,CAAC;SACzO,MAAM,CAAC,OAAO,EAAE,0BAA0B,CAAC;SAC3C,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC;SACvE,MAAM,CAAC,cAAc,EAAE,+BAA+B,CAAC;SACvD,MAAM,CAAC,SAAS,EAAE,oGAAoG,CAAC;SACvH,MAAM,CAAC,KAAK,WAA0B,GAAa;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAA0B,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAe,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAgC,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAA4B,CAAC;YAEhD,MAAM,UAAU,GAAG,MAAM,WAAW,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAE/D,IAAI,SAAmB,CAAC;YAExB,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,QAAQ,GAAG,UAAU,CAAC;gBAC1B,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBACzD,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC,+BAA+B,CAAC,CAAC;oBACtC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;oBACrE,OAAO;gBACT,CAAC;gBACD,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,MAAM,eAAe,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5F,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBACvB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;wBACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;gBACD,SAAS,GAAG,GAAG,CAAC;gBAChB,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;YACtC,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CACnD,CAAC;YAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC7B,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK;wBAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACjD,mEAAmE;oBACnE,4EAA4E;oBAC5E,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,gBAAgB;wBAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC/D,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO;wBAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrC,IAAI,CACF,OAAO,aAAa,CAAC,IAAI,eAAe,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,uEAAuE;oBAC9I,4GAA4G,CAC/G,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;gBAC3C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;oBAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC/D,CAAC;gBACD,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACnD,IAAI,CAAC,OAAO,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,0BAA0B,CAAC,CAAC;gBAC1E,MAAM,CAAC,IAAI,EAAE;oBACX,SAAS,EAAE,SAAS,CAAC,IAAI;oBACzB,KAAK,EAAE,SAAS,CAAC,MAAM;oBACvB,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC9B,EAAE;wBACF,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,IAAI;wBACnC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI;qBAC9B,CAAC,CAAC;iBACJ,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC3E,MAAM,CAAC,IAAI,EAAE;gBACX,KAAK,EAAE,SAAS,CAAC,MAAM;gBACvB,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC9B,EAAE;oBACF,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,IAAI;oBACnC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI;oBACvC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI;iBAC9B,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,iZAAiZ,CAAC;SAC9Z,MAAM,CAAC,SAAS,EAAE,+DAA+D,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,yIAAyI,CAAC;SACpK,MAAM,CAAC,KAAK,WAA0B,EAAU;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,MAAM,WAAW,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;gBACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,2EAA2E;YAC3E,6EAA6E;YAC7E,uEAAuE;YACvE,2DAA2D;YAC3D,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACxD,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,uBAAuB,CAAC,CAAC;gBAC1C,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3G,OAAO;YACT,CAAC;YAED,6EAA6E;YAC7E,4EAA4E;YAC5E,4EAA4E;YAC5E,4EAA4E;YAC5E,8DAA8D;YAC9D,MAAM,sBAAsB,GAAG,EAAE,CAAC,MAAM,KAAK,sBAAsB,CAAC;YACpE,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,IAAI,EAAE,CAAC,cAAc,KAAK,aAAa,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC5F,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,0BAA0B,EAAE,CAAC,MAAM,0CAA0C,CAAC,CAAC;gBAChG,IAAI,CAAC,yCAAyC,EAAE,EAAE,CAAC,CAAC;gBACpD,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5G,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrG,yEAAyE;YACzE,0EAA0E;YAC1E,2DAA2D;YAC3D,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACxC,wEAAwE;YACxE,uEAAuE;YACvE,gEAAgE;YAChE,sEAAsE;YACtE,MAAM,CAAC,IAAI,EAAE;gBACX,EAAE;gBACF,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,MAAM;gBACjC,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,QAAQ;gBACvC,OAAO,EAAE,IAAI,KAAK,IAAI;gBACtB,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,IAAI;aACzC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;SACxD,MAAM,CAAC,KAAK,WAA0B,EAAU;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,GAAG,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,OAAO,sBAAsB,CAAC,CAAC;gBAClG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAChC,gCAAgC,EAAE,EAAE,EACpC,IAAI,CACL,CAAC;YACF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CACV,iPAAiP,CAClP;SACA,MAAM,CAAC,eAAe,EAAE,2CAA2C,CAAC;SACpE,MAAM,CAAC,0BAA0B,EAAE,oGAAoG,CAAC;SACxI,MAAM,CAAC,yBAAyB,EAAE,0EAA0E,CAAC;SAC7G,MAAM,CAAC,oBAAoB,EAAE,0LAA0L,CAAC;SACxN,MAAM,CAAC,oBAAoB,EAAE,4IAA4I,CAAC;QAC3K,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,uEAAuE;SACtE,SAAS,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC/E,MAAM,CACL,yBAAyB,EACzB,4UAA4U,EAC5U,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAC/C,EAAc,CACf;SACA,MAAM,CAAC,6BAA6B,EAAE,6IAA6I,CAAC;SACpL,MAAM,CAAC,KAAK,WAA0B,EAAU;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAChC,kBAAkB,EAAE,qBAAqB,EACzC,IAAI,CACL,CAAC;YACF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
ACTION="${1:-}"
|
|
5
|
+
MARKETPLACE_DIR="${2:-/tmp/graphit-plugin}"
|
|
6
|
+
VERSION=$(node -p "require('./cli/package.json').version")
|
|
7
|
+
|
|
8
|
+
sync_marketplace() {
|
|
9
|
+
local target="$MARKETPLACE_DIR"
|
|
10
|
+
|
|
11
|
+
mkdir -p "$target/skills/graphit"
|
|
12
|
+
cp cli/skills/graphit/SKILL.md "$target/skills/graphit/SKILL.md"
|
|
13
|
+
cp cli/skills/graphit/graphit.mdc "$target/skills/graphit/graphit.mdc"
|
|
14
|
+
cp cli/skills/graphit/VERSION.json "$target/skills/graphit/VERSION.json"
|
|
15
|
+
|
|
16
|
+
# Mirror generated directories so removed files cannot linger downstream.
|
|
17
|
+
mkdir -p "$target/skills/graphit/references"
|
|
18
|
+
rsync -a --delete cli/skills/graphit/references/ "$target/skills/graphit/references/"
|
|
19
|
+
mkdir -p "$target/skills/graphit/cursor"
|
|
20
|
+
rsync -a --delete cli/skills/graphit/cursor/ "$target/skills/graphit/cursor/"
|
|
21
|
+
mkdir -p "$target/hooks"
|
|
22
|
+
rsync -a --delete cli/hooks/ "$target/hooks/"
|
|
23
|
+
|
|
24
|
+
mkdir -p "$target/scripts"
|
|
25
|
+
cp cli/scripts/plugin-status.mjs "$target/scripts/"
|
|
26
|
+
|
|
27
|
+
# Project #246: the public plugin ships wrappers that invoke the current CLI.
|
|
28
|
+
mkdir -p "$target/bin"
|
|
29
|
+
rsync -a --delete cli/bin/ "$target/bin/"
|
|
30
|
+
chmod +x "$target/bin/graphit"
|
|
31
|
+
|
|
32
|
+
# Feature #755: slash commands reach users through the git marketplace.
|
|
33
|
+
mkdir -p "$target/commands"
|
|
34
|
+
rsync -a --delete cli/commands/ "$target/commands/"
|
|
35
|
+
|
|
36
|
+
mkdir -p "$target/.claude-plugin" "$target/.codex-plugin"
|
|
37
|
+
cp cli/.claude-plugin/plugin.json "$target/.claude-plugin/plugin.json"
|
|
38
|
+
cp cli/.codex-plugin/plugin.json "$target/.codex-plugin/plugin.json"
|
|
39
|
+
cp cli/README.md "$target/README.md"
|
|
40
|
+
|
|
41
|
+
python3 - "$target" "$VERSION" <<'PY'
|
|
42
|
+
import json
|
|
43
|
+
import sys
|
|
44
|
+
from pathlib import Path
|
|
45
|
+
|
|
46
|
+
marketplace_dir = Path(sys.argv[1])
|
|
47
|
+
version = sys.argv[2]
|
|
48
|
+
path = marketplace_dir / ".claude-plugin" / "marketplace.json"
|
|
49
|
+
with path.open(encoding="utf-8") as handle:
|
|
50
|
+
marketplace = json.load(handle)
|
|
51
|
+
for plugin in marketplace.get("plugins", []):
|
|
52
|
+
if plugin["name"] == "graphit":
|
|
53
|
+
plugin["version"] = version
|
|
54
|
+
with path.open("w", encoding="utf-8") as handle:
|
|
55
|
+
json.dump(marketplace, handle, indent=2)
|
|
56
|
+
handle.write("\n")
|
|
57
|
+
PY
|
|
58
|
+
|
|
59
|
+
echo "Synced plugin marketplace to $VERSION"
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
verify_marketplace() {
|
|
63
|
+
local target="$MARKETPLACE_DIR"
|
|
64
|
+
local fail=0
|
|
65
|
+
|
|
66
|
+
for file in bin/graphit bin/graphit.cmd bin/graphit.ps1; do
|
|
67
|
+
if [[ ! -f "$target/$file" ]]; then
|
|
68
|
+
echo "::error::marketplace missing $file after sync"
|
|
69
|
+
fail=1
|
|
70
|
+
fi
|
|
71
|
+
done
|
|
72
|
+
|
|
73
|
+
if [[ -f "$target/bin/graphit" && ! -x "$target/bin/graphit" ]]; then
|
|
74
|
+
echo "::error::marketplace bin/graphit lost its executable bit"
|
|
75
|
+
fail=1
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
if ! grep -Fq "FLOOR_VERSION=\"${VERSION}\"" "$target/bin/graphit" 2>/dev/null; then
|
|
79
|
+
echo "::error::bin/graphit floor version != ${VERSION}"
|
|
80
|
+
fail=1
|
|
81
|
+
fi
|
|
82
|
+
if ! grep -Fq "\$FloorVersion = \"${VERSION}\"" "$target/bin/graphit.ps1" 2>/dev/null; then
|
|
83
|
+
echo "::error::bin/graphit.ps1 floor version != ${VERSION}"
|
|
84
|
+
fail=1
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
local marketplace_version claude_plugin_version codex_plugin_version skill_version
|
|
88
|
+
local skill_frontmatter_version
|
|
89
|
+
marketplace_version=$(node -p "require('$target/.claude-plugin/marketplace.json').plugins.find(p => p.name === 'graphit')?.version")
|
|
90
|
+
claude_plugin_version=$(node -p "require('$target/.claude-plugin/plugin.json').version")
|
|
91
|
+
codex_plugin_version=$(node -p "require('$target/.codex-plugin/plugin.json').version")
|
|
92
|
+
skill_version=$(node -p "require('$target/skills/graphit/VERSION.json').version")
|
|
93
|
+
skill_frontmatter_version=$(node -e "const fs=require('fs'); const m=fs.readFileSync('$target/skills/graphit/SKILL.md','utf8').match(/^skill_version:\\s*[\\\"']?([^\\\"'\\n]+)[\\\"']?\\s*$/m); console.log(m?.[1] ?? '')")
|
|
94
|
+
|
|
95
|
+
if [[ "$marketplace_version" != "$VERSION" ]]; then
|
|
96
|
+
echo "::error::marketplace.json graphit version ($marketplace_version) != package.json ($VERSION)"
|
|
97
|
+
fail=1
|
|
98
|
+
fi
|
|
99
|
+
if [[ "$claude_plugin_version" != "$VERSION" ]]; then
|
|
100
|
+
echo "::error::.claude-plugin/plugin.json version ($claude_plugin_version) != package.json ($VERSION)"
|
|
101
|
+
fail=1
|
|
102
|
+
fi
|
|
103
|
+
if [[ "$codex_plugin_version" != "$VERSION" ]]; then
|
|
104
|
+
echo "::error::.codex-plugin/plugin.json version ($codex_plugin_version) != package.json ($VERSION)"
|
|
105
|
+
fail=1
|
|
106
|
+
fi
|
|
107
|
+
if [[ "$skill_version" != "$VERSION" ]]; then
|
|
108
|
+
echo "::error::skills/graphit/VERSION.json version ($skill_version) != package.json ($VERSION)"
|
|
109
|
+
fail=1
|
|
110
|
+
fi
|
|
111
|
+
if [[ "$skill_frontmatter_version" != "$VERSION" ]]; then
|
|
112
|
+
echo "::error::skills/graphit/SKILL.md frontmatter version ($skill_frontmatter_version) != package.json ($VERSION)"
|
|
113
|
+
fail=1
|
|
114
|
+
fi
|
|
115
|
+
|
|
116
|
+
if [[ "$fail" -ne 0 ]]; then
|
|
117
|
+
echo "::error::post-sync integrity gate failed - refusing to push marketplace"
|
|
118
|
+
exit 1
|
|
119
|
+
fi
|
|
120
|
+
echo "Integrity gate OK: bin/ present + executable, floor stamped ${VERSION}, all version surfaces match."
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
case "$ACTION" in
|
|
124
|
+
sync)
|
|
125
|
+
sync_marketplace
|
|
126
|
+
;;
|
|
127
|
+
verify)
|
|
128
|
+
verify_marketplace
|
|
129
|
+
;;
|
|
130
|
+
*)
|
|
131
|
+
echo "Usage: $0 {sync|verify} [marketplace-dir]" >&2
|
|
132
|
+
exit 2
|
|
133
|
+
;;
|
|
134
|
+
esac
|
package/skills/graphit/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: graphit
|
|
3
3
|
description: >-
|
|
4
4
|
Use Graphit for ANY question about the user's business or product data: metrics, KPIs, revenue, retention, spend, users, cohorts, funnels, trends, comparisons, "why did X change", "how are we doing on Y", analysis, reports, or dashboards. Activate even when the user does not say "Graphit" or name any tool: if someone wants to understand their numbers, this is the tool. Graphit answers through a governed semantic layer (computed the team's way, reusable and safe to share) and delivers the answer as a fast cached-data query or a hand-authored interactive HTML dashboard, and can create the metrics, dimensions, and rules an answer needs. Prefer Graphit over hand-rolled one-off analysis whenever the data is, or could be, the user's business data. Skip only for pure software tasks (code, logs, config, infra) or data with nothing to do with the user's business.
|
|
5
|
-
skill_version: "0.2.
|
|
5
|
+
skill_version: "0.2.260"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<!-- SIZE EXEMPTION (SKILL.md): standard hard limit 12,288 chars, exempted ceiling 29,952. Always-loaded: the collaboration/pace spine, hard constraints + scope gate, the loop, and the generated command table (COMMANDS markers, scripts/generate-commands-doc.mjs) - needed every turn, cannot defer to a reference. Marker sits after the frontmatter so the loader and sync-plugin-version.mjs parse it. Reviewed 2026-08-02. -->
|
|
@@ -155,7 +155,7 @@ Read the one that matches what you are doing now. Do not preload them. Exact com
|
|
|
155
155
|
|
|
156
156
|
## Commands
|
|
157
157
|
|
|
158
|
-
Graphit is one CLI, but how you invoke it depends on your environment. On Claude Code the plugin provides a `graphit` wrapper, so `graphit <command>` runs the current CLI. On Codex, Cursor, a terminal, or CI there is no `graphit` wrapper - invoke the CLI explicitly with `npx -y @graphit/cli@0.2.
|
|
158
|
+
Graphit is one CLI, but how you invoke it depends on your environment. On Claude Code the plugin provides a `graphit` wrapper, so `graphit <command>` runs the current CLI. On Codex, Cursor, a terminal, or CI there is no `graphit` wrapper - invoke the CLI explicitly with `npx -y @graphit/cli@0.2.260 <command>` (a stamped version, kept current by the build; pin an exact version for a reproducible run). The table below is generated from the CLI itself. For exact flags, run `graphit <command> --help` - never guess a flag.
|
|
159
159
|
|
|
160
160
|
<!-- COMMANDS:START -->
|
|
161
161
|
|