attocode 0.1.3 → 0.1.4

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 (129) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/README.md +56 -0
  3. package/dist/src/agent.d.ts +5 -0
  4. package/dist/src/agent.d.ts.map +1 -1
  5. package/dist/src/agent.js +201 -15
  6. package/dist/src/agent.js.map +1 -1
  7. package/dist/src/analysis/feedback-loop.d.ts +115 -0
  8. package/dist/src/analysis/feedback-loop.d.ts.map +1 -0
  9. package/dist/src/analysis/feedback-loop.js +226 -0
  10. package/dist/src/analysis/feedback-loop.js.map +1 -0
  11. package/dist/src/analysis/index.d.ts +9 -0
  12. package/dist/src/analysis/index.d.ts.map +1 -0
  13. package/dist/src/analysis/index.js +9 -0
  14. package/dist/src/analysis/index.js.map +1 -0
  15. package/dist/src/analysis/prompt-templates.d.ts +36 -0
  16. package/dist/src/analysis/prompt-templates.d.ts.map +1 -0
  17. package/dist/src/analysis/prompt-templates.js +198 -0
  18. package/dist/src/analysis/prompt-templates.js.map +1 -0
  19. package/dist/src/analysis/trace-summary.d.ts +56 -0
  20. package/dist/src/analysis/trace-summary.d.ts.map +1 -0
  21. package/dist/src/analysis/trace-summary.js +261 -0
  22. package/dist/src/analysis/trace-summary.js.map +1 -0
  23. package/dist/src/commands/handler.d.ts.map +1 -1
  24. package/dist/src/commands/handler.js +194 -2
  25. package/dist/src/commands/handler.js.map +1 -1
  26. package/dist/src/config.d.ts +3 -0
  27. package/dist/src/config.d.ts.map +1 -1
  28. package/dist/src/config.js.map +1 -1
  29. package/dist/src/defaults.d.ts +11 -2
  30. package/dist/src/defaults.d.ts.map +1 -1
  31. package/dist/src/defaults.js +25 -2
  32. package/dist/src/defaults.js.map +1 -1
  33. package/dist/src/errors/index.d.ts +233 -0
  34. package/dist/src/errors/index.d.ts.map +1 -0
  35. package/dist/src/errors/index.js +427 -0
  36. package/dist/src/errors/index.js.map +1 -0
  37. package/dist/src/integrations/auto-compaction.d.ts +33 -0
  38. package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
  39. package/dist/src/integrations/auto-compaction.js +47 -3
  40. package/dist/src/integrations/auto-compaction.js.map +1 -1
  41. package/dist/src/integrations/dead-letter-queue.d.ts +208 -0
  42. package/dist/src/integrations/dead-letter-queue.d.ts.map +1 -0
  43. package/dist/src/integrations/dead-letter-queue.js +458 -0
  44. package/dist/src/integrations/dead-letter-queue.js.map +1 -0
  45. package/dist/src/integrations/health-check.d.ts +218 -0
  46. package/dist/src/integrations/health-check.d.ts.map +1 -0
  47. package/dist/src/integrations/health-check.js +400 -0
  48. package/dist/src/integrations/health-check.js.map +1 -0
  49. package/dist/src/integrations/index.d.ts +5 -0
  50. package/dist/src/integrations/index.d.ts.map +1 -1
  51. package/dist/src/integrations/index.js +9 -0
  52. package/dist/src/integrations/index.js.map +1 -1
  53. package/dist/src/integrations/mcp-client.d.ts +9 -0
  54. package/dist/src/integrations/mcp-client.d.ts.map +1 -1
  55. package/dist/src/integrations/mcp-client.js +49 -7
  56. package/dist/src/integrations/mcp-client.js.map +1 -1
  57. package/dist/src/integrations/openrouter-pricing.d.ts +28 -3
  58. package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -1
  59. package/dist/src/integrations/openrouter-pricing.js +57 -16
  60. package/dist/src/integrations/openrouter-pricing.js.map +1 -1
  61. package/dist/src/integrations/retry.d.ts +131 -0
  62. package/dist/src/integrations/retry.d.ts.map +1 -0
  63. package/dist/src/integrations/retry.js +233 -0
  64. package/dist/src/integrations/retry.js.map +1 -0
  65. package/dist/src/integrations/sqlite-store.d.ts +42 -0
  66. package/dist/src/integrations/sqlite-store.d.ts.map +1 -1
  67. package/dist/src/integrations/sqlite-store.js +111 -0
  68. package/dist/src/integrations/sqlite-store.js.map +1 -1
  69. package/dist/src/main.js +88 -7
  70. package/dist/src/main.js.map +1 -1
  71. package/dist/src/modes/repl.d.ts.map +1 -1
  72. package/dist/src/modes/repl.js +37 -1
  73. package/dist/src/modes/repl.js.map +1 -1
  74. package/dist/src/modes/tui.d.ts.map +1 -1
  75. package/dist/src/modes/tui.js +46 -5
  76. package/dist/src/modes/tui.js.map +1 -1
  77. package/dist/src/modes.d.ts.map +1 -1
  78. package/dist/src/modes.js +10 -3
  79. package/dist/src/modes.js.map +1 -1
  80. package/dist/src/persistence/schema.d.ts +4 -0
  81. package/dist/src/persistence/schema.d.ts.map +1 -1
  82. package/dist/src/persistence/schema.js +49 -0
  83. package/dist/src/persistence/schema.js.map +1 -1
  84. package/dist/src/providers/adapters/anthropic.d.ts +24 -2
  85. package/dist/src/providers/adapters/anthropic.d.ts.map +1 -1
  86. package/dist/src/providers/adapters/anthropic.js +184 -0
  87. package/dist/src/providers/adapters/anthropic.js.map +1 -1
  88. package/dist/src/tools/bash.d.ts.map +1 -1
  89. package/dist/src/tools/bash.js +7 -4
  90. package/dist/src/tools/bash.js.map +1 -1
  91. package/dist/src/tools/file.d.ts.map +1 -1
  92. package/dist/src/tools/file.js +31 -10
  93. package/dist/src/tools/file.js.map +1 -1
  94. package/dist/src/tools/permission.d.ts +12 -0
  95. package/dist/src/tools/permission.d.ts.map +1 -1
  96. package/dist/src/tools/permission.js +136 -0
  97. package/dist/src/tools/permission.js.map +1 -1
  98. package/dist/src/tools/registry.d.ts +23 -1
  99. package/dist/src/tools/registry.d.ts.map +1 -1
  100. package/dist/src/tools/registry.js +77 -17
  101. package/dist/src/tools/registry.js.map +1 -1
  102. package/dist/src/tools/standard.d.ts.map +1 -1
  103. package/dist/src/tools/standard.js +8 -0
  104. package/dist/src/tools/standard.js.map +1 -1
  105. package/dist/src/tools/types.d.ts +20 -1
  106. package/dist/src/tools/types.d.ts.map +1 -1
  107. package/dist/src/tools/types.js.map +1 -1
  108. package/dist/src/tracing/trace-collector.d.ts +198 -2
  109. package/dist/src/tracing/trace-collector.d.ts.map +1 -1
  110. package/dist/src/tracing/trace-collector.js +315 -3
  111. package/dist/src/tracing/trace-collector.js.map +1 -1
  112. package/dist/src/tracing/types.d.ts +470 -2
  113. package/dist/src/tracing/types.d.ts.map +1 -1
  114. package/dist/src/tracing/types.js +25 -0
  115. package/dist/src/tracing/types.js.map +1 -1
  116. package/dist/src/tui/app.d.ts.map +1 -1
  117. package/dist/src/tui/app.js +161 -4
  118. package/dist/src/tui/app.js.map +1 -1
  119. package/dist/src/types.d.ts +35 -0
  120. package/dist/src/types.d.ts.map +1 -1
  121. package/package.json +6 -3
  122. package/dist/src/hello.d.ts +0 -2
  123. package/dist/src/hello.d.ts.map +0 -1
  124. package/dist/src/hello.js +0 -4
  125. package/dist/src/hello.js.map +0 -1
  126. package/dist/src/test-sqlite.d.ts +0 -2
  127. package/dist/src/test-sqlite.d.ts.map +0 -1
  128. package/dist/src/test-sqlite.js +0 -114
  129. package/dist/src/test-sqlite.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.4] - 2026-01-30
11
+
12
+ ### Added
13
+ - **Trace Mode** - Comprehensive system observability
14
+ - Captures full session execution including "thinking" blocks
15
+ - JSONL-based storage in `.traces/` for easy analysis
16
+ - Integrated `trace-dashboard` for visualizing agent decisions
17
+
18
+ ### Changed
19
+ - **Trace Dashboard Consolidation** - Merged `trace-viewer` library into `trace-dashboard`
20
+ - Library code now lives in `tools/trace-dashboard/src/lib/`
21
+ - Simplified dependency structure with no more path aliases
22
+ - Dashboard is now the sole interface for trace analysis
23
+
24
+ ### Fixed
25
+ - `/trace compare` command now points to dashboard URL instead of removed CLI
26
+
10
27
  ## [0.1.3] - 2026-01-29
11
28
 
12
29
  ### Added
@@ -104,7 +121,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
104
121
  - Sandbox execution for bash commands (macOS Seatbelt)
105
122
  - Dangerous operation blocking in strict mode
106
123
 
107
- [Unreleased]: https://github.com/eren23/attocode/compare/v0.1.3...HEAD
124
+ [Unreleased]: https://github.com/eren23/attocode/compare/v0.1.4...HEAD
125
+ [0.1.4]: https://github.com/eren23/attocode/compare/v0.1.3...v0.1.4
108
126
  [0.1.3]: https://github.com/eren23/attocode/compare/v0.1.2...v0.1.3
109
127
  [0.1.2]: https://github.com/eren23/attocode/compare/v0.1.1...v0.1.2
110
128
  [0.1.1]: https://github.com/eren23/attocode/compare/v0.1.0...v0.1.1
package/README.md CHANGED
@@ -275,6 +275,62 @@ Options:
275
275
  --debug Enable debug logging
276
276
  ```
277
277
 
278
+ ## Tracing & Performance Analysis
279
+
280
+ Attocode includes comprehensive tracing capabilities for understanding agent behavior, debugging issues, and optimizing performance.
281
+
282
+ ### Quick Start
283
+
284
+ ```bash
285
+ # Enable tracing when starting attocode
286
+ attocode --trace
287
+
288
+ # View trace summary after running commands
289
+ /trace
290
+
291
+ # Analyze efficiency issues
292
+ /trace --analyze
293
+ ```
294
+
295
+ ### Trace Commands
296
+
297
+ | Command | Description |
298
+ |---------|-------------|
299
+ | `/trace` | Show current session trace summary |
300
+ | `/trace --analyze` | Run efficiency analysis on trace |
301
+ | `/trace issues` | List detected inefficiencies |
302
+ | `/trace fixes` | List pending improvements |
303
+ | `/trace export [file]` | Export trace JSON for LLM analysis |
304
+
305
+ ### Trace Viewer CLI
306
+
307
+ For detailed offline analysis, use the trace-viewer tool:
308
+
309
+ ```bash
310
+ # Navigate to the trace viewer
311
+ cd tools/trace-viewer
312
+
313
+ # Build (first time)
314
+ npm install && npm run build
315
+
316
+ # View trace summary
317
+ npx tsx bin/trace-viewer.ts .traces/
318
+
319
+ # Timeline view
320
+ npx tsx bin/trace-viewer.ts .traces/ --view timeline
321
+
322
+ # Token flow analysis
323
+ npx tsx bin/trace-viewer.ts .traces/ --view tokens
324
+
325
+ # Generate HTML report
326
+ npx tsx bin/trace-viewer.ts .traces/ --output html
327
+
328
+ # Compare two sessions
329
+ npx tsx bin/trace-viewer.ts compare <baseline.jsonl> <comparison.jsonl>
330
+ ```
331
+
332
+ See [docs/tracing-guide.md](docs/tracing-guide.md) for the complete tracing documentation.
333
+
278
334
  ## Uninstall
279
335
 
280
336
  ```bash
@@ -145,6 +145,11 @@ export declare class ProductionAgent {
145
145
  * Get current state.
146
146
  */
147
147
  getState(): AgentState;
148
+ /**
149
+ * Get the maximum context tokens for this agent's model.
150
+ * Priority: user config > OpenRouter API > hardcoded ModelRegistry > 200K default
151
+ */
152
+ getMaxContextTokens(): number;
148
153
  /**
149
154
  * Get the trace collector (Lesson 26).
150
155
  * Returns null if trace capture is not enabled.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/src/agent.js CHANGED
@@ -24,6 +24,9 @@ import { createLSPFileTools, } from './agent-tools/index.js';
24
24
  import { HookManager, MemoryManager, PlanningManager, ObservabilityManager, SafetyManager, RoutingManager, MultiAgentManager, ReActManager, ExecutionPolicyManager, ThreadManager, RulesManager, DEFAULT_RULE_SOURCES, ExecutionEconomicsManager, STANDARD_BUDGET, AgentRegistry, filterToolsForAgent, formatAgentList, createCancellationManager, isCancellationError, createTimeoutToken, createLinkedToken, race, createResourceManager, createLSPManager, createSemanticCacheManager, createSkillManager, formatSkillList, createContextEngineering, stableStringify, createCodebaseContext, buildContextFromChunks, createPendingPlanManager, createInteractivePlanner, createRecursiveContext, createLearningStore, createCompactor, createAutoCompactionManager, createFileChangeTracker, createCapabilitiesRegistry, } from './integrations/index.js';
25
25
  // Lesson 26: Tracing & Evaluation integration
26
26
  import { createTraceCollector } from './tracing/trace-collector.js';
27
+ // Model registry for context window limits
28
+ import { modelRegistry } from './costs/index.js';
29
+ import { getModelContextLength } from './integrations/openrouter-pricing.js';
27
30
  // Spawn agent tool for LLM-driven subagent delegation
28
31
  import { createBoundSpawnAgentTool } from './tools/agent.js';
29
32
  // =============================================================================
@@ -490,15 +493,50 @@ export class ProductionAgent {
490
493
  summaryModel: compactionConfig.summaryModel,
491
494
  });
492
495
  // Create the auto-compaction manager with threshold monitoring
496
+ // Wire reversible compaction through contextEngineering when available
497
+ const compactHandler = this.contextEngineering
498
+ ? async (messages) => {
499
+ // Use contextEngineering's reversible compaction to preserve references
500
+ const summarize = async (msgs) => {
501
+ // Use the basic compactor's summarization capability
502
+ const result = await this.compactor.compact(msgs);
503
+ return result.summary;
504
+ };
505
+ const contextMsgs = messages.map(m => ({
506
+ role: m.role,
507
+ content: typeof m.content === 'string' ? m.content : JSON.stringify(m.content),
508
+ }));
509
+ const result = await this.contextEngineering.compact(contextMsgs, summarize);
510
+ const tokensBefore = this.compactor.estimateTokens(messages);
511
+ const tokensAfter = this.compactor.estimateTokens([{ role: 'assistant', content: result.summary }]);
512
+ return {
513
+ summary: result.summary + (result.reconstructionPrompt ? `\n\n${result.reconstructionPrompt}` : ''),
514
+ tokensBefore,
515
+ tokensAfter,
516
+ preservedMessages: [{ role: 'assistant', content: result.summary }],
517
+ references: result.references,
518
+ };
519
+ }
520
+ : undefined;
521
+ // Get model's actual context window - try OpenRouter first (real API data),
522
+ // then fall back to hardcoded ModelRegistry, then config, then default
523
+ const openRouterContext = getModelContextLength(this.config.model || '');
524
+ const registryInfo = modelRegistry.getModel(this.config.model || '');
525
+ const registryContext = registryInfo?.capabilities?.maxContextTokens;
526
+ const maxContextTokens = this.config.maxContextTokens
527
+ ?? openRouterContext // From OpenRouter API (e.g., GLM-4.7 = 202752)
528
+ ?? registryContext // From hardcoded registry (Claude, GPT-4o, etc.)
529
+ ?? 200000; // Fallback to 200K
493
530
  this.autoCompactionManager = createAutoCompactionManager(this.compactor, {
494
531
  mode: compactionConfig.mode ?? 'auto',
495
- warningThreshold: 0.80,
496
- autoCompactThreshold: 0.90,
497
- hardLimitThreshold: 0.98,
532
+ warningThreshold: 0.70, // Warn at 70% of model's context
533
+ autoCompactThreshold: 0.80, // Compact at 80% (changed from 0.90)
534
+ hardLimitThreshold: 0.95, // Hard limit at 95%
498
535
  preserveRecentUserMessages: Math.ceil((compactionConfig.preserveRecentCount ?? 10) / 2),
499
536
  preserveRecentAssistantMessages: Math.ceil((compactionConfig.preserveRecentCount ?? 10) / 2),
500
537
  cooldownMs: 60000, // 1 minute cooldown
501
- maxContextTokens: this.config.maxContextTokens ?? 200000,
538
+ maxContextTokens, // Dynamic from model registry or config
539
+ compactHandler, // Use reversible compaction when contextEngineering is available
502
540
  });
503
541
  // Forward compactor events to observability
504
542
  this.compactor.on(event => {
@@ -626,9 +664,19 @@ export class ProductionAgent {
626
664
  const traceId = this.observability?.tracer?.startTrace('agent.run') || `trace-${Date.now()}`;
627
665
  this.emit({ type: 'start', task, traceId });
628
666
  this.observability?.logger?.info('Agent started', { task });
629
- // Lesson 26: Start trace capture session
630
- const traceSessionId = `session-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
631
- await this.traceCollector?.startSession(traceSessionId, task, this.config.model || 'default', {});
667
+ // Lesson 26: Start trace capture
668
+ // If session is already active (managed by REPL), start a task within it.
669
+ // Otherwise, start a new session for backward compatibility (single-task mode).
670
+ const taskId = `task-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
671
+ if (this.traceCollector?.isSessionActive()) {
672
+ // Session managed by REPL - just start a task
673
+ await this.traceCollector.startTask(taskId, task);
674
+ }
675
+ else {
676
+ // Single-task mode (backward compatibility) - start session with task
677
+ const traceSessionId = `session-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
678
+ await this.traceCollector?.startSession(traceSessionId, task, this.config.model || 'default', {});
679
+ }
632
680
  try {
633
681
  // Check for cancellation before starting
634
682
  cancellationToken?.throwIfCancellationRequested();
@@ -659,8 +707,14 @@ export class ProductionAgent {
659
707
  };
660
708
  this.emit({ type: 'complete', result });
661
709
  this.observability?.logger?.info('Agent completed', { duration, success: true });
662
- // Lesson 26: End trace capture session
663
- await this.traceCollector?.endSession({ success: true, output: response });
710
+ // Lesson 26: End trace capture
711
+ // If task is active (REPL mode), end the task. Otherwise end the session (single-task mode).
712
+ if (this.traceCollector?.isTaskActive()) {
713
+ await this.traceCollector.endTask({ success: true, output: response });
714
+ }
715
+ else if (this.traceCollector?.isSessionActive()) {
716
+ await this.traceCollector.endSession({ success: true, output: response });
717
+ }
664
718
  return result;
665
719
  }
666
720
  catch (err) {
@@ -672,8 +726,13 @@ export class ProductionAgent {
672
726
  const cleanupDuration = Date.now() - cleanupStart;
673
727
  this.emit({ type: 'cancellation.completed', cleanupDuration });
674
728
  this.observability?.logger?.info('Agent cancelled', { reason: error.message, cleanupDuration });
675
- // Lesson 26: End trace capture session on cancellation
676
- await this.traceCollector?.endSession({ success: false, failureReason: `Cancelled: ${error.message}` });
729
+ // Lesson 26: End trace capture on cancellation
730
+ if (this.traceCollector?.isTaskActive()) {
731
+ await this.traceCollector.endTask({ success: false, failureReason: `Cancelled: ${error.message}` });
732
+ }
733
+ else if (this.traceCollector?.isSessionActive()) {
734
+ await this.traceCollector.endSession({ success: false, failureReason: `Cancelled: ${error.message}` });
735
+ }
677
736
  return {
678
737
  success: false,
679
738
  response: '',
@@ -687,8 +746,13 @@ export class ProductionAgent {
687
746
  await this.observability?.tracer?.endTrace();
688
747
  this.emit({ type: 'error', error: error.message });
689
748
  this.observability?.logger?.error('Agent failed', { error: error.message });
690
- // Lesson 26: End trace capture session on error
691
- await this.traceCollector?.endSession({ success: false, failureReason: error.message });
749
+ // Lesson 26: End trace capture on error
750
+ if (this.traceCollector?.isTaskActive()) {
751
+ await this.traceCollector.endTask({ success: false, failureReason: error.message });
752
+ }
753
+ else if (this.traceCollector?.isSessionActive()) {
754
+ await this.traceCollector.endSession({ success: false, failureReason: error.message });
755
+ }
692
756
  return {
693
757
  success: false,
694
758
  response: '',
@@ -761,6 +825,11 @@ export class ProductionAgent {
761
825
  // Agent loop - now uses economics-based budget checking
762
826
  while (true) {
763
827
  this.state.iteration++;
828
+ // Record iteration start for tracing
829
+ this.traceCollector?.record({
830
+ type: 'iteration.start',
831
+ data: { iterationNumber: this.state.iteration },
832
+ });
764
833
  // =======================================================================
765
834
  // CANCELLATION CHECK
766
835
  // =======================================================================
@@ -1091,6 +1160,11 @@ export class ProductionAgent {
1091
1160
  continuations,
1092
1161
  });
1093
1162
  }
1163
+ // Record iteration end for tracing (no tool calls case)
1164
+ this.traceCollector?.record({
1165
+ type: 'iteration.end',
1166
+ data: { iterationNumber: this.state.iteration },
1167
+ });
1094
1168
  break;
1095
1169
  }
1096
1170
  // Execute tool calls
@@ -1188,7 +1262,7 @@ export class ProductionAgent {
1188
1262
  }
1189
1263
  // Emit context health after adding tool results
1190
1264
  const currentTokenEstimate = this.estimateContextTokens(messages);
1191
- const contextLimit = this.config.maxContextTokens || 100000;
1265
+ const contextLimit = this.getMaxContextTokens();
1192
1266
  const percentUsed = Math.round((currentTokenEstimate / contextLimit) * 100);
1193
1267
  const avgTokensPerExchange = currentTokenEstimate / Math.max(1, this.state.iteration);
1194
1268
  const remainingTokens = contextLimit - currentTokenEstimate;
@@ -1200,6 +1274,11 @@ export class ProductionAgent {
1200
1274
  estimatedExchanges,
1201
1275
  percentUsed,
1202
1276
  });
1277
+ // Record iteration end for tracing (after tool execution)
1278
+ this.traceCollector?.record({
1279
+ type: 'iteration.end',
1280
+ data: { iterationNumber: this.state.iteration },
1281
+ });
1203
1282
  }
1204
1283
  // =======================================================================
1205
1284
  // REFLECTION (Lesson 16)
@@ -1359,7 +1438,7 @@ export class ProductionAgent {
1359
1438
  return sum + Math.ceil(content.length / 3.5); // ~3.5 chars per token estimate
1360
1439
  }, 0);
1361
1440
  // Use context window size, not output token limit
1362
- const contextLimit = this.config.maxContextTokens || 100000;
1441
+ const contextLimit = this.getMaxContextTokens();
1363
1442
  this.emit({
1364
1443
  type: 'insight.context',
1365
1444
  currentTokens: estimatedTokens,
@@ -1445,6 +1524,27 @@ export class ProductionAgent {
1445
1524
  ? [{ model, rejected: 'complexity threshold exceeded' }]
1446
1525
  : undefined,
1447
1526
  });
1527
+ // Enhanced tracing: Record routing decision
1528
+ this.traceCollector?.record({
1529
+ type: 'decision',
1530
+ data: {
1531
+ type: 'routing',
1532
+ decision: `Selected model: ${actualModel}`,
1533
+ outcome: 'allowed',
1534
+ reasoning: actualModel !== model
1535
+ ? `Task complexity ${(complexity * 100).toFixed(0)}% exceeded threshold - routed to ${actualModel}`
1536
+ : `Default model ${model} suitable for task complexity ${(complexity * 100).toFixed(0)}%`,
1537
+ factors: [
1538
+ { name: 'complexity', value: complexity, weight: 0.8 },
1539
+ { name: 'hasTools', value: context.hasTools, weight: 0.1 },
1540
+ { name: 'taskType', value: context.taskType, weight: 0.1 },
1541
+ ],
1542
+ alternatives: actualModel !== model
1543
+ ? [{ option: model, reason: 'complexity threshold exceeded', rejected: true }]
1544
+ : undefined,
1545
+ confidence: 0.9,
1546
+ },
1547
+ });
1448
1548
  }
1449
1549
  else {
1450
1550
  response = await this.provider.chat(messages, {
@@ -1478,6 +1578,19 @@ export class ProductionAgent {
1478
1578
  durationMs: duration,
1479
1579
  },
1480
1580
  });
1581
+ // Enhanced tracing: Record thinking/reasoning blocks if present
1582
+ if (response.thinking) {
1583
+ this.traceCollector?.record({
1584
+ type: 'llm.thinking',
1585
+ data: {
1586
+ requestId,
1587
+ content: response.thinking,
1588
+ summarized: response.thinking.length > 10000, // Summarize if very long
1589
+ originalLength: response.thinking.length,
1590
+ durationMs: duration,
1591
+ },
1592
+ });
1593
+ }
1481
1594
  // Record metrics
1482
1595
  this.observability?.metrics?.recordLLMCall(response.usage?.inputTokens || 0, response.usage?.outputTokens || 0, duration, actualModel, response.usage?.cost // Actual cost from provider (e.g., OpenRouter)
1483
1596
  );
@@ -1551,6 +1664,7 @@ export class ProductionAgent {
1551
1664
  type: 'plan.change.queued',
1552
1665
  tool: toolCall.name,
1553
1666
  changeId: change?.id,
1667
+ summary: this.formatToolArgsForPlan(toolCall.name, toolCall.arguments),
1554
1668
  });
1555
1669
  // Return a message indicating the change was queued
1556
1670
  const queueMessage = `[PLAN MODE] Change queued for approval:\n` +
@@ -1590,6 +1704,23 @@ export class ProductionAgent {
1590
1704
  : 'allowed',
1591
1705
  policyMatch: evaluation.reason,
1592
1706
  });
1707
+ // Enhanced tracing: Record policy decision
1708
+ this.traceCollector?.record({
1709
+ type: 'decision',
1710
+ data: {
1711
+ type: 'policy',
1712
+ decision: `Tool ${toolCall.name}: ${evaluation.policy}`,
1713
+ outcome: evaluation.policy === 'forbidden' ? 'blocked'
1714
+ : evaluation.policy === 'prompt' ? 'deferred'
1715
+ : 'allowed',
1716
+ reasoning: evaluation.reason,
1717
+ factors: [
1718
+ { name: 'policy', value: evaluation.policy },
1719
+ { name: 'requiresApproval', value: evaluation.requiresApproval ?? false },
1720
+ ],
1721
+ confidence: evaluation.intent?.confidence ?? 0.8,
1722
+ },
1723
+ });
1593
1724
  // Handle forbidden policy - always block
1594
1725
  if (evaluation.policy === 'forbidden') {
1595
1726
  throw new Error(`Forbidden by policy: ${evaluation.reason}`);
@@ -1855,6 +1986,12 @@ export class ProductionAgent {
1855
1986
  if (toolName === 'delete_file') {
1856
1987
  return `Delete: ${args.path || args.file_path}`;
1857
1988
  }
1989
+ if (toolName === 'spawn_agent' || toolName === 'researcher') {
1990
+ const task = String(args.task || args.prompt || args.goal || '');
1991
+ const model = args.model ? ` (${args.model})` : '';
1992
+ const firstLine = task.split('\n')[0].slice(0, 100);
1993
+ return `${firstLine}${task.length > 100 ? '...' : ''}${model}`;
1994
+ }
1858
1995
  // Generic
1859
1996
  return `Args: ${JSON.stringify(args).slice(0, 100)}...`;
1860
1997
  }
@@ -1882,6 +2019,27 @@ export class ProductionAgent {
1882
2019
  getState() {
1883
2020
  return { ...this.state };
1884
2021
  }
2022
+ /**
2023
+ * Get the maximum context tokens for this agent's model.
2024
+ * Priority: user config > OpenRouter API > hardcoded ModelRegistry > 200K default
2025
+ */
2026
+ getMaxContextTokens() {
2027
+ if (this.config.maxContextTokens) {
2028
+ return this.config.maxContextTokens;
2029
+ }
2030
+ // Try OpenRouter API cache (has real data for GLM-4.7, etc.)
2031
+ const openRouterContext = getModelContextLength(this.config.model || '');
2032
+ if (openRouterContext) {
2033
+ return openRouterContext;
2034
+ }
2035
+ // Fall back to hardcoded registry
2036
+ const registryInfo = modelRegistry.getModel(this.config.model || '');
2037
+ if (registryInfo?.capabilities?.maxContextTokens) {
2038
+ return registryInfo.capabilities.maxContextTokens;
2039
+ }
2040
+ // Default
2041
+ return 200000;
2042
+ }
1885
2043
  /**
1886
2044
  * Get the trace collector (Lesson 26).
1887
2045
  * Returns null if trace capture is not enabled.
@@ -2602,6 +2760,8 @@ export class ProductionAgent {
2602
2760
  this.emit({ type: 'agent.spawn', agentId: `spawn-${Date.now()}`, name: agentName, task });
2603
2761
  this.observability?.logger?.info('Spawning agent', { name: agentName, task });
2604
2762
  const startTime = Date.now();
2763
+ const childSessionId = `subagent-${agentName}-${Date.now()}`;
2764
+ const childTraceId = `trace-${childSessionId}`;
2605
2765
  try {
2606
2766
  // Filter tools for this agent
2607
2767
  const agentTools = filterToolsForAgent(agentDef, Array.from(this.tools.values()));
@@ -2674,6 +2834,32 @@ export class ProductionAgent {
2674
2834
  },
2675
2835
  };
2676
2836
  this.emit({ type: 'agent.complete', agentId: agentName, success: result.success });
2837
+ // Enhanced tracing: Record subagent completion
2838
+ this.traceCollector?.record({
2839
+ type: 'subagent.link',
2840
+ data: {
2841
+ parentSessionId: this.traceCollector.getSessionId() || 'unknown',
2842
+ childSessionId,
2843
+ childTraceId,
2844
+ childConfig: {
2845
+ agentType: agentName,
2846
+ model: resolvedModel || 'default',
2847
+ task,
2848
+ tools: agentTools.map(t => t.name),
2849
+ },
2850
+ spawnContext: {
2851
+ reason: `Delegated task: ${task.slice(0, 100)}`,
2852
+ expectedOutcome: agentDef.description,
2853
+ parentIteration: this.state.iteration,
2854
+ },
2855
+ result: {
2856
+ success: result.success,
2857
+ summary: (result.response || result.error || '').slice(0, 500),
2858
+ tokensUsed: result.metrics.totalTokens,
2859
+ durationMs: duration,
2860
+ },
2861
+ },
2862
+ });
2677
2863
  await subAgent.cleanup();
2678
2864
  return spawnResult;
2679
2865
  }