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
@@ -11,4 +11,10 @@ import { z } from 'zod';
11
11
  * Use this instead of z.boolean() for tool parameters that may receive string values.
12
12
  */
13
13
  export declare function coerceBoolean(): z.ZodEffects<z.ZodBoolean, boolean, unknown>;
14
+ /**
15
+ * A string schema that accepts arrays by joining elements with newlines.
16
+ * Weaker models (GLM-4, Qwen, etc.) sometimes send file content as an array
17
+ * of lines instead of a single string. This coerces arrays into proper strings.
18
+ */
19
+ export declare function coerceString(): z.ZodEffects<z.ZodString, string, unknown>;
14
20
  //# sourceMappingURL=coercion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coercion.d.ts","sourceRoot":"","sources":["../../../src/tools/coercion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,wBAAgB,aAAa,iDAS5B"}
1
+ {"version":3,"file":"coercion.d.ts","sourceRoot":"","sources":["../../../src/tools/coercion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,wBAAgB,aAAa,iDAS5B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,+CAO3B"}
@@ -22,4 +22,17 @@ export function coerceBoolean() {
22
22
  return val;
23
23
  }, z.boolean());
24
24
  }
25
+ /**
26
+ * A string schema that accepts arrays by joining elements with newlines.
27
+ * Weaker models (GLM-4, Qwen, etc.) sometimes send file content as an array
28
+ * of lines instead of a single string. This coerces arrays into proper strings.
29
+ */
30
+ export function coerceString() {
31
+ return z.preprocess((val) => {
32
+ if (Array.isArray(val)) {
33
+ return val.map(item => String(item)).join('\n');
34
+ }
35
+ return val;
36
+ }, z.string());
37
+ }
25
38
  //# sourceMappingURL=coercion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coercion.js","sourceRoot":"","sources":["../../../src/tools/coercion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;YACtE,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;QACzE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"coercion.js","sourceRoot":"","sources":["../../../src/tools/coercion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;YACtE,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;QACzE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACjB,CAAC"}
@@ -13,13 +13,13 @@ export declare const readFileTool: import("./types.js").ToolDefinition<z.ZodObje
13
13
  }>>;
14
14
  export declare const writeFileTool: import("./types.js").ToolDefinition<z.ZodObject<{
15
15
  path: z.ZodString;
16
- content: z.ZodString;
16
+ content: z.ZodEffects<z.ZodString, string, unknown>;
17
17
  }, "strip", z.ZodTypeAny, {
18
18
  content: string;
19
19
  path: string;
20
20
  }, {
21
- content: string;
22
21
  path: string;
22
+ content?: unknown;
23
23
  }>>;
24
24
  export declare const editFileTool: import("./types.js").ToolDefinition<z.ZodObject<{
25
25
  path: z.ZodString;
@@ -7,7 +7,7 @@ import { z } from 'zod';
7
7
  import * as fs from 'node:fs/promises';
8
8
  import * as path from 'node:path';
9
9
  import { defineTool } from './registry.js';
10
- import { coerceBoolean } from './coercion.js';
10
+ import { coerceBoolean, coerceString } from './coercion.js';
11
11
  import { FileOperationError, ErrorCategory } from '../errors/index.js';
12
12
  import { generateDiff } from '../integrations/diff-utils.js';
13
13
  // =============================================================================
@@ -75,7 +75,7 @@ async function writeFileAtomic(filePath, content) {
75
75
  }
76
76
  const writeFileSchema = z.object({
77
77
  path: z.string().describe('Path to the file to write'),
78
- content: z.string().describe('Content to write to the file'),
78
+ content: coerceString().describe('Content to write to the file'),
79
79
  });
80
80
  export const writeFileTool = defineTool('write_file', 'Write content to a file (creates or overwrites)', writeFileSchema, async (input) => {
81
81
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/tools/file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/tools/file.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/tools/permission.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAuPpB;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,iBAAiB,CAchF;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAqB1F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAsB3E;AAMD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAChD,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IAEvC,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAqCrE"}
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/tools/permission.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AA4HpB;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,iBAAiB,CAchF;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAqB1F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAoB3E;AAMD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAChD,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IAEvC,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAqCrE"}
@@ -5,112 +5,7 @@
5
5
  */
6
6
  import * as readline from 'node:readline';
7
7
  import { DANGEROUS_PATTERNS } from './types.js';
8
- // =============================================================================
9
- // READ-ONLY COMMAND PATTERNS
10
- // =============================================================================
11
- /**
12
- * Patterns for read-only bash commands that can be auto-approved.
13
- * These commands only read data and don't modify the filesystem or system state.
14
- */
15
- const READ_ONLY_COMMAND_PATTERNS = [
16
- // File reading commands
17
- /^cat\s/,
18
- /^head\s/,
19
- /^tail\s/,
20
- /^less\s/,
21
- /^more\s/,
22
- // File listing and info
23
- /^ls\b/,
24
- /^stat\s/,
25
- /^file\s/,
26
- /^tree\b/,
27
- /^du\s/,
28
- /^df\b/,
29
- /^wc\s/,
30
- // File searching
31
- /^find\s/,
32
- /^grep\s/,
33
- /^rg\s/, // ripgrep
34
- /^ag\s/, // silver searcher
35
- /^ack\s/,
36
- /^fd\s/, // fd-find
37
- // Text processing (read-only)
38
- /^diff\s/,
39
- /^cmp\s/,
40
- /^sort\s.*\|/, // sort piped (not writing)
41
- /^uniq\s/,
42
- /^cut\s/,
43
- /^awk\s.*\|/, // awk piped (not writing)
44
- // System info
45
- /^which\s/,
46
- /^type\s/,
47
- /^whereis\s/,
48
- /^pwd$/,
49
- /^whoami$/,
50
- /^id$/,
51
- /^env$/,
52
- /^printenv\b/,
53
- /^hostname$/,
54
- /^uname\b/,
55
- /^uptime$/,
56
- /^date$/,
57
- /^echo\s/,
58
- // Git read-only commands
59
- /^git\s+(status|log|diff|show|branch|remote|rev-parse|describe|tag\s+-l|ls-files|ls-tree)\b/,
60
- /^git\s+config\s+--get/,
61
- /^git\s+config\s+-l/,
62
- /^git\s+config\s+--list/,
63
- /^git\s+blame\s/,
64
- /^git\s+shortlog\b/,
65
- /^git\s+stash\s+list/,
66
- // npm read-only commands
67
- /^npm\s+(ls|list|view|show|info|outdated|audit|search|whoami|version)\b/,
68
- /^npm\s+config\s+(list|get)/,
69
- // yarn read-only
70
- /^yarn\s+(list|info|outdated|why|workspaces)\b/,
71
- // pnpm read-only
72
- /^pnpm\s+(list|ls|outdated|why)\b/,
73
- // Python read-only
74
- /^python3?\s+-c\s+["']print/,
75
- /^pip\s+(list|show|freeze|search)\b/,
76
- /^pip3\s+(list|show|freeze|search)\b/,
77
- // Node read-only
78
- /^node\s+-e\s+["']console\.log/,
79
- /^node\s+--version$/,
80
- /^npm\s+--version$/,
81
- // Process inspection
82
- /^ps\b/,
83
- /^top\s+-l\s+1/, // one-shot top
84
- /^pgrep\s/,
85
- // Network inspection (read-only)
86
- /^ping\s+-c\s+\d/, // limited ping
87
- /^host\s/,
88
- /^dig\s/,
89
- /^nslookup\s/,
90
- // Testing commands (generally safe)
91
- /^npm\s+test\b/,
92
- /^npm\s+run\s+test\b/,
93
- /^yarn\s+test\b/,
94
- /^pnpm\s+test\b/,
95
- /^jest\b/,
96
- /^vitest\b/,
97
- /^mocha\b/,
98
- /^pytest\b/,
99
- /^go\s+test\b/,
100
- /^cargo\s+test\b/,
101
- // Type checking (read-only)
102
- /^tsc\s+--noEmit/,
103
- /^tsc\s+-p\s+.*--noEmit/,
104
- /^npm\s+run\s+(typecheck|type-check|check-types)\b/,
105
- /^npx\s+tsc\s+--noEmit/,
106
- // Linting (read-only)
107
- /^eslint\b/,
108
- /^prettier\s+--check/,
109
- /^npm\s+run\s+lint\b/,
110
- // Build inspection
111
- /^make\s+-n/, // dry-run
112
- /^cargo\s+check\b/,
113
- ];
8
+ import { isReadOnlyBashCommand } from '../integrations/bash-policy.js';
114
9
  // =============================================================================
115
10
  // PERMISSION CHECKER IMPLEMENTATIONS
116
11
  // =============================================================================
@@ -289,11 +184,9 @@ export function classifyBashCommandDangerLevel(command) {
289
184
  if (reasons.length > 0) {
290
185
  return dangerousLevel;
291
186
  }
292
- // Check if command matches read-only patterns
293
- for (const pattern of READ_ONLY_COMMAND_PATTERNS) {
294
- if (pattern.test(normalizedCommand)) {
295
- return 'safe';
296
- }
187
+ // F6: Delegate to bash-policy.ts (single source of truth) for read-only classification
188
+ if (isReadOnlyBashCommand(normalizedCommand)) {
189
+ return 'safe';
297
190
  }
298
191
  // Default to moderate for unknown commands
299
192
  // This ensures new/unknown commands still get reviewed
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/tools/permission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/tools/permission.ts"],"names":[],"mappings":"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"}
@@ -33,19 +33,35 @@ export declare function toOpenRouterSchema(tool: ToolDescription): ToolDefinitio
33
33
  * Convert multiple tool descriptions to OpenRouter format.
34
34
  */
35
35
  export declare function toOpenRouterSchemas(tools: ToolDescription[]): ToolDefinitionSchema[];
36
+ /**
37
+ * Options for creating a standard tool registry.
38
+ */
39
+ export interface StandardRegistryOptions {
40
+ /**
41
+ * Base path for all tool operations.
42
+ * When set, relative paths in file/bash tools are resolved against this directory,
43
+ * and bash commands default to this as their cwd.
44
+ * Falls back to process.cwd() behavior when not set.
45
+ */
46
+ basePath?: string;
47
+ }
36
48
  /**
37
49
  * Create a pre-configured tool registry with all standard tools.
38
50
  *
39
51
  * @param permissionMode - How to handle dangerous operations
52
+ * @param options - Optional configuration including basePath for path resolution
40
53
  * @returns Configured ToolRegistry with all tools registered
41
54
  *
42
55
  * @example
43
56
  * ```typescript
44
57
  * const registry = createStandardRegistry('interactive');
45
58
  * const result = await registry.execute('read_file', { path: 'README.md' });
59
+ *
60
+ * // With basePath for isolated execution
61
+ * const isolated = createStandardRegistry('yolo', { basePath: '/tmp/workspace' });
46
62
  * ```
47
63
  */
48
- export declare function createStandardRegistry(permissionMode?: PermissionMode): ToolRegistry;
64
+ export declare function createStandardRegistry(permissionMode?: PermissionMode, options?: StandardRegistryOptions): ToolRegistry;
49
65
  /**
50
66
  * Get OpenRouter-compatible tool schemas for all standard tools.
51
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../src/tools/standard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMlE,OAAO,EAEL,YAAY,EACZ,UAAU,EAGV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EAGb,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,CAAC;AAMF;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,oBAAoB,CAU9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,oBAAoB,EAAE,CAEpF;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,GAAE,cAA8B,GAAG,YAAY,CAoBnG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,oBAAoB,EAAE,CAG/D;AAMD;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAiBxC"}
1
+ {"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../src/tools/standard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,YAAY,CAAC;AAOlF,OAAO,EAEL,YAAY,EACZ,UAAU,EAGV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EAGb,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,CAAC;AAMF;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,oBAAoB,CAU9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,oBAAoB,EAAE,CAEpF;AAuDD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,GAAE,cAA8B,EAC9C,OAAO,CAAC,EAAE,uBAAuB,GAChC,YAAY,CA8Bd;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,oBAAoB,EAAE,CAG/D;AAMD;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAiBxC"}
@@ -8,6 +8,7 @@ import { ToolRegistry, defineTool } from './registry.js';
8
8
  import { readFileTool, writeFileTool, editFileTool, listFilesTool } from './file.js';
9
9
  import { bashTool, grepTool, globTool } from './bash.js';
10
10
  import { undoToolsAsStandard } from './undo.js';
11
+ import * as path from 'node:path';
11
12
  // =============================================================================
12
13
  // RE-EXPORTS
13
14
  // =============================================================================
@@ -57,31 +58,83 @@ export function toOpenRouterSchemas(tools) {
57
58
  return tools.map(toOpenRouterSchema);
58
59
  }
59
60
  // =============================================================================
60
- // PRESET REGISTRY
61
+ // BASE PATH WRAPPING
61
62
  // =============================================================================
63
+ /**
64
+ * Resolve a path relative to a base directory.
65
+ * Absolute paths are returned as-is. Relative paths are resolved against basePath.
66
+ */
67
+ function resolveAgainstBase(basePath, filePath) {
68
+ if (path.isAbsolute(filePath))
69
+ return filePath;
70
+ return path.resolve(basePath, filePath);
71
+ }
72
+ /**
73
+ * Wrap a tool so that path-like inputs are resolved against a basePath.
74
+ * The wrapper preserves the original tool's schema, description, and danger level.
75
+ *
76
+ * Uses 'any' cast internally because Zod's generic type parameters are invariant,
77
+ * making it impossible to express "same type in, same type out" without it.
78
+ */
79
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
+ function wrapToolWithBasePath(tool, basePath, pathFields, cwdField) {
81
+ return {
82
+ ...tool,
83
+ execute: async (input) => {
84
+ const resolved = { ...input };
85
+ // Resolve path fields
86
+ for (const field of pathFields) {
87
+ if (typeof resolved[field] === 'string') {
88
+ resolved[field] = resolveAgainstBase(basePath, resolved[field]);
89
+ }
90
+ }
91
+ // Set default cwd if not provided
92
+ if (cwdField && !resolved[cwdField]) {
93
+ resolved[cwdField] = basePath;
94
+ }
95
+ return tool.execute(resolved);
96
+ },
97
+ };
98
+ }
62
99
  /**
63
100
  * Create a pre-configured tool registry with all standard tools.
64
101
  *
65
102
  * @param permissionMode - How to handle dangerous operations
103
+ * @param options - Optional configuration including basePath for path resolution
66
104
  * @returns Configured ToolRegistry with all tools registered
67
105
  *
68
106
  * @example
69
107
  * ```typescript
70
108
  * const registry = createStandardRegistry('interactive');
71
109
  * const result = await registry.execute('read_file', { path: 'README.md' });
110
+ *
111
+ * // With basePath for isolated execution
112
+ * const isolated = createStandardRegistry('yolo', { basePath: '/tmp/workspace' });
72
113
  * ```
73
114
  */
74
- export function createStandardRegistry(permissionMode = 'interactive') {
115
+ export function createStandardRegistry(permissionMode = 'interactive', options) {
75
116
  const registry = new ToolRegistry(permissionMode);
76
- // File operations
77
- registry.register(readFileTool);
78
- registry.register(writeFileTool);
79
- registry.register(editFileTool);
80
- registry.register(listFilesTool);
81
- // Bash operations
82
- registry.register(bashTool);
83
- registry.register(grepTool);
84
- registry.register(globTool);
117
+ const basePath = options?.basePath;
118
+ if (basePath) {
119
+ // Wrap tools to resolve paths against basePath
120
+ registry.register(wrapToolWithBasePath(readFileTool, basePath, ['path']));
121
+ registry.register(wrapToolWithBasePath(writeFileTool, basePath, ['path']));
122
+ registry.register(wrapToolWithBasePath(editFileTool, basePath, ['path']));
123
+ registry.register(wrapToolWithBasePath(listFilesTool, basePath, ['path']));
124
+ registry.register(wrapToolWithBasePath(bashTool, basePath, [], 'cwd'));
125
+ registry.register(wrapToolWithBasePath(grepTool, basePath, ['path']));
126
+ registry.register(wrapToolWithBasePath(globTool, basePath, ['path']));
127
+ }
128
+ else {
129
+ // Register tools as-is (original behavior)
130
+ registry.register(readFileTool);
131
+ registry.register(writeFileTool);
132
+ registry.register(editFileTool);
133
+ registry.register(listFilesTool);
134
+ registry.register(bashTool);
135
+ registry.register(grepTool);
136
+ registry.register(globTool);
137
+ }
85
138
  // Undo/history operations (gracefully handle missing tracker context)
86
139
  for (const tool of undoToolsAsStandard) {
87
140
  registry.register(tool);
@@ -1 +1 @@
1
- {"version":3,"file":"standard.js","sourceRoot":"","sources":["../../../src/tools/standard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standard.js","sourceRoot":"","sources":["../../../src/tools/standard.ts"],"names":[],"mappings":"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"}
@@ -74,7 +74,160 @@ export type TraceEvent = {
74
74
  } | {
75
75
  type: 'error';
76
76
  data: ErrorData;
77
+ } | {
78
+ type: 'swarm.start';
79
+ data: SwarmStartData;
80
+ } | {
81
+ type: 'swarm.decomposition';
82
+ data: SwarmDecompositionData;
83
+ } | {
84
+ type: 'swarm.wave';
85
+ data: SwarmWaveData;
86
+ } | {
87
+ type: 'swarm.task';
88
+ data: SwarmTaskData;
89
+ } | {
90
+ type: 'swarm.quality';
91
+ data: SwarmQualityData;
92
+ } | {
93
+ type: 'swarm.budget';
94
+ data: SwarmBudgetData;
95
+ } | {
96
+ type: 'swarm.verification';
97
+ data: SwarmVerificationData;
98
+ } | {
99
+ type: 'swarm.complete';
100
+ data: SwarmCompleteData;
101
+ } | {
102
+ type: 'swarm.orchestrator.llm';
103
+ data: SwarmOrchestratorLLMData;
104
+ } | {
105
+ type: 'swarm.wave.allFailed';
106
+ data: SwarmWaveAllFailedData;
107
+ } | {
108
+ type: 'swarm.phase.progress';
109
+ data: SwarmPhaseProgressData;
110
+ } | {
111
+ type: 'context.compacted';
112
+ data: ContextCompactionData;
77
113
  };
114
+ /**
115
+ * Swarm start data.
116
+ */
117
+ export interface SwarmStartData {
118
+ taskCount: number;
119
+ config: {
120
+ maxConcurrency: number;
121
+ totalBudget: number;
122
+ maxCost: number;
123
+ };
124
+ }
125
+ /**
126
+ * Swarm decomposition data.
127
+ */
128
+ export interface SwarmDecompositionData {
129
+ tasks: Array<{
130
+ id: string;
131
+ description: string;
132
+ type: string;
133
+ wave: number;
134
+ deps: string[];
135
+ }>;
136
+ totalWaves: number;
137
+ }
138
+ /**
139
+ * Swarm wave data.
140
+ */
141
+ export interface SwarmWaveData {
142
+ phase: 'start' | 'complete';
143
+ wave: number;
144
+ taskCount: number;
145
+ completed?: number;
146
+ failed?: number;
147
+ }
148
+ /**
149
+ * Swarm task data.
150
+ */
151
+ export interface SwarmTaskData {
152
+ phase: 'dispatched' | 'completed' | 'failed' | 'skipped';
153
+ taskId: string;
154
+ model?: string;
155
+ tokensUsed?: number;
156
+ costUsed?: number;
157
+ qualityScore?: number;
158
+ error?: string;
159
+ reason?: string;
160
+ }
161
+ /**
162
+ * Swarm quality data.
163
+ */
164
+ export interface SwarmQualityData {
165
+ taskId: string;
166
+ score: number;
167
+ feedback: string;
168
+ }
169
+ /**
170
+ * Swarm budget data.
171
+ */
172
+ export interface SwarmBudgetData {
173
+ tokensUsed: number;
174
+ tokensTotal: number;
175
+ costUsed: number;
176
+ costTotal: number;
177
+ }
178
+ /**
179
+ * Swarm verification data.
180
+ */
181
+ export interface SwarmVerificationData {
182
+ phase: 'start' | 'step' | 'complete';
183
+ stepIndex?: number;
184
+ description?: string;
185
+ passed?: boolean;
186
+ summary?: string;
187
+ }
188
+ /**
189
+ * Swarm complete data.
190
+ */
191
+ export interface SwarmCompleteData {
192
+ stats: {
193
+ totalTasks: number;
194
+ completedTasks: number;
195
+ failedTasks: number;
196
+ totalTokens: number;
197
+ totalCost: number;
198
+ totalDuration: number;
199
+ };
200
+ }
201
+ /**
202
+ * Swarm orchestrator LLM call data.
203
+ */
204
+ export interface SwarmOrchestratorLLMData {
205
+ model: string;
206
+ purpose: string;
207
+ tokens: number;
208
+ cost: number;
209
+ }
210
+ /**
211
+ * Swarm wave all-failed data.
212
+ */
213
+ export interface SwarmWaveAllFailedData {
214
+ wave: number;
215
+ }
216
+ /**
217
+ * Swarm phase progress data.
218
+ */
219
+ export interface SwarmPhaseProgressData {
220
+ phase: 'decomposing' | 'planning' | 'scheduling';
221
+ message: string;
222
+ }
223
+ /**
224
+ * Context compaction data.
225
+ */
226
+ export interface ContextCompactionData {
227
+ tokensBefore: number;
228
+ tokensAfter: number;
229
+ recoveryInjected: boolean;
230
+ }
78
231
  /**
79
232
  * LLM request data.
80
233
  */
@@ -412,6 +565,20 @@ export declare class TraceCollector {
412
565
  * Record decision events.
413
566
  */
414
567
  private recordDecision;
568
+ /** Budget event counter for sampling (only record every 5th). */
569
+ private swarmBudgetCounter;
570
+ private recordSwarmStart;
571
+ private recordSwarmDecomposition;
572
+ private recordSwarmWave;
573
+ private recordSwarmTask;
574
+ private recordSwarmQuality;
575
+ private recordSwarmBudget;
576
+ private recordSwarmVerification;
577
+ private recordSwarmComplete;
578
+ /**
579
+ * Record a context compaction event.
580
+ */
581
+ private recordContextCompaction;
415
582
  /**
416
583
  * Start a new iteration.
417
584
  */