profclaw 0.0.1-beta.3 → 2.3.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 (535) hide show
  1. package/.env.example +14 -2
  2. package/CHANGELOG.md +54 -34
  3. package/CONTRIBUTING.md +23 -5
  4. package/Dockerfile +39 -23
  5. package/README.md +271 -72
  6. package/dist/agents/agent-summary.d.ts +44 -0
  7. package/dist/agents/agent-summary.js +176 -0
  8. package/dist/agents/auto-memory.d.ts +59 -0
  9. package/dist/agents/auto-memory.js +310 -0
  10. package/dist/agents/checkpoint-manager.d.ts +76 -0
  11. package/dist/agents/checkpoint-manager.js +156 -0
  12. package/dist/agents/circuit-breaker.d.ts +54 -0
  13. package/dist/agents/circuit-breaker.js +153 -0
  14. package/dist/agents/context-compactor.d.ts +70 -0
  15. package/dist/agents/context-compactor.js +361 -0
  16. package/dist/agents/conversation-branch.d.ts +55 -0
  17. package/dist/agents/conversation-branch.js +115 -0
  18. package/dist/agents/error-recovery.d.ts +44 -0
  19. package/dist/agents/error-recovery.js +197 -0
  20. package/dist/agents/events.d.ts +76 -0
  21. package/dist/agents/events.js +8 -0
  22. package/dist/agents/executor.d.ts +35 -1
  23. package/dist/agents/executor.js +573 -124
  24. package/dist/agents/file-snapshots.d.ts +72 -0
  25. package/dist/agents/file-snapshots.js +182 -0
  26. package/dist/agents/index.d.ts +2 -0
  27. package/dist/agents/orchestrator.d.ts +183 -0
  28. package/dist/agents/orchestrator.js +495 -0
  29. package/dist/agents/permissions.d.ts +63 -0
  30. package/dist/agents/permissions.js +138 -0
  31. package/dist/agents/plan-mode.d.ts +71 -0
  32. package/dist/agents/plan-mode.js +186 -0
  33. package/dist/agents/prompt-suggestions.d.ts +33 -0
  34. package/dist/agents/prompt-suggestions.js +208 -0
  35. package/dist/agents/rate-limit-monitor.d.ts +56 -0
  36. package/dist/agents/rate-limit-monitor.js +224 -0
  37. package/dist/agents/result-store.d.ts +37 -0
  38. package/dist/agents/result-store.js +104 -0
  39. package/dist/agents/session-diff.d.ts +43 -0
  40. package/dist/agents/session-diff.js +258 -0
  41. package/dist/agents/tool-loader.d.ts +65 -0
  42. package/dist/agents/tool-loader.js +273 -0
  43. package/dist/agents/transcript.d.ts +96 -0
  44. package/dist/agents/transcript.js +267 -0
  45. package/dist/agents/worktree-manager.d.ts +80 -0
  46. package/dist/agents/worktree-manager.js +203 -0
  47. package/dist/auth/middleware.js +14 -0
  48. package/dist/chat/agentic-executor.d.ts +7 -0
  49. package/dist/chat/agentic-executor.js +253 -30
  50. package/dist/chat/conversations.d.ts +2 -0
  51. package/dist/chat/conversations.js +8 -0
  52. package/dist/chat/execution/executor.d.ts +8 -0
  53. package/dist/chat/execution/executor.js +157 -103
  54. package/dist/chat/execution/index.js +5 -1
  55. package/dist/chat/execution/tool-router.js +40 -14
  56. package/dist/chat/execution/tools/canvas.d.ts +2 -2
  57. package/dist/chat/execution/tools/code-tools.d.ts +66 -0
  58. package/dist/chat/execution/tools/code-tools.js +353 -0
  59. package/dist/chat/execution/tools/complete-task.d.ts +2 -2
  60. package/dist/chat/execution/tools/cron-tool.d.ts +26 -10
  61. package/dist/chat/execution/tools/cron-tool.js +48 -3
  62. package/dist/chat/execution/tools/decompose-task.d.ts +58 -0
  63. package/dist/chat/execution/tools/decompose-task.js +166 -0
  64. package/dist/chat/execution/tools/exec.d.ts +5 -2
  65. package/dist/chat/execution/tools/exec.js +294 -155
  66. package/dist/chat/execution/tools/feed-tools.d.ts +77 -0
  67. package/dist/chat/execution/tools/feed-tools.js +142 -0
  68. package/dist/chat/execution/tools/file-ops.d.ts +1 -1
  69. package/dist/chat/execution/tools/github.d.ts +2 -2
  70. package/dist/chat/execution/tools/index.d.ts +15 -3
  71. package/dist/chat/execution/tools/index.js +125 -12
  72. package/dist/chat/execution/tools/integrations.d.ts +8 -8
  73. package/dist/chat/execution/tools/multi-patch.d.ts +53 -0
  74. package/dist/chat/execution/tools/multi-patch.js +373 -0
  75. package/dist/chat/execution/tools/openai-image-gen.d.ts +2 -2
  76. package/dist/chat/execution/tools/plan-tools.d.ts +80 -0
  77. package/dist/chat/execution/tools/plan-tools.js +134 -0
  78. package/dist/chat/execution/tools/profclaw-ops.d.ts +6 -6
  79. package/dist/chat/execution/tools/repl-tool.d.ts +46 -0
  80. package/dist/chat/execution/tools/repl-tool.js +207 -0
  81. package/dist/chat/execution/tools/sessions-send.d.ts +2 -2
  82. package/dist/chat/execution/tools/slack-actions.d.ts +2 -2
  83. package/dist/chat/execution/tools/system.d.ts +4 -4
  84. package/dist/chat/execution/tools/todo-tool.d.ts +72 -0
  85. package/dist/chat/execution/tools/todo-tool.js +152 -0
  86. package/dist/chat/execution/tools/tool-search.d.ts +50 -0
  87. package/dist/chat/execution/tools/tool-search.js +155 -0
  88. package/dist/chat/execution/types.d.ts +21 -14
  89. package/dist/chat/execution/workflows/executor.d.ts +11 -0
  90. package/dist/chat/execution/workflows/executor.js +99 -1
  91. package/dist/chat/execution/workflows/types.d.ts +35 -2
  92. package/dist/chat/format/index.d.ts +1 -0
  93. package/dist/chat/format/index.js +1 -0
  94. package/dist/chat/format/markdown-convert.d.ts +23 -0
  95. package/dist/chat/format/markdown-convert.js +149 -0
  96. package/dist/chat/index.d.ts +1 -1
  97. package/dist/chat/index.js +1 -1
  98. package/dist/chat/message-handler.js +58 -6
  99. package/dist/chat/proactive/index.d.ts +62 -0
  100. package/dist/chat/proactive/index.js +147 -0
  101. package/dist/chat/prompt-adapter.js +2 -0
  102. package/dist/chat/providers/irc/index.d.ts +2 -2
  103. package/dist/chat/providers/slack/index.d.ts +2 -2
  104. package/dist/chat/providers/telegram/index.d.ts +2 -0
  105. package/dist/chat/providers/telegram/index.js +21 -2
  106. package/dist/chat/system-prompts.d.ts +3 -3
  107. package/dist/chat/system-prompts.js +116 -61
  108. package/dist/chat/tools.d.ts +6 -6
  109. package/dist/cli/commands/auth.js +64 -1
  110. package/dist/cli/commands/chat.js +1327 -138
  111. package/dist/cli/commands/doctor.js +222 -16
  112. package/dist/cli/commands/history.d.ts +3 -0
  113. package/dist/cli/commands/history.js +138 -0
  114. package/dist/cli/commands/import.d.ts +44 -0
  115. package/dist/cli/commands/import.js +526 -0
  116. package/dist/cli/commands/init.d.ts +13 -0
  117. package/dist/cli/commands/init.js +381 -0
  118. package/dist/cli/commands/models.js +39 -26
  119. package/dist/cli/commands/onboard.js +263 -98
  120. package/dist/cli/commands/plan.d.ts +13 -0
  121. package/dist/cli/commands/plan.js +184 -0
  122. package/dist/cli/commands/serve.d.ts +7 -0
  123. package/dist/cli/commands/serve.js +77 -18
  124. package/dist/cli/commands/setup.js +375 -91
  125. package/dist/cli/commands/status.js +54 -0
  126. package/dist/cli/commands/tools.js +13 -13
  127. package/dist/cli/commands/tui.js +26 -1
  128. package/dist/cli/index.js +19 -6
  129. package/dist/cli/ink/App.d.ts +13 -0
  130. package/dist/cli/ink/App.js +6 -0
  131. package/dist/cli/ink/ChatApp.d.ts +60 -0
  132. package/dist/cli/ink/ChatApp.js +325 -0
  133. package/dist/cli/ink/DashboardApp.d.ts +3 -0
  134. package/dist/cli/ink/DashboardApp.js +143 -0
  135. package/dist/cli/ink/components/AgentStatus.d.ts +17 -0
  136. package/dist/cli/ink/components/AgentStatus.js +33 -0
  137. package/dist/cli/ink/components/ChannelList.d.ts +17 -0
  138. package/dist/cli/ink/components/ChannelList.js +33 -0
  139. package/dist/cli/ink/components/ConnectionStatus.d.ts +19 -0
  140. package/dist/cli/ink/components/ConnectionStatus.js +50 -0
  141. package/dist/cli/ink/components/CostBar.d.ts +19 -0
  142. package/dist/cli/ink/components/CostBar.js +35 -0
  143. package/dist/cli/ink/components/HookStatus.d.ts +15 -0
  144. package/dist/cli/ink/components/HookStatus.js +7 -0
  145. package/dist/cli/ink/components/PermissionPrompt.d.ts +21 -0
  146. package/dist/cli/ink/components/PermissionPrompt.js +51 -0
  147. package/dist/cli/ink/components/PlanView.d.ts +23 -0
  148. package/dist/cli/ink/components/PlanView.js +26 -0
  149. package/dist/cli/ink/components/ProviderList.d.ts +16 -0
  150. package/dist/cli/ink/components/ProviderList.js +16 -0
  151. package/dist/cli/ink/components/SessionHeader.d.ts +15 -0
  152. package/dist/cli/ink/components/SessionHeader.js +15 -0
  153. package/dist/cli/ink/components/StreamingMessage.d.ts +20 -0
  154. package/dist/cli/ink/components/StreamingMessage.js +27 -0
  155. package/dist/cli/ink/components/SuggestionBar.d.ts +15 -0
  156. package/dist/cli/ink/components/SuggestionBar.js +28 -0
  157. package/dist/cli/ink/components/SystemHealth.d.ts +20 -0
  158. package/dist/cli/ink/components/SystemHealth.js +39 -0
  159. package/dist/cli/ink/components/TaskList.d.ts +17 -0
  160. package/dist/cli/ink/components/TaskList.js +59 -0
  161. package/dist/cli/ink/components/ToolCall.d.ts +17 -0
  162. package/dist/cli/ink/components/ToolCall.js +43 -0
  163. package/dist/cli/ink/index.d.ts +23 -0
  164. package/dist/cli/ink/index.js +15 -0
  165. package/dist/cli/ink/keybindings.d.ts +35 -0
  166. package/dist/cli/ink/keybindings.js +105 -0
  167. package/dist/cli/ink/markdown-renderer.d.ts +47 -0
  168. package/dist/cli/ink/markdown-renderer.js +380 -0
  169. package/dist/cli/ink/output-styles.d.ts +39 -0
  170. package/dist/cli/ink/output-styles.js +119 -0
  171. package/dist/cli/interactive/auto-serve.d.ts +38 -0
  172. package/dist/cli/interactive/auto-serve.js +209 -0
  173. package/dist/cli/interactive/index.d.ts +25 -0
  174. package/dist/cli/interactive/index.js +23 -0
  175. package/dist/cli/interactive/picker.d.ts +28 -0
  176. package/dist/cli/interactive/picker.js +153 -0
  177. package/dist/cli/interactive/renderer.d.ts +26 -0
  178. package/dist/cli/interactive/renderer.js +555 -0
  179. package/dist/cli/interactive/repl.d.ts +14 -0
  180. package/dist/cli/interactive/repl.js +1516 -0
  181. package/dist/cli/interactive/stream-client.d.ts +59 -0
  182. package/dist/cli/interactive/stream-client.js +506 -0
  183. package/dist/cli/interactive/types.d.ts +121 -0
  184. package/dist/cli/interactive/types.js +10 -0
  185. package/dist/cli/providers.d.ts +15 -0
  186. package/dist/cli/providers.js +41 -0
  187. package/dist/cli/utils/api.d.ts +9 -0
  188. package/dist/cli/utils/api.js +58 -2
  189. package/dist/core/deployment.js +2 -0
  190. package/dist/cron/natural-language.d.ts +54 -0
  191. package/dist/cron/natural-language.js +569 -0
  192. package/dist/cron/scheduler.d.ts +34 -4
  193. package/dist/cron/scheduler.js +141 -9
  194. package/dist/cron/templates.d.ts +1 -1
  195. package/dist/cron/templates.js +219 -0
  196. package/dist/feeds/feed-engine.d.ts +149 -0
  197. package/dist/feeds/feed-engine.js +600 -0
  198. package/dist/feeds/index.d.ts +9 -0
  199. package/dist/feeds/index.js +8 -0
  200. package/dist/gateway/router.js +6 -1
  201. package/dist/hooks/built-in/audit-log.d.ts +11 -0
  202. package/dist/hooks/built-in/audit-log.js +84 -0
  203. package/dist/hooks/built-in/cost-warning.d.ts +10 -0
  204. package/dist/hooks/built-in/cost-warning.js +59 -0
  205. package/dist/hooks/built-in/dangerous-tool.d.ts +32 -0
  206. package/dist/hooks/built-in/dangerous-tool.js +80 -0
  207. package/dist/hooks/built-in/index.d.ts +14 -0
  208. package/dist/hooks/built-in/index.js +20 -0
  209. package/dist/hooks/index.d.ts +3 -0
  210. package/dist/hooks/index.js +6 -0
  211. package/dist/hooks/loader.d.ts +17 -0
  212. package/dist/hooks/loader.js +142 -0
  213. package/dist/hooks/registry.d.ts +62 -0
  214. package/dist/hooks/registry.js +127 -0
  215. package/dist/integrations/web-search.js +6 -3
  216. package/dist/memory/index.d.ts +1 -0
  217. package/dist/memory/index.js +2 -0
  218. package/dist/memory/memory-service.js +14 -13
  219. package/dist/memory/observational.d.ts +62 -0
  220. package/dist/memory/observational.js +396 -0
  221. package/dist/middleware/content-filter.d.ts +22 -0
  222. package/dist/middleware/content-filter.js +69 -0
  223. package/dist/middleware/request-validator.d.ts +159 -0
  224. package/dist/middleware/request-validator.js +93 -0
  225. package/dist/plugins/sdk.d.ts +22 -0
  226. package/dist/plugins/sdk.js +17 -1
  227. package/dist/projects/types.d.ts +10 -10
  228. package/dist/providers/ai-sdk.d.ts +11 -0
  229. package/dist/providers/ai-sdk.js +97 -18
  230. package/dist/providers/core/models.js +67 -1
  231. package/dist/providers/core/types.d.ts +3 -0
  232. package/dist/providers/index.d.ts +1 -0
  233. package/dist/providers/index.js +1 -0
  234. package/dist/providers/smart-router.d.ts +118 -0
  235. package/dist/providers/smart-router.js +685 -0
  236. package/dist/providers/types.d.ts +16 -16
  237. package/dist/routes/agents.js +50 -0
  238. package/dist/routes/auth.js +8 -1
  239. package/dist/routes/channels.d.ts +12 -0
  240. package/dist/routes/channels.js +166 -0
  241. package/dist/routes/chat.js +259 -14
  242. package/dist/routes/costs.js +32 -0
  243. package/dist/routes/cron.js +80 -5
  244. package/dist/routes/feeds.d.ts +10 -0
  245. package/dist/routes/feeds.js +168 -0
  246. package/dist/routes/mcp.js +21 -0
  247. package/dist/routes/memory.js +130 -0
  248. package/dist/routes/skills.js +129 -0
  249. package/dist/routes/teams.d.ts +9 -0
  250. package/dist/routes/teams.js +210 -0
  251. package/dist/routes/tools.js +14 -0
  252. package/dist/routes/users.js +2 -0
  253. package/dist/server/route-loader.js +4 -1
  254. package/dist/server/stream-bridge.d.ts +19 -0
  255. package/dist/server/stream-bridge.js +38 -0
  256. package/dist/server.js +421 -141
  257. package/dist/skills/marketplace.d.ts +87 -0
  258. package/dist/skills/marketplace.js +268 -0
  259. package/dist/storage/index.d.ts +14 -0
  260. package/dist/storage/index.js +64 -3
  261. package/dist/storage/schema.d.ts +4 -4
  262. package/dist/storage/schema.js +1 -1
  263. package/dist/teams/index.d.ts +110 -0
  264. package/dist/teams/index.js +365 -0
  265. package/dist/tickets/types.d.ts +39 -39
  266. package/dist/types/summary.d.ts +5 -5
  267. package/dist/utils/auto-update.d.ts +23 -0
  268. package/dist/utils/auto-update.js +157 -0
  269. package/dist/utils/offline-detect.d.ts +55 -0
  270. package/dist/utils/offline-detect.js +121 -0
  271. package/dist/utils/pid-file.d.ts +36 -0
  272. package/dist/utils/pid-file.js +125 -0
  273. package/dist/utils/prevent-sleep.d.ts +27 -0
  274. package/dist/utils/prevent-sleep.js +95 -0
  275. package/dist/utils/sanitizer.d.ts +57 -0
  276. package/dist/utils/sanitizer.js +174 -0
  277. package/docker-compose.yml +13 -137
  278. package/package.json +31 -6
  279. package/skills/deploy-cloudflare/SKILL.md +62 -0
  280. package/skills/deploy-vercel/SKILL.md +67 -0
  281. package/skills/docker-deploy/SKILL.md +158 -0
  282. package/skills/full-stack-builder/SKILL.md +92 -0
  283. package/skills/git-workflow/SKILL.md +3 -3
  284. package/skills/humanizer/SKILL.md +488 -0
  285. package/skills/profclaw-assistant/SKILL.md +85 -56
  286. package/ui/dist/assets/ActivityView-Da6HQ8ws.js +1 -0
  287. package/ui/dist/assets/AgentList-H58R0kX3.js +1 -0
  288. package/ui/dist/assets/AnalyticsDashboard-B28AeRsc.js +1 -0
  289. package/ui/dist/assets/AreaChart-DwLzeAQ8.js +1 -0
  290. package/ui/dist/assets/CartesianChart-piKQsTAR.js +36 -0
  291. package/ui/dist/assets/ChatView-Dbj8rxU5.js +10 -0
  292. package/ui/dist/assets/CostsDashboard-C6F5df0F.js +1 -0
  293. package/ui/dist/assets/EstimateSelect-wga0rUKX.js +1 -0
  294. package/ui/dist/assets/FeedDashboard-Ef6FEzEf.js +1 -0
  295. package/ui/dist/assets/FloatingChatbot-0yhkUeCq.js +2 -0
  296. package/ui/dist/assets/InviteCodeManagement-tUXfx4Bc.js +2 -0
  297. package/ui/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  298. package/ui/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  299. package/ui/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  300. package/ui/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  301. package/ui/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  302. package/ui/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  303. package/ui/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  304. package/ui/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  305. package/ui/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  306. package/ui/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  307. package/ui/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  308. package/ui/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  309. package/ui/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  310. package/ui/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  311. package/ui/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  312. package/ui/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  313. package/ui/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  314. package/ui/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  315. package/ui/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  316. package/ui/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  317. package/ui/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  318. package/ui/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  319. package/ui/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  320. package/ui/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  321. package/ui/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  322. package/ui/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  323. package/ui/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  324. package/ui/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  325. package/ui/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  326. package/ui/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  327. package/ui/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  328. package/ui/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  329. package/ui/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  330. package/ui/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  331. package/ui/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  332. package/ui/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  333. package/ui/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  334. package/ui/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  335. package/ui/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  336. package/ui/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  337. package/ui/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  338. package/ui/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  339. package/ui/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  340. package/ui/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  341. package/ui/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  342. package/ui/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  343. package/ui/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  344. package/ui/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  345. package/ui/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  346. package/ui/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  347. package/ui/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  348. package/ui/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  349. package/ui/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  350. package/ui/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  351. package/ui/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  352. package/ui/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  353. package/ui/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  354. package/ui/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  355. package/ui/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  356. package/ui/dist/assets/MarketplacePage-DGrLtolR.js +1 -0
  357. package/ui/dist/assets/{ProjectDetail-DlYUcOss.js → ProjectDetail-BgWvA6UP.js} +2 -2
  358. package/ui/dist/assets/ProjectIcon-TDuliqwg.js +1 -0
  359. package/ui/dist/assets/ProjectList-DXgM4187.js +1 -0
  360. package/ui/dist/assets/{Settings-CgPqzUvj.js → Settings-xA8Zhi3p.js} +3 -3
  361. package/ui/dist/assets/StatusIndicator-B8vfFAxg.js +1 -0
  362. package/ui/dist/assets/{SummaryDetail-CwLAfHgJ.js → SummaryDetail-eedRfTtF.js} +2 -2
  363. package/ui/dist/assets/SummaryList-CLNX2P84.js +1 -0
  364. package/ui/dist/assets/TaskDetail-BtWclNiR.js +1 -0
  365. package/ui/dist/assets/TaskList-JjODAgSc.js +1 -0
  366. package/ui/dist/assets/TeamsPage-CBK5iAyx.js +1 -0
  367. package/ui/dist/assets/TicketBoard-C9aJNNYp.js +1 -0
  368. package/ui/dist/assets/TicketDetail-CV5JmL31.js +1 -0
  369. package/ui/dist/assets/TicketList-68V4lzUz.js +1 -0
  370. package/ui/dist/assets/UserManagement-DKTb6UpE.js +2 -0
  371. package/ui/dist/assets/ViewSwitcher-BvdQht2Y.js +1 -0
  372. package/ui/dist/assets/alert-dialog-O6qBOv_f.js +1 -0
  373. package/ui/dist/assets/{archive-CGck7gxR.js → archive-CX7UvZpf.js} +1 -1
  374. package/ui/dist/assets/badge-BbfnwDJP.js +1 -0
  375. package/ui/dist/assets/{bug-DqSGPUUE.js → bug-3WX0394-.js} +1 -1
  376. package/ui/dist/assets/{calendar-BuZ4zbPW.js → calendar-buq77TaS.js} +1 -1
  377. package/ui/dist/assets/{chevron-up-DcJ4LL_N.js → chevron-up-4ymsBJRo.js} +1 -1
  378. package/ui/dist/assets/{circle-x-C78PNZjF.js → circle-x-ByXtwR6Y.js} +1 -1
  379. package/ui/dist/assets/constants-CVdDh7p0.js +1 -0
  380. package/ui/dist/assets/{cpu-Ck6AoG8c.js → cpu-CiuoCeDY.js} +1 -1
  381. package/ui/dist/assets/{database-CA2w8Lvt.js → database-BWXSBg5a.js} +1 -1
  382. package/ui/dist/assets/dialog-lDg4NvMV.js +1 -0
  383. package/ui/dist/assets/dollar-sign-Dmijd6DP.js +1 -0
  384. package/ui/dist/assets/{ellipsis-FhHKRbfl.js → ellipsis-vT-5SVIp.js} +1 -1
  385. package/ui/dist/assets/{ellipsis-vertical-CO0UqE4-.js → ellipsis-vertical-B4tAX_bL.js} +1 -1
  386. package/ui/dist/assets/feature-markdown-DBo5Q7uq.js +289 -0
  387. package/ui/dist/assets/{file-code-ChnhYYj1.js → file-code-ChOWdKXf.js} +1 -1
  388. package/ui/dist/assets/{folder-open-CHwA1-ve.js → folder-open-CkOUbIiP.js} +1 -1
  389. package/ui/dist/assets/{funnel-ByEjRFNB.js → funnel-uZkoSPP-.js} +1 -1
  390. package/ui/dist/assets/{git-branch-GTOPQgU4.js → git-branch-CwvUxj7C.js} +1 -1
  391. package/ui/dist/assets/{git-commit-horizontal-F5M84Kut.js → git-commit-horizontal-lxPzCvhD.js} +1 -1
  392. package/ui/dist/assets/{globe-CQWfr7hT.js → globe-D_WpJdsj.js} +1 -1
  393. package/ui/dist/assets/{hash-nKC9gtLg.js → hash-CA0hJ7vh.js} +1 -1
  394. package/ui/dist/assets/{history-DfFSA9xJ.js → history-CEWMLELs.js} +1 -1
  395. package/ui/dist/assets/inbox-ehtOptTV.js +1 -0
  396. package/ui/dist/assets/{index-a4Fxq0Hb.js → index-C1rhbml4.js} +3 -3
  397. package/ui/dist/assets/index-CR8gfCHv.js +1 -0
  398. package/ui/dist/assets/index-DVXMpWai.js +1 -0
  399. package/ui/dist/assets/index-DaDJMM2v.js +1 -0
  400. package/ui/dist/assets/index-Djdq_0xu.js +1 -0
  401. package/ui/dist/assets/index-M46Gcb8K.css +1 -0
  402. package/ui/dist/assets/index-sEBN7w8J.js +109 -0
  403. package/ui/dist/assets/layers-C6Mhf8Nk.js +1 -0
  404. package/ui/dist/assets/{layout-dashboard-WmgjMhWF.js → layout-dashboard-BRUM0kpT.js} +1 -1
  405. package/ui/dist/assets/{lightbulb-Bo8hEr7B.js → lightbulb-CN2q1O5l.js} +1 -1
  406. package/ui/dist/assets/{link-2-YqrpQXBH.js → link-2-CC4E28yJ.js} +1 -1
  407. package/ui/dist/assets/markdown-renderer-C6ENbB0u.js +10 -0
  408. package/ui/dist/assets/markdown-renderer-CfVKi3_s.css +1 -0
  409. package/ui/dist/assets/{message-square-CD0H5hot.js → message-square-Bbb241am.js} +1 -1
  410. package/ui/dist/assets/package-CwT3IzFx.js +1 -0
  411. package/ui/dist/assets/{pencil-DpFnj5dn.js → pencil-CDmiHzoj.js} +1 -1
  412. package/ui/dist/assets/{play-DVgea_jT.js → play-tjy5jMQX.js} +1 -1
  413. package/ui/dist/assets/popover-CFHZf3pE.js +1 -0
  414. package/ui/dist/assets/progress-BboUHuLf.js +1 -0
  415. package/ui/dist/assets/{rocket-BFxPYGx9.js → rocket--8ZHgdXJ.js} +1 -1
  416. package/ui/dist/assets/select-n108rXny.js +1 -0
  417. package/ui/dist/assets/{send-eYnW_7n-.js → send-Cu7MR2Qh.js} +1 -1
  418. package/ui/dist/assets/server-DmodxZp-.js +1 -0
  419. package/ui/dist/assets/{settings-2-scXUOuE_.js → settings-2-CkRNqkxj.js} +1 -1
  420. package/ui/dist/assets/sheet-7aUJkyzU.js +1 -0
  421. package/ui/dist/assets/{shield-check-PEr7nmVw.js → shield-check-ViI3nMKE.js} +1 -1
  422. package/ui/dist/assets/{shield-off-CLtXio62.js → shield-off-DN3tagkn.js} +1 -1
  423. package/ui/dist/assets/skeleton-C0E1Nfro.js +1 -0
  424. package/ui/dist/assets/{smartphone-DusFfY0U.js → smartphone-5FghiXpA.js} +1 -1
  425. package/ui/dist/assets/{square-e1yxB2eR.js → square-DiNSx8K7.js} +1 -1
  426. package/ui/dist/assets/star-DhdFVidS.js +1 -0
  427. package/ui/dist/assets/switch-CIgVbZqQ.js +1 -0
  428. package/ui/dist/assets/table-BC56FVMV.js +1 -0
  429. package/ui/dist/assets/{tag-tAwMmQ9G.js → tag-CH_vQliw.js} +1 -1
  430. package/ui/dist/assets/textarea-CxDiKFXZ.js +1 -0
  431. package/ui/dist/assets/{timer-Vel1N3RP.js → timer-CdGVTb60.js} +1 -1
  432. package/ui/dist/assets/tooltip-BuW9A5UO.js +1 -0
  433. package/ui/dist/assets/{trash-2-eM-CNwsZ.js → trash-2-CucZJL0N.js} +1 -1
  434. package/ui/dist/assets/trending-down-BCezC1z2.js +1 -0
  435. package/ui/dist/assets/{trending-up-BGafmjRo.js → trending-up-C5OYX2k2.js} +1 -1
  436. package/ui/dist/assets/vendor-query-C0p7b53x.js +4 -0
  437. package/ui/dist/assets/vendor-react-Mc5_kfYG.js +12 -0
  438. package/ui/dist/assets/vendor-ui-CXPAUBFv.js +51 -0
  439. package/ui/dist/assets/{wand-sparkles-DPvcd9Pi.js → wand-sparkles-BaH6pJnc.js} +1 -1
  440. package/ui/dist/assets/{wrench-B8s3zYVV.js → wrench-CjxjP6ok.js} +1 -1
  441. package/ui/dist/index.html +5 -2
  442. package/dist/chat/auto-reply.d.ts +0 -90
  443. package/dist/chat/auto-reply.js +0 -272
  444. package/dist/chat/execution/pty.d.ts +0 -92
  445. package/dist/chat/execution/pty.js +0 -285
  446. package/dist/chat/execution/tools/glinr-ops.d.ts +0 -202
  447. package/dist/chat/execution/tools/glinr-ops.js +0 -694
  448. package/dist/cli/commands/browser.d.ts +0 -3
  449. package/dist/cli/commands/browser.js +0 -138
  450. package/dist/cli/commands/canvas.d.ts +0 -3
  451. package/dist/cli/commands/canvas.js +0 -155
  452. package/dist/cli/commands/nodes.d.ts +0 -3
  453. package/dist/cli/commands/nodes.js +0 -193
  454. package/dist/diagnostics/exporters.d.ts +0 -21
  455. package/dist/diagnostics/exporters.js +0 -138
  456. package/dist/diagnostics/index.d.ts +0 -10
  457. package/dist/diagnostics/index.js +0 -9
  458. package/dist/diagnostics/middleware.d.ts +0 -12
  459. package/dist/diagnostics/middleware.js +0 -58
  460. package/dist/diagnostics/tracer.d.ts +0 -133
  461. package/dist/diagnostics/tracer.js +0 -257
  462. package/dist/discovery/index.d.ts +0 -8
  463. package/dist/discovery/index.js +0 -7
  464. package/dist/discovery/mdns.d.ts +0 -40
  465. package/dist/discovery/mdns.js +0 -249
  466. package/dist/plugins/registry.d.ts +0 -122
  467. package/dist/plugins/registry.js +0 -352
  468. package/dist/plugins/sandbox.d.ts +0 -77
  469. package/dist/plugins/sandbox.js +0 -287
  470. package/dist/plugins/search/brave.d.ts +0 -9
  471. package/dist/plugins/search/brave.js +0 -157
  472. package/dist/plugins/search/duckduckgo.d.ts +0 -9
  473. package/dist/plugins/search/duckduckgo.js +0 -171
  474. package/dist/plugins/search/index.d.ts +0 -13
  475. package/dist/plugins/search/index.js +0 -23
  476. package/dist/plugins/search/searxng.d.ts +0 -9
  477. package/dist/plugins/search/searxng.js +0 -170
  478. package/dist/plugins/search/serper.d.ts +0 -9
  479. package/dist/plugins/search/serper.js +0 -135
  480. package/dist/plugins/search/tavily.d.ts +0 -9
  481. package/dist/plugins/search/tavily.js +0 -146
  482. package/dist/providers/adapters/anthropic.d.ts +0 -26
  483. package/dist/providers/adapters/anthropic.js +0 -306
  484. package/dist/providers/adapters/base.d.ts +0 -53
  485. package/dist/providers/adapters/base.js +0 -99
  486. package/dist/providers/adapters/ollama.d.ts +0 -30
  487. package/dist/providers/adapters/ollama.js +0 -292
  488. package/dist/utils/ai-cache.d.ts +0 -72
  489. package/dist/utils/ai-cache.js +0 -204
  490. package/dist/utils/file-lock.d.ts +0 -85
  491. package/dist/utils/file-lock.js +0 -204
  492. package/ui/dist/assets/ActivityView-DIPQSJ_d.js +0 -1
  493. package/ui/dist/assets/AgentList-CqyaYrcq.js +0 -1
  494. package/ui/dist/assets/AnalyticsDashboard-C-mjuGHT.js +0 -1
  495. package/ui/dist/assets/AreaChart-CfYWmbtr.js +0 -1
  496. package/ui/dist/assets/CartesianChart-BaQ3It0c.js +0 -36
  497. package/ui/dist/assets/ChatView-DxxQy6pl.js +0 -10
  498. package/ui/dist/assets/CostsDashboard-CDBBcGkg.js +0 -1
  499. package/ui/dist/assets/EstimateSelect-CDjf5qKl.js +0 -1
  500. package/ui/dist/assets/FloatingChatbot-CZHjvJIe.js +0 -2
  501. package/ui/dist/assets/InviteCodeManagement-DTm-IPTm.js +0 -2
  502. package/ui/dist/assets/ProjectIcon-BMRpnM04.js +0 -1
  503. package/ui/dist/assets/ProjectList-D85TN0i0.js +0 -4
  504. package/ui/dist/assets/StatusIndicator-yig0uZEA.js +0 -1
  505. package/ui/dist/assets/SummaryList-BvS5Idnu.js +0 -1
  506. package/ui/dist/assets/TaskDetail-zarC1fOt.js +0 -1
  507. package/ui/dist/assets/TaskList-CyJq3ANE.js +0 -1
  508. package/ui/dist/assets/TicketBoard-BlWr3-iH.js +0 -1
  509. package/ui/dist/assets/TicketDetail-DmqWKj2W.js +0 -1
  510. package/ui/dist/assets/TicketList-Scj4pMWa.js +0 -1
  511. package/ui/dist/assets/UserManagement-BH7uG7dw.js +0 -2
  512. package/ui/dist/assets/ViewSwitcher-3HzZUdWn.js +0 -1
  513. package/ui/dist/assets/alert-dialog-DWPb2IfQ.js +0 -7
  514. package/ui/dist/assets/badge-DEmc3Z_l.js +0 -1
  515. package/ui/dist/assets/brain-CfFdLVqb.js +0 -1
  516. package/ui/dist/assets/constants-DhDjZe4P.js +0 -1
  517. package/ui/dist/assets/dialog-BOdGWhgE.js +0 -1
  518. package/ui/dist/assets/index--JkIxVXb.js +0 -67
  519. package/ui/dist/assets/index-Ca3vk7Gq.js +0 -1
  520. package/ui/dist/assets/index-DHGvP9mp.js +0 -1
  521. package/ui/dist/assets/index-DeI8lKRR.js +0 -1
  522. package/ui/dist/assets/index-WclMPci1.css +0 -1
  523. package/ui/dist/assets/index-Z4-RtZcs.js +0 -1
  524. package/ui/dist/assets/layers-DFeLExSa.js +0 -1
  525. package/ui/dist/assets/markdown-renderer-Croje6Xe.js +0 -36
  526. package/ui/dist/assets/popover-JXecfWG5.js +0 -1
  527. package/ui/dist/assets/progress-C1ghf1Fu.js +0 -1
  528. package/ui/dist/assets/select-MADP8m6Q.js +0 -1
  529. package/ui/dist/assets/server-CPMaysH8.js +0 -1
  530. package/ui/dist/assets/sheet-r6NSOxi-.js +0 -1
  531. package/ui/dist/assets/skeleton-C9oEzNlU.js +0 -1
  532. package/ui/dist/assets/switch-tNs0n-kz.js +0 -1
  533. package/ui/dist/assets/table-CXxtLicg.js +0 -1
  534. package/ui/dist/assets/textarea-BjiEeIWh.js +0 -1
  535. package/ui/dist/assets/tooltip-ZMwtfr1J.js +0 -1
@@ -1,135 +0,0 @@
1
- /**
2
- * Serper Search Provider
3
- *
4
- * Fast and cost-effective Google Search API.
5
- * https://serper.dev/
6
- */
7
- const SERPER_API_URL = 'https://google.serper.dev/search';
8
- class SerperProvider {
9
- metadata = SERPER_DEFINITION.metadata;
10
- apiKey;
11
- baseUrl;
12
- constructor(config) {
13
- this.apiKey = config.credentials?.apiKey || '';
14
- this.baseUrl = config.credentials?.baseUrl || SERPER_API_URL;
15
- }
16
- async search(query, options) {
17
- if (!this.apiKey) {
18
- throw new Error('Serper API key not configured');
19
- }
20
- const startTime = Date.now();
21
- const body = {
22
- q: query,
23
- num: options?.limit || 10,
24
- };
25
- if (options?.language)
26
- body.hl = options.language;
27
- if (options?.region)
28
- body.gl = options.region;
29
- const response = await fetch(this.baseUrl, {
30
- method: 'POST',
31
- headers: {
32
- 'X-API-KEY': this.apiKey,
33
- 'Content-Type': 'application/json',
34
- },
35
- body: JSON.stringify(body),
36
- });
37
- if (!response.ok) {
38
- const error = await response.text();
39
- throw new Error(`Serper API error: ${response.status} - ${error}`);
40
- }
41
- const data = await response.json();
42
- const searchTime = Date.now() - startTime;
43
- const results = (data.organic || []).map((item) => ({
44
- title: item.title,
45
- url: item.link,
46
- snippet: item.snippet || '',
47
- date: item.date,
48
- source: 'serper',
49
- metadata: {
50
- position: item.position,
51
- sitelinks: item.sitelinks,
52
- },
53
- }));
54
- return {
55
- results,
56
- query,
57
- totalResults: data.searchParameters?.totalResults,
58
- searchTime,
59
- provider: 'serper',
60
- };
61
- }
62
- async isAvailable() {
63
- return !!this.apiKey;
64
- }
65
- async healthCheck() {
66
- if (!this.apiKey) {
67
- return {
68
- healthy: false,
69
- lastCheck: new Date(),
70
- errorMessage: 'API key not configured',
71
- };
72
- }
73
- try {
74
- const startTime = Date.now();
75
- await this.search('test', { limit: 1 });
76
- const latency = Date.now() - startTime;
77
- return {
78
- healthy: true,
79
- lastCheck: new Date(),
80
- latency,
81
- };
82
- }
83
- catch (error) {
84
- return {
85
- healthy: false,
86
- lastCheck: new Date(),
87
- errorMessage: error instanceof Error ? error.message : 'Health check failed',
88
- };
89
- }
90
- }
91
- }
92
- // Plugin Definition
93
- export const SERPER_DEFINITION = {
94
- metadata: {
95
- id: 'serper',
96
- name: 'Serper',
97
- description: 'Fast Google Search API - cost-effective at scale',
98
- category: 'search',
99
- icon: 'search',
100
- version: '1.0.0',
101
- homepage: 'https://serper.dev',
102
- pricing: {
103
- type: 'paid',
104
- costPer1k: 1.0, // $1 per 1000 queries at starter tier
105
- freeQuota: 100, // 100 free queries
106
- },
107
- rateLimit: {
108
- requestsPerSecond: 300,
109
- },
110
- },
111
- settingsSchema: {
112
- credentials: [
113
- {
114
- key: 'apiKey',
115
- type: 'password',
116
- label: 'API Key',
117
- description: 'Your Serper API key from serper.dev',
118
- placeholder: 'Enter your Serper API key',
119
- required: true,
120
- },
121
- ],
122
- settings: [
123
- {
124
- key: 'defaultLimit',
125
- type: 'number',
126
- label: 'Default Results',
127
- description: 'Default number of results to return',
128
- default: 10,
129
- validation: { min: 1, max: 100 },
130
- },
131
- ],
132
- },
133
- factory: (config) => new SerperProvider(config),
134
- };
135
- //# sourceMappingURL=serper.js.map
@@ -1,9 +0,0 @@
1
- /**
2
- * Tavily Search Provider
3
- *
4
- * AI-optimized search API with safety filtering.
5
- * https://tavily.com/
6
- */
7
- import type { SearchPluginDefinition } from '../types.js';
8
- export declare const TAVILY_DEFINITION: SearchPluginDefinition;
9
- //# sourceMappingURL=tavily.d.ts.map
@@ -1,146 +0,0 @@
1
- /**
2
- * Tavily Search Provider
3
- *
4
- * AI-optimized search API with safety filtering.
5
- * https://tavily.com/
6
- */
7
- const TAVILY_API_URL = 'https://api.tavily.com/search';
8
- class TavilyProvider {
9
- metadata = TAVILY_DEFINITION.metadata;
10
- apiKey;
11
- includeRawContent;
12
- constructor(config) {
13
- this.apiKey = config.credentials?.apiKey || '';
14
- this.includeRawContent = config.settings?.includeRawContent || false;
15
- }
16
- async search(query, options) {
17
- if (!this.apiKey) {
18
- throw new Error('Tavily API key not configured');
19
- }
20
- const startTime = Date.now();
21
- const body = {
22
- api_key: this.apiKey,
23
- query,
24
- max_results: options?.limit || 10,
25
- include_raw_content: this.includeRawContent,
26
- include_images: options?.includeImages || false,
27
- };
28
- if (options?.includeDomains?.length) {
29
- body.include_domains = options.includeDomains;
30
- }
31
- if (options?.excludeDomains?.length) {
32
- body.exclude_domains = options.excludeDomains;
33
- }
34
- const response = await fetch(TAVILY_API_URL, {
35
- method: 'POST',
36
- headers: {
37
- 'Content-Type': 'application/json',
38
- },
39
- body: JSON.stringify(body),
40
- });
41
- if (!response.ok) {
42
- const error = await response.text();
43
- throw new Error(`Tavily API error: ${response.status} - ${error}`);
44
- }
45
- const data = await response.json();
46
- const searchTime = Date.now() - startTime;
47
- const results = (data.results || []).map((item) => ({
48
- title: item.title,
49
- url: item.url,
50
- snippet: item.content || '',
51
- source: 'tavily',
52
- score: item.score,
53
- metadata: {
54
- rawContent: item.raw_content,
55
- },
56
- }));
57
- return {
58
- results,
59
- query: data.query,
60
- searchTime,
61
- provider: 'tavily',
62
- };
63
- }
64
- async isAvailable() {
65
- return !!this.apiKey;
66
- }
67
- async healthCheck() {
68
- if (!this.apiKey) {
69
- return {
70
- healthy: false,
71
- lastCheck: new Date(),
72
- errorMessage: 'API key not configured',
73
- };
74
- }
75
- try {
76
- const startTime = Date.now();
77
- await this.search('test', { limit: 1 });
78
- const latency = Date.now() - startTime;
79
- return {
80
- healthy: true,
81
- lastCheck: new Date(),
82
- latency,
83
- };
84
- }
85
- catch (error) {
86
- return {
87
- healthy: false,
88
- lastCheck: new Date(),
89
- errorMessage: error instanceof Error ? error.message : 'Health check failed',
90
- };
91
- }
92
- }
93
- }
94
- export const TAVILY_DEFINITION = {
95
- metadata: {
96
- id: 'tavily',
97
- name: 'Tavily',
98
- description: 'AI-optimized search with safety filtering - built for agents',
99
- category: 'search',
100
- icon: 'brain',
101
- version: '1.0.0',
102
- homepage: 'https://tavily.com',
103
- pricing: {
104
- type: 'credit-based',
105
- costPer1k: 8.0, // ~$0.008 per credit, 1 credit per search
106
- freeQuota: 1000,
107
- },
108
- rateLimit: {
109
- requestsPerMinute: 60,
110
- },
111
- },
112
- settingsSchema: {
113
- credentials: [
114
- {
115
- key: 'apiKey',
116
- type: 'password',
117
- label: 'API Key',
118
- description: 'Your Tavily API key',
119
- placeholder: 'tvly-...',
120
- required: true,
121
- },
122
- ],
123
- settings: [
124
- {
125
- key: 'includeRawContent',
126
- type: 'boolean',
127
- label: 'Include Raw Content',
128
- description: 'Include full page content in results (uses more credits)',
129
- default: false,
130
- },
131
- {
132
- key: 'searchDepth',
133
- type: 'select',
134
- label: 'Search Depth',
135
- description: 'Basic is faster, Advanced is more thorough',
136
- default: 'basic',
137
- options: [
138
- { value: 'basic', label: 'Basic (1 credit)' },
139
- { value: 'advanced', label: 'Advanced (2 credits)' },
140
- ],
141
- },
142
- ],
143
- },
144
- factory: (config) => new TavilyProvider(config),
145
- };
146
- //# sourceMappingURL=tavily.js.map
@@ -1,26 +0,0 @@
1
- /**
2
- * Anthropic Provider Adapter
3
- *
4
- * Claude models via Anthropic API.
5
- * Supports streaming, vision, and tool use.
6
- *
7
- * @see https://docs.anthropic.com/
8
- */
9
- import type { ChatCompletionRequest, ChatCompletionResponse, ModelDefinition, ProviderConfig, ProviderHealth, ProviderType } from '../types.js';
10
- import { BaseProvider } from './base.js';
11
- export declare class AnthropicProvider extends BaseProvider {
12
- readonly type: ProviderType;
13
- readonly name = "Anthropic";
14
- private static readonly API_VERSION;
15
- private static readonly BASE_URL;
16
- protected createDefaultConfig(partial: Partial<ProviderConfig>): ProviderConfig;
17
- protected getDefaultModels(): ModelDefinition[];
18
- healthCheck(): Promise<ProviderHealth>;
19
- protected doComplete(request: ChatCompletionRequest): Promise<ChatCompletionResponse>;
20
- protected doCompleteStream(request: ChatCompletionRequest, onChunk: (chunk: string) => void): Promise<ChatCompletionResponse>;
21
- }
22
- /**
23
- * Create an Anthropic provider instance
24
- */
25
- export declare function createAnthropicProvider(config?: Partial<ProviderConfig>): AnthropicProvider;
26
- //# sourceMappingURL=anthropic.d.ts.map
@@ -1,306 +0,0 @@
1
- /**
2
- * Anthropic Provider Adapter
3
- *
4
- * Claude models via Anthropic API.
5
- * Supports streaming, vision, and tool use.
6
- *
7
- * @see https://docs.anthropic.com/
8
- */
9
- import { randomUUID } from 'node:crypto';
10
- import { ANTHROPIC_MODELS } from '../types.js';
11
- import { BaseProvider } from './base.js';
12
- import { logger } from '../../utils/logger.js';
13
- export class AnthropicProvider extends BaseProvider {
14
- type = 'anthropic';
15
- name = 'Anthropic';
16
- static API_VERSION = '2023-06-01';
17
- static BASE_URL = 'https://api.anthropic.com/v1';
18
- createDefaultConfig(partial) {
19
- return {
20
- id: 'anthropic',
21
- type: 'anthropic',
22
- name: 'Anthropic',
23
- enabled: true,
24
- baseUrl: partial.baseUrl || AnthropicProvider.BASE_URL,
25
- apiKey: partial.apiKey || process.env.ANTHROPIC_API_KEY,
26
- defaultModel: partial.defaultModel || 'claude-sonnet-4-5',
27
- maxConcurrent: partial.maxConcurrent || 5,
28
- timeout: partial.timeout || 300000,
29
- models: ANTHROPIC_MODELS,
30
- ...partial,
31
- };
32
- }
33
- getDefaultModels() {
34
- return ANTHROPIC_MODELS;
35
- }
36
- async healthCheck() {
37
- const startTime = Date.now();
38
- if (!this.config.apiKey) {
39
- return {
40
- provider: 'anthropic',
41
- healthy: false,
42
- latencyMs: Date.now() - startTime,
43
- message: 'API key not configured',
44
- lastChecked: new Date().toISOString(),
45
- };
46
- }
47
- try {
48
- // Anthropic doesn't have a dedicated health endpoint
49
- // We'll do a minimal messages call with 1 max token
50
- const response = await fetch(`${this.config.baseUrl}/messages`, {
51
- method: 'POST',
52
- headers: {
53
- 'Content-Type': 'application/json',
54
- 'x-api-key': this.config.apiKey,
55
- 'anthropic-version': AnthropicProvider.API_VERSION,
56
- },
57
- body: JSON.stringify({
58
- model: this.config.defaultModel || 'claude-sonnet-4-5',
59
- max_tokens: 1,
60
- messages: [{ role: 'user', content: 'Hi' }],
61
- }),
62
- signal: AbortSignal.timeout(10000),
63
- });
64
- const latencyMs = Date.now() - startTime;
65
- if (!response.ok) {
66
- const error = await response.json().catch(() => ({}));
67
- return {
68
- provider: 'anthropic',
69
- healthy: false,
70
- latencyMs,
71
- message: error?.error?.message || `API returned ${response.status}`,
72
- lastChecked: new Date().toISOString(),
73
- };
74
- }
75
- return {
76
- provider: 'anthropic',
77
- healthy: true,
78
- latencyMs,
79
- message: 'Anthropic API is available',
80
- availableModels: ANTHROPIC_MODELS.map((m) => m.id),
81
- lastChecked: new Date().toISOString(),
82
- };
83
- }
84
- catch (error) {
85
- return {
86
- provider: 'anthropic',
87
- healthy: false,
88
- latencyMs: Date.now() - startTime,
89
- message: error instanceof Error ? error.message : 'Connection failed',
90
- lastChecked: new Date().toISOString(),
91
- };
92
- }
93
- }
94
- async doComplete(request) {
95
- if (!this.config.apiKey) {
96
- throw new Error('Anthropic API key not configured');
97
- }
98
- const startTime = Date.now();
99
- const model = request.model || this.config.defaultModel || 'claude-sonnet-4-5';
100
- // Build Anthropic messages format
101
- const messages = [];
102
- for (const msg of request.messages) {
103
- if (msg.role === 'user' || msg.role === 'assistant') {
104
- messages.push({
105
- role: msg.role,
106
- content: msg.content,
107
- });
108
- }
109
- }
110
- const requestBody = {
111
- model,
112
- max_tokens: request.maxTokens || 8192,
113
- messages,
114
- };
115
- if (request.systemPrompt) {
116
- requestBody.system = request.systemPrompt;
117
- }
118
- if (request.temperature !== undefined) {
119
- requestBody.temperature = request.temperature;
120
- }
121
- // Add tools if provided
122
- if (request.tools && request.tools.length > 0) {
123
- requestBody.tools = request.tools.map((tool) => ({
124
- name: tool.name,
125
- description: tool.description,
126
- input_schema: tool.parameters,
127
- }));
128
- }
129
- logger.debug(`[Anthropic] Calling ${model} with ${messages.length} messages`);
130
- const response = await fetch(`${this.config.baseUrl}/messages`, {
131
- method: 'POST',
132
- headers: {
133
- 'Content-Type': 'application/json',
134
- 'x-api-key': this.config.apiKey,
135
- 'anthropic-version': AnthropicProvider.API_VERSION,
136
- },
137
- body: JSON.stringify(requestBody),
138
- signal: AbortSignal.timeout(this.config.timeout),
139
- });
140
- if (!response.ok) {
141
- const error = await response.json().catch(() => ({}));
142
- throw new Error(`Anthropic API error: ${response.status} - ${error?.error?.message || 'Unknown error'}`);
143
- }
144
- const result = (await response.json());
145
- const duration = Date.now() - startTime;
146
- // Extract text content
147
- const textContent = result.content
148
- .filter((c) => c.type === 'text')
149
- .map((c) => c.text)
150
- .join('');
151
- // Extract tool calls
152
- const toolCalls = result.content
153
- .filter((c) => c.type === 'tool_use')
154
- .map((c) => ({
155
- id: c.id || randomUUID(),
156
- name: c.name || '',
157
- arguments: c.input || {},
158
- }));
159
- const finishReason = result.stop_reason === 'end_turn'
160
- ? 'stop'
161
- : result.stop_reason === 'max_tokens'
162
- ? 'length'
163
- : result.stop_reason === 'tool_use'
164
- ? 'tool_calls'
165
- : 'stop';
166
- return {
167
- id: result.id,
168
- provider: 'anthropic',
169
- model: result.model,
170
- message: this.createMessage('assistant', textContent),
171
- finishReason: finishReason,
172
- usage: {
173
- promptTokens: result.usage.input_tokens,
174
- completionTokens: result.usage.output_tokens,
175
- totalTokens: result.usage.input_tokens + result.usage.output_tokens,
176
- cost: this.calculateCost(result.usage.input_tokens, result.usage.output_tokens, model),
177
- },
178
- toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
179
- duration,
180
- };
181
- }
182
- async doCompleteStream(request, onChunk) {
183
- if (!this.config.apiKey) {
184
- throw new Error('Anthropic API key not configured');
185
- }
186
- const startTime = Date.now();
187
- const model = request.model || this.config.defaultModel || 'claude-sonnet-4-5';
188
- const messages = [];
189
- for (const msg of request.messages) {
190
- if (msg.role === 'user' || msg.role === 'assistant') {
191
- messages.push({
192
- role: msg.role,
193
- content: msg.content,
194
- });
195
- }
196
- }
197
- const requestBody = {
198
- model,
199
- max_tokens: request.maxTokens || 8192,
200
- messages,
201
- stream: true,
202
- };
203
- if (request.systemPrompt) {
204
- requestBody.system = request.systemPrompt;
205
- }
206
- if (request.temperature !== undefined) {
207
- requestBody.temperature = request.temperature;
208
- }
209
- const response = await fetch(`${this.config.baseUrl}/messages`, {
210
- method: 'POST',
211
- headers: {
212
- 'Content-Type': 'application/json',
213
- 'x-api-key': this.config.apiKey,
214
- 'anthropic-version': AnthropicProvider.API_VERSION,
215
- },
216
- body: JSON.stringify(requestBody),
217
- signal: AbortSignal.timeout(this.config.timeout),
218
- });
219
- if (!response.ok) {
220
- const error = await response.json().catch(() => ({}));
221
- throw new Error(`Anthropic API error: ${response.status} - ${error?.error?.message || 'Unknown error'}`);
222
- }
223
- // Process SSE stream
224
- let fullContent = '';
225
- let promptTokens = 0;
226
- let completionTokens = 0;
227
- let messageId = randomUUID();
228
- let finishReason = 'stop';
229
- const reader = response.body?.getReader();
230
- if (!reader) {
231
- throw new Error('No response body');
232
- }
233
- const decoder = new TextDecoder();
234
- let buffer = '';
235
- while (true) {
236
- const { done, value } = await reader.read();
237
- if (done)
238
- break;
239
- buffer += decoder.decode(value, { stream: true });
240
- const lines = buffer.split('\n');
241
- buffer = lines.pop() || '';
242
- for (const line of lines) {
243
- if (line.startsWith('data: ')) {
244
- const data = line.slice(6);
245
- if (data === '[DONE]')
246
- continue;
247
- try {
248
- const event = JSON.parse(data);
249
- switch (event.type) {
250
- case 'message_start':
251
- if (event.message) {
252
- messageId = event.message.id;
253
- promptTokens = event.message.usage?.input_tokens || 0;
254
- }
255
- break;
256
- case 'content_block_delta':
257
- if (event.delta?.text) {
258
- fullContent += event.delta.text;
259
- onChunk(event.delta.text);
260
- }
261
- break;
262
- case 'message_delta':
263
- if (event.delta?.stop_reason) {
264
- finishReason =
265
- event.delta.stop_reason === 'end_turn'
266
- ? 'stop'
267
- : event.delta.stop_reason === 'max_tokens'
268
- ? 'length'
269
- : 'stop';
270
- }
271
- if (event.usage) {
272
- completionTokens = event.usage.output_tokens;
273
- }
274
- break;
275
- }
276
- }
277
- catch {
278
- // Skip invalid JSON
279
- }
280
- }
281
- }
282
- }
283
- const duration = Date.now() - startTime;
284
- return {
285
- id: messageId,
286
- provider: 'anthropic',
287
- model,
288
- message: this.createMessage('assistant', fullContent),
289
- finishReason,
290
- usage: {
291
- promptTokens,
292
- completionTokens,
293
- totalTokens: promptTokens + completionTokens,
294
- cost: this.calculateCost(promptTokens, completionTokens, model),
295
- },
296
- duration,
297
- };
298
- }
299
- }
300
- /**
301
- * Create an Anthropic provider instance
302
- */
303
- export function createAnthropicProvider(config) {
304
- return new AnthropicProvider(config || {});
305
- }
306
- //# sourceMappingURL=anthropic.js.map
@@ -1,53 +0,0 @@
1
- /**
2
- * Base Provider Adapter
3
- *
4
- * Abstract base class for AI provider implementations.
5
- * Handles common functionality like configuration and model management.
6
- */
7
- import type { AIProvider, ChatCompletionRequest, ChatCompletionResponse, ChatMessage, ModelDefinition, ProviderConfig, ProviderHealth, ProviderType } from '../types.js';
8
- export declare abstract class BaseProvider implements AIProvider {
9
- abstract readonly type: ProviderType;
10
- abstract readonly name: string;
11
- protected config: ProviderConfig;
12
- protected models: ModelDefinition[];
13
- constructor(config: Partial<ProviderConfig>);
14
- /**
15
- * Create default configuration for this provider
16
- */
17
- protected abstract createDefaultConfig(partial: Partial<ProviderConfig>): ProviderConfig;
18
- /**
19
- * Get default models for this provider
20
- */
21
- protected abstract getDefaultModels(): ModelDefinition[];
22
- /**
23
- * Make the actual API call for completion
24
- */
25
- protected abstract doComplete(request: ChatCompletionRequest): Promise<ChatCompletionResponse>;
26
- /**
27
- * Make the actual API call for streaming completion
28
- */
29
- protected abstract doCompleteStream(request: ChatCompletionRequest, onChunk: (chunk: string) => void): Promise<ChatCompletionResponse>;
30
- configure(config: Partial<ProviderConfig>): void;
31
- getConfig(): ProviderConfig;
32
- abstract healthCheck(): Promise<ProviderHealth>;
33
- listModels(): Promise<ModelDefinition[]>;
34
- getModel(modelId: string): ModelDefinition | undefined;
35
- complete(request: ChatCompletionRequest): Promise<ChatCompletionResponse>;
36
- completeStream(request: ChatCompletionRequest, onChunk: (chunk: string) => void): Promise<ChatCompletionResponse>;
37
- /**
38
- * Create a chat message
39
- */
40
- protected createMessage(role: ChatMessage['role'], content: string, options?: Partial<ChatMessage>): ChatMessage;
41
- /**
42
- * Convert messages to provider-specific format
43
- */
44
- protected formatMessages(messages: ChatMessage[], systemPrompt?: string): Array<{
45
- role: string;
46
- content: string;
47
- }>;
48
- /**
49
- * Calculate cost from token usage
50
- */
51
- protected calculateCost(promptTokens: number, completionTokens: number, modelId?: string): number;
52
- }
53
- //# sourceMappingURL=base.d.ts.map