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,113 @@
1
+ /**
2
+ * Hooks System
3
+ *
4
+ * Event-triggered scripts that automate workflows, based on AGI CLI's hooks architecture.
5
+ * Hooks can execute shell commands or query an LLM for decisions.
6
+ */
7
+ /**
8
+ * Hook event types
9
+ */
10
+ export type HookEvent = 'PreToolUse' | 'PostToolUse' | 'PermissionRequest' | 'UserPromptSubmit' | 'SessionStart' | 'SessionEnd' | 'Stop' | 'SubagentStop' | 'Notification';
11
+ /**
12
+ * Hook types
13
+ */
14
+ export type HookType = 'command' | 'prompt';
15
+ /**
16
+ * Hook definition
17
+ */
18
+ export interface HookDefinition {
19
+ /** Regex pattern to match tool names or events */
20
+ matcher?: string;
21
+ /** Type of hook: 'command' for shell, 'prompt' for LLM */
22
+ type: HookType;
23
+ /** Shell command to execute (for command hooks) */
24
+ command?: string;
25
+ /** Prompt to send to LLM (for prompt hooks) */
26
+ prompt?: string;
27
+ /** Timeout in milliseconds */
28
+ timeout?: number;
29
+ }
30
+ /**
31
+ * Hook execution result
32
+ */
33
+ export interface HookResult {
34
+ success: boolean;
35
+ output?: string;
36
+ decision?: 'allow' | 'deny' | 'continue';
37
+ reason?: string;
38
+ error?: string;
39
+ blocked?: boolean;
40
+ }
41
+ /**
42
+ * Hook execution context
43
+ */
44
+ export interface HookContext {
45
+ event: HookEvent;
46
+ toolName?: string;
47
+ toolArgs?: Record<string, unknown>;
48
+ toolResult?: string;
49
+ userInput?: string;
50
+ sessionId?: string;
51
+ workingDir: string;
52
+ }
53
+ /**
54
+ * Hooks configuration
55
+ */
56
+ export interface HooksConfig {
57
+ [event: string]: HookDefinition[];
58
+ }
59
+ /**
60
+ * Load hooks from settings files
61
+ */
62
+ export declare function loadHooks(workingDir: string): HooksConfig;
63
+ /**
64
+ * HooksManager class for managing and executing hooks
65
+ */
66
+ export declare class HooksManager {
67
+ private hooks;
68
+ private workingDir;
69
+ constructor(workingDir: string);
70
+ /**
71
+ * Reload hooks from settings files
72
+ */
73
+ reload(): void;
74
+ /**
75
+ * Check if hooks are configured for an event
76
+ */
77
+ hasHooks(event: HookEvent): boolean;
78
+ /**
79
+ * Get all hooks for an event
80
+ */
81
+ getHooks(event: HookEvent): HookDefinition[];
82
+ /**
83
+ * Execute all matching hooks for an event
84
+ */
85
+ executeHooks(context: HookContext): Promise<HookResult[]>;
86
+ /**
87
+ * Execute pre-tool hooks and check if tool should proceed
88
+ */
89
+ executePreToolHooks(toolName: string, args: Record<string, unknown>): Promise<{
90
+ allowed: boolean;
91
+ results: HookResult[];
92
+ }>;
93
+ /**
94
+ * Execute post-tool hooks
95
+ */
96
+ executePostToolHooks(toolName: string, args: Record<string, unknown>, result: string): Promise<HookResult[]>;
97
+ /**
98
+ * Execute user prompt hooks
99
+ */
100
+ executeUserPromptHooks(userInput: string): Promise<{
101
+ allowed: boolean;
102
+ results: HookResult[];
103
+ }>;
104
+ /**
105
+ * Execute session lifecycle hooks
106
+ */
107
+ executeSessionHook(event: 'SessionStart' | 'SessionEnd', sessionId: string): Promise<HookResult[]>;
108
+ }
109
+ /**
110
+ * Create a hooks manager for the given working directory
111
+ */
112
+ export declare function createHooksManager(workingDir: string): HooksManager;
113
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/core/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,364 @@
1
+ /**
2
+ * Hooks System
3
+ *
4
+ * Event-triggered scripts that automate workflows, based on AGI CLI's hooks architecture.
5
+ * Hooks can execute shell commands or query an LLM for decisions.
6
+ */
7
+ import { exec } from 'node:child_process';
8
+ import { promisify } from 'node:util';
9
+ import { existsSync, readFileSync } from 'node:fs';
10
+ import { join } from 'node:path';
11
+ import { homedir } from 'node:os';
12
+ import { getAGI } from './agiCore.js';
13
+ const execAsync = promisify(exec);
14
+ /**
15
+ * Load hooks from settings files
16
+ */
17
+ export function loadHooks(workingDir) {
18
+ const hooks = {};
19
+ // Load from user settings (~/.claude/settings.json or ~/.agi/settings.json)
20
+ const userSettingsPaths = [
21
+ join(homedir(), '.claude', 'settings.json'),
22
+ join(homedir(), '.agi', 'settings.json'),
23
+ join(homedir(), '.erosolar', 'settings.json'),
24
+ ];
25
+ // Load from project settings (.claude/settings.json or .agi/settings.json)
26
+ const projectSettingsPaths = [
27
+ join(workingDir, '.claude', 'settings.json'),
28
+ join(workingDir, '.agi', 'settings.json'),
29
+ join(workingDir, '.erosolar', 'settings.json'),
30
+ ];
31
+ // Load user settings first, then override with project settings
32
+ for (const settingsPath of [...userSettingsPaths, ...projectSettingsPaths]) {
33
+ if (existsSync(settingsPath)) {
34
+ try {
35
+ const content = readFileSync(settingsPath, 'utf-8');
36
+ const settings = JSON.parse(content);
37
+ if (settings.hooks) {
38
+ for (const [event, eventHooks] of Object.entries(settings.hooks)) {
39
+ if (!hooks[event]) {
40
+ hooks[event] = [];
41
+ }
42
+ hooks[event].push(...eventHooks);
43
+ }
44
+ }
45
+ }
46
+ catch {
47
+ // Ignore invalid settings files
48
+ }
49
+ }
50
+ }
51
+ return hooks;
52
+ }
53
+ /**
54
+ * Check if a hook matches the given context
55
+ */
56
+ function matchesHook(hook, context) {
57
+ if (!hook.matcher) {
58
+ return true;
59
+ }
60
+ try {
61
+ const regex = new RegExp(hook.matcher);
62
+ // Match against tool name if available
63
+ if (context.toolName) {
64
+ return regex.test(context.toolName);
65
+ }
66
+ // Match against event name
67
+ return regex.test(context.event);
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ /**
74
+ * Execute a command hook
75
+ */
76
+ async function executeCommandHook(hook, context) {
77
+ if (!hook.command) {
78
+ return { success: false, error: 'No command specified' };
79
+ }
80
+ const timeout = hook.timeout ?? 24 * 60 * 60 * 1000;
81
+ // Prepare environment variables for the hook
82
+ const env = {
83
+ ...process.env,
84
+ HOOK_EVENT: context.event,
85
+ HOOK_TOOL_NAME: context.toolName ?? '',
86
+ HOOK_TOOL_ARGS: context.toolArgs ? JSON.stringify(context.toolArgs) : '',
87
+ HOOK_TOOL_RESULT: context.toolResult ?? '',
88
+ HOOK_USER_INPUT: context.userInput ?? '',
89
+ HOOK_SESSION_ID: context.sessionId ?? '',
90
+ HOOK_WORKING_DIR: context.workingDir,
91
+ };
92
+ try {
93
+ const { stdout } = await execAsync(hook.command, {
94
+ cwd: context.workingDir,
95
+ timeout,
96
+ env,
97
+ });
98
+ // Try to parse JSON output for structured results
99
+ const output = stdout.trim();
100
+ try {
101
+ const parsed = JSON.parse(output);
102
+ return {
103
+ success: true,
104
+ output,
105
+ decision: parsed.decision,
106
+ reason: parsed.reason,
107
+ blocked: parsed.blocked,
108
+ };
109
+ }
110
+ catch {
111
+ // Return raw output if not JSON
112
+ return {
113
+ success: true,
114
+ output,
115
+ };
116
+ }
117
+ }
118
+ catch (error) {
119
+ const message = error instanceof Error ? error.message : String(error);
120
+ // Exit code 2 means blocking
121
+ if (message.includes('exit code 2')) {
122
+ return {
123
+ success: false,
124
+ blocked: true,
125
+ error: message,
126
+ };
127
+ }
128
+ return {
129
+ success: false,
130
+ error: message,
131
+ };
132
+ }
133
+ }
134
+ function serializeArgs(args) {
135
+ if (!args)
136
+ return '';
137
+ try {
138
+ return JSON.stringify(args, (_key, value) => {
139
+ if (typeof value === 'bigint') {
140
+ return value.toString();
141
+ }
142
+ return value;
143
+ });
144
+ }
145
+ catch {
146
+ return String(args);
147
+ }
148
+ }
149
+ function buildPromptForHook(hook, context) {
150
+ const parts = [];
151
+ if (hook.prompt) {
152
+ parts.push(hook.prompt.trim());
153
+ }
154
+ parts.push(`Event: ${context.event}`);
155
+ if (context.userInput) {
156
+ parts.push(`User input: ${context.userInput}`);
157
+ }
158
+ if (context.toolName) {
159
+ parts.push(`Tool: ${context.toolName}`);
160
+ }
161
+ if (context.toolArgs) {
162
+ parts.push(`Args: ${serializeArgs(context.toolArgs)}`);
163
+ }
164
+ if (context.toolResult) {
165
+ parts.push(`Result: ${context.toolResult}`);
166
+ }
167
+ return parts.filter(Boolean).join('\n');
168
+ }
169
+ function assessPromptRisk(promptText, context, _analysis) {
170
+ const lower = promptText.toLowerCase();
171
+ const reasons = [];
172
+ const destructivePatterns = [
173
+ /rm\s+-rf\s+\/?/,
174
+ /sudo\s+rm\s+-rf/,
175
+ /:\(\)\s*{.*:.*\|.*:.*;.*};\s*:/, // fork bomb
176
+ /mkfs/i,
177
+ /format\s+c:/i,
178
+ /shutdown\s+-h/i,
179
+ /kill\s+-9\s+1/,
180
+ /dd\s+if=\/dev\//i,
181
+ ];
182
+ if (typeof context.toolArgs?.['command'] === 'string') {
183
+ const cmd = String(context.toolArgs['command']).toLowerCase();
184
+ if (/rm\s+-rf/.test(cmd) || /(^|\s)del\s+\/f/i.test(cmd)) {
185
+ reasons.push('Destructive shell command');
186
+ }
187
+ if (/shutdown|reboot/.test(cmd)) {
188
+ reasons.push('System shutdown command');
189
+ }
190
+ }
191
+ if (destructivePatterns.some((re) => re.test(lower))) {
192
+ reasons.push('Destructive content detected');
193
+ }
194
+ const score = reasons.length > 0 ? 0.9 : 0.05;
195
+ return { score, reasons };
196
+ }
197
+ function formatPromptHookOutput(analysis, risk) {
198
+ const lines = [];
199
+ lines.push(`Interpretation: ${analysis.interpretation}`);
200
+ lines.push(`Intent: ${analysis.intent} (${analysis.category}, ${(analysis.confidence * 100).toFixed(0)}% conf)`);
201
+ lines.push(analysis.tasks.length
202
+ ? `Tasks: ${analysis.tasks.map((t) => `[${t.id}] ${t.description}`).join(' | ')}`
203
+ : 'Tasks: none');
204
+ lines.push(`Risk: ${(risk.score * 100).toFixed(0)}%${risk.reasons.length ? ` (${risk.reasons.join('; ')})` : ''}`);
205
+ if (analysis.clarificationNeeded.length) {
206
+ lines.push(`Clarifications: ${analysis.clarificationNeeded.join('; ')}`);
207
+ }
208
+ return lines.join('\n');
209
+ }
210
+ /**
211
+ * Execute a prompt hook (would query LLM in full implementation)
212
+ */
213
+ async function executePromptHook(hook, context) {
214
+ if (!hook.prompt) {
215
+ return { success: false, error: 'No prompt specified' };
216
+ }
217
+ const start = Date.now();
218
+ const promptText = buildPromptForHook(hook, context);
219
+ const agi = getAGI(context.workingDir);
220
+ const analysis = agi.analyzePrompt(promptText);
221
+ const risk = assessPromptRisk(promptText, context, analysis);
222
+ const highRiskEvent = context.event === 'PreToolUse' || context.event === 'PermissionRequest' || context.event === 'UserPromptSubmit';
223
+ const blocked = highRiskEvent && risk.score >= 0.75;
224
+ const decision = blocked ? 'deny' : 'continue';
225
+ agi.recordOperation({
226
+ id: `hook-${context.event}-${Date.now()}`,
227
+ prompt: promptText,
228
+ interpretation: analysis.interpretation,
229
+ tasks: analysis.tasks.map((t) => t.description),
230
+ success: !blocked,
231
+ timestamp: Date.now(),
232
+ duration: Date.now() - start,
233
+ toolsUsed: ['AGIHook'],
234
+ errors: blocked ? risk.reasons : undefined,
235
+ });
236
+ return {
237
+ success: true,
238
+ decision,
239
+ blocked,
240
+ reason: blocked
241
+ ? `High-risk content detected: ${risk.reasons.join('; ') || 'unspecified'}`
242
+ : `AGI analysis: ${analysis.interpretation} (risk ${(risk.score * 100).toFixed(0)}%)`,
243
+ output: formatPromptHookOutput(analysis, risk),
244
+ };
245
+ }
246
+ /**
247
+ * Execute a single hook
248
+ */
249
+ async function executeHook(hook, context) {
250
+ switch (hook.type) {
251
+ case 'command':
252
+ return executeCommandHook(hook, context);
253
+ case 'prompt':
254
+ return executePromptHook(hook, context);
255
+ default:
256
+ return { success: false, error: `Unknown hook type: ${hook.type}` };
257
+ }
258
+ }
259
+ /**
260
+ * HooksManager class for managing and executing hooks
261
+ */
262
+ export class HooksManager {
263
+ hooks;
264
+ workingDir;
265
+ constructor(workingDir) {
266
+ this.workingDir = workingDir;
267
+ this.hooks = loadHooks(workingDir);
268
+ }
269
+ /**
270
+ * Reload hooks from settings files
271
+ */
272
+ reload() {
273
+ this.hooks = loadHooks(this.workingDir);
274
+ }
275
+ /**
276
+ * Check if hooks are configured for an event
277
+ */
278
+ hasHooks(event) {
279
+ return Boolean(this.hooks[event]?.length);
280
+ }
281
+ /**
282
+ * Get all hooks for an event
283
+ */
284
+ getHooks(event) {
285
+ return this.hooks[event] ?? [];
286
+ }
287
+ /**
288
+ * Execute all matching hooks for an event
289
+ */
290
+ async executeHooks(context) {
291
+ const eventHooks = this.hooks[context.event] ?? [];
292
+ const results = [];
293
+ for (const hook of eventHooks) {
294
+ if (matchesHook(hook, context)) {
295
+ const result = await executeHook(hook, context);
296
+ results.push(result);
297
+ // Stop on blocking result
298
+ if (result.blocked) {
299
+ break;
300
+ }
301
+ }
302
+ }
303
+ return results;
304
+ }
305
+ /**
306
+ * Execute pre-tool hooks and check if tool should proceed
307
+ */
308
+ async executePreToolHooks(toolName, args) {
309
+ const context = {
310
+ event: 'PreToolUse',
311
+ toolName,
312
+ toolArgs: args,
313
+ workingDir: this.workingDir,
314
+ };
315
+ const results = await this.executeHooks(context);
316
+ // Check if any hook blocked the operation
317
+ const blocked = results.some((r) => r.blocked || r.decision === 'deny');
318
+ return { allowed: !blocked, results };
319
+ }
320
+ /**
321
+ * Execute post-tool hooks
322
+ */
323
+ async executePostToolHooks(toolName, args, result) {
324
+ const context = {
325
+ event: 'PostToolUse',
326
+ toolName,
327
+ toolArgs: args,
328
+ toolResult: result,
329
+ workingDir: this.workingDir,
330
+ };
331
+ return this.executeHooks(context);
332
+ }
333
+ /**
334
+ * Execute user prompt hooks
335
+ */
336
+ async executeUserPromptHooks(userInput) {
337
+ const context = {
338
+ event: 'UserPromptSubmit',
339
+ userInput,
340
+ workingDir: this.workingDir,
341
+ };
342
+ const results = await this.executeHooks(context);
343
+ const blocked = results.some((r) => r.blocked || r.decision === 'deny');
344
+ return { allowed: !blocked, results };
345
+ }
346
+ /**
347
+ * Execute session lifecycle hooks
348
+ */
349
+ async executeSessionHook(event, sessionId) {
350
+ const context = {
351
+ event,
352
+ sessionId,
353
+ workingDir: this.workingDir,
354
+ };
355
+ return this.executeHooks(context);
356
+ }
357
+ }
358
+ /**
359
+ * Create a hooks manager for the given working directory
360
+ */
361
+ export function createHooksManager(workingDir) {
362
+ return new HooksManager(workingDir);
363
+ }
364
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/core/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Hot Reload System for AGI Core
3
+ *
4
+ * Enables seamless version transitions by:
5
+ * 1. Detecting when a new version is available
6
+ * 2. Hot-swapping modules where possible
7
+ * 3. Gracefully restarting when full reload is needed
8
+ * 4. Preserving state across reloads
9
+ *
10
+ * Integrated with the self-upgrade system for continuous improvement.
11
+ */
12
+ import { EventEmitter } from 'node:events';
13
+ import { type RLUpgradeContext } from './selfUpgrade.js';
14
+ export interface HotReloadConfig {
15
+ /** Enable automatic version checking */
16
+ autoCheck?: boolean;
17
+ /** Check interval in ms (default: 5 minutes) */
18
+ checkInterval?: number;
19
+ /** Enable hot-swap where possible (default: true) */
20
+ enableHotSwap?: boolean;
21
+ /** Logger function */
22
+ logger?: (message: string) => void;
23
+ /** Working directory */
24
+ workingDir?: string;
25
+ }
26
+ export interface HotReloadState {
27
+ /** Current version */
28
+ currentVersion: string;
29
+ /** Last check timestamp */
30
+ lastCheck: number;
31
+ /** Pending reload */
32
+ pendingReload: boolean;
33
+ /** Modules that can be hot-swapped */
34
+ hotSwappableModules: string[];
35
+ /** State to preserve across reload */
36
+ preservedState: Record<string, unknown>;
37
+ }
38
+ export type HotReloadEventType = 'hotReload:check' | 'hotReload:available' | 'hotReload:swap' | 'hotReload:restart' | 'hotReload:complete' | 'hotReload:error';
39
+ export interface HotReloadEvent {
40
+ type: HotReloadEventType;
41
+ timestamp: number;
42
+ data?: Record<string, unknown>;
43
+ }
44
+ export interface ReloadStrategy {
45
+ /** Whether hot-swap is possible */
46
+ canHotSwap: boolean;
47
+ /** Modules that need full reload */
48
+ requiresRestart: string[];
49
+ /** Modules that can be hot-swapped */
50
+ hotSwappable: string[];
51
+ /** Estimated downtime */
52
+ estimatedDowntimeMs: number;
53
+ }
54
+ export declare class HotReload extends EventEmitter {
55
+ private config;
56
+ private state;
57
+ private checkTimer;
58
+ private watchingFiles;
59
+ constructor(config?: HotReloadConfig);
60
+ private loadState;
61
+ private saveState;
62
+ /**
63
+ * Start automatic version checking
64
+ */
65
+ startAutoCheck(): void;
66
+ /**
67
+ * Stop automatic version checking
68
+ */
69
+ stopAutoCheck(): void;
70
+ /**
71
+ * Check for available updates
72
+ */
73
+ checkForUpdates(): Promise<{
74
+ available: boolean;
75
+ version?: string;
76
+ strategy?: ReloadStrategy;
77
+ }>;
78
+ /**
79
+ * Determine the best reload strategy for a version update
80
+ */
81
+ determineReloadStrategy(currentVersion: string, targetVersion: string): Promise<ReloadStrategy>;
82
+ /**
83
+ * Perform hot reload with state preservation
84
+ */
85
+ performHotReload(options?: {
86
+ preserveState?: Record<string, unknown>;
87
+ rlContext?: RLUpgradeContext;
88
+ activeEdits?: string[];
89
+ }): Promise<{
90
+ success: boolean;
91
+ strategy: 'hot-swap' | 'restart';
92
+ error?: string;
93
+ }>;
94
+ /**
95
+ * Hot-swap specific modules without restart
96
+ */
97
+ private hotSwapModules;
98
+ /**
99
+ * Perform full restart with state preservation
100
+ */
101
+ private performFullRestart;
102
+ /**
103
+ * Watch for local file changes (development mode)
104
+ */
105
+ watchFiles(files: string[]): void;
106
+ /**
107
+ * Stop watching files
108
+ */
109
+ unwatchFiles(): void;
110
+ /**
111
+ * Preserve state for reload
112
+ */
113
+ preserveState(key: string, value: unknown): void;
114
+ /**
115
+ * Get preserved state
116
+ */
117
+ getPreservedState<T>(key: string): T | undefined;
118
+ /**
119
+ * Clear preserved state
120
+ */
121
+ clearPreservedState(): void;
122
+ private emitEvent;
123
+ /**
124
+ * Cleanup resources
125
+ */
126
+ dispose(): void;
127
+ /**
128
+ * Check if we should resume from a hot reload
129
+ */
130
+ static shouldResume(): boolean;
131
+ /**
132
+ * Get preserved state from previous session
133
+ */
134
+ static getResumeState(): Record<string, unknown> | null;
135
+ }
136
+ export declare function getHotReload(config?: HotReloadConfig): HotReload;
137
+ export declare function resetHotReload(): void;
138
+ /**
139
+ * Quick check and reload if update available
140
+ */
141
+ export declare function checkAndReload(options?: {
142
+ preserveState?: Record<string, unknown>;
143
+ rlContext?: RLUpgradeContext;
144
+ logger?: (message: string) => void;
145
+ }): Promise<boolean>;
146
+ /**
147
+ * Enable auto-checking for updates
148
+ */
149
+ export declare function enableAutoCheck(intervalMs?: number): void;
150
+ /**
151
+ * Disable auto-checking for updates
152
+ */
153
+ export declare function disableAutoCheck(): void;
154
+ //# sourceMappingURL=hotReload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotReload.d.ts","sourceRoot":"","sources":["../../src/core/hotReload.ts"],"names":[],"mappings":"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"}