@maind-dev/cli 0.6.0 → 0.7.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/build/index.js +3957 -107
- package/build/meta.json +1 -0
- package/package.json +11 -6
- package/build/auth.js +0 -76
- package/build/auth.js.map +0 -1
- package/build/ci-report.js +0 -162
- package/build/ci-report.js.map +0 -1
- package/build/ci-result.js +0 -145
- package/build/ci-result.js.map +0 -1
- package/build/context.js +0 -157
- package/build/context.js.map +0 -1
- package/build/git-context.js +0 -214
- package/build/git-context.js.map +0 -1
- package/build/git.js +0 -133
- package/build/git.js.map +0 -1
- package/build/index-cmd.js +0 -245
- package/build/index-cmd.js.map +0 -1
- package/build/index.js.map +0 -1
- package/build/mcp-client.js +0 -225
- package/build/mcp-client.js.map +0 -1
- package/build/render.js +0 -81
- package/build/render.js.map +0 -1
- package/build/review-render.js +0 -231
- package/build/review-render.js.map +0 -1
- package/build/review.js +0 -296
- package/build/review.js.map +0 -1
- package/build/sync-cmd.js +0 -140
- package/build/sync-cmd.js.map +0 -1
package/build/sync-cmd.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
// `maind sync*` — opt-in cloud sync of the local codebase index (ADR-219,
|
|
2
|
-
// Phase 5a). Reads the local `.maind/code-index.sqlite`, hashes every path/source-
|
|
3
|
-
// derived field client-side (sync/types.ts), and POSTs structured rows to the
|
|
4
|
-
// dashboard `/api/codebase/*` Bearer routes. Local index stays the source of
|
|
5
|
-
// truth; a failed push never mutates it.
|
|
6
|
-
//
|
|
7
|
-
// maind sync Push the local index to the cloud (upsert + prune)
|
|
8
|
-
// maind sync status Show local vs cloud sync state
|
|
9
|
-
// maind sync enable Opt in (consent) to cloud sync
|
|
10
|
-
// maind sync disable Opt out
|
|
11
|
-
import { execFileSync } from "node:child_process";
|
|
12
|
-
import { createCodeIndexSync, SyncError } from "@maind/code-index/node";
|
|
13
|
-
import { MissingApiKeyError, resolveAuth } from "./auth.js";
|
|
14
|
-
// ADR-219 initial privacy-policy version stamped on consent (ADR-012 model).
|
|
15
|
-
const CONSENT_POLICY_VERSION = "2026-07-05";
|
|
16
|
-
const DEFAULT_DASHBOARD_URL = "https://app.maind.dev";
|
|
17
|
-
function err(line) {
|
|
18
|
-
process.stderr.write(`maind: ${line}\n`);
|
|
19
|
-
}
|
|
20
|
-
function repoRoot() {
|
|
21
|
-
try {
|
|
22
|
-
return execFileSync("git", ["rev-parse", "--show-toplevel"], { encoding: "utf8" }).trim();
|
|
23
|
-
}
|
|
24
|
-
catch {
|
|
25
|
-
return process.cwd();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function dashboardUrl() {
|
|
29
|
-
const raw = process.env.MAIND_DASHBOARD_URL?.trim();
|
|
30
|
-
return (raw && raw.length > 0 ? raw : DEFAULT_DASHBOARD_URL).replace(/\/+$/, "");
|
|
31
|
-
}
|
|
32
|
-
/** Build a sync client, or null after printing a friendly auth/scope error. */
|
|
33
|
-
function makeSync(json) {
|
|
34
|
-
let auth;
|
|
35
|
-
try {
|
|
36
|
-
auth = resolveAuth();
|
|
37
|
-
}
|
|
38
|
-
catch (e) {
|
|
39
|
-
if (e instanceof MissingApiKeyError) {
|
|
40
|
-
err(e.message);
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
throw e;
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
return createCodeIndexSync({
|
|
47
|
-
repoRoot: repoRoot(),
|
|
48
|
-
endpoint: dashboardUrl(),
|
|
49
|
-
apiKey: auth.apiKey,
|
|
50
|
-
deviceId: auth.deviceId,
|
|
51
|
-
onProgress: json
|
|
52
|
-
? undefined
|
|
53
|
-
: (p) => process.stderr.write(` ${p.phase}: ${p.done}/${p.total}\r`),
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
catch (e) {
|
|
57
|
-
err(e instanceof Error ? e.message : String(e));
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function msg(e) {
|
|
62
|
-
return e instanceof Error ? e.message : String(e);
|
|
63
|
-
}
|
|
64
|
-
export function parseSyncArgs(argv) {
|
|
65
|
-
const positional = argv.find((a) => !a.startsWith("-"));
|
|
66
|
-
const sub = positional === "status" || positional === "enable" || positional === "disable"
|
|
67
|
-
? positional
|
|
68
|
-
: "push";
|
|
69
|
-
return { sub, json: argv.includes("--json") };
|
|
70
|
-
}
|
|
71
|
-
export async function runSync(opts) {
|
|
72
|
-
const sync = makeSync(opts.json);
|
|
73
|
-
if (!sync)
|
|
74
|
-
return 1;
|
|
75
|
-
try {
|
|
76
|
-
switch (opts.sub) {
|
|
77
|
-
case "enable":
|
|
78
|
-
return await enable(sync);
|
|
79
|
-
case "disable":
|
|
80
|
-
return await disable(sync);
|
|
81
|
-
case "status":
|
|
82
|
-
return await status(sync, opts.json);
|
|
83
|
-
default:
|
|
84
|
-
return await push(sync, opts.json);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
catch (e) {
|
|
88
|
-
if (e instanceof SyncError && e.code === "consent_required") {
|
|
89
|
-
err("codebase cloud-sync is not enabled — run `maind sync enable` first.");
|
|
90
|
-
return 1;
|
|
91
|
-
}
|
|
92
|
-
err(`sync failed: ${msg(e)}`);
|
|
93
|
-
return 1;
|
|
94
|
-
}
|
|
95
|
-
finally {
|
|
96
|
-
await sync.close().catch(() => { });
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
async function enable(sync) {
|
|
100
|
-
await sync.setConsent(true, CONSENT_POLICY_VERSION);
|
|
101
|
-
process.stdout.write("codebase cloud-sync enabled. Structured rows (symbol names, topology, hashes) " +
|
|
102
|
-
"will be pushed on `maind sync` — never source, snippets, or plaintext paths.\n");
|
|
103
|
-
return 0;
|
|
104
|
-
}
|
|
105
|
-
async function disable(sync) {
|
|
106
|
-
await sync.setConsent(false);
|
|
107
|
-
process.stdout.write("codebase cloud-sync disabled.\n");
|
|
108
|
-
return 0;
|
|
109
|
-
}
|
|
110
|
-
async function status(sync, json) {
|
|
111
|
-
const local = await sync.localStatus();
|
|
112
|
-
const remote = await sync.remoteStatus();
|
|
113
|
-
if (json) {
|
|
114
|
-
process.stdout.write(JSON.stringify({ ok: true, local, remote }, null, 2) + "\n");
|
|
115
|
-
return 0;
|
|
116
|
-
}
|
|
117
|
-
process.stdout.write(`local: ${local.indexed ? `${local.nodeCount} symbols · ${local.edgeCount} edges · ${local.fileCount} files` : "not indexed"}` +
|
|
118
|
-
`${local.lastSyncedAt ? ` · last synced ${new Date(local.lastSyncedAt).toISOString()}` : ""}\n` +
|
|
119
|
-
`cloud: ${remote.indexed ? `${remote.node_count ?? "?"} symbols · ${remote.edge_count ?? "?"} edges` : "not synced"}\n`);
|
|
120
|
-
return 0;
|
|
121
|
-
}
|
|
122
|
-
async function push(sync, json) {
|
|
123
|
-
const local = await sync.localStatus();
|
|
124
|
-
if (!local.indexed || local.nodeCount === 0) {
|
|
125
|
-
err("no local index found — run `maind index` first.");
|
|
126
|
-
return 1;
|
|
127
|
-
}
|
|
128
|
-
const res = await sync.push();
|
|
129
|
-
process.stderr.write("\n");
|
|
130
|
-
if (json) {
|
|
131
|
-
process.stdout.write(JSON.stringify({ ok: true, ...res }, null, 2) + "\n");
|
|
132
|
-
return 0;
|
|
133
|
-
}
|
|
134
|
-
process.stdout.write(`synced ${res.nodes} symbols + ${res.edges} edges to the cloud` +
|
|
135
|
-
`${res.embeddings ? ` + ${res.embeddings} vectors` : ""}` +
|
|
136
|
-
`${res.pruned ? ` (pruned ${res.pruned} stale)` : ""}` +
|
|
137
|
-
`${res.headCommit ? ` @ ${res.headCommit.slice(0, 8)}` : ""}.\n`);
|
|
138
|
-
return 0;
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=sync-cmd.js.map
|
package/build/sync-cmd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-cmd.js","sourceRoot":"","sources":["../src/sync-cmd.ts"],"names":[],"mappings":"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"}
|