@neurcode-ai/cli 0.9.42 → 0.9.43
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 +9 -3
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +16 -89
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/contract.d.ts.map +1 -1
- package/dist/commands/contract.js +179 -20
- package/dist/commands/contract.js.map +1 -1
- package/dist/commands/doctor.d.ts +13 -3
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +476 -95
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/remediate.d.ts +8 -0
- package/dist/commands/remediate.d.ts.map +1 -1
- package/dist/commands/remediate.js +485 -103
- package/dist/commands/remediate.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +361 -6
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.js +23 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/cli-json.d.ts +54 -0
- package/dist/utils/cli-json.d.ts.map +1 -0
- package/dist/utils/cli-json.js +152 -0
- package/dist/utils/cli-json.js.map +1 -0
- package/dist/utils/policy-compiler.d.ts +3 -1
- package/dist/utils/policy-compiler.d.ts.map +1 -1
- package/dist/utils/policy-compiler.js +8 -0
- package/dist/utils/policy-compiler.js.map +1 -1
- package/dist/utils/runtime-guard.d.ts +3 -1
- package/dist/utils/runtime-guard.d.ts.map +1 -1
- package/dist/utils/runtime-guard.js +8 -0
- package/dist/utils/runtime-guard.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,12 +17,18 @@ neurcode --version
|
|
|
17
17
|
neurcode login
|
|
18
18
|
neurcode init
|
|
19
19
|
|
|
20
|
-
neurcode
|
|
21
|
-
neurcode
|
|
22
|
-
neurcode prompt
|
|
20
|
+
neurcode bootstrap --pack soc2 --auto-detect
|
|
21
|
+
neurcode contract import --provider codex --auto-detect --no-confirm
|
|
22
|
+
neurcode prompt "Implement role-based access control for org members"
|
|
23
23
|
neurcode verify --record --compiled-policy neurcode.policy.compiled.json --enforce-change-contract --require-signed-artifacts
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
+
To preview possible auto-detected plans before import:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
neurcode contract import --provider codex --auto-detect --list-candidates --json
|
|
30
|
+
```
|
|
31
|
+
|
|
26
32
|
## Read-only Q&A
|
|
27
33
|
|
|
28
34
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAYA,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAwDD,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6RpF"}
|
|
@@ -1,88 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.bootstrapCommand = bootstrapCommand;
|
|
4
|
-
const child_process_1 = require("child_process");
|
|
5
4
|
const fs_1 = require("fs");
|
|
6
5
|
const project_root_1 = require("../utils/project-root");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
catch {
|
|
12
|
-
chalk = {
|
|
13
|
-
green: (value) => value,
|
|
14
|
-
yellow: (value) => value,
|
|
15
|
-
red: (value) => value,
|
|
16
|
-
bold: (value) => value,
|
|
17
|
-
dim: (value) => value,
|
|
18
|
-
cyan: (value) => value,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function stripAnsi(value) {
|
|
22
|
-
return value.replace(/\u001b\[[0-9;]*m/g, '');
|
|
23
|
-
}
|
|
24
|
-
function extractLastJsonObject(output) {
|
|
25
|
-
const clean = stripAnsi(output).trim();
|
|
26
|
-
const end = clean.lastIndexOf('}');
|
|
27
|
-
if (end === -1)
|
|
28
|
-
return null;
|
|
29
|
-
for (let start = end; start >= 0; start -= 1) {
|
|
30
|
-
if (clean[start] !== '{')
|
|
31
|
-
continue;
|
|
32
|
-
const candidate = clean.slice(start, end + 1);
|
|
33
|
-
try {
|
|
34
|
-
const parsed = JSON.parse(candidate);
|
|
35
|
-
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
36
|
-
return parsed;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
// Keep searching until parseable JSON object is found.
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
function asString(record, key) {
|
|
46
|
-
if (!record)
|
|
47
|
-
return null;
|
|
48
|
-
const value = record[key];
|
|
49
|
-
return typeof value === 'string' ? value : null;
|
|
50
|
-
}
|
|
51
|
-
function asNumber(value) {
|
|
6
|
+
const cli_json_1 = require("../utils/cli-json");
|
|
7
|
+
const chalk = (0, cli_json_1.loadChalk)();
|
|
8
|
+
function asNumberValue(value) {
|
|
52
9
|
return typeof value === 'number' && Number.isFinite(value) ? value : null;
|
|
53
10
|
}
|
|
54
|
-
async function runCliJson(commandArgs, cwd) {
|
|
55
|
-
const args = commandArgs.includes('--json') ? [...commandArgs] : [...commandArgs, '--json'];
|
|
56
|
-
const stdoutChunks = [];
|
|
57
|
-
const stderrChunks = [];
|
|
58
|
-
const exitCode = await new Promise((resolvePromise, reject) => {
|
|
59
|
-
const child = (0, child_process_1.spawn)(process.execPath, [process.argv[1], ...args], {
|
|
60
|
-
cwd,
|
|
61
|
-
env: {
|
|
62
|
-
...process.env,
|
|
63
|
-
CI: process.env.CI || 'true',
|
|
64
|
-
FORCE_COLOR: '0',
|
|
65
|
-
},
|
|
66
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
67
|
-
});
|
|
68
|
-
child.stdout.on('data', (chunk) => stdoutChunks.push(String(chunk)));
|
|
69
|
-
child.stderr.on('data', (chunk) => stderrChunks.push(String(chunk)));
|
|
70
|
-
child.on('error', (error) => reject(error));
|
|
71
|
-
child.on('close', (code) => resolvePromise(typeof code === 'number' ? code : 1));
|
|
72
|
-
});
|
|
73
|
-
const stdout = stdoutChunks.join('');
|
|
74
|
-
const stderr = stderrChunks.join('');
|
|
75
|
-
const payload = extractLastJsonObject(`${stdout}\n${stderr}`);
|
|
76
|
-
return {
|
|
77
|
-
exitCode,
|
|
78
|
-
stdout,
|
|
79
|
-
stderr,
|
|
80
|
-
payload,
|
|
81
|
-
command: args,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
11
|
function emitJson(payload) {
|
|
85
|
-
|
|
12
|
+
(0, cli_json_1.emitJson)(payload);
|
|
86
13
|
}
|
|
87
14
|
function hasPlanImportInput(options) {
|
|
88
15
|
return Boolean((options.planInput && options.planInput.trim())
|
|
@@ -93,7 +20,7 @@ function hasExistingChangeContract(projectRoot) {
|
|
|
93
20
|
return (0, fs_1.existsSync)(`${projectRoot}/.neurcode/change-contract.json`);
|
|
94
21
|
}
|
|
95
22
|
function shouldFallbackToAdvisory(result) {
|
|
96
|
-
const message = (asString(result.payload, 'message')
|
|
23
|
+
const message = ((0, cli_json_1.asString)(result.payload, 'message')
|
|
97
24
|
|| result.stderr
|
|
98
25
|
|| result.stdout
|
|
99
26
|
|| '').toLowerCase();
|
|
@@ -128,14 +55,14 @@ async function bootstrapCommand(options = {}) {
|
|
|
128
55
|
if (options.requireDashboard === true) {
|
|
129
56
|
policyArgs.push('--require-dashboard');
|
|
130
57
|
}
|
|
131
|
-
const policyRun = await runCliJson(policyArgs, projectRoot);
|
|
58
|
+
const policyRun = await (0, cli_json_1.runCliJson)(policyArgs, { cwd: projectRoot });
|
|
132
59
|
if (policyRun.exitCode !== 0) {
|
|
133
60
|
stages.push({
|
|
134
61
|
stage: 'policy_bootstrap',
|
|
135
62
|
status: 'failed',
|
|
136
63
|
command: policyRun.command,
|
|
137
64
|
exitCode: policyRun.exitCode,
|
|
138
|
-
message: asString(policyRun.payload, 'error') || 'Policy bootstrap failed.',
|
|
65
|
+
message: (0, cli_json_1.asString)(policyRun.payload, 'error') || 'Policy bootstrap failed.',
|
|
139
66
|
payload: policyRun.payload,
|
|
140
67
|
});
|
|
141
68
|
const output = {
|
|
@@ -168,7 +95,7 @@ async function bootstrapCommand(options = {}) {
|
|
|
168
95
|
const bootstrapMeta = policyRun.payload && typeof policyRun.payload === 'object'
|
|
169
96
|
? policyRun.payload.bootstrap
|
|
170
97
|
: undefined;
|
|
171
|
-
const deterministicRuleCount =
|
|
98
|
+
const deterministicRuleCount = asNumberValue(bootstrapMeta?.deterministicRuleCount);
|
|
172
99
|
const unmatchedStatements = Array.isArray(bootstrapMeta?.unmatchedStatements)
|
|
173
100
|
? bootstrapMeta.unmatchedStatements.length
|
|
174
101
|
: 0;
|
|
@@ -197,14 +124,14 @@ async function bootstrapCommand(options = {}) {
|
|
|
197
124
|
else if (options.planStdin === true) {
|
|
198
125
|
contractArgs.push('--stdin');
|
|
199
126
|
}
|
|
200
|
-
const contractRun = await runCliJson(contractArgs, projectRoot);
|
|
127
|
+
const contractRun = await (0, cli_json_1.runCliJson)(contractArgs, { cwd: projectRoot });
|
|
201
128
|
if (contractRun.exitCode !== 0) {
|
|
202
129
|
stages.push({
|
|
203
130
|
stage: 'contract_import',
|
|
204
131
|
status: 'failed',
|
|
205
132
|
command: contractRun.command,
|
|
206
133
|
exitCode: contractRun.exitCode,
|
|
207
|
-
message: asString(contractRun.payload, 'message') || 'Contract import failed.',
|
|
134
|
+
message: (0, cli_json_1.asString)(contractRun.payload, 'message') || 'Contract import failed.',
|
|
208
135
|
payload: contractRun.payload,
|
|
209
136
|
});
|
|
210
137
|
const output = {
|
|
@@ -226,7 +153,7 @@ async function bootstrapCommand(options = {}) {
|
|
|
226
153
|
}
|
|
227
154
|
process.exit(1);
|
|
228
155
|
}
|
|
229
|
-
planIdFromContract = asString(contractRun.payload, 'planId');
|
|
156
|
+
planIdFromContract = (0, cli_json_1.asString)(contractRun.payload, 'planId');
|
|
230
157
|
stages.push({
|
|
231
158
|
stage: 'contract_import',
|
|
232
159
|
status: 'success',
|
|
@@ -272,7 +199,7 @@ async function bootstrapCommand(options = {}) {
|
|
|
272
199
|
if (planIdFromContract) {
|
|
273
200
|
guardArgs.push('--plan-id', planIdFromContract);
|
|
274
201
|
}
|
|
275
|
-
const guardRun = await runCliJson(guardArgs, projectRoot);
|
|
202
|
+
const guardRun = await (0, cli_json_1.runCliJson)(guardArgs, { cwd: projectRoot });
|
|
276
203
|
if (guardRun.exitCode === 0) {
|
|
277
204
|
stages.push({
|
|
278
205
|
stage: 'guard_start',
|
|
@@ -286,7 +213,7 @@ async function bootstrapCommand(options = {}) {
|
|
|
286
213
|
});
|
|
287
214
|
}
|
|
288
215
|
else if (strictGuard && allowAdvisoryFallback && shouldFallbackToAdvisory(guardRun)) {
|
|
289
|
-
const advisoryRun = await runCliJson(['guard', 'start', '--no-strict'], projectRoot);
|
|
216
|
+
const advisoryRun = await (0, cli_json_1.runCliJson)(['guard', 'start', '--no-strict'], { cwd: projectRoot });
|
|
290
217
|
if (advisoryRun.exitCode === 0) {
|
|
291
218
|
finalMode = 'advisory';
|
|
292
219
|
stages.push({
|
|
@@ -305,8 +232,8 @@ async function bootstrapCommand(options = {}) {
|
|
|
305
232
|
status: 'failed',
|
|
306
233
|
command: advisoryRun.command,
|
|
307
234
|
exitCode: advisoryRun.exitCode,
|
|
308
|
-
message: asString(advisoryRun.payload, 'message')
|
|
309
|
-
|| asString(guardRun.payload, 'message')
|
|
235
|
+
message: (0, cli_json_1.asString)(advisoryRun.payload, 'message')
|
|
236
|
+
|| (0, cli_json_1.asString)(guardRun.payload, 'message')
|
|
310
237
|
|| 'Runtime guard start failed.',
|
|
311
238
|
payload: advisoryRun.payload || guardRun.payload,
|
|
312
239
|
});
|
|
@@ -318,7 +245,7 @@ async function bootstrapCommand(options = {}) {
|
|
|
318
245
|
status: 'failed',
|
|
319
246
|
command: guardRun.command,
|
|
320
247
|
exitCode: guardRun.exitCode,
|
|
321
|
-
message: asString(guardRun.payload, 'message') || 'Runtime guard start failed.',
|
|
248
|
+
message: (0, cli_json_1.asString)(guardRun.payload, 'message') || 'Runtime guard start failed.',
|
|
322
249
|
payload: guardRun.payload,
|
|
323
250
|
});
|
|
324
251
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":";;AAiKA,4CA6RC;AA9bD,iDAAsC;AACtC,2BAAgC;AAChC,wDAAmE;AAEnE,IAAI,KAAU,CAAC;AACf,IAAI,CAAC;IACH,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAAC,MAAM,CAAC;IACP,KAAK,GAAG;QACN,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QAC/B,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QAChC,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QAC7B,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QAC9B,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QAC7B,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;KAC/B,CAAC;AACJ,CAAC;AAgDD,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,KAAK,IAAI,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG;YAAE,SAAS;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC;YAChD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,OAAO,MAAiC,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,MAAsC,EAAE,GAAW;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,WAAqB,EAAE,GAAW;IAC1D,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5F,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;YAChE,GAAG;YACH,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,MAAM;gBAC5B,WAAW,EAAE,GAAG;aACjB;YACD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;IAC9D,OAAO;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,OAA4B;IAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAyB;IACnD,OAAO,OAAO,CACZ,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;WAC5C,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;WAC7C,OAAO,CAAC,SAAS,KAAK,IAAI,CAC9B,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,WAAmB;IACpD,OAAO,IAAA,eAAU,EAAC,GAAG,WAAW,iCAAiC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,wBAAwB,CAAC,MAA2B;IAC3D,MAAM,OAAO,GAAG,CACd,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;WAChC,MAAM,CAAC,MAAM;WACb,MAAM,CAAC,MAAM;WACb,EAAE,CACN,CAAC,WAAW,EAAE,CAAC;IAChB,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;WACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;WAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CACrC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,UAA4B,EAAE;IACnE,MAAM,WAAW,GAAG,IAAA,yCAA0B,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC;IAC7D,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC;IAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC;IAClD,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,KAAK,KAAK,CAAC;IAEtE,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,SAAS,GAA0B,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAE3E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAChC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,UAAU,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,OAAO,CAAC,yBAAyB,KAAK,IAAI,EAAE,CAAC;YACtD,UAAU,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,0BAA0B;gBAC3E,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B,CAAC,CAAC;YACH,MAAM,MAAM,GAAwB;gBAClC,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,SAAS;gBACf,MAAM;gBACN,eAAe,EAAE;oBACf,gDAAgD;iBACjD;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,gCAAgC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,gBAAgB,IAAI,4CAA4C;YACzE,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;YAC9E,CAAC,CAAG,SAAS,CAAC,OAAmC,CAAC,SAAiD;YACnG,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,sBAAsB,GAAG,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;QAC/E,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,mBAAmB,CAAC;YAC3E,CAAC,CAAC,aAAc,CAAC,mBAAmB,CAAC,MAAM;YAC3C,CAAC,CAAC,CAAC,CAAC;QACN,IAAI,mBAAmB,GAAG,CAAC,IAAI,sBAAsB,KAAK,CAAC,EAAE,CAAC;YAC5D,eAAe,CAAC,IAAI,CAClB,uHAAuH,CACxH,CAAC;QACJ,CAAC;QAED,IAAI,kBAAkB,GAAkB,IAAI,CAAC;QAC7C,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,4CAA4C;aACtD,CAAC,CAAC;YACH,eAAe,CAAC,IAAI,CAClB,iHAAiH,CAClH,CAAC;QACJ,CAAC;aAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YACpE,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClD,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvD,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACtC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAChE,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,iBAAiB;oBACxB,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,yBAAyB;oBAC9E,OAAO,EAAE,WAAW,CAAC,OAAO;iBAC7B,CAAC,CAAC;gBACH,MAAM,MAAM,GAAwB;oBAClC,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,SAAS;oBACf,MAAM;oBACN,eAAe,EAAE;wBACf,kGAAkG;qBACnG;oBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC;gBACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACjB,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;oBAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;oBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,+BAA+B,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzF,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,kBAAkB,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,OAAO,EAAE,kBAAkB;oBACzB,CAAC,CAAC,2BAA2B,kBAAkB,IAAI;oBACnD,CAAC,CAAC,yBAAyB;gBAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,mEAAmE;aAC7E,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,kDAAkD;aAC5D,CAAC,CAAC;YACH,eAAe,CAAC,IAAI,CAClB,sGAAsG,CACvG,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,6CAA6C;aACvD,CAAC,CAAC;YACH,eAAe,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAC/E,IAAI,kBAAkB,EAAE,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC1D,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa;oBACpB,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,OAAO,EAAE,WAAW;wBAClB,CAAC,CAAC,+BAA+B;wBACjC,CAAC,CAAC,iCAAiC;oBACrC,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,WAAW,IAAI,qBAAqB,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtF,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC;gBACrF,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC/B,SAAS,GAAG,UAAU,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa;wBACpB,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,OAAO,EACL,sFAAsF;wBACxF,OAAO,EAAE,WAAW,CAAC,OAAO;qBAC7B,CAAC,CAAC;oBACH,eAAe,CAAC,IAAI,CAClB,qHAAqH,CACtH,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa;wBACpB,MAAM,EAAE,QAAQ;wBAChB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,OAAO,EACL,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC;+BACrC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;+BACrC,6BAA6B;wBAClC,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;qBACjD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa;oBACpB,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,6BAA6B;oBAC/E,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACnE,IAAI,OAAO,EAAE,CAAC;YACZ,eAAe,CAAC,IAAI,CAClB,8IAA8I,CAC/I,CAAC;YACF,eAAe,CAAC,IAAI,CAClB,iGAAiG,CAClG,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAwB;YAClC,OAAO;YACP,IAAI,EAAE,SAAS;YACf,MAAM;YACN,eAAe;YACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAC1D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACnF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,QAAQ,CAAC;gBACP,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;gBACzC,MAAM;gBACN,eAAe,EAAE,CAAC,4CAA4C,CAAC;gBAC/D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,OAAO,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/commands/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/commands/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6apC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6MtD"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.contractCommand = contractCommand;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
|
+
const readline_1 = require("readline");
|
|
6
7
|
const api_client_1 = require("../api-client");
|
|
7
8
|
const config_1 = require("../config");
|
|
8
9
|
const project_root_1 = require("../utils/project-root");
|
|
@@ -59,6 +60,19 @@ function parseAsJsonIfPossible(raw) {
|
|
|
59
60
|
function normalizeProvider(provider) {
|
|
60
61
|
return String(provider || 'generic').trim().toLowerCase();
|
|
61
62
|
}
|
|
63
|
+
function normalizeCandidateLimit(value) {
|
|
64
|
+
if (!Number.isFinite(value))
|
|
65
|
+
return 8;
|
|
66
|
+
const rounded = Math.trunc(value);
|
|
67
|
+
if (rounded < 1)
|
|
68
|
+
return 1;
|
|
69
|
+
if (rounded > 30)
|
|
70
|
+
return 30;
|
|
71
|
+
return rounded;
|
|
72
|
+
}
|
|
73
|
+
function isInteractiveTerminal() {
|
|
74
|
+
return process.stdin.isTTY && process.stdout.isTTY && process.env.CI !== 'true';
|
|
75
|
+
}
|
|
62
76
|
function listFilesRecursively(dirPath, maxDepth = 4, maxFiles = 240) {
|
|
63
77
|
const files = [];
|
|
64
78
|
const walk = (current, depth) => {
|
|
@@ -102,15 +116,7 @@ function isCandidatePlanFile(filePath) {
|
|
|
102
116
|
|| normalized.includes('contract')
|
|
103
117
|
|| normalized.includes('prompt'));
|
|
104
118
|
}
|
|
105
|
-
function
|
|
106
|
-
try {
|
|
107
|
-
return (0, fs_1.statSync)(filePath).mtimeMs || 0;
|
|
108
|
-
}
|
|
109
|
-
catch {
|
|
110
|
-
return 0;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
function discoverAgentPlanFile(projectRoot, options) {
|
|
119
|
+
function resolveAutoDetectRoots(projectRoot, options) {
|
|
114
120
|
const provider = normalizeProvider(options.provider);
|
|
115
121
|
const explicitPath = options.agentPath?.trim();
|
|
116
122
|
const explicitRoots = explicitPath ? [(0, path_1.resolve)(projectRoot, explicitPath)] : [];
|
|
@@ -121,9 +127,18 @@ function discoverAgentPlanFile(projectRoot, options) {
|
|
|
121
127
|
chatgpt: ['.chatgpt', '.openai', '.neurcode/import'],
|
|
122
128
|
generic: ['.neurcode/import', '.claude/plans', '.cursor/plans', '.codex/plans'],
|
|
123
129
|
};
|
|
130
|
+
if (explicitRoots.length > 0 && !(0, fs_1.existsSync)(explicitRoots[0])) {
|
|
131
|
+
throw new Error(`--agent-path does not exist: ${explicitRoots[0]}`);
|
|
132
|
+
}
|
|
124
133
|
const defaultRoots = providerRoots[provider] || providerRoots.generic;
|
|
125
|
-
|
|
134
|
+
return explicitRoots.length > 0
|
|
135
|
+
? explicitRoots
|
|
136
|
+
: defaultRoots.map((entry) => (0, path_1.resolve)(projectRoot, entry));
|
|
137
|
+
}
|
|
138
|
+
function discoverAgentPlanCandidates(projectRoot, options) {
|
|
139
|
+
const roots = resolveAutoDetectRoots(projectRoot, options);
|
|
126
140
|
const candidates = [];
|
|
141
|
+
const dedupe = new Set();
|
|
127
142
|
for (const root of roots) {
|
|
128
143
|
if (!(0, fs_1.existsSync)(root)) {
|
|
129
144
|
continue;
|
|
@@ -131,27 +146,91 @@ function discoverAgentPlanFile(projectRoot, options) {
|
|
|
131
146
|
try {
|
|
132
147
|
const stat = (0, fs_1.statSync)(root);
|
|
133
148
|
if (stat.isFile()) {
|
|
134
|
-
if (isCandidatePlanFile(root)) {
|
|
135
|
-
|
|
149
|
+
if (isCandidatePlanFile(root) && !dedupe.has(root)) {
|
|
150
|
+
dedupe.add(root);
|
|
151
|
+
candidates.push({
|
|
152
|
+
path: root,
|
|
153
|
+
mtimeMs: stat.mtimeMs || 0,
|
|
154
|
+
sizeBytes: stat.size || 0,
|
|
155
|
+
});
|
|
136
156
|
}
|
|
137
157
|
continue;
|
|
138
158
|
}
|
|
139
159
|
const discovered = listFilesRecursively(root);
|
|
140
160
|
for (const file of discovered) {
|
|
141
|
-
if (isCandidatePlanFile(file)) {
|
|
142
|
-
|
|
161
|
+
if (!isCandidatePlanFile(file) || dedupe.has(file)) {
|
|
162
|
+
continue;
|
|
143
163
|
}
|
|
164
|
+
dedupe.add(file);
|
|
165
|
+
const fileStat = (0, fs_1.statSync)(file);
|
|
166
|
+
candidates.push({
|
|
167
|
+
path: file,
|
|
168
|
+
mtimeMs: fileStat.mtimeMs || 0,
|
|
169
|
+
sizeBytes: fileStat.size || 0,
|
|
170
|
+
});
|
|
144
171
|
}
|
|
145
172
|
}
|
|
146
173
|
catch {
|
|
147
174
|
// Continue scanning remaining roots.
|
|
148
175
|
}
|
|
149
176
|
}
|
|
177
|
+
candidates.sort((left, right) => right.mtimeMs - left.mtimeMs);
|
|
178
|
+
return candidates;
|
|
179
|
+
}
|
|
180
|
+
function formatAutoDetectCandidates(projectRoot, candidates) {
|
|
181
|
+
return candidates.map((candidate) => ({
|
|
182
|
+
path: candidate.path,
|
|
183
|
+
relativePath: (0, path_1.relative)(projectRoot, candidate.path) || candidate.path,
|
|
184
|
+
modifiedAt: new Date(candidate.mtimeMs).toISOString(),
|
|
185
|
+
sizeBytes: candidate.sizeBytes,
|
|
186
|
+
}));
|
|
187
|
+
}
|
|
188
|
+
function askQuestion(question) {
|
|
189
|
+
return new Promise((resolvePromise) => {
|
|
190
|
+
const rl = (0, readline_1.createInterface)({
|
|
191
|
+
input: process.stdin,
|
|
192
|
+
output: process.stdout,
|
|
193
|
+
});
|
|
194
|
+
rl.question(question, (answer) => {
|
|
195
|
+
rl.close();
|
|
196
|
+
resolvePromise(String(answer || '').trim());
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
async function confirmAutoDetectedCandidate(projectRoot, candidates) {
|
|
150
201
|
if (candidates.length === 0) {
|
|
151
|
-
|
|
202
|
+
throw new Error('No plan candidates available for confirmation.');
|
|
203
|
+
}
|
|
204
|
+
console.log(chalk.bold.cyan('\n🧭 Auto-detected plan candidates'));
|
|
205
|
+
candidates.forEach((candidate, idx) => {
|
|
206
|
+
const rel = (0, path_1.relative)(projectRoot, candidate.path) || candidate.path;
|
|
207
|
+
const modified = new Date(candidate.mtimeMs).toLocaleString();
|
|
208
|
+
console.log(chalk.dim(` ${idx + 1}. ${rel} (${modified}, ${candidate.sizeBytes} bytes)`));
|
|
209
|
+
});
|
|
210
|
+
console.log('');
|
|
211
|
+
const selectionAnswer = await askQuestion(`Select candidate [1-${candidates.length}] (default: 1, q to cancel): `);
|
|
212
|
+
if (/^q(?:uit)?$/i.test(selectionAnswer)) {
|
|
213
|
+
throw new Error('Auto-detect selection cancelled by user.');
|
|
214
|
+
}
|
|
215
|
+
let selectedRank = 1;
|
|
216
|
+
if (selectionAnswer) {
|
|
217
|
+
const parsed = Number.parseInt(selectionAnswer, 10);
|
|
218
|
+
if (!Number.isFinite(parsed) || parsed < 1 || parsed > candidates.length) {
|
|
219
|
+
throw new Error(`Invalid selection "${selectionAnswer}". Expected a value between 1 and ${candidates.length}.`);
|
|
220
|
+
}
|
|
221
|
+
selectedRank = parsed;
|
|
152
222
|
}
|
|
153
|
-
|
|
154
|
-
|
|
223
|
+
const selected = candidates[selectedRank - 1];
|
|
224
|
+
const selectedRel = (0, path_1.relative)(projectRoot, selected.path) || selected.path;
|
|
225
|
+
const confirmAnswer = await askQuestion(`Use "${selectedRel}" for contract import? [Y/n]: `);
|
|
226
|
+
if (confirmAnswer && !/^y(?:es)?$/i.test(confirmAnswer)) {
|
|
227
|
+
throw new Error('Auto-detect confirmation denied by user.');
|
|
228
|
+
}
|
|
229
|
+
return {
|
|
230
|
+
selected,
|
|
231
|
+
selectedRank,
|
|
232
|
+
confirmed: true,
|
|
233
|
+
};
|
|
155
234
|
}
|
|
156
235
|
async function resolveImportPayload(projectRoot, options) {
|
|
157
236
|
if (options.text && options.text.trim()) {
|
|
@@ -171,27 +250,54 @@ async function resolveImportPayload(projectRoot, options) {
|
|
|
171
250
|
return {
|
|
172
251
|
source: 'file',
|
|
173
252
|
planJson: parsed,
|
|
253
|
+
sourcePath: inputPath,
|
|
174
254
|
};
|
|
175
255
|
}
|
|
176
256
|
return {
|
|
177
257
|
source: 'file',
|
|
178
258
|
planText: raw,
|
|
259
|
+
sourcePath: inputPath,
|
|
179
260
|
};
|
|
180
261
|
}
|
|
181
262
|
if (options.autoDetect || (options.agentPath && options.agentPath.trim())) {
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
263
|
+
const candidateLimit = normalizeCandidateLimit(options.maxCandidates);
|
|
264
|
+
const discovered = discoverAgentPlanCandidates(projectRoot, options);
|
|
265
|
+
if (discovered.length > 0) {
|
|
266
|
+
const topCandidates = discovered.slice(0, candidateLimit);
|
|
267
|
+
const shouldConfirm = options.confirm !== false && !options.json && isInteractiveTerminal();
|
|
268
|
+
let selected = topCandidates[0];
|
|
269
|
+
let selectedRank = 1;
|
|
270
|
+
let confirmed = !shouldConfirm;
|
|
271
|
+
if (shouldConfirm) {
|
|
272
|
+
const confirmation = await confirmAutoDetectedCandidate(projectRoot, topCandidates);
|
|
273
|
+
selected = confirmation.selected;
|
|
274
|
+
selectedRank = confirmation.selectedRank;
|
|
275
|
+
confirmed = confirmation.confirmed;
|
|
276
|
+
}
|
|
277
|
+
const raw = (0, fs_1.readFileSync)(selected.path, 'utf-8');
|
|
278
|
+
const autoDetectMetadata = {
|
|
279
|
+
provider: normalizeProvider(options.provider),
|
|
280
|
+
candidateCount: discovered.length,
|
|
281
|
+
selectedPath: selected.path,
|
|
282
|
+
selectedRank,
|
|
283
|
+
confirmRequired: shouldConfirm,
|
|
284
|
+
confirmed,
|
|
285
|
+
candidates: formatAutoDetectCandidates(projectRoot, topCandidates),
|
|
286
|
+
};
|
|
185
287
|
const parsed = parseAsJsonIfPossible(raw);
|
|
186
288
|
if (parsed !== null) {
|
|
187
289
|
return {
|
|
188
290
|
source: 'agent_auto',
|
|
189
291
|
planJson: parsed,
|
|
292
|
+
sourcePath: selected.path,
|
|
293
|
+
autoDetect: autoDetectMetadata,
|
|
190
294
|
};
|
|
191
295
|
}
|
|
192
296
|
return {
|
|
193
297
|
source: 'agent_auto',
|
|
194
298
|
planText: raw,
|
|
299
|
+
sourcePath: selected.path,
|
|
300
|
+
autoDetect: autoDetectMetadata,
|
|
195
301
|
};
|
|
196
302
|
}
|
|
197
303
|
if (options.autoDetect || (options.agentPath && options.agentPath.trim())) {
|
|
@@ -234,12 +340,46 @@ function contractCommand(program) {
|
|
|
234
340
|
.option('--stdin', 'Read plan payload from stdin')
|
|
235
341
|
.option('--auto-detect', 'Auto-detect latest plan artifact from local AI assistant directories')
|
|
236
342
|
.option('--agent-path <path>', 'Optional file/dir override when using --auto-detect')
|
|
343
|
+
.option('--no-confirm', 'Skip interactive confirmation for auto-detected plan selection')
|
|
344
|
+
.option('--list-candidates', 'List auto-detected candidate plan files and exit without importing')
|
|
345
|
+
.option('--max-candidates <n>', 'Max auto-detect candidates to inspect/report (default: 8)', (value) => parseInt(value, 10))
|
|
237
346
|
.option('--no-write-change-contract', 'Skip writing .neurcode/change-contract.json')
|
|
238
347
|
.option('--json', 'Output machine-readable JSON')
|
|
239
348
|
.action(async (options) => {
|
|
240
349
|
const projectRoot = (0, project_root_1.resolveNeurcodeProjectRoot)(process.cwd());
|
|
241
350
|
const startedAt = Date.now();
|
|
242
351
|
try {
|
|
352
|
+
if (options.listCandidates) {
|
|
353
|
+
const candidateLimit = normalizeCandidateLimit(options.maxCandidates);
|
|
354
|
+
const discovered = discoverAgentPlanCandidates(projectRoot, options);
|
|
355
|
+
const candidates = formatAutoDetectCandidates(projectRoot, discovered.slice(0, candidateLimit));
|
|
356
|
+
const payload = {
|
|
357
|
+
success: true,
|
|
358
|
+
mode: 'candidate_list',
|
|
359
|
+
provider: normalizeProvider(options.provider),
|
|
360
|
+
candidateCount: discovered.length,
|
|
361
|
+
candidates,
|
|
362
|
+
message: discovered.length > 0
|
|
363
|
+
? 'Auto-detect candidates resolved.'
|
|
364
|
+
: 'No auto-detect candidates found. Provide --input or use --agent-path.',
|
|
365
|
+
timestamp: new Date().toISOString(),
|
|
366
|
+
};
|
|
367
|
+
if (options.json) {
|
|
368
|
+
console.log(JSON.stringify(payload, null, 2));
|
|
369
|
+
}
|
|
370
|
+
else if (candidates.length === 0) {
|
|
371
|
+
console.log(chalk.yellow('\n⚠️ No auto-detect plan candidates found.\n'));
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
console.log(chalk.bold.cyan('\n🧭 Auto-detect plan candidates\n'));
|
|
375
|
+
candidates.forEach((candidate, idx) => {
|
|
376
|
+
console.log(chalk.dim(` ${idx + 1}. ${candidate.relativePath}`));
|
|
377
|
+
console.log(chalk.dim(` modified: ${candidate.modifiedAt} | size: ${candidate.sizeBytes} bytes`));
|
|
378
|
+
});
|
|
379
|
+
console.log('');
|
|
380
|
+
}
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
243
383
|
const config = (0, config_1.loadConfig)();
|
|
244
384
|
if (!config.apiKey) {
|
|
245
385
|
config.apiKey = (0, config_1.requireApiKey)();
|
|
@@ -293,6 +433,8 @@ function contractCommand(program) {
|
|
|
293
433
|
projectId: options.projectId || null,
|
|
294
434
|
parseMode: response.parseMode,
|
|
295
435
|
importedFiles: response.importedFiles,
|
|
436
|
+
sourcePath: payload.sourcePath || null,
|
|
437
|
+
autoDetect: payload.autoDetect || null,
|
|
296
438
|
warnings: response.warnings || [],
|
|
297
439
|
changeContract: changeContractPayload,
|
|
298
440
|
message: response.message,
|
|
@@ -304,6 +446,19 @@ function contractCommand(program) {
|
|
|
304
446
|
console.log(chalk.bold.cyan('\n📥 Neurcode Contract Import\n'));
|
|
305
447
|
if (payload.source === 'agent_auto') {
|
|
306
448
|
console.log(chalk.dim('Import source: auto-detected agent artifact'));
|
|
449
|
+
if (payload.sourcePath) {
|
|
450
|
+
console.log(chalk.dim(`Detected file: ${payload.sourcePath}`));
|
|
451
|
+
}
|
|
452
|
+
if (payload.autoDetect) {
|
|
453
|
+
console.log(chalk.dim(`Candidates scanned: ${payload.autoDetect.candidateCount} ` +
|
|
454
|
+
`(showing top ${payload.autoDetect.candidates.length})`));
|
|
455
|
+
if (payload.autoDetect.confirmRequired) {
|
|
456
|
+
console.log(chalk.dim(`Selection confirmed: ${payload.autoDetect.confirmed ? 'yes' : 'no'}`));
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
else if (payload.source === 'file' && payload.sourcePath) {
|
|
461
|
+
console.log(chalk.dim(`Import source file: ${payload.sourcePath}`));
|
|
307
462
|
}
|
|
308
463
|
console.log(chalk.dim(`Provider: ${response.provider}`));
|
|
309
464
|
console.log(chalk.dim(`Parse mode: ${response.parseMode}`));
|
|
@@ -338,6 +493,8 @@ function contractCommand(program) {
|
|
|
338
493
|
projectId: options.projectId || null,
|
|
339
494
|
parseMode: null,
|
|
340
495
|
importedFiles: 0,
|
|
496
|
+
sourcePath: null,
|
|
497
|
+
autoDetect: null,
|
|
341
498
|
warnings: [],
|
|
342
499
|
changeContract: null,
|
|
343
500
|
message,
|
|
@@ -350,6 +507,8 @@ function contractCommand(program) {
|
|
|
350
507
|
console.log(chalk.dim('Examples:'));
|
|
351
508
|
console.log(chalk.dim(' neurcode contract import --provider claude --input ./plan.md'));
|
|
352
509
|
console.log(chalk.dim(' neurcode contract import --provider claude --auto-detect'));
|
|
510
|
+
console.log(chalk.dim(' neurcode contract import --provider codex --auto-detect --list-candidates'));
|
|
511
|
+
console.log(chalk.dim(' neurcode contract import --provider codex --auto-detect --no-confirm'));
|
|
353
512
|
console.log(chalk.dim(' cat plan.json | neurcode contract import --provider cursor --stdin\n'));
|
|
354
513
|
process.exit(1);
|
|
355
514
|
}
|