@ryanstark24/sfgraph-cli 1.1.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/__tests__/doctor.test.d.ts +2 -0
- package/dist/__tests__/doctor.test.d.ts.map +1 -0
- package/dist/__tests__/doctor.test.js +64 -0
- package/dist/__tests__/doctor.test.js.map +1 -0
- package/dist/__tests__/ingest-db-guard.test.d.ts +2 -0
- package/dist/__tests__/ingest-db-guard.test.d.ts.map +1 -0
- package/dist/__tests__/ingest-db-guard.test.js +110 -0
- package/dist/__tests__/ingest-db-guard.test.js.map +1 -0
- package/dist/__tests__/ingest-multi.test.d.ts +2 -0
- package/dist/__tests__/ingest-multi.test.d.ts.map +1 -0
- package/dist/__tests__/ingest-multi.test.js +51 -0
- package/dist/__tests__/ingest-multi.test.js.map +1 -0
- package/dist/__tests__/install-dry-run.test.d.ts +2 -0
- package/dist/__tests__/install-dry-run.test.d.ts.map +1 -0
- package/dist/__tests__/install-dry-run.test.js +29 -0
- package/dist/__tests__/install-dry-run.test.js.map +1 -0
- package/dist/__tests__/install-e2e.test.d.ts +2 -0
- package/dist/__tests__/install-e2e.test.d.ts.map +1 -0
- package/dist/__tests__/install-e2e.test.js +33 -0
- package/dist/__tests__/install-e2e.test.js.map +1 -0
- package/dist/__tests__/mcp-config.test.d.ts +2 -0
- package/dist/__tests__/mcp-config.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-config.test.js +104 -0
- package/dist/__tests__/mcp-config.test.js.map +1 -0
- package/dist/__tests__/rebuild.test.d.ts +2 -0
- package/dist/__tests__/rebuild.test.d.ts.map +1 -0
- package/dist/__tests__/rebuild.test.js +180 -0
- package/dist/__tests__/rebuild.test.js.map +1 -0
- package/dist/__tests__/serve-guard.test.d.ts +2 -0
- package/dist/__tests__/serve-guard.test.d.ts.map +1 -0
- package/dist/__tests__/serve-guard.test.js +82 -0
- package/dist/__tests__/serve-guard.test.js.map +1 -0
- package/dist/__tests__/snapshot.test.d.ts +2 -0
- package/dist/__tests__/snapshot.test.d.ts.map +1 -0
- package/dist/__tests__/snapshot.test.js +139 -0
- package/dist/__tests__/snapshot.test.js.map +1 -0
- package/dist/__tests__/telemetry.test.d.ts +2 -0
- package/dist/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/__tests__/telemetry.test.js +53 -0
- package/dist/__tests__/telemetry.test.js.map +1 -0
- package/dist/commands/_mcp-config.d.ts +30 -0
- package/dist/commands/_mcp-config.d.ts.map +1 -0
- package/dist/commands/_mcp-config.js +98 -0
- package/dist/commands/_mcp-config.js.map +1 -0
- package/dist/commands/doctor.d.ts +28 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +356 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/ingest.d.ts +31 -0
- package/dist/commands/ingest.d.ts.map +1 -0
- package/dist/commands/ingest.js +260 -0
- package/dist/commands/ingest.js.map +1 -0
- package/dist/commands/install.d.ts +44 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +214 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/link.d.ts +6 -0
- package/dist/commands/link.d.ts.map +1 -0
- package/dist/commands/link.js +23 -0
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/rebuild-bindings.d.ts +26 -0
- package/dist/commands/rebuild-bindings.d.ts.map +1 -0
- package/dist/commands/rebuild-bindings.js +129 -0
- package/dist/commands/rebuild-bindings.js.map +1 -0
- package/dist/commands/refresh-orgs.d.ts +17 -0
- package/dist/commands/refresh-orgs.d.ts.map +1 -0
- package/dist/commands/refresh-orgs.js +26 -0
- package/dist/commands/refresh-orgs.js.map +1 -0
- package/dist/commands/serve.d.ts +8 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +188 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/snapshot.d.ts +26 -0
- package/dist/commands/snapshot.d.ts.map +1 -0
- package/dist/commands/snapshot.js +164 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/commands/telemetry.d.ts +13 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/commands/telemetry.js +57 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/commands/wip.d.ts +8 -0
- package/dist/commands/wip.d.ts.map +1 -0
- package/dist/commands/wip.js +60 -0
- package/dist/commands/wip.js.map +1 -0
- package/dist/config.d.ts +14 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +28 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +239 -0
- package/dist/index.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +20 -0
- package/dist/version.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { LocalFileSink, Sanitizer, getOrCreateMachineId, resetMachineId, } from "@ryanstark24/sfgraph-core";
|
|
2
|
+
import { getSfgraphPaths } from "@ryanstark24/sfgraph-shared";
|
|
3
|
+
import { defaultSinkPath, readConfig, writeConfig } from "../config.js";
|
|
4
|
+
export function defaultEnv() {
|
|
5
|
+
const p = getSfgraphPaths();
|
|
6
|
+
return { configDir: p.config, dataDir: p.data, log: (s) => console.log(s) };
|
|
7
|
+
}
|
|
8
|
+
export async function statusCmd(env = defaultEnv()) {
|
|
9
|
+
const cfg = readConfig(env.configDir);
|
|
10
|
+
env.log(`telemetry: ${cfg.telemetry.enabled ? "enabled" : "disabled"}`);
|
|
11
|
+
env.log(`sink: ${cfg.telemetry.sink}`);
|
|
12
|
+
if (cfg.telemetry.sinkPath)
|
|
13
|
+
env.log(`sinkPath: ${cfg.telemetry.sinkPath}`);
|
|
14
|
+
}
|
|
15
|
+
export async function enableLocalCmd(env = defaultEnv()) {
|
|
16
|
+
const cfg = readConfig(env.configDir);
|
|
17
|
+
cfg.telemetry.enabled = true;
|
|
18
|
+
cfg.telemetry.sink = "local";
|
|
19
|
+
cfg.telemetry.sinkPath = cfg.telemetry.sinkPath ?? defaultSinkPath(env.dataDir);
|
|
20
|
+
writeConfig(env.configDir, cfg);
|
|
21
|
+
getOrCreateMachineId({ telemetryEnabled: true, configDir: env.configDir });
|
|
22
|
+
env.log("telemetry enabled (local)");
|
|
23
|
+
}
|
|
24
|
+
export async function disableCmd(env = defaultEnv()) {
|
|
25
|
+
const cfg = readConfig(env.configDir);
|
|
26
|
+
cfg.telemetry.enabled = false;
|
|
27
|
+
writeConfig(env.configDir, cfg);
|
|
28
|
+
env.log("telemetry disabled");
|
|
29
|
+
}
|
|
30
|
+
export async function previewCmd(env = defaultEnv()) {
|
|
31
|
+
const sample = {
|
|
32
|
+
kind: "cli_command",
|
|
33
|
+
ts: Date.now(),
|
|
34
|
+
command: "ingest --org acme at /Users/alice/code",
|
|
35
|
+
durationMs: 1234,
|
|
36
|
+
exitCode: 0,
|
|
37
|
+
};
|
|
38
|
+
const out = new Sanitizer().sanitizeEvent(sample);
|
|
39
|
+
env.log(JSON.stringify(out, null, 2));
|
|
40
|
+
}
|
|
41
|
+
export async function purgeCmd(env = defaultEnv()) {
|
|
42
|
+
const cfg = readConfig(env.configDir);
|
|
43
|
+
const path = cfg.telemetry.sinkPath ?? defaultSinkPath(env.dataDir);
|
|
44
|
+
const sink = new LocalFileSink(path);
|
|
45
|
+
await sink.purge();
|
|
46
|
+
env.log(`purged: ${path}`);
|
|
47
|
+
}
|
|
48
|
+
export async function resetIdCmd(env = defaultEnv()) {
|
|
49
|
+
const cfg = readConfig(env.configDir);
|
|
50
|
+
if (!cfg.telemetry.enabled) {
|
|
51
|
+
env.log("telemetry is disabled; nothing to reset");
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const id = resetMachineId({ telemetryEnabled: true, configDir: env.configDir });
|
|
55
|
+
env.log(`new machine id: ${id}`);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/commands/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface WipOpts {
|
|
2
|
+
depth?: number | undefined;
|
|
3
|
+
mode?: "changed-only" | "full-folder" | undefined;
|
|
4
|
+
project?: string | undefined;
|
|
5
|
+
org?: string | undefined;
|
|
6
|
+
}
|
|
7
|
+
export declare function wipCmd(opts: WipOpts): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=wip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wip.d.ts","sourceRoot":"","sources":["../../src/commands/wip.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDzD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { SqliteGraphStore, analyze, resolveDefaultOrgAlias, resolveOrg, } from "@ryanstark24/sfgraph-core";
|
|
3
|
+
import { ConfigError, ConsoleLogger, SfgraphError, asOrgId, findProjectRoot, getSfgraphPaths, readWorkspace, safeOrgDbPath, } from "@ryanstark24/sfgraph-shared";
|
|
4
|
+
export async function wipCmd(opts) {
|
|
5
|
+
const logger = new ConsoleLogger("info");
|
|
6
|
+
try {
|
|
7
|
+
const startDir = opts.project ? path.resolve(opts.project) : process.cwd();
|
|
8
|
+
const projectRoot = findProjectRoot(startDir) ?? startDir;
|
|
9
|
+
// Resolve orgId: --org → workspace binding → default alias
|
|
10
|
+
let orgId = null;
|
|
11
|
+
if (opts.org) {
|
|
12
|
+
const resolved = await resolveOrg(opts.org);
|
|
13
|
+
orgId = resolved.orgId;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const ws = await readWorkspace(projectRoot);
|
|
17
|
+
if (ws?.orgId) {
|
|
18
|
+
orgId = ws.orgId;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const alias = await resolveDefaultOrgAlias();
|
|
22
|
+
if (!alias) {
|
|
23
|
+
throw new ConfigError("wip: no --org provided, no workspace binding, and no default org configured. Run `sfgraph link --org <alias>` or pass --org.");
|
|
24
|
+
}
|
|
25
|
+
const resolved = await resolveOrg(alias);
|
|
26
|
+
orgId = resolved.orgId;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const dbPath = safeOrgDbPath(getSfgraphPaths().data, orgId);
|
|
30
|
+
const graphStore = new SqliteGraphStore({ dbPath });
|
|
31
|
+
await graphStore.init();
|
|
32
|
+
try {
|
|
33
|
+
const result = await analyze.analyzeLocalImpact({
|
|
34
|
+
graphStore,
|
|
35
|
+
orgId: asOrgId(orgId),
|
|
36
|
+
projectRoot,
|
|
37
|
+
depth: opts.depth ?? 3,
|
|
38
|
+
mode: opts.mode ?? "changed-only",
|
|
39
|
+
logger,
|
|
40
|
+
});
|
|
41
|
+
console.log(`WIP impact: changed=${result.changedQnames.length} added=${result.addedQnames.length} removed=${result.removedQnames.length} dependents=${result.dependents.length}`);
|
|
42
|
+
console.log("\n```mermaid");
|
|
43
|
+
console.log(result.mermaid);
|
|
44
|
+
console.log("```");
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
await graphStore.close();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
if (e instanceof SfgraphError) {
|
|
52
|
+
console.error(`[${e.code}] ${e.message}`);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.error(e.message);
|
|
56
|
+
}
|
|
57
|
+
process.exitCode = 1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=wip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wip.js","sourceRoot":"","sources":["../../src/commands/wip.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface TelemetryConfig {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
sink: "null" | "local";
|
|
4
|
+
sinkPath?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SfgraphConfig {
|
|
7
|
+
telemetry: TelemetryConfig;
|
|
8
|
+
}
|
|
9
|
+
export declare const DEFAULT_CONFIG: SfgraphConfig;
|
|
10
|
+
export declare function configPath(configDir: string): string;
|
|
11
|
+
export declare function readConfig(configDir: string): SfgraphConfig;
|
|
12
|
+
export declare function writeConfig(configDir: string, cfg: SfgraphConfig): void;
|
|
13
|
+
export declare function defaultSinkPath(dataDir: string): string;
|
|
14
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,EAAE,aAE5B,CAAC;AAEF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAU3D;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAGvE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
export const DEFAULT_CONFIG = {
|
|
4
|
+
telemetry: { enabled: false, sink: "null" },
|
|
5
|
+
};
|
|
6
|
+
export function configPath(configDir) {
|
|
7
|
+
return join(configDir, "sfgraph.json");
|
|
8
|
+
}
|
|
9
|
+
export function readConfig(configDir) {
|
|
10
|
+
try {
|
|
11
|
+
const raw = readFileSync(configPath(configDir), "utf8");
|
|
12
|
+
const parsed = JSON.parse(raw);
|
|
13
|
+
return {
|
|
14
|
+
telemetry: { ...DEFAULT_CONFIG.telemetry, ...(parsed.telemetry ?? {}) },
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return structuredClone(DEFAULT_CONFIG);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function writeConfig(configDir, cfg) {
|
|
22
|
+
mkdirSync(configDir, { recursive: true });
|
|
23
|
+
writeFileSync(configPath(configDir), `${JSON.stringify(cfg, null, 2)}\n`, "utf8");
|
|
24
|
+
}
|
|
25
|
+
export function defaultSinkPath(dataDir) {
|
|
26
|
+
return join(dataDir, "telemetry.jsonl");
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAYjC,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;CAC5C,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,CAAC;QACzD,OAAO;YACL,SAAS,EAAE,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;SACxE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,GAAkB;IAC/D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC1C,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,YAAY,IAAI,OAAO,CAoWtC;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvD;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { doctorCmd } from "./commands/doctor.js";
|
|
3
|
+
import { ingestCmd } from "./commands/ingest.js";
|
|
4
|
+
import { installCmd } from "./commands/install.js";
|
|
5
|
+
import { linkCmd } from "./commands/link.js";
|
|
6
|
+
import { snapshotCreateCmd, snapshotDeleteCmd, snapshotDiffCmd, snapshotListCmd, snapshotPruneCmd, } from "./commands/snapshot.js";
|
|
7
|
+
import { disableCmd, enableLocalCmd, previewCmd, purgeCmd, resetIdCmd, statusCmd, } from "./commands/telemetry.js";
|
|
8
|
+
import { wipCmd } from "./commands/wip.js";
|
|
9
|
+
import { getCliVersion } from "./version.js";
|
|
10
|
+
export function buildProgram() {
|
|
11
|
+
const program = new Command();
|
|
12
|
+
program.name("sfgraph").description("sfgraph CLI").version(getCliVersion());
|
|
13
|
+
program
|
|
14
|
+
.command("version")
|
|
15
|
+
.description("print sfgraph version")
|
|
16
|
+
.action(() => {
|
|
17
|
+
console.log(getCliVersion());
|
|
18
|
+
});
|
|
19
|
+
program
|
|
20
|
+
.command("install")
|
|
21
|
+
.description("install skills + MCP config for the target editor(s)")
|
|
22
|
+
.option("--target <target>", "claude | cursor | vscode | all", "all")
|
|
23
|
+
.option("--dry-run", "show what would be written without writing", false)
|
|
24
|
+
.option("--skills-only", "only install skills; skip MCP config", false)
|
|
25
|
+
.option("--mcp-only", "only write MCP config; skip skills", false)
|
|
26
|
+
.option("--local", "point the MCP entry at this local binary instead of `npx @ryanstark24/sfgraph` (use when the npm package isn't published yet)", false)
|
|
27
|
+
.option("--pin-node <path>", "absolute path to a node binary to use as the MCP entry's `command` (defaults to process.execPath when --local is set). Pins the IDE child to a Node ABI matching the rebuilt better-sqlite3 binding.")
|
|
28
|
+
.action(async (opts) => {
|
|
29
|
+
const args = {
|
|
30
|
+
target: opts.target,
|
|
31
|
+
dryRun: opts.dryRun,
|
|
32
|
+
skillsOnly: opts.skillsOnly,
|
|
33
|
+
mcpOnly: opts.mcpOnly,
|
|
34
|
+
local: opts.local,
|
|
35
|
+
};
|
|
36
|
+
if (opts.pinNode !== undefined)
|
|
37
|
+
args.pinNode = opts.pinNode;
|
|
38
|
+
await installCmd(args);
|
|
39
|
+
});
|
|
40
|
+
program
|
|
41
|
+
.command("mcp")
|
|
42
|
+
.description("start the MCP server over stdio (this is what IDEs invoke)")
|
|
43
|
+
.action(async () => {
|
|
44
|
+
const { runMcpServer } = await import("@ryanstark24/sfgraph-server");
|
|
45
|
+
await runMcpServer();
|
|
46
|
+
});
|
|
47
|
+
program
|
|
48
|
+
.command("ingest")
|
|
49
|
+
.description("sync a Salesforce org into the local graph (read-only)")
|
|
50
|
+
.option("--org <alias>", "Salesforce alias/username (defaults to `sf config` target-org)")
|
|
51
|
+
.option("--orgs <list>", "comma-separated list of aliases to ingest in one run (ignores --org)")
|
|
52
|
+
.option("--all", "ingest every authenticated org from `sf` (ignores --org)", false)
|
|
53
|
+
.option("--parallel", "with --orgs/--all, run all orgs concurrently (shares default rate-limit pools)", false)
|
|
54
|
+
.option("--mode <mode>", "full | incremental | auto", "auto")
|
|
55
|
+
.option("--rebuild", "discard existing graph (move to backups/), open fresh DB, force full sync", false)
|
|
56
|
+
.option("--no-backup", "with --rebuild, delete existing graph instead of backing it up")
|
|
57
|
+
.option("--detect-deletions", "with full sync, delete qnames present in the graph but not touched this run (skipped on parse errors)", false)
|
|
58
|
+
.option("--db <path>", "override SQLite database path")
|
|
59
|
+
.option("--only <labels>", "comma-separated source labels to fetch (e.g. 'apex,generic:Profile'); merges into existing graph without rebuild")
|
|
60
|
+
.option("--retry-skipped", "re-fetch only sources that were skipped in the previous run (read from <dataDir>/<orgId>.skips.json)", false)
|
|
61
|
+
.option("--embed-model <path>", "absolute path to a custom embedding model dir (overrides the vendored MiniLM); also reads SFGRAPH_EMBED_MODEL_PATH")
|
|
62
|
+
.option("--embed-model-id <id>", "model id (e.g. 'MyOrg/MyModel'); also reads SFGRAPH_EMBED_MODEL_ID")
|
|
63
|
+
.option("--embed-model-dim <n>", "embedding dimension (default 384); also reads SFGRAPH_EMBED_MODEL_DIM", (v) => Number.parseInt(v, 10))
|
|
64
|
+
.option("--tooling-pool <n>", "max concurrent Tooling-API calls (default 5; also reads SFGRAPH_TOOLING_POOL)", (v) => Number.parseInt(v, 10))
|
|
65
|
+
.option("--metadata-pool <n>", "max concurrent Metadata-API calls (default 5; also reads SFGRAPH_METADATA_POOL). Bump this (e.g. 8-10) to speed up slow ingests dominated by Profile/PermissionSet/Layout fans.", (v) => Number.parseInt(v, 10))
|
|
66
|
+
.option("--data-pool <n>", "max concurrent SObject/Bulk queries (default 10; also reads SFGRAPH_DATA_POOL)", (v) => Number.parseInt(v, 10))
|
|
67
|
+
.option("--debug", "verbose ingest tracing: heartbeat every 10s with heap/rss, last-source tag, signal stack traces. Also sets SFGRAPH_DEBUG_INGEST=1. Use when an ingest dies silently to identify which extractor was active when it stopped.", false)
|
|
68
|
+
.action(async (opts) => {
|
|
69
|
+
if (opts.debug)
|
|
70
|
+
process.env.SFGRAPH_DEBUG_INGEST = "1";
|
|
71
|
+
await ingestCmd({
|
|
72
|
+
org: opts.org,
|
|
73
|
+
orgs: opts.orgs,
|
|
74
|
+
all: opts.all,
|
|
75
|
+
parallel: opts.parallel,
|
|
76
|
+
mode: opts.mode,
|
|
77
|
+
db: opts.db,
|
|
78
|
+
embedModel: opts.embedModel,
|
|
79
|
+
embedModelId: opts.embedModelId,
|
|
80
|
+
embedModelDim: opts.embedModelDim,
|
|
81
|
+
rebuild: opts.rebuild,
|
|
82
|
+
noBackup: opts.backup === false,
|
|
83
|
+
detectDeletions: opts.detectDeletions,
|
|
84
|
+
only: opts.only,
|
|
85
|
+
retrySkipped: opts.retrySkipped,
|
|
86
|
+
toolingPool: opts.toolingPool,
|
|
87
|
+
metadataPool: opts.metadataPool,
|
|
88
|
+
dataPool: opts.dataPool,
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
program
|
|
92
|
+
.command("link")
|
|
93
|
+
.description("link the current sfdx project to a Salesforce org alias")
|
|
94
|
+
.requiredOption("--org <alias>", "Salesforce alias/username to bind to this project")
|
|
95
|
+
.option("--project <path>", "override project root (defaults to CWD)")
|
|
96
|
+
.action(async (opts) => {
|
|
97
|
+
await linkCmd({ org: opts.org, project: opts.project });
|
|
98
|
+
});
|
|
99
|
+
program
|
|
100
|
+
.command("wip")
|
|
101
|
+
.description("analyze local sfdx-source changes against the linked org's graph")
|
|
102
|
+
.option("--depth <n>", "traversal depth (1..5)", (v) => Number.parseInt(v, 10), 3)
|
|
103
|
+
.option("--mode <mode>", "changed-only | full-folder", (v) => v, "changed-only")
|
|
104
|
+
.option("--project <path>", "override project root (defaults to CWD)")
|
|
105
|
+
.option("--org <alias>", "override org alias (defaults to workspace binding)")
|
|
106
|
+
.action(async (opts) => {
|
|
107
|
+
await wipCmd({
|
|
108
|
+
depth: opts.depth,
|
|
109
|
+
mode: opts.mode,
|
|
110
|
+
project: opts.project,
|
|
111
|
+
org: opts.org,
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
const snapshot = program
|
|
115
|
+
.command("snapshot")
|
|
116
|
+
.description("manage graph snapshots (list, create, diff, prune, delete)");
|
|
117
|
+
snapshot
|
|
118
|
+
.command("list")
|
|
119
|
+
.description("list snapshots for an org")
|
|
120
|
+
.option("--org <alias>", "Salesforce alias (defaults to workspace binding or `sf` default)")
|
|
121
|
+
.option("--project <path>", "override project root (defaults to CWD)")
|
|
122
|
+
.action(async (opts) => {
|
|
123
|
+
await snapshotListCmd({ org: opts.org, project: opts.project });
|
|
124
|
+
});
|
|
125
|
+
snapshot
|
|
126
|
+
.command("create")
|
|
127
|
+
.description("create a labeled snapshot of the current graph")
|
|
128
|
+
.requiredOption("--label <name>", "human-readable label")
|
|
129
|
+
.option("--kind <kind>", "manual | scheduled", "manual")
|
|
130
|
+
.option("--org <alias>", "Salesforce alias")
|
|
131
|
+
.option("--project <path>", "override project root")
|
|
132
|
+
.action(async (opts) => {
|
|
133
|
+
await snapshotCreateCmd({
|
|
134
|
+
label: opts.label,
|
|
135
|
+
kind: opts.kind,
|
|
136
|
+
org: opts.org,
|
|
137
|
+
project: opts.project,
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
snapshot
|
|
141
|
+
.command("diff <fromId> <toId>")
|
|
142
|
+
.description("diff two snapshots (or a snapshot vs. 'current')")
|
|
143
|
+
.option("--org <alias>", "Salesforce alias")
|
|
144
|
+
.option("--project <path>", "override project root")
|
|
145
|
+
.action(async (fromId, toId, opts) => {
|
|
146
|
+
await snapshotDiffCmd({ fromId, toId, org: opts.org, project: opts.project });
|
|
147
|
+
});
|
|
148
|
+
snapshot
|
|
149
|
+
.command("prune")
|
|
150
|
+
.description("delete auto-snapshots older than --retain-days")
|
|
151
|
+
.requiredOption("--retain-days <n>", "retention window in days", (v) => Number.parseInt(v, 10))
|
|
152
|
+
.option("--org <alias>", "Salesforce alias")
|
|
153
|
+
.option("--project <path>", "override project root")
|
|
154
|
+
.action(async (opts) => {
|
|
155
|
+
await snapshotPruneCmd({
|
|
156
|
+
retainDays: opts.retainDays,
|
|
157
|
+
org: opts.org,
|
|
158
|
+
project: opts.project,
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
snapshot
|
|
162
|
+
.command("delete <snapshotId>")
|
|
163
|
+
.description("delete a single snapshot by id")
|
|
164
|
+
.option("--org <alias>", "Salesforce alias")
|
|
165
|
+
.option("--project <path>", "override project root")
|
|
166
|
+
.action(async (snapshotId, opts) => {
|
|
167
|
+
await snapshotDeleteCmd({ snapshotId, org: opts.org, project: opts.project });
|
|
168
|
+
});
|
|
169
|
+
program
|
|
170
|
+
.command("rebuild-bindings")
|
|
171
|
+
.description("rebuild better-sqlite3's native binding for the current Node runtime (fixes 'bindings file not found' / ABI mismatch after Node upgrade or on a Node version without prebuilts)")
|
|
172
|
+
.option("--dry-run", "show what would be run without executing", false)
|
|
173
|
+
.option("--package-manager <pm>", "force npm | pnpm (auto-detected by default)")
|
|
174
|
+
.action(async (opts) => {
|
|
175
|
+
const { rebuildBindingsCmd } = await import("./commands/rebuild-bindings.js");
|
|
176
|
+
await rebuildBindingsCmd({
|
|
177
|
+
dryRun: opts.dryRun,
|
|
178
|
+
...(opts.packageManager ? { packageManager: opts.packageManager } : {}),
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
program
|
|
182
|
+
.command("doctor")
|
|
183
|
+
.description("diagnose sfgraph install (Node ABI, better-sqlite3 binding, data dir, org DBs, sf CLI, IDE MCP config)")
|
|
184
|
+
.action(async () => {
|
|
185
|
+
await doctorCmd();
|
|
186
|
+
});
|
|
187
|
+
program
|
|
188
|
+
.command("refresh-orgs")
|
|
189
|
+
.description("re-snapshot sf-CLI org state (aliases + default-org) so the MCP child sees the latest after a `sf org login` / alias change / `sf config set target-org`")
|
|
190
|
+
.action(async () => {
|
|
191
|
+
const { refreshOrgsCmd } = await import("./commands/refresh-orgs.js");
|
|
192
|
+
await refreshOrgsCmd();
|
|
193
|
+
});
|
|
194
|
+
program
|
|
195
|
+
.command("serve")
|
|
196
|
+
.description("start the local web visualiser for the ingested graph")
|
|
197
|
+
.option("--port <port>", "port to bind", "7777")
|
|
198
|
+
.option("--host <host>", "host to bind (default 127.0.0.1 — do not expose publicly)", "127.0.0.1")
|
|
199
|
+
.option("--no-open", "do not auto-open the browser")
|
|
200
|
+
.option("--i-understand-public-bind", "required acknowledgement when binding to a non-loopback host (the web API has no auth)", false)
|
|
201
|
+
.action(async (opts) => {
|
|
202
|
+
const { serveCmd } = await import("./commands/serve.js");
|
|
203
|
+
await serveCmd({
|
|
204
|
+
port: Number.parseInt(opts.port, 10) || 7777,
|
|
205
|
+
host: opts.host,
|
|
206
|
+
open: opts.open !== false,
|
|
207
|
+
iUnderstandPublicBind: Boolean(opts.iUnderstandPublicBind),
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
const telemetry = program.command("telemetry").description("manage local telemetry");
|
|
211
|
+
telemetry.command("status").action(async () => {
|
|
212
|
+
await statusCmd();
|
|
213
|
+
});
|
|
214
|
+
telemetry
|
|
215
|
+
.command("enable")
|
|
216
|
+
.option("--local", "use local file sink", false)
|
|
217
|
+
.action(async () => {
|
|
218
|
+
await enableLocalCmd();
|
|
219
|
+
});
|
|
220
|
+
telemetry.command("disable").action(async () => {
|
|
221
|
+
await disableCmd();
|
|
222
|
+
});
|
|
223
|
+
telemetry.command("preview").action(async () => {
|
|
224
|
+
await previewCmd();
|
|
225
|
+
});
|
|
226
|
+
telemetry.command("purge").action(async () => {
|
|
227
|
+
await purgeCmd();
|
|
228
|
+
});
|
|
229
|
+
telemetry.command("reset-id").action(async () => {
|
|
230
|
+
await resetIdCmd();
|
|
231
|
+
});
|
|
232
|
+
return program;
|
|
233
|
+
}
|
|
234
|
+
export async function run(argv) {
|
|
235
|
+
const program = buildProgram();
|
|
236
|
+
await program.parseAsync(argv);
|
|
237
|
+
}
|
|
238
|
+
export { getCliVersion };
|
|
239
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAMA,wBAAgB,aAAa,IAAI,MAAM,CAYtC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
export function getCliVersion() {
|
|
6
|
+
// dist/version.js → ../package.json
|
|
7
|
+
const candidates = [join(here, "..", "package.json"), join(here, "..", "..", "package.json")];
|
|
8
|
+
for (const p of candidates) {
|
|
9
|
+
try {
|
|
10
|
+
const pkg = JSON.parse(readFileSync(p, "utf8"));
|
|
11
|
+
if (pkg.version)
|
|
12
|
+
return pkg.version;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
// try next
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return "0.0.0";
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAErD,MAAM,UAAU,aAAa;IAC3B,oCAAoC;IACpC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9F,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC;YACxE,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,GAAG,CAAC,OAAO,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ryanstark24/sfgraph-cli",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"commander": "^12.0.0",
|
|
15
|
+
"@ryanstark24/sfgraph-core": "1.1.0",
|
|
16
|
+
"@ryanstark24/sfgraph-server": "1.1.0",
|
|
17
|
+
"@ryanstark24/sfgraph-web": "1.1.0",
|
|
18
|
+
"@ryanstark24/sfgraph-skills": "1.1.0",
|
|
19
|
+
"@ryanstark24/sfgraph-shared": "1.1.0"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@biomejs/biome": "^1.9.0",
|
|
23
|
+
"@types/node": "^22.0.0",
|
|
24
|
+
"typescript": "^5.6.0",
|
|
25
|
+
"vitest": "^3.2.4"
|
|
26
|
+
},
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "https://github.com/ryanStark24/sfgraph"
|
|
31
|
+
},
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=20"
|
|
34
|
+
},
|
|
35
|
+
"publishConfig": {
|
|
36
|
+
"access": "public"
|
|
37
|
+
},
|
|
38
|
+
"description": "sfgraph CLI: install, ingest, snapshot, telemetry",
|
|
39
|
+
"files": [
|
|
40
|
+
"dist",
|
|
41
|
+
"README.md"
|
|
42
|
+
],
|
|
43
|
+
"keywords": [
|
|
44
|
+
"salesforce",
|
|
45
|
+
"sfgraph",
|
|
46
|
+
"mcp",
|
|
47
|
+
"graph",
|
|
48
|
+
"apex",
|
|
49
|
+
"lwc",
|
|
50
|
+
"flow"
|
|
51
|
+
],
|
|
52
|
+
"scripts": {
|
|
53
|
+
"build": "tsc -p tsconfig.json",
|
|
54
|
+
"test": "vitest run",
|
|
55
|
+
"lint": "biome check src",
|
|
56
|
+
"lint:fix": "biome check --write src",
|
|
57
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
58
|
+
"clean": "rm -rf dist"
|
|
59
|
+
}
|
|
60
|
+
}
|