attocode 0.2.1 → 0.2.3
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 +191 -1
- package/README.md +7 -0
- package/dist/src/adapters.d.ts +6 -1
- package/dist/src/adapters.d.ts.map +1 -1
- package/dist/src/adapters.js +8 -1
- package/dist/src/adapters.js.map +1 -1
- package/dist/src/agent.d.ts +41 -4
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +846 -75
- package/dist/src/agent.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +23 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/core/protocol/types.d.ts +8 -8
- package/dist/src/defaults.d.ts +7 -2
- package/dist/src/defaults.d.ts.map +1 -1
- package/dist/src/defaults.js +38 -2
- package/dist/src/defaults.js.map +1 -1
- package/dist/src/integrations/agent-registry.d.ts +13 -0
- package/dist/src/integrations/agent-registry.d.ts.map +1 -1
- package/dist/src/integrations/agent-registry.js.map +1 -1
- package/dist/src/integrations/async-subagent.d.ts +135 -0
- package/dist/src/integrations/async-subagent.d.ts.map +1 -0
- package/dist/src/integrations/async-subagent.js +213 -0
- package/dist/src/integrations/async-subagent.js.map +1 -0
- package/dist/src/integrations/auto-checkpoint.d.ts +98 -0
- package/dist/src/integrations/auto-checkpoint.d.ts.map +1 -0
- package/dist/src/integrations/auto-checkpoint.js +252 -0
- package/dist/src/integrations/auto-checkpoint.js.map +1 -0
- package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
- package/dist/src/integrations/auto-compaction.js +5 -1
- package/dist/src/integrations/auto-compaction.js.map +1 -1
- package/dist/src/integrations/bash-policy.d.ts +33 -0
- package/dist/src/integrations/bash-policy.d.ts.map +1 -0
- package/dist/src/integrations/bash-policy.js +142 -0
- package/dist/src/integrations/bash-policy.js.map +1 -0
- package/dist/src/integrations/codebase-context.d.ts +5 -0
- package/dist/src/integrations/codebase-context.d.ts.map +1 -1
- package/dist/src/integrations/codebase-context.js +33 -0
- package/dist/src/integrations/codebase-context.js.map +1 -1
- package/dist/src/integrations/complexity-classifier.d.ts +86 -0
- package/dist/src/integrations/complexity-classifier.d.ts.map +1 -0
- package/dist/src/integrations/complexity-classifier.js +233 -0
- package/dist/src/integrations/complexity-classifier.js.map +1 -0
- package/dist/src/integrations/delegation-protocol.d.ts +86 -0
- package/dist/src/integrations/delegation-protocol.d.ts.map +1 -0
- package/dist/src/integrations/delegation-protocol.js +127 -0
- package/dist/src/integrations/delegation-protocol.js.map +1 -0
- package/dist/src/integrations/dynamic-budget.d.ts +81 -0
- package/dist/src/integrations/dynamic-budget.d.ts.map +1 -0
- package/dist/src/integrations/dynamic-budget.js +151 -0
- package/dist/src/integrations/dynamic-budget.js.map +1 -0
- package/dist/src/integrations/economics.d.ts +86 -1
- package/dist/src/integrations/economics.d.ts.map +1 -1
- package/dist/src/integrations/economics.js +306 -11
- package/dist/src/integrations/economics.js.map +1 -1
- package/dist/src/integrations/environment-facts.d.ts +52 -0
- package/dist/src/integrations/environment-facts.d.ts.map +1 -0
- package/dist/src/integrations/environment-facts.js +84 -0
- package/dist/src/integrations/environment-facts.js.map +1 -0
- package/dist/src/integrations/hierarchical-config.d.ts.map +1 -1
- package/dist/src/integrations/hierarchical-config.js +17 -0
- package/dist/src/integrations/hierarchical-config.js.map +1 -1
- package/dist/src/integrations/index.d.ts +19 -2
- package/dist/src/integrations/index.d.ts.map +1 -1
- package/dist/src/integrations/index.js +34 -2
- package/dist/src/integrations/index.js.map +1 -1
- package/dist/src/integrations/injection-budget.d.ts +71 -0
- package/dist/src/integrations/injection-budget.d.ts.map +1 -0
- package/dist/src/integrations/injection-budget.js +136 -0
- package/dist/src/integrations/injection-budget.js.map +1 -0
- package/dist/src/integrations/mcp-client.d.ts.map +1 -1
- package/dist/src/integrations/mcp-client.js +14 -0
- package/dist/src/integrations/mcp-client.js.map +1 -1
- package/dist/src/integrations/mcp-custom-tools.d.ts +102 -0
- package/dist/src/integrations/mcp-custom-tools.d.ts.map +1 -0
- package/dist/src/integrations/mcp-custom-tools.js +232 -0
- package/dist/src/integrations/mcp-custom-tools.js.map +1 -0
- package/dist/src/integrations/mcp-tool-validator.d.ts +60 -0
- package/dist/src/integrations/mcp-tool-validator.d.ts.map +1 -0
- package/dist/src/integrations/mcp-tool-validator.js +141 -0
- package/dist/src/integrations/mcp-tool-validator.js.map +1 -0
- package/dist/src/integrations/policy-engine.d.ts +55 -0
- package/dist/src/integrations/policy-engine.d.ts.map +1 -0
- package/dist/src/integrations/policy-engine.js +247 -0
- package/dist/src/integrations/policy-engine.js.map +1 -0
- package/dist/src/integrations/safety.d.ts +5 -4
- package/dist/src/integrations/safety.d.ts.map +1 -1
- package/dist/src/integrations/safety.js +32 -7
- package/dist/src/integrations/safety.js.map +1 -1
- package/dist/src/integrations/sandbox/basic.d.ts +7 -0
- package/dist/src/integrations/sandbox/basic.d.ts.map +1 -1
- package/dist/src/integrations/sandbox/basic.js +27 -2
- package/dist/src/integrations/sandbox/basic.js.map +1 -1
- package/dist/src/integrations/sandbox/index.d.ts +6 -0
- package/dist/src/integrations/sandbox/index.d.ts.map +1 -1
- package/dist/src/integrations/sandbox/index.js +3 -0
- package/dist/src/integrations/sandbox/index.js.map +1 -1
- package/dist/src/integrations/sandbox/landlock.d.ts.map +1 -1
- package/dist/src/integrations/sandbox/landlock.js +3 -0
- package/dist/src/integrations/sandbox/landlock.js.map +1 -1
- package/dist/src/integrations/self-improvement.d.ts +90 -0
- package/dist/src/integrations/self-improvement.d.ts.map +1 -0
- package/dist/src/integrations/self-improvement.js +229 -0
- package/dist/src/integrations/self-improvement.js.map +1 -0
- package/dist/src/integrations/smart-decomposer.d.ts +22 -1
- package/dist/src/integrations/smart-decomposer.d.ts.map +1 -1
- package/dist/src/integrations/smart-decomposer.js +127 -28
- package/dist/src/integrations/smart-decomposer.js.map +1 -1
- package/dist/src/integrations/subagent-output-store.d.ts +91 -0
- package/dist/src/integrations/subagent-output-store.d.ts.map +1 -0
- package/dist/src/integrations/subagent-output-store.js +257 -0
- package/dist/src/integrations/subagent-output-store.js.map +1 -0
- package/dist/src/integrations/swarm/index.d.ts +2 -2
- package/dist/src/integrations/swarm/index.d.ts.map +1 -1
- package/dist/src/integrations/swarm/index.js +1 -1
- package/dist/src/integrations/swarm/index.js.map +1 -1
- package/dist/src/integrations/swarm/model-selector.d.ts +16 -0
- package/dist/src/integrations/swarm/model-selector.d.ts.map +1 -1
- package/dist/src/integrations/swarm/model-selector.js +123 -10
- package/dist/src/integrations/swarm/model-selector.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-budget.d.ts +4 -0
- package/dist/src/integrations/swarm/swarm-budget.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-budget.js +6 -0
- package/dist/src/integrations/swarm/swarm-budget.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-config-loader.d.ts +10 -1
- package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-config-loader.js +226 -13
- package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-event-bridge.d.ts +12 -1
- package/dist/src/integrations/swarm/swarm-event-bridge.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-event-bridge.js +178 -9
- package/dist/src/integrations/swarm/swarm-event-bridge.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-events.d.ts +66 -1
- package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-events.js +26 -5
- package/dist/src/integrations/swarm/swarm-events.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +127 -0
- package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-orchestrator.js +1842 -47
- package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-quality-gate.d.ts +91 -3
- package/dist/src/integrations/swarm/swarm-quality-gate.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-quality-gate.js +395 -19
- package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -1
- package/dist/src/integrations/swarm/task-queue.d.ts +55 -1
- package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -1
- package/dist/src/integrations/swarm/task-queue.js +389 -16
- package/dist/src/integrations/swarm/task-queue.js.map +1 -1
- package/dist/src/integrations/swarm/types.d.ts +247 -11
- package/dist/src/integrations/swarm/types.d.ts.map +1 -1
- package/dist/src/integrations/swarm/types.js +67 -9
- package/dist/src/integrations/swarm/types.js.map +1 -1
- package/dist/src/integrations/swarm/worker-pool.d.ts +18 -5
- package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -1
- package/dist/src/integrations/swarm/worker-pool.js +236 -34
- package/dist/src/integrations/swarm/worker-pool.js.map +1 -1
- package/dist/src/integrations/thinking-strategy.d.ts +52 -0
- package/dist/src/integrations/thinking-strategy.d.ts.map +1 -0
- package/dist/src/integrations/thinking-strategy.js +129 -0
- package/dist/src/integrations/thinking-strategy.js.map +1 -0
- package/dist/src/integrations/tool-recommendation.d.ts +61 -0
- package/dist/src/integrations/tool-recommendation.d.ts.map +1 -0
- package/dist/src/integrations/tool-recommendation.js +268 -0
- package/dist/src/integrations/tool-recommendation.js.map +1 -0
- package/dist/src/integrations/verification-gate.d.ts +80 -0
- package/dist/src/integrations/verification-gate.d.ts.map +1 -0
- package/dist/src/integrations/verification-gate.js +146 -0
- package/dist/src/integrations/verification-gate.js.map +1 -0
- package/dist/src/integrations/work-log.d.ts +87 -0
- package/dist/src/integrations/work-log.d.ts.map +1 -0
- package/dist/src/integrations/work-log.js +275 -0
- package/dist/src/integrations/work-log.js.map +1 -0
- package/dist/src/main.js +31 -5
- package/dist/src/main.js.map +1 -1
- package/dist/src/modes/repl.d.ts.map +1 -1
- package/dist/src/modes/repl.js +10 -4
- 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 +5 -0
- package/dist/src/modes/tui.js.map +1 -1
- package/dist/src/modes.d.ts +6 -0
- package/dist/src/modes.d.ts.map +1 -1
- package/dist/src/modes.js +69 -21
- package/dist/src/modes.js.map +1 -1
- package/dist/src/tools/agent.d.ts.map +1 -1
- package/dist/src/tools/agent.js +11 -2
- package/dist/src/tools/agent.js.map +1 -1
- package/dist/src/tools/bash.d.ts +9 -3
- package/dist/src/tools/bash.d.ts.map +1 -1
- package/dist/src/tools/bash.js +12 -0
- package/dist/src/tools/bash.js.map +1 -1
- package/dist/src/tools/coercion.d.ts +6 -0
- package/dist/src/tools/coercion.d.ts.map +1 -1
- package/dist/src/tools/coercion.js +13 -0
- package/dist/src/tools/coercion.js.map +1 -1
- package/dist/src/tools/file.d.ts +2 -2
- package/dist/src/tools/file.js +2 -2
- package/dist/src/tools/file.js.map +1 -1
- package/dist/src/tools/permission.d.ts.map +1 -1
- package/dist/src/tools/permission.js +4 -111
- package/dist/src/tools/permission.js.map +1 -1
- package/dist/src/tools/standard.d.ts +17 -1
- package/dist/src/tools/standard.d.ts.map +1 -1
- package/dist/src/tools/standard.js +64 -11
- package/dist/src/tools/standard.js.map +1 -1
- package/dist/src/tracing/trace-collector.d.ts +167 -0
- package/dist/src/tracing/trace-collector.d.ts.map +1 -1
- package/dist/src/tracing/trace-collector.js +137 -0
- package/dist/src/tracing/trace-collector.js.map +1 -1
- package/dist/src/tracing/types.d.ts +105 -1
- package/dist/src/tracing/types.d.ts.map +1 -1
- 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 +34 -5
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/types.d.ts +89 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic Budget Rebalancing
|
|
3
|
+
*
|
|
4
|
+
* Extends SharedBudgetPool with dynamic rebalancing that prevents
|
|
5
|
+
* starvation when spawning subagents sequentially.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - setExpectedChildren(count) for upfront capacity planning
|
|
9
|
+
* - Sequential spawn cap: never take >60% of remaining budget
|
|
10
|
+
* - Rebalance on child completion (return unused budget to pool)
|
|
11
|
+
* - Priority-based allocation (critical children get more)
|
|
12
|
+
*/
|
|
13
|
+
import { SharedBudgetPool } from './budget-pool.js';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// CONSTANTS
|
|
16
|
+
// =============================================================================
|
|
17
|
+
const PRIORITY_MULTIPLIERS = {
|
|
18
|
+
low: 0.5,
|
|
19
|
+
normal: 1.0,
|
|
20
|
+
high: 1.5,
|
|
21
|
+
critical: 2.0,
|
|
22
|
+
};
|
|
23
|
+
const DEFAULT_DYNAMIC_CONFIG = {
|
|
24
|
+
maxRemainingRatio: 0.6,
|
|
25
|
+
minPerExpectedChild: 10000,
|
|
26
|
+
autoRebalance: true,
|
|
27
|
+
};
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// DYNAMIC BUDGET POOL
|
|
30
|
+
// =============================================================================
|
|
31
|
+
export class DynamicBudgetPool extends SharedBudgetPool {
|
|
32
|
+
dynamicConfig;
|
|
33
|
+
expectedChildren = 0;
|
|
34
|
+
spawnedCount = 0;
|
|
35
|
+
completedCount = 0;
|
|
36
|
+
childPriorities = new Map();
|
|
37
|
+
constructor(config) {
|
|
38
|
+
super(config);
|
|
39
|
+
this.dynamicConfig = {
|
|
40
|
+
...config,
|
|
41
|
+
maxRemainingRatio: config.maxRemainingRatio ?? DEFAULT_DYNAMIC_CONFIG.maxRemainingRatio,
|
|
42
|
+
minPerExpectedChild: config.minPerExpectedChild ?? DEFAULT_DYNAMIC_CONFIG.minPerExpectedChild,
|
|
43
|
+
autoRebalance: config.autoRebalance ?? DEFAULT_DYNAMIC_CONFIG.autoRebalance,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Set the expected number of children for capacity planning.
|
|
48
|
+
* This adjusts maxPerChild to ensure fair distribution.
|
|
49
|
+
*/
|
|
50
|
+
setExpectedChildren(count) {
|
|
51
|
+
this.expectedChildren = count;
|
|
52
|
+
this.updateMaxPerChild();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Set priority for a child agent.
|
|
56
|
+
*/
|
|
57
|
+
setChildPriority(priority) {
|
|
58
|
+
this.childPriorities.set(priority.childId, priority);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Reserve with dynamic capacity planning.
|
|
62
|
+
* Respects expected children and remaining ratio cap.
|
|
63
|
+
*/
|
|
64
|
+
reserveDynamic(childId, priority) {
|
|
65
|
+
// Set priority if provided
|
|
66
|
+
if (priority) {
|
|
67
|
+
this.setChildPriority({ childId, priority });
|
|
68
|
+
}
|
|
69
|
+
// Calculate dynamic max for this child
|
|
70
|
+
const stats = this.getStats();
|
|
71
|
+
const remaining = stats.tokensRemaining;
|
|
72
|
+
if (remaining <= 0)
|
|
73
|
+
return null;
|
|
74
|
+
// Cap at maxRemainingRatio of remaining budget
|
|
75
|
+
const ratioCap = Math.floor(remaining * this.dynamicConfig.maxRemainingRatio);
|
|
76
|
+
// Reserve for expected future children
|
|
77
|
+
const unreservedChildren = Math.max(0, this.expectedChildren - this.spawnedCount - 1);
|
|
78
|
+
const reserveForFuture = unreservedChildren * this.dynamicConfig.minPerExpectedChild;
|
|
79
|
+
const afterReserve = Math.max(0, remaining - reserveForFuture);
|
|
80
|
+
// Apply priority multiplier
|
|
81
|
+
const priorityLevel = this.childPriorities.get(childId)?.priority ?? 'normal';
|
|
82
|
+
const multiplier = PRIORITY_MULTIPLIERS[priorityLevel] ?? 1.0;
|
|
83
|
+
const priorityAdjusted = Math.floor(afterReserve * multiplier / Math.max(1, unreservedChildren + 1));
|
|
84
|
+
// Final allocation: min of all caps
|
|
85
|
+
const dynamicMax = Math.min(ratioCap, afterReserve, Math.max(priorityAdjusted, this.dynamicConfig.minPerExpectedChild));
|
|
86
|
+
// Temporarily set max per child for this reservation
|
|
87
|
+
this.setMaxPerChild(dynamicMax);
|
|
88
|
+
const allocation = this.reserve(childId);
|
|
89
|
+
this.resetMaxPerChild();
|
|
90
|
+
if (allocation) {
|
|
91
|
+
this.spawnedCount++;
|
|
92
|
+
}
|
|
93
|
+
return allocation;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Release with optional auto-rebalancing.
|
|
97
|
+
*/
|
|
98
|
+
releaseDynamic(childId) {
|
|
99
|
+
this.release(childId);
|
|
100
|
+
this.completedCount++;
|
|
101
|
+
this.childPriorities.delete(childId);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get enhanced stats including dynamic info.
|
|
105
|
+
*/
|
|
106
|
+
getDynamicStats() {
|
|
107
|
+
const base = this.getStats();
|
|
108
|
+
const pending = this.spawnedCount - this.completedCount;
|
|
109
|
+
return {
|
|
110
|
+
...base,
|
|
111
|
+
expectedChildren: this.expectedChildren,
|
|
112
|
+
spawnedCount: this.spawnedCount,
|
|
113
|
+
completedCount: this.completedCount,
|
|
114
|
+
pendingCount: pending,
|
|
115
|
+
avgPerChild: this.spawnedCount > 0
|
|
116
|
+
? Math.floor(base.tokensUsed / this.spawnedCount)
|
|
117
|
+
: 0,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// ===========================================================================
|
|
121
|
+
// INTERNAL
|
|
122
|
+
// ===========================================================================
|
|
123
|
+
updateMaxPerChild() {
|
|
124
|
+
if (this.expectedChildren <= 0)
|
|
125
|
+
return;
|
|
126
|
+
const stats = this.getStats();
|
|
127
|
+
const remaining = stats.tokensRemaining;
|
|
128
|
+
const unreserved = Math.max(1, this.expectedChildren - this.spawnedCount);
|
|
129
|
+
// Fair share: remaining / unreserved children, capped by ratio
|
|
130
|
+
const fairShare = Math.floor(remaining / unreserved);
|
|
131
|
+
const ratioCap = Math.floor(remaining * this.dynamicConfig.maxRemainingRatio);
|
|
132
|
+
this.setMaxPerChild(Math.min(fairShare, ratioCap));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Create a dynamic budget pool from a parent's budget.
|
|
137
|
+
*/
|
|
138
|
+
export function createDynamicBudgetPool(parentBudgetTokens, parentReserveRatio = 0.25, config) {
|
|
139
|
+
const parentReserve = Math.floor(parentBudgetTokens * parentReserveRatio);
|
|
140
|
+
const poolTokens = parentBudgetTokens - parentReserve;
|
|
141
|
+
return new DynamicBudgetPool({
|
|
142
|
+
totalTokens: poolTokens,
|
|
143
|
+
maxPerChild: Math.min(config?.maxPerChild ?? 100000, poolTokens),
|
|
144
|
+
totalCost: 0.50,
|
|
145
|
+
maxCostPerChild: 0.25,
|
|
146
|
+
maxRemainingRatio: config?.maxRemainingRatio ?? 0.6,
|
|
147
|
+
minPerExpectedChild: config?.minPerExpectedChild ?? 10000,
|
|
148
|
+
autoRebalance: config?.autoRebalance ?? true,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=dynamic-budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-budget.js","sourceRoot":"","sources":["../../../src/integrations/dynamic-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,24 @@
|
|
|
8
8
|
* - Progress detection (stuck vs productive)
|
|
9
9
|
* - Adaptive limits with extension requests
|
|
10
10
|
*/
|
|
11
|
+
/**
|
|
12
|
+
* Configurable economics thresholds for tuning doom loop and exploration detection.
|
|
13
|
+
* Passed via ExecutionBudget.tuning; defaults are used when omitted.
|
|
14
|
+
*/
|
|
15
|
+
export interface EconomicsTuning {
|
|
16
|
+
/** Threshold for exact doom loop detection (default: 3) */
|
|
17
|
+
doomLoopThreshold?: number;
|
|
18
|
+
/** Threshold for fuzzy doom loop detection (default: doomLoopThreshold + 1) */
|
|
19
|
+
doomLoopFuzzyThreshold?: number;
|
|
20
|
+
/** Unique files read before exploration saturation warning (default: 10) */
|
|
21
|
+
explorationFileThreshold?: number;
|
|
22
|
+
/** Iterations in exploration with diminishing returns before warning (default: 5) */
|
|
23
|
+
explorationIterThreshold?: number;
|
|
24
|
+
/** Iterations with zero tool calls before forceTextOnly (default: 5) */
|
|
25
|
+
zeroProgressThreshold?: number;
|
|
26
|
+
/** Iteration checkpoint for adaptive budget reduction (default: 5) */
|
|
27
|
+
progressCheckpoint?: number;
|
|
28
|
+
}
|
|
11
29
|
/**
|
|
12
30
|
* Execution budget configuration.
|
|
13
31
|
*/
|
|
@@ -20,6 +38,8 @@ export interface ExecutionBudget {
|
|
|
20
38
|
softDurationLimit: number;
|
|
21
39
|
targetIterations: number;
|
|
22
40
|
maxIterations: number;
|
|
41
|
+
/** Configurable thresholds for economics behavior tuning */
|
|
42
|
+
tuning?: EconomicsTuning;
|
|
23
43
|
}
|
|
24
44
|
/**
|
|
25
45
|
* Current execution usage.
|
|
@@ -62,6 +82,8 @@ export interface LoopDetectionState {
|
|
|
62
82
|
consecutiveCount: number;
|
|
63
83
|
/** Threshold for doom loop detection (default: 3) */
|
|
64
84
|
threshold: number;
|
|
85
|
+
/** Threshold for fuzzy doom loop detection (default: threshold + 1) */
|
|
86
|
+
fuzzyThreshold: number;
|
|
65
87
|
/** Timestamp of last doom loop warning */
|
|
66
88
|
lastWarningTime: number;
|
|
67
89
|
}
|
|
@@ -87,6 +109,26 @@ export interface PhaseState {
|
|
|
87
109
|
iterationsInPhase: number;
|
|
88
110
|
/** Files read in recent iterations (for diminishing returns) */
|
|
89
111
|
recentNewFiles: number;
|
|
112
|
+
/** Whether the last test passed */
|
|
113
|
+
lastTestPassed: boolean | null;
|
|
114
|
+
/** Consecutive test failures count */
|
|
115
|
+
consecutiveTestFailures: number;
|
|
116
|
+
/** Whether agent is in a test-fix cycle */
|
|
117
|
+
inTestFixCycle: boolean;
|
|
118
|
+
/** Consecutive bash command failures (any command, not just tests) */
|
|
119
|
+
consecutiveBashFailures: number;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Phase-aware budget allocation config.
|
|
123
|
+
* Prevents spending too long in exploration and reserves time for verification.
|
|
124
|
+
*/
|
|
125
|
+
export interface PhaseBudgetConfig {
|
|
126
|
+
/** Max percent of iterations for exploration (default: 30%) */
|
|
127
|
+
maxExplorationPercent: number;
|
|
128
|
+
/** Percent of iterations reserved for verification (default: 20%) */
|
|
129
|
+
reservedVerificationPercent: number;
|
|
130
|
+
/** Whether phase budget enforcement is enabled */
|
|
131
|
+
enabled: boolean;
|
|
90
132
|
}
|
|
91
133
|
/**
|
|
92
134
|
* Budget check result.
|
|
@@ -163,6 +205,28 @@ export type EconomicsEventListener = (event: EconomicsEvent) => void;
|
|
|
163
205
|
* Forces a structured JSON summary so the parent agent can make intelligent follow-up decisions.
|
|
164
206
|
*/
|
|
165
207
|
export declare const TIMEOUT_WRAPUP_PROMPT = "[System] You are about to be stopped due to timeout. You MUST respond with a structured summary NOW.\n\nRespond with ONLY this JSON (no tool calls):\n{\n \"findings\": [\"what you discovered or accomplished\"],\n \"actionsTaken\": [\"files read, modifications made, commands run\"],\n \"failures\": [\"what failed or was blocked\"],\n \"remainingWork\": [\"what you didn't finish\"],\n \"suggestedNextSteps\": [\"what the parent agent should do next\"]\n}";
|
|
208
|
+
/**
|
|
209
|
+
* Extract success and output from a bash tool result.
|
|
210
|
+
* In production, bash results are objects `{ success, output, metadata }`.
|
|
211
|
+
* Tests may pass strings directly. This normalizes both.
|
|
212
|
+
*/
|
|
213
|
+
export declare function extractBashResult(result: unknown): {
|
|
214
|
+
success: boolean;
|
|
215
|
+
output: string;
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Extract the file target from a simple bash file-read command.
|
|
219
|
+
* Returns null for complex commands (pipes, redirects, non-file-read commands).
|
|
220
|
+
* Used to normalize doom loop fingerprints across cat/head/tail/wc targeting the same file.
|
|
221
|
+
*/
|
|
222
|
+
export declare function extractBashFileTarget(command: string): string | null;
|
|
223
|
+
/**
|
|
224
|
+
* Compute a structural fingerprint for a tool call.
|
|
225
|
+
* Extracts only the primary argument (path, command, pattern, query) and ignores
|
|
226
|
+
* secondary arguments (encoding, timeout, flags). This catches near-identical calls
|
|
227
|
+
* that differ only in optional parameters.
|
|
228
|
+
*/
|
|
229
|
+
export declare function computeToolFingerprint(toolName: string, argsStr: string): string;
|
|
166
230
|
/**
|
|
167
231
|
* ExecutionEconomicsManager handles budget tracking and progress detection.
|
|
168
232
|
*/
|
|
@@ -172,6 +236,7 @@ export declare class ExecutionEconomicsManager {
|
|
|
172
236
|
private progress;
|
|
173
237
|
private loopState;
|
|
174
238
|
private phaseState;
|
|
239
|
+
private phaseBudget;
|
|
175
240
|
private startTime;
|
|
176
241
|
private pausedDuration;
|
|
177
242
|
private pauseStart;
|
|
@@ -192,6 +257,11 @@ export declare class ExecutionEconomicsManager {
|
|
|
192
257
|
* Get the effective duration accounting for paused time.
|
|
193
258
|
*/
|
|
194
259
|
private getEffectiveDuration;
|
|
260
|
+
/**
|
|
261
|
+
* Configure phase-aware budget allocation.
|
|
262
|
+
* Only active when enabled=true (eval mode). TUI mode leaves it off.
|
|
263
|
+
*/
|
|
264
|
+
setPhaseBudget(config: PhaseBudgetConfig): void;
|
|
195
265
|
/**
|
|
196
266
|
* Set the extension request handler.
|
|
197
267
|
*/
|
|
@@ -210,7 +280,9 @@ export declare class ExecutionEconomicsManager {
|
|
|
210
280
|
recordToolCall(toolName: string, args: Record<string, unknown>, _result?: unknown): void;
|
|
211
281
|
/**
|
|
212
282
|
* Update doom loop detection state.
|
|
213
|
-
*
|
|
283
|
+
* Uses two-tier detection:
|
|
284
|
+
* 1. Exact match: same tool+args string (threshold: 3)
|
|
285
|
+
* 2. Fuzzy match: same tool + same primary args, ignoring optional params (threshold: 4)
|
|
214
286
|
*/
|
|
215
287
|
private updateDoomLoopState;
|
|
216
288
|
/**
|
|
@@ -268,6 +340,10 @@ export declare class ExecutionEconomicsManager {
|
|
|
268
340
|
isStuck: boolean;
|
|
269
341
|
stuckCount: number;
|
|
270
342
|
};
|
|
343
|
+
/**
|
|
344
|
+
* Get actual file paths modified during this session.
|
|
345
|
+
*/
|
|
346
|
+
getModifiedFilePaths(): string[];
|
|
271
347
|
/**
|
|
272
348
|
* Get doom loop detection state.
|
|
273
349
|
*/
|
|
@@ -283,6 +359,10 @@ export declare class ExecutionEconomicsManager {
|
|
|
283
359
|
testsRun: number;
|
|
284
360
|
shouldTransition: boolean;
|
|
285
361
|
iterationsInPhase: number;
|
|
362
|
+
lastTestPassed: boolean | null;
|
|
363
|
+
consecutiveTestFailures: number;
|
|
364
|
+
inTestFixCycle: boolean;
|
|
365
|
+
consecutiveBashFailures: number;
|
|
286
366
|
};
|
|
287
367
|
/**
|
|
288
368
|
* Subscribe to events.
|
|
@@ -293,6 +373,11 @@ export declare class ExecutionEconomicsManager {
|
|
|
293
373
|
*/
|
|
294
374
|
reset(): void;
|
|
295
375
|
private emit;
|
|
376
|
+
/**
|
|
377
|
+
* Parse test outcome from bash command output.
|
|
378
|
+
* Updates phaseState test tracking fields.
|
|
379
|
+
*/
|
|
380
|
+
private parseTestOutcome;
|
|
296
381
|
private isStuck;
|
|
297
382
|
}
|
|
298
383
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"economics.d.ts","sourceRoot":"","sources":["../../../src/integrations/economics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IAGpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"economics.d.ts","sourceRoot":"","sources":["../../../src/integrations/economics.ts"],"names":[],"mappings":"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"}
|