gencode-ai 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/RELEASE_NOTES_v0.4.0.md +140 -0
  2. package/dist/agent/agent.d.ts +26 -4
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/agent.js +316 -57
  5. package/dist/agent/agent.js.map +1 -1
  6. package/dist/agent/types.d.ts +20 -2
  7. package/dist/agent/types.d.ts.map +1 -1
  8. package/dist/checkpointing/checkpoint-manager.d.ts +24 -0
  9. package/dist/checkpointing/checkpoint-manager.d.ts.map +1 -1
  10. package/dist/checkpointing/checkpoint-manager.js +28 -0
  11. package/dist/checkpointing/checkpoint-manager.js.map +1 -1
  12. package/dist/cli/components/App.d.ts +8 -0
  13. package/dist/cli/components/App.d.ts.map +1 -1
  14. package/dist/cli/components/App.js +493 -45
  15. package/dist/cli/components/App.js.map +1 -1
  16. package/dist/cli/components/CommandSuggestions.d.ts.map +1 -1
  17. package/dist/cli/components/CommandSuggestions.js +2 -0
  18. package/dist/cli/components/CommandSuggestions.js.map +1 -1
  19. package/dist/cli/components/Header.d.ts +6 -1
  20. package/dist/cli/components/Header.d.ts.map +1 -1
  21. package/dist/cli/components/Header.js +3 -3
  22. package/dist/cli/components/Header.js.map +1 -1
  23. package/dist/cli/components/Messages.d.ts.map +1 -1
  24. package/dist/cli/components/Messages.js +8 -10
  25. package/dist/cli/components/Messages.js.map +1 -1
  26. package/dist/cli/components/ModelSelector.d.ts +4 -3
  27. package/dist/cli/components/ModelSelector.d.ts.map +1 -1
  28. package/dist/cli/components/ModelSelector.js +54 -37
  29. package/dist/cli/components/ModelSelector.js.map +1 -1
  30. package/dist/cli/components/ProviderManager.d.ts +2 -2
  31. package/dist/cli/components/ProviderManager.d.ts.map +1 -1
  32. package/dist/cli/components/ProviderManager.js +137 -156
  33. package/dist/cli/components/ProviderManager.js.map +1 -1
  34. package/dist/cli/index.js +33 -15
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/config/index.d.ts +2 -2
  37. package/dist/config/index.d.ts.map +1 -1
  38. package/dist/config/index.js +1 -1
  39. package/dist/config/index.js.map +1 -1
  40. package/dist/config/levels.d.ts +5 -5
  41. package/dist/config/levels.d.ts.map +1 -1
  42. package/dist/config/levels.js +20 -20
  43. package/dist/config/levels.js.map +1 -1
  44. package/dist/config/merger.js +1 -1
  45. package/dist/config/merger.js.map +1 -1
  46. package/dist/config/providers-config.d.ts +8 -5
  47. package/dist/config/providers-config.d.ts.map +1 -1
  48. package/dist/config/providers-config.js +19 -22
  49. package/dist/config/providers-config.js.map +1 -1
  50. package/dist/config/test-utils.d.ts +2 -2
  51. package/dist/config/test-utils.d.ts.map +1 -1
  52. package/dist/config/test-utils.js +4 -4
  53. package/dist/config/test-utils.js.map +1 -1
  54. package/dist/config/types.d.ts +42 -17
  55. package/dist/config/types.d.ts.map +1 -1
  56. package/dist/config/types.js +14 -14
  57. package/dist/config/types.js.map +1 -1
  58. package/dist/index.d.ts +2 -2
  59. package/dist/index.js +2 -2
  60. package/dist/input/history-manager.d.ts +78 -0
  61. package/dist/input/history-manager.d.ts.map +1 -0
  62. package/dist/input/history-manager.js +224 -0
  63. package/dist/input/history-manager.js.map +1 -0
  64. package/dist/input/index.d.ts +6 -0
  65. package/dist/input/index.d.ts.map +1 -0
  66. package/dist/input/index.js +5 -0
  67. package/dist/input/index.js.map +1 -0
  68. package/dist/memory/memory-manager.d.ts +25 -12
  69. package/dist/memory/memory-manager.d.ts.map +1 -1
  70. package/dist/memory/memory-manager.js +241 -112
  71. package/dist/memory/memory-manager.js.map +1 -1
  72. package/dist/memory/test-utils.d.ts +1 -1
  73. package/dist/memory/test-utils.d.ts.map +1 -1
  74. package/dist/memory/test-utils.js +3 -3
  75. package/dist/memory/test-utils.js.map +1 -1
  76. package/dist/memory/types.d.ts +20 -10
  77. package/dist/memory/types.d.ts.map +1 -1
  78. package/dist/memory/types.js +13 -13
  79. package/dist/memory/types.js.map +1 -1
  80. package/dist/migration/migrate.d.ts +24 -0
  81. package/dist/migration/migrate.d.ts.map +1 -0
  82. package/dist/migration/migrate.js +164 -0
  83. package/dist/migration/migrate.js.map +1 -0
  84. package/dist/permissions/persistence.d.ts +2 -2
  85. package/dist/permissions/persistence.js +4 -4
  86. package/dist/permissions/persistence.js.map +1 -1
  87. package/dist/planning/plan-file.d.ts +1 -1
  88. package/dist/planning/plan-file.js +2 -2
  89. package/dist/planning/plan-file.js.map +1 -1
  90. package/dist/prompts/index.d.ts +5 -4
  91. package/dist/prompts/index.d.ts.map +1 -1
  92. package/dist/prompts/index.js +13 -10
  93. package/dist/prompts/index.js.map +1 -1
  94. package/dist/providers/anthropic.d.ts +2 -1
  95. package/dist/providers/anthropic.d.ts.map +1 -1
  96. package/dist/providers/anthropic.js +7 -0
  97. package/dist/providers/anthropic.js.map +1 -1
  98. package/dist/providers/gemini.d.ts +2 -1
  99. package/dist/providers/gemini.d.ts.map +1 -1
  100. package/dist/providers/gemini.js +40 -2
  101. package/dist/providers/gemini.js.map +1 -1
  102. package/dist/providers/google.d.ts +22 -0
  103. package/dist/providers/google.d.ts.map +1 -0
  104. package/dist/providers/google.js +297 -0
  105. package/dist/providers/google.js.map +1 -0
  106. package/dist/providers/index.d.ts +22 -12
  107. package/dist/providers/index.d.ts.map +1 -1
  108. package/dist/providers/index.js +56 -32
  109. package/dist/providers/index.js.map +1 -1
  110. package/dist/providers/openai.d.ts +2 -1
  111. package/dist/providers/openai.d.ts.map +1 -1
  112. package/dist/providers/openai.js +13 -0
  113. package/dist/providers/openai.js.map +1 -1
  114. package/dist/providers/registry.d.ts +48 -34
  115. package/dist/providers/registry.d.ts.map +1 -1
  116. package/dist/providers/registry.js +72 -88
  117. package/dist/providers/registry.js.map +1 -1
  118. package/dist/providers/store.d.ts +43 -17
  119. package/dist/providers/store.d.ts.map +1 -1
  120. package/dist/providers/store.js +112 -19
  121. package/dist/providers/store.js.map +1 -1
  122. package/dist/providers/types.d.ts +52 -3
  123. package/dist/providers/types.d.ts.map +1 -1
  124. package/dist/providers/vertex-ai.d.ts +15 -7
  125. package/dist/providers/vertex-ai.d.ts.map +1 -1
  126. package/dist/providers/vertex-ai.js +46 -13
  127. package/dist/providers/vertex-ai.js.map +1 -1
  128. package/dist/session/compression/engine.d.ts +109 -0
  129. package/dist/session/compression/engine.d.ts.map +1 -0
  130. package/dist/session/compression/engine.js +311 -0
  131. package/dist/session/compression/engine.js.map +1 -0
  132. package/dist/session/compression/index.d.ts +12 -0
  133. package/dist/session/compression/index.d.ts.map +1 -0
  134. package/dist/session/compression/index.js +11 -0
  135. package/dist/session/compression/index.js.map +1 -0
  136. package/dist/session/compression/types.d.ts +90 -0
  137. package/dist/session/compression/types.d.ts.map +1 -0
  138. package/dist/session/compression/types.js +17 -0
  139. package/dist/session/compression/types.js.map +1 -0
  140. package/dist/session/manager.d.ts +64 -3
  141. package/dist/session/manager.d.ts.map +1 -1
  142. package/dist/session/manager.js +254 -2
  143. package/dist/session/manager.js.map +1 -1
  144. package/dist/session/types.d.ts +16 -0
  145. package/dist/session/types.d.ts.map +1 -1
  146. package/dist/session/types.js +1 -1
  147. package/dist/session/types.js.map +1 -1
  148. package/docs/README.md +1 -0
  149. package/docs/config-system-comparison.md +50 -50
  150. package/docs/cost-tracking-comparison.md +2 -2
  151. package/docs/diagrams/compression-decision.mmd +30 -0
  152. package/docs/diagrams/compression-workflow.mmd +54 -0
  153. package/docs/diagrams/layer1-pruning.mmd +45 -0
  154. package/docs/diagrams/layer2-compaction.mmd +42 -0
  155. package/docs/memory-system.md +124 -31
  156. package/docs/permissions.md +2 -2
  157. package/docs/proposals/0006-memory-system.md +4 -4
  158. package/docs/proposals/0007-context-management.md +252 -2
  159. package/docs/proposals/0008-checkpointing.md +109 -2
  160. package/docs/proposals/0011-custom-commands.md +2 -1
  161. package/docs/proposals/0021-skills-system.md +2 -1
  162. package/docs/proposals/0023-permission-enhancements.md +2 -2
  163. package/docs/proposals/0033-enterprise-deployment.md +1 -1
  164. package/docs/proposals/0041-configuration-system.md +17 -19
  165. package/docs/proposals/0042-prompt-optimization.md +17 -9
  166. package/docs/proposals/README.md +8 -7
  167. package/docs/providers.md +96 -11
  168. package/docs/session-compression.md +695 -0
  169. package/examples/agent-demo.ts +23 -1
  170. package/examples/basic.ts +3 -3
  171. package/package.json +2 -2
  172. package/scripts/migrate.ts +449 -0
  173. package/src/agent/agent.ts +365 -61
  174. package/src/agent/types.ts +24 -2
  175. package/src/checkpointing/checkpoint-manager.ts +48 -0
  176. package/src/cli/components/App.tsx +570 -42
  177. package/src/cli/components/CommandSuggestions.tsx +2 -0
  178. package/src/cli/components/Header.tsx +16 -1
  179. package/src/cli/components/Messages.tsx +21 -15
  180. package/src/cli/components/ModelSelector.tsx +62 -43
  181. package/src/cli/components/ProviderManager.tsx +278 -323
  182. package/src/cli/index.tsx +38 -18
  183. package/src/config/index.ts +5 -3
  184. package/src/config/levels.test.ts +22 -22
  185. package/src/config/levels.ts +22 -22
  186. package/src/config/loader.test.ts +14 -14
  187. package/src/config/manager.test.ts +19 -19
  188. package/src/config/merger.test.ts +23 -23
  189. package/src/config/merger.ts +1 -1
  190. package/src/config/providers-config.ts +23 -21
  191. package/src/config/test-utils.ts +6 -6
  192. package/src/config/types.ts +55 -20
  193. package/src/index.ts +3 -3
  194. package/src/input/history-manager.ts +289 -0
  195. package/src/input/index.ts +6 -0
  196. package/src/memory/memory-manager.test.ts +242 -24
  197. package/src/memory/memory-manager.ts +270 -141
  198. package/src/memory/test-utils.ts +4 -4
  199. package/src/memory/types.ts +28 -17
  200. package/src/permissions/persistence.ts +4 -4
  201. package/src/planning/plan-file.ts +2 -2
  202. package/src/prompts/index.test.ts +2 -1
  203. package/src/prompts/index.ts +15 -11
  204. package/src/providers/anthropic.ts +9 -0
  205. package/src/providers/{gemini.ts → google.ts} +75 -15
  206. package/src/providers/index.ts +85 -42
  207. package/src/providers/openai.ts +16 -0
  208. package/src/providers/registry.ts +116 -111
  209. package/src/providers/store.ts +130 -28
  210. package/src/providers/types.ts +65 -3
  211. package/src/providers/vertex-ai.ts +49 -13
  212. package/src/session/compression/engine.ts +406 -0
  213. package/src/session/compression/index.ts +18 -0
  214. package/src/session/compression/types.ts +102 -0
  215. package/src/session/manager.ts +326 -3
  216. package/src/session/types.ts +22 -1
  217. package/tests/input-history-manager.test.ts +335 -0
  218. package/tests/session-checkpoint-persistence.test.ts +198 -0
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * Agent - Core agent implementation with tool loop and session support
3
3
  */
4
- import { createProvider, inferProvider } from '../providers/index.js';
4
+ import { createProvider, inferProvider, inferAuthMethod } from '../providers/index.js';
5
5
  import { createDefaultRegistry } from '../tools/index.js';
6
6
  import { PermissionManager, } from '../permissions/index.js';
7
7
  import { SessionManager } from '../session/index.js';
8
8
  import { MemoryManager } from '../memory/index.js';
9
9
  import { buildSystemPromptForModel, debugPromptLoading } from '../prompts/index.js';
10
10
  import { getPlanModeManager, } from '../planning/index.js';
11
+ import { initCheckpointManager } from '../checkpointing/index.js';
11
12
  export class Agent {
12
13
  provider;
13
14
  registry;
@@ -16,7 +17,6 @@ export class Agent {
16
17
  memoryManager;
17
18
  planModeManager;
18
19
  config;
19
- messages = [];
20
20
  sessionId = null;
21
21
  loadedMemory = null;
22
22
  askUserCallback = null;
@@ -26,15 +26,22 @@ export class Agent {
26
26
  cwd: process.cwd(),
27
27
  ...config,
28
28
  };
29
- this.provider = createProvider({ provider: config.provider });
29
+ this.provider = createProvider({
30
+ provider: config.provider,
31
+ authMethod: config.authMethod,
32
+ });
30
33
  this.registry = createDefaultRegistry();
31
34
  this.permissions = new PermissionManager({
32
35
  config: config.permissions,
33
36
  projectPath: config.cwd,
34
37
  });
35
- this.sessionManager = new SessionManager();
38
+ this.sessionManager = new SessionManager({
39
+ compression: config.compression,
40
+ });
36
41
  this.memoryManager = new MemoryManager();
37
42
  this.planModeManager = getPlanModeManager();
43
+ // Set compression engine with current model
44
+ this.sessionManager.setCompressionEngine(this.provider, this.config.model);
38
45
  }
39
46
  /**
40
47
  * Initialize permission system (load persisted rules)
@@ -103,7 +110,14 @@ export class Agent {
103
110
  */
104
111
  async loadMemory() {
105
112
  const cwd = this.config.cwd ?? process.cwd();
106
- this.loadedMemory = await this.memoryManager.load({ cwd });
113
+ // Determine memory merge strategy (priority: env var > config > default)
114
+ const envStrategy = process.env.GEN_MEMORY_STRATEGY;
115
+ const strategy = envStrategy ?? this.config.memoryMergeStrategy ?? 'fallback';
116
+ this.loadedMemory = await this.memoryManager.load({ cwd, strategy });
117
+ // Log verbose summary if verbose mode is enabled
118
+ if (this.config.verbose) {
119
+ console.log(this.memoryManager.getVerboseSummary(strategy));
120
+ }
107
121
  return this.loadedMemory;
108
122
  }
109
123
  // ============================================================================
@@ -184,14 +198,29 @@ export class Agent {
184
198
  }
185
199
  /**
186
200
  * Set the model to use (auto-switches provider if needed)
201
+ * @param model Model ID to use
202
+ * @param provider Optional: explicit provider (otherwise inferred from model name)
203
+ * @param authMethod Optional: explicit auth method (otherwise inferred or use current)
187
204
  */
188
- setModel(model) {
205
+ setModel(model, provider, authMethod) {
189
206
  this.config.model = model;
190
- // Auto-switch provider based on model name
191
- const newProvider = inferProvider(model);
192
- if (newProvider !== this.config.provider) {
207
+ // Determine new provider and authMethod
208
+ const newProvider = provider ?? inferProvider(model);
209
+ const newAuthMethod = authMethod ??
210
+ inferAuthMethod(model) ??
211
+ this.config.authMethod;
212
+ // Recreate provider if either provider or authMethod changed
213
+ const providerChanged = newProvider !== this.config.provider;
214
+ const authMethodChanged = newAuthMethod !== this.config.authMethod;
215
+ if (providerChanged || authMethodChanged) {
193
216
  this.config.provider = newProvider;
194
- this.provider = createProvider({ provider: newProvider });
217
+ this.config.authMethod = newAuthMethod;
218
+ this.provider = createProvider({
219
+ provider: newProvider,
220
+ authMethod: newAuthMethod,
221
+ });
222
+ // Update compression engine with new provider and model
223
+ this.sessionManager.setCompressionEngine(this.provider, model);
195
224
  }
196
225
  }
197
226
  /**
@@ -200,6 +229,38 @@ export class Agent {
200
229
  getModel() {
201
230
  return this.config.model;
202
231
  }
232
+ /**
233
+ * Get current provider
234
+ */
235
+ getProvider() {
236
+ return this.config.provider;
237
+ }
238
+ /**
239
+ * Get model information for compression
240
+ */
241
+ getModelInfo() {
242
+ // Try to get from provider if available
243
+ if (this.provider.getModelInfo) {
244
+ const info = this.provider.getModelInfo(this.config.model);
245
+ if (info.contextWindow) {
246
+ return { contextWindow: info.contextWindow, outputLimit: info.outputLimit };
247
+ }
248
+ }
249
+ // Fallback: rough estimates based on model name
250
+ // These should eventually be moved to provider implementations
251
+ const model = this.config.model.toLowerCase();
252
+ if (model.includes('claude')) {
253
+ return { contextWindow: 200_000, outputLimit: 8192 };
254
+ }
255
+ if (model.includes('gpt-4') || model.includes('gpt-3.5')) {
256
+ return { contextWindow: 128_000, outputLimit: 4096 };
257
+ }
258
+ if (model.includes('gemini')) {
259
+ return { contextWindow: 1_000_000, outputLimit: 8192 };
260
+ }
261
+ // Default fallback
262
+ return { contextWindow: 128_000, outputLimit: 4096 };
263
+ }
203
264
  /**
204
265
  * List available models from the provider API
205
266
  */
@@ -217,7 +278,8 @@ export class Agent {
217
278
  title,
218
279
  });
219
280
  this.sessionId = session.metadata.id;
220
- this.messages = [];
281
+ // Initialize checkpoint manager for this session
282
+ initCheckpointManager(this.sessionId);
221
283
  return this.sessionId;
222
284
  }
223
285
  /**
@@ -229,7 +291,8 @@ export class Agent {
229
291
  return false;
230
292
  }
231
293
  this.sessionId = session.metadata.id;
232
- this.messages = session.messages;
294
+ // CheckpointManager already restored by SessionManager.load()
295
+ // No need to call initCheckpointManager again
233
296
  return true;
234
297
  }
235
298
  /**
@@ -241,7 +304,8 @@ export class Agent {
241
304
  return false;
242
305
  }
243
306
  this.sessionId = session.metadata.id;
244
- this.messages = session.messages;
307
+ // CheckpointManager already restored by SessionManager.load()
308
+ // No need to call initCheckpointManager again
245
309
  return true;
246
310
  }
247
311
  /**
@@ -273,26 +337,47 @@ export class Agent {
273
337
  async saveSession() {
274
338
  const current = this.sessionManager.getCurrent();
275
339
  if (current) {
276
- current.messages = this.messages;
277
340
  await this.sessionManager.save(current);
278
341
  }
279
342
  }
280
343
  /**
281
344
  * Run a single query through the agent
282
345
  */
283
- async *run(prompt) {
346
+ async *run(prompt, signal) {
347
+ // Check for abort before starting
348
+ if (signal?.aborted) {
349
+ yield { type: 'error', error: new Error('Operation cancelled') };
350
+ return;
351
+ }
284
352
  // Auto-create session if none exists
285
- if (!this.sessionId) {
286
- await this.startSession();
353
+ try {
354
+ if (!this.sessionId) {
355
+ await this.startSession();
356
+ }
357
+ // Load memory if not already loaded
358
+ if (!this.loadedMemory) {
359
+ await this.loadMemory();
360
+ }
287
361
  }
288
- // Load memory if not already loaded
289
- if (!this.loadedMemory) {
290
- await this.loadMemory();
362
+ catch (error) {
363
+ yield {
364
+ type: 'error',
365
+ error: error instanceof Error ? error : new Error(String(error))
366
+ };
367
+ return;
291
368
  }
292
369
  // Add user message
293
370
  const userMessage = { role: 'user', content: prompt };
294
- this.messages.push(userMessage);
295
- await this.sessionManager.addMessage(userMessage);
371
+ try {
372
+ await this.sessionManager.addMessage(userMessage, this.getModelInfo());
373
+ }
374
+ catch (error) {
375
+ yield {
376
+ type: 'error',
377
+ error: new Error(`Failed to save user message: ${error instanceof Error ? error.message : String(error)}`)
378
+ };
379
+ return;
380
+ }
296
381
  let turns = 0;
297
382
  const maxTurns = this.config.maxTurns ?? 10;
298
383
  while (turns < maxTurns) {
@@ -301,6 +386,9 @@ export class Agent {
301
386
  const toolDefs = this.registry.getFilteredDefinitions(this.config.tools);
302
387
  // Call LLM
303
388
  let response;
389
+ const processingStartTime = Date.now();
390
+ // Determine if streaming is enabled
391
+ const useStreaming = process.env.GEN_STREAM === '1' || this.config.streaming;
304
392
  try {
305
393
  // Debug prompt loading (enabled with GENCODE_DEBUG_PROMPTS=1)
306
394
  debugPromptLoading(this.config.model, this.config.provider);
@@ -310,35 +398,179 @@ export class Agent {
310
398
  buildSystemPromptForModel(this.config.model, this.config.cwd ?? process.cwd(), true, // Assume git repo for now
311
399
  this.loadedMemory?.context, this.config.provider // Fallback provider if model lookup fails
312
400
  );
313
- response = await this.provider.complete({
314
- model: this.config.model,
315
- messages: this.messages,
316
- tools: toolDefs,
317
- systemPrompt,
318
- maxTokens: 4096,
319
- });
401
+ if (useStreaming) {
402
+ // === STREAMING PATH ===
403
+ // Build response incrementally from stream chunks
404
+ const responseBuilder = {
405
+ content: [],
406
+ textBuffer: '',
407
+ toolCalls: new Map(),
408
+ stopReason: 'end_turn',
409
+ usage: undefined,
410
+ cost: undefined,
411
+ };
412
+ // Process stream chunks
413
+ for await (const chunk of this.provider.stream({
414
+ model: this.config.model,
415
+ messages: this.sessionManager.getMessagesForLLM(),
416
+ tools: toolDefs,
417
+ systemPrompt,
418
+ maxTokens: 4096,
419
+ signal, // Pass abort signal for cancellation
420
+ })) {
421
+ // Check for abort
422
+ if (signal?.aborted) {
423
+ yield { type: 'error', error: new Error('Operation cancelled by user') };
424
+ return;
425
+ }
426
+ switch (chunk.type) {
427
+ case 'text':
428
+ // Accumulate text and yield immediately for real-time display
429
+ responseBuilder.textBuffer += chunk.text;
430
+ yield { type: 'text', text: chunk.text };
431
+ break;
432
+ case 'reasoning':
433
+ // Forward reasoning content (o1/o3/Gemini 3+ thinking)
434
+ yield { type: 'reasoning_delta', text: chunk.text };
435
+ break;
436
+ case 'tool_start':
437
+ // Initialize tool call tracking
438
+ responseBuilder.toolCalls.set(chunk.id, {
439
+ id: chunk.id,
440
+ name: chunk.name,
441
+ inputBuffer: '',
442
+ });
443
+ break;
444
+ case 'tool_input':
445
+ // Accumulate incremental JSON input and forward delta
446
+ const tool = responseBuilder.toolCalls.get(chunk.id);
447
+ if (tool) {
448
+ tool.inputBuffer += chunk.input;
449
+ // Emit incremental tool input for progressive display
450
+ yield { type: 'tool_input_delta', id: chunk.id, delta: chunk.input };
451
+ }
452
+ break;
453
+ case 'done':
454
+ // Save final metadata
455
+ responseBuilder.stopReason = chunk.response.stopReason;
456
+ responseBuilder.usage = chunk.response.usage;
457
+ responseBuilder.cost = chunk.response.cost;
458
+ break;
459
+ case 'error':
460
+ yield { type: 'error', error: chunk.error };
461
+ return;
462
+ }
463
+ }
464
+ // Build complete response from accumulated data
465
+ if (responseBuilder.textBuffer) {
466
+ responseBuilder.content.push({
467
+ type: 'text',
468
+ text: responseBuilder.textBuffer,
469
+ });
470
+ }
471
+ for (const [_id, tool] of responseBuilder.toolCalls) {
472
+ try {
473
+ responseBuilder.content.push({
474
+ type: 'tool_use',
475
+ id: tool.id,
476
+ name: tool.name,
477
+ input: JSON.parse(tool.inputBuffer || '{}'),
478
+ });
479
+ }
480
+ catch (error) {
481
+ // If JSON parsing fails, treat as malformed tool call
482
+ yield {
483
+ type: 'error',
484
+ error: new Error(`Failed to parse tool input for ${tool.name}: ${error instanceof Error ? error.message : String(error)}`),
485
+ };
486
+ return;
487
+ }
488
+ }
489
+ response = {
490
+ content: responseBuilder.content,
491
+ stopReason: responseBuilder.stopReason,
492
+ usage: responseBuilder.usage,
493
+ cost: responseBuilder.cost,
494
+ };
495
+ }
496
+ else {
497
+ // === TRADITIONAL PATH (COMPLETE) ===
498
+ response = await this.provider.complete({
499
+ model: this.config.model,
500
+ messages: this.sessionManager.getMessagesForLLM(),
501
+ tools: toolDefs,
502
+ systemPrompt,
503
+ maxTokens: 4096,
504
+ });
505
+ }
320
506
  }
321
507
  catch (error) {
322
508
  yield { type: 'error', error: error };
323
509
  return;
324
510
  }
511
+ // Validate response completeness
512
+ if (!response || !response.content) {
513
+ yield {
514
+ type: 'error',
515
+ error: new Error('Provider returned null or undefined response')
516
+ };
517
+ return;
518
+ }
519
+ // Validate content is not empty (excluding max_tokens case)
520
+ if (response.content.length === 0 && response.stopReason !== 'max_tokens') {
521
+ yield {
522
+ type: 'error',
523
+ error: new Error(`Provider returned empty content (stopReason: ${response.stopReason}, ` +
524
+ `usage: ${JSON.stringify(response.usage)})`)
525
+ };
526
+ return;
527
+ }
325
528
  // Process response content
326
529
  const toolCalls = [];
327
530
  let textContent = '';
328
531
  for (const content of response.content) {
329
532
  if (content.type === 'text') {
330
533
  textContent += content.text;
331
- yield { type: 'text', text: content.text };
534
+ // Only yield text if not in streaming mode (streaming already yielded chunks)
535
+ if (!useStreaming) {
536
+ yield { type: 'text', text: content.text };
537
+ }
332
538
  }
333
539
  else if (content.type === 'tool_use') {
334
540
  toolCalls.push({ id: content.id, name: content.name, input: content.input });
335
541
  }
336
542
  }
337
543
  // Add assistant message and check if done
338
- this.messages.push({ role: 'assistant', content: response.content });
339
- await this.sessionManager.addMessage({ role: 'assistant', content: response.content });
544
+ try {
545
+ await this.sessionManager.addMessage({ role: 'assistant', content: response.content }, this.getModelInfo());
546
+ }
547
+ catch (error) {
548
+ yield {
549
+ type: 'error',
550
+ error: new Error(`Failed to save assistant message: ${error instanceof Error ? error.message : String(error)}`)
551
+ };
552
+ return;
553
+ }
340
554
  if (response.stopReason !== 'tool_use' || toolCalls.length === 0) {
341
555
  yield { type: 'done', text: textContent, usage: response.usage, cost: response.cost };
556
+ // Save completion metadata for UI restoration
557
+ if (response.usage || response.cost) {
558
+ const current = this.sessionManager.getCurrent();
559
+ if (current) {
560
+ if (!current.metadata.completions) {
561
+ current.metadata.completions = [];
562
+ }
563
+ current.metadata.completions.push({
564
+ afterMessageIndex: current.messages.length - 1,
565
+ durationMs: Date.now() - processingStartTime,
566
+ usage: response.usage ? {
567
+ inputTokens: response.usage.inputTokens,
568
+ outputTokens: response.usage.outputTokens,
569
+ } : undefined,
570
+ cost: response.cost,
571
+ });
572
+ }
573
+ }
342
574
  return;
343
575
  }
344
576
  // Execute tool calls
@@ -351,21 +583,48 @@ export class Agent {
351
583
  };
352
584
  for (const call of toolCalls) {
353
585
  yield { type: 'tool_start', id: call.id, name: call.name, input: call.input };
354
- const allowed = await this.permissions.requestPermission(call.name, call.input);
355
- const result = allowed
356
- ? await this.registry.execute(call.name, call.input, toolContext)
357
- : { success: false, output: '', error: 'Permission denied by user' };
358
- yield { type: 'tool_result', id: call.id, name: call.name, result };
359
- toolResults.push({
360
- type: 'tool_result',
361
- toolUseId: call.id,
362
- content: result.success ? result.output : (result.error ?? 'Unknown error'),
363
- isError: !result.success,
364
- });
586
+ try {
587
+ // Protect permission check and tool execution
588
+ const allowed = await this.permissions.requestPermission(call.name, call.input);
589
+ const result = allowed
590
+ ? await this.registry.execute(call.name, call.input, toolContext)
591
+ : { success: false, output: '', error: 'Permission denied by user' };
592
+ yield { type: 'tool_result', id: call.id, name: call.name, result };
593
+ toolResults.push({
594
+ type: 'tool_result',
595
+ toolUseId: call.id,
596
+ content: result.success ? result.output : (result.error ?? 'Unknown error'),
597
+ isError: !result.success,
598
+ });
599
+ }
600
+ catch (error) {
601
+ // Catch permission check or tool execution errors
602
+ const errorMsg = error instanceof Error ? error.message : String(error);
603
+ const errorResult = {
604
+ success: false,
605
+ output: '',
606
+ error: `Tool execution error: ${errorMsg}`
607
+ };
608
+ yield { type: 'tool_result', id: call.id, name: call.name, result: errorResult };
609
+ toolResults.push({
610
+ type: 'tool_result',
611
+ toolUseId: call.id,
612
+ content: errorMsg,
613
+ isError: true,
614
+ });
615
+ }
365
616
  }
366
617
  // Add tool results as user message
367
- this.messages.push({ role: 'user', content: toolResults });
368
- await this.sessionManager.addMessage({ role: 'user', content: toolResults });
618
+ try {
619
+ await this.sessionManager.addMessage({ role: 'user', content: toolResults }, this.getModelInfo());
620
+ }
621
+ catch (error) {
622
+ yield {
623
+ type: 'error',
624
+ error: new Error(`Failed to save tool results: ${error instanceof Error ? error.message : String(error)}`)
625
+ };
626
+ return;
627
+ }
369
628
  }
370
629
  yield { type: 'error', error: new Error(`Max turns (${maxTurns}) exceeded`) };
371
630
  }
@@ -373,7 +632,6 @@ export class Agent {
373
632
  * Clear conversation history
374
633
  */
375
634
  clearHistory() {
376
- this.messages = [];
377
635
  this.sessionManager.clearMessages();
378
636
  }
379
637
  /**
@@ -381,21 +639,16 @@ export class Agent {
381
639
  * Removes the last assistant message if it contains tool_use without corresponding tool_result
382
640
  */
383
641
  cleanupIncompleteMessages() {
384
- if (this.messages.length === 0)
642
+ const messages = this.sessionManager.getMessages();
643
+ if (messages.length === 0)
385
644
  return;
386
- const lastMessage = this.messages[this.messages.length - 1];
645
+ const lastMessage = messages[messages.length - 1];
387
646
  // Check if last message is an assistant message with tool_use
388
647
  if (lastMessage.role === 'assistant' && Array.isArray(lastMessage.content)) {
389
648
  const hasToolUse = lastMessage.content.some((c) => c.type === 'tool_use');
390
649
  if (hasToolUse) {
391
- // Remove the incomplete assistant message
392
- this.messages.pop();
393
- // Also remove from session manager
394
- // Note: SessionManager should have corresponding cleanup method
395
- const messages = this.sessionManager.getMessages();
396
- if (messages.length > 0 && messages[messages.length - 1].role === 'assistant') {
397
- this.sessionManager.removeLastMessage();
398
- }
650
+ // Remove the incomplete assistant message from session manager
651
+ this.sessionManager.removeLastMessage();
399
652
  }
400
653
  }
401
654
  }
@@ -403,7 +656,13 @@ export class Agent {
403
656
  * Get conversation history
404
657
  */
405
658
  getHistory() {
406
- return [...this.messages];
659
+ return this.sessionManager.getMessages();
660
+ }
661
+ /**
662
+ * Get compression statistics
663
+ */
664
+ getCompressionStats() {
665
+ return this.sessionManager.getCompressionStats();
407
666
  }
408
667
  }
409
668
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,23 @@
3
3
  */
4
4
  import type { PermissionConfig } from '../permissions/types.js';
5
5
  import type { CostEstimate } from '../pricing/types.js';
6
+ import type { Provider, AuthMethod } from '../providers/types.js';
7
+ import type { CompressionConfig } from '../session/compression/types.js';
6
8
  export interface AgentConfig {
7
- provider: 'openai' | 'anthropic' | 'gemini' | 'vertex-ai';
9
+ provider: Provider;
10
+ authMethod?: AuthMethod;
8
11
  model: string;
9
12
  systemPrompt?: string;
10
13
  tools?: string[];
11
14
  cwd?: string;
12
15
  maxTurns?: number;
13
16
  permissions?: Partial<PermissionConfig>;
17
+ memoryMergeStrategy?: 'fallback' | 'both' | 'gen-only' | 'claude-only';
18
+ verbose?: boolean;
19
+ /** Compression configuration */
20
+ compression?: Partial<CompressionConfig>;
21
+ /** Enable LLM token streaming for real-time output */
22
+ streaming?: boolean;
14
23
  }
15
24
  export interface AgentEventText {
16
25
  type: 'text';
@@ -70,5 +79,14 @@ export interface AgentEventAskUser {
70
79
  multiSelect: boolean;
71
80
  }>;
72
81
  }
73
- export type AgentEvent = AgentEventText | AgentEventToolStart | AgentEventToolResult | AgentEventThinking | AgentEventError | AgentEventDone | AgentEventAskUser;
82
+ export interface AgentEventReasoningDelta {
83
+ type: 'reasoning_delta';
84
+ text: string;
85
+ }
86
+ export interface AgentEventToolInputDelta {
87
+ type: 'tool_input_delta';
88
+ id: string;
89
+ delta: string;
90
+ }
91
+ export type AgentEvent = AgentEventText | AgentEventToolStart | AgentEventToolResult | AgentEventThinking | AgentEventError | AgentEventDone | AgentEventAskUser | AgentEventReasoningDelta | AgentEventToolInputDelta;
74
92
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACzC;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE;YACT,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACvD,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,iBAAiB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}