axon-code 2.4.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 (1975) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +261 -0
  3. package/README.zh-CN.md +261 -0
  4. package/dist/agents/context.d.ts +289 -0
  5. package/dist/agents/context.d.ts.map +1 -0
  6. package/dist/agents/context.js +944 -0
  7. package/dist/agents/context.js.map +1 -0
  8. package/dist/agents/explore.d.ts +190 -0
  9. package/dist/agents/explore.d.ts.map +1 -0
  10. package/dist/agents/explore.js +582 -0
  11. package/dist/agents/explore.js.map +1 -0
  12. package/dist/agents/guide.d.ts +117 -0
  13. package/dist/agents/guide.d.ts.map +1 -0
  14. package/dist/agents/guide.js +690 -0
  15. package/dist/agents/guide.js.map +1 -0
  16. package/dist/agents/index.d.ts +11 -0
  17. package/dist/agents/index.d.ts.map +1 -0
  18. package/dist/agents/index.js +17 -0
  19. package/dist/agents/index.js.map +1 -0
  20. package/dist/agents/monitor.d.ts +343 -0
  21. package/dist/agents/monitor.d.ts.map +1 -0
  22. package/dist/agents/monitor.js +963 -0
  23. package/dist/agents/monitor.js.map +1 -0
  24. package/dist/agents/parallel.d.ts +305 -0
  25. package/dist/agents/parallel.d.ts.map +1 -0
  26. package/dist/agents/parallel.js +717 -0
  27. package/dist/agents/parallel.js.map +1 -0
  28. package/dist/agents/plan.d.ts +236 -0
  29. package/dist/agents/plan.d.ts.map +1 -0
  30. package/dist/agents/plan.js +292 -0
  31. package/dist/agents/plan.js.map +1 -0
  32. package/dist/agents/resume.d.ts +209 -0
  33. package/dist/agents/resume.d.ts.map +1 -0
  34. package/dist/agents/resume.js +520 -0
  35. package/dist/agents/resume.js.map +1 -0
  36. package/dist/agents/statusline.d.ts +167 -0
  37. package/dist/agents/statusline.d.ts.map +1 -0
  38. package/dist/agents/statusline.js +546 -0
  39. package/dist/agents/statusline.js.map +1 -0
  40. package/dist/agents/teammate-context.d.ts +163 -0
  41. package/dist/agents/teammate-context.d.ts.map +1 -0
  42. package/dist/agents/teammate-context.js +272 -0
  43. package/dist/agents/teammate-context.js.map +1 -0
  44. package/dist/agents/tools.d.ts +30 -0
  45. package/dist/agents/tools.d.ts.map +1 -0
  46. package/dist/agents/tools.js +116 -0
  47. package/dist/agents/tools.js.map +1 -0
  48. package/dist/auth/index.d.ts +204 -0
  49. package/dist/auth/index.d.ts.map +1 -0
  50. package/dist/auth/index.js +1266 -0
  51. package/dist/auth/index.js.map +1 -0
  52. package/dist/auth/keychain.d.ts +74 -0
  53. package/dist/auth/keychain.d.ts.map +1 -0
  54. package/dist/auth/keychain.js +181 -0
  55. package/dist/auth/keychain.js.map +1 -0
  56. package/dist/auth/settings.d.ts +58 -0
  57. package/dist/auth/settings.d.ts.map +1 -0
  58. package/dist/auth/settings.js +260 -0
  59. package/dist/auth/settings.js.map +1 -0
  60. package/dist/background/index.d.ts +83 -0
  61. package/dist/background/index.d.ts.map +1 -0
  62. package/dist/background/index.js +106 -0
  63. package/dist/background/index.js.map +1 -0
  64. package/dist/background/persistence.d.ts +146 -0
  65. package/dist/background/persistence.d.ts.map +1 -0
  66. package/dist/background/persistence.js +347 -0
  67. package/dist/background/persistence.js.map +1 -0
  68. package/dist/background/shell-manager.d.ts +130 -0
  69. package/dist/background/shell-manager.d.ts.map +1 -0
  70. package/dist/background/shell-manager.js +401 -0
  71. package/dist/background/shell-manager.js.map +1 -0
  72. package/dist/background/task-queue.d.ts +96 -0
  73. package/dist/background/task-queue.d.ts.map +1 -0
  74. package/dist/background/task-queue.js +199 -0
  75. package/dist/background/task-queue.js.map +1 -0
  76. package/dist/background/timeout.d.ts +122 -0
  77. package/dist/background/timeout.d.ts.map +1 -0
  78. package/dist/background/timeout.js +247 -0
  79. package/dist/background/timeout.js.map +1 -0
  80. package/dist/blueprint/agent-decision-maker.d.ts +126 -0
  81. package/dist/blueprint/agent-decision-maker.d.ts.map +1 -0
  82. package/dist/blueprint/agent-decision-maker.js +433 -0
  83. package/dist/blueprint/agent-decision-maker.js.map +1 -0
  84. package/dist/blueprint/autonomous-worker.d.ts +182 -0
  85. package/dist/blueprint/autonomous-worker.d.ts.map +1 -0
  86. package/dist/blueprint/autonomous-worker.js +808 -0
  87. package/dist/blueprint/autonomous-worker.js.map +1 -0
  88. package/dist/blueprint/browser-test-tools.d.ts +277 -0
  89. package/dist/blueprint/browser-test-tools.d.ts.map +1 -0
  90. package/dist/blueprint/browser-test-tools.js +645 -0
  91. package/dist/blueprint/browser-test-tools.js.map +1 -0
  92. package/dist/blueprint/e2e-agent-registry.d.ts +27 -0
  93. package/dist/blueprint/e2e-agent-registry.d.ts.map +1 -0
  94. package/dist/blueprint/e2e-agent-registry.js +39 -0
  95. package/dist/blueprint/e2e-agent-registry.js.map +1 -0
  96. package/dist/blueprint/e2e-test-agent.d.ts +151 -0
  97. package/dist/blueprint/e2e-test-agent.d.ts.map +1 -0
  98. package/dist/blueprint/e2e-test-agent.js +612 -0
  99. package/dist/blueprint/e2e-test-agent.js.map +1 -0
  100. package/dist/blueprint/environment-checker.d.ts +113 -0
  101. package/dist/blueprint/environment-checker.d.ts.map +1 -0
  102. package/dist/blueprint/environment-checker.js +409 -0
  103. package/dist/blueprint/environment-checker.js.map +1 -0
  104. package/dist/blueprint/index.d.ts +26 -0
  105. package/dist/blueprint/index.d.ts.map +1 -0
  106. package/dist/blueprint/index.js +50 -0
  107. package/dist/blueprint/index.js.map +1 -0
  108. package/dist/blueprint/lead-agent.d.ts +97 -0
  109. package/dist/blueprint/lead-agent.d.ts.map +1 -0
  110. package/dist/blueprint/lead-agent.js +905 -0
  111. package/dist/blueprint/lead-agent.js.map +1 -0
  112. package/dist/blueprint/model-selector.d.ts +34 -0
  113. package/dist/blueprint/model-selector.d.ts.map +1 -0
  114. package/dist/blueprint/model-selector.js +83 -0
  115. package/dist/blueprint/model-selector.js.map +1 -0
  116. package/dist/blueprint/planner-session.d.ts +130 -0
  117. package/dist/blueprint/planner-session.d.ts.map +1 -0
  118. package/dist/blueprint/planner-session.js +479 -0
  119. package/dist/blueprint/planner-session.js.map +1 -0
  120. package/dist/blueprint/realtime-coordinator.d.ts +373 -0
  121. package/dist/blueprint/realtime-coordinator.d.ts.map +1 -0
  122. package/dist/blueprint/realtime-coordinator.js +1454 -0
  123. package/dist/blueprint/realtime-coordinator.js.map +1 -0
  124. package/dist/blueprint/smart-planner.d.ts +346 -0
  125. package/dist/blueprint/smart-planner.d.ts.map +1 -0
  126. package/dist/blueprint/smart-planner.js +2426 -0
  127. package/dist/blueprint/smart-planner.js.map +1 -0
  128. package/dist/blueprint/task-queue.d.ts +62 -0
  129. package/dist/blueprint/task-queue.d.ts.map +1 -0
  130. package/dist/blueprint/task-queue.js +185 -0
  131. package/dist/blueprint/task-queue.js.map +1 -0
  132. package/dist/blueprint/task-reviewer.d.ts +168 -0
  133. package/dist/blueprint/task-reviewer.d.ts.map +1 -0
  134. package/dist/blueprint/task-reviewer.js +570 -0
  135. package/dist/blueprint/task-reviewer.js.map +1 -0
  136. package/dist/blueprint/types.d.ts +1054 -0
  137. package/dist/blueprint/types.d.ts.map +1 -0
  138. package/dist/blueprint/types.js +49 -0
  139. package/dist/blueprint/types.js.map +1 -0
  140. package/dist/blueprint/verification-service.d.ts +134 -0
  141. package/dist/blueprint/verification-service.d.ts.map +1 -0
  142. package/dist/blueprint/verification-service.js +315 -0
  143. package/dist/blueprint/verification-service.js.map +1 -0
  144. package/dist/blueprint/visual-comparator.d.ts +112 -0
  145. package/dist/blueprint/visual-comparator.d.ts.map +1 -0
  146. package/dist/blueprint/visual-comparator.js +309 -0
  147. package/dist/blueprint/visual-comparator.js.map +1 -0
  148. package/dist/browser/controller.d.ts +188 -0
  149. package/dist/browser/controller.d.ts.map +1 -0
  150. package/dist/browser/controller.js +1256 -0
  151. package/dist/browser/controller.js.map +1 -0
  152. package/dist/browser/detect.d.ts +14 -0
  153. package/dist/browser/detect.d.ts.map +1 -0
  154. package/dist/browser/detect.js +93 -0
  155. package/dist/browser/detect.js.map +1 -0
  156. package/dist/browser/errors.d.ts +14 -0
  157. package/dist/browser/errors.d.ts.map +1 -0
  158. package/dist/browser/errors.js +45 -0
  159. package/dist/browser/errors.js.map +1 -0
  160. package/dist/browser/extension/background-utils.js +53 -0
  161. package/dist/browser/extension/background.js +895 -0
  162. package/dist/browser/extension/manifest.json +28 -0
  163. package/dist/browser/extension/options.html +214 -0
  164. package/dist/browser/extension/options.js +201 -0
  165. package/dist/browser/extension-relay-auth.d.ts +18 -0
  166. package/dist/browser/extension-relay-auth.d.ts.map +1 -0
  167. package/dist/browser/extension-relay-auth.js +53 -0
  168. package/dist/browser/extension-relay-auth.js.map +1 -0
  169. package/dist/browser/extension-relay.d.ts +39 -0
  170. package/dist/browser/extension-relay.d.ts.map +1 -0
  171. package/dist/browser/extension-relay.js +855 -0
  172. package/dist/browser/extension-relay.js.map +1 -0
  173. package/dist/browser/index.d.ts +11 -0
  174. package/dist/browser/index.d.ts.map +1 -0
  175. package/dist/browser/index.js +11 -0
  176. package/dist/browser/index.js.map +1 -0
  177. package/dist/browser/manager.d.ts +77 -0
  178. package/dist/browser/manager.d.ts.map +1 -0
  179. package/dist/browser/manager.js +911 -0
  180. package/dist/browser/manager.js.map +1 -0
  181. package/dist/browser/navigation-guard.d.ts +15 -0
  182. package/dist/browser/navigation-guard.d.ts.map +1 -0
  183. package/dist/browser/navigation-guard.js +163 -0
  184. package/dist/browser/navigation-guard.js.map +1 -0
  185. package/dist/browser/profiles.d.ts +49 -0
  186. package/dist/browser/profiles.d.ts.map +1 -0
  187. package/dist/browser/profiles.js +211 -0
  188. package/dist/browser/profiles.js.map +1 -0
  189. package/dist/browser/types.d.ts +96 -0
  190. package/dist/browser/types.d.ts.map +1 -0
  191. package/dist/browser/types.js +5 -0
  192. package/dist/browser/types.js.map +1 -0
  193. package/dist/checkpoint/index.d.ts +289 -0
  194. package/dist/checkpoint/index.d.ts.map +1 -0
  195. package/dist/checkpoint/index.js +1424 -0
  196. package/dist/checkpoint/index.js.map +1 -0
  197. package/dist/chrome/index.d.ts +31 -0
  198. package/dist/chrome/index.d.ts.map +1 -0
  199. package/dist/chrome/index.js +41 -0
  200. package/dist/chrome/index.js.map +1 -0
  201. package/dist/chrome-mcp/index.d.ts +84 -0
  202. package/dist/chrome-mcp/index.d.ts.map +1 -0
  203. package/dist/chrome-mcp/index.js +192 -0
  204. package/dist/chrome-mcp/index.js.map +1 -0
  205. package/dist/chrome-mcp/mcp-server.d.ts +115 -0
  206. package/dist/chrome-mcp/mcp-server.d.ts.map +1 -0
  207. package/dist/chrome-mcp/mcp-server.js +312 -0
  208. package/dist/chrome-mcp/mcp-server.js.map +1 -0
  209. package/dist/chrome-mcp/native-host.d.ts +65 -0
  210. package/dist/chrome-mcp/native-host.d.ts.map +1 -0
  211. package/dist/chrome-mcp/native-host.js +357 -0
  212. package/dist/chrome-mcp/native-host.js.map +1 -0
  213. package/dist/chrome-mcp/socket-client.d.ts +105 -0
  214. package/dist/chrome-mcp/socket-client.d.ts.map +1 -0
  215. package/dist/chrome-mcp/socket-client.js +325 -0
  216. package/dist/chrome-mcp/socket-client.js.map +1 -0
  217. package/dist/chrome-mcp/socket-server.d.ts +65 -0
  218. package/dist/chrome-mcp/socket-server.d.ts.map +1 -0
  219. package/dist/chrome-mcp/socket-server.js +354 -0
  220. package/dist/chrome-mcp/socket-server.js.map +1 -0
  221. package/dist/chrome-mcp/tools.d.ts +22 -0
  222. package/dist/chrome-mcp/tools.d.ts.map +1 -0
  223. package/dist/chrome-mcp/tools.js +372 -0
  224. package/dist/chrome-mcp/tools.js.map +1 -0
  225. package/dist/cli.d.ts +7 -0
  226. package/dist/cli.d.ts.map +1 -0
  227. package/dist/cli.js +3302 -0
  228. package/dist/cli.js.map +1 -0
  229. package/dist/codesign/index.d.ts +84 -0
  230. package/dist/codesign/index.d.ts.map +1 -0
  231. package/dist/codesign/index.js +289 -0
  232. package/dist/codesign/index.js.map +1 -0
  233. package/dist/commands/api.d.ts +8 -0
  234. package/dist/commands/api.d.ts.map +1 -0
  235. package/dist/commands/api.js +510 -0
  236. package/dist/commands/api.js.map +1 -0
  237. package/dist/commands/auth.d.ts +13 -0
  238. package/dist/commands/auth.d.ts.map +1 -0
  239. package/dist/commands/auth.js +713 -0
  240. package/dist/commands/auth.js.map +1 -0
  241. package/dist/commands/config-cmd.d.ts +12 -0
  242. package/dist/commands/config-cmd.d.ts.map +1 -0
  243. package/dist/commands/config-cmd.js +578 -0
  244. package/dist/commands/config-cmd.js.map +1 -0
  245. package/dist/commands/config.d.ts +22 -0
  246. package/dist/commands/config.d.ts.map +1 -0
  247. package/dist/commands/config.js +2457 -0
  248. package/dist/commands/config.js.map +1 -0
  249. package/dist/commands/development.d.ts +14 -0
  250. package/dist/commands/development.d.ts.map +1 -0
  251. package/dist/commands/development.js +905 -0
  252. package/dist/commands/development.js.map +1 -0
  253. package/dist/commands/general.d.ts +15 -0
  254. package/dist/commands/general.d.ts.map +1 -0
  255. package/dist/commands/general.js +620 -0
  256. package/dist/commands/general.js.map +1 -0
  257. package/dist/commands/index.d.ts +28 -0
  258. package/dist/commands/index.d.ts.map +1 -0
  259. package/dist/commands/index.js +70 -0
  260. package/dist/commands/index.js.map +1 -0
  261. package/dist/commands/registry.d.ts +16 -0
  262. package/dist/commands/registry.d.ts.map +1 -0
  263. package/dist/commands/registry.js +55 -0
  264. package/dist/commands/registry.js.map +1 -0
  265. package/dist/commands/session.d.ts +14 -0
  266. package/dist/commands/session.d.ts.map +1 -0
  267. package/dist/commands/session.js +1256 -0
  268. package/dist/commands/session.js.map +1 -0
  269. package/dist/commands/settings.d.ts +15 -0
  270. package/dist/commands/settings.d.ts.map +1 -0
  271. package/dist/commands/settings.js +439 -0
  272. package/dist/commands/settings.js.map +1 -0
  273. package/dist/commands/tools.d.ts +14 -0
  274. package/dist/commands/tools.d.ts.map +1 -0
  275. package/dist/commands/tools.js +1579 -0
  276. package/dist/commands/tools.js.map +1 -0
  277. package/dist/commands/types.d.ts +82 -0
  278. package/dist/commands/types.d.ts.map +1 -0
  279. package/dist/commands/types.js +5 -0
  280. package/dist/commands/types.js.map +1 -0
  281. package/dist/commands/utility.d.ts +19 -0
  282. package/dist/commands/utility.d.ts.map +1 -0
  283. package/dist/commands/utility.js +738 -0
  284. package/dist/commands/utility.js.map +1 -0
  285. package/dist/config/axon-md-parser.d.ts +167 -0
  286. package/dist/config/axon-md-parser.d.ts.map +1 -0
  287. package/dist/config/axon-md-parser.js +472 -0
  288. package/dist/config/axon-md-parser.js.map +1 -0
  289. package/dist/config/builtin-api.d.ts +2 -0
  290. package/dist/config/builtin-api.d.ts.map +1 -0
  291. package/dist/config/builtin-api.js +2 -0
  292. package/dist/config/builtin-api.js.map +1 -0
  293. package/dist/config/config-command.d.ts +81 -0
  294. package/dist/config/config-command.d.ts.map +1 -0
  295. package/dist/config/config-command.js +292 -0
  296. package/dist/config/config-command.js.map +1 -0
  297. package/dist/config/index.d.ts +1700 -0
  298. package/dist/config/index.d.ts.map +1 -0
  299. package/dist/config/index.js +1677 -0
  300. package/dist/config/index.js.map +1 -0
  301. package/dist/config/keybindings.d.ts +141 -0
  302. package/dist/config/keybindings.d.ts.map +1 -0
  303. package/dist/config/keybindings.js +708 -0
  304. package/dist/config/keybindings.js.map +1 -0
  305. package/dist/context/__tests__/enhanced.test.d.ts +5 -0
  306. package/dist/context/__tests__/enhanced.test.d.ts.map +1 -0
  307. package/dist/context/__tests__/enhanced.test.js +298 -0
  308. package/dist/context/__tests__/enhanced.test.js.map +1 -0
  309. package/dist/context/enhanced.d.ts +244 -0
  310. package/dist/context/enhanced.d.ts.map +1 -0
  311. package/dist/context/enhanced.js +527 -0
  312. package/dist/context/enhanced.js.map +1 -0
  313. package/dist/context/index.d.ts +249 -0
  314. package/dist/context/index.d.ts.map +1 -0
  315. package/dist/context/index.js +1043 -0
  316. package/dist/context/index.js.map +1 -0
  317. package/dist/context/intent-enricher.d.ts +38 -0
  318. package/dist/context/intent-enricher.d.ts.map +1 -0
  319. package/dist/context/intent-enricher.js +212 -0
  320. package/dist/context/intent-enricher.js.map +1 -0
  321. package/dist/context/link-detector.d.ts +20 -0
  322. package/dist/context/link-detector.d.ts.map +1 -0
  323. package/dist/context/link-detector.js +99 -0
  324. package/dist/context/link-detector.js.map +1 -0
  325. package/dist/context/session-memory.d.ts +206 -0
  326. package/dist/context/session-memory.d.ts.map +1 -0
  327. package/dist/context/session-memory.js +542 -0
  328. package/dist/context/session-memory.js.map +1 -0
  329. package/dist/context/summarizer.d.ts +27 -0
  330. package/dist/context/summarizer.d.ts.map +1 -0
  331. package/dist/context/summarizer.js +157 -0
  332. package/dist/context/summarizer.js.map +1 -0
  333. package/dist/context/window.d.ts +104 -0
  334. package/dist/context/window.d.ts.map +1 -0
  335. package/dist/context/window.js +140 -0
  336. package/dist/context/window.js.map +1 -0
  337. package/dist/core/backgroundTasks.d.ts +87 -0
  338. package/dist/core/backgroundTasks.d.ts.map +1 -0
  339. package/dist/core/backgroundTasks.js +229 -0
  340. package/dist/core/backgroundTasks.js.map +1 -0
  341. package/dist/core/cache-keepalive.d.ts +37 -0
  342. package/dist/core/cache-keepalive.d.ts.map +1 -0
  343. package/dist/core/cache-keepalive.js +130 -0
  344. package/dist/core/cache-keepalive.js.map +1 -0
  345. package/dist/core/client.cache.test.d.ts +13 -0
  346. package/dist/core/client.cache.test.d.ts.map +1 -0
  347. package/dist/core/client.cache.test.js +315 -0
  348. package/dist/core/client.cache.test.js.map +1 -0
  349. package/dist/core/client.d.ts +306 -0
  350. package/dist/core/client.d.ts.map +1 -0
  351. package/dist/core/client.js +1930 -0
  352. package/dist/core/client.js.map +1 -0
  353. package/dist/core/cwd-context.d.ts +53 -0
  354. package/dist/core/cwd-context.d.ts.map +1 -0
  355. package/dist/core/cwd-context.js +102 -0
  356. package/dist/core/cwd-context.js.map +1 -0
  357. package/dist/core/index.d.ts +9 -0
  358. package/dist/core/index.d.ts.map +1 -0
  359. package/dist/core/index.js +9 -0
  360. package/dist/core/index.js.map +1 -0
  361. package/dist/core/loop.d.ts +401 -0
  362. package/dist/core/loop.d.ts.map +1 -0
  363. package/dist/core/loop.js +3375 -0
  364. package/dist/core/loop.js.map +1 -0
  365. package/dist/core/retryLogic.d.ts +84 -0
  366. package/dist/core/retryLogic.d.ts.map +1 -0
  367. package/dist/core/retryLogic.js +157 -0
  368. package/dist/core/retryLogic.js.map +1 -0
  369. package/dist/core/session-context.d.ts +24 -0
  370. package/dist/core/session-context.d.ts.map +1 -0
  371. package/dist/core/session-context.js +35 -0
  372. package/dist/core/session-context.js.map +1 -0
  373. package/dist/core/session.d.ts +229 -0
  374. package/dist/core/session.d.ts.map +1 -0
  375. package/dist/core/session.js +729 -0
  376. package/dist/core/session.js.map +1 -0
  377. package/dist/core/validateToolResults.test.d.ts +6 -0
  378. package/dist/core/validateToolResults.test.d.ts.map +1 -0
  379. package/dist/core/validateToolResults.test.js +303 -0
  380. package/dist/core/validateToolResults.test.js.map +1 -0
  381. package/dist/daemon/alarm.d.ts +62 -0
  382. package/dist/daemon/alarm.d.ts.map +1 -0
  383. package/dist/daemon/alarm.js +145 -0
  384. package/dist/daemon/alarm.js.map +1 -0
  385. package/dist/daemon/config.d.ts +225 -0
  386. package/dist/daemon/config.d.ts.map +1 -0
  387. package/dist/daemon/config.js +104 -0
  388. package/dist/daemon/config.js.map +1 -0
  389. package/dist/daemon/executor.d.ts +52 -0
  390. package/dist/daemon/executor.d.ts.map +1 -0
  391. package/dist/daemon/executor.js +288 -0
  392. package/dist/daemon/executor.js.map +1 -0
  393. package/dist/daemon/index.d.ts +72 -0
  394. package/dist/daemon/index.d.ts.map +1 -0
  395. package/dist/daemon/index.js +394 -0
  396. package/dist/daemon/index.js.map +1 -0
  397. package/dist/daemon/locked.d.ts +15 -0
  398. package/dist/daemon/locked.d.ts.map +1 -0
  399. package/dist/daemon/locked.js +16 -0
  400. package/dist/daemon/locked.js.map +1 -0
  401. package/dist/daemon/notifier.d.ts +25 -0
  402. package/dist/daemon/notifier.d.ts.map +1 -0
  403. package/dist/daemon/notifier.js +87 -0
  404. package/dist/daemon/notifier.js.map +1 -0
  405. package/dist/daemon/run-log.d.ts +43 -0
  406. package/dist/daemon/run-log.d.ts.map +1 -0
  407. package/dist/daemon/run-log.js +126 -0
  408. package/dist/daemon/run-log.js.map +1 -0
  409. package/dist/daemon/scheduler.d.ts +85 -0
  410. package/dist/daemon/scheduler.d.ts.map +1 -0
  411. package/dist/daemon/scheduler.js +379 -0
  412. package/dist/daemon/scheduler.js.map +1 -0
  413. package/dist/daemon/store.d.ts +94 -0
  414. package/dist/daemon/store.d.ts.map +1 -0
  415. package/dist/daemon/store.js +121 -0
  416. package/dist/daemon/store.js.map +1 -0
  417. package/dist/daemon/time-parser.d.ts +15 -0
  418. package/dist/daemon/time-parser.d.ts.map +1 -0
  419. package/dist/daemon/time-parser.js +68 -0
  420. package/dist/daemon/time-parser.js.map +1 -0
  421. package/dist/daemon/watcher.d.ts +34 -0
  422. package/dist/daemon/watcher.d.ts.map +1 -0
  423. package/dist/daemon/watcher.js +105 -0
  424. package/dist/daemon/watcher.js.map +1 -0
  425. package/dist/database/drivers/mongo.d.ts +14 -0
  426. package/dist/database/drivers/mongo.d.ts.map +1 -0
  427. package/dist/database/drivers/mongo.js +112 -0
  428. package/dist/database/drivers/mongo.js.map +1 -0
  429. package/dist/database/drivers/mysql.d.ts +13 -0
  430. package/dist/database/drivers/mysql.d.ts.map +1 -0
  431. package/dist/database/drivers/mysql.js +76 -0
  432. package/dist/database/drivers/mysql.js.map +1 -0
  433. package/dist/database/drivers/postgres.d.ts +13 -0
  434. package/dist/database/drivers/postgres.d.ts.map +1 -0
  435. package/dist/database/drivers/postgres.js +79 -0
  436. package/dist/database/drivers/postgres.js.map +1 -0
  437. package/dist/database/drivers/redis.d.ts +13 -0
  438. package/dist/database/drivers/redis.d.ts.map +1 -0
  439. package/dist/database/drivers/redis.js +100 -0
  440. package/dist/database/drivers/redis.js.map +1 -0
  441. package/dist/database/drivers/sqlite.d.ts +13 -0
  442. package/dist/database/drivers/sqlite.d.ts.map +1 -0
  443. package/dist/database/drivers/sqlite.js +89 -0
  444. package/dist/database/drivers/sqlite.js.map +1 -0
  445. package/dist/database/index.d.ts +21 -0
  446. package/dist/database/index.d.ts.map +1 -0
  447. package/dist/database/index.js +97 -0
  448. package/dist/database/index.js.map +1 -0
  449. package/dist/database/types.d.ts +54 -0
  450. package/dist/database/types.d.ts.map +1 -0
  451. package/dist/database/types.js +2 -0
  452. package/dist/database/types.js.map +1 -0
  453. package/dist/debugger/dap-client.d.ts +32 -0
  454. package/dist/debugger/dap-client.d.ts.map +1 -0
  455. package/dist/debugger/dap-client.js +108 -0
  456. package/dist/debugger/dap-client.js.map +1 -0
  457. package/dist/debugger/index.d.ts +30 -0
  458. package/dist/debugger/index.d.ts.map +1 -0
  459. package/dist/debugger/index.js +574 -0
  460. package/dist/debugger/index.js.map +1 -0
  461. package/dist/debugger/types.d.ts +59 -0
  462. package/dist/debugger/types.d.ts.map +1 -0
  463. package/dist/debugger/types.js +2 -0
  464. package/dist/debugger/types.js.map +1 -0
  465. package/dist/diagnostics/index.d.ts +72 -0
  466. package/dist/diagnostics/index.d.ts.map +1 -0
  467. package/dist/diagnostics/index.js +1013 -0
  468. package/dist/diagnostics/index.js.map +1 -0
  469. package/dist/ear/index.d.ts +73 -0
  470. package/dist/ear/index.d.ts.map +1 -0
  471. package/dist/ear/index.js +114 -0
  472. package/dist/ear/index.js.map +1 -0
  473. package/dist/email-mcp/index.d.ts +12 -0
  474. package/dist/email-mcp/index.d.ts.map +1 -0
  475. package/dist/email-mcp/index.js +11 -0
  476. package/dist/email-mcp/index.js.map +1 -0
  477. package/dist/email-mcp/mcp-server.d.ts +18 -0
  478. package/dist/email-mcp/mcp-server.d.ts.map +1 -0
  479. package/dist/email-mcp/mcp-server.js +381 -0
  480. package/dist/email-mcp/mcp-server.js.map +1 -0
  481. package/dist/email-mcp/tools.d.ts +22 -0
  482. package/dist/email-mcp/tools.d.ts.map +1 -0
  483. package/dist/email-mcp/tools.js +251 -0
  484. package/dist/email-mcp/tools.js.map +1 -0
  485. package/dist/env/index.d.ts +27 -0
  486. package/dist/env/index.d.ts.map +1 -0
  487. package/dist/env/index.js +31 -0
  488. package/dist/env/index.js.map +1 -0
  489. package/dist/env/manager.d.ts +150 -0
  490. package/dist/env/manager.d.ts.map +1 -0
  491. package/dist/env/manager.js +290 -0
  492. package/dist/env/manager.js.map +1 -0
  493. package/dist/env/sensitive.d.ts +134 -0
  494. package/dist/env/sensitive.d.ts.map +1 -0
  495. package/dist/env/sensitive.js +255 -0
  496. package/dist/env/sensitive.js.map +1 -0
  497. package/dist/env/validator.d.ts +93 -0
  498. package/dist/env/validator.d.ts.map +1 -0
  499. package/dist/env/validator.js +122 -0
  500. package/dist/env/validator.js.map +1 -0
  501. package/dist/env/validators/builtin.d.ts +68 -0
  502. package/dist/env/validators/builtin.d.ts.map +1 -0
  503. package/dist/env/validators/builtin.js +294 -0
  504. package/dist/env/validators/builtin.js.map +1 -0
  505. package/dist/eye/camera.py +396 -0
  506. package/dist/eye/index.d.ts +70 -0
  507. package/dist/eye/index.d.ts.map +1 -0
  508. package/dist/eye/index.js +356 -0
  509. package/dist/eye/index.js.map +1 -0
  510. package/dist/fast-mode/index.d.ts +136 -0
  511. package/dist/fast-mode/index.d.ts.map +1 -0
  512. package/dist/fast-mode/index.js +390 -0
  513. package/dist/fast-mode/index.js.map +1 -0
  514. package/dist/fast-mode/provider.d.ts +10 -0
  515. package/dist/fast-mode/provider.d.ts.map +1 -0
  516. package/dist/fast-mode/provider.js +23 -0
  517. package/dist/fast-mode/provider.js.map +1 -0
  518. package/dist/feishu/bot.d.ts +71 -0
  519. package/dist/feishu/bot.d.ts.map +1 -0
  520. package/dist/feishu/bot.js +287 -0
  521. package/dist/feishu/bot.js.map +1 -0
  522. package/dist/feishu/config.d.ts +54 -0
  523. package/dist/feishu/config.d.ts.map +1 -0
  524. package/dist/feishu/config.js +100 -0
  525. package/dist/feishu/config.js.map +1 -0
  526. package/dist/feishu/index.d.ts +7 -0
  527. package/dist/feishu/index.d.ts.map +1 -0
  528. package/dist/feishu/index.js +5 -0
  529. package/dist/feishu/index.js.map +1 -0
  530. package/dist/feishu/message-handler.d.ts +42 -0
  531. package/dist/feishu/message-handler.d.ts.map +1 -0
  532. package/dist/feishu/message-handler.js +112 -0
  533. package/dist/feishu/message-handler.js.map +1 -0
  534. package/dist/feishu/session-manager.d.ts +57 -0
  535. package/dist/feishu/session-manager.d.ts.map +1 -0
  536. package/dist/feishu/session-manager.js +179 -0
  537. package/dist/feishu/session-manager.js.map +1 -0
  538. package/dist/feishu-cli.d.ts +34 -0
  539. package/dist/feishu-cli.d.ts.map +1 -0
  540. package/dist/feishu-cli.js +132 -0
  541. package/dist/feishu-cli.js.map +1 -0
  542. package/dist/git/analysis.d.ts +135 -0
  543. package/dist/git/analysis.d.ts.map +1 -0
  544. package/dist/git/analysis.js +259 -0
  545. package/dist/git/analysis.js.map +1 -0
  546. package/dist/git/core.d.ts +175 -0
  547. package/dist/git/core.d.ts.map +1 -0
  548. package/dist/git/core.js +349 -0
  549. package/dist/git/core.js.map +1 -0
  550. package/dist/git/ignore.d.ts +74 -0
  551. package/dist/git/ignore.d.ts.map +1 -0
  552. package/dist/git/ignore.js +257 -0
  553. package/dist/git/ignore.js.map +1 -0
  554. package/dist/git/index.d.ts +37 -0
  555. package/dist/git/index.d.ts.map +1 -0
  556. package/dist/git/index.js +48 -0
  557. package/dist/git/index.js.map +1 -0
  558. package/dist/git/operations.d.ts +96 -0
  559. package/dist/git/operations.d.ts.map +1 -0
  560. package/dist/git/operations.js +288 -0
  561. package/dist/git/operations.js.map +1 -0
  562. package/dist/git/safety.d.ts +107 -0
  563. package/dist/git/safety.d.ts.map +1 -0
  564. package/dist/git/safety.js +293 -0
  565. package/dist/git/safety.js.map +1 -0
  566. package/dist/github/index.d.ts +58 -0
  567. package/dist/github/index.d.ts.map +1 -0
  568. package/dist/github/index.js +246 -0
  569. package/dist/github/index.js.map +1 -0
  570. package/dist/goals/goal-daemon.d.ts +54 -0
  571. package/dist/goals/goal-daemon.d.ts.map +1 -0
  572. package/dist/goals/goal-daemon.js +171 -0
  573. package/dist/goals/goal-daemon.js.map +1 -0
  574. package/dist/goals/goal-evaluator.d.ts +28 -0
  575. package/dist/goals/goal-evaluator.d.ts.map +1 -0
  576. package/dist/goals/goal-evaluator.js +117 -0
  577. package/dist/goals/goal-evaluator.js.map +1 -0
  578. package/dist/goals/goal-planner.d.ts +21 -0
  579. package/dist/goals/goal-planner.d.ts.map +1 -0
  580. package/dist/goals/goal-planner.js +80 -0
  581. package/dist/goals/goal-planner.js.map +1 -0
  582. package/dist/goals/goal-store.d.ts +31 -0
  583. package/dist/goals/goal-store.d.ts.map +1 -0
  584. package/dist/goals/goal-store.js +238 -0
  585. package/dist/goals/goal-store.js.map +1 -0
  586. package/dist/goals/index.d.ts +15 -0
  587. package/dist/goals/index.d.ts.map +1 -0
  588. package/dist/goals/index.js +22 -0
  589. package/dist/goals/index.js.map +1 -0
  590. package/dist/goals/storage.d.ts +83 -0
  591. package/dist/goals/storage.d.ts.map +1 -0
  592. package/dist/goals/storage.js +235 -0
  593. package/dist/goals/storage.js.map +1 -0
  594. package/dist/goals/types.d.ts +138 -0
  595. package/dist/goals/types.d.ts.map +1 -0
  596. package/dist/goals/types.js +5 -0
  597. package/dist/goals/types.js.map +1 -0
  598. package/dist/hooks/blueprint-hooks.d.ts +52 -0
  599. package/dist/hooks/blueprint-hooks.d.ts.map +1 -0
  600. package/dist/hooks/blueprint-hooks.js +75 -0
  601. package/dist/hooks/blueprint-hooks.js.map +1 -0
  602. package/dist/hooks/index.d.ts +421 -0
  603. package/dist/hooks/index.d.ts.map +1 -0
  604. package/dist/hooks/index.js +1225 -0
  605. package/dist/hooks/index.js.map +1 -0
  606. package/dist/hooks/index.test.d.ts +33 -0
  607. package/dist/hooks/index.test.d.ts.map +1 -0
  608. package/dist/hooks/index.test.js +199 -0
  609. package/dist/hooks/index.test.js.map +1 -0
  610. package/dist/i18n/index.d.ts +25 -0
  611. package/dist/i18n/index.d.ts.map +1 -0
  612. package/dist/i18n/index.js +96 -0
  613. package/dist/i18n/index.js.map +1 -0
  614. package/dist/i18n/locales/en.d.ts +786 -0
  615. package/dist/i18n/locales/en.d.ts.map +1 -0
  616. package/dist/i18n/locales/en.js +865 -0
  617. package/dist/i18n/locales/en.js.map +1 -0
  618. package/dist/i18n/locales/zh.d.ts +7 -0
  619. package/dist/i18n/locales/zh.d.ts.map +1 -0
  620. package/dist/i18n/locales/zh.js +862 -0
  621. package/dist/i18n/locales/zh.js.map +1 -0
  622. package/dist/ide/index.d.ts +81 -0
  623. package/dist/ide/index.d.ts.map +1 -0
  624. package/dist/ide/index.js +371 -0
  625. package/dist/ide/index.js.map +1 -0
  626. package/dist/index.d.ts +39 -0
  627. package/dist/index.d.ts.map +1 -0
  628. package/dist/index.js +63 -0
  629. package/dist/index.js.map +1 -0
  630. package/dist/lifecycle/index.d.ts +120 -0
  631. package/dist/lifecycle/index.d.ts.map +1 -0
  632. package/dist/lifecycle/index.js +178 -0
  633. package/dist/lifecycle/index.js.map +1 -0
  634. package/dist/lsp/index.d.ts +12 -0
  635. package/dist/lsp/index.d.ts.map +1 -0
  636. package/dist/lsp/index.js +20 -0
  637. package/dist/lsp/index.js.map +1 -0
  638. package/dist/lsp/manager.d.ts +307 -0
  639. package/dist/lsp/manager.d.ts.map +1 -0
  640. package/dist/lsp/manager.js +1012 -0
  641. package/dist/lsp/manager.js.map +1 -0
  642. package/dist/map/index.d.ts +2 -0
  643. package/dist/map/index.d.ts.map +1 -0
  644. package/dist/map/index.js +2 -0
  645. package/dist/map/index.js.map +1 -0
  646. package/dist/map/types.d.ts +264 -0
  647. package/dist/map/types.d.ts.map +1 -0
  648. package/dist/map/types.js +6 -0
  649. package/dist/map/types.js.map +1 -0
  650. package/dist/mcp/adapter.d.ts +217 -0
  651. package/dist/mcp/adapter.d.ts.map +1 -0
  652. package/dist/mcp/adapter.js +527 -0
  653. package/dist/mcp/adapter.js.map +1 -0
  654. package/dist/mcp/auto-discovery.d.ts +303 -0
  655. package/dist/mcp/auto-discovery.d.ts.map +1 -0
  656. package/dist/mcp/auto-discovery.js +1009 -0
  657. package/dist/mcp/auto-discovery.js.map +1 -0
  658. package/dist/mcp/cancellation.d.ts +258 -0
  659. package/dist/mcp/cancellation.d.ts.map +1 -0
  660. package/dist/mcp/cancellation.js +478 -0
  661. package/dist/mcp/cancellation.js.map +1 -0
  662. package/dist/mcp/config.d.ts +521 -0
  663. package/dist/mcp/config.d.ts.map +1 -0
  664. package/dist/mcp/config.js +694 -0
  665. package/dist/mcp/config.js.map +1 -0
  666. package/dist/mcp/connection.d.ts +228 -0
  667. package/dist/mcp/connection.d.ts.map +1 -0
  668. package/dist/mcp/connection.js +707 -0
  669. package/dist/mcp/connection.js.map +1 -0
  670. package/dist/mcp/discovery.d.ts +128 -0
  671. package/dist/mcp/discovery.d.ts.map +1 -0
  672. package/dist/mcp/discovery.js +577 -0
  673. package/dist/mcp/discovery.js.map +1 -0
  674. package/dist/mcp/errors.d.ts +273 -0
  675. package/dist/mcp/errors.d.ts.map +1 -0
  676. package/dist/mcp/errors.js +566 -0
  677. package/dist/mcp/errors.js.map +1 -0
  678. package/dist/mcp/index.d.ts +10 -0
  679. package/dist/mcp/index.d.ts.map +1 -0
  680. package/dist/mcp/index.js +29 -0
  681. package/dist/mcp/index.js.map +1 -0
  682. package/dist/mcp/integration.d.ts +71 -0
  683. package/dist/mcp/integration.d.ts.map +1 -0
  684. package/dist/mcp/integration.js +198 -0
  685. package/dist/mcp/integration.js.map +1 -0
  686. package/dist/mcp/lifecycle.d.ts +261 -0
  687. package/dist/mcp/lifecycle.d.ts.map +1 -0
  688. package/dist/mcp/lifecycle.js +714 -0
  689. package/dist/mcp/lifecycle.js.map +1 -0
  690. package/dist/mcp/logging.d.ts +166 -0
  691. package/dist/mcp/logging.d.ts.map +1 -0
  692. package/dist/mcp/logging.js +346 -0
  693. package/dist/mcp/logging.js.map +1 -0
  694. package/dist/mcp/notifications.d.ts +221 -0
  695. package/dist/mcp/notifications.d.ts.map +1 -0
  696. package/dist/mcp/notifications.js +356 -0
  697. package/dist/mcp/notifications.js.map +1 -0
  698. package/dist/mcp/protocol.d.ts +516 -0
  699. package/dist/mcp/protocol.d.ts.map +1 -0
  700. package/dist/mcp/protocol.js +490 -0
  701. package/dist/mcp/protocol.js.map +1 -0
  702. package/dist/mcp/resources.d.ts +197 -0
  703. package/dist/mcp/resources.d.ts.map +1 -0
  704. package/dist/mcp/resources.js +432 -0
  705. package/dist/mcp/resources.js.map +1 -0
  706. package/dist/mcp/roots.d.ts +149 -0
  707. package/dist/mcp/roots.d.ts.map +1 -0
  708. package/dist/mcp/roots.js +368 -0
  709. package/dist/mcp/roots.js.map +1 -0
  710. package/dist/mcp/sampling.d.ts +170 -0
  711. package/dist/mcp/sampling.d.ts.map +1 -0
  712. package/dist/mcp/sampling.js +373 -0
  713. package/dist/mcp/sampling.js.map +1 -0
  714. package/dist/mcp/tools.d.ts +347 -0
  715. package/dist/mcp/tools.d.ts.map +1 -0
  716. package/dist/mcp/tools.js +773 -0
  717. package/dist/mcp/tools.js.map +1 -0
  718. package/dist/mcp/websocket-connection.d.ts +164 -0
  719. package/dist/mcp/websocket-connection.d.ts.map +1 -0
  720. package/dist/mcp/websocket-connection.js +503 -0
  721. package/dist/mcp/websocket-connection.js.map +1 -0
  722. package/dist/mcp-cli.d.ts +26 -0
  723. package/dist/mcp-cli.d.ts.map +1 -0
  724. package/dist/mcp-cli.js +366 -0
  725. package/dist/mcp-cli.js.map +1 -0
  726. package/dist/media/image.d.ts +91 -0
  727. package/dist/media/image.d.ts.map +1 -0
  728. package/dist/media/image.js +400 -0
  729. package/dist/media/image.js.map +1 -0
  730. package/dist/media/index.d.ts +66 -0
  731. package/dist/media/index.d.ts.map +1 -0
  732. package/dist/media/index.js +122 -0
  733. package/dist/media/index.js.map +1 -0
  734. package/dist/media/mime.d.ts +23 -0
  735. package/dist/media/mime.d.ts.map +1 -0
  736. package/dist/media/mime.js +110 -0
  737. package/dist/media/mime.js.map +1 -0
  738. package/dist/media/office.d.ts +93 -0
  739. package/dist/media/office.d.ts.map +1 -0
  740. package/dist/media/office.js +735 -0
  741. package/dist/media/office.js.map +1 -0
  742. package/dist/media/pdf.d.ts +132 -0
  743. package/dist/media/pdf.d.ts.map +1 -0
  744. package/dist/media/pdf.js +281 -0
  745. package/dist/media/pdf.js.map +1 -0
  746. package/dist/media/svg.d.ts +55 -0
  747. package/dist/media/svg.d.ts.map +1 -0
  748. package/dist/media/svg.js +217 -0
  749. package/dist/media/svg.js.map +1 -0
  750. package/dist/memory/embedding-cache.d.ts +40 -0
  751. package/dist/memory/embedding-cache.d.ts.map +1 -0
  752. package/dist/memory/embedding-cache.js +105 -0
  753. package/dist/memory/embedding-cache.js.map +1 -0
  754. package/dist/memory/embedding-provider.d.ts +36 -0
  755. package/dist/memory/embedding-provider.d.ts.map +1 -0
  756. package/dist/memory/embedding-provider.js +105 -0
  757. package/dist/memory/embedding-provider.js.map +1 -0
  758. package/dist/memory/hybrid-search.d.ts +58 -0
  759. package/dist/memory/hybrid-search.d.ts.map +1 -0
  760. package/dist/memory/hybrid-search.js +68 -0
  761. package/dist/memory/hybrid-search.js.map +1 -0
  762. package/dist/memory/index.d.ts +15 -0
  763. package/dist/memory/index.d.ts.map +1 -0
  764. package/dist/memory/index.js +12 -0
  765. package/dist/memory/index.js.map +1 -0
  766. package/dist/memory/long-term-store.d.ts +131 -0
  767. package/dist/memory/long-term-store.d.ts.map +1 -0
  768. package/dist/memory/long-term-store.js +701 -0
  769. package/dist/memory/long-term-store.js.map +1 -0
  770. package/dist/memory/memory-search.d.ts +134 -0
  771. package/dist/memory/memory-search.d.ts.map +1 -0
  772. package/dist/memory/memory-search.js +338 -0
  773. package/dist/memory/memory-search.js.map +1 -0
  774. package/dist/memory/memory-sync.d.ts +66 -0
  775. package/dist/memory/memory-sync.d.ts.map +1 -0
  776. package/dist/memory/memory-sync.js +429 -0
  777. package/dist/memory/memory-sync.js.map +1 -0
  778. package/dist/memory/mmr.d.ts +34 -0
  779. package/dist/memory/mmr.d.ts.map +1 -0
  780. package/dist/memory/mmr.js +101 -0
  781. package/dist/memory/mmr.js.map +1 -0
  782. package/dist/memory/notebook.d.ts +80 -0
  783. package/dist/memory/notebook.d.ts.map +1 -0
  784. package/dist/memory/notebook.js +320 -0
  785. package/dist/memory/notebook.js.map +1 -0
  786. package/dist/memory/query-expansion.d.ts +22 -0
  787. package/dist/memory/query-expansion.d.ts.map +1 -0
  788. package/dist/memory/query-expansion.js +60 -0
  789. package/dist/memory/query-expansion.js.map +1 -0
  790. package/dist/memory/types.d.ts +16 -0
  791. package/dist/memory/types.d.ts.map +1 -0
  792. package/dist/memory/types.js +5 -0
  793. package/dist/memory/types.js.map +1 -0
  794. package/dist/models/config.d.ts +85 -0
  795. package/dist/models/config.d.ts.map +1 -0
  796. package/dist/models/config.js +427 -0
  797. package/dist/models/config.js.map +1 -0
  798. package/dist/models/fallback.d.ts +80 -0
  799. package/dist/models/fallback.d.ts.map +1 -0
  800. package/dist/models/fallback.js +215 -0
  801. package/dist/models/fallback.js.map +1 -0
  802. package/dist/models/index.d.ts +12 -0
  803. package/dist/models/index.d.ts.map +1 -0
  804. package/dist/models/index.js +11 -0
  805. package/dist/models/index.js.map +1 -0
  806. package/dist/models/quota.d.ts +121 -0
  807. package/dist/models/quota.d.ts.map +1 -0
  808. package/dist/models/quota.js +397 -0
  809. package/dist/models/quota.js.map +1 -0
  810. package/dist/models/stats.d.ts +96 -0
  811. package/dist/models/stats.d.ts.map +1 -0
  812. package/dist/models/stats.js +224 -0
  813. package/dist/models/stats.js.map +1 -0
  814. package/dist/models/subagent-config.d.ts +119 -0
  815. package/dist/models/subagent-config.d.ts.map +1 -0
  816. package/dist/models/subagent-config.js +267 -0
  817. package/dist/models/subagent-config.js.map +1 -0
  818. package/dist/models/thinking.d.ts +102 -0
  819. package/dist/models/thinking.d.ts.map +1 -0
  820. package/dist/models/thinking.js +213 -0
  821. package/dist/models/thinking.js.map +1 -0
  822. package/dist/models/types.d.ts +250 -0
  823. package/dist/models/types.d.ts.map +1 -0
  824. package/dist/models/types.js +33 -0
  825. package/dist/models/types.js.map +1 -0
  826. package/dist/network/audit-log.d.ts +93 -0
  827. package/dist/network/audit-log.d.ts.map +1 -0
  828. package/dist/network/audit-log.js +319 -0
  829. package/dist/network/audit-log.js.map +1 -0
  830. package/dist/network/discovery.d.ts +91 -0
  831. package/dist/network/discovery.d.ts.map +1 -0
  832. package/dist/network/discovery.js +398 -0
  833. package/dist/network/discovery.js.map +1 -0
  834. package/dist/network/global-proxy.d.ts +19 -0
  835. package/dist/network/global-proxy.d.ts.map +1 -0
  836. package/dist/network/global-proxy.js +81 -0
  837. package/dist/network/global-proxy.js.map +1 -0
  838. package/dist/network/identity.d.ts +58 -0
  839. package/dist/network/identity.d.ts.map +1 -0
  840. package/dist/network/identity.js +267 -0
  841. package/dist/network/identity.js.map +1 -0
  842. package/dist/network/index.d.ts +153 -0
  843. package/dist/network/index.d.ts.map +1 -0
  844. package/dist/network/index.js +916 -0
  845. package/dist/network/index.js.map +1 -0
  846. package/dist/network/permission.d.ts +60 -0
  847. package/dist/network/permission.d.ts.map +1 -0
  848. package/dist/network/permission.js +124 -0
  849. package/dist/network/permission.js.map +1 -0
  850. package/dist/network/project-probe.d.ts +12 -0
  851. package/dist/network/project-probe.d.ts.map +1 -0
  852. package/dist/network/project-probe.js +74 -0
  853. package/dist/network/project-probe.js.map +1 -0
  854. package/dist/network/protocol.d.ts +59 -0
  855. package/dist/network/protocol.d.ts.map +1 -0
  856. package/dist/network/protocol.js +158 -0
  857. package/dist/network/protocol.js.map +1 -0
  858. package/dist/network/proxy.d.ts +93 -0
  859. package/dist/network/proxy.d.ts.map +1 -0
  860. package/dist/network/proxy.js +228 -0
  861. package/dist/network/proxy.js.map +1 -0
  862. package/dist/network/retry.d.ts +44 -0
  863. package/dist/network/retry.d.ts.map +1 -0
  864. package/dist/network/retry.js +110 -0
  865. package/dist/network/retry.js.map +1 -0
  866. package/dist/network/router.d.ts +36 -0
  867. package/dist/network/router.d.ts.map +1 -0
  868. package/dist/network/router.js +73 -0
  869. package/dist/network/router.js.map +1 -0
  870. package/dist/network/timeout.d.ts +59 -0
  871. package/dist/network/timeout.d.ts.map +1 -0
  872. package/dist/network/timeout.js +120 -0
  873. package/dist/network/timeout.js.map +1 -0
  874. package/dist/network/transport.d.ts +97 -0
  875. package/dist/network/transport.d.ts.map +1 -0
  876. package/dist/network/transport.js +397 -0
  877. package/dist/network/transport.js.map +1 -0
  878. package/dist/network/types.d.ts +282 -0
  879. package/dist/network/types.d.ts.map +1 -0
  880. package/dist/network/types.js +31 -0
  881. package/dist/network/types.js.map +1 -0
  882. package/dist/notifications/index.d.ts +161 -0
  883. package/dist/notifications/index.d.ts.map +1 -0
  884. package/dist/notifications/index.js +341 -0
  885. package/dist/notifications/index.js.map +1 -0
  886. package/dist/organization/index.d.ts +125 -0
  887. package/dist/organization/index.d.ts.map +1 -0
  888. package/dist/organization/index.js +237 -0
  889. package/dist/organization/index.js.map +1 -0
  890. package/dist/permissions/elevated-commands.d.ts +38 -0
  891. package/dist/permissions/elevated-commands.d.ts.map +1 -0
  892. package/dist/permissions/elevated-commands.js +256 -0
  893. package/dist/permissions/elevated-commands.js.map +1 -0
  894. package/dist/permissions/index.d.ts +120 -0
  895. package/dist/permissions/index.d.ts.map +1 -0
  896. package/dist/permissions/index.js +689 -0
  897. package/dist/permissions/index.js.map +1 -0
  898. package/dist/permissions/rule-parser.d.ts +396 -0
  899. package/dist/permissions/rule-parser.d.ts.map +1 -0
  900. package/dist/permissions/rule-parser.js +990 -0
  901. package/dist/permissions/rule-parser.js.map +1 -0
  902. package/dist/permissions/rule-parser.test.d.ts +15 -0
  903. package/dist/permissions/rule-parser.test.d.ts.map +1 -0
  904. package/dist/permissions/rule-parser.test.js +489 -0
  905. package/dist/permissions/rule-parser.test.js.map +1 -0
  906. package/dist/permissions/shell-security.d.ts +128 -0
  907. package/dist/permissions/shell-security.d.ts.map +1 -0
  908. package/dist/permissions/shell-security.js +669 -0
  909. package/dist/permissions/shell-security.js.map +1 -0
  910. package/dist/permissions/shell-security.test.d.ts +7 -0
  911. package/dist/permissions/shell-security.test.d.ts.map +1 -0
  912. package/dist/permissions/shell-security.test.js +286 -0
  913. package/dist/permissions/shell-security.test.js.map +1 -0
  914. package/dist/permissions/tools.d.ts +255 -0
  915. package/dist/permissions/tools.d.ts.map +1 -0
  916. package/dist/permissions/tools.js +733 -0
  917. package/dist/permissions/tools.js.map +1 -0
  918. package/dist/permissions/tools.test.d.ts +11 -0
  919. package/dist/permissions/tools.test.d.ts.map +1 -0
  920. package/dist/permissions/tools.test.js +530 -0
  921. package/dist/permissions/tools.test.js.map +1 -0
  922. package/dist/permissions/ui-integration.d.ts +69 -0
  923. package/dist/permissions/ui-integration.d.ts.map +1 -0
  924. package/dist/permissions/ui-integration.js +129 -0
  925. package/dist/permissions/ui-integration.js.map +1 -0
  926. package/dist/permissions/ui.d.ts +188 -0
  927. package/dist/permissions/ui.d.ts.map +1 -0
  928. package/dist/permissions/ui.js +590 -0
  929. package/dist/permissions/ui.js.map +1 -0
  930. package/dist/plan/comparison.d.ts +67 -0
  931. package/dist/plan/comparison.d.ts.map +1 -0
  932. package/dist/plan/comparison.js +451 -0
  933. package/dist/plan/comparison.js.map +1 -0
  934. package/dist/plan/index.d.ts +91 -0
  935. package/dist/plan/index.d.ts.map +1 -0
  936. package/dist/plan/index.js +151 -0
  937. package/dist/plan/index.js.map +1 -0
  938. package/dist/plan/persistence.d.ts +131 -0
  939. package/dist/plan/persistence.d.ts.map +1 -0
  940. package/dist/plan/persistence.js +781 -0
  941. package/dist/plan/persistence.js.map +1 -0
  942. package/dist/plan/types.d.ts +353 -0
  943. package/dist/plan/types.d.ts.map +1 -0
  944. package/dist/plan/types.js +6 -0
  945. package/dist/plan/types.js.map +1 -0
  946. package/dist/plugins/cli.d.ts +14 -0
  947. package/dist/plugins/cli.d.ts.map +1 -0
  948. package/dist/plugins/cli.js +1050 -0
  949. package/dist/plugins/cli.js.map +1 -0
  950. package/dist/plugins/index.d.ts +621 -0
  951. package/dist/plugins/index.d.ts.map +1 -0
  952. package/dist/plugins/index.js +1978 -0
  953. package/dist/plugins/index.js.map +1 -0
  954. package/dist/plugins/marketplace.d.ts +120 -0
  955. package/dist/plugins/marketplace.d.ts.map +1 -0
  956. package/dist/plugins/marketplace.js +630 -0
  957. package/dist/plugins/marketplace.js.map +1 -0
  958. package/dist/prompt/attachments.d.ts +94 -0
  959. package/dist/prompt/attachments.d.ts.map +1 -0
  960. package/dist/prompt/attachments.js +486 -0
  961. package/dist/prompt/attachments.js.map +1 -0
  962. package/dist/prompt/builder.d.ts +45 -0
  963. package/dist/prompt/builder.d.ts.map +1 -0
  964. package/dist/prompt/builder.js +298 -0
  965. package/dist/prompt/builder.js.map +1 -0
  966. package/dist/prompt/cache.d.ts +71 -0
  967. package/dist/prompt/cache.d.ts.map +1 -0
  968. package/dist/prompt/cache.js +150 -0
  969. package/dist/prompt/cache.js.map +1 -0
  970. package/dist/prompt/index.d.ts +10 -0
  971. package/dist/prompt/index.d.ts.map +1 -0
  972. package/dist/prompt/index.js +9 -0
  973. package/dist/prompt/index.js.map +1 -0
  974. package/dist/prompt/templates.d.ts +216 -0
  975. package/dist/prompt/templates.d.ts.map +1 -0
  976. package/dist/prompt/templates.js +670 -0
  977. package/dist/prompt/templates.js.map +1 -0
  978. package/dist/prompt/types.d.ts +234 -0
  979. package/dist/prompt/types.d.ts.map +1 -0
  980. package/dist/prompt/types.js +19 -0
  981. package/dist/prompt/types.js.map +1 -0
  982. package/dist/providers/cli.d.ts +14 -0
  983. package/dist/providers/cli.d.ts.map +1 -0
  984. package/dist/providers/cli.js +466 -0
  985. package/dist/providers/cli.js.map +1 -0
  986. package/dist/providers/index.d.ts +128 -0
  987. package/dist/providers/index.d.ts.map +1 -0
  988. package/dist/providers/index.js +662 -0
  989. package/dist/providers/index.js.map +1 -0
  990. package/dist/providers/vertex.d.ts +174 -0
  991. package/dist/providers/vertex.d.ts.map +1 -0
  992. package/dist/providers/vertex.js +499 -0
  993. package/dist/providers/vertex.js.map +1 -0
  994. package/dist/proxy/ollama-adapter.d.ts +41 -0
  995. package/dist/proxy/ollama-adapter.d.ts.map +1 -0
  996. package/dist/proxy/ollama-adapter.js +669 -0
  997. package/dist/proxy/ollama-adapter.js.map +1 -0
  998. package/dist/proxy/server.d.ts +63 -0
  999. package/dist/proxy/server.d.ts.map +1 -0
  1000. package/dist/proxy/server.js +1160 -0
  1001. package/dist/proxy/server.js.map +1 -0
  1002. package/dist/proxy-cli.d.ts +19 -0
  1003. package/dist/proxy-cli.d.ts.map +1 -0
  1004. package/dist/proxy-cli.js +308 -0
  1005. package/dist/proxy-cli.js.map +1 -0
  1006. package/dist/ratelimit/index.d.ts +252 -0
  1007. package/dist/ratelimit/index.d.ts.map +1 -0
  1008. package/dist/ratelimit/index.js +580 -0
  1009. package/dist/ratelimit/index.js.map +1 -0
  1010. package/dist/renderer/index.d.ts +75 -0
  1011. package/dist/renderer/index.d.ts.map +1 -0
  1012. package/dist/renderer/index.js +383 -0
  1013. package/dist/renderer/index.js.map +1 -0
  1014. package/dist/renderer/tree-render.d.ts +172 -0
  1015. package/dist/renderer/tree-render.d.ts.map +1 -0
  1016. package/dist/renderer/tree-render.js +397 -0
  1017. package/dist/renderer/tree-render.js.map +1 -0
  1018. package/dist/rewind/fileHistory.d.ts +140 -0
  1019. package/dist/rewind/fileHistory.d.ts.map +1 -0
  1020. package/dist/rewind/fileHistory.js +326 -0
  1021. package/dist/rewind/fileHistory.js.map +1 -0
  1022. package/dist/rewind/index.d.ts +8 -0
  1023. package/dist/rewind/index.d.ts.map +1 -0
  1024. package/dist/rewind/index.js +8 -0
  1025. package/dist/rewind/index.js.map +1 -0
  1026. package/dist/rewind/rewindManager.d.ts +98 -0
  1027. package/dist/rewind/rewindManager.d.ts.map +1 -0
  1028. package/dist/rewind/rewindManager.js +199 -0
  1029. package/dist/rewind/rewindManager.js.map +1 -0
  1030. package/dist/rules/index.d.ts +69 -0
  1031. package/dist/rules/index.d.ts.map +1 -0
  1032. package/dist/rules/index.js +410 -0
  1033. package/dist/rules/index.js.map +1 -0
  1034. package/dist/sandbox/bubblewrap.d.ts +157 -0
  1035. package/dist/sandbox/bubblewrap.d.ts.map +1 -0
  1036. package/dist/sandbox/bubblewrap.js +637 -0
  1037. package/dist/sandbox/bubblewrap.js.map +1 -0
  1038. package/dist/sandbox/config.d.ts +497 -0
  1039. package/dist/sandbox/config.d.ts.map +1 -0
  1040. package/dist/sandbox/config.js +696 -0
  1041. package/dist/sandbox/config.js.map +1 -0
  1042. package/dist/sandbox/docker.d.ts +104 -0
  1043. package/dist/sandbox/docker.d.ts.map +1 -0
  1044. package/dist/sandbox/docker.js +347 -0
  1045. package/dist/sandbox/docker.js.map +1 -0
  1046. package/dist/sandbox/executor.d.ts +68 -0
  1047. package/dist/sandbox/executor.d.ts.map +1 -0
  1048. package/dist/sandbox/executor.js +341 -0
  1049. package/dist/sandbox/executor.js.map +1 -0
  1050. package/dist/sandbox/filesystem.d.ts +146 -0
  1051. package/dist/sandbox/filesystem.d.ts.map +1 -0
  1052. package/dist/sandbox/filesystem.js +501 -0
  1053. package/dist/sandbox/filesystem.js.map +1 -0
  1054. package/dist/sandbox/index.d.ts +21 -0
  1055. package/dist/sandbox/index.d.ts.map +1 -0
  1056. package/dist/sandbox/index.js +21 -0
  1057. package/dist/sandbox/index.js.map +1 -0
  1058. package/dist/sandbox/network.d.ts +174 -0
  1059. package/dist/sandbox/network.d.ts.map +1 -0
  1060. package/dist/sandbox/network.js +487 -0
  1061. package/dist/sandbox/network.js.map +1 -0
  1062. package/dist/sandbox/resource-limits.d.ts +83 -0
  1063. package/dist/sandbox/resource-limits.d.ts.map +1 -0
  1064. package/dist/sandbox/resource-limits.js +305 -0
  1065. package/dist/sandbox/resource-limits.js.map +1 -0
  1066. package/dist/sandbox/seatbelt.d.ts +70 -0
  1067. package/dist/sandbox/seatbelt.d.ts.map +1 -0
  1068. package/dist/sandbox/seatbelt.js +256 -0
  1069. package/dist/sandbox/seatbelt.js.map +1 -0
  1070. package/dist/search/ripgrep.d.ts +82 -0
  1071. package/dist/search/ripgrep.d.ts.map +1 -0
  1072. package/dist/search/ripgrep.js +399 -0
  1073. package/dist/search/ripgrep.js.map +1 -0
  1074. package/dist/security/skill-scanner.d.ts +18 -0
  1075. package/dist/security/skill-scanner.d.ts.map +1 -0
  1076. package/dist/security/skill-scanner.js +115 -0
  1077. package/dist/security/skill-scanner.js.map +1 -0
  1078. package/dist/session/cleanup.d.ts +62 -0
  1079. package/dist/session/cleanup.d.ts.map +1 -0
  1080. package/dist/session/cleanup.js +218 -0
  1081. package/dist/session/cleanup.js.map +1 -0
  1082. package/dist/session/index.d.ts +584 -0
  1083. package/dist/session/index.d.ts.map +1 -0
  1084. package/dist/session/index.js +1910 -0
  1085. package/dist/session/index.js.map +1 -0
  1086. package/dist/session/list.d.ts +150 -0
  1087. package/dist/session/list.d.ts.map +1 -0
  1088. package/dist/session/list.js +807 -0
  1089. package/dist/session/list.js.map +1 -0
  1090. package/dist/session/resume.d.ts +103 -0
  1091. package/dist/session/resume.d.ts.map +1 -0
  1092. package/dist/session/resume.js +173 -0
  1093. package/dist/session/resume.js.map +1 -0
  1094. package/dist/skills/builtin/skill-hub/SKILL.md +51 -0
  1095. package/dist/skills/builtin/tool-discovery/SKILL.md +194 -0
  1096. package/dist/skills/hub.d.ts +54 -0
  1097. package/dist/skills/hub.d.ts.map +1 -0
  1098. package/dist/skills/hub.js +251 -0
  1099. package/dist/skills/hub.js.map +1 -0
  1100. package/dist/streaming/index.d.ts +115 -0
  1101. package/dist/streaming/index.d.ts.map +1 -0
  1102. package/dist/streaming/index.js +249 -0
  1103. package/dist/streaming/index.js.map +1 -0
  1104. package/dist/streaming/message-stream.d.ts +237 -0
  1105. package/dist/streaming/message-stream.d.ts.map +1 -0
  1106. package/dist/streaming/message-stream.js +480 -0
  1107. package/dist/streaming/message-stream.js.map +1 -0
  1108. package/dist/streaming/sse.d.ts +94 -0
  1109. package/dist/streaming/sse.d.ts.map +1 -0
  1110. package/dist/streaming/sse.js +314 -0
  1111. package/dist/streaming/sse.js.map +1 -0
  1112. package/dist/teams/index.d.ts +7 -0
  1113. package/dist/teams/index.d.ts.map +1 -0
  1114. package/dist/teams/index.js +7 -0
  1115. package/dist/teams/index.js.map +1 -0
  1116. package/dist/teams/storage.d.ts +94 -0
  1117. package/dist/teams/storage.d.ts.map +1 -0
  1118. package/dist/teams/storage.js +350 -0
  1119. package/dist/teams/storage.js.map +1 -0
  1120. package/dist/teams/tmux.d.ts +122 -0
  1121. package/dist/teams/tmux.d.ts.map +1 -0
  1122. package/dist/teams/tmux.js +419 -0
  1123. package/dist/teams/tmux.js.map +1 -0
  1124. package/dist/teams/types.d.ts +139 -0
  1125. package/dist/teams/types.d.ts.map +1 -0
  1126. package/dist/teams/types.js +8 -0
  1127. package/dist/teams/types.js.map +1 -0
  1128. package/dist/telemetry/index.d.ts +215 -0
  1129. package/dist/telemetry/index.d.ts.map +1 -0
  1130. package/dist/telemetry/index.js +776 -0
  1131. package/dist/telemetry/index.js.map +1 -0
  1132. package/dist/teleport/index.d.ts +43 -0
  1133. package/dist/teleport/index.d.ts.map +1 -0
  1134. package/dist/teleport/index.js +71 -0
  1135. package/dist/teleport/index.js.map +1 -0
  1136. package/dist/teleport/session.d.ts +78 -0
  1137. package/dist/teleport/session.d.ts.map +1 -0
  1138. package/dist/teleport/session.js +273 -0
  1139. package/dist/teleport/session.js.map +1 -0
  1140. package/dist/teleport/types.d.ts +93 -0
  1141. package/dist/teleport/types.d.ts.map +1 -0
  1142. package/dist/teleport/types.js +6 -0
  1143. package/dist/teleport/types.js.map +1 -0
  1144. package/dist/teleport/validation.d.ts +30 -0
  1145. package/dist/teleport/validation.d.ts.map +1 -0
  1146. package/dist/teleport/validation.js +124 -0
  1147. package/dist/teleport/validation.js.map +1 -0
  1148. package/dist/tools/agent-teams.d.ts +26 -0
  1149. package/dist/tools/agent-teams.d.ts.map +1 -0
  1150. package/dist/tools/agent-teams.js +171 -0
  1151. package/dist/tools/agent-teams.js.map +1 -0
  1152. package/dist/tools/agent.d.ts +223 -0
  1153. package/dist/tools/agent.d.ts.map +1 -0
  1154. package/dist/tools/agent.js +1540 -0
  1155. package/dist/tools/agent.js.map +1 -0
  1156. package/dist/tools/ask.d.ts +87 -0
  1157. package/dist/tools/ask.d.ts.map +1 -0
  1158. package/dist/tools/ask.js +572 -0
  1159. package/dist/tools/ask.js.map +1 -0
  1160. package/dist/tools/base.d.ts +89 -0
  1161. package/dist/tools/base.d.ts.map +1 -0
  1162. package/dist/tools/base.js +199 -0
  1163. package/dist/tools/base.js.map +1 -0
  1164. package/dist/tools/bash-history.d.ts +83 -0
  1165. package/dist/tools/bash-history.d.ts.map +1 -0
  1166. package/dist/tools/bash-history.js +245 -0
  1167. package/dist/tools/bash-history.js.map +1 -0
  1168. package/dist/tools/bash.d.ts +214 -0
  1169. package/dist/tools/bash.d.ts.map +1 -0
  1170. package/dist/tools/bash.js +1823 -0
  1171. package/dist/tools/bash.js.map +1 -0
  1172. package/dist/tools/blueprint.d.ts +91 -0
  1173. package/dist/tools/blueprint.d.ts.map +1 -0
  1174. package/dist/tools/blueprint.js +618 -0
  1175. package/dist/tools/blueprint.js.map +1 -0
  1176. package/dist/tools/browser.d.ts +28 -0
  1177. package/dist/tools/browser.d.ts.map +1 -0
  1178. package/dist/tools/browser.js +776 -0
  1179. package/dist/tools/browser.js.map +1 -0
  1180. package/dist/tools/create-tool.d.ts +63 -0
  1181. package/dist/tools/create-tool.d.ts.map +1 -0
  1182. package/dist/tools/create-tool.js +230 -0
  1183. package/dist/tools/create-tool.js.map +1 -0
  1184. package/dist/tools/database.d.ts +12 -0
  1185. package/dist/tools/database.d.ts.map +1 -0
  1186. package/dist/tools/database.js +223 -0
  1187. package/dist/tools/database.js.map +1 -0
  1188. package/dist/tools/dispatch-worker.d.ts +46 -0
  1189. package/dist/tools/dispatch-worker.d.ts.map +1 -0
  1190. package/dist/tools/dispatch-worker.js +276 -0
  1191. package/dist/tools/dispatch-worker.js.map +1 -0
  1192. package/dist/tools/ear.d.ts +25 -0
  1193. package/dist/tools/ear.d.ts.map +1 -0
  1194. package/dist/tools/ear.js +43 -0
  1195. package/dist/tools/ear.js.map +1 -0
  1196. package/dist/tools/eye.d.ts +29 -0
  1197. package/dist/tools/eye.d.ts.map +1 -0
  1198. package/dist/tools/eye.js +104 -0
  1199. package/dist/tools/eye.js.map +1 -0
  1200. package/dist/tools/file.d.ts +164 -0
  1201. package/dist/tools/file.d.ts.map +1 -0
  1202. package/dist/tools/file.js +1638 -0
  1203. package/dist/tools/file.js.map +1 -0
  1204. package/dist/tools/generate-blueprint.d.ts +62 -0
  1205. package/dist/tools/generate-blueprint.d.ts.map +1 -0
  1206. package/dist/tools/generate-blueprint.js +141 -0
  1207. package/dist/tools/generate-blueprint.js.map +1 -0
  1208. package/dist/tools/generate-design.d.ts +27 -0
  1209. package/dist/tools/generate-design.d.ts.map +1 -0
  1210. package/dist/tools/generate-design.js +66 -0
  1211. package/dist/tools/generate-design.js.map +1 -0
  1212. package/dist/tools/goal.d.ts +56 -0
  1213. package/dist/tools/goal.d.ts.map +1 -0
  1214. package/dist/tools/goal.js +298 -0
  1215. package/dist/tools/goal.js.map +1 -0
  1216. package/dist/tools/index.d.ts +53 -0
  1217. package/dist/tools/index.d.ts.map +1 -0
  1218. package/dist/tools/index.js +183 -0
  1219. package/dist/tools/index.js.map +1 -0
  1220. package/dist/tools/mcp-manage.d.ts +32 -0
  1221. package/dist/tools/mcp-manage.d.ts.map +1 -0
  1222. package/dist/tools/mcp-manage.js +61 -0
  1223. package/dist/tools/mcp-manage.js.map +1 -0
  1224. package/dist/tools/mcp.d.ts +311 -0
  1225. package/dist/tools/mcp.d.ts.map +1 -0
  1226. package/dist/tools/mcp.js +1696 -0
  1227. package/dist/tools/mcp.js.map +1 -0
  1228. package/dist/tools/memory-search.d.ts +26 -0
  1229. package/dist/tools/memory-search.d.ts.map +1 -0
  1230. package/dist/tools/memory-search.js +89 -0
  1231. package/dist/tools/memory-search.js.map +1 -0
  1232. package/dist/tools/network-agent.d.ts +55 -0
  1233. package/dist/tools/network-agent.d.ts.map +1 -0
  1234. package/dist/tools/network-agent.js +349 -0
  1235. package/dist/tools/network-agent.js.map +1 -0
  1236. package/dist/tools/notebook-write.d.ts +23 -0
  1237. package/dist/tools/notebook-write.d.ts.map +1 -0
  1238. package/dist/tools/notebook-write.js +86 -0
  1239. package/dist/tools/notebook-write.js.map +1 -0
  1240. package/dist/tools/notebook.d.ts +46 -0
  1241. package/dist/tools/notebook.d.ts.map +1 -0
  1242. package/dist/tools/notebook.js +335 -0
  1243. package/dist/tools/notebook.js.map +1 -0
  1244. package/dist/tools/output-persistence.d.ts +73 -0
  1245. package/dist/tools/output-persistence.d.ts.map +1 -0
  1246. package/dist/tools/output-persistence.js +258 -0
  1247. package/dist/tools/output-persistence.js.map +1 -0
  1248. package/dist/tools/planmode.d.ts +73 -0
  1249. package/dist/tools/planmode.d.ts.map +1 -0
  1250. package/dist/tools/planmode.js +464 -0
  1251. package/dist/tools/planmode.js.map +1 -0
  1252. package/dist/tools/sandbox.d.ts +192 -0
  1253. package/dist/tools/sandbox.d.ts.map +1 -0
  1254. package/dist/tools/sandbox.js +932 -0
  1255. package/dist/tools/sandbox.js.map +1 -0
  1256. package/dist/tools/schedule.d.ts +65 -0
  1257. package/dist/tools/schedule.d.ts.map +1 -0
  1258. package/dist/tools/schedule.js +537 -0
  1259. package/dist/tools/schedule.js.map +1 -0
  1260. package/dist/tools/search.d.ts +48 -0
  1261. package/dist/tools/search.d.ts.map +1 -0
  1262. package/dist/tools/search.js +568 -0
  1263. package/dist/tools/search.js.map +1 -0
  1264. package/dist/tools/self-evolve.d.ts +53 -0
  1265. package/dist/tools/self-evolve.d.ts.map +1 -0
  1266. package/dist/tools/self-evolve.js +241 -0
  1267. package/dist/tools/self-evolve.js.map +1 -0
  1268. package/dist/tools/skill.d.ts +182 -0
  1269. package/dist/tools/skill.d.ts.map +1 -0
  1270. package/dist/tools/skill.js +1274 -0
  1271. package/dist/tools/skill.js.map +1 -0
  1272. package/dist/tools/start-lead-agent.d.ts +103 -0
  1273. package/dist/tools/start-lead-agent.d.ts.map +1 -0
  1274. package/dist/tools/start-lead-agent.js +243 -0
  1275. package/dist/tools/start-lead-agent.js.map +1 -0
  1276. package/dist/tools/structured-output.d.ts +80 -0
  1277. package/dist/tools/structured-output.d.ts.map +1 -0
  1278. package/dist/tools/structured-output.js +113 -0
  1279. package/dist/tools/structured-output.js.map +1 -0
  1280. package/dist/tools/submit-e2e-result.d.ts +57 -0
  1281. package/dist/tools/submit-e2e-result.d.ts.map +1 -0
  1282. package/dist/tools/submit-e2e-result.js +161 -0
  1283. package/dist/tools/submit-e2e-result.js.map +1 -0
  1284. package/dist/tools/submit-review.d.ts +42 -0
  1285. package/dist/tools/submit-review.d.ts.map +1 -0
  1286. package/dist/tools/submit-review.js +122 -0
  1287. package/dist/tools/submit-review.js.map +1 -0
  1288. package/dist/tools/task-status.d.ts +33 -0
  1289. package/dist/tools/task-status.d.ts.map +1 -0
  1290. package/dist/tools/task-status.js +86 -0
  1291. package/dist/tools/task-status.js.map +1 -0
  1292. package/dist/tools/task-storage.d.ts +165 -0
  1293. package/dist/tools/task-storage.d.ts.map +1 -0
  1294. package/dist/tools/task-storage.js +354 -0
  1295. package/dist/tools/task-storage.js.map +1 -0
  1296. package/dist/tools/task-v2.d.ts +38 -0
  1297. package/dist/tools/task-v2.d.ts.map +1 -0
  1298. package/dist/tools/task-v2.js +472 -0
  1299. package/dist/tools/task-v2.js.map +1 -0
  1300. package/dist/tools/team.d.ts +51 -0
  1301. package/dist/tools/team.d.ts.map +1 -0
  1302. package/dist/tools/team.js +441 -0
  1303. package/dist/tools/team.js.map +1 -0
  1304. package/dist/tools/todo.d.ts +30 -0
  1305. package/dist/tools/todo.d.ts.map +1 -0
  1306. package/dist/tools/todo.js +204 -0
  1307. package/dist/tools/todo.js.map +1 -0
  1308. package/dist/tools/trigger-e2e-test.d.ts +62 -0
  1309. package/dist/tools/trigger-e2e-test.d.ts.map +1 -0
  1310. package/dist/tools/trigger-e2e-test.js +228 -0
  1311. package/dist/tools/trigger-e2e-test.js.map +1 -0
  1312. package/dist/tools/update-task-plan.d.ts +43 -0
  1313. package/dist/tools/update-task-plan.d.ts.map +1 -0
  1314. package/dist/tools/update-task-plan.js +214 -0
  1315. package/dist/tools/update-task-plan.js.map +1 -0
  1316. package/dist/tools/web.d.ts +78 -0
  1317. package/dist/tools/web.d.ts.map +1 -0
  1318. package/dist/tools/web.js +535 -0
  1319. package/dist/tools/web.js.map +1 -0
  1320. package/dist/trust/index.d.ts +165 -0
  1321. package/dist/trust/index.d.ts.map +1 -0
  1322. package/dist/trust/index.js +408 -0
  1323. package/dist/trust/index.js.map +1 -0
  1324. package/dist/types/config.d.ts +1259 -0
  1325. package/dist/types/config.d.ts.map +1 -0
  1326. package/dist/types/config.js +245 -0
  1327. package/dist/types/config.js.map +1 -0
  1328. package/dist/types/errors.d.ts +389 -0
  1329. package/dist/types/errors.d.ts.map +1 -0
  1330. package/dist/types/errors.js +670 -0
  1331. package/dist/types/errors.js.map +1 -0
  1332. package/dist/types/index.d.ts +30 -0
  1333. package/dist/types/index.d.ts.map +1 -0
  1334. package/dist/types/index.js +26 -0
  1335. package/dist/types/index.js.map +1 -0
  1336. package/dist/types/messages.d.ts +761 -0
  1337. package/dist/types/messages.d.ts.map +1 -0
  1338. package/dist/types/messages.js +10 -0
  1339. package/dist/types/messages.js.map +1 -0
  1340. package/dist/types/results.d.ts +583 -0
  1341. package/dist/types/results.d.ts.map +1 -0
  1342. package/dist/types/results.js +111 -0
  1343. package/dist/types/results.js.map +1 -0
  1344. package/dist/types/tools.d.ts +734 -0
  1345. package/dist/types/tools.d.ts.map +1 -0
  1346. package/dist/types/tools.js +9 -0
  1347. package/dist/types/tools.js.map +1 -0
  1348. package/dist/ui/App.d.ts +17 -0
  1349. package/dist/ui/App.d.ts.map +1 -0
  1350. package/dist/ui/App.js +977 -0
  1351. package/dist/ui/App.js.map +1 -0
  1352. package/dist/ui/ChromeSettings.d.ts +18 -0
  1353. package/dist/ui/ChromeSettings.d.ts.map +1 -0
  1354. package/dist/ui/ChromeSettings.js +224 -0
  1355. package/dist/ui/ChromeSettings.js.map +1 -0
  1356. package/dist/ui/LoginSelector.d.ts +29 -0
  1357. package/dist/ui/LoginSelector.d.ts.map +1 -0
  1358. package/dist/ui/LoginSelector.js +168 -0
  1359. package/dist/ui/LoginSelector.js.map +1 -0
  1360. package/dist/ui/McpSettings.d.ts +29 -0
  1361. package/dist/ui/McpSettings.d.ts.map +1 -0
  1362. package/dist/ui/McpSettings.js +689 -0
  1363. package/dist/ui/McpSettings.js.map +1 -0
  1364. package/dist/ui/PluginsDialog.d.ts +21 -0
  1365. package/dist/ui/PluginsDialog.d.ts.map +1 -0
  1366. package/dist/ui/PluginsDialog.js +923 -0
  1367. package/dist/ui/PluginsDialog.js.map +1 -0
  1368. package/dist/ui/autocomplete/bash-history.d.ts +58 -0
  1369. package/dist/ui/autocomplete/bash-history.d.ts.map +1 -0
  1370. package/dist/ui/autocomplete/bash-history.js +196 -0
  1371. package/dist/ui/autocomplete/bash-history.js.map +1 -0
  1372. package/dist/ui/autocomplete/commands.d.ts +25 -0
  1373. package/dist/ui/autocomplete/commands.d.ts.map +1 -0
  1374. package/dist/ui/autocomplete/commands.js +535 -0
  1375. package/dist/ui/autocomplete/commands.js.map +1 -0
  1376. package/dist/ui/autocomplete/example.d.ts +10 -0
  1377. package/dist/ui/autocomplete/example.d.ts.map +1 -0
  1378. package/dist/ui/autocomplete/example.js +118 -0
  1379. package/dist/ui/autocomplete/example.js.map +1 -0
  1380. package/dist/ui/autocomplete/files.d.ts +27 -0
  1381. package/dist/ui/autocomplete/files.d.ts.map +1 -0
  1382. package/dist/ui/autocomplete/files.js +127 -0
  1383. package/dist/ui/autocomplete/files.js.map +1 -0
  1384. package/dist/ui/autocomplete/index.d.ts +25 -0
  1385. package/dist/ui/autocomplete/index.d.ts.map +1 -0
  1386. package/dist/ui/autocomplete/index.js +85 -0
  1387. package/dist/ui/autocomplete/index.js.map +1 -0
  1388. package/dist/ui/autocomplete/mentions.d.ts +29 -0
  1389. package/dist/ui/autocomplete/mentions.d.ts.map +1 -0
  1390. package/dist/ui/autocomplete/mentions.js +170 -0
  1391. package/dist/ui/autocomplete/mentions.js.map +1 -0
  1392. package/dist/ui/autocomplete/types.d.ts +58 -0
  1393. package/dist/ui/autocomplete/types.d.ts.map +1 -0
  1394. package/dist/ui/autocomplete/types.js +110 -0
  1395. package/dist/ui/autocomplete/types.js.map +1 -0
  1396. package/dist/ui/components/AxonMdImportDialog.d.ts +79 -0
  1397. package/dist/ui/components/AxonMdImportDialog.d.ts.map +1 -0
  1398. package/dist/ui/components/AxonMdImportDialog.js +420 -0
  1399. package/dist/ui/components/AxonMdImportDialog.js.map +1 -0
  1400. package/dist/ui/components/BackgroundTasksPanel.d.ts +16 -0
  1401. package/dist/ui/components/BackgroundTasksPanel.d.ts.map +1 -0
  1402. package/dist/ui/components/BackgroundTasksPanel.js +90 -0
  1403. package/dist/ui/components/BackgroundTasksPanel.js.map +1 -0
  1404. package/dist/ui/components/BreathingLight.d.ts +68 -0
  1405. package/dist/ui/components/BreathingLight.d.ts.map +1 -0
  1406. package/dist/ui/components/BreathingLight.js +110 -0
  1407. package/dist/ui/components/BreathingLight.js.map +1 -0
  1408. package/dist/ui/components/DiffView.d.ts +21 -0
  1409. package/dist/ui/components/DiffView.d.ts.map +1 -0
  1410. package/dist/ui/components/DiffView.js +387 -0
  1411. package/dist/ui/components/DiffView.js.map +1 -0
  1412. package/dist/ui/components/Header.d.ts +38 -0
  1413. package/dist/ui/components/Header.d.ts.map +1 -0
  1414. package/dist/ui/components/Header.js +163 -0
  1415. package/dist/ui/components/Header.js.map +1 -0
  1416. package/dist/ui/components/HistorySearch.d.ts +18 -0
  1417. package/dist/ui/components/HistorySearch.d.ts.map +1 -0
  1418. package/dist/ui/components/HistorySearch.js +59 -0
  1419. package/dist/ui/components/HistorySearch.js.map +1 -0
  1420. package/dist/ui/components/HiveConsole.d.ts +45 -0
  1421. package/dist/ui/components/HiveConsole.d.ts.map +1 -0
  1422. package/dist/ui/components/HiveConsole.js +166 -0
  1423. package/dist/ui/components/HiveConsole.js.map +1 -0
  1424. package/dist/ui/components/HiveConsole.test.d.ts +8 -0
  1425. package/dist/ui/components/HiveConsole.test.d.ts.map +1 -0
  1426. package/dist/ui/components/HiveConsole.test.js +330 -0
  1427. package/dist/ui/components/HiveConsole.test.js.map +1 -0
  1428. package/dist/ui/components/Input.d.ts +25 -0
  1429. package/dist/ui/components/Input.d.ts.map +1 -0
  1430. package/dist/ui/components/Input.js +1097 -0
  1431. package/dist/ui/components/Input.js.map +1 -0
  1432. package/dist/ui/components/Message.d.ts +18 -0
  1433. package/dist/ui/components/Message.d.ts.map +1 -0
  1434. package/dist/ui/components/Message.js +212 -0
  1435. package/dist/ui/components/Message.js.map +1 -0
  1436. package/dist/ui/components/MessageSelector.d.ts +66 -0
  1437. package/dist/ui/components/MessageSelector.d.ts.map +1 -0
  1438. package/dist/ui/components/MessageSelector.js +272 -0
  1439. package/dist/ui/components/MessageSelector.js.map +1 -0
  1440. package/dist/ui/components/ModelSelector.d.ts +27 -0
  1441. package/dist/ui/components/ModelSelector.d.ts.map +1 -0
  1442. package/dist/ui/components/ModelSelector.js +135 -0
  1443. package/dist/ui/components/ModelSelector.js.map +1 -0
  1444. package/dist/ui/components/PermissionPrompt.d.ts +44 -0
  1445. package/dist/ui/components/PermissionPrompt.d.ts.map +1 -0
  1446. package/dist/ui/components/PermissionPrompt.js +416 -0
  1447. package/dist/ui/components/PermissionPrompt.js.map +1 -0
  1448. package/dist/ui/components/ProgressBar.d.ts +61 -0
  1449. package/dist/ui/components/ProgressBar.d.ts.map +1 -0
  1450. package/dist/ui/components/ProgressBar.js +174 -0
  1451. package/dist/ui/components/ProgressBar.js.map +1 -0
  1452. package/dist/ui/components/ResumeSession.d.ts +27 -0
  1453. package/dist/ui/components/ResumeSession.d.ts.map +1 -0
  1454. package/dist/ui/components/ResumeSession.js +330 -0
  1455. package/dist/ui/components/ResumeSession.js.map +1 -0
  1456. package/dist/ui/components/SelectInput.d.ts +22 -0
  1457. package/dist/ui/components/SelectInput.d.ts.map +1 -0
  1458. package/dist/ui/components/SelectInput.js +84 -0
  1459. package/dist/ui/components/SelectInput.js.map +1 -0
  1460. package/dist/ui/components/ShortcutHelp.d.ts +12 -0
  1461. package/dist/ui/components/ShortcutHelp.d.ts.map +1 -0
  1462. package/dist/ui/components/ShortcutHelp.js +55 -0
  1463. package/dist/ui/components/ShortcutHelp.js.map +1 -0
  1464. package/dist/ui/components/SkillsDialog.d.ts +12 -0
  1465. package/dist/ui/components/SkillsDialog.d.ts.map +1 -0
  1466. package/dist/ui/components/SkillsDialog.js +239 -0
  1467. package/dist/ui/components/SkillsDialog.js.map +1 -0
  1468. package/dist/ui/components/Spinner.d.ts +81 -0
  1469. package/dist/ui/components/Spinner.d.ts.map +1 -0
  1470. package/dist/ui/components/Spinner.js +165 -0
  1471. package/dist/ui/components/Spinner.js.map +1 -0
  1472. package/dist/ui/components/StatsPanel.d.ts +20 -0
  1473. package/dist/ui/components/StatsPanel.d.ts.map +1 -0
  1474. package/dist/ui/components/StatsPanel.js +584 -0
  1475. package/dist/ui/components/StatsPanel.js.map +1 -0
  1476. package/dist/ui/components/StatusBar.d.ts +43 -0
  1477. package/dist/ui/components/StatusBar.d.ts.map +1 -0
  1478. package/dist/ui/components/StatusBar.js +160 -0
  1479. package/dist/ui/components/StatusBar.js.map +1 -0
  1480. package/dist/ui/components/StatusBar.test.d.ts +10 -0
  1481. package/dist/ui/components/StatusBar.test.d.ts.map +1 -0
  1482. package/dist/ui/components/StatusBar.test.js +70 -0
  1483. package/dist/ui/components/StatusBar.test.js.map +1 -0
  1484. package/dist/ui/components/TodoList.d.ts +25 -0
  1485. package/dist/ui/components/TodoList.d.ts.map +1 -0
  1486. package/dist/ui/components/TodoList.js +146 -0
  1487. package/dist/ui/components/TodoList.js.map +1 -0
  1488. package/dist/ui/components/ToolCall.d.ts +19 -0
  1489. package/dist/ui/components/ToolCall.d.ts.map +1 -0
  1490. package/dist/ui/components/ToolCall.js +196 -0
  1491. package/dist/ui/components/ToolCall.js.map +1 -0
  1492. package/dist/ui/components/TrustDialog.d.ts +35 -0
  1493. package/dist/ui/components/TrustDialog.d.ts.map +1 -0
  1494. package/dist/ui/components/TrustDialog.js +163 -0
  1495. package/dist/ui/components/TrustDialog.js.map +1 -0
  1496. package/dist/ui/components/UpdateNotification.d.ts +11 -0
  1497. package/dist/ui/components/UpdateNotification.d.ts.map +1 -0
  1498. package/dist/ui/components/UpdateNotification.js +66 -0
  1499. package/dist/ui/components/UpdateNotification.js.map +1 -0
  1500. package/dist/ui/components/WelcomeScreen.d.ts +22 -0
  1501. package/dist/ui/components/WelcomeScreen.d.ts.map +1 -0
  1502. package/dist/ui/components/WelcomeScreen.js +156 -0
  1503. package/dist/ui/components/WelcomeScreen.js.map +1 -0
  1504. package/dist/ui/components/index.d.ts +35 -0
  1505. package/dist/ui/components/index.d.ts.map +1 -0
  1506. package/dist/ui/components/index.js +25 -0
  1507. package/dist/ui/components/index.js.map +1 -0
  1508. package/dist/ui/hooks/index.d.ts +12 -0
  1509. package/dist/ui/hooks/index.d.ts.map +1 -0
  1510. package/dist/ui/hooks/index.js +9 -0
  1511. package/dist/ui/hooks/index.js.map +1 -0
  1512. package/dist/ui/hooks/useAutoScroll.d.ts +22 -0
  1513. package/dist/ui/hooks/useAutoScroll.d.ts.map +1 -0
  1514. package/dist/ui/hooks/useAutoScroll.js +46 -0
  1515. package/dist/ui/hooks/useAutoScroll.js.map +1 -0
  1516. package/dist/ui/hooks/useAxonMdImport.d.ts +57 -0
  1517. package/dist/ui/hooks/useAxonMdImport.d.ts.map +1 -0
  1518. package/dist/ui/hooks/useAxonMdImport.js +248 -0
  1519. package/dist/ui/hooks/useAxonMdImport.js.map +1 -0
  1520. package/dist/ui/hooks/useGlobalKeybindings.d.ts +60 -0
  1521. package/dist/ui/hooks/useGlobalKeybindings.d.ts.map +1 -0
  1522. package/dist/ui/hooks/useGlobalKeybindings.js +460 -0
  1523. package/dist/ui/hooks/useGlobalKeybindings.js.map +1 -0
  1524. package/dist/ui/hooks/useRewind.d.ts +44 -0
  1525. package/dist/ui/hooks/useRewind.d.ts.map +1 -0
  1526. package/dist/ui/hooks/useRewind.js +67 -0
  1527. package/dist/ui/hooks/useRewind.js.map +1 -0
  1528. package/dist/ui/hooks/useTerminalSize.d.ts +32 -0
  1529. package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -0
  1530. package/dist/ui/hooks/useTerminalSize.js +70 -0
  1531. package/dist/ui/hooks/useTerminalSize.js.map +1 -0
  1532. package/dist/ui/index.d.ts +29 -0
  1533. package/dist/ui/index.d.ts.map +1 -0
  1534. package/dist/ui/index.js +42 -0
  1535. package/dist/ui/index.js.map +1 -0
  1536. package/dist/ui/ink-v2/dom-renderer.d.ts +58 -0
  1537. package/dist/ui/ink-v2/dom-renderer.d.ts.map +1 -0
  1538. package/dist/ui/ink-v2/dom-renderer.js +295 -0
  1539. package/dist/ui/ink-v2/dom-renderer.js.map +1 -0
  1540. package/dist/ui/ink-v2/frame.d.ts +25 -0
  1541. package/dist/ui/ink-v2/frame.d.ts.map +1 -0
  1542. package/dist/ui/ink-v2/frame.js +120 -0
  1543. package/dist/ui/ink-v2/frame.js.map +1 -0
  1544. package/dist/ui/ink-v2/index.d.ts +92 -0
  1545. package/dist/ui/ink-v2/index.d.ts.map +1 -0
  1546. package/dist/ui/ink-v2/index.js +185 -0
  1547. package/dist/ui/ink-v2/index.js.map +1 -0
  1548. package/dist/ui/ink-v2/output.d.ts +43 -0
  1549. package/dist/ui/ink-v2/output.d.ts.map +1 -0
  1550. package/dist/ui/ink-v2/output.js +154 -0
  1551. package/dist/ui/ink-v2/output.js.map +1 -0
  1552. package/dist/ui/ink-v2/renderer.d.ts +49 -0
  1553. package/dist/ui/ink-v2/renderer.d.ts.map +1 -0
  1554. package/dist/ui/ink-v2/renderer.js +411 -0
  1555. package/dist/ui/ink-v2/renderer.js.map +1 -0
  1556. package/dist/ui/ink-v2/screen.d.ts +65 -0
  1557. package/dist/ui/ink-v2/screen.d.ts.map +1 -0
  1558. package/dist/ui/ink-v2/screen.js +260 -0
  1559. package/dist/ui/ink-v2/screen.js.map +1 -0
  1560. package/dist/ui/ink-v2/style-pool.d.ts +28 -0
  1561. package/dist/ui/ink-v2/style-pool.d.ts.map +1 -0
  1562. package/dist/ui/ink-v2/style-pool.js +50 -0
  1563. package/dist/ui/ink-v2/style-pool.js.map +1 -0
  1564. package/dist/ui/ink-v2/types.d.ts +138 -0
  1565. package/dist/ui/ink-v2/types.d.ts.map +1 -0
  1566. package/dist/ui/ink-v2/types.js +11 -0
  1567. package/dist/ui/ink-v2/types.js.map +1 -0
  1568. package/dist/ui/markdown-renderer.d.ts +35 -0
  1569. package/dist/ui/markdown-renderer.d.ts.map +1 -0
  1570. package/dist/ui/markdown-renderer.js +369 -0
  1571. package/dist/ui/markdown-renderer.js.map +1 -0
  1572. package/dist/ui/spinner-verbs.d.ts +15 -0
  1573. package/dist/ui/spinner-verbs.d.ts.map +1 -0
  1574. package/dist/ui/spinner-verbs.js +75 -0
  1575. package/dist/ui/spinner-verbs.js.map +1 -0
  1576. package/dist/ui/utils/history-manager.d.ts +41 -0
  1577. package/dist/ui/utils/history-manager.d.ts.map +1 -0
  1578. package/dist/ui/utils/history-manager.js +109 -0
  1579. package/dist/ui/utils/history-manager.js.map +1 -0
  1580. package/dist/ui/utils/index.d.ts +9 -0
  1581. package/dist/ui/utils/index.d.ts.map +1 -0
  1582. package/dist/ui/utils/index.js +10 -0
  1583. package/dist/ui/utils/index.js.map +1 -0
  1584. package/dist/ui/utils/kitty-keyboard.d.ts +239 -0
  1585. package/dist/ui/utils/kitty-keyboard.d.ts.map +1 -0
  1586. package/dist/ui/utils/kitty-keyboard.js +341 -0
  1587. package/dist/ui/utils/kitty-keyboard.js.map +1 -0
  1588. package/dist/ui/utils/string-width.d.ts +36 -0
  1589. package/dist/ui/utils/string-width.d.ts.map +1 -0
  1590. package/dist/ui/utils/string-width.js +339 -0
  1591. package/dist/ui/utils/string-width.js.map +1 -0
  1592. package/dist/ui/utils/syntaxHighlight.d.ts +94 -0
  1593. package/dist/ui/utils/syntaxHighlight.d.ts.map +1 -0
  1594. package/dist/ui/utils/syntaxHighlight.js +415 -0
  1595. package/dist/ui/utils/syntaxHighlight.js.map +1 -0
  1596. package/dist/ui/utils/terminal.d.ts +145 -0
  1597. package/dist/ui/utils/terminal.d.ts.map +1 -0
  1598. package/dist/ui/utils/terminal.js +229 -0
  1599. package/dist/ui/utils/terminal.js.map +1 -0
  1600. package/dist/updater/index.d.ts +115 -0
  1601. package/dist/updater/index.d.ts.map +1 -0
  1602. package/dist/updater/index.js +546 -0
  1603. package/dist/updater/index.js.map +1 -0
  1604. package/dist/utils/AppError.d.ts +24 -0
  1605. package/dist/utils/AppError.d.ts.map +1 -0
  1606. package/dist/utils/AppError.js +33 -0
  1607. package/dist/utils/AppError.js.map +1 -0
  1608. package/dist/utils/AppError.test.d.ts +2 -0
  1609. package/dist/utils/AppError.test.d.ts.map +1 -0
  1610. package/dist/utils/AppError.test.js +257 -0
  1611. package/dist/utils/AppError.test.js.map +1 -0
  1612. package/dist/utils/attribution.d.ts +111 -0
  1613. package/dist/utils/attribution.d.ts.map +1 -0
  1614. package/dist/utils/attribution.js +219 -0
  1615. package/dist/utils/attribution.js.map +1 -0
  1616. package/dist/utils/editor.d.ts +19 -0
  1617. package/dist/utils/editor.d.ts.map +1 -0
  1618. package/dist/utils/editor.js +115 -0
  1619. package/dist/utils/editor.js.map +1 -0
  1620. package/dist/utils/env-check.d.ts +78 -0
  1621. package/dist/utils/env-check.d.ts.map +1 -0
  1622. package/dist/utils/env-check.js +114 -0
  1623. package/dist/utils/env-check.js.map +1 -0
  1624. package/dist/utils/error-watcher.d.ts +78 -0
  1625. package/dist/utils/error-watcher.d.ts.map +1 -0
  1626. package/dist/utils/error-watcher.js +355 -0
  1627. package/dist/utils/error-watcher.js.map +1 -0
  1628. package/dist/utils/git-helper.d.ts +55 -0
  1629. package/dist/utils/git-helper.d.ts.map +1 -0
  1630. package/dist/utils/git-helper.js +238 -0
  1631. package/dist/utils/git-helper.js.map +1 -0
  1632. package/dist/utils/index.d.ts +188 -0
  1633. package/dist/utils/index.d.ts.map +1 -0
  1634. package/dist/utils/index.js +472 -0
  1635. package/dist/utils/index.js.map +1 -0
  1636. package/dist/utils/logger.d.ts +117 -0
  1637. package/dist/utils/logger.d.ts.map +1 -0
  1638. package/dist/utils/logger.js +458 -0
  1639. package/dist/utils/logger.js.map +1 -0
  1640. package/dist/utils/package-manager.d.ts +134 -0
  1641. package/dist/utils/package-manager.d.ts.map +1 -0
  1642. package/dist/utils/package-manager.js +325 -0
  1643. package/dist/utils/package-manager.js.map +1 -0
  1644. package/dist/utils/platform.d.ts +283 -0
  1645. package/dist/utils/platform.d.ts.map +1 -0
  1646. package/dist/utils/platform.js +748 -0
  1647. package/dist/utils/platform.js.map +1 -0
  1648. package/dist/utils/pr-status.d.ts +50 -0
  1649. package/dist/utils/pr-status.d.ts.map +1 -0
  1650. package/dist/utils/pr-status.js +182 -0
  1651. package/dist/utils/pr-status.js.map +1 -0
  1652. package/dist/utils/retry.d.ts +86 -0
  1653. package/dist/utils/retry.d.ts.map +1 -0
  1654. package/dist/utils/retry.js +202 -0
  1655. package/dist/utils/retry.js.map +1 -0
  1656. package/dist/utils/temp-dir.d.ts +31 -0
  1657. package/dist/utils/temp-dir.d.ts.map +1 -0
  1658. package/dist/utils/temp-dir.js +141 -0
  1659. package/dist/utils/temp-dir.js.map +1 -0
  1660. package/dist/utils/terminal-setup.d.ts +31 -0
  1661. package/dist/utils/terminal-setup.d.ts.map +1 -0
  1662. package/dist/utils/terminal-setup.js +224 -0
  1663. package/dist/utils/terminal-setup.js.map +1 -0
  1664. package/dist/utils/terminal-tab.d.ts +15 -0
  1665. package/dist/utils/terminal-tab.d.ts.map +1 -0
  1666. package/dist/utils/terminal-tab.js +173 -0
  1667. package/dist/utils/terminal-tab.js.map +1 -0
  1668. package/dist/utils/token-estimate.d.ts +26 -0
  1669. package/dist/utils/token-estimate.d.ts.map +1 -0
  1670. package/dist/utils/token-estimate.js +62 -0
  1671. package/dist/utils/token-estimate.js.map +1 -0
  1672. package/dist/utils/truncated-buffer.d.ts +70 -0
  1673. package/dist/utils/truncated-buffer.d.ts.map +1 -0
  1674. package/dist/utils/truncated-buffer.js +124 -0
  1675. package/dist/utils/truncated-buffer.js.map +1 -0
  1676. package/dist/version.d.ts +30 -0
  1677. package/dist/version.d.ts.map +1 -0
  1678. package/dist/version.js +32 -0
  1679. package/dist/version.js.map +1 -0
  1680. package/dist/web/index.d.ts +7 -0
  1681. package/dist/web/index.d.ts.map +1 -0
  1682. package/dist/web/index.js +7 -0
  1683. package/dist/web/index.js.map +1 -0
  1684. package/dist/web/server/api-manager.d.ts +53 -0
  1685. package/dist/web/server/api-manager.d.ts.map +1 -0
  1686. package/dist/web/server/api-manager.js +271 -0
  1687. package/dist/web/server/api-manager.js.map +1 -0
  1688. package/dist/web/server/channels/adapters/discord.d.ts +41 -0
  1689. package/dist/web/server/channels/adapters/discord.d.ts.map +1 -0
  1690. package/dist/web/server/channels/adapters/discord.js +326 -0
  1691. package/dist/web/server/channels/adapters/discord.js.map +1 -0
  1692. package/dist/web/server/channels/adapters/feishu.d.ts +38 -0
  1693. package/dist/web/server/channels/adapters/feishu.d.ts.map +1 -0
  1694. package/dist/web/server/channels/adapters/feishu.js +442 -0
  1695. package/dist/web/server/channels/adapters/feishu.js.map +1 -0
  1696. package/dist/web/server/channels/adapters/slack-bot.d.ts +30 -0
  1697. package/dist/web/server/channels/adapters/slack-bot.d.ts.map +1 -0
  1698. package/dist/web/server/channels/adapters/slack-bot.js +226 -0
  1699. package/dist/web/server/channels/adapters/slack-bot.js.map +1 -0
  1700. package/dist/web/server/channels/adapters/telegram.d.ts +32 -0
  1701. package/dist/web/server/channels/adapters/telegram.d.ts.map +1 -0
  1702. package/dist/web/server/channels/adapters/telegram.js +261 -0
  1703. package/dist/web/server/channels/adapters/telegram.js.map +1 -0
  1704. package/dist/web/server/channels/adapters/whatsapp.d.ts +48 -0
  1705. package/dist/web/server/channels/adapters/whatsapp.d.ts.map +1 -0
  1706. package/dist/web/server/channels/adapters/whatsapp.js +316 -0
  1707. package/dist/web/server/channels/adapters/whatsapp.js.map +1 -0
  1708. package/dist/web/server/channels/bridge.d.ts +103 -0
  1709. package/dist/web/server/channels/bridge.d.ts.map +1 -0
  1710. package/dist/web/server/channels/bridge.js +728 -0
  1711. package/dist/web/server/channels/bridge.js.map +1 -0
  1712. package/dist/web/server/channels/index.d.ts +71 -0
  1713. package/dist/web/server/channels/index.d.ts.map +1 -0
  1714. package/dist/web/server/channels/index.js +307 -0
  1715. package/dist/web/server/channels/index.js.map +1 -0
  1716. package/dist/web/server/channels/types.d.ts +249 -0
  1717. package/dist/web/server/channels/types.d.ts.map +1 -0
  1718. package/dist/web/server/channels/types.js +8 -0
  1719. package/dist/web/server/channels/types.js.map +1 -0
  1720. package/dist/web/server/checkpoint-manager.d.ts +152 -0
  1721. package/dist/web/server/checkpoint-manager.d.ts.map +1 -0
  1722. package/dist/web/server/checkpoint-manager.js +359 -0
  1723. package/dist/web/server/checkpoint-manager.js.map +1 -0
  1724. package/dist/web/server/connectors/index.d.ts +115 -0
  1725. package/dist/web/server/connectors/index.d.ts.map +1 -0
  1726. package/dist/web/server/connectors/index.js +759 -0
  1727. package/dist/web/server/connectors/index.js.map +1 -0
  1728. package/dist/web/server/connectors/providers.d.ts +6 -0
  1729. package/dist/web/server/connectors/providers.d.ts.map +1 -0
  1730. package/dist/web/server/connectors/providers.js +238 -0
  1731. package/dist/web/server/connectors/providers.js.map +1 -0
  1732. package/dist/web/server/connectors/types.d.ts +79 -0
  1733. package/dist/web/server/connectors/types.d.ts.map +1 -0
  1734. package/dist/web/server/connectors/types.js +5 -0
  1735. package/dist/web/server/connectors/types.js.map +1 -0
  1736. package/dist/web/server/conversation.d.ts +593 -0
  1737. package/dist/web/server/conversation.d.ts.map +1 -0
  1738. package/dist/web/server/conversation.js +5170 -0
  1739. package/dist/web/server/conversation.js.map +1 -0
  1740. package/dist/web/server/database/swarm-logs.d.ts +150 -0
  1741. package/dist/web/server/database/swarm-logs.d.ts.map +1 -0
  1742. package/dist/web/server/database/swarm-logs.js +456 -0
  1743. package/dist/web/server/database/swarm-logs.js.map +1 -0
  1744. package/dist/web/server/doctor.d.ts +59 -0
  1745. package/dist/web/server/doctor.d.ts.map +1 -0
  1746. package/dist/web/server/doctor.js +666 -0
  1747. package/dist/web/server/doctor.js.map +1 -0
  1748. package/dist/web/server/evolve-state.d.ts +30 -0
  1749. package/dist/web/server/evolve-state.d.ts.map +1 -0
  1750. package/dist/web/server/evolve-state.js +54 -0
  1751. package/dist/web/server/evolve-state.js.map +1 -0
  1752. package/dist/web/server/git-manager.d.ts +373 -0
  1753. package/dist/web/server/git-manager.d.ts.map +1 -0
  1754. package/dist/web/server/git-manager.js +1556 -0
  1755. package/dist/web/server/git-manager.js.map +1 -0
  1756. package/dist/web/server/handlers/types.d.ts +95 -0
  1757. package/dist/web/server/handlers/types.d.ts.map +1 -0
  1758. package/dist/web/server/handlers/types.js +22 -0
  1759. package/dist/web/server/handlers/types.js.map +1 -0
  1760. package/dist/web/server/index.d.ts +41 -0
  1761. package/dist/web/server/index.d.ts.map +1 -0
  1762. package/dist/web/server/index.js +935 -0
  1763. package/dist/web/server/index.js.map +1 -0
  1764. package/dist/web/server/oauth-manager.d.ts +89 -0
  1765. package/dist/web/server/oauth-manager.d.ts.map +1 -0
  1766. package/dist/web/server/oauth-manager.js +361 -0
  1767. package/dist/web/server/oauth-manager.js.map +1 -0
  1768. package/dist/web/server/permission-handler.d.ts +170 -0
  1769. package/dist/web/server/permission-handler.d.ts.map +1 -0
  1770. package/dist/web/server/permission-handler.js +591 -0
  1771. package/dist/web/server/permission-handler.js.map +1 -0
  1772. package/dist/web/server/project-suggestions.d.ts +39 -0
  1773. package/dist/web/server/project-suggestions.d.ts.map +1 -0
  1774. package/dist/web/server/project-suggestions.js +365 -0
  1775. package/dist/web/server/project-suggestions.js.map +1 -0
  1776. package/dist/web/server/prompt-snippets.d.ts +92 -0
  1777. package/dist/web/server/prompt-snippets.d.ts.map +1 -0
  1778. package/dist/web/server/prompt-snippets.js +206 -0
  1779. package/dist/web/server/prompt-snippets.js.map +1 -0
  1780. package/dist/web/server/routes/__tests__/artifacts-api.test.d.ts +2 -0
  1781. package/dist/web/server/routes/__tests__/artifacts-api.test.d.ts.map +1 -0
  1782. package/dist/web/server/routes/__tests__/artifacts-api.test.js +572 -0
  1783. package/dist/web/server/routes/__tests__/artifacts-api.test.js.map +1 -0
  1784. package/dist/web/server/routes/agent-api.d.ts +7 -0
  1785. package/dist/web/server/routes/agent-api.d.ts.map +1 -0
  1786. package/dist/web/server/routes/agent-api.js +225 -0
  1787. package/dist/web/server/routes/agent-api.js.map +1 -0
  1788. package/dist/web/server/routes/ai-editor.d.ts +13 -0
  1789. package/dist/web/server/routes/ai-editor.d.ts.map +1 -0
  1790. package/dist/web/server/routes/ai-editor.js +2079 -0
  1791. package/dist/web/server/routes/ai-editor.js.map +1 -0
  1792. package/dist/web/server/routes/ai-hover.d.ts +10 -0
  1793. package/dist/web/server/routes/ai-hover.d.ts.map +1 -0
  1794. package/dist/web/server/routes/ai-hover.js +359 -0
  1795. package/dist/web/server/routes/ai-hover.js.map +1 -0
  1796. package/dist/web/server/routes/api.d.ts +7 -0
  1797. package/dist/web/server/routes/api.d.ts.map +1 -0
  1798. package/dist/web/server/routes/api.js +1200 -0
  1799. package/dist/web/server/routes/api.js.map +1 -0
  1800. package/dist/web/server/routes/artifacts-api.d.ts +15 -0
  1801. package/dist/web/server/routes/artifacts-api.d.ts.map +1 -0
  1802. package/dist/web/server/routes/artifacts-api.js +231 -0
  1803. package/dist/web/server/routes/artifacts-api.js.map +1 -0
  1804. package/dist/web/server/routes/auth.d.ts +7 -0
  1805. package/dist/web/server/routes/auth.d.ts.map +1 -0
  1806. package/dist/web/server/routes/auth.js +292 -0
  1807. package/dist/web/server/routes/auth.js.map +1 -0
  1808. package/dist/web/server/routes/autocomplete-api.d.ts +10 -0
  1809. package/dist/web/server/routes/autocomplete-api.d.ts.map +1 -0
  1810. package/dist/web/server/routes/autocomplete-api.js +302 -0
  1811. package/dist/web/server/routes/autocomplete-api.js.map +1 -0
  1812. package/dist/web/server/routes/axon-cloud.d.ts +7 -0
  1813. package/dist/web/server/routes/axon-cloud.d.ts.map +1 -0
  1814. package/dist/web/server/routes/axon-cloud.js +160 -0
  1815. package/dist/web/server/routes/axon-cloud.js.map +1 -0
  1816. package/dist/web/server/routes/blueprint-api.d.ts +459 -0
  1817. package/dist/web/server/routes/blueprint-api.d.ts.map +1 -0
  1818. package/dist/web/server/routes/blueprint-api.js +6057 -0
  1819. package/dist/web/server/routes/blueprint-api.js.map +1 -0
  1820. package/dist/web/server/routes/blueprint-requirement-api.d.ts +11 -0
  1821. package/dist/web/server/routes/blueprint-requirement-api.d.ts.map +1 -0
  1822. package/dist/web/server/routes/blueprint-requirement-api.js +91 -0
  1823. package/dist/web/server/routes/blueprint-requirement-api.js.map +1 -0
  1824. package/dist/web/server/routes/code-parser.d.ts +14 -0
  1825. package/dist/web/server/routes/code-parser.d.ts.map +1 -0
  1826. package/dist/web/server/routes/code-parser.js +191 -0
  1827. package/dist/web/server/routes/code-parser.js.map +1 -0
  1828. package/dist/web/server/routes/config-api.d.ts +14 -0
  1829. package/dist/web/server/routes/config-api.d.ts.map +1 -0
  1830. package/dist/web/server/routes/config-api.js +670 -0
  1831. package/dist/web/server/routes/config-api.js.map +1 -0
  1832. package/dist/web/server/routes/connectors-api.d.ts +7 -0
  1833. package/dist/web/server/routes/connectors-api.d.ts.map +1 -0
  1834. package/dist/web/server/routes/connectors-api.js +267 -0
  1835. package/dist/web/server/routes/connectors-api.js.map +1 -0
  1836. package/dist/web/server/routes/data-flow-analyzer.d.ts +60 -0
  1837. package/dist/web/server/routes/data-flow-analyzer.d.ts.map +1 -0
  1838. package/dist/web/server/routes/data-flow-analyzer.js +220 -0
  1839. package/dist/web/server/routes/data-flow-analyzer.js.map +1 -0
  1840. package/dist/web/server/routes/download-proxy.d.ts +16 -0
  1841. package/dist/web/server/routes/download-proxy.d.ts.map +1 -0
  1842. package/dist/web/server/routes/download-proxy.js +114 -0
  1843. package/dist/web/server/routes/download-proxy.js.map +1 -0
  1844. package/dist/web/server/routes/file-api.d.ts +18 -0
  1845. package/dist/web/server/routes/file-api.d.ts.map +1 -0
  1846. package/dist/web/server/routes/file-api.js +1514 -0
  1847. package/dist/web/server/routes/file-api.js.map +1 -0
  1848. package/dist/web/server/routes/lsp-analyzer.d.ts +76 -0
  1849. package/dist/web/server/routes/lsp-analyzer.d.ts.map +1 -0
  1850. package/dist/web/server/routes/lsp-analyzer.js +457 -0
  1851. package/dist/web/server/routes/lsp-analyzer.js.map +1 -0
  1852. package/dist/web/server/routes/lsp-api.d.ts +8 -0
  1853. package/dist/web/server/routes/lsp-api.d.ts.map +1 -0
  1854. package/dist/web/server/routes/lsp-api.js +283 -0
  1855. package/dist/web/server/routes/lsp-api.js.map +1 -0
  1856. package/dist/web/server/routes/mcp-cli-api.d.ts +19 -0
  1857. package/dist/web/server/routes/mcp-cli-api.d.ts.map +1 -0
  1858. package/dist/web/server/routes/mcp-cli-api.js +223 -0
  1859. package/dist/web/server/routes/mcp-cli-api.js.map +1 -0
  1860. package/dist/web/server/routes/network-api.d.ts +8 -0
  1861. package/dist/web/server/routes/network-api.d.ts.map +1 -0
  1862. package/dist/web/server/routes/network-api.js +367 -0
  1863. package/dist/web/server/routes/network-api.js.map +1 -0
  1864. package/dist/web/server/routes/notebook-api.d.ts +12 -0
  1865. package/dist/web/server/routes/notebook-api.d.ts.map +1 -0
  1866. package/dist/web/server/routes/notebook-api.js +164 -0
  1867. package/dist/web/server/routes/notebook-api.js.map +1 -0
  1868. package/dist/web/server/routes/port-forward.d.ts +20 -0
  1869. package/dist/web/server/routes/port-forward.d.ts.map +1 -0
  1870. package/dist/web/server/routes/port-forward.js +155 -0
  1871. package/dist/web/server/routes/port-forward.js.map +1 -0
  1872. package/dist/web/server/routes/project-map-generator.d.ts +126 -0
  1873. package/dist/web/server/routes/project-map-generator.d.ts.map +1 -0
  1874. package/dist/web/server/routes/project-map-generator.js +800 -0
  1875. package/dist/web/server/routes/project-map-generator.js.map +1 -0
  1876. package/dist/web/server/routes/schedule-api.d.ts +7 -0
  1877. package/dist/web/server/routes/schedule-api.d.ts.map +1 -0
  1878. package/dist/web/server/routes/schedule-api.js +324 -0
  1879. package/dist/web/server/routes/schedule-api.js.map +1 -0
  1880. package/dist/web/server/routes/symbol-classifier.d.ts +71 -0
  1881. package/dist/web/server/routes/symbol-classifier.d.ts.map +1 -0
  1882. package/dist/web/server/routes/symbol-classifier.js +190 -0
  1883. package/dist/web/server/routes/symbol-classifier.js.map +1 -0
  1884. package/dist/web/server/services/axon-cloud-service.d.ts +95 -0
  1885. package/dist/web/server/services/axon-cloud-service.d.ts.map +1 -0
  1886. package/dist/web/server/services/axon-cloud-service.js +210 -0
  1887. package/dist/web/server/services/axon-cloud-service.js.map +1 -0
  1888. package/dist/web/server/services/config-service.d.ts +436 -0
  1889. package/dist/web/server/services/config-service.d.ts.map +1 -0
  1890. package/dist/web/server/services/config-service.js +872 -0
  1891. package/dist/web/server/services/config-service.js.map +1 -0
  1892. package/dist/web/server/services/gemini-image-service.d.ts +80 -0
  1893. package/dist/web/server/services/gemini-image-service.d.ts.map +1 -0
  1894. package/dist/web/server/services/gemini-image-service.js +373 -0
  1895. package/dist/web/server/services/gemini-image-service.js.map +1 -0
  1896. package/dist/web/server/services/mode-presets.d.ts +40 -0
  1897. package/dist/web/server/services/mode-presets.d.ts.map +1 -0
  1898. package/dist/web/server/services/mode-presets.js +167 -0
  1899. package/dist/web/server/services/mode-presets.js.map +1 -0
  1900. package/dist/web/server/services/proxy-service.d.ts +59 -0
  1901. package/dist/web/server/services/proxy-service.d.ts.map +1 -0
  1902. package/dist/web/server/services/proxy-service.js +132 -0
  1903. package/dist/web/server/services/proxy-service.js.map +1 -0
  1904. package/dist/web/server/session-manager.d.ts +152 -0
  1905. package/dist/web/server/session-manager.d.ts.map +1 -0
  1906. package/dist/web/server/session-manager.js +421 -0
  1907. package/dist/web/server/session-manager.js.map +1 -0
  1908. package/dist/web/server/slash-commands.d.ts +46 -0
  1909. package/dist/web/server/slash-commands.d.ts.map +1 -0
  1910. package/dist/web/server/slash-commands.js +774 -0
  1911. package/dist/web/server/slash-commands.js.map +1 -0
  1912. package/dist/web/server/task-manager.d.ts +190 -0
  1913. package/dist/web/server/task-manager.d.ts.map +1 -0
  1914. package/dist/web/server/task-manager.js +596 -0
  1915. package/dist/web/server/task-manager.js.map +1 -0
  1916. package/dist/web/server/terminal-manager.d.ts +50 -0
  1917. package/dist/web/server/terminal-manager.d.ts.map +1 -0
  1918. package/dist/web/server/terminal-manager.js +274 -0
  1919. package/dist/web/server/terminal-manager.js.map +1 -0
  1920. package/dist/web/server/trpc/appRouter.d.ts +429 -0
  1921. package/dist/web/server/trpc/appRouter.d.ts.map +1 -0
  1922. package/dist/web/server/trpc/appRouter.js +18 -0
  1923. package/dist/web/server/trpc/appRouter.js.map +1 -0
  1924. package/dist/web/server/trpc/index.d.ts +29 -0
  1925. package/dist/web/server/trpc/index.d.ts.map +1 -0
  1926. package/dist/web/server/trpc/index.js +25 -0
  1927. package/dist/web/server/trpc/index.js.map +1 -0
  1928. package/dist/web/server/trpc/routers/blueprint.d.ts +162 -0
  1929. package/dist/web/server/trpc/routers/blueprint.d.ts.map +1 -0
  1930. package/dist/web/server/trpc/routers/blueprint.js +225 -0
  1931. package/dist/web/server/trpc/routers/blueprint.js.map +1 -0
  1932. package/dist/web/server/trpc/routers/coordinator.d.ts +247 -0
  1933. package/dist/web/server/trpc/routers/coordinator.d.ts.map +1 -0
  1934. package/dist/web/server/trpc/routers/coordinator.js +363 -0
  1935. package/dist/web/server/trpc/routers/coordinator.js.map +1 -0
  1936. package/dist/web/server/trpc/routers/execution.d.ts +106 -0
  1937. package/dist/web/server/trpc/routers/execution.d.ts.map +1 -0
  1938. package/dist/web/server/trpc/routers/execution.js +176 -0
  1939. package/dist/web/server/trpc/routers/execution.js.map +1 -0
  1940. package/dist/web/server/user-interaction.d.ts +61 -0
  1941. package/dist/web/server/user-interaction.d.ts.map +1 -0
  1942. package/dist/web/server/user-interaction.js +133 -0
  1943. package/dist/web/server/user-interaction.js.map +1 -0
  1944. package/dist/web/server/web-auth.d.ts +125 -0
  1945. package/dist/web/server/web-auth.d.ts.map +1 -0
  1946. package/dist/web/server/web-auth.js +364 -0
  1947. package/dist/web/server/web-auth.js.map +1 -0
  1948. package/dist/web/server/web-scheduler.d.ts +96 -0
  1949. package/dist/web/server/web-scheduler.d.ts.map +1 -0
  1950. package/dist/web/server/web-scheduler.js +762 -0
  1951. package/dist/web/server/web-scheduler.js.map +1 -0
  1952. package/dist/web/server/websocket-git-handlers.d.ts +107 -0
  1953. package/dist/web/server/websocket-git-handlers.d.ts.map +1 -0
  1954. package/dist/web/server/websocket-git-handlers.js +855 -0
  1955. package/dist/web/server/websocket-git-handlers.js.map +1 -0
  1956. package/dist/web/server/websocket.d.ts +18 -0
  1957. package/dist/web/server/websocket.d.ts.map +1 -0
  1958. package/dist/web/server/websocket.js +6158 -0
  1959. package/dist/web/server/websocket.js.map +1 -0
  1960. package/dist/web/shared/types.d.ts +4100 -0
  1961. package/dist/web/shared/types.d.ts.map +1 -0
  1962. package/dist/web/shared/types.js +123 -0
  1963. package/dist/web/shared/types.js.map +1 -0
  1964. package/dist/web-cli.d.ts +11 -0
  1965. package/dist/web-cli.d.ts.map +1 -0
  1966. package/dist/web-cli.js +196 -0
  1967. package/dist/web-cli.js.map +1 -0
  1968. package/dist/wizard/onboarding.d.ts +13 -0
  1969. package/dist/wizard/onboarding.d.ts.map +1 -0
  1970. package/dist/wizard/onboarding.js +196 -0
  1971. package/dist/wizard/onboarding.js.map +1 -0
  1972. package/electron/README.md +41 -0
  1973. package/electron/main.cjs +341 -0
  1974. package/package.json +236 -0
  1975. package/scripts/postinstall.js +110 -0
@@ -0,0 +1,2079 @@
1
+ /**
2
+ * AI Editor API
3
+ *
4
+ * 为代码编辑器提供 AI 驱动的增强功能
5
+ * - 代码导游:分析代码结构,生成导游步骤
6
+ * - 选中代码提问:基于代码上下文回答问题
7
+ * - 代码复杂度热力图:分析每行代码的复杂度
8
+ * - 重构建议:分析代码质量,提出重构建议
9
+ * - AI 代码气泡注释:生成有价值的代码解释
10
+ */
11
+ import { Router } from 'express';
12
+ import { ClaudeClient } from '../../../core/client.js';
13
+ import { webAuth } from '../web-auth.js';
14
+ import { LRUCache } from 'lru-cache';
15
+ import crypto from 'crypto';
16
+ import { execSync } from 'child_process';
17
+ import fs from 'fs';
18
+ import path from 'path';
19
+ const router = Router();
20
+ // ============================================================================
21
+ // 缓存配置
22
+ // ============================================================================
23
+ // 代码导游结果缓存
24
+ const tourCache = new LRUCache({
25
+ max: 500,
26
+ ttl: 1000 * 60 * 15, // 15分钟
27
+ });
28
+ // 提问结果缓存
29
+ const askCache = new LRUCache({
30
+ max: 500,
31
+ ttl: 1000 * 60 * 15,
32
+ });
33
+ // 热力图结果缓存
34
+ const heatmapCache = new LRUCache({
35
+ max: 500,
36
+ ttl: 1000 * 60 * 15,
37
+ });
38
+ // 重构建议结果缓存
39
+ const refactorCache = new LRUCache({
40
+ max: 500,
41
+ ttl: 1000 * 60 * 15,
42
+ });
43
+ // 气泡注释结果缓存
44
+ const bubblesCache = new LRUCache({
45
+ max: 500,
46
+ ttl: 1000 * 60 * 15,
47
+ });
48
+ // Intent-to-Code 结果缓存
49
+ const intentCache = new LRUCache({
50
+ max: 500,
51
+ ttl: 1000 * 60 * 15,
52
+ });
53
+ // Code Review 结果缓存
54
+ const reviewCache = new LRUCache({
55
+ max: 500,
56
+ ttl: 1000 * 60 * 15,
57
+ });
58
+ // Test Generator 结果缓存
59
+ const testGenCache = new LRUCache({
60
+ max: 200,
61
+ ttl: 1000 * 60 * 15,
62
+ });
63
+ // Smart Diff 结果缓存
64
+ const smartDiffCache = new LRUCache({
65
+ max: 200,
66
+ ttl: 1000 * 60 * 10, // 10分钟
67
+ });
68
+ // Dead Code 结果缓存
69
+ const deadCodeCache = new LRUCache({
70
+ max: 500,
71
+ ttl: 1000 * 60 * 15, // 15分钟
72
+ });
73
+ // Time Machine 结果缓存
74
+ const timeMachineCache = new LRUCache({
75
+ max: 200,
76
+ ttl: 1000 * 60 * 15, // 15分钟
77
+ });
78
+ // Pattern Detector 结果缓存
79
+ const patternCache = new LRUCache({
80
+ max: 300,
81
+ ttl: 1000 * 60 * 15, // 15分钟
82
+ });
83
+ // API Doc 结果缓存
84
+ const apiDocCache = new LRUCache({
85
+ max: 500,
86
+ ttl: 1000 * 60 * 30, // 30分钟(API文档不常变)
87
+ });
88
+ // Inline Complete 结果缓存
89
+ const inlineCompleteCache = new LRUCache({
90
+ max: 200,
91
+ ttl: 1000 * 60 * 5, // 5分钟(代码上下文变化快)
92
+ });
93
+ // 防止重复请求
94
+ const pendingRequests = new Map();
95
+ // ============================================================================
96
+ // 工具函数
97
+ // ============================================================================
98
+ /**
99
+ * 生成内容哈希作为缓存键的一部分
100
+ */
101
+ function hashContent(content) {
102
+ return crypto.createHash('md5').update(content).digest('hex').substring(0, 8);
103
+ }
104
+ /**
105
+ * 初始化 Claude 客户端
106
+ */
107
+ function createClient() {
108
+ try {
109
+ const creds = webAuth.getCredentials();
110
+ const apiKey = creds.apiKey;
111
+ const authToken = creds.authToken;
112
+ if (!apiKey && !authToken) {
113
+ return null;
114
+ }
115
+ return new ClaudeClient({
116
+ apiKey,
117
+ authToken,
118
+ baseUrl: creds.baseUrl || process.env.ANTHROPIC_BASE_URL,
119
+ model: 'claude-haiku-4-5-20251001', // AI Editor 使用 haiku 以节省成本
120
+ });
121
+ }
122
+ catch (error) {
123
+ console.error('[AI Editor] Failed to initialize client:', error);
124
+ return null;
125
+ }
126
+ }
127
+ /**
128
+ * 调用 Claude API
129
+ */
130
+ async function callClaude(prompt) {
131
+ // 确保 OAuth token 有效(对齐官方 NM())
132
+ await webAuth.ensureValidToken();
133
+ const client = createClient();
134
+ if (!client) {
135
+ throw new Error('API client not initialized, please check API Key configuration');
136
+ }
137
+ try {
138
+ const response = await client.createMessage([
139
+ {
140
+ role: 'user',
141
+ content: [{ type: 'text', text: prompt }],
142
+ },
143
+ ], undefined, // 无工具
144
+ undefined, // 无 system prompt
145
+ {
146
+ enableThinking: false, // 快速响应
147
+ });
148
+ const content = response.content?.[0];
149
+ if (content?.type === 'text') {
150
+ return content.text;
151
+ }
152
+ return null;
153
+ }
154
+ catch (error) {
155
+ console.error('[AI Editor] API call failed:', error);
156
+ throw error;
157
+ }
158
+ }
159
+ /**
160
+ * 从 AI 响应中提取 JSON
161
+ */
162
+ function extractJSON(text) {
163
+ // 1. 尝试从 markdown 代码块中提取
164
+ const codeBlockMatch = text.match(/```(?:json)?\s*\n?([\s\S]*?)```/);
165
+ if (codeBlockMatch) {
166
+ const inner = codeBlockMatch[1].trim();
167
+ try {
168
+ return JSON.parse(inner);
169
+ }
170
+ catch { }
171
+ }
172
+ // 2. 尝试匹配最外层 JSON 对象(使用大括号计数而非贪婪正则)
173
+ const firstBrace = text.indexOf('{');
174
+ if (firstBrace === -1) {
175
+ throw new Error('Unable to extract JSON from response');
176
+ }
177
+ let depth = 0;
178
+ let inString = false;
179
+ let escape = false;
180
+ for (let i = firstBrace; i < text.length; i++) {
181
+ const ch = text[i];
182
+ if (escape) {
183
+ escape = false;
184
+ continue;
185
+ }
186
+ if (ch === '\\' && inString) {
187
+ escape = true;
188
+ continue;
189
+ }
190
+ if (ch === '"') {
191
+ inString = !inString;
192
+ continue;
193
+ }
194
+ if (inString)
195
+ continue;
196
+ if (ch === '{')
197
+ depth++;
198
+ if (ch === '}') {
199
+ depth--;
200
+ if (depth === 0)
201
+ return JSON.parse(text.slice(firstBrace, i + 1));
202
+ }
203
+ }
204
+ // 3. fallback: 贪婪正则
205
+ const jsonMatch = text.match(/\{[\s\S]*\}/);
206
+ if (!jsonMatch) {
207
+ throw new Error('Unable to extract JSON from response');
208
+ }
209
+ return JSON.parse(jsonMatch[0]);
210
+ }
211
+ // ============================================================================
212
+ // API 端点
213
+ // ============================================================================
214
+ /**
215
+ * POST /tour - 代码导游
216
+ */
217
+ router.post('/tour', async (req, res) => {
218
+ try {
219
+ const { filePath, content } = req.body;
220
+ if (!filePath || !content) {
221
+ return res.status(400).json({
222
+ success: false,
223
+ error: 'Missing required parameters: filePath and content',
224
+ });
225
+ }
226
+ // 检查缓存
227
+ const cacheKey = `tour:${filePath}:${hashContent(content)}`;
228
+ const cached = tourCache.get(cacheKey);
229
+ if (cached) {
230
+ return res.json({ ...cached, fromCache: true });
231
+ }
232
+ // 检查是否有正在进行的相同请求
233
+ const pending = pendingRequests.get(cacheKey);
234
+ if (pending) {
235
+ const result = await pending;
236
+ return res.json({ ...result, fromCache: true });
237
+ }
238
+ // 创建新请求
239
+ const requestPromise = (async () => {
240
+ const prompt = `You are a professional code tour guide. Please analyze the code below, extracting important functions, classes, components, etc. as tour steps.
241
+
242
+ ## Code File: ${filePath}
243
+ \`\`\`
244
+ ${content}
245
+ \`\`\`
246
+
247
+ ## Output Requirements
248
+ Return JSON format containing a steps array, each step includes:
249
+ - type: 'file' | 'function' | 'class' | 'block'
250
+ - name: name
251
+ - line: starting line number (from 1)
252
+ - endLine: ending line number (optional)
253
+ - description: brief description (1-2 sentences)
254
+ - importance: 'high' | 'medium' | 'low'
255
+
256
+ Only return the 5-10 most important steps, sorted by line number. Output only JSON, no other content.
257
+
258
+ Example:
259
+ {
260
+ "steps": [
261
+ {
262
+ "type": "class",
263
+ "name": "UserController",
264
+ "line": 10,
265
+ "endLine": 50,
266
+ "description": "User controller, handles user-related HTTP requests",
267
+ "importance": "high"
268
+ }
269
+ ]
270
+ }`;
271
+ try {
272
+ const response = await callClaude(prompt);
273
+ if (!response) {
274
+ return { success: false, error: 'Unable to get AI response' };
275
+ }
276
+ const parsed = extractJSON(response);
277
+ return {
278
+ success: true,
279
+ data: {
280
+ steps: parsed.steps || [],
281
+ },
282
+ };
283
+ }
284
+ catch (error) {
285
+ return {
286
+ success: false,
287
+ error: error.message || 'AI analysis failed',
288
+ };
289
+ }
290
+ })();
291
+ pendingRequests.set(cacheKey, requestPromise);
292
+ try {
293
+ const result = await requestPromise;
294
+ // 只缓存成功的结果
295
+ if (result.success) {
296
+ tourCache.set(cacheKey, result);
297
+ }
298
+ res.json(result);
299
+ }
300
+ finally {
301
+ pendingRequests.delete(cacheKey);
302
+ }
303
+ }
304
+ catch (error) {
305
+ console.error('[AI Editor] /tour request processing failed:', error);
306
+ res.status(500).json({
307
+ success: false,
308
+ error: error.message || 'Internal server error',
309
+ });
310
+ }
311
+ });
312
+ /**
313
+ * POST /ask - 选中代码提问
314
+ */
315
+ router.post('/ask', async (req, res) => {
316
+ try {
317
+ const { code, question, filePath, context } = req.body;
318
+ if (!code || !question) {
319
+ return res.status(400).json({
320
+ success: false,
321
+ error: 'Missing required parameters: code and question',
322
+ });
323
+ }
324
+ // 检查缓存
325
+ const cacheKey = `ask:${hashContent(code)}:${hashContent(question)}`;
326
+ const cached = askCache.get(cacheKey);
327
+ if (cached) {
328
+ return res.json({ ...cached, fromCache: true });
329
+ }
330
+ // 检查是否有正在进行的相同请求
331
+ const pending = pendingRequests.get(cacheKey);
332
+ if (pending) {
333
+ const result = await pending;
334
+ return res.json({ ...result, fromCache: true });
335
+ }
336
+ // 创建新请求
337
+ const requestPromise = (async () => {
338
+ const parts = [
339
+ 'You are a professional code analysis assistant. The user has selected a piece of code and asked a question. Please answer based on the code context.',
340
+ '',
341
+ '## User Question',
342
+ question,
343
+ '',
344
+ '## Code Context',
345
+ ];
346
+ if (filePath) {
347
+ parts.push(`File path: ${filePath}`);
348
+ }
349
+ if (context?.language) {
350
+ parts.push(`Language: ${context.language}`);
351
+ }
352
+ parts.push('```' + (context?.language || ''));
353
+ parts.push(code);
354
+ parts.push('```');
355
+ parts.push('');
356
+ parts.push('## Output Requirements');
357
+ parts.push('Answer concisely in 2-4 sentences. Output only the answer text, no extra formatting.');
358
+ const prompt = parts.join('\n');
359
+ try {
360
+ const response = await callClaude(prompt);
361
+ if (!response) {
362
+ return { success: false, error: 'Unable to get AI response' };
363
+ }
364
+ return {
365
+ success: true,
366
+ answer: response.trim(),
367
+ };
368
+ }
369
+ catch (error) {
370
+ return {
371
+ success: false,
372
+ error: error.message || 'AI analysis failed',
373
+ };
374
+ }
375
+ })();
376
+ pendingRequests.set(cacheKey, requestPromise);
377
+ try {
378
+ const result = await requestPromise;
379
+ // 只缓存成功的结果
380
+ if (result.success) {
381
+ askCache.set(cacheKey, result);
382
+ }
383
+ res.json(result);
384
+ }
385
+ finally {
386
+ pendingRequests.delete(cacheKey);
387
+ }
388
+ }
389
+ catch (error) {
390
+ console.error('[AI Editor] /ask request processing failed:', error);
391
+ res.status(500).json({
392
+ success: false,
393
+ error: error.message || 'Internal server error',
394
+ });
395
+ }
396
+ });
397
+ /**
398
+ * POST /heatmap - 代码复杂度热力图
399
+ */
400
+ router.post('/heatmap', async (req, res) => {
401
+ try {
402
+ const { filePath, content, language } = req.body;
403
+ if (!filePath || !content || !language) {
404
+ return res.status(400).json({
405
+ success: false,
406
+ heatmap: [],
407
+ error: 'Missing required parameters: filePath, content, and language',
408
+ });
409
+ }
410
+ // 检查缓存
411
+ const cacheKey = `heatmap:${filePath}:${hashContent(content)}`;
412
+ const cached = heatmapCache.get(cacheKey);
413
+ if (cached) {
414
+ return res.json({ ...cached, fromCache: true });
415
+ }
416
+ // 检查是否有正在进行的相同请求
417
+ const pending = pendingRequests.get(cacheKey);
418
+ if (pending) {
419
+ const result = await pending;
420
+ return res.json({ ...result, fromCache: true });
421
+ }
422
+ // 创建新请求
423
+ const requestPromise = (async () => {
424
+ const prompt = `You are a code complexity analysis expert. Please analyze the code below and assess a complexity score (0-100) for each line.
425
+
426
+ ## Code File: ${filePath}
427
+ Language: ${language}
428
+
429
+ \`\`\`${language}
430
+ ${content}
431
+ \`\`\`
432
+
433
+ ## Scoring Criteria
434
+ - 0-20: Simple statements (variable declarations, simple assignments, etc.)
435
+ - 21-40: Basic logic (single-level if/for/while)
436
+ - 41-60: Medium complexity (nested logic, multi-condition checks)
437
+ - 61-80: High complexity (deep nesting, complex algorithms)
438
+ - 81-100: Very high complexity (code that needs refactoring)
439
+
440
+ ## Output Requirements
441
+ Return JSON format containing a heatmap array, only include lines with complexity > 30:
442
+ {
443
+ "heatmap": [
444
+ {
445
+ "line": line number (from 1),
446
+ "complexity": complexity score (0-100),
447
+ "reason": "brief reason (1 sentence)"
448
+ }
449
+ ]
450
+ }
451
+
452
+ Output only JSON, no other content.`;
453
+ try {
454
+ const response = await callClaude(prompt);
455
+ if (!response) {
456
+ return { success: false, heatmap: [], error: 'Unable to get AI response' };
457
+ }
458
+ const parsed = extractJSON(response);
459
+ return {
460
+ success: true,
461
+ heatmap: parsed.heatmap || [],
462
+ };
463
+ }
464
+ catch (error) {
465
+ return {
466
+ success: false,
467
+ heatmap: [],
468
+ error: error.message || 'AI analysis failed',
469
+ };
470
+ }
471
+ })();
472
+ pendingRequests.set(cacheKey, requestPromise);
473
+ try {
474
+ const result = await requestPromise;
475
+ // 只缓存成功的结果
476
+ if (result.success) {
477
+ heatmapCache.set(cacheKey, result);
478
+ }
479
+ res.json(result);
480
+ }
481
+ finally {
482
+ pendingRequests.delete(cacheKey);
483
+ }
484
+ }
485
+ catch (error) {
486
+ console.error('[AI Editor] /heatmap request processing failed:', error);
487
+ res.status(500).json({
488
+ success: false,
489
+ heatmap: [],
490
+ error: error.message || 'Internal server error',
491
+ });
492
+ }
493
+ });
494
+ /**
495
+ * POST /refactor - 重构建议
496
+ */
497
+ router.post('/refactor', async (req, res) => {
498
+ try {
499
+ const { filePath, content, language } = req.body;
500
+ if (!filePath || !content || !language) {
501
+ return res.status(400).json({
502
+ success: false,
503
+ suggestions: [],
504
+ error: 'Missing required parameters: filePath, content, and language',
505
+ });
506
+ }
507
+ // 检查缓存
508
+ const cacheKey = `refactor:${filePath}:${hashContent(content)}`;
509
+ const cached = refactorCache.get(cacheKey);
510
+ if (cached) {
511
+ return res.json({ ...cached, fromCache: true });
512
+ }
513
+ // 检查是否有正在进行的相同请求
514
+ const pending = pendingRequests.get(cacheKey);
515
+ if (pending) {
516
+ const result = await pending;
517
+ return res.json({ ...result, fromCache: true });
518
+ }
519
+ // 创建新请求
520
+ const requestPromise = (async () => {
521
+ const prompt = `You are a code quality expert. Please analyze the code below and propose refactoring suggestions.
522
+
523
+ ## Code File: ${filePath}
524
+ Language: ${language}
525
+
526
+ \`\`\`${language}
527
+ ${content}
528
+ \`\`\`
529
+
530
+ ## Analysis Dimensions
531
+ - extract: Functions/methods that can be extracted
532
+ - simplify: Logic that can be simplified
533
+ - rename: Poorly named variables/functions
534
+ - unused: Unused code
535
+ - duplicate: Duplicate code
536
+ - performance: Performance issues
537
+ - safety: Security concerns
538
+
539
+ ## Output Requirements
540
+ Return JSON format containing a suggestions array:
541
+ {
542
+ "suggestions": [
543
+ {
544
+ "line": starting line number (from 1),
545
+ "endLine": ending line number,
546
+ "type": "extract" | "simplify" | "rename" | "unused" | "duplicate" | "performance" | "safety",
547
+ "message": "suggestion description (1-2 sentences)",
548
+ "priority": "high" | "medium" | "low"
549
+ }
550
+ ]
551
+ }
552
+
553
+ Only return the 5-10 most important suggestions. Output only JSON, no other content.`;
554
+ try {
555
+ const response = await callClaude(prompt);
556
+ if (!response) {
557
+ return { success: false, suggestions: [], error: 'Unable to get AI response' };
558
+ }
559
+ const parsed = extractJSON(response);
560
+ return {
561
+ success: true,
562
+ suggestions: parsed.suggestions || [],
563
+ };
564
+ }
565
+ catch (error) {
566
+ return {
567
+ success: false,
568
+ suggestions: [],
569
+ error: error.message || 'AI analysis failed',
570
+ };
571
+ }
572
+ })();
573
+ pendingRequests.set(cacheKey, requestPromise);
574
+ try {
575
+ const result = await requestPromise;
576
+ // 只缓存成功的结果
577
+ if (result.success) {
578
+ refactorCache.set(cacheKey, result);
579
+ }
580
+ res.json(result);
581
+ }
582
+ finally {
583
+ pendingRequests.delete(cacheKey);
584
+ }
585
+ }
586
+ catch (error) {
587
+ console.error('[AI Editor] /refactor request processing failed:', error);
588
+ res.status(500).json({
589
+ success: false,
590
+ suggestions: [],
591
+ error: error.message || 'Internal server error',
592
+ });
593
+ }
594
+ });
595
+ /**
596
+ * POST /bubbles - AI 代码气泡注释
597
+ */
598
+ router.post('/bubbles', async (req, res) => {
599
+ try {
600
+ const { filePath, content, language } = req.body;
601
+ if (!filePath || !content || !language) {
602
+ return res.status(400).json({
603
+ success: false,
604
+ bubbles: [],
605
+ error: 'Missing required parameters: filePath, content, and language',
606
+ });
607
+ }
608
+ // 检查缓存
609
+ const cacheKey = `bubbles:${filePath}:${hashContent(content)}`;
610
+ const cached = bubblesCache.get(cacheKey);
611
+ if (cached) {
612
+ return res.json({ ...cached, fromCache: true });
613
+ }
614
+ // 检查是否有正在进行的相同请求
615
+ const pending = pendingRequests.get(cacheKey);
616
+ if (pending) {
617
+ const result = await pending;
618
+ return res.json({ ...result, fromCache: true });
619
+ }
620
+ // 创建新请求
621
+ const requestPromise = (async () => {
622
+ const prompt = `You are a code explanation expert. Please generate valuable explanation bubbles for the code below to help readers understand the code.
623
+
624
+ ## Code File: ${filePath}
625
+ Language: ${language}
626
+
627
+ \`\`\`${language}
628
+ ${content}
629
+ \`\`\`
630
+
631
+ ## Bubble Types
632
+ - info: General information (code purpose, design patterns, etc.)
633
+ - warning: Notes (boundary conditions, potential issues, etc.)
634
+ - tip: Optimization suggestions (better approaches, performance tips, etc.)
635
+
636
+ ## Output Requirements
637
+ Return JSON format containing a bubbles array:
638
+ {
639
+ "bubbles": [
640
+ {
641
+ "line": line number (from 1),
642
+ "message": "explanation text (1-2 sentences, valuable content, avoid obvious statements)",
643
+ "type": "info" | "warning" | "tip"
644
+ }
645
+ ]
646
+ }
647
+
648
+ Only return the 3-8 most valuable bubbles, avoid obvious content. Output only JSON, no other content.`;
649
+ try {
650
+ const response = await callClaude(prompt);
651
+ if (!response) {
652
+ return { success: false, bubbles: [], error: 'Unable to get AI response' };
653
+ }
654
+ const parsed = extractJSON(response);
655
+ return {
656
+ success: true,
657
+ bubbles: parsed.bubbles || [],
658
+ };
659
+ }
660
+ catch (error) {
661
+ return {
662
+ success: false,
663
+ bubbles: [],
664
+ error: error.message || 'AI analysis failed',
665
+ };
666
+ }
667
+ })();
668
+ pendingRequests.set(cacheKey, requestPromise);
669
+ try {
670
+ const result = await requestPromise;
671
+ // 只缓存成功的结果
672
+ if (result.success) {
673
+ bubblesCache.set(cacheKey, result);
674
+ }
675
+ res.json(result);
676
+ }
677
+ finally {
678
+ pendingRequests.delete(cacheKey);
679
+ }
680
+ }
681
+ catch (error) {
682
+ console.error('[AI Editor] /bubbles request processing failed:', error);
683
+ res.status(500).json({
684
+ success: false,
685
+ bubbles: [],
686
+ error: error.message || 'Internal server error',
687
+ });
688
+ }
689
+ });
690
+ /**
691
+ * POST /intent-to-code - Intent-to-Code (意图编程)
692
+ */
693
+ router.post('/intent-to-code', async (req, res) => {
694
+ try {
695
+ const { filePath, code, intent, language, mode } = req.body;
696
+ if (!filePath || !code || !intent || !language || !mode) {
697
+ return res.status(400).json({
698
+ success: false,
699
+ error: 'Missing required parameters: filePath, code, intent, language, and mode',
700
+ });
701
+ }
702
+ // 检查缓存
703
+ const cacheKey = `intent:${hashContent(code)}:${hashContent(intent)}:${mode}`;
704
+ const cached = intentCache.get(cacheKey);
705
+ if (cached) {
706
+ return res.json({ ...cached, fromCache: true });
707
+ }
708
+ // 检查是否有正在进行的相同请求
709
+ const pending = pendingRequests.get(cacheKey);
710
+ if (pending) {
711
+ const result = await pending;
712
+ return res.json({ ...result, fromCache: true });
713
+ }
714
+ // 创建新请求
715
+ const requestPromise = (async () => {
716
+ let prompt = '';
717
+ if (mode === 'rewrite') {
718
+ prompt = `You are a professional code writing assistant. The user has selected a piece of code and described their modification intent. Please rewrite the code according to the intent.
719
+
720
+ ## Original Code
721
+ File path: ${filePath}
722
+ Language: ${language}
723
+
724
+ \`\`\`${language}
725
+ ${code}
726
+ \`\`\`
727
+
728
+ ## User Intent
729
+ ${intent}
730
+
731
+ ## Output Requirements
732
+ Return JSON format:
733
+ {
734
+ "code": "complete rewritten code (maintain formatting and style)",
735
+ "explanation": "brief description of what was changed (1-2 sentences)"
736
+ }
737
+
738
+ Output only JSON, no other content.`;
739
+ }
740
+ else {
741
+ // generate 模式
742
+ prompt = `You are a professional code writing assistant. The user wants to generate code after a code comment. Please generate code based on the intent.
743
+
744
+ ## Context
745
+ File path: ${filePath}
746
+ Language: ${language}
747
+ Comment content: ${code}
748
+
749
+ ## User Intent
750
+ ${intent}
751
+
752
+ ## Output Requirements
753
+ Return JSON format:
754
+ {
755
+ "code": "generated code (well-formatted, ready to use)",
756
+ "explanation": "brief description of what was generated (1-2 sentences)"
757
+ }
758
+
759
+ Output only JSON, no other content.`;
760
+ }
761
+ try {
762
+ const response = await callClaude(prompt);
763
+ if (!response) {
764
+ return { success: false, error: 'Unable to get AI response' };
765
+ }
766
+ const parsed = extractJSON(response);
767
+ return {
768
+ success: true,
769
+ code: parsed.code || '',
770
+ explanation: parsed.explanation || '',
771
+ };
772
+ }
773
+ catch (error) {
774
+ return {
775
+ success: false,
776
+ error: error.message || 'AI generation failed',
777
+ };
778
+ }
779
+ })();
780
+ pendingRequests.set(cacheKey, requestPromise);
781
+ try {
782
+ const result = await requestPromise;
783
+ // 只缓存成功的结果
784
+ if (result.success) {
785
+ intentCache.set(cacheKey, result);
786
+ }
787
+ res.json(result);
788
+ }
789
+ finally {
790
+ pendingRequests.delete(cacheKey);
791
+ }
792
+ }
793
+ catch (error) {
794
+ console.error('[AI Editor] /intent-to-code request processing failed:', error);
795
+ res.status(500).json({
796
+ success: false,
797
+ error: error.message || 'Internal server error',
798
+ });
799
+ }
800
+ });
801
+ /**
802
+ * POST /code-review - AI Code Review (代码审查)
803
+ */
804
+ router.post('/code-review', async (req, res) => {
805
+ try {
806
+ const { filePath, content, language } = req.body;
807
+ if (!filePath || !content || !language) {
808
+ return res.status(400).json({
809
+ success: false,
810
+ issues: [],
811
+ error: 'Missing required parameters: filePath, content, and language',
812
+ });
813
+ }
814
+ // 检查缓存
815
+ const cacheKey = `review:${filePath}:${hashContent(content)}`;
816
+ const cached = reviewCache.get(cacheKey);
817
+ if (cached) {
818
+ return res.json({ ...cached, fromCache: true });
819
+ }
820
+ // 检查是否有正在进行的相同请求
821
+ const pending = pendingRequests.get(cacheKey);
822
+ if (pending) {
823
+ const result = await pending;
824
+ return res.json({ ...result, fromCache: true });
825
+ }
826
+ // 创建新请求
827
+ const requestPromise = (async () => {
828
+ const prompt = `You are a code review expert. Please analyze the code below, find potential issues, and categorize them by type.
829
+
830
+ ## Code File: ${filePath}
831
+ Language: ${language}
832
+
833
+ \`\`\`${language}
834
+ ${content}
835
+ \`\`\`
836
+
837
+ ## Issue Categories
838
+ - bug: Potential bugs (null pointers, uninitialized variables, race conditions, boundary conditions, etc.)
839
+ - performance: Performance issues (N+1 queries, unnecessary renders, memory leaks, inefficient algorithms, etc.)
840
+ - security: Security concerns (injection vulnerabilities, XSS, sensitive data exposure, insecure random numbers, etc.)
841
+ - style: Code style and best practices (naming conventions, code duplication, readability, design patterns, etc.)
842
+
843
+ ## Severity Levels
844
+ - error: Serious issue, must fix
845
+ - warning: Warning, should fix
846
+ - info: Informational, optional optimization
847
+
848
+ ## Output Requirements
849
+ Return JSON format:
850
+ {
851
+ "issues": [
852
+ {
853
+ "line": starting line number (from 1),
854
+ "endLine": ending line number,
855
+ "type": "bug" | "performance" | "security" | "style",
856
+ "severity": "error" | "warning" | "info",
857
+ "message": "issue description (1 sentence)",
858
+ "suggestion": "fix suggestion (1 sentence, optional)"
859
+ }
860
+ ],
861
+ "summary": "overall code quality summary (2-3 sentences)"
862
+ }
863
+
864
+ Only return the 5-15 most important issues. Output only JSON, no other content.`;
865
+ try {
866
+ const response = await callClaude(prompt);
867
+ if (!response) {
868
+ return { success: false, issues: [], error: 'Unable to get AI response' };
869
+ }
870
+ const parsed = extractJSON(response);
871
+ return {
872
+ success: true,
873
+ issues: parsed.issues || [],
874
+ summary: parsed.summary || '',
875
+ };
876
+ }
877
+ catch (error) {
878
+ return {
879
+ success: false,
880
+ issues: [],
881
+ error: error.message || 'AI analysis failed',
882
+ };
883
+ }
884
+ })();
885
+ pendingRequests.set(cacheKey, requestPromise);
886
+ try {
887
+ const result = await requestPromise;
888
+ // 只缓存成功的结果
889
+ if (result.success) {
890
+ reviewCache.set(cacheKey, result);
891
+ }
892
+ res.json(result);
893
+ }
894
+ finally {
895
+ pendingRequests.delete(cacheKey);
896
+ }
897
+ }
898
+ catch (error) {
899
+ console.error('[AI Editor] /code-review request processing failed:', error);
900
+ res.status(500).json({
901
+ success: false,
902
+ issues: [],
903
+ error: error.message || 'Internal server error',
904
+ });
905
+ }
906
+ });
907
+ /**
908
+ * POST /generate-test - Test Generator (测试生成)
909
+ */
910
+ router.post('/generate-test', async (req, res) => {
911
+ try {
912
+ const { filePath, code, functionName, language, framework } = req.body;
913
+ if (!filePath || !code || !functionName || !language) {
914
+ return res.status(400).json({
915
+ success: false,
916
+ error: 'Missing required parameters: filePath, code, functionName, and language',
917
+ });
918
+ }
919
+ // 检查缓存
920
+ const cacheKey = `testgen:${hashContent(code)}:${functionName}:${language}`;
921
+ const cached = testGenCache.get(cacheKey);
922
+ if (cached) {
923
+ return res.json({ ...cached, fromCache: true });
924
+ }
925
+ // 检查是否有正在进行的相同请求
926
+ const pending = pendingRequests.get(cacheKey);
927
+ if (pending) {
928
+ const result = await pending;
929
+ return res.json({ ...result, fromCache: true });
930
+ }
931
+ // 创建新请求
932
+ const requestPromise = (async () => {
933
+ // 自动检测测试框架
934
+ const detectFramework = (lang) => {
935
+ const frameworks = {
936
+ 'typescript': 'vitest',
937
+ 'javascript': 'vitest',
938
+ 'python': 'pytest',
939
+ 'go': 'testing',
940
+ 'rust': 'rust-test',
941
+ 'java': 'junit',
942
+ };
943
+ return frameworks[lang] || 'vitest';
944
+ };
945
+ const testFramework = framework || detectFramework(language);
946
+ const prompt = `You are a test code generation expert. Please generate complete unit tests for the function below.
947
+
948
+ ## Function Code
949
+ File path: ${filePath}
950
+ Language: ${language}
951
+ Function name: ${functionName}
952
+
953
+ \`\`\`${language}
954
+ ${code}
955
+ \`\`\`
956
+
957
+ ## Test Requirements
958
+ - Test framework: ${testFramework}
959
+ - Cover normal cases, boundary conditions, and error cases
960
+ - Test code should be complete and runnable, including necessary imports and setup
961
+ - Test case names should be clear and descriptive
962
+ - Each test should be an independent test case
963
+
964
+ ## Output Requirements
965
+ Return JSON format:
966
+ {
967
+ "testCode": "complete test file code",
968
+ "testFramework": "${testFramework}",
969
+ "testCount": number of test cases (number),
970
+ "explanation": "what scenarios the tests cover (1-2 sentences)"
971
+ }
972
+
973
+ Output only JSON, no other content.`;
974
+ try {
975
+ const response = await callClaude(prompt);
976
+ if (!response) {
977
+ return { success: false, error: 'Unable to get AI response' };
978
+ }
979
+ const parsed = extractJSON(response);
980
+ return {
981
+ success: true,
982
+ testCode: parsed.testCode || '',
983
+ testFramework: parsed.testFramework || testFramework,
984
+ testCount: parsed.testCount || 0,
985
+ explanation: parsed.explanation || '',
986
+ };
987
+ }
988
+ catch (error) {
989
+ return {
990
+ success: false,
991
+ error: error.message || 'AI generation failed',
992
+ };
993
+ }
994
+ })();
995
+ pendingRequests.set(cacheKey, requestPromise);
996
+ try {
997
+ const result = await requestPromise;
998
+ // 只缓存成功的结果
999
+ if (result.success) {
1000
+ testGenCache.set(cacheKey, result);
1001
+ }
1002
+ res.json(result);
1003
+ }
1004
+ finally {
1005
+ pendingRequests.delete(cacheKey);
1006
+ }
1007
+ }
1008
+ catch (error) {
1009
+ console.error('[AI Editor] /generate-test request processing failed:', error);
1010
+ res.status(500).json({
1011
+ success: false,
1012
+ error: error.message || 'Internal server error',
1013
+ });
1014
+ }
1015
+ });
1016
+ /**
1017
+ * POST /api/ai-editor/smart-diff
1018
+ * 分析代码改动的语义影响
1019
+ */
1020
+ router.post('/smart-diff', async (req, res) => {
1021
+ try {
1022
+ const { filePath, language, originalContent, modifiedContent } = req.body;
1023
+ // 参数验证
1024
+ if (!filePath || !originalContent || !modifiedContent) {
1025
+ return res.status(400).json({
1026
+ success: false,
1027
+ error: 'Missing required parameters (filePath, originalContent, modifiedContent)',
1028
+ });
1029
+ }
1030
+ // 生成缓存键
1031
+ const cacheKey = crypto
1032
+ .createHash('md5')
1033
+ .update(`smart-diff:${filePath}:${originalContent}:${modifiedContent}`)
1034
+ .digest('hex');
1035
+ // 检查缓存
1036
+ const cached = smartDiffCache.get(cacheKey);
1037
+ if (cached) {
1038
+ console.log(`[AI Editor] /smart-diff cache hit: ${cacheKey}`);
1039
+ return res.json({ ...cached, fromCache: true });
1040
+ }
1041
+ // 检查是否有正在处理的相同请求
1042
+ if (pendingRequests.has(cacheKey)) {
1043
+ console.log(`[AI Editor] /smart-diff request already in progress, reusing: ${cacheKey}`);
1044
+ const result = await pendingRequests.get(cacheKey);
1045
+ return res.json(result);
1046
+ }
1047
+ // 创建新请求
1048
+ const requestPromise = (async () => {
1049
+ try {
1050
+ const client = createClient();
1051
+ if (!client) {
1052
+ return {
1053
+ success: false,
1054
+ error: 'API client not initialized, please check API Key configuration',
1055
+ };
1056
+ }
1057
+ const prompt = `Please analyze the semantic impact of the following code changes.
1058
+
1059
+ File path: ${filePath}
1060
+ Programming language: ${language}
1061
+
1062
+ Original code:
1063
+ \`\`\`${language}
1064
+ ${originalContent}
1065
+ \`\`\`
1066
+
1067
+ Modified code:
1068
+ \`\`\`${language}
1069
+ ${modifiedContent}
1070
+ \`\`\`
1071
+
1072
+ Please analyze:
1073
+ 1. Change summary: briefly describe what this change does
1074
+ 2. Risk level (impact): safe (no risk), warning (potential issues to watch), danger (may introduce bugs)
1075
+ 3. Specific changes list: each change includes type (added/removed/modified), description (semantic description), risk (optional risk note)
1076
+ 4. Warnings list: list all potential issues
1077
+
1078
+ Return in JSON format as follows:
1079
+ {
1080
+ "summary": "change summary",
1081
+ "impact": "safe" | "warning" | "danger",
1082
+ "changes": [
1083
+ { "type": "added" | "removed" | "modified", "description": "semantic description", "risk": "optional risk note" }
1084
+ ],
1085
+ "warnings": ["warning 1", "warning 2"]
1086
+ }`;
1087
+ console.log(`[AI Editor] /smart-diff calling Claude: ${filePath}`);
1088
+ const response = await client.createMessage([{ role: 'user', content: [{ type: 'text', text: prompt }] }], undefined, // 无工具
1089
+ undefined, // 无 system prompt
1090
+ { enableThinking: false });
1091
+ const rawText = response.content[0]?.type === 'text' ? response.content[0].text : '';
1092
+ if (!rawText) {
1093
+ return {
1094
+ success: false,
1095
+ error: 'AI did not return valid analysis results',
1096
+ };
1097
+ }
1098
+ // 尝试解析 JSON
1099
+ const parsed = extractJSON(rawText);
1100
+ if (!parsed || !parsed.summary || !parsed.impact) {
1101
+ console.error('[AI Editor] /smart-diff failed to parse AI response JSON:', rawText);
1102
+ return {
1103
+ success: false,
1104
+ error: 'AI returned incorrect format',
1105
+ };
1106
+ }
1107
+ return {
1108
+ success: true,
1109
+ analysis: {
1110
+ summary: parsed.summary,
1111
+ impact: parsed.impact,
1112
+ changes: parsed.changes || [],
1113
+ warnings: parsed.warnings || [],
1114
+ },
1115
+ };
1116
+ }
1117
+ catch (error) {
1118
+ console.error('[AI Editor] /smart-diff AI call failed:', error);
1119
+ return {
1120
+ success: false,
1121
+ error: error.message || 'AI call failed',
1122
+ };
1123
+ }
1124
+ })();
1125
+ pendingRequests.set(cacheKey, requestPromise);
1126
+ try {
1127
+ const result = await requestPromise;
1128
+ // 只缓存成功的结果
1129
+ if (result.success) {
1130
+ smartDiffCache.set(cacheKey, result);
1131
+ }
1132
+ res.json(result);
1133
+ }
1134
+ finally {
1135
+ pendingRequests.delete(cacheKey);
1136
+ }
1137
+ }
1138
+ catch (error) {
1139
+ console.error('[AI Editor] /smart-diff request processing failed:', error);
1140
+ res.status(500).json({
1141
+ success: false,
1142
+ error: error.message || 'Internal server error',
1143
+ });
1144
+ }
1145
+ });
1146
+ /**
1147
+ * POST /api/ai-editor/dead-code
1148
+ * 检测代码中的死代码
1149
+ */
1150
+ router.post('/dead-code', async (req, res) => {
1151
+ try {
1152
+ const { filePath, content, language } = req.body;
1153
+ // 参数验证
1154
+ if (!filePath || !content) {
1155
+ return res.status(400).json({
1156
+ success: false,
1157
+ deadCode: [],
1158
+ error: 'Missing required parameters (filePath, content)',
1159
+ });
1160
+ }
1161
+ // 生成缓存键
1162
+ const cacheKey = crypto
1163
+ .createHash('md5')
1164
+ .update(`dead-code:${filePath}:${content}`)
1165
+ .digest('hex');
1166
+ // 检查缓存
1167
+ const cached = deadCodeCache.get(cacheKey);
1168
+ if (cached) {
1169
+ console.log(`[AI Editor] /dead-code cache hit: ${cacheKey}`);
1170
+ return res.json({ ...cached, fromCache: true });
1171
+ }
1172
+ // 检查是否有正在处理的相同请求
1173
+ if (pendingRequests.has(cacheKey)) {
1174
+ console.log(`[AI Editor] /dead-code request already in progress, reusing: ${cacheKey}`);
1175
+ const result = await pendingRequests.get(cacheKey);
1176
+ return res.json(result);
1177
+ }
1178
+ // 创建新请求
1179
+ const requestPromise = (async () => {
1180
+ try {
1181
+ const client = createClient();
1182
+ if (!client) {
1183
+ return {
1184
+ success: false,
1185
+ deadCode: [],
1186
+ error: 'API client not initialized, please check API Key configuration',
1187
+ };
1188
+ }
1189
+ const prompt = `Please analyze the following code for dead code.
1190
+
1191
+ File path: ${filePath}
1192
+ Programming language: ${language}
1193
+
1194
+ Code content:
1195
+ \`\`\`${language}
1196
+ ${content}
1197
+ \`\`\`
1198
+
1199
+ Please detect the following types of dead code:
1200
+ 1. unused: Unused variables, functions, imports
1201
+ 2. unreachable: Unreachable code (e.g., code after return)
1202
+ 3. redundant: Redundant code (duplicate assignments, always-true conditions, etc.)
1203
+ 4. suspicious: Exported but possibly unused across the entire project (cannot be determined from single-file analysis, mark as suspicious)
1204
+
1205
+ For each dead code instance, return:
1206
+ - line: starting line number
1207
+ - endLine: ending line number
1208
+ - type: type (unused/unreachable/redundant/suspicious)
1209
+ - name: variable/function/import name
1210
+ - reason: why it is considered dead code
1211
+ - confidence: confidence level (high/medium/low)
1212
+
1213
+ Return in JSON format as follows:
1214
+ {
1215
+ "deadCode": [
1216
+ {
1217
+ "line": 10,
1218
+ "endLine": 12,
1219
+ "type": "unused",
1220
+ "name": "unusedVar",
1221
+ "reason": "Variable declared but never used",
1222
+ "confidence": "high"
1223
+ }
1224
+ ],
1225
+ "summary": "Detected N instances of dead code"
1226
+ }
1227
+
1228
+ If there is no dead code, return an empty array.`;
1229
+ console.log(`[AI Editor] /dead-code calling Claude: ${filePath}`);
1230
+ const response = await client.createMessage([{ role: 'user', content: [{ type: 'text', text: prompt }] }], undefined, // 无工具
1231
+ undefined, // 无 system prompt
1232
+ { enableThinking: false });
1233
+ const rawText = response.content[0]?.type === 'text' ? response.content[0].text : '';
1234
+ if (!rawText) {
1235
+ return {
1236
+ success: false,
1237
+ deadCode: [],
1238
+ error: 'AI did not return valid analysis results',
1239
+ };
1240
+ }
1241
+ // 尝试解析 JSON
1242
+ const parsed = extractJSON(rawText);
1243
+ if (!parsed || !Array.isArray(parsed.deadCode)) {
1244
+ console.error('[AI Editor] /dead-code failed to parse AI response JSON:', rawText);
1245
+ return {
1246
+ success: false,
1247
+ deadCode: [],
1248
+ error: 'AI returned incorrect format',
1249
+ };
1250
+ }
1251
+ return {
1252
+ success: true,
1253
+ deadCode: parsed.deadCode,
1254
+ summary: parsed.summary || `Detected ${parsed.deadCode.length} instances of dead code`,
1255
+ };
1256
+ }
1257
+ catch (error) {
1258
+ console.error('[AI Editor] /dead-code AI call failed:', error);
1259
+ return {
1260
+ success: false,
1261
+ deadCode: [],
1262
+ error: error.message || 'AI call failed',
1263
+ };
1264
+ }
1265
+ })();
1266
+ pendingRequests.set(cacheKey, requestPromise);
1267
+ try {
1268
+ const result = await requestPromise;
1269
+ // 只缓存成功的结果
1270
+ if (result.success) {
1271
+ deadCodeCache.set(cacheKey, result);
1272
+ }
1273
+ res.json(result);
1274
+ }
1275
+ finally {
1276
+ pendingRequests.delete(cacheKey);
1277
+ }
1278
+ }
1279
+ catch (error) {
1280
+ console.error('[AI Editor] /dead-code request processing failed:', error);
1281
+ res.status(500).json({
1282
+ success: false,
1283
+ deadCode: [],
1284
+ error: error.message || 'Internal server error',
1285
+ });
1286
+ }
1287
+ });
1288
+ /**
1289
+ * POST /api/ai-editor/conversation
1290
+ * 多轮代码对话,支持历史上下文
1291
+ */
1292
+ router.post('/conversation', async (req, res) => {
1293
+ try {
1294
+ const { filePath, language, codeContext, cursorLine, messages, question } = req.body;
1295
+ // 参数验证
1296
+ if (!filePath || !codeContext || !question) {
1297
+ return res.status(400).json({
1298
+ success: false,
1299
+ error: 'Missing required parameters (filePath, codeContext, question)',
1300
+ });
1301
+ }
1302
+ // 生成缓存键(不缓存,但用于防重)
1303
+ const cacheKey = crypto
1304
+ .createHash('md5')
1305
+ .update(`conversation:${filePath}:${JSON.stringify(messages)}:${question}`)
1306
+ .digest('hex');
1307
+ // 检查是否有正在处理的相同请求(防重)
1308
+ if (pendingRequests.has(cacheKey)) {
1309
+ console.log(`[AI Editor] /conversation request already in progress, reusing: ${cacheKey}`);
1310
+ const result = await pendingRequests.get(cacheKey);
1311
+ return res.json(result);
1312
+ }
1313
+ // 创建新请求
1314
+ const requestPromise = (async () => {
1315
+ try {
1316
+ const client = createClient();
1317
+ if (!client) {
1318
+ return {
1319
+ success: false,
1320
+ error: 'API client not initialized, please check API Key configuration',
1321
+ };
1322
+ }
1323
+ // 构建 system prompt
1324
+ const systemPrompt = `You are a professional code assistant. The user is viewing the following file:
1325
+
1326
+ File path: ${filePath}
1327
+ Programming language: ${language}
1328
+ ${cursorLine ? `Cursor line: ${cursorLine}` : ''}
1329
+
1330
+ Current code context:
1331
+ \`\`\`${language}
1332
+ ${codeContext}
1333
+ \`\`\`
1334
+
1335
+ Please answer the user's questions based on the code context above. If the user mentions "this code", "current position", etc., refer to the code context above.`;
1336
+ // 构建消息列表
1337
+ const conversationMessages = [
1338
+ ...messages.map(msg => ({
1339
+ role: msg.role,
1340
+ content: [{ type: 'text', text: msg.content }],
1341
+ })),
1342
+ {
1343
+ role: 'user',
1344
+ content: [{ type: 'text', text: question }],
1345
+ },
1346
+ ];
1347
+ console.log(`[AI Editor] /conversation calling Claude: ${filePath}, ${conversationMessages.length} messages`);
1348
+ // 调用 Claude API
1349
+ const response = await client.createMessage(conversationMessages, undefined, // 无工具
1350
+ systemPrompt, // system prompt
1351
+ { enableThinking: false });
1352
+ const answer = response.content[0]?.type === 'text' ? response.content[0].text : '';
1353
+ if (!answer) {
1354
+ return {
1355
+ success: false,
1356
+ error: 'AI did not return a valid answer',
1357
+ };
1358
+ }
1359
+ return {
1360
+ success: true,
1361
+ answer,
1362
+ };
1363
+ }
1364
+ catch (error) {
1365
+ console.error('[AI Editor] /conversation AI call failed:', error);
1366
+ return {
1367
+ success: false,
1368
+ error: error.message || 'AI call failed',
1369
+ };
1370
+ }
1371
+ })();
1372
+ pendingRequests.set(cacheKey, requestPromise);
1373
+ try {
1374
+ const result = await requestPromise;
1375
+ res.json(result);
1376
+ }
1377
+ finally {
1378
+ pendingRequests.delete(cacheKey);
1379
+ }
1380
+ }
1381
+ catch (error) {
1382
+ console.error('[AI Editor] /conversation request processing failed:', error);
1383
+ res.status(500).json({
1384
+ success: false,
1385
+ error: error.message || 'Internal server error',
1386
+ });
1387
+ }
1388
+ });
1389
+ // ============================================================================
1390
+ // 第三批 AI 功能 API 端点
1391
+ // ============================================================================
1392
+ /**
1393
+ * POST /api/ai-editor/time-machine
1394
+ * 代码时光机:分析代码的 git 历史演变
1395
+ */
1396
+ router.post('/time-machine', async (req, res) => {
1397
+ try {
1398
+ const { filePath, content, language, selectedCode, startLine, endLine } = req.body;
1399
+ // 参数验证
1400
+ if (!filePath || !content) {
1401
+ return res.status(400).json({
1402
+ success: false,
1403
+ error: 'Missing required parameters (filePath, content)',
1404
+ });
1405
+ }
1406
+ // 生成缓存键
1407
+ const cacheKey = crypto
1408
+ .createHash('md5')
1409
+ .update(`time-machine:${filePath}:${selectedCode || content}:${startLine}:${endLine}`)
1410
+ .digest('hex');
1411
+ // 检查缓存
1412
+ const cached = timeMachineCache.get(cacheKey);
1413
+ if (cached) {
1414
+ console.log(`[AI Editor] /time-machine cache hit: ${cacheKey}`);
1415
+ return res.json({ ...cached, fromCache: true });
1416
+ }
1417
+ // 检查是否有正在处理的相同请求
1418
+ if (pendingRequests.has(cacheKey)) {
1419
+ console.log(`[AI Editor] /time-machine request already in progress, reusing: ${cacheKey}`);
1420
+ const result = await pendingRequests.get(cacheKey);
1421
+ return res.json(result);
1422
+ }
1423
+ // 创建新请求
1424
+ const requestPromise = (async () => {
1425
+ try {
1426
+ const client = createClient();
1427
+ if (!client) {
1428
+ return {
1429
+ success: false,
1430
+ error: 'API client not initialized, please check API Key configuration',
1431
+ };
1432
+ }
1433
+ // 获取 git 历史
1434
+ let commits = [];
1435
+ let gitError = '';
1436
+ try {
1437
+ // 获取文件的整体历史(最近20条)
1438
+ const gitLogCmd = `git log --follow --format="%H|%an|%ae|%ad|%s" -20 -- "${filePath}"`;
1439
+ const gitOutput = execSync(gitLogCmd, {
1440
+ cwd: process.cwd(),
1441
+ encoding: 'utf-8',
1442
+ timeout: 5000,
1443
+ });
1444
+ // 解析 git log 输出
1445
+ const lines = gitOutput.trim().split('\n').filter(line => line);
1446
+ commits = lines.map(line => {
1447
+ const [hash, author, email, date, ...messageParts] = line.split('|');
1448
+ return {
1449
+ hash: hash || '',
1450
+ author: author || '',
1451
+ email: email || '',
1452
+ date: date || '',
1453
+ message: messageParts.join('|') || '',
1454
+ };
1455
+ });
1456
+ // 如果指定了行号范围,还获取该区域的历史
1457
+ if (startLine && endLine) {
1458
+ try {
1459
+ const gitLineLogCmd = `git log -L ${startLine},${endLine}:"${filePath}" --format="%H|%an|%ad|%s" -10`;
1460
+ const lineLogOutput = execSync(gitLineLogCmd, {
1461
+ cwd: process.cwd(),
1462
+ encoding: 'utf-8',
1463
+ timeout: 5000,
1464
+ });
1465
+ // 这个输出会更详细,但格式复杂,我们暂时只用于丰富上下文
1466
+ }
1467
+ catch (lineError) {
1468
+ console.log('[AI Editor] /time-machine git log -L failed (possibly unsupported), skipping');
1469
+ }
1470
+ }
1471
+ }
1472
+ catch (error) {
1473
+ console.error('[AI Editor] /time-machine git command failed:', error);
1474
+ gitError = error.message || 'Git command execution failed';
1475
+ // 不是 git repo 或文件无历史,继续但通知 AI
1476
+ }
1477
+ // 构建 AI prompt
1478
+ const codeToAnalyze = selectedCode || content;
1479
+ const rangeDesc = startLine && endLine ? `Selected code range (lines ${startLine}-${endLine})` : 'entire file';
1480
+ const prompt = `Please analyze the evolution history of the following code.
1481
+
1482
+ File path: ${filePath}
1483
+ Analysis scope: ${rangeDesc}
1484
+
1485
+ ${commits.length > 0 ? `Git history (last ${commits.length} commits):
1486
+ ${commits.map(c => `- ${c.hash.substring(0, 7)} | ${c.author} | ${c.date} | ${c.message}`).join('\n')}
1487
+ ` : `Note: This file has no Git history${gitError ? ` (reason: ${gitError})` : ''}, please infer the possible evolution process based on the code content.`}
1488
+
1489
+ Code content:
1490
+ \`\`\`${language}
1491
+ ${codeToAnalyze}
1492
+ \`\`\`
1493
+
1494
+ Return the analysis results in JSON format:
1495
+ {
1496
+ "story": "Describe in plain language how this code evolved step by step to its current state, including major design decisions and refactoring processes",
1497
+ "keyChanges": [
1498
+ {
1499
+ "date": "2024-01-15",
1500
+ "description": "Initial version, implemented basic functionality"
1501
+ },
1502
+ {
1503
+ "date": "2024-02-20",
1504
+ "description": "Refactoring: introduced dependency injection pattern"
1505
+ }
1506
+ ]
1507
+ }
1508
+
1509
+ If there is no Git history, please infer the possible evolution process based on the code structure and comments (e.g., from simple to complex, from hardcoded to configurable, etc.).`;
1510
+ console.log(`[AI Editor] /time-machine calling Claude: ${filePath}, ${commits.length} commits`);
1511
+ const response = await client.createMessage([{ role: 'user', content: [{ type: 'text', text: prompt }] }], undefined, undefined, { enableThinking: false });
1512
+ const rawText = response.content[0]?.type === 'text' ? response.content[0].text : '';
1513
+ if (!rawText) {
1514
+ return {
1515
+ success: false,
1516
+ error: 'AI did not return valid analysis results',
1517
+ };
1518
+ }
1519
+ // 解析 JSON
1520
+ const parsed = extractJSON(rawText);
1521
+ if (!parsed || !parsed.story) {
1522
+ console.error('[AI Editor] /time-machine failed to parse AI response JSON:', rawText);
1523
+ return {
1524
+ success: false,
1525
+ error: 'AI returned incorrect format',
1526
+ };
1527
+ }
1528
+ return {
1529
+ success: true,
1530
+ history: {
1531
+ commits: commits,
1532
+ story: parsed.story,
1533
+ keyChanges: parsed.keyChanges || [],
1534
+ },
1535
+ };
1536
+ }
1537
+ catch (error) {
1538
+ console.error('[AI Editor] /time-machine AI call failed:', error);
1539
+ return {
1540
+ success: false,
1541
+ error: error.message || 'AI call failed',
1542
+ };
1543
+ }
1544
+ })();
1545
+ pendingRequests.set(cacheKey, requestPromise);
1546
+ try {
1547
+ const result = await requestPromise;
1548
+ // 只缓存成功的结果
1549
+ if (result.success) {
1550
+ timeMachineCache.set(cacheKey, result);
1551
+ }
1552
+ res.json(result);
1553
+ }
1554
+ finally {
1555
+ pendingRequests.delete(cacheKey);
1556
+ }
1557
+ }
1558
+ catch (error) {
1559
+ console.error('[AI Editor] /time-machine request processing failed:', error);
1560
+ res.status(500).json({
1561
+ success: false,
1562
+ error: error.message || 'Internal server error',
1563
+ });
1564
+ }
1565
+ });
1566
+ /**
1567
+ * POST /api/ai-editor/detect-patterns
1568
+ * 模式检测器:检测代码中的重复模式
1569
+ */
1570
+ router.post('/detect-patterns', async (req, res) => {
1571
+ try {
1572
+ const { filePath, content, language } = req.body;
1573
+ // 参数验证
1574
+ if (!filePath || !content) {
1575
+ return res.status(400).json({
1576
+ success: false,
1577
+ patterns: [],
1578
+ error: 'Missing required parameters (filePath, content)',
1579
+ });
1580
+ }
1581
+ // 生成缓存键
1582
+ const cacheKey = crypto
1583
+ .createHash('md5')
1584
+ .update(`detect-patterns:${filePath}:${content}`)
1585
+ .digest('hex');
1586
+ // 检查缓存
1587
+ const cached = patternCache.get(cacheKey);
1588
+ if (cached) {
1589
+ console.log(`[AI Editor] /detect-patterns cache hit: ${cacheKey}`);
1590
+ return res.json({ ...cached, fromCache: true });
1591
+ }
1592
+ // 检查是否有正在处理的相同请求
1593
+ if (pendingRequests.has(cacheKey)) {
1594
+ console.log(`[AI Editor] /detect-patterns request already in progress, reusing: ${cacheKey}`);
1595
+ const result = await pendingRequests.get(cacheKey);
1596
+ return res.json(result);
1597
+ }
1598
+ // 创建新请求
1599
+ const requestPromise = (async () => {
1600
+ try {
1601
+ const client = createClient();
1602
+ if (!client) {
1603
+ return {
1604
+ success: false,
1605
+ patterns: [],
1606
+ error: 'API client not initialized, please check API Key configuration',
1607
+ };
1608
+ }
1609
+ const prompt = `Please analyze the following code for duplicate patterns and abstractable code.
1610
+
1611
+ File path: ${filePath}
1612
+ Programming language: ${language}
1613
+
1614
+ Code content:
1615
+ \`\`\`${language}
1616
+ ${content}
1617
+ \`\`\`
1618
+
1619
+ Please detect the following types of patterns:
1620
+
1621
+ 1. **duplicate** (duplicate code blocks):
1622
+ - Similar try-catch blocks
1623
+ - Similar API call patterns
1624
+ - Duplicate data transformation logic
1625
+ - Duplicate validation code
1626
+
1627
+ 2. **similar-logic** (similar logic):
1628
+ - Similar conditional checks
1629
+ - Similar loop processing
1630
+ - Similar error handling
1631
+
1632
+ 3. **extract-candidate** (extraction candidates):
1633
+ - Code blocks that can be extracted into standalone functions
1634
+ - Methods that can be extracted into utility classes
1635
+ - Code that can be extracted into custom Hooks (React)
1636
+
1637
+ 4. **design-pattern** (design pattern opportunities):
1638
+ - Places where the Strategy pattern can be applied
1639
+ - Places where the Factory pattern can be applied
1640
+ - Places where the Decorator pattern can be applied
1641
+ - Other design patterns
1642
+
1643
+ For each detected pattern, return:
1644
+ - type: pattern type
1645
+ - name: pattern name (brief description)
1646
+ - locations: array of locations [{ line, endLine }, ...]
1647
+ - description: detailed description
1648
+ - suggestion: suggested abstraction/refactoring approach
1649
+ - impact: impact level (high/medium/low)
1650
+
1651
+ Return in JSON format:
1652
+ {
1653
+ "patterns": [
1654
+ {
1655
+ "type": "duplicate",
1656
+ "name": "Duplicate error handling",
1657
+ "locations": [
1658
+ { "line": 10, "endLine": 15 },
1659
+ { "line": 30, "endLine": 35 }
1660
+ ],
1661
+ "description": "Two similar try-catch error handling blocks",
1662
+ "suggestion": "Extract into a handleError utility function",
1663
+ "impact": "medium"
1664
+ }
1665
+ ],
1666
+ "summary": "Detected N patterns, recommend prioritizing X high-impact patterns"
1667
+ }
1668
+
1669
+ If no patterns are detected, return an empty array.`;
1670
+ console.log(`[AI Editor] /detect-patterns calling Claude: ${filePath}`);
1671
+ const response = await client.createMessage([{ role: 'user', content: [{ type: 'text', text: prompt }] }], undefined, undefined, { enableThinking: false });
1672
+ const rawText = response.content[0]?.type === 'text' ? response.content[0].text : '';
1673
+ if (!rawText) {
1674
+ return {
1675
+ success: false,
1676
+ patterns: [],
1677
+ error: 'AI did not return valid analysis results',
1678
+ };
1679
+ }
1680
+ // 解析 JSON
1681
+ const parsed = extractJSON(rawText);
1682
+ if (!parsed || !Array.isArray(parsed.patterns)) {
1683
+ console.error('[AI Editor] /detect-patterns failed to parse AI response JSON:', rawText);
1684
+ return {
1685
+ success: false,
1686
+ patterns: [],
1687
+ error: 'AI returned incorrect format',
1688
+ };
1689
+ }
1690
+ return {
1691
+ success: true,
1692
+ patterns: parsed.patterns,
1693
+ summary: parsed.summary || `Detected ${parsed.patterns.length} patterns`,
1694
+ };
1695
+ }
1696
+ catch (error) {
1697
+ console.error('[AI Editor] /detect-patterns AI call failed:', error);
1698
+ return {
1699
+ success: false,
1700
+ patterns: [],
1701
+ error: error.message || 'AI call failed',
1702
+ };
1703
+ }
1704
+ })();
1705
+ pendingRequests.set(cacheKey, requestPromise);
1706
+ try {
1707
+ const result = await requestPromise;
1708
+ // 只缓存成功的结果
1709
+ if (result.success) {
1710
+ patternCache.set(cacheKey, result);
1711
+ }
1712
+ res.json(result);
1713
+ }
1714
+ finally {
1715
+ pendingRequests.delete(cacheKey);
1716
+ }
1717
+ }
1718
+ catch (error) {
1719
+ console.error('[AI Editor] /detect-patterns request processing failed:', error);
1720
+ res.status(500).json({
1721
+ success: false,
1722
+ patterns: [],
1723
+ error: error.message || 'Internal server error',
1724
+ });
1725
+ }
1726
+ });
1727
+ /**
1728
+ * POST /api/ai-editor/api-doc
1729
+ * API 文档叠加:查询第三方库 API 的使用文档
1730
+ */
1731
+ router.post('/api-doc', async (req, res) => {
1732
+ try {
1733
+ const { symbolName, packageName, language, codeContext } = req.body;
1734
+ // 参数验证
1735
+ if (!symbolName || !codeContext) {
1736
+ return res.status(400).json({
1737
+ success: false,
1738
+ error: 'Missing required parameters (symbolName, codeContext)',
1739
+ });
1740
+ }
1741
+ // 生成缓存键
1742
+ const cacheKey = crypto
1743
+ .createHash('md5')
1744
+ .update(`api-doc:${symbolName}:${packageName || ''}:${language}`)
1745
+ .digest('hex');
1746
+ // 检查缓存
1747
+ const cached = apiDocCache.get(cacheKey);
1748
+ if (cached) {
1749
+ console.log(`[AI Editor] /api-doc cache hit: ${cacheKey}`);
1750
+ return res.json({ ...cached, fromCache: true });
1751
+ }
1752
+ // 检查是否有正在处理的相同请求
1753
+ if (pendingRequests.has(cacheKey)) {
1754
+ console.log(`[AI Editor] /api-doc request already in progress, reusing: ${cacheKey}`);
1755
+ const result = await pendingRequests.get(cacheKey);
1756
+ return res.json(result);
1757
+ }
1758
+ // 创建新请求
1759
+ const requestPromise = (async () => {
1760
+ try {
1761
+ const client = createClient();
1762
+ if (!client) {
1763
+ return {
1764
+ success: false,
1765
+ error: 'API client not initialized, please check API Key configuration',
1766
+ };
1767
+ }
1768
+ const prompt = `Please provide usage documentation for the following third-party library API.
1769
+
1770
+ Symbol name: ${symbolName}
1771
+ ${packageName ? `Package: ${packageName}` : ''}
1772
+ Programming language: ${language}
1773
+
1774
+ Code context:
1775
+ \`\`\`${language}
1776
+ ${codeContext}
1777
+ \`\`\`
1778
+
1779
+ Please provide detailed usage instructions for this API, including:
1780
+ 1. Brief description (one sentence explaining what this API does)
1781
+ 2. Parameter descriptions (type, meaning, and whether optional for each parameter)
1782
+ 3. Return value description (return type and meaning)
1783
+ 4. Common usage examples (at least 2-3 practical examples)
1784
+ 5. Common pitfalls/notes (issues to watch out for when using)
1785
+ 6. Related APIs (related or alternative APIs)
1786
+
1787
+ Return in JSON format:
1788
+ {
1789
+ "name": "${symbolName}",
1790
+ "package": "${packageName || 'unknown'}",
1791
+ "brief": "brief description",
1792
+ "params": [
1793
+ {
1794
+ "name": "parameter name",
1795
+ "type": "type",
1796
+ "description": "description",
1797
+ "optional": false
1798
+ }
1799
+ ],
1800
+ "returns": {
1801
+ "type": "return type",
1802
+ "description": "return value description"
1803
+ },
1804
+ "examples": [
1805
+ "example code 1",
1806
+ "example code 2"
1807
+ ],
1808
+ "pitfalls": [
1809
+ "note 1",
1810
+ "note 2"
1811
+ ],
1812
+ "seeAlso": [
1813
+ "relatedAPI1",
1814
+ "relatedAPI2"
1815
+ ]
1816
+ }
1817
+
1818
+ If the API cannot be identified or is not a third-party library API, explain in the brief field.`;
1819
+ console.log(`[AI Editor] /api-doc calling Claude: ${symbolName}`);
1820
+ const response = await client.createMessage([{ role: 'user', content: [{ type: 'text', text: prompt }] }], undefined, undefined, { enableThinking: false });
1821
+ // 从 content blocks 中提取所有 text(跳过 thinking blocks)
1822
+ const rawText = response.content
1823
+ .filter((b) => b.type === 'text')
1824
+ .map((b) => b.text)
1825
+ .join('\n');
1826
+ console.log(`[AI Editor] /api-doc rawText (${rawText.length} chars):`, rawText.slice(0, 500));
1827
+ if (!rawText) {
1828
+ console.error('[AI Editor] /api-doc no text content, blocks:', response.content.map((b) => b.type));
1829
+ return {
1830
+ success: false,
1831
+ error: 'AI did not return valid documentation',
1832
+ };
1833
+ }
1834
+ // 解析 JSON
1835
+ const parsed = extractJSON(rawText);
1836
+ if (!parsed || !parsed.name) {
1837
+ console.error('[AI Editor] /api-doc failed to parse AI response JSON:', rawText);
1838
+ return {
1839
+ success: false,
1840
+ error: 'AI returned incorrect format',
1841
+ };
1842
+ }
1843
+ return {
1844
+ success: true,
1845
+ doc: {
1846
+ name: parsed.name,
1847
+ package: parsed.package || packageName || 'unknown',
1848
+ brief: parsed.brief || '',
1849
+ params: parsed.params || [],
1850
+ returns: parsed.returns,
1851
+ examples: parsed.examples || [],
1852
+ pitfalls: parsed.pitfalls || [],
1853
+ seeAlso: parsed.seeAlso || [],
1854
+ },
1855
+ };
1856
+ }
1857
+ catch (error) {
1858
+ console.error('[AI Editor] /api-doc AI call failed:', error);
1859
+ return {
1860
+ success: false,
1861
+ error: error.message || 'AI call failed',
1862
+ };
1863
+ }
1864
+ })();
1865
+ pendingRequests.set(cacheKey, requestPromise);
1866
+ try {
1867
+ const result = await requestPromise;
1868
+ // 只缓存成功的结果
1869
+ if (result.success) {
1870
+ apiDocCache.set(cacheKey, result);
1871
+ }
1872
+ res.json(result);
1873
+ }
1874
+ finally {
1875
+ pendingRequests.delete(cacheKey);
1876
+ }
1877
+ }
1878
+ catch (error) {
1879
+ console.error('[AI Editor] /api-doc request processing failed:', error);
1880
+ res.status(500).json({
1881
+ success: false,
1882
+ error: error.message || 'Internal server error',
1883
+ });
1884
+ }
1885
+ });
1886
+ // ============================================================================
1887
+ // POST /complete-path - Import 路径补全
1888
+ // ============================================================================
1889
+ router.post('/complete-path', async (req, res) => {
1890
+ try {
1891
+ const { filePath, prefix, root } = req.body;
1892
+ if (!filePath) {
1893
+ return res.status(400).json({
1894
+ success: false,
1895
+ items: [],
1896
+ error: 'Missing required parameter filePath',
1897
+ });
1898
+ }
1899
+ // 解析基准目录
1900
+ const fileDir = path.dirname(filePath);
1901
+ let resolveBase;
1902
+ if (prefix.startsWith('.')) {
1903
+ // 相对路径:基于当前文件目录
1904
+ resolveBase = path.resolve(fileDir, prefix);
1905
+ }
1906
+ else if (root) {
1907
+ // 非相对路径:从项目根目录的 node_modules 查找
1908
+ resolveBase = path.resolve(root, 'node_modules', prefix);
1909
+ }
1910
+ else {
1911
+ return res.json({ success: true, items: [] });
1912
+ }
1913
+ // 判断 resolveBase 是文件夹还是需要列出其父目录的匹配项
1914
+ let dirToList;
1915
+ let filterPrefix = '';
1916
+ try {
1917
+ const stat = fs.statSync(resolveBase);
1918
+ if (stat.isDirectory()) {
1919
+ dirToList = resolveBase;
1920
+ }
1921
+ else {
1922
+ return res.json({ success: true, items: [] });
1923
+ }
1924
+ }
1925
+ catch {
1926
+ // resolveBase 不存在,列出其父目录并用最后一段做前缀过滤
1927
+ dirToList = path.dirname(resolveBase);
1928
+ filterPrefix = path.basename(resolveBase).toLowerCase();
1929
+ }
1930
+ // 读取目录
1931
+ let entries;
1932
+ try {
1933
+ entries = fs.readdirSync(dirToList, { withFileTypes: true });
1934
+ }
1935
+ catch {
1936
+ return res.json({ success: true, items: [] });
1937
+ }
1938
+ const items = [];
1939
+ for (const entry of entries) {
1940
+ // 跳过隐藏文件
1941
+ if (entry.name.startsWith('.'))
1942
+ continue;
1943
+ const nameLower = entry.name.toLowerCase();
1944
+ if (filterPrefix && !nameLower.startsWith(filterPrefix))
1945
+ continue;
1946
+ if (entry.isDirectory()) {
1947
+ items.push({
1948
+ label: entry.name,
1949
+ kind: 'folder',
1950
+ detail: 'Directory',
1951
+ });
1952
+ }
1953
+ else if (entry.isFile()) {
1954
+ // 只显示代码相关文件
1955
+ const ext = path.extname(entry.name).toLowerCase();
1956
+ const codeExts = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.json', '.css', '.scss', '.less', '.vue', '.svelte'];
1957
+ if (codeExts.includes(ext)) {
1958
+ // 显示时去掉 .ts/.tsx/.js/.jsx 扩展名
1959
+ const stripExts = ['.ts', '.tsx', '.js', '.jsx'];
1960
+ const label = stripExts.includes(ext) ? entry.name.replace(/\.(ts|tsx|js|jsx)$/, '') : entry.name;
1961
+ items.push({
1962
+ label,
1963
+ kind: 'file',
1964
+ detail: ext,
1965
+ });
1966
+ }
1967
+ }
1968
+ if (items.length >= 50)
1969
+ break;
1970
+ }
1971
+ // 文件夹排前面
1972
+ items.sort((a, b) => {
1973
+ if (a.kind !== b.kind)
1974
+ return a.kind === 'folder' ? -1 : 1;
1975
+ return a.label.localeCompare(b.label);
1976
+ });
1977
+ res.json({ success: true, items });
1978
+ }
1979
+ catch (error) {
1980
+ console.error('[AI Editor] /complete-path failed:', error);
1981
+ res.status(500).json({
1982
+ success: false,
1983
+ items: [],
1984
+ error: error.message || 'Internal server error',
1985
+ });
1986
+ }
1987
+ });
1988
+ // ============================================================================
1989
+ // POST /inline-complete - AI Inline 补全(Ghost Text)
1990
+ // ============================================================================
1991
+ router.post('/inline-complete', async (req, res) => {
1992
+ try {
1993
+ const { filePath, language, prefix, suffix, currentLine, cursorColumn } = req.body;
1994
+ if (!filePath || !prefix) {
1995
+ return res.status(400).json({
1996
+ success: false,
1997
+ error: 'Missing required parameters',
1998
+ });
1999
+ }
2000
+ // 缓存键:基于前缀最后 3 行 + 当前行前缀
2001
+ const lastLines = prefix.split('\n').slice(-3).join('\n');
2002
+ const cacheKey = crypto
2003
+ .createHash('md5')
2004
+ .update(`inline:${filePath}:${lastLines}`)
2005
+ .digest('hex');
2006
+ const cached = inlineCompleteCache.get(cacheKey);
2007
+ if (cached) {
2008
+ return res.json({ success: true, completion: cached.completion, fromCache: true });
2009
+ }
2010
+ // 检查重复请求
2011
+ if (pendingRequests.has(cacheKey)) {
2012
+ const result = await pendingRequests.get(cacheKey);
2013
+ return res.json(result);
2014
+ }
2015
+ const requestPromise = (async () => {
2016
+ try {
2017
+ const client = createClient();
2018
+ if (!client) {
2019
+ return { success: false, error: 'API client not initialized' };
2020
+ }
2021
+ // 截取上下文(避免 token 过多)
2022
+ const prefixLines = prefix.split('\n');
2023
+ const trimmedPrefix = prefixLines.slice(-30).join('\n');
2024
+ const suffixLines = suffix ? suffix.split('\n').slice(0, 10).join('\n') : '';
2025
+ const prompt = `You are a code completion engine. Predict the code the user will write next based on context.
2026
+
2027
+ File: ${path.basename(filePath)} (${language})
2028
+
2029
+ == Code before cursor ==
2030
+ ${trimmedPrefix}
2031
+ == Cursor position (complete here) ==
2032
+ ${suffixLines ? `== Code after cursor ==\n${suffixLines}` : ''}
2033
+
2034
+ Rules:
2035
+ - Only output the code snippet to complete, no explanations, no markdown
2036
+ - The completion should naturally continue from the code before the cursor
2037
+ - Typically complete 1-3 lines, do not make it too long
2038
+ - If the current line is partially written, complete the current line first
2039
+ - If unsure what to complete, return an empty string
2040
+ - Do not repeat existing code`;
2041
+ const response = await client.createMessage([{ role: 'user', content: [{ type: 'text', text: prompt }] }], undefined, undefined, { enableThinking: false });
2042
+ const rawText = response.content
2043
+ .filter((b) => b.type === 'text')
2044
+ .map((b) => b.text)
2045
+ .join('\n');
2046
+ // 清理:去除可能的 markdown 包裹
2047
+ let completion = rawText.trim();
2048
+ completion = completion.replace(/^```\w*\n?/, '').replace(/\n?```$/, '').trim();
2049
+ if (!completion) {
2050
+ return { success: true, completion: '' };
2051
+ }
2052
+ const result = { success: true, completion };
2053
+ inlineCompleteCache.set(cacheKey, { completion });
2054
+ return result;
2055
+ }
2056
+ catch (error) {
2057
+ console.error('[AI Editor] /inline-complete AI call failed:', error);
2058
+ return { success: false, error: error.message || 'AI call failed' };
2059
+ }
2060
+ })();
2061
+ pendingRequests.set(cacheKey, requestPromise);
2062
+ try {
2063
+ const result = await requestPromise;
2064
+ res.json(result);
2065
+ }
2066
+ finally {
2067
+ pendingRequests.delete(cacheKey);
2068
+ }
2069
+ }
2070
+ catch (error) {
2071
+ console.error('[AI Editor] /inline-complete request processing failed:', error);
2072
+ res.status(500).json({
2073
+ success: false,
2074
+ error: error.message || 'Internal server error',
2075
+ });
2076
+ }
2077
+ });
2078
+ export default router;
2079
+ //# sourceMappingURL=ai-editor.js.map