daedalus-cli 3.2.1 → 3.3.1

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 (51) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/formatting.d.ts +1 -1
  3. package/dist/formatting.d.ts.map +1 -1
  4. package/dist/formatting.js +7 -4
  5. package/dist/formatting.js.map +1 -1
  6. package/dist/formatting.test.js +33 -2
  7. package/dist/formatting.test.js.map +1 -1
  8. package/dist/model.d.ts.map +1 -1
  9. package/dist/model.js +62 -17
  10. package/dist/model.js.map +1 -1
  11. package/dist/model.test.js +195 -1
  12. package/dist/model.test.js.map +1 -1
  13. package/dist/router/index.d.ts.map +1 -1
  14. package/dist/router/index.js +2 -0
  15. package/dist/router/index.js.map +1 -1
  16. package/dist/router/index.test.js +64 -0
  17. package/dist/router/index.test.js.map +1 -1
  18. package/dist/router/types.d.ts +5 -0
  19. package/dist/router/types.d.ts.map +1 -1
  20. package/dist/system-prompt.d.ts +1 -1
  21. package/dist/system-prompt.d.ts.map +1 -1
  22. package/dist/system-prompt.js +1 -0
  23. package/dist/system-prompt.js.map +1 -1
  24. package/dist/tools/builtin/files.d.ts.map +1 -1
  25. package/dist/tools/builtin/files.js +22 -3
  26. package/dist/tools/builtin/files.js.map +1 -1
  27. package/dist/tools/builtin/files.test.js +52 -0
  28. package/dist/tools/builtin/files.test.js.map +1 -1
  29. package/dist/tools/builtin/patch-utils.d.ts.map +1 -1
  30. package/dist/tools/builtin/patch-utils.js +2 -0
  31. package/dist/tools/builtin/patch-utils.js.map +1 -1
  32. package/dist/tools/builtin/terminal.d.ts.map +1 -1
  33. package/dist/tools/builtin/terminal.js +70 -23
  34. package/dist/tools/builtin/terminal.js.map +1 -1
  35. package/dist/tools/builtin/terminal.test.js +68 -0
  36. package/dist/tools/builtin/terminal.test.js.map +1 -1
  37. package/dist/tools/daedalus-spinner.d.ts +4 -0
  38. package/dist/tools/daedalus-spinner.d.ts.map +1 -1
  39. package/dist/tools/daedalus-spinner.js +32 -7
  40. package/dist/tools/daedalus-spinner.js.map +1 -1
  41. package/dist/tools/daedalus-spinner.test.js +5 -2
  42. package/dist/tools/daedalus-spinner.test.js.map +1 -1
  43. package/dist/tools/git-checkpoint.d.ts +8 -0
  44. package/dist/tools/git-checkpoint.d.ts.map +1 -0
  45. package/dist/tools/git-checkpoint.js +62 -0
  46. package/dist/tools/git-checkpoint.js.map +1 -0
  47. package/dist/tools/git-checkpoint.test.d.ts +2 -0
  48. package/dist/tools/git-checkpoint.test.d.ts.map +1 -0
  49. package/dist/tools/git-checkpoint.test.js +82 -0
  50. package/dist/tools/git-checkpoint.test.js.map +1 -0
  51. package/package.json +1 -1
@@ -6,6 +6,7 @@ import pc from 'picocolors';
6
6
  import { DaedalusSpinner } from '../daedalus-spinner.js';
7
7
  import { loadConfig } from '../../config/index.js';
8
8
  import { guardGitCommand } from '../git-guard.js';
9
+ import { createGitCheckpoint } from '../git-checkpoint.js';
9
10
  const SENSITIVE_ENV_KEYS = new Set([
10
11
  'AWS_SECRET_ACCESS_KEY', 'AWS_ACCESS_KEY_ID', 'AWS_SESSION_TOKEN',
11
12
  'AZURE_CLIENT_SECRET', 'AZURE_TENANT_ID',
@@ -21,6 +22,36 @@ const BLOCKED_ENV_KEYS = new Set([
21
22
  const INSTALL_COMMAND_RE = /(?:^|\s)(?:npm\s+(?:install|i|ci|add)|npx\s|pip\d?\s+install|cargo\s+install|go\s+install|gem\s+install|brew\s+install|choco\s+install|winget\s+install|yarn\s+(?:add|install)|pnpm\s+(?:add|install|i|ci)|bun\s+(?:add|install)|npx\s+cypress|cypress\s+(?:run|open|install))(?:\s|$)/i;
22
23
  // Commands that open GUI / interactive apps that should not run unattended
23
24
  const GUI_LAUNCH_RE = /(?:^|\s)(?:cypress\s+open|cypress\s+run\s+--headed|playwright\s+test\s+--headed)(?:\s|$)/i;
25
+ // Captures the package name of a bare `npx <pkg>` invocation
26
+ const NPX_RE = /(?:^|\s)npx(?:\s|@)([A-Za-z0-9@._/+-]+)/;
27
+ function buildCheckpointNote(workdir) {
28
+ const cp = createGitCheckpoint(workdir);
29
+ if (cp.ok && cp.hash) {
30
+ return `\n[CHECKPOINT] Git snapshot created before install: ${cp.hash} — roll back with: git checkout ${cp.hash} -- .`;
31
+ }
32
+ return `\n[CHECKPOINT] skipped (${cp.reason ?? 'unknown'})`;
33
+ }
34
+ function buildNpxWarnNote(command, workdir) {
35
+ const match = command.match(NPX_RE);
36
+ if (!match || !match[1])
37
+ return '';
38
+ const pkg = match[1];
39
+ let declared = false;
40
+ try {
41
+ const pkgPath = path.join(workdir, 'package.json');
42
+ if (fs.existsSync(pkgPath)) {
43
+ const parsed = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
44
+ const allDeps = { ...parsed.dependencies, ...parsed.devDependencies };
45
+ declared = pkg in allDeps;
46
+ }
47
+ }
48
+ catch {
49
+ // Ignore unreadable package.json
50
+ }
51
+ if (declared)
52
+ return '';
53
+ return `\n[WARN] '${pkg}' is not a declared dependency — npx will download the latest version, which may be incompatible. Prefer 'npm install --save-dev ${pkg}'.`;
54
+ }
24
55
  function sanitizeEnv() {
25
56
  const env = {};
26
57
  for (const [key, value] of Object.entries(process.env)) {
@@ -119,8 +150,22 @@ export async function execute(args, context) {
119
150
  error: `GUI launch blocked: ${command.slice(0, 200)}`,
120
151
  });
121
152
  }
153
+ // Best-effort checkpoint before install, plus an npx footgun warning
154
+ let execCommand = command;
155
+ if (process.platform === 'win32' && /^rm\s+/i.test(execCommand.trim())) {
156
+ const rmMatch = execCommand.trim().match(/^rm\s+(?:-[a-z]+\s+)?(.+)$/i);
157
+ if (rmMatch && rmMatch[1]) {
158
+ const targetPath = rmMatch[1].trim().replace(/'/g, '');
159
+ execCommand = `powershell -Command "Remove-Item -Recurse -Force '${targetPath}'"`;
160
+ }
161
+ }
162
+ let notes = '';
163
+ if (INSTALL_COMMAND_RE.test(execCommand)) {
164
+ notes += buildCheckpointNote(workdir);
165
+ }
166
+ notes += buildNpxWarnNote(execCommand, workdir);
122
167
  return new Promise((resolve) => {
123
- let output = '';
168
+ let output = notes;
124
169
  let errorOutput = '';
125
170
  let exited = false;
126
171
  function detectShell() {
@@ -172,7 +217,7 @@ export async function execute(args, context) {
172
217
  }
173
218
  }
174
219
  const active = state.cachedShell;
175
- return { shell: active.shell, args: getShellArgs(active.type, command) };
220
+ return { shell: active.shell, args: getShellArgs(active.type, execCommand) };
176
221
  }
177
222
  function getExecutionShell() {
178
223
  let config;
@@ -199,7 +244,7 @@ export async function execute(args, context) {
199
244
  sandboxImage,
200
245
  'sh',
201
246
  '-c',
202
- command,
247
+ execCommand,
203
248
  ];
204
249
  return { shell: 'docker', args: dockerArgs };
205
250
  }
@@ -217,21 +262,21 @@ export async function execute(args, context) {
217
262
  if (wslDistribution) {
218
263
  wslArgs.push('-d', wslDistribution);
219
264
  }
220
- wslArgs.push('--cd', wslWorkdir, '--', 'sh', '-c', command);
265
+ wslArgs.push('--cd', wslWorkdir, '--', 'sh', '-c', execCommand);
221
266
  return { shell: 'wsl', args: wslArgs };
222
267
  }
223
268
  return detectShell();
224
269
  }
225
270
  const { shell, args: shellArgs } = getExecutionShell();
226
- const isInstallCmd = INSTALL_COMMAND_RE.test(command);
227
- let installSpinner = null;
228
- if (isInstallCmd) {
229
- installSpinner = new DaedalusSpinner({
230
- text: `Installing dependencies (${command.slice(0, 60)}...)`,
231
- color: (s) => pc.cyan(s),
232
- });
233
- installSpinner.start();
234
- }
271
+ const isInstallCmd = INSTALL_COMMAND_RE.test(execCommand);
272
+ const label = isInstallCmd ? 'Package installation' : 'Command';
273
+ const cmdSpinner = new DaedalusSpinner({
274
+ text: isInstallCmd
275
+ ? `Installing dependencies (${execCommand.slice(0, 60)}...)`
276
+ : `Running: ${execCommand.slice(0, 60)}${execCommand.length > 60 ? '...' : ''}`,
277
+ color: (s) => pc.cyan(s),
278
+ });
279
+ cmdSpinner.start();
235
280
  const child = spawn(shell, shellArgs, {
236
281
  cwd: workdir,
237
282
  env: sanitizeEnv(),
@@ -241,9 +286,9 @@ export async function execute(args, context) {
241
286
  const killTimer = setTimeout(() => {
242
287
  if (!exited) {
243
288
  exited = true;
244
- if (installSpinner) {
245
- installSpinner.stop();
246
- console.log(pc.red(`[FAIL] Package installation timed out after ${timeout}s`));
289
+ if (cmdSpinner) {
290
+ cmdSpinner.stop();
291
+ console.log(pc.red(`[FAIL] ${label} timed out after ${timeout}s`));
247
292
  }
248
293
  if (process.platform === 'win32') {
249
294
  try {
@@ -286,9 +331,9 @@ export async function execute(args, context) {
286
331
  if (!exited) {
287
332
  exited = true;
288
333
  clearTimeout(killTimer);
289
- if (installSpinner) {
290
- installSpinner.stop();
291
- console.log(pc.red(`[FAIL] Package installation error: ${err.message}`));
334
+ if (cmdSpinner) {
335
+ cmdSpinner.stop();
336
+ console.log(pc.red(`[FAIL] ${label} error: ${err.message}`));
292
337
  }
293
338
  resolve({
294
339
  toolCallId: '',
@@ -304,13 +349,15 @@ export async function execute(args, context) {
304
349
  if (!exited) {
305
350
  exited = true;
306
351
  clearTimeout(killTimer);
307
- if (installSpinner) {
308
- installSpinner.stop();
352
+ if (cmdSpinner) {
353
+ cmdSpinner.stop();
309
354
  if (code === 0) {
310
- console.log(pc.green(`\n[OK] Package installation completed successfully.`));
355
+ if (isInstallCmd)
356
+ console.log(pc.green(`\n[OK] Package installation completed successfully.`));
311
357
  }
312
358
  else {
313
- console.log(pc.red(`\n[FAIL] Package installation failed with exit code ${code}.`));
359
+ if (isInstallCmd)
360
+ console.log(pc.red(`\n[FAIL] Package installation failed with exit code ${code}.`));
314
361
  }
315
362
  }
316
363
  const fullOutput = output + (errorOutput ? `\n[stderr]\n${errorOutput}` : '');
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/tools/builtin/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/tools/builtin/terminal.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
2
  import { EventEmitter } from 'events';
3
+ import os from 'os';
4
+ import path from 'path';
5
+ import fs from 'fs';
3
6
  vi.mock('child_process', () => ({
4
7
  spawn: vi.fn(),
5
8
  execSync: vi.fn(),
@@ -41,6 +44,8 @@ beforeEach(() => {
41
44
  });
42
45
  delete process.env.DAEDALUS_SHELL;
43
46
  delete process.env.SHELL;
47
+ delete process.env.DAEDALUS_ALLOW_INSTALL;
48
+ delete process.env.DAEDALUS_AUTO_APPROVE;
44
49
  });
45
50
  afterEach(() => {
46
51
  Object.defineProperty(process, 'platform', { value: originalPlatform, configurable: true });
@@ -56,6 +61,10 @@ afterEach(() => {
56
61
  else {
57
62
  delete process.env.DAEDALUS_SHELL;
58
63
  }
64
+ delete process.env.DAEDALUS_ALLOW_INSTALL;
65
+ delete process.env.DAEDALUS_AUTO_APPROVE;
66
+ execSync.mockReset();
67
+ fs.existsSync.mockReset();
59
68
  });
60
69
  describe('terminal execute', () => {
61
70
  it('executes command successfully', async () => {
@@ -199,5 +208,64 @@ describe('terminal execute', () => {
199
208
  await resultPromise;
200
209
  expect(spawn).toHaveBeenCalledWith('wsl', ['-d', 'Ubuntu', '--cd', '/mnt/tmp/test', '--', 'sh', '-c', 'echo hello'], expect.any(Object));
201
210
  });
211
+ it('warns when npx references a non-dependency package', async () => {
212
+ process.env.DAEDALUS_ALLOW_INSTALL = 'true';
213
+ const mockProc = makeMockProcess();
214
+ spawn.mockReturnValue(mockProc);
215
+ const resultPromise = execute({ command: 'npx eslint .' }, makeContext());
216
+ mockProc.emit('close', 0);
217
+ const result = await resultPromise;
218
+ expect(result.success).toBe(true);
219
+ expect(result.content).toContain("[WARN] 'eslint' is not a declared dependency");
220
+ expect(result.content).toContain("npm install --save-dev eslint");
221
+ });
222
+ it('does not warn when npx references a declared dependency', async () => {
223
+ process.env.DAEDALUS_ALLOW_INSTALL = 'true';
224
+ const mockFs = (await import('fs')).default;
225
+ mockFs.existsSync.mockImplementation((p) => String(p).endsWith('package.json'));
226
+ mockFs.readFileSync = () => JSON.stringify({ dependencies: { eslint: '^9.0.0' } });
227
+ const mockProc = makeMockProcess();
228
+ spawn.mockReturnValue(mockProc);
229
+ const resultPromise = execute({ command: 'npx eslint .' }, makeContext());
230
+ mockProc.emit('close', 0);
231
+ const result = await resultPromise;
232
+ expect(result.success).toBe(true);
233
+ expect(result.content).not.toContain("[WARN] 'eslint' is not a declared dependency");
234
+ });
235
+ it('appends a checkpoint note for install commands in a git repo', async () => {
236
+ process.env.DAEDALUS_ALLOW_INSTALL = 'true';
237
+ Object.defineProperty(process, 'platform', { value: originalPlatform, configurable: true });
238
+ const realFs = await vi.importActual('fs');
239
+ const realCp = await vi.importActual('child_process');
240
+ const tmpDir = realFs.mkdtempSync(path.join(os.tmpdir(), 'daedalus-terminal-checkpoint-'));
241
+ try {
242
+ realCp.execSync('git init', { cwd: tmpDir, stdio: 'ignore' });
243
+ realCp.execSync('git config user.email test@daedalus.local', { cwd: tmpDir, stdio: 'ignore' });
244
+ realCp.execSync('git config user.name "Daedalus Test"', { cwd: tmpDir, stdio: 'ignore' });
245
+ realCp.execSync('git config core.autocrlf false', { cwd: tmpDir, stdio: 'ignore' });
246
+ realFs.writeFileSync(path.join(tmpDir, 'a.txt'), 'v1\n');
247
+ realCp.execSync('git add .', { cwd: tmpDir, stdio: 'ignore' });
248
+ realCp.execSync('git commit -m init', { cwd: tmpDir, stdio: 'ignore' });
249
+ realFs.writeFileSync(path.join(tmpDir, 'a.txt'), 'v2\n');
250
+ execSync.mockImplementation((cmd, opts) => {
251
+ if (cmd.startsWith('git '))
252
+ return realCp.execSync(cmd, opts);
253
+ throw new Error('mocked execSync');
254
+ });
255
+ const mockProc = makeMockProcess();
256
+ spawn.mockReturnValue(mockProc);
257
+ const ctx = { ...makeContext(), projectRoot: tmpDir };
258
+ const resultPromise = execute({ command: 'npm install lodash', workdir: tmpDir }, ctx);
259
+ mockProc.emit('close', 0);
260
+ const result = await resultPromise;
261
+ expect(result.success).toBe(true);
262
+ expect(result.content).toContain('[CHECKPOINT] Git snapshot created before install:');
263
+ expect(result.content).toContain('roll back with: git checkout');
264
+ }
265
+ finally {
266
+ delete process.env.DAEDALUS_ALLOW_INSTALL;
267
+ realFs.rmSync(tmpDir, { recursive: true, force: true });
268
+ }
269
+ });
202
270
  });
203
271
  //# sourceMappingURL=terminal.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.test.js","sourceRoot":"","sources":["../../../src/tools/builtin/terminal.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.test.js","sourceRoot":"","sources":["../../../src/tools/builtin/terminal.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export type SpinnerOptions = {
5
5
  interval?: number;
6
6
  };
7
7
  export declare class DaedalusSpinner {
8
+ private static stack;
8
9
  private frames;
9
10
  private interval;
10
11
  private text;
@@ -20,6 +21,9 @@ export declare class DaedalusSpinner {
20
21
  private isTui;
21
22
  private isTTY;
22
23
  start(text?: string): void;
24
+ private renderTick;
25
+ private pauseRender;
26
+ private resumeRender;
23
27
  private render;
24
28
  private renderTui;
25
29
  stop(finalText?: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"daedalus-spinner.d.ts","sourceRoot":"","sources":["../../src/tools/daedalus-spinner.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAS;IAGxB,MAAM,CAAC,QAAQ,CAAC,WAAW,WAAwB;IACnD,MAAM,CAAC,QAAQ,CAAC,WAAW,WAAwB;IACnD,MAAM,CAAC,QAAQ,CAAC,YAAY,WAAqF;IACjH,MAAM,CAAC,QAAQ,CAAC,aAAa,WAAwB;gBAEzC,OAAO,GAAE,cAAmB;IAOxC,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK;IAKb,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAkB1B,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,SAAS;IAejB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IA4B9B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAIzB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG/B;AAGD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAI5D"}
1
+ {"version":3,"file":"daedalus-spinner.d.ts","sourceRoot":"","sources":["../../src/tools/daedalus-spinner.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAyB;IAE7C,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAS;IAGxB,MAAM,CAAC,QAAQ,CAAC,WAAW,WAAwB;IACnD,MAAM,CAAC,QAAQ,CAAC,WAAW,WAAwB;IACnD,MAAM,CAAC,QAAQ,CAAC,YAAY,WAAqF;IACjH,MAAM,CAAC,QAAQ,CAAC,aAAa,WAAwB;gBAEzC,OAAO,GAAE,cAAmB;IAOxC,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK;IAKb,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAmB1B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,SAAS;IAejB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAkC9B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAIzB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG/B;AAGD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAI5D"}
@@ -2,6 +2,7 @@
2
2
  // No emoji, all style. Replaces the old "🤖 Thinking..." text.
3
3
  import process from 'process';
4
4
  export class DaedalusSpinner {
5
+ static stack = [];
5
6
  frames;
6
7
  interval;
7
8
  text;
@@ -38,16 +39,36 @@ export class DaedalusSpinner {
38
39
  if (text)
39
40
  this.text = text;
40
41
  this.frameIndex = 0;
41
- if (tui) {
42
+ const parent = DaedalusSpinner.stack[DaedalusSpinner.stack.length - 1];
43
+ if (parent)
44
+ parent.pauseRender();
45
+ DaedalusSpinner.stack.push(this);
46
+ if (!tui && DaedalusSpinner.stack.length === 1) {
47
+ process.stdout.write('\x1b[?25l');
48
+ }
49
+ this.renderTick();
50
+ this.timer = setInterval(() => this.renderTick(), this.interval);
51
+ }
52
+ renderTick() {
53
+ if (this.isTui()) {
42
54
  this.renderTui();
43
- this.timer = setInterval(() => this.renderTui(), this.interval);
44
55
  }
45
56
  else {
46
- process.stdout.write('\x1b[?25l');
47
57
  this.render();
48
- this.timer = setInterval(() => this.render(), this.interval);
49
58
  }
50
59
  }
60
+ pauseRender() {
61
+ if (this.timer) {
62
+ clearInterval(this.timer);
63
+ this.timer = null;
64
+ }
65
+ }
66
+ resumeRender() {
67
+ if (!this.running || this.timer)
68
+ return;
69
+ this.renderTick();
70
+ this.timer = setInterval(() => this.renderTick(), this.interval);
71
+ }
51
72
  render() {
52
73
  const frame = this.frames[this.frameIndex % this.frames.length];
53
74
  const line = ` ${frame} ${this.text}...`;
@@ -73,9 +94,13 @@ export class DaedalusSpinner {
73
94
  if (!this.running)
74
95
  return;
75
96
  this.running = false;
76
- if (this.timer) {
77
- clearInterval(this.timer);
78
- this.timer = null;
97
+ this.pauseRender();
98
+ const idx = DaedalusSpinner.stack.indexOf(this);
99
+ if (idx >= 0)
100
+ DaedalusSpinner.stack.splice(idx, 1);
101
+ if (DaedalusSpinner.stack.length > 0) {
102
+ DaedalusSpinner.stack[DaedalusSpinner.stack.length - 1].resumeRender();
103
+ return;
79
104
  }
80
105
  if (this.isTui()) {
81
106
  const logBox = globalThis.tuiLogBox;
@@ -1 +1 @@
1
- {"version":3,"file":"daedalus-spinner.js","sourceRoot":"","sources":["../../src/tools/daedalus-spinner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daedalus-spinner.js","sourceRoot":"","sources":["../../src/tools/daedalus-spinner.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ describe('DaedalusSpinner', () => {
14
14
  globalThis.isTui = false;
15
15
  globalThis.tuiLogBox = undefined;
16
16
  globalThis.tuiScreen = undefined;
17
+ DaedalusSpinner.stack = [];
17
18
  spinner = new DaedalusSpinner();
18
19
  });
19
20
  afterEach(() => {
@@ -54,13 +55,15 @@ describe('DaedalusSpinner', () => {
54
55
  spinner.start();
55
56
  spinner.succeed('Operation completed');
56
57
  expect(spinner).toHaveProperty('running', false);
57
- expect(stdoutWriteSpy).toHaveBeenCalledWith('\x1b[32m\u2714\x1b[0m Operation completed\n');
58
+ const hasMsg = stdoutWriteSpy.mock.calls.some((c) => String(c[0]).includes('Operation completed'));
59
+ expect(hasMsg).toBe(true);
58
60
  });
59
61
  it('fails and stops with error message', () => {
60
62
  spinner.start();
61
63
  spinner.fail('Operation failed');
62
64
  expect(spinner).toHaveProperty('running', false);
63
- expect(stdoutWriteSpy).toHaveBeenCalledWith('\x1b[31m\u2718\x1b[0m Operation failed\n');
65
+ const hasMsg = stdoutWriteSpy.mock.calls.some((c) => String(c[0]).includes('Operation failed'));
66
+ expect(hasMsg).toBe(true);
64
67
  });
65
68
  it('updates text correctly', () => {
66
69
  spinner.updateText('New text');
@@ -1 +1 @@
1
- {"version":3,"file":"daedalus-spinner.test.js","sourceRoot":"","sources":["../../src/tools/daedalus-spinner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,OAAwB,CAAC;IAC7B,IAAI,cAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,8BAA8B;QAC9B,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAClF,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;YAC7C,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,qBAAqB;QACpB,UAAkB,CAAC,KAAK,GAAG,KAAK,CAAC;QACjC,UAAkB,CAAC,SAAS,GAAG,SAAS,CAAC;QACzC,UAAkB,CAAC,SAAS,GAAG,SAAS,CAAC;QAE1C,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,cAAc,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC;YACxC,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC5D,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;QAC5E,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,6CAA6C,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,0CAA0C,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACnC,UAAkB,CAAC,KAAK,GAAG,IAAI,CAAC;QACjC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"daedalus-spinner.test.js","sourceRoot":"","sources":["../../src/tools/daedalus-spinner.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface GitCheckpoint {
2
+ ok: boolean;
3
+ hash?: string;
4
+ reason?: string;
5
+ }
6
+ export declare function createGitCheckpoint(projectRoot: string): GitCheckpoint;
7
+ export declare function restoreGitCheckpoint(projectRoot: string, hash: string): boolean;
8
+ //# sourceMappingURL=git-checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-checkpoint.d.ts","sourceRoot":"","sources":["../../src/tools/git-checkpoint.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CA2CtE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAY/E"}
@@ -0,0 +1,62 @@
1
+ // Non-destructive git snapshot via `git stash create` (dangling commit, worktree untouched)
2
+ import { execSync, execFileSync } from 'child_process';
3
+ import { loadConfig } from '../config/index.js';
4
+ const GIT_TIMEOUT = 10000;
5
+ export function createGitCheckpoint(projectRoot) {
6
+ try {
7
+ let inside;
8
+ try {
9
+ inside = execSync('git rev-parse --is-inside-work-tree', {
10
+ cwd: projectRoot,
11
+ encoding: 'utf8',
12
+ stdio: ['ignore', 'pipe', 'pipe'],
13
+ timeout: GIT_TIMEOUT,
14
+ }).trim();
15
+ }
16
+ catch {
17
+ return { ok: false, reason: 'not a git repo' };
18
+ }
19
+ if (inside !== 'true') {
20
+ return { ok: false, reason: 'not a git repo' };
21
+ }
22
+ let config;
23
+ try {
24
+ config = loadConfig();
25
+ }
26
+ catch {
27
+ config = null;
28
+ }
29
+ if (config?.safety?.protectGit === false) {
30
+ return { ok: false, reason: 'git protection disabled' };
31
+ }
32
+ const stamp = new Date().toISOString();
33
+ const out = execSync(`git stash create "daedalus checkpoint ${stamp}"`, {
34
+ cwd: projectRoot,
35
+ encoding: 'utf8',
36
+ stdio: ['ignore', 'pipe', 'pipe'],
37
+ timeout: GIT_TIMEOUT,
38
+ }).trim();
39
+ if (!out) {
40
+ return { ok: false, reason: 'no changes to snapshot' };
41
+ }
42
+ return { ok: true, hash: out };
43
+ }
44
+ catch (err) {
45
+ return { ok: false, reason: err instanceof Error ? err.message : String(err) };
46
+ }
47
+ }
48
+ export function restoreGitCheckpoint(projectRoot, hash) {
49
+ try {
50
+ execFileSync('git', ['checkout', hash, '--', '.'], {
51
+ cwd: projectRoot,
52
+ encoding: 'utf8',
53
+ stdio: ['ignore', 'pipe', 'pipe'],
54
+ timeout: GIT_TIMEOUT,
55
+ });
56
+ return true;
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ //# sourceMappingURL=git-checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-checkpoint.js","sourceRoot":"","sources":["../../src/tools/git-checkpoint.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAE5F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQhD,MAAM,WAAW,GAAG,KAAK,CAAC;AAE1B,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,IAAI,CAAC;QACH,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,QAAQ,CAAC,qCAAqC,EAAE;gBACvD,GAAG,EAAE,WAAW;gBAChB,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,UAAU,EAAE,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;YACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,yCAAyC,KAAK,GAAG,EAAE;YACtE,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QACzD,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACjF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,IAAY;IACpE,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;YACjD,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=git-checkpoint.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-checkpoint.test.d.ts","sourceRoot":"","sources":["../../src/tools/git-checkpoint.test.ts"],"names":[],"mappings":""}