@channelfactory/cliend 0.7.8 → 0.8.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 (49) hide show
  1. package/dist/src/core/orchestrator.d.ts +8 -0
  2. package/dist/src/core/orchestrator.d.ts.map +1 -1
  3. package/dist/src/core/orchestrator.js +182 -54
  4. package/dist/src/core/orchestrator.js.map +1 -1
  5. package/dist/src/repl/command-registry.d.ts +1 -0
  6. package/dist/src/repl/command-registry.d.ts.map +1 -1
  7. package/dist/src/repl/command-registry.js.map +1 -1
  8. package/dist/src/repl/commands/compact.d.ts +3 -0
  9. package/dist/src/repl/commands/compact.d.ts.map +1 -0
  10. package/dist/src/repl/commands/compact.js +59 -0
  11. package/dist/src/repl/commands/compact.js.map +1 -0
  12. package/dist/src/repl/commands/help.d.ts.map +1 -1
  13. package/dist/src/repl/commands/help.js +3 -1
  14. package/dist/src/repl/commands/help.js.map +1 -1
  15. package/dist/src/repl/commands/undo.d.ts +3 -0
  16. package/dist/src/repl/commands/undo.d.ts.map +1 -0
  17. package/dist/src/repl/commands/undo.js +39 -0
  18. package/dist/src/repl/commands/undo.js.map +1 -0
  19. package/dist/src/repl/file-mentions.d.ts +6 -0
  20. package/dist/src/repl/file-mentions.d.ts.map +1 -1
  21. package/dist/src/repl/file-mentions.js +8 -0
  22. package/dist/src/repl/file-mentions.js.map +1 -1
  23. package/dist/src/repl/repl.d.ts +2 -0
  24. package/dist/src/repl/repl.d.ts.map +1 -1
  25. package/dist/src/repl/repl.js +22 -1
  26. package/dist/src/repl/repl.js.map +1 -1
  27. package/dist/src/session/history.d.ts +1 -0
  28. package/dist/src/session/history.d.ts.map +1 -1
  29. package/dist/src/session/history.js +9 -1
  30. package/dist/src/session/history.js.map +1 -1
  31. package/dist/src/session/session.d.ts +1 -0
  32. package/dist/src/session/session.d.ts.map +1 -1
  33. package/dist/src/session/session.js +4 -0
  34. package/dist/src/session/session.js.map +1 -1
  35. package/dist/src/tools/agentic-loop.d.ts +10 -0
  36. package/dist/src/tools/agentic-loop.d.ts.map +1 -1
  37. package/dist/src/tools/agentic-loop.js +88 -10
  38. package/dist/src/tools/agentic-loop.js.map +1 -1
  39. package/dist/src/tools/edit-approver.d.ts +10 -0
  40. package/dist/src/tools/edit-approver.d.ts.map +1 -0
  41. package/dist/src/tools/edit-approver.js +62 -0
  42. package/dist/src/tools/edit-approver.js.map +1 -0
  43. package/dist/src/ui/output-formatter.d.ts +26 -2
  44. package/dist/src/ui/output-formatter.d.ts.map +1 -1
  45. package/dist/src/ui/output-formatter.js +107 -35
  46. package/dist/src/ui/output-formatter.js.map +1 -1
  47. package/dist/src/ui/welcome.js +2 -2
  48. package/dist/src/ui/welcome.js.map +1 -1
  49. package/package.json +1 -1
@@ -20,6 +20,8 @@ import { configCommand } from './commands/config.js';
20
20
  import { authCommand } from './commands/auth.js';
21
21
  import { breakdownCommand } from './commands/breakdown.js';
22
22
  import { searchCommand } from './commands/search.js';
23
+ import { undoCommand } from './commands/undo.js';
24
+ import { compactCommand } from './commands/compact.js';
23
25
  export class Repl {
24
26
  config;
25
27
  authManager;
@@ -35,6 +37,8 @@ export class Repl {
35
37
  running = false;
36
38
  processing = false;
37
39
  docsLoadFailed = false;
40
+ /** Stack of file snapshot batches for /undo. Each entry is one agentic run. */
41
+ undoStack = [];
38
42
  constructor(options) {
39
43
  this.config = options.config;
40
44
  this.authManager = options.authManager;
@@ -91,10 +95,20 @@ export class Repl {
91
95
  process.exit(0);
92
96
  });
93
97
  this.rl.prompt();
98
+ // Multi-line input buffer for backslash continuation
99
+ let multiLineBuffer = '';
94
100
  for await (const line of this.rl) {
95
101
  if (!this.running)
96
102
  break;
97
- const trimmed = line.trim();
103
+ // Handle backslash continuation
104
+ if (line.endsWith('\\')) {
105
+ multiLineBuffer += line.slice(0, -1) + '\n';
106
+ process.stdout.write(chalk.dim('... '));
107
+ continue;
108
+ }
109
+ const fullLine = multiLineBuffer + line;
110
+ multiLineBuffer = '';
111
+ const trimmed = fullLine.trim();
98
112
  if (!trimmed) {
99
113
  this.rl.prompt();
100
114
  continue;
@@ -187,6 +201,10 @@ export class Repl {
187
201
  });
188
202
  // Run the orchestrator pipeline with expanded message (file contents inline)
189
203
  const result = await this.orchestrator.process(this.session, expandedMessage);
204
+ // Store file snapshots for /undo
205
+ if (result.fileSnapshots && result.fileSnapshots.length > 0) {
206
+ this.undoStack.push(result.fileSnapshots);
207
+ }
190
208
  // Add assistant response to history
191
209
  await this.session.addMessage({
192
210
  role: 'assistant',
@@ -211,6 +229,8 @@ export class Repl {
211
229
  this.commandRegistry.register(authCommand);
212
230
  this.commandRegistry.register(breakdownCommand);
213
231
  this.commandRegistry.register(searchCommand);
232
+ this.commandRegistry.register(undoCommand);
233
+ this.commandRegistry.register(compactCommand);
214
234
  }
215
235
  getCommandContext() {
216
236
  return {
@@ -222,6 +242,7 @@ export class Repl {
222
242
  exit: () => this.exit(),
223
243
  clearScreen: () => this.clearScreen(),
224
244
  resetDocsCache: () => { this.docsLoadFailed = false; },
245
+ undoStack: this.undoStack,
225
246
  },
226
247
  sessionManager: this.sessionManager,
227
248
  authManager: this.authManager,
@@ -1 +1 @@
1
- {"version":3,"file":"repl.js","sourceRoot":"","sources":["../../../src/repl/repl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../../../src/repl/repl.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ export declare class History {
4
4
  constructor(filePath: string);
5
5
  load(): Promise<ConversationMessage[]>;
6
6
  append(message: ConversationMessage): Promise<void>;
7
+ overwrite(messages: ConversationMessage[]): Promise<void>;
7
8
  }
8
9
  //# sourceMappingURL=history.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/session/history.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAEvC,IAAI,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAStC,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAO1D"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/session/history.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAEvC,IAAI,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAStC,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD,SAAS,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAQhE"}
@@ -1,4 +1,4 @@
1
- import { readFile, appendFile, mkdir } from 'node:fs/promises';
1
+ import { readFile, appendFile, writeFile, mkdir } from 'node:fs/promises';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { dirname } from 'node:path';
4
4
  export class History {
@@ -22,5 +22,13 @@ export class History {
22
22
  }
23
23
  await appendFile(this.filePath, JSON.stringify(message) + '\n', 'utf-8');
24
24
  }
25
+ async overwrite(messages) {
26
+ const dir = dirname(this.filePath);
27
+ if (!existsSync(dir)) {
28
+ await mkdir(dir, { recursive: true });
29
+ }
30
+ const content = messages.map((m) => JSON.stringify(m)).join('\n') + '\n';
31
+ await writeFile(this.filePath, content, 'utf-8');
32
+ }
25
33
  }
26
34
  //# sourceMappingURL=history.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/session/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,OAAO,OAAO;IACW;IAA7B,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjD,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,GAAG;aACP,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;aACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA4B;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;CACF"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/session/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,OAAO,OAAO;IACW;IAA7B,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjD,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,GAAG;aACP,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;aACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA4B;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAA+B;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACzE,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF"}
@@ -22,6 +22,7 @@ export declare class SessionInstance implements Session {
22
22
  existingMemory?: string;
23
23
  });
24
24
  addMessage(message: ConversationMessage): Promise<void>;
25
+ replaceHistory(messages: ConversationMessage[]): Promise<void>;
25
26
  setTicket(ticket: JiraTicket): void;
26
27
  setDocs(docs: ObsidianDocument[]): void;
27
28
  loadMemory(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,qBAAa,eAAgB,YAAW,OAAO;IAC7C,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,WAAW,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,OAAO,EAAE;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,WAAW,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,aAAa,CAAC;QAC7B,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;QACxC,eAAe,CAAC,EAAE,cAAc,CAAC;QACjC,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAiBK,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAIjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,IAAI,UAAU,IAAI,OAAO,CAExB;CACF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,qBAAa,eAAgB,YAAW,OAAO;IAC7C,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,WAAW,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,OAAO,EAAE;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,WAAW,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,aAAa,CAAC;QAC7B,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;QACxC,eAAe,CAAC,EAAE,cAAc,CAAC;QACjC,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAiBK,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,cAAc,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAIjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,IAAI,UAAU,IAAI,OAAO,CAExB;CACF"}
@@ -26,6 +26,10 @@ export class SessionInstance {
26
26
  this.history.push(message);
27
27
  await this.historyLog.append(message);
28
28
  }
29
+ async replaceHistory(messages) {
30
+ this.history = messages;
31
+ await this.historyLog.overwrite(messages);
32
+ }
29
33
  setTicket(ticket) {
30
34
  this.context.ticket = ticket;
31
35
  this.meta.ticketId = ticket.key;
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,MAAM,OAAO,eAAe;IACV,EAAE,CAAS;IACX,IAAI,CAAc;IAC3B,OAAO,CAAiB;IACxB,OAAO,CAAwB;IAC/B,MAAM,CAAS;IAEL,UAAU,CAAU;IACpB,aAAa,CAAgB;IAE9C,YAAY,OASX;QACC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI;YACxC,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA4B;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,CAAC,MAAkB;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,IAAwB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,MAAM,OAAO,eAAe;IACV,EAAE,CAAS;IACX,IAAI,CAAc;IAC3B,OAAO,CAAiB;IACxB,OAAO,CAAwB;IAC/B,MAAM,CAAS;IAEL,UAAU,CAAU;IACpB,aAAa,CAAgB;IAE9C,YAAY,OASX;QACC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI;YACxC,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA4B;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAA+B;QAClD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,MAAkB;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,IAAwB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -4,20 +4,30 @@ export interface ToolCallRecord {
4
4
  input: unknown;
5
5
  isError: boolean;
6
6
  }
7
+ export interface ApprovalResult {
8
+ approved: boolean;
9
+ feedback?: string;
10
+ }
7
11
  export interface AgenticLoopCallbacks {
8
12
  onToolCall?: (toolName: string, label: string, input: Record<string, unknown>) => void;
9
13
  onToolResult?: (name: string, result: string, isError: boolean) => void;
14
+ onApprovalNeeded?: (toolName: string, input: Record<string, unknown>) => Promise<ApprovalResult>;
15
+ onTextDelta?: (text: string) => void;
16
+ onBeforeFileChange?: (path: string, originalContent: string | null) => void;
10
17
  }
11
18
  export interface AgenticLoopResult {
12
19
  content: string;
13
20
  toolCalls: ToolCallRecord[];
14
21
  totalTokens: number;
22
+ inputTokens: number;
23
+ outputTokens: number;
15
24
  }
16
25
  export declare class AgenticLoop {
17
26
  private readonly callbacks;
18
27
  private client;
19
28
  private executor;
20
29
  private abortController;
30
+ private cwd;
21
31
  constructor(apiKey: string, cwd: string, callbacks?: AgenticLoopCallbacks);
22
32
  run(systemPrompt: string, history: ConversationMessage[], userMessage: string): Promise<AgenticLoopResult>;
23
33
  abort(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"agentic-loop.d.ts","sourceRoot":"","sources":["../../../src/tools/agentic-loop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACvF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACzE;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAWD,qBAAa,WAAW;IAQpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,eAAe,CAAkB;gBAGvC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACM,SAAS,GAAE,oBAAyB;IAOjD,GAAG,CACP,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC;IAgG7B,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"agentic-loop.d.ts","sourceRoot":"","sources":["../../../src/tools/agentic-loop.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACvF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxE,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACjG,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7E;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAgCD,qBAAa,WAAW;IASpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAR5B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,GAAG,CAAS;gBAGlB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACM,SAAS,GAAE,oBAAyB;IAQjD,GAAG,CACP,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC;IAwJ7B,KAAK,IAAI,IAAI;CAGd"}
@@ -1,4 +1,7 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { existsSync } from 'node:fs';
4
+ import { resolve } from 'node:path';
2
5
  import { FILESYSTEM_TOOLS } from './tool-definitions.js';
3
6
  import { ToolExecutor } from './tool-executor.js';
4
7
  const TOOL_LABELS = {
@@ -9,16 +12,37 @@ const TOOL_LABELS = {
9
12
  search_files: (i) => `Searching: ${i.pattern}`,
10
13
  run_command: (i) => `Running: ${i.command}`,
11
14
  };
15
+ const DONE_LABELS = {
16
+ read_file: (i, r) => {
17
+ const lines = r.split('\n').length;
18
+ return `Read ${i.path} (${lines} lines)`;
19
+ },
20
+ write_file: (i) => `Wrote ${i.path}`,
21
+ edit_file: (i) => `Edited ${i.path}`,
22
+ list_directory: (i, r) => {
23
+ const count = r.split('\n').length;
24
+ return `Listed ${i.path || '.'} (${count} entries)`;
25
+ },
26
+ search_files: (i, r) => {
27
+ const count = r.split('\n').length;
28
+ return `Found ${count} results for ${i.pattern}`;
29
+ },
30
+ run_command: (i) => `Ran: ${i.command}`,
31
+ };
32
+ const NEEDS_APPROVAL = new Set(['edit_file', 'write_file']);
33
+ const FILE_CHANGE_TOOLS = new Set(['edit_file', 'write_file']);
12
34
  export class AgenticLoop {
13
35
  callbacks;
14
36
  client;
15
37
  executor;
16
38
  abortController;
39
+ cwd;
17
40
  constructor(apiKey, cwd, callbacks = {}) {
18
41
  this.callbacks = callbacks;
19
42
  this.client = new Anthropic({ apiKey });
20
43
  this.executor = new ToolExecutor(cwd);
21
44
  this.abortController = new AbortController();
45
+ this.cwd = cwd;
22
46
  }
23
47
  async run(systemPrompt, history, userMessage) {
24
48
  const messages = [];
@@ -29,10 +53,11 @@ export class AgenticLoop {
29
53
  }
30
54
  messages.push({ role: 'user', content: userMessage });
31
55
  const toolCalls = [];
32
- let totalTokens = 0;
56
+ let totalInputTokens = 0;
57
+ let totalOutputTokens = 0;
33
58
  const MAX_TURNS = 25;
34
59
  for (let turn = 0; turn < MAX_TURNS; turn++) {
35
- const response = await this.client.messages.create({
60
+ const stream = this.client.messages.stream({
36
61
  model: 'claude-sonnet-4-6',
37
62
  max_tokens: 16384,
38
63
  system: systemPrompt,
@@ -40,7 +65,14 @@ export class AgenticLoop {
40
65
  tools: FILESYSTEM_TOOLS,
41
66
  tool_choice: { type: 'auto' },
42
67
  }, { signal: this.abortController.signal });
43
- totalTokens += response.usage.input_tokens + response.usage.output_tokens;
68
+ // Emit text deltas for streaming output
69
+ if (this.callbacks.onTextDelta) {
70
+ const cb = this.callbacks.onTextDelta;
71
+ stream.on('text', (text) => cb(text));
72
+ }
73
+ const response = await stream.finalMessage();
74
+ totalInputTokens += response.usage.input_tokens;
75
+ totalOutputTokens += response.usage.output_tokens;
44
76
  // Append entire assistant response to messages
45
77
  messages.push({ role: 'assistant', content: response.content });
46
78
  if (response.stop_reason === 'end_turn') {
@@ -48,24 +80,62 @@ export class AgenticLoop {
48
80
  .filter((b) => b.type === 'text')
49
81
  .map((b) => b.text)
50
82
  .join('\n');
51
- return { content: text, toolCalls, totalTokens };
83
+ return {
84
+ content: text,
85
+ toolCalls,
86
+ totalTokens: totalInputTokens + totalOutputTokens,
87
+ inputTokens: totalInputTokens,
88
+ outputTokens: totalOutputTokens,
89
+ };
52
90
  }
53
91
  if (response.stop_reason === 'tool_use') {
54
92
  const toolUseBlocks = response.content.filter((b) => b.type === 'tool_use');
55
93
  const toolResults = [];
56
94
  for (const block of toolUseBlocks) {
57
95
  const input = block.input;
58
- // Emit progress callback
96
+ // Emit progress callback (shows diff/preview/label)
59
97
  const label = TOOL_LABELS[block.name]?.(input) ?? block.name;
60
98
  this.callbacks.onToolCall?.(block.name, label, input);
61
- // Execute tool
62
- const result = await this.executor.execute(block.name, input);
99
+ // Snapshot file before destructive changes
100
+ if (FILE_CHANGE_TOOLS.has(block.name) && this.callbacks.onBeforeFileChange) {
101
+ const filePath = input.path;
102
+ const absPath = resolve(this.cwd, filePath);
103
+ let originalContent = null;
104
+ if (existsSync(absPath)) {
105
+ try {
106
+ originalContent = await readFile(absPath, 'utf-8');
107
+ }
108
+ catch {
109
+ // If we can't read it, treat as non-existent
110
+ }
111
+ }
112
+ this.callbacks.onBeforeFileChange(filePath, originalContent);
113
+ }
114
+ let result;
115
+ // Gate destructive tools on user approval
116
+ if (NEEDS_APPROVAL.has(block.name) && this.callbacks.onApprovalNeeded) {
117
+ const approval = await this.callbacks.onApprovalNeeded(block.name, input);
118
+ if (!approval.approved) {
119
+ // Send rejection/feedback back to the AI so it can adjust
120
+ const msg = approval.feedback
121
+ ? `User rejected this change and said: "${approval.feedback}"`
122
+ : 'User rejected this change. Try a different approach or ask what they want.';
123
+ result = { content: msg, isError: false };
124
+ }
125
+ else {
126
+ result = await this.executor.execute(block.name, input);
127
+ }
128
+ }
129
+ else {
130
+ result = await this.executor.execute(block.name, input);
131
+ }
63
132
  toolCalls.push({
64
133
  toolName: block.name,
65
134
  input,
66
135
  isError: result.isError,
67
136
  });
68
- this.callbacks.onToolResult?.(block.name, result.content, result.isError);
137
+ const doneLabel = DONE_LABELS[block.name]?.(input, result.content) ?? block.name;
138
+ this.callbacks.onToolResult?.(block.name, doneLabel, result.isError);
69
139
  toolResults.push({
70
140
  type: 'tool_result',
71
141
  tool_use_id: block.id,
@@ -81,13 +151,21 @@ export class AgenticLoop {
81
151
  .filter((b) => b.type === 'text')
82
152
  .map((b) => b.text)
83
153
  .join('\n');
84
- return { content: text || '(no response)', toolCalls, totalTokens };
154
+ return {
155
+ content: text || '(no response)',
156
+ toolCalls,
157
+ totalTokens: totalInputTokens + totalOutputTokens,
158
+ inputTokens: totalInputTokens,
159
+ outputTokens: totalOutputTokens,
160
+ };
85
161
  }
86
162
  // Max turns exceeded
87
163
  return {
88
164
  content: '(Reached maximum tool-use turns)',
89
165
  toolCalls,
90
- totalTokens,
166
+ totalTokens: totalInputTokens + totalOutputTokens,
167
+ inputTokens: totalInputTokens,
168
+ outputTokens: totalOutputTokens,
91
169
  };
92
170
  }
93
171
  abort() {
@@ -1 +1 @@
1
- {"version":3,"file":"agentic-loop.js","sourceRoot":"","sources":["../../../src/tools/agentic-loop.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmBlD,MAAM,WAAW,GAA+D;IAC9E,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;IACrC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE;IACjD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;CAC5C,CAAC;AAEF,MAAM,OAAO,WAAW;IAQH;IAPX,MAAM,CAAY;IAClB,QAAQ,CAAe;IACvB,eAAe,CAAkB;IAEzC,YACE,MAAc,EACd,GAAW,EACM,YAAkC,EAAE;QAApC,cAAS,GAAT,SAAS,CAA2B;QAErD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,GAAG,CACP,YAAoB,EACpB,OAA8B,EAC9B,WAAmB;QAEnB,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAE9C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAEtD,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,SAAS,GAAG,EAAE,CAAC;QAErB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAChD;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,YAAY;gBACpB,QAAQ;gBACR,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aAC9B,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CACxC,CAAC;YAEF,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;YAE1E,+CAA+C;YAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAEhE,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO;qBAC1B,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;qBAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEd,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;YACnD,CAAC;YAED,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC3C,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAC1D,CAAC;gBAEF,MAAM,WAAW,GAAqC,EAAE,CAAC;gBAEzD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAgC,CAAC;oBAErD,yBAAyB;oBACzB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;oBAC7D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBAEtD,eAAe;oBACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAE9D,SAAS,CAAC,IAAI,CAAC;wBACb,QAAQ,EAAE,KAAK,CAAC,IAAI;wBACpB,KAAK;wBACL,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,CAAC,CAAC;oBAEH,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBAE1E,WAAW,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,KAAK,CAAC,EAAE;wBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,QAAQ,EAAE,MAAM,CAAC,OAAO;qBACzB,CAAC,CAAC;gBACL,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YAED,yDAAyD;YACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO;iBAC1B,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;iBAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QACtE,CAAC;QAED,qBAAqB;QACrB,OAAO;YACL,OAAO,EAAE,kCAAkC;YAC3C,SAAS;YACT,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"agentic-loop.js","sourceRoot":"","sources":["../../../src/tools/agentic-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface ApprovalResult {
2
+ approved: boolean;
3
+ feedback?: string;
4
+ }
5
+ /**
6
+ * Prompt the user to approve, reject, or give feedback on a file change.
7
+ * Uses raw stdin to read a single keypress without interfering with readline.
8
+ */
9
+ export declare function promptApproval(): Promise<ApprovalResult>;
10
+ //# sourceMappingURL=edit-approver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-approver.d.ts","sourceRoot":"","sources":["../../../src/tools/edit-approver.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,CAyB9D"}
@@ -0,0 +1,62 @@
1
+ import * as readline from 'node:readline';
2
+ import chalk from 'chalk';
3
+ /**
4
+ * Prompt the user to approve, reject, or give feedback on a file change.
5
+ * Uses raw stdin to read a single keypress without interfering with readline.
6
+ */
7
+ export async function promptApproval() {
8
+ process.stdout.write(chalk.dim(' (y)es / (n)o / (f)eedback: '));
9
+ const key = await readKey();
10
+ switch (key.toLowerCase()) {
11
+ case 'y':
12
+ console.log(chalk.green('approved'));
13
+ return { approved: true };
14
+ case 'n':
15
+ console.log(chalk.red('rejected'));
16
+ return { approved: false };
17
+ case 'f': {
18
+ console.log('');
19
+ const feedback = await readLine(' Feedback: ');
20
+ return { approved: false, feedback };
21
+ }
22
+ default:
23
+ // Any other key = approve (fast path, like pressing Enter)
24
+ console.log(chalk.green('approved'));
25
+ return { approved: true };
26
+ }
27
+ }
28
+ /** Read a single keypress from raw stdin. */
29
+ function readKey() {
30
+ return new Promise((resolve) => {
31
+ const stdin = process.stdin;
32
+ const wasRaw = stdin.isRaw;
33
+ stdin.setRawMode(true);
34
+ stdin.resume();
35
+ const onData = (buf) => {
36
+ stdin.removeListener('data', onData);
37
+ stdin.setRawMode(wasRaw ?? false);
38
+ const ch = buf.toString('utf8');
39
+ // Ctrl+C during approval = reject
40
+ if (ch === '\x03') {
41
+ resolve('n');
42
+ return;
43
+ }
44
+ resolve(ch);
45
+ };
46
+ stdin.on('data', onData);
47
+ });
48
+ }
49
+ /** Read a full line of text using a temporary readline interface. */
50
+ function readLine(prompt) {
51
+ return new Promise((resolve) => {
52
+ const rl = readline.createInterface({
53
+ input: process.stdin,
54
+ output: process.stdout,
55
+ });
56
+ rl.question(chalk.cyan(prompt), (answer) => {
57
+ rl.close();
58
+ resolve(answer.trim());
59
+ });
60
+ });
61
+ }
62
+ //# sourceMappingURL=edit-approver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-approver.js","sourceRoot":"","sources":["../../../src/tools/edit-approver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;IAE5B,QAAQ,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACrC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE5B,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACnC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAE7B,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,CAAC;YAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACvC,CAAC;QAED;YACE,2DAA2D;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACrC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,SAAS,OAAO;IACd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;YAC7B,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACrC,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEhC,kCAAkC;YAClC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,CAAC;QAEF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qEAAqE;AACrE,SAAS,QAAQ,CAAC,MAAc;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;YACzC,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,9 +1,33 @@
1
1
  import type { JudgeScore, CodeOutput } from '../types/ai-response.js';
2
2
  import type { ToolCallRecord } from '../tools/agentic-loop.js';
3
+ /**
4
+ * Format a single markdown line to chalk-formatted terminal output.
5
+ * Caller is responsible for tracking `inCodeBlock` state.
6
+ */
7
+ export declare function formatMarkdownLine(line: string, inCodeBlock: boolean): string;
8
+ /**
9
+ * Stream renderer that processes text deltas and outputs formatted lines.
10
+ * Buffers incoming text until a newline is found, then formats and prints.
11
+ */
12
+ export declare class StreamRenderer {
13
+ private buffer;
14
+ private inCodeBlock;
15
+ private firstLine;
16
+ /** Feed a text delta into the renderer. Complete lines are printed immediately. */
17
+ push(delta: string): void;
18
+ /** Flush any remaining partial line in the buffer. */
19
+ flush(): void;
20
+ }
21
+ /** Format a token count + estimated cost string. */
22
+ export declare function formatCost(inputTokens: number, outputTokens: number): string;
3
23
  export declare function renderScoreTable(scores: JudgeScore[]): void;
4
24
  export declare function renderCompactScores(scores: JudgeScore[]): void;
5
- export declare function renderResponse(output: CodeOutput, elapsedMs?: number): void;
6
- export declare function renderAgenticResponse(text: string, toolCalls: ToolCallRecord[], totalTokens: number, elapsedMs?: number): void;
25
+ export declare function renderResponse(output: CodeOutput, elapsedMs?: number, usage?: TokenUsage): void;
26
+ export interface TokenUsage {
27
+ inputTokens: number;
28
+ outputTokens: number;
29
+ }
30
+ export declare function renderAgenticResponse(text: string, toolCalls: ToolCallRecord[], totalTokens: number, elapsedMs?: number, usage?: TokenUsage): void;
7
31
  /**
8
32
  * Render a GitHub-style diff for an edit_file tool call.
9
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../../src/ui/output-formatter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAgD/D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAgC3D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAa9D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAsB3E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CA+B9H;AAID;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAsBnF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUtE;AAQD,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAazE"}
1
+ {"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../../src/ui/output-formatter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,CAiC7E;AAmBD;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAQ;IAEzB,mFAAmF;IACnF,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsBzB,sDAAsD;IACtD,KAAK,IAAI,IAAI;CAed;AAMD,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAU5E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAgC3D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAa9D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CA0B/F;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,UAAU,GACjB,IAAI,CAmCN;AAID;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAsBnF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUtE;AAQD,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAazE"}