@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 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 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."
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 execFileSync5, spawnSync } from "node:child_process";
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 join4 } from "node:path";
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 execFileSync4("gh", args, {
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 readdirSync2 } from "node:fs";
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 readdirSync2(abs))
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 readdirSync2(abs)) {
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(join4(tmpdir(), "maind-ort-"));
3987
- const okFile = join4(dir, "ok");
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 execFileSync5("git", ["rev-parse", "--show-toplevel"], {
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 execFileSync6 } from "node:child_process";
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 join5 } from "node:path";
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 (maind content plane)" : "builtin default"}`,
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 maind will not install it for you.
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.10.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((resolve) => {
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
- resolve({ code: null, signal: null, elapsedMs: Date.now() - start, spawnError: e.message });
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
- resolve({ code, signal, elapsedMs: Date.now() - start, spawnError: null });
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((resolve) => {
5358
- const t = setTimeout(() => resolve(null), TEMPLATE_FETCH_TIMEOUT_MS);
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 = execFileSync6("git", ["rev-parse", "--show-toplevel"], {
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 ? join5(repoRoot2, ".maind", ROUTES_FILENAME) : join5(userConfigDir, ROUTES_FILENAME);
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 = join5(
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 execFileSync7 } from "node:child_process";
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 execFileSync7("git", ["rev-parse", "--show-toplevel"], {
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 existsSync6 } from "node:fs";
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 ANALYZER_VERSION = "2026-08-04";
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 || !existsSync6(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((resolve) => {
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", () => resolve());
6338
- rl.on("error", () => resolve());
6339
- stream.on("error", () => resolve());
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 homedir3 } from "node:os";
6424
- import { join as join6 } from "node:path";
6425
- var HOME = homedir3();
6426
- var DEFAULT_PROJECTS_DIR = join6(HOME, ".claude", "projects");
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 = join6(projectsDir, entry);
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(join6(dir, f));
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) => join6(dir, 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((resolve) => setTimeout(resolve, ms));
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 execFileSync8 } from "node:child_process";
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 execFileSync8("git", ["rev-parse", "--show-toplevel"], { encoding: "utf8" }).trim();
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 maind CLI for CI + git context
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.10.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",