@maind-dev/cli 0.7.0 → 0.8.1
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 +193 -14
- package/build/meta.json +1 -1
- package/package.json +15 -14
package/build/index.js
CHANGED
|
@@ -1869,6 +1869,152 @@ function parseUnifiedDiff(diff, files, onDegrade) {
|
|
|
1869
1869
|
commit();
|
|
1870
1870
|
}
|
|
1871
1871
|
|
|
1872
|
+
// ../../packages/code-index/build/incremental/history.js
|
|
1873
|
+
var RECORD_MARK = "";
|
|
1874
|
+
var FIELD_MARK = "\0";
|
|
1875
|
+
var OWNERSHIP_WINDOW = 200;
|
|
1876
|
+
var MAX_HISTORY_PATHS = 50;
|
|
1877
|
+
var MAX_REGRESSION_COMMITS = 100;
|
|
1878
|
+
var LOG_FORMAT = "--format=%x1e%H%x00%an%x00%ae%x00%aI%x00%s";
|
|
1879
|
+
var HOT_FILE_RECENT_COMMITS = 10;
|
|
1880
|
+
function aggregateHistoryContext(res, now = Date.now()) {
|
|
1881
|
+
if (res.history.length === 0)
|
|
1882
|
+
return void 0;
|
|
1883
|
+
const authorEmails = /* @__PURE__ */ new Set();
|
|
1884
|
+
let hotFiles = 0;
|
|
1885
|
+
let maxRecent = 0;
|
|
1886
|
+
let newestMs = 0;
|
|
1887
|
+
for (const entry of res.history) {
|
|
1888
|
+
const inWindow = entry.ownership?.commitsInWindow ?? entry.lastCommits.length;
|
|
1889
|
+
if (inWindow >= HOT_FILE_RECENT_COMMITS)
|
|
1890
|
+
hotFiles++;
|
|
1891
|
+
if (inWindow > maxRecent)
|
|
1892
|
+
maxRecent = inWindow;
|
|
1893
|
+
for (const a of entry.ownership?.topAuthors ?? []) {
|
|
1894
|
+
authorEmails.add(a.email.toLowerCase() || a.name);
|
|
1895
|
+
}
|
|
1896
|
+
const newest = entry.lastCommits[0]?.dateIso;
|
|
1897
|
+
if (newest) {
|
|
1898
|
+
const ms = Date.parse(newest);
|
|
1899
|
+
if (Number.isFinite(ms) && ms > newestMs)
|
|
1900
|
+
newestMs = ms;
|
|
1901
|
+
}
|
|
1902
|
+
}
|
|
1903
|
+
return {
|
|
1904
|
+
window_commits: res.ownershipWindowCommits,
|
|
1905
|
+
files_scanned: res.history.length,
|
|
1906
|
+
hot_files: hotFiles,
|
|
1907
|
+
max_recent_commits: maxRecent,
|
|
1908
|
+
distinct_authors: authorEmails.size,
|
|
1909
|
+
newest_change_age_days: newestMs > 0 ? Math.max(0, Math.floor((now - newestMs) / 864e5)) : 0
|
|
1910
|
+
};
|
|
1911
|
+
}
|
|
1912
|
+
function clamp(v, def, cap) {
|
|
1913
|
+
if (v === void 0 || !Number.isFinite(v) || v <= 0)
|
|
1914
|
+
return def;
|
|
1915
|
+
return Math.min(Math.floor(v), cap);
|
|
1916
|
+
}
|
|
1917
|
+
function splitRecords(raw) {
|
|
1918
|
+
return raw.split(RECORD_MARK).filter((r) => r.trim().length > 0);
|
|
1919
|
+
}
|
|
1920
|
+
function parseHistoryRecord(record) {
|
|
1921
|
+
const [sha, authorName, authorEmail, dateIso, subject] = record.replace(/\n+$/, "").split(FIELD_MARK);
|
|
1922
|
+
if (!sha || !dateIso)
|
|
1923
|
+
return null;
|
|
1924
|
+
return {
|
|
1925
|
+
sha,
|
|
1926
|
+
authorName: authorName ?? "",
|
|
1927
|
+
authorEmail: authorEmail ?? "",
|
|
1928
|
+
dateIso,
|
|
1929
|
+
subject: subject ?? ""
|
|
1930
|
+
};
|
|
1931
|
+
}
|
|
1932
|
+
function aggregateOwnership(commits) {
|
|
1933
|
+
const byEmail = /* @__PURE__ */ new Map();
|
|
1934
|
+
for (const c of commits) {
|
|
1935
|
+
const key = c.authorEmail.toLowerCase() || c.authorName;
|
|
1936
|
+
const entry = byEmail.get(key);
|
|
1937
|
+
if (entry)
|
|
1938
|
+
entry.commits += 1;
|
|
1939
|
+
else
|
|
1940
|
+
byEmail.set(key, {
|
|
1941
|
+
name: c.authorName,
|
|
1942
|
+
email: c.authorEmail,
|
|
1943
|
+
commits: 1,
|
|
1944
|
+
lastDateIso: c.dateIso
|
|
1945
|
+
});
|
|
1946
|
+
}
|
|
1947
|
+
return [...byEmail.values()].sort((a, b) => b.commits - a.commits || a.email.localeCompare(b.email)).slice(0, 10);
|
|
1948
|
+
}
|
|
1949
|
+
function readFileHistory(repoRoot2, paths, opts = {}) {
|
|
1950
|
+
const limit = clamp(opts.limit, 20, 100);
|
|
1951
|
+
const includeOwnership = opts.includeOwnership !== false;
|
|
1952
|
+
const window = Math.max(limit, OWNERSHIP_WINDOW);
|
|
1953
|
+
const cleanPaths = paths.map((p) => p.trim()).filter((p) => p.length > 0 && !p.startsWith(":"));
|
|
1954
|
+
const scoped = cleanPaths.slice(0, MAX_HISTORY_PATHS);
|
|
1955
|
+
const history = [];
|
|
1956
|
+
for (const path of scoped) {
|
|
1957
|
+
const raw = runGit(repoRoot2, [
|
|
1958
|
+
"log",
|
|
1959
|
+
"-n",
|
|
1960
|
+
String(window),
|
|
1961
|
+
LOG_FORMAT,
|
|
1962
|
+
"--",
|
|
1963
|
+
path
|
|
1964
|
+
]);
|
|
1965
|
+
const commits = raw === null ? [] : splitRecords(raw).map(parseHistoryRecord).filter((c) => c !== null);
|
|
1966
|
+
history.push({
|
|
1967
|
+
path,
|
|
1968
|
+
lastCommits: commits.slice(0, limit),
|
|
1969
|
+
ownership: includeOwnership ? { topAuthors: aggregateOwnership(commits), commitsInWindow: commits.length } : null
|
|
1970
|
+
});
|
|
1971
|
+
}
|
|
1972
|
+
let regression = null;
|
|
1973
|
+
if (opts.since) {
|
|
1974
|
+
const sinceResolved = resolveCommitSha(repoRoot2, opts.since);
|
|
1975
|
+
const rangeArgs = sinceResolved !== null ? [`${sinceResolved}..HEAD`] : [`--since=${opts.since}`];
|
|
1976
|
+
const raw = runGit(repoRoot2, [
|
|
1977
|
+
"log",
|
|
1978
|
+
...rangeArgs,
|
|
1979
|
+
"-n",
|
|
1980
|
+
String(MAX_REGRESSION_COMMITS + 1),
|
|
1981
|
+
LOG_FORMAT,
|
|
1982
|
+
"--name-only",
|
|
1983
|
+
"--",
|
|
1984
|
+
...scoped
|
|
1985
|
+
]);
|
|
1986
|
+
const commits = [];
|
|
1987
|
+
if (raw !== null) {
|
|
1988
|
+
for (const record of splitRecords(raw)) {
|
|
1989
|
+
const lines = record.split("\n");
|
|
1990
|
+
const head = parseHistoryRecord(lines[0] ?? "");
|
|
1991
|
+
if (!head)
|
|
1992
|
+
continue;
|
|
1993
|
+
const filesTouched = lines.slice(1).filter((l) => l.trim().length > 0).length;
|
|
1994
|
+
commits.push({
|
|
1995
|
+
sha: head.sha,
|
|
1996
|
+
dateIso: head.dateIso,
|
|
1997
|
+
authorName: head.authorName,
|
|
1998
|
+
subject: head.subject,
|
|
1999
|
+
filesTouched
|
|
2000
|
+
});
|
|
2001
|
+
}
|
|
2002
|
+
}
|
|
2003
|
+
regression = {
|
|
2004
|
+
sinceInput: opts.since,
|
|
2005
|
+
sinceResolved,
|
|
2006
|
+
commits: commits.slice(0, MAX_REGRESSION_COMMITS),
|
|
2007
|
+
truncated: commits.length > MAX_REGRESSION_COMMITS
|
|
2008
|
+
};
|
|
2009
|
+
}
|
|
2010
|
+
return {
|
|
2011
|
+
history,
|
|
2012
|
+
regression,
|
|
2013
|
+
ownershipWindowCommits: window,
|
|
2014
|
+
pathsTruncated: cleanPaths.length > MAX_HISTORY_PATHS
|
|
2015
|
+
};
|
|
2016
|
+
}
|
|
2017
|
+
|
|
1872
2018
|
// ../../packages/code-index/build/review/risk-rules.js
|
|
1873
2019
|
var RISK_RULES = [
|
|
1874
2020
|
{
|
|
@@ -2312,6 +2458,19 @@ var CodeIndexEngine = class {
|
|
|
2312
2458
|
truncated: symbols.length > limit
|
|
2313
2459
|
};
|
|
2314
2460
|
}
|
|
2461
|
+
async fileHistory(opts = {}) {
|
|
2462
|
+
let paths = opts.paths ?? [];
|
|
2463
|
+
if (paths.length === 0) {
|
|
2464
|
+
const changed = enumerateChangedPaths(this.repoRoot, { since: opts.since });
|
|
2465
|
+
if (changed === null) {
|
|
2466
|
+
throw new Error("fileHistory requires a git repository (history is git-based)");
|
|
2467
|
+
}
|
|
2468
|
+
paths = [...changed.keys()];
|
|
2469
|
+
} else if (headCommit(this.repoRoot) === null) {
|
|
2470
|
+
throw new Error("fileHistory requires a git repository (history is git-based)");
|
|
2471
|
+
}
|
|
2472
|
+
return readFileHistory(this.repoRoot, paths, opts);
|
|
2473
|
+
}
|
|
2315
2474
|
async reviewChanges(opts = {}) {
|
|
2316
2475
|
await this.store.init();
|
|
2317
2476
|
const rawPaths = enumerateChangedPaths(this.repoRoot, opts);
|
|
@@ -3299,7 +3458,8 @@ function buildReviewManifest(data, verdict, meta) {
|
|
|
3299
3458
|
} : null,
|
|
3300
3459
|
run: verdict?.ok === true ? verdict.run ?? null : null,
|
|
3301
3460
|
...verdict?.ok === true && verdict.run_note ? { run_note: verdict.run_note } : {},
|
|
3302
|
-
coverage_note: review?.coverage_note ?? null
|
|
3461
|
+
coverage_note: review?.coverage_note ?? null,
|
|
3462
|
+
regression_context: review?.regression_context ?? null
|
|
3303
3463
|
};
|
|
3304
3464
|
}
|
|
3305
3465
|
function severityBadge(f) {
|
|
@@ -3399,6 +3559,13 @@ function renderReviewMarkdown(data, verdict, meta) {
|
|
|
3399
3559
|
}
|
|
3400
3560
|
lines.push("");
|
|
3401
3561
|
}
|
|
3562
|
+
const rc = review?.regression_context;
|
|
3563
|
+
if (rc && (rc.hot_files ?? 0) > 0) {
|
|
3564
|
+
lines.push("");
|
|
3565
|
+
lines.push(
|
|
3566
|
+
`_History: ${rc.hot_files}/${rc.files_scanned ?? "?"} changed file(s) high-churn (max ${rc.max_recent_commits ?? "?"} commits in the last ${rc.window_commits ?? "?"}-commit window, ${rc.distinct_authors ?? "?"} author(s))._`
|
|
3567
|
+
);
|
|
3568
|
+
}
|
|
3402
3569
|
if (review?.coverage_note) {
|
|
3403
3570
|
lines.push("## Coverage");
|
|
3404
3571
|
lines.push("");
|
|
@@ -3537,6 +3704,21 @@ function manifestPathFor(out) {
|
|
|
3537
3704
|
function verdictCrossesFailOn(verdict, failOn) {
|
|
3538
3705
|
return failOn === "block" ? verdict === "block" : verdict === "block" || verdict === "warn";
|
|
3539
3706
|
}
|
|
3707
|
+
function buildDiffStats(result) {
|
|
3708
|
+
return {
|
|
3709
|
+
changed_file_count: result.changedFiles,
|
|
3710
|
+
unindexed_file_count: result.changedFiles - result.indexedFiles,
|
|
3711
|
+
stale_file_count: result.staleFiles,
|
|
3712
|
+
truncated: result.truncated,
|
|
3713
|
+
hunk_coverage: result.hunkCoverage,
|
|
3714
|
+
base_kind: result.baseKind,
|
|
3715
|
+
// Attest-Anker (ADR-230 §3): Commit-Objekt-Hashes + dirty — kein Source.
|
|
3716
|
+
...result.headSha ? { head_sha: result.headSha } : {},
|
|
3717
|
+
dirty: result.dirty,
|
|
3718
|
+
...result.baseSha ? { base_sha: result.baseSha } : {},
|
|
3719
|
+
code_index_version: CODE_INDEX_VERSION
|
|
3720
|
+
};
|
|
3721
|
+
}
|
|
3540
3722
|
function resolveRepoRoot() {
|
|
3541
3723
|
try {
|
|
3542
3724
|
return execFileSync5("git", ["rev-parse", "--show-toplevel"], {
|
|
@@ -3599,19 +3781,7 @@ async function runReview(opts) {
|
|
|
3599
3781
|
} finally {
|
|
3600
3782
|
await engine.close().catch(() => void 0);
|
|
3601
3783
|
}
|
|
3602
|
-
const diffStats =
|
|
3603
|
-
changed_file_count: result.changedFiles,
|
|
3604
|
-
unindexed_file_count: result.changedFiles - result.indexedFiles,
|
|
3605
|
-
stale_file_count: result.staleFiles,
|
|
3606
|
-
truncated: result.truncated,
|
|
3607
|
-
hunk_coverage: result.hunkCoverage,
|
|
3608
|
-
base_kind: result.baseKind,
|
|
3609
|
-
// Attest-Anker (ADR-230 §3): Commit-Objekt-Hashes + dirty — kein Source.
|
|
3610
|
-
head_sha: result.headSha,
|
|
3611
|
-
dirty: result.dirty,
|
|
3612
|
-
base_sha: result.baseSha,
|
|
3613
|
-
code_index_version: CODE_INDEX_VERSION
|
|
3614
|
-
};
|
|
3784
|
+
const diffStats = buildDiffStats(result);
|
|
3615
3785
|
meta.diffStats = diffStats;
|
|
3616
3786
|
meta.symbolCount = result.symbols.length;
|
|
3617
3787
|
const summary = opts.summary?.trim() || void 0;
|
|
@@ -3647,6 +3817,14 @@ async function runReview(opts) {
|
|
|
3647
3817
|
mcpUrl: opts.mcpUrl ?? void 0,
|
|
3648
3818
|
projectKey
|
|
3649
3819
|
});
|
|
3820
|
+
let history;
|
|
3821
|
+
try {
|
|
3822
|
+
history = aggregateHistoryContext(
|
|
3823
|
+
await engine.fileHistory({ since: opts.base ?? void 0, limit: 1 })
|
|
3824
|
+
);
|
|
3825
|
+
} catch {
|
|
3826
|
+
history = void 0;
|
|
3827
|
+
}
|
|
3650
3828
|
const reviewArgs = {
|
|
3651
3829
|
changed_symbols: result.symbols.map((s) => ({
|
|
3652
3830
|
name: s.name,
|
|
@@ -3658,6 +3836,7 @@ async function runReview(opts) {
|
|
|
3658
3836
|
})),
|
|
3659
3837
|
risk_flags: result.riskFlags,
|
|
3660
3838
|
diff_stats: diffStats,
|
|
3839
|
+
...history ? { history } : {},
|
|
3661
3840
|
...summary ? { change_summary: summary } : {},
|
|
3662
3841
|
...projectKey ? { project_key: projectKey } : {}
|
|
3663
3842
|
};
|
package/build/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/auth.ts":{"bytes":3441,"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":8578,"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":6171,"imports":[{"path":"../../packages/code-index/build/incremental/discover.js","kind":"import-statement","original":"./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":18965,"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/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/node-sqlite.js":{"bytes":11850,"imports":[{"path":"better-sqlite3","kind":"import-statement","external":true},{"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":2578,"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"}],"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"},"../../packages/code-index/build/model/types.js":{"bytes":471,"imports":[],"format":"esm"},"../../packages/code-index/build/index.js":{"bytes":1204,"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/review/risk-rules.js","kind":"import-statement","original":"./review/risk-rules.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":14139,"imports":[],"format":"esm"},"src/review.ts":{"bytes":16004,"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/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"},"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":9745,"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/review.ts","kind":"import-statement","original":"./review.js"},{"path":"src/sync-cmd.ts","kind":"import-statement","original":"./sync-cmd.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":"better-sqlite3","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: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":2406},"src/ci-report.ts":{"bytesInOutput":4467},"src/git.ts":{"bytesInOutput":3325},"../../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":13877},"../../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":4855},"../../packages/code-index/build/incremental/hunks.js":{"bytesInOutput":3951},"../../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/node-sqlite.js":{"bytesInOutput":9751},"../../packages/code-index/build/sync/types.js":{"bytesInOutput":875},"../../packages/code-index/build/sync/client.js":{"bytesInOutput":7568},"../../packages/embedding/build/index.js":{"bytesInOutput":1293},"../../packages/code-index/build/embed/node.js":{"bytesInOutput":288},"../../packages/code-index/build/node-embed.js":{"bytesInOutput":63},"src/review.ts":{"bytesInOutput":10816},"../../packages/code-index/build/index.js":{"bytesInOutput":34},"src/review-render.ts":{"bytesInOutput":7809},"src/sync-cmd.ts":{"bytesInOutput":3860},"src/index.ts":{"bytesInOutput":7760}},"bytes":138276}}}
|
|
1
|
+
{"inputs":{"src/auth.ts":{"bytes":3441,"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":8578,"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":6171,"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/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":20068,"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/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/node-sqlite.js":{"bytes":11850,"imports":[{"path":"better-sqlite3","kind":"import-statement","external":true},{"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":2578,"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"}],"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"},"../../packages/code-index/build/model/types.js":{"bytes":471,"imports":[],"format":"esm"},"../../packages/code-index/build/index.js":{"bytes":1359,"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/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":15157,"imports":[],"format":"esm"},"src/review.ts":{"bytes":16955,"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/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"},"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":9745,"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/review.ts","kind":"import-statement","original":"./review.js"},{"path":"src/sync-cmd.ts","kind":"import-statement","original":"./sync-cmd.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":"better-sqlite3","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: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":2406},"src/ci-report.ts":{"bytesInOutput":4467},"src/git.ts":{"bytesInOutput":3325},"../../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":14425},"../../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":4855},"../../packages/code-index/build/incremental/hunks.js":{"bytesInOutput":3951},"../../packages/code-index/build/incremental/history.js":{"bytesInOutput":4531},"../../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/node-sqlite.js":{"bytesInOutput":9751},"../../packages/code-index/build/sync/types.js":{"bytesInOutput":875},"../../packages/code-index/build/sync/client.js":{"bytesInOutput":7568},"../../packages/embedding/build/index.js":{"bytesInOutput":1293},"../../packages/code-index/build/embed/node.js":{"bytesInOutput":288},"../../packages/code-index/build/node-embed.js":{"bytesInOutput":63},"src/review.ts":{"bytesInOutput":11152},"../../packages/code-index/build/index.js":{"bytesInOutput":34},"src/review-render.ts":{"bytesInOutput":8227},"src/sync-cmd.ts":{"bytesInOutput":3860},"src/index.ts":{"bytesInOutput":7760}},"bytes":144168}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maind-dev/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Headless maind CLI — pull stack-relevant lessons into CI runners, report CI outcomes, and brief agents on local git state (branch, PRs, peers). No device flow; authenticates from MAIND_API_KEY.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/index.js",
|
|
@@ -11,6 +11,15 @@
|
|
|
11
11
|
"build",
|
|
12
12
|
"README.md"
|
|
13
13
|
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "pnpm --filter @maind/code-index build && node scripts/bundle.mjs",
|
|
16
|
+
"prepublishOnly": "pnpm build",
|
|
17
|
+
"start": "node build/index.js",
|
|
18
|
+
"dev": "node --import tsx src/index.ts",
|
|
19
|
+
"test": "node --import tsx --test test/**/*.test.ts",
|
|
20
|
+
"type-check": "tsc --noEmit",
|
|
21
|
+
"typecheck": "tsc --noEmit"
|
|
22
|
+
},
|
|
14
23
|
"dependencies": {
|
|
15
24
|
"@huggingface/transformers": "^3.0.0",
|
|
16
25
|
"better-sqlite3": "^12.11.1",
|
|
@@ -18,13 +27,13 @@
|
|
|
18
27
|
"web-tree-sitter": "0.24.7"
|
|
19
28
|
},
|
|
20
29
|
"devDependencies": {
|
|
30
|
+
"@maind/code-index": "workspace:*",
|
|
31
|
+
"@maind/embedding": "workspace:*",
|
|
32
|
+
"@maind/project-key": "workspace:*",
|
|
21
33
|
"@types/node": "^20.11.0",
|
|
22
34
|
"esbuild": "^0.24.0",
|
|
23
35
|
"tsx": "^4.7.0",
|
|
24
|
-
"typescript": "^5.4.0"
|
|
25
|
-
"@maind/code-index": "0.0.0",
|
|
26
|
-
"@maind/embedding": "0.0.0",
|
|
27
|
-
"@maind/project-key": "0.0.0"
|
|
36
|
+
"typescript": "^5.4.0"
|
|
28
37
|
},
|
|
29
38
|
"engines": {
|
|
30
39
|
"node": ">=20.0.0"
|
|
@@ -39,13 +48,5 @@
|
|
|
39
48
|
"license": "MIT",
|
|
40
49
|
"publishConfig": {
|
|
41
50
|
"access": "public"
|
|
42
|
-
},
|
|
43
|
-
"scripts": {
|
|
44
|
-
"build": "node scripts/bundle.mjs",
|
|
45
|
-
"start": "node build/index.js",
|
|
46
|
-
"dev": "node --import tsx src/index.ts",
|
|
47
|
-
"test": "node --import tsx --test test/**/*.test.ts",
|
|
48
|
-
"type-check": "tsc --noEmit",
|
|
49
|
-
"typecheck": "tsc --noEmit"
|
|
50
51
|
}
|
|
51
|
-
}
|
|
52
|
+
}
|