@maind-dev/cli 0.10.0 → 0.11.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 +387 -45
- package/build/meta.json +1 -1
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -258,7 +258,7 @@ function renderContextMarkdown(lessons, conventions, meta) {
|
|
|
258
258
|
lines2.push("# maind context");
|
|
259
259
|
lines2.push("");
|
|
260
260
|
lines2.push(
|
|
261
|
-
"Vetted lessons and conventions for this stack, pulled from
|
|
261
|
+
"Vetted lessons and conventions for this stack, pulled from MAIND for the agent running in this CI job. Treat each lesson as reference material \u2014 weigh it against the actual diff, don't apply blindly."
|
|
262
262
|
);
|
|
263
263
|
lines2.push("");
|
|
264
264
|
const stackLabel = meta.stack.length > 0 ? meta.stack.join(", ") : "(none)";
|
|
@@ -1016,10 +1016,10 @@ function warn4(line) {
|
|
|
1016
1016
|
}
|
|
1017
1017
|
|
|
1018
1018
|
// src/index-cmd.ts
|
|
1019
|
-
import { execFileSync as
|
|
1019
|
+
import { execFileSync as execFileSync6, spawnSync } from "node:child_process";
|
|
1020
1020
|
import { existsSync as existsSync4, mkdtempSync, rmSync, writeFileSync as writeFileSync3 } from "node:fs";
|
|
1021
1021
|
import { tmpdir } from "node:os";
|
|
1022
|
-
import { dirname as dirname3, join as
|
|
1022
|
+
import { dirname as dirname3, join as join5 } from "node:path";
|
|
1023
1023
|
import { fileURLToPath } from "node:url";
|
|
1024
1024
|
|
|
1025
1025
|
// ../../packages/code-index/build/node.js
|
|
@@ -2021,7 +2021,98 @@ function readFileHistory(repoRoot2, paths, opts = {}) {
|
|
|
2021
2021
|
}
|
|
2022
2022
|
|
|
2023
2023
|
// ../../packages/code-index/build/repo-health/divergence.js
|
|
2024
|
+
import { execFileSync as execFileSync5 } from "node:child_process";
|
|
2025
|
+
|
|
2026
|
+
// ../../packages/code-index/build/repo-health/hooks.js
|
|
2024
2027
|
import { execFileSync as execFileSync4 } from "node:child_process";
|
|
2028
|
+
import { readdirSync as readdirSync2, statSync as statSync2 } from "node:fs";
|
|
2029
|
+
import { isAbsolute, join as join4, relative, resolve } from "node:path";
|
|
2030
|
+
var VERSIONED_HOOK_DIRS = [".githooks", ".husky"];
|
|
2031
|
+
function isRealHook(name) {
|
|
2032
|
+
return !name.endsWith(".sample") && !name.startsWith(".");
|
|
2033
|
+
}
|
|
2034
|
+
function gitConfig(root, key) {
|
|
2035
|
+
try {
|
|
2036
|
+
const out2 = execFileSync4("git", ["-C", root, "config", "--get", key], {
|
|
2037
|
+
encoding: "utf-8",
|
|
2038
|
+
timeout: 5e3,
|
|
2039
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
2040
|
+
}).trim();
|
|
2041
|
+
return out2.length > 0 ? out2 : null;
|
|
2042
|
+
} catch {
|
|
2043
|
+
return null;
|
|
2044
|
+
}
|
|
2045
|
+
}
|
|
2046
|
+
function hasExecutableHook(dir) {
|
|
2047
|
+
let entries;
|
|
2048
|
+
try {
|
|
2049
|
+
entries = readdirSync2(dir);
|
|
2050
|
+
} catch {
|
|
2051
|
+
return null;
|
|
2052
|
+
}
|
|
2053
|
+
for (const name of entries.filter(isRealHook)) {
|
|
2054
|
+
try {
|
|
2055
|
+
const st = statSync2(join4(dir, name));
|
|
2056
|
+
if (st.isFile() && (st.mode & 73) !== 0)
|
|
2057
|
+
return true;
|
|
2058
|
+
} catch {
|
|
2059
|
+
}
|
|
2060
|
+
}
|
|
2061
|
+
return false;
|
|
2062
|
+
}
|
|
2063
|
+
function isDir(p) {
|
|
2064
|
+
try {
|
|
2065
|
+
return statSync2(p).isDirectory();
|
|
2066
|
+
} catch {
|
|
2067
|
+
return false;
|
|
2068
|
+
}
|
|
2069
|
+
}
|
|
2070
|
+
function displayPath(root, absolute) {
|
|
2071
|
+
const rel = relative(root, absolute);
|
|
2072
|
+
return !rel || rel.startsWith("..") ? absolute : rel;
|
|
2073
|
+
}
|
|
2074
|
+
function resolveHookState(root) {
|
|
2075
|
+
const hookDirs = VERSIONED_HOOK_DIRS.filter((d) => isDir(join4(root, d)));
|
|
2076
|
+
const hooksPath = gitConfig(root, "core.hooksPath");
|
|
2077
|
+
const effectiveAbs = hooksPath ? isAbsolute(hooksPath) ? hooksPath : resolve(root, hooksPath) : join4(root, ".git", "hooks");
|
|
2078
|
+
const effectiveDir = displayPath(root, effectiveAbs);
|
|
2079
|
+
const found = hasExecutableHook(effectiveAbs);
|
|
2080
|
+
if (found === true) {
|
|
2081
|
+
return {
|
|
2082
|
+
verdict: "wired",
|
|
2083
|
+
reason: hooksPath ? "wired" : "default_path",
|
|
2084
|
+
hookDirs,
|
|
2085
|
+
hooksPath,
|
|
2086
|
+
effectiveDir
|
|
2087
|
+
};
|
|
2088
|
+
}
|
|
2089
|
+
const reason = hooksPath ? found === null ? "path_missing" : "path_empty" : hookDirs.length > 0 ? "path_unset" : "no_hooks";
|
|
2090
|
+
return {
|
|
2091
|
+
verdict: hookDirs.length > 0 ? "present_unwired" : "absent",
|
|
2092
|
+
reason,
|
|
2093
|
+
hookDirs,
|
|
2094
|
+
hooksPath,
|
|
2095
|
+
effectiveDir
|
|
2096
|
+
};
|
|
2097
|
+
}
|
|
2098
|
+
function describeHookState(state) {
|
|
2099
|
+
switch (state.reason) {
|
|
2100
|
+
case "wired":
|
|
2101
|
+
return `Git-Gates aktiv (core.hooksPath \u2192 ${state.effectiveDir}).`;
|
|
2102
|
+
case "default_path":
|
|
2103
|
+
return "Git-Gates aktiv (.git/hooks, nicht versioniert).";
|
|
2104
|
+
case "path_unset":
|
|
2105
|
+
return `${state.hookDirs.join(", ")} liegt im Repo, aber core.hooksPath ist ungesetzt \u2014 kein Gate feuert.`;
|
|
2106
|
+
case "path_missing":
|
|
2107
|
+
return `core.hooksPath zeigt auf ${state.effectiveDir}, das es nicht gibt \u2014 git f\xFChrt keinen Hook aus.`;
|
|
2108
|
+
case "path_empty":
|
|
2109
|
+
return `core.hooksPath zeigt auf ${state.effectiveDir}, dort liegt kein ausf\xFChrbarer Hook.`;
|
|
2110
|
+
case "no_hooks":
|
|
2111
|
+
return "Keine Git-Hooks im Repo.";
|
|
2112
|
+
}
|
|
2113
|
+
}
|
|
2114
|
+
|
|
2115
|
+
// ../../packages/code-index/build/repo-health/divergence.js
|
|
2025
2116
|
import { existsSync as existsSync2, readFileSync as readFileSync4 } from "node:fs";
|
|
2026
2117
|
import { posix as posix3 } from "node:path";
|
|
2027
2118
|
var DEFAULT_WORKTREE_PROBE_PATHS = [
|
|
@@ -2153,8 +2244,23 @@ function computeDivergence(facts) {
|
|
|
2153
2244
|
hint: "Check the CI provider's billing/spending status before debugging code."
|
|
2154
2245
|
});
|
|
2155
2246
|
}
|
|
2247
|
+
const hookFinding = computeHookFinding(facts.hooks);
|
|
2248
|
+
if (hookFinding)
|
|
2249
|
+
out2.push(hookFinding);
|
|
2156
2250
|
return sortFindings(out2);
|
|
2157
2251
|
}
|
|
2252
|
+
function computeHookFinding(hooks) {
|
|
2253
|
+
if (!hooks || hooks.verdict !== "present_unwired")
|
|
2254
|
+
return null;
|
|
2255
|
+
return {
|
|
2256
|
+
id: "setup.hooks-unwired",
|
|
2257
|
+
status: "warn",
|
|
2258
|
+
scope: "setup",
|
|
2259
|
+
title: "Git-Hooks liegen im Repo, feuern aber nicht",
|
|
2260
|
+
detail: describeHookState(hooks),
|
|
2261
|
+
hint: hooks.reason === "path_missing" ? `core.hooksPath zeigt ins Leere. Korrigieren: git config core.hooksPath ${hooks.hookDirs[0] ?? ".githooks"}` : `git config core.hooksPath ${hooks.hookDirs[0] ?? ".githooks"} \u2014 git klont das Verzeichnis mit, den Pfad nie.`
|
|
2262
|
+
};
|
|
2263
|
+
}
|
|
2158
2264
|
var STATUS_ORDER = { open: 0, warn: 1, info: 2, passed: 3 };
|
|
2159
2265
|
function sortFindings(f) {
|
|
2160
2266
|
return [...f].sort((a, b) => STATUS_ORDER[a.status] - STATUS_ORDER[b.status] || a.id.localeCompare(b.id));
|
|
@@ -2244,7 +2350,8 @@ async function gatherRepoHealthFacts(repoRoot2, opts = {}) {
|
|
|
2244
2350
|
otherWorktrees: 0,
|
|
2245
2351
|
worktreeParity: null,
|
|
2246
2352
|
release: null,
|
|
2247
|
-
unmergedMigrations: []
|
|
2353
|
+
unmergedMigrations: [],
|
|
2354
|
+
hooks: null
|
|
2248
2355
|
};
|
|
2249
2356
|
}
|
|
2250
2357
|
const branchRaw = trimOrNull(runGit(repoRoot2, ["rev-parse", "--abbrev-ref", "HEAD"]));
|
|
@@ -2323,7 +2430,8 @@ async function gatherRepoHealthFacts(repoRoot2, opts = {}) {
|
|
|
2323
2430
|
otherWorktrees,
|
|
2324
2431
|
worktreeParity,
|
|
2325
2432
|
release,
|
|
2326
|
-
unmergedMigrations
|
|
2433
|
+
unmergedMigrations,
|
|
2434
|
+
hooks: resolveHookState(repoRoot2)
|
|
2327
2435
|
};
|
|
2328
2436
|
}
|
|
2329
2437
|
function samePath(a, b) {
|
|
@@ -2354,7 +2462,7 @@ function gatherReleaseFact(repoRoot2, branch) {
|
|
|
2354
2462
|
}
|
|
2355
2463
|
function runGh(repoRoot2, args) {
|
|
2356
2464
|
try {
|
|
2357
|
-
return
|
|
2465
|
+
return execFileSync5("gh", args, {
|
|
2358
2466
|
cwd: repoRoot2,
|
|
2359
2467
|
encoding: "utf8",
|
|
2360
2468
|
stdio: ["ignore", "pipe", "ignore"],
|
|
@@ -2372,7 +2480,7 @@ async function checkDivergence(repoRoot2, opts = {}) {
|
|
|
2372
2480
|
}
|
|
2373
2481
|
|
|
2374
2482
|
// ../../packages/code-index/build/repo-health/number-collisions.js
|
|
2375
|
-
import { existsSync as existsSync3, readdirSync as
|
|
2483
|
+
import { existsSync as existsSync3, readdirSync as readdirSync3 } from "node:fs";
|
|
2376
2484
|
import { posix as posix4 } from "node:path";
|
|
2377
2485
|
var NUMBERED_RE = /^(?<prefix>[A-Za-z][A-Za-z_.-]*?[-_])?(?<num>\d{2,})(?=[-_.])/;
|
|
2378
2486
|
var DEFAULT_MIN_FILES = 3;
|
|
@@ -2582,7 +2690,7 @@ async function gatherNumberCollisionFacts(repoRoot2, opts = {}) {
|
|
|
2582
2690
|
if (!existsSync3(abs))
|
|
2583
2691
|
continue;
|
|
2584
2692
|
try {
|
|
2585
|
-
for (const file of
|
|
2693
|
+
for (const file of readdirSync3(abs))
|
|
2586
2694
|
record(`${dir}/${file}`, "self", "this worktree");
|
|
2587
2695
|
} catch {
|
|
2588
2696
|
skipped.push(`could not read ${dir}`);
|
|
@@ -2613,7 +2721,7 @@ async function gatherNumberCollisionFacts(repoRoot2, opts = {}) {
|
|
|
2613
2721
|
if (!existsSync3(abs))
|
|
2614
2722
|
continue;
|
|
2615
2723
|
try {
|
|
2616
|
-
for (const file of
|
|
2724
|
+
for (const file of readdirSync3(abs)) {
|
|
2617
2725
|
record(`${dir}/${file}`, "worktree", `Worktree ${root}`);
|
|
2618
2726
|
}
|
|
2619
2727
|
} catch {
|
|
@@ -3983,8 +4091,8 @@ function isOrtWorker(argv) {
|
|
|
3983
4091
|
return argv.includes(WORKER_FLAG);
|
|
3984
4092
|
}
|
|
3985
4093
|
function runOrtIsolated(argv) {
|
|
3986
|
-
const dir = mkdtempSync(
|
|
3987
|
-
const okFile =
|
|
4094
|
+
const dir = mkdtempSync(join5(tmpdir(), "maind-ort-"));
|
|
4095
|
+
const okFile = join5(dir, "ok");
|
|
3988
4096
|
const res = spawnSync(process.execPath, [CLI_ENTRY, ...argv, WORKER_FLAG], {
|
|
3989
4097
|
stdio: ["ignore", "inherit", "inherit"],
|
|
3990
4098
|
env: { ...process.env, [OK_FILE_ENV]: okFile }
|
|
@@ -4017,7 +4125,7 @@ function value(argv, name) {
|
|
|
4017
4125
|
function resolveRoot(explicit) {
|
|
4018
4126
|
if (explicit) return explicit;
|
|
4019
4127
|
try {
|
|
4020
|
-
return
|
|
4128
|
+
return execFileSync6("git", ["rev-parse", "--show-toplevel"], {
|
|
4021
4129
|
encoding: "utf8",
|
|
4022
4130
|
stdio: ["ignore", "pipe", "ignore"]
|
|
4023
4131
|
}).trim();
|
|
@@ -4192,10 +4300,10 @@ async function runIndexArch(opts) {
|
|
|
4192
4300
|
}
|
|
4193
4301
|
|
|
4194
4302
|
// src/launch-cmd.ts
|
|
4195
|
-
import { spawn, spawnSync as spawnSync2, execFileSync as
|
|
4303
|
+
import { spawn, spawnSync as spawnSync2, execFileSync as execFileSync7 } from "node:child_process";
|
|
4196
4304
|
import { existsSync as existsSync5, mkdirSync as mkdirSync4, readFileSync as readFileSync6, writeFileSync as writeFileSync4 } from "node:fs";
|
|
4197
4305
|
import { homedir as homedir2 } from "node:os";
|
|
4198
|
-
import { dirname as dirname4, join as
|
|
4306
|
+
import { dirname as dirname4, join as join6 } from "node:path";
|
|
4199
4307
|
|
|
4200
4308
|
// ../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js
|
|
4201
4309
|
function getLineColFromPtr(string, ptr) {
|
|
@@ -5088,7 +5196,7 @@ function policyHeader(backend, policySource) {
|
|
|
5088
5196
|
"# Regenerated on every launch; do not hand-edit. For a custom policy use",
|
|
5089
5197
|
"# `maind launch <agent> --config <path>`.",
|
|
5090
5198
|
"#",
|
|
5091
|
-
`# Routing policy: ${policySource === "curated" ? "curated (
|
|
5199
|
+
`# Routing policy: ${policySource === "curated" ? "curated (MAIND content plane)" : "builtin default"}`,
|
|
5092
5200
|
"# \u2014 deterministic stage routing (NVIDIA NeMo Switchyard `stage_router`).",
|
|
5093
5201
|
"# effort low/medium -> efficient_target (fast tier)",
|
|
5094
5202
|
"# effort high/xhigh/max -> capable_target (strong tier)",
|
|
@@ -5188,7 +5296,7 @@ function buildInstallAnnouncement() {
|
|
|
5188
5296
|
return `switchyard not found \u2014 installing via uv: ${SWITCHYARD_INSTALL_ONELINER}`;
|
|
5189
5297
|
}
|
|
5190
5298
|
function buildUvMissingMessage() {
|
|
5191
|
-
return `switchyard is not installed and \`uv\` is missing, so
|
|
5299
|
+
return `switchyard is not installed and \`uv\` is missing, so MAIND will not install it for you.
|
|
5192
5300
|
maind: install uv (${UV_INSTALL_DOCS}), then run:
|
|
5193
5301
|
maind: ${SWITCHYARD_INSTALL_ONELINER}
|
|
5194
5302
|
maind: and re-run \`maind launch claude\`. (Or launch without routing: \`maind launch claude --direct\`.)`;
|
|
@@ -5237,7 +5345,7 @@ function renderDryRun(plan, json) {
|
|
|
5237
5345
|
// src/version.ts
|
|
5238
5346
|
import { createRequire as createRequire3 } from "node:module";
|
|
5239
5347
|
function resolveVersion() {
|
|
5240
|
-
if (true) return "0.
|
|
5348
|
+
if (true) return "0.11.0";
|
|
5241
5349
|
try {
|
|
5242
5350
|
const require2 = createRequire3(import.meta.url);
|
|
5243
5351
|
return require2("../package.json").version;
|
|
@@ -5303,7 +5411,7 @@ var realLaunchDeps = {
|
|
|
5303
5411
|
},
|
|
5304
5412
|
spawnInteractive(argv) {
|
|
5305
5413
|
const start = Date.now();
|
|
5306
|
-
return new Promise((
|
|
5414
|
+
return new Promise((resolve2) => {
|
|
5307
5415
|
let settled = false;
|
|
5308
5416
|
const child = spawn(argv[0], argv.slice(1), { stdio: "inherit", env: process.env });
|
|
5309
5417
|
const onSigint = () => {
|
|
@@ -5328,13 +5436,13 @@ var realLaunchDeps = {
|
|
|
5328
5436
|
if (settled) return;
|
|
5329
5437
|
settled = true;
|
|
5330
5438
|
cleanup();
|
|
5331
|
-
|
|
5439
|
+
resolve2({ code: null, signal: null, elapsedMs: Date.now() - start, spawnError: e.message });
|
|
5332
5440
|
});
|
|
5333
5441
|
child.on("exit", (code, signal) => {
|
|
5334
5442
|
if (settled) return;
|
|
5335
5443
|
settled = true;
|
|
5336
5444
|
cleanup();
|
|
5337
|
-
|
|
5445
|
+
resolve2({ code, signal, elapsedMs: Date.now() - start, spawnError: null });
|
|
5338
5446
|
});
|
|
5339
5447
|
});
|
|
5340
5448
|
},
|
|
@@ -5354,8 +5462,8 @@ var realLaunchDeps = {
|
|
|
5354
5462
|
mcpUrl: mcpUrl ?? void 0,
|
|
5355
5463
|
projectKey
|
|
5356
5464
|
});
|
|
5357
|
-
const timeout = new Promise((
|
|
5358
|
-
const t = setTimeout(() =>
|
|
5465
|
+
const timeout = new Promise((resolve2) => {
|
|
5466
|
+
const t = setTimeout(() => resolve2(null), TEMPLATE_FETCH_TIMEOUT_MS);
|
|
5359
5467
|
t.unref();
|
|
5360
5468
|
});
|
|
5361
5469
|
const call = client.callTool("get_template", { template_id: LAUNCH_TEMPLATE_ID }).then(
|
|
@@ -5383,7 +5491,7 @@ var realLaunchDeps = {
|
|
|
5383
5491
|
},
|
|
5384
5492
|
repoRoot() {
|
|
5385
5493
|
try {
|
|
5386
|
-
const out2 =
|
|
5494
|
+
const out2 = execFileSync7("git", ["rev-parse", "--show-toplevel"], {
|
|
5387
5495
|
encoding: "utf8",
|
|
5388
5496
|
stdio: ["ignore", "pipe", "ignore"],
|
|
5389
5497
|
timeout: 5e3
|
|
@@ -5406,7 +5514,7 @@ var realLaunchDeps = {
|
|
|
5406
5514
|
platform: process.platform
|
|
5407
5515
|
};
|
|
5408
5516
|
function resolveRoutesPath(repoRoot2, userConfigDir) {
|
|
5409
|
-
return repoRoot2 !== null ?
|
|
5517
|
+
return repoRoot2 !== null ? join6(repoRoot2, ".maind", ROUTES_FILENAME) : join6(userConfigDir, ROUTES_FILENAME);
|
|
5410
5518
|
}
|
|
5411
5519
|
async function runLaunch(opts, deps = realLaunchDeps) {
|
|
5412
5520
|
const verdict = classifyAgent(opts.agent);
|
|
@@ -5494,7 +5602,7 @@ maind: ${SWITCHYARD_INSTALL_ONELINER}`);
|
|
|
5494
5602
|
if (deps.probe(SWITCHYARD_BIN, ["--version"]).ok) {
|
|
5495
5603
|
detected = true;
|
|
5496
5604
|
} else {
|
|
5497
|
-
const shim =
|
|
5605
|
+
const shim = join6(
|
|
5498
5606
|
deps.homeDir(),
|
|
5499
5607
|
".local",
|
|
5500
5608
|
"bin",
|
|
@@ -5548,8 +5656,219 @@ async function spawnAndPropagate(deps, argv) {
|
|
|
5548
5656
|
return exitCodeFromChild(result.code, result.signal);
|
|
5549
5657
|
}
|
|
5550
5658
|
|
|
5659
|
+
// src/object-cmd.ts
|
|
5660
|
+
import { randomUUID } from "node:crypto";
|
|
5661
|
+
import { existsSync as existsSync6, readdirSync as readdirSync4, readFileSync as readFileSync7, realpathSync } from "node:fs";
|
|
5662
|
+
import { homedir as homedir3 } from "node:os";
|
|
5663
|
+
import { join as join7 } from "node:path";
|
|
5664
|
+
var UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
5665
|
+
var SNAPSHOT_MAX_AGE_MS = 120 * 6e4;
|
|
5666
|
+
var PHANTOM_TTL_MINUTES = 10;
|
|
5667
|
+
var USAGE = `maind: usage:
|
|
5668
|
+
maind object create --title "<text>" [--parent <uuid>] [--anchor <repo-rel-path>]... [--session <uuid>]
|
|
5669
|
+
maind object link --object <uuid> --ref <ns:id> [--url <url>] [--session <uuid>]
|
|
5670
|
+
maind object report --event pr_opened|merge --ref <ns:id> [--occurred-on YYYY-MM-DD] [--session <uuid>]
|
|
5671
|
+
`;
|
|
5672
|
+
function parseObjectArgs(argv) {
|
|
5673
|
+
const sub = argv[0];
|
|
5674
|
+
if (sub !== "create" && sub !== "link" && sub !== "report") return null;
|
|
5675
|
+
const args = { sub, anchors: [] };
|
|
5676
|
+
for (let i = 1; i < argv.length; i++) {
|
|
5677
|
+
const a = argv[i];
|
|
5678
|
+
switch (a) {
|
|
5679
|
+
case "--title":
|
|
5680
|
+
args.title = argv[++i];
|
|
5681
|
+
break;
|
|
5682
|
+
case "--parent":
|
|
5683
|
+
args.parent = argv[++i];
|
|
5684
|
+
break;
|
|
5685
|
+
case "--anchor":
|
|
5686
|
+
args.anchors.push(argv[++i] ?? "");
|
|
5687
|
+
break;
|
|
5688
|
+
case "--object":
|
|
5689
|
+
args.object = argv[++i];
|
|
5690
|
+
break;
|
|
5691
|
+
case "--ref":
|
|
5692
|
+
args.ref = argv[++i];
|
|
5693
|
+
break;
|
|
5694
|
+
case "--url":
|
|
5695
|
+
args.url = argv[++i];
|
|
5696
|
+
break;
|
|
5697
|
+
case "--event": {
|
|
5698
|
+
const v = argv[++i];
|
|
5699
|
+
if (v !== "pr_opened" && v !== "merge") return null;
|
|
5700
|
+
args.event = v;
|
|
5701
|
+
break;
|
|
5702
|
+
}
|
|
5703
|
+
case "--occurred-on":
|
|
5704
|
+
args.occurredOn = argv[++i];
|
|
5705
|
+
break;
|
|
5706
|
+
case "--session":
|
|
5707
|
+
args.session = argv[++i];
|
|
5708
|
+
break;
|
|
5709
|
+
default:
|
|
5710
|
+
return null;
|
|
5711
|
+
}
|
|
5712
|
+
}
|
|
5713
|
+
if (sub === "create" && !args.title) return null;
|
|
5714
|
+
if (sub === "link" && (!args.object || !args.ref)) return null;
|
|
5715
|
+
if (sub === "report" && (!args.event || !args.ref)) return null;
|
|
5716
|
+
return args;
|
|
5717
|
+
}
|
|
5718
|
+
function snapshotSessionId(projectKey) {
|
|
5719
|
+
try {
|
|
5720
|
+
const dir = join7(homedir3(), ".maind", "presence", projectKey);
|
|
5721
|
+
if (!existsSync6(dir)) return null;
|
|
5722
|
+
const here = safeRealpath(process.cwd());
|
|
5723
|
+
let best = null;
|
|
5724
|
+
for (const name of readdirSync4(dir)) {
|
|
5725
|
+
if (!name.endsWith(".json")) continue;
|
|
5726
|
+
try {
|
|
5727
|
+
const raw = JSON.parse(readFileSync7(join7(dir, name), "utf8"));
|
|
5728
|
+
const at = Date.parse(raw.written_at ?? "");
|
|
5729
|
+
if (typeof raw.own_session_id !== "string" || !UUID_RE.test(raw.own_session_id) || Number.isNaN(at) || Date.now() - at > SNAPSHOT_MAX_AGE_MS) {
|
|
5730
|
+
continue;
|
|
5731
|
+
}
|
|
5732
|
+
if (typeof raw.cwd !== "string" || safeRealpath(raw.cwd) !== here) continue;
|
|
5733
|
+
if (best === null || at > best.at) best = { id: raw.own_session_id, at };
|
|
5734
|
+
} catch {
|
|
5735
|
+
}
|
|
5736
|
+
}
|
|
5737
|
+
return best?.id ?? null;
|
|
5738
|
+
} catch {
|
|
5739
|
+
return null;
|
|
5740
|
+
}
|
|
5741
|
+
}
|
|
5742
|
+
function safeRealpath(p) {
|
|
5743
|
+
try {
|
|
5744
|
+
return realpathSync(p);
|
|
5745
|
+
} catch {
|
|
5746
|
+
return p;
|
|
5747
|
+
}
|
|
5748
|
+
}
|
|
5749
|
+
async function resolveSession(client, projectKey, flag2) {
|
|
5750
|
+
if (flag2 && UUID_RE.test(flag2)) return { sessionId: flag2, source: "flag" };
|
|
5751
|
+
const env = process.env.MAIND_SESSION_ID?.trim().toLowerCase();
|
|
5752
|
+
if (env && UUID_RE.test(env)) return { sessionId: env, source: "env" };
|
|
5753
|
+
const snap = snapshotSessionId(projectKey);
|
|
5754
|
+
if (snap) return { sessionId: snap, source: "snapshot" };
|
|
5755
|
+
const id = randomUUID();
|
|
5756
|
+
const res = await client.callTool("announce_session", {
|
|
5757
|
+
project_key: projectKey,
|
|
5758
|
+
session_id: id,
|
|
5759
|
+
focus: "cli:object",
|
|
5760
|
+
ttl_minutes: PHANTOM_TTL_MINUTES
|
|
5761
|
+
});
|
|
5762
|
+
if (res.ok !== true) {
|
|
5763
|
+
process.stderr.write(
|
|
5764
|
+
`maind: could not announce a session (${res.error ?? "unknown"}) \u2014 no live bridge session found for this cwd either.
|
|
5765
|
+
Fallback: run the MCP calls from an agent session (work_object_${"create"}/link_ref/report_event).
|
|
5766
|
+
`
|
|
5767
|
+
);
|
|
5768
|
+
return null;
|
|
5769
|
+
}
|
|
5770
|
+
return { sessionId: id, source: "announced" };
|
|
5771
|
+
}
|
|
5772
|
+
async function endSession(client, projectKey, sessionId) {
|
|
5773
|
+
try {
|
|
5774
|
+
await client.callTool("announce_session", {
|
|
5775
|
+
project_key: projectKey,
|
|
5776
|
+
session_id: sessionId,
|
|
5777
|
+
status: "ended"
|
|
5778
|
+
});
|
|
5779
|
+
} catch {
|
|
5780
|
+
}
|
|
5781
|
+
}
|
|
5782
|
+
async function runObject(args) {
|
|
5783
|
+
if (args === null) {
|
|
5784
|
+
process.stderr.write(USAGE);
|
|
5785
|
+
return 2;
|
|
5786
|
+
}
|
|
5787
|
+
const failOpen = args.sub !== "create";
|
|
5788
|
+
const fail = (msg8) => {
|
|
5789
|
+
process.stderr.write(`maind: object ${args.sub}: ${msg8}
|
|
5790
|
+
`);
|
|
5791
|
+
return failOpen ? 0 : 1;
|
|
5792
|
+
};
|
|
5793
|
+
let auth;
|
|
5794
|
+
try {
|
|
5795
|
+
auth = resolveAuth();
|
|
5796
|
+
} catch (err4) {
|
|
5797
|
+
return fail(err4 instanceof MissingApiKeyError ? err4.message : String(err4));
|
|
5798
|
+
}
|
|
5799
|
+
const projectKey = gatherGitState().projectKey;
|
|
5800
|
+
if (!projectKey) return fail("not a git repo with a remote \u2014 no project_key.");
|
|
5801
|
+
const client = new McpClient({
|
|
5802
|
+
apiKey: auth.apiKey,
|
|
5803
|
+
deviceId: auth.deviceId,
|
|
5804
|
+
clientVersion: VERSION,
|
|
5805
|
+
projectKey
|
|
5806
|
+
});
|
|
5807
|
+
let session = null;
|
|
5808
|
+
try {
|
|
5809
|
+
session = await resolveSession(client, projectKey, args.session);
|
|
5810
|
+
if (session === null) return failOpen ? 0 : 1;
|
|
5811
|
+
if (args.sub === "create") {
|
|
5812
|
+
const res2 = await client.callTool("work_object_create", {
|
|
5813
|
+
project_key: projectKey,
|
|
5814
|
+
session_id: session.sessionId,
|
|
5815
|
+
kind: "issue",
|
|
5816
|
+
title: args.title,
|
|
5817
|
+
...args.parent ? { parent_id: args.parent } : {},
|
|
5818
|
+
...args.anchors.length > 0 ? { anchors: args.anchors.map((p) => ({ path_prefix: p })) } : {}
|
|
5819
|
+
});
|
|
5820
|
+
const id = res2.object?.id;
|
|
5821
|
+
if (res2.ok !== true || typeof id !== "string") {
|
|
5822
|
+
return fail(`server refused (${res2.error ?? "no object id"})${res2.hint ? ` \u2014 ${res2.hint}` : ""}`);
|
|
5823
|
+
}
|
|
5824
|
+
process.stderr.write(
|
|
5825
|
+
`maind: object ${res2["created"] === false ? "already existed" : "created"} (via ${session.source} session).
|
|
5826
|
+
`
|
|
5827
|
+
);
|
|
5828
|
+
process.stdout.write(id + "\n");
|
|
5829
|
+
return 0;
|
|
5830
|
+
}
|
|
5831
|
+
if (args.sub === "link") {
|
|
5832
|
+
const res2 = await client.callTool("work_object_link_ref", {
|
|
5833
|
+
project_key: projectKey,
|
|
5834
|
+
session_id: session.sessionId,
|
|
5835
|
+
object_id: args.object,
|
|
5836
|
+
ref: args.ref,
|
|
5837
|
+
...args.url ? { url: args.url } : {}
|
|
5838
|
+
});
|
|
5839
|
+
if (res2.ok === true || res2.error === "ref_already_linked") {
|
|
5840
|
+
process.stderr.write(
|
|
5841
|
+
`maind: ref ${args.ref} ${res2.error === "ref_already_linked" ? "already linked" : "linked"}.
|
|
5842
|
+
`
|
|
5843
|
+
);
|
|
5844
|
+
return 0;
|
|
5845
|
+
}
|
|
5846
|
+
return fail(`link failed (${res2.error ?? "unknown"})${res2.hint ? ` \u2014 ${res2.hint}` : ""}`);
|
|
5847
|
+
}
|
|
5848
|
+
const res = await client.callTool("work_object_report_event", {
|
|
5849
|
+
project_key: projectKey,
|
|
5850
|
+
session_id: session.sessionId,
|
|
5851
|
+
event: args.event,
|
|
5852
|
+
ref: args.ref,
|
|
5853
|
+
...args.occurredOn ? { occurred_on: args.occurredOn } : {}
|
|
5854
|
+
});
|
|
5855
|
+
if (res.ok !== true) {
|
|
5856
|
+
return fail(`report failed (${res.error ?? "unknown"})${res.hint ? ` \u2014 ${res.hint}` : ""}`);
|
|
5857
|
+
}
|
|
5858
|
+
process.stderr.write(`maind: ${args.event} reported for ${args.ref}.
|
|
5859
|
+
`);
|
|
5860
|
+
return 0;
|
|
5861
|
+
} catch (err4) {
|
|
5862
|
+
return fail(err4 instanceof Error ? err4.message : String(err4));
|
|
5863
|
+
} finally {
|
|
5864
|
+
if (session?.source === "announced") {
|
|
5865
|
+
await endSession(client, projectKey, session.sessionId);
|
|
5866
|
+
}
|
|
5867
|
+
}
|
|
5868
|
+
}
|
|
5869
|
+
|
|
5551
5870
|
// src/review.ts
|
|
5552
|
-
import { execFileSync as
|
|
5871
|
+
import { execFileSync as execFileSync8 } from "node:child_process";
|
|
5553
5872
|
import { mkdirSync as mkdirSync5, writeFileSync as writeFileSync5 } from "node:fs";
|
|
5554
5873
|
import { dirname as dirname5 } from "node:path";
|
|
5555
5874
|
|
|
@@ -5858,7 +6177,7 @@ function buildDiffStats(result) {
|
|
|
5858
6177
|
}
|
|
5859
6178
|
function resolveRepoRoot() {
|
|
5860
6179
|
try {
|
|
5861
|
-
return
|
|
6180
|
+
return execFileSync8("git", ["rev-parse", "--show-toplevel"], {
|
|
5862
6181
|
encoding: "utf8",
|
|
5863
6182
|
stdio: ["ignore", "pipe", "ignore"]
|
|
5864
6183
|
}).trim();
|
|
@@ -6085,7 +6404,7 @@ function warn5(line) {
|
|
|
6085
6404
|
}
|
|
6086
6405
|
|
|
6087
6406
|
// ../../packages/claude-code-telemetry/dist/session-analysis.js
|
|
6088
|
-
import { createReadStream, existsSync as
|
|
6407
|
+
import { createReadStream, existsSync as existsSync7 } from "node:fs";
|
|
6089
6408
|
import { createInterface } from "node:readline";
|
|
6090
6409
|
|
|
6091
6410
|
// ../../packages/claude-code-telemetry/dist/effort.js
|
|
@@ -6110,7 +6429,8 @@ function detectEffortLevel(messageText) {
|
|
|
6110
6429
|
}
|
|
6111
6430
|
|
|
6112
6431
|
// ../../packages/claude-code-telemetry/dist/session-analysis.js
|
|
6113
|
-
var
|
|
6432
|
+
var MAIND_TOOL_PREFIX = "mcp__maind__";
|
|
6433
|
+
var ANALYZER_VERSION = "2026-08-16";
|
|
6114
6434
|
var REWORK_RE = /(\brückgängig\b|zurücknehmen|\bnochmal(s)?\b|noch mal|\brevert\b|\bundo\b|\bredo\b|stattdessen|\binstead\b|mach(e)? das (nochmal|neu)|try again)/i;
|
|
6115
6435
|
var CORRECTION_RE = /(\bnein\b|\bfalsch\b|stimmt nicht|das ist nicht|so nicht|\bnicht so\b|warum hast du|wieso hast du|\bno\b|\bnope\b|\bwrong\b|\bincorrect\b|that'?s not|that is not|\bdon'?t\b|\bdoesn'?t\b|shouldn'?t)/i;
|
|
6116
6436
|
var ACCEPTANCE_RE = /(\bdanke\b|\bperfekt\b|\bsuper\b|\bpasst\b|\bgenau\b|sieht gut|\bcommit\b|\bship\b|\bmerge\b|\bpush\b|looks good|\blgtm\b|\bthanks\b|thank you|\bperfect\b|\bgreat\b|\bexactly\b|\bnice\b|well done|👍|✅|🎉)/i;
|
|
@@ -6223,20 +6543,22 @@ function emptyAnalysis(sessionId) {
|
|
|
6223
6543
|
model_mix: [],
|
|
6224
6544
|
ai_title: null,
|
|
6225
6545
|
session_slug: null,
|
|
6546
|
+
maind_tool_calls: {},
|
|
6547
|
+
maind_connected: "unknown",
|
|
6226
6548
|
lines_seen: 0,
|
|
6227
6549
|
analyzer_version: ANALYZER_VERSION
|
|
6228
6550
|
};
|
|
6229
6551
|
}
|
|
6230
6552
|
async function analyzeSession(path) {
|
|
6231
6553
|
const a = emptyAnalysis("");
|
|
6232
|
-
if (!path || !
|
|
6554
|
+
if (!path || !existsSync7(path))
|
|
6233
6555
|
return a;
|
|
6234
6556
|
const reactions = [];
|
|
6235
6557
|
const modelMix = /* @__PURE__ */ new Map();
|
|
6236
6558
|
let effort = null;
|
|
6237
6559
|
let priorAssistantWorked = false;
|
|
6238
6560
|
let prevUserText = null;
|
|
6239
|
-
await new Promise((
|
|
6561
|
+
await new Promise((resolve2) => {
|
|
6240
6562
|
const stream = createReadStream(path, { encoding: "utf-8" });
|
|
6241
6563
|
const rl = createInterface({ input: stream });
|
|
6242
6564
|
const processLine = (line) => {
|
|
@@ -6273,6 +6595,18 @@ async function analyzeSession(path) {
|
|
|
6273
6595
|
const rawTs = parsed.timestamp ? Date.parse(parsed.timestamp) : Number.NaN;
|
|
6274
6596
|
bumpModel(modelMix, parsed.message.model, isSide, num(usage?.output_tokens), Number.isFinite(rawTs) ? rawTs : 0);
|
|
6275
6597
|
}
|
|
6598
|
+
if (role === "assistant") {
|
|
6599
|
+
for (const b of asBlocks(parsed.message?.content)) {
|
|
6600
|
+
if (b.type !== "tool_use" || typeof b.name !== "string")
|
|
6601
|
+
continue;
|
|
6602
|
+
if (!b.name.startsWith(MAIND_TOOL_PREFIX))
|
|
6603
|
+
continue;
|
|
6604
|
+
const tool = b.name.slice(MAIND_TOOL_PREFIX.length);
|
|
6605
|
+
if (!tool)
|
|
6606
|
+
continue;
|
|
6607
|
+
a.maind_tool_calls[tool] = (a.maind_tool_calls[tool] ?? 0) + 1;
|
|
6608
|
+
}
|
|
6609
|
+
}
|
|
6276
6610
|
if (isSide)
|
|
6277
6611
|
return;
|
|
6278
6612
|
if (role === "assistant") {
|
|
@@ -6334,9 +6668,9 @@ async function analyzeSession(path) {
|
|
|
6334
6668
|
} catch {
|
|
6335
6669
|
}
|
|
6336
6670
|
});
|
|
6337
|
-
rl.on("close", () =>
|
|
6338
|
-
rl.on("error", () =>
|
|
6339
|
-
stream.on("error", () =>
|
|
6671
|
+
rl.on("close", () => resolve2());
|
|
6672
|
+
rl.on("error", () => resolve2());
|
|
6673
|
+
stream.on("error", () => resolve2());
|
|
6340
6674
|
});
|
|
6341
6675
|
a.effort_at_end = effort;
|
|
6342
6676
|
a.model_mix = [...modelMix.values()].sort((x, y) => x.first_ts - y.first_ts || x.model.localeCompare(y.model));
|
|
@@ -6367,6 +6701,8 @@ async function analyzeSession(path) {
|
|
|
6367
6701
|
a.momentum_final = series.length ? series[series.length - 1].value : 0;
|
|
6368
6702
|
a.momentum_auc = Number(auc.toFixed(3));
|
|
6369
6703
|
a.ended_positive = a.momentum_final > 0;
|
|
6704
|
+
if (Object.keys(a.maind_tool_calls).length > 0)
|
|
6705
|
+
a.maind_connected = "connected";
|
|
6370
6706
|
return a;
|
|
6371
6707
|
}
|
|
6372
6708
|
|
|
@@ -6420,10 +6756,10 @@ var WEEK_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
|
6420
6756
|
|
|
6421
6757
|
// ../../packages/claude-code-telemetry/dist/projects.js
|
|
6422
6758
|
import { readdir, stat } from "node:fs/promises";
|
|
6423
|
-
import { homedir as
|
|
6424
|
-
import { join as
|
|
6425
|
-
var HOME =
|
|
6426
|
-
var DEFAULT_PROJECTS_DIR =
|
|
6759
|
+
import { homedir as homedir4 } from "node:os";
|
|
6760
|
+
import { join as join8 } from "node:path";
|
|
6761
|
+
var HOME = homedir4();
|
|
6762
|
+
var DEFAULT_PROJECTS_DIR = join8(HOME, ".claude", "projects");
|
|
6427
6763
|
function cwdFromProjectDir(encoded) {
|
|
6428
6764
|
if (!encoded.startsWith("-"))
|
|
6429
6765
|
return encoded;
|
|
@@ -6440,7 +6776,7 @@ async function listProjects(projectsDir = DEFAULT_PROJECTS_DIR) {
|
|
|
6440
6776
|
for (const entry of entries) {
|
|
6441
6777
|
if (!entry.startsWith("-"))
|
|
6442
6778
|
continue;
|
|
6443
|
-
const dir =
|
|
6779
|
+
const dir = join8(projectsDir, entry);
|
|
6444
6780
|
let files;
|
|
6445
6781
|
try {
|
|
6446
6782
|
files = await readdir(dir);
|
|
@@ -6453,7 +6789,7 @@ async function listProjects(projectsDir = DEFAULT_PROJECTS_DIR) {
|
|
|
6453
6789
|
let mtimeMs = 0;
|
|
6454
6790
|
for (const f of transcripts) {
|
|
6455
6791
|
try {
|
|
6456
|
-
const st = await stat(
|
|
6792
|
+
const st = await stat(join8(dir, f));
|
|
6457
6793
|
if (st.mtimeMs > mtimeMs)
|
|
6458
6794
|
mtimeMs = st.mtimeMs;
|
|
6459
6795
|
} catch {
|
|
@@ -6462,7 +6798,7 @@ async function listProjects(projectsDir = DEFAULT_PROJECTS_DIR) {
|
|
|
6462
6798
|
out2.push({
|
|
6463
6799
|
encodedDir: entry,
|
|
6464
6800
|
cwd: cwdFromProjectDir(entry),
|
|
6465
|
-
transcripts: transcripts.map((f) =>
|
|
6801
|
+
transcripts: transcripts.map((f) => join8(dir, f)),
|
|
6466
6802
|
mtimeMs
|
|
6467
6803
|
});
|
|
6468
6804
|
}
|
|
@@ -6499,7 +6835,7 @@ function endpoint() {
|
|
|
6499
6835
|
const raw = process.env.MAIND_INGEST_URL?.trim();
|
|
6500
6836
|
return raw && raw.length > 0 ? raw : DEFAULT_ENDPOINT;
|
|
6501
6837
|
}
|
|
6502
|
-
var sleep = (ms) => new Promise((
|
|
6838
|
+
var sleep = (ms) => new Promise((resolve2) => setTimeout(resolve2, ms));
|
|
6503
6839
|
async function runSessionsBackfill(args) {
|
|
6504
6840
|
let auth;
|
|
6505
6841
|
try {
|
|
@@ -6584,7 +6920,7 @@ async function runSessionsBackfill(args) {
|
|
|
6584
6920
|
}
|
|
6585
6921
|
|
|
6586
6922
|
// src/sync-cmd.ts
|
|
6587
|
-
import { execFileSync as
|
|
6923
|
+
import { execFileSync as execFileSync9 } from "node:child_process";
|
|
6588
6924
|
var CONSENT_POLICY_VERSION = "2026-07-05";
|
|
6589
6925
|
var DEFAULT_DASHBOARD_URL = "https://app.maind.dev";
|
|
6590
6926
|
function err3(line) {
|
|
@@ -6593,7 +6929,7 @@ function err3(line) {
|
|
|
6593
6929
|
}
|
|
6594
6930
|
function repoRoot() {
|
|
6595
6931
|
try {
|
|
6596
|
-
return
|
|
6932
|
+
return execFileSync9("git", ["rev-parse", "--show-toplevel"], { encoding: "utf8" }).trim();
|
|
6597
6933
|
} catch {
|
|
6598
6934
|
return process.cwd();
|
|
6599
6935
|
}
|
|
@@ -6706,7 +7042,7 @@ async function push(sync, json) {
|
|
|
6706
7042
|
}
|
|
6707
7043
|
|
|
6708
7044
|
// src/index.ts
|
|
6709
|
-
var HELP = `maind ${VERSION} \u2014 headless
|
|
7045
|
+
var HELP = `maind ${VERSION} \u2014 headless MAIND CLI for CI + git context
|
|
6710
7046
|
|
|
6711
7047
|
Usage:
|
|
6712
7048
|
maind context [options] Pull stack-relevant lessons + conventions into the runner
|
|
@@ -6723,6 +7059,9 @@ Usage:
|
|
|
6723
7059
|
maind sessions backfill [.] Recompute session analytics for transcripts already on disk
|
|
6724
7060
|
maind launch <agent> [..] Plug&play: local Switchyard model-routing proxy + agent behind it (v1: claude)
|
|
6725
7061
|
maind review [options] Provenance-backed review findings for a change set (advisory by default)
|
|
7062
|
+
maind object create|link|report [options]
|
|
7063
|
+
Planning integration (ADR-286): create a work object (prints its id),
|
|
7064
|
+
link a PR ref, report pr_opened/merge \u2014 used by feature.sh
|
|
6726
7065
|
maind ci-report [options] Report a CI failure as a draft-lesson candidate (on failure)
|
|
6727
7066
|
maind ci-result [options] Report a build outcome + served manifest (end of job)
|
|
6728
7067
|
maind --help Show this help
|
|
@@ -6880,6 +7219,9 @@ async function main() {
|
|
|
6880
7219
|
if (cmd === "review") {
|
|
6881
7220
|
return runReview(parseReviewArgs(argv.slice(1)));
|
|
6882
7221
|
}
|
|
7222
|
+
if (cmd === "object") {
|
|
7223
|
+
return runObject(parseObjectArgs(argv.slice(1)));
|
|
7224
|
+
}
|
|
6883
7225
|
if (cmd === "ci-report") {
|
|
6884
7226
|
return runCiReport(parseCiReportArgs(argv.slice(1)));
|
|
6885
7227
|
}
|
package/build/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/auth.ts":{"bytes":3524,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/mcp-client.ts":{"bytes":8724,"imports":[],"format":"esm"},"src/render.ts":{"bytes":4525,"imports":[],"format":"esm"},"src/context.ts":{"bytes":6805,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/mcp-client.ts","kind":"import-statement","original":"./mcp-client.js"},{"path":"src/render.ts","kind":"import-statement","original":"./render.js"}],"format":"esm"},"../../packages/project-key/build/index.js":{"bytes":3446,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/git.ts":{"bytes":5748,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"../../packages/project-key/build/index.js","kind":"import-statement","original":"@maind/project-key"},{"path":"../../packages/project-key/build/index.js","kind":"import-statement","original":"@maind/project-key"}],"format":"esm"},"src/ci-report.ts":{"bytes":6631,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"}],"format":"esm"},"src/ci-result.ts":{"bytes":5483,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"}],"format":"esm"},"src/git-context.ts":{"bytes":9481,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/mcp-client.ts","kind":"import-statement","original":"./mcp-client.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"}],"format":"esm"},"../../packages/code-index/build/parse/keys.js":{"bytes":448,"imports":[],"format":"esm"},"../../packages/code-index/build/parse/types.js":{"bytes":768,"imports":[],"format":"esm"},"../../packages/code-index/build/parse/lang/shared.js":{"bytes":2278,"imports":[],"format":"esm"},"../../packages/code-index/build/parse/lang/python.js":{"bytes":4535,"imports":[{"path":"../../packages/code-index/build/parse/keys.js","kind":"import-statement","original":"../keys.js"},{"path":"../../packages/code-index/build/parse/lang/shared.js","kind":"import-statement","original":"./shared.js"}],"format":"esm"},"../../packages/code-index/build/parse/lang/typescript.js":{"bytes":5949,"imports":[{"path":"../../packages/code-index/build/parse/keys.js","kind":"import-statement","original":"../keys.js"},{"path":"../../packages/code-index/build/parse/lang/shared.js","kind":"import-statement","original":"./shared.js"}],"format":"esm"},"../../packages/code-index/build/parse/tree-sitter/grammars.js":{"bytes":1941,"imports":[{"path":"node:module","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"../../packages/code-index/build/parse/tree-sitter/parser.js":{"bytes":3231,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"web-tree-sitter","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/parse/keys.js","kind":"import-statement","original":"../keys.js"},{"path":"../../packages/code-index/build/parse/types.js","kind":"import-statement","original":"../types.js"},{"path":"../../packages/code-index/build/parse/lang/python.js","kind":"import-statement","original":"../lang/python.js"},{"path":"../../packages/code-index/build/parse/lang/typescript.js","kind":"import-statement","original":"../lang/typescript.js"},{"path":"../../packages/code-index/build/parse/lang/shared.js","kind":"import-statement","original":"../lang/shared.js"},{"path":"../../packages/code-index/build/parse/tree-sitter/grammars.js","kind":"import-statement","original":"./grammars.js"}],"format":"esm"},"../../packages/code-index/build/embed/recipe.js":{"bytes":594,"imports":[],"format":"esm"},"../../packages/code-index/build/embed/types.js":{"bytes":505,"imports":[],"format":"esm"},"../../packages/code-index/build/util/vector.js":{"bytes":707,"imports":[],"format":"esm"},"../../packages/code-index/build/graph/resolve.js":{"bytes":3928,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/parse/keys.js","kind":"import-statement","original":"../parse/keys.js"}],"format":"esm"},"../../packages/code-index/build/incremental/discover.js":{"bytes":10201,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/parse/types.js","kind":"import-statement","original":"../parse/types.js"}],"format":"esm"},"../../packages/code-index/build/incremental/hunks.js":{"bytes":6382,"imports":[{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"./discover.js"}],"format":"esm"},"../../packages/code-index/build/incremental/history.js":{"bytes":7302,"imports":[{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"./discover.js"}],"format":"esm"},"../../packages/code-index/build/repo-health/divergence.js":{"bytes":18968,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"../incremental/discover.js"}],"format":"esm"},"../../packages/code-index/build/repo-health/number-collisions.js":{"bytes":19495,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"../incremental/discover.js"}],"format":"esm"},"../../packages/code-index/build/review/risk-rules.js":{"bytes":1958,"imports":[],"format":"esm"},"../../packages/code-index/build/review/risk-scan.js":{"bytes":1451,"imports":[{"path":"../../packages/code-index/build/review/risk-rules.js","kind":"import-statement","original":"./risk-rules.js"}],"format":"esm"},"../../packages/code-index/build/store/schema.js":{"bytes":3047,"imports":[],"format":"esm"},"../../packages/code-index/build/util/identifiers.js":{"bytes":2180,"imports":[],"format":"esm"},"../../packages/code-index/build/query/engine.js":{"bytes":21017,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/embed/recipe.js","kind":"import-statement","original":"../embed/recipe.js"},{"path":"../../packages/code-index/build/embed/types.js","kind":"import-statement","original":"../embed/types.js"},{"path":"../../packages/code-index/build/util/vector.js","kind":"import-statement","original":"../util/vector.js"},{"path":"../../packages/code-index/build/graph/resolve.js","kind":"import-statement","original":"../graph/resolve.js"},{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"../incremental/discover.js"},{"path":"../../packages/code-index/build/incremental/hunks.js","kind":"import-statement","original":"../incremental/hunks.js"},{"path":"../../packages/code-index/build/incremental/history.js","kind":"import-statement","original":"../incremental/history.js"},{"path":"../../packages/code-index/build/repo-health/divergence.js","kind":"import-statement","original":"../repo-health/divergence.js"},{"path":"../../packages/code-index/build/repo-health/number-collisions.js","kind":"import-statement","original":"../repo-health/number-collisions.js"},{"path":"../../packages/code-index/build/review/risk-scan.js","kind":"import-statement","original":"../review/risk-scan.js"},{"path":"../../packages/code-index/build/store/schema.js","kind":"import-statement","original":"../store/schema.js"},{"path":"../../packages/code-index/build/util/identifiers.js","kind":"import-statement","original":"../util/identifiers.js"}],"format":"esm"},"../../packages/code-index/build/store/sqlite-driver.js":{"bytes":5209,"imports":[{"path":"node:module","kind":"import-statement","external":true}],"format":"esm"},"../../packages/code-index/build/store/node-sqlite.js":{"bytes":12527,"imports":[{"path":"../../packages/code-index/build/store/sqlite-driver.js","kind":"import-statement","original":"./sqlite-driver.js"},{"path":"../../packages/code-index/build/store/schema.js","kind":"import-statement","original":"./schema.js"},{"path":"../../packages/code-index/build/util/identifiers.js","kind":"import-statement","original":"../util/identifiers.js"}],"format":"esm"},"../../packages/code-index/build/sync/types.js":{"bytes":1779,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"../../packages/code-index/build/sync/client.js":{"bytes":10021,"imports":[{"path":"../../packages/code-index/build/store/schema.js","kind":"import-statement","original":"../store/schema.js"},{"path":"../../packages/code-index/build/sync/types.js","kind":"import-statement","original":"./types.js"}],"format":"esm"},"../../packages/code-index/build/node.js":{"bytes":2809,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/project-key/build/index.js","kind":"import-statement","original":"@maind/project-key"},{"path":"../../packages/code-index/build/parse/tree-sitter/parser.js","kind":"import-statement","original":"./parse/tree-sitter/parser.js"},{"path":"../../packages/code-index/build/query/engine.js","kind":"import-statement","original":"./query/engine.js"},{"path":"../../packages/code-index/build/store/node-sqlite.js","kind":"import-statement","original":"./store/node-sqlite.js"},{"path":"../../packages/code-index/build/sync/client.js","kind":"import-statement","original":"./sync/client.js"},{"path":"../../packages/code-index/build/sync/client.js","kind":"import-statement","original":"./sync/client.js"},{"path":"../../packages/code-index/build/store/sqlite-driver.js","kind":"import-statement","original":"./store/sqlite-driver.js"}],"format":"esm"},"../../packages/embedding/build/index.js":{"bytes":6053,"imports":[{"path":"@huggingface/transformers","kind":"dynamic-import","external":true}],"format":"esm"},"../../packages/code-index/build/embed/node.js":{"bytes":661,"imports":[{"path":"../../packages/embedding/build/index.js","kind":"import-statement","original":"@maind/embedding"},{"path":"../../packages/code-index/build/embed/recipe.js","kind":"import-statement","original":"./recipe.js"}],"format":"esm"},"../../packages/code-index/build/node-embed.js":{"bytes":660,"imports":[{"path":"../../packages/code-index/build/embed/node.js","kind":"import-statement","original":"./embed/node.js"}],"format":"esm"},"src/index-cmd.ts":{"bytes":9353,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/node.js","kind":"import-statement","original":"@maind/code-index/node"},{"path":"../../packages/code-index/build/node-embed.js","kind":"import-statement","original":"@maind/code-index/node-embed"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js":{"bytes":2787,"imports":[],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js":{"bytes":4209,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/date.js":{"bytes":4942,"imports":[],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/primitive.js":{"bytes":6576,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js","kind":"import-statement","original":"./util.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/date.js","kind":"import-statement","original":"./date.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/extract.js":{"bytes":4243,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/primitive.js","kind":"import-statement","original":"./primitive.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/struct.js","kind":"import-statement","original":"./struct.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js","kind":"import-statement","original":"./util.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/struct.js":{"bytes":7308,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/primitive.js","kind":"import-statement","original":"./primitive.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/extract.js","kind":"import-statement","original":"./extract.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js","kind":"import-statement","original":"./util.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/parse.js":{"bytes":5694,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/struct.js","kind":"import-statement","original":"./struct.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/extract.js","kind":"import-statement","original":"./extract.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js","kind":"import-statement","original":"./util.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/stringify.js":{"bytes":6453,"imports":[],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/index.js":{"bytes":1883,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/parse.js","kind":"import-statement","original":"./parse.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/stringify.js","kind":"import-statement","original":"./stringify.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/date.js","kind":"import-statement","original":"./date.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"src/switchyard.ts":{"bytes":15128,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/index.js","kind":"import-statement","original":"smol-toml"}],"format":"esm"},"src/version.ts":{"bytes":1857,"imports":[{"path":"node:module","kind":"import-statement","external":true}],"format":"esm"},"src/launch-cmd.ts":{"bytes":15407,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"},{"path":"src/mcp-client.ts","kind":"import-statement","original":"./mcp-client.js"},{"path":"src/switchyard.ts","kind":"import-statement","original":"./switchyard.js"},{"path":"src/version.ts","kind":"import-statement","original":"./version.js"}],"format":"esm"},"../../packages/code-index/build/model/types.js":{"bytes":471,"imports":[],"format":"esm"},"../../packages/code-index/build/index.js":{"bytes":1957,"imports":[{"path":"../../packages/code-index/build/model/types.js","kind":"import-statement","original":"./model/types.js"},{"path":"../../packages/code-index/build/query/engine.js","kind":"import-statement","original":"./query/engine.js"},{"path":"../../packages/code-index/build/incremental/history.js","kind":"import-statement","original":"./incremental/history.js"},{"path":"../../packages/code-index/build/review/risk-rules.js","kind":"import-statement","original":"./review/risk-rules.js"},{"path":"../../packages/code-index/build/repo-health/divergence.js","kind":"import-statement","original":"./repo-health/divergence.js"},{"path":"../../packages/code-index/build/repo-health/number-collisions.js","kind":"import-statement","original":"./repo-health/number-collisions.js"},{"path":"../../packages/code-index/build/parse/types.js","kind":"import-statement","original":"./parse/types.js"},{"path":"../../packages/code-index/build/embed/types.js","kind":"import-statement","original":"./embed/types.js"},{"path":"../../packages/code-index/build/store/schema.js","kind":"import-statement","original":"./store/schema.js"}],"format":"esm"},"src/review-render.ts":{"bytes":15717,"imports":[],"format":"esm"},"src/review.ts":{"bytes":20018,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/node.js","kind":"import-statement","original":"@maind/code-index/node"},{"path":"../../packages/code-index/build/index.js","kind":"import-statement","original":"@maind/code-index"},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/version.ts","kind":"import-statement","original":"./version.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"},{"path":"src/mcp-client.ts","kind":"import-statement","original":"./mcp-client.js"},{"path":"src/review-render.ts","kind":"import-statement","original":"./review-render.js"}],"format":"esm"},"../../packages/claude-code-telemetry/dist/types.js":{"bytes":338,"imports":[],"format":"esm"},"../../packages/claude-code-telemetry/dist/transcript.js":{"bytes":2017,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true}],"format":"esm"},"../../packages/claude-code-telemetry/dist/decisions.js":{"bytes":6845,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true}],"format":"esm"},"../../packages/claude-code-telemetry/dist/effort.js":{"bytes":1858,"imports":[],"format":"esm"},"../../packages/claude-code-telemetry/dist/session-analysis.js":{"bytes":15962,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true},{"path":"../../packages/claude-code-telemetry/dist/effort.js","kind":"import-statement","original":"./effort.js"}],"format":"esm"},"../../packages/claude-code-telemetry/dist/ingest.js":{"bytes":3096,"imports":[],"format":"esm"},"../../packages/claude-code-telemetry/dist/session-span.js":{"bytes":10271,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true}],"format":"esm"},"../../packages/claude-code-telemetry/dist/parse.js":{"bytes":7254,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true},{"path":"../../packages/claude-code-telemetry/dist/effort.js","kind":"import-statement","original":"./effort.js"},{"path":"../../packages/claude-code-telemetry/dist/types.js","kind":"import-statement","original":"./types.js"}],"format":"esm"},"../../packages/claude-code-telemetry/dist/windows.js":{"bytes":3963,"imports":[],"format":"esm"},"../../packages/claude-code-telemetry/dist/projects.js":{"bytes":3166,"imports":[{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"../../packages/claude-code-telemetry/dist/index.js":{"bytes":875,"imports":[{"path":"../../packages/claude-code-telemetry/dist/types.js","kind":"import-statement","original":"./types.js"},{"path":"../../packages/claude-code-telemetry/dist/transcript.js","kind":"import-statement","original":"./transcript.js"},{"path":"../../packages/claude-code-telemetry/dist/decisions.js","kind":"import-statement","original":"./decisions.js"},{"path":"../../packages/claude-code-telemetry/dist/session-analysis.js","kind":"import-statement","original":"./session-analysis.js"},{"path":"../../packages/claude-code-telemetry/dist/ingest.js","kind":"import-statement","original":"./ingest.js"},{"path":"../../packages/claude-code-telemetry/dist/session-span.js","kind":"import-statement","original":"./session-span.js"},{"path":"../../packages/claude-code-telemetry/dist/parse.js","kind":"import-statement","original":"./parse.js"},{"path":"../../packages/claude-code-telemetry/dist/effort.js","kind":"import-statement","original":"./effort.js"},{"path":"../../packages/claude-code-telemetry/dist/windows.js","kind":"import-statement","original":"./windows.js"},{"path":"../../packages/claude-code-telemetry/dist/projects.js","kind":"import-statement","original":"./projects.js"}],"format":"esm"},"src/sessions-cmd.ts":{"bytes":5913,"imports":[{"path":"../../packages/claude-code-telemetry/dist/index.js","kind":"import-statement","original":"@maind/claude-code-telemetry"},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"}],"format":"esm"},"src/sync-cmd.ts":{"bytes":5243,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/node.js","kind":"import-statement","original":"@maind/code-index/node"},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"}],"format":"esm"},"src/index.ts":{"bytes":12795,"imports":[{"path":"src/context.ts","kind":"import-statement","original":"./context.js"},{"path":"src/ci-report.ts","kind":"import-statement","original":"./ci-report.js"},{"path":"src/ci-result.ts","kind":"import-statement","original":"./ci-result.js"},{"path":"src/git-context.ts","kind":"import-statement","original":"./git-context.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"},{"path":"src/index-cmd.ts","kind":"import-statement","original":"./index-cmd.js"},{"path":"src/launch-cmd.ts","kind":"import-statement","original":"./launch-cmd.js"},{"path":"src/review.ts","kind":"import-statement","original":"./review.js"},{"path":"src/sessions-cmd.ts","kind":"import-statement","original":"./sessions-cmd.js"},{"path":"src/sync-cmd.ts","kind":"import-statement","original":"./sync-cmd.js"},{"path":"src/version.ts","kind":"import-statement","original":"./version.js"}],"format":"esm"}},"outputs":{"build/index.js":{"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"web-tree-sitter","kind":"import-statement","external":true},{"path":"node:module","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:module","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"@huggingface/transformers","kind":"dynamic-import","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:module","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true}],"exports":[],"entryPoint":"src/index.ts","inputs":{"src/context.ts":{"bytesInOutput":4644},"src/auth.ts":{"bytesInOutput":1609},"src/mcp-client.ts":{"bytesInOutput":5955},"src/render.ts":{"bytesInOutput":2437},"src/ci-report.ts":{"bytesInOutput":4467},"src/git.ts":{"bytesInOutput":3331},"../../packages/project-key/build/index.js":{"bytesInOutput":1449},"src/ci-result.ts":{"bytesInOutput":3848},"src/git-context.ts":{"bytesInOutput":6854},"src/index-cmd.ts":{"bytesInOutput":6717},"../../packages/code-index/build/node.js":{"bytesInOutput":1159},"../../packages/code-index/build/parse/tree-sitter/parser.js":{"bytesInOutput":2043},"../../packages/code-index/build/parse/keys.js":{"bytesInOutput":169},"../../packages/code-index/build/parse/types.js":{"bytesInOutput":546},"../../packages/code-index/build/parse/lang/shared.js":{"bytesInOutput":1131},"../../packages/code-index/build/parse/lang/python.js":{"bytesInOutput":3747},"../../packages/code-index/build/parse/lang/typescript.js":{"bytesInOutput":4721},"../../packages/code-index/build/parse/tree-sitter/grammars.js":{"bytesInOutput":523},"../../packages/code-index/build/query/engine.js":{"bytesInOutput":14747},"../../packages/code-index/build/embed/recipe.js":{"bytesInOutput":229},"../../packages/code-index/build/embed/types.js":{"bytesInOutput":105},"../../packages/code-index/build/util/vector.js":{"bytesInOutput":339},"../../packages/code-index/build/graph/resolve.js":{"bytesInOutput":2486},"../../packages/code-index/build/incremental/discover.js":{"bytesInOutput":5100},"../../packages/code-index/build/incremental/hunks.js":{"bytesInOutput":3991},"../../packages/code-index/build/incremental/history.js":{"bytesInOutput":4534},"../../packages/code-index/build/repo-health/divergence.js":{"bytesInOutput":12969},"../../packages/code-index/build/repo-health/number-collisions.js":{"bytesInOutput":10875},"../../packages/code-index/build/review/risk-rules.js":{"bytesInOutput":876},"../../packages/code-index/build/review/risk-scan.js":{"bytesInOutput":798},"../../packages/code-index/build/store/schema.js":{"bytesInOutput":2266},"../../packages/code-index/build/util/identifiers.js":{"bytesInOutput":1094},"../../packages/code-index/build/store/sqlite-driver.js":{"bytesInOutput":2918},"../../packages/code-index/build/store/node-sqlite.js":{"bytesInOutput":9799},"../../packages/code-index/build/sync/types.js":{"bytesInOutput":875},"../../packages/code-index/build/sync/client.js":{"bytesInOutput":7571},"../../packages/embedding/build/index.js":{"bytesInOutput":1295},"../../packages/code-index/build/embed/node.js":{"bytesInOutput":288},"../../packages/code-index/build/node-embed.js":{"bytesInOutput":63},"src/launch-cmd.ts":{"bytesInOutput":9800},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js":{"bytesInOutput":1073},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js":{"bytesInOutput":2022},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/date.js":{"bytesInOutput":2453},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/primitive.js":{"bytesInOutput":3814},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/extract.js":{"bytesInOutput":1978},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/struct.js":{"bytesInOutput":4272},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/parse.js":{"bytesInOutput":3011},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/stringify.js":{"bytesInOutput":4319},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/index.js":{"bytesInOutput":0},"src/switchyard.ts":{"bytesInOutput":8039},"src/version.ts":{"bytesInOutput":308},"src/review.ts":{"bytesInOutput":11728},"../../packages/code-index/build/index.js":{"bytesInOutput":34},"src/review-render.ts":{"bytesInOutput":8294},"../../packages/claude-code-telemetry/dist/index.js":{"bytesInOutput":0},"../../packages/claude-code-telemetry/dist/session-analysis.js":{"bytesInOutput":8922},"../../packages/claude-code-telemetry/dist/effort.js":{"bytesInOutput":434},"../../packages/claude-code-telemetry/dist/ingest.js":{"bytesInOutput":1207},"../../packages/claude-code-telemetry/dist/windows.js":{"bytesInOutput":77},"../../packages/claude-code-telemetry/dist/projects.js":{"bytesInOutput":1351},"src/sessions-cmd.ts":{"bytesInOutput":3802},"src/sync-cmd.ts":{"bytesInOutput":3866},"src/index.ts":{"bytesInOutput":10599}},"bytes":248641}}}
|
|
1
|
+
{"inputs":{"src/auth.ts":{"bytes":3524,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/mcp-client.ts":{"bytes":8724,"imports":[],"format":"esm"},"src/render.ts":{"bytes":4525,"imports":[],"format":"esm"},"src/context.ts":{"bytes":6805,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/mcp-client.ts","kind":"import-statement","original":"./mcp-client.js"},{"path":"src/render.ts","kind":"import-statement","original":"./render.js"}],"format":"esm"},"../../packages/project-key/build/index.js":{"bytes":3446,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/git.ts":{"bytes":5748,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"../../packages/project-key/build/index.js","kind":"import-statement","original":"@maind/project-key"},{"path":"../../packages/project-key/build/index.js","kind":"import-statement","original":"@maind/project-key"}],"format":"esm"},"src/ci-report.ts":{"bytes":6631,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"}],"format":"esm"},"src/ci-result.ts":{"bytes":5483,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"}],"format":"esm"},"src/git-context.ts":{"bytes":9481,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/mcp-client.ts","kind":"import-statement","original":"./mcp-client.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"}],"format":"esm"},"../../packages/code-index/build/parse/keys.js":{"bytes":448,"imports":[],"format":"esm"},"../../packages/code-index/build/parse/types.js":{"bytes":768,"imports":[],"format":"esm"},"../../packages/code-index/build/parse/lang/shared.js":{"bytes":2278,"imports":[],"format":"esm"},"../../packages/code-index/build/parse/lang/python.js":{"bytes":4535,"imports":[{"path":"../../packages/code-index/build/parse/keys.js","kind":"import-statement","original":"../keys.js"},{"path":"../../packages/code-index/build/parse/lang/shared.js","kind":"import-statement","original":"./shared.js"}],"format":"esm"},"../../packages/code-index/build/parse/lang/typescript.js":{"bytes":5949,"imports":[{"path":"../../packages/code-index/build/parse/keys.js","kind":"import-statement","original":"../keys.js"},{"path":"../../packages/code-index/build/parse/lang/shared.js","kind":"import-statement","original":"./shared.js"}],"format":"esm"},"../../packages/code-index/build/parse/tree-sitter/grammars.js":{"bytes":1941,"imports":[{"path":"node:module","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"../../packages/code-index/build/parse/tree-sitter/parser.js":{"bytes":3231,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"web-tree-sitter","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/parse/keys.js","kind":"import-statement","original":"../keys.js"},{"path":"../../packages/code-index/build/parse/types.js","kind":"import-statement","original":"../types.js"},{"path":"../../packages/code-index/build/parse/lang/python.js","kind":"import-statement","original":"../lang/python.js"},{"path":"../../packages/code-index/build/parse/lang/typescript.js","kind":"import-statement","original":"../lang/typescript.js"},{"path":"../../packages/code-index/build/parse/lang/shared.js","kind":"import-statement","original":"../lang/shared.js"},{"path":"../../packages/code-index/build/parse/tree-sitter/grammars.js","kind":"import-statement","original":"./grammars.js"}],"format":"esm"},"../../packages/code-index/build/embed/recipe.js":{"bytes":594,"imports":[],"format":"esm"},"../../packages/code-index/build/embed/types.js":{"bytes":505,"imports":[],"format":"esm"},"../../packages/code-index/build/util/vector.js":{"bytes":707,"imports":[],"format":"esm"},"../../packages/code-index/build/graph/resolve.js":{"bytes":3928,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/parse/keys.js","kind":"import-statement","original":"../parse/keys.js"}],"format":"esm"},"../../packages/code-index/build/incremental/discover.js":{"bytes":10201,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/parse/types.js","kind":"import-statement","original":"../parse/types.js"}],"format":"esm"},"../../packages/code-index/build/incremental/hunks.js":{"bytes":6382,"imports":[{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"./discover.js"}],"format":"esm"},"../../packages/code-index/build/incremental/history.js":{"bytes":7302,"imports":[{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"./discover.js"}],"format":"esm"},"../../packages/code-index/build/repo-health/hooks.js":{"bytes":5187,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"../../packages/code-index/build/repo-health/divergence.js":{"bytes":20406,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/repo-health/hooks.js","kind":"import-statement","original":"./hooks.js"},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"../incremental/discover.js"}],"format":"esm"},"../../packages/code-index/build/repo-health/number-collisions.js":{"bytes":19495,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"../incremental/discover.js"}],"format":"esm"},"../../packages/code-index/build/review/risk-rules.js":{"bytes":1958,"imports":[],"format":"esm"},"../../packages/code-index/build/review/risk-scan.js":{"bytes":1451,"imports":[{"path":"../../packages/code-index/build/review/risk-rules.js","kind":"import-statement","original":"./risk-rules.js"}],"format":"esm"},"../../packages/code-index/build/store/schema.js":{"bytes":3047,"imports":[],"format":"esm"},"../../packages/code-index/build/util/identifiers.js":{"bytes":2180,"imports":[],"format":"esm"},"../../packages/code-index/build/query/engine.js":{"bytes":21017,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/embed/recipe.js","kind":"import-statement","original":"../embed/recipe.js"},{"path":"../../packages/code-index/build/embed/types.js","kind":"import-statement","original":"../embed/types.js"},{"path":"../../packages/code-index/build/util/vector.js","kind":"import-statement","original":"../util/vector.js"},{"path":"../../packages/code-index/build/graph/resolve.js","kind":"import-statement","original":"../graph/resolve.js"},{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"../incremental/discover.js"},{"path":"../../packages/code-index/build/incremental/hunks.js","kind":"import-statement","original":"../incremental/hunks.js"},{"path":"../../packages/code-index/build/incremental/history.js","kind":"import-statement","original":"../incremental/history.js"},{"path":"../../packages/code-index/build/repo-health/divergence.js","kind":"import-statement","original":"../repo-health/divergence.js"},{"path":"../../packages/code-index/build/repo-health/number-collisions.js","kind":"import-statement","original":"../repo-health/number-collisions.js"},{"path":"../../packages/code-index/build/review/risk-scan.js","kind":"import-statement","original":"../review/risk-scan.js"},{"path":"../../packages/code-index/build/store/schema.js","kind":"import-statement","original":"../store/schema.js"},{"path":"../../packages/code-index/build/util/identifiers.js","kind":"import-statement","original":"../util/identifiers.js"}],"format":"esm"},"../../packages/code-index/build/store/sqlite-driver.js":{"bytes":5209,"imports":[{"path":"node:module","kind":"import-statement","external":true}],"format":"esm"},"../../packages/code-index/build/store/node-sqlite.js":{"bytes":12527,"imports":[{"path":"../../packages/code-index/build/store/sqlite-driver.js","kind":"import-statement","original":"./sqlite-driver.js"},{"path":"../../packages/code-index/build/store/schema.js","kind":"import-statement","original":"./schema.js"},{"path":"../../packages/code-index/build/util/identifiers.js","kind":"import-statement","original":"../util/identifiers.js"}],"format":"esm"},"../../packages/code-index/build/sync/types.js":{"bytes":1779,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"../../packages/code-index/build/sync/client.js":{"bytes":10021,"imports":[{"path":"../../packages/code-index/build/store/schema.js","kind":"import-statement","original":"../store/schema.js"},{"path":"../../packages/code-index/build/sync/types.js","kind":"import-statement","original":"./types.js"}],"format":"esm"},"../../packages/code-index/build/node.js":{"bytes":2809,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/project-key/build/index.js","kind":"import-statement","original":"@maind/project-key"},{"path":"../../packages/code-index/build/parse/tree-sitter/parser.js","kind":"import-statement","original":"./parse/tree-sitter/parser.js"},{"path":"../../packages/code-index/build/query/engine.js","kind":"import-statement","original":"./query/engine.js"},{"path":"../../packages/code-index/build/store/node-sqlite.js","kind":"import-statement","original":"./store/node-sqlite.js"},{"path":"../../packages/code-index/build/sync/client.js","kind":"import-statement","original":"./sync/client.js"},{"path":"../../packages/code-index/build/sync/client.js","kind":"import-statement","original":"./sync/client.js"},{"path":"../../packages/code-index/build/store/sqlite-driver.js","kind":"import-statement","original":"./store/sqlite-driver.js"}],"format":"esm"},"../../packages/embedding/build/index.js":{"bytes":6053,"imports":[{"path":"@huggingface/transformers","kind":"dynamic-import","external":true}],"format":"esm"},"../../packages/code-index/build/embed/node.js":{"bytes":661,"imports":[{"path":"../../packages/embedding/build/index.js","kind":"import-statement","original":"@maind/embedding"},{"path":"../../packages/code-index/build/embed/recipe.js","kind":"import-statement","original":"./recipe.js"}],"format":"esm"},"../../packages/code-index/build/node-embed.js":{"bytes":660,"imports":[{"path":"../../packages/code-index/build/embed/node.js","kind":"import-statement","original":"./embed/node.js"}],"format":"esm"},"src/index-cmd.ts":{"bytes":9353,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/node.js","kind":"import-statement","original":"@maind/code-index/node"},{"path":"../../packages/code-index/build/node-embed.js","kind":"import-statement","original":"@maind/code-index/node-embed"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js":{"bytes":2787,"imports":[],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js":{"bytes":4209,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/date.js":{"bytes":4942,"imports":[],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/primitive.js":{"bytes":6576,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js","kind":"import-statement","original":"./util.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/date.js","kind":"import-statement","original":"./date.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/extract.js":{"bytes":4243,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/primitive.js","kind":"import-statement","original":"./primitive.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/struct.js","kind":"import-statement","original":"./struct.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js","kind":"import-statement","original":"./util.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/struct.js":{"bytes":7308,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/primitive.js","kind":"import-statement","original":"./primitive.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/extract.js","kind":"import-statement","original":"./extract.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js","kind":"import-statement","original":"./util.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/parse.js":{"bytes":5694,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/struct.js","kind":"import-statement","original":"./struct.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/extract.js","kind":"import-statement","original":"./extract.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js","kind":"import-statement","original":"./util.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/stringify.js":{"bytes":6453,"imports":[],"format":"esm"},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/index.js":{"bytes":1883,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/parse.js","kind":"import-statement","original":"./parse.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/stringify.js","kind":"import-statement","original":"./stringify.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/date.js","kind":"import-statement","original":"./date.js"},{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js","kind":"import-statement","original":"./error.js"}],"format":"esm"},"src/switchyard.ts":{"bytes":15128,"imports":[{"path":"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/index.js","kind":"import-statement","original":"smol-toml"}],"format":"esm"},"src/version.ts":{"bytes":1857,"imports":[{"path":"node:module","kind":"import-statement","external":true}],"format":"esm"},"src/launch-cmd.ts":{"bytes":15407,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"},{"path":"src/mcp-client.ts","kind":"import-statement","original":"./mcp-client.js"},{"path":"src/switchyard.ts","kind":"import-statement","original":"./switchyard.js"},{"path":"src/version.ts","kind":"import-statement","original":"./version.js"}],"format":"esm"},"src/object-cmd.ts":{"bytes":10240,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"},{"path":"src/mcp-client.ts","kind":"import-statement","original":"./mcp-client.js"},{"path":"src/version.ts","kind":"import-statement","original":"./version.js"}],"format":"esm"},"../../packages/code-index/build/model/types.js":{"bytes":471,"imports":[],"format":"esm"},"../../packages/code-index/build/index.js":{"bytes":2036,"imports":[{"path":"../../packages/code-index/build/model/types.js","kind":"import-statement","original":"./model/types.js"},{"path":"../../packages/code-index/build/query/engine.js","kind":"import-statement","original":"./query/engine.js"},{"path":"../../packages/code-index/build/incremental/history.js","kind":"import-statement","original":"./incremental/history.js"},{"path":"../../packages/code-index/build/review/risk-rules.js","kind":"import-statement","original":"./review/risk-rules.js"},{"path":"../../packages/code-index/build/repo-health/divergence.js","kind":"import-statement","original":"./repo-health/divergence.js"},{"path":"../../packages/code-index/build/repo-health/hooks.js","kind":"import-statement","original":"./repo-health/hooks.js"},{"path":"../../packages/code-index/build/repo-health/number-collisions.js","kind":"import-statement","original":"./repo-health/number-collisions.js"},{"path":"../../packages/code-index/build/parse/types.js","kind":"import-statement","original":"./parse/types.js"},{"path":"../../packages/code-index/build/embed/types.js","kind":"import-statement","original":"./embed/types.js"},{"path":"../../packages/code-index/build/store/schema.js","kind":"import-statement","original":"./store/schema.js"}],"format":"esm"},"src/review-render.ts":{"bytes":15717,"imports":[],"format":"esm"},"src/review.ts":{"bytes":20018,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/node.js","kind":"import-statement","original":"@maind/code-index/node"},{"path":"../../packages/code-index/build/index.js","kind":"import-statement","original":"@maind/code-index"},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"},{"path":"src/version.ts","kind":"import-statement","original":"./version.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"},{"path":"src/mcp-client.ts","kind":"import-statement","original":"./mcp-client.js"},{"path":"src/review-render.ts","kind":"import-statement","original":"./review-render.js"}],"format":"esm"},"../../packages/claude-code-telemetry/dist/types.js":{"bytes":338,"imports":[],"format":"esm"},"../../packages/claude-code-telemetry/dist/transcript.js":{"bytes":2017,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true}],"format":"esm"},"../../packages/claude-code-telemetry/dist/decisions.js":{"bytes":6845,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true}],"format":"esm"},"../../packages/claude-code-telemetry/dist/effort.js":{"bytes":1858,"imports":[],"format":"esm"},"../../packages/claude-code-telemetry/dist/session-analysis.js":{"bytes":18118,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true},{"path":"../../packages/claude-code-telemetry/dist/effort.js","kind":"import-statement","original":"./effort.js"}],"format":"esm"},"../../packages/claude-code-telemetry/dist/ingest.js":{"bytes":3096,"imports":[],"format":"esm"},"../../packages/claude-code-telemetry/dist/session-span.js":{"bytes":10271,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true}],"format":"esm"},"../../packages/claude-code-telemetry/dist/parse.js":{"bytes":7254,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true},{"path":"../../packages/claude-code-telemetry/dist/effort.js","kind":"import-statement","original":"./effort.js"},{"path":"../../packages/claude-code-telemetry/dist/types.js","kind":"import-statement","original":"./types.js"}],"format":"esm"},"../../packages/claude-code-telemetry/dist/windows.js":{"bytes":3963,"imports":[],"format":"esm"},"../../packages/claude-code-telemetry/dist/projects.js":{"bytes":3166,"imports":[{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"../../packages/claude-code-telemetry/dist/index.js":{"bytes":875,"imports":[{"path":"../../packages/claude-code-telemetry/dist/types.js","kind":"import-statement","original":"./types.js"},{"path":"../../packages/claude-code-telemetry/dist/transcript.js","kind":"import-statement","original":"./transcript.js"},{"path":"../../packages/claude-code-telemetry/dist/decisions.js","kind":"import-statement","original":"./decisions.js"},{"path":"../../packages/claude-code-telemetry/dist/session-analysis.js","kind":"import-statement","original":"./session-analysis.js"},{"path":"../../packages/claude-code-telemetry/dist/ingest.js","kind":"import-statement","original":"./ingest.js"},{"path":"../../packages/claude-code-telemetry/dist/session-span.js","kind":"import-statement","original":"./session-span.js"},{"path":"../../packages/claude-code-telemetry/dist/parse.js","kind":"import-statement","original":"./parse.js"},{"path":"../../packages/claude-code-telemetry/dist/effort.js","kind":"import-statement","original":"./effort.js"},{"path":"../../packages/claude-code-telemetry/dist/windows.js","kind":"import-statement","original":"./windows.js"},{"path":"../../packages/claude-code-telemetry/dist/projects.js","kind":"import-statement","original":"./projects.js"}],"format":"esm"},"src/sessions-cmd.ts":{"bytes":5913,"imports":[{"path":"../../packages/claude-code-telemetry/dist/index.js","kind":"import-statement","original":"@maind/claude-code-telemetry"},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"}],"format":"esm"},"src/sync-cmd.ts":{"bytes":5243,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"../../packages/code-index/build/node.js","kind":"import-statement","original":"@maind/code-index/node"},{"path":"src/auth.ts","kind":"import-statement","original":"./auth.js"}],"format":"esm"},"src/index.ts":{"bytes":13178,"imports":[{"path":"src/context.ts","kind":"import-statement","original":"./context.js"},{"path":"src/ci-report.ts","kind":"import-statement","original":"./ci-report.js"},{"path":"src/ci-result.ts","kind":"import-statement","original":"./ci-result.js"},{"path":"src/git-context.ts","kind":"import-statement","original":"./git-context.js"},{"path":"src/git.ts","kind":"import-statement","original":"./git.js"},{"path":"src/index-cmd.ts","kind":"import-statement","original":"./index-cmd.js"},{"path":"src/launch-cmd.ts","kind":"import-statement","original":"./launch-cmd.js"},{"path":"src/object-cmd.ts","kind":"import-statement","original":"./object-cmd.js"},{"path":"src/review.ts","kind":"import-statement","original":"./review.js"},{"path":"src/sessions-cmd.ts","kind":"import-statement","original":"./sessions-cmd.js"},{"path":"src/sync-cmd.ts","kind":"import-statement","original":"./sync-cmd.js"},{"path":"src/version.ts","kind":"import-statement","original":"./version.js"}],"format":"esm"}},"outputs":{"build/index.js":{"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"web-tree-sitter","kind":"import-statement","external":true},{"path":"node:module","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:module","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"@huggingface/transformers","kind":"dynamic-import","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:module","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:readline","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true}],"exports":[],"entryPoint":"src/index.ts","inputs":{"src/context.ts":{"bytesInOutput":4644},"src/auth.ts":{"bytesInOutput":1609},"src/mcp-client.ts":{"bytesInOutput":5955},"src/render.ts":{"bytesInOutput":2437},"src/ci-report.ts":{"bytesInOutput":4467},"src/git.ts":{"bytesInOutput":3331},"../../packages/project-key/build/index.js":{"bytesInOutput":1449},"src/ci-result.ts":{"bytesInOutput":3848},"src/git-context.ts":{"bytesInOutput":6854},"src/index-cmd.ts":{"bytesInOutput":6717},"../../packages/code-index/build/node.js":{"bytesInOutput":1159},"../../packages/code-index/build/parse/tree-sitter/parser.js":{"bytesInOutput":2043},"../../packages/code-index/build/parse/keys.js":{"bytesInOutput":169},"../../packages/code-index/build/parse/types.js":{"bytesInOutput":546},"../../packages/code-index/build/parse/lang/shared.js":{"bytesInOutput":1131},"../../packages/code-index/build/parse/lang/python.js":{"bytesInOutput":3747},"../../packages/code-index/build/parse/lang/typescript.js":{"bytesInOutput":4721},"../../packages/code-index/build/parse/tree-sitter/grammars.js":{"bytesInOutput":523},"../../packages/code-index/build/query/engine.js":{"bytesInOutput":14747},"../../packages/code-index/build/embed/recipe.js":{"bytesInOutput":229},"../../packages/code-index/build/embed/types.js":{"bytesInOutput":105},"../../packages/code-index/build/util/vector.js":{"bytesInOutput":339},"../../packages/code-index/build/graph/resolve.js":{"bytesInOutput":2486},"../../packages/code-index/build/incremental/discover.js":{"bytesInOutput":5100},"../../packages/code-index/build/incremental/hunks.js":{"bytesInOutput":3991},"../../packages/code-index/build/incremental/history.js":{"bytesInOutput":4534},"../../packages/code-index/build/repo-health/divergence.js":{"bytesInOutput":13693},"../../packages/code-index/build/repo-health/hooks.js":{"bytesInOutput":2810},"../../packages/code-index/build/repo-health/number-collisions.js":{"bytesInOutput":10875},"../../packages/code-index/build/review/risk-rules.js":{"bytesInOutput":876},"../../packages/code-index/build/review/risk-scan.js":{"bytesInOutput":798},"../../packages/code-index/build/store/schema.js":{"bytesInOutput":2266},"../../packages/code-index/build/util/identifiers.js":{"bytesInOutput":1094},"../../packages/code-index/build/store/sqlite-driver.js":{"bytesInOutput":2918},"../../packages/code-index/build/store/node-sqlite.js":{"bytesInOutput":9799},"../../packages/code-index/build/sync/types.js":{"bytesInOutput":875},"../../packages/code-index/build/sync/client.js":{"bytesInOutput":7571},"../../packages/embedding/build/index.js":{"bytesInOutput":1295},"../../packages/code-index/build/embed/node.js":{"bytesInOutput":288},"../../packages/code-index/build/node-embed.js":{"bytesInOutput":63},"src/launch-cmd.ts":{"bytesInOutput":9805},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/error.js":{"bytesInOutput":1073},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/util.js":{"bytesInOutput":2022},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/date.js":{"bytesInOutput":2453},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/primitive.js":{"bytesInOutput":3814},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/extract.js":{"bytesInOutput":1978},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/struct.js":{"bytesInOutput":4272},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/parse.js":{"bytesInOutput":3011},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/stringify.js":{"bytesInOutput":4319},"../../node_modules/.pnpm/smol-toml@1.6.1/node_modules/smol-toml/dist/index.js":{"bytesInOutput":0},"src/switchyard.ts":{"bytesInOutput":8039},"src/version.ts":{"bytesInOutput":308},"src/object-cmd.ts":{"bytesInOutput":7136},"src/review.ts":{"bytesInOutput":11728},"../../packages/code-index/build/index.js":{"bytesInOutput":34},"src/review-render.ts":{"bytesInOutput":8294},"../../packages/claude-code-telemetry/dist/index.js":{"bytesInOutput":0},"../../packages/claude-code-telemetry/dist/session-analysis.js":{"bytesInOutput":9568},"../../packages/claude-code-telemetry/dist/effort.js":{"bytesInOutput":434},"../../packages/claude-code-telemetry/dist/ingest.js":{"bytesInOutput":1207},"../../packages/claude-code-telemetry/dist/windows.js":{"bytesInOutput":77},"../../packages/claude-code-telemetry/dist/projects.js":{"bytesInOutput":1351},"src/sessions-cmd.ts":{"bytesInOutput":3804},"src/sync-cmd.ts":{"bytesInOutput":3866},"src/index.ts":{"bytesInOutput":10923}},"bytes":260429}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maind-dev/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Headless maind CLI — pull stack-relevant lessons into CI runners, report CI outcomes, brief agents on local git state (branch, PRs, peers), and launch coding agents behind a local NVIDIA NeMo Switchyard routing proxy. No device flow; authenticates from MAIND_API_KEY.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/index.js",
|