@maind-dev/cli 0.10.0 → 0.12.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.12.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,231 @@ 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>]... [--json] [--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
+ case "--json":
5710
+ args.json = true;
5711
+ break;
5712
+ default:
5713
+ return null;
5714
+ }
5715
+ }
5716
+ if (sub === "create" && !args.title) return null;
5717
+ if (sub === "link" && (!args.object || !args.ref)) return null;
5718
+ if (sub === "report" && (!args.event || !args.ref)) return null;
5719
+ return args;
5720
+ }
5721
+ function snapshotSessionId(projectKey) {
5722
+ try {
5723
+ const dir = join7(homedir3(), ".maind", "presence", projectKey);
5724
+ if (!existsSync6(dir)) return null;
5725
+ const here = safeRealpath(process.cwd());
5726
+ let best = null;
5727
+ for (const name of readdirSync4(dir)) {
5728
+ if (!name.endsWith(".json")) continue;
5729
+ try {
5730
+ const raw = JSON.parse(readFileSync7(join7(dir, name), "utf8"));
5731
+ const at = Date.parse(raw.written_at ?? "");
5732
+ if (typeof raw.own_session_id !== "string" || !UUID_RE.test(raw.own_session_id) || Number.isNaN(at) || Date.now() - at > SNAPSHOT_MAX_AGE_MS) {
5733
+ continue;
5734
+ }
5735
+ if (typeof raw.cwd !== "string" || safeRealpath(raw.cwd) !== here) continue;
5736
+ if (best === null || at > best.at) best = { id: raw.own_session_id, at };
5737
+ } catch {
5738
+ }
5739
+ }
5740
+ return best?.id ?? null;
5741
+ } catch {
5742
+ return null;
5743
+ }
5744
+ }
5745
+ function safeRealpath(p) {
5746
+ try {
5747
+ return realpathSync(p);
5748
+ } catch {
5749
+ return p;
5750
+ }
5751
+ }
5752
+ async function resolveSession(client, projectKey, flag2) {
5753
+ if (flag2 && UUID_RE.test(flag2)) return { sessionId: flag2, source: "flag" };
5754
+ const env = process.env.MAIND_SESSION_ID?.trim().toLowerCase();
5755
+ if (env && UUID_RE.test(env)) return { sessionId: env, source: "env" };
5756
+ const snap = snapshotSessionId(projectKey);
5757
+ if (snap) return { sessionId: snap, source: "snapshot" };
5758
+ const id = randomUUID();
5759
+ const res = await client.callTool("announce_session", {
5760
+ project_key: projectKey,
5761
+ session_id: id,
5762
+ focus: "cli:object",
5763
+ ttl_minutes: PHANTOM_TTL_MINUTES
5764
+ });
5765
+ if (res.ok !== true) {
5766
+ process.stderr.write(
5767
+ `maind: could not announce a session (${res.error ?? "unknown"}) \u2014 no live bridge session found for this cwd either.
5768
+ Fallback: run the MCP calls from an agent session (work_object_${"create"}/link_ref/report_event).
5769
+ `
5770
+ );
5771
+ return null;
5772
+ }
5773
+ return { sessionId: id, source: "announced" };
5774
+ }
5775
+ async function endSession(client, projectKey, sessionId) {
5776
+ try {
5777
+ await client.callTool("announce_session", {
5778
+ project_key: projectKey,
5779
+ session_id: sessionId,
5780
+ status: "ended"
5781
+ });
5782
+ } catch {
5783
+ }
5784
+ }
5785
+ async function runObject(args) {
5786
+ if (args === null) {
5787
+ process.stderr.write(USAGE);
5788
+ return 2;
5789
+ }
5790
+ const failOpen = args.sub !== "create";
5791
+ const fail = (msg8) => {
5792
+ process.stderr.write(`maind: object ${args.sub}: ${msg8}
5793
+ `);
5794
+ return failOpen ? 0 : 1;
5795
+ };
5796
+ let auth;
5797
+ try {
5798
+ auth = resolveAuth();
5799
+ } catch (err4) {
5800
+ return fail(err4 instanceof MissingApiKeyError ? err4.message : String(err4));
5801
+ }
5802
+ const projectKey = gatherGitState().projectKey;
5803
+ if (!projectKey) return fail("not a git repo with a remote \u2014 no project_key.");
5804
+ const client = new McpClient({
5805
+ apiKey: auth.apiKey,
5806
+ deviceId: auth.deviceId,
5807
+ clientVersion: VERSION,
5808
+ projectKey
5809
+ });
5810
+ let session = null;
5811
+ try {
5812
+ session = await resolveSession(client, projectKey, args.session);
5813
+ if (session === null) return failOpen ? 0 : 1;
5814
+ if (args.sub === "create") {
5815
+ const res2 = await client.callTool("work_object_create", {
5816
+ project_key: projectKey,
5817
+ session_id: session.sessionId,
5818
+ kind: "issue",
5819
+ title: args.title,
5820
+ ...args.parent ? { parent_id: args.parent } : {},
5821
+ ...args.anchors.length > 0 ? { anchors: args.anchors.map((p) => ({ path_prefix: p })) } : {}
5822
+ });
5823
+ const id = res2.object?.id;
5824
+ if (res2.ok !== true || typeof id !== "string") {
5825
+ return fail(`server refused (${res2.error ?? "no object id"})${res2.hint ? ` \u2014 ${res2.hint}` : ""}`);
5826
+ }
5827
+ const key = typeof res2.object?.key === "string" ? res2.object.key : null;
5828
+ process.stderr.write(
5829
+ // Der sprechende Key gehoert in jede menschenlesbare Zeile (MAIND-118)
5830
+ // — 'MAI-97', nie ein UUID-Fragment. Faellt er (aelterer Server) aus,
5831
+ // bleibt die Zeile ohne ihn korrekt.
5832
+ `maind: object ${res2["created"] === false ? "already existed" : "created"}${key ? `: ${key}` : ""} (via ${session.source} session).
5833
+ `
5834
+ );
5835
+ if (args.json) {
5836
+ process.stdout.write(JSON.stringify({ ok: true, id, key }) + "\n");
5837
+ } else {
5838
+ process.stdout.write(id + "\n");
5839
+ }
5840
+ return 0;
5841
+ }
5842
+ if (args.sub === "link") {
5843
+ const res2 = await client.callTool("work_object_link_ref", {
5844
+ project_key: projectKey,
5845
+ session_id: session.sessionId,
5846
+ object_id: args.object,
5847
+ ref: args.ref,
5848
+ ...args.url ? { url: args.url } : {}
5849
+ });
5850
+ if (res2.ok === true || res2.error === "ref_already_linked") {
5851
+ const linkKey = typeof res2.object?.key === "string" ? res2.object.key : null;
5852
+ process.stderr.write(
5853
+ `maind: ref ${args.ref} ${res2.error === "ref_already_linked" ? "already linked" : "linked"}${linkKey ? ` to ${linkKey}` : ""}.
5854
+ `
5855
+ );
5856
+ return 0;
5857
+ }
5858
+ return fail(`link failed (${res2.error ?? "unknown"})${res2.hint ? ` \u2014 ${res2.hint}` : ""}`);
5859
+ }
5860
+ const res = await client.callTool("work_object_report_event", {
5861
+ project_key: projectKey,
5862
+ session_id: session.sessionId,
5863
+ event: args.event,
5864
+ ref: args.ref,
5865
+ ...args.occurredOn ? { occurred_on: args.occurredOn } : {}
5866
+ });
5867
+ if (res.ok !== true) {
5868
+ return fail(`report failed (${res.error ?? "unknown"})${res.hint ? ` \u2014 ${res.hint}` : ""}`);
5869
+ }
5870
+ process.stderr.write(`maind: ${args.event} reported for ${args.ref}.
5871
+ `);
5872
+ return 0;
5873
+ } catch (err4) {
5874
+ return fail(err4 instanceof Error ? err4.message : String(err4));
5875
+ } finally {
5876
+ if (session?.source === "announced") {
5877
+ await endSession(client, projectKey, session.sessionId);
5878
+ }
5879
+ }
5880
+ }
5881
+
5551
5882
  // src/review.ts
5552
- import { execFileSync as execFileSync7 } from "node:child_process";
5883
+ import { execFileSync as execFileSync8 } from "node:child_process";
5553
5884
  import { mkdirSync as mkdirSync5, writeFileSync as writeFileSync5 } from "node:fs";
5554
5885
  import { dirname as dirname5 } from "node:path";
5555
5886
 
@@ -5858,7 +6189,7 @@ function buildDiffStats(result) {
5858
6189
  }
5859
6190
  function resolveRepoRoot() {
5860
6191
  try {
5861
- return execFileSync7("git", ["rev-parse", "--show-toplevel"], {
6192
+ return execFileSync8("git", ["rev-parse", "--show-toplevel"], {
5862
6193
  encoding: "utf8",
5863
6194
  stdio: ["ignore", "pipe", "ignore"]
5864
6195
  }).trim();
@@ -6085,7 +6416,7 @@ function warn5(line) {
6085
6416
  }
6086
6417
 
6087
6418
  // ../../packages/claude-code-telemetry/dist/session-analysis.js
6088
- import { createReadStream, existsSync as existsSync6 } from "node:fs";
6419
+ import { createReadStream, existsSync as existsSync7 } from "node:fs";
6089
6420
  import { createInterface } from "node:readline";
6090
6421
 
6091
6422
  // ../../packages/claude-code-telemetry/dist/effort.js
@@ -6110,7 +6441,8 @@ function detectEffortLevel(messageText) {
6110
6441
  }
6111
6442
 
6112
6443
  // ../../packages/claude-code-telemetry/dist/session-analysis.js
6113
- var ANALYZER_VERSION = "2026-08-04";
6444
+ var MAIND_TOOL_PREFIX = "mcp__maind__";
6445
+ var ANALYZER_VERSION = "2026-08-16";
6114
6446
  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
6447
  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
6448
  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 +6555,22 @@ function emptyAnalysis(sessionId) {
6223
6555
  model_mix: [],
6224
6556
  ai_title: null,
6225
6557
  session_slug: null,
6558
+ maind_tool_calls: {},
6559
+ maind_connected: "unknown",
6226
6560
  lines_seen: 0,
6227
6561
  analyzer_version: ANALYZER_VERSION
6228
6562
  };
6229
6563
  }
6230
6564
  async function analyzeSession(path) {
6231
6565
  const a = emptyAnalysis("");
6232
- if (!path || !existsSync6(path))
6566
+ if (!path || !existsSync7(path))
6233
6567
  return a;
6234
6568
  const reactions = [];
6235
6569
  const modelMix = /* @__PURE__ */ new Map();
6236
6570
  let effort = null;
6237
6571
  let priorAssistantWorked = false;
6238
6572
  let prevUserText = null;
6239
- await new Promise((resolve) => {
6573
+ await new Promise((resolve2) => {
6240
6574
  const stream = createReadStream(path, { encoding: "utf-8" });
6241
6575
  const rl = createInterface({ input: stream });
6242
6576
  const processLine = (line) => {
@@ -6273,6 +6607,18 @@ async function analyzeSession(path) {
6273
6607
  const rawTs = parsed.timestamp ? Date.parse(parsed.timestamp) : Number.NaN;
6274
6608
  bumpModel(modelMix, parsed.message.model, isSide, num(usage?.output_tokens), Number.isFinite(rawTs) ? rawTs : 0);
6275
6609
  }
6610
+ if (role === "assistant") {
6611
+ for (const b of asBlocks(parsed.message?.content)) {
6612
+ if (b.type !== "tool_use" || typeof b.name !== "string")
6613
+ continue;
6614
+ if (!b.name.startsWith(MAIND_TOOL_PREFIX))
6615
+ continue;
6616
+ const tool = b.name.slice(MAIND_TOOL_PREFIX.length);
6617
+ if (!tool)
6618
+ continue;
6619
+ a.maind_tool_calls[tool] = (a.maind_tool_calls[tool] ?? 0) + 1;
6620
+ }
6621
+ }
6276
6622
  if (isSide)
6277
6623
  return;
6278
6624
  if (role === "assistant") {
@@ -6334,9 +6680,9 @@ async function analyzeSession(path) {
6334
6680
  } catch {
6335
6681
  }
6336
6682
  });
6337
- rl.on("close", () => resolve());
6338
- rl.on("error", () => resolve());
6339
- stream.on("error", () => resolve());
6683
+ rl.on("close", () => resolve2());
6684
+ rl.on("error", () => resolve2());
6685
+ stream.on("error", () => resolve2());
6340
6686
  });
6341
6687
  a.effort_at_end = effort;
6342
6688
  a.model_mix = [...modelMix.values()].sort((x, y) => x.first_ts - y.first_ts || x.model.localeCompare(y.model));
@@ -6367,12 +6713,16 @@ async function analyzeSession(path) {
6367
6713
  a.momentum_final = series.length ? series[series.length - 1].value : 0;
6368
6714
  a.momentum_auc = Number(auc.toFixed(3));
6369
6715
  a.ended_positive = a.momentum_final > 0;
6716
+ if (Object.keys(a.maind_tool_calls).length > 0)
6717
+ a.maind_connected = "connected";
6370
6718
  return a;
6371
6719
  }
6372
6720
 
6373
6721
  // ../../packages/claude-code-telemetry/dist/ingest.js
6374
- function ingestBody(analytics, span, ctx) {
6375
- const body = { session_analytics: analytics };
6722
+ function ingestBody(analytics, span, ctx, source = "unknown") {
6723
+ const body = {
6724
+ session_analytics: { ...analytics, ingest_source: source }
6725
+ };
6376
6726
  if (span && span.started_at) {
6377
6727
  body.session_span = ctx ? { ...span, ...ctx } : span;
6378
6728
  }
@@ -6387,12 +6737,12 @@ function ingestHeaders(auth) {
6387
6737
  headers["x-maind-device-id"] = auth.deviceId;
6388
6738
  return headers;
6389
6739
  }
6390
- async function postSessionAnalytics(target, analytics, span, ctx) {
6740
+ async function postSessionAnalytics(target, analytics, span, ctx, source = "unknown") {
6391
6741
  try {
6392
6742
  const res = await fetch(target.endpoint, {
6393
6743
  method: "POST",
6394
6744
  headers: ingestHeaders(target),
6395
- body: JSON.stringify(ingestBody(analytics, span, ctx))
6745
+ body: JSON.stringify(ingestBody(analytics, span, ctx, source))
6396
6746
  });
6397
6747
  if (!res.ok) {
6398
6748
  const text = await res.text().catch(() => "");
@@ -6420,10 +6770,10 @@ var WEEK_MS = 7 * 24 * 60 * 60 * 1e3;
6420
6770
 
6421
6771
  // ../../packages/claude-code-telemetry/dist/projects.js
6422
6772
  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");
6773
+ import { homedir as homedir4 } from "node:os";
6774
+ import { join as join8 } from "node:path";
6775
+ var HOME = homedir4();
6776
+ var DEFAULT_PROJECTS_DIR = join8(HOME, ".claude", "projects");
6427
6777
  function cwdFromProjectDir(encoded) {
6428
6778
  if (!encoded.startsWith("-"))
6429
6779
  return encoded;
@@ -6440,7 +6790,7 @@ async function listProjects(projectsDir = DEFAULT_PROJECTS_DIR) {
6440
6790
  for (const entry of entries) {
6441
6791
  if (!entry.startsWith("-"))
6442
6792
  continue;
6443
- const dir = join6(projectsDir, entry);
6793
+ const dir = join8(projectsDir, entry);
6444
6794
  let files;
6445
6795
  try {
6446
6796
  files = await readdir(dir);
@@ -6453,7 +6803,7 @@ async function listProjects(projectsDir = DEFAULT_PROJECTS_DIR) {
6453
6803
  let mtimeMs = 0;
6454
6804
  for (const f of transcripts) {
6455
6805
  try {
6456
- const st = await stat(join6(dir, f));
6806
+ const st = await stat(join8(dir, f));
6457
6807
  if (st.mtimeMs > mtimeMs)
6458
6808
  mtimeMs = st.mtimeMs;
6459
6809
  } catch {
@@ -6462,7 +6812,7 @@ async function listProjects(projectsDir = DEFAULT_PROJECTS_DIR) {
6462
6812
  out2.push({
6463
6813
  encodedDir: entry,
6464
6814
  cwd: cwdFromProjectDir(entry),
6465
- transcripts: transcripts.map((f) => join6(dir, f)),
6815
+ transcripts: transcripts.map((f) => join8(dir, f)),
6466
6816
  mtimeMs
6467
6817
  });
6468
6818
  }
@@ -6499,7 +6849,7 @@ function endpoint() {
6499
6849
  const raw = process.env.MAIND_INGEST_URL?.trim();
6500
6850
  return raw && raw.length > 0 ? raw : DEFAULT_ENDPOINT;
6501
6851
  }
6502
- var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
6852
+ var sleep = (ms) => new Promise((resolve2) => setTimeout(resolve2, ms));
6503
6853
  async function runSessionsBackfill(args) {
6504
6854
  let auth;
6505
6855
  try {
@@ -6546,7 +6896,10 @@ async function runSessionsBackfill(args) {
6546
6896
  if (!args.dryRun) {
6547
6897
  const res = await postSessionAnalytics(
6548
6898
  { endpoint: target, apiKey: auth.apiKey, deviceId: auth.deviceId },
6549
- analysis
6899
+ analysis,
6900
+ null,
6901
+ void 0,
6902
+ "backfill"
6550
6903
  );
6551
6904
  row.posted = res.ok;
6552
6905
  if (!res.ok) {
@@ -6584,7 +6937,7 @@ async function runSessionsBackfill(args) {
6584
6937
  }
6585
6938
 
6586
6939
  // src/sync-cmd.ts
6587
- import { execFileSync as execFileSync8 } from "node:child_process";
6940
+ import { execFileSync as execFileSync9 } from "node:child_process";
6588
6941
  var CONSENT_POLICY_VERSION = "2026-07-05";
6589
6942
  var DEFAULT_DASHBOARD_URL = "https://app.maind.dev";
6590
6943
  function err3(line) {
@@ -6593,7 +6946,7 @@ function err3(line) {
6593
6946
  }
6594
6947
  function repoRoot() {
6595
6948
  try {
6596
- return execFileSync8("git", ["rev-parse", "--show-toplevel"], { encoding: "utf8" }).trim();
6949
+ return execFileSync9("git", ["rev-parse", "--show-toplevel"], { encoding: "utf8" }).trim();
6597
6950
  } catch {
6598
6951
  return process.cwd();
6599
6952
  }
@@ -6706,7 +7059,7 @@ async function push(sync, json) {
6706
7059
  }
6707
7060
 
6708
7061
  // src/index.ts
6709
- var HELP = `maind ${VERSION} \u2014 headless maind CLI for CI + git context
7062
+ var HELP = `maind ${VERSION} \u2014 headless MAIND CLI for CI + git context
6710
7063
 
6711
7064
  Usage:
6712
7065
  maind context [options] Pull stack-relevant lessons + conventions into the runner
@@ -6723,6 +7076,12 @@ Usage:
6723
7076
  maind sessions backfill [.] Recompute session analytics for transcripts already on disk
6724
7077
  maind launch <agent> [..] Plug&play: local Switchyard model-routing proxy + agent behind it (v1: claude)
6725
7078
  maind review [options] Provenance-backed review findings for a change set (advisory by default)
7079
+ maind object create|link|report [options]
7080
+ Planning integration (ADR-286): create a work object (stdout: its id;
7081
+ --json: {ok,id,key} \u2014 key is the speaking name, 'MAI-97'), link a PR
7082
+ ref, report pr_opened/merge \u2014 used by feature.sh. Repeatable
7083
+ --anchor <repo-rel-path> on create: without an anchor the object
7084
+ never appears in list_available_work
6726
7085
  maind ci-report [options] Report a CI failure as a draft-lesson candidate (on failure)
6727
7086
  maind ci-result [options] Report a build outcome + served manifest (end of job)
6728
7087
  maind --help Show this help
@@ -6880,6 +7239,9 @@ async function main() {
6880
7239
  if (cmd === "review") {
6881
7240
  return runReview(parseReviewArgs(argv.slice(1)));
6882
7241
  }
7242
+ if (cmd === "object") {
7243
+ return runObject(parseObjectArgs(argv.slice(1)));
7244
+ }
6883
7245
  if (cmd === "ci-report") {
6884
7246
  return runCiReport(parseCiReportArgs(argv.slice(1)));
6885
7247
  }
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":11532,"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":3117,"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":6253,"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":13446,"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":7764},"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":1291},"../../packages/claude-code-telemetry/dist/windows.js":{"bytesInOutput":77},"../../packages/claude-code-telemetry/dist/projects.js":{"bytesInOutput":1351},"src/sessions-cmd.ts":{"bytesInOutput":3854},"src/sync-cmd.ts":{"bytesInOutput":3866},"src/index.ts":{"bytesInOutput":11194}},"bytes":261462}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maind-dev/cli",
3
- "version": "0.10.0",
3
+ "version": "0.12.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",