erosolar-cli 1.7.341 → 1.7.342

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 (327) hide show
  1. package/README.md +24 -148
  2. package/dist/bin/erosolar.js +5 -21
  3. package/dist/bin/erosolar.js.map +1 -1
  4. package/dist/capabilities/agentSpawningCapability.d.ts.map +1 -1
  5. package/dist/capabilities/agentSpawningCapability.js +56 -31
  6. package/dist/capabilities/agentSpawningCapability.js.map +1 -1
  7. package/dist/contracts/agent-schemas.json +0 -15
  8. package/dist/contracts/tools.schema.json +0 -9
  9. package/dist/core/agent.d.ts +2 -2
  10. package/dist/core/agent.d.ts.map +1 -1
  11. package/dist/core/agent.js.map +1 -1
  12. package/dist/core/customCommands.d.ts +1 -0
  13. package/dist/core/customCommands.d.ts.map +1 -1
  14. package/dist/core/customCommands.js +3 -0
  15. package/dist/core/customCommands.js.map +1 -1
  16. package/dist/core/hooks.d.ts +113 -0
  17. package/dist/core/hooks.d.ts.map +1 -0
  18. package/dist/core/hooks.js +267 -0
  19. package/dist/core/hooks.js.map +1 -0
  20. package/dist/core/metricsTracker.d.ts +122 -0
  21. package/dist/core/metricsTracker.d.ts.map +1 -0
  22. package/dist/{alpha-zero → core}/metricsTracker.js +2 -5
  23. package/dist/core/metricsTracker.js.map +1 -0
  24. package/dist/core/securityAssessment.d.ts +91 -0
  25. package/dist/core/securityAssessment.d.ts.map +1 -0
  26. package/dist/core/securityAssessment.js +580 -0
  27. package/dist/core/securityAssessment.js.map +1 -0
  28. package/dist/core/sessionStore.d.ts +2 -0
  29. package/dist/core/sessionStore.d.ts.map +1 -1
  30. package/dist/core/sessionStore.js +1 -0
  31. package/dist/core/sessionStore.js.map +1 -1
  32. package/dist/core/toolPreconditions.d.ts.map +1 -1
  33. package/dist/core/toolPreconditions.js +0 -14
  34. package/dist/core/toolPreconditions.js.map +1 -1
  35. package/dist/core/toolRuntime.d.ts +22 -1
  36. package/dist/core/toolRuntime.d.ts.map +1 -1
  37. package/dist/core/toolRuntime.js +0 -5
  38. package/dist/core/toolRuntime.js.map +1 -1
  39. package/dist/core/toolValidation.d.ts.map +1 -1
  40. package/dist/core/toolValidation.js +14 -3
  41. package/dist/core/toolValidation.js.map +1 -1
  42. package/dist/core/validationRunner.d.ts +1 -3
  43. package/dist/core/validationRunner.d.ts.map +1 -1
  44. package/dist/core/validationRunner.js.map +1 -1
  45. package/dist/core/verification.d.ts +137 -0
  46. package/dist/core/verification.d.ts.map +1 -0
  47. package/dist/core/verification.js +323 -0
  48. package/dist/core/verification.js.map +1 -0
  49. package/dist/headless/headlessApp.d.ts.map +1 -1
  50. package/dist/headless/headlessApp.js +21 -0
  51. package/dist/headless/headlessApp.js.map +1 -1
  52. package/dist/mcp/sseClient.d.ts.map +1 -1
  53. package/dist/mcp/sseClient.js +9 -18
  54. package/dist/mcp/sseClient.js.map +1 -1
  55. package/dist/plugins/tools/build/buildPlugin.d.ts +0 -6
  56. package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -1
  57. package/dist/plugins/tools/build/buildPlugin.js +4 -10
  58. package/dist/plugins/tools/build/buildPlugin.js.map +1 -1
  59. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  60. package/dist/plugins/tools/nodeDefaults.js +0 -2
  61. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  62. package/dist/runtime/agentSession.d.ts +2 -2
  63. package/dist/runtime/agentSession.d.ts.map +1 -1
  64. package/dist/runtime/agentSession.js +2 -2
  65. package/dist/runtime/agentSession.js.map +1 -1
  66. package/dist/shell/interactiveShell.d.ts +19 -7
  67. package/dist/shell/interactiveShell.d.ts.map +1 -1
  68. package/dist/shell/interactiveShell.js +271 -166
  69. package/dist/shell/interactiveShell.js.map +1 -1
  70. package/dist/shell/shellApp.d.ts +2 -0
  71. package/dist/shell/shellApp.d.ts.map +1 -1
  72. package/dist/shell/shellApp.js +82 -9
  73. package/dist/shell/shellApp.js.map +1 -1
  74. package/dist/shell/systemPrompt.d.ts.map +1 -1
  75. package/dist/shell/systemPrompt.js +1 -4
  76. package/dist/shell/systemPrompt.js.map +1 -1
  77. package/dist/shell/terminalInput.d.ts +215 -120
  78. package/dist/shell/terminalInput.d.ts.map +1 -1
  79. package/dist/shell/terminalInput.js +926 -537
  80. package/dist/shell/terminalInput.js.map +1 -1
  81. package/dist/shell/terminalInputAdapter.d.ts +99 -21
  82. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  83. package/dist/shell/terminalInputAdapter.js +131 -30
  84. package/dist/shell/terminalInputAdapter.js.map +1 -1
  85. package/dist/subagents/agentConfig.d.ts +27 -0
  86. package/dist/subagents/agentConfig.d.ts.map +1 -0
  87. package/dist/subagents/agentConfig.js +89 -0
  88. package/dist/subagents/agentConfig.js.map +1 -0
  89. package/dist/subagents/agentRegistry.d.ts +33 -0
  90. package/dist/subagents/agentRegistry.d.ts.map +1 -0
  91. package/dist/subagents/agentRegistry.js +162 -0
  92. package/dist/subagents/agentRegistry.js.map +1 -0
  93. package/dist/subagents/taskRunner.d.ts +7 -1
  94. package/dist/subagents/taskRunner.d.ts.map +1 -1
  95. package/dist/subagents/taskRunner.js +180 -47
  96. package/dist/subagents/taskRunner.js.map +1 -1
  97. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  98. package/dist/ui/ShellUIAdapter.js +13 -12
  99. package/dist/ui/ShellUIAdapter.js.map +1 -1
  100. package/dist/ui/display.d.ts +24 -45
  101. package/dist/ui/display.d.ts.map +1 -1
  102. package/dist/ui/display.js +140 -259
  103. package/dist/ui/display.js.map +1 -1
  104. package/dist/ui/theme.d.ts.map +1 -1
  105. package/dist/ui/theme.js +6 -8
  106. package/dist/ui/theme.js.map +1 -1
  107. package/dist/ui/toolDisplay.d.ts +0 -158
  108. package/dist/ui/toolDisplay.d.ts.map +1 -1
  109. package/dist/ui/toolDisplay.js +0 -348
  110. package/dist/ui/toolDisplay.js.map +1 -1
  111. package/dist/ui/unified/layout.d.ts +1 -0
  112. package/dist/ui/unified/layout.d.ts.map +1 -1
  113. package/dist/ui/unified/layout.js +25 -179
  114. package/dist/ui/unified/layout.js.map +1 -1
  115. package/dist/utils/frontmatter.d.ts +10 -0
  116. package/dist/utils/frontmatter.d.ts.map +1 -0
  117. package/dist/utils/frontmatter.js +78 -0
  118. package/dist/utils/frontmatter.js.map +1 -0
  119. package/package.json +4 -4
  120. package/dist/alpha-zero/agentWrapper.d.ts +0 -84
  121. package/dist/alpha-zero/agentWrapper.d.ts.map +0 -1
  122. package/dist/alpha-zero/agentWrapper.js +0 -171
  123. package/dist/alpha-zero/agentWrapper.js.map +0 -1
  124. package/dist/alpha-zero/codeEvaluator.d.ts +0 -25
  125. package/dist/alpha-zero/codeEvaluator.d.ts.map +0 -1
  126. package/dist/alpha-zero/codeEvaluator.js +0 -273
  127. package/dist/alpha-zero/codeEvaluator.js.map +0 -1
  128. package/dist/alpha-zero/competitiveRunner.d.ts +0 -66
  129. package/dist/alpha-zero/competitiveRunner.d.ts.map +0 -1
  130. package/dist/alpha-zero/competitiveRunner.js +0 -224
  131. package/dist/alpha-zero/competitiveRunner.js.map +0 -1
  132. package/dist/alpha-zero/index.d.ts +0 -67
  133. package/dist/alpha-zero/index.d.ts.map +0 -1
  134. package/dist/alpha-zero/index.js +0 -99
  135. package/dist/alpha-zero/index.js.map +0 -1
  136. package/dist/alpha-zero/introspection.d.ts +0 -128
  137. package/dist/alpha-zero/introspection.d.ts.map +0 -1
  138. package/dist/alpha-zero/introspection.js +0 -300
  139. package/dist/alpha-zero/introspection.js.map +0 -1
  140. package/dist/alpha-zero/metricsTracker.d.ts +0 -71
  141. package/dist/alpha-zero/metricsTracker.d.ts.map +0 -1
  142. package/dist/alpha-zero/metricsTracker.js.map +0 -1
  143. package/dist/alpha-zero/security/core.d.ts +0 -125
  144. package/dist/alpha-zero/security/core.d.ts.map +0 -1
  145. package/dist/alpha-zero/security/core.js +0 -271
  146. package/dist/alpha-zero/security/core.js.map +0 -1
  147. package/dist/alpha-zero/security/google.d.ts +0 -125
  148. package/dist/alpha-zero/security/google.d.ts.map +0 -1
  149. package/dist/alpha-zero/security/google.js +0 -311
  150. package/dist/alpha-zero/security/google.js.map +0 -1
  151. package/dist/alpha-zero/security/googleLoader.d.ts +0 -17
  152. package/dist/alpha-zero/security/googleLoader.d.ts.map +0 -1
  153. package/dist/alpha-zero/security/googleLoader.js +0 -41
  154. package/dist/alpha-zero/security/googleLoader.js.map +0 -1
  155. package/dist/alpha-zero/security/index.d.ts +0 -29
  156. package/dist/alpha-zero/security/index.d.ts.map +0 -1
  157. package/dist/alpha-zero/security/index.js +0 -32
  158. package/dist/alpha-zero/security/index.js.map +0 -1
  159. package/dist/alpha-zero/security/simulation.d.ts +0 -124
  160. package/dist/alpha-zero/security/simulation.d.ts.map +0 -1
  161. package/dist/alpha-zero/security/simulation.js +0 -277
  162. package/dist/alpha-zero/security/simulation.js.map +0 -1
  163. package/dist/alpha-zero/selfModification.d.ts +0 -109
  164. package/dist/alpha-zero/selfModification.d.ts.map +0 -1
  165. package/dist/alpha-zero/selfModification.js +0 -233
  166. package/dist/alpha-zero/selfModification.js.map +0 -1
  167. package/dist/alpha-zero/types.d.ts +0 -170
  168. package/dist/alpha-zero/types.d.ts.map +0 -1
  169. package/dist/alpha-zero/types.js +0 -31
  170. package/dist/alpha-zero/types.js.map +0 -1
  171. package/dist/capabilities/securityTestingCapability.d.ts +0 -13
  172. package/dist/capabilities/securityTestingCapability.d.ts.map +0 -1
  173. package/dist/capabilities/securityTestingCapability.js +0 -25
  174. package/dist/capabilities/securityTestingCapability.js.map +0 -1
  175. package/dist/core/aiFlowOptimizer.d.ts +0 -26
  176. package/dist/core/aiFlowOptimizer.d.ts.map +0 -1
  177. package/dist/core/aiFlowOptimizer.js +0 -31
  178. package/dist/core/aiFlowOptimizer.js.map +0 -1
  179. package/dist/core/aiOptimizationEngine.d.ts +0 -158
  180. package/dist/core/aiOptimizationEngine.d.ts.map +0 -1
  181. package/dist/core/aiOptimizationEngine.js +0 -428
  182. package/dist/core/aiOptimizationEngine.js.map +0 -1
  183. package/dist/core/aiOptimizationIntegration.d.ts +0 -93
  184. package/dist/core/aiOptimizationIntegration.d.ts.map +0 -1
  185. package/dist/core/aiOptimizationIntegration.js +0 -250
  186. package/dist/core/aiOptimizationIntegration.js.map +0 -1
  187. package/dist/core/enhancedErrorRecovery.d.ts +0 -100
  188. package/dist/core/enhancedErrorRecovery.d.ts.map +0 -1
  189. package/dist/core/enhancedErrorRecovery.js +0 -345
  190. package/dist/core/enhancedErrorRecovery.js.map +0 -1
  191. package/dist/core/hooksSystem.d.ts +0 -65
  192. package/dist/core/hooksSystem.d.ts.map +0 -1
  193. package/dist/core/hooksSystem.js +0 -273
  194. package/dist/core/hooksSystem.js.map +0 -1
  195. package/dist/core/memorySystem.d.ts +0 -48
  196. package/dist/core/memorySystem.d.ts.map +0 -1
  197. package/dist/core/memorySystem.js +0 -271
  198. package/dist/core/memorySystem.js.map +0 -1
  199. package/dist/core/unified/errors.d.ts +0 -189
  200. package/dist/core/unified/errors.d.ts.map +0 -1
  201. package/dist/core/unified/errors.js +0 -497
  202. package/dist/core/unified/errors.js.map +0 -1
  203. package/dist/core/unified/index.d.ts +0 -19
  204. package/dist/core/unified/index.d.ts.map +0 -1
  205. package/dist/core/unified/index.js +0 -68
  206. package/dist/core/unified/index.js.map +0 -1
  207. package/dist/core/unified/schema.d.ts +0 -101
  208. package/dist/core/unified/schema.d.ts.map +0 -1
  209. package/dist/core/unified/schema.js +0 -350
  210. package/dist/core/unified/schema.js.map +0 -1
  211. package/dist/core/unified/toolRuntime.d.ts +0 -179
  212. package/dist/core/unified/toolRuntime.d.ts.map +0 -1
  213. package/dist/core/unified/toolRuntime.js +0 -517
  214. package/dist/core/unified/toolRuntime.js.map +0 -1
  215. package/dist/core/unified/tools.d.ts +0 -127
  216. package/dist/core/unified/tools.d.ts.map +0 -1
  217. package/dist/core/unified/tools.js +0 -1333
  218. package/dist/core/unified/tools.js.map +0 -1
  219. package/dist/core/unified/types.d.ts +0 -352
  220. package/dist/core/unified/types.d.ts.map +0 -1
  221. package/dist/core/unified/types.js +0 -12
  222. package/dist/core/unified/types.js.map +0 -1
  223. package/dist/core/unified/version.d.ts +0 -209
  224. package/dist/core/unified/version.d.ts.map +0 -1
  225. package/dist/core/unified/version.js +0 -454
  226. package/dist/core/unified/version.js.map +0 -1
  227. package/dist/plugins/tools/security/securityPlugin.d.ts +0 -3
  228. package/dist/plugins/tools/security/securityPlugin.d.ts.map +0 -1
  229. package/dist/plugins/tools/security/securityPlugin.js +0 -12
  230. package/dist/plugins/tools/security/securityPlugin.js.map +0 -1
  231. package/dist/security/active-stack-security.d.ts +0 -112
  232. package/dist/security/active-stack-security.d.ts.map +0 -1
  233. package/dist/security/active-stack-security.js +0 -296
  234. package/dist/security/active-stack-security.js.map +0 -1
  235. package/dist/security/advanced-persistence-research.d.ts +0 -92
  236. package/dist/security/advanced-persistence-research.d.ts.map +0 -1
  237. package/dist/security/advanced-persistence-research.js +0 -195
  238. package/dist/security/advanced-persistence-research.js.map +0 -1
  239. package/dist/security/advanced-targeting.d.ts +0 -119
  240. package/dist/security/advanced-targeting.d.ts.map +0 -1
  241. package/dist/security/advanced-targeting.js +0 -233
  242. package/dist/security/advanced-targeting.js.map +0 -1
  243. package/dist/security/assessment/vulnerabilityAssessment.d.ts +0 -104
  244. package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +0 -1
  245. package/dist/security/assessment/vulnerabilityAssessment.js +0 -315
  246. package/dist/security/assessment/vulnerabilityAssessment.js.map +0 -1
  247. package/dist/security/authorization/securityAuthorization.d.ts +0 -88
  248. package/dist/security/authorization/securityAuthorization.d.ts.map +0 -1
  249. package/dist/security/authorization/securityAuthorization.js +0 -172
  250. package/dist/security/authorization/securityAuthorization.js.map +0 -1
  251. package/dist/security/comprehensive-targeting.d.ts +0 -85
  252. package/dist/security/comprehensive-targeting.d.ts.map +0 -1
  253. package/dist/security/comprehensive-targeting.js +0 -438
  254. package/dist/security/comprehensive-targeting.js.map +0 -1
  255. package/dist/security/global-security-integration.d.ts +0 -91
  256. package/dist/security/global-security-integration.d.ts.map +0 -1
  257. package/dist/security/global-security-integration.js +0 -218
  258. package/dist/security/global-security-integration.js.map +0 -1
  259. package/dist/security/index.d.ts +0 -38
  260. package/dist/security/index.d.ts.map +0 -1
  261. package/dist/security/index.js +0 -47
  262. package/dist/security/index.js.map +0 -1
  263. package/dist/security/persistence-analyzer.d.ts +0 -56
  264. package/dist/security/persistence-analyzer.d.ts.map +0 -1
  265. package/dist/security/persistence-analyzer.js +0 -187
  266. package/dist/security/persistence-analyzer.js.map +0 -1
  267. package/dist/security/persistence-cli.d.ts +0 -36
  268. package/dist/security/persistence-cli.d.ts.map +0 -1
  269. package/dist/security/persistence-cli.js +0 -160
  270. package/dist/security/persistence-cli.js.map +0 -1
  271. package/dist/security/persistence-research.d.ts +0 -92
  272. package/dist/security/persistence-research.d.ts.map +0 -1
  273. package/dist/security/persistence-research.js +0 -364
  274. package/dist/security/persistence-research.js.map +0 -1
  275. package/dist/security/research/persistenceResearch.d.ts +0 -97
  276. package/dist/security/research/persistenceResearch.d.ts.map +0 -1
  277. package/dist/security/research/persistenceResearch.js +0 -282
  278. package/dist/security/research/persistenceResearch.js.map +0 -1
  279. package/dist/security/security-integration.d.ts +0 -74
  280. package/dist/security/security-integration.d.ts.map +0 -1
  281. package/dist/security/security-integration.js +0 -137
  282. package/dist/security/security-integration.js.map +0 -1
  283. package/dist/security/security-testing-framework.d.ts +0 -112
  284. package/dist/security/security-testing-framework.d.ts.map +0 -1
  285. package/dist/security/security-testing-framework.js +0 -364
  286. package/dist/security/security-testing-framework.js.map +0 -1
  287. package/dist/security/simulation/attackSimulation.d.ts +0 -93
  288. package/dist/security/simulation/attackSimulation.d.ts.map +0 -1
  289. package/dist/security/simulation/attackSimulation.js +0 -341
  290. package/dist/security/simulation/attackSimulation.js.map +0 -1
  291. package/dist/security/strategic-operations.d.ts +0 -100
  292. package/dist/security/strategic-operations.d.ts.map +0 -1
  293. package/dist/security/strategic-operations.js +0 -276
  294. package/dist/security/strategic-operations.js.map +0 -1
  295. package/dist/security/tool-security-wrapper.d.ts +0 -58
  296. package/dist/security/tool-security-wrapper.d.ts.map +0 -1
  297. package/dist/security/tool-security-wrapper.js +0 -156
  298. package/dist/security/tool-security-wrapper.js.map +0 -1
  299. package/dist/shell/claudeCodeStreamHandler.d.ts +0 -145
  300. package/dist/shell/claudeCodeStreamHandler.d.ts.map +0 -1
  301. package/dist/shell/claudeCodeStreamHandler.js +0 -322
  302. package/dist/shell/claudeCodeStreamHandler.js.map +0 -1
  303. package/dist/shell/inputQueueManager.d.ts +0 -144
  304. package/dist/shell/inputQueueManager.d.ts.map +0 -1
  305. package/dist/shell/inputQueueManager.js +0 -290
  306. package/dist/shell/inputQueueManager.js.map +0 -1
  307. package/dist/shell/metricsTracker.d.ts +0 -60
  308. package/dist/shell/metricsTracker.d.ts.map +0 -1
  309. package/dist/shell/metricsTracker.js +0 -119
  310. package/dist/shell/metricsTracker.js.map +0 -1
  311. package/dist/shell/streamingOutputManager.d.ts +0 -115
  312. package/dist/shell/streamingOutputManager.d.ts.map +0 -1
  313. package/dist/shell/streamingOutputManager.js +0 -225
  314. package/dist/shell/streamingOutputManager.js.map +0 -1
  315. package/dist/tools/securityTools.d.ts +0 -22
  316. package/dist/tools/securityTools.d.ts.map +0 -1
  317. package/dist/tools/securityTools.js +0 -448
  318. package/dist/tools/securityTools.js.map +0 -1
  319. package/dist/ui/persistentPrompt.d.ts +0 -50
  320. package/dist/ui/persistentPrompt.d.ts.map +0 -1
  321. package/dist/ui/persistentPrompt.js +0 -92
  322. package/dist/ui/persistentPrompt.js.map +0 -1
  323. package/dist/ui/terminalUISchema.d.ts +0 -195
  324. package/dist/ui/terminalUISchema.d.ts.map +0 -1
  325. package/dist/ui/terminalUISchema.js +0 -113
  326. package/dist/ui/terminalUISchema.js.map +0 -1
  327. package/scripts/deploy-security-capabilities.js +0 -178
@@ -35,10 +35,11 @@ export class TerminalInputAdapter {
35
35
  this.input.on('toggleAutoContinue', () => this.callbacks.onToggleAutoContinue?.());
36
36
  }
37
37
  /**
38
- * Start capturing input
38
+ * Start capturing input. Does NOT render - caller should render after setup.
39
39
  */
40
40
  start() {
41
41
  this.input.enableBracketedPaste();
42
+ this.input.enableMouseTracking();
42
43
  // Set up raw mode
43
44
  if (this.inStream.isTTY) {
44
45
  this.inStream.setRawMode(true);
@@ -50,14 +51,14 @@ export class TerminalInputAdapter {
50
51
  this.setupRawDataInterception();
51
52
  // Set up keypress handling
52
53
  this.setupKeypressHandler();
53
- // Initial render
54
- this.input.forceRender();
54
+ // Note: No auto-render here - caller controls when to render
55
55
  }
56
56
  /**
57
57
  * Stop capturing input
58
58
  */
59
59
  stop() {
60
60
  this.input.disableBracketedPaste();
61
+ this.input.disableMouseTracking();
61
62
  // Remove handlers
62
63
  if (this.rawDataHandler) {
63
64
  this.restoreRawDataInterception();
@@ -80,11 +81,10 @@ export class TerminalInputAdapter {
80
81
  this.input.setMode(streaming ? 'streaming' : 'idle');
81
82
  }
82
83
  /**
83
- * Set the row where content ends (for idle mode positioning).
84
- * Input area will render starting from this row + 1.
84
+ * Pin top rows (e.g., the launch banner) outside the scroll region.
85
85
  */
86
- setContentEndRow(row) {
87
- this.input.setContentEndRow(row);
86
+ setPinnedHeaderLines(count) {
87
+ this.input.setPinnedHeaderLines(count);
88
88
  }
89
89
  /**
90
90
  * Get current buffer content
@@ -107,8 +107,8 @@ export class TerminalInputAdapter {
107
107
  /**
108
108
  * Update context usage indicator (0-100, null to clear)
109
109
  */
110
- setContextUsage(percentage) {
111
- this.input.updateContextUsage(percentage);
110
+ setContextUsage(percentage, autoCompactThreshold) {
111
+ this.input.updateContextUsage(percentage, autoCompactThreshold);
112
112
  }
113
113
  /**
114
114
  * Surface mode toggle states (verification/auto-continue) in the control bar.
@@ -116,13 +116,6 @@ export class TerminalInputAdapter {
116
116
  setModeToggles(options) {
117
117
  this.input.setModeToggles(options);
118
118
  }
119
- /**
120
- * Set the model info string (e.g., "OpenAI · gpt-4")
121
- * This is displayed persistently above the input area.
122
- */
123
- setModelInfo(info) {
124
- this.input.setModelInfo(info);
125
- }
126
119
  /**
127
120
  * Update the inline status message shown before the prompt (e.g., streaming heartbeat).
128
121
  */
@@ -143,12 +136,24 @@ export class TerminalInputAdapter {
143
136
  setStreamingLabel(label) {
144
137
  this.input.setStreamingLabel(label);
145
138
  }
139
+ /**
140
+ * Surface meta header information (elapsed, tokens/context) above the divider.
141
+ */
142
+ setMetaStatus(meta) {
143
+ this.input.setMetaStatus(meta);
144
+ }
146
145
  /**
147
146
  * Clear all status messages at once (convenience method).
148
147
  */
149
148
  clearAllStatus() {
150
149
  this.input.clearAllStatus();
151
150
  }
151
+ /**
152
+ * Surface model/provider context in the controls bar.
153
+ */
154
+ setModelContext(options) {
155
+ this.input.setModelContext(options);
156
+ }
152
157
  /**
153
158
  * Set the edit guard mode explicitly
154
159
  */
@@ -185,6 +190,114 @@ export class TerminalInputAdapter {
185
190
  forceRender() {
186
191
  this.input.forceRender();
187
192
  }
193
+ /**
194
+ * Stream content above the pinned chat box (Claude Code method).
195
+ * Automatically enables scroll region on first call.
196
+ */
197
+ streamContent(content) {
198
+ this.input.streamContent(content);
199
+ }
200
+ /**
201
+ * Enable scroll region (Claude Code method).
202
+ * Chat box is pinned below scroll region.
203
+ */
204
+ enableScrollRegion() {
205
+ this.input.enableScrollRegion();
206
+ }
207
+ /**
208
+ * Disable scroll region and reset to full terminal.
209
+ */
210
+ disableScrollRegion() {
211
+ this.input.disableScrollRegion();
212
+ }
213
+ /**
214
+ * @deprecated Use streamContent() instead
215
+ * Write content directly into the scroll region.
216
+ */
217
+ writeToScrollRegion(content) {
218
+ this.input.writeToScrollRegion(content);
219
+ }
220
+ /**
221
+ * Enter alternate screen buffer.
222
+ */
223
+ enterAlternateScreen() {
224
+ this.input.enterAlternateScreen();
225
+ }
226
+ /**
227
+ * Exit alternate screen buffer.
228
+ */
229
+ exitAlternateScreen() {
230
+ this.input.exitAlternateScreen();
231
+ }
232
+ /**
233
+ * Clear the entire terminal screen and reset content position.
234
+ * This removes all content including the launching command.
235
+ */
236
+ clearScreen() {
237
+ this.input.clearScreen();
238
+ }
239
+ /**
240
+ * Enter streaming scroll region mode.
241
+ * Call once at the start of streaming.
242
+ */
243
+ enterStreamingScrollRegion() {
244
+ this.input.enterStreamingScrollRegion();
245
+ }
246
+ /**
247
+ * Exit streaming scroll region mode.
248
+ * Call once at the end of streaming.
249
+ */
250
+ exitStreamingScrollRegion() {
251
+ this.input.exitStreamingScrollRegion();
252
+ }
253
+ /**
254
+ * Get scrollback buffer content for persistence.
255
+ */
256
+ getScrollbackBuffer() {
257
+ return this.input.getScrollbackBuffer();
258
+ }
259
+ /**
260
+ * Load scrollback buffer for restoration.
261
+ */
262
+ loadScrollbackBuffer(lines) {
263
+ this.input.loadScrollbackBuffer(lines);
264
+ }
265
+ /**
266
+ * Clear scrollback buffer.
267
+ */
268
+ clearScrollbackBuffer() {
269
+ this.input.clearScrollbackBuffer();
270
+ }
271
+ /**
272
+ * Check if alternate screen buffer is currently active.
273
+ */
274
+ isAlternateScreenActive() {
275
+ return this.input.isAlternateScreenActive();
276
+ }
277
+ /**
278
+ * Get a snapshot of the scrollback buffer (for display on exit).
279
+ */
280
+ getScrollbackSnapshot() {
281
+ return this.input.getScrollbackSnapshot();
282
+ }
283
+ /**
284
+ * Reset content position to top of scroll region.
285
+ */
286
+ resetContentPosition() {
287
+ this.input.resetContentPosition();
288
+ }
289
+ /**
290
+ * Set the content row explicitly (used after banner is written).
291
+ */
292
+ setContentRow(row) {
293
+ this.input.setContentRow(row);
294
+ }
295
+ /**
296
+ * Get the current content row position.
297
+ */
298
+ getContentRow() {
299
+ return this.input.getContentRow();
300
+ }
188
301
  /**
189
302
  * Handle terminal resize
190
303
  */
@@ -205,24 +318,12 @@ export class TerminalInputAdapter {
205
318
  return this.input;
206
319
  }
207
320
  /**
208
- * Register with display's output interceptor (kept for API compatibility).
321
+ * Register with display's output interceptor for cursor positioning.
322
+ * This ensures streamed output goes to the scroll region during processing.
209
323
  */
210
324
  registerOutputInterceptor(display) {
211
325
  this.input.registerOutputInterceptor(display);
212
326
  }
213
- /**
214
- * Set banner content to be written when unified UI initializes.
215
- */
216
- setBannerContent(content) {
217
- this.input.setBannerContent(content);
218
- }
219
- /**
220
- * Initialize the unified UI system.
221
- * Clears screen, writes banner, renders input area.
222
- */
223
- initializeUnifiedUI() {
224
- this.input.initializeUnifiedUI();
225
- }
226
327
  // ===========================================================================
227
328
  // PRIVATE
228
329
  // ===========================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"terminalInputAdapter.js","sourceRoot":"","sources":["../../src/shell/terminalInputAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminalInputAdapter.js","sourceRoot":"","sources":["../../src/shell/terminalInputAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface InlineAgentConfig {
2
+ description?: string;
3
+ prompt?: string;
4
+ tools?: string | string[];
5
+ model?: string;
6
+ permissionMode?: string;
7
+ skills?: string | string[];
8
+ }
9
+ export type InlineAgentConfigMap = Record<string, InlineAgentConfig>;
10
+ /**
11
+ * Set inline agent config (from CLI flag or env). Values are normalized eagerly.
12
+ */
13
+ export declare function setInlineAgentConfig(config: InlineAgentConfigMap | null): void;
14
+ /**
15
+ * Retrieve the current inline agent configuration.
16
+ */
17
+ export declare function getInlineAgentConfig(): InlineAgentConfigMap | null;
18
+ /**
19
+ * Parse a JSON string into inline agent config, throwing a descriptive error on failure.
20
+ */
21
+ export declare function parseInlineAgentConfig(json: string): InlineAgentConfigMap;
22
+ /**
23
+ * Load inline agent config from environment variables.
24
+ * Supports EROSOLAR_AGENTS as a JSON string.
25
+ */
26
+ export declare function loadInlineAgentConfigFromEnv(env?: NodeJS.ProcessEnv): InlineAgentConfigMap | null;
27
+ //# sourceMappingURL=agentConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../src/subagents/agentConfig.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAIrE;;IAEI;AACJ,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAE9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,oBAAoB,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAWzE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,oBAAoB,GAAG,IAAI,CAY9G"}
@@ -0,0 +1,89 @@
1
+ let inlineAgentConfig = null;
2
+ /**
3
+ * Set inline agent config (from CLI flag or env). Values are normalized eagerly.
4
+ */
5
+ export function setInlineAgentConfig(config) {
6
+ inlineAgentConfig = config ? normalizeConfig(config) : null;
7
+ }
8
+ /**
9
+ * Retrieve the current inline agent configuration.
10
+ */
11
+ export function getInlineAgentConfig() {
12
+ return inlineAgentConfig;
13
+ }
14
+ /**
15
+ * Parse a JSON string into inline agent config, throwing a descriptive error on failure.
16
+ */
17
+ export function parseInlineAgentConfig(json) {
18
+ try {
19
+ const parsed = JSON.parse(json);
20
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
21
+ throw new Error('Inline agents must be an object keyed by agent name.');
22
+ }
23
+ return normalizeConfig(parsed);
24
+ }
25
+ catch (error) {
26
+ const message = error instanceof Error ? error.message : 'Unknown error parsing inline agents';
27
+ throw new Error(`Invalid inline agent config: ${message}`);
28
+ }
29
+ }
30
+ /**
31
+ * Load inline agent config from environment variables.
32
+ * Supports EROSOLAR_AGENTS as a JSON string.
33
+ */
34
+ export function loadInlineAgentConfigFromEnv(env = process.env) {
35
+ const raw = env['EROSOLAR_AGENTS']?.trim();
36
+ if (!raw) {
37
+ return null;
38
+ }
39
+ try {
40
+ return parseInlineAgentConfig(raw);
41
+ }
42
+ catch (error) {
43
+ console.warn('[agent-config] Failed to parse EROSOLAR_AGENTS:', error);
44
+ return null;
45
+ }
46
+ }
47
+ function normalizeConfig(config) {
48
+ const normalized = {};
49
+ for (const [key, value] of Object.entries(config)) {
50
+ if (!key.trim()) {
51
+ continue;
52
+ }
53
+ const agentName = key.trim();
54
+ if (!value || typeof value !== 'object') {
55
+ continue;
56
+ }
57
+ const record = value;
58
+ const description = typeof record['description'] === 'string' ? record['description'].trim() : undefined;
59
+ const prompt = typeof record['prompt'] === 'string' ? record['prompt'].trim() : undefined;
60
+ const model = typeof record['model'] === 'string' ? record['model'].trim() : undefined;
61
+ const permissionMode = typeof record['permissionMode'] === 'string' ? record['permissionMode'].trim() : undefined;
62
+ const tools = normalizeStringList(record['tools']);
63
+ const skills = normalizeStringList(record['skills']);
64
+ normalized[agentName] = {
65
+ description,
66
+ prompt,
67
+ model,
68
+ permissionMode,
69
+ tools,
70
+ skills,
71
+ };
72
+ }
73
+ return normalized;
74
+ }
75
+ function normalizeStringList(value) {
76
+ if (typeof value === 'string') {
77
+ const trimmed = value.trim();
78
+ return trimmed ? [trimmed] : undefined;
79
+ }
80
+ if (Array.isArray(value)) {
81
+ const entries = value
82
+ .filter((entry) => typeof entry === 'string')
83
+ .map((entry) => entry.trim())
84
+ .filter(Boolean);
85
+ return entries.length ? entries : undefined;
86
+ }
87
+ return undefined;
88
+ }
89
+ //# sourceMappingURL=agentConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../src/subagents/agentConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { InlineAgentConfigMap } from './agentConfig.js';
2
+ export type AgentSource = 'builtin' | 'project' | 'user' | 'inline';
3
+ export interface AgentDefinition {
4
+ name: string;
5
+ description: string;
6
+ prompt: string;
7
+ tools?: string[];
8
+ model?: string;
9
+ permissionMode?: string;
10
+ skills?: string[];
11
+ source: AgentSource;
12
+ path?: string;
13
+ summary?: string;
14
+ }
15
+ export interface AgentRegistryOptions {
16
+ workingDir: string;
17
+ inlineAgents?: InlineAgentConfigMap | null;
18
+ builtIns?: AgentDefinition[];
19
+ }
20
+ export declare class AgentRegistry {
21
+ private readonly workingDir;
22
+ private readonly inlineAgents;
23
+ private readonly builtIns;
24
+ private agents;
25
+ constructor(options: AgentRegistryOptions);
26
+ refresh(): AgentDefinition[];
27
+ list(): AgentDefinition[];
28
+ resolve(name: string): AgentDefinition | null;
29
+ private register;
30
+ private loadFromDirectory;
31
+ private loadInlineAgents;
32
+ }
33
+ //# sourceMappingURL=agentRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentRegistry.d.ts","sourceRoot":"","sources":["../../src/subagents/agentRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;CAC9B;AAKD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAsC;gBAExC,OAAO,EAAE,oBAAoB;IAOzC,OAAO,IAAI,eAAe,EAAE;IAwB5B,IAAI,IAAI,eAAe,EAAE;IAIzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAK7C,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,iBAAiB;IAiDzB,OAAO,CAAC,gBAAgB;CAkBzB"}
@@ -0,0 +1,162 @@
1
+ import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
2
+ import { join, basename } from 'node:path';
3
+ import { homedir } from 'node:os';
4
+ import { parseFrontmatter } from '../utils/frontmatter.js';
5
+ import { getInlineAgentConfig } from './agentConfig.js';
6
+ const PROJECT_AGENT_DIR = '.claude/agents';
7
+ const USER_AGENT_DIR = '.claude/agents';
8
+ export class AgentRegistry {
9
+ workingDir;
10
+ inlineAgents;
11
+ builtIns;
12
+ agents = new Map();
13
+ constructor(options) {
14
+ this.workingDir = options.workingDir;
15
+ this.inlineAgents = options.inlineAgents ?? getInlineAgentConfig();
16
+ this.builtIns = options.builtIns ?? [];
17
+ this.refresh();
18
+ }
19
+ refresh() {
20
+ this.agents.clear();
21
+ // Lowest priority: built-in agents
22
+ for (const agent of this.builtIns) {
23
+ this.register(agent);
24
+ }
25
+ // User-level agents (~/.claude/agents)
26
+ const userDir = join(homedir(), USER_AGENT_DIR);
27
+ this.loadFromDirectory(userDir, 'user');
28
+ // Inline agents (CLI/env)
29
+ if (this.inlineAgents) {
30
+ this.loadInlineAgents(this.inlineAgents);
31
+ }
32
+ // Project-level agents (.claude/agents)
33
+ const projectDir = join(this.workingDir, PROJECT_AGENT_DIR);
34
+ this.loadFromDirectory(projectDir, 'project');
35
+ return this.list();
36
+ }
37
+ list() {
38
+ return Array.from(this.agents.values()).sort((a, b) => a.name.localeCompare(b.name));
39
+ }
40
+ resolve(name) {
41
+ const key = normalizeName(name);
42
+ return this.agents.get(key) ?? null;
43
+ }
44
+ register(agent) {
45
+ const key = normalizeName(agent.name);
46
+ if (!key) {
47
+ return;
48
+ }
49
+ this.agents.set(key, {
50
+ ...agent,
51
+ name: key,
52
+ });
53
+ }
54
+ loadFromDirectory(dir, source) {
55
+ if (!existsSync(dir)) {
56
+ return;
57
+ }
58
+ let entries = [];
59
+ try {
60
+ entries = readdirSync(dir);
61
+ }
62
+ catch {
63
+ return;
64
+ }
65
+ for (const entry of entries) {
66
+ const fullPath = join(dir, entry);
67
+ try {
68
+ const stats = statSync(fullPath);
69
+ if (stats.isDirectory()) {
70
+ this.loadFromDirectory(fullPath, source);
71
+ continue;
72
+ }
73
+ if (!entry.toLowerCase().endsWith('.md')) {
74
+ continue;
75
+ }
76
+ const content = readFileSync(fullPath, 'utf8');
77
+ const parsed = parseFrontmatter(content);
78
+ const name = normalizeName(parsed.attributes.name || basename(entry, '.md'));
79
+ if (!name) {
80
+ continue;
81
+ }
82
+ const description = extractDescription(parsed);
83
+ const prompt = parsed.body?.trim() || '';
84
+ this.register({
85
+ name,
86
+ description,
87
+ prompt,
88
+ tools: normalizeStringList(parsed.attributes.tools),
89
+ model: parsed.attributes.model ? String(parsed.attributes.model) : undefined,
90
+ permissionMode: parsed.attributes.permissionMode ? String(parsed.attributes.permissionMode) : undefined,
91
+ skills: normalizeStringList(parsed.attributes.skills),
92
+ summary: parsed.attributes.summary ? String(parsed.attributes.summary) : undefined,
93
+ source,
94
+ path: fullPath,
95
+ });
96
+ }
97
+ catch (error) {
98
+ console.warn(`[agent-registry] Failed to load agent from ${fullPath}:`, error);
99
+ }
100
+ }
101
+ }
102
+ loadInlineAgents(definitions) {
103
+ for (const [name, config] of Object.entries(definitions)) {
104
+ const normalized = normalizeName(name);
105
+ if (!normalized) {
106
+ continue;
107
+ }
108
+ this.register({
109
+ name: normalized,
110
+ description: config.description || `Inline agent ${normalized}`,
111
+ prompt: config.prompt || '',
112
+ tools: Array.isArray(config.tools) ? config.tools : config.tools ? [config.tools] : undefined,
113
+ model: config.model,
114
+ permissionMode: config.permissionMode,
115
+ skills: Array.isArray(config.skills) ? config.skills : config.skills ? [config.skills] : undefined,
116
+ source: 'inline',
117
+ });
118
+ }
119
+ }
120
+ }
121
+ function normalizeName(value) {
122
+ if (typeof value !== 'string') {
123
+ return '';
124
+ }
125
+ const trimmed = value.trim();
126
+ if (!trimmed) {
127
+ return '';
128
+ }
129
+ return trimmed.toLowerCase().replace(/\s+/g, '-');
130
+ }
131
+ function normalizeStringList(value) {
132
+ if (!value) {
133
+ return undefined;
134
+ }
135
+ if (typeof value === 'string') {
136
+ const trimmed = value.trim();
137
+ if (!trimmed) {
138
+ return undefined;
139
+ }
140
+ return trimmed.split(',').map((entry) => entry.trim()).filter(Boolean);
141
+ }
142
+ if (Array.isArray(value)) {
143
+ const normalized = value
144
+ .filter((entry) => typeof entry === 'string')
145
+ .map((entry) => entry.trim())
146
+ .filter(Boolean);
147
+ return normalized.length ? normalized : undefined;
148
+ }
149
+ return undefined;
150
+ }
151
+ function extractDescription(parsed) {
152
+ const attrDescription = typeof parsed.attributes['description'] === 'string' ? parsed.attributes['description'].trim() : '';
153
+ if (attrDescription) {
154
+ return attrDescription;
155
+ }
156
+ const firstLine = parsed.body?.split('\n').find((line) => line.trim().length > 0);
157
+ if (firstLine) {
158
+ return firstLine.trim().slice(0, 200);
159
+ }
160
+ return 'Custom subagent';
161
+ }
162
+ //# sourceMappingURL=agentRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentRegistry.js","sourceRoot":"","sources":["../../src/subagents/agentRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,26 @@
1
1
  import type { CapabilityContext } from '../runtime/agentHost.js';
2
+ import { AgentRegistry, type AgentDefinition } from './agentRegistry.js';
2
3
  type TaskModelName = 'sonnet' | 'opus' | 'haiku';
4
+ type TaskThoroughness = 'quick' | 'medium' | 'very_thorough';
3
5
  export interface TaskInvocationOptions {
4
6
  description: string;
5
7
  prompt: string;
6
8
  subagentType: string;
7
9
  model?: TaskModelName;
8
10
  resumeId?: string;
11
+ thoroughness?: TaskThoroughness;
9
12
  }
10
13
  interface TaskExecutionResult {
11
14
  output: string;
12
15
  }
16
+ export declare const BUILTIN_AGENT_DEFINITIONS: AgentDefinition[];
13
17
  export declare class TaskRunner {
14
18
  private readonly context;
19
+ private readonly registry;
15
20
  private readonly snapshots;
16
- constructor(context: CapabilityContext);
21
+ constructor(context: CapabilityContext, registry?: AgentRegistry);
17
22
  runTask(options: TaskInvocationOptions): Promise<TaskExecutionResult>;
23
+ private buildToolRuntime;
18
24
  private resolveToolPermissions;
19
25
  private buildModelSelection;
20
26
  private composeSystemPrompt;
@@ -1 +1 @@
1
- {"version":3,"file":"taskRunner.d.ts","sourceRoot":"","sources":["../../src/subagents/taskRunner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQjE,KAAK,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AA6DD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;gBAEzC,OAAO,EAAE,iBAAiB;IAIhC,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyF3E,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,mBAAmB;CAkB5B"}
1
+ {"version":3,"file":"taskRunner.d.ts","sourceRoot":"","sources":["../../src/subagents/taskRunner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQjE,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEzE,KAAK,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AACjD,KAAK,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAYD,eAAO,MAAM,yBAAyB,EAAE,eAAe,EAsCtD,CAAC;AAUF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;gBAEzC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,aAAa;IAU1D,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2G3E,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,mBAAmB;CAwD5B"}