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.
Files changed (219) hide show
  1. package/CHANGELOG.md +191 -1
  2. package/README.md +7 -0
  3. package/dist/src/adapters.d.ts +6 -1
  4. package/dist/src/adapters.d.ts.map +1 -1
  5. package/dist/src/adapters.js +8 -1
  6. package/dist/src/adapters.js.map +1 -1
  7. package/dist/src/agent.d.ts +41 -4
  8. package/dist/src/agent.d.ts.map +1 -1
  9. package/dist/src/agent.js +846 -75
  10. package/dist/src/agent.js.map +1 -1
  11. package/dist/src/cli.d.ts.map +1 -1
  12. package/dist/src/cli.js +23 -2
  13. package/dist/src/cli.js.map +1 -1
  14. package/dist/src/core/protocol/types.d.ts +8 -8
  15. package/dist/src/defaults.d.ts +7 -2
  16. package/dist/src/defaults.d.ts.map +1 -1
  17. package/dist/src/defaults.js +38 -2
  18. package/dist/src/defaults.js.map +1 -1
  19. package/dist/src/integrations/agent-registry.d.ts +13 -0
  20. package/dist/src/integrations/agent-registry.d.ts.map +1 -1
  21. package/dist/src/integrations/agent-registry.js.map +1 -1
  22. package/dist/src/integrations/async-subagent.d.ts +135 -0
  23. package/dist/src/integrations/async-subagent.d.ts.map +1 -0
  24. package/dist/src/integrations/async-subagent.js +213 -0
  25. package/dist/src/integrations/async-subagent.js.map +1 -0
  26. package/dist/src/integrations/auto-checkpoint.d.ts +98 -0
  27. package/dist/src/integrations/auto-checkpoint.d.ts.map +1 -0
  28. package/dist/src/integrations/auto-checkpoint.js +252 -0
  29. package/dist/src/integrations/auto-checkpoint.js.map +1 -0
  30. package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
  31. package/dist/src/integrations/auto-compaction.js +5 -1
  32. package/dist/src/integrations/auto-compaction.js.map +1 -1
  33. package/dist/src/integrations/bash-policy.d.ts +33 -0
  34. package/dist/src/integrations/bash-policy.d.ts.map +1 -0
  35. package/dist/src/integrations/bash-policy.js +142 -0
  36. package/dist/src/integrations/bash-policy.js.map +1 -0
  37. package/dist/src/integrations/codebase-context.d.ts +5 -0
  38. package/dist/src/integrations/codebase-context.d.ts.map +1 -1
  39. package/dist/src/integrations/codebase-context.js +33 -0
  40. package/dist/src/integrations/codebase-context.js.map +1 -1
  41. package/dist/src/integrations/complexity-classifier.d.ts +86 -0
  42. package/dist/src/integrations/complexity-classifier.d.ts.map +1 -0
  43. package/dist/src/integrations/complexity-classifier.js +233 -0
  44. package/dist/src/integrations/complexity-classifier.js.map +1 -0
  45. package/dist/src/integrations/delegation-protocol.d.ts +86 -0
  46. package/dist/src/integrations/delegation-protocol.d.ts.map +1 -0
  47. package/dist/src/integrations/delegation-protocol.js +127 -0
  48. package/dist/src/integrations/delegation-protocol.js.map +1 -0
  49. package/dist/src/integrations/dynamic-budget.d.ts +81 -0
  50. package/dist/src/integrations/dynamic-budget.d.ts.map +1 -0
  51. package/dist/src/integrations/dynamic-budget.js +151 -0
  52. package/dist/src/integrations/dynamic-budget.js.map +1 -0
  53. package/dist/src/integrations/economics.d.ts +86 -1
  54. package/dist/src/integrations/economics.d.ts.map +1 -1
  55. package/dist/src/integrations/economics.js +306 -11
  56. package/dist/src/integrations/economics.js.map +1 -1
  57. package/dist/src/integrations/environment-facts.d.ts +52 -0
  58. package/dist/src/integrations/environment-facts.d.ts.map +1 -0
  59. package/dist/src/integrations/environment-facts.js +84 -0
  60. package/dist/src/integrations/environment-facts.js.map +1 -0
  61. package/dist/src/integrations/hierarchical-config.d.ts.map +1 -1
  62. package/dist/src/integrations/hierarchical-config.js +17 -0
  63. package/dist/src/integrations/hierarchical-config.js.map +1 -1
  64. package/dist/src/integrations/index.d.ts +19 -2
  65. package/dist/src/integrations/index.d.ts.map +1 -1
  66. package/dist/src/integrations/index.js +34 -2
  67. package/dist/src/integrations/index.js.map +1 -1
  68. package/dist/src/integrations/injection-budget.d.ts +71 -0
  69. package/dist/src/integrations/injection-budget.d.ts.map +1 -0
  70. package/dist/src/integrations/injection-budget.js +136 -0
  71. package/dist/src/integrations/injection-budget.js.map +1 -0
  72. package/dist/src/integrations/mcp-client.d.ts.map +1 -1
  73. package/dist/src/integrations/mcp-client.js +14 -0
  74. package/dist/src/integrations/mcp-client.js.map +1 -1
  75. package/dist/src/integrations/mcp-custom-tools.d.ts +102 -0
  76. package/dist/src/integrations/mcp-custom-tools.d.ts.map +1 -0
  77. package/dist/src/integrations/mcp-custom-tools.js +232 -0
  78. package/dist/src/integrations/mcp-custom-tools.js.map +1 -0
  79. package/dist/src/integrations/mcp-tool-validator.d.ts +60 -0
  80. package/dist/src/integrations/mcp-tool-validator.d.ts.map +1 -0
  81. package/dist/src/integrations/mcp-tool-validator.js +141 -0
  82. package/dist/src/integrations/mcp-tool-validator.js.map +1 -0
  83. package/dist/src/integrations/policy-engine.d.ts +55 -0
  84. package/dist/src/integrations/policy-engine.d.ts.map +1 -0
  85. package/dist/src/integrations/policy-engine.js +247 -0
  86. package/dist/src/integrations/policy-engine.js.map +1 -0
  87. package/dist/src/integrations/safety.d.ts +5 -4
  88. package/dist/src/integrations/safety.d.ts.map +1 -1
  89. package/dist/src/integrations/safety.js +32 -7
  90. package/dist/src/integrations/safety.js.map +1 -1
  91. package/dist/src/integrations/sandbox/basic.d.ts +7 -0
  92. package/dist/src/integrations/sandbox/basic.d.ts.map +1 -1
  93. package/dist/src/integrations/sandbox/basic.js +27 -2
  94. package/dist/src/integrations/sandbox/basic.js.map +1 -1
  95. package/dist/src/integrations/sandbox/index.d.ts +6 -0
  96. package/dist/src/integrations/sandbox/index.d.ts.map +1 -1
  97. package/dist/src/integrations/sandbox/index.js +3 -0
  98. package/dist/src/integrations/sandbox/index.js.map +1 -1
  99. package/dist/src/integrations/sandbox/landlock.d.ts.map +1 -1
  100. package/dist/src/integrations/sandbox/landlock.js +3 -0
  101. package/dist/src/integrations/sandbox/landlock.js.map +1 -1
  102. package/dist/src/integrations/self-improvement.d.ts +90 -0
  103. package/dist/src/integrations/self-improvement.d.ts.map +1 -0
  104. package/dist/src/integrations/self-improvement.js +229 -0
  105. package/dist/src/integrations/self-improvement.js.map +1 -0
  106. package/dist/src/integrations/smart-decomposer.d.ts +22 -1
  107. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -1
  108. package/dist/src/integrations/smart-decomposer.js +127 -28
  109. package/dist/src/integrations/smart-decomposer.js.map +1 -1
  110. package/dist/src/integrations/subagent-output-store.d.ts +91 -0
  111. package/dist/src/integrations/subagent-output-store.d.ts.map +1 -0
  112. package/dist/src/integrations/subagent-output-store.js +257 -0
  113. package/dist/src/integrations/subagent-output-store.js.map +1 -0
  114. package/dist/src/integrations/swarm/index.d.ts +2 -2
  115. package/dist/src/integrations/swarm/index.d.ts.map +1 -1
  116. package/dist/src/integrations/swarm/index.js +1 -1
  117. package/dist/src/integrations/swarm/index.js.map +1 -1
  118. package/dist/src/integrations/swarm/model-selector.d.ts +16 -0
  119. package/dist/src/integrations/swarm/model-selector.d.ts.map +1 -1
  120. package/dist/src/integrations/swarm/model-selector.js +123 -10
  121. package/dist/src/integrations/swarm/model-selector.js.map +1 -1
  122. package/dist/src/integrations/swarm/swarm-budget.d.ts +4 -0
  123. package/dist/src/integrations/swarm/swarm-budget.d.ts.map +1 -1
  124. package/dist/src/integrations/swarm/swarm-budget.js +6 -0
  125. package/dist/src/integrations/swarm/swarm-budget.js.map +1 -1
  126. package/dist/src/integrations/swarm/swarm-config-loader.d.ts +10 -1
  127. package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -1
  128. package/dist/src/integrations/swarm/swarm-config-loader.js +226 -13
  129. package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -1
  130. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts +12 -1
  131. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts.map +1 -1
  132. package/dist/src/integrations/swarm/swarm-event-bridge.js +178 -9
  133. package/dist/src/integrations/swarm/swarm-event-bridge.js.map +1 -1
  134. package/dist/src/integrations/swarm/swarm-events.d.ts +66 -1
  135. package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -1
  136. package/dist/src/integrations/swarm/swarm-events.js +26 -5
  137. package/dist/src/integrations/swarm/swarm-events.js.map +1 -1
  138. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +127 -0
  139. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -1
  140. package/dist/src/integrations/swarm/swarm-orchestrator.js +1842 -47
  141. package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -1
  142. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts +91 -3
  143. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts.map +1 -1
  144. package/dist/src/integrations/swarm/swarm-quality-gate.js +395 -19
  145. package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -1
  146. package/dist/src/integrations/swarm/task-queue.d.ts +55 -1
  147. package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -1
  148. package/dist/src/integrations/swarm/task-queue.js +389 -16
  149. package/dist/src/integrations/swarm/task-queue.js.map +1 -1
  150. package/dist/src/integrations/swarm/types.d.ts +247 -11
  151. package/dist/src/integrations/swarm/types.d.ts.map +1 -1
  152. package/dist/src/integrations/swarm/types.js +67 -9
  153. package/dist/src/integrations/swarm/types.js.map +1 -1
  154. package/dist/src/integrations/swarm/worker-pool.d.ts +18 -5
  155. package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -1
  156. package/dist/src/integrations/swarm/worker-pool.js +236 -34
  157. package/dist/src/integrations/swarm/worker-pool.js.map +1 -1
  158. package/dist/src/integrations/thinking-strategy.d.ts +52 -0
  159. package/dist/src/integrations/thinking-strategy.d.ts.map +1 -0
  160. package/dist/src/integrations/thinking-strategy.js +129 -0
  161. package/dist/src/integrations/thinking-strategy.js.map +1 -0
  162. package/dist/src/integrations/tool-recommendation.d.ts +61 -0
  163. package/dist/src/integrations/tool-recommendation.d.ts.map +1 -0
  164. package/dist/src/integrations/tool-recommendation.js +268 -0
  165. package/dist/src/integrations/tool-recommendation.js.map +1 -0
  166. package/dist/src/integrations/verification-gate.d.ts +80 -0
  167. package/dist/src/integrations/verification-gate.d.ts.map +1 -0
  168. package/dist/src/integrations/verification-gate.js +146 -0
  169. package/dist/src/integrations/verification-gate.js.map +1 -0
  170. package/dist/src/integrations/work-log.d.ts +87 -0
  171. package/dist/src/integrations/work-log.d.ts.map +1 -0
  172. package/dist/src/integrations/work-log.js +275 -0
  173. package/dist/src/integrations/work-log.js.map +1 -0
  174. package/dist/src/main.js +31 -5
  175. package/dist/src/main.js.map +1 -1
  176. package/dist/src/modes/repl.d.ts.map +1 -1
  177. package/dist/src/modes/repl.js +10 -4
  178. package/dist/src/modes/repl.js.map +1 -1
  179. package/dist/src/modes/tui.d.ts.map +1 -1
  180. package/dist/src/modes/tui.js +5 -0
  181. package/dist/src/modes/tui.js.map +1 -1
  182. package/dist/src/modes.d.ts +6 -0
  183. package/dist/src/modes.d.ts.map +1 -1
  184. package/dist/src/modes.js +69 -21
  185. package/dist/src/modes.js.map +1 -1
  186. package/dist/src/tools/agent.d.ts.map +1 -1
  187. package/dist/src/tools/agent.js +11 -2
  188. package/dist/src/tools/agent.js.map +1 -1
  189. package/dist/src/tools/bash.d.ts +9 -3
  190. package/dist/src/tools/bash.d.ts.map +1 -1
  191. package/dist/src/tools/bash.js +12 -0
  192. package/dist/src/tools/bash.js.map +1 -1
  193. package/dist/src/tools/coercion.d.ts +6 -0
  194. package/dist/src/tools/coercion.d.ts.map +1 -1
  195. package/dist/src/tools/coercion.js +13 -0
  196. package/dist/src/tools/coercion.js.map +1 -1
  197. package/dist/src/tools/file.d.ts +2 -2
  198. package/dist/src/tools/file.js +2 -2
  199. package/dist/src/tools/file.js.map +1 -1
  200. package/dist/src/tools/permission.d.ts.map +1 -1
  201. package/dist/src/tools/permission.js +4 -111
  202. package/dist/src/tools/permission.js.map +1 -1
  203. package/dist/src/tools/standard.d.ts +17 -1
  204. package/dist/src/tools/standard.d.ts.map +1 -1
  205. package/dist/src/tools/standard.js +64 -11
  206. package/dist/src/tools/standard.js.map +1 -1
  207. package/dist/src/tracing/trace-collector.d.ts +167 -0
  208. package/dist/src/tracing/trace-collector.d.ts.map +1 -1
  209. package/dist/src/tracing/trace-collector.js +137 -0
  210. package/dist/src/tracing/trace-collector.js.map +1 -1
  211. package/dist/src/tracing/types.d.ts +105 -1
  212. package/dist/src/tracing/types.d.ts.map +1 -1
  213. package/dist/src/tracing/types.js.map +1 -1
  214. package/dist/src/tui/app.d.ts.map +1 -1
  215. package/dist/src/tui/app.js +34 -5
  216. package/dist/src/tui/app.js.map +1 -1
  217. package/dist/src/types.d.ts +89 -0
  218. package/dist/src/types.d.ts.map +1 -1
  219. package/package.json +6 -2
@@ -51,6 +51,101 @@ const EXPLORATION_NUDGE_PROMPT = (filesRead, iterations) => `[System] You've rea
51
51
  - Make the code changes now
52
52
  - Run tests to verify
53
53
  If you're still gathering context, briefly explain what you're looking for.`;
54
+ /**
55
+ * Test-fix rethink prompt - injected after consecutive test failures.
56
+ */
57
+ const TEST_FIX_RETHINK_PROMPT = (failures) => `[System] You've had ${failures} consecutive test failures. Step back and rethink:
58
+ 1. Re-read the error messages carefully
59
+ 2. Consider whether your approach is fundamentally wrong
60
+ 3. Try a DIFFERENT fix strategy instead of iterating on the same one
61
+ Do not retry the same fix. Try a new approach.`;
62
+ /**
63
+ * Phase budget exploration exceeded prompt.
64
+ */
65
+ const BASH_FAILURE_CASCADE_PROMPT = (failures) => `[System] ${failures} consecutive bash commands have failed. STOP and explain:
66
+ 1. What are you trying to accomplish?
67
+ 2. Why are the commands failing?
68
+ 3. What is your alternative approach?
69
+ Do not run another bash command until you've explained the issue.`;
70
+ const EXPLORATION_BUDGET_EXCEEDED_PROMPT = (pct) => `[System] You've spent ${pct}% of your iterations in exploration. Start making edits NOW.
71
+ Do not read more files. Use what you know to make the fix.`;
72
+ /**
73
+ * Phase budget verification reserve prompt.
74
+ */
75
+ const VERIFICATION_RESERVE_PROMPT = `[System] You are running low on iterations. Run your tests NOW to verify your changes.
76
+ Do not make more edits until you've confirmed whether the current fix works.`;
77
+ /**
78
+ * Extract success and output from a bash tool result.
79
+ * In production, bash results are objects `{ success, output, metadata }`.
80
+ * Tests may pass strings directly. This normalizes both.
81
+ */
82
+ export function extractBashResult(result) {
83
+ if (result && typeof result === 'object') {
84
+ const obj = result;
85
+ return {
86
+ success: obj.success !== false,
87
+ output: typeof obj.output === 'string' ? obj.output : '',
88
+ };
89
+ }
90
+ if (typeof result === 'string') {
91
+ return { success: true, output: result };
92
+ }
93
+ return { success: true, output: '' };
94
+ }
95
+ /**
96
+ * Regex for common bash file-read commands (simple, no pipes/redirects).
97
+ * Captures the file path for normalized doom loop fingerprinting.
98
+ */
99
+ const BASH_FILE_READ_RE = /^\s*(cat|head|tail|wc|less|more|file|stat|md5sum|sha256sum)\b(?:\s+-[^\s]+)*\s+((?:\/|\.\/|\.\.\/)[\w.\/\-@]+|[\w.\-@][\w.\/\-@]*)\s*$/;
100
+ /**
101
+ * Extract the file target from a simple bash file-read command.
102
+ * Returns null for complex commands (pipes, redirects, non-file-read commands).
103
+ * Used to normalize doom loop fingerprints across cat/head/tail/wc targeting the same file.
104
+ */
105
+ export function extractBashFileTarget(command) {
106
+ if (/[|;&<>]/.test(command))
107
+ return null; // pipes/redirects = complex, skip
108
+ const match = command.match(BASH_FILE_READ_RE);
109
+ return match ? match[2] : null;
110
+ }
111
+ /**
112
+ * Primary argument keys that identify the *target* of a tool call.
113
+ * Used for fuzzy doom loop detection — ignoring secondary/optional args.
114
+ */
115
+ const PRIMARY_KEYS = ['path', 'file_path', 'command', 'pattern', 'query', 'url', 'content', 'filename'];
116
+ /**
117
+ * Compute a structural fingerprint for a tool call.
118
+ * Extracts only the primary argument (path, command, pattern, query) and ignores
119
+ * secondary arguments (encoding, timeout, flags). This catches near-identical calls
120
+ * that differ only in optional parameters.
121
+ */
122
+ export function computeToolFingerprint(toolName, argsStr) {
123
+ try {
124
+ const args = JSON.parse(argsStr || '{}');
125
+ // W1: Normalize bash file-read commands so cat/head/tail/wc targeting the same file
126
+ // produce the same fingerprint, triggering doom loop detection.
127
+ if (toolName === 'bash' && typeof args.command === 'string') {
128
+ const fileTarget = extractBashFileTarget(args.command);
129
+ if (fileTarget)
130
+ return `bash:file_read:${fileTarget}`;
131
+ }
132
+ const primaryArgs = {};
133
+ for (const key of PRIMARY_KEYS) {
134
+ if (key in args) {
135
+ primaryArgs[key] = args[key];
136
+ }
137
+ }
138
+ // If no primary keys found, fall back to full args
139
+ if (Object.keys(primaryArgs).length === 0) {
140
+ return `${toolName}:${stableStringify(args)}`;
141
+ }
142
+ return `${toolName}:${stableStringify(primaryArgs)}`;
143
+ }
144
+ catch {
145
+ // If args can't be parsed, use raw string
146
+ return `${toolName}:${argsStr}`;
147
+ }
148
+ }
54
149
  /**
55
150
  * ExecutionEconomicsManager handles budget tracking and progress detection.
56
151
  */
@@ -60,12 +155,14 @@ export class ExecutionEconomicsManager {
60
155
  progress;
61
156
  loopState;
62
157
  phaseState;
158
+ phaseBudget = null;
63
159
  startTime;
64
160
  pausedDuration = 0;
65
161
  pauseStart = null;
66
162
  listeners = [];
67
163
  extensionHandler;
68
164
  constructor(budget) {
165
+ const tuning = budget?.tuning;
69
166
  this.budget = {
70
167
  // Hard limits
71
168
  maxTokens: budget?.maxTokens ?? 200000,
@@ -78,6 +175,8 @@ export class ExecutionEconomicsManager {
78
175
  // Iteration guidance
79
176
  targetIterations: budget?.targetIterations ?? 20,
80
177
  maxIterations: budget?.maxIterations ?? 100,
178
+ // Tuning
179
+ tuning,
81
180
  };
82
181
  this.usage = {
83
182
  tokens: 0,
@@ -97,12 +196,13 @@ export class ExecutionEconomicsManager {
97
196
  lastMeaningfulProgress: Date.now(),
98
197
  stuckCount: 0,
99
198
  };
100
- // Initialize doom loop detection state
199
+ // Initialize doom loop detection state (thresholds configurable via tuning)
101
200
  this.loopState = {
102
201
  doomLoopDetected: false,
103
202
  lastTool: null,
104
203
  consecutiveCount: 0,
105
- threshold: 3,
204
+ threshold: tuning?.doomLoopThreshold ?? 3,
205
+ fuzzyThreshold: tuning?.doomLoopFuzzyThreshold ?? (tuning?.doomLoopThreshold ? tuning.doomLoopThreshold + 1 : 4),
106
206
  lastWarningTime: 0,
107
207
  };
108
208
  // Initialize phase tracking state
@@ -116,6 +216,10 @@ export class ExecutionEconomicsManager {
116
216
  shouldTransition: false,
117
217
  iterationsInPhase: 0,
118
218
  recentNewFiles: 0,
219
+ lastTestPassed: null,
220
+ consecutiveTestFailures: 0,
221
+ inTestFixCycle: false,
222
+ consecutiveBashFailures: 0,
119
223
  };
120
224
  this.startTime = Date.now();
121
225
  }
@@ -145,6 +249,13 @@ export class ExecutionEconomicsManager {
145
249
  const currentPaused = this.pauseStart !== null ? Date.now() - this.pauseStart : 0;
146
250
  return Date.now() - this.startTime - this.pausedDuration - currentPaused;
147
251
  }
252
+ /**
253
+ * Configure phase-aware budget allocation.
254
+ * Only active when enabled=true (eval mode). TUI mode leaves it off.
255
+ */
256
+ setPhaseBudget(config) {
257
+ this.phaseBudget = config;
258
+ }
148
259
  /**
149
260
  * Set the extension request handler.
150
261
  */
@@ -232,13 +343,28 @@ export class ExecutionEconomicsManager {
232
343
  this.progress.commandsRun.push(command);
233
344
  this.progress.lastMeaningfulProgress = now;
234
345
  this.progress.stuckCount = 0;
235
- // Detect test runs
346
+ // Extract result from bash tool output (object or string)
347
+ const bashResult = extractBashResult(_result);
348
+ // Track consecutive bash failures (any bash command, not just tests)
349
+ if (_result !== undefined) {
350
+ if (!bashResult.success) {
351
+ this.phaseState.consecutiveBashFailures++;
352
+ }
353
+ else {
354
+ this.phaseState.consecutiveBashFailures = 0;
355
+ }
356
+ }
357
+ // Detect test runs and track outcomes
236
358
  if (command.includes('test') || command.includes('pytest') || command.includes('npm test') || command.includes('jest')) {
237
359
  this.phaseState.testsRun++;
238
360
  // Transition to verifying phase when tests are run after edits
239
361
  if (this.phaseState.phase === 'acting' && this.phaseState.filesModified.size > 0) {
240
362
  this.transitionPhase('verifying', 'Tests run after edits');
241
363
  }
364
+ // Fix: extract output from result object, not treat as string
365
+ if (bashResult.output) {
366
+ this.parseTestOutcome(command, bashResult.output);
367
+ }
242
368
  }
243
369
  }
244
370
  // Update exploration saturation check
@@ -258,12 +384,14 @@ export class ExecutionEconomicsManager {
258
384
  }
259
385
  /**
260
386
  * Update doom loop detection state.
261
- * Detects when the same tool+args are called consecutively.
387
+ * Uses two-tier detection:
388
+ * 1. Exact match: same tool+args string (threshold: 3)
389
+ * 2. Fuzzy match: same tool + same primary args, ignoring optional params (threshold: 4)
262
390
  */
263
391
  updateDoomLoopState(toolName, argsStr) {
264
392
  const currentCall = `${toolName}:${argsStr}`;
265
393
  const recentCalls = this.progress.recentToolCalls;
266
- // Count consecutive identical calls from the end
394
+ // === EXACT MATCH: Count consecutive identical calls from the end ===
267
395
  let consecutiveCount = 0;
268
396
  for (let i = recentCalls.length - 1; i >= 0; i--) {
269
397
  const call = recentCalls[i];
@@ -274,6 +402,26 @@ export class ExecutionEconomicsManager {
274
402
  break;
275
403
  }
276
404
  }
405
+ // === FUZZY MATCH: Catches near-identical calls that differ only in optional params ===
406
+ // Only check if exact match didn't already trigger
407
+ if (consecutiveCount < this.loopState.threshold) {
408
+ const currentFingerprint = computeToolFingerprint(toolName, argsStr);
409
+ let fuzzyCount = 0;
410
+ for (let i = recentCalls.length - 1; i >= 0; i--) {
411
+ const call = recentCalls[i];
412
+ const callFingerprint = computeToolFingerprint(call.tool, call.args);
413
+ if (callFingerprint === currentFingerprint) {
414
+ fuzzyCount++;
415
+ }
416
+ else {
417
+ break;
418
+ }
419
+ }
420
+ // Use fuzzy count if it exceeds the fuzzy threshold
421
+ if (fuzzyCount >= this.loopState.fuzzyThreshold) {
422
+ consecutiveCount = Math.max(consecutiveCount, fuzzyCount);
423
+ }
424
+ }
277
425
  this.loopState.consecutiveCount = consecutiveCount;
278
426
  this.loopState.lastTool = toolName;
279
427
  // Detect doom loop when threshold reached
@@ -328,8 +476,9 @@ export class ExecutionEconomicsManager {
328
476
  this.phaseState.shouldTransition = false;
329
477
  return;
330
478
  }
331
- // After reading 10+ unique files without edits, suggest transition
332
- if (uniqueFilesRead.size >= 10 && filesModified.size === 0) {
479
+ // After N+ unique files without edits, suggest transition (configurable, default: 10)
480
+ const fileThreshold = this.budget.tuning?.explorationFileThreshold ?? 10;
481
+ if (uniqueFilesRead.size >= fileThreshold && filesModified.size === 0) {
333
482
  this.phaseState.shouldTransition = true;
334
483
  this.emit({
335
484
  type: 'exploration.saturation',
@@ -338,8 +487,9 @@ export class ExecutionEconomicsManager {
338
487
  });
339
488
  return;
340
489
  }
341
- // After 5+ iterations in exploration with diminishing returns (< 2 new files)
342
- if (iterationsInPhase >= 5 && recentNewFiles < 2 && filesModified.size === 0) {
490
+ // After N+ iterations in exploration with diminishing returns (configurable, default: 5)
491
+ const iterThreshold = this.budget.tuning?.explorationIterThreshold ?? 5;
492
+ if (iterationsInPhase >= iterThreshold && recentNewFiles < 2 && filesModified.size === 0) {
343
493
  this.phaseState.shouldTransition = true;
344
494
  this.emit({
345
495
  type: 'exploration.saturation',
@@ -407,6 +557,36 @@ export class ExecutionEconomicsManager {
407
557
  };
408
558
  }
409
559
  // =========================================================================
560
+ // ZERO PROGRESS DETECTION — early termination for workers making no tool calls (D1)
561
+ // =========================================================================
562
+ const zeroProgressThreshold = this.budget.tuning?.zeroProgressThreshold ?? 5;
563
+ if (this.usage.iterations >= zeroProgressThreshold && this.usage.toolCalls === 0) {
564
+ return {
565
+ canContinue: true,
566
+ reason: `Zero tool calls in ${this.usage.iterations} iterations`,
567
+ budgetType: 'iterations',
568
+ isHardLimit: false,
569
+ isSoftLimit: true,
570
+ percentUsed: (this.usage.iterations / this.budget.maxIterations) * 100,
571
+ suggestedAction: 'stop',
572
+ forceTextOnly: true,
573
+ injectedPrompt: `[System] CRITICAL: You have completed ${this.usage.iterations} iterations without making a single tool call. ` +
574
+ `This means you are NOT doing any work. You MUST use your tools (read_file, write_file, grep, bash, etc.) ` +
575
+ `to accomplish your task. If you cannot use tools, explain what is blocking you and exit. ` +
576
+ `Do NOT continue without tool usage.`,
577
+ };
578
+ }
579
+ // =========================================================================
580
+ // ADAPTIVE ITERATION BUDGET — reduce max iterations if no progress at checkpoint (D4)
581
+ // =========================================================================
582
+ const checkpoint = this.budget.tuning?.progressCheckpoint ?? 5;
583
+ if (this.usage.iterations === checkpoint && this.usage.toolCalls === 0) {
584
+ const reducedMax = checkpoint + 3; // give 3 more iterations with warning
585
+ if (this.budget.maxIterations > reducedMax) {
586
+ this.budget.maxIterations = reducedMax;
587
+ }
588
+ }
589
+ // =========================================================================
410
590
  // DOOM LOOP DETECTION - Strong intervention
411
591
  // =========================================================================
412
592
  if (this.loopState.doomLoopDetected) {
@@ -436,6 +616,75 @@ export class ExecutionEconomicsManager {
436
616
  injectedPrompt: EXPLORATION_NUDGE_PROMPT(this.phaseState.uniqueFilesRead.size, this.phaseState.iterationsInPhase),
437
617
  };
438
618
  }
619
+ // =========================================================================
620
+ // TEST-FIX CYCLE - Nudge to rethink after 3+ consecutive failures
621
+ // =========================================================================
622
+ if (this.phaseState.consecutiveTestFailures >= 3) {
623
+ return {
624
+ canContinue: true,
625
+ reason: `${this.phaseState.consecutiveTestFailures} consecutive test failures`,
626
+ budgetType: 'iterations',
627
+ isHardLimit: false,
628
+ isSoftLimit: true,
629
+ percentUsed: (this.usage.iterations / this.budget.targetIterations) * 100,
630
+ suggestedAction: 'warn',
631
+ injectedPrompt: TEST_FIX_RETHINK_PROMPT(this.phaseState.consecutiveTestFailures),
632
+ };
633
+ }
634
+ // =========================================================================
635
+ // BASH FAILURE CASCADE - Strong intervention after 3+ consecutive failures
636
+ // =========================================================================
637
+ if (this.phaseState.consecutiveBashFailures >= 3) {
638
+ return {
639
+ canContinue: true,
640
+ reason: `${this.phaseState.consecutiveBashFailures} consecutive bash failures`,
641
+ budgetType: 'iterations',
642
+ isHardLimit: false,
643
+ isSoftLimit: true,
644
+ percentUsed: (this.usage.iterations / this.budget.targetIterations) * 100,
645
+ suggestedAction: 'warn',
646
+ injectedPrompt: BASH_FAILURE_CASCADE_PROMPT(this.phaseState.consecutiveBashFailures),
647
+ };
648
+ }
649
+ // =========================================================================
650
+ // PHASE-AWARE BUDGET ALLOCATION (opt-in, used in eval mode)
651
+ // =========================================================================
652
+ if (this.phaseBudget?.enabled) {
653
+ const iterPct = (this.usage.iterations / this.budget.maxIterations) * 100;
654
+ const explorationPct = this.phaseState.phase === 'exploring'
655
+ ? (this.phaseState.iterationsInPhase / this.budget.maxIterations) * 100
656
+ : 0;
657
+ // Too much time in exploration
658
+ if (explorationPct > this.phaseBudget.maxExplorationPercent && this.phaseState.filesModified.size === 0) {
659
+ return {
660
+ canContinue: true,
661
+ reason: `Exploration exceeds ${this.phaseBudget.maxExplorationPercent}% of budget`,
662
+ budgetType: 'iterations',
663
+ isHardLimit: false,
664
+ isSoftLimit: true,
665
+ percentUsed: iterPct,
666
+ suggestedAction: 'warn',
667
+ injectedPrompt: EXPLORATION_BUDGET_EXCEEDED_PROMPT(Math.round(explorationPct)),
668
+ };
669
+ }
670
+ // Only verification-reserve iterations remain
671
+ const remainingPct = 100 - iterPct;
672
+ if (remainingPct <= this.phaseBudget.reservedVerificationPercent
673
+ && this.phaseState.phase !== 'verifying'
674
+ && this.phaseState.filesModified.size > 0
675
+ && this.phaseState.testsRun === 0) {
676
+ return {
677
+ canContinue: true,
678
+ reason: `Only ${Math.round(remainingPct)}% budget remaining, verification needed`,
679
+ budgetType: 'iterations',
680
+ isHardLimit: false,
681
+ isSoftLimit: true,
682
+ percentUsed: iterPct,
683
+ suggestedAction: 'warn',
684
+ injectedPrompt: VERIFICATION_RESERVE_PROMPT,
685
+ };
686
+ }
687
+ }
439
688
  // Check soft limits (warnings)
440
689
  // Two-tier approach: 67-79% = warning, 80%+ = forceTextOnly to prevent overshoot
441
690
  if (this.usage.tokens >= this.budget.softTokenLimit) {
@@ -613,6 +862,12 @@ export class ExecutionEconomicsManager {
613
862
  stuckCount: this.progress.stuckCount,
614
863
  };
615
864
  }
865
+ /**
866
+ * Get actual file paths modified during this session.
867
+ */
868
+ getModifiedFilePaths() {
869
+ return [...this.progress.filesModified];
870
+ }
616
871
  /**
617
872
  * Get doom loop detection state.
618
873
  */
@@ -631,6 +886,10 @@ export class ExecutionEconomicsManager {
631
886
  testsRun: this.phaseState.testsRun,
632
887
  shouldTransition: this.phaseState.shouldTransition,
633
888
  iterationsInPhase: this.phaseState.iterationsInPhase,
889
+ lastTestPassed: this.phaseState.lastTestPassed,
890
+ consecutiveTestFailures: this.phaseState.consecutiveTestFailures,
891
+ inTestFixCycle: this.phaseState.inTestFixCycle,
892
+ consecutiveBashFailures: this.phaseState.consecutiveBashFailures,
634
893
  };
635
894
  }
636
895
  /**
@@ -666,12 +925,14 @@ export class ExecutionEconomicsManager {
666
925
  lastMeaningfulProgress: Date.now(),
667
926
  stuckCount: 0,
668
927
  };
669
- // Reset loop detection state
928
+ // Reset loop detection state (preserve tuning thresholds)
929
+ const tuning = this.budget.tuning;
670
930
  this.loopState = {
671
931
  doomLoopDetected: false,
672
932
  lastTool: null,
673
933
  consecutiveCount: 0,
674
- threshold: 3,
934
+ threshold: tuning?.doomLoopThreshold ?? 3,
935
+ fuzzyThreshold: tuning?.doomLoopFuzzyThreshold ?? (tuning?.doomLoopThreshold ? tuning.doomLoopThreshold + 1 : 4),
675
936
  lastWarningTime: 0,
676
937
  };
677
938
  // Reset phase tracking state
@@ -685,6 +946,10 @@ export class ExecutionEconomicsManager {
685
946
  shouldTransition: false,
686
947
  iterationsInPhase: 0,
687
948
  recentNewFiles: 0,
949
+ lastTestPassed: null,
950
+ consecutiveTestFailures: 0,
951
+ inTestFixCycle: false,
952
+ consecutiveBashFailures: 0,
688
953
  };
689
954
  this.startTime = Date.now();
690
955
  this.pausedDuration = 0;
@@ -703,6 +968,36 @@ export class ExecutionEconomicsManager {
703
968
  }
704
969
  }
705
970
  }
971
+ /**
972
+ * Parse test outcome from bash command output.
973
+ * Updates phaseState test tracking fields.
974
+ */
975
+ parseTestOutcome(_command, output) {
976
+ if (!output)
977
+ return;
978
+ // Detect pass/fail from pytest-style output
979
+ const hasPassed = /(\d+)\s+passed/.test(output) || output.includes('PASSED');
980
+ const hasFailed = /(\d+)\s+failed/.test(output) || output.includes('FAILED') || output.includes('ERROR');
981
+ if (hasFailed && !hasPassed) {
982
+ // Pure failure
983
+ this.phaseState.lastTestPassed = false;
984
+ this.phaseState.consecutiveTestFailures++;
985
+ this.phaseState.inTestFixCycle = true;
986
+ }
987
+ else if (hasPassed && !hasFailed) {
988
+ // Pure pass
989
+ this.phaseState.lastTestPassed = true;
990
+ this.phaseState.consecutiveTestFailures = 0;
991
+ this.phaseState.inTestFixCycle = false;
992
+ }
993
+ else if (hasPassed && hasFailed) {
994
+ // Mixed - some passed, some failed
995
+ this.phaseState.lastTestPassed = false;
996
+ this.phaseState.consecutiveTestFailures++;
997
+ this.phaseState.inTestFixCycle = true;
998
+ }
999
+ // If no clear signal, don't update
1000
+ }
706
1001
  isStuck() {
707
1002
  // Check for repeated tool calls
708
1003
  if (this.progress.recentToolCalls.length >= 3) {
@@ -1 +1 @@
1
- {"version":3,"file":"economics.js","sourceRoot":"","sources":["../../../src/integrations/economics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAmB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAwIzE,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,gBAAgB,GAAG;;;;;oDAK2B,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;EASnC,CAAC;AAEH;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CACzD,0BAA0B,IAAI,4BAA4B,KAAK;;;8CAGjB,CAAC;AAE/C;;GAEG;AACH,MAAM,wBAAwB,GAAG,CAAC,SAAiB,EAAE,UAAkB,EAAE,EAAE,CAC3E,wBAAwB,SAAS,iBAAiB,UAAU;;;4EAGgB,CAAC;AAE7E;;GAEG;AACH,MAAM,OAAO,yBAAyB;IAC5B,MAAM,CAAkB;IACxB,KAAK,CAAiB;IACtB,QAAQ,CAAgB;IACxB,SAAS,CAAqB;IAC9B,UAAU,CAAa;IACvB,SAAS,CAAS;IAClB,cAAc,GAAG,CAAC,CAAC;IACnB,UAAU,GAAkB,IAAI,CAAC;IACjC,SAAS,GAA6B,EAAE,CAAC;IACzC,gBAAgB,CAA2E;IAEnG,YAAY,MAAiC;QAC3C,IAAI,CAAC,MAAM,GAAG;YACZ,cAAc;YACd,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,MAAM;YACtC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI;YAChC,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,MAAM,EAAE,sDAAsD;YAElG,mCAAmC;YACnC,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,MAAM;YAChD,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,IAAI;YAC5C,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,IAAI,MAAM,EAAE,aAAa;YAErE,qBAAqB;YACrB,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,EAAE;YAChD,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG;SAC5C,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG;YACX,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;SACZ,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,WAAW,EAAE,EAAE;YACf,eAAe,EAAE,EAAE;YACnB,sBAAsB,EAAE,IAAI,CAAC,GAAG,EAAE;YAClC,UAAU,EAAE,CAAC;SACd,CAAC;QAEF,uCAAuC;QACvC,IAAI,CAAC,SAAS,GAAG;YACf,gBAAgB,EAAE,KAAK;YACvB,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,CAAC;SACnB,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,UAAU,GAAG;YAChB,KAAK,EAAE,WAAW;YAClB,yBAAyB,EAAE,CAAC;YAC5B,eAAe,EAAE,IAAI,GAAG,EAAE;YAC1B,cAAc,EAAE,IAAI,GAAG,EAAE;YACzB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,QAAQ,EAAE,CAAC;YACX,gBAAgB,EAAE,KAAK;YACvB,iBAAiB,EAAE,CAAC;YACpB,cAAc,EAAE,CAAC;SAClB,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,mBAAmB,CACjB,OAAgF;QAEhF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,WAAmB,EAAE,YAAoB,EAAE,KAAc,EAAE,UAAmB;QAC3F,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,YAAY,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,WAAW,GAAG,YAAY,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEtB,kEAAkE;QAClE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,kFAAkF;YAClF,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,aAAa,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAC3E,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAgB,EAAE,IAA6B,EAAE,OAAiB;QAC/E,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAExB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,wFAAwF;QACxF,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAEtF,uCAAuC;QACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC;QAED,4EAA4E;QAC5E,yCAAyC;QACzC,4EAA4E;QAC5E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5C,4EAA4E;QAC5E,iBAAiB;QACjB,4EAA4E;QAC5E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEtC,wBAAwB;QACxB,IAAI,QAAQ,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE1C,oDAAoD;YACpD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YACnC,CAAC;YAED,+EAA+E;YAC/E,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,GAAG,CAAC;gBAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,GAAG,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;YAE7B,qDAAqD;YACrD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAClF,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,GAAG,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;YAE7B,mBAAmB;YACnB,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvH,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC3B,+DAA+D;gBAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACjF,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,wBAAwB;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAClI,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;gBACvC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,QAAgB,EAAE,OAAe;QAC3D,MAAM,WAAW,GAAG,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAElD,iDAAiD;QACjD,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;gBAChD,gBAAgB,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEnC,0CAA0C;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QAE/E,gEAAgE;QAChE,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;gBACd,gBAAgB;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,SAAiB,EAAE,KAA8B;QACxE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QAEpC,gFAAgF;QAChF,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,QAA6B,EAAE,MAAc;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACvC,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO;QAElC,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,QAAQ;YACZ,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC;QAEnC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,0BAA0B;QAChC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAErG,sCAAsC;QACtC,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC;YACzC,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,IAAI,eAAe,CAAC,IAAI,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,eAAe,CAAC,IAAI;gBAC/B,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,8EAA8E;QAC9E,IAAI,iBAAiB,IAAI,CAAC,IAAI,cAAc,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,eAAe,CAAC,IAAI;gBAC/B,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAElD,0BAA0B;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACtH,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,0BAA0B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG;gBACnH,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG;gBAC9D,eAAe,EAAE,MAAM;aACxB,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAChH,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,0BAA0B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBACpG,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG;gBAC1D,eAAe,EAAE,MAAM;aACxB,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5H,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,4BAA4B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI;gBAC/H,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG;gBAClE,eAAe,EAAE,MAAM;aACxB,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACvD,OAAO;gBACL,WAAW,EAAE,IAAI,EAAG,kCAAkC;gBACtD,MAAM,EAAE,+BAA+B,IAAI,CAAC,KAAK,CAAC,UAAU,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG;gBAC9F,UAAU,EAAE,YAAY;gBACxB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,GAAG;gBAChB,eAAe,EAAE,MAAM;gBACvB,aAAa,EAAE,IAAI,EAAG,qBAAqB;gBAC3C,cAAc,EAAE,gBAAgB;aACjC,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,4CAA4C;QAC5C,4EAA4E;QAC5E,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YACpC,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,uBAAuB,IAAI,CAAC,SAAS,CAAC,QAAQ,WAAW,IAAI,CAAC,SAAS,CAAC,gBAAgB,QAAQ;gBACxG,UAAU,EAAE,YAAY;gBACxB,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,GAAG;gBACzE,eAAe,EAAE,MAAM;gBACvB,cAAc,EAAE,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;aACxG,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,wCAAwC;QACxC,4EAA4E;QAC5E,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;YACrC,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,2BAA2B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,aAAa;gBACpF,UAAU,EAAE,YAAY;gBACxB,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,GAAG;gBACzE,eAAe,EAAE,MAAM;gBACvB,cAAc,EAAE,wBAAwB,CACtC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EACpC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAClC;aACF,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,iFAAiF;QACjF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;YAClF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;YAEpF,qEAAqE;YACrE,MAAM,aAAa,GAAG,WAAW,IAAI,EAAE,CAAC;YAExC,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,mBAAmB,WAAW,GAAG;gBACzC,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,IAAI;gBACjB,WAAW;gBACX,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB;gBAC7D,aAAa;gBACb,cAAc,EAAE,aAAa;oBAC3B,CAAC,CAAC,2BAA2B,WAAW,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK;wBAClI,uEAAuE;oBACzE,CAAC,CAAC,wCAAwC,WAAW,2BAA2B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY;wBACtK,SAAS,SAAS,CAAC,cAAc,EAAE,wFAAwF;wBAC3H,gCAAgC;aACrC,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YACjI,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG;gBACtF,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG;gBAC1D,eAAe,EAAE,MAAM;aACxB,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,wBAAwB,IAAI,CAAC,QAAQ,CAAC,UAAU,+BAA+B;gBACvF,UAAU,EAAE,YAAY;gBACxB,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,GAAG;gBACzE,eAAe,EAAE,mBAAmB;aACrC,CAAC;QACJ,CAAC;QAED,WAAW;QACX,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,IAAI,CAAC,GAAG,CACnB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,EACjD,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,EAC7C,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CACtD;YACD,eAAe,EAAE,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;YAC/B,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;YAC1B,MAAM;YACN,kBAAkB,EAAE;gBAClB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;gBAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG;gBAClC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG;gBAC1C,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,GAAG,CAAC;aAC3D;SACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAAmC;QAC9C,IAAI,SAAS,CAAC,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACrE,IAAI,SAAS,CAAC,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAC/D,IAAI,SAAS,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QAC3E,IAAI,SAAS,CAAC,aAAa;YAAE,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;QACjF,IAAI,SAAS,CAAC,cAAc;YAAE,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;QACpF,IAAI,SAAS,CAAC,aAAa;YAAE,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;QACjF,IAAI,SAAS,CAAC,iBAAiB;YAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAC7F,IAAI,SAAS,CAAC,gBAAgB;YAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAC5F,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClD,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAE3F,0BAA0B;QAC1B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,GAAG,eAAe,CAAC;QAC5B,CAAC;aAAM,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC1B,OAAO,GAAG,aAAa,CAAC;QAC1B,CAAC;QAED,OAAO,GAAG,OAAO,WAAW,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,QAAQ,QAAQ,YAAY,gBACpI,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EACrC,EAAE,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;QACzD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QAEhE,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QACxE,CAAC;QACD,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;QAC7E,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,WAAW;QAOT,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;YACvC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI;YAC/C,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM;YAC7C,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;YACvB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;SACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,aAAa;QASX,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;YAC5B,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI;YACrD,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI;YACnD,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI;YACjD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;YAClC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB;YAClD,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB;SACrD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,EAAE,CAAC,QAAgC;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG;YACX,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;SACZ,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG;YACd,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,WAAW,EAAE,EAAE;YACf,eAAe,EAAE,EAAE;YACnB,sBAAsB,EAAE,IAAI,CAAC,GAAG,EAAE;YAClC,UAAU,EAAE,CAAC;SACd,CAAC;QAEF,6BAA6B;QAC7B,IAAI,CAAC,SAAS,GAAG;YACf,gBAAgB,EAAE,KAAK;YACvB,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,CAAC;SACnB,CAAC;QAEF,6BAA6B;QAC7B,IAAI,CAAC,UAAU,GAAG;YAChB,KAAK,EAAE,WAAW;YAClB,yBAAyB,EAAE,CAAC;YAC5B,eAAe,EAAE,IAAI,GAAG,EAAE;YAC1B,cAAc,EAAE,IAAI,GAAG,EAAE;YACzB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,QAAQ,EAAE,CAAC;YACX,gBAAgB,EAAE,KAAK;YACvB,iBAAiB,EAAE,CAAC;YACpB,cAAc,EAAE,CAAC;SAClB,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAEpE,IAAI,CAAC,KAAqB;QAChC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,OAAO;QACb,gCAAgC;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,CAAC,6BAA6B;YAC5C,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAC5E,IAAI,iBAAiB,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,CAAC,8CAA8C;QAC7D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAiC;IAEjC,OAAO,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,KAAK,EAAE,WAAW;IAC/B,gBAAgB,EAAE,CAAC;IACnB,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM,EAAE,2CAA2C;IAChE,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,SAAS,EAAE,MAAM,EAAQ,+CAA+C;IACxE,cAAc,EAAE,MAAM,EAAG,eAAe;IACxC,OAAO,EAAE,IAAI,EAAY,wBAAwB;IACjD,WAAW,EAAE,MAAM,EAAM,YAAY;IACrC,iBAAiB,EAAE,MAAM,EAAE,oBAAoB;IAC/C,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM,EAAE,aAAa;IAClC,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE,GAAG;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,gBAAgB,EAAE,QAAQ;IAC1B,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6B;IAC3D,SAAS,EAAE,KAAK;IAChB,cAAc,EAAE,KAAK;IACrB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM,EAAM,YAAY;IACrC,iBAAiB,EAAE,KAAK,EAAE,cAAc;IACxC,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA6B;IACjE,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,KAAK;IACrB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM,EAAM,YAAY;IACrC,iBAAiB,EAAE,MAAM;IACzB,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE,EAAE;CAClB,CAAC"}
1
+ {"version":3,"file":"economics.js","sourceRoot":"","sources":["../../../src/integrations/economics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Environment Facts
3
+ *
4
+ * Core grounding module that provides temporal, platform, and project
5
+ * context to all agents (main, subagent, swarm worker, quality gate).
6
+ *
7
+ * Without this, LLMs confidently write "as of 2024" when it's 2026,
8
+ * cite stale data as current, and produce artifacts that fail temporal
9
+ * verification.
10
+ *
11
+ * Usage:
12
+ * const facts = getEnvironmentFacts(); // auto-populated singleton
13
+ * const block = formatFactsBlock(facts); // for system prompts
14
+ * const line = formatFactsCompact(facts); // for judge prompts
15
+ */
16
+ export interface EnvironmentFacts {
17
+ /** Current date in YYYY-MM-DD format */
18
+ currentDate: string;
19
+ /** Current year */
20
+ currentYear: number;
21
+ /** Current month name (e.g. "February") */
22
+ currentMonth: string;
23
+ /** Working directory */
24
+ workingDirectory: string;
25
+ /** Platform (darwin, linux, win32) */
26
+ platform: string;
27
+ /** Architecture (arm64, x64) */
28
+ arch: string;
29
+ /** Node.js version */
30
+ nodeVersion: string;
31
+ /** User-provided custom facts (from swarm.yaml or config) */
32
+ custom: string[];
33
+ }
34
+ /**
35
+ * Get auto-populated environment facts.
36
+ * Cached per process — call refreshEnvironmentFacts() to force update.
37
+ */
38
+ export declare function getEnvironmentFacts(customFacts?: string[]): EnvironmentFacts;
39
+ /**
40
+ * Force refresh (e.g. if cwd changes or date rolls over).
41
+ */
42
+ export declare function refreshEnvironmentFacts(customFacts?: string[]): EnvironmentFacts;
43
+ /**
44
+ * Format facts as a full system prompt block.
45
+ * Used by main agent and swarm worker system prompts.
46
+ */
47
+ export declare function formatFactsBlock(facts?: EnvironmentFacts): string;
48
+ /**
49
+ * Format facts as a compact one-liner for judge/gate prompts.
50
+ */
51
+ export declare function formatFactsCompact(facts?: EnvironmentFacts): string;
52
+ //# sourceMappingURL=environment-facts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-facts.d.ts","sourceRoot":"","sources":["../../../src/integrations/environment-facts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IAEjB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAC;IAEpB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAWD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAiB5E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAGhF;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAsBjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAGnE"}