@neurcode-ai/cli 0.19.8 → 0.20.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/dist/api-client.d.ts +4 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js.map +1 -1
- package/dist/commands/activate.d.ts +6 -0
- package/dist/commands/activate.d.ts.map +1 -1
- package/dist/commands/activate.js +24 -0
- package/dist/commands/activate.js.map +1 -1
- package/dist/commands/brain.d.ts.map +1 -1
- package/dist/commands/brain.js +60 -0
- package/dist/commands/brain.js.map +1 -1
- package/dist/commands/runtime-doctor.d.ts.map +1 -1
- package/dist/commands/runtime-doctor.js +24 -2
- package/dist/commands/runtime-doctor.js.map +1 -1
- package/dist/commands/runtime-identity.d.ts.map +1 -1
- package/dist/commands/runtime-identity.js +46 -1
- package/dist/commands/runtime-identity.js.map +1 -1
- package/dist/commands/runtime-sync.d.ts.map +1 -1
- package/dist/commands/runtime-sync.js +55 -0
- package/dist/commands/runtime-sync.js.map +1 -1
- package/dist/commands/session-hook.d.ts.map +1 -1
- package/dist/commands/session-hook.js +23 -0
- package/dist/commands/session-hook.js.map +1 -1
- package/dist/commands/session.d.ts +2 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +34 -17
- package/dist/commands/session.js.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime-build.json +5 -5
- package/dist/utils/RelevanceScorer.d.ts.map +1 -1
- package/dist/utils/RelevanceScorer.js +16 -9
- package/dist/utils/RelevanceScorer.js.map +1 -1
- package/dist/utils/brain-lifecycle.d.ts +43 -0
- package/dist/utils/brain-lifecycle.d.ts.map +1 -0
- package/dist/utils/brain-lifecycle.js +237 -0
- package/dist/utils/brain-lifecycle.js.map +1 -0
- package/dist/utils/cli-startup.d.ts.map +1 -1
- package/dist/utils/cli-startup.js +20 -0
- package/dist/utils/cli-startup.js.map +1 -1
- package/dist/utils/mcp-server-pin.d.ts +1 -1
- package/dist/utils/mcp-server-pin.js +2 -2
- package/dist/utils/runtime-authority.d.ts +27 -0
- package/dist/utils/runtime-authority.d.ts.map +1 -0
- package/dist/utils/runtime-authority.js +162 -0
- package/dist/utils/runtime-authority.js.map +1 -0
- package/dist/utils/runtime-companion.d.ts +30 -0
- package/dist/utils/runtime-companion.d.ts.map +1 -1
- package/dist/utils/runtime-companion.js +54 -2
- package/dist/utils/runtime-companion.js.map +1 -1
- package/dist/utils/runtime-outbox.d.ts.map +1 -1
- package/dist/utils/runtime-outbox.js +93 -1
- package/dist/utils/runtime-outbox.js.map +1 -1
- package/dist/utils/runtime-privacy.d.ts.map +1 -1
- package/dist/utils/runtime-privacy.js +52 -0
- package/dist/utils/runtime-privacy.js.map +1 -1
- package/dist/utils/v0-governance.d.ts +2 -1
- package/dist/utils/v0-governance.d.ts.map +1 -1
- package/dist/utils/v0-governance.js +192 -2
- package/dist/utils/v0-governance.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BRAIN_LIFECYCLE_SCHEMA_VERSION = void 0;
|
|
4
|
+
exports.brainLifecyclePath = brainLifecyclePath;
|
|
5
|
+
exports.readBrainLifecycle = readBrainLifecycle;
|
|
6
|
+
exports.writeBrainLifecycle = writeBrainLifecycle;
|
|
7
|
+
exports.inspectBrainLifecycle = inspectBrainLifecycle;
|
|
8
|
+
exports.markBrainBuilding = markBrainBuilding;
|
|
9
|
+
exports.markBrainIndexResult = markBrainIndexResult;
|
|
10
|
+
exports.markBrainFailed = markBrainFailed;
|
|
11
|
+
exports.scheduleBrainIndex = scheduleBrainIndex;
|
|
12
|
+
exports.cancelBrainIndex = cancelBrainIndex;
|
|
13
|
+
const node_child_process_1 = require("node:child_process");
|
|
14
|
+
const node_fs_1 = require("node:fs");
|
|
15
|
+
const node_path_1 = require("node:path");
|
|
16
|
+
const brain_1 = require("@neurcode-ai/brain");
|
|
17
|
+
const cli_entry_1 = require("./cli-entry");
|
|
18
|
+
exports.BRAIN_LIFECYCLE_SCHEMA_VERSION = 'neurcode.brain-lifecycle.v1';
|
|
19
|
+
function brainLifecyclePath(repoRoot) {
|
|
20
|
+
return (0, node_path_1.join)(repoRoot, '.neurcode', 'brain', 'lifecycle.json');
|
|
21
|
+
}
|
|
22
|
+
function recoveryCommands() {
|
|
23
|
+
return {
|
|
24
|
+
retry: 'neurcode brain retry',
|
|
25
|
+
cancel: 'neurcode brain cancel',
|
|
26
|
+
selectiveRebuild: 'neurcode brain repo-refresh --changed <paths>',
|
|
27
|
+
recover: 'neurcode brain repo-recover',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function defaultStatus(state = 'missing') {
|
|
31
|
+
return {
|
|
32
|
+
schemaVersion: exports.BRAIN_LIFECYCLE_SCHEMA_VERSION,
|
|
33
|
+
state,
|
|
34
|
+
updatedAt: new Date().toISOString(),
|
|
35
|
+
startedAt: null,
|
|
36
|
+
completedAt: null,
|
|
37
|
+
pid: null,
|
|
38
|
+
progress: {
|
|
39
|
+
filesScanned: 0,
|
|
40
|
+
filesIndexed: 0,
|
|
41
|
+
totalFiles: null,
|
|
42
|
+
percent: null,
|
|
43
|
+
},
|
|
44
|
+
freshness: null,
|
|
45
|
+
graphId: null,
|
|
46
|
+
generation: null,
|
|
47
|
+
reasonCodes: state === 'missing' ? ['graph_missing'] : [],
|
|
48
|
+
unsupportedFacts: [],
|
|
49
|
+
recoveryCommands: recoveryCommands(),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function readBrainLifecycle(repoRoot) {
|
|
53
|
+
const path = brainLifecyclePath(repoRoot);
|
|
54
|
+
if (!(0, node_fs_1.existsSync)(path))
|
|
55
|
+
return null;
|
|
56
|
+
try {
|
|
57
|
+
const parsed = JSON.parse((0, node_fs_1.readFileSync)(path, 'utf8'));
|
|
58
|
+
return parsed.schemaVersion === exports.BRAIN_LIFECYCLE_SCHEMA_VERSION ? parsed : null;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function writeBrainLifecycle(repoRoot, status) {
|
|
65
|
+
const path = brainLifecyclePath(repoRoot);
|
|
66
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(path), { recursive: true });
|
|
67
|
+
const temporary = `${path}.tmp.${process.pid}`;
|
|
68
|
+
(0, node_fs_1.writeFileSync)(temporary, `${JSON.stringify(status, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
|
|
69
|
+
(0, node_fs_1.renameSync)(temporary, path);
|
|
70
|
+
return status;
|
|
71
|
+
}
|
|
72
|
+
function lifecycleState(freshness) {
|
|
73
|
+
if (freshness.state === 'fresh')
|
|
74
|
+
return 'fresh';
|
|
75
|
+
if (freshness.state === 'partial')
|
|
76
|
+
return 'partial';
|
|
77
|
+
if (freshness.state === 'stale')
|
|
78
|
+
return 'stale';
|
|
79
|
+
if (freshness.state === 'missing')
|
|
80
|
+
return 'missing';
|
|
81
|
+
if (freshness.state === 'locked')
|
|
82
|
+
return 'building';
|
|
83
|
+
return 'failed';
|
|
84
|
+
}
|
|
85
|
+
function pidAlive(pid) {
|
|
86
|
+
if (!pid || pid <= 0)
|
|
87
|
+
return false;
|
|
88
|
+
try {
|
|
89
|
+
process.kill(pid, 0);
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async function inspectBrainLifecycle(repoRoot) {
|
|
97
|
+
const persisted = readBrainLifecycle(repoRoot);
|
|
98
|
+
const freshness = await (0, brain_1.repositoryGraphStatus)(repoRoot);
|
|
99
|
+
const graph = (0, brain_1.readRepositoryGraph)(repoRoot);
|
|
100
|
+
const indexedState = graph?.coverage.filesIndexed === 0 && graph.coverage.filesUnsupported > 0
|
|
101
|
+
? 'unsupported'
|
|
102
|
+
: lifecycleState(freshness);
|
|
103
|
+
const state = persisted?.state === 'scheduled' && pidAlive(persisted.pid)
|
|
104
|
+
? 'scheduled'
|
|
105
|
+
: persisted?.state === 'building' && pidAlive(persisted.pid)
|
|
106
|
+
? 'building'
|
|
107
|
+
: indexedState;
|
|
108
|
+
return {
|
|
109
|
+
...(persisted ?? defaultStatus(state)),
|
|
110
|
+
state,
|
|
111
|
+
updatedAt: new Date().toISOString(),
|
|
112
|
+
pid: state === 'scheduled' || state === 'building' ? persisted?.pid ?? null : null,
|
|
113
|
+
freshness,
|
|
114
|
+
graphId: graph?.graphId ?? null,
|
|
115
|
+
generation: graph?.generation ?? null,
|
|
116
|
+
progress: {
|
|
117
|
+
filesScanned: graph?.coverage.filesSeen ?? persisted?.progress.filesScanned ?? 0,
|
|
118
|
+
filesIndexed: graph?.coverage.filesIndexed ?? persisted?.progress.filesIndexed ?? 0,
|
|
119
|
+
totalFiles: graph?.coverage.filesSeen ?? persisted?.progress.totalFiles ?? null,
|
|
120
|
+
percent: graph?.coverage.filesSeen
|
|
121
|
+
? Math.round((graph.coverage.filesIndexed / graph.coverage.filesSeen) * 100)
|
|
122
|
+
: persisted?.progress.percent ?? null,
|
|
123
|
+
},
|
|
124
|
+
reasonCodes: freshness.reasonCodes,
|
|
125
|
+
unsupportedFacts: [
|
|
126
|
+
...(freshness.unsupportedFileCount > 0 ? ['unsupported_languages'] : []),
|
|
127
|
+
...(graph?.coverage.filesFailed ? ['failed_file_analysis'] : []),
|
|
128
|
+
...(graph?.coverage.filesSkipped ? ['skipped_file_analysis'] : []),
|
|
129
|
+
],
|
|
130
|
+
recoveryCommands: recoveryCommands(),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
function markBrainBuilding(repoRoot) {
|
|
134
|
+
const previous = readBrainLifecycle(repoRoot) ?? defaultStatus('building');
|
|
135
|
+
return writeBrainLifecycle(repoRoot, {
|
|
136
|
+
...previous,
|
|
137
|
+
state: 'building',
|
|
138
|
+
updatedAt: new Date().toISOString(),
|
|
139
|
+
startedAt: previous.startedAt ?? new Date().toISOString(),
|
|
140
|
+
completedAt: null,
|
|
141
|
+
pid: process.pid,
|
|
142
|
+
reasonCodes: ['index_in_progress'],
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
function markBrainIndexResult(repoRoot, result) {
|
|
146
|
+
const state = result.graph.coverage.filesIndexed === 0
|
|
147
|
+
&& result.graph.coverage.filesUnsupported > 0
|
|
148
|
+
? 'unsupported'
|
|
149
|
+
: result.graph.freshness.state === 'partial' ? 'partial' : 'fresh';
|
|
150
|
+
return writeBrainLifecycle(repoRoot, {
|
|
151
|
+
schemaVersion: exports.BRAIN_LIFECYCLE_SCHEMA_VERSION,
|
|
152
|
+
state,
|
|
153
|
+
updatedAt: new Date().toISOString(),
|
|
154
|
+
startedAt: readBrainLifecycle(repoRoot)?.startedAt ?? null,
|
|
155
|
+
completedAt: new Date().toISOString(),
|
|
156
|
+
pid: null,
|
|
157
|
+
progress: {
|
|
158
|
+
filesScanned: result.stats.filesScanned,
|
|
159
|
+
filesIndexed: result.graph.coverage.filesIndexed,
|
|
160
|
+
totalFiles: result.graph.coverage.filesSeen,
|
|
161
|
+
percent: result.graph.coverage.filesSeen
|
|
162
|
+
? Math.round((result.graph.coverage.filesIndexed / result.graph.coverage.filesSeen) * 100)
|
|
163
|
+
: 100,
|
|
164
|
+
},
|
|
165
|
+
freshness: result.graph.freshness,
|
|
166
|
+
graphId: result.graph.graphId,
|
|
167
|
+
generation: result.graph.generation,
|
|
168
|
+
reasonCodes: result.graph.freshness.reasonCodes,
|
|
169
|
+
unsupportedFacts: [
|
|
170
|
+
...(result.graph.coverage.filesUnsupported > 0 ? ['unsupported_languages'] : []),
|
|
171
|
+
...(result.graph.coverage.filesFailed ? ['failed_file_analysis'] : []),
|
|
172
|
+
...(result.graph.coverage.filesSkipped ? ['skipped_file_analysis'] : []),
|
|
173
|
+
],
|
|
174
|
+
recoveryCommands: recoveryCommands(),
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
function markBrainFailed(repoRoot, reasonCode) {
|
|
178
|
+
const previous = readBrainLifecycle(repoRoot) ?? defaultStatus('failed');
|
|
179
|
+
return writeBrainLifecycle(repoRoot, {
|
|
180
|
+
...previous,
|
|
181
|
+
state: 'failed',
|
|
182
|
+
updatedAt: new Date().toISOString(),
|
|
183
|
+
completedAt: new Date().toISOString(),
|
|
184
|
+
pid: null,
|
|
185
|
+
reasonCodes: [reasonCode],
|
|
186
|
+
recoveryCommands: recoveryCommands(),
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
async function scheduleBrainIndex(repoRoot, options = {}) {
|
|
190
|
+
const current = await inspectBrainLifecycle(repoRoot);
|
|
191
|
+
if (!options.force && (current.state === 'fresh' || current.state === 'partial'))
|
|
192
|
+
return current;
|
|
193
|
+
if (!options.force && (current.state === 'scheduled' || current.state === 'building') && pidAlive(current.pid))
|
|
194
|
+
return current;
|
|
195
|
+
const cliEntry = (0, cli_entry_1.getActiveCliEntry)();
|
|
196
|
+
const args = [
|
|
197
|
+
cliEntry,
|
|
198
|
+
'brain',
|
|
199
|
+
'repo-index',
|
|
200
|
+
'--max-files',
|
|
201
|
+
String(options.maxFiles ?? 8_000),
|
|
202
|
+
'--max-total-bytes',
|
|
203
|
+
String(options.maxTotalBytes ?? 256 * 1024 * 1024),
|
|
204
|
+
'--max-bytes-per-file',
|
|
205
|
+
String(options.maxBytesPerFile ?? 350_000),
|
|
206
|
+
'--json',
|
|
207
|
+
];
|
|
208
|
+
const child = (0, node_child_process_1.spawn)(process.execPath, args, {
|
|
209
|
+
cwd: repoRoot,
|
|
210
|
+
detached: true,
|
|
211
|
+
stdio: 'ignore',
|
|
212
|
+
env: {
|
|
213
|
+
...process.env,
|
|
214
|
+
NEURCODE_BRAIN_LIFECYCLE_CHILD: '1',
|
|
215
|
+
NEURCODE_CLI_SPAWN_ENTRY: cliEntry,
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
child.once('error', () => {
|
|
219
|
+
markBrainFailed(repoRoot, 'index_spawn_failed');
|
|
220
|
+
});
|
|
221
|
+
child.unref();
|
|
222
|
+
return writeBrainLifecycle(repoRoot, {
|
|
223
|
+
...defaultStatus('scheduled'),
|
|
224
|
+
state: 'scheduled',
|
|
225
|
+
startedAt: new Date().toISOString(),
|
|
226
|
+
pid: child.pid ?? null,
|
|
227
|
+
reasonCodes: ['activation_scheduled_index'],
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
function cancelBrainIndex(repoRoot) {
|
|
231
|
+
const current = readBrainLifecycle(repoRoot) ?? defaultStatus('missing');
|
|
232
|
+
if (pidAlive(current.pid)) {
|
|
233
|
+
process.kill(current.pid, 'SIGTERM');
|
|
234
|
+
}
|
|
235
|
+
return markBrainFailed(repoRoot, 'cancelled_by_operator');
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=brain-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain-lifecycle.js","sourceRoot":"","sources":["../../src/utils/brain-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-startup.d.ts","sourceRoot":"","sources":["../../src/utils/cli-startup.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cli-startup.d.ts","sourceRoot":"","sources":["../../src/utils/cli-startup.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,2BAA2B,EACjC,MAAM,0BAA0B,CAAC;AAyBlC,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GAAG,2BAA2B,GAAG,IAAI,CAwDrC;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM;;;;;;EAahE"}
|
|
@@ -15,6 +15,13 @@ function isSupervisorChild() {
|
|
|
15
15
|
function isIdentityCommand(argv) {
|
|
16
16
|
return argv.includes('runtime') && argv.includes('identity');
|
|
17
17
|
}
|
|
18
|
+
function isAuthorityBootstrapCommand(argv) {
|
|
19
|
+
return isIdentityCommand(argv)
|
|
20
|
+
|| (argv.includes('runtime') && argv.includes('repair'))
|
|
21
|
+
|| argv.includes('activate')
|
|
22
|
+
|| argv.includes('--version')
|
|
23
|
+
|| argv.includes('--help');
|
|
24
|
+
}
|
|
18
25
|
function runStartupConsistencyChecks(input) {
|
|
19
26
|
if (isIdentityCommand(input.argv)) {
|
|
20
27
|
return null;
|
|
@@ -53,6 +60,19 @@ function runStartupConsistencyChecks(input) {
|
|
|
53
60
|
process.exit(1);
|
|
54
61
|
}
|
|
55
62
|
}
|
|
63
|
+
if (!isAuthorityBootstrapCommand(input.argv)) {
|
|
64
|
+
const authority = (0, cli_runtime_1.assessRuntimeAuthority)({
|
|
65
|
+
repoRoot: process.cwd(),
|
|
66
|
+
current: report.identity,
|
|
67
|
+
adapter: 'cli',
|
|
68
|
+
protectedOperation: false,
|
|
69
|
+
manifest: (0, cli_runtime_1.readActivatedRuntimeManifest)(process.cwd()),
|
|
70
|
+
installations: report.installations,
|
|
71
|
+
});
|
|
72
|
+
if (!authority.ok) {
|
|
73
|
+
console.error(`[neurcode-cli] degraded runtime authority: ${authority.status}. Run \`${authority.repairCommand}\`.`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
56
76
|
return report;
|
|
57
77
|
}
|
|
58
78
|
function buildRuntimeIdentityPayload(bundledCliDir) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-startup.js","sourceRoot":"","sources":["../../src/utils/cli-startup.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"cli-startup.js","sourceRoot":"","sources":["../../src/utils/cli-startup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const MCP_SERVER_PACKAGE: "@neurcode-ai/mcp-server";
|
|
2
|
-
export declare const MIN_MCP_SERVER_VERSION: "0.
|
|
2
|
+
export declare const MIN_MCP_SERVER_VERSION: "0.3.1";
|
|
3
3
|
/** Legacy relative paths fail when Cursor MCP cwd is not the workspace root. */
|
|
4
4
|
export declare const PINNED_MCP_ENTRY_RELATIVE: "mcp-server/node_modules/@neurcode-ai/mcp-server/dist/index.js";
|
|
5
5
|
export declare function pinnedMcpBaseRoot(repoRoot: string, global?: boolean): string;
|
|
@@ -18,7 +18,7 @@ const node_os_1 = require("node:os");
|
|
|
18
18
|
const node_path_1 = require("node:path");
|
|
19
19
|
const node_child_process_1 = require("node:child_process");
|
|
20
20
|
exports.MCP_SERVER_PACKAGE = '@neurcode-ai/mcp-server';
|
|
21
|
-
exports.MIN_MCP_SERVER_VERSION = '0.
|
|
21
|
+
exports.MIN_MCP_SERVER_VERSION = '0.3.1';
|
|
22
22
|
/** Legacy relative paths fail when Cursor MCP cwd is not the workspace root. */
|
|
23
23
|
exports.PINNED_MCP_ENTRY_RELATIVE = 'mcp-server/node_modules/@neurcode-ai/mcp-server/dist/index.js';
|
|
24
24
|
function pinnedMcpBaseRoot(repoRoot, global = false) {
|
|
@@ -37,7 +37,7 @@ function ensurePinnedMcpServer(baseRoot) {
|
|
|
37
37
|
}
|
|
38
38
|
const installDir = mcpServerPinDir(baseRoot);
|
|
39
39
|
(0, node_fs_1.mkdirSync)(installDir, { recursive: true });
|
|
40
|
-
const versionsToTry = [exports.MIN_MCP_SERVER_VERSION, '0.
|
|
40
|
+
const versionsToTry = [exports.MIN_MCP_SERVER_VERSION, '0.3.0', '0.2.5'].filter((version, index, all) => all.indexOf(version) === index);
|
|
41
41
|
let lastMessage = `Failed to install pinned MCP server (${exports.MCP_SERVER_PACKAGE}).`;
|
|
42
42
|
for (const version of versionsToTry) {
|
|
43
43
|
const install = (0, node_child_process_1.spawnSync)('npm', [
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ActivatedRuntimeIntegration, type RuntimeAdapter, type RuntimeAuthorityAssessment } from '@neurcode-ai/cli-runtime';
|
|
2
|
+
import { type BrainLifecycleStatus } from './brain-lifecycle';
|
|
3
|
+
export interface RuntimeAuthorityRepairResult {
|
|
4
|
+
ok: true;
|
|
5
|
+
repoRoot: string;
|
|
6
|
+
manifestPath: string;
|
|
7
|
+
manifestHash: string;
|
|
8
|
+
changed: boolean;
|
|
9
|
+
integrations: ActivatedRuntimeIntegration[];
|
|
10
|
+
repaired: string[];
|
|
11
|
+
preserved: string[];
|
|
12
|
+
brain: BrainLifecycleStatus;
|
|
13
|
+
restartRequired: boolean;
|
|
14
|
+
nextCheck: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function recordActivatedRuntime(repoRootInput: string, adapters: RuntimeAdapter[]): Promise<{
|
|
17
|
+
manifestPath: string;
|
|
18
|
+
manifestHash: string;
|
|
19
|
+
changed: boolean;
|
|
20
|
+
brain: BrainLifecycleStatus;
|
|
21
|
+
}>;
|
|
22
|
+
export declare function repairRuntimeAuthority(repoRootInput: string): Promise<RuntimeAuthorityRepairResult>;
|
|
23
|
+
export declare function inspectRuntimeAuthority(repoRootInput: string, adapter?: RuntimeAdapter, protectedOperation?: boolean): RuntimeAuthorityAssessment;
|
|
24
|
+
export declare function assertProtectedRuntimeAuthority(repoRootInput: string, adapter: RuntimeAdapter | 'neurcode-cli'): RuntimeAuthorityAssessment;
|
|
25
|
+
export declare function runtimeManifestExists(repoRootInput: string): boolean;
|
|
26
|
+
export declare function activeRuntimeEntrypoint(): string;
|
|
27
|
+
//# sourceMappingURL=runtime-authority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-authority.d.ts","sourceRoot":"","sources":["../../src/utils/runtime-authority.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,2BAA2B,EAChC,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAC;AAWlC,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGlF,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,2BAA2B,EAAE,CAAC;IAC5C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAmED,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,cAAc,EAAE,GACzB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAAC,CAwBxG;AAED,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAqCzG;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,cAAsB,EAC/B,kBAAkB,UAAQ,GACzB,0BAA0B,CAY5B;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,cAAc,GAAG,0BAA0B,CAO3I;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordActivatedRuntime = recordActivatedRuntime;
|
|
4
|
+
exports.repairRuntimeAuthority = repairRuntimeAuthority;
|
|
5
|
+
exports.inspectRuntimeAuthority = inspectRuntimeAuthority;
|
|
6
|
+
exports.assertProtectedRuntimeAuthority = assertProtectedRuntimeAuthority;
|
|
7
|
+
exports.runtimeManifestExists = runtimeManifestExists;
|
|
8
|
+
exports.activeRuntimeEntrypoint = activeRuntimeEntrypoint;
|
|
9
|
+
const cli_runtime_1 = require("@neurcode-ai/cli-runtime");
|
|
10
|
+
const node_fs_1 = require("node:fs");
|
|
11
|
+
const node_path_1 = require("node:path");
|
|
12
|
+
const v0_governance_1 = require("./v0-governance");
|
|
13
|
+
const cli_entry_1 = require("./cli-entry");
|
|
14
|
+
const brain_lifecycle_1 = require("./brain-lifecycle");
|
|
15
|
+
const agent_adapter_setup_1 = require("./agent-adapter-setup");
|
|
16
|
+
const TARGETS = [
|
|
17
|
+
{ adapter: 'cli', enforcementLevel: 'cooperative' },
|
|
18
|
+
{ adapter: 'claude-code-hooks', enforcementLevel: 'hard_hook' },
|
|
19
|
+
{ adapter: 'copilot-hooks', enforcementLevel: 'hard_hook' },
|
|
20
|
+
{ adapter: 'codex-mcp', enforcementLevel: 'cooperative' },
|
|
21
|
+
{ adapter: 'cursor-mcp', enforcementLevel: 'cooperative' },
|
|
22
|
+
{ adapter: 'generic-mcp', enforcementLevel: 'cooperative' },
|
|
23
|
+
{ adapter: 'supervisor', enforcementLevel: 'supervised' },
|
|
24
|
+
{ adapter: 'daemon', enforcementLevel: 'observe_only' },
|
|
25
|
+
{ adapter: 'vscode-extension', enforcementLevel: 'observe_only' },
|
|
26
|
+
{ adapter: 'github-action', enforcementLevel: 'post_pr' },
|
|
27
|
+
];
|
|
28
|
+
function writeRuntimeWiring(repoRoot, entrypoint) {
|
|
29
|
+
const path = (0, node_path_1.join)(repoRoot, '.neurcode', 'runtime-wiring.json');
|
|
30
|
+
const payload = {
|
|
31
|
+
schemaVersion: 'neurcode.runtime-wiring.v1',
|
|
32
|
+
cliEntrypoint: entrypoint,
|
|
33
|
+
supervisor: { command: process.execPath, argsPrefix: [entrypoint] },
|
|
34
|
+
daemon: { command: process.execPath, argsPrefix: [entrypoint, 'daemon'] },
|
|
35
|
+
vscode: { command: process.execPath, argsPrefix: [entrypoint] },
|
|
36
|
+
action: { authority: 'post_pr', localRuntimeEntrypoint: entrypoint },
|
|
37
|
+
};
|
|
38
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(path), { recursive: true });
|
|
39
|
+
const temporary = `${path}.tmp.${process.pid}`;
|
|
40
|
+
(0, node_fs_1.writeFileSync)(temporary, `${JSON.stringify(payload, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
|
|
41
|
+
(0, node_fs_1.renameSync)(temporary, path);
|
|
42
|
+
return path;
|
|
43
|
+
}
|
|
44
|
+
function integrationsForCurrentRuntime(adapters) {
|
|
45
|
+
const identity = (0, cli_runtime_1.collectCliRuntimeIdentity)({ bundledCliDir: (0, cli_entry_1.bundledCliDir)() });
|
|
46
|
+
const activatedAt = new Date().toISOString();
|
|
47
|
+
return TARGETS
|
|
48
|
+
.filter((target) => adapters.includes(target.adapter))
|
|
49
|
+
.map((target) => ({
|
|
50
|
+
adapter: target.adapter,
|
|
51
|
+
enforcementLevel: target.enforcementLevel,
|
|
52
|
+
activatedAt,
|
|
53
|
+
absoluteEntrypoint: identity.entryRealPath,
|
|
54
|
+
buildHash: identity.buildFingerprint,
|
|
55
|
+
installationSource: identity.source === 'workspace' ? 'workspace_build' : identity.source === 'packaged' ? 'packaged_artifact' : 'registry',
|
|
56
|
+
machinePinned: target.adapter === 'claude-code-hooks' || target.adapter === 'copilot-hooks',
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
function sameActivation(existing, next) {
|
|
60
|
+
if (!existing)
|
|
61
|
+
return false;
|
|
62
|
+
return existing.repositoryHash === next.repositoryHash
|
|
63
|
+
&& existing.profileHash === next.profileHash
|
|
64
|
+
&& existing.runtime.cliVersion === next.runtime.cliVersion
|
|
65
|
+
&& existing.runtime.packageOrBuildHash === next.runtime.packageOrBuildHash
|
|
66
|
+
&& existing.runtime.absoluteEntrypoint === next.runtime.absoluteEntrypoint
|
|
67
|
+
&& JSON.stringify(existing.integrations.map(({ activatedAt: _activatedAt, ...rest }) => rest))
|
|
68
|
+
=== JSON.stringify(next.integrations.map(({ activatedAt: _activatedAt, ...rest }) => rest));
|
|
69
|
+
}
|
|
70
|
+
async function recordActivatedRuntime(repoRootInput, adapters) {
|
|
71
|
+
const repoRoot = (0, v0_governance_1.resolveRepoRoot)(repoRootInput);
|
|
72
|
+
const profile = (0, v0_governance_1.ensureFreshGovernanceProfile)(repoRoot).profile;
|
|
73
|
+
const identity = (0, cli_runtime_1.collectCliRuntimeIdentity)({ bundledCliDir: (0, cli_entry_1.bundledCliDir)() });
|
|
74
|
+
const existing = (0, cli_runtime_1.readActivatedRuntimeManifest)(repoRoot);
|
|
75
|
+
const existingAdapters = existing?.integrations.map((integration) => integration.adapter) ?? [];
|
|
76
|
+
const allAdapters = Array.from(new Set([...existingAdapters, ...adapters, 'cli']));
|
|
77
|
+
const next = (0, cli_runtime_1.createActivatedRuntimeManifest)({
|
|
78
|
+
repoRoot,
|
|
79
|
+
profileHash: profile.profileHash,
|
|
80
|
+
identity,
|
|
81
|
+
integrations: integrationsForCurrentRuntime(allAdapters),
|
|
82
|
+
});
|
|
83
|
+
const changed = !sameActivation(existing, next);
|
|
84
|
+
const manifest = changed ? next : existing;
|
|
85
|
+
if (changed)
|
|
86
|
+
(0, cli_runtime_1.writeActivatedRuntimeManifest)(repoRoot, manifest);
|
|
87
|
+
writeRuntimeWiring(repoRoot, identity.entryRealPath);
|
|
88
|
+
const brain = await (0, brain_lifecycle_1.scheduleBrainIndex)(repoRoot);
|
|
89
|
+
return {
|
|
90
|
+
manifestPath: (0, cli_runtime_1.runtimeManifestPath)(repoRoot),
|
|
91
|
+
manifestHash: manifest.manifestHash,
|
|
92
|
+
changed,
|
|
93
|
+
brain,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
async function repairRuntimeAuthority(repoRootInput) {
|
|
97
|
+
const repoRoot = (0, v0_governance_1.resolveRepoRoot)(repoRootInput);
|
|
98
|
+
const repaired = [];
|
|
99
|
+
const preserved = [];
|
|
100
|
+
const claudeHooks = (0, v0_governance_1.installClaudeGovernanceHooks)(repoRoot, { force: true });
|
|
101
|
+
repaired.push(...claudeHooks.repaired, ...claudeHooks.added);
|
|
102
|
+
preserved.push(...claudeHooks.preserved);
|
|
103
|
+
const claudeMcp = (0, v0_governance_1.installClaudeMcpConfig)({ force: true });
|
|
104
|
+
repaired.push(...claudeMcp.repaired, ...claudeMcp.added);
|
|
105
|
+
preserved.push(...claudeMcp.preserved);
|
|
106
|
+
const copilot = (0, v0_governance_1.installCopilotGovernanceHooks)(repoRoot, { force: true });
|
|
107
|
+
repaired.push(...copilot.repaired, ...copilot.added);
|
|
108
|
+
preserved.push(...copilot.preserved);
|
|
109
|
+
for (const target of ['codex', 'cursor', 'vscode']) {
|
|
110
|
+
const result = (0, agent_adapter_setup_1.writeAgentSetup)({ target, repoRoot });
|
|
111
|
+
if (result.status === 'written')
|
|
112
|
+
repaired.push(`${target}:${result.configPath ?? 'configuration'}`);
|
|
113
|
+
else
|
|
114
|
+
preserved.push(`${target}:${result.configPath ?? 'configuration'}`);
|
|
115
|
+
}
|
|
116
|
+
const activation = await recordActivatedRuntime(repoRoot, TARGETS.map((target) => target.adapter));
|
|
117
|
+
if (activation.changed)
|
|
118
|
+
repaired.push('runtime-manifest', 'runtime-wiring');
|
|
119
|
+
else
|
|
120
|
+
preserved.push('runtime-manifest', 'runtime-wiring');
|
|
121
|
+
return {
|
|
122
|
+
ok: true,
|
|
123
|
+
repoRoot,
|
|
124
|
+
manifestPath: activation.manifestPath,
|
|
125
|
+
manifestHash: activation.manifestHash,
|
|
126
|
+
changed: activation.changed || repaired.length > 0,
|
|
127
|
+
integrations: (0, cli_runtime_1.readActivatedRuntimeManifest)(repoRoot)?.integrations ?? [],
|
|
128
|
+
repaired: Array.from(new Set(repaired)).sort(),
|
|
129
|
+
preserved: Array.from(new Set(preserved)).sort(),
|
|
130
|
+
brain: activation.brain,
|
|
131
|
+
restartRequired: claudeHooks.restartRequired || claudeMcp.restartRequired || copilot.restartRequired,
|
|
132
|
+
nextCheck: 'neurcode runtime identity --json',
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function inspectRuntimeAuthority(repoRootInput, adapter = 'cli', protectedOperation = false) {
|
|
136
|
+
const repoRoot = (0, v0_governance_1.resolveRepoRoot)(repoRootInput);
|
|
137
|
+
const profile = (0, v0_governance_1.ensureFreshGovernanceProfile)(repoRoot).profile;
|
|
138
|
+
const current = (0, cli_runtime_1.collectCliRuntimeIdentity)({ bundledCliDir: (0, cli_entry_1.bundledCliDir)() });
|
|
139
|
+
return (0, cli_runtime_1.assessRuntimeAuthority)({
|
|
140
|
+
repoRoot,
|
|
141
|
+
profileHash: profile.profileHash,
|
|
142
|
+
current,
|
|
143
|
+
adapter,
|
|
144
|
+
protectedOperation,
|
|
145
|
+
installations: (0, cli_runtime_1.discoverCliInstallations)({ repoRoot, bundledCliDir: (0, cli_entry_1.bundledCliDir)() }),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
function assertProtectedRuntimeAuthority(repoRootInput, adapter) {
|
|
149
|
+
const assessment = inspectRuntimeAuthority(repoRootInput, adapter === 'neurcode-cli' ? 'cli' : adapter, true);
|
|
150
|
+
if (!assessment.protectedOperationAllowed) {
|
|
151
|
+
const detail = assessment.mismatches.map((mismatch) => `- ${mismatch.message}`).join('\n');
|
|
152
|
+
throw new Error(`Protected operation denied by runtime identity authority.\n${detail}\nRun \`${assessment.repairCommand}\`.`);
|
|
153
|
+
}
|
|
154
|
+
return assessment;
|
|
155
|
+
}
|
|
156
|
+
function runtimeManifestExists(repoRootInput) {
|
|
157
|
+
return (0, node_fs_1.existsSync)((0, cli_runtime_1.runtimeManifestPath)((0, v0_governance_1.resolveRepoRoot)(repoRootInput)));
|
|
158
|
+
}
|
|
159
|
+
function activeRuntimeEntrypoint() {
|
|
160
|
+
return (0, cli_entry_1.getActiveCliEntry)();
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=runtime-authority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-authority.js","sourceRoot":"","sources":["../../src/utils/runtime-authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { normalizeArchitectureObligationPolicy, summarizeArchitectureObligations, type AgentPlan, type AgentPlanAmendmentProposal, type ArchitectureObligation, type GovernanceSession, type SessionEvent } from '@neurcode-ai/governance-runtime';
|
|
2
2
|
import { type ProfileFreshnessSignal } from './v0-governance';
|
|
3
3
|
import { type RuntimeOutboxStatus } from './runtime-outbox';
|
|
4
|
+
import { readBrainLifecycle } from './brain-lifecycle';
|
|
5
|
+
import { inspectRuntimeAuthority } from './runtime-authority';
|
|
4
6
|
export declare const RUNTIME_COMPANION_SCHEMA_VERSION: "neurcode.runtime-companion.v1";
|
|
5
7
|
export interface RuntimeCompanionPlan {
|
|
6
8
|
revision: number;
|
|
@@ -64,6 +66,26 @@ export interface RuntimeCompanionSnapshot {
|
|
|
64
66
|
hardDenyAvailable: false;
|
|
65
67
|
detail: string;
|
|
66
68
|
};
|
|
69
|
+
runtimeAuthority: ReturnType<typeof inspectRuntimeAuthority>;
|
|
70
|
+
pairing: {
|
|
71
|
+
repositoryOwnershipBound: boolean;
|
|
72
|
+
machineAuthenticated: boolean;
|
|
73
|
+
agentIntegrationActive: boolean;
|
|
74
|
+
cloudTransportConnected: boolean;
|
|
75
|
+
repoBrainReady: boolean;
|
|
76
|
+
governedSessionActive: boolean;
|
|
77
|
+
evidenceSynchronized: boolean;
|
|
78
|
+
};
|
|
79
|
+
topology: null | {
|
|
80
|
+
artifactHash: string;
|
|
81
|
+
trackedFileCount: number;
|
|
82
|
+
deterministicFacts: number;
|
|
83
|
+
advisoryFacts: number;
|
|
84
|
+
brainParticipated: boolean;
|
|
85
|
+
brainFreshness: string | null;
|
|
86
|
+
limitations: string[];
|
|
87
|
+
};
|
|
88
|
+
brain: ReturnType<typeof readBrainLifecycle>;
|
|
67
89
|
profileFreshness: ProfileFreshnessSignal & {
|
|
68
90
|
sessionProfileHash: string | null;
|
|
69
91
|
};
|
|
@@ -73,12 +95,20 @@ export interface RuntimeCompanionSnapshot {
|
|
|
73
95
|
session: null | {
|
|
74
96
|
sessionId: string;
|
|
75
97
|
status: GovernanceSession['status'];
|
|
98
|
+
completionStatus: GovernanceSession['completionStatus'] | null;
|
|
76
99
|
repoName: string;
|
|
77
100
|
goal: string;
|
|
78
101
|
profileHash: string;
|
|
79
102
|
scopeMode: GovernanceSession['contract']['scopeMode'];
|
|
80
103
|
planCoherenceMode: NonNullable<GovernanceSession['contract']['planCoherenceMode']>;
|
|
81
104
|
allowedGlobs: string[];
|
|
105
|
+
scopeEvidence: Array<{
|
|
106
|
+
glob: string;
|
|
107
|
+
evidenceType: string;
|
|
108
|
+
authority: 'deterministic' | 'advisory' | 'explicit';
|
|
109
|
+
confidence: string;
|
|
110
|
+
reason: string;
|
|
111
|
+
}>;
|
|
82
112
|
approvalRequiredGlobs: string[];
|
|
83
113
|
approvedPaths: string[];
|
|
84
114
|
launcher: null | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-companion.d.ts","sourceRoot":"","sources":["../../src/utils/runtime-companion.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,qCAAqC,EACrC,gCAAgC,EAChC,KAAK,SAAS,EACd,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-companion.d.ts","sourceRoot":"","sources":["../../src/utils/runtime-companion.ts"],"names":[],"mappings":"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"}
|