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,360 @@
1
+ /**
2
+ * Runtime Guardrails for Revenue Suite
3
+ * Enforces citations, approvals, and audit logging as per manifest requirements
4
+ */
5
+ /**
6
+ * Citation Validator
7
+ * Ensures every claim has proper source attribution
8
+ */
9
+ export class CitationValidator {
10
+ /**
11
+ * Validates that a response includes proper citations
12
+ */
13
+ validateCitations(response, citations) {
14
+ if (citations.length === 0) {
15
+ return {
16
+ valid: false,
17
+ coverage: 0,
18
+ missing: ['No citations provided']
19
+ };
20
+ }
21
+ // Check for citation markers in response (e.g., [1], [Source: ...])
22
+ const citationMarkers = response.match(/\[(\d+|Source:.*?)\]/g) || [];
23
+ // Check for factual claims without citations
24
+ const claimPatterns = [
25
+ /\b(according to|as stated in|referenced in|cited in)\b/gi,
26
+ /\b(our policy|our documentation|our guide)\b/gi
27
+ ];
28
+ const hasClaimMarkers = claimPatterns.some(pattern => pattern.test(response));
29
+ const hasCitations = citations.length > 0;
30
+ if (hasClaimMarkers && !hasCitations) {
31
+ return {
32
+ valid: false,
33
+ coverage: 0,
34
+ missing: ['Claims detected but no citations provided']
35
+ };
36
+ }
37
+ // Basic validation: ensure citations have required fields
38
+ const invalidCitations = citations.filter(c => !c.sourceDoc);
39
+ if (invalidCitations.length > 0) {
40
+ return {
41
+ valid: false,
42
+ coverage: (citations.length - invalidCitations.length) / citations.length * 100,
43
+ missing: invalidCitations.map((_, i) => `Citation ${i + 1} missing sourceDoc`)
44
+ };
45
+ }
46
+ // All validations passed
47
+ return {
48
+ valid: true,
49
+ coverage: 100,
50
+ missing: []
51
+ };
52
+ }
53
+ /**
54
+ * Extracts citations from structured response
55
+ */
56
+ extractCitations(response) {
57
+ if (typeof response === 'string') {
58
+ // Parse citations from markdown-style references
59
+ const citations = [];
60
+ const citationRegex = /\[Source:\s*([^\]]+)\]/g;
61
+ let match;
62
+ while ((match = citationRegex.exec(response)) !== null) {
63
+ const parts = match[1].split(',').map(p => p.trim());
64
+ citations.push({
65
+ sourceDoc: parts[0],
66
+ section: parts[1],
67
+ version: parts[2]
68
+ });
69
+ }
70
+ return citations;
71
+ }
72
+ // Handle structured response with citations array
73
+ if (response && Array.isArray(response.citations)) {
74
+ return response.citations;
75
+ }
76
+ return [];
77
+ }
78
+ }
79
+ /**
80
+ * Approval Manager
81
+ * Handles human-in-the-loop approval workflows
82
+ */
83
+ export class ApprovalManager {
84
+ pendingApprovals = new Map();
85
+ approvalHistory = new Map();
86
+ /**
87
+ * Request approval for a high-risk action
88
+ */
89
+ async requestApproval(actionType, actionDescription, riskLevel, requiredApprover, context) {
90
+ const request = {
91
+ id: `APPROVAL-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
92
+ actionType,
93
+ actionDescription,
94
+ riskLevel,
95
+ requiredApprover,
96
+ context,
97
+ requestedAt: new Date()
98
+ };
99
+ this.pendingApprovals.set(request.id, request);
100
+ // Send notification to approver (email, Slack, webhook, etc.)
101
+ console.log(`⚠️ Approval required: ${actionDescription}`);
102
+ console.log(` Approver: ${requiredApprover}`);
103
+ console.log(` Risk Level: ${riskLevel}`);
104
+ console.log(` Approval ID: ${request.id}`);
105
+ // TODO: Implement actual notification system (email, Slack, webhook)
106
+ return request;
107
+ }
108
+ /**
109
+ * Record an approval response
110
+ */
111
+ async recordApproval(response) {
112
+ this.approvalHistory.set(response.requestId, response);
113
+ this.pendingApprovals.delete(response.requestId);
114
+ }
115
+ /**
116
+ * Check if an action requires approval based on policy
117
+ */
118
+ requiresApproval(actionType, actionContext) {
119
+ // Define approval policies
120
+ const policies = [
121
+ {
122
+ condition: (type, ctx) => type === 'refund' && ctx.amount > 50000,
123
+ approver: 'finance_director',
124
+ riskLevel: 'high'
125
+ },
126
+ {
127
+ condition: (type, ctx) => type === 'contract_edit',
128
+ approver: 'legal_counsel',
129
+ riskLevel: 'critical'
130
+ },
131
+ {
132
+ condition: (type, ctx) => type === 'crm_update' && ctx.dealValue > 100000,
133
+ approver: 'sales_director',
134
+ riskLevel: 'medium'
135
+ },
136
+ {
137
+ condition: (type, ctx) => type === 'data_export' && ctx.pii === true,
138
+ approver: 'compliance_officer',
139
+ riskLevel: 'high'
140
+ }
141
+ ];
142
+ const matchedPolicy = policies.find(p => p.condition(actionType, actionContext));
143
+ if (matchedPolicy) {
144
+ return {
145
+ required: true,
146
+ approver: matchedPolicy.approver,
147
+ riskLevel: matchedPolicy.riskLevel
148
+ };
149
+ }
150
+ return { required: false };
151
+ }
152
+ /**
153
+ * Get pending approval by ID
154
+ */
155
+ getPendingApproval(id) {
156
+ return this.pendingApprovals.get(id);
157
+ }
158
+ /**
159
+ * Get approval status
160
+ */
161
+ getApprovalStatus(id) {
162
+ return this.approvalHistory.get(id);
163
+ }
164
+ }
165
+ /**
166
+ * Audit Logger
167
+ * Logs all actions with inputs, outputs, and correlation IDs
168
+ */
169
+ export class AuditLogger {
170
+ logs = [];
171
+ observabilityEndpoint;
172
+ constructor(observabilityEndpoint) {
173
+ this.observabilityEndpoint = observabilityEndpoint || process.env.OBSERVABILITY_ENDPOINT;
174
+ }
175
+ /**
176
+ * Log an action with full context
177
+ */
178
+ async logAction(entry) {
179
+ const fullEntry = {
180
+ ...entry,
181
+ id: `AUDIT-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
182
+ timestamp: new Date()
183
+ };
184
+ // Redact PII from logs
185
+ const redactedEntry = this.redactPII(fullEntry);
186
+ // Store locally
187
+ this.logs.push(redactedEntry);
188
+ // Send to observability endpoint if configured
189
+ if (this.observabilityEndpoint) {
190
+ try {
191
+ await this.sendToObservability(redactedEntry);
192
+ }
193
+ catch (error) {
194
+ console.error('Failed to send audit log to observability endpoint:', error);
195
+ // Continue - don't fail the action if logging fails
196
+ }
197
+ }
198
+ // Also log to console for development
199
+ console.log(`[AUDIT] ${redactedEntry.actionType}: ${redactedEntry.status}`);
200
+ return fullEntry.id;
201
+ }
202
+ /**
203
+ * Redact PII from audit logs
204
+ */
205
+ redactPII(entry) {
206
+ const piiPatterns = [
207
+ { regex: /\b\d{3}-\d{2}-\d{4}\b/g, replacement: 'SSN-REDACTED' }, // SSN
208
+ { regex: /\b\d{16}\b/g, replacement: 'CC-REDACTED' }, // Credit card
209
+ { regex: /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g, replacement: 'EMAIL-REDACTED' } // Email (optional)
210
+ ];
211
+ const redactedEntry = { ...entry };
212
+ // Redact inputs
213
+ if (entry.inputs) {
214
+ const inputsStr = JSON.stringify(entry.inputs);
215
+ let redactedStr = inputsStr;
216
+ for (const pattern of piiPatterns) {
217
+ redactedStr = redactedStr.replace(pattern.regex, pattern.replacement);
218
+ }
219
+ redactedEntry.inputs = JSON.parse(redactedStr);
220
+ }
221
+ // Redact outputs
222
+ if (entry.outputs) {
223
+ const outputsStr = JSON.stringify(entry.outputs);
224
+ let redactedStr = outputsStr;
225
+ for (const pattern of piiPatterns) {
226
+ redactedStr = redactedStr.replace(pattern.regex, pattern.replacement);
227
+ }
228
+ redactedEntry.outputs = JSON.parse(redactedStr);
229
+ }
230
+ return redactedEntry;
231
+ }
232
+ /**
233
+ * Send audit log to external observability system
234
+ */
235
+ async sendToObservability(entry) {
236
+ if (!this.observabilityEndpoint) {
237
+ return;
238
+ }
239
+ // TODO: Implement actual HTTP POST to observability endpoint
240
+ // Use fetch or axios
241
+ console.log(`Sending audit log to ${this.observabilityEndpoint}:`, entry.id);
242
+ // Example implementation:
243
+ // await fetch(this.observabilityEndpoint, {
244
+ // method: 'POST',
245
+ // headers: { 'Content-Type': 'application/json' },
246
+ // body: JSON.stringify(entry)
247
+ // });
248
+ }
249
+ /**
250
+ * Query audit logs by correlation ID
251
+ */
252
+ getLogsByCorrelationId(correlationId) {
253
+ return this.logs.filter(log => log.correlationId === correlationId);
254
+ }
255
+ /**
256
+ * Query audit logs by user ID
257
+ */
258
+ getLogsByUserId(userId) {
259
+ return this.logs.filter(log => log.userId === userId);
260
+ }
261
+ /**
262
+ * Get all logs (for testing/debugging)
263
+ */
264
+ getAllLogs() {
265
+ return [...this.logs];
266
+ }
267
+ }
268
+ /**
269
+ * Guardrails Orchestrator
270
+ * Coordinates citation validation, approval flows, and audit logging
271
+ */
272
+ export class GuardrailsOrchestrator {
273
+ citationValidator;
274
+ approvalManager;
275
+ auditLogger;
276
+ constructor(observabilityEndpoint) {
277
+ this.citationValidator = new CitationValidator();
278
+ this.approvalManager = new ApprovalManager();
279
+ this.auditLogger = new AuditLogger(observabilityEndpoint);
280
+ }
281
+ getCitationValidator() {
282
+ return this.citationValidator;
283
+ }
284
+ getApprovalManager() {
285
+ return this.approvalManager;
286
+ }
287
+ getAuditLogger() {
288
+ return this.auditLogger;
289
+ }
290
+ /**
291
+ * Execute an action with full guardrail enforcement
292
+ */
293
+ async executeWithGuardrails(userId, correlationId, actionType, actionDescription, actionFn, inputs, options = {}) {
294
+ // 1. Check if approval is required
295
+ const approvalCheck = this.approvalManager.requiresApproval(actionType, inputs);
296
+ if (approvalCheck.required) {
297
+ const approvalRequest = await this.approvalManager.requestApproval(actionType, actionDescription, approvalCheck.riskLevel, approvalCheck.approver, inputs);
298
+ // TODO: Wait for approval (implement polling or webhook callback)
299
+ throw new Error(`Action requires approval from ${approvalCheck.approver}. ` +
300
+ `Approval ID: ${approvalRequest.id}`);
301
+ }
302
+ // 2. Validate citations if required
303
+ if (options.requireCitations) {
304
+ const citationValidation = this.citationValidator.validateCitations(actionDescription, options.citations || []);
305
+ if (!citationValidation.valid) {
306
+ await this.auditLogger.logAction({
307
+ correlationId,
308
+ userId,
309
+ actionType,
310
+ actionDescription,
311
+ inputs,
312
+ status: 'failed',
313
+ errorMessage: `Citation validation failed: ${citationValidation.missing.join(', ')}`,
314
+ citations: options.citations
315
+ });
316
+ throw new Error(`Citation requirement not met: ${citationValidation.missing.join(', ')}`);
317
+ }
318
+ }
319
+ // 3. Execute action with audit logging
320
+ try {
321
+ const result = await actionFn();
322
+ await this.auditLogger.logAction({
323
+ correlationId,
324
+ userId,
325
+ actionType,
326
+ actionDescription,
327
+ inputs,
328
+ outputs: result,
329
+ citations: options.citations,
330
+ status: 'success'
331
+ });
332
+ return result;
333
+ }
334
+ catch (error) {
335
+ await this.auditLogger.logAction({
336
+ correlationId,
337
+ userId,
338
+ actionType,
339
+ actionDescription,
340
+ inputs,
341
+ status: 'failed',
342
+ errorMessage: error instanceof Error ? error.message : String(error),
343
+ citations: options.citations
344
+ });
345
+ throw error;
346
+ }
347
+ }
348
+ }
349
+ // Singleton instance
350
+ let guardrailsInstance = null;
351
+ /**
352
+ * Get or create the guardrails orchestrator instance
353
+ */
354
+ export function getGuardrails(observabilityEndpoint) {
355
+ if (!guardrailsInstance) {
356
+ guardrailsInstance = new GuardrailsOrchestrator(observabilityEndpoint);
357
+ }
358
+ return guardrailsInstance;
359
+ }
360
+ //# sourceMappingURL=guardrails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../src/core/guardrails.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4CH;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;OAEG;IACH,iBAAiB,CAAC,QAAgB,EAAE,SAAqB;QAKvD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC,uBAAuB,CAAC;aACnC,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;QAEtE,6CAA6C;QAC7C,MAAM,aAAa,GAAG;YACpB,0DAA0D;YAC1D,gDAAgD;SACjD,CAAC;QAEF,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAE1C,IAAI,eAAe,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC,2CAA2C,CAAC;aACvD,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,GAAG;gBAC/E,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC;aAC/E,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,OAAO;YACL,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAa;QAC5B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,iDAAiD;YACjD,MAAM,SAAS,GAAe,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,yBAAyB,CAAC;YAChD,IAAI,KAAK,CAAC;YAEV,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrD,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;oBACnB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;oBACjB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,kDAAkD;QAClD,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAClD,OAAO,QAAQ,CAAC,SAAS,CAAC;QAC5B,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAe;IAClB,gBAAgB,GAAiC,IAAI,GAAG,EAAE,CAAC;IAC3D,eAAe,GAAkC,IAAI,GAAG,EAAE,CAAC;IAEnE;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,UAAkB,EAClB,iBAAyB,EACzB,SAAuC,EACvC,gBAAwB,EACxB,OAA4B;QAE5B,MAAM,OAAO,GAAoB;YAC/B,EAAE,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACvE,UAAU;YACV,iBAAiB;YACjB,SAAS;YACT,gBAAgB;YAChB,OAAO;YACP,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAE/C,8DAA8D;QAC9D,OAAO,CAAC,GAAG,CAAC,0BAA0B,iBAAiB,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,gBAAgB,gBAAgB,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,qEAAqE;QAErE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,QAA0B;QAC7C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,gBAAgB,CACd,UAAkB,EAClB,aAAkC;QAElC,2BAA2B;QAC3B,MAAM,QAAQ,GAAG;YACf;gBACE,SAAS,EAAE,CAAC,IAAY,EAAE,GAAQ,EAAE,EAAE,CACpC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK;gBACzC,QAAQ,EAAE,kBAAkB;gBAC5B,SAAS,EAAE,MAAe;aAC3B;YACD;gBACE,SAAS,EAAE,CAAC,IAAY,EAAE,GAAQ,EAAE,EAAE,CACpC,IAAI,KAAK,eAAe;gBAC1B,QAAQ,EAAE,eAAe;gBACzB,SAAS,EAAE,UAAmB;aAC/B;YACD;gBACE,SAAS,EAAE,CAAC,IAAY,EAAE,GAAQ,EAAE,EAAE,CACpC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,SAAS,GAAG,MAAM;gBACjD,QAAQ,EAAE,gBAAgB;gBAC1B,SAAS,EAAE,QAAiB;aAC7B;YACD;gBACE,SAAS,EAAE,CAAC,IAAY,EAAE,GAAQ,EAAE,EAAE,CACpC,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI;gBAC5C,QAAQ,EAAE,oBAAoB;gBAC9B,SAAS,EAAE,MAAe;aAC3B;SACF,CAAC;QAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;QAEjF,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,SAAS,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,WAAW;IACd,IAAI,GAAoB,EAAE,CAAC;IAC3B,qBAAqB,CAAU;IAEvC,YAAY,qBAA8B;QACxC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAA8C;QAC5D,MAAM,SAAS,GAAkB;YAC/B,GAAG,KAAK;YACR,EAAE,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACpE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,uBAAuB;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEhD,gBAAgB;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE9B,+CAA+C;QAC/C,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;gBAC5E,oDAAoD;YACtD,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,WAAW,aAAa,CAAC,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QAE5E,OAAO,SAAS,CAAC,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,KAAoB;QACpC,MAAM,WAAW,GAAG;YAClB,EAAE,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,MAAM;YACxE,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,cAAc;YACpE,EAAE,KAAK,EAAE,sDAAsD,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,mBAAmB;SACrH,CAAC;QAEF,MAAM,aAAa,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QAEnC,gBAAgB;QAChB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,WAAW,GAAG,SAAS,CAAC;YAC5B,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACxE,CAAC;YACD,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,iBAAiB;QACjB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,WAAW,GAAG,UAAU,CAAC;YAC7B,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACxE,CAAC;YACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,KAAoB;QACpD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,6DAA6D;QAC7D,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,qBAAqB,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAE7E,0BAA0B;QAC1B,4CAA4C;QAC5C,oBAAoB;QACpB,qDAAqD;QACrD,gCAAgC;QAChC,MAAM;IACR,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,aAAqB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,KAAK,aAAa,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IACzB,iBAAiB,CAAoB;IACrC,eAAe,CAAkB;IACjC,WAAW,CAAc;IAEjC,YAAY,qBAA8B;QACxC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CACzB,MAAc,EACd,aAAqB,EACrB,UAAkB,EAClB,iBAAyB,EACzB,QAA0B,EAC1B,MAA2B,EAC3B,UAGI,EAAE;QAEN,mCAAmC;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEhF,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAChE,UAAU,EACV,iBAAiB,EACjB,aAAa,CAAC,SAAU,EACxB,aAAa,CAAC,QAAS,EACvB,MAAM,CACP,CAAC;YAEF,kEAAkE;YAClE,MAAM,IAAI,KAAK,CACb,iCAAiC,aAAa,CAAC,QAAQ,IAAI;gBAC3D,gBAAgB,eAAe,CAAC,EAAE,EAAE,CACrC,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CACjE,iBAAiB,EACjB,OAAO,CAAC,SAAS,IAAI,EAAE,CACxB,CAAC;YAEF,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;oBAC/B,aAAa;oBACb,MAAM;oBACN,UAAU;oBACV,iBAAiB;oBACjB,MAAM;oBACN,MAAM,EAAE,QAAQ;oBAChB,YAAY,EAAE,+BAA+B,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpF,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC,CAAC;gBAEH,MAAM,IAAI,KAAK,CACb,iCAAiC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAEhC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBAC/B,aAAa;gBACb,MAAM;gBACN,UAAU;gBACV,iBAAiB;gBACjB,MAAM;gBACN,OAAO,EAAE,MAAa;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBAC/B,aAAa;gBACb,MAAM;gBACN,UAAU;gBACV,iBAAiB;gBACjB,MAAM;gBACN,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACpE,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,qBAAqB;AACrB,IAAI,kBAAkB,GAAkC,IAAI,CAAC;AAE7D;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,qBAA8B;IAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,kBAAkB,GAAG,IAAI,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Hallucination Guard - Advanced validation to minimize AI hallucinations
3
+ *
4
+ * Features:
5
+ * 1. Content validation before edits
6
+ * 2. Fact verification for web search results
7
+ * 3. Confidence scoring for AI outputs
8
+ * 4. Cross-referencing with existing knowledge
9
+ */
10
+ export interface HallucinationCheck {
11
+ type: 'content_guess' | 'fact_claim' | 'code_pattern' | 'file_existence';
12
+ confidence: 'high' | 'medium' | 'low';
13
+ riskLevel: 'critical' | 'warning' | 'info';
14
+ message: string;
15
+ suggestion: string;
16
+ }
17
+ export interface HallucinationReport {
18
+ checks: HallucinationCheck[];
19
+ overallRisk: 'critical' | 'warning' | 'safe';
20
+ confidenceScore: number;
21
+ }
22
+ /**
23
+ * Validate AI content for hallucinations before execution
24
+ */
25
+ export declare class HallucinationGuard {
26
+ private readonly workingDir;
27
+ private readonly knownFacts;
28
+ constructor(options?: {
29
+ workingDir?: string;
30
+ });
31
+ /**
32
+ * Validate file operations for hallucinations
33
+ */
34
+ validateFileOperation(toolName: string, args: Record<string, unknown>, existingContent?: string): HallucinationReport;
35
+ /**
36
+ * Validate AI-generated code for common hallucination patterns
37
+ */
38
+ validateGeneratedCode(code: string, _context?: string): HallucinationReport;
39
+ /**
40
+ * Register known facts from previous operations to cross-reference
41
+ */
42
+ registerFact(fact: string, source: string, confidence: number): void;
43
+ /**
44
+ * Check if a claim contradicts known facts
45
+ */
46
+ checkFactContradiction(claim: string): HallucinationCheck | null;
47
+ private calculateContentSimilarity;
48
+ private isOverlyBroadPattern;
49
+ private containsFactClaim;
50
+ private areContradictory;
51
+ private generateReport;
52
+ }
53
+ /**
54
+ * Enhanced validation that integrates with existing tool runtime
55
+ */
56
+ export declare function enhanceWithHallucinationGuard(toolName: string, args: Record<string, unknown>, existingContent?: string): HallucinationReport;
57
+ //# sourceMappingURL=hallucinationGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hallucinationGuard.d.ts","sourceRoot":"","sources":["../../src/core/hallucinationGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,GAAG,YAAY,GAAG,cAAc,GAAG,gBAAgB,CAAC;IACzE,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,WAAW,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEjD,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAIjD;;OAEG;IACH,qBAAqB,CACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,eAAe,CAAC,EAAE,MAAM,GACvB,mBAAmB;IAkEtB;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,mBAAmB;IA6C3E;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAKpE;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAsBhE,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,cAAc;CA4CvB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,eAAe,CAAC,EAAE,MAAM,GACvB,mBAAmB,CAGrB"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Hallucination Guard - Advanced validation to minimize AI hallucinations
3
+ *
4
+ * Features:
5
+ * 1. Content validation before edits
6
+ * 2. Fact verification for web search results
7
+ * 3. Confidence scoring for AI outputs
8
+ * 4. Cross-referencing with existing knowledge
9
+ */
10
+ import { existsSync } from 'node:fs';
11
+ /**
12
+ * Validate AI content for hallucinations before execution
13
+ */
14
+ export class HallucinationGuard {
15
+ workingDir;
16
+ knownFacts = new Map();
17
+ constructor(options = {}) {
18
+ this.workingDir = options.workingDir ?? process.cwd();
19
+ }
20
+ /**
21
+ * Validate file operations for hallucinations
22
+ */
23
+ validateFileOperation(toolName, args, existingContent) {
24
+ const checks = [];
25
+ const toolLower = toolName.toLowerCase();
26
+ // === Edit Tool Validation ===
27
+ if (toolLower === 'edit') {
28
+ const oldString = args['old_string'];
29
+ const filePath = args['file_path'];
30
+ // Check 1: Edit without existing content reference
31
+ if (oldString && existingContent) {
32
+ const similarity = this.calculateContentSimilarity(oldString, existingContent);
33
+ if (similarity < 0.5) {
34
+ checks.push({
35
+ type: 'content_guess',
36
+ confidence: 'high',
37
+ riskLevel: 'critical',
38
+ message: `Low content similarity (${Math.round(similarity * 100)}%) - AI may be guessing file content`,
39
+ suggestion: 'Verify exact file content matches old_string. Use Read tool to confirm.',
40
+ });
41
+ }
42
+ }
43
+ // Check 2: File existence validation
44
+ if (filePath && !existsSync(filePath) && oldString) {
45
+ checks.push({
46
+ type: 'file_existence',
47
+ confidence: 'high',
48
+ riskLevel: 'warning',
49
+ message: `Editing non-existent file: ${filePath}`,
50
+ suggestion: 'Check if file exists before editing. Use empty old_string for new file creation.',
51
+ });
52
+ }
53
+ }
54
+ // === Search Operations ===
55
+ if (toolLower.includes('search') || toolLower.includes('grep')) {
56
+ const pattern = args['pattern'];
57
+ if (pattern && this.isOverlyBroadPattern(pattern)) {
58
+ checks.push({
59
+ type: 'code_pattern',
60
+ confidence: 'medium',
61
+ riskLevel: 'warning',
62
+ message: `Search pattern '${pattern}' is very broad and may produce overwhelming results`,
63
+ suggestion: 'Use more specific patterns or add file type filters.',
64
+ });
65
+ }
66
+ }
67
+ // === Web Operations ===
68
+ if (toolLower.includes('web') || toolLower.includes('search')) {
69
+ const query = args['query'];
70
+ if (query && this.containsFactClaim(query)) {
71
+ checks.push({
72
+ type: 'fact_claim',
73
+ confidence: 'low',
74
+ riskLevel: 'info',
75
+ message: 'Query contains factual claims that should be verified',
76
+ suggestion: 'Cross-reference results with authoritative sources.',
77
+ });
78
+ }
79
+ }
80
+ return this.generateReport(checks);
81
+ }
82
+ /**
83
+ * Validate AI-generated code for common hallucination patterns
84
+ */
85
+ validateGeneratedCode(code, _context) {
86
+ const checks = [];
87
+ // Check for placeholder patterns
88
+ const placeholderPatterns = [
89
+ /\{\{.*?\}\}/g, // {{variable}}
90
+ /\[\[.*?\]\]/g, // [[placeholder]]
91
+ /<TODO>/gi, // <TODO>
92
+ /FIXME/gi, // FIXME (in generated code)
93
+ ];
94
+ for (const pattern of placeholderPatterns) {
95
+ const matches = code.match(pattern);
96
+ if (matches) {
97
+ checks.push({
98
+ type: 'content_guess',
99
+ confidence: 'high',
100
+ riskLevel: 'critical',
101
+ message: `Placeholder patterns found in generated code: ${matches.slice(0, 3).join(', ')}`,
102
+ suggestion: 'Replace placeholders with actual implementation based on context.',
103
+ });
104
+ }
105
+ }
106
+ // Check for unrealistic imports
107
+ const importPatterns = [
108
+ /import\s+.*\s+from\s+['"][@\w\-/]+['"]/g,
109
+ ];
110
+ const imports = code.match(importPatterns[0]) || [];
111
+ for (const imp of imports) {
112
+ if (imp.includes('undefined-package') || imp.includes('example-library')) {
113
+ checks.push({
114
+ type: 'code_pattern',
115
+ confidence: 'medium',
116
+ riskLevel: 'warning',
117
+ message: `Suspicious import pattern: ${imp}`,
118
+ suggestion: 'Verify package names and availability in the project.',
119
+ });
120
+ }
121
+ }
122
+ return this.generateReport(checks);
123
+ }
124
+ /**
125
+ * Register known facts from previous operations to cross-reference
126
+ */
127
+ registerFact(fact, source, confidence) {
128
+ const key = `${source}:${fact}`;
129
+ this.knownFacts.set(key, confidence);
130
+ }
131
+ /**
132
+ * Check if a claim contradicts known facts
133
+ */
134
+ checkFactContradiction(claim) {
135
+ const claimLower = claim.toLowerCase();
136
+ for (const [key, confidence] of this.knownFacts.entries()) {
137
+ const [, fact] = key.split(':');
138
+ const factLower = fact.toLowerCase();
139
+ // Simple contradiction detection
140
+ if (this.areContradictory(claimLower, factLower)) {
141
+ return {
142
+ type: 'fact_claim',
143
+ confidence: confidence > 0.7 ? 'high' : 'medium',
144
+ riskLevel: 'warning',
145
+ message: `Claim contradicts previously established fact: ${fact}`,
146
+ suggestion: 'Verify information consistency across operations.',
147
+ };
148
+ }
149
+ }
150
+ return null;
151
+ }
152
+ calculateContentSimilarity(a, b) {
153
+ // Simple similarity calculation for validation
154
+ const wordsA = new Set(a.toLowerCase().split(/\s+/));
155
+ const wordsB = new Set(b.toLowerCase().split(/\s+/));
156
+ const intersection = new Set([...wordsA].filter(x => wordsB.has(x)));
157
+ const union = new Set([...wordsA, ...wordsB]);
158
+ return union.size > 0 ? intersection.size / union.size : 0;
159
+ }
160
+ isOverlyBroadPattern(pattern) {
161
+ // Patterns that match everything
162
+ const broadPatterns = [
163
+ /^.*$/,
164
+ /^\.*$/,
165
+ /^\w*$/,
166
+ /^[a-zA-Z]*$/,
167
+ ];
168
+ return broadPatterns.some(p => p.test(pattern));
169
+ }
170
+ containsFactClaim(text) {
171
+ const factIndicators = [
172
+ 'is', 'are', 'was', 'were', 'will be',
173
+ 'has', 'have', 'had',
174
+ 'can', 'cannot', 'could', 'would',
175
+ 'always', 'never', 'every', 'all',
176
+ 'true', 'false', 'correct', 'incorrect',
177
+ ];
178
+ const words = text.toLowerCase().split(/\s+/);
179
+ return words.some(word => factIndicators.includes(word));
180
+ }
181
+ areContradictory(claim, fact) {
182
+ // Simple contradiction detection
183
+ const contradictions = [
184
+ ['is', 'is not'],
185
+ ['has', 'has no'],
186
+ ['can', 'cannot'],
187
+ ['true', 'false'],
188
+ ['always', 'never'],
189
+ ];
190
+ return contradictions.some(([a, b]) => (claim.includes(a) && fact.includes(b)) ||
191
+ (claim.includes(b) && fact.includes(a)));
192
+ }
193
+ generateReport(checks) {
194
+ if (checks.length === 0) {
195
+ return {
196
+ checks: [],
197
+ overallRisk: 'safe',
198
+ confidenceScore: 100,
199
+ };
200
+ }
201
+ const riskScores = {
202
+ 'critical': 3,
203
+ 'warning': 2,
204
+ 'info': 1,
205
+ };
206
+ const confidenceScores = {
207
+ 'high': 1.0,
208
+ 'medium': 0.7,
209
+ 'low': 0.3,
210
+ };
211
+ let totalRisk = 0;
212
+ let maxRisk = 0;
213
+ for (const check of checks) {
214
+ const riskScore = riskScores[check.riskLevel];
215
+ const confidence = confidenceScores[check.confidence];
216
+ totalRisk += riskScore * confidence;
217
+ maxRisk = Math.max(maxRisk, riskScore * confidence);
218
+ }
219
+ const averageRisk = totalRisk / checks.length;
220
+ const overallRisk = averageRisk >= 2.5 ? 'critical' : averageRisk >= 1.5 ? 'warning' : 'safe';
221
+ // Confidence score: 100 - (risk * 20)
222
+ const confidenceScore = Math.max(0, Math.min(100, 100 - (averageRisk * 20)));
223
+ return {
224
+ checks,
225
+ overallRisk,
226
+ confidenceScore,
227
+ };
228
+ }
229
+ }
230
+ /**
231
+ * Enhanced validation that integrates with existing tool runtime
232
+ */
233
+ export function enhanceWithHallucinationGuard(toolName, args, existingContent) {
234
+ const guard = new HallucinationGuard();
235
+ return guard.validateFileOperation(toolName, args, existingContent);
236
+ }
237
+ //# sourceMappingURL=hallucinationGuard.js.map