@neurcode-ai/cli 0.14.0 → 0.15.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/README.md +60 -8
- package/dist/api-client.d.ts +284 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +111 -0
- package/dist/api-client.js.map +1 -1
- package/dist/commands/activate.d.ts +82 -0
- package/dist/commands/activate.d.ts.map +1 -0
- package/dist/commands/activate.js +551 -0
- package/dist/commands/activate.js.map +1 -0
- package/dist/commands/admission.d.ts +67 -0
- package/dist/commands/admission.d.ts.map +1 -0
- package/dist/commands/admission.js +350 -0
- package/dist/commands/admission.js.map +1 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +2045 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/demo.d.ts +3 -0
- package/dist/commands/demo.d.ts.map +1 -0
- package/dist/commands/demo.js +102 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +58 -44
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +44 -22
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/profile.d.ts +14 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +118 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/quickstart.d.ts +2 -2
- package/dist/commands/quickstart.d.ts.map +1 -1
- package/dist/commands/quickstart.js +31 -30
- package/dist/commands/quickstart.js.map +1 -1
- package/dist/commands/remediate-export.d.ts +6 -1
- package/dist/commands/remediate-export.d.ts.map +1 -1
- package/dist/commands/remediate-export.js +359 -7
- package/dist/commands/remediate-export.js.map +1 -1
- package/dist/commands/replay.d.ts.map +1 -1
- package/dist/commands/replay.js +84 -0
- package/dist/commands/replay.js.map +1 -1
- package/dist/commands/run.d.ts +3 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +98 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/runtime-adapter.d.ts +8 -0
- package/dist/commands/runtime-adapter.d.ts.map +1 -0
- package/dist/commands/runtime-adapter.js +375 -0
- package/dist/commands/runtime-adapter.js.map +1 -0
- package/dist/commands/runtime-doctor.d.ts +6 -0
- package/dist/commands/runtime-doctor.d.ts.map +1 -0
- package/dist/commands/runtime-doctor.js +478 -0
- package/dist/commands/runtime-doctor.js.map +1 -0
- package/dist/commands/runtime-report.d.ts +13 -0
- package/dist/commands/runtime-report.d.ts.map +1 -0
- package/dist/commands/runtime-report.js +81 -0
- package/dist/commands/runtime-report.js.map +1 -0
- package/dist/commands/runtime-sync.d.ts +17 -0
- package/dist/commands/runtime-sync.d.ts.map +1 -0
- package/dist/commands/runtime-sync.js +656 -0
- package/dist/commands/runtime-sync.js.map +1 -0
- package/dist/commands/runtime.d.ts +16 -0
- package/dist/commands/runtime.d.ts.map +1 -0
- package/dist/commands/runtime.js +380 -0
- package/dist/commands/runtime.js.map +1 -0
- package/dist/commands/session-hook.d.ts +35 -0
- package/dist/commands/session-hook.d.ts.map +1 -0
- package/dist/commands/session-hook.js +1297 -0
- package/dist/commands/session-hook.js.map +1 -0
- package/dist/commands/session.d.ts +91 -0
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +1226 -0
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/whoami.d.ts +7 -4
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +59 -34
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +24 -5
- package/dist/config.js.map +1 -1
- package/dist/daemon/routes.d.ts.map +1 -1
- package/dist/daemon/routes.js +8 -0
- package/dist/daemon/routes.js.map +1 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +88 -0
- package/dist/daemon/server.js.map +1 -1
- package/dist/governance/impact-analysis.d.ts +27 -0
- package/dist/governance/impact-analysis.d.ts.map +1 -0
- package/dist/governance/impact-analysis.js +274 -0
- package/dist/governance/impact-analysis.js.map +1 -0
- package/dist/index.js +472 -29
- package/dist/index.js.map +1 -1
- package/dist/intent-engine/matcher.d.ts.map +1 -1
- package/dist/intent-engine/matcher.js +3 -12
- package/dist/intent-engine/matcher.js.map +1 -1
- package/dist/utils/admission-artifact.d.ts +59 -0
- package/dist/utils/admission-artifact.d.ts.map +1 -0
- package/dist/utils/admission-artifact.js +410 -0
- package/dist/utils/admission-artifact.js.map +1 -0
- package/dist/utils/agent-adapter-setup.d.ts +80 -0
- package/dist/utils/agent-adapter-setup.d.ts.map +1 -0
- package/dist/utils/agent-adapter-setup.js +577 -0
- package/dist/utils/agent-adapter-setup.js.map +1 -0
- package/dist/utils/agent-guard-supervisor.d.ts +75 -0
- package/dist/utils/agent-guard-supervisor.d.ts.map +1 -0
- package/dist/utils/agent-guard-supervisor.js +388 -0
- package/dist/utils/agent-guard-supervisor.js.map +1 -0
- package/dist/utils/agent-guard.d.ts +92 -0
- package/dist/utils/agent-guard.d.ts.map +1 -0
- package/dist/utils/agent-guard.js +326 -0
- package/dist/utils/agent-guard.js.map +1 -0
- package/dist/utils/agent-session-launcher.d.ts +89 -0
- package/dist/utils/agent-session-launcher.d.ts.map +1 -0
- package/dist/utils/agent-session-launcher.js +308 -0
- package/dist/utils/agent-session-launcher.js.map +1 -0
- package/dist/utils/bash-command-analysis.d.ts +19 -0
- package/dist/utils/bash-command-analysis.d.ts.map +1 -0
- package/dist/utils/bash-command-analysis.js +295 -0
- package/dist/utils/bash-command-analysis.js.map +1 -0
- package/dist/utils/consequence-nudges.d.ts +30 -0
- package/dist/utils/consequence-nudges.d.ts.map +1 -0
- package/dist/utils/consequence-nudges.js +313 -0
- package/dist/utils/consequence-nudges.js.map +1 -0
- package/dist/utils/drift-intelligence.d.ts.map +1 -1
- package/dist/utils/drift-intelligence.js +29 -7
- package/dist/utils/drift-intelligence.js.map +1 -1
- package/dist/utils/git-coverage.d.ts +57 -0
- package/dist/utils/git-coverage.d.ts.map +1 -0
- package/dist/utils/git-coverage.js +302 -0
- package/dist/utils/git-coverage.js.map +1 -0
- package/dist/utils/gitignore.d.ts.map +1 -1
- package/dist/utils/gitignore.js +2 -1
- package/dist/utils/gitignore.js.map +1 -1
- package/dist/utils/governed-intent.d.ts +10 -0
- package/dist/utils/governed-intent.d.ts.map +1 -0
- package/dist/utils/governed-intent.js +108 -0
- package/dist/utils/governed-intent.js.map +1 -0
- package/dist/utils/hook-heartbeat.d.ts +55 -0
- package/dist/utils/hook-heartbeat.d.ts.map +1 -0
- package/dist/utils/hook-heartbeat.js +116 -0
- package/dist/utils/hook-heartbeat.js.map +1 -0
- package/dist/utils/intent-continuity.d.ts +21 -0
- package/dist/utils/intent-continuity.d.ts.map +1 -0
- package/dist/utils/intent-continuity.js +192 -0
- package/dist/utils/intent-continuity.js.map +1 -0
- package/dist/utils/messages.d.ts +1 -1
- package/dist/utils/messages.d.ts.map +1 -1
- package/dist/utils/messages.js +24 -21
- package/dist/utils/messages.js.map +1 -1
- package/dist/utils/runtime-companion.d.ts +137 -0
- package/dist/utils/runtime-companion.d.ts.map +1 -0
- package/dist/utils/runtime-companion.js +231 -0
- package/dist/utils/runtime-companion.js.map +1 -0
- package/dist/utils/runtime-connection.d.ts +46 -0
- package/dist/utils/runtime-connection.d.ts.map +1 -0
- package/dist/utils/runtime-connection.js +148 -0
- package/dist/utils/runtime-connection.js.map +1 -0
- package/dist/utils/runtime-evidence.d.ts +68 -0
- package/dist/utils/runtime-evidence.d.ts.map +1 -0
- package/dist/utils/runtime-evidence.js +248 -0
- package/dist/utils/runtime-evidence.js.map +1 -0
- package/dist/utils/runtime-live.d.ts +33 -0
- package/dist/utils/runtime-live.d.ts.map +1 -0
- package/dist/utils/runtime-live.js +361 -0
- package/dist/utils/runtime-live.js.map +1 -0
- package/dist/utils/runtime-outbox.d.ts +76 -0
- package/dist/utils/runtime-outbox.d.ts.map +1 -0
- package/dist/utils/runtime-outbox.js +410 -0
- package/dist/utils/runtime-outbox.js.map +1 -0
- package/dist/utils/runtime-receipt.d.ts +50 -0
- package/dist/utils/runtime-receipt.d.ts.map +1 -0
- package/dist/utils/runtime-receipt.js +223 -0
- package/dist/utils/runtime-receipt.js.map +1 -0
- package/dist/utils/state.d.ts +21 -0
- package/dist/utils/state.d.ts.map +1 -1
- package/dist/utils/state.js +30 -0
- package/dist/utils/state.js.map +1 -1
- package/dist/utils/structural-understanding.d.ts +334 -0
- package/dist/utils/structural-understanding.d.ts.map +1 -0
- package/dist/utils/structural-understanding.js +2316 -0
- package/dist/utils/structural-understanding.js.map +1 -0
- package/dist/utils/v0-governance.d.ts +197 -0
- package/dist/utils/v0-governance.d.ts.map +1 -0
- package/dist/utils/v0-governance.js +904 -0
- package/dist/utils/v0-governance.js.map +1 -0
- package/package.json +5 -5
package/dist/commands/login.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Login Command
|
|
4
4
|
*
|
|
5
5
|
* Implements device flow authentication for CLI.
|
|
6
|
-
* User runs `neurcode login`
|
|
6
|
+
* User runs `neurcode login` -> browser approval -> CLI saves a runtime credential
|
|
7
7
|
*/
|
|
8
8
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
9
|
if (k2 === undefined) k2 = k;
|
|
@@ -66,29 +66,42 @@ async function loginCommand(options) {
|
|
|
66
66
|
const existingApiKey = desiredOrgId ? (0, config_1.getApiKey)(desiredOrgId) : (0, config_1.getApiKey)();
|
|
67
67
|
if (existingApiKey) {
|
|
68
68
|
try {
|
|
69
|
-
// Validate the existing
|
|
69
|
+
// Validate the existing runtime credential by fetching user info
|
|
70
70
|
config.apiKey = existingApiKey;
|
|
71
71
|
const client = new api_client_1.ApiClient(config);
|
|
72
72
|
const user = await client.getCurrentUser();
|
|
73
73
|
const userInfo = await (0, user_context_1.getUserInfo)();
|
|
74
|
-
await (0, messages_1.printSuccessBanner)('Already
|
|
75
|
-
|
|
74
|
+
await (0, messages_1.printSuccessBanner)('Runtime Already Connected', `Welcome back, ${userInfo?.displayName || user.email}.`);
|
|
75
|
+
const existingProjectId = (0, state_1.getProjectId)();
|
|
76
|
+
(0, messages_1.printSuccess)('This machine already has an active Neurcode runtime connection', [
|
|
77
|
+
`Authenticated user: ${user.email}`,
|
|
78
|
+
desiredOrgId
|
|
79
|
+
? `Workspace: ${desiredOrgName || desiredOrgId}`
|
|
80
|
+
: 'Workspace: default keyring workspace',
|
|
81
|
+
existingProjectId
|
|
82
|
+
? `Repo ownership: initialized (${existingProjectId})`
|
|
83
|
+
: 'Repo ownership: not initialized in this directory',
|
|
84
|
+
'Disconnect: neurcode logout',
|
|
85
|
+
].join('\n '));
|
|
86
|
+
if (!existingProjectId) {
|
|
87
|
+
(0, messages_1.printInfo)('Next step', 'Bind this repository to a governance workspace:\n neurcode init');
|
|
88
|
+
}
|
|
76
89
|
return;
|
|
77
90
|
}
|
|
78
91
|
catch (error) {
|
|
79
92
|
const msg = error instanceof Error ? error.message : String(error);
|
|
80
93
|
const looksLikeAuth = /authentication failed|unauthorized|forbidden|401|403/i.test(msg);
|
|
81
|
-
//
|
|
94
|
+
// Runtime credential is invalid/expired (or we couldn't validate); proceed with login
|
|
82
95
|
(0, user_context_1.clearUserCache)(); // Clear stale cache
|
|
83
96
|
(0, messages_1.printWarning)(looksLikeAuth ? 'Existing session expired' : 'Could not validate existing session', looksLikeAuth
|
|
84
|
-
? 'Your previous
|
|
97
|
+
? 'Your previous runtime credential is no longer valid. Let\'s set up a fresh connection.'
|
|
85
98
|
: 'Proceeding with login to refresh authentication.');
|
|
86
99
|
}
|
|
87
100
|
}
|
|
88
|
-
await (0, messages_1.printSuccessBanner)('Neurcode
|
|
89
|
-
(0, messages_1.printInfo)('
|
|
101
|
+
await (0, messages_1.printSuccessBanner)('Connect Neurcode Runtime');
|
|
102
|
+
(0, messages_1.printInfo)('Browser approval', 'We will open the browser to connect this machine to a Neurcode workspace. The credential is stored in the local keyring and is not part of the normal workflow.');
|
|
90
103
|
if (desiredOrgId) {
|
|
91
|
-
(0, messages_1.printInfo)('
|
|
104
|
+
(0, messages_1.printInfo)('Workspace scope', `This runtime connection will be scoped to: ${desiredOrgName || desiredOrgId}`);
|
|
92
105
|
}
|
|
93
106
|
// Step 1: Initialize device flow
|
|
94
107
|
const initUrl = `${apiUrl}/cli/auth/init`;
|
|
@@ -116,8 +129,8 @@ async function loginCommand(options) {
|
|
|
116
129
|
const initData = await initResponse.json();
|
|
117
130
|
const { deviceCode, userCode, verificationUrl } = initData;
|
|
118
131
|
const openInBrowser = async () => {
|
|
119
|
-
(0, messages_1.printInfo)('Opening
|
|
120
|
-
(0, messages_1.printWaiting)('Waiting for
|
|
132
|
+
(0, messages_1.printInfo)('Opening browser for workspace approval...');
|
|
133
|
+
(0, messages_1.printWaiting)('Waiting for runtime connection approval', false);
|
|
121
134
|
const platform = process.platform;
|
|
122
135
|
const preferred = process.env.NEURCODE_LOGIN_BROWSER;
|
|
123
136
|
try {
|
|
@@ -150,7 +163,7 @@ async function loginCommand(options) {
|
|
|
150
163
|
});
|
|
151
164
|
});
|
|
152
165
|
};
|
|
153
|
-
const fallbackMessage = `Please open this URL in your browser:\n ${verificationUrl}\n\n
|
|
166
|
+
const fallbackMessage = `Please open this URL in your browser:\n ${verificationUrl}\n\n Approval code: ${userCode}${process.platform === 'darwin' ? '\n\n Tip: Force Safari with: NEURCODE_LOGIN_BROWSER=Safari neurcode login' : ''}`;
|
|
154
167
|
try {
|
|
155
168
|
await openInBrowser();
|
|
156
169
|
}
|
|
@@ -183,24 +196,33 @@ async function loginCommand(options) {
|
|
|
183
196
|
if (pollData.status === 'approved') {
|
|
184
197
|
if (pollData.apiKey) {
|
|
185
198
|
const savedOrgId = pollData.organizationId || desiredOrgId || undefined;
|
|
186
|
-
// Save
|
|
199
|
+
// Save runtime credential to global config
|
|
187
200
|
(0, config_1.saveGlobalAuth)(pollData.apiKey, apiUrl, savedOrgId);
|
|
188
201
|
// Get user info for personalized message
|
|
189
202
|
const userInfo = await (0, user_context_1.getUserInfo)();
|
|
190
203
|
const userName = userInfo?.displayName || userInfo?.email || 'there';
|
|
191
|
-
await (0, messages_1.printSuccessBanner)('
|
|
192
|
-
|
|
193
|
-
(0, messages_1.
|
|
204
|
+
await (0, messages_1.printSuccessBanner)('Runtime Connected', `Welcome to Neurcode, ${userName}.`);
|
|
205
|
+
const existingProjectId = (0, state_1.getProjectId)();
|
|
206
|
+
(0, messages_1.printSuccess)('This machine can now operate against Neurcode governance', [
|
|
207
|
+
`Credential: stored in ~/.neurcoderc keyring${savedOrgId ? ` for workspace ${savedOrgId.substring(0, 8)}...` : ''}`,
|
|
208
|
+
existingProjectId
|
|
209
|
+
? `Repo ownership: initialized (${existingProjectId})`
|
|
210
|
+
: 'Repo ownership: not initialized in this directory',
|
|
211
|
+
'Token handling: automatic; manual API keys are only needed for CI or advanced environments.',
|
|
212
|
+
].join('\n '));
|
|
213
|
+
(0, messages_1.printInfo)('Next step', existingProjectId
|
|
214
|
+
? 'Confirm state and continue:\n neurcode whoami\n neurcode start "what you intend to change"'
|
|
215
|
+
: 'Bind this repository to a personal or organization workspace:\n neurcode init');
|
|
194
216
|
approved = true;
|
|
195
217
|
}
|
|
196
218
|
else {
|
|
197
|
-
(0, messages_1.printWarning)('
|
|
219
|
+
(0, messages_1.printWarning)('Browser approved, but the terminal did not receive the connection credential', 'Run neurcode login again. If the browser says the request was already approved, start a fresh login request.');
|
|
198
220
|
approved = true;
|
|
199
221
|
}
|
|
200
222
|
}
|
|
201
223
|
else if (pollData.status === 'denied') {
|
|
202
224
|
(0, messages_1.printError)('Authentication Denied', undefined, [
|
|
203
|
-
'The
|
|
225
|
+
'The runtime connection request was denied in your browser',
|
|
204
226
|
'If this was unintentional, please try: neurcode login',
|
|
205
227
|
'Contact support if you continue experiencing issues'
|
|
206
228
|
]);
|
|
@@ -208,9 +230,9 @@ async function loginCommand(options) {
|
|
|
208
230
|
}
|
|
209
231
|
else if (pollData.status === 'expired') {
|
|
210
232
|
(0, messages_1.printError)('Authentication Request Expired', undefined, [
|
|
211
|
-
'The
|
|
233
|
+
'The runtime connection request has timed out',
|
|
212
234
|
'Please try again: neurcode login',
|
|
213
|
-
'
|
|
235
|
+
'Complete browser approval within 5 minutes'
|
|
214
236
|
]);
|
|
215
237
|
process.exit(1);
|
|
216
238
|
}
|
|
@@ -222,9 +244,9 @@ async function loginCommand(options) {
|
|
|
222
244
|
}
|
|
223
245
|
if (!approved) {
|
|
224
246
|
(0, messages_1.printError)('Authentication Timed Out', undefined, [
|
|
225
|
-
'The
|
|
247
|
+
'The runtime connection process took too long',
|
|
226
248
|
'Please try again: neurcode login',
|
|
227
|
-
'
|
|
249
|
+
'Complete browser approval promptly',
|
|
228
250
|
'Check your internet connection if issues persist'
|
|
229
251
|
]);
|
|
230
252
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBH,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* neurcode profile
|
|
3
|
+
*
|
|
4
|
+
* Builds a deterministic Repo Governance Profile from:
|
|
5
|
+
* - git ls-files (paths only — no source contents)
|
|
6
|
+
* - CODEOWNERS (3 standard locations)
|
|
7
|
+
* - primary manifest (package.json / pyproject.toml / go.mod / Cargo.toml / pom.xml)
|
|
8
|
+
*
|
|
9
|
+
* Writes .neurcode/profile.json and prints a summary to the terminal.
|
|
10
|
+
* Zero network calls. Zero code transmission. Same inputs → same profileHash.
|
|
11
|
+
*/
|
|
12
|
+
import type { Command } from 'commander';
|
|
13
|
+
export declare function profileCommand(program: Command): void;
|
|
14
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwFzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmCrD"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* neurcode profile
|
|
4
|
+
*
|
|
5
|
+
* Builds a deterministic Repo Governance Profile from:
|
|
6
|
+
* - git ls-files (paths only — no source contents)
|
|
7
|
+
* - CODEOWNERS (3 standard locations)
|
|
8
|
+
* - primary manifest (package.json / pyproject.toml / go.mod / Cargo.toml / pom.xml)
|
|
9
|
+
*
|
|
10
|
+
* Writes .neurcode/profile.json and prints a summary to the terminal.
|
|
11
|
+
* Zero network calls. Zero code transmission. Same inputs → same profileHash.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.profileCommand = profileCommand;
|
|
15
|
+
const v0_governance_1 = require("../utils/v0-governance");
|
|
16
|
+
let chalk;
|
|
17
|
+
try {
|
|
18
|
+
chalk = require('chalk');
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
chalk = {
|
|
22
|
+
green: (s) => s, yellow: (s) => s, red: (s) => s,
|
|
23
|
+
bold: (s) => s, dim: (s) => s, cyan: (s) => s,
|
|
24
|
+
white: (s) => s, blue: (s) => s, gray: (s) => s,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// ── Renderer ─────────────────────────────────────────────────────────────────
|
|
28
|
+
function renderProfile(p) {
|
|
29
|
+
const status = p.readiness.status === 'READY'
|
|
30
|
+
? chalk.green('● READY')
|
|
31
|
+
: p.readiness.status === 'PARTIAL'
|
|
32
|
+
? chalk.yellow('● PARTIAL')
|
|
33
|
+
: chalk.red('● LOW');
|
|
34
|
+
console.log('');
|
|
35
|
+
console.log(chalk.bold(` REPO GOVERNANCE PROFILE — ${p.repo.name}`), ' ', status, chalk.dim(`score ${p.readiness.score}/100`));
|
|
36
|
+
console.log(chalk.dim(' ' + '─'.repeat(70)));
|
|
37
|
+
console.log(` ${chalk.cyan('Stack')} ${p.stack.primaryLanguage} · ${p.stack.frameworkEcosystem} ${chalk.dim(`(confidence ${Math.round(p.stack.confidence * 100)}%)`)}`);
|
|
38
|
+
console.log(` ${chalk.cyan('Agent support')} ${p.agentCompatibility.claudeCode === 'supported' ? chalk.green('✅ Claude Code') : chalk.yellow('⚡ Claude Code (best-effort)')}`);
|
|
39
|
+
console.log('');
|
|
40
|
+
if (p.sensitiveBoundaries.length === 0) {
|
|
41
|
+
console.log(` ${chalk.yellow('🔒 Sensitive')} ${chalk.dim('none detected')}`);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.log(` ${chalk.yellow('🔒 Sensitive boundaries')} (${p.sensitiveBoundaries.length})`);
|
|
45
|
+
for (const b of p.sensitiveBoundaries.slice(0, 6)) {
|
|
46
|
+
console.log(` ${chalk.dim('·')} ${chalk.white(b.glob.padEnd(36))} ${chalk.dim(b.tag)}`);
|
|
47
|
+
}
|
|
48
|
+
if (p.sensitiveBoundaries.length > 6) {
|
|
49
|
+
console.log(chalk.dim(` … and ${p.sensitiveBoundaries.length - 6} more`));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
console.log('');
|
|
53
|
+
if (p.ownershipBoundaries.length === 0) {
|
|
54
|
+
console.log(` ${chalk.blue('👤 Ownership')} ${chalk.dim('no CODEOWNERS found — add one to enable ownership governance')}`);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
console.log(` ${chalk.blue('👤 Ownership boundaries')} (${p.ownershipBoundaries.length} rules · ${p.unownedPercent}% unowned)`);
|
|
58
|
+
for (const o of p.ownershipBoundaries.slice(0, 5)) {
|
|
59
|
+
console.log(` ${chalk.dim('·')} ${chalk.white(o.glob.padEnd(36))} ${chalk.dim(o.owners.join(' '))}`);
|
|
60
|
+
}
|
|
61
|
+
if (p.ownershipBoundaries.length > 5) {
|
|
62
|
+
console.log(chalk.dim(` … and ${p.ownershipBoundaries.length - 5} more`));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
console.log('');
|
|
66
|
+
if (p.approvalRequiredPaths.length > 0) {
|
|
67
|
+
console.log(` ${chalk.red('⛔ Approval-required')}`);
|
|
68
|
+
for (const ap of p.approvalRequiredPaths.slice(0, 4)) {
|
|
69
|
+
console.log(` ${chalk.dim('·')} ${chalk.white(ap)}`);
|
|
70
|
+
}
|
|
71
|
+
console.log('');
|
|
72
|
+
}
|
|
73
|
+
if (p.readiness.reasons.length > 0) {
|
|
74
|
+
console.log(` ${chalk.dim('Improvement hints:')}`);
|
|
75
|
+
for (const r of p.readiness.reasons) {
|
|
76
|
+
console.log(` ${chalk.dim('•')} ${chalk.dim(r)}`);
|
|
77
|
+
}
|
|
78
|
+
console.log('');
|
|
79
|
+
}
|
|
80
|
+
console.log(chalk.dim(' ' + '─'.repeat(70)));
|
|
81
|
+
console.log(` ${chalk.dim('profileHash')} ${chalk.dim(p.profileHash)}`);
|
|
82
|
+
console.log(` ${chalk.dim('topology')} ${chalk.dim(p.topology.hash)} ${chalk.dim(`(${p.topology.trackedFileCount} tracked files)`)}`);
|
|
83
|
+
console.log('');
|
|
84
|
+
console.log(chalk.bold.green(' Next step:') + ' activate Neurcode for Claude Code:');
|
|
85
|
+
console.log(chalk.cyan(' neurcode activate claude'));
|
|
86
|
+
console.log('');
|
|
87
|
+
}
|
|
88
|
+
// ── Command ───────────────────────────────────────────────────────────────────
|
|
89
|
+
function profileCommand(program) {
|
|
90
|
+
program
|
|
91
|
+
.command('profile')
|
|
92
|
+
.description('Build a deterministic Repo Governance Profile from repo metadata (zero source transmission)')
|
|
93
|
+
.option('--json', 'Output machine-readable JSON')
|
|
94
|
+
.option('--dir <path>', 'Repository root (default: current directory)')
|
|
95
|
+
.action((options) => {
|
|
96
|
+
const cwd = options.dir ? options.dir : process.cwd();
|
|
97
|
+
const repoRoot = (0, v0_governance_1.resolveRepoRoot)(cwd);
|
|
98
|
+
if (!options.json) {
|
|
99
|
+
console.log(chalk.dim(' Reading file tree (paths only — no source transmitted)…'));
|
|
100
|
+
}
|
|
101
|
+
const paths = (0, v0_governance_1.gitLsFiles)(repoRoot);
|
|
102
|
+
if (paths.length === 0 && !options.json) {
|
|
103
|
+
console.log(chalk.yellow(' ⚠ No files found via git ls-files. Are you in a git repository?'));
|
|
104
|
+
console.log(chalk.dim(' Try running `git init && git add .` first.'));
|
|
105
|
+
process.exitCode = 1;
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const profile = (0, v0_governance_1.buildCurrentGovernanceProfile)(repoRoot);
|
|
109
|
+
const profilePath = (0, v0_governance_1.writeGovernanceProfile)(repoRoot, profile);
|
|
110
|
+
if (options.json) {
|
|
111
|
+
console.log(JSON.stringify(profile, null, 2));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
renderProfile(profile);
|
|
115
|
+
console.log(chalk.dim(` Profile written to: ${profilePath}`));
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Quickstart Command
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Local-only governance sandbox. For the connected enterprise onboarding
|
|
5
|
+
* lifecycle, use: neurcode login -> neurcode init -> neurcode start.
|
|
6
6
|
*
|
|
7
7
|
* What it does:
|
|
8
8
|
* 1. Resolves project root (git repo required)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickstart.d.ts","sourceRoot":"","sources":["../../src/commands/quickstart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA8DD,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"quickstart.d.ts","sourceRoot":"","sources":["../../src/commands/quickstart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA8DD,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiHtF"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Quickstart Command
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Local-only governance sandbox. For the connected enterprise onboarding
|
|
6
|
+
* lifecycle, use: neurcode login -> neurcode init -> neurcode start.
|
|
7
7
|
*
|
|
8
8
|
* What it does:
|
|
9
9
|
* 1. Resolves project root (git repo required)
|
|
@@ -72,9 +72,9 @@ const STARTER_CONFIG_TEMPLATE = (projectRoot) => JSON.stringify({
|
|
|
72
72
|
_generatedBy: 'neurcode quickstart',
|
|
73
73
|
}, null, 2);
|
|
74
74
|
function printBanner(text) {
|
|
75
|
-
console.log(
|
|
76
|
-
console.log(chalk_1.default.bold.white(
|
|
77
|
-
console.log(chalk_1.default.
|
|
75
|
+
console.log('');
|
|
76
|
+
console.log(chalk_1.default.bold.white(text));
|
|
77
|
+
console.log(chalk_1.default.dim('-'.repeat(60)));
|
|
78
78
|
}
|
|
79
79
|
function printStep(n, title, desc) {
|
|
80
80
|
console.log(chalk_1.default.bold.white(`\n Step ${n}: ${title}`));
|
|
@@ -87,8 +87,11 @@ async function quickstartCommand(options = {}) {
|
|
|
87
87
|
const created = [];
|
|
88
88
|
const skipped = [];
|
|
89
89
|
if (!options.json) {
|
|
90
|
-
printBanner('Neurcode Quickstart
|
|
91
|
-
console.log(chalk_1.default.dim('\n
|
|
90
|
+
printBanner('Neurcode Quickstart - Local Governance Sandbox');
|
|
91
|
+
console.log(chalk_1.default.dim('\n This creates local-only governance starter files. For connected enterprise onboarding, run:'));
|
|
92
|
+
console.log(chalk_1.default.cyan(' neurcode login'));
|
|
93
|
+
console.log(chalk_1.default.cyan(' neurcode init'));
|
|
94
|
+
console.log(chalk_1.default.cyan(' neurcode start') + chalk_1.default.dim(' "what you intend to change"\n'));
|
|
92
95
|
}
|
|
93
96
|
// 1. Initialize .neurcode/
|
|
94
97
|
if (!(0, fs_1.existsSync)(neurcodeDir)) {
|
|
@@ -132,12 +135,12 @@ async function quickstartCommand(options = {}) {
|
|
|
132
135
|
if (created.length > 0) {
|
|
133
136
|
console.log(chalk_1.default.green(' Created:'));
|
|
134
137
|
for (const f of created)
|
|
135
|
-
console.log(chalk_1.default.green(`
|
|
138
|
+
console.log(chalk_1.default.green(` ${f}`));
|
|
136
139
|
}
|
|
137
140
|
if (skipped.length > 0) {
|
|
138
141
|
console.log(chalk_1.default.dim(' Skipped (already exists):'));
|
|
139
142
|
for (const f of skipped)
|
|
140
|
-
console.log(chalk_1.default.dim(`
|
|
143
|
+
console.log(chalk_1.default.dim(` ${f}`));
|
|
141
144
|
}
|
|
142
145
|
// 4. Explain the verify flow
|
|
143
146
|
printBanner('How Neurcode Verify Works');
|
|
@@ -145,36 +148,34 @@ async function quickstartCommand(options = {}) {
|
|
|
145
148
|
printStep(2, 'Write code', 'Use your AI tools (Cursor, Claude Code, Codex) to generate or write code.');
|
|
146
149
|
printStep(3, 'Run verify', 'Run `neurcode verify --evidence` to check your code against intent, policies, and structural rules.');
|
|
147
150
|
printStep(4, 'Review findings', 'BLOCKING findings must be resolved. ADVISORY findings are informational.\n' +
|
|
148
|
-
' Structural rules (SR001
|
|
151
|
+
' Structural rules (SR001-SR010) are deterministic: same code = same result, always.');
|
|
149
152
|
printStep(5, 'Iterate', 'Export remediation context if needed, apply external edits, then re-run verify. When passing, the PR is governance-cleared.');
|
|
150
153
|
// 5. Explain local-only mode
|
|
151
154
|
printBanner('Local-Only Mode (No Network Required)');
|
|
152
155
|
console.log(chalk_1.default.dim('\n `neurcode verify --local-only` runs deterministic structural analysis'));
|
|
153
156
|
console.log(chalk_1.default.dim(' without network access. It uses AST-backed rules to detect:'));
|
|
154
|
-
console.log(chalk_1.default.dim('\n SR001
|
|
155
|
-
console.log(chalk_1.default.dim(' SR002
|
|
156
|
-
console.log(chalk_1.default.dim(' SR003
|
|
157
|
-
console.log(chalk_1.default.dim(' SR004
|
|
158
|
-
console.log(chalk_1.default.dim(' SR005
|
|
157
|
+
console.log(chalk_1.default.dim('\n SR001 - Swallowed async rejections'));
|
|
158
|
+
console.log(chalk_1.default.dim(' SR002 - Missing error propagation'));
|
|
159
|
+
console.log(chalk_1.default.dim(' SR003 - Timer/resource leaks'));
|
|
160
|
+
console.log(chalk_1.default.dim(' SR004 - Unvalidated external inputs'));
|
|
161
|
+
console.log(chalk_1.default.dim(' SR005-SR010 - Additional structural integrity rules\n'));
|
|
159
162
|
console.log(chalk_1.default.dim(' These findings are:'));
|
|
160
|
-
console.log(chalk_1.default.dim('
|
|
161
|
-
console.log(chalk_1.default.dim('
|
|
162
|
-
console.log(chalk_1.default.dim('
|
|
163
|
-
// 6. Next commands
|
|
163
|
+
console.log(chalk_1.default.dim(' - Deterministic: same code always produces same finding'));
|
|
164
|
+
console.log(chalk_1.default.dim(' - Reproducible: identical on any machine, any time'));
|
|
165
|
+
console.log(chalk_1.default.dim(' - No LLM involved: pure AST analysis\n'));
|
|
166
|
+
// 6. Next commands - intent-first lifecycle order (matches welcome banner +
|
|
164
167
|
// `neurcode home` so the recommended flow is coherent across surfaces).
|
|
165
168
|
printBanner('Recommended Next Commands');
|
|
166
169
|
console.log('');
|
|
167
|
-
console.log(chalk_1.default.bold.white('
|
|
168
|
-
console.log(chalk_1.default.cyan(' neurcode
|
|
169
|
-
console.log(chalk_1.default.
|
|
170
|
-
console.log(chalk_1.default.cyan(' neurcode
|
|
171
|
-
console.log(chalk_1.default.bold.white('
|
|
172
|
-
console.log(chalk_1.default.cyan(' neurcode
|
|
173
|
-
console.log(chalk_1.default.
|
|
170
|
+
console.log(chalk_1.default.bold.white(' Connected enterprise lifecycle:'));
|
|
171
|
+
console.log(chalk_1.default.cyan(' neurcode login'));
|
|
172
|
+
console.log(chalk_1.default.cyan(' neurcode init'));
|
|
173
|
+
console.log(chalk_1.default.cyan(' neurcode whoami\n'));
|
|
174
|
+
console.log(chalk_1.default.bold.white(' Local governance lifecycle:'));
|
|
175
|
+
console.log(chalk_1.default.cyan(' neurcode start') + chalk_1.default.dim(' "what you intend to change"'));
|
|
176
|
+
console.log(chalk_1.default.cyan(' neurcode verify --local-only --head --require-intent-runtime'));
|
|
177
|
+
console.log(chalk_1.default.cyan(' neurcode home'));
|
|
174
178
|
console.log(chalk_1.default.cyan(' neurcode replay --html /tmp/replay-report.html\n'));
|
|
175
|
-
console.log(chalk_1.default.bold.
|
|
176
|
-
console.log(chalk_1.default.cyan(' neurcode doctor\n'));
|
|
177
|
-
console.log(chalk_1.default.bold.green(' Quickstart complete. The lifecycle is:'));
|
|
178
|
-
console.log(chalk_1.default.dim(' start ▸ verify ▸ replay ▸ remediate-export ▸ re-verify\n'));
|
|
179
|
+
console.log(chalk_1.default.bold.green(' Quickstart complete. Connected onboarding starts with login, then init.\n'));
|
|
179
180
|
}
|
|
180
181
|
//# sourceMappingURL=quickstart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../src/commands/quickstart.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;AAyEH,
|
|
1
|
+
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../src/commands/quickstart.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;AAyEH,8CAiHC;AAxLD,2BAA0D;AAC1D,+BAA4B;AAC5B,kDAA0B;AAC1B,wDAA4E;AAC5E,mEAAuE;AAOvE,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCtB,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IACtE,QAAQ,EAAE,2EAA2E;IACrF,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,WAAW;IACX,aAAa,EAAE,IAAI;IACnB,sBAAsB,EAAE,IAAI;IAC5B,YAAY,EAAE,qBAAqB;CACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEZ,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,KAAa,EAAE,IAAY;IACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,UAA6B,EAAE;IACrE,MAAM,SAAS,GAAG,IAAA,kDAAmC,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,WAAW,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iGAAiG,CAAC,CAAC,CAAC;QAC1H,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,IAAA,cAAS,EAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,0BAA0B;IAC1B,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAA,kBAAa,EAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACxD,CAAC;IAED,0BAA0B;IAC1B,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAA,kBAAa,EAAC,UAAU,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,IAAA,wCAAsB,EAAC,WAAW,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,OAAO,EAAE,IAAI;YACb,WAAW;YACX,OAAO;YACP,OAAO;YACP,SAAS,EAAE;gBACT,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;gBAC/C,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;gBACjE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM;aAC/B;SACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,6BAA6B;IAC7B,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAEzC,SAAS,CAAC,CAAC,EAAE,YAAY,EACvB,4GAA4G,CAAC,CAAC;IAEhH,SAAS,CAAC,CAAC,EAAE,YAAY,EACvB,2EAA2E,CAAC,CAAC;IAE/E,SAAS,CAAC,CAAC,EAAE,YAAY,EACvB,qGAAqG,CAAC,CAAC;IAEzG,SAAS,CAAC,CAAC,EAAE,iBAAiB,EAC5B,4EAA4E;QAC5E,sFAAsF,CAAC,CAAC;IAE1F,SAAS,CAAC,CAAC,EAAE,SAAS,EACpB,6HAA6H,CAAC,CAAC;IAEjI,6BAA6B;IAC7B,WAAW,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAErE,4EAA4E;IAC5E,2EAA2E;IAC3E,WAAW,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;IAEnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC,CAAC;AAC/G,CAAC"}
|
|
@@ -18,13 +18,18 @@
|
|
|
18
18
|
* neurcode remediate-export --finding <id> --copy
|
|
19
19
|
* neurcode remediate-export --verify-output-file ./verify.json --project-root ./repo
|
|
20
20
|
*/
|
|
21
|
+
declare const PROVIDERS: readonly ["claude", "codex", "cursor", "gemini"];
|
|
22
|
+
type RemediationProvider = typeof PROVIDERS[number];
|
|
23
|
+
type RemediationOutputFormat = 'json' | 'mcp' | 'prompt' | 'markdown';
|
|
21
24
|
interface RemediateExportOptions {
|
|
22
25
|
finding?: string;
|
|
23
26
|
findingIndex?: string;
|
|
24
27
|
all?: boolean;
|
|
25
|
-
format?:
|
|
28
|
+
format?: RemediationOutputFormat;
|
|
29
|
+
provider?: RemediationProvider;
|
|
26
30
|
out?: string;
|
|
27
31
|
copy?: boolean;
|
|
32
|
+
open?: boolean;
|
|
28
33
|
json?: boolean;
|
|
29
34
|
/** Absolute or cwd-relative path to verify JSON (matches CLI --verify-output-file). */
|
|
30
35
|
verifyOutputFile?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remediate-export.d.ts","sourceRoot":"","sources":["../../src/commands/remediate-export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"remediate-export.d.ts","sourceRoot":"","sources":["../../src/commands/remediate-export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAmBH,QAAA,MAAM,SAAS,kDAAmD,CAAC;AAwZnE,KAAK,mBAAmB,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AACpD,KAAK,uBAAuB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AA6FtE,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkI3F"}
|