attocode 0.1.3 → 0.1.5
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.
- package/CHANGELOG.md +38 -1
- package/README.md +56 -0
- package/dist/src/agent.d.ts +5 -0
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +244 -21
- package/dist/src/agent.js.map +1 -1
- package/dist/src/analysis/feedback-loop.d.ts +115 -0
- package/dist/src/analysis/feedback-loop.d.ts.map +1 -0
- package/dist/src/analysis/feedback-loop.js +226 -0
- package/dist/src/analysis/feedback-loop.js.map +1 -0
- package/dist/src/analysis/index.d.ts +9 -0
- package/dist/src/analysis/index.d.ts.map +1 -0
- package/dist/src/analysis/index.js +9 -0
- package/dist/src/analysis/index.js.map +1 -0
- package/dist/src/analysis/prompt-templates.d.ts +36 -0
- package/dist/src/analysis/prompt-templates.d.ts.map +1 -0
- package/dist/src/analysis/prompt-templates.js +198 -0
- package/dist/src/analysis/prompt-templates.js.map +1 -0
- package/dist/src/analysis/trace-summary.d.ts +56 -0
- package/dist/src/analysis/trace-summary.d.ts.map +1 -0
- package/dist/src/analysis/trace-summary.js +261 -0
- package/dist/src/analysis/trace-summary.js.map +1 -0
- package/dist/src/commands/handler.d.ts.map +1 -1
- package/dist/src/commands/handler.js +194 -2
- package/dist/src/commands/handler.js.map +1 -1
- package/dist/src/config.d.ts +3 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js.map +1 -1
- package/dist/src/defaults.d.ts +11 -2
- package/dist/src/defaults.d.ts.map +1 -1
- package/dist/src/defaults.js +25 -2
- package/dist/src/defaults.js.map +1 -1
- package/dist/src/errors/index.d.ts +233 -0
- package/dist/src/errors/index.d.ts.map +1 -0
- package/dist/src/errors/index.js +427 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/integrations/auto-compaction.d.ts +33 -0
- package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
- package/dist/src/integrations/auto-compaction.js +47 -3
- package/dist/src/integrations/auto-compaction.js.map +1 -1
- package/dist/src/integrations/dead-letter-queue.d.ts +208 -0
- package/dist/src/integrations/dead-letter-queue.d.ts.map +1 -0
- package/dist/src/integrations/dead-letter-queue.js +458 -0
- package/dist/src/integrations/dead-letter-queue.js.map +1 -0
- package/dist/src/integrations/economics.d.ts +94 -2
- package/dist/src/integrations/economics.d.ts.map +1 -1
- package/dist/src/integrations/economics.js +263 -10
- package/dist/src/integrations/economics.js.map +1 -1
- package/dist/src/integrations/health-check.d.ts +218 -0
- package/dist/src/integrations/health-check.d.ts.map +1 -0
- package/dist/src/integrations/health-check.js +400 -0
- package/dist/src/integrations/health-check.js.map +1 -0
- package/dist/src/integrations/index.d.ts +5 -0
- package/dist/src/integrations/index.d.ts.map +1 -1
- package/dist/src/integrations/index.js +9 -0
- package/dist/src/integrations/index.js.map +1 -1
- package/dist/src/integrations/mcp-client.d.ts +9 -0
- package/dist/src/integrations/mcp-client.d.ts.map +1 -1
- package/dist/src/integrations/mcp-client.js +49 -7
- package/dist/src/integrations/mcp-client.js.map +1 -1
- package/dist/src/integrations/openrouter-pricing.d.ts +28 -3
- package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -1
- package/dist/src/integrations/openrouter-pricing.js +57 -16
- package/dist/src/integrations/openrouter-pricing.js.map +1 -1
- package/dist/src/integrations/retry.d.ts +131 -0
- package/dist/src/integrations/retry.d.ts.map +1 -0
- package/dist/src/integrations/retry.js +233 -0
- package/dist/src/integrations/retry.js.map +1 -0
- package/dist/src/integrations/sqlite-store.d.ts +42 -0
- package/dist/src/integrations/sqlite-store.d.ts.map +1 -1
- package/dist/src/integrations/sqlite-store.js +111 -0
- package/dist/src/integrations/sqlite-store.js.map +1 -1
- package/dist/src/main.js +88 -7
- package/dist/src/main.js.map +1 -1
- package/dist/src/modes/repl.d.ts.map +1 -1
- package/dist/src/modes/repl.js +37 -1
- package/dist/src/modes/repl.js.map +1 -1
- package/dist/src/modes/tui.d.ts.map +1 -1
- package/dist/src/modes/tui.js +46 -5
- package/dist/src/modes/tui.js.map +1 -1
- package/dist/src/modes.d.ts.map +1 -1
- package/dist/src/modes.js +10 -3
- package/dist/src/modes.js.map +1 -1
- package/dist/src/persistence/schema.d.ts +4 -0
- package/dist/src/persistence/schema.d.ts.map +1 -1
- package/dist/src/persistence/schema.js +49 -0
- package/dist/src/persistence/schema.js.map +1 -1
- package/dist/src/providers/adapters/anthropic.d.ts +24 -2
- package/dist/src/providers/adapters/anthropic.d.ts.map +1 -1
- package/dist/src/providers/adapters/anthropic.js +184 -0
- package/dist/src/providers/adapters/anthropic.js.map +1 -1
- package/dist/src/tools/bash.d.ts.map +1 -1
- package/dist/src/tools/bash.js +7 -4
- package/dist/src/tools/bash.js.map +1 -1
- package/dist/src/tools/file.d.ts.map +1 -1
- package/dist/src/tools/file.js +31 -10
- package/dist/src/tools/file.js.map +1 -1
- package/dist/src/tools/permission.d.ts +12 -0
- package/dist/src/tools/permission.d.ts.map +1 -1
- package/dist/src/tools/permission.js +136 -0
- package/dist/src/tools/permission.js.map +1 -1
- package/dist/src/tools/registry.d.ts +23 -1
- package/dist/src/tools/registry.d.ts.map +1 -1
- package/dist/src/tools/registry.js +77 -17
- package/dist/src/tools/registry.js.map +1 -1
- package/dist/src/tools/standard.d.ts.map +1 -1
- package/dist/src/tools/standard.js +8 -0
- package/dist/src/tools/standard.js.map +1 -1
- package/dist/src/tools/types.d.ts +20 -1
- package/dist/src/tools/types.d.ts.map +1 -1
- package/dist/src/tools/types.js.map +1 -1
- package/dist/src/tracing/trace-collector.d.ts +209 -3
- package/dist/src/tracing/trace-collector.d.ts.map +1 -1
- package/dist/src/tracing/trace-collector.js +407 -15
- package/dist/src/tracing/trace-collector.js.map +1 -1
- package/dist/src/tracing/types.d.ts +476 -2
- package/dist/src/tracing/types.d.ts.map +1 -1
- package/dist/src/tracing/types.js +25 -0
- package/dist/src/tracing/types.js.map +1 -1
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +161 -4
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/types.d.ts +35 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +6 -3
- package/dist/src/hello.d.ts +0 -2
- package/dist/src/hello.d.ts.map +0 -1
- package/dist/src/hello.js +0 -4
- package/dist/src/hello.js.map +0 -1
- package/dist/src/test-sqlite.d.ts +0 -2
- package/dist/src/test-sqlite.d.ts.map +0 -1
- package/dist/src/test-sqlite.js +0 -114
- package/dist/src/test-sqlite.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.5] - 2026-02-01
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **SWE-bench Eval Working Directory** - Agent now runs in correct task workspace
|
|
14
|
+
- Was running in attocode/ instead of `/tmp/swe-bench-workspace/<instance>`
|
|
15
|
+
- Caused all file edits to go to wrong location
|
|
16
|
+
- **Cost Calculation** - Fixed $0.0000 cost display in eval runner
|
|
17
|
+
- Added metrics config (was missing `collectCosts: true`)
|
|
18
|
+
- Initialize OpenRouter pricing cache before running tasks
|
|
19
|
+
- **Trace Dashboard Iterations** - Fixed all events showing "Iteration #1"
|
|
20
|
+
- Parser now correctly detects iteration boundaries on LLM request cycles
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- **Model-Aware Pricing** - Replaced hardcoded Claude pricing throughout
|
|
24
|
+
- `trace-collector.ts` now uses OpenRouter pricing API
|
|
25
|
+
- Dashboard `token-analyzer.ts` has 20+ model pricing (Claude, GPT, GLM, Gemini, etc.)
|
|
26
|
+
- Default fallback uses Gemini Flash tier (~$0.075/M) instead of Claude Sonnet (~$3/M)
|
|
27
|
+
|
|
28
|
+
## [0.1.4] - 2026-01-30
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
- **Trace Mode** - Comprehensive system observability
|
|
32
|
+
- Captures full session execution including "thinking" blocks
|
|
33
|
+
- JSONL-based storage in `.traces/` for easy analysis
|
|
34
|
+
- Integrated `trace-dashboard` for visualizing agent decisions
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
- **Trace Dashboard Consolidation** - Merged `trace-viewer` library into `trace-dashboard`
|
|
38
|
+
- Library code now lives in `tools/trace-dashboard/src/lib/`
|
|
39
|
+
- Simplified dependency structure with no more path aliases
|
|
40
|
+
- Dashboard is now the sole interface for trace analysis
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
- `/trace compare` command now points to dashboard URL instead of removed CLI
|
|
44
|
+
|
|
10
45
|
## [0.1.3] - 2026-01-29
|
|
11
46
|
|
|
12
47
|
### Added
|
|
@@ -104,7 +139,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
104
139
|
- Sandbox execution for bash commands (macOS Seatbelt)
|
|
105
140
|
- Dangerous operation blocking in strict mode
|
|
106
141
|
|
|
107
|
-
[Unreleased]: https://github.com/eren23/attocode/compare/v0.1.
|
|
142
|
+
[Unreleased]: https://github.com/eren23/attocode/compare/v0.1.5...HEAD
|
|
143
|
+
[0.1.5]: https://github.com/eren23/attocode/compare/v0.1.4...v0.1.5
|
|
144
|
+
[0.1.4]: https://github.com/eren23/attocode/compare/v0.1.3...v0.1.4
|
|
108
145
|
[0.1.3]: https://github.com/eren23/attocode/compare/v0.1.2...v0.1.3
|
|
109
146
|
[0.1.2]: https://github.com/eren23/attocode/compare/v0.1.1...v0.1.2
|
|
110
147
|
[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
|
package/dist/src/agent.d.ts
CHANGED
|
@@ -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.
|
package/dist/src/agent.d.ts.map
CHANGED
|
@@ -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.
|
|
496
|
-
autoCompactThreshold: 0.90
|
|
497
|
-
hardLimitThreshold: 0.
|
|
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
|
|
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
|
|
630
|
-
|
|
631
|
-
|
|
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
|
|
663
|
-
|
|
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
|
|
676
|
-
|
|
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
|
|
691
|
-
|
|
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
|
// =======================================================================
|
|
@@ -791,8 +860,13 @@ export class ProductionAgent {
|
|
|
791
860
|
// ECONOMICS CHECK (Token Budget) - replaces hard iteration limit
|
|
792
861
|
// With recovery: try compaction before giving up on token limits
|
|
793
862
|
// =======================================================================
|
|
863
|
+
let forceTextOnly = false; // Track if we should skip tool execution
|
|
864
|
+
let budgetInjectedPrompt;
|
|
794
865
|
if (this.economics) {
|
|
795
866
|
const budgetCheck = this.economics.checkBudget();
|
|
867
|
+
// Capture forceTextOnly and injectedPrompt for later use
|
|
868
|
+
forceTextOnly = budgetCheck.forceTextOnly ?? false;
|
|
869
|
+
budgetInjectedPrompt = budgetCheck.injectedPrompt;
|
|
796
870
|
if (!budgetCheck.canContinue) {
|
|
797
871
|
// ===================================================================
|
|
798
872
|
// RECOVERY ATTEMPT: Try emergency context reduction before giving up
|
|
@@ -895,6 +969,28 @@ export class ProductionAgent {
|
|
|
895
969
|
}
|
|
896
970
|
}
|
|
897
971
|
// =======================================================================
|
|
972
|
+
// INTELLIGENT LOOP DETECTION & NUDGE INJECTION
|
|
973
|
+
// Uses economics system for doom loops, exploration saturation, etc.
|
|
974
|
+
// =======================================================================
|
|
975
|
+
if (this.economics && budgetInjectedPrompt) {
|
|
976
|
+
// Inject contextual guidance from economics system
|
|
977
|
+
messages.push({
|
|
978
|
+
role: 'user',
|
|
979
|
+
content: budgetInjectedPrompt,
|
|
980
|
+
});
|
|
981
|
+
const loopState = this.economics.getLoopState();
|
|
982
|
+
const phaseState = this.economics.getPhaseState();
|
|
983
|
+
this.observability?.logger?.info('Loop detection - injecting guidance', {
|
|
984
|
+
iteration: this.state.iteration,
|
|
985
|
+
doomLoop: loopState.doomLoopDetected,
|
|
986
|
+
phase: phaseState.phase,
|
|
987
|
+
filesRead: phaseState.uniqueFilesRead,
|
|
988
|
+
filesModified: phaseState.filesModified,
|
|
989
|
+
shouldTransition: phaseState.shouldTransition,
|
|
990
|
+
forceTextOnly,
|
|
991
|
+
});
|
|
992
|
+
}
|
|
993
|
+
// =======================================================================
|
|
898
994
|
// RECITATION INJECTION (Trick Q) - Combat "lost in middle" attention
|
|
899
995
|
// =======================================================================
|
|
900
996
|
if (this.contextEngineering) {
|
|
@@ -1072,8 +1168,17 @@ export class ProductionAgent {
|
|
|
1072
1168
|
this.state.messages.push(assistantMessage);
|
|
1073
1169
|
lastResponse = response.content;
|
|
1074
1170
|
// Check for tool calls
|
|
1075
|
-
|
|
1076
|
-
|
|
1171
|
+
// When forceTextOnly is set (max iterations reached), ignore any tool calls
|
|
1172
|
+
const hasToolCalls = response.toolCalls && response.toolCalls.length > 0;
|
|
1173
|
+
if (!hasToolCalls || forceTextOnly) {
|
|
1174
|
+
// Log if we're ignoring tool calls due to forceTextOnly
|
|
1175
|
+
if (forceTextOnly && hasToolCalls) {
|
|
1176
|
+
this.observability?.logger?.info('Ignoring tool calls due to forceTextOnly (max steps reached)', {
|
|
1177
|
+
toolCallCount: response.toolCalls?.length,
|
|
1178
|
+
iteration: this.state.iteration,
|
|
1179
|
+
});
|
|
1180
|
+
}
|
|
1181
|
+
// No tool calls (or forced to ignore), agent is done - compact tool outputs to save context
|
|
1077
1182
|
// The model has "consumed" the tool outputs and produced a response,
|
|
1078
1183
|
// so we can replace verbose outputs with compact summaries
|
|
1079
1184
|
this.compactToolOutputs();
|
|
@@ -1091,13 +1196,19 @@ export class ProductionAgent {
|
|
|
1091
1196
|
continuations,
|
|
1092
1197
|
});
|
|
1093
1198
|
}
|
|
1199
|
+
// Record iteration end for tracing (no tool calls case)
|
|
1200
|
+
this.traceCollector?.record({
|
|
1201
|
+
type: 'iteration.end',
|
|
1202
|
+
data: { iterationNumber: this.state.iteration },
|
|
1203
|
+
});
|
|
1094
1204
|
break;
|
|
1095
1205
|
}
|
|
1096
|
-
// Execute tool calls
|
|
1097
|
-
const
|
|
1206
|
+
// Execute tool calls (we know toolCalls is defined here due to the check above)
|
|
1207
|
+
const toolCalls = response.toolCalls;
|
|
1208
|
+
const toolResults = await this.executeToolCalls(toolCalls);
|
|
1098
1209
|
// Record tool calls for economics/progress tracking
|
|
1099
|
-
for (let i = 0; i <
|
|
1100
|
-
const toolCall =
|
|
1210
|
+
for (let i = 0; i < toolCalls.length; i++) {
|
|
1211
|
+
const toolCall = toolCalls[i];
|
|
1101
1212
|
const result = toolResults[i];
|
|
1102
1213
|
this.economics?.recordToolCall(toolCall.name, toolCall.arguments, result?.result);
|
|
1103
1214
|
}
|
|
@@ -1188,7 +1299,7 @@ export class ProductionAgent {
|
|
|
1188
1299
|
}
|
|
1189
1300
|
// Emit context health after adding tool results
|
|
1190
1301
|
const currentTokenEstimate = this.estimateContextTokens(messages);
|
|
1191
|
-
const contextLimit = this.
|
|
1302
|
+
const contextLimit = this.getMaxContextTokens();
|
|
1192
1303
|
const percentUsed = Math.round((currentTokenEstimate / contextLimit) * 100);
|
|
1193
1304
|
const avgTokensPerExchange = currentTokenEstimate / Math.max(1, this.state.iteration);
|
|
1194
1305
|
const remainingTokens = contextLimit - currentTokenEstimate;
|
|
@@ -1200,6 +1311,11 @@ export class ProductionAgent {
|
|
|
1200
1311
|
estimatedExchanges,
|
|
1201
1312
|
percentUsed,
|
|
1202
1313
|
});
|
|
1314
|
+
// Record iteration end for tracing (after tool execution)
|
|
1315
|
+
this.traceCollector?.record({
|
|
1316
|
+
type: 'iteration.end',
|
|
1317
|
+
data: { iterationNumber: this.state.iteration },
|
|
1318
|
+
});
|
|
1203
1319
|
}
|
|
1204
1320
|
// =======================================================================
|
|
1205
1321
|
// REFLECTION (Lesson 16)
|
|
@@ -1359,7 +1475,7 @@ export class ProductionAgent {
|
|
|
1359
1475
|
return sum + Math.ceil(content.length / 3.5); // ~3.5 chars per token estimate
|
|
1360
1476
|
}, 0);
|
|
1361
1477
|
// Use context window size, not output token limit
|
|
1362
|
-
const contextLimit = this.
|
|
1478
|
+
const contextLimit = this.getMaxContextTokens();
|
|
1363
1479
|
this.emit({
|
|
1364
1480
|
type: 'insight.context',
|
|
1365
1481
|
currentTokens: estimatedTokens,
|
|
@@ -1445,6 +1561,27 @@ export class ProductionAgent {
|
|
|
1445
1561
|
? [{ model, rejected: 'complexity threshold exceeded' }]
|
|
1446
1562
|
: undefined,
|
|
1447
1563
|
});
|
|
1564
|
+
// Enhanced tracing: Record routing decision
|
|
1565
|
+
this.traceCollector?.record({
|
|
1566
|
+
type: 'decision',
|
|
1567
|
+
data: {
|
|
1568
|
+
type: 'routing',
|
|
1569
|
+
decision: `Selected model: ${actualModel}`,
|
|
1570
|
+
outcome: 'allowed',
|
|
1571
|
+
reasoning: actualModel !== model
|
|
1572
|
+
? `Task complexity ${(complexity * 100).toFixed(0)}% exceeded threshold - routed to ${actualModel}`
|
|
1573
|
+
: `Default model ${model} suitable for task complexity ${(complexity * 100).toFixed(0)}%`,
|
|
1574
|
+
factors: [
|
|
1575
|
+
{ name: 'complexity', value: complexity, weight: 0.8 },
|
|
1576
|
+
{ name: 'hasTools', value: context.hasTools, weight: 0.1 },
|
|
1577
|
+
{ name: 'taskType', value: context.taskType, weight: 0.1 },
|
|
1578
|
+
],
|
|
1579
|
+
alternatives: actualModel !== model
|
|
1580
|
+
? [{ option: model, reason: 'complexity threshold exceeded', rejected: true }]
|
|
1581
|
+
: undefined,
|
|
1582
|
+
confidence: 0.9,
|
|
1583
|
+
},
|
|
1584
|
+
});
|
|
1448
1585
|
}
|
|
1449
1586
|
else {
|
|
1450
1587
|
response = await this.provider.chat(messages, {
|
|
@@ -1478,6 +1615,19 @@ export class ProductionAgent {
|
|
|
1478
1615
|
durationMs: duration,
|
|
1479
1616
|
},
|
|
1480
1617
|
});
|
|
1618
|
+
// Enhanced tracing: Record thinking/reasoning blocks if present
|
|
1619
|
+
if (response.thinking) {
|
|
1620
|
+
this.traceCollector?.record({
|
|
1621
|
+
type: 'llm.thinking',
|
|
1622
|
+
data: {
|
|
1623
|
+
requestId,
|
|
1624
|
+
content: response.thinking,
|
|
1625
|
+
summarized: response.thinking.length > 10000, // Summarize if very long
|
|
1626
|
+
originalLength: response.thinking.length,
|
|
1627
|
+
durationMs: duration,
|
|
1628
|
+
},
|
|
1629
|
+
});
|
|
1630
|
+
}
|
|
1481
1631
|
// Record metrics
|
|
1482
1632
|
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
1633
|
);
|
|
@@ -1551,6 +1701,7 @@ export class ProductionAgent {
|
|
|
1551
1701
|
type: 'plan.change.queued',
|
|
1552
1702
|
tool: toolCall.name,
|
|
1553
1703
|
changeId: change?.id,
|
|
1704
|
+
summary: this.formatToolArgsForPlan(toolCall.name, toolCall.arguments),
|
|
1554
1705
|
});
|
|
1555
1706
|
// Return a message indicating the change was queued
|
|
1556
1707
|
const queueMessage = `[PLAN MODE] Change queued for approval:\n` +
|
|
@@ -1590,6 +1741,23 @@ export class ProductionAgent {
|
|
|
1590
1741
|
: 'allowed',
|
|
1591
1742
|
policyMatch: evaluation.reason,
|
|
1592
1743
|
});
|
|
1744
|
+
// Enhanced tracing: Record policy decision
|
|
1745
|
+
this.traceCollector?.record({
|
|
1746
|
+
type: 'decision',
|
|
1747
|
+
data: {
|
|
1748
|
+
type: 'policy',
|
|
1749
|
+
decision: `Tool ${toolCall.name}: ${evaluation.policy}`,
|
|
1750
|
+
outcome: evaluation.policy === 'forbidden' ? 'blocked'
|
|
1751
|
+
: evaluation.policy === 'prompt' ? 'deferred'
|
|
1752
|
+
: 'allowed',
|
|
1753
|
+
reasoning: evaluation.reason,
|
|
1754
|
+
factors: [
|
|
1755
|
+
{ name: 'policy', value: evaluation.policy },
|
|
1756
|
+
{ name: 'requiresApproval', value: evaluation.requiresApproval ?? false },
|
|
1757
|
+
],
|
|
1758
|
+
confidence: evaluation.intent?.confidence ?? 0.8,
|
|
1759
|
+
},
|
|
1760
|
+
});
|
|
1593
1761
|
// Handle forbidden policy - always block
|
|
1594
1762
|
if (evaluation.policy === 'forbidden') {
|
|
1595
1763
|
throw new Error(`Forbidden by policy: ${evaluation.reason}`);
|
|
@@ -1855,6 +2023,12 @@ export class ProductionAgent {
|
|
|
1855
2023
|
if (toolName === 'delete_file') {
|
|
1856
2024
|
return `Delete: ${args.path || args.file_path}`;
|
|
1857
2025
|
}
|
|
2026
|
+
if (toolName === 'spawn_agent' || toolName === 'researcher') {
|
|
2027
|
+
const task = String(args.task || args.prompt || args.goal || '');
|
|
2028
|
+
const model = args.model ? ` (${args.model})` : '';
|
|
2029
|
+
const firstLine = task.split('\n')[0].slice(0, 100);
|
|
2030
|
+
return `${firstLine}${task.length > 100 ? '...' : ''}${model}`;
|
|
2031
|
+
}
|
|
1858
2032
|
// Generic
|
|
1859
2033
|
return `Args: ${JSON.stringify(args).slice(0, 100)}...`;
|
|
1860
2034
|
}
|
|
@@ -1882,6 +2056,27 @@ export class ProductionAgent {
|
|
|
1882
2056
|
getState() {
|
|
1883
2057
|
return { ...this.state };
|
|
1884
2058
|
}
|
|
2059
|
+
/**
|
|
2060
|
+
* Get the maximum context tokens for this agent's model.
|
|
2061
|
+
* Priority: user config > OpenRouter API > hardcoded ModelRegistry > 200K default
|
|
2062
|
+
*/
|
|
2063
|
+
getMaxContextTokens() {
|
|
2064
|
+
if (this.config.maxContextTokens) {
|
|
2065
|
+
return this.config.maxContextTokens;
|
|
2066
|
+
}
|
|
2067
|
+
// Try OpenRouter API cache (has real data for GLM-4.7, etc.)
|
|
2068
|
+
const openRouterContext = getModelContextLength(this.config.model || '');
|
|
2069
|
+
if (openRouterContext) {
|
|
2070
|
+
return openRouterContext;
|
|
2071
|
+
}
|
|
2072
|
+
// Fall back to hardcoded registry
|
|
2073
|
+
const registryInfo = modelRegistry.getModel(this.config.model || '');
|
|
2074
|
+
if (registryInfo?.capabilities?.maxContextTokens) {
|
|
2075
|
+
return registryInfo.capabilities.maxContextTokens;
|
|
2076
|
+
}
|
|
2077
|
+
// Default
|
|
2078
|
+
return 200000;
|
|
2079
|
+
}
|
|
1885
2080
|
/**
|
|
1886
2081
|
* Get the trace collector (Lesson 26).
|
|
1887
2082
|
* Returns null if trace capture is not enabled.
|
|
@@ -2602,6 +2797,8 @@ export class ProductionAgent {
|
|
|
2602
2797
|
this.emit({ type: 'agent.spawn', agentId: `spawn-${Date.now()}`, name: agentName, task });
|
|
2603
2798
|
this.observability?.logger?.info('Spawning agent', { name: agentName, task });
|
|
2604
2799
|
const startTime = Date.now();
|
|
2800
|
+
const childSessionId = `subagent-${agentName}-${Date.now()}`;
|
|
2801
|
+
const childTraceId = `trace-${childSessionId}`;
|
|
2605
2802
|
try {
|
|
2606
2803
|
// Filter tools for this agent
|
|
2607
2804
|
const agentTools = filterToolsForAgent(agentDef, Array.from(this.tools.values()));
|
|
@@ -2674,6 +2871,32 @@ export class ProductionAgent {
|
|
|
2674
2871
|
},
|
|
2675
2872
|
};
|
|
2676
2873
|
this.emit({ type: 'agent.complete', agentId: agentName, success: result.success });
|
|
2874
|
+
// Enhanced tracing: Record subagent completion
|
|
2875
|
+
this.traceCollector?.record({
|
|
2876
|
+
type: 'subagent.link',
|
|
2877
|
+
data: {
|
|
2878
|
+
parentSessionId: this.traceCollector.getSessionId() || 'unknown',
|
|
2879
|
+
childSessionId,
|
|
2880
|
+
childTraceId,
|
|
2881
|
+
childConfig: {
|
|
2882
|
+
agentType: agentName,
|
|
2883
|
+
model: resolvedModel || 'default',
|
|
2884
|
+
task,
|
|
2885
|
+
tools: agentTools.map(t => t.name),
|
|
2886
|
+
},
|
|
2887
|
+
spawnContext: {
|
|
2888
|
+
reason: `Delegated task: ${task.slice(0, 100)}`,
|
|
2889
|
+
expectedOutcome: agentDef.description,
|
|
2890
|
+
parentIteration: this.state.iteration,
|
|
2891
|
+
},
|
|
2892
|
+
result: {
|
|
2893
|
+
success: result.success,
|
|
2894
|
+
summary: (result.response || result.error || '').slice(0, 500),
|
|
2895
|
+
tokensUsed: result.metrics.totalTokens,
|
|
2896
|
+
durationMs: duration,
|
|
2897
|
+
},
|
|
2898
|
+
},
|
|
2899
|
+
});
|
|
2677
2900
|
await subAgent.cleanup();
|
|
2678
2901
|
return spawnResult;
|
|
2679
2902
|
}
|