@radkode/neo 1.2.0 → 1.4.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 +81 -9
- package/dist/commands/agent/context/index.js +12 -57
- package/dist/commands/agent/context/index.js.map +1 -1
- package/dist/commands/agent/init/index.d.ts.map +1 -1
- package/dist/commands/agent/init/index.js +36 -33
- package/dist/commands/agent/init/index.js.map +1 -1
- package/dist/commands/alias/setup/index.d.ts.map +1 -1
- package/dist/commands/alias/setup/index.js +2 -11
- package/dist/commands/alias/setup/index.js.map +1 -1
- package/dist/commands/changeset/index.d.ts +17 -0
- package/dist/commands/changeset/index.d.ts.map +1 -0
- package/dist/commands/changeset/index.js +251 -0
- package/dist/commands/changeset/index.js.map +1 -0
- package/dist/commands/completions/index.d.ts.map +1 -1
- package/dist/commands/completions/index.js +20 -12
- package/dist/commands/completions/index.js.map +1 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +173 -158
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/config/profile/index.d.ts.map +1 -1
- package/dist/commands/config/profile/index.js +169 -232
- package/dist/commands/config/profile/index.js.map +1 -1
- package/dist/commands/gh/pr/create/index.d.ts.map +1 -1
- package/dist/commands/gh/pr/create/index.js +4 -14
- package/dist/commands/gh/pr/create/index.js.map +1 -1
- package/dist/commands/git/branch/index.d.ts.map +1 -1
- package/dist/commands/git/branch/index.js +3 -14
- package/dist/commands/git/branch/index.js.map +1 -1
- package/dist/commands/git/commit/index.d.ts.map +1 -1
- package/dist/commands/git/commit/index.js +4 -14
- package/dist/commands/git/commit/index.js.map +1 -1
- package/dist/commands/git/pull/index.d.ts.map +1 -1
- package/dist/commands/git/pull/index.js +4 -14
- package/dist/commands/git/pull/index.js.map +1 -1
- package/dist/commands/git/push/index.d.ts.map +1 -1
- package/dist/commands/git/push/index.js +2 -3
- package/dist/commands/git/push/index.js.map +1 -1
- package/dist/commands/git/stash/index.d.ts.map +1 -1
- package/dist/commands/git/stash/index.js +2 -3
- package/dist/commands/git/stash/index.js.map +1 -1
- package/dist/commands/git/worktree/add.d.ts.map +1 -1
- package/dist/commands/git/worktree/add.js +18 -13
- package/dist/commands/git/worktree/add.js.map +1 -1
- package/dist/commands/git/worktree/list.d.ts.map +1 -1
- package/dist/commands/git/worktree/list.js +32 -20
- package/dist/commands/git/worktree/list.js.map +1 -1
- package/dist/commands/git/worktree/remove.d.ts.map +1 -1
- package/dist/commands/git/worktree/remove.js +2 -3
- package/dist/commands/git/worktree/remove.js.map +1 -1
- package/dist/commands/git/worktree/switch.d.ts.map +1 -1
- package/dist/commands/git/worktree/switch.js +2 -3
- package/dist/commands/git/worktree/switch.js.map +1 -1
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +9 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +3 -12
- package/dist/commands/init/index.js.map +1 -1
- package/dist/commands/pr/index.d.ts.map +1 -1
- package/dist/commands/pr/index.js +6 -20
- package/dist/commands/pr/index.js.map +1 -1
- package/dist/commands/schema/index.d.ts.map +1 -1
- package/dist/commands/schema/index.js +96 -2
- package/dist/commands/schema/index.js.map +1 -1
- package/dist/commands/sync/index.d.ts +18 -0
- package/dist/commands/sync/index.d.ts.map +1 -0
- package/dist/commands/sync/index.js +193 -0
- package/dist/commands/sync/index.js.map +1 -0
- package/dist/commands/update/index.d.ts.map +1 -1
- package/dist/commands/update/index.js +6 -20
- package/dist/commands/update/index.js.map +1 -1
- package/dist/commands/verify/index.d.ts +23 -0
- package/dist/commands/verify/index.d.ts.map +1 -0
- package/dist/commands/verify/index.js +155 -0
- package/dist/commands/verify/index.js.map +1 -0
- package/dist/services/ai/index.d.ts.map +1 -1
- package/dist/services/ai/index.js +9 -2
- package/dist/services/ai/index.js.map +1 -1
- package/dist/services/ai/prompts.d.ts +6 -1
- package/dist/services/ai/prompts.d.ts.map +1 -1
- package/dist/services/ai/prompts.js +10 -4
- package/dist/services/ai/prompts.js.map +1 -1
- package/dist/types/schemas.d.ts +1 -5
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +3 -3
- package/dist/types/schemas.js.map +1 -1
- package/dist/utils/agent.d.ts.map +1 -1
- package/dist/utils/agent.js +5 -11
- package/dist/utils/agent.js.map +1 -1
- package/dist/utils/config.js +1 -1
- package/dist/utils/config.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -74,14 +74,26 @@ neo git stash pop # Pop latest stash
|
|
|
74
74
|
neo git stash list # List stashes
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
+
### `neo git commit`
|
|
78
|
+
|
|
79
|
+
Conventional commits with optional AI-drafted messages.
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
neo git commit # Interactive conventional commit
|
|
83
|
+
neo git commit --ai # Draft a message from the staged diff (Anthropic API)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The AI path uses `claude-haiku-4-5` by default and caches the system prompt. Set your key with `neo config set ai.apiKey` or `ANTHROPIC_API_KEY`.
|
|
87
|
+
|
|
77
88
|
### `neo config`
|
|
78
89
|
|
|
79
|
-
Key-value configuration with secure secrets storage.
|
|
90
|
+
Key-value configuration with secure secrets storage and profiles.
|
|
80
91
|
|
|
81
92
|
```bash
|
|
82
|
-
neo config set key value
|
|
83
|
-
neo config get key
|
|
84
|
-
neo config list
|
|
93
|
+
neo config set key value # Set a value
|
|
94
|
+
neo config get key # Get a value
|
|
95
|
+
neo config list # List all values
|
|
96
|
+
neo config profile create work # Create/switch profiles
|
|
85
97
|
```
|
|
86
98
|
|
|
87
99
|
### `neo update`
|
|
@@ -93,14 +105,74 @@ neo update # Update to latest
|
|
|
93
105
|
neo update --check-only # Check for updates
|
|
94
106
|
```
|
|
95
107
|
|
|
108
|
+
## Agent mode
|
|
109
|
+
|
|
110
|
+
Neo is built to be scripted and driven by AI coding agents (Claude Code, Cursor, Aider, etc.). Every command returns structured output on demand, has deterministic exit codes, and can skip prompts — no screen-scraping required.
|
|
111
|
+
|
|
112
|
+
### Flags
|
|
113
|
+
|
|
114
|
+
| Flag | What it does |
|
|
115
|
+
|------|--------------|
|
|
116
|
+
| `--json` | Emit a single JSON payload on stdout. Implies `--non-interactive` and `--quiet`. Errors come back as `{"error": {...}}`. |
|
|
117
|
+
| `-y, --yes` | Auto-accept prompt defaults. Safe for idempotent operations; destructive actions still require an explicit flag like `--force`. |
|
|
118
|
+
| `--non-interactive` | Fail fast with exit code `2` instead of prompting. Pair with `--yes` or the prompt-specific flag. |
|
|
119
|
+
| `-q, --quiet` | Suppress banner, spinners, and decorative output. |
|
|
120
|
+
|
|
121
|
+
### Exit codes
|
|
122
|
+
|
|
123
|
+
| Code | Meaning |
|
|
124
|
+
|------|---------|
|
|
125
|
+
| `0` | Success |
|
|
126
|
+
| `1` | Command failure (see stderr/JSON error for details) |
|
|
127
|
+
| `2` | Non-interactive prompt required — pass the missing flag |
|
|
128
|
+
|
|
129
|
+
### Environment markers
|
|
130
|
+
|
|
131
|
+
Neo auto-detects agent environments and switches to agent defaults (no banner, no color, non-interactive):
|
|
132
|
+
|
|
133
|
+
- `CLAUDECODE=1` — Claude Code
|
|
134
|
+
- `CURSOR_AGENT=1` — Cursor agent
|
|
135
|
+
- `AIDER=1` — Aider
|
|
136
|
+
- `NEO_AGENT=1` — any other agent
|
|
137
|
+
|
|
138
|
+
Override flags: `NEO_JSON`, `NEO_YES`, `NEO_NON_INTERACTIVE`, `NEO_QUIET`. `NO_COLOR` and `CI` are also respected.
|
|
139
|
+
|
|
140
|
+
### Discover the command tree
|
|
141
|
+
|
|
142
|
+
Rather than relying on training data, agents should query Neo's schema directly:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
neo schema # Compact JSON on stdout
|
|
146
|
+
neo schema --pretty # Pretty-printed JSON
|
|
147
|
+
neo schema --markdown # Human-readable docs
|
|
148
|
+
neo schema | jq '.commands[] | .path'
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
The schema follows an OpenCLI-lite shape: every command, option, argument, and global flag is enumerated with types and descriptions.
|
|
152
|
+
|
|
153
|
+
### Example: create a PR from an agent
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
neo git push --yes --json \
|
|
157
|
+
&& neo gh pr create --title "Add X" --body "…" --yes --json \
|
|
158
|
+
| jq -r '.url'
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
If a required prompt can't be answered non-interactively you'll get exit code `2` and a structured error telling you which flag was missing.
|
|
162
|
+
|
|
96
163
|
## Global Options
|
|
97
164
|
|
|
98
165
|
```
|
|
99
|
-
-v, --verbose
|
|
100
|
-
|
|
101
|
-
--no-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
166
|
+
-v, --verbose Verbose output
|
|
167
|
+
-c, --config <path> Path to config file
|
|
168
|
+
--no-color Disable colors
|
|
169
|
+
--no-banner Hide banner
|
|
170
|
+
--json Machine-readable JSON on stdout (implies --non-interactive, --quiet)
|
|
171
|
+
-y, --yes Auto-accept prompt defaults
|
|
172
|
+
--non-interactive Fail fast instead of prompting
|
|
173
|
+
-q, --quiet Suppress banner and decorative output
|
|
174
|
+
-h, --help Show help
|
|
175
|
+
-V, --version Show version
|
|
104
176
|
```
|
|
105
177
|
|
|
106
178
|
## Development
|
|
@@ -2,7 +2,7 @@ import { Command } from '@commander-js/extra-typings';
|
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
3
|
import { ContextDB } from '../../../storage/db.js';
|
|
4
4
|
import { ui } from '../../../utils/ui.js';
|
|
5
|
-
import { validate, validateArgument
|
|
5
|
+
import { validate, validateArgument } from '../../../utils/validation.js';
|
|
6
6
|
import { getRuntimeContext } from '../../../utils/runtime-context.js';
|
|
7
7
|
import { NonInteractiveError } from '../../../utils/prompt.js';
|
|
8
8
|
import { emitJson } from '../../../utils/output.js';
|
|
@@ -27,26 +27,8 @@ function createContextAddCommand() {
|
|
|
27
27
|
.option('--priority <priority>', 'priority level (low, medium, high, critical)')
|
|
28
28
|
.action(runAction(async (rawContent, options) => {
|
|
29
29
|
await ensureAgentInitialized();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
content = validateArgument(contextContentSchema, rawContent, 'context content');
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
if (isValidationError(error)) {
|
|
36
|
-
process.exit(1);
|
|
37
|
-
}
|
|
38
|
-
throw error;
|
|
39
|
-
}
|
|
40
|
-
let validatedOptions;
|
|
41
|
-
try {
|
|
42
|
-
validatedOptions = validate(agentContextAddOptionsSchema, options, 'context add options');
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
if (isValidationError(error)) {
|
|
46
|
-
process.exit(1);
|
|
47
|
-
}
|
|
48
|
-
throw error;
|
|
49
|
-
}
|
|
30
|
+
const content = validateArgument(contextContentSchema, rawContent, 'context content');
|
|
31
|
+
const validatedOptions = validate(agentContextAddOptionsSchema, options, 'context add options');
|
|
50
32
|
await addContext(content, validatedOptions);
|
|
51
33
|
}));
|
|
52
34
|
return command;
|
|
@@ -59,16 +41,7 @@ function createContextListCommand() {
|
|
|
59
41
|
.option('--priority <priority>', 'filter by priority')
|
|
60
42
|
.action(runAction(async (options) => {
|
|
61
43
|
await ensureAgentInitialized();
|
|
62
|
-
|
|
63
|
-
try {
|
|
64
|
-
validatedOptions = validate(agentContextListOptionsSchema, options, 'context list options');
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
if (isValidationError(error)) {
|
|
68
|
-
process.exit(1);
|
|
69
|
-
}
|
|
70
|
-
throw error;
|
|
71
|
-
}
|
|
44
|
+
const validatedOptions = validate(agentContextListOptionsSchema, options, 'context list options');
|
|
72
45
|
await listContexts(validatedOptions);
|
|
73
46
|
}));
|
|
74
47
|
return command;
|
|
@@ -80,16 +53,7 @@ function createContextRemoveCommand() {
|
|
|
80
53
|
.argument('<id>', 'context ID to remove')
|
|
81
54
|
.action(runAction(async (rawId) => {
|
|
82
55
|
await ensureAgentInitialized();
|
|
83
|
-
|
|
84
|
-
try {
|
|
85
|
-
id = validateArgument(contextIdSchema, rawId, 'context ID');
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
if (isValidationError(error)) {
|
|
89
|
-
process.exit(1);
|
|
90
|
-
}
|
|
91
|
-
throw error;
|
|
92
|
-
}
|
|
56
|
+
const id = validateArgument(contextIdSchema, rawId, 'context ID');
|
|
93
57
|
await removeContext(id);
|
|
94
58
|
}));
|
|
95
59
|
return command;
|
|
@@ -97,8 +61,7 @@ function createContextRemoveCommand() {
|
|
|
97
61
|
async function addContext(content, options) {
|
|
98
62
|
const dbPath = await getAgentDbPath();
|
|
99
63
|
if (!dbPath) {
|
|
100
|
-
|
|
101
|
-
process.exit(1);
|
|
64
|
+
throw new Error('Failed to get database path');
|
|
102
65
|
}
|
|
103
66
|
const spinner = ui.spinner('Adding context');
|
|
104
67
|
spinner.start();
|
|
@@ -133,15 +96,13 @@ async function addContext(content, options) {
|
|
|
133
96
|
}
|
|
134
97
|
catch (error) {
|
|
135
98
|
spinner.fail('Failed to add context');
|
|
136
|
-
|
|
137
|
-
process.exit(1);
|
|
99
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
138
100
|
}
|
|
139
101
|
}
|
|
140
102
|
async function listContexts(options) {
|
|
141
103
|
const dbPath = await getAgentDbPath();
|
|
142
104
|
if (!dbPath) {
|
|
143
|
-
|
|
144
|
-
process.exit(1);
|
|
105
|
+
throw new Error('Failed to get database path');
|
|
145
106
|
}
|
|
146
107
|
const spinner = ui.spinner('Loading contexts');
|
|
147
108
|
spinner.start();
|
|
@@ -210,24 +171,20 @@ async function listContexts(options) {
|
|
|
210
171
|
}
|
|
211
172
|
catch (error) {
|
|
212
173
|
spinner.fail('Failed to load contexts');
|
|
213
|
-
|
|
214
|
-
process.exit(1);
|
|
174
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
215
175
|
}
|
|
216
176
|
}
|
|
217
177
|
async function removeContext(id) {
|
|
218
178
|
const dbPath = await getAgentDbPath();
|
|
219
179
|
if (!dbPath) {
|
|
220
|
-
|
|
221
|
-
process.exit(1);
|
|
180
|
+
throw new Error('Failed to get database path');
|
|
222
181
|
}
|
|
223
182
|
try {
|
|
224
183
|
const db = await ContextDB.create(dbPath);
|
|
225
184
|
const context = db.getContext(id);
|
|
226
185
|
if (!context) {
|
|
227
186
|
db.close();
|
|
228
|
-
|
|
229
|
-
ui.muted(`No context found with ID: ${id}`);
|
|
230
|
-
process.exit(1);
|
|
187
|
+
throw new Error(`No context found with ID: ${id}`);
|
|
231
188
|
}
|
|
232
189
|
ui.section('Context to Remove');
|
|
233
190
|
ui.keyValue([
|
|
@@ -276,9 +233,7 @@ async function removeContext(id) {
|
|
|
276
233
|
catch (error) {
|
|
277
234
|
if (error instanceof NonInteractiveError)
|
|
278
235
|
throw error;
|
|
279
|
-
|
|
280
|
-
ui.error(error instanceof Error ? error.message : String(error));
|
|
281
|
-
process.exit(1);
|
|
236
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
282
237
|
}
|
|
283
238
|
}
|
|
284
239
|
function truncateText(text, maxLength) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/agent/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/agent/context/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAmBtD,wBAAgB,sBAAsB,IAAI,OAAO,CAkBhD"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Command } from '@commander-js/extra-typings';
|
|
2
2
|
import { ContextDB } from '../../../storage/db.js';
|
|
3
3
|
import { ui } from '../../../utils/ui.js';
|
|
4
|
-
import { validate
|
|
4
|
+
import { validate } from '../../../utils/validation.js';
|
|
5
|
+
import { emitJson } from '../../../utils/output.js';
|
|
6
|
+
import { runAction } from '../../../utils/run-action.js';
|
|
5
7
|
import { agentInitOptionsSchema } from '../../../types/schemas.js';
|
|
6
8
|
import { createAgentDir, getAgentDbPath, saveAgentConfig, updateGitignore, getDefaultProjectName, isAgentInitialized, } from '../../../utils/agent.js';
|
|
7
9
|
export function createAgentInitCommand() {
|
|
@@ -10,19 +12,10 @@ export function createAgentInitCommand() {
|
|
|
10
12
|
.description('Initialize agent context management in the current project')
|
|
11
13
|
.option('--project <name>', 'project name')
|
|
12
14
|
.option('--force', 'force initialization even if already initialized')
|
|
13
|
-
.action(async (options) => {
|
|
14
|
-
|
|
15
|
-
try {
|
|
16
|
-
validatedOptions = validate(agentInitOptionsSchema, options, 'agent init options');
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
if (isValidationError(error)) {
|
|
20
|
-
process.exit(1);
|
|
21
|
-
}
|
|
22
|
-
throw error;
|
|
23
|
-
}
|
|
15
|
+
.action(runAction(async (options) => {
|
|
16
|
+
const validatedOptions = validate(agentInitOptionsSchema, options, 'agent init options');
|
|
24
17
|
await initializeAgent(validatedOptions);
|
|
25
|
-
});
|
|
18
|
+
}));
|
|
26
19
|
return command;
|
|
27
20
|
}
|
|
28
21
|
async function initializeAgent(options) {
|
|
@@ -32,8 +25,7 @@ async function initializeAgent(options) {
|
|
|
32
25
|
const alreadyInitialized = await isAgentInitialized();
|
|
33
26
|
if (alreadyInitialized && !options.force) {
|
|
34
27
|
spinner.fail('Agent already initialized in this project');
|
|
35
|
-
|
|
36
|
-
process.exit(1);
|
|
28
|
+
throw new Error('Agent already initialized. Use --force to reinitialize.');
|
|
37
29
|
}
|
|
38
30
|
if (alreadyInitialized && options.force) {
|
|
39
31
|
ui.warn('Reinitializing agent (existing data will be preserved)');
|
|
@@ -43,7 +35,7 @@ async function initializeAgent(options) {
|
|
|
43
35
|
const dbPath = await getAgentDbPath();
|
|
44
36
|
if (!dbPath) {
|
|
45
37
|
spinner.fail('Failed to get database path');
|
|
46
|
-
|
|
38
|
+
throw new Error('Failed to get database path');
|
|
47
39
|
}
|
|
48
40
|
spinner.text = 'Initializing context database';
|
|
49
41
|
const db = await ContextDB.create(dbPath);
|
|
@@ -62,25 +54,36 @@ async function initializeAgent(options) {
|
|
|
62
54
|
spinner.text = 'Updating .gitignore';
|
|
63
55
|
await updateGitignore();
|
|
64
56
|
spinner.succeed('Agent initialized successfully');
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
57
|
+
emitJson({
|
|
58
|
+
ok: true,
|
|
59
|
+
command: 'agent.init',
|
|
60
|
+
project: projectName,
|
|
61
|
+
location: agentDir,
|
|
62
|
+
database: 'context.db',
|
|
63
|
+
contexts: stats.total,
|
|
64
|
+
}, {
|
|
65
|
+
text: () => {
|
|
66
|
+
ui.section('Agent Context Management');
|
|
67
|
+
ui.keyValue([
|
|
68
|
+
['Project', projectName],
|
|
69
|
+
['Location', agentDir],
|
|
70
|
+
['Database', 'context.db'],
|
|
71
|
+
['Contexts', stats.total.toString()],
|
|
72
|
+
]);
|
|
73
|
+
ui.divider();
|
|
74
|
+
ui.step('Next steps:');
|
|
75
|
+
ui.list([
|
|
76
|
+
'Add context: neo agent context add "Your context here" --tag api --priority high',
|
|
77
|
+
'List contexts: neo agent context list',
|
|
78
|
+
'Remove context: neo agent context remove <id>',
|
|
79
|
+
]);
|
|
80
|
+
},
|
|
81
|
+
});
|
|
79
82
|
}
|
|
80
83
|
catch (error) {
|
|
81
|
-
spinner.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
+
if (spinner.isSpinning)
|
|
85
|
+
spinner.fail('Failed to initialize agent');
|
|
86
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
89
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/agent/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/agent/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAyB,MAAM,oBAAoB,CAAC;AACnF,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAK1B,MAAM,UAAU,sBAAsB;IACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;SACJ,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC;SAC1C,MAAM,CAAC,SAAS,EAAE,kDAAkD,CAAC;SACrE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;QAC3C,MAAM,gBAAgB,GAAqB,QAAQ,CACjD,sBAAsB,EACtB,OAAO,EACP,oBAAoB,CACrB,CAAC;QAEF,MAAM,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC,CAAC;IAEN,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,KAAK,UAAU,eAAe,CAAC,OAAyB;IACtD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI,CAAC;QAEH,MAAM,kBAAkB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACtD,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,kBAAkB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,EAAE,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACpE,CAAC;QAGD,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,GAAG,oCAAoC,CAAC;QAGpD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,+BAA+B,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAG1C,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5B,EAAE,CAAC,KAAK,EAAE,CAAC;QAGX,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,qBAAqB,EAAE,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,iBAAiB,EAAE;gBACjB,kBAAkB,EAAE,IAAI;aACzB;SACF,CAAC;QAEF,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAG9B,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACrC,MAAM,eAAe,EAAE,CAAC;QAExB,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAElD,QAAQ,CACN;YACE,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,KAAK,CAAC,KAAK;SACtB,EACD;YACE,IAAI,EAAE,GAAG,EAAE;gBACT,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;gBACvC,EAAE,CAAC,QAAQ,CAAC;oBACV,CAAC,SAAS,EAAE,WAAW,CAAC;oBACxB,CAAC,UAAU,EAAE,QAAQ,CAAC;oBACtB,CAAC,UAAU,EAAE,YAAY,CAAC;oBAC1B,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;iBACrC,CAAC,CAAC;gBAEH,EAAE,CAAC,OAAO,EAAE,CAAC;gBACb,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvB,EAAE,CAAC,IAAI,CAAC;oBACN,kFAAkF;oBAClF,uCAAuC;oBACvC,+CAA+C;iBAChD,CAAC,CAAC;YACL,CAAC;SACF,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACnE,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/alias/setup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAqDtD,wBAAgB,kBAAkB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/alias/setup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAqDtD,wBAAgB,kBAAkB,IAAI,OAAO,CA2F5C"}
|
|
@@ -2,7 +2,7 @@ import { Command } from '@commander-js/extra-typings';
|
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
3
|
import { ZshIntegration } from '../../../utils/shell.js';
|
|
4
4
|
import { ui } from '../../../utils/ui.js';
|
|
5
|
-
import { validate
|
|
5
|
+
import { validate } from '../../../utils/validation.js';
|
|
6
6
|
import { aliasSetupOptionsSchema } from '../../../types/schemas.js';
|
|
7
7
|
import { getRuntimeContext } from '../../../utils/runtime-context.js';
|
|
8
8
|
import { NonInteractiveError } from '../../../utils/prompt.js';
|
|
@@ -31,16 +31,7 @@ export function createSetupCommand() {
|
|
|
31
31
|
.description('Setup ZSH aliases for Neo CLI. Backs up ~/.zshrc before modifying.')
|
|
32
32
|
.option('-f, --force', 'skip confirmation and overwrite conflicting aliases')
|
|
33
33
|
.action(runAction(async (options) => {
|
|
34
|
-
|
|
35
|
-
try {
|
|
36
|
-
validatedOptions = validate(aliasSetupOptionsSchema, options, 'alias setup options');
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
if (isValidationError(error)) {
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
throw error;
|
|
43
|
-
}
|
|
34
|
+
const validatedOptions = validate(aliasSetupOptionsSchema, options, 'alias setup options');
|
|
44
35
|
const shell = new ZshIntegration();
|
|
45
36
|
const rcFile = shell.getRcFile();
|
|
46
37
|
const rcContent = await (async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/alias/setup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/alias/setup/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Command } from '@commander-js/extra-typings';
|
|
2
|
+
type BumpType = 'major' | 'minor' | 'patch' | 'empty';
|
|
3
|
+
interface ChangesetOptions {
|
|
4
|
+
bump?: string;
|
|
5
|
+
summary?: string;
|
|
6
|
+
package?: string;
|
|
7
|
+
}
|
|
8
|
+
interface ChangesetResult {
|
|
9
|
+
path: string;
|
|
10
|
+
bump: BumpType;
|
|
11
|
+
packages: string[];
|
|
12
|
+
summary: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function executeChangeset(cwd: string, options: ChangesetOptions): Promise<ChangesetResult>;
|
|
15
|
+
export declare function createChangesetCommand(): Command;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/changeset/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAUtD,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAItD,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AA6JD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAmF1B;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAsDhD"}
|