@neurcode-ai/cli 0.7.1 → 0.7.3
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 +45 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +123 -0
- package/dist/api-client.js.map +1 -1
- package/dist/commands/init.d.ts +13 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +300 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +8 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +173 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +25 -51
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/prompt.d.ts +5 -0
- package/dist/commands/prompt.d.ts.map +1 -0
- package/dist/commands/prompt.js +236 -0
- package/dist/commands/prompt.js.map +1 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +4 -3
- package/dist/commands/verify.js.map +1 -1
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +70 -12
- package/dist/config.js.map +1 -1
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/gitignore.d.ts +10 -0
- package/dist/utils/gitignore.d.ts.map +1 -0
- package/dist/utils/gitignore.js +34 -0
- package/dist/utils/gitignore.js.map +1 -0
- package/dist/utils/state.d.ts +48 -0
- package/dist/utils/state.d.ts.map +1 -0
- package/dist/utils/state.js +118 -0
- package/dist/utils/state.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Gitignore Updater Utility
|
|
4
|
+
*
|
|
5
|
+
* Ensures .neurcode directory is added to .gitignore
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ensureNeurcodeInGitignore = ensureNeurcodeInGitignore;
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const path_1 = require("path");
|
|
11
|
+
const GITIGNORE_FILE = '.gitignore';
|
|
12
|
+
const NEURCODE_IGNORE = '.neurcode';
|
|
13
|
+
/**
|
|
14
|
+
* Ensure .neurcode is in .gitignore
|
|
15
|
+
*/
|
|
16
|
+
function ensureNeurcodeInGitignore(cwd = process.cwd()) {
|
|
17
|
+
const gitignorePath = (0, path_1.join)(cwd, GITIGNORE_FILE);
|
|
18
|
+
// If .gitignore doesn't exist, create it
|
|
19
|
+
if (!(0, fs_1.existsSync)(gitignorePath)) {
|
|
20
|
+
(0, fs_1.writeFileSync)(gitignorePath, `${NEURCODE_IGNORE}\n`, 'utf-8');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Read existing .gitignore
|
|
24
|
+
const content = (0, fs_1.readFileSync)(gitignorePath, 'utf-8');
|
|
25
|
+
const lines = content.split('\n').map(line => line.trim());
|
|
26
|
+
// Check if .neurcode is already in .gitignore
|
|
27
|
+
if (lines.includes(NEURCODE_IGNORE)) {
|
|
28
|
+
return; // Already present
|
|
29
|
+
}
|
|
30
|
+
// Append .neurcode to .gitignore
|
|
31
|
+
const newContent = content.trimEnd() + (content.endsWith('\n') ? '' : '\n') + `${NEURCODE_IGNORE}\n`;
|
|
32
|
+
(0, fs_1.writeFileSync)(gitignorePath, newContent, 'utf-8');
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=gitignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAWH,8DAqBC;AA9BD,2BAA6D;AAC7D,+BAA4B;AAE5B,MAAM,cAAc,GAAG,YAAY,CAAC;AACpC,MAAM,eAAe,GAAG,WAAW,CAAC;AAEpC;;GAEG;AACH,SAAgB,yBAAyB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACnE,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEhD,yCAAyC;IACzC,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,IAAA,kBAAa,EAAC,aAAa,EAAE,GAAG,eAAe,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3D,8CAA8C;IAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,kBAAkB;IAC5B,CAAC;IAED,iCAAiC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,IAAI,CAAC;IACrG,IAAA,kBAAa,EAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Management Utility
|
|
3
|
+
*
|
|
4
|
+
* Manages CLI state in .neurcode/config.json (project-local state)
|
|
5
|
+
* Separates session state from user auth config
|
|
6
|
+
*/
|
|
7
|
+
export interface CliState {
|
|
8
|
+
projectId?: string;
|
|
9
|
+
sessionId?: string;
|
|
10
|
+
lastPlanId?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Load state from .neurcode/config.json
|
|
14
|
+
*/
|
|
15
|
+
export declare function loadState(): CliState;
|
|
16
|
+
/**
|
|
17
|
+
* Save state to .neurcode/config.json
|
|
18
|
+
*/
|
|
19
|
+
export declare function saveState(state: Partial<CliState>): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get session ID from state
|
|
22
|
+
*/
|
|
23
|
+
export declare function getSessionId(): string | null;
|
|
24
|
+
/**
|
|
25
|
+
* Set session ID in state
|
|
26
|
+
*/
|
|
27
|
+
export declare function setSessionId(sessionId: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Clear session ID from state
|
|
30
|
+
*/
|
|
31
|
+
export declare function clearSessionId(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get project ID from state
|
|
34
|
+
*/
|
|
35
|
+
export declare function getProjectId(): string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Set project ID in state
|
|
38
|
+
*/
|
|
39
|
+
export declare function setProjectId(projectId: string): void;
|
|
40
|
+
/**
|
|
41
|
+
* Get last plan ID from state
|
|
42
|
+
*/
|
|
43
|
+
export declare function getLastPlanId(): string | null;
|
|
44
|
+
/**
|
|
45
|
+
* Set last plan ID in state
|
|
46
|
+
*/
|
|
47
|
+
export declare function setLastPlanId(planId: string): void;
|
|
48
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,QAAQ;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA4BD;;GAEG;AACH,wBAAgB,SAAS,IAAI,QAAQ,CAcpC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAOxD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAG5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAIrC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAG5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAG7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAElD"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* State Management Utility
|
|
4
|
+
*
|
|
5
|
+
* Manages CLI state in .neurcode/config.json (project-local state)
|
|
6
|
+
* Separates session state from user auth config
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.loadState = loadState;
|
|
10
|
+
exports.saveState = saveState;
|
|
11
|
+
exports.getSessionId = getSessionId;
|
|
12
|
+
exports.setSessionId = setSessionId;
|
|
13
|
+
exports.clearSessionId = clearSessionId;
|
|
14
|
+
exports.getProjectId = getProjectId;
|
|
15
|
+
exports.setProjectId = setProjectId;
|
|
16
|
+
exports.getLastPlanId = getLastPlanId;
|
|
17
|
+
exports.setLastPlanId = setLastPlanId;
|
|
18
|
+
const fs_1 = require("fs");
|
|
19
|
+
const path_1 = require("path");
|
|
20
|
+
const gitignore_1 = require("./gitignore");
|
|
21
|
+
const STATE_DIR = '.neurcode';
|
|
22
|
+
const CONFIG_FILE = 'config.json'; // Changed from state.json to config.json
|
|
23
|
+
/**
|
|
24
|
+
* Get path to config file in current working directory
|
|
25
|
+
*/
|
|
26
|
+
function getConfigPath() {
|
|
27
|
+
const cwd = process.cwd();
|
|
28
|
+
const stateDir = (0, path_1.join)(cwd, STATE_DIR);
|
|
29
|
+
const configPath = (0, path_1.join)(stateDir, CONFIG_FILE);
|
|
30
|
+
return configPath;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Ensure state directory exists and .neurcode is in .gitignore
|
|
34
|
+
*/
|
|
35
|
+
function ensureStateDir() {
|
|
36
|
+
const cwd = process.cwd();
|
|
37
|
+
const stateDir = (0, path_1.join)(cwd, STATE_DIR);
|
|
38
|
+
if (!(0, fs_1.existsSync)(stateDir)) {
|
|
39
|
+
(0, fs_1.mkdirSync)(stateDir, { recursive: true });
|
|
40
|
+
}
|
|
41
|
+
// Auto-add .neurcode to .gitignore
|
|
42
|
+
(0, gitignore_1.ensureNeurcodeInGitignore)(cwd);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Load state from .neurcode/config.json
|
|
46
|
+
*/
|
|
47
|
+
function loadState() {
|
|
48
|
+
const configPath = getConfigPath();
|
|
49
|
+
if (!(0, fs_1.existsSync)(configPath)) {
|
|
50
|
+
return {};
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const content = (0, fs_1.readFileSync)(configPath, 'utf-8');
|
|
54
|
+
return JSON.parse(content);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
// If file is corrupted, return empty state
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Save state to .neurcode/config.json
|
|
63
|
+
*/
|
|
64
|
+
function saveState(state) {
|
|
65
|
+
ensureStateDir();
|
|
66
|
+
const configPath = getConfigPath();
|
|
67
|
+
const currentState = loadState();
|
|
68
|
+
const newState = { ...currentState, ...state };
|
|
69
|
+
(0, fs_1.writeFileSync)(configPath, JSON.stringify(newState, null, 2) + '\n', 'utf-8');
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get session ID from state
|
|
73
|
+
*/
|
|
74
|
+
function getSessionId() {
|
|
75
|
+
const state = loadState();
|
|
76
|
+
return state.sessionId || null;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Set session ID in state
|
|
80
|
+
*/
|
|
81
|
+
function setSessionId(sessionId) {
|
|
82
|
+
saveState({ sessionId });
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Clear session ID from state
|
|
86
|
+
*/
|
|
87
|
+
function clearSessionId() {
|
|
88
|
+
const state = loadState();
|
|
89
|
+
delete state.sessionId;
|
|
90
|
+
saveState(state);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get project ID from state
|
|
94
|
+
*/
|
|
95
|
+
function getProjectId() {
|
|
96
|
+
const state = loadState();
|
|
97
|
+
return state.projectId || null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Set project ID in state
|
|
101
|
+
*/
|
|
102
|
+
function setProjectId(projectId) {
|
|
103
|
+
saveState({ projectId });
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get last plan ID from state
|
|
107
|
+
*/
|
|
108
|
+
function getLastPlanId() {
|
|
109
|
+
const state = loadState();
|
|
110
|
+
return state.lastPlanId || null;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Set last plan ID in state
|
|
114
|
+
*/
|
|
115
|
+
function setLastPlanId(planId) {
|
|
116
|
+
saveState({ lastPlanId: planId });
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"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"}
|