@neurcode-ai/cli 0.20.5 → 0.20.6
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/dist/commands/brain.d.ts.map +1 -1
- package/dist/commands/brain.js +39 -16
- package/dist/commands/brain.js.map +1 -1
- package/dist/commands/integrations.d.ts +8 -0
- package/dist/commands/integrations.d.ts.map +1 -0
- package/dist/commands/integrations.js +126 -0
- package/dist/commands/integrations.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime-build.json +5 -5
- package/dist/utils/brain-scale-status.d.ts +90 -0
- package/dist/utils/brain-scale-status.d.ts.map +1 -0
- package/dist/utils/brain-scale-status.js +178 -0
- package/dist/utils/brain-scale-status.js.map +1 -0
- package/dist/utils/integrations-doctor.d.ts +20 -0
- package/dist/utils/integrations-doctor.d.ts.map +1 -0
- package/dist/utils/integrations-doctor.js +510 -0
- package/dist/utils/integrations-doctor.js.map +1 -0
- package/dist/utils/repo-graph-impact.d.ts.map +1 -1
- package/dist/utils/repo-graph-impact.js +11 -7
- package/dist/utils/repo-graph-impact.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BRAIN_SCALE_STATUS_SCHEMA_VERSION = void 0;
|
|
4
|
+
exports.buildBrainScaleStatus = buildBrainScaleStatus;
|
|
5
|
+
/**
|
|
6
|
+
* Shared honest "scale status" builder (Scale V4 / D3a).
|
|
7
|
+
*
|
|
8
|
+
* Single source of truth for what the local repository brain knows, how it is
|
|
9
|
+
* stored, where caps bind, and what to run next. `readiness --json`,
|
|
10
|
+
* `repo-status --json`, and the impact projection all read from this builder so
|
|
11
|
+
* the runtime never reports three different stories about the same graph.
|
|
12
|
+
*
|
|
13
|
+
* Everything here is source-free: only counts, reason codes, byte sizes, and
|
|
14
|
+
* backend identifiers — never paths' contents, diffs, or symbol bodies.
|
|
15
|
+
*/
|
|
16
|
+
const brain_1 = require("@neurcode-ai/brain");
|
|
17
|
+
const brain_lifecycle_1 = require("./brain-lifecycle");
|
|
18
|
+
exports.BRAIN_SCALE_STATUS_SCHEMA_VERSION = 'neurcode.brain-scale-status.v1';
|
|
19
|
+
function uniqueSorted(values) {
|
|
20
|
+
return [...new Set(values)].sort();
|
|
21
|
+
}
|
|
22
|
+
function scaleRecommendation(input) {
|
|
23
|
+
if (!input.indexed) {
|
|
24
|
+
return 'Run `neurcode brain repo-index` to build the source-free local graph.';
|
|
25
|
+
}
|
|
26
|
+
if (input.acceleratedFallbackToPortable) {
|
|
27
|
+
return 'NEURCODE_GRAPH_STORE requested accelerated SQLite but the native probe failed — '
|
|
28
|
+
+ 'using portable JSON (full rewrite each index). Install the native module or run the '
|
|
29
|
+
+ 'authority gate, then re-index.';
|
|
30
|
+
}
|
|
31
|
+
const acceleratedRequested = input.resolvedMode === 'sqlite' || input.resolvedMode === 'auto';
|
|
32
|
+
if (input.backend === 'portable' && acceleratedRequested && input.nativeProbeOk) {
|
|
33
|
+
return 'Accelerated store requested and native probe succeeds — run '
|
|
34
|
+
+ '`NEURCODE_GRAPH_STORE=sqlite neurcode brain repo-index` to migrate the portable graph to SQLite.';
|
|
35
|
+
}
|
|
36
|
+
if (input.backend === 'portable'
|
|
37
|
+
&& input.trackedFiles != null
|
|
38
|
+
&& input.trackedFiles > brain_1.AUTO_STORE_TRACKED_FILE_THRESHOLD) {
|
|
39
|
+
return `Repository has ${input.trackedFiles} tracked files (> ${brain_1.AUTO_STORE_TRACKED_FILE_THRESHOLD}); `
|
|
40
|
+
+ 'set NEURCODE_GRAPH_STORE=auto for bounded SQLite incremental before large-repo pilots.';
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
function scaleNextCommand(input) {
|
|
45
|
+
if (!input.indexed || input.acceleratedFallbackToPortable)
|
|
46
|
+
return 'neurcode brain repo-index';
|
|
47
|
+
const acceleratedRequested = input.resolvedMode === 'sqlite' || input.resolvedMode === 'auto';
|
|
48
|
+
if (input.backend === 'portable' && acceleratedRequested && input.nativeProbeOk) {
|
|
49
|
+
return 'NEURCODE_GRAPH_STORE=sqlite neurcode brain repo-index';
|
|
50
|
+
}
|
|
51
|
+
return 'neurcode brain repo-refresh';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Build the unified scale status. Synchronous and side-effect free: it only
|
|
55
|
+
* reads the metadata sidecar, the store selection, and the lifecycle record.
|
|
56
|
+
* Callers that already computed live freshness (readiness / repo-status) pass it
|
|
57
|
+
* in via `liveFreshness`; otherwise the recorded metadata freshness is used.
|
|
58
|
+
*/
|
|
59
|
+
function buildBrainScaleStatus(repoRoot, opts = {}) {
|
|
60
|
+
const selection = (0, brain_1.resolveReadStoreSelection)(repoRoot);
|
|
61
|
+
const metadata = (0, brain_1.readRepositoryGraphMetadata)(repoRoot);
|
|
62
|
+
const lifecycle = (0, brain_lifecycle_1.readBrainLifecycle)(repoRoot);
|
|
63
|
+
const probe = (0, brain_1.probeNativeGraphStore)();
|
|
64
|
+
const resolvedMode = (0, brain_1.resolveRepositoryGraphStoreMode)(repoRoot);
|
|
65
|
+
const envRaw = (process.env.NEURCODE_GRAPH_STORE ?? '').trim().toLowerCase();
|
|
66
|
+
const envExplicit = ['sqlite', 'native', 'auto', 'portable', 'json'].includes(envRaw);
|
|
67
|
+
const modeReason = envExplicit
|
|
68
|
+
? 'env_explicit'
|
|
69
|
+
: resolvedMode === 'auto'
|
|
70
|
+
? 'auto_tracked_threshold'
|
|
71
|
+
: 'portable_default';
|
|
72
|
+
const ca = metadata?.coverageAuthority ?? null;
|
|
73
|
+
const limits = metadata?.limits ?? null;
|
|
74
|
+
const indexed = Boolean(metadata);
|
|
75
|
+
const acceleratedRequested = resolvedMode === 'sqlite' || resolvedMode === 'auto';
|
|
76
|
+
const acceleratedFallbackToPortable = acceleratedRequested && selection.backend === 'portable' && !probe.ok;
|
|
77
|
+
const freshnessSource = opts.liveFreshness ?? metadata?.freshness ?? null;
|
|
78
|
+
const eligibleFiles = ca?.eligibleFiles ?? null;
|
|
79
|
+
const indexedFiles = ca?.indexedFiles ?? null;
|
|
80
|
+
const coveragePercent = eligibleFiles != null && eligibleFiles > 0 && indexedFiles != null
|
|
81
|
+
? Number(((indexedFiles / eligibleFiles) * 100).toFixed(1))
|
|
82
|
+
: null;
|
|
83
|
+
const incrementalPathUsed = [
|
|
84
|
+
...(freshnessSource?.reasonCodes ?? []),
|
|
85
|
+
...(lifecycle?.reasonCodes ?? []),
|
|
86
|
+
].includes('bounded_sqlite_incremental');
|
|
87
|
+
const trackedFiles = ca?.trackedFiles ?? null;
|
|
88
|
+
// When coverage-authority metadata is absent (e.g. a legacy portable artifact),
|
|
89
|
+
// fall back to freshness/limit reason codes so the caps surface never claims a
|
|
90
|
+
// cap is "not reached" while freshness already reports it binding (D3a honesty).
|
|
91
|
+
const capReasonCodes = new Set([
|
|
92
|
+
...(freshnessSource?.reasonCodes ?? []),
|
|
93
|
+
...(ca?.reasonCodes ?? []),
|
|
94
|
+
]);
|
|
95
|
+
const fileCapReached = ca?.fileCapReached
|
|
96
|
+
?? (capReasonCodes.has('file_limit') || capReasonCodes.has('file_cap_reached'));
|
|
97
|
+
const nodeCapReached = ca?.nodeCapReached
|
|
98
|
+
?? (capReasonCodes.has('node_limit_reached') || capReasonCodes.has('node_cap_reached'));
|
|
99
|
+
const edgeCapReached = ca?.edgeCapReached
|
|
100
|
+
?? (capReasonCodes.has('edge_limit_reached') || capReasonCodes.has('edge_cap_reached'));
|
|
101
|
+
return {
|
|
102
|
+
schemaVersion: exports.BRAIN_SCALE_STATUS_SCHEMA_VERSION,
|
|
103
|
+
indexed,
|
|
104
|
+
storage: {
|
|
105
|
+
resolvedMode,
|
|
106
|
+
modeReason,
|
|
107
|
+
backend: selection.backend,
|
|
108
|
+
backendReasonCode: selection.reasonCode ?? null,
|
|
109
|
+
nativeProbeOk: probe.ok,
|
|
110
|
+
acceleratedFallbackToPortable,
|
|
111
|
+
autoStoreTrackedFileThreshold: brain_1.AUTO_STORE_TRACKED_FILE_THRESHOLD,
|
|
112
|
+
bytes: metadata?.graphBytes ?? null,
|
|
113
|
+
recommendation: scaleRecommendation({
|
|
114
|
+
indexed,
|
|
115
|
+
backend: selection.backend,
|
|
116
|
+
resolvedMode,
|
|
117
|
+
acceleratedFallbackToPortable,
|
|
118
|
+
nativeProbeOk: probe.ok,
|
|
119
|
+
trackedFiles,
|
|
120
|
+
}),
|
|
121
|
+
},
|
|
122
|
+
freshness: {
|
|
123
|
+
state: freshnessSource?.state ?? null,
|
|
124
|
+
posture: freshnessSource?.posture ?? null,
|
|
125
|
+
reasonCodes: [...(freshnessSource?.reasonCodes ?? [])],
|
|
126
|
+
},
|
|
127
|
+
coverage: {
|
|
128
|
+
impactAuthority: ca?.impactAuthority ?? null,
|
|
129
|
+
coverageComplete: ca?.coverageComplete ?? null,
|
|
130
|
+
trackedFiles,
|
|
131
|
+
eligibleFiles,
|
|
132
|
+
discoveredFiles: ca?.discoveredFiles ?? null,
|
|
133
|
+
indexedFiles,
|
|
134
|
+
omittedFiles: ca?.omittedFiles ?? null,
|
|
135
|
+
coveragePercent,
|
|
136
|
+
omittedPackages: ca?.omittedPackages ?? [],
|
|
137
|
+
omittedPathPrefixes: ca?.omittedPathPrefixes?.slice(0, 12) ?? [],
|
|
138
|
+
},
|
|
139
|
+
caps: {
|
|
140
|
+
maxFiles: limits?.maxFiles ?? null,
|
|
141
|
+
maxNodes: limits?.maxNodes ?? null,
|
|
142
|
+
maxEdges: limits?.maxEdges ?? null,
|
|
143
|
+
nodeCount: metadata?.nodeCount ?? null,
|
|
144
|
+
edgeCount: metadata?.edgeCount ?? null,
|
|
145
|
+
fileCapReached,
|
|
146
|
+
nodeCapReached,
|
|
147
|
+
edgeCapReached,
|
|
148
|
+
},
|
|
149
|
+
timings: {
|
|
150
|
+
lastSource: lifecycle?.source ?? null,
|
|
151
|
+
lastState: lifecycle?.state ?? null,
|
|
152
|
+
lastDurationMs: lifecycle?.elapsedMs ?? null,
|
|
153
|
+
peakRssMb: lifecycle?.peakRssMb ?? null,
|
|
154
|
+
peakRssMeasurement: lifecycle?.peakRssMeasurement ?? null,
|
|
155
|
+
incrementalPathUsed,
|
|
156
|
+
},
|
|
157
|
+
// Derived from the persisted per-language coverage in the metadata sidecar
|
|
158
|
+
// (depth + facts only) — no full-graph load, no source. Always emits the
|
|
159
|
+
// seven roadmap languages; coverageComplete gates per-query authority, not
|
|
160
|
+
// these per-language capability tiers.
|
|
161
|
+
languageMatrix: (0, brain_1.buildLanguageCoverageMatrix)({
|
|
162
|
+
coverageLanguages: metadata?.coverage?.languages ?? null,
|
|
163
|
+
coverageComplete: ca?.coverageComplete ?? null,
|
|
164
|
+
}),
|
|
165
|
+
notEvaluatedReasons: uniqueSorted([
|
|
166
|
+
...(ca?.reasonCodes ?? []),
|
|
167
|
+
...(freshnessSource?.reasonCodes ?? []),
|
|
168
|
+
]),
|
|
169
|
+
nextCommand: scaleNextCommand({
|
|
170
|
+
indexed,
|
|
171
|
+
backend: selection.backend,
|
|
172
|
+
resolvedMode,
|
|
173
|
+
acceleratedFallbackToPortable,
|
|
174
|
+
nativeProbeOk: probe.ok,
|
|
175
|
+
}),
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=brain-scale-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain-scale-status.js","sourceRoot":"","sources":["../../src/utils/brain-scale-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type IntegrationsCompatibilityReport } from '@neurcode-ai/contracts';
|
|
2
|
+
/** Live-read version sources for the report. All optional / null-safe. */
|
|
3
|
+
export interface IntegrationsVersionSources {
|
|
4
|
+
cli: string | null;
|
|
5
|
+
action: string | null;
|
|
6
|
+
vscodeExtension: string | null;
|
|
7
|
+
vscodeNewestVsix: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface IntegrationsDoctorInput {
|
|
10
|
+
generatedAt: string;
|
|
11
|
+
versions: IntegrationsVersionSources;
|
|
12
|
+
}
|
|
13
|
+
export declare function buildIntegrationsCompatibilityReport(input: IntegrationsDoctorInput): IntegrationsCompatibilityReport;
|
|
14
|
+
/**
|
|
15
|
+
* Read the live version sources from repo manifests. `repoRoot` is the monorepo
|
|
16
|
+
* root; `cliVersion` is passed in (the running CLI's own version) so the report
|
|
17
|
+
* reflects the actual engine, not a manifest guess.
|
|
18
|
+
*/
|
|
19
|
+
export declare function collectIntegrationsVersionSources(repoRoot: string, cliVersion: string | null): IntegrationsVersionSources;
|
|
20
|
+
//# sourceMappingURL=integrations-doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations-doctor.d.ts","sourceRoot":"","sources":["../../src/utils/integrations-doctor.ts"],"names":[],"mappings":"AA+BA,OAAO,EAIL,KAAK,+BAA+B,EAUrC,MAAM,wBAAwB,CAAC;AAwGhC,0EAA0E;AAC1E,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,0BAA0B,CAAC;CACtC;AAgTD,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,uBAAuB,GAC7B,+BAA+B,CAiFjC;AAgCD;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,0BAA0B,CAO5B"}
|