attocode 0.2.0 → 0.2.2

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 (179) hide show
  1. package/CHANGELOG.md +111 -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 +14 -1
  6. package/dist/src/adapters.js.map +1 -1
  7. package/dist/src/agent.d.ts +50 -0
  8. package/dist/src/agent.d.ts.map +1 -1
  9. package/dist/src/agent.js +734 -316
  10. package/dist/src/agent.js.map +1 -1
  11. package/dist/src/defaults.d.ts +1 -1
  12. package/dist/src/defaults.d.ts.map +1 -1
  13. package/dist/src/defaults.js +2 -0
  14. package/dist/src/defaults.js.map +1 -1
  15. package/dist/src/integrations/agent-registry.d.ts +9 -2
  16. package/dist/src/integrations/agent-registry.d.ts.map +1 -1
  17. package/dist/src/integrations/agent-registry.js +30 -4
  18. package/dist/src/integrations/agent-registry.js.map +1 -1
  19. package/dist/src/integrations/async-subagent.d.ts +135 -0
  20. package/dist/src/integrations/async-subagent.d.ts.map +1 -0
  21. package/dist/src/integrations/async-subagent.js +213 -0
  22. package/dist/src/integrations/async-subagent.js.map +1 -0
  23. package/dist/src/integrations/auto-checkpoint.d.ts +98 -0
  24. package/dist/src/integrations/auto-checkpoint.d.ts.map +1 -0
  25. package/dist/src/integrations/auto-checkpoint.js +252 -0
  26. package/dist/src/integrations/auto-checkpoint.js.map +1 -0
  27. package/dist/src/integrations/budget-pool.d.ts +13 -1
  28. package/dist/src/integrations/budget-pool.d.ts.map +1 -1
  29. package/dist/src/integrations/budget-pool.js +17 -0
  30. package/dist/src/integrations/budget-pool.js.map +1 -1
  31. package/dist/src/integrations/complexity-classifier.d.ts +86 -0
  32. package/dist/src/integrations/complexity-classifier.d.ts.map +1 -0
  33. package/dist/src/integrations/complexity-classifier.js +233 -0
  34. package/dist/src/integrations/complexity-classifier.js.map +1 -0
  35. package/dist/src/integrations/delegation-protocol.d.ts +86 -0
  36. package/dist/src/integrations/delegation-protocol.d.ts.map +1 -0
  37. package/dist/src/integrations/delegation-protocol.js +127 -0
  38. package/dist/src/integrations/delegation-protocol.js.map +1 -0
  39. package/dist/src/integrations/dynamic-budget.d.ts +81 -0
  40. package/dist/src/integrations/dynamic-budget.d.ts.map +1 -0
  41. package/dist/src/integrations/dynamic-budget.js +151 -0
  42. package/dist/src/integrations/dynamic-budget.js.map +1 -0
  43. package/dist/src/integrations/economics.d.ts +44 -1
  44. package/dist/src/integrations/economics.d.ts.map +1 -1
  45. package/dist/src/integrations/economics.js +182 -3
  46. package/dist/src/integrations/economics.js.map +1 -1
  47. package/dist/src/integrations/environment-facts.d.ts +52 -0
  48. package/dist/src/integrations/environment-facts.d.ts.map +1 -0
  49. package/dist/src/integrations/environment-facts.js +84 -0
  50. package/dist/src/integrations/environment-facts.js.map +1 -0
  51. package/dist/src/integrations/index.d.ts +16 -1
  52. package/dist/src/integrations/index.d.ts.map +1 -1
  53. package/dist/src/integrations/index.js +31 -1
  54. package/dist/src/integrations/index.js.map +1 -1
  55. package/dist/src/integrations/injection-budget.d.ts +71 -0
  56. package/dist/src/integrations/injection-budget.d.ts.map +1 -0
  57. package/dist/src/integrations/injection-budget.js +136 -0
  58. package/dist/src/integrations/injection-budget.js.map +1 -0
  59. package/dist/src/integrations/mcp-client.d.ts.map +1 -1
  60. package/dist/src/integrations/mcp-client.js +14 -0
  61. package/dist/src/integrations/mcp-client.js.map +1 -1
  62. package/dist/src/integrations/mcp-custom-tools.d.ts +102 -0
  63. package/dist/src/integrations/mcp-custom-tools.d.ts.map +1 -0
  64. package/dist/src/integrations/mcp-custom-tools.js +232 -0
  65. package/dist/src/integrations/mcp-custom-tools.js.map +1 -0
  66. package/dist/src/integrations/mcp-tool-validator.d.ts +60 -0
  67. package/dist/src/integrations/mcp-tool-validator.d.ts.map +1 -0
  68. package/dist/src/integrations/mcp-tool-validator.js +141 -0
  69. package/dist/src/integrations/mcp-tool-validator.js.map +1 -0
  70. package/dist/src/integrations/routing.d.ts +2 -1
  71. package/dist/src/integrations/routing.d.ts.map +1 -1
  72. package/dist/src/integrations/routing.js.map +1 -1
  73. package/dist/src/integrations/self-improvement.d.ts +90 -0
  74. package/dist/src/integrations/self-improvement.d.ts.map +1 -0
  75. package/dist/src/integrations/self-improvement.js +217 -0
  76. package/dist/src/integrations/self-improvement.js.map +1 -0
  77. package/dist/src/integrations/smart-decomposer.d.ts +4 -0
  78. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -1
  79. package/dist/src/integrations/smart-decomposer.js +55 -28
  80. package/dist/src/integrations/smart-decomposer.js.map +1 -1
  81. package/dist/src/integrations/subagent-output-store.d.ts +91 -0
  82. package/dist/src/integrations/subagent-output-store.d.ts.map +1 -0
  83. package/dist/src/integrations/subagent-output-store.js +257 -0
  84. package/dist/src/integrations/subagent-output-store.js.map +1 -0
  85. package/dist/src/integrations/swarm/index.d.ts +1 -1
  86. package/dist/src/integrations/swarm/index.d.ts.map +1 -1
  87. package/dist/src/integrations/swarm/index.js +1 -1
  88. package/dist/src/integrations/swarm/index.js.map +1 -1
  89. package/dist/src/integrations/swarm/model-selector.d.ts +1 -0
  90. package/dist/src/integrations/swarm/model-selector.d.ts.map +1 -1
  91. package/dist/src/integrations/swarm/model-selector.js +37 -3
  92. package/dist/src/integrations/swarm/model-selector.js.map +1 -1
  93. package/dist/src/integrations/swarm/swarm-config-loader.d.ts +10 -1
  94. package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -1
  95. package/dist/src/integrations/swarm/swarm-config-loader.js +72 -6
  96. package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -1
  97. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts.map +1 -1
  98. package/dist/src/integrations/swarm/swarm-event-bridge.js +26 -4
  99. package/dist/src/integrations/swarm/swarm-event-bridge.js.map +1 -1
  100. package/dist/src/integrations/swarm/swarm-events.d.ts +11 -0
  101. package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -1
  102. package/dist/src/integrations/swarm/swarm-events.js +4 -0
  103. package/dist/src/integrations/swarm/swarm-events.js.map +1 -1
  104. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +11 -0
  105. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -1
  106. package/dist/src/integrations/swarm/swarm-orchestrator.js +233 -10
  107. package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -1
  108. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts +9 -2
  109. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts.map +1 -1
  110. package/dist/src/integrations/swarm/swarm-quality-gate.js +128 -11
  111. package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -1
  112. package/dist/src/integrations/swarm/task-queue.d.ts +11 -1
  113. package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -1
  114. package/dist/src/integrations/swarm/task-queue.js +125 -15
  115. package/dist/src/integrations/swarm/task-queue.js.map +1 -1
  116. package/dist/src/integrations/swarm/types.d.ts +40 -1
  117. package/dist/src/integrations/swarm/types.d.ts.map +1 -1
  118. package/dist/src/integrations/swarm/types.js +6 -1
  119. package/dist/src/integrations/swarm/types.js.map +1 -1
  120. package/dist/src/integrations/swarm/worker-pool.d.ts +9 -3
  121. package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -1
  122. package/dist/src/integrations/swarm/worker-pool.js +89 -17
  123. package/dist/src/integrations/swarm/worker-pool.js.map +1 -1
  124. package/dist/src/integrations/thinking-strategy.d.ts +52 -0
  125. package/dist/src/integrations/thinking-strategy.d.ts.map +1 -0
  126. package/dist/src/integrations/thinking-strategy.js +129 -0
  127. package/dist/src/integrations/thinking-strategy.js.map +1 -0
  128. package/dist/src/integrations/tool-recommendation.d.ts +58 -0
  129. package/dist/src/integrations/tool-recommendation.d.ts.map +1 -0
  130. package/dist/src/integrations/tool-recommendation.js +215 -0
  131. package/dist/src/integrations/tool-recommendation.js.map +1 -0
  132. package/dist/src/integrations/verification-gate.d.ts +80 -0
  133. package/dist/src/integrations/verification-gate.d.ts.map +1 -0
  134. package/dist/src/integrations/verification-gate.js +146 -0
  135. package/dist/src/integrations/verification-gate.js.map +1 -0
  136. package/dist/src/integrations/work-log.d.ts +87 -0
  137. package/dist/src/integrations/work-log.d.ts.map +1 -0
  138. package/dist/src/integrations/work-log.js +275 -0
  139. package/dist/src/integrations/work-log.js.map +1 -0
  140. package/dist/src/main.js +5 -4
  141. package/dist/src/main.js.map +1 -1
  142. package/dist/src/modes.d.ts +6 -0
  143. package/dist/src/modes.d.ts.map +1 -1
  144. package/dist/src/modes.js +73 -2
  145. package/dist/src/modes.js.map +1 -1
  146. package/dist/src/providers/adapters/anthropic.d.ts.map +1 -1
  147. package/dist/src/providers/adapters/anthropic.js +20 -3
  148. package/dist/src/providers/adapters/anthropic.js.map +1 -1
  149. package/dist/src/providers/adapters/openrouter.d.ts.map +1 -1
  150. package/dist/src/providers/adapters/openrouter.js +3 -1
  151. package/dist/src/providers/adapters/openrouter.js.map +1 -1
  152. package/dist/src/providers/types.d.ts +4 -0
  153. package/dist/src/providers/types.d.ts.map +1 -1
  154. package/dist/src/providers/types.js.map +1 -1
  155. package/dist/src/tools/bash.d.ts +8 -2
  156. package/dist/src/tools/bash.d.ts.map +1 -1
  157. package/dist/src/tools/bash.js +14 -1
  158. package/dist/src/tools/bash.js.map +1 -1
  159. package/dist/src/tools/coercion.d.ts +14 -0
  160. package/dist/src/tools/coercion.d.ts.map +1 -0
  161. package/dist/src/tools/coercion.js +25 -0
  162. package/dist/src/tools/coercion.js.map +1 -0
  163. package/dist/src/tools/file.d.ts +2 -2
  164. package/dist/src/tools/file.d.ts.map +1 -1
  165. package/dist/src/tools/file.js +2 -1
  166. package/dist/src/tools/file.js.map +1 -1
  167. package/dist/src/tools/standard.d.ts +17 -1
  168. package/dist/src/tools/standard.d.ts.map +1 -1
  169. package/dist/src/tools/standard.js +64 -11
  170. package/dist/src/tools/standard.js.map +1 -1
  171. package/dist/src/tui/app.d.ts.map +1 -1
  172. package/dist/src/tui/app.js +8 -1
  173. package/dist/src/tui/app.js.map +1 -1
  174. package/dist/src/tui/event-display.d.ts.map +1 -1
  175. package/dist/src/tui/event-display.js +8 -1
  176. package/dist/src/tui/event-display.js.map +1 -1
  177. package/dist/src/types.d.ts +26 -0
  178. package/dist/src/types.d.ts.map +1 -1
  179. package/package.json +6 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-subagent.js","sourceRoot":"","sources":["../../../src/integrations/async-subagent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Auto-Checkpoint Resumption
3
+ *
4
+ * Saves lightweight checkpoints at key execution points so that
5
+ * work can be recovered if the agent crashes or times out.
6
+ *
7
+ * Key points where checkpoints are saved:
8
+ * - After each tool batch execution
9
+ * - Before LLM calls (so the prompt is recoverable)
10
+ * - After significant state changes (plan approval, mode switch)
11
+ *
12
+ * On startup, detects recent sessions (<5 min) and offers auto-resume.
13
+ */
14
+ export interface Checkpoint {
15
+ /** Unique checkpoint ID */
16
+ id: string;
17
+ /** Label describing the checkpoint point */
18
+ label: string;
19
+ /** Session ID this checkpoint belongs to */
20
+ sessionId: string;
21
+ /** Timestamp of the checkpoint */
22
+ timestamp: number;
23
+ /** Agent iteration count at this point */
24
+ iteration: number;
25
+ /** Messages up to this point (serialized) */
26
+ messages?: unknown[];
27
+ /** Current objective/task */
28
+ objective?: string;
29
+ /** Current mode */
30
+ mode?: string;
31
+ /** Files modified since last checkpoint */
32
+ filesModified?: string[];
33
+ /** Token usage at this point */
34
+ tokensUsed?: number;
35
+ /** Tool call history summary */
36
+ toolCallSummary?: string;
37
+ /** Custom metadata */
38
+ metadata?: Record<string, unknown>;
39
+ }
40
+ export interface AutoCheckpointConfig {
41
+ /** Directory for checkpoint storage (default: '.agent/checkpoints') */
42
+ checkpointDir: string;
43
+ /** Maximum checkpoints to keep per session (default: 10) */
44
+ maxCheckpointsPerSession: number;
45
+ /** Auto-cleanup checkpoints older than this (ms, default: 3600000 = 1hr) */
46
+ maxAge: number;
47
+ /** Whether checkpointing is enabled (default: true) */
48
+ enabled: boolean;
49
+ /** Minimum interval between checkpoints (ms, default: 30000) */
50
+ minInterval: number;
51
+ }
52
+ export interface ResumeCandidate {
53
+ /** Session ID */
54
+ sessionId: string;
55
+ /** Most recent checkpoint */
56
+ checkpoint: Checkpoint;
57
+ /** Age of the checkpoint in ms */
58
+ ageMs: number;
59
+ /** Number of checkpoints available */
60
+ checkpointCount: number;
61
+ }
62
+ export declare class AutoCheckpointManager {
63
+ private config;
64
+ private lastCheckpointTime;
65
+ private checkpointCount;
66
+ constructor(config?: Partial<AutoCheckpointConfig>);
67
+ /**
68
+ * Save a checkpoint at a key execution point.
69
+ * Respects minInterval to avoid excessive I/O.
70
+ */
71
+ save(checkpoint: Omit<Checkpoint, 'id' | 'timestamp'>): string | null;
72
+ /**
73
+ * Load a specific checkpoint.
74
+ */
75
+ load(sessionId: string, checkpointId: string): Checkpoint | null;
76
+ /**
77
+ * Find sessions with recent checkpoints that could be resumed.
78
+ */
79
+ findResumeCandidates(maxAgeMs?: number): ResumeCandidate[];
80
+ /**
81
+ * Load all checkpoints for a session, sorted by timestamp.
82
+ */
83
+ loadSessionCheckpoints(sessionId: string): Checkpoint[];
84
+ /**
85
+ * Get a summary of a checkpoint for display.
86
+ */
87
+ formatCheckpointSummary(checkpoint: Checkpoint): string;
88
+ /**
89
+ * Clean up old checkpoints globally.
90
+ */
91
+ cleanupAll(): number;
92
+ private cleanupSession;
93
+ }
94
+ /**
95
+ * Create an auto-checkpoint manager.
96
+ */
97
+ export declare function createAutoCheckpointManager(config?: Partial<AutoCheckpointConfig>): AutoCheckpointManager;
98
+ //# sourceMappingURL=auto-checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-checkpoint.d.ts","sourceRoot":"","sources":["../../../src/integrations/auto-checkpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,wBAAwB,EAAE,MAAM,CAAC;IACjC,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;CACzB;AAkBD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAYlD;;;OAGG;IACH,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,MAAM,GAAG,IAAI;IA0CrE;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAUhE;;OAEG;IACH,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE;IA2C1D;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAwBvD;;OAEG;IACH,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IA2BvD;;OAEG;IACH,UAAU,IAAI,MAAM;IAyCpB,OAAO,CAAC,cAAc;CAiBvB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACrC,qBAAqB,CAEvB"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Auto-Checkpoint Resumption
3
+ *
4
+ * Saves lightweight checkpoints at key execution points so that
5
+ * work can be recovered if the agent crashes or times out.
6
+ *
7
+ * Key points where checkpoints are saved:
8
+ * - After each tool batch execution
9
+ * - Before LLM calls (so the prompt is recoverable)
10
+ * - After significant state changes (plan approval, mode switch)
11
+ *
12
+ * On startup, detects recent sessions (<5 min) and offers auto-resume.
13
+ */
14
+ import { writeFileSync, readFileSync, mkdirSync, existsSync, readdirSync, statSync, unlinkSync } from 'node:fs';
15
+ import { join } from 'node:path';
16
+ // =============================================================================
17
+ // CONSTANTS
18
+ // =============================================================================
19
+ const DEFAULT_CONFIG = {
20
+ checkpointDir: '.agent/checkpoints',
21
+ maxCheckpointsPerSession: 10,
22
+ maxAge: 3600000, // 1 hour
23
+ enabled: true,
24
+ minInterval: 30000, // 30 seconds
25
+ };
26
+ // =============================================================================
27
+ // AUTO-CHECKPOINT MANAGER
28
+ // =============================================================================
29
+ export class AutoCheckpointManager {
30
+ config;
31
+ lastCheckpointTime = 0;
32
+ checkpointCount = 0;
33
+ constructor(config) {
34
+ this.config = { ...DEFAULT_CONFIG, ...config };
35
+ if (this.config.enabled) {
36
+ try {
37
+ mkdirSync(this.config.checkpointDir, { recursive: true });
38
+ }
39
+ catch {
40
+ // Directory creation may fail
41
+ }
42
+ }
43
+ }
44
+ /**
45
+ * Save a checkpoint at a key execution point.
46
+ * Respects minInterval to avoid excessive I/O.
47
+ */
48
+ save(checkpoint) {
49
+ if (!this.config.enabled)
50
+ return null;
51
+ const now = Date.now();
52
+ if (now - this.lastCheckpointTime < this.config.minInterval) {
53
+ return null; // Too soon since last checkpoint
54
+ }
55
+ const id = `ckpt-${now}-${Math.random().toString(36).slice(2, 6)}`;
56
+ const fullCheckpoint = {
57
+ ...checkpoint,
58
+ id,
59
+ timestamp: now,
60
+ };
61
+ try {
62
+ const sessionDir = join(this.config.checkpointDir, checkpoint.sessionId);
63
+ mkdirSync(sessionDir, { recursive: true });
64
+ const filePath = join(sessionDir, `${id}.json`);
65
+ // Don't persist full messages array to save space - just metadata
66
+ const persistable = {
67
+ ...fullCheckpoint,
68
+ messages: undefined, // Strip messages to keep checkpoints small
69
+ _messageCount: fullCheckpoint.messages?.length ?? 0,
70
+ };
71
+ writeFileSync(filePath, JSON.stringify(persistable, null, 2), 'utf-8');
72
+ this.lastCheckpointTime = now;
73
+ this.checkpointCount++;
74
+ // Cleanup old checkpoints for this session
75
+ this.cleanupSession(checkpoint.sessionId);
76
+ return id;
77
+ }
78
+ catch {
79
+ return null;
80
+ }
81
+ }
82
+ /**
83
+ * Load a specific checkpoint.
84
+ */
85
+ load(sessionId, checkpointId) {
86
+ try {
87
+ const filePath = join(this.config.checkpointDir, sessionId, `${checkpointId}.json`);
88
+ const content = readFileSync(filePath, 'utf-8');
89
+ return JSON.parse(content);
90
+ }
91
+ catch {
92
+ return null;
93
+ }
94
+ }
95
+ /**
96
+ * Find sessions with recent checkpoints that could be resumed.
97
+ */
98
+ findResumeCandidates(maxAgeMs) {
99
+ const maxAge = maxAgeMs ?? 300000; // Default: 5 minutes
100
+ const now = Date.now();
101
+ const candidates = [];
102
+ try {
103
+ if (!existsSync(this.config.checkpointDir))
104
+ return [];
105
+ const sessions = readdirSync(this.config.checkpointDir);
106
+ for (const sessionId of sessions) {
107
+ const sessionDir = join(this.config.checkpointDir, sessionId);
108
+ try {
109
+ const stat = statSync(sessionDir);
110
+ if (!stat.isDirectory())
111
+ continue;
112
+ }
113
+ catch {
114
+ continue;
115
+ }
116
+ const checkpoints = this.loadSessionCheckpoints(sessionId);
117
+ if (checkpoints.length === 0)
118
+ continue;
119
+ // Most recent checkpoint
120
+ const latest = checkpoints[checkpoints.length - 1];
121
+ const age = now - latest.timestamp;
122
+ if (age <= maxAge) {
123
+ candidates.push({
124
+ sessionId,
125
+ checkpoint: latest,
126
+ ageMs: age,
127
+ checkpointCount: checkpoints.length,
128
+ });
129
+ }
130
+ }
131
+ }
132
+ catch {
133
+ // Directory reading may fail
134
+ }
135
+ // Sort by recency (most recent first)
136
+ return candidates.sort((a, b) => a.ageMs - b.ageMs);
137
+ }
138
+ /**
139
+ * Load all checkpoints for a session, sorted by timestamp.
140
+ */
141
+ loadSessionCheckpoints(sessionId) {
142
+ const sessionDir = join(this.config.checkpointDir, sessionId);
143
+ const checkpoints = [];
144
+ try {
145
+ if (!existsSync(sessionDir))
146
+ return [];
147
+ const files = readdirSync(sessionDir).filter(f => f.endsWith('.json'));
148
+ for (const file of files) {
149
+ try {
150
+ const content = readFileSync(join(sessionDir, file), 'utf-8');
151
+ checkpoints.push(JSON.parse(content));
152
+ }
153
+ catch {
154
+ // Skip malformed checkpoints
155
+ }
156
+ }
157
+ }
158
+ catch {
159
+ return [];
160
+ }
161
+ return checkpoints.sort((a, b) => a.timestamp - b.timestamp);
162
+ }
163
+ /**
164
+ * Get a summary of a checkpoint for display.
165
+ */
166
+ formatCheckpointSummary(checkpoint) {
167
+ const age = Date.now() - checkpoint.timestamp;
168
+ const ageStr = age < 60000
169
+ ? `${Math.round(age / 1000)}s ago`
170
+ : `${Math.round(age / 60000)}m ago`;
171
+ const lines = [
172
+ `Session: ${checkpoint.sessionId}`,
173
+ `Checkpoint: ${checkpoint.label} (${ageStr})`,
174
+ `Iteration: ${checkpoint.iteration}`,
175
+ ];
176
+ if (checkpoint.objective) {
177
+ lines.push(`Objective: ${checkpoint.objective.slice(0, 100)}`);
178
+ }
179
+ if (checkpoint.tokensUsed) {
180
+ lines.push(`Tokens used: ${checkpoint.tokensUsed}`);
181
+ }
182
+ if (checkpoint.filesModified && checkpoint.filesModified.length > 0) {
183
+ lines.push(`Files modified: ${checkpoint.filesModified.join(', ')}`);
184
+ }
185
+ return lines.join('\n');
186
+ }
187
+ /**
188
+ * Clean up old checkpoints globally.
189
+ */
190
+ cleanupAll() {
191
+ let cleaned = 0;
192
+ const now = Date.now();
193
+ try {
194
+ if (!existsSync(this.config.checkpointDir))
195
+ return 0;
196
+ const sessions = readdirSync(this.config.checkpointDir);
197
+ for (const sessionId of sessions) {
198
+ const sessionDir = join(this.config.checkpointDir, sessionId);
199
+ try {
200
+ const stat = statSync(sessionDir);
201
+ if (!stat.isDirectory())
202
+ continue;
203
+ }
204
+ catch {
205
+ continue;
206
+ }
207
+ const checkpoints = this.loadSessionCheckpoints(sessionId);
208
+ for (const ckpt of checkpoints) {
209
+ if (now - ckpt.timestamp > this.config.maxAge) {
210
+ try {
211
+ unlinkSync(join(sessionDir, `${ckpt.id}.json`));
212
+ cleaned++;
213
+ }
214
+ catch {
215
+ // Deletion may fail
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ catch {
222
+ // Directory operations may fail
223
+ }
224
+ return cleaned;
225
+ }
226
+ // ===========================================================================
227
+ // INTERNAL
228
+ // ===========================================================================
229
+ cleanupSession(sessionId) {
230
+ const checkpoints = this.loadSessionCheckpoints(sessionId);
231
+ if (checkpoints.length > this.config.maxCheckpointsPerSession) {
232
+ // Remove oldest checkpoints
233
+ const toRemove = checkpoints.slice(0, checkpoints.length - this.config.maxCheckpointsPerSession);
234
+ const sessionDir = join(this.config.checkpointDir, sessionId);
235
+ for (const ckpt of toRemove) {
236
+ try {
237
+ unlinkSync(join(sessionDir, `${ckpt.id}.json`));
238
+ }
239
+ catch {
240
+ // Deletion may fail
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }
246
+ /**
247
+ * Create an auto-checkpoint manager.
248
+ */
249
+ export function createAutoCheckpointManager(config) {
250
+ return new AutoCheckpointManager(config);
251
+ }
252
+ //# sourceMappingURL=auto-checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-checkpoint.js","sourceRoot":"","sources":["../../../src/integrations/auto-checkpoint.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,8 @@ export interface BudgetPoolStats {
49
49
  utilization: number;
50
50
  }
51
51
  export declare class SharedBudgetPool {
52
- private readonly config;
52
+ private config;
53
+ private readonly originalMaxPerChild;
53
54
  private allocations;
54
55
  private totalTokensUsed;
55
56
  private totalCostUsed;
@@ -86,6 +87,17 @@ export declare class SharedBudgetPool {
86
87
  * Check if the pool has enough budget for at least one more child.
87
88
  */
88
89
  hasCapacity(): boolean;
90
+ /**
91
+ * Temporarily override maxPerChild for parallel batch spawning.
92
+ * Used by spawnAgentsParallel to divide the pool equally among children
93
+ * instead of each child racing for the full maxPerChild allocation.
94
+ * Must be followed by resetMaxPerChild() in a finally block.
95
+ */
96
+ setMaxPerChild(maxPerChild: number): void;
97
+ /**
98
+ * Restore maxPerChild to the original value set at construction time.
99
+ */
100
+ resetMaxPerChild(): void;
89
101
  }
90
102
  /**
91
103
  * Create a budget pool from a parent's total budget.
@@ -1 +1 @@
1
- {"version":3,"file":"budget-pool.d.ts","sourceRoot":"","sources":["../../../src/integrations/budget-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,aAAa,CAAK;IAC1B,qEAAqE;IACrE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,iBAAiB,CAAK;gBAElB,MAAM,EAAE,gBAAgB;IAIpC;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAsCjD;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAcnE;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAU9B;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAM7C;;OAEG;IACH,QAAQ,IAAI,eAAe;IAa3B;;OAEG;IACH,WAAW,IAAI,OAAO;CAIvB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,GAAE,MAAa,EAAE,mCAAmC;AACtE,WAAW,GAAE,MAAe,GAC3B,gBAAgB,CAUlB"}
1
+ {"version":3,"file":"budget-pool.d.ts","sourceRoot":"","sources":["../../../src/integrations/budget-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,aAAa,CAAK;IAC1B,qEAAqE;IACrE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,iBAAiB,CAAK;gBAElB,MAAM,EAAE,gBAAgB;IAKpC;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAsCjD;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAcnE;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAU9B;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAM7C;;OAEG;IACH,QAAQ,IAAI,eAAe;IAa3B;;OAEG;IACH,WAAW,IAAI,OAAO;IAKtB;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,gBAAgB,IAAI,IAAI;CAGzB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,GAAE,MAAa,EAAE,mCAAmC;AACtE,WAAW,GAAE,MAAe,GAC3B,gBAAgB,CAUlB"}
@@ -19,6 +19,7 @@
19
19
  // =============================================================================
20
20
  export class SharedBudgetPool {
21
21
  config;
22
+ originalMaxPerChild;
22
23
  allocations = new Map();
23
24
  totalTokensUsed = 0;
24
25
  totalCostUsed = 0;
@@ -27,6 +28,7 @@ export class SharedBudgetPool {
27
28
  totalCostReserved = 0;
28
29
  constructor(config) {
29
30
  this.config = config;
31
+ this.originalMaxPerChild = config.maxPerChild;
30
32
  }
31
33
  /**
32
34
  * Reserve a budget allocation for a child agent.
@@ -123,6 +125,21 @@ export class SharedBudgetPool {
123
125
  const committed = Math.max(this.totalTokensUsed, this.totalTokensReserved);
124
126
  return (this.config.totalTokens - committed) > 10000; // Minimum 10K tokens
125
127
  }
128
+ /**
129
+ * Temporarily override maxPerChild for parallel batch spawning.
130
+ * Used by spawnAgentsParallel to divide the pool equally among children
131
+ * instead of each child racing for the full maxPerChild allocation.
132
+ * Must be followed by resetMaxPerChild() in a finally block.
133
+ */
134
+ setMaxPerChild(maxPerChild) {
135
+ this.config.maxPerChild = maxPerChild;
136
+ }
137
+ /**
138
+ * Restore maxPerChild to the original value set at construction time.
139
+ */
140
+ resetMaxPerChild() {
141
+ this.config.maxPerChild = this.originalMaxPerChild;
142
+ }
126
143
  }
127
144
  // =============================================================================
128
145
  // FACTORY
@@ -1 +1 @@
1
- {"version":3,"file":"budget-pool.js","sourceRoot":"","sources":["../../../src/integrations/budget-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"budget-pool.js","sourceRoot":"","sources":["../../../src/integrations/budget-pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Complexity Classifier
3
+ *
4
+ * Heuristic-based task complexity assessment that determines
5
+ * the appropriate execution strategy (agent count, tool budget,
6
+ * swarm mode) without requiring an LLM call.
7
+ *
8
+ * Inspired by Anthropic's multi-agent research system's approach
9
+ * to scaling effort based on task complexity.
10
+ */
11
+ export type ComplexityTier = 'simple' | 'medium' | 'complex' | 'deep_research';
12
+ export interface ComplexityAssessment {
13
+ /** Classified complexity tier */
14
+ tier: ComplexityTier;
15
+ /** Confidence in the classification (0-1) */
16
+ confidence: number;
17
+ /** Human-readable reasoning */
18
+ reasoning: string;
19
+ /** Recommended execution parameters */
20
+ recommendation: ExecutionRecommendation;
21
+ /** Signals that contributed to the classification */
22
+ signals: ComplexitySignal[];
23
+ }
24
+ export interface ExecutionRecommendation {
25
+ /** Number of agents to use */
26
+ agentCount: {
27
+ min: number;
28
+ max: number;
29
+ };
30
+ /** Tool calls per agent */
31
+ toolCallsPerAgent: {
32
+ min: number;
33
+ max: number;
34
+ };
35
+ /** Whether to use swarm mode */
36
+ useSwarmMode: boolean;
37
+ /** Suggested agent types */
38
+ suggestedAgents: string[];
39
+ /** Budget multiplier relative to standard */
40
+ budgetMultiplier: number;
41
+ /** Whether extended thinking is recommended */
42
+ useExtendedThinking: boolean;
43
+ }
44
+ export interface ComplexitySignal {
45
+ name: string;
46
+ value: number;
47
+ weight: number;
48
+ description: string;
49
+ }
50
+ export interface ClassificationContext {
51
+ /** Number of files in the project */
52
+ projectFileCount?: number;
53
+ /** Whether the task references specific files */
54
+ referencesFiles?: boolean;
55
+ /** Previous task in the session (for context) */
56
+ previousTask?: string;
57
+ /** Currently active plan */
58
+ hasActivePlan?: boolean;
59
+ }
60
+ /**
61
+ * Classify task complexity using heuristic signals.
62
+ * No LLM call needed — fast and deterministic.
63
+ */
64
+ export declare function classifyComplexity(task: string, context?: ClassificationContext): ComplexityAssessment;
65
+ /**
66
+ * Generate scaling guidance for injection into the agent's system prompt.
67
+ * This follows Anthropic's pattern of embedding scaling rules directly in prompts.
68
+ */
69
+ export declare function getScalingGuidance(assessment: ComplexityAssessment): string;
70
+ /**
71
+ * Create a complexity classifier with custom thresholds.
72
+ */
73
+ export declare function createComplexityClassifier(config?: {
74
+ simpleThreshold?: number;
75
+ mediumThreshold?: number;
76
+ complexThreshold?: number;
77
+ }): {
78
+ classify: (task: string, context?: ClassificationContext) => ComplexityAssessment;
79
+ getScalingGuidance: typeof getScalingGuidance;
80
+ thresholds: {
81
+ simple: number;
82
+ medium: number;
83
+ complex: number;
84
+ };
85
+ };
86
+ //# sourceMappingURL=complexity-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complexity-classifier.d.ts","sourceRoot":"","sources":["../../../src/integrations/complexity-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,eAAe,CAAC;AAE/E,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,cAAc,EAAE,uBAAuB,CAAC;IACxC,qDAAqD;IACrD,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,8BAA8B;IAC9B,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,2BAA2B;IAC3B,iBAAiB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,gCAAgC;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,4BAA4B;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA+ED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,qBAAqB,GAC9B,oBAAoB,CA2GtB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAgC3E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,CAAC,EAAE;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;qBAQoB,MAAM,YAAY,qBAAqB;;;;;;;EAK3D"}