duocode 1.2.0 → 1.3.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 (93) hide show
  1. package/dist/ast/locks.js +2 -1
  2. package/dist/ast/locks.js.map +1 -1
  3. package/dist/cli.js +258 -38
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/doctor.d.ts +1 -1
  6. package/dist/commands/doctor.js +54 -11
  7. package/dist/commands/doctor.js.map +1 -1
  8. package/dist/commands/duo.js +21 -18
  9. package/dist/commands/duo.js.map +1 -1
  10. package/dist/commands/github.js +15 -1
  11. package/dist/commands/github.js.map +1 -1
  12. package/dist/commands/repl_commands.d.ts +6 -0
  13. package/dist/commands/repl_commands.js +119 -25
  14. package/dist/commands/repl_commands.js.map +1 -1
  15. package/dist/commands/status.d.ts +2 -0
  16. package/dist/commands/status.js +104 -0
  17. package/dist/commands/status.js.map +1 -0
  18. package/dist/config/loader.js +4 -1
  19. package/dist/config/loader.js.map +1 -1
  20. package/dist/context/project_context.js +5 -0
  21. package/dist/context/project_context.js.map +1 -1
  22. package/dist/db/queries.d.ts +0 -2
  23. package/dist/db/queries.js +0 -10
  24. package/dist/db/queries.js.map +1 -1
  25. package/dist/db/schema.d.ts +0 -6
  26. package/dist/db/schema.js +0 -15
  27. package/dist/db/schema.js.map +1 -1
  28. package/dist/duo/duo_orchestrator.js +67 -19
  29. package/dist/duo/duo_orchestrator.js.map +1 -1
  30. package/dist/duo/duo_types.d.ts +1 -1
  31. package/dist/duo/swarm_orchestrator.js +42 -14
  32. package/dist/duo/swarm_orchestrator.js.map +1 -1
  33. package/dist/github/mcp_client.js +8 -2
  34. package/dist/github/mcp_client.js.map +1 -1
  35. package/dist/orchestrator/intent_parser.d.ts +1 -1
  36. package/dist/orchestrator/intent_parser.js +15 -5
  37. package/dist/orchestrator/intent_parser.js.map +1 -1
  38. package/dist/orchestrator/task_runner.d.ts +0 -2
  39. package/dist/orchestrator/task_runner.js +85 -74
  40. package/dist/orchestrator/task_runner.js.map +1 -1
  41. package/dist/providers/anthropic.js +1 -1
  42. package/dist/providers/cost_tracker.js +36 -45
  43. package/dist/providers/cost_tracker.js.map +1 -1
  44. package/dist/providers/duo_pair_router.d.ts +3 -2
  45. package/dist/providers/duo_pair_router.js +18 -6
  46. package/dist/providers/duo_pair_router.js.map +1 -1
  47. package/dist/providers/factory.js +123 -118
  48. package/dist/providers/factory.js.map +1 -1
  49. package/dist/providers/openrouter.js +38 -29
  50. package/dist/providers/openrouter.js.map +1 -1
  51. package/dist/providers/role_scorer.d.ts +2 -0
  52. package/dist/providers/role_scorer.js +10 -7
  53. package/dist/providers/role_scorer.js.map +1 -1
  54. package/dist/providers/router.js +150 -99
  55. package/dist/providers/router.js.map +1 -1
  56. package/dist/setup/browser.js +6 -6
  57. package/dist/setup/browser.js.map +1 -1
  58. package/dist/tools/agent_loop.d.ts +7 -0
  59. package/dist/tools/agent_loop.js +70 -20
  60. package/dist/tools/agent_loop.js.map +1 -1
  61. package/dist/tools/definitions.d.ts +2 -1
  62. package/dist/tools/definitions.js +23 -1
  63. package/dist/tools/definitions.js.map +1 -1
  64. package/dist/tools/executor.js +121 -29
  65. package/dist/tools/executor.js.map +1 -1
  66. package/dist/tools/permissions.js +14 -4
  67. package/dist/tools/permissions.js.map +1 -1
  68. package/dist/ui/autocomplete.d.ts +24 -0
  69. package/dist/ui/autocomplete.js +192 -0
  70. package/dist/ui/autocomplete.js.map +1 -0
  71. package/dist/ui/banner.d.ts +2 -1
  72. package/dist/ui/banner.js +89 -15
  73. package/dist/ui/banner.js.map +1 -1
  74. package/dist/ui/callbacks.js +10 -3
  75. package/dist/ui/callbacks.js.map +1 -1
  76. package/dist/ui/dashboard.js +2 -1
  77. package/dist/ui/dashboard.js.map +1 -1
  78. package/dist/ui/diff_panel.d.ts +22 -0
  79. package/dist/ui/diff_panel.js +171 -0
  80. package/dist/ui/diff_panel.js.map +1 -0
  81. package/dist/ui/neural_knot.d.ts +1 -0
  82. package/dist/ui/neural_knot.js +131 -0
  83. package/dist/ui/neural_knot.js.map +1 -0
  84. package/dist/ui/plan_viewer.d.ts +12 -0
  85. package/dist/ui/plan_viewer.js +117 -0
  86. package/dist/ui/plan_viewer.js.map +1 -0
  87. package/dist/ui/progress.d.ts +15 -0
  88. package/dist/ui/progress.js +103 -2
  89. package/dist/ui/progress.js.map +1 -1
  90. package/dist/ui/status_bar.d.ts +32 -0
  91. package/dist/ui/status_bar.js +107 -0
  92. package/dist/ui/status_bar.js.map +1 -0
  93. package/package.json +5 -1
package/dist/ast/locks.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { randomBytes } from "node:crypto";
1
2
  export class InMemoryOwnershipLockStore {
2
3
  locks = new Map();
3
4
  async get(key) {
@@ -14,7 +15,7 @@ export class InMemoryOwnershipLockStore {
14
15
  }
15
16
  }
16
17
  function makeToken() {
17
- return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
18
+ return `${Date.now().toString(36)}-${randomBytes(8).toString("hex")}`;
18
19
  }
19
20
  export class DistributedOwnershipLockManager {
20
21
  store;
@@ -1 +1 @@
1
- {"version":3,"file":"locks.js","sourceRoot":"","sources":["../../src/ast/locks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locks.js","sourceRoot":"","sources":["../../src/ast/locks.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import path from "node:path";
3
+ import fs from "node:fs";
3
4
  import { fileURLToPath } from "node:url";
4
5
  import { createInterface } from "node:readline/promises";
5
6
  import { Command } from "commander";
@@ -10,6 +11,7 @@ import { registerTaskCommand } from "./commands/task.js";
10
11
  import { registerGithubCommand } from "./commands/github.js";
11
12
  import { registerDuoCommand, buildProviders, tryLoadProvider } from "./commands/duo.js";
12
13
  import { registerDoctorCommand } from "./commands/doctor.js";
14
+ import { registerStatusCommand } from "./commands/status.js";
13
15
  import { runInteractiveShell } from "./commands/shell.js";
14
16
  import { handleSlashCommand, printHelp } from "./commands/repl_commands.js";
15
17
  import { loadGlobalConfig, applyCredentialsToEnv, } from "./setup/global_config.js";
@@ -26,10 +28,40 @@ import { CheckpointManager } from "./tools/checkpoint.js";
26
28
  import { ProviderRouter } from "./providers/router.js";
27
29
  import { R, B, DM, CYN, BLU, GRN, YLW, RED, MAG, stripAnsi } from "./ui/colors.js";
28
30
  import { createLogger, configureLogger } from "./ui/logger.js";
29
- import { banner, printManPage, printModels, checkPromptClarity, } from "./ui/banner.js";
31
+ import { banner, printManPage, printModels, checkPromptClarity, VERSION, } from "./ui/banner.js";
32
+ import { runNeuralKnotBoot } from "./ui/neural_knot.js";
30
33
  import { makeConfirmationCallback, makeModelPickerCallback, makeArchitectReviewCallback, makeExecutorReviewCallback, makeSwarmConfirmationCallback, makeSwarmMemberPickerCallback, } from "./ui/callbacks.js";
34
+ import { enableStatusBar, disableStatusBar, redrawStatusBar, clearStatusBar, } from "./ui/status_bar.js";
35
+ import { handleSlashAutocomplete, tabCompleteSlash, hideSuggestions, handleAtMentionAutocomplete, } from "./ui/autocomplete.js";
31
36
  const SELF_PATH = fileURLToPath(import.meta.url);
32
37
  const log = createLogger("cli");
38
+ // Persistent REPL history stored in ~/.duocode/repl_history
39
+ const HISTORY_FILE = path.join(process.env.HOME ?? process.cwd(), ".duocode", "repl_history");
40
+ const HISTORY_MAX = 500;
41
+ function loadHistory() {
42
+ try {
43
+ if (!fs.existsSync(HISTORY_FILE))
44
+ return [];
45
+ return fs.readFileSync(HISTORY_FILE, "utf-8")
46
+ .split("\n")
47
+ .filter(Boolean)
48
+ .slice(-HISTORY_MAX);
49
+ }
50
+ catch {
51
+ return [];
52
+ }
53
+ }
54
+ function saveHistory(history) {
55
+ try {
56
+ fs.mkdirSync(path.dirname(HISTORY_FILE), { recursive: true });
57
+ fs.writeFileSync(HISTORY_FILE, history.slice(-HISTORY_MAX).join("\n") + "\n", "utf-8");
58
+ }
59
+ catch { /* best effort */ }
60
+ }
61
+ process.on("unhandledRejection", (reason) => {
62
+ log.error("Unhandled promise rejection", { reason: reason instanceof Error ? reason.message : String(reason) });
63
+ process.exitCode = 1;
64
+ });
33
65
  // ── Mode prompt rendering ───────────────────────────────────────
34
66
  const MODE_COLORS = {
35
67
  code: CYN,
@@ -74,13 +106,31 @@ async function runConversationalMode() {
74
106
  level: (process.env.DUOCODE_LOG_LEVEL ?? projectConfig?.logging?.level ?? "info"),
75
107
  filePath: process.env.DUOCODE_LOG_FILE ?? projectConfig?.logging?.file ?? null,
76
108
  });
77
- // Graceful shutdown
109
+ // Graceful shutdown — flush pending saves, persist history, clean up terminal
78
110
  let shuttingDown = false;
111
+ // sessionStore is set later; capture via reference so shutdown can call flush()
112
+ let _sessionStoreRef = null;
113
+ let _rlHistoryRef = null;
79
114
  const shutdown = (signal) => {
80
115
  if (shuttingDown)
81
116
  return;
82
117
  shuttingDown = true;
83
118
  log.info("Shutting down", { signal });
119
+ hideSuggestions();
120
+ disableStatusBar();
121
+ if (_rlHistoryRef) {
122
+ const merged = [...loadHistory(), ..._rlHistoryRef.slice().reverse()];
123
+ const deduped = [...new Map(merged.map((h) => [h, h])).values()];
124
+ saveHistory(deduped);
125
+ }
126
+ // Flush is async but we're about to exit — best-effort sync write via the
127
+ // synchronous save path instead of waiting on the promise
128
+ if (_sessionStoreRef) {
129
+ try {
130
+ _sessionStoreRef.flush();
131
+ }
132
+ catch { /* ignore */ }
133
+ }
84
134
  db?.close();
85
135
  process.exit(0);
86
136
  };
@@ -100,6 +150,7 @@ async function runConversationalMode() {
100
150
  const providerRouter = new ProviderRouter(providers, capabilityRouter, costTracker);
101
151
  const session = new DuoSession();
102
152
  const sessionStore = new SessionStore(repoPath);
153
+ _sessionStoreRef = sessionStore;
103
154
  const checkpointMgr = new CheckpointManager(repoPath);
104
155
  let currentSessionId;
105
156
  let currentRl = null;
@@ -139,29 +190,105 @@ async function runConversationalMode() {
139
190
  }
140
191
  : undefined;
141
192
  log.raw(`\n ${CYN}${B}Conversational mode${R} ${DM}— type your request, or /help for commands${R}\n`);
142
- log.raw(` ${DM}Shift+Tab to cycle modes:${R} ${CYN}Code${R} ${DM}→${R} ${BLU}Plan${R} ${DM}→${R} ${GRN}Review${R} ${DM}→${R} ${YLW}Debug${R} ${DM}→${R} ${MAG}Test${R} ${DM}→${R} ${RED}Swarm${R}\n\n`);
143
- let rl = createInterface({ input: process.stdin, output: process.stdout });
193
+ log.raw(` ${DM}Shift+Tab to cycle modes:${R} ${CYN}Code${R} ${DM}→${R} ${BLU}Plan${R} ${DM}→${R} ${GRN}Review${R} ${DM}→${R} ${YLW}Debug${R} ${DM}→${R} ${MAG}Test${R} ${DM}→${R} ${RED}Swarm${R}\n`);
194
+ log.raw(` ${DM}Tab to autocomplete /commands, @ to mention files${R}\n\n`);
195
+ const savedHistory = loadHistory();
196
+ let rl = createInterface({
197
+ input: process.stdin,
198
+ output: process.stdout,
199
+ historySize: HISTORY_MAX,
200
+ history: savedHistory,
201
+ });
144
202
  currentRl = rl;
203
+ _rlHistoryRef = rl.history ?? null;
204
+ enableStatusBar();
145
205
  const keypressHandler = (_ch, key) => {
206
+ const iface = rl;
207
+ const currentInput = iface.line ?? "";
208
+ // ── Shift+Tab: cycle mode ──────────────────────────────────
146
209
  if (key?.name === "tab" && key?.shift) {
210
+ hideSuggestions();
211
+ clearStatusBar();
147
212
  const newMode = session.cycleMode();
148
- const iface = rl;
149
- const currentInput = iface.line ?? "";
150
213
  const cursor = iface.cursor ?? currentInput.length;
151
214
  const newPrompt = buildModePrompt(newMode, session.getTotalCost());
152
215
  if (iface._prompt !== undefined)
153
216
  iface._prompt = newPrompt;
154
217
  process.stdout.write("\r\x1b[2K" + newPrompt + currentInput);
155
218
  process.stdout.write(`\x1b[${stripAnsi(newPrompt).length + cursor + 1}G`);
219
+ // Defer status bar redraw until after readline's own _refreshLine completes
220
+ setImmediate(() => redrawStatusBar({
221
+ mode: newMode,
222
+ architect: session.assignment?.architect.profile.model,
223
+ executor: session.assignment?.executor.profile.model,
224
+ costUsd: session.getTotalCost(),
225
+ turnCount: session.getTurnCount(),
226
+ gradingEnabled: session.gradingEnabled,
227
+ autoConfirm: session.autoConfirm,
228
+ }));
229
+ return;
156
230
  }
231
+ // ── Tab: slash command completion ──────────────────────────
232
+ if (key?.name === "tab" && !key?.shift) {
233
+ if (currentInput.startsWith("/")) {
234
+ const completed = tabCompleteSlash(currentInput);
235
+ if (completed) {
236
+ hideSuggestions();
237
+ const prompt = buildModePrompt(session.mode, session.getTotalCost());
238
+ if (iface._prompt !== undefined)
239
+ iface._prompt = prompt;
240
+ // Rewrite input with completed command
241
+ process.stdout.write("\r\x1b[2K" + prompt + completed);
242
+ // Update readline's internal line buffer
243
+ const rlInternal = rl;
244
+ rlInternal.line = completed;
245
+ rlInternal.cursor = completed.length;
246
+ }
247
+ }
248
+ return;
249
+ }
250
+ // ── Typing: show slash autocomplete dropdown ───────────────
251
+ // We defer to next tick so readline has updated iface.line
252
+ setImmediate(() => {
253
+ const line = rl.line ?? "";
254
+ if (line.startsWith("/")) {
255
+ handleSlashAutocomplete(line);
256
+ }
257
+ else {
258
+ // Check for @ mention
259
+ const atIdx = line.lastIndexOf("@");
260
+ if (atIdx !== -1 && !line.includes(" ", atIdx)) {
261
+ const query = line.slice(atIdx + 1);
262
+ handleAtMentionAutocomplete(query, repoPath);
263
+ }
264
+ else {
265
+ hideSuggestions();
266
+ }
267
+ }
268
+ });
157
269
  };
158
270
  process.stdin.on("keypress", keypressHandler);
271
+ // Accumulated file changes for /diff command
272
+ const pendingFileChanges = [];
159
273
  // Slash command context (shared mutable state)
160
274
  const cmdCtx = {
161
275
  session, sessionStore, checkpointMgr, db,
162
276
  currentSessionId,
163
277
  setSessionId: (id) => { currentSessionId = id; cmdCtx.currentSessionId = id; },
164
278
  log,
279
+ pendingFileChanges,
280
+ };
281
+ // Helper: redraw status bar after each turn
282
+ const refreshStatus = () => {
283
+ redrawStatusBar({
284
+ mode: session.mode,
285
+ architect: session.assignment?.architect.profile.model,
286
+ executor: session.assignment?.executor.profile.model,
287
+ costUsd: session.getTotalCost(),
288
+ turnCount: session.getTurnCount(),
289
+ gradingEnabled: session.gradingEnabled,
290
+ autoConfirm: session.autoConfirm,
291
+ });
165
292
  };
166
293
  try {
167
294
  while (true) {
@@ -194,7 +321,7 @@ async function runConversationalMode() {
194
321
  process.stdin.removeListener("keypress", keypressHandler);
195
322
  rl.close();
196
323
  await runInteractiveShell(SELF_PATH);
197
- rl = createInterface({ input: process.stdin, output: process.stdout });
324
+ rl = createInterface({ input: process.stdin, output: process.stdout, historySize: 200 });
198
325
  currentRl = rl;
199
326
  process.stdin.on("keypress", keypressHandler);
200
327
  log.raw(`\n ${DM}Back to conversational mode.${R}\n\n`);
@@ -251,6 +378,8 @@ async function runConversationalMode() {
251
378
  enableGrading: session.gradingEnabled,
252
379
  requireConfirmation: !session.autoConfirm,
253
380
  precomputedPlan: pending.architectOutput,
381
+ enableTools: true,
382
+ projectRoot: repoPath,
254
383
  });
255
384
  session.clearPendingPlan();
256
385
  if (result === null) {
@@ -268,6 +397,7 @@ async function runConversationalMode() {
268
397
  });
269
398
  currentSessionId = sessionStore.saveAsync(session, currentSessionId);
270
399
  cmdCtx.currentSessionId = currentSessionId;
400
+ refreshStatus();
271
401
  }
272
402
  catch (error) {
273
403
  log.error(`DuoPair failed: ${error instanceof Error ? error.message : String(error)}`);
@@ -280,7 +410,7 @@ async function runConversationalMode() {
280
410
  userPrompt = userPrompt.slice(1).trim();
281
411
  }
282
412
  else {
283
- const clarification = checkPromptClarity(userPrompt);
413
+ const clarification = checkPromptClarity(userPrompt, session.mode);
284
414
  if (clarification) {
285
415
  log.warn(clarification);
286
416
  continue;
@@ -356,31 +486,92 @@ async function runConversationalMode() {
356
486
  });
357
487
  currentSessionId = sessionStore.saveAsync(session, currentSessionId);
358
488
  cmdCtx.currentSessionId = currentSessionId;
489
+ refreshStatus();
359
490
  }
360
491
  else if (currentMode === "plan") {
361
- const result = await orchestrator.execute({
362
- prompt: effectivePrompt,
363
- conversationContext: conversationContext || undefined,
364
- projectContext: projectContextStr,
365
- includedFiles: includedFilesList,
366
- preferredArchitect: configArchitect,
367
- enableGrading: false,
368
- requireConfirmation: !session.autoConfirm,
369
- architectOnly: true,
370
- });
371
- if (result === null) {
372
- log.raw(`${DM}Aborted.${R}\n\n`);
373
- continue;
492
+ if (session.pendingPlan) {
493
+ // Plan already stored — discuss it without re-triggering assignment banner
494
+ log.raw(`\n${DM}Discussing stored plan...${R} ${DM}(${CYN}go${R}${DM} to execute, ${CYN}/clear${R}${DM} for a new plan)${R}\n\n`);
495
+ const discussModel = capabilityRouter.route({ requiredCapabilities: ["deep_reasoning"] }, costTracker).model.model;
496
+ const discussMessages = [
497
+ {
498
+ role: "system",
499
+ content: "You are the Architect. Answer the user's follow-up question about the plan you created. Be concise and precise. Do not rewrite the plan unless explicitly asked.",
500
+ },
501
+ {
502
+ role: "user",
503
+ content: `## Your Plan\n${session.pendingPlan.architectOutput}\n\n## Follow-up Question\n${effectivePrompt}`,
504
+ },
505
+ ];
506
+ const discussParts = [];
507
+ let discussCost = 0;
508
+ try {
509
+ if (typeof providerRouter.stream === "function") {
510
+ for await (const event of providerRouter.stream({
511
+ model: discussModel,
512
+ messages: discussMessages,
513
+ temperature: 0.3,
514
+ })) {
515
+ if (event.type === "text-delta") {
516
+ process.stdout.write(event.delta);
517
+ discussParts.push(event.delta);
518
+ }
519
+ else if (event.type === "done") {
520
+ discussCost = costTracker.estimate(event.response.model, event.response.usage);
521
+ }
522
+ }
523
+ }
524
+ else {
525
+ throw new Error("no stream");
526
+ }
527
+ }
528
+ catch {
529
+ const fallback = await providerRouter.generate({
530
+ model: discussModel,
531
+ messages: discussMessages,
532
+ temperature: 0.3,
533
+ });
534
+ process.stdout.write(fallback.response.text);
535
+ discussParts.push(fallback.response.text);
536
+ discussCost = fallback.costUsd;
537
+ }
538
+ log.raw("\n\n");
539
+ session.addTurn({
540
+ prompt: userPrompt,
541
+ architectPlan: session.pendingPlan.architectOutput,
542
+ executorOutput: discussParts.join(""),
543
+ costUsd: discussCost,
544
+ durationMs: 0,
545
+ timestamp: Date.now(),
546
+ });
547
+ currentSessionId = sessionStore.saveAsync(session, currentSessionId);
548
+ cmdCtx.currentSessionId = currentSessionId;
549
+ }
550
+ else {
551
+ const result = await orchestrator.execute({
552
+ prompt: effectivePrompt,
553
+ conversationContext: conversationContext || undefined,
554
+ projectContext: projectContextStr,
555
+ includedFiles: includedFilesList,
556
+ preferredArchitect: configArchitect,
557
+ enableGrading: false,
558
+ requireConfirmation: !session.autoConfirm,
559
+ architectOnly: true,
560
+ });
561
+ if (result === null) {
562
+ log.raw(`${DM}Aborted.${R}\n\n`);
563
+ continue;
564
+ }
565
+ session.storePlan({
566
+ prompt: effectivePrompt,
567
+ architectOutput: result.architectOutput,
568
+ costUsd: result.totalCostUsd,
569
+ durationMs: result.durationMs,
570
+ });
571
+ currentSessionId = sessionStore.saveAsync(session, currentSessionId);
572
+ cmdCtx.currentSessionId = currentSessionId;
573
+ log.raw(`\n${BLU}${B}Plan stored.${R} ${DM}Type ${CYN}go${R}${DM} to execute it.${R}\n\n`);
374
574
  }
375
- session.storePlan({
376
- prompt: effectivePrompt,
377
- architectOutput: result.architectOutput,
378
- costUsd: result.totalCostUsd,
379
- durationMs: result.durationMs,
380
- });
381
- currentSessionId = sessionStore.saveAsync(session, currentSessionId);
382
- cmdCtx.currentSessionId = currentSessionId;
383
- log.raw(`\n${BLU}${B}Plan stored.${R} ${DM}Type ${CYN}go${R}${DM} to execute it.${R}\n\n`);
384
575
  }
385
576
  else if (currentMode === "review") {
386
577
  const result = await orchestrator.execute({
@@ -407,6 +598,7 @@ async function runConversationalMode() {
407
598
  });
408
599
  currentSessionId = sessionStore.saveAsync(session, currentSessionId);
409
600
  cmdCtx.currentSessionId = currentSessionId;
601
+ refreshStatus();
410
602
  }
411
603
  else {
412
604
  const result = await orchestrator.execute({
@@ -419,6 +611,8 @@ async function runConversationalMode() {
419
611
  judgeModel: configJudge,
420
612
  enableGrading: session.gradingEnabled,
421
613
  requireConfirmation: !session.autoConfirm,
614
+ enableTools: true,
615
+ projectRoot: repoPath,
422
616
  });
423
617
  if (result === null) {
424
618
  log.raw(`${DM}Aborted.${R}\n\n`);
@@ -435,6 +629,7 @@ async function runConversationalMode() {
435
629
  });
436
630
  currentSessionId = sessionStore.saveAsync(session, currentSessionId);
437
631
  cmdCtx.currentSessionId = currentSessionId;
632
+ refreshStatus();
438
633
  }
439
634
  }
440
635
  catch (error) {
@@ -444,6 +639,17 @@ async function runConversationalMode() {
444
639
  }
445
640
  finally {
446
641
  process.stdin.removeListener("keypress", keypressHandler);
642
+ hideSuggestions();
643
+ disableStatusBar();
644
+ // Save history on normal (non-signal) exit
645
+ const rlHistory = rl.history;
646
+ if (rlHistory && rlHistory.length > 0) {
647
+ const merged = [...loadHistory(), ...rlHistory.slice().reverse()];
648
+ const deduped = [...new Map(merged.map((h) => [h, h])).values()];
649
+ saveHistory(deduped);
650
+ }
651
+ // Flush any pending async session save before exit
652
+ await sessionStore.flush().catch(() => { });
447
653
  rl.close();
448
654
  log.raw("\n");
449
655
  }
@@ -457,7 +663,7 @@ const program = new Command();
457
663
  program
458
664
  .name("duocode")
459
665
  .description("Multi-agent code orchestrator")
460
- .version("0.1.0");
666
+ .version(VERSION);
461
667
  registerStartCommand(program);
462
668
  registerInitCommand(program);
463
669
  registerTaskCommand(program);
@@ -465,10 +671,21 @@ registerNegotiationCommand(program);
465
671
  registerGithubCommand(program);
466
672
  registerDuoCommand(program);
467
673
  registerDoctorCommand(program);
674
+ registerStatusCommand(program);
468
675
  program
469
676
  .command("shell")
470
677
  .description("Start interactive Duocode shell (run commands without prefix)")
471
- .action(async () => { await runInteractiveShell(SELF_PATH); });
678
+ .action(async () => {
679
+ await runNeuralKnotBoot();
680
+ await runInteractiveShell(SELF_PATH);
681
+ });
682
+ program
683
+ .command("demo-ui")
684
+ .description("Preview boot animation and UI banner")
685
+ .action(async () => {
686
+ await runNeuralKnotBoot();
687
+ log.raw(banner());
688
+ });
472
689
  program
473
690
  .command("login")
474
691
  .description("Re-authenticate with AI providers")
@@ -485,13 +702,16 @@ if (savedConfig)
485
702
  applyCredentialsToEnv(savedConfig);
486
703
  const args = process.argv.slice(2);
487
704
  if (args.length === 0) {
488
- log.raw(banner());
489
- runSetupIfNeeded(process.cwd())
490
- .then(async () => {
491
- if (process.env.DUOCODE_SHELL_CHILD !== "1")
705
+ (async () => {
706
+ if (process.env.DUOCODE_SHELL_CHILD !== "1") {
707
+ await runNeuralKnotBoot();
708
+ }
709
+ log.raw(banner());
710
+ await runSetupIfNeeded(process.cwd());
711
+ if (process.env.DUOCODE_SHELL_CHILD !== "1") {
492
712
  await runConversationalMode();
493
- })
494
- .catch((error) => {
713
+ }
714
+ })().catch((error) => {
495
715
  log.error(error instanceof Error ? error.message : String(error));
496
716
  process.exitCode = 1;
497
717
  });
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Health-check command: verify installation, native deps, and API keys.
2
+ * Health-check command: verify installation, native deps, API keys, and connectivity.
3
3
  */
4
4
  import { Command } from "commander";
5
5
  export declare function registerDoctorCommand(program: Command): void;