deepseek-coder-agent-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 (501) hide show
  1. package/README.md +58 -0
  2. package/dist/bin/cliMode.d.ts +8 -0
  3. package/dist/bin/cliMode.d.ts.map +1 -0
  4. package/dist/bin/cliMode.js +20 -0
  5. package/dist/bin/cliMode.js.map +1 -0
  6. package/dist/bin/deepseek.d.ts +6 -0
  7. package/dist/bin/deepseek.d.ts.map +1 -0
  8. package/dist/bin/deepseek.js +136 -0
  9. package/dist/bin/deepseek.js.map +1 -0
  10. package/dist/config.d.ts +25 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +155 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/contracts/agent-profiles.schema.json +43 -0
  15. package/dist/contracts/agent-schemas.json +460 -0
  16. package/dist/contracts/models.schema.json +9 -0
  17. package/dist/contracts/module-schema.json +419 -0
  18. package/dist/contracts/schemas/agent-profile.schema.json +157 -0
  19. package/dist/contracts/schemas/agent-rules.schema.json +238 -0
  20. package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
  21. package/dist/contracts/schemas/agent.schema.json +90 -0
  22. package/dist/contracts/schemas/tool-selection.schema.json +174 -0
  23. package/dist/contracts/tools.schema.json +82 -0
  24. package/dist/contracts/unified-schema.json +750 -0
  25. package/dist/contracts/v1/agent.d.ts +179 -0
  26. package/dist/contracts/v1/agent.d.ts.map +1 -0
  27. package/dist/contracts/v1/agent.js +8 -0
  28. package/dist/contracts/v1/agent.js.map +1 -0
  29. package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
  30. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  31. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  32. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  33. package/dist/contracts/v1/agentRules.d.ts +60 -0
  34. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  35. package/dist/contracts/v1/agentRules.js +10 -0
  36. package/dist/contracts/v1/agentRules.js.map +1 -0
  37. package/dist/contracts/v1/provider.d.ts +149 -0
  38. package/dist/contracts/v1/provider.d.ts.map +1 -0
  39. package/dist/contracts/v1/provider.js +7 -0
  40. package/dist/contracts/v1/provider.js.map +1 -0
  41. package/dist/contracts/v1/tool.d.ts +136 -0
  42. package/dist/contracts/v1/tool.d.ts.map +1 -0
  43. package/dist/contracts/v1/tool.js +7 -0
  44. package/dist/contracts/v1/tool.js.map +1 -0
  45. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  46. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  47. package/dist/contracts/v1/toolAccess.js +9 -0
  48. package/dist/contracts/v1/toolAccess.js.map +1 -0
  49. package/dist/core/agent.d.ts +287 -0
  50. package/dist/core/agent.d.ts.map +1 -0
  51. package/dist/core/agent.js +1563 -0
  52. package/dist/core/agent.js.map +1 -0
  53. package/dist/core/agentProfileManifest.d.ts +3 -0
  54. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  55. package/dist/core/agentProfileManifest.js +188 -0
  56. package/dist/core/agentProfileManifest.js.map +1 -0
  57. package/dist/core/agentProfiles.d.ts +22 -0
  58. package/dist/core/agentProfiles.d.ts.map +1 -0
  59. package/dist/core/agentProfiles.js +35 -0
  60. package/dist/core/agentProfiles.js.map +1 -0
  61. package/dist/core/agentRulebook.d.ts +11 -0
  62. package/dist/core/agentRulebook.d.ts.map +1 -0
  63. package/dist/core/agentRulebook.js +136 -0
  64. package/dist/core/agentRulebook.js.map +1 -0
  65. package/dist/core/agentSchemaLoader.d.ts +131 -0
  66. package/dist/core/agentSchemaLoader.d.ts.map +1 -0
  67. package/dist/core/agentSchemaLoader.js +235 -0
  68. package/dist/core/agentSchemaLoader.js.map +1 -0
  69. package/dist/core/agiCore.d.ts +290 -0
  70. package/dist/core/agiCore.d.ts.map +1 -0
  71. package/dist/core/agiCore.js +1348 -0
  72. package/dist/core/agiCore.js.map +1 -0
  73. package/dist/core/aiErrorFixer.d.ts +57 -0
  74. package/dist/core/aiErrorFixer.d.ts.map +1 -0
  75. package/dist/core/aiErrorFixer.js +214 -0
  76. package/dist/core/aiErrorFixer.js.map +1 -0
  77. package/dist/core/antiTermination.d.ts +226 -0
  78. package/dist/core/antiTermination.d.ts.map +1 -0
  79. package/dist/core/antiTermination.js +713 -0
  80. package/dist/core/antiTermination.js.map +1 -0
  81. package/dist/core/bashCommandGuidance.d.ts +16 -0
  82. package/dist/core/bashCommandGuidance.d.ts.map +1 -0
  83. package/dist/core/bashCommandGuidance.js +40 -0
  84. package/dist/core/bashCommandGuidance.js.map +1 -0
  85. package/dist/core/constants.d.ts +31 -0
  86. package/dist/core/constants.d.ts.map +1 -0
  87. package/dist/core/constants.js +62 -0
  88. package/dist/core/constants.js.map +1 -0
  89. package/dist/core/contextManager.d.ts +271 -0
  90. package/dist/core/contextManager.d.ts.map +1 -0
  91. package/dist/core/contextManager.js +1073 -0
  92. package/dist/core/contextManager.js.map +1 -0
  93. package/dist/core/contextWindow.d.ts +42 -0
  94. package/dist/core/contextWindow.d.ts.map +1 -0
  95. package/dist/core/contextWindow.js +123 -0
  96. package/dist/core/contextWindow.js.map +1 -0
  97. package/dist/core/customCommands.d.ts +19 -0
  98. package/dist/core/customCommands.d.ts.map +1 -0
  99. package/dist/core/customCommands.js +85 -0
  100. package/dist/core/customCommands.js.map +1 -0
  101. package/dist/core/deepBugAnalyzer.d.ts +25 -0
  102. package/dist/core/deepBugAnalyzer.d.ts.map +1 -0
  103. package/dist/core/deepBugAnalyzer.js +44 -0
  104. package/dist/core/deepBugAnalyzer.js.map +1 -0
  105. package/dist/core/dualTournament.d.ts +110 -0
  106. package/dist/core/dualTournament.d.ts.map +1 -0
  107. package/dist/core/dualTournament.js +270 -0
  108. package/dist/core/dualTournament.js.map +1 -0
  109. package/dist/core/dynamicGuardrails.d.ts +207 -0
  110. package/dist/core/dynamicGuardrails.d.ts.map +1 -0
  111. package/dist/core/dynamicGuardrails.js +516 -0
  112. package/dist/core/dynamicGuardrails.js.map +1 -0
  113. package/dist/core/embeddingProviders.d.ts +80 -0
  114. package/dist/core/embeddingProviders.d.ts.map +1 -0
  115. package/dist/core/embeddingProviders.js +241 -0
  116. package/dist/core/embeddingProviders.js.map +1 -0
  117. package/dist/core/episodicMemory.d.ts +259 -0
  118. package/dist/core/episodicMemory.d.ts.map +1 -0
  119. package/dist/core/episodicMemory.js +833 -0
  120. package/dist/core/episodicMemory.js.map +1 -0
  121. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  122. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  123. package/dist/core/errors/apiKeyErrors.js +159 -0
  124. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  125. package/dist/core/errors/errorTypes.d.ts +111 -0
  126. package/dist/core/errors/errorTypes.d.ts.map +1 -0
  127. package/dist/core/errors/errorTypes.js +345 -0
  128. package/dist/core/errors/errorTypes.js.map +1 -0
  129. package/dist/core/errors/index.d.ts +50 -0
  130. package/dist/core/errors/index.d.ts.map +1 -0
  131. package/dist/core/errors/index.js +156 -0
  132. package/dist/core/errors/index.js.map +1 -0
  133. package/dist/core/errors/networkErrors.d.ts +14 -0
  134. package/dist/core/errors/networkErrors.d.ts.map +1 -0
  135. package/dist/core/errors/networkErrors.js +53 -0
  136. package/dist/core/errors/networkErrors.js.map +1 -0
  137. package/dist/core/errors/safetyValidator.d.ts +115 -0
  138. package/dist/core/errors/safetyValidator.d.ts.map +1 -0
  139. package/dist/core/errors/safetyValidator.js +302 -0
  140. package/dist/core/errors/safetyValidator.js.map +1 -0
  141. package/dist/core/errors.d.ts +4 -0
  142. package/dist/core/errors.d.ts.map +1 -0
  143. package/dist/core/errors.js +33 -0
  144. package/dist/core/errors.js.map +1 -0
  145. package/dist/core/finalResponseFormatter.d.ts +10 -0
  146. package/dist/core/finalResponseFormatter.d.ts.map +1 -0
  147. package/dist/core/finalResponseFormatter.js +14 -0
  148. package/dist/core/finalResponseFormatter.js.map +1 -0
  149. package/dist/core/flowProtection.d.ts +154 -0
  150. package/dist/core/flowProtection.d.ts.map +1 -0
  151. package/dist/core/flowProtection.js +436 -0
  152. package/dist/core/flowProtection.js.map +1 -0
  153. package/dist/core/gitWorktreeManager.d.ts +126 -0
  154. package/dist/core/gitWorktreeManager.d.ts.map +1 -0
  155. package/dist/core/gitWorktreeManager.js +403 -0
  156. package/dist/core/gitWorktreeManager.js.map +1 -0
  157. package/dist/core/guardrails.d.ts +150 -0
  158. package/dist/core/guardrails.d.ts.map +1 -0
  159. package/dist/core/guardrails.js +360 -0
  160. package/dist/core/guardrails.js.map +1 -0
  161. package/dist/core/hallucinationGuard.d.ts +57 -0
  162. package/dist/core/hallucinationGuard.d.ts.map +1 -0
  163. package/dist/core/hallucinationGuard.js +237 -0
  164. package/dist/core/hallucinationGuard.js.map +1 -0
  165. package/dist/core/hitlEnforcement.d.ts +143 -0
  166. package/dist/core/hitlEnforcement.d.ts.map +1 -0
  167. package/dist/core/hitlEnforcement.js +583 -0
  168. package/dist/core/hitlEnforcement.js.map +1 -0
  169. package/dist/core/hooks.d.ts +113 -0
  170. package/dist/core/hooks.d.ts.map +1 -0
  171. package/dist/core/hooks.js +364 -0
  172. package/dist/core/hooks.js.map +1 -0
  173. package/dist/core/hotReload.d.ts +154 -0
  174. package/dist/core/hotReload.d.ts.map +1 -0
  175. package/dist/core/hotReload.js +451 -0
  176. package/dist/core/hotReload.js.map +1 -0
  177. package/dist/core/hypothesisEngine.d.ts +27 -0
  178. package/dist/core/hypothesisEngine.d.ts.map +1 -0
  179. package/dist/core/hypothesisEngine.js +58 -0
  180. package/dist/core/hypothesisEngine.js.map +1 -0
  181. package/dist/core/index.d.ts +26 -0
  182. package/dist/core/index.d.ts.map +1 -0
  183. package/dist/core/index.js +54 -0
  184. package/dist/core/index.js.map +1 -0
  185. package/dist/core/inputProtection.d.ts +122 -0
  186. package/dist/core/inputProtection.d.ts.map +1 -0
  187. package/dist/core/inputProtection.js +421 -0
  188. package/dist/core/inputProtection.js.map +1 -0
  189. package/dist/core/liveGCPVerification.d.ts +41 -0
  190. package/dist/core/liveGCPVerification.d.ts.map +1 -0
  191. package/dist/core/liveGCPVerification.js +745 -0
  192. package/dist/core/liveGCPVerification.js.map +1 -0
  193. package/dist/core/modelDiscovery.d.ts +105 -0
  194. package/dist/core/modelDiscovery.d.ts.map +1 -0
  195. package/dist/core/modelDiscovery.js +740 -0
  196. package/dist/core/modelDiscovery.js.map +1 -0
  197. package/dist/core/multilinePasteHandler.d.ts +35 -0
  198. package/dist/core/multilinePasteHandler.d.ts.map +1 -0
  199. package/dist/core/multilinePasteHandler.js +80 -0
  200. package/dist/core/multilinePasteHandler.js.map +1 -0
  201. package/dist/core/parallel.d.ts +85 -0
  202. package/dist/core/parallel.d.ts.map +1 -0
  203. package/dist/core/parallel.js +150 -0
  204. package/dist/core/parallel.js.map +1 -0
  205. package/dist/core/parallelCoordinator.d.ts +21 -0
  206. package/dist/core/parallelCoordinator.d.ts.map +1 -0
  207. package/dist/core/parallelCoordinator.js +42 -0
  208. package/dist/core/parallelCoordinator.js.map +1 -0
  209. package/dist/core/parallelExecutor.d.ts +215 -0
  210. package/dist/core/parallelExecutor.d.ts.map +1 -0
  211. package/dist/core/parallelExecutor.js +584 -0
  212. package/dist/core/parallelExecutor.js.map +1 -0
  213. package/dist/core/platformSecurityIntegration.d.ts +133 -0
  214. package/dist/core/platformSecurityIntegration.d.ts.map +1 -0
  215. package/dist/core/platformSecurityIntegration.js +419 -0
  216. package/dist/core/platformSecurityIntegration.js.map +1 -0
  217. package/dist/core/preferences.d.ts +71 -0
  218. package/dist/core/preferences.d.ts.map +1 -0
  219. package/dist/core/preferences.js +341 -0
  220. package/dist/core/preferences.js.map +1 -0
  221. package/dist/core/productTestHarness.d.ts +46 -0
  222. package/dist/core/productTestHarness.d.ts.map +1 -0
  223. package/dist/core/productTestHarness.js +128 -0
  224. package/dist/core/productTestHarness.js.map +1 -0
  225. package/dist/core/providerKeys.d.ts +20 -0
  226. package/dist/core/providerKeys.d.ts.map +1 -0
  227. package/dist/core/providerKeys.js +40 -0
  228. package/dist/core/providerKeys.js.map +1 -0
  229. package/dist/core/realityScore.d.ts +159 -0
  230. package/dist/core/realityScore.d.ts.map +1 -0
  231. package/dist/core/realityScore.js +734 -0
  232. package/dist/core/realityScore.js.map +1 -0
  233. package/dist/core/repoUpgradeOrchestrator.d.ts +223 -0
  234. package/dist/core/repoUpgradeOrchestrator.d.ts.map +1 -0
  235. package/dist/core/repoUpgradeOrchestrator.js +1003 -0
  236. package/dist/core/repoUpgradeOrchestrator.js.map +1 -0
  237. package/dist/core/resultVerification.d.ts +47 -0
  238. package/dist/core/resultVerification.d.ts.map +1 -0
  239. package/dist/core/resultVerification.js +126 -0
  240. package/dist/core/resultVerification.js.map +1 -0
  241. package/dist/core/revenueEnvValidator.d.ts +30 -0
  242. package/dist/core/revenueEnvValidator.d.ts.map +1 -0
  243. package/dist/core/revenueEnvValidator.js +241 -0
  244. package/dist/core/revenueEnvValidator.js.map +1 -0
  245. package/dist/core/schemaValidator.d.ts +49 -0
  246. package/dist/core/schemaValidator.d.ts.map +1 -0
  247. package/dist/core/schemaValidator.js +234 -0
  248. package/dist/core/schemaValidator.js.map +1 -0
  249. package/dist/core/secretStore.d.ts +48 -0
  250. package/dist/core/secretStore.d.ts.map +1 -0
  251. package/dist/core/secretStore.js +295 -0
  252. package/dist/core/secretStore.js.map +1 -0
  253. package/dist/core/securityTournament.d.ts +83 -0
  254. package/dist/core/securityTournament.d.ts.map +1 -0
  255. package/dist/core/securityTournament.js +357 -0
  256. package/dist/core/securityTournament.js.map +1 -0
  257. package/dist/core/selfUpgrade.d.ts +253 -0
  258. package/dist/core/selfUpgrade.d.ts.map +1 -0
  259. package/dist/core/selfUpgrade.js +669 -0
  260. package/dist/core/selfUpgrade.js.map +1 -0
  261. package/dist/core/sessionStorage.d.ts +10 -0
  262. package/dist/core/sessionStorage.d.ts.map +1 -0
  263. package/dist/core/sessionStorage.js +46 -0
  264. package/dist/core/sessionStorage.js.map +1 -0
  265. package/dist/core/sessionStore.d.ts +35 -0
  266. package/dist/core/sessionStore.d.ts.map +1 -0
  267. package/dist/core/sessionStore.js +191 -0
  268. package/dist/core/sessionStore.js.map +1 -0
  269. package/dist/core/taskCompletionDetector.d.ts +112 -0
  270. package/dist/core/taskCompletionDetector.d.ts.map +1 -0
  271. package/dist/core/taskCompletionDetector.js +469 -0
  272. package/dist/core/taskCompletionDetector.js.map +1 -0
  273. package/dist/core/toolPreconditions.d.ts +34 -0
  274. package/dist/core/toolPreconditions.d.ts.map +1 -0
  275. package/dist/core/toolPreconditions.js +242 -0
  276. package/dist/core/toolPreconditions.js.map +1 -0
  277. package/dist/core/toolRuntime.d.ts +185 -0
  278. package/dist/core/toolRuntime.d.ts.map +1 -0
  279. package/dist/core/toolRuntime.js +412 -0
  280. package/dist/core/toolRuntime.js.map +1 -0
  281. package/dist/core/tournamentStrategy.d.ts +12 -0
  282. package/dist/core/tournamentStrategy.d.ts.map +1 -0
  283. package/dist/core/tournamentStrategy.js +41 -0
  284. package/dist/core/tournamentStrategy.js.map +1 -0
  285. package/dist/core/types/utilityTypes.d.ts +192 -0
  286. package/dist/core/types/utilityTypes.d.ts.map +1 -0
  287. package/dist/core/types/utilityTypes.js +272 -0
  288. package/dist/core/types/utilityTypes.js.map +1 -0
  289. package/dist/core/types.d.ts +334 -0
  290. package/dist/core/types.d.ts.map +1 -0
  291. package/dist/core/types.js +76 -0
  292. package/dist/core/types.js.map +1 -0
  293. package/dist/core/unifiedOrchestrator.d.ts +47 -0
  294. package/dist/core/unifiedOrchestrator.d.ts.map +1 -0
  295. package/dist/core/unifiedOrchestrator.js +103 -0
  296. package/dist/core/unifiedOrchestrator.js.map +1 -0
  297. package/dist/core/universalSecurityAudit.d.ts +104 -0
  298. package/dist/core/universalSecurityAudit.d.ts.map +1 -0
  299. package/dist/core/universalSecurityAudit.js +2190 -0
  300. package/dist/core/universalSecurityAudit.js.map +1 -0
  301. package/dist/core/updateChecker.d.ts +148 -0
  302. package/dist/core/updateChecker.d.ts.map +1 -0
  303. package/dist/core/updateChecker.js +593 -0
  304. package/dist/core/updateChecker.js.map +1 -0
  305. package/dist/core/variantExecution.d.ts +23 -0
  306. package/dist/core/variantExecution.d.ts.map +1 -0
  307. package/dist/core/variantExecution.js +58 -0
  308. package/dist/core/variantExecution.js.map +1 -0
  309. package/dist/core/verificationFirst.d.ts +110 -0
  310. package/dist/core/verificationFirst.d.ts.map +1 -0
  311. package/dist/core/verificationFirst.js +312 -0
  312. package/dist/core/verificationFirst.js.map +1 -0
  313. package/dist/core/winnerStrategy.d.ts +15 -0
  314. package/dist/core/winnerStrategy.d.ts.map +1 -0
  315. package/dist/core/winnerStrategy.js +18 -0
  316. package/dist/core/winnerStrategy.js.map +1 -0
  317. package/dist/core/zeroDayDiscovery.d.ts +96 -0
  318. package/dist/core/zeroDayDiscovery.d.ts.map +1 -0
  319. package/dist/core/zeroDayDiscovery.js +358 -0
  320. package/dist/core/zeroDayDiscovery.js.map +1 -0
  321. package/dist/headless/interactiveShell.d.ts +22 -0
  322. package/dist/headless/interactiveShell.d.ts.map +1 -0
  323. package/dist/headless/interactiveShell.js +3832 -0
  324. package/dist/headless/interactiveShell.js.map +1 -0
  325. package/dist/headless/quickMode.d.ts +26 -0
  326. package/dist/headless/quickMode.d.ts.map +1 -0
  327. package/dist/headless/quickMode.js +226 -0
  328. package/dist/headless/quickMode.js.map +1 -0
  329. package/dist/providers/baseProvider.d.ts +148 -0
  330. package/dist/providers/baseProvider.d.ts.map +1 -0
  331. package/dist/providers/baseProvider.js +284 -0
  332. package/dist/providers/baseProvider.js.map +1 -0
  333. package/dist/providers/deepseekReasonerProvider.d.ts +57 -0
  334. package/dist/providers/deepseekReasonerProvider.d.ts.map +1 -0
  335. package/dist/providers/deepseekReasonerProvider.js +87 -0
  336. package/dist/providers/deepseekReasonerProvider.js.map +1 -0
  337. package/dist/providers/openaiChatCompletionsProvider.d.ts +64 -0
  338. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  339. package/dist/providers/openaiChatCompletionsProvider.js +1000 -0
  340. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  341. package/dist/providers/providerFactory.d.ts +24 -0
  342. package/dist/providers/providerFactory.d.ts.map +1 -0
  343. package/dist/providers/providerFactory.js +27 -0
  344. package/dist/providers/providerFactory.js.map +1 -0
  345. package/dist/providers/resilientProvider.d.ts +103 -0
  346. package/dist/providers/resilientProvider.d.ts.map +1 -0
  347. package/dist/providers/resilientProvider.js +462 -0
  348. package/dist/providers/resilientProvider.js.map +1 -0
  349. package/dist/runtime/agentController.d.ts +114 -0
  350. package/dist/runtime/agentController.d.ts.map +1 -0
  351. package/dist/runtime/agentController.js +693 -0
  352. package/dist/runtime/agentController.js.map +1 -0
  353. package/dist/runtime/agentHost.d.ts +61 -0
  354. package/dist/runtime/agentHost.d.ts.map +1 -0
  355. package/dist/runtime/agentHost.js +157 -0
  356. package/dist/runtime/agentHost.js.map +1 -0
  357. package/dist/runtime/agentSession.d.ts +45 -0
  358. package/dist/runtime/agentSession.d.ts.map +1 -0
  359. package/dist/runtime/agentSession.js +214 -0
  360. package/dist/runtime/agentSession.js.map +1 -0
  361. package/dist/runtime/agentWorkerPool.d.ts +167 -0
  362. package/dist/runtime/agentWorkerPool.d.ts.map +1 -0
  363. package/dist/runtime/agentWorkerPool.js +435 -0
  364. package/dist/runtime/agentWorkerPool.js.map +1 -0
  365. package/dist/runtime/node.d.ts +7 -0
  366. package/dist/runtime/node.d.ts.map +1 -0
  367. package/dist/runtime/node.js +18 -0
  368. package/dist/runtime/node.js.map +1 -0
  369. package/dist/runtime/universal.d.ts +18 -0
  370. package/dist/runtime/universal.d.ts.map +1 -0
  371. package/dist/runtime/universal.js +21 -0
  372. package/dist/runtime/universal.js.map +1 -0
  373. package/dist/ui/PromptController.d.ts +174 -0
  374. package/dist/ui/PromptController.d.ts.map +1 -0
  375. package/dist/ui/PromptController.js +351 -0
  376. package/dist/ui/PromptController.js.map +1 -0
  377. package/dist/ui/UnifiedUIRenderer.d.ts +779 -0
  378. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -0
  379. package/dist/ui/UnifiedUIRenderer.js +5458 -0
  380. package/dist/ui/UnifiedUIRenderer.js.map +1 -0
  381. package/dist/ui/animatedStatus.d.ts +140 -0
  382. package/dist/ui/animatedStatus.d.ts.map +1 -0
  383. package/dist/ui/animatedStatus.js +480 -0
  384. package/dist/ui/animatedStatus.js.map +1 -0
  385. package/dist/ui/animation/AnimationScheduler.d.ts +197 -0
  386. package/dist/ui/animation/AnimationScheduler.d.ts.map +1 -0
  387. package/dist/ui/animation/AnimationScheduler.js +440 -0
  388. package/dist/ui/animation/AnimationScheduler.js.map +1 -0
  389. package/dist/ui/codeHighlighter.d.ts +6 -0
  390. package/dist/ui/codeHighlighter.d.ts.map +1 -0
  391. package/dist/ui/codeHighlighter.js +855 -0
  392. package/dist/ui/codeHighlighter.js.map +1 -0
  393. package/dist/ui/designSystem.d.ts +26 -0
  394. package/dist/ui/designSystem.d.ts.map +1 -0
  395. package/dist/ui/designSystem.js +114 -0
  396. package/dist/ui/designSystem.js.map +1 -0
  397. package/dist/ui/errorFormatter.d.ts +64 -0
  398. package/dist/ui/errorFormatter.d.ts.map +1 -0
  399. package/dist/ui/errorFormatter.js +316 -0
  400. package/dist/ui/errorFormatter.js.map +1 -0
  401. package/dist/ui/globalWriteLock.d.ts +63 -0
  402. package/dist/ui/globalWriteLock.d.ts.map +1 -0
  403. package/dist/ui/globalWriteLock.js +173 -0
  404. package/dist/ui/globalWriteLock.js.map +1 -0
  405. package/dist/ui/index.d.ts +32 -0
  406. package/dist/ui/index.d.ts.map +1 -0
  407. package/dist/ui/index.js +54 -0
  408. package/dist/ui/index.js.map +1 -0
  409. package/dist/ui/interrupts/InterruptManager.d.ts +157 -0
  410. package/dist/ui/interrupts/InterruptManager.d.ts.map +1 -0
  411. package/dist/ui/interrupts/InterruptManager.js +501 -0
  412. package/dist/ui/interrupts/InterruptManager.js.map +1 -0
  413. package/dist/ui/layout.d.ts +27 -0
  414. package/dist/ui/layout.d.ts.map +1 -0
  415. package/dist/ui/layout.js +184 -0
  416. package/dist/ui/layout.js.map +1 -0
  417. package/dist/ui/maxOffensiveUkraineUI.d.ts +94 -0
  418. package/dist/ui/maxOffensiveUkraineUI.d.ts.map +1 -0
  419. package/dist/ui/maxOffensiveUkraineUI.js +316 -0
  420. package/dist/ui/maxOffensiveUkraineUI.js.map +1 -0
  421. package/dist/ui/outputMode.d.ts +44 -0
  422. package/dist/ui/outputMode.d.ts.map +1 -0
  423. package/dist/ui/outputMode.js +123 -0
  424. package/dist/ui/outputMode.js.map +1 -0
  425. package/dist/ui/overlay/OverlayManager.d.ts +105 -0
  426. package/dist/ui/overlay/OverlayManager.d.ts.map +1 -0
  427. package/dist/ui/overlay/OverlayManager.js +291 -0
  428. package/dist/ui/overlay/OverlayManager.js.map +1 -0
  429. package/dist/ui/premiumComponents.d.ts +54 -0
  430. package/dist/ui/premiumComponents.d.ts.map +1 -0
  431. package/dist/ui/premiumComponents.js +241 -0
  432. package/dist/ui/premiumComponents.js.map +1 -0
  433. package/dist/ui/richText.d.ts +13 -0
  434. package/dist/ui/richText.d.ts.map +1 -0
  435. package/dist/ui/richText.js +444 -0
  436. package/dist/ui/richText.js.map +1 -0
  437. package/dist/ui/telemetry/ResponseTracker.d.ts +22 -0
  438. package/dist/ui/telemetry/ResponseTracker.d.ts.map +1 -0
  439. package/dist/ui/telemetry/ResponseTracker.js +60 -0
  440. package/dist/ui/telemetry/ResponseTracker.js.map +1 -0
  441. package/dist/ui/telemetry/UITelemetry.d.ts +181 -0
  442. package/dist/ui/telemetry/UITelemetry.d.ts.map +1 -0
  443. package/dist/ui/telemetry/UITelemetry.js +446 -0
  444. package/dist/ui/telemetry/UITelemetry.js.map +1 -0
  445. package/dist/ui/textHighlighter.d.ts +83 -0
  446. package/dist/ui/textHighlighter.d.ts.map +1 -0
  447. package/dist/ui/textHighlighter.js +267 -0
  448. package/dist/ui/textHighlighter.js.map +1 -0
  449. package/dist/ui/theme.d.ts +364 -0
  450. package/dist/ui/theme.d.ts.map +1 -0
  451. package/dist/ui/theme.js +471 -0
  452. package/dist/ui/theme.js.map +1 -0
  453. package/dist/ui/toolDisplay.d.ts +221 -0
  454. package/dist/ui/toolDisplay.d.ts.map +1 -0
  455. package/dist/ui/toolDisplay.js +1654 -0
  456. package/dist/ui/toolDisplay.js.map +1 -0
  457. package/dist/ui/uiConstants.d.ts +288 -0
  458. package/dist/ui/uiConstants.d.ts.map +1 -0
  459. package/dist/ui/uiConstants.js +472 -0
  460. package/dist/ui/uiConstants.js.map +1 -0
  461. package/dist/utils/askUserPrompt.d.ts +21 -0
  462. package/dist/utils/askUserPrompt.d.ts.map +1 -0
  463. package/dist/utils/askUserPrompt.js +87 -0
  464. package/dist/utils/askUserPrompt.js.map +1 -0
  465. package/dist/utils/asyncUtils.d.ts +95 -0
  466. package/dist/utils/asyncUtils.d.ts.map +1 -0
  467. package/dist/utils/asyncUtils.js +286 -0
  468. package/dist/utils/asyncUtils.js.map +1 -0
  469. package/dist/utils/debugLogger.d.ts +6 -0
  470. package/dist/utils/debugLogger.d.ts.map +1 -0
  471. package/dist/utils/debugLogger.js +39 -0
  472. package/dist/utils/debugLogger.js.map +1 -0
  473. package/dist/utils/errorUtils.d.ts +12 -0
  474. package/dist/utils/errorUtils.d.ts.map +1 -0
  475. package/dist/utils/errorUtils.js +83 -0
  476. package/dist/utils/errorUtils.js.map +1 -0
  477. package/dist/utils/frontmatter.d.ts +10 -0
  478. package/dist/utils/frontmatter.d.ts.map +1 -0
  479. package/dist/utils/frontmatter.js +78 -0
  480. package/dist/utils/frontmatter.js.map +1 -0
  481. package/dist/utils/packageInfo.d.ts +14 -0
  482. package/dist/utils/packageInfo.d.ts.map +1 -0
  483. package/dist/utils/packageInfo.js +45 -0
  484. package/dist/utils/packageInfo.js.map +1 -0
  485. package/dist/utils/planFormatter.d.ts +34 -0
  486. package/dist/utils/planFormatter.d.ts.map +1 -0
  487. package/dist/utils/planFormatter.js +141 -0
  488. package/dist/utils/planFormatter.js.map +1 -0
  489. package/dist/utils/securityUtils.d.ts +132 -0
  490. package/dist/utils/securityUtils.d.ts.map +1 -0
  491. package/dist/utils/securityUtils.js +324 -0
  492. package/dist/utils/securityUtils.js.map +1 -0
  493. package/dist/workspace.d.ts +8 -0
  494. package/dist/workspace.d.ts.map +1 -0
  495. package/dist/workspace.js +134 -0
  496. package/dist/workspace.js.map +1 -0
  497. package/dist/workspace.validator.d.ts +49 -0
  498. package/dist/workspace.validator.d.ts.map +1 -0
  499. package/dist/workspace.validator.js +215 -0
  500. package/dist/workspace.validator.js.map +1 -0
  501. package/package.json +60 -0
@@ -0,0 +1,469 @@
1
+ /**
2
+ * Intelligent Task Completion Detector
3
+ *
4
+ * This module provides robust detection of whether a continuous task is truly complete,
5
+ * rather than just pattern-matching keywords like "done" in responses.
6
+ *
7
+ * Key features:
8
+ * - Multi-signal analysis (tool usage, response content, state changes)
9
+ * - AI verification round before final completion
10
+ * - Confidence scoring
11
+ * - Work-in-progress detection
12
+ *
13
+ * @license MIT
14
+ * @author Bo Shang
15
+ */
16
+ // Keywords that strongly indicate task completion
17
+ const STRONG_COMPLETION_PATTERNS = [
18
+ /^(all\s+)?tasks?\s+(are\s+)?(now\s+)?(complete|done|finished)/im,
19
+ /^(i('ve|'m|\s+have|\s+am)\s+)?(successfully\s+)?(completed?|finished|done)\s+(all|the|with|everything)/im,
20
+ /^everything\s+(is\s+)?(now\s+)?(complete|done|finished)/im,
21
+ /^the\s+requested?\s+(task|work|changes?)\s+(is|are|has been)\s+(complete|done|finished)/im,
22
+ /^i\s+have\s+(now\s+)?(successfully\s+)?(completed?|finished|done)\s+(all|the|everything)/im,
23
+ /no\s+(more|further)\s+(tasks?|work|actions?|changes?)\s+(are\s+)?(needed|required|necessary)/im,
24
+ ];
25
+ // Keywords that indicate work is still in progress
26
+ const INCOMPLETE_WORK_PATTERNS = [
27
+ /\b(next|then|now\s+I('ll|\s+will)|let\s+me|I('ll|\s+will)|going\s+to|about\s+to)\b/i,
28
+ /\b(continue|continuing|proceed|proceeding|working\s+on)\b/i,
29
+ /\b(TODO|FIXME|WIP|in\s+progress)\b/i,
30
+ /\b(still\s+need|remaining|left\s+to\s+do|more\s+to\s+do)\b/i,
31
+ /\b(step\s+\d+|phase\s+\d+|iteration\s+\d+)\b/i,
32
+ /\b(haven'?t\s+(yet|finished)|not\s+yet\s+(done|complete|finished))\b/i,
33
+ ];
34
+ // Patterns that indicate documentation spam instead of real work
35
+ const DOCUMENTATION_SPAM_PATTERNS = [
36
+ /creat(ed?|ing)\s+.{0,30}?\.(md|markdown)\b/i,
37
+ /writ(e|ing|ten)\s+.{0,30}?(summary|report|documentation|readme)/i,
38
+ /\b(FINAL|COMPLETE|ULTIMATE|MASTER)_.*\.(md|markdown)\b/i,
39
+ /\b(DEPLOYMENT|HANDOVER|SUMMARY|REPORT).*\.(md|markdown)\b/i,
40
+ /generat(ed?|ing)\s+.{0,30}?(documentation|summary|report)/i,
41
+ ];
42
+ // Keywords that indicate pending actions
43
+ const PENDING_ACTION_PATTERNS = [
44
+ /\b(need\s+to|should|must|have\s+to|requires?)\b/i,
45
+ /\b(waiting|pending|queued)\b/i,
46
+ /\b(before\s+I\s+can|after\s+that|once\s+that)\b/i,
47
+ /\b(running|executing|processing)\b/i,
48
+ ];
49
+ // Keywords that indicate errors or issues
50
+ const ERROR_PATTERNS = [
51
+ /\b(error|failed|failure|exception|issue|problem|bug)\b/i,
52
+ /\b(can'?t|cannot|couldn'?t|unable\s+to)\b/i,
53
+ /\b(fix|fixing|resolve|resolving|debug|debugging)\b/i,
54
+ ];
55
+ // Keywords that indicate follow-up questions
56
+ const FOLLOWUP_QUESTION_PATTERNS = [
57
+ /\b(would\s+you\s+like|do\s+you\s+want|shall\s+I|should\s+I)\b/i,
58
+ /\b(let\s+me\s+know|please\s+(confirm|tell|let))\b/i,
59
+ /\?$/m,
60
+ ];
61
+ // Keywords that indicate future work
62
+ const FUTURE_WORK_PATTERNS = [
63
+ /\b(could\s+also|might\s+want\s+to|consider|recommend)\b/i,
64
+ /\b(future|later|eventually|when\s+you\s+have\s+time)\b/i,
65
+ /\b(improvement|enhancement|optimization)\b/i,
66
+ ];
67
+ // Read-only tool names
68
+ const READ_ONLY_TOOLS = new Set([
69
+ 'read_file',
70
+ 'Read',
71
+ 'list_dir',
72
+ 'list_files',
73
+ 'search_text',
74
+ 'grep',
75
+ 'Grep',
76
+ 'glob',
77
+ 'Glob',
78
+ 'git_status',
79
+ 'git_log',
80
+ 'git_diff',
81
+ ]);
82
+ // Write/action tool names - exported for use in completion detection
83
+ export const WRITE_TOOLS = new Set([
84
+ 'edit_file',
85
+ 'Edit',
86
+ 'write_file',
87
+ 'Write',
88
+ 'bash',
89
+ 'Bash',
90
+ 'execute_command',
91
+ 'git_commit',
92
+ 'git_push',
93
+ 'NotebookEdit',
94
+ ]);
95
+ export class TaskCompletionDetector {
96
+ toolHistory = [];
97
+ responseHistory = [];
98
+ lastToolNames = [];
99
+ consecutiveNoTools = 0;
100
+ todoStats = { pending: 0, completed: 0 };
101
+ constructor() {
102
+ this.reset();
103
+ }
104
+ /**
105
+ * Reset the detector state for a new task
106
+ */
107
+ reset() {
108
+ this.toolHistory = [];
109
+ this.responseHistory = [];
110
+ this.lastToolNames = [];
111
+ this.consecutiveNoTools = 0;
112
+ this.todoStats = { pending: 0, completed: 0 };
113
+ }
114
+ /**
115
+ * Record a tool call
116
+ */
117
+ recordToolCall(toolName, success, hasOutput) {
118
+ this.toolHistory.push({
119
+ toolName,
120
+ timestamp: Date.now(),
121
+ success,
122
+ hasOutput,
123
+ });
124
+ this.lastToolNames.push(toolName);
125
+ // Keep only recent history
126
+ if (this.toolHistory.length > 100) {
127
+ this.toolHistory = this.toolHistory.slice(-100);
128
+ }
129
+ if (this.lastToolNames.length > 20) {
130
+ this.lastToolNames = this.lastToolNames.slice(-20);
131
+ }
132
+ }
133
+ /**
134
+ * Record a response (call after each AI response)
135
+ */
136
+ recordResponse(response, toolsUsed) {
137
+ this.responseHistory.push(response);
138
+ if (toolsUsed.length === 0) {
139
+ this.consecutiveNoTools++;
140
+ }
141
+ else {
142
+ this.consecutiveNoTools = 0;
143
+ this.lastToolNames = toolsUsed;
144
+ }
145
+ // Keep only recent history
146
+ if (this.responseHistory.length > 20) {
147
+ this.responseHistory = this.responseHistory.slice(-20);
148
+ }
149
+ }
150
+ /**
151
+ * Update todo statistics
152
+ */
153
+ updateTodoStats(pending, completed) {
154
+ this.todoStats = { pending, completed };
155
+ }
156
+ /**
157
+ * Analyze the current state and determine if the task is complete
158
+ */
159
+ analyzeCompletion(currentResponse, toolsUsedThisRound) {
160
+ this.recordResponse(currentResponse, toolsUsedThisRound);
161
+ const signals = this.gatherSignals(currentResponse, toolsUsedThisRound);
162
+ const confidence = this.calculateConfidence(signals);
163
+ signals.completionConfidence = confidence;
164
+ // Determine completion status
165
+ let isComplete = false;
166
+ let reason = '';
167
+ let shouldVerify = false;
168
+ let verificationPrompt;
169
+ // High confidence completion
170
+ if (confidence >= 0.85 && signals.hasExplicitCompletionStatement && !signals.hasIncompleteWorkIndicators) {
171
+ isComplete = true;
172
+ reason = 'High confidence explicit completion statement with no incomplete work indicators';
173
+ }
174
+ // Medium confidence - needs verification
175
+ else if (confidence >= 0.6 && signals.hasExplicitCompletionStatement) {
176
+ shouldVerify = true;
177
+ reason = 'Medium confidence completion - AI verification recommended';
178
+ verificationPrompt = this.generateVerificationPrompt(signals);
179
+ }
180
+ // Low confidence - likely not complete
181
+ else if (confidence < 0.4) {
182
+ isComplete = false;
183
+ reason = this.getLowConfidenceReason(signals);
184
+ }
185
+ // Ambiguous case - check for stagnation
186
+ else if (this.consecutiveNoTools >= 3 && !signals.hasIncompleteWorkIndicators) {
187
+ shouldVerify = true;
188
+ reason = 'No tool activity for multiple rounds - verification needed';
189
+ verificationPrompt = this.generateStagnationVerificationPrompt();
190
+ }
191
+ // Default: not complete
192
+ else {
193
+ isComplete = false;
194
+ reason = 'Active work indicators detected or low completion confidence';
195
+ }
196
+ return {
197
+ isComplete,
198
+ confidence,
199
+ signals,
200
+ reason,
201
+ shouldVerify,
202
+ verificationPrompt,
203
+ };
204
+ }
205
+ /**
206
+ * Gather all completion signals from the current state
207
+ */
208
+ gatherSignals(response, toolsUsed) {
209
+ const hasExplicitCompletionStatement = STRONG_COMPLETION_PATTERNS.some((p) => p.test(response));
210
+ const hasIncompleteWorkIndicators = INCOMPLETE_WORK_PATTERNS.some((p) => p.test(response));
211
+ const hasPendingActionIndicators = PENDING_ACTION_PATTERNS.some((p) => p.test(response));
212
+ const hasErrorIndicators = ERROR_PATTERNS.some((p) => p.test(response));
213
+ const hasFollowUpQuestions = FOLLOWUP_QUESTION_PATTERNS.some((p) => p.test(response));
214
+ const mentionsFutureWork = FUTURE_WORK_PATTERNS.some((p) => p.test(response));
215
+ const hasDocumentationSpam = DOCUMENTATION_SPAM_PATTERNS.some((p) => p.test(response));
216
+ const lastToolWasReadOnly = toolsUsed.length > 0 && toolsUsed.every((t) => READ_ONLY_TOOLS.has(t));
217
+ const recentTools = this.toolHistory.filter((t) => t.success && Date.now() - t.timestamp < 60000);
218
+ const hasRecentFileWrites = recentTools.some((t) => t.toolName === 'edit_file' || t.toolName === 'Edit' ||
219
+ t.toolName === 'write_file' || t.toolName === 'Write');
220
+ const hasRecentCommits = recentTools.some((t) => t.toolName === 'bash' || t.toolName === 'Bash') && this.responseHistory.some((r) => r.includes('git commit') || r.includes('committed'));
221
+ return {
222
+ hasExplicitCompletionStatement,
223
+ hasIncompleteWorkIndicators,
224
+ hasPendingActionIndicators,
225
+ hasErrorIndicators,
226
+ hasFollowUpQuestions,
227
+ hasDocumentationSpam,
228
+ toolsUsedInLastResponse: toolsUsed.length,
229
+ lastToolWasReadOnly,
230
+ consecutiveResponsesWithoutTools: this.consecutiveNoTools,
231
+ hasRecentFileWrites,
232
+ hasRecentCommits,
233
+ todoItemsPending: this.todoStats.pending,
234
+ todoItemsCompleted: this.todoStats.completed,
235
+ mentionsFutureWork,
236
+ completionConfidence: 0, // Will be calculated
237
+ };
238
+ }
239
+ /**
240
+ * Calculate confidence score for task completion
241
+ */
242
+ calculateConfidence(signals) {
243
+ let score = 0.5; // Start at neutral
244
+ // Strong positive signals
245
+ if (signals.hasExplicitCompletionStatement)
246
+ score += 0.25;
247
+ if (signals.hasRecentCommits)
248
+ score += 0.1;
249
+ if (signals.todoItemsPending === 0 && signals.todoItemsCompleted > 0)
250
+ score += 0.15;
251
+ // Strong negative signals
252
+ if (signals.hasIncompleteWorkIndicators)
253
+ score -= 0.3;
254
+ if (signals.hasPendingActionIndicators)
255
+ score -= 0.2;
256
+ if (signals.hasErrorIndicators)
257
+ score -= 0.25;
258
+ if (signals.todoItemsPending > 0)
259
+ score -= 0.15;
260
+ // Documentation spam is a VERY strong negative signal - it means the AI is
261
+ // creating summary files instead of doing actual work
262
+ if (signals.hasDocumentationSpam)
263
+ score -= 0.4;
264
+ // Moderate signals
265
+ if (signals.toolsUsedInLastResponse > 0 && !signals.lastToolWasReadOnly)
266
+ score -= 0.1;
267
+ if (signals.consecutiveResponsesWithoutTools >= 2)
268
+ score += 0.1;
269
+ if (signals.hasFollowUpQuestions)
270
+ score -= 0.1;
271
+ if (signals.mentionsFutureWork && signals.hasExplicitCompletionStatement)
272
+ score += 0.05;
273
+ // Clamp to 0-1 range
274
+ return Math.max(0, Math.min(1, score));
275
+ }
276
+ /**
277
+ * Generate a verification prompt to ask the AI if the task is truly complete
278
+ */
279
+ generateVerificationPrompt(signals) {
280
+ const concerns = [];
281
+ if (signals.hasDocumentationSpam) {
282
+ concerns.push('you created documentation/summary files instead of completing actual work');
283
+ }
284
+ if (signals.todoItemsPending > 0) {
285
+ concerns.push(`there are ${signals.todoItemsPending} todo items still pending`);
286
+ }
287
+ if (signals.hasFollowUpQuestions) {
288
+ concerns.push('you asked follow-up questions');
289
+ }
290
+ if (signals.mentionsFutureWork) {
291
+ concerns.push('you mentioned potential future improvements');
292
+ }
293
+ const concernsText = concerns.length > 0 ? `However, ${concerns.join(' and ')}. ` : '';
294
+ return `You indicated the task might be complete. ${concernsText}Please confirm:
295
+
296
+ 1. Have ALL the originally requested changes been implemented in actual code files?
297
+ 2. Are there any remaining errors or issues that need to be fixed?
298
+ 3. Is there anything else you need to do to fully complete this task?
299
+
300
+ IMPORTANT: Creating markdown documentation files does NOT count as completing a task.
301
+ Focus on the actual code/implementation work requested.
302
+
303
+ If everything is truly done, respond with exactly: "TASK_FULLY_COMPLETE"
304
+ If there's more work to do, describe what remains and continue working.`;
305
+ }
306
+ /**
307
+ * Generate a verification prompt for stagnation cases
308
+ */
309
+ generateStagnationVerificationPrompt() {
310
+ return `I notice you haven't used any tools for several responses. Let me check:
311
+
312
+ 1. Is the task complete? If so, summarize what was accomplished.
313
+ 2. Are you blocked on something? If so, what do you need?
314
+ 3. Is there more work to do? If so, please continue.
315
+
316
+ If everything is done, respond with exactly: "TASK_FULLY_COMPLETE"
317
+ Otherwise, please continue with the next action.`;
318
+ }
319
+ /**
320
+ * Get a human-readable reason for low confidence
321
+ */
322
+ getLowConfidenceReason(signals) {
323
+ const reasons = [];
324
+ if (signals.hasDocumentationSpam) {
325
+ reasons.push('creating documentation instead of actual work');
326
+ }
327
+ if (signals.hasIncompleteWorkIndicators) {
328
+ reasons.push('incomplete work indicators detected');
329
+ }
330
+ if (signals.hasPendingActionIndicators) {
331
+ reasons.push('pending action indicators found');
332
+ }
333
+ if (signals.hasErrorIndicators) {
334
+ reasons.push('error indicators present');
335
+ }
336
+ if (signals.toolsUsedInLastResponse > 0 && !signals.lastToolWasReadOnly) {
337
+ reasons.push('write operations performed');
338
+ }
339
+ if (signals.todoItemsPending > 0) {
340
+ reasons.push(`${signals.todoItemsPending} todo items still pending`);
341
+ }
342
+ return reasons.length > 0 ? reasons.join(', ') : 'no clear completion signals';
343
+ }
344
+ /**
345
+ * Check if a verification response confirms completion
346
+ */
347
+ isVerificationConfirmed(verificationResponse) {
348
+ const hasCompletionMarker = (verificationResponse.includes('TASK_FULLY_COMPLETE') ||
349
+ /^(yes|confirmed?|all\s+done|everything\s+(is\s+)?complete)/im.test(verificationResponse.trim()));
350
+ // Even if completion marker is present, check for contradictions
351
+ if (hasCompletionMarker && this.responseContainsIncompleteIndicators(verificationResponse)) {
352
+ return false;
353
+ }
354
+ return hasCompletionMarker;
355
+ }
356
+ /**
357
+ * Check if a response contradicts itself by saying "complete" but also indicating incomplete work.
358
+ * This comprehensive list catches many ways AI might admit work isn't done while claiming completion.
359
+ */
360
+ responseContainsIncompleteIndicators(response) {
361
+ const incompletePatterns = [
362
+ // === INTEGRATION/DEPLOYMENT STATE ===
363
+ /hasn'?t\s+been\s+(integrated|implemented|connected|deployed|added|completed|tested|verified)\s*(yet|still)?/i,
364
+ /not\s+(yet\s+)?(integrated|implemented|connected|deployed|functional|working|complete|tested|verified)/i,
365
+ /ready\s+(for|to\s+be)\s+(integration|integrated|connected|deployed|testing|review)/i,
366
+ /needs?\s+to\s+be\s+(integrated|connected|deployed|added|hooked|wired|tested|reviewed|merged)/i,
367
+ /was\s+not\s+(performed|completed|implemented|deployed|integrated|tested)/i,
368
+ /the\s+\w+\s+(service|module|component|feature)\s+hasn'?t\s+been/i,
369
+ // === PARTIAL/INCOMPLETE STATE ===
370
+ /still\s+(stores?|uses?|has|contains?|needs?|requires?|missing|lacks?|broken)/i,
371
+ /\b(partially|mostly|almost|nearly|not\s+fully)\s+(complete|done|finished|implemented|working)/i,
372
+ /\b(only\s+)?(part|some|half|portion)\s+of\s+(the\s+)?(task|work|feature|implementation)/i,
373
+ // === QUALIFIER WORDS (uncertain completion) ===
374
+ /\b(should|might|may|could|appears?\s+to)\s+be\s+(complete|done|working|functional)/i,
375
+ /\btheoretically\s+(complete|done|working|functional)/i,
376
+ /\b(assuming|provided|if)\s+(everything|it|this|that)\s+(works?|is\s+correct)/i,
377
+ // === SELF-CONTRADICTION PHRASES ===
378
+ /\b(done|complete|finished)\s+(but|except|however|although|though)/i,
379
+ /however[,\s].{0,50}?(hasn'?t|not\s+yet|still\s+needs?|pending|remains?|missing|broken|failing)/i,
380
+ /\bbut\s+.{0,30}?(not|hasn'?t|won'?t|can'?t|doesn'?t|isn'?t|wasn'?t)/i,
381
+ // === FUTURE TENSE / DEFERRED WORK ===
382
+ /will\s+(need\s+to|require|have\s+to)\s+(integrate|connect|deploy|complete|implement|test|fix)/i,
383
+ /\b(left\s+as|deferred|postponed|out\s+of\s+scope|for\s+later|in\s+a\s+future)/i,
384
+ /\b(after\s+(restart|reboot|redeploy)|takes?\s+effect\s+after|once\s+you)/i,
385
+ // === REMAINING WORK INDICATORS ===
386
+ /\b(remaining|outstanding|pending|leftover)\s+(tasks?|items?|work|issues?|steps?)/i,
387
+ /\b(more\s+to\s+do|still\s+have\s+to|yet\s+to\s+be\s+done)/i,
388
+ /\b(blocker|blocked\s+by|waiting\s+(for|on)|depends?\s+on)/i,
389
+ // === ERROR/FAILURE STATE ===
390
+ /\b(failing|broken|erroring)\s+(tests?|builds?|checks?|validations?)/i,
391
+ /\btests?\s+(are\s+)?(still\s+)?failing/i,
392
+ /\b(errors?|warnings?|issues?)\s+to\s+(address|fix|resolve)/i,
393
+ /\b(doesn'?t|isn'?t|not)\s+(work|working|functional|functioning)/i,
394
+ // === MANUAL STEPS REQUIRED ===
395
+ /\b(you('ll|\s+will)\s+need\s+to|manually\s+(run|configure|set|update)|requires?\s+user)/i,
396
+ /\b(run\s+this|execute\s+the\s+following|apply\s+the\s+migration)/i,
397
+ // === TODO/FIXME IN PROSE ===
398
+ /\b(todo|fixme|hack|xxx):\s/i,
399
+ /\b(need\s+to|should|must)\s+(add|implement|create|write|build|fix)\b/i,
400
+ // === SCOPE LIMITATIONS ===
401
+ /\b(didn'?t|did\s+not)\s+have\s+(time|chance|opportunity)/i,
402
+ /\b(beyond|outside)\s+(the\s+)?scope/i,
403
+ /\b(for\s+now|at\s+this\s+point|currently)\s*.{0,20}?(not|without|lacks?|missing)/i,
404
+ // === SIMULATION/FAKE OUTPUT INDICATORS ===
405
+ // These indicate the task wasn't actually completed - just simulated
406
+ /\bsimulat(?:ed?|ion|ing)\b/i,
407
+ /\bhypothetical\b/i,
408
+ /\btheoretical(?:ly)?\s+(result|output|outcome|report)/i,
409
+ /\bfake\s+(?:data|report|result|output)/i,
410
+ /\bmock(?:ed|ing)?\s+(?:data|report|result|output)/i,
411
+ /\bfor\s+(?:demonstration|demo)\s+purposes?\s+only/i,
412
+ /\bnot\s+(?:a\s+)?real\s+(?:result|output|execution)/i,
413
+ /\bwould\s+(?:have\s+)?be(?:en)?\s+(?:the\s+)?result/i,
414
+ /\bif\s+(?:this|we|you)\s+(?:were|had)\s+(?:actually|really)/i,
415
+ // === DOCUMENTATION SPAM INDICATORS ===
416
+ // Creating markdown files instead of doing actual work
417
+ /creat(?:ed?|ing)\s+.{0,30}?\.(md|markdown)\b/i,
418
+ /writ(?:e|ing|ten)\s+.{0,30}?(summary|report|documentation|readme)/i,
419
+ /\b(FINAL|COMPLETE|ULTIMATE|MASTER)_.*\.(md|markdown)\b/i,
420
+ /\b(DEPLOYMENT|HANDOVER|SUMMARY|REPORT).*\.(md|markdown)\b/i,
421
+ /generat(?:ed?|ing)\s+.{0,30}?(documentation|summary|report)/i,
422
+ ];
423
+ for (const pattern of incompletePatterns) {
424
+ if (pattern.test(response)) {
425
+ return true;
426
+ }
427
+ }
428
+ return false;
429
+ }
430
+ /**
431
+ * Check if response contains simulation/fake indicators that should prevent completion.
432
+ * Simulated results mean the task was NOT actually completed.
433
+ */
434
+ containsSimulationIndicators(response) {
435
+ const simulationPatterns = [
436
+ /\bsimulat(?:ed?|ion|ing)\b/i,
437
+ /\bhypothetical\b/i,
438
+ /\btheoretical(?:ly)?\s+(?:result|output|outcome|complete)/i,
439
+ /\bfake\s+(?:data|report|result|output)/i,
440
+ /\bmock(?:ed|ing)?\s+(?:data|report|result|output|exercise)/i,
441
+ /\bdummy\s+(?:data|report|result|output)/i,
442
+ /\bpretend(?:ed|ing)?\b/i,
443
+ /\bimaginary\b/i,
444
+ /\bfictional\b/i,
445
+ /\bfor\s+(?:demonstration|demo)\s+purposes?\s+only/i,
446
+ /\bnot\s+(?:a\s+)?real\b/i,
447
+ /\bwould\s+(?:have\s+)?be(?:en)?\s+(?:the\s+)?result/i,
448
+ /\bsecurity\s+(?:simulation|exercise)\b/i,
449
+ /\boffensive\s+security\s+simulation\b/i,
450
+ ];
451
+ return simulationPatterns.some(pattern => pattern.test(response));
452
+ }
453
+ }
454
+ /**
455
+ * Create a singleton instance for the shell to use
456
+ */
457
+ let detectorInstance = null;
458
+ export function getTaskCompletionDetector() {
459
+ if (!detectorInstance) {
460
+ detectorInstance = new TaskCompletionDetector();
461
+ }
462
+ return detectorInstance;
463
+ }
464
+ export function resetTaskCompletionDetector() {
465
+ if (detectorInstance) {
466
+ detectorInstance.reset();
467
+ }
468
+ }
469
+ //# sourceMappingURL=taskCompletionDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskCompletionDetector.js","sourceRoot":"","sources":["../../src/core/taskCompletionDetector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Pre-flight validation patterns for AI flow design.
3
+ * Catches common tool usage failures before execution and provides actionable guidance.
4
+ */
5
+ export interface PreflightWarning {
6
+ readonly code: string;
7
+ readonly message: string;
8
+ readonly severity: 'critical' | 'warning' | 'info';
9
+ readonly suggestion: string;
10
+ }
11
+ export declare const EDIT_WITHOUT_READ = "EDIT_WITHOUT_READ";
12
+ type ToolHistoryCall = {
13
+ toolName: string;
14
+ args: Record<string, unknown>;
15
+ timestamp?: number;
16
+ };
17
+ /**
18
+ * Validate tool preconditions before execution to prevent common AI flow failures.
19
+ *
20
+ * This function implements the critical AI flow design principle: validate before execute.
21
+ * It catches common patterns that lead to tool failures and provides actionable guidance.
22
+ *
23
+ * @param toolName - Name of the tool being called
24
+ * @param args - Tool arguments
25
+ * @returns Array of pre-flight warnings (empty if all validations pass)
26
+ */
27
+ export declare function validateToolPreconditions(toolName: string, args: Record<string, unknown>): PreflightWarning[];
28
+ /**
29
+ * Enhanced AI flow validation for TypeScript software engineering
30
+ * Provides comprehensive validation of AI tool usage patterns
31
+ */
32
+ export declare function validateAIFlowPatterns(toolName: string, args: Record<string, unknown>, toolHistory: readonly ToolHistoryCall[]): PreflightWarning[];
33
+ export {};
34
+ //# sourceMappingURL=toolPreconditions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolPreconditions.d.ts","sourceRoot":"","sources":["../../src/core/toolPreconditions.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,gBAAgB,EAAE,CA0GpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,SAAS,eAAe,EAAE,GACtC,gBAAgB,EAAE,CAuEpB"}