deepseek-coder-cli 1.0.0

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 (824) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +422 -0
  3. package/agents/agi-code.rules.json +87 -0
  4. package/agents/general.rules.json +171 -0
  5. package/dist/bin/cliMode.d.ts +8 -0
  6. package/dist/bin/cliMode.d.ts.map +1 -0
  7. package/dist/bin/cliMode.js +20 -0
  8. package/dist/bin/cliMode.js.map +1 -0
  9. package/dist/bin/deepseek.d.ts +16 -0
  10. package/dist/bin/deepseek.d.ts.map +1 -0
  11. package/dist/bin/deepseek.js +737 -0
  12. package/dist/bin/deepseek.js.map +1 -0
  13. package/dist/bin/erosolar.d.ts +7 -0
  14. package/dist/bin/erosolar.d.ts.map +1 -0
  15. package/dist/bin/erosolar.js +7 -0
  16. package/dist/bin/erosolar.js.map +1 -0
  17. package/dist/bin/selfTest.d.ts +14 -0
  18. package/dist/bin/selfTest.d.ts.map +1 -0
  19. package/dist/bin/selfTest.js +304 -0
  20. package/dist/bin/selfTest.js.map +1 -0
  21. package/dist/capabilities/appleSecurityCapability.d.ts +57 -0
  22. package/dist/capabilities/appleSecurityCapability.d.ts.map +1 -0
  23. package/dist/capabilities/appleSecurityCapability.js +197 -0
  24. package/dist/capabilities/appleSecurityCapability.js.map +1 -0
  25. package/dist/capabilities/authorizedSecurityCapability.d.ts +17 -0
  26. package/dist/capabilities/authorizedSecurityCapability.d.ts.map +1 -0
  27. package/dist/capabilities/authorizedSecurityCapability.js +333 -0
  28. package/dist/capabilities/authorizedSecurityCapability.js.map +1 -0
  29. package/dist/capabilities/autoEnhancementCapability.d.ts +98 -0
  30. package/dist/capabilities/autoEnhancementCapability.d.ts.map +1 -0
  31. package/dist/capabilities/autoEnhancementCapability.js +455 -0
  32. package/dist/capabilities/autoEnhancementCapability.js.map +1 -0
  33. package/dist/capabilities/baseCapability.d.ts +72 -0
  34. package/dist/capabilities/baseCapability.d.ts.map +1 -0
  35. package/dist/capabilities/baseCapability.js +183 -0
  36. package/dist/capabilities/baseCapability.js.map +1 -0
  37. package/dist/capabilities/bashCapability.d.ts +13 -0
  38. package/dist/capabilities/bashCapability.d.ts.map +1 -0
  39. package/dist/capabilities/bashCapability.js +24 -0
  40. package/dist/capabilities/bashCapability.js.map +1 -0
  41. package/dist/capabilities/biocognitiveWarfare.d.ts +136 -0
  42. package/dist/capabilities/biocognitiveWarfare.d.ts.map +1 -0
  43. package/dist/capabilities/biocognitiveWarfare.js +603 -0
  44. package/dist/capabilities/biocognitiveWarfare.js.map +1 -0
  45. package/dist/capabilities/chineseCnoIntegration.d.ts +60 -0
  46. package/dist/capabilities/chineseCnoIntegration.d.ts.map +1 -0
  47. package/dist/capabilities/chineseCnoIntegration.js +253 -0
  48. package/dist/capabilities/chineseCnoIntegration.js.map +1 -0
  49. package/dist/capabilities/cnoCapability.d.ts +110 -0
  50. package/dist/capabilities/cnoCapability.d.ts.map +1 -0
  51. package/dist/capabilities/cnoCapability.js +785 -0
  52. package/dist/capabilities/cnoCapability.js.map +1 -0
  53. package/dist/capabilities/editCapability.d.ts +17 -0
  54. package/dist/capabilities/editCapability.d.ts.map +1 -0
  55. package/dist/capabilities/editCapability.js +27 -0
  56. package/dist/capabilities/editCapability.js.map +1 -0
  57. package/dist/capabilities/eliteCryptoMilitaryCapability.d.ts +99 -0
  58. package/dist/capabilities/eliteCryptoMilitaryCapability.d.ts.map +1 -0
  59. package/dist/capabilities/eliteCryptoMilitaryCapability.js +618 -0
  60. package/dist/capabilities/eliteCryptoMilitaryCapability.js.map +1 -0
  61. package/dist/capabilities/enhancedGitCapability.d.ts +7 -0
  62. package/dist/capabilities/enhancedGitCapability.d.ts.map +1 -0
  63. package/dist/capabilities/enhancedGitCapability.js +220 -0
  64. package/dist/capabilities/enhancedGitCapability.js.map +1 -0
  65. package/dist/capabilities/filesystemCapability.d.ts +13 -0
  66. package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
  67. package/dist/capabilities/filesystemCapability.js +24 -0
  68. package/dist/capabilities/filesystemCapability.js.map +1 -0
  69. package/dist/capabilities/gitHistoryCapability.d.ts +6 -0
  70. package/dist/capabilities/gitHistoryCapability.d.ts.map +1 -0
  71. package/dist/capabilities/gitHistoryCapability.js +160 -0
  72. package/dist/capabilities/gitHistoryCapability.js.map +1 -0
  73. package/dist/capabilities/index.d.ts +26 -0
  74. package/dist/capabilities/index.d.ts.map +1 -0
  75. package/dist/capabilities/index.js +26 -0
  76. package/dist/capabilities/index.js.map +1 -0
  77. package/dist/capabilities/integratedUnifiedCapability.d.ts +105 -0
  78. package/dist/capabilities/integratedUnifiedCapability.d.ts.map +1 -0
  79. package/dist/capabilities/integratedUnifiedCapability.js +422 -0
  80. package/dist/capabilities/integratedUnifiedCapability.js.map +1 -0
  81. package/dist/capabilities/maxOffensiveUkraineCapability.d.ts +46 -0
  82. package/dist/capabilities/maxOffensiveUkraineCapability.d.ts.map +1 -0
  83. package/dist/capabilities/maxOffensiveUkraineCapability.js +725 -0
  84. package/dist/capabilities/maxOffensiveUkraineCapability.js.map +1 -0
  85. package/dist/capabilities/migrationUtilities.d.ts +128 -0
  86. package/dist/capabilities/migrationUtilities.d.ts.map +1 -0
  87. package/dist/capabilities/migrationUtilities.js +658 -0
  88. package/dist/capabilities/migrationUtilities.js.map +1 -0
  89. package/dist/capabilities/offensiveDestructionCapability.d.ts +98 -0
  90. package/dist/capabilities/offensiveDestructionCapability.d.ts.map +1 -0
  91. package/dist/capabilities/offensiveDestructionCapability.js +848 -0
  92. package/dist/capabilities/offensiveDestructionCapability.js.map +1 -0
  93. package/dist/capabilities/quantumSpaceWarfare.d.ts +108 -0
  94. package/dist/capabilities/quantumSpaceWarfare.d.ts.map +1 -0
  95. package/dist/capabilities/quantumSpaceWarfare.js +342 -0
  96. package/dist/capabilities/quantumSpaceWarfare.js.map +1 -0
  97. package/dist/capabilities/readmeIntegration.d.ts +161 -0
  98. package/dist/capabilities/readmeIntegration.d.ts.map +1 -0
  99. package/dist/capabilities/readmeIntegration.js +1034 -0
  100. package/dist/capabilities/readmeIntegration.js.map +1 -0
  101. package/dist/capabilities/searchCapability.d.ts +19 -0
  102. package/dist/capabilities/searchCapability.d.ts.map +1 -0
  103. package/dist/capabilities/searchCapability.js +29 -0
  104. package/dist/capabilities/searchCapability.js.map +1 -0
  105. package/dist/capabilities/selfUpdateSystem.d.ts +122 -0
  106. package/dist/capabilities/selfUpdateSystem.d.ts.map +1 -0
  107. package/dist/capabilities/selfUpdateSystem.js +725 -0
  108. package/dist/capabilities/selfUpdateSystem.js.map +1 -0
  109. package/dist/capabilities/sharedMilitaryInfrastructure.d.ts +89 -0
  110. package/dist/capabilities/sharedMilitaryInfrastructure.d.ts.map +1 -0
  111. package/dist/capabilities/sharedMilitaryInfrastructure.js +233 -0
  112. package/dist/capabilities/sharedMilitaryInfrastructure.js.map +1 -0
  113. package/dist/capabilities/simpleSecurityCapability.d.ts +36 -0
  114. package/dist/capabilities/simpleSecurityCapability.d.ts.map +1 -0
  115. package/dist/capabilities/simpleSecurityCapability.js +271 -0
  116. package/dist/capabilities/simpleSecurityCapability.js.map +1 -0
  117. package/dist/capabilities/toolManifest.d.ts +3 -0
  118. package/dist/capabilities/toolManifest.d.ts.map +1 -0
  119. package/dist/capabilities/toolManifest.js +163 -0
  120. package/dist/capabilities/toolManifest.js.map +1 -0
  121. package/dist/capabilities/toolRegistry.d.ts +25 -0
  122. package/dist/capabilities/toolRegistry.d.ts.map +1 -0
  123. package/dist/capabilities/toolRegistry.js +150 -0
  124. package/dist/capabilities/toolRegistry.js.map +1 -0
  125. package/dist/capabilities/ultimateChineseCno.d.ts +115 -0
  126. package/dist/capabilities/ultimateChineseCno.d.ts.map +1 -0
  127. package/dist/capabilities/ultimateChineseCno.js +516 -0
  128. package/dist/capabilities/ultimateChineseCno.js.map +1 -0
  129. package/dist/capabilities/ultimateIntegrationDemo.d.ts +54 -0
  130. package/dist/capabilities/ultimateIntegrationDemo.d.ts.map +1 -0
  131. package/dist/capabilities/ultimateIntegrationDemo.js +423 -0
  132. package/dist/capabilities/ultimateIntegrationDemo.js.map +1 -0
  133. package/dist/capabilities/unifiedMilitaryCapability.d.ts +63 -0
  134. package/dist/capabilities/unifiedMilitaryCapability.d.ts.map +1 -0
  135. package/dist/capabilities/unifiedMilitaryCapability.js +384 -0
  136. package/dist/capabilities/unifiedMilitaryCapability.js.map +1 -0
  137. package/dist/capabilities/universalCapabilityFramework.d.ts +352 -0
  138. package/dist/capabilities/universalCapabilityFramework.d.ts.map +1 -0
  139. package/dist/capabilities/universalCapabilityFramework.js +1056 -0
  140. package/dist/capabilities/universalCapabilityFramework.js.map +1 -0
  141. package/dist/capabilities/universalSecurityCapability.d.ts +46 -0
  142. package/dist/capabilities/universalSecurityCapability.d.ts.map +1 -0
  143. package/dist/capabilities/universalSecurityCapability.js +580 -0
  144. package/dist/capabilities/universalSecurityCapability.js.map +1 -0
  145. package/dist/capabilities/webCapability.d.ts +23 -0
  146. package/dist/capabilities/webCapability.d.ts.map +1 -0
  147. package/dist/capabilities/webCapability.js +33 -0
  148. package/dist/capabilities/webCapability.js.map +1 -0
  149. package/dist/capabilities/zeroDayDiscoveryCapability.d.ts +31 -0
  150. package/dist/capabilities/zeroDayDiscoveryCapability.d.ts.map +1 -0
  151. package/dist/capabilities/zeroDayDiscoveryCapability.js +183 -0
  152. package/dist/capabilities/zeroDayDiscoveryCapability.js.map +1 -0
  153. package/dist/config.d.ts +25 -0
  154. package/dist/config.d.ts.map +1 -0
  155. package/dist/config.js +155 -0
  156. package/dist/config.js.map +1 -0
  157. package/dist/contracts/agent-profiles.schema.json +43 -0
  158. package/dist/contracts/agent-schemas.json +466 -0
  159. package/dist/contracts/models.schema.json +9 -0
  160. package/dist/contracts/module-schema.json +430 -0
  161. package/dist/contracts/schemas/agent-profile.schema.json +157 -0
  162. package/dist/contracts/schemas/agent-rules.schema.json +238 -0
  163. package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
  164. package/dist/contracts/schemas/agent.schema.json +90 -0
  165. package/dist/contracts/schemas/tool-selection.schema.json +174 -0
  166. package/dist/contracts/tools.schema.json +82 -0
  167. package/dist/contracts/unified-schema.json +757 -0
  168. package/dist/contracts/v1/agent.d.ts +179 -0
  169. package/dist/contracts/v1/agent.d.ts.map +1 -0
  170. package/dist/contracts/v1/agent.js +8 -0
  171. package/dist/contracts/v1/agent.js.map +1 -0
  172. package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
  173. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  174. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  175. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  176. package/dist/contracts/v1/agentRules.d.ts +60 -0
  177. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  178. package/dist/contracts/v1/agentRules.js +10 -0
  179. package/dist/contracts/v1/agentRules.js.map +1 -0
  180. package/dist/contracts/v1/provider.d.ts +149 -0
  181. package/dist/contracts/v1/provider.d.ts.map +1 -0
  182. package/dist/contracts/v1/provider.js +7 -0
  183. package/dist/contracts/v1/provider.js.map +1 -0
  184. package/dist/contracts/v1/tool.d.ts +136 -0
  185. package/dist/contracts/v1/tool.d.ts.map +1 -0
  186. package/dist/contracts/v1/tool.js +7 -0
  187. package/dist/contracts/v1/tool.js.map +1 -0
  188. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  189. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  190. package/dist/contracts/v1/toolAccess.js +9 -0
  191. package/dist/contracts/v1/toolAccess.js.map +1 -0
  192. package/dist/core/agent.d.ts +287 -0
  193. package/dist/core/agent.d.ts.map +1 -0
  194. package/dist/core/agent.js +1563 -0
  195. package/dist/core/agent.js.map +1 -0
  196. package/dist/core/agentProfileManifest.d.ts +3 -0
  197. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  198. package/dist/core/agentProfileManifest.js +188 -0
  199. package/dist/core/agentProfileManifest.js.map +1 -0
  200. package/dist/core/agentProfiles.d.ts +22 -0
  201. package/dist/core/agentProfiles.d.ts.map +1 -0
  202. package/dist/core/agentProfiles.js +35 -0
  203. package/dist/core/agentProfiles.js.map +1 -0
  204. package/dist/core/agentRulebook.d.ts +11 -0
  205. package/dist/core/agentRulebook.d.ts.map +1 -0
  206. package/dist/core/agentRulebook.js +136 -0
  207. package/dist/core/agentRulebook.js.map +1 -0
  208. package/dist/core/agentSchemaLoader.d.ts +131 -0
  209. package/dist/core/agentSchemaLoader.d.ts.map +1 -0
  210. package/dist/core/agentSchemaLoader.js +235 -0
  211. package/dist/core/agentSchemaLoader.js.map +1 -0
  212. package/dist/core/agiCore.d.ts +290 -0
  213. package/dist/core/agiCore.d.ts.map +1 -0
  214. package/dist/core/agiCore.js +1348 -0
  215. package/dist/core/agiCore.js.map +1 -0
  216. package/dist/core/aiErrorFixer.d.ts +57 -0
  217. package/dist/core/aiErrorFixer.d.ts.map +1 -0
  218. package/dist/core/aiErrorFixer.js +214 -0
  219. package/dist/core/aiErrorFixer.js.map +1 -0
  220. package/dist/core/antiTermination.d.ts +226 -0
  221. package/dist/core/antiTermination.d.ts.map +1 -0
  222. package/dist/core/antiTermination.js +713 -0
  223. package/dist/core/antiTermination.js.map +1 -0
  224. package/dist/core/appleSecurityAudit.d.ts +98 -0
  225. package/dist/core/appleSecurityAudit.d.ts.map +1 -0
  226. package/dist/core/appleSecurityAudit.js +505 -0
  227. package/dist/core/appleSecurityAudit.js.map +1 -0
  228. package/dist/core/appleSecurityIntegration.d.ts +130 -0
  229. package/dist/core/appleSecurityIntegration.d.ts.map +1 -0
  230. package/dist/core/appleSecurityIntegration.js +697 -0
  231. package/dist/core/appleSecurityIntegration.js.map +1 -0
  232. package/dist/core/bashCommandGuidance.d.ts +16 -0
  233. package/dist/core/bashCommandGuidance.d.ts.map +1 -0
  234. package/dist/core/bashCommandGuidance.js +40 -0
  235. package/dist/core/bashCommandGuidance.js.map +1 -0
  236. package/dist/core/constants.d.ts +31 -0
  237. package/dist/core/constants.d.ts.map +1 -0
  238. package/dist/core/constants.js +62 -0
  239. package/dist/core/constants.js.map +1 -0
  240. package/dist/core/contextManager.d.ts +271 -0
  241. package/dist/core/contextManager.d.ts.map +1 -0
  242. package/dist/core/contextManager.js +1073 -0
  243. package/dist/core/contextManager.js.map +1 -0
  244. package/dist/core/contextWindow.d.ts +42 -0
  245. package/dist/core/contextWindow.d.ts.map +1 -0
  246. package/dist/core/contextWindow.js +123 -0
  247. package/dist/core/contextWindow.js.map +1 -0
  248. package/dist/core/customCommands.d.ts +19 -0
  249. package/dist/core/customCommands.d.ts.map +1 -0
  250. package/dist/core/customCommands.js +85 -0
  251. package/dist/core/customCommands.js.map +1 -0
  252. package/dist/core/deepBugAnalyzer.d.ts +25 -0
  253. package/dist/core/deepBugAnalyzer.d.ts.map +1 -0
  254. package/dist/core/deepBugAnalyzer.js +44 -0
  255. package/dist/core/deepBugAnalyzer.js.map +1 -0
  256. package/dist/core/dualTournament.d.ts +110 -0
  257. package/dist/core/dualTournament.d.ts.map +1 -0
  258. package/dist/core/dualTournament.js +270 -0
  259. package/dist/core/dualTournament.js.map +1 -0
  260. package/dist/core/dynamicGuardrails.d.ts +207 -0
  261. package/dist/core/dynamicGuardrails.d.ts.map +1 -0
  262. package/dist/core/dynamicGuardrails.js +516 -0
  263. package/dist/core/dynamicGuardrails.js.map +1 -0
  264. package/dist/core/embeddingProviders.d.ts +80 -0
  265. package/dist/core/embeddingProviders.d.ts.map +1 -0
  266. package/dist/core/embeddingProviders.js +241 -0
  267. package/dist/core/embeddingProviders.js.map +1 -0
  268. package/dist/core/episodicMemory.d.ts +259 -0
  269. package/dist/core/episodicMemory.d.ts.map +1 -0
  270. package/dist/core/episodicMemory.js +833 -0
  271. package/dist/core/episodicMemory.js.map +1 -0
  272. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  273. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  274. package/dist/core/errors/apiKeyErrors.js +159 -0
  275. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  276. package/dist/core/errors/errorTypes.d.ts +111 -0
  277. package/dist/core/errors/errorTypes.d.ts.map +1 -0
  278. package/dist/core/errors/errorTypes.js +345 -0
  279. package/dist/core/errors/errorTypes.js.map +1 -0
  280. package/dist/core/errors/index.d.ts +50 -0
  281. package/dist/core/errors/index.d.ts.map +1 -0
  282. package/dist/core/errors/index.js +156 -0
  283. package/dist/core/errors/index.js.map +1 -0
  284. package/dist/core/errors/networkErrors.d.ts +14 -0
  285. package/dist/core/errors/networkErrors.d.ts.map +1 -0
  286. package/dist/core/errors/networkErrors.js +53 -0
  287. package/dist/core/errors/networkErrors.js.map +1 -0
  288. package/dist/core/errors/safetyValidator.d.ts +115 -0
  289. package/dist/core/errors/safetyValidator.d.ts.map +1 -0
  290. package/dist/core/errors/safetyValidator.js +302 -0
  291. package/dist/core/errors/safetyValidator.js.map +1 -0
  292. package/dist/core/errors.d.ts +4 -0
  293. package/dist/core/errors.d.ts.map +1 -0
  294. package/dist/core/errors.js +33 -0
  295. package/dist/core/errors.js.map +1 -0
  296. package/dist/core/finalResponseFormatter.d.ts +10 -0
  297. package/dist/core/finalResponseFormatter.d.ts.map +1 -0
  298. package/dist/core/finalResponseFormatter.js +14 -0
  299. package/dist/core/finalResponseFormatter.js.map +1 -0
  300. package/dist/core/flowProtection.d.ts +154 -0
  301. package/dist/core/flowProtection.d.ts.map +1 -0
  302. package/dist/core/flowProtection.js +436 -0
  303. package/dist/core/flowProtection.js.map +1 -0
  304. package/dist/core/gitWorktreeManager.d.ts +126 -0
  305. package/dist/core/gitWorktreeManager.d.ts.map +1 -0
  306. package/dist/core/gitWorktreeManager.js +403 -0
  307. package/dist/core/gitWorktreeManager.js.map +1 -0
  308. package/dist/core/guardrails.d.ts +150 -0
  309. package/dist/core/guardrails.d.ts.map +1 -0
  310. package/dist/core/guardrails.js +360 -0
  311. package/dist/core/guardrails.js.map +1 -0
  312. package/dist/core/hallucinationGuard.d.ts +57 -0
  313. package/dist/core/hallucinationGuard.d.ts.map +1 -0
  314. package/dist/core/hallucinationGuard.js +237 -0
  315. package/dist/core/hallucinationGuard.js.map +1 -0
  316. package/dist/core/hooks.d.ts +113 -0
  317. package/dist/core/hooks.d.ts.map +1 -0
  318. package/dist/core/hooks.js +364 -0
  319. package/dist/core/hooks.js.map +1 -0
  320. package/dist/core/hotReload.d.ts +154 -0
  321. package/dist/core/hotReload.d.ts.map +1 -0
  322. package/dist/core/hotReload.js +451 -0
  323. package/dist/core/hotReload.js.map +1 -0
  324. package/dist/core/hypothesisEngine.d.ts +27 -0
  325. package/dist/core/hypothesisEngine.d.ts.map +1 -0
  326. package/dist/core/hypothesisEngine.js +58 -0
  327. package/dist/core/hypothesisEngine.js.map +1 -0
  328. package/dist/core/index.d.ts +26 -0
  329. package/dist/core/index.d.ts.map +1 -0
  330. package/dist/core/index.js +54 -0
  331. package/dist/core/index.js.map +1 -0
  332. package/dist/core/inputProtection.d.ts +122 -0
  333. package/dist/core/inputProtection.d.ts.map +1 -0
  334. package/dist/core/inputProtection.js +421 -0
  335. package/dist/core/inputProtection.js.map +1 -0
  336. package/dist/core/liveGCPVerification.d.ts +41 -0
  337. package/dist/core/liveGCPVerification.d.ts.map +1 -0
  338. package/dist/core/liveGCPVerification.js +745 -0
  339. package/dist/core/liveGCPVerification.js.map +1 -0
  340. package/dist/core/modelDiscovery.d.ts +105 -0
  341. package/dist/core/modelDiscovery.d.ts.map +1 -0
  342. package/dist/core/modelDiscovery.js +740 -0
  343. package/dist/core/modelDiscovery.js.map +1 -0
  344. package/dist/core/multilinePasteHandler.d.ts +35 -0
  345. package/dist/core/multilinePasteHandler.d.ts.map +1 -0
  346. package/dist/core/multilinePasteHandler.js +80 -0
  347. package/dist/core/multilinePasteHandler.js.map +1 -0
  348. package/dist/core/parallel.d.ts +85 -0
  349. package/dist/core/parallel.d.ts.map +1 -0
  350. package/dist/core/parallel.js +150 -0
  351. package/dist/core/parallel.js.map +1 -0
  352. package/dist/core/parallelCoordinator.d.ts +21 -0
  353. package/dist/core/parallelCoordinator.d.ts.map +1 -0
  354. package/dist/core/parallelCoordinator.js +42 -0
  355. package/dist/core/parallelCoordinator.js.map +1 -0
  356. package/dist/core/parallelExecutor.d.ts +215 -0
  357. package/dist/core/parallelExecutor.d.ts.map +1 -0
  358. package/dist/core/parallelExecutor.js +584 -0
  359. package/dist/core/parallelExecutor.js.map +1 -0
  360. package/dist/core/preferences.d.ts +71 -0
  361. package/dist/core/preferences.d.ts.map +1 -0
  362. package/dist/core/preferences.js +341 -0
  363. package/dist/core/preferences.js.map +1 -0
  364. package/dist/core/productTestHarness.d.ts +46 -0
  365. package/dist/core/productTestHarness.d.ts.map +1 -0
  366. package/dist/core/productTestHarness.js +128 -0
  367. package/dist/core/productTestHarness.js.map +1 -0
  368. package/dist/core/providerKeys.d.ts +20 -0
  369. package/dist/core/providerKeys.d.ts.map +1 -0
  370. package/dist/core/providerKeys.js +40 -0
  371. package/dist/core/providerKeys.js.map +1 -0
  372. package/dist/core/realityScore.d.ts +159 -0
  373. package/dist/core/realityScore.d.ts.map +1 -0
  374. package/dist/core/realityScore.js +734 -0
  375. package/dist/core/realityScore.js.map +1 -0
  376. package/dist/core/repoUpgradeOrchestrator.d.ts +223 -0
  377. package/dist/core/repoUpgradeOrchestrator.d.ts.map +1 -0
  378. package/dist/core/repoUpgradeOrchestrator.js +1003 -0
  379. package/dist/core/repoUpgradeOrchestrator.js.map +1 -0
  380. package/dist/core/resultVerification.d.ts +47 -0
  381. package/dist/core/resultVerification.d.ts.map +1 -0
  382. package/dist/core/resultVerification.js +126 -0
  383. package/dist/core/resultVerification.js.map +1 -0
  384. package/dist/core/revenueEnvValidator.d.ts +30 -0
  385. package/dist/core/revenueEnvValidator.d.ts.map +1 -0
  386. package/dist/core/revenueEnvValidator.js +241 -0
  387. package/dist/core/revenueEnvValidator.js.map +1 -0
  388. package/dist/core/schemaValidator.d.ts +49 -0
  389. package/dist/core/schemaValidator.d.ts.map +1 -0
  390. package/dist/core/schemaValidator.js +234 -0
  391. package/dist/core/schemaValidator.js.map +1 -0
  392. package/dist/core/secretStore.d.ts +48 -0
  393. package/dist/core/secretStore.d.ts.map +1 -0
  394. package/dist/core/secretStore.js +295 -0
  395. package/dist/core/secretStore.js.map +1 -0
  396. package/dist/core/securityTournament.d.ts +83 -0
  397. package/dist/core/securityTournament.d.ts.map +1 -0
  398. package/dist/core/securityTournament.js +357 -0
  399. package/dist/core/securityTournament.js.map +1 -0
  400. package/dist/core/selfUpgrade.d.ts +253 -0
  401. package/dist/core/selfUpgrade.d.ts.map +1 -0
  402. package/dist/core/selfUpgrade.js +669 -0
  403. package/dist/core/selfUpgrade.js.map +1 -0
  404. package/dist/core/sessionStorage.d.ts +10 -0
  405. package/dist/core/sessionStorage.d.ts.map +1 -0
  406. package/dist/core/sessionStorage.js +46 -0
  407. package/dist/core/sessionStorage.js.map +1 -0
  408. package/dist/core/sessionStore.d.ts +35 -0
  409. package/dist/core/sessionStore.d.ts.map +1 -0
  410. package/dist/core/sessionStore.js +191 -0
  411. package/dist/core/sessionStore.js.map +1 -0
  412. package/dist/core/taskCompletionDetector.d.ts +112 -0
  413. package/dist/core/taskCompletionDetector.d.ts.map +1 -0
  414. package/dist/core/taskCompletionDetector.js +469 -0
  415. package/dist/core/taskCompletionDetector.js.map +1 -0
  416. package/dist/core/toolPreconditions.d.ts +34 -0
  417. package/dist/core/toolPreconditions.d.ts.map +1 -0
  418. package/dist/core/toolPreconditions.js +242 -0
  419. package/dist/core/toolPreconditions.js.map +1 -0
  420. package/dist/core/toolRuntime.d.ts +185 -0
  421. package/dist/core/toolRuntime.d.ts.map +1 -0
  422. package/dist/core/toolRuntime.js +412 -0
  423. package/dist/core/toolRuntime.js.map +1 -0
  424. package/dist/core/tournamentStrategy.d.ts +12 -0
  425. package/dist/core/tournamentStrategy.d.ts.map +1 -0
  426. package/dist/core/tournamentStrategy.js +41 -0
  427. package/dist/core/tournamentStrategy.js.map +1 -0
  428. package/dist/core/types/utilityTypes.d.ts +192 -0
  429. package/dist/core/types/utilityTypes.d.ts.map +1 -0
  430. package/dist/core/types/utilityTypes.js +272 -0
  431. package/dist/core/types/utilityTypes.js.map +1 -0
  432. package/dist/core/types.d.ts +334 -0
  433. package/dist/core/types.d.ts.map +1 -0
  434. package/dist/core/types.js +76 -0
  435. package/dist/core/types.js.map +1 -0
  436. package/dist/core/unifiedOrchestrator.d.ts +47 -0
  437. package/dist/core/unifiedOrchestrator.d.ts.map +1 -0
  438. package/dist/core/unifiedOrchestrator.js +103 -0
  439. package/dist/core/unifiedOrchestrator.js.map +1 -0
  440. package/dist/core/universalSecurityAudit.d.ts +104 -0
  441. package/dist/core/universalSecurityAudit.d.ts.map +1 -0
  442. package/dist/core/universalSecurityAudit.js +2190 -0
  443. package/dist/core/universalSecurityAudit.js.map +1 -0
  444. package/dist/core/updateChecker.d.ts +148 -0
  445. package/dist/core/updateChecker.d.ts.map +1 -0
  446. package/dist/core/updateChecker.js +593 -0
  447. package/dist/core/updateChecker.js.map +1 -0
  448. package/dist/core/variantExecution.d.ts +23 -0
  449. package/dist/core/variantExecution.d.ts.map +1 -0
  450. package/dist/core/variantExecution.js +58 -0
  451. package/dist/core/variantExecution.js.map +1 -0
  452. package/dist/core/winnerStrategy.d.ts +15 -0
  453. package/dist/core/winnerStrategy.d.ts.map +1 -0
  454. package/dist/core/winnerStrategy.js +18 -0
  455. package/dist/core/winnerStrategy.js.map +1 -0
  456. package/dist/core/zeroDayDiscovery.d.ts +96 -0
  457. package/dist/core/zeroDayDiscovery.d.ts.map +1 -0
  458. package/dist/core/zeroDayDiscovery.js +358 -0
  459. package/dist/core/zeroDayDiscovery.js.map +1 -0
  460. package/dist/headless/interactiveShell.d.ts +22 -0
  461. package/dist/headless/interactiveShell.d.ts.map +1 -0
  462. package/dist/headless/interactiveShell.js +3799 -0
  463. package/dist/headless/interactiveShell.js.map +1 -0
  464. package/dist/headless/quickMode.d.ts +26 -0
  465. package/dist/headless/quickMode.d.ts.map +1 -0
  466. package/dist/headless/quickMode.js +226 -0
  467. package/dist/headless/quickMode.js.map +1 -0
  468. package/dist/orchestration/index.d.ts +10 -0
  469. package/dist/orchestration/index.d.ts.map +1 -0
  470. package/dist/orchestration/index.js +13 -0
  471. package/dist/orchestration/index.js.map +1 -0
  472. package/dist/orchestration/repoUpgradeRunner.d.ts +44 -0
  473. package/dist/orchestration/repoUpgradeRunner.d.ts.map +1 -0
  474. package/dist/orchestration/repoUpgradeRunner.js +375 -0
  475. package/dist/orchestration/repoUpgradeRunner.js.map +1 -0
  476. package/dist/orchestration/securityAuditRunner.d.ts +144 -0
  477. package/dist/orchestration/securityAuditRunner.d.ts.map +1 -0
  478. package/dist/orchestration/securityAuditRunner.js +526 -0
  479. package/dist/orchestration/securityAuditRunner.js.map +1 -0
  480. package/dist/plugins/index.d.ts +49 -0
  481. package/dist/plugins/index.d.ts.map +1 -0
  482. package/dist/plugins/index.js +105 -0
  483. package/dist/plugins/index.js.map +1 -0
  484. package/dist/plugins/providers/deepseek/index.d.ts +11 -0
  485. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
  486. package/dist/plugins/providers/deepseek/index.js +54 -0
  487. package/dist/plugins/providers/deepseek/index.js.map +1 -0
  488. package/dist/plugins/providers/index.d.ts +2 -0
  489. package/dist/plugins/providers/index.d.ts.map +1 -0
  490. package/dist/plugins/providers/index.js +11 -0
  491. package/dist/plugins/providers/index.js.map +1 -0
  492. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +3 -0
  493. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +1 -0
  494. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +27 -0
  495. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +1 -0
  496. package/dist/plugins/tools/apple/secureApplePlugin.d.ts +3 -0
  497. package/dist/plugins/tools/apple/secureApplePlugin.d.ts.map +1 -0
  498. package/dist/plugins/tools/apple/secureApplePlugin.js +26 -0
  499. package/dist/plugins/tools/apple/secureApplePlugin.js.map +1 -0
  500. package/dist/plugins/tools/authorizedSecurity/authorizedSecurityPlugin.d.ts +3 -0
  501. package/dist/plugins/tools/authorizedSecurity/authorizedSecurityPlugin.d.ts.map +1 -0
  502. package/dist/plugins/tools/authorizedSecurity/authorizedSecurityPlugin.js +9 -0
  503. package/dist/plugins/tools/authorizedSecurity/authorizedSecurityPlugin.js.map +1 -0
  504. package/dist/plugins/tools/bash/localBashPlugin.d.ts +3 -0
  505. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +1 -0
  506. package/dist/plugins/tools/bash/localBashPlugin.js +14 -0
  507. package/dist/plugins/tools/bash/localBashPlugin.js.map +1 -0
  508. package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.d.ts +3 -0
  509. package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.d.ts.map +1 -0
  510. package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.js +27 -0
  511. package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.js.map +1 -0
  512. package/dist/plugins/tools/edit/editPlugin.d.ts +9 -0
  513. package/dist/plugins/tools/edit/editPlugin.d.ts.map +1 -0
  514. package/dist/plugins/tools/edit/editPlugin.js +15 -0
  515. package/dist/plugins/tools/edit/editPlugin.js.map +1 -0
  516. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +3 -0
  517. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +1 -0
  518. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +9 -0
  519. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +1 -0
  520. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +3 -0
  521. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +1 -0
  522. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +14 -0
  523. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +1 -0
  524. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +3 -0
  525. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +1 -0
  526. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +9 -0
  527. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +1 -0
  528. package/dist/plugins/tools/index.d.ts +3 -0
  529. package/dist/plugins/tools/index.d.ts.map +1 -0
  530. package/dist/plugins/tools/index.js +3 -0
  531. package/dist/plugins/tools/index.js.map +1 -0
  532. package/dist/plugins/tools/integrity/integrityPlugin.d.ts +3 -0
  533. package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +1 -0
  534. package/dist/plugins/tools/integrity/integrityPlugin.js +31 -0
  535. package/dist/plugins/tools/integrity/integrityPlugin.js.map +1 -0
  536. package/dist/plugins/tools/mcp/mcpPlugin.d.ts +3 -0
  537. package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +1 -0
  538. package/dist/plugins/tools/mcp/mcpPlugin.js +27 -0
  539. package/dist/plugins/tools/mcp/mcpPlugin.js.map +1 -0
  540. package/dist/plugins/tools/nodeDefaults.d.ts +15 -0
  541. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -0
  542. package/dist/plugins/tools/nodeDefaults.js +37 -0
  543. package/dist/plugins/tools/nodeDefaults.js.map +1 -0
  544. package/dist/plugins/tools/offensiveDestruction/offensiveDestructionPlugin.d.ts +3 -0
  545. package/dist/plugins/tools/offensiveDestruction/offensiveDestructionPlugin.d.ts.map +1 -0
  546. package/dist/plugins/tools/offensiveDestruction/offensiveDestructionPlugin.js +9 -0
  547. package/dist/plugins/tools/offensiveDestruction/offensiveDestructionPlugin.js.map +1 -0
  548. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +3 -0
  549. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +1 -0
  550. package/dist/plugins/tools/orchestration/orchestrationPlugin.js +340 -0
  551. package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +1 -0
  552. package/dist/plugins/tools/registry.d.ts +22 -0
  553. package/dist/plugins/tools/registry.d.ts.map +1 -0
  554. package/dist/plugins/tools/registry.js +58 -0
  555. package/dist/plugins/tools/registry.js.map +1 -0
  556. package/dist/plugins/tools/search/localSearchPlugin.d.ts +3 -0
  557. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +1 -0
  558. package/dist/plugins/tools/search/localSearchPlugin.js +14 -0
  559. package/dist/plugins/tools/search/localSearchPlugin.js.map +1 -0
  560. package/dist/plugins/tools/skills/skillPlugin.d.ts +3 -0
  561. package/dist/plugins/tools/skills/skillPlugin.d.ts.map +1 -0
  562. package/dist/plugins/tools/skills/skillPlugin.js +27 -0
  563. package/dist/plugins/tools/skills/skillPlugin.js.map +1 -0
  564. package/dist/plugins/tools/tao/secureTaoPlugin.d.ts +3 -0
  565. package/dist/plugins/tools/tao/secureTaoPlugin.d.ts.map +1 -0
  566. package/dist/plugins/tools/tao/secureTaoPlugin.js +37 -0
  567. package/dist/plugins/tools/tao/secureTaoPlugin.js.map +1 -0
  568. package/dist/providers/baseProvider.d.ts +148 -0
  569. package/dist/providers/baseProvider.d.ts.map +1 -0
  570. package/dist/providers/baseProvider.js +284 -0
  571. package/dist/providers/baseProvider.js.map +1 -0
  572. package/dist/providers/openaiChatCompletionsProvider.d.ts +64 -0
  573. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  574. package/dist/providers/openaiChatCompletionsProvider.js +1000 -0
  575. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  576. package/dist/providers/providerFactory.d.ts +22 -0
  577. package/dist/providers/providerFactory.d.ts.map +1 -0
  578. package/dist/providers/providerFactory.js +25 -0
  579. package/dist/providers/providerFactory.js.map +1 -0
  580. package/dist/providers/resilientProvider.d.ts +103 -0
  581. package/dist/providers/resilientProvider.d.ts.map +1 -0
  582. package/dist/providers/resilientProvider.js +462 -0
  583. package/dist/providers/resilientProvider.js.map +1 -0
  584. package/dist/runtime/agentController.d.ts +114 -0
  585. package/dist/runtime/agentController.d.ts.map +1 -0
  586. package/dist/runtime/agentController.js +693 -0
  587. package/dist/runtime/agentController.js.map +1 -0
  588. package/dist/runtime/agentHost.d.ts +61 -0
  589. package/dist/runtime/agentHost.d.ts.map +1 -0
  590. package/dist/runtime/agentHost.js +157 -0
  591. package/dist/runtime/agentHost.js.map +1 -0
  592. package/dist/runtime/agentSession.d.ts +45 -0
  593. package/dist/runtime/agentSession.d.ts.map +1 -0
  594. package/dist/runtime/agentSession.js +210 -0
  595. package/dist/runtime/agentSession.js.map +1 -0
  596. package/dist/runtime/agentWorkerPool.d.ts +167 -0
  597. package/dist/runtime/agentWorkerPool.d.ts.map +1 -0
  598. package/dist/runtime/agentWorkerPool.js +435 -0
  599. package/dist/runtime/agentWorkerPool.js.map +1 -0
  600. package/dist/runtime/node.d.ts +7 -0
  601. package/dist/runtime/node.d.ts.map +1 -0
  602. package/dist/runtime/node.js +24 -0
  603. package/dist/runtime/node.js.map +1 -0
  604. package/dist/runtime/universal.d.ts +18 -0
  605. package/dist/runtime/universal.d.ts.map +1 -0
  606. package/dist/runtime/universal.js +21 -0
  607. package/dist/runtime/universal.js.map +1 -0
  608. package/dist/shell/autoExecutor.d.ts +70 -0
  609. package/dist/shell/autoExecutor.d.ts.map +1 -0
  610. package/dist/shell/autoExecutor.js +320 -0
  611. package/dist/shell/autoExecutor.js.map +1 -0
  612. package/dist/shell/commandRegistry.d.ts +122 -0
  613. package/dist/shell/commandRegistry.d.ts.map +1 -0
  614. package/dist/shell/commandRegistry.js +386 -0
  615. package/dist/shell/commandRegistry.js.map +1 -0
  616. package/dist/shell/composableMessage.d.ts +183 -0
  617. package/dist/shell/composableMessage.d.ts.map +1 -0
  618. package/dist/shell/composableMessage.js +420 -0
  619. package/dist/shell/composableMessage.js.map +1 -0
  620. package/dist/shell/liveStatus.d.ts +27 -0
  621. package/dist/shell/liveStatus.d.ts.map +1 -0
  622. package/dist/shell/liveStatus.js +53 -0
  623. package/dist/shell/liveStatus.js.map +1 -0
  624. package/dist/shell/systemPrompt.d.ts +12 -0
  625. package/dist/shell/systemPrompt.d.ts.map +1 -0
  626. package/dist/shell/systemPrompt.js +16 -0
  627. package/dist/shell/systemPrompt.js.map +1 -0
  628. package/dist/shell/vimMode.d.ts +66 -0
  629. package/dist/shell/vimMode.d.ts.map +1 -0
  630. package/dist/shell/vimMode.js +435 -0
  631. package/dist/shell/vimMode.js.map +1 -0
  632. package/dist/tools/bashTools.d.ts +6 -0
  633. package/dist/tools/bashTools.d.ts.map +1 -0
  634. package/dist/tools/bashTools.js +485 -0
  635. package/dist/tools/bashTools.js.map +1 -0
  636. package/dist/tools/diffUtils.d.ts +43 -0
  637. package/dist/tools/diffUtils.d.ts.map +1 -0
  638. package/dist/tools/diffUtils.js +607 -0
  639. package/dist/tools/diffUtils.js.map +1 -0
  640. package/dist/tools/editTools.d.ts +29 -0
  641. package/dist/tools/editTools.d.ts.map +1 -0
  642. package/dist/tools/editTools.js +702 -0
  643. package/dist/tools/editTools.js.map +1 -0
  644. package/dist/tools/emailTools.d.ts +140 -0
  645. package/dist/tools/emailTools.d.ts.map +1 -0
  646. package/dist/tools/emailTools.js +792 -0
  647. package/dist/tools/emailTools.js.map +1 -0
  648. package/dist/tools/fileReadTracker.d.ts +69 -0
  649. package/dist/tools/fileReadTracker.d.ts.map +1 -0
  650. package/dist/tools/fileReadTracker.js +213 -0
  651. package/dist/tools/fileReadTracker.js.map +1 -0
  652. package/dist/tools/fileTools.d.ts +3 -0
  653. package/dist/tools/fileTools.d.ts.map +1 -0
  654. package/dist/tools/fileTools.js +342 -0
  655. package/dist/tools/fileTools.js.map +1 -0
  656. package/dist/tools/grepTools.d.ts +3 -0
  657. package/dist/tools/grepTools.d.ts.map +1 -0
  658. package/dist/tools/grepTools.js +129 -0
  659. package/dist/tools/grepTools.js.map +1 -0
  660. package/dist/tools/humanOpsTools.d.ts +3 -0
  661. package/dist/tools/humanOpsTools.d.ts.map +1 -0
  662. package/dist/tools/humanOpsTools.js +86 -0
  663. package/dist/tools/humanOpsTools.js.map +1 -0
  664. package/dist/tools/localExplore.d.ts +38 -0
  665. package/dist/tools/localExplore.d.ts.map +1 -0
  666. package/dist/tools/localExplore.js +30 -0
  667. package/dist/tools/localExplore.js.map +1 -0
  668. package/dist/tools/metaTools.d.ts +3 -0
  669. package/dist/tools/metaTools.d.ts.map +1 -0
  670. package/dist/tools/metaTools.js +148 -0
  671. package/dist/tools/metaTools.js.map +1 -0
  672. package/dist/tools/planningTools.d.ts +12 -0
  673. package/dist/tools/planningTools.d.ts.map +1 -0
  674. package/dist/tools/planningTools.js +75 -0
  675. package/dist/tools/planningTools.js.map +1 -0
  676. package/dist/tools/searchTools.d.ts +12 -0
  677. package/dist/tools/searchTools.d.ts.map +1 -0
  678. package/dist/tools/searchTools.js +370 -0
  679. package/dist/tools/searchTools.js.map +1 -0
  680. package/dist/tools/secureAppleExploitation.d.ts +29 -0
  681. package/dist/tools/secureAppleExploitation.d.ts.map +1 -0
  682. package/dist/tools/secureAppleExploitation.js +518 -0
  683. package/dist/tools/secureAppleExploitation.js.map +1 -0
  684. package/dist/tools/telemetryTools.d.ts +5 -0
  685. package/dist/tools/telemetryTools.d.ts.map +1 -0
  686. package/dist/tools/telemetryTools.js +9 -0
  687. package/dist/tools/telemetryTools.js.map +1 -0
  688. package/dist/tools/unifiedOps.d.ts +3 -0
  689. package/dist/tools/unifiedOps.d.ts.map +1 -0
  690. package/dist/tools/unifiedOps.js +57 -0
  691. package/dist/tools/unifiedOps.js.map +1 -0
  692. package/dist/tools/webTools.d.ts +26 -0
  693. package/dist/tools/webTools.d.ts.map +1 -0
  694. package/dist/tools/webTools.js +227 -0
  695. package/dist/tools/webTools.js.map +1 -0
  696. package/dist/ui/PromptController.d.ts +174 -0
  697. package/dist/ui/PromptController.d.ts.map +1 -0
  698. package/dist/ui/PromptController.js +351 -0
  699. package/dist/ui/PromptController.js.map +1 -0
  700. package/dist/ui/UnifiedUIRenderer.d.ts +779 -0
  701. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -0
  702. package/dist/ui/UnifiedUIRenderer.js +5458 -0
  703. package/dist/ui/UnifiedUIRenderer.js.map +1 -0
  704. package/dist/ui/animatedStatus.d.ts +140 -0
  705. package/dist/ui/animatedStatus.d.ts.map +1 -0
  706. package/dist/ui/animatedStatus.js +480 -0
  707. package/dist/ui/animatedStatus.js.map +1 -0
  708. package/dist/ui/animation/AnimationScheduler.d.ts +197 -0
  709. package/dist/ui/animation/AnimationScheduler.d.ts.map +1 -0
  710. package/dist/ui/animation/AnimationScheduler.js +440 -0
  711. package/dist/ui/animation/AnimationScheduler.js.map +1 -0
  712. package/dist/ui/codeHighlighter.d.ts +6 -0
  713. package/dist/ui/codeHighlighter.d.ts.map +1 -0
  714. package/dist/ui/codeHighlighter.js +855 -0
  715. package/dist/ui/codeHighlighter.js.map +1 -0
  716. package/dist/ui/designSystem.d.ts +26 -0
  717. package/dist/ui/designSystem.d.ts.map +1 -0
  718. package/dist/ui/designSystem.js +114 -0
  719. package/dist/ui/designSystem.js.map +1 -0
  720. package/dist/ui/errorFormatter.d.ts +64 -0
  721. package/dist/ui/errorFormatter.d.ts.map +1 -0
  722. package/dist/ui/errorFormatter.js +316 -0
  723. package/dist/ui/errorFormatter.js.map +1 -0
  724. package/dist/ui/globalWriteLock.d.ts +63 -0
  725. package/dist/ui/globalWriteLock.d.ts.map +1 -0
  726. package/dist/ui/globalWriteLock.js +173 -0
  727. package/dist/ui/globalWriteLock.js.map +1 -0
  728. package/dist/ui/index.d.ts +32 -0
  729. package/dist/ui/index.d.ts.map +1 -0
  730. package/dist/ui/index.js +54 -0
  731. package/dist/ui/index.js.map +1 -0
  732. package/dist/ui/interrupts/InterruptManager.d.ts +157 -0
  733. package/dist/ui/interrupts/InterruptManager.d.ts.map +1 -0
  734. package/dist/ui/interrupts/InterruptManager.js +501 -0
  735. package/dist/ui/interrupts/InterruptManager.js.map +1 -0
  736. package/dist/ui/layout.d.ts +27 -0
  737. package/dist/ui/layout.d.ts.map +1 -0
  738. package/dist/ui/layout.js +184 -0
  739. package/dist/ui/layout.js.map +1 -0
  740. package/dist/ui/maxOffensiveUkraineUI.d.ts +94 -0
  741. package/dist/ui/maxOffensiveUkraineUI.d.ts.map +1 -0
  742. package/dist/ui/maxOffensiveUkraineUI.js +316 -0
  743. package/dist/ui/maxOffensiveUkraineUI.js.map +1 -0
  744. package/dist/ui/outputMode.d.ts +44 -0
  745. package/dist/ui/outputMode.d.ts.map +1 -0
  746. package/dist/ui/outputMode.js +123 -0
  747. package/dist/ui/outputMode.js.map +1 -0
  748. package/dist/ui/overlay/OverlayManager.d.ts +105 -0
  749. package/dist/ui/overlay/OverlayManager.d.ts.map +1 -0
  750. package/dist/ui/overlay/OverlayManager.js +291 -0
  751. package/dist/ui/overlay/OverlayManager.js.map +1 -0
  752. package/dist/ui/premiumComponents.d.ts +54 -0
  753. package/dist/ui/premiumComponents.d.ts.map +1 -0
  754. package/dist/ui/premiumComponents.js +241 -0
  755. package/dist/ui/premiumComponents.js.map +1 -0
  756. package/dist/ui/richText.d.ts +13 -0
  757. package/dist/ui/richText.d.ts.map +1 -0
  758. package/dist/ui/richText.js +443 -0
  759. package/dist/ui/richText.js.map +1 -0
  760. package/dist/ui/telemetry/ResponseTracker.d.ts +22 -0
  761. package/dist/ui/telemetry/ResponseTracker.d.ts.map +1 -0
  762. package/dist/ui/telemetry/ResponseTracker.js +60 -0
  763. package/dist/ui/telemetry/ResponseTracker.js.map +1 -0
  764. package/dist/ui/telemetry/UITelemetry.d.ts +181 -0
  765. package/dist/ui/telemetry/UITelemetry.d.ts.map +1 -0
  766. package/dist/ui/telemetry/UITelemetry.js +446 -0
  767. package/dist/ui/telemetry/UITelemetry.js.map +1 -0
  768. package/dist/ui/textHighlighter.d.ts +83 -0
  769. package/dist/ui/textHighlighter.d.ts.map +1 -0
  770. package/dist/ui/textHighlighter.js +267 -0
  771. package/dist/ui/textHighlighter.js.map +1 -0
  772. package/dist/ui/theme.d.ts +364 -0
  773. package/dist/ui/theme.d.ts.map +1 -0
  774. package/dist/ui/theme.js +471 -0
  775. package/dist/ui/theme.js.map +1 -0
  776. package/dist/ui/toolDisplay.d.ts +221 -0
  777. package/dist/ui/toolDisplay.d.ts.map +1 -0
  778. package/dist/ui/toolDisplay.js +1654 -0
  779. package/dist/ui/toolDisplay.js.map +1 -0
  780. package/dist/ui/uiConstants.d.ts +288 -0
  781. package/dist/ui/uiConstants.d.ts.map +1 -0
  782. package/dist/ui/uiConstants.js +472 -0
  783. package/dist/ui/uiConstants.js.map +1 -0
  784. package/dist/utils/askUserPrompt.d.ts +21 -0
  785. package/dist/utils/askUserPrompt.d.ts.map +1 -0
  786. package/dist/utils/askUserPrompt.js +87 -0
  787. package/dist/utils/askUserPrompt.js.map +1 -0
  788. package/dist/utils/asyncUtils.d.ts +95 -0
  789. package/dist/utils/asyncUtils.d.ts.map +1 -0
  790. package/dist/utils/asyncUtils.js +286 -0
  791. package/dist/utils/asyncUtils.js.map +1 -0
  792. package/dist/utils/debugLogger.d.ts +6 -0
  793. package/dist/utils/debugLogger.d.ts.map +1 -0
  794. package/dist/utils/debugLogger.js +39 -0
  795. package/dist/utils/debugLogger.js.map +1 -0
  796. package/dist/utils/errorUtils.d.ts +12 -0
  797. package/dist/utils/errorUtils.d.ts.map +1 -0
  798. package/dist/utils/errorUtils.js +83 -0
  799. package/dist/utils/errorUtils.js.map +1 -0
  800. package/dist/utils/frontmatter.d.ts +10 -0
  801. package/dist/utils/frontmatter.d.ts.map +1 -0
  802. package/dist/utils/frontmatter.js +78 -0
  803. package/dist/utils/frontmatter.js.map +1 -0
  804. package/dist/utils/packageInfo.d.ts +14 -0
  805. package/dist/utils/packageInfo.d.ts.map +1 -0
  806. package/dist/utils/packageInfo.js +45 -0
  807. package/dist/utils/packageInfo.js.map +1 -0
  808. package/dist/utils/planFormatter.d.ts +34 -0
  809. package/dist/utils/planFormatter.d.ts.map +1 -0
  810. package/dist/utils/planFormatter.js +141 -0
  811. package/dist/utils/planFormatter.js.map +1 -0
  812. package/dist/utils/securityUtils.d.ts +132 -0
  813. package/dist/utils/securityUtils.d.ts.map +1 -0
  814. package/dist/utils/securityUtils.js +324 -0
  815. package/dist/utils/securityUtils.js.map +1 -0
  816. package/dist/workspace.d.ts +8 -0
  817. package/dist/workspace.d.ts.map +1 -0
  818. package/dist/workspace.js +134 -0
  819. package/dist/workspace.js.map +1 -0
  820. package/dist/workspace.validator.d.ts +49 -0
  821. package/dist/workspace.validator.d.ts.map +1 -0
  822. package/dist/workspace.validator.js +215 -0
  823. package/dist/workspace.validator.js.map +1 -0
  824. package/package.json +108 -0
@@ -0,0 +1,702 @@
1
+ import { readFile, writeFile, stat, mkdir } from 'node:fs/promises';
2
+ import { join, relative, dirname } from 'node:path';
3
+ import { buildError } from '../core/errors.js';
4
+ import { buildDiffSegmentsFast, formatDiffLines, buildDiffWithContext, formatDiffClaudeStyle } from './diffUtils.js';
5
+ import { scoreEditReality, recordSuccessfulEdit, REALITY_THRESHOLDS } from '../core/realityScore.js';
6
+ import { logDebug } from '../utils/debugLogger.js';
7
+ import { validateReadForEditEx, recordFileRead } from './fileReadTracker.js';
8
+ /**
9
+ * Track edit attempts per file to detect when edits keep being reverted (e.g., by linters/hooks)
10
+ */
11
+ const fileEditAttempts = new Map();
12
+ const MAX_EDIT_ATTEMPTS_PER_FILE = 3;
13
+ const EDIT_ATTEMPT_RESET_MS = 60000; // Reset counter after 1 minute of no edits
14
+ /**
15
+ * Creates the Edit tool for surgical file modifications using exact string replacement.
16
+ *
17
+ * This tool performs string-based edits without requiring full file rewrites,
18
+ * making it ideal for targeted changes while preserving exact formatting and indentation.
19
+ *
20
+ * Features:
21
+ * - Exact string matching (preserves indentation)
22
+ * - Replace all occurrences or enforce uniqueness
23
+ * - Unified diff preview
24
+ * - Validation before writing
25
+ *
26
+ * @param workingDir - The working directory for resolving relative paths
27
+ * @returns Array containing the Edit tool definition
28
+ */
29
+ export function createEditTools(workingDir) {
30
+ return [
31
+ {
32
+ name: 'Edit',
33
+ description: 'Performs exact string replacements in files. CRITICAL: For existing files, you MUST use the Read tool FIRST to get the exact text including whitespace and indentation, then copy it into old_string. The edit will FAIL if old_string is not unique unless replace_all is true. To CREATE a new file, use empty old_string (no prior read needed). To DELETE text, use empty new_string.',
34
+ parameters: {
35
+ type: 'object',
36
+ properties: {
37
+ file_path: {
38
+ type: 'string',
39
+ description: 'The absolute path to the file to modify or create',
40
+ },
41
+ old_string: {
42
+ type: 'string',
43
+ description: 'The exact text to replace (must match precisely including whitespace and indentation). For existing files, use read_file FIRST, then copy the exact text from its output (excluding line numbers). Use empty string "" to create a new file without needing a prior read.',
44
+ },
45
+ new_string: {
46
+ type: 'string',
47
+ default: '',
48
+ description: 'The text to replace it with. Use empty string "" to delete the old_string. For new files, this is the full content. Defaults to "" when omitted.',
49
+ },
50
+ replace_all: {
51
+ type: 'boolean',
52
+ description: 'Replace all occurrences of old_string (default false). When false, the edit fails if old_string appears multiple times.',
53
+ },
54
+ },
55
+ required: ['file_path', 'old_string'],
56
+ additionalProperties: false,
57
+ },
58
+ handler: async (args) => performSurgicalEdit(workingDir, args),
59
+ },
60
+ ];
61
+ }
62
+ /**
63
+ * Shared edit executor used by both legacy and unified tool flows.
64
+ * Provides consistent validation, creation/deletion handling, and diff output.
65
+ */
66
+ export async function performSurgicalEdit(workingDir, args) {
67
+ const pathArg = args['file_path'];
68
+ const oldString = args['old_string'];
69
+ const newStringRaw = args['new_string'];
70
+ const replaceAll = args['replace_all'] === true;
71
+ let replacementString = typeof newStringRaw === 'string' ? newStringRaw : '';
72
+ // Validate inputs
73
+ if (typeof pathArg !== 'string' || !pathArg.trim()) {
74
+ return 'Error: file_path must be a non-empty string.';
75
+ }
76
+ if (typeof oldString !== 'string') {
77
+ return 'Error: old_string must be a string (use "" for empty).';
78
+ }
79
+ if (newStringRaw !== undefined && typeof newStringRaw !== 'string') {
80
+ return 'Error: new_string must be a string (use "" for empty).';
81
+ }
82
+ // Only error if both are identical AND non-empty (no-op edit)
83
+ // Allow: empty old + content = create, content + empty new = delete
84
+ if (oldString === replacementString && oldString !== '') {
85
+ return 'Error: old_string and new_string are identical. No changes would be made.';
86
+ }
87
+ // Both empty is also a no-op
88
+ if (oldString === '' && replacementString === '') {
89
+ return 'Error: Both old_string and new_string are empty. Provide content to create a file or text to replace.';
90
+ }
91
+ try {
92
+ const filePath = resolveFilePath(workingDir, pathArg);
93
+ // Check if file exists
94
+ let fileExists = false;
95
+ try {
96
+ await stat(filePath);
97
+ fileExists = true;
98
+ }
99
+ catch {
100
+ fileExists = false;
101
+ }
102
+ // Handle file creation mode (empty old_string)
103
+ if (oldString === '') {
104
+ if (fileExists) {
105
+ return `Error: File already exists: ${filePath}\nTo modify an existing file, provide the exact text to replace in old_string.`;
106
+ }
107
+ // Create parent directories if needed
108
+ const dir = dirname(filePath);
109
+ await mkdir(dir, { recursive: true });
110
+ // Write new file
111
+ await writeFile(filePath, replacementString, 'utf-8');
112
+ const relativePath = relative(workingDir, filePath);
113
+ const displayPath = relativePath && !relativePath.startsWith('..') ? relativePath : filePath;
114
+ const lineCount = replacementString.split('\n').length;
115
+ const diffSegments = buildDiffSegmentsFast('', replacementString);
116
+ const addedLines = diffSegments.filter((s) => s.type === 'added').length;
117
+ // Limit to 5 diff lines for concise output
118
+ const MAX_DIFF_LINES = 5;
119
+ const truncatedSegments = diffSegments.slice(0, MAX_DIFF_LINES);
120
+ const diffLines = formatDiffLines(truncatedSegments, true);
121
+ if (diffSegments.length > MAX_DIFF_LINES) {
122
+ diffLines.push(` ... +${diffSegments.length - MAX_DIFF_LINES} more lines`);
123
+ }
124
+ const diffBlock = diffLines.length > 0 ? diffLines.join('\n') : '(No visual diff - whitespace or formatting changes only)';
125
+ return [
126
+ `⏺ Create(${displayPath})`,
127
+ ` ⎿ Created ${displayPath} with ${addedLines} additions`,
128
+ ` ${lineCount} line${lineCount === 1 ? '' : 's'} written`,
129
+ diffBlock,
130
+ ].join('\n');
131
+ }
132
+ // For modifications, file must exist
133
+ if (!fileExists) {
134
+ return `Error: File not found: ${filePath}\nTo create a new file, use empty old_string ("").`;
135
+ }
136
+ // Read current content (async for speed)
137
+ let currentContent = await readFile(filePath, 'utf-8');
138
+ let autoRefreshNote = '';
139
+ // ENFORCE READ BEFORE EDIT: Check that this file was read before attempting edit
140
+ const readValidation = validateReadForEditEx(filePath, oldString, currentContent);
141
+ if (!readValidation.valid) {
142
+ // If content changed but can auto-refresh, update the read record automatically
143
+ if (readValidation.canAutoRefresh && (readValidation.issue === 'content_changed' || readValidation.issue === 'stale')) {
144
+ // Auto-refresh: re-read the file and update the tracker
145
+ currentContent = await readFile(filePath, 'utf-8');
146
+ recordFileRead(filePath, currentContent);
147
+ autoRefreshNote = readValidation.issue === 'content_changed'
148
+ ? ' [auto-refreshed: file was modified externally]'
149
+ : ' [auto-refreshed: previous read was stale]';
150
+ logDebug(`Auto-refreshed file read for ${filePath}: ${readValidation.issue}`);
151
+ }
152
+ else {
153
+ // Cannot auto-refresh (file was never read) - return the error
154
+ return readValidation.errorMessage ?? 'Error: File validation failed.';
155
+ }
156
+ }
157
+ // Normalize escaped literals and whitespace differences to reduce mismatch errors
158
+ let targetString = oldString;
159
+ let matchNote = null;
160
+ if (!currentContent.includes(targetString)) {
161
+ const unescaped = unescapeLiteral(oldString);
162
+ if (unescaped !== oldString && currentContent.includes(unescaped)) {
163
+ targetString = unescaped;
164
+ matchNote = 'normalized escaped old_string';
165
+ }
166
+ }
167
+ if (!currentContent.includes(targetString)) {
168
+ const flexibleMatch = matchWithFlexibleWhitespace(currentContent, targetString);
169
+ if (flexibleMatch) {
170
+ // Check if it was a fuzzy match (different from exact whitespace normalization)
171
+ const fuzzyResult = findBestFuzzyMatch(currentContent, targetString);
172
+ if (fuzzyResult && fuzzyResult.match === flexibleMatch && fuzzyResult.similarity < 0.99) {
173
+ matchNote = `fuzzy matched (${Math.round(fuzzyResult.similarity * 100)}% similar)`;
174
+ }
175
+ else {
176
+ matchNote = matchNote ? matchNote : 'normalized whitespace';
177
+ }
178
+ targetString = flexibleMatch;
179
+ }
180
+ }
181
+ // Check if old_string exists in file
182
+ if (!currentContent.includes(targetString)) {
183
+ // Provide helpful debugging info when match fails
184
+ const firstLine = oldString.split('\n')[0] || '';
185
+ const suggestions = findSimilarLinesWithSuggestion(currentContent, firstLine, oldString, filePath, workingDir);
186
+ // AI Flow Design: Provide structured guidance for self-correction
187
+ const aiGuidance = buildAIRecoveryGuidance(oldString, currentContent);
188
+ return [
189
+ 'Error: old_string not found in file.',
190
+ '',
191
+ `File: ${filePath}`,
192
+ `Searching for: ${JSON.stringify(firstLine.substring(0, 80))}${firstLine.length > 80 ? '...' : ''}`,
193
+ '',
194
+ suggestions.hints,
195
+ '',
196
+ suggestions.actionable ? 'RECOMMENDED ACTION:' : 'Guidance:',
197
+ suggestions.actionable ? suggestions.actionable : '- Ensure exact whitespace/indentation matches\n- Copy text directly from Read output\n- Check for tabs vs spaces',
198
+ '',
199
+ '---',
200
+ 'AI SELF-CORRECTION GUIDANCE:',
201
+ aiGuidance,
202
+ ].join('\n');
203
+ }
204
+ // Count occurrences
205
+ // Preserve indentation when we had to normalize whitespace or use fuzzy matching
206
+ if (matchNote && (matchNote.includes('whitespace') || matchNote.includes('fuzzy'))) {
207
+ const adjusted = alignIndentation(targetString, replacementString);
208
+ if (adjusted !== replacementString) {
209
+ replacementString = adjusted;
210
+ }
211
+ }
212
+ const occurrences = countOccurrences(currentContent, targetString);
213
+ if (!replaceAll && occurrences > 1) {
214
+ return `Error: old_string appears ${occurrences} times in the file. Either:\n1. Provide a larger unique string that includes more context\n2. Set replace_all: true to replace all ${occurrences} occurrences\n\nFile: ${filePath}`;
215
+ }
216
+ // Reality Score Check - detect potential hallucinations before applying edit
217
+ const realityScore = scoreEditReality({
218
+ filePath,
219
+ oldString: targetString,
220
+ newString: replacementString,
221
+ replaceAll,
222
+ });
223
+ // Log reality score for debugging/learning
224
+ logDebug(`Edit reality score for ${filePath}: ${realityScore.total}/100 (${realityScore.confidence})`);
225
+ // Block edits with very low reality scores (likely hallucinations)
226
+ if (realityScore.total < REALITY_THRESHOLDS.REJECT) {
227
+ const warnings = realityScore.warnings.length > 0
228
+ ? `\nWarnings:\n${realityScore.warnings.map(w => ` ⚠ ${w}`).join('\n')}`
229
+ : '';
230
+ const failed = realityScore.failed.length > 0
231
+ ? `\nFailed checks:\n${realityScore.failed.map(f => ` ✗ ${f}`).join('\n')}`
232
+ : '';
233
+ return [
234
+ `⚠ Edit blocked - Low reality score: ${realityScore.total}/100`,
235
+ '',
236
+ 'This edit appears to reference content that may not exist.',
237
+ 'Please verify:',
238
+ '1. The old_string text actually exists in the file',
239
+ '2. The imports/dependencies in new_string are valid',
240
+ '3. The syntax in new_string is correct',
241
+ warnings,
242
+ failed,
243
+ '',
244
+ `File: ${filePath}`,
245
+ ].join('\n');
246
+ }
247
+ // Warn on medium-low scores but allow the edit
248
+ let realityWarning = '';
249
+ if (realityScore.total < REALITY_THRESHOLDS.REVIEW && realityScore.warnings.length > 0) {
250
+ realityWarning = `\n⚠ Reality score: ${realityScore.total}/100 - ${realityScore.warnings[0]}`;
251
+ }
252
+ // Perform replacement
253
+ const newContent = replaceAll
254
+ ? currentContent.split(targetString).join(replacementString)
255
+ : currentContent.replace(targetString, replacementString);
256
+ // Generate diff with context lines (AGI CLI style)
257
+ const diffResult = buildDiffWithContext(currentContent, newContent, 2);
258
+ // Check for repeated edit attempts on same file (detect linter/hook reversion loops)
259
+ const now = Date.now();
260
+ const attempts = fileEditAttempts.get(filePath);
261
+ if (attempts) {
262
+ // Reset if enough time has passed
263
+ if (now - attempts.lastTimestamp > EDIT_ATTEMPT_RESET_MS) {
264
+ fileEditAttempts.set(filePath, { count: 1, lastContent: newContent, lastTimestamp: now });
265
+ }
266
+ else if (attempts.lastContent === newContent) {
267
+ // Same exact edit being attempted again - likely in a loop
268
+ attempts.count++;
269
+ attempts.lastTimestamp = now;
270
+ if (attempts.count > MAX_EDIT_ATTEMPTS_PER_FILE) {
271
+ return [
272
+ `Error: Edit loop detected on ${filePath}`,
273
+ '',
274
+ `This edit has been attempted ${attempts.count} times in quick succession.`,
275
+ 'The file may be getting reverted by a linter, formatter, or pre-commit hook.',
276
+ '',
277
+ 'To resolve:',
278
+ '1. Check for active file watchers or formatters',
279
+ '2. Disable auto-formatting temporarily',
280
+ '3. Or accept the current file state and move on',
281
+ '',
282
+ 'STOPPING to prevent infinite loop.',
283
+ ].join('\n');
284
+ }
285
+ }
286
+ else {
287
+ // Different edit - reset counter but track the new content
288
+ fileEditAttempts.set(filePath, { count: 1, lastContent: newContent, lastTimestamp: now });
289
+ }
290
+ }
291
+ else {
292
+ fileEditAttempts.set(filePath, { count: 1, lastContent: newContent, lastTimestamp: now });
293
+ }
294
+ // Write file (async for speed)
295
+ await writeFile(filePath, newContent, 'utf-8');
296
+ // Verify the edit persisted (detect immediate reversion by hooks/watchers)
297
+ // Small delay to allow any file watchers to trigger
298
+ await new Promise(resolve => setTimeout(resolve, 50));
299
+ const verifyContent = await readFile(filePath, 'utf-8');
300
+ if (verifyContent !== newContent) {
301
+ // File was modified after our write - likely by a linter/formatter
302
+ // Update the read tracker with the new content so subsequent edits work
303
+ recordFileRead(filePath, verifyContent);
304
+ const editAttempts = fileEditAttempts.get(filePath);
305
+ if (editAttempts) {
306
+ editAttempts.count++;
307
+ }
308
+ // Check if the core change was preserved (fuzzy check)
309
+ const coreChangePreserved = verifyContent.includes(replacementString.trim());
310
+ if (coreChangePreserved) {
311
+ // Linter only reformatted, core change is there - continue with success
312
+ logDebug(`Edit reformatted by linter but core change preserved: ${filePath}`);
313
+ // Update autoRefreshNote to indicate linter ran
314
+ autoRefreshNote = autoRefreshNote
315
+ ? `${autoRefreshNote} [reformatted by linter]`
316
+ : ' [reformatted by linter]';
317
+ }
318
+ else {
319
+ return [
320
+ `Warning: Edit was immediately modified by an external process.`,
321
+ '',
322
+ `File: ${filePath}`,
323
+ 'The edit was written but the file content changed immediately after.',
324
+ 'This is likely caused by a linter, formatter, or file watcher.',
325
+ '',
326
+ 'The current file state may differ from the intended edit.',
327
+ 'The read tracker has been updated with the current content.',
328
+ 'You can retry the edit - it should work now.',
329
+ ].join('\n');
330
+ }
331
+ }
332
+ else {
333
+ // Edit persisted exactly - update the read tracker with new content
334
+ recordFileRead(filePath, newContent);
335
+ }
336
+ // Build summary (AGI CLI style)
337
+ const relativePath = relative(workingDir, filePath);
338
+ const displayPath = relativePath && !relativePath.startsWith('..') ? relativePath : filePath;
339
+ const { additions, removals } = diffResult;
340
+ const occurrencesText = replaceAll ? ` (${occurrences} occurrence${occurrences > 1 ? 's' : ''})` : '';
341
+ const noteText = matchNote ? ` [${matchNote}]` : '';
342
+ const refreshText = autoRefreshNote || '';
343
+ // Format diff with colors for terminal display (AGI CLI style)
344
+ // Limit to 5 diff lines to keep output concise
345
+ const MAX_DIFF_LINES = 5;
346
+ const truncatedSegments = diffResult.segments.slice(0, MAX_DIFF_LINES);
347
+ const diffLines = formatDiffClaudeStyle(truncatedSegments, true);
348
+ const remainingChanges = diffResult.segments.length - MAX_DIFF_LINES;
349
+ if (remainingChanges > 0) {
350
+ diffLines.push(` ... +${remainingChanges} more changes`);
351
+ }
352
+ const diffBlock = diffLines.length > 0 ? diffLines.join('\n') : ' (No visual diff - whitespace or formatting changes only)';
353
+ // Build AGI CLI style output:
354
+ // ⏺ Update(filepath)
355
+ // ⎿ Updated filepath with N additions and M removals
356
+ // 41 }
357
+ // 42 + new line
358
+ const additionText = additions === 1 ? '1 addition' : `${additions} additions`;
359
+ const removalText = removals === 1 ? '1 removal' : `${removals} removals`;
360
+ const summaryParts = [];
361
+ if (additions > 0)
362
+ summaryParts.push(additionText);
363
+ if (removals > 0)
364
+ summaryParts.push(removalText);
365
+ const summaryText = summaryParts.length > 0 ? summaryParts.join(' and ') : 'no changes';
366
+ // Include reality score in output for high-confidence edits
367
+ const realityNote = realityScore.confidence === 'high'
368
+ ? ''
369
+ : realityWarning;
370
+ // Record successful edit for RL learning
371
+ recordSuccessfulEdit(filePath, realityScore);
372
+ return [
373
+ `⏺ Update(${displayPath})${occurrencesText}${noteText}${refreshText}`,
374
+ ` ⎿ Updated ${displayPath} with ${summaryText}`,
375
+ diffBlock,
376
+ realityNote,
377
+ ].filter(Boolean).join('\n');
378
+ }
379
+ catch (error) {
380
+ return buildError('editing file', error, {
381
+ file_path: typeof pathArg === 'string' ? pathArg : '',
382
+ old_string_length: typeof oldString === 'string' ? oldString.length : 0,
383
+ new_string_length: typeof replacementString === 'string' ? replacementString.length : 0,
384
+ });
385
+ }
386
+ }
387
+ function resolveFilePath(workingDir, path) {
388
+ const normalized = path.trim();
389
+ return normalized.startsWith('/') ? normalized : join(workingDir, normalized);
390
+ }
391
+ function countOccurrences(text, search) {
392
+ if (!search)
393
+ return 0;
394
+ let count = 0;
395
+ let position = 0;
396
+ while ((position = text.indexOf(search, position)) !== -1) {
397
+ count++;
398
+ position += search.length;
399
+ }
400
+ return count;
401
+ }
402
+ /**
403
+ * Convert common escaped sequences (\\n, \\r, \\t, \\\\) into their literal forms.
404
+ */
405
+ function unescapeLiteral(value) {
406
+ if (!value.includes('\\'))
407
+ return value;
408
+ return value
409
+ .replace(/\\\\/g, '\\')
410
+ .replace(/\\n/g, '\n')
411
+ .replace(/\\r/g, '\r')
412
+ .replace(/\\t/g, '\t');
413
+ }
414
+ /**
415
+ * Try to locate the search string allowing whitespace differences (indentation, spacing).
416
+ * Returns the exact substring from the original content when matched.
417
+ */
418
+ function matchWithFlexibleWhitespace(content, search) {
419
+ // First try regex-based flexible whitespace matching
420
+ const normalizedPattern = buildWhitespaceFlexiblePattern(search);
421
+ if (normalizedPattern) {
422
+ const regex = new RegExp(normalizedPattern, 's');
423
+ const match = content.match(regex);
424
+ if (match)
425
+ return match[0];
426
+ }
427
+ // Then try fuzzy substring matching
428
+ const fuzzyMatch = findBestFuzzyMatch(content, search);
429
+ if (fuzzyMatch && fuzzyMatch.similarity >= 0.92) {
430
+ return fuzzyMatch.match;
431
+ }
432
+ return null;
433
+ }
434
+ /**
435
+ * Find the best fuzzy match for a search string within content.
436
+ * Uses a sliding window approach with similarity scoring.
437
+ */
438
+ function findBestFuzzyMatch(content, search) {
439
+ if (!search.trim() || search.length < 5)
440
+ return null;
441
+ const searchLines = search.split('\n');
442
+ const contentLines = content.split('\n');
443
+ // For single line searches, find the most similar line
444
+ if (searchLines.length === 1) {
445
+ let bestMatch = null;
446
+ let charPosition = 0;
447
+ for (let i = 0; i < contentLines.length; i++) {
448
+ const line = contentLines[i] || '';
449
+ const similarity = calculateLineSimilarity(search, line);
450
+ if (similarity > 0.85 && (!bestMatch || similarity > bestMatch.similarity)) {
451
+ bestMatch = { match: line, similarity, position: charPosition };
452
+ }
453
+ charPosition += line.length + 1; // +1 for newline
454
+ }
455
+ return bestMatch;
456
+ }
457
+ // For multi-line searches, use window matching
458
+ const windowSize = searchLines.length;
459
+ let bestMatch = null;
460
+ let charPosition = 0;
461
+ for (let i = 0; i <= contentLines.length - windowSize; i++) {
462
+ const windowLines = contentLines.slice(i, i + windowSize);
463
+ const windowText = windowLines.join('\n');
464
+ const similarity = calculateBlockSimilarity(search, windowText);
465
+ if (similarity > 0.85 && (!bestMatch || similarity > bestMatch.similarity)) {
466
+ bestMatch = { match: windowText, similarity, position: charPosition };
467
+ }
468
+ charPosition += (contentLines[i] || '').length + 1;
469
+ }
470
+ return bestMatch;
471
+ }
472
+ /**
473
+ * Calculate similarity between two lines, ignoring leading/trailing whitespace differences.
474
+ */
475
+ function calculateLineSimilarity(a, b) {
476
+ const aTrimmed = a.trim();
477
+ const bTrimmed = b.trim();
478
+ if (aTrimmed === bTrimmed)
479
+ return 1.0;
480
+ if (!aTrimmed || !bTrimmed)
481
+ return 0;
482
+ // Normalize whitespace for comparison
483
+ const aNorm = aTrimmed.replace(/\s+/g, ' ');
484
+ const bNorm = bTrimmed.replace(/\s+/g, ' ');
485
+ if (aNorm === bNorm)
486
+ return 0.98;
487
+ // Calculate Levenshtein-based similarity
488
+ return 1 - (levenshteinDistance(aNorm, bNorm) / Math.max(aNorm.length, bNorm.length));
489
+ }
490
+ /**
491
+ * Calculate similarity between two multi-line blocks.
492
+ */
493
+ function calculateBlockSimilarity(a, b) {
494
+ const aLines = a.split('\n');
495
+ const bLines = b.split('\n');
496
+ if (aLines.length !== bLines.length) {
497
+ // Different line counts - lower base score
498
+ const minLen = Math.min(aLines.length, bLines.length);
499
+ const maxLen = Math.max(aLines.length, bLines.length);
500
+ let totalSim = 0;
501
+ for (let i = 0; i < minLen; i++) {
502
+ totalSim += calculateLineSimilarity(aLines[i] || '', bLines[i] || '');
503
+ }
504
+ return (totalSim / maxLen) * 0.9; // Penalty for length mismatch
505
+ }
506
+ let totalSimilarity = 0;
507
+ for (let i = 0; i < aLines.length; i++) {
508
+ totalSimilarity += calculateLineSimilarity(aLines[i] || '', bLines[i] || '');
509
+ }
510
+ return totalSimilarity / aLines.length;
511
+ }
512
+ /**
513
+ * Levenshtein distance calculation for fuzzy matching.
514
+ */
515
+ function levenshteinDistance(a, b) {
516
+ if (a.length === 0)
517
+ return b.length;
518
+ if (b.length === 0)
519
+ return a.length;
520
+ // Use two-row optimization for memory efficiency
521
+ let prevRow = Array.from({ length: b.length + 1 }, (_, i) => i);
522
+ let currRow = new Array(b.length + 1);
523
+ for (let i = 1; i <= a.length; i++) {
524
+ currRow[0] = i;
525
+ for (let j = 1; j <= b.length; j++) {
526
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
527
+ currRow[j] = Math.min((prevRow[j] ?? 0) + 1, // deletion
528
+ (currRow[j - 1] ?? 0) + 1, // insertion
529
+ (prevRow[j - 1] ?? 0) + cost // substitution
530
+ );
531
+ }
532
+ [prevRow, currRow] = [currRow, prevRow];
533
+ }
534
+ return prevRow[b.length] ?? 0;
535
+ }
536
+ function buildWhitespaceFlexiblePattern(search) {
537
+ if (!search.trim()) {
538
+ return null;
539
+ }
540
+ // Escape regex metacharacters
541
+ const escaped = search.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
542
+ // Only allow flexible whitespace WITHIN lines, not across lines
543
+ // This prevents matching across completely different code structures
544
+ // Split by newlines, make each line flexible, then require exact newline boundaries
545
+ const lines = escaped.split(/\\n|\n/);
546
+ const flexibleLines = lines.map(line => line.replace(/[ \t]+/g, '[ \\t]*')); // Allow zero or more whitespace
547
+ // Rejoin with flexible newline matching (allows \r\n or \n)
548
+ return flexibleLines.join('\\r?\\n');
549
+ }
550
+ /**
551
+ * When whitespace normalization is used, keep the replacement aligned with the matched indentation.
552
+ * If a line in the replacement has no indentation, inherit indentation from the matched line.
553
+ */
554
+ function alignIndentation(target, replacement) {
555
+ const targetLines = target.split('\n');
556
+ const replacementLines = replacement.split('\n');
557
+ if (targetLines.length !== replacementLines.length) {
558
+ return replacement;
559
+ }
560
+ const adjusted = replacementLines.map((line, idx) => {
561
+ const targetLine = targetLines[idx] ?? '';
562
+ const targetIndent = targetLine.match(/^\s*/)?.[0] ?? '';
563
+ if (!line.trim()) {
564
+ return targetIndent;
565
+ }
566
+ const lineIndent = line.match(/^\s*/)?.[0] ?? '';
567
+ if (lineIndent.length < targetIndent.length) {
568
+ const missing = targetIndent.slice(lineIndent.length);
569
+ return `${lineIndent}${missing}${line.trimStart()}`;
570
+ }
571
+ return line;
572
+ });
573
+ return adjusted.join('\n');
574
+ }
575
+ /**
576
+ * Enhanced similar line finder with actionable suggestions for AI.
577
+ * Provides exact text to use in old_string and clear next steps.
578
+ */
579
+ function findSimilarLinesWithSuggestion(content, searchFirstLine, _fullSearchText, filePath, workingDir) {
580
+ const similarInfo = findSimilarLines(content, searchFirstLine, filePath);
581
+ // Extract line numbers from similar lines
582
+ const lineMatch = similarInfo.match(/Line (\d+)/);
583
+ if (lineMatch && lineMatch[1]) {
584
+ const lineNum = parseInt(lineMatch[1], 10);
585
+ const relativePath = relative(workingDir, filePath);
586
+ const displayPath = relativePath && !relativePath.startsWith('..') ? relativePath : filePath;
587
+ // Provide concrete action: Read the file to get exact text
588
+ const action = [
589
+ `1. Use Read tool to view ${displayPath} starting at line ${Math.max(1, lineNum - 5)}`,
590
+ `2. Copy the EXACT text from the Read output (including all indentation)`,
591
+ `3. Use that exact text as old_string in your Edit call`,
592
+ `4. Ensure you copy multiple lines if needed for uniqueness`,
593
+ ].join('\n ');
594
+ return { hints: similarInfo, actionable: action };
595
+ }
596
+ // No similar lines found - suggest reading entire file
597
+ const relativePath = relative(workingDir, filePath);
598
+ const displayPath = relativePath && !relativePath.startsWith('..') ? relativePath : filePath;
599
+ const action = [
600
+ `1. Use Read tool to view the entire file: ${displayPath}`,
601
+ `2. Locate the text you want to change`,
602
+ `3. Copy the EXACT text including whitespace`,
603
+ `4. Paste it as old_string in your Edit call`,
604
+ ].join('\n ');
605
+ return { hints: similarInfo, actionable: action };
606
+ }
607
+ /**
608
+ * Find lines in the file that are similar to the search text.
609
+ * Enhanced with whitespace detection and auto-correction suggestions.
610
+ */
611
+ function findSimilarLines(content, searchFirstLine, _filePath) {
612
+ if (!searchFirstLine.trim()) {
613
+ return 'The search string starts with an empty line.';
614
+ }
615
+ const lines = content.split('\n');
616
+ const searchNormalized = searchFirstLine.trim().toLowerCase();
617
+ const matches = [];
618
+ // Find lines that contain key words from the search
619
+ const searchWords = searchNormalized.split(/\s+/).filter((w) => w.length > 2);
620
+ for (let i = 0; i < lines.length; i++) {
621
+ const line = lines[i] || '';
622
+ const lineNormalized = line.trim().toLowerCase();
623
+ // Check for exact match with different whitespace
624
+ if (lineNormalized === searchNormalized && line !== searchFirstLine) {
625
+ const hasTabs = line.includes('\t') !== searchFirstLine.includes('\t');
626
+ const leadingDiff = line.match(/^\s*/)?.[0]?.length !== searchFirstLine.match(/^\s*/)?.[0]?.length;
627
+ const issue = hasTabs ? 'tabs vs spaces' : leadingDiff ? 'different indentation' : 'whitespace difference';
628
+ matches.push({ lineNum: i + 1, line, similarity: 0.99, issue });
629
+ continue;
630
+ }
631
+ // Check for partial match (contains significant portion of the search)
632
+ if (lineNormalized.includes(searchNormalized.substring(0, 20))) {
633
+ matches.push({ lineNum: i + 1, line, similarity: 1.0 });
634
+ continue;
635
+ }
636
+ // Check for word overlap
637
+ if (searchWords.length > 0) {
638
+ const matchingWords = searchWords.filter((w) => lineNormalized.includes(w));
639
+ const similarity = matchingWords.length / searchWords.length;
640
+ if (similarity >= 0.5) {
641
+ matches.push({ lineNum: i + 1, line, similarity });
642
+ }
643
+ }
644
+ }
645
+ if (matches.length === 0) {
646
+ return 'No similar lines found. The text may not exist in this file.';
647
+ }
648
+ // Sort by similarity and take top 3
649
+ matches.sort((a, b) => b.similarity - a.similarity);
650
+ const topMatches = matches.slice(0, 3);
651
+ const suggestions = topMatches.map((m) => {
652
+ const truncated = m.line.length > 80 ? `${m.line.substring(0, 77)}...` : m.line;
653
+ const issueNote = m.issue ? ` (${m.issue})` : '';
654
+ return ` Line ${m.lineNum}${issueNote}: ${JSON.stringify(truncated)}`;
655
+ });
656
+ // Add auto-correction hint for whitespace issues
657
+ const whitespaceMatch = topMatches.find((m) => m.issue);
658
+ if (whitespaceMatch) {
659
+ return `Similar lines found (possible whitespace mismatch):\n${suggestions.join('\n')}\n\nCopy the exact text from Read output including indentation.`;
660
+ }
661
+ return `Similar lines found:\n${suggestions.join('\n')}`;
662
+ }
663
+ /**
664
+ * Build AI-specific recovery guidance based on the failure pattern.
665
+ * This function implements AI flow design principles for self-correction.
666
+ */
667
+ function buildAIRecoveryGuidance(searchText, fileContent) {
668
+ const guidance = [];
669
+ // Analyze the failure pattern
670
+ const hasMultipleLines = searchText.includes('\n');
671
+ const hasLeadingWhitespace = /^\s/.test(searchText);
672
+ const searchLen = searchText.length;
673
+ const fileLen = fileContent.length;
674
+ // PATTERN: Single line search in multi-line file
675
+ if (!hasMultipleLines && fileLen > 1000) {
676
+ guidance.push('• PATTERN DETECTED: Single-line search in large file', ' → Include 2-3 surrounding lines for uniqueness', ' → Use Read tool with specific line offset to get exact context');
677
+ }
678
+ // PATTERN: Missing leading whitespace
679
+ if (!hasLeadingWhitespace && fileContent.includes(' ')) {
680
+ guidance.push('• PATTERN DETECTED: Search text may be missing indentation', ' → File uses indentation, but old_string starts without whitespace', ' → Copy exact text from Read output including leading spaces/tabs');
681
+ }
682
+ // PATTERN: Very short search
683
+ if (searchLen < 30) {
684
+ guidance.push('• PATTERN DETECTED: Search text is very short (<30 chars)', ' → Short strings are prone to false negatives due to whitespace', ' → Include more context: function body, surrounding statements');
685
+ }
686
+ // PATTERN: Potential escape sequence issues
687
+ if (searchText.includes('\\n') || searchText.includes('\\t')) {
688
+ guidance.push('• PATTERN DETECTED: Escaped characters in search text', ' → old_string contains \\n or \\t as literal strings', ' → Use actual newlines/tabs, not escaped versions');
689
+ }
690
+ // PATTERN: Function/class definition
691
+ if (/^(function|class|def |const |let |var |export )/.test(searchText.trim())) {
692
+ guidance.push('• PATTERN DETECTED: Function/class definition search', ' → Definitions often have complex indentation', ' → Read the exact definition including all decorators/comments above');
693
+ }
694
+ // Default guidance if no specific pattern detected
695
+ if (guidance.length === 0) {
696
+ guidance.push('• GENERAL GUIDANCE:', ' 1. Use Read tool to view file around expected location', ' 2. Copy exact text from Read output (including all whitespace)', ' 3. Verify the text exists in file before Edit call', ' 4. Include more context lines if text appears multiple times');
697
+ }
698
+ // Always add the critical reminder
699
+ guidance.push('', 'CRITICAL: Always Read → Copy → Edit. Never guess file content.');
700
+ return guidance.join('\n');
701
+ }
702
+ //# sourceMappingURL=editTools.js.map