@radkode/neo 1.3.0 → 1.5.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.
Files changed (40) hide show
  1. package/dist/commands/ai/index.d.ts +3 -0
  2. package/dist/commands/ai/index.d.ts.map +1 -0
  3. package/dist/commands/ai/index.js +21 -0
  4. package/dist/commands/ai/index.js.map +1 -0
  5. package/dist/commands/ai/pr/index.d.ts +19 -0
  6. package/dist/commands/ai/pr/index.d.ts.map +1 -0
  7. package/dist/commands/ai/pr/index.js +225 -0
  8. package/dist/commands/ai/pr/index.js.map +1 -0
  9. package/dist/commands/changeset/index.d.ts +17 -0
  10. package/dist/commands/changeset/index.d.ts.map +1 -0
  11. package/dist/commands/changeset/index.js +251 -0
  12. package/dist/commands/changeset/index.js.map +1 -0
  13. package/dist/commands/doctor/index.d.ts +16 -0
  14. package/dist/commands/doctor/index.d.ts.map +1 -0
  15. package/dist/commands/doctor/index.js +313 -0
  16. package/dist/commands/doctor/index.js.map +1 -0
  17. package/dist/commands/index.d.ts +5 -0
  18. package/dist/commands/index.d.ts.map +1 -1
  19. package/dist/commands/index.js +15 -0
  20. package/dist/commands/index.js.map +1 -1
  21. package/dist/commands/sync/index.d.ts +18 -0
  22. package/dist/commands/sync/index.d.ts.map +1 -0
  23. package/dist/commands/sync/index.js +193 -0
  24. package/dist/commands/sync/index.js.map +1 -0
  25. package/dist/commands/verify/index.d.ts +23 -0
  26. package/dist/commands/verify/index.d.ts.map +1 -0
  27. package/dist/commands/verify/index.js +155 -0
  28. package/dist/commands/verify/index.js.map +1 -0
  29. package/dist/services/ai/index.d.ts +9 -1
  30. package/dist/services/ai/index.d.ts.map +1 -1
  31. package/dist/services/ai/index.js +23 -3
  32. package/dist/services/ai/index.js.map +1 -1
  33. package/dist/services/ai/pr-prompts.d.ts +17 -0
  34. package/dist/services/ai/pr-prompts.d.ts.map +1 -0
  35. package/dist/services/ai/pr-prompts.js +68 -0
  36. package/dist/services/ai/pr-prompts.js.map +1 -0
  37. package/dist/services/ai/prompts.d.ts +3 -2
  38. package/dist/services/ai/prompts.d.ts.map +1 -1
  39. package/dist/services/ai/prompts.js.map +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1,313 @@
1
+ import { Command } from '@commander-js/extra-typings';
2
+ import { execa } from 'execa';
3
+ import which from 'which';
4
+ import { access, readFile } from 'node:fs/promises';
5
+ import { constants } from 'node:fs';
6
+ import { findUp } from 'find-up';
7
+ import { ui } from '../../utils/ui.js';
8
+ import { emitJson } from '../../utils/output.js';
9
+ import { runAction } from '../../utils/run-action.js';
10
+ import { configManager } from '../../utils/config.js';
11
+ import { secretsManager } from '../../utils/secrets.js';
12
+ const FALLBACK_MIN_NODE = '20.0.0';
13
+ function parseSemver(version) {
14
+ const cleaned = version.replace(/^[=v]/, '').split(/[-+]/)[0] ?? '';
15
+ const parts = cleaned.split('.').map((n) => Number.parseInt(n, 10));
16
+ return [parts[0] || 0, parts[1] || 0, parts[2] || 0];
17
+ }
18
+ function compareSemver(a, b) {
19
+ const [a1, a2, a3] = parseSemver(a);
20
+ const [b1, b2, b3] = parseSemver(b);
21
+ if (a1 !== b1)
22
+ return a1 < b1 ? -1 : 1;
23
+ if (a2 !== b2)
24
+ return a2 < b2 ? -1 : 1;
25
+ if (a3 !== b3)
26
+ return a3 < b3 ? -1 : 1;
27
+ return 0;
28
+ }
29
+ function extractMinNodeVersion(range) {
30
+ const match = range.match(/(\d+(?:\.\d+){0,2})/);
31
+ return match?.[1] ?? null;
32
+ }
33
+ async function readRepoEnginesNode(cwd) {
34
+ const pkgPath = await findUp('package.json', { cwd });
35
+ if (!pkgPath)
36
+ return null;
37
+ try {
38
+ const raw = await readFile(pkgPath, 'utf-8');
39
+ const pkg = JSON.parse(raw);
40
+ return pkg.engines?.node ?? null;
41
+ }
42
+ catch {
43
+ return null;
44
+ }
45
+ }
46
+ async function checkNodeVersion(cwd) {
47
+ const current = process.versions.node;
48
+ const enginesRange = await readRepoEnginesNode(cwd);
49
+ const minVersion = enginesRange
50
+ ? (extractMinNodeVersion(enginesRange) ?? FALLBACK_MIN_NODE)
51
+ : FALLBACK_MIN_NODE;
52
+ const source = enginesRange ? `engines.node "${enginesRange}"` : `default >=${FALLBACK_MIN_NODE}`;
53
+ if (compareSemver(current, minVersion) >= 0) {
54
+ return {
55
+ name: 'node',
56
+ status: 'ok',
57
+ message: `Node ${current} satisfies ${source}`,
58
+ };
59
+ }
60
+ return {
61
+ name: 'node',
62
+ status: 'fail',
63
+ message: `Node ${current} is older than ${minVersion} required by ${source}`,
64
+ suggestion: `Upgrade Node to >=${minVersion} (e.g., via nvm, fnm, or volta).`,
65
+ };
66
+ }
67
+ async function binaryExists(name) {
68
+ try {
69
+ await which(name);
70
+ return true;
71
+ }
72
+ catch {
73
+ return false;
74
+ }
75
+ }
76
+ async function checkPackageManagers() {
77
+ const managers = ['pnpm', 'npm', 'yarn', 'bun'];
78
+ const found = [];
79
+ for (const pm of managers) {
80
+ if (await binaryExists(pm))
81
+ found.push(pm);
82
+ }
83
+ if (found.length === 0) {
84
+ return {
85
+ name: 'packageManager',
86
+ status: 'fail',
87
+ message: 'No package manager found on PATH (pnpm/npm/yarn/bun).',
88
+ suggestion: 'Install at least one package manager — pnpm is recommended.',
89
+ };
90
+ }
91
+ return {
92
+ name: 'packageManager',
93
+ status: 'ok',
94
+ message: `Found: ${found.join(', ')}`,
95
+ };
96
+ }
97
+ async function checkGitIdentity() {
98
+ if (!(await binaryExists('git'))) {
99
+ return {
100
+ name: 'gitIdentity',
101
+ status: 'fail',
102
+ message: 'git is not installed.',
103
+ suggestion: 'Install git from https://git-scm.com/downloads.',
104
+ };
105
+ }
106
+ const read = async (key) => {
107
+ try {
108
+ const { stdout } = await execa('git', ['config', '--get', key]);
109
+ return stdout.trim();
110
+ }
111
+ catch {
112
+ return '';
113
+ }
114
+ };
115
+ const [name, email] = await Promise.all([read('user.name'), read('user.email')]);
116
+ const missing = [];
117
+ if (!name)
118
+ missing.push('user.name');
119
+ if (!email)
120
+ missing.push('user.email');
121
+ if (missing.length > 0) {
122
+ return {
123
+ name: 'gitIdentity',
124
+ status: 'warn',
125
+ message: `git is missing ${missing.join(', ')}.`,
126
+ suggestion: `Set with \`git config --global user.name "..."\` and \`git config --global user.email "..."\`.`,
127
+ };
128
+ }
129
+ return {
130
+ name: 'gitIdentity',
131
+ status: 'ok',
132
+ message: `${name} <${email}>`,
133
+ };
134
+ }
135
+ async function checkGhAuth() {
136
+ if (!(await binaryExists('gh'))) {
137
+ return {
138
+ name: 'gh',
139
+ status: 'warn',
140
+ message: 'GitHub CLI (gh) is not installed.',
141
+ suggestion: 'Install from https://cli.github.com — needed for `neo gh` and PR flows.',
142
+ };
143
+ }
144
+ try {
145
+ await execa('gh', ['auth', 'status'], { stdio: ['ignore', 'pipe', 'pipe'] });
146
+ return {
147
+ name: 'gh',
148
+ status: 'ok',
149
+ message: 'gh is installed and authenticated.',
150
+ };
151
+ }
152
+ catch {
153
+ return {
154
+ name: 'gh',
155
+ status: 'warn',
156
+ message: 'gh is installed but not authenticated.',
157
+ suggestion: 'Run `gh auth login` to authenticate.',
158
+ };
159
+ }
160
+ }
161
+ async function checkNeoConfig() {
162
+ const configFile = configManager.getConfigFile();
163
+ try {
164
+ await access(configFile, constants.F_OK);
165
+ }
166
+ catch {
167
+ return {
168
+ name: 'neoConfig',
169
+ status: 'warn',
170
+ message: `No config file at ${configFile}.`,
171
+ suggestion: 'Run `neo init` to create one.',
172
+ };
173
+ }
174
+ try {
175
+ const raw = await readFile(configFile, 'utf-8');
176
+ JSON.parse(raw);
177
+ return {
178
+ name: 'neoConfig',
179
+ status: 'ok',
180
+ message: `Config file is valid JSON (${configFile}).`,
181
+ };
182
+ }
183
+ catch (error) {
184
+ const msg = error instanceof Error ? error.message : String(error);
185
+ return {
186
+ name: 'neoConfig',
187
+ status: 'fail',
188
+ message: `Config file is unreadable: ${msg}`,
189
+ suggestion: `Inspect or remove ${configFile} and re-run \`neo init\`.`,
190
+ };
191
+ }
192
+ }
193
+ async function checkConfigDirWritable() {
194
+ const dir = configManager.getConfigDir();
195
+ try {
196
+ await access(dir, constants.W_OK);
197
+ return {
198
+ name: 'configDirWritable',
199
+ status: 'ok',
200
+ message: `${dir} is writable.`,
201
+ };
202
+ }
203
+ catch {
204
+ try {
205
+ await access(dir, constants.F_OK);
206
+ return {
207
+ name: 'configDirWritable',
208
+ status: 'fail',
209
+ message: `${dir} exists but isn't writable by the current user.`,
210
+ suggestion: `Check permissions on ${dir}.`,
211
+ };
212
+ }
213
+ catch {
214
+ return {
215
+ name: 'configDirWritable',
216
+ status: 'ok',
217
+ message: `${dir} does not exist yet — will be created by \`neo init\`.`,
218
+ };
219
+ }
220
+ }
221
+ }
222
+ async function checkAnthropicKey() {
223
+ if (process.env['ANTHROPIC_API_KEY']) {
224
+ return {
225
+ name: 'anthropicKey',
226
+ status: 'ok',
227
+ message: 'ANTHROPIC_API_KEY is set in the environment.',
228
+ };
229
+ }
230
+ try {
231
+ const configured = await secretsManager.isConfigured('ai.apiKey');
232
+ if (configured) {
233
+ return {
234
+ name: 'anthropicKey',
235
+ status: 'ok',
236
+ message: 'API key found in secrets store.',
237
+ };
238
+ }
239
+ }
240
+ catch {
241
+ }
242
+ return {
243
+ name: 'anthropicKey',
244
+ status: 'warn',
245
+ message: 'No Anthropic API key configured.',
246
+ suggestion: 'Set $ANTHROPIC_API_KEY or run `neo config set ai.apiKey <key>` — required for `neo git commit --ai`.',
247
+ };
248
+ }
249
+ export async function executeDoctor(cwd) {
250
+ const checks = await Promise.all([
251
+ checkNodeVersion(cwd),
252
+ checkPackageManagers(),
253
+ checkGitIdentity(),
254
+ checkGhAuth(),
255
+ checkNeoConfig(),
256
+ checkConfigDirWritable(),
257
+ checkAnthropicKey(),
258
+ ]);
259
+ const ok = checks.every((c) => c.status !== 'fail');
260
+ return { ok, checks };
261
+ }
262
+ function renderText(result) {
263
+ ui.newline();
264
+ for (const check of result.checks) {
265
+ const line = `${check.name}: ${check.message}`;
266
+ if (check.status === 'ok')
267
+ ui.success(line);
268
+ else if (check.status === 'warn')
269
+ ui.warn(line);
270
+ else
271
+ ui.error(line);
272
+ if (check.suggestion)
273
+ ui.muted(` → ${check.suggestion}`);
274
+ }
275
+ ui.newline();
276
+ const failed = result.checks.filter((c) => c.status === 'fail').length;
277
+ const warned = result.checks.filter((c) => c.status === 'warn').length;
278
+ if (failed === 0 && warned === 0) {
279
+ ui.success('All checks passed.');
280
+ }
281
+ else if (failed === 0) {
282
+ ui.warn(`${warned} warning(s) — nothing broken, but you may want to address them.`);
283
+ }
284
+ else {
285
+ ui.error(`${failed} check(s) failed${warned > 0 ? `, ${warned} warning(s)` : ''}.`);
286
+ }
287
+ }
288
+ export function createDoctorCommand() {
289
+ const command = new Command('doctor');
290
+ command
291
+ .description('Diagnose the local Neo setup — node version, package managers, git/gh, config, and API keys')
292
+ .addHelpText('after', `
293
+ Examples:
294
+ Run all checks (default):
295
+ $ neo doctor
296
+
297
+ Agent-friendly (structured checks + exit code):
298
+ $ neo doctor --json
299
+ `)
300
+ .action(runAction(async () => {
301
+ const result = await executeDoctor(process.cwd());
302
+ emitJson({
303
+ ok: result.ok,
304
+ command: 'doctor',
305
+ checks: result.checks,
306
+ }, { text: () => renderText(result) });
307
+ if (!result.ok) {
308
+ process.exitCode = 1;
309
+ }
310
+ }));
311
+ return command;
312
+ }
313
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/doctor/index.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,9 @@ export { createUpdateCommand } from './update/index.js';
10
10
  export { createAgentCommand } from './agent/index.js';
11
11
  export { createCompletionsCommand } from './completions/index.js';
12
12
  export { createSchemaCommand } from './schema/index.js';
13
+ export { createSyncCommand } from './sync/index.js';
14
+ export { createVerifyCommand } from './verify/index.js';
15
+ export { createChangesetCommand } from './changeset/index.js';
16
+ export { createDoctorCommand } from './doctor/index.js';
17
+ export { createAiCommand } from './ai/index.js';
13
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAYtD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAWvD;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAiBtD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgBvD;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -8,6 +8,11 @@ import { createAliasCommand } from './alias/index.js';
8
8
  import { createAgentCommand } from './agent/index.js';
9
9
  import { createCompletionsCommand } from './completions/index.js';
10
10
  import { createSchemaCommand } from './schema/index.js';
11
+ import { createSyncCommand } from './sync/index.js';
12
+ import { createVerifyCommand } from './verify/index.js';
13
+ import { createChangesetCommand } from './changeset/index.js';
14
+ import { createDoctorCommand } from './doctor/index.js';
15
+ import { createAiCommand } from './ai/index.js';
11
16
  export function registerCommands(program) {
12
17
  program.addCommand(createInitCommand());
13
18
  program.addCommand(createConfigCommand());
@@ -19,6 +24,11 @@ export function registerCommands(program) {
19
24
  program.addCommand(createAgentCommand());
20
25
  program.addCommand(createCompletionsCommand());
21
26
  program.addCommand(createSchemaCommand());
27
+ program.addCommand(createSyncCommand());
28
+ program.addCommand(createVerifyCommand());
29
+ program.addCommand(createChangesetCommand());
30
+ program.addCommand(createDoctorCommand());
31
+ program.addCommand(createAiCommand());
22
32
  }
23
33
  export { createInitCommand } from './init/index.js';
24
34
  export { createConfigCommand } from './config/index.js';
@@ -30,4 +40,9 @@ export { createUpdateCommand } from './update/index.js';
30
40
  export { createAgentCommand } from './agent/index.js';
31
41
  export { createCompletionsCommand } from './completions/index.js';
32
42
  export { createSchemaCommand } from './schema/index.js';
43
+ export { createSyncCommand } from './sync/index.js';
44
+ export { createVerifyCommand } from './verify/index.js';
45
+ export { createChangesetCommand } from './changeset/index.js';
46
+ export { createDoctorCommand } from './doctor/index.js';
47
+ export { createAiCommand } from './ai/index.js';
33
48
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Command } from '@commander-js/extra-typings';
2
+ interface SyncOptions {
3
+ merge?: boolean;
4
+ branch?: string;
5
+ stash?: boolean;
6
+ }
7
+ interface SyncResult {
8
+ branch: string;
9
+ base: string;
10
+ strategy: 'rebase' | 'merge';
11
+ stashed: boolean;
12
+ ahead: number;
13
+ behind: number;
14
+ }
15
+ export declare function executeSync(options: SyncOptions): Promise<SyncResult>;
16
+ export declare function createSyncCommand(): Command;
17
+ export {};
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAatD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AA6CD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA4G3E;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAqD3C"}
@@ -0,0 +1,193 @@
1
+ import { Command } from '@commander-js/extra-typings';
2
+ import { execa } from 'execa';
3
+ import { ui } from '../../utils/ui.js';
4
+ import { emitJson } from '../../utils/output.js';
5
+ import { runAction } from '../../utils/run-action.js';
6
+ import { GitErrors, isAuthenticationError, isConflictError, isNetworkError, isNotGitRepository, } from '../../utils/git-errors.js';
7
+ async function detectDefaultBranch() {
8
+ try {
9
+ const { stdout } = await execa('git', ['symbolic-ref', 'refs/remotes/origin/HEAD']);
10
+ return stdout.replace('refs/remotes/origin/', '').trim();
11
+ }
12
+ catch {
13
+ for (const name of ['main', 'master']) {
14
+ try {
15
+ await execa('git', ['show-ref', '--verify', '--quiet', `refs/remotes/origin/${name}`]);
16
+ return name;
17
+ }
18
+ catch {
19
+ continue;
20
+ }
21
+ }
22
+ throw new Error('Could not detect default branch. Run `git remote set-head origin --auto`, or pass --branch <name>.');
23
+ }
24
+ }
25
+ async function getCurrentBranch() {
26
+ const { stdout } = await execa('git', ['branch', '--show-current']);
27
+ return stdout.trim();
28
+ }
29
+ async function isTreeDirty() {
30
+ const { stdout } = await execa('git', ['status', '--porcelain']);
31
+ return stdout.trim().length > 0;
32
+ }
33
+ async function tryPopStash() {
34
+ try {
35
+ await execa('git', ['stash', 'pop']);
36
+ ui.muted('Restored stashed changes.');
37
+ }
38
+ catch {
39
+ ui.warn('Stash pop failed; run `git stash list` to recover.');
40
+ }
41
+ }
42
+ export async function executeSync(options) {
43
+ try {
44
+ await execa('git', ['rev-parse', '--is-inside-work-tree']);
45
+ }
46
+ catch (error) {
47
+ if (isNotGitRepository(error)) {
48
+ throw GitErrors.notARepository('sync');
49
+ }
50
+ throw GitErrors.unknown('sync', error);
51
+ }
52
+ const currentBranch = await getCurrentBranch();
53
+ if (!currentBranch) {
54
+ throw new Error('Detached HEAD — check out a branch before syncing.');
55
+ }
56
+ const targetBranch = options.branch ?? (await detectDefaultBranch());
57
+ const strategy = options.merge ? 'merge' : 'rebase';
58
+ const allowStash = options.stash !== false;
59
+ let stashed = false;
60
+ if (await isTreeDirty()) {
61
+ if (!allowStash) {
62
+ throw new Error('Working tree has uncommitted changes. Commit them first, or drop --no-stash to auto-stash.');
63
+ }
64
+ const stashSpinner = ui.spinner('Stashing local changes');
65
+ stashSpinner.start();
66
+ try {
67
+ await execa('git', [
68
+ 'stash',
69
+ 'push',
70
+ '--include-untracked',
71
+ '--message',
72
+ 'neo sync: auto-stash',
73
+ ]);
74
+ stashed = true;
75
+ stashSpinner.succeed('Stashed local changes');
76
+ }
77
+ catch (error) {
78
+ stashSpinner.fail('Failed to stash local changes');
79
+ throw GitErrors.unknown('sync', error);
80
+ }
81
+ }
82
+ const rebaseTarget = `origin/${targetBranch}`;
83
+ const fetchSpinner = ui.spinner(`Fetching ${rebaseTarget}`);
84
+ fetchSpinner.start();
85
+ try {
86
+ await execa('git', ['fetch', 'origin', targetBranch]);
87
+ fetchSpinner.succeed(`Fetched ${rebaseTarget}`);
88
+ }
89
+ catch (error) {
90
+ fetchSpinner.fail('Fetch failed');
91
+ if (stashed)
92
+ await tryPopStash();
93
+ if (isAuthenticationError(error))
94
+ throw GitErrors.authenticationFailed('sync');
95
+ if (isNetworkError(error))
96
+ throw GitErrors.networkError('sync');
97
+ throw GitErrors.unknown('sync', error);
98
+ }
99
+ const verb = strategy === 'rebase' ? 'Rebasing' : 'Merging';
100
+ const applySpinner = ui.spinner(`${verb} onto ${rebaseTarget}`);
101
+ applySpinner.start();
102
+ try {
103
+ if (strategy === 'rebase') {
104
+ await execa('git', ['rebase', rebaseTarget]);
105
+ }
106
+ else {
107
+ await execa('git', ['merge', '--no-ff', rebaseTarget]);
108
+ }
109
+ applySpinner.succeed(`${verb === 'Rebasing' ? 'Rebased' : 'Merged'} onto ${rebaseTarget}`);
110
+ }
111
+ catch (error) {
112
+ applySpinner.fail(`${verb} failed`);
113
+ if (isConflictError(error)) {
114
+ if (strategy === 'rebase')
115
+ throw GitErrors.rebaseConflict('sync');
116
+ throw GitErrors.mergeConflict('sync');
117
+ }
118
+ throw GitErrors.unknown('sync', error);
119
+ }
120
+ if (stashed) {
121
+ const popSpinner = ui.spinner('Restoring stashed changes');
122
+ popSpinner.start();
123
+ try {
124
+ await execa('git', ['stash', 'pop']);
125
+ popSpinner.succeed('Restored stashed changes');
126
+ }
127
+ catch {
128
+ popSpinner.warn('Stash pop had conflicts — left stash in place. Run `git stash list`.');
129
+ }
130
+ }
131
+ const { stdout } = await execa('git', [
132
+ 'rev-list',
133
+ '--left-right',
134
+ '--count',
135
+ `${rebaseTarget}...HEAD`,
136
+ ]);
137
+ const [behindStr, aheadStr] = stdout.trim().split(/\s+/);
138
+ const behind = Number.parseInt(behindStr ?? '0', 10) || 0;
139
+ const ahead = Number.parseInt(aheadStr ?? '0', 10) || 0;
140
+ return {
141
+ branch: currentBranch,
142
+ base: targetBranch,
143
+ strategy,
144
+ stashed,
145
+ ahead,
146
+ behind,
147
+ };
148
+ }
149
+ export function createSyncCommand() {
150
+ const command = new Command('sync');
151
+ command
152
+ .description('Rebase the current branch onto origin/<default-branch>, auto-stashing if dirty')
153
+ .option('--merge', 'use merge (--no-ff) instead of rebase')
154
+ .option('--branch <name>', 'sync against a specific remote branch (default: origin HEAD)')
155
+ .option('--no-stash', 'do not auto-stash a dirty tree — fail instead')
156
+ .addHelpText('after', `
157
+ Examples:
158
+ Rebase current branch onto origin/<default>:
159
+ $ neo sync
160
+
161
+ Merge instead of rebase:
162
+ $ neo sync --merge
163
+
164
+ Sync against a non-default base:
165
+ $ neo sync --branch develop
166
+
167
+ Agent-friendly (structured output):
168
+ $ neo sync --yes --json
169
+ `)
170
+ .action(runAction(async (options) => {
171
+ const result = await executeSync(options);
172
+ emitJson({
173
+ ok: true,
174
+ command: 'sync',
175
+ branch: result.branch,
176
+ base: result.base,
177
+ strategy: result.strategy,
178
+ stashed: result.stashed,
179
+ ahead: result.ahead,
180
+ behind: result.behind,
181
+ }, {
182
+ text: () => {
183
+ ui.success(`Synced ${result.branch} onto origin/${result.base}`);
184
+ ui.muted(`ahead: ${result.ahead}, behind: ${result.behind}`);
185
+ if (result.stashed) {
186
+ ui.muted('auto-stash restored');
187
+ }
188
+ },
189
+ });
190
+ }));
191
+ return command;
192
+ }
193
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/sync/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Command } from '@commander-js/extra-typings';
2
+ type PackageManager = 'pnpm' | 'npm' | 'yarn' | 'bun';
3
+ interface VerifyOptions {
4
+ pm?: string;
5
+ only?: string;
6
+ skip?: string;
7
+ }
8
+ interface ScriptResult {
9
+ script: string;
10
+ status: 'passed' | 'failed' | 'skipped';
11
+ durationMs: number;
12
+ exitCode?: number;
13
+ }
14
+ interface VerifyResult {
15
+ packageManager: PackageManager;
16
+ results: ScriptResult[];
17
+ ok: boolean;
18
+ totalDurationMs: number;
19
+ }
20
+ export declare function executeVerify(cwd: string, options: VerifyOptions): Promise<VerifyResult>;
21
+ export declare function createVerifyCommand(): Command;
22
+ export {};
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/verify/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAQtD,KAAK,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAatD,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,YAAY;IACpB,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;CACzB;AA8DD,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAqD9F;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CA6D7C"}