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 +0,0 @@
1
- import{s as oe,q as ie,r as L,u as O,j as e,v as ce,w as de,I as U,T as k,a1 as Y,C as N,X as P,S as E,F as xe,an as M,B as H,k as S,L as me,h as ue,g as pe,m as q}from"./index--JkIxVXb.js";import{B as Q}from"./badge-DEmc3Z_l.js";import{S as j,a as b,b as v,c as f,d as h}from"./select-MADP8m6Q.js";import{P as he,a as ge,b as je}from"./popover-JXecfWG5.js";import{V as be,C as ve}from"./ViewSwitcher-3HzZUdWn.js";import{E as fe}from"./EstimateSelect-CDjf5qKl.js";import{I as G,C as T,L as W}from"./layers-DFeLExSa.js";import{P as X}from"./play-DVgea_jT.js";import{B as J,a as _}from"./bug-DqSGPUUE.js";import{T as Ne}from"./tag-tAwMmQ9G.js";import{F as ye}from"./funnel-ByEjRFNB.js";import"./chevron-up-DcJ4LL_N.js";import"./textarea-BjiEeIWh.js";import"./dialog-BOdGWhgE.js";import"./brain-CfFdLVqb.js";import"./wand-sparkles-DPvcd9Pi.js";import"./folder-open-CHwA1-ve.js";import"./link-2-YqrpQXBH.js";import"./hash-nKC9gtLg.js";import"./lightbulb-Bo8hEr7B.js";const we=[{value:"all",label:"All Status",icon:k},{value:"backlog",label:"Backlog",icon:G},{value:"todo",label:"Todo",icon:T},{value:"in_progress",label:"In Progress",icon:X},{value:"in_review",label:"In Review",icon:Y},{value:"done",label:"Done",icon:N},{value:"cancelled",label:"Cancelled",icon:P}],Ce=[{value:"all",label:"All Types",icon:k},{value:"task",label:"Task",icon:N},{value:"bug",label:"Bug",icon:J},{value:"feature",label:"Feature",icon:E},{value:"epic",label:"Epic",icon:W},{value:"story",label:"Story",icon:_},{value:"subtask",label:"Subtask",icon:T}],Se=[{value:"all",label:"All Priorities",color:"text-muted-foreground"},{value:"urgent",label:"Urgent",color:"text-red-500"},{value:"high",label:"High",color:"text-orange-500"},{value:"medium",label:"Medium",color:"text-yellow-500"},{value:"low",label:"Low",color:"text-blue-500"},{value:"none",label:"None",color:"text-gray-500"}],Pe=[{value:"all",label:"All Authors",icon:M},{value:"human",label:"Human",icon:M},{value:"ai",label:"AI",icon:H}];function Ye(){const Z=oe(),[r,V]=ie(),n=r.get("status")||"all",o=r.get("type")||"all",i=r.get("priority")||"all",l=r.get("project")||"all",c=r.get("createdBy")||"all",t=r.get("label")||"",[u,z]=L.useState(r.get("q")||""),[R,y]=L.useState(""),[x,w]=L.useState(0),p=20,{data:ee}=O({queryKey:["projects-list"],queryFn:()=>q.projects.list({limit:100})}),C=ee?.projects??[],{data:ae}=O({queryKey:["labels-global"],queryFn:async()=>{const a=C[0];return a?q.labels.list(a.id,{includeGlobal:!0}):{labels:[],total:0}},enabled:C.length>0}),D=ae?.labels??[],d=(a,s)=>{const m=new URLSearchParams(r);s==="all"||s===""?m.delete(a):m.set(a,s),V(m),w(0)},se=()=>{V({}),z(""),y(""),w(0)},I=n!=="all"||o!=="all"||i!=="all"||l!=="all"||c!=="all"||t||u,{data:$,isLoading:le,error:K}=O({queryKey:["tickets",{status:n==="all"?void 0:n,type:o==="all"?void 0:o,priority:i==="all"?void 0:i,projectId:l==="all"?void 0:l,createdBy:c==="all"?void 0:c,label:t||void 0,search:u||void 0,limit:p,offset:x*p}],queryFn:()=>q.tickets.list({status:n==="all"?void 0:n,type:o==="all"?void 0:o,priority:i==="all"?void 0:i,projectId:l==="all"?void 0:l,createdBy:c==="all"?void 0:c,label:t||void 0,search:u||void 0,limit:p,offset:x*p})}),g=$?.tickets??[],B=$?.total??0,te=a=>{const m={done:{variant:"success",icon:N},cancelled:{variant:"destructive",icon:P},in_progress:{variant:"info",icon:X},in_review:{variant:"warning",icon:Y},todo:{variant:"secondary",icon:T},backlog:{variant:"secondary",icon:G}}[a]||{variant:"secondary",icon:pe},{variant:A,icon:F}=m;return e.jsxs(Q,{variant:A,className:"gap-1",children:[e.jsx(F,{className:"h-3 w-3"}),a.replace("_"," ")]})},re=a=>{const m={task:{icon:N,color:"text-blue-500"},bug:{icon:J,color:"text-red-500"},feature:{icon:E,color:"text-cyan-500"},enhancement:{icon:E,color:"text-indigo-500"},documentation:{icon:_,color:"text-cyan-500"},epic:{icon:W,color:"text-orange-500"},story:{icon:_,color:"text-green-500"},subtask:{icon:T,color:"text-gray-500"}}[a]||{icon:k,color:"text-gray-500"},{icon:A,color:F}=m;return e.jsxs("span",{className:`flex items-center gap-1 text-xs ${F}`,children:[e.jsx(A,{className:"h-3 w-3"}),a]})},ne=a=>{const s={urgent:"bg-red-500",high:"bg-orange-500",medium:"bg-yellow-500",low:"bg-blue-500",none:"bg-gray-400"};return e.jsx("div",{className:`h-2 w-2 rounded-full ${s[a]}`,title:a})};return K?e.jsxs("div",{className:"premium-card rounded-[24px] p-12 text-center",children:[e.jsx(ce,{className:"h-12 w-12 mx-auto text-red-400 mb-4"}),e.jsx("p",{className:"text-lg font-bold text-red-400",children:"Error loading tickets"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:K.message})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("header",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Tickets"}),e.jsxs("p",{className:"text-muted-foreground text-sm",children:[B," total tickets • ",g.length," showing"]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(be,{view:"list",onChange:a=>{a==="board"&&Z("/tickets/board")}}),e.jsx(ve,{})]})]}),e.jsxs("div",{className:"premium-card rounded-[20px] p-4 bg-muted/20",children:[e.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(de,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(U,{placeholder:"Search tickets by title or description...",value:u,onChange:a=>{z(a.target.value),d("q",a.target.value)},className:"pl-10 h-10"})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(j,{value:n,onValueChange:a=>d("status",a),children:[e.jsx(b,{className:"w-[140px]",children:e.jsx(v,{placeholder:"Status"})}),e.jsx(f,{className:"glass-heavy rounded-xl border-white/10",children:we.map(a=>e.jsx(h,{value:a.value,children:e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(a.icon,{className:"h-3.5 w-3.5"}),a.label]})},a.value))})]}),e.jsxs(j,{value:o,onValueChange:a=>d("type",a),children:[e.jsx(b,{className:"w-[130px]",children:e.jsx(v,{placeholder:"Type"})}),e.jsx(f,{className:"glass-heavy rounded-xl border-white/10",children:Ce.map(a=>e.jsx(h,{value:a.value,children:e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(a.icon,{className:"h-3.5 w-3.5"}),a.label]})},a.value))})]}),e.jsxs(j,{value:i,onValueChange:a=>d("priority",a),children:[e.jsx(b,{className:"w-[140px]",children:e.jsx(v,{placeholder:"Priority"})}),e.jsx(f,{className:"glass-heavy rounded-xl border-white/10",children:Se.map(a=>e.jsx(h,{value:a.value,children:e.jsx("span",{className:`flex items-center gap-2 ${a.color}`,children:a.label})},a.value))})]}),e.jsxs(j,{value:l,onValueChange:a=>d("project",a),children:[e.jsx(b,{className:"w-[150px]",children:e.jsx(v,{placeholder:"Project"})}),e.jsxs(f,{className:"glass-heavy rounded-xl border-white/10",children:[e.jsx(h,{value:"all",children:e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(xe,{className:"h-3.5 w-3.5"}),"All Projects"]})}),C.map(a=>e.jsx(h,{value:a.id,children:e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{children:a.icon}),a.name]})},a.id))]})]}),e.jsxs(j,{value:c,onValueChange:a=>d("createdBy",a),children:[e.jsx(b,{className:"w-[130px]",children:e.jsx(v,{placeholder:"Author"})}),e.jsx(f,{className:"glass-heavy rounded-xl border-white/10",children:Pe.map(a=>e.jsx(h,{value:a.value,children:e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(a.icon,{className:"h-3.5 w-3.5"}),a.label]})},a.value))})]}),e.jsxs(he,{children:[e.jsx(ge,{asChild:!0,children:e.jsxs(S,{variant:"outline",size:"sm",className:`w-[130px] justify-start ${t?"text-primary":""}`,children:[e.jsx(Ne,{className:"h-3.5 w-3.5 mr-2"}),t||"Label"]})}),e.jsxs(je,{className:"w-64 p-0 glass-heavy rounded-xl border-white/10",align:"start",children:[e.jsx("div",{className:"p-2 border-b border-white/5",children:e.jsx(U,{placeholder:"Search labels...",value:R,onChange:a=>y(a.target.value),className:"h-8 bg-transparent border-white/10"})}),e.jsxs("div",{className:"max-h-64 overflow-y-auto p-1",children:[e.jsxs("button",{type:"button",onClick:()=>{d("label",""),y("")},className:"flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-sm hover:bg-white/5",children:[e.jsx(P,{className:"h-3.5 w-3.5 text-muted-foreground"}),e.jsx("span",{children:"Clear label filter"})]}),D.filter(a=>a.name.toLowerCase().includes(R.toLowerCase())).map(a=>e.jsxs("button",{type:"button",onClick:()=>{d("label",a.name),y("")},className:`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-sm hover:bg-white/5 ${t===a.name?"bg-primary/10":""}`,children:[e.jsx("span",{className:"h-3 w-3 rounded-full shrink-0",style:{backgroundColor:a.color}}),e.jsx("span",{className:"truncate",children:a.name}),t===a.name&&e.jsx(N,{className:"h-3.5 w-3.5 ml-auto text-primary"})]},a.id)),D.length===0&&e.jsx("p",{className:"p-2 text-sm text-muted-foreground text-center",children:"No labels available"})]})]})]}),I&&e.jsxs(S,{variant:"ghost",size:"sm",onClick:se,className:"rounded-xl text-muted-foreground hover:text-foreground",children:[e.jsx(P,{className:"h-4 w-4 mr-1"}),"Clear"]})]})]}),I&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-3 pt-3 border-t border-white/5",children:[e.jsx(ye,{className:"h-4 w-4 text-muted-foreground"}),n!=="all"&&e.jsxs("span",{className:"px-2 py-0.5 rounded-lg bg-blue-500/10 text-blue-400 text-xs font-medium",children:["Status: ",n]}),o!=="all"&&e.jsxs("span",{className:"px-2 py-0.5 rounded-lg bg-indigo-500/10 text-indigo-400 text-xs font-medium capitalize",children:["Type: ",o]}),i!=="all"&&e.jsxs("span",{className:"px-2 py-0.5 rounded-lg bg-orange-500/10 text-orange-400 text-xs font-medium capitalize",children:["Priority: ",i]}),l!=="all"&&e.jsxs("span",{className:"px-2 py-0.5 rounded-lg bg-indigo-500/10 text-indigo-400 text-xs font-medium",children:["Project: ",C.find(a=>a.id===l)?.name||l]}),c!=="all"&&e.jsxs("span",{className:"px-2 py-0.5 rounded-lg bg-cyan-500/10 text-cyan-400 text-xs font-medium capitalize",children:["Author: ",c]}),t&&e.jsxs("span",{className:"px-2 py-0.5 rounded-lg bg-pink-500/10 text-pink-400 text-xs font-medium",children:["Label: ",t]}),u&&e.jsxs("span",{className:"px-2 py-0.5 rounded-lg bg-green-500/10 text-green-400 text-xs font-medium",children:['Search: "',u,'"']})]})]}),le?e.jsx("div",{className:"premium-card rounded-[28px] p-12 flex items-center justify-center",children:e.jsx(me,{className:"h-8 w-8 animate-spin text-muted-foreground"})}):g.length===0?e.jsxs("div",{className:"premium-card rounded-[24px] p-12 text-center",children:[e.jsx(k,{className:"h-12 w-12 mx-auto text-muted-foreground/40 mb-4"}),e.jsx("p",{className:"text-lg font-bold text-muted-foreground",children:"No tickets found"}),e.jsx("p",{className:"text-sm text-muted-foreground/60 mt-1",children:I?"Try adjusting your filters":"Create a ticket to get started"})]}):e.jsx("div",{className:"space-y-2",children:g.map(a=>e.jsx(ue,{to:`/tickets/${a.id}`,className:"block premium-card border-none hover:bg-muted/30 transition-all group",children:e.jsx("div",{className:"flex items-start justify-between gap-4",children:e.jsxs("div",{className:"flex items-start gap-3 flex-1 min-w-0",children:[e.jsx("div",{className:"pt-1",children:ne(a.priority)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[e.jsxs("span",{className:"text-xs font-mono text-muted-foreground",children:[a.projectKey||"PROFCLAW","-",a.sequence]}),!a.projectId&&e.jsx("span",{className:"text-[9px] font-bold uppercase tracking-wider text-amber-400 px-1.5 py-0.5 rounded bg-amber-500/10 border border-amber-500/20",children:"No Project"}),e.jsx("h3",{className:"font-semibold truncate group-hover:text-primary transition-colors",children:a.title})]}),a.description&&e.jsx("p",{className:"text-sm text-muted-foreground line-clamp-1 mb-2",children:a.description}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[re(a.type),te(a.status),a.assigneeAgent&&e.jsxs("span",{className:"flex items-center gap-1 text-[10px] font-bold uppercase tracking-wider text-primary/80 px-2 py-0.5 rounded-md bg-primary/10",children:[e.jsx(H,{className:"h-3 w-3"}),a.assigneeAgent]}),a.createdBy==="ai"&&e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-blue-400 px-2 py-0.5 rounded-md bg-blue-500/10",children:"AI Created"}),a.labels.slice(0,3).map(s=>e.jsx(Q,{variant:"outline",className:"text-[10px] px-1.5 py-0",children:s},s)),a.estimate!=null&&e.jsx(fe,{value:a.estimate}),e.jsx("span",{className:"text-[10px] text-muted-foreground/50 ml-auto",children:new Date(a.createdAt).toLocaleDateString()})]})]})]})})},a.id))}),g.length>0&&e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Page ",x+1," • Showing ",Math.min(g.length,p)," of ",B]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(S,{variant:"outline",size:"sm",onClick:()=>w(x-1),disabled:x===0,className:"rounded-xl border-white/10",children:"Previous"}),e.jsx(S,{variant:"outline",size:"sm",onClick:()=>w(x+1),disabled:(x+1)*p>=B,className:"rounded-xl border-white/10",children:"Next"})]})]})]})}export{Ye as TicketList};
@@ -1,2 +0,0 @@
1
- import{n as _,r as l,u as X,o as w,t as a,j as e,U,ad as G,k as r,R as V,i as N,w as W,L as T,bJ as Y,C as R,D as Z,x as ee,y as se,bo as te,aw as v,z as m,_ as ae,ai as E,O as F,Q as P}from"./index--JkIxVXb.js";import{A as re,a as le,b as ne,c as de,d as ie,e as oe,f as ce,g as me}from"./alert-dialog-DWPb2IfQ.js";import{C as M}from"./circle-x-C78PNZjF.js";import{E as xe}from"./ellipsis-FhHKRbfl.js";import{S as ue}from"./shield-off-CLtXio62.js";import{T as he}from"./trash-2-eM-CNwsZ.js";const x="http://localhost:3000";function ve(){const u=_(),[h,L]=l.useState(""),[n,Q]=l.useState(null),[$,p]=l.useState(!1),[d,b]=l.useState(null),[y,C]=l.useState(null),[i,j]=l.useState(null),{data:o,isLoading:g,error:k,refetch:q}=X({queryKey:["admin","users"],queryFn:async()=>{const s=await fetch(`${x}/api/users/admin/list`,{credentials:"include"});if(!s.ok)throw s.status===403?new Error("Admin access required"):new Error("Failed to fetch users");return s.json()}}),S=w({mutationFn:async({userId:s,updates:t})=>{const c=await fetch(`${x}/api/users/admin/${s}`,{method:"PATCH",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(t)});if(!c.ok)throw new Error("Failed to update user");return c.json()},onSuccess:()=>{u.invalidateQueries({queryKey:["admin","users"]}),a.success("User updated")},onError:()=>a.error("Failed to update user")}),f=w({mutationFn:async s=>{const t=await fetch(`${x}/api/users/admin/${s}/reset-password`,{method:"POST",credentials:"include"});if(!t.ok)throw new Error("Failed to reset password");return t.json()},onSuccess:s=>{b({password:s.temporaryPassword,codes:s.recoveryCodes}),u.invalidateQueries({queryKey:["admin","users"]}),a.success("Password reset successfully")},onError:()=>a.error("Failed to reset password")}),I=w({mutationFn:async s=>{const t=await fetch(`${x}/api/users/admin/${s}`,{method:"DELETE",credentials:"include"});if(!t.ok){const c=await t.json().catch(()=>({error:"Failed to delete user"}));throw new Error(c.error||"Failed to delete user")}return t.json()},onSuccess:()=>{u.invalidateQueries({queryKey:["admin","users"]}),a.success("User deleted")},onError:s=>a.error(s.message)}),A=(s,t)=>{navigator.clipboard.writeText(s),C(t),setTimeout(()=>C(null),2e3),a.success(`${t} copied`)},D=o?.users?.filter(s=>s.name.toLowerCase().includes(h.toLowerCase())||s.email.toLowerCase().includes(h.toLowerCase()))||[],z=s=>{const t=s.role==="admin"?"user":"admin";S.mutate({userId:s.id,updates:{role:t}})},K=s=>{const t=s.status==="active"?"suspended":"active";S.mutate({userId:s.id,updates:{status:t}})},O=s=>{Q(s),p(!0),b(null)},B=()=>{n&&f.mutate(n.id)},H=s=>{j(s)},J=()=>{i&&(I.mutate(i.id),j(null))};return k?e.jsx("div",{className:"p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[e.jsx(U,{className:"h-12 w-12 text-destructive mb-4"}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:"Access Denied"}),e.jsx("p",{className:"text-muted-foreground",children:k.message})]})}):e.jsxs("div",{className:"p-6 space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold flex items-center gap-3",children:[e.jsx(G,{className:"h-6 w-6"}),"User Management"]}),e.jsx("p",{className:"text-muted-foreground mt-1",children:"Manage user accounts, roles, and permissions"})]}),e.jsxs(r,{variant:"outline",onClick:()=>q(),disabled:g,className:"rounded-xl",children:[e.jsx(V,{className:N("h-4 w-4 mr-2",g&&"animate-spin")}),"Refresh"]})]}),e.jsxs("div",{className:"relative max-w-md",children:[e.jsx(W,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx("input",{type:"text",placeholder:"Search users...",value:h,onChange:s=>L(s.target.value),className:"w-full pl-10 pr-4 py-2 field-lg"})]}),e.jsx("div",{className:"rounded-2xl glass shadow-lg overflow-hidden",children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-white/5 bg-muted/30",children:[e.jsx("th",{className:"text-left p-4 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"User"}),e.jsx("th",{className:"text-left p-4 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Role"}),e.jsx("th",{className:"text-left p-4 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Status"}),e.jsx("th",{className:"text-left p-4 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Created"}),e.jsx("th",{className:"text-right p-4 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Actions"})]})}),e.jsx("tbody",{children:g?e.jsx("tr",{children:e.jsx("td",{colSpan:5,className:"p-8 text-center",children:e.jsx(T,{className:"h-6 w-6 animate-spin mx-auto text-muted-foreground"})})}):D.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:5,className:"p-8 text-center text-muted-foreground",children:"No users found"})}):D.map(s=>e.jsxs("tr",{className:"border-b border-white/5 last:border-0 hover:bg-muted/20 transition-colors",children:[e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[s.avatarUrl?e.jsx("img",{src:s.avatarUrl,alt:s.name,className:"h-10 w-10 rounded-full ring-1 ring-white/10"}):e.jsx("div",{className:"h-10 w-10 rounded-full bg-gradient-to-br from-primary to-primary/60 ring-1 ring-white/10 flex items-center justify-center text-sm font-medium text-white",children:s.name.charAt(0).toUpperCase()}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:s.name}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s.email})]})]})}),e.jsx("td",{className:"p-4",children:e.jsxs("span",{className:N("inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-semibold",s.role==="admin"?"bg-red-500/10 text-red-500":"bg-blue-500/10 text-blue-500"),children:[s.role==="admin"&&e.jsx(Y,{className:"h-3 w-3"}),s.role]})}),e.jsx("td",{className:"p-4",children:e.jsxs("span",{className:N("inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-semibold",s.status==="active"?"bg-green-500/10 text-green-500":"bg-amber-500/10 text-amber-500"),children:[s.status==="active"?e.jsx(R,{className:"h-3 w-3"}):e.jsx(M,{className:"h-3 w-3"}),s.status]})}),e.jsx("td",{className:"p-4 text-sm text-muted-foreground",children:new Date(s.createdAt).toLocaleDateString()}),e.jsx("td",{className:"p-4",children:e.jsx("div",{className:"flex items-center justify-end gap-2",children:e.jsxs(Z,{children:[e.jsx(ee,{asChild:!0,children:e.jsx(r,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 rounded-lg",children:e.jsx(xe,{className:"h-4 w-4"})})}),e.jsxs(se,{align:"end",className:"w-48",children:[e.jsx(te,{children:"Actions"}),e.jsx(v,{}),e.jsx(m,{onClick:()=>z(s),children:s.role==="admin"?e.jsxs(e.Fragment,{children:[e.jsx(ue,{className:"h-4 w-4 mr-2"}),"Remove Admin"]}):e.jsxs(e.Fragment,{children:[e.jsx(ae,{className:"h-4 w-4 mr-2"}),"Make Admin"]})}),e.jsx(m,{onClick:()=>K(s),children:s.status==="active"?e.jsxs(e.Fragment,{children:[e.jsx(M,{className:"h-4 w-4 mr-2"}),"Suspend User"]}):e.jsxs(e.Fragment,{children:[e.jsx(R,{className:"h-4 w-4 mr-2"}),"Activate User"]})}),e.jsx(v,{}),e.jsxs(m,{onClick:()=>O(s),children:[e.jsx(E,{className:"h-4 w-4 mr-2"}),"Reset Password"]}),e.jsx(v,{}),e.jsxs(m,{onClick:()=>H(s),className:"text-destructive focus:text-destructive",children:[e.jsx(he,{className:"h-4 w-4 mr-2"}),"Delete User"]})]})]})})})]},s.id))})]})})}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"p-4 rounded-2xl glass shadow-lg",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Total Users"}),e.jsx("p",{className:"text-2xl font-bold",children:o?.total||0})]}),e.jsxs("div",{className:"p-4 rounded-2xl glass shadow-lg",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Admins"}),e.jsx("p",{className:"text-2xl font-bold text-red-500",children:o?.users?.filter(s=>s.role==="admin").length||0})]}),e.jsxs("div",{className:"p-4 rounded-2xl glass shadow-lg",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Active"}),e.jsx("p",{className:"text-2xl font-bold text-green-500",children:o?.users?.filter(s=>s.status==="active").length||0})]})]}),e.jsx(re,{open:!!i,onOpenChange:s=>!s&&j(null),children:e.jsxs(le,{children:[e.jsxs(ne,{children:[e.jsx(de,{children:"Delete User"}),e.jsxs(ie,{children:["Are you sure you want to delete ",e.jsx("strong",{children:i?.name}),"? This action cannot be undone and will remove all associated data."]})]}),e.jsxs(oe,{children:[e.jsx(ce,{className:"rounded-xl",children:"Cancel"}),e.jsx(me,{onClick:J,className:"rounded-xl bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Delete User"})]})]})}),$&&n&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",children:e.jsxs("div",{className:"glass-heavy rounded-2xl shadow-2xl w-full max-w-md mx-4 p-6",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"h-12 w-12 rounded-full bg-amber-500/10 flex items-center justify-center",children:e.jsx(E,{className:"h-6 w-6 text-amber-500"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold",children:"Reset Password"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:n.name})]})]}),d?e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"p-4 rounded-xl bg-muted/30",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Temporary Password"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("code",{className:"flex-1 font-mono text-sm",children:d.password}),e.jsx(r,{size:"sm",variant:"ghost",className:"h-8 w-8 p-0",onClick:()=>A(d.password,"Password"),children:y==="Password"?e.jsx(F,{className:"h-4 w-4 text-green-500"}):e.jsx(P,{className:"h-4 w-4"})})]})]}),e.jsxs("div",{className:"p-4 rounded-xl bg-muted/30",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"Recovery Codes"}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:d.codes.map((s,t)=>e.jsx("code",{className:"text-xs font-mono bg-background px-2 py-1 rounded",children:s},t))}),e.jsxs(r,{size:"sm",variant:"outline",className:"w-full mt-3 rounded-xl",onClick:()=>A(d.codes.join(`
2
- `),"Codes"),children:[y==="Codes"?e.jsx(F,{className:"h-4 w-4 mr-2 text-green-500"}):e.jsx(P,{className:"h-4 w-4 mr-2"}),"Copy All Codes"]})]}),e.jsxs("p",{className:"text-xs text-amber-500 flex items-start gap-2",children:[e.jsx(U,{className:"h-4 w-4 flex-shrink-0 mt-0.5"}),"Share these credentials securely. The user must change their password on next login."]}),e.jsx(r,{className:"w-full rounded-xl",onClick:()=>p(!1),children:"Done"})]}):e.jsxs("div",{className:"space-y-4",children:[e.jsxs("p",{className:"text-sm text-muted-foreground",children:["This will generate a new temporary password and recovery codes for"," ",e.jsx("strong",{children:n.email}),". All existing sessions will be revoked."]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(r,{variant:"outline",className:"flex-1 rounded-xl",onClick:()=>p(!1),children:"Cancel"}),e.jsx(r,{className:"flex-1 rounded-xl",onClick:B,disabled:f.isPending,children:f.isPending?e.jsx(T,{className:"h-4 w-4 animate-spin"}):"Reset Password"})]})]})]})})]})}export{ve as UserManagement};
@@ -1 +0,0 @@
1
- import{c as se,r as a,n as xe,u as E,o as B,t as n,m,j as e,k as l,P as X,p as c,I as J,L as f,i as V,C as ue,S as he,X as ge,O}from"./index--JkIxVXb.js";import{T as pe}from"./textarea-BjiEeIWh.js";import{B as q}from"./badge-DEmc3Z_l.js";import{D as je,a as Ne,b as fe,c as be,d as ve,e as ye,f as we}from"./dialog-BOdGWhgE.js";import{S as b,a as v,b as y,c as w,d as x}from"./select-MADP8m6Q.js";import{a as ke}from"./EstimateSelect-CDjf5qKl.js";import{B as Ce}from"./brain-CfFdLVqb.js";import{W as Z}from"./wand-sparkles-DPvcd9Pi.js";import{F as Se}from"./folder-open-CHwA1-ve.js";import{L as _e}from"./link-2-YqrpQXBH.js";import{L as te,C as ze}from"./layers-DFeLExSa.js";import{a as ae,B as Ie}from"./bug-DqSGPUUE.js";import{H as Ae}from"./hash-nKC9gtLg.js";import{L as ee}from"./lightbulb-Bo8hEr7B.js";const Te=[["path",{d:"M5 3v14",key:"9nsxs2"}],["path",{d:"M12 3v8",key:"1h2ygw"}],["path",{d:"M19 3v18",key:"1sk56x"}]],Le=se("kanban",Te);const Pe=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],Fe=se("list",Pe),Me=[{value:"task",label:"Task",icon:ue},{value:"bug",label:"Bug",icon:Ie},{value:"feature",label:"Feature",icon:he},{value:"epic",label:"Epic",icon:te},{value:"story",label:"Story",icon:ae},{value:"subtask",label:"Subtask",icon:ze}],De=[{value:"urgent",label:"Urgent",color:"text-red-500"},{value:"high",label:"High",color:"text-orange-500"},{value:"medium",label:"Medium",color:"text-yellow-500"},{value:"low",label:"Low",color:"text-blue-500"},{value:"none",label:"None",color:"text-gray-500"}];function Xe({defaultProjectId:u,defaultParentId:h}={}){const[K,R]=a.useState(!1),[i,k]=a.useState(""),[g,C]=a.useState(""),[S,_]=a.useState("task"),[$,z]=a.useState("medium"),[H,p]=a.useState(""),[I,W]=a.useState(null),[j,Q]=a.useState(u),[U,A]=a.useState(h),[T,L]=a.useState(null),[t,Y]=a.useState(null),[ie,P]=a.useState(!1),re=xe(),{data:ne}=E({queryKey:["ai-status"],queryFn:()=>m.tickets.ai.status(),staleTime:6e4}),{data:le}=E({queryKey:["projects"],queryFn:()=>m.projects.list({limit:50})}),{data:ce}=E({queryKey:["tickets","parents",j],queryFn:()=>m.tickets.list({projectId:j||void 0,type:["epic","story"],limit:50}),enabled:K}),oe=le?.projects||[],N=ce?.tickets||[],o=ne?.available??!1,d=B({mutationFn:()=>m.tickets.ai.categorize(i,g||void 0),onSuccess:s=>{s.categorization?(L(s.categorization),_(s.categorization.type),z(s.categorization.priority),s.categorization.labels.length>0&&p(s.categorization.labels.join(", ")),n.success(`AI categorized with ${Math.round(s.categorization.confidence*100)}% confidence`)):n.error("AI could not categorize this ticket")},onError:()=>{n.error("AI categorization failed")}}),F=B({mutationFn:()=>m.tickets.ai.suggest(i,g||void 0,S),onSuccess:s=>{s.suggestions?(Y(s.suggestions),P(!0)):n.error("AI could not generate suggestions")},onError:()=>{n.error("AI suggestion failed")}});a.useEffect(()=>{if(o&&i.length>=10&&!T&&!d.isPending){const s=setTimeout(()=>{d.mutate()},1e3);return()=>clearTimeout(s)}},[i,o]);const M=(s,r)=>{s==="title"&&typeof r=="string"?k(r):s==="description"&&typeof r=="string"?C(r):s==="suggestedLabels"&&Array.isArray(r)&&p(r.join(", ")),n.success(`Applied AI suggestion for ${s}`)},D=B({mutationFn:s=>m.tickets.create(s),onSuccess:s=>{re.invalidateQueries({queryKey:["tickets"]}),n.success(`Ticket PROFCLAW-${s.ticket.sequence} created`),G()},onError:s=>{n.error(`Failed to create ticket: ${s.message}`)}}),G=()=>{R(!1),k(""),C(""),_("task"),z("medium"),p(""),W(null),Q(u),A(h),L(null),Y(null),P(!1)},de=s=>{if(s.preventDefault(),!i.trim()){n.error("Title is required");return}const r=H.split(",").map(me=>me.trim()).filter(Boolean);D.mutate({title:i.trim(),description:g.trim()||void 0,type:S,priority:$,labels:r.length>0?r:void 0,estimate:I??void 0,estimateUnit:I!==null?"points":void 0,projectId:j||void 0,parentId:U||void 0,createdBy:"human"})};return e.jsxs(je,{open:K,onOpenChange:R,children:[e.jsx(Ne,{asChild:!0,children:e.jsxs(l,{className:"gap-2 rounded-xl",children:[e.jsx(X,{className:"h-4 w-4"}),"Create Ticket"]})}),e.jsx(fe,{className:"glass-heavy rounded-[20px] border-white/10 sm:max-w-[500px]",children:e.jsxs("form",{onSubmit:de,children:[e.jsxs(be,{children:[e.jsxs(ve,{className:"flex items-center gap-2",children:["Create Ticket",o&&e.jsxs(q,{variant:"outline",className:"text-xs font-normal gap-1 border-primary/30 text-primary",children:[e.jsx(Ce,{className:"h-3 w-3"}),"AI Assist"]})]}),e.jsxs(ye,{children:["Create a new ticket for your project. ",o?"AI will help categorize and suggest improvements.":"AI agents can pick this up and work on it."]})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(c,{htmlFor:"title",children:"Title *"}),e.jsx(J,{id:"title",placeholder:"Brief description of the ticket...",value:i,onChange:s=>{k(s.target.value),L(null)},className:"bg-white/5 border-white/10 rounded-xl",autoFocus:!0}),o&&i.length>=10&&e.jsx("div",{className:"flex items-center gap-2 text-xs",children:d.isPending?e.jsxs("span",{className:"flex items-center gap-1 text-muted-foreground",children:[e.jsx(f,{className:"h-3 w-3 animate-spin"}),"AI analyzing..."]}):T?e.jsxs("span",{className:"flex items-center gap-1 text-green-400",children:[e.jsx(Z,{className:"h-3 w-3"}),"AI categorized (",Math.round(T.confidence*100),"% confidence)"]}):null})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(c,{htmlFor:"description",children:"Description"}),e.jsx(pe,{id:"description",placeholder:"Detailed description, acceptance criteria, etc...",value:g,onChange:s=>C(s.target.value),className:"bg-white/5 border-white/10 rounded-xl min-h-[100px] resize-none"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(c,{className:"flex items-center gap-1.5",children:[e.jsx(Se,{className:"h-3.5 w-3.5 text-muted-foreground"}),"Project"]}),e.jsxs(b,{value:j||"__none__",onValueChange:s=>{Q(s==="__none__"?void 0:s),A(void 0)},children:[e.jsx(v,{className:"bg-white/5 border-white/10 rounded-xl",children:e.jsx(y,{placeholder:"Select project..."})}),e.jsxs(w,{className:"glass-heavy rounded-xl border-white/10",children:[e.jsx(x,{value:"__none__",children:e.jsx("span",{className:"text-muted-foreground",children:"No project"})}),oe.map(s=>e.jsx(x,{value:s.id,children:e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{children:s.icon}),e.jsx("span",{className:"truncate",children:s.name}),e.jsx("span",{className:"text-[10px] font-mono text-muted-foreground",children:s.key})]})},s.id))]})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(c,{className:"flex items-center gap-1.5",children:[e.jsx(_e,{className:"h-3.5 w-3.5 text-muted-foreground"}),"Parent (Epic/Story)"]}),e.jsxs(b,{value:U||"__none__",onValueChange:s=>A(s==="__none__"?void 0:s),disabled:N.length===0,children:[e.jsx(v,{className:V("bg-white/5 border-white/10 rounded-xl",N.length===0&&"opacity-50"),children:e.jsx(y,{placeholder:N.length===0?"No epics/stories":"Select parent..."})}),e.jsxs(w,{className:"glass-heavy rounded-xl border-white/10 max-h-[200px]",children:[e.jsx(x,{value:"__none__",children:e.jsx("span",{className:"text-muted-foreground",children:"No parent"})}),N.map(s=>e.jsx(x,{value:s.id,children:e.jsxs("span",{className:"flex items-center gap-2",children:[s.type==="epic"?e.jsx(te,{className:"h-3.5 w-3.5 text-amber-400"}):e.jsx(ae,{className:"h-3.5 w-3.5 text-cyan-400"}),e.jsxs("span",{className:"text-[10px] font-mono text-muted-foreground",children:[s.projectKey||"PROFCLAW","-",s.sequence]}),e.jsx("span",{className:"truncate max-w-[140px]",children:s.title})]})},s.id))]})]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(c,{children:"Type"}),e.jsxs(b,{value:S,onValueChange:s=>_(s),children:[e.jsx(v,{className:"bg-white/5 border-white/10 rounded-xl",children:e.jsx(y,{})}),e.jsx(w,{className:"glass-heavy rounded-xl border-white/10",children:Me.map(s=>e.jsx(x,{value:s.value,children:e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(s.icon,{className:"h-4 w-4"}),s.label]})},s.value))})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(c,{children:"Priority"}),e.jsxs(b,{value:$,onValueChange:s=>z(s),children:[e.jsx(v,{className:"bg-white/5 border-white/10 rounded-xl",children:e.jsx(y,{})}),e.jsx(w,{className:"glass-heavy rounded-xl border-white/10",children:De.map(s=>e.jsx(x,{value:s.value,children:e.jsx("span",{className:`flex items-center gap-2 ${s.color}`,children:s.label})},s.value))})]})]})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsxs("div",{className:"col-span-2 grid gap-2",children:[e.jsx(c,{htmlFor:"labels",children:"Labels"}),e.jsx(J,{id:"labels",placeholder:"Comma-separated labels (e.g., frontend, auth)",value:H,onChange:s=>p(s.target.value),className:"bg-white/5 border-white/10 rounded-xl"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(c,{className:"flex items-center gap-1.5",children:[e.jsx(Ae,{className:"h-3.5 w-3.5 text-muted-foreground"}),"Estimate"]}),e.jsx(ke,{value:I,onChange:W,placeholder:"Points"})]})]}),o&&i.length>=5&&e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(l,{type:"button",variant:"outline",size:"sm",onClick:()=>d.mutate(),disabled:d.isPending,className:"flex-1 gap-1 rounded-xl border-white/10 text-xs",children:[d.isPending?e.jsx(f,{className:"h-3 w-3 animate-spin"}):e.jsx(Z,{className:"h-3 w-3"}),"Re-categorize"]}),e.jsxs(l,{type:"button",variant:"outline",size:"sm",onClick:()=>F.mutate(),disabled:F.isPending,className:"flex-1 gap-1 rounded-xl border-white/10 text-xs",children:[F.isPending?e.jsx(f,{className:"h-3 w-3 animate-spin"}):e.jsx(ee,{className:"h-3 w-3"}),"Get AI Suggestions"]})]}),ie&&t&&e.jsxs("div",{className:"rounded-xl bg-primary/5 border border-primary/20 p-3 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"flex items-center gap-1 text-sm font-medium text-primary",children:[e.jsx(ee,{className:"h-4 w-4"}),"AI Suggestions"]}),e.jsx(l,{type:"button",variant:"ghost",size:"sm",onClick:()=>P(!1),className:"h-6 w-6 p-0 rounded-lg",children:e.jsx(ge,{className:"h-3 w-3"})})]}),t.title&&t.title!==i&&e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Improved title:"}),e.jsx("p",{className:"text-sm truncate",children:t.title})]}),e.jsx(l,{type:"button",variant:"ghost",size:"sm",onClick:()=>M("title",t.title),className:"h-6 px-2 rounded-lg text-xs text-green-400 hover:text-green-300",children:e.jsx(O,{className:"h-3 w-3"})})]}),t.description&&e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Suggested description:"}),e.jsx("p",{className:"text-sm line-clamp-2",children:t.description})]}),e.jsx(l,{type:"button",variant:"ghost",size:"sm",onClick:()=>M("description",t.description),className:"h-6 px-2 rounded-lg text-xs text-green-400 hover:text-green-300",children:e.jsx(O,{className:"h-3 w-3"})})]}),t.acceptanceCriteria&&t.acceptanceCriteria.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Acceptance criteria:"}),e.jsx("ul",{className:"text-xs space-y-0.5 text-muted-foreground",children:t.acceptanceCriteria.slice(0,3).map((s,r)=>e.jsxs("li",{className:"flex items-start gap-1",children:[e.jsx("span",{className:"text-primary",children:"-"}),s]},r))})]}),t.suggestedLabels&&t.suggestedLabels.length>0&&e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Suggested labels:"}),e.jsx("div",{className:"flex flex-wrap gap-1",children:t.suggestedLabels.map(s=>e.jsx(q,{variant:"secondary",className:"text-[10px] px-1.5 py-0",children:s},s))})]}),e.jsx(l,{type:"button",variant:"ghost",size:"sm",onClick:()=>M("suggestedLabels",t.suggestedLabels),className:"h-6 px-2 rounded-lg text-xs text-green-400 hover:text-green-300",children:e.jsx(O,{className:"h-3 w-3"})})]}),t.estimatedEffort&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Estimated effort:"}),e.jsx(q,{variant:"outline",className:"text-[10px] capitalize",children:t.estimatedEffort})]})]})]}),e.jsxs(we,{children:[e.jsx(l,{type:"button",variant:"ghost",onClick:G,className:"rounded-xl",children:"Cancel"}),e.jsx(l,{type:"submit",disabled:!i.trim()||D.isPending,className:"gap-2 rounded-xl",children:D.isPending?e.jsxs(e.Fragment,{children:[e.jsx(f,{className:"h-4 w-4 animate-spin"}),"Creating..."]}):e.jsxs(e.Fragment,{children:[e.jsx(X,{className:"h-4 w-4"}),"Create Ticket"]})})]})]})})]})}function Je({view:u,onChange:h}){return e.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-xl bg-[var(--muted)]/30 border border-[var(--border)]",children:[e.jsxs("button",{onClick:()=>h("list"),className:V("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all",u==="list"?"bg-[var(--background)] text-[var(--foreground)] shadow-sm":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"),children:[e.jsx(Fe,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"List"})]}),e.jsxs("button",{onClick:()=>h("board"),className:V("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all",u==="board"?"bg-[var(--background)] text-[var(--foreground)] shadow-sm":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"),children:[e.jsx(Le,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Board"})]})]})}export{Xe as C,Je as V};
@@ -1,7 +0,0 @@
1
- import{j as o,by as L,bK as m,bD as G,r as s,at as u,bL as H,bz as B,ar as V,bB as W,bC as Y,bA as A,bE as k,bl as q,bF as K,av as J,i as n,bM as D}from"./index--JkIxVXb.js";var v="AlertDialog",[Q]=J(v,[m]),i=m(),x=e=>{const{__scopeAlertDialog:a,...t}=e,r=i(a);return o.jsx(L,{...r,...t,modal:!0})};x.displayName=v;var U="AlertDialogTrigger",N=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,l=i(t);return o.jsx(K,{...l,...r,ref:a})});N.displayName=U;var X="AlertDialogPortal",y=e=>{const{__scopeAlertDialog:a,...t}=e,r=i(a);return o.jsx(G,{...r,...t})};y.displayName=X;var Z="AlertDialogOverlay",b=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,l=i(t);return o.jsx(k,{...l,...r,ref:a})});b.displayName=Z;var c="AlertDialogContent",[ee,ae]=Q(c),te=q("AlertDialogContent"),R=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,children:r,...l}=e,g=i(t),p=s.useRef(null),z=u(a,p),f=s.useRef(null);return o.jsx(H,{contentName:c,titleName:_,docsSlug:"alert-dialog",children:o.jsx(ee,{scope:t,cancelRef:f,children:o.jsxs(B,{role:"alertdialog",...g,...l,ref:z,onOpenAutoFocus:V(l.onOpenAutoFocus,d=>{d.preventDefault(),f.current?.focus({preventScroll:!0})}),onPointerDownOutside:d=>d.preventDefault(),onInteractOutside:d=>d.preventDefault(),children:[o.jsx(te,{children:r}),o.jsx(re,{contentRef:p})]})})})});R.displayName=c;var _="AlertDialogTitle",j=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,l=i(t);return o.jsx(W,{...l,...r,ref:a})});j.displayName=_;var h="AlertDialogDescription",C=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,l=i(t);return o.jsx(Y,{...l,...r,ref:a})});C.displayName=h;var oe="AlertDialogAction",E=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,l=i(t);return o.jsx(A,{...l,...r,ref:a})});E.displayName=oe;var w="AlertDialogCancel",P=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,{cancelRef:l}=ae(w,t),g=i(t),p=u(a,l);return o.jsx(A,{...g,...r,ref:p})});P.displayName=w;var re=({contentRef:e})=>{const a=`\`${c}\` requires a description for the component to be accessible for screen reader users.
2
-
3
- You can add a description to the \`${c}\` by passing a \`${h}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
4
-
5
- Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${c}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
6
-
7
- For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return s.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(a)},[a,e]),null},se=x,le=N,ie=y,S=b,T=R,O=E,$=P,M=j,I=C;const De=se,ve=le,ne=ie,F=s.forwardRef(({className:e,...a},t)=>o.jsx(S,{className:n("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...a,ref:t}));F.displayName=S.displayName;const ce=s.forwardRef(({className:e,...a},t)=>o.jsxs(ne,{children:[o.jsx(F,{}),o.jsx(T,{ref:t,className:n("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 p-6 shadow-2xl modal-glass duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-2xl",e),...a})]}));ce.displayName=T.displayName;const de=({className:e,...a})=>o.jsx("div",{className:n("flex flex-col space-y-2 text-center sm:text-left",e),...a});de.displayName="AlertDialogHeader";const pe=({className:e,...a})=>o.jsx("div",{className:n("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...a});pe.displayName="AlertDialogFooter";const ge=s.forwardRef(({className:e,...a},t)=>o.jsx(M,{ref:t,className:n("text-lg font-semibold",e),...a}));ge.displayName=M.displayName;const fe=s.forwardRef(({className:e,...a},t)=>o.jsx(I,{ref:t,className:n("text-sm text-muted-foreground",e),...a}));fe.displayName=I.displayName;const me=s.forwardRef(({className:e,...a},t)=>o.jsx(O,{ref:t,className:n(D(),e),...a}));me.displayName=O.displayName;const ue=s.forwardRef(({className:e,...a},t)=>o.jsx($,{ref:t,className:n(D({variant:"outline"}),"mt-2 sm:mt-0",e),...a}));ue.displayName=$.displayName;export{De as A,ce as a,de as b,ge as c,fe as d,pe as e,ue as f,me as g,ve as h};
@@ -1 +0,0 @@
1
- import{j as n,i as o,bI as s}from"./index--JkIxVXb.js";const a=s("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow-sm hover:brightness-110",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-destructive-foreground shadow-sm",outline:"border-border text-foreground hover:bg-muted/50",success:"border-transparent bg-success/10 text-success border border-success/20",warning:"border-transparent bg-warning/10 text-warning border border-warning/20",info:"border-transparent bg-info/10 text-info border border-info/20"}},defaultVariants:{variant:"default"}});function i({className:r,variant:e,...t}){return n.jsx("div",{className:o(a({variant:e}),r),...t})}export{i as B};
@@ -1 +0,0 @@
1
- import{c as a}from"./index--JkIxVXb.js";const e=[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]],t=a("brain",e);export{t as B};
@@ -1 +0,0 @@
1
- import{c as e,an as s,aK as i,S as l,ai as r,_ as c,aB as p,aC as n,aE as d,aF as u,aL as m,aM as g,aN as y,aH as h,aG as k,aO as b,aP as L,aQ as v,aR as M,aS as A,aT as f,aU as I,aV as x,aI as w,aD as U,aW as S,aJ as _,aX as C,aY as P,aZ as G,a_ as z,a$ as N,b0 as T,b1 as V,b2 as B,b3 as R,b4 as q,b5 as D,b6 as E,b7 as O,b8 as H}from"./index--JkIxVXb.js";import{S as F}from"./settings-2-scXUOuE_.js";import{T as K}from"./tag-tAwMmQ9G.js";import{S as W}from"./smartphone-DusFfY0U.js";import{B as $}from"./brain-CfFdLVqb.js";import{W as Q}from"./wrench-B8s3zYVV.js";import{D as j}from"./database-CA2w8Lvt.js";import{G as X}from"./globe-CQWfr7hT.js";import{C as Z}from"./cpu-Ck6AoG8c.js";const J=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],Ie=e("code-xml",J);const Y=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],ee=e("message-circle",Y);const oe=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],ae=e("mic",oe);const te=[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]],se=e("monitor-smartphone",te);const ie=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]],le=e("plug",ie);const re=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],ce=e("puzzle",re);const pe=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],xe=e("shield-alert",pe);const ne=[["path",{d:"M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5",key:"slp6dd"}],["path",{d:"M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244",key:"o0xfot"}],["path",{d:"M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05",key:"wn3emo"}]],de=e("store",ne);const ue=[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2",key:"125lnx"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]],we=e("test-tube",ue);const me=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]],Ue=e("volume-2",me),Se=[{id:"general",label:"General",icon:F,description:"Appearance and preferences"},{id:"account",label:"Account",icon:s,description:"Profile and recovery codes"},{id:"notifications",label:"Notifications",icon:i,description:"Alert preferences"},{id:"ai-providers",label:"AI Providers",icon:l,description:"Configure AI models"},{id:"labels",label:"Labels",icon:K,description:"Manage project labels"},{id:"integrations",label:"Integrations",icon:r,description:"API keys and services"},{id:"messaging",label:"Messaging",icon:ee,description:"Telegram, Discord, WhatsApp"},{id:"devices",label:"Devices",icon:W,description:"Manage paired devices"},{id:"memory",label:"Memory",icon:$,description:"Semantic memory system"},{id:"skills",label:"Skills",icon:ce,description:"Modular AI capabilities"},{id:"tools",label:"Tools",icon:Q,description:"AI tool configuration"},{id:"security",label:"Security",icon:c,description:"Tool execution security"},{id:"plugins",label:"Plugins & MCP",icon:le,description:"Extensions and MCP"},{id:"marketplace",label:"Marketplace",icon:de,description:"Browse and install plugins & skills"},{id:"storage",label:"Storage",icon:j,description:"Data and backup"},{id:"voice",label:"Voice",icon:ae,description:"Speech recognition and synthesis"},{id:"pwa",label:"App & Notifications",icon:se,description:"Install app, push notifications"},{id:"tunnels",label:"Tunnels",icon:X,description:"Remote access via Tailscale or Cloudflare"},{id:"system",label:"System",icon:Z,description:"Advanced settings"}],_e=[{type:"anthropic",name:"Anthropic",description:"Claude Opus, Sonnet, Haiku",Logo:p,setupUrl:"https://console.anthropic.com/settings/keys",placeholder:"sk-ant-...",category:"cloud",models:[]},{type:"openai",name:"OpenAI",description:"GPT-4.5, o1, o3-mini",Logo:n,setupUrl:"https://platform.openai.com/api-keys",placeholder:"sk-...",category:"cloud",models:[]},{type:"google",name:"Google AI",description:"Gemini 2.5 Pro, Flash",Logo:d,setupUrl:"https://makersuite.google.com/app/apikey",placeholder:"AIza...",category:"cloud",models:[]},{type:"xai",name:"xAI (Grok)",description:"Grok 2, Grok 3 models",Logo:u,setupUrl:"https://console.x.ai/",placeholder:"xai-...",category:"cloud",models:[]},{type:"mistral",name:"Mistral AI",description:"Mistral Large, Medium, Codestral",Logo:m,setupUrl:"https://console.mistral.ai/api-keys/",placeholder:"your-key...",category:"cloud",models:[]},{type:"cohere",name:"Cohere",description:"Command R, R+",Logo:g,setupUrl:"https://dashboard.cohere.com/api-keys",placeholder:"your-key...",category:"cloud",models:[]},{type:"perplexity",name:"Perplexity",description:"Sonar models with search",Logo:y,setupUrl:"https://www.perplexity.ai/settings/api",placeholder:"pplx-...",category:"cloud",models:[]},{type:"deepseek",name:"DeepSeek",description:"DeepSeek Chat, Coder, R1",Logo:h,setupUrl:"https://platform.deepseek.com/api_keys",placeholder:"sk-...",category:"cloud",models:[]},{type:"groq",name:"Groq",description:"Ultra-fast Llama & Mixtral",Logo:k,setupUrl:"https://console.groq.com/keys",placeholder:"gsk_...",category:"cloud",models:[]},{type:"together",name:"Together AI",description:"Fast open-source models",Logo:b,setupUrl:"https://api.together.xyz/settings/api-keys",placeholder:"your-key...",category:"cloud",models:[]},{type:"cerebras",name:"Cerebras",description:"Fastest Llama inference",Logo:L,setupUrl:"https://cloud.cerebras.ai/",placeholder:"csk-...",category:"cloud",models:[]},{type:"fireworks",name:"Fireworks",description:"Fast serverless inference",Logo:v,setupUrl:"https://fireworks.ai/account/api-keys",placeholder:"fw-...",category:"cloud",models:[]},{type:"replicate",name:"Replicate",description:"Hosted open-source models (Llama, Mixtral)",Logo:M,setupUrl:"https://replicate.com/account/api-tokens",placeholder:"r8_...",category:"cloud",models:[],status:"beta"},{type:"github-models",name:"GitHub Models",description:"GPT-4o, Phi-4, Llama via GitHub",Logo:A,setupUrl:"https://github.com/marketplace/models",placeholder:"ghp_...",category:"cloud",models:[],status:"beta"},{type:"zhipu",name:"Zhipu AI",description:"GLM-5, GLM-4.7, GLM-4 series",Logo:f,setupUrl:"https://open.bigmodel.cn/usercenter/apikeys",placeholder:"your-key...",category:"cloud",models:[],status:"beta"},{type:"moonshot",name:"Moonshot (Kimi)",description:"Long-context Kimi models (1M tokens)",Logo:I,setupUrl:"https://platform.moonshot.cn/console/api-keys",placeholder:"sk-...",category:"cloud",models:[],status:"beta"},{type:"qwen",name:"Qwen (Alibaba)",description:"Qwen-Max, Qwen-Plus, Qwen-Turbo",Logo:x,setupUrl:"https://dashscope.console.aliyun.com/apiKey",placeholder:"sk-...",category:"cloud",models:[],status:"beta"},{type:"openrouter",name:"OpenRouter",description:"300+ models via one API",Logo:w,setupUrl:"https://openrouter.ai/keys",placeholder:"sk-or-...",category:"cloud",models:[]},{type:"azure",name:"Azure OpenAI",description:"Enterprise GPT-4 via Azure / Foundry",Logo:U,setupUrl:"https://portal.azure.com/",placeholder:"your-key...",category:"enterprise",models:[],requiresBaseUrl:!0},{type:"bedrock",name:"AWS Bedrock",description:"Claude, Llama, Mistral via AWS",Logo:S,setupUrl:"https://console.aws.amazon.com/bedrock/",placeholder:"AKIA...",category:"enterprise",models:[],status:"stable"},{type:"ollama",name:"Ollama (Local)",description:"Run models locally - free",Logo:_,setupUrl:"https://ollama.ai/download",placeholder:"http://localhost:11434",category:"local",models:[],requiresBaseUrl:!0},{type:"copilot",name:"GitHub Copilot",description:"Use your Copilot subscription (experimental)",Logo:C,setupUrl:"https://github.com/ericc-ch/copilot-api",placeholder:"http://localhost:4141",category:"local",models:[],requiresBaseUrl:!0,status:"experimental"},{type:"volcengine",name:"Volcengine Doubao",description:"Bytedance Doubao Pro/Lite models",Logo:P,setupUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey",placeholder:"your-key...",category:"cloud",models:[],status:"beta"},{type:"byteplus",name:"BytePlus",description:"International Bytedance AI models",Logo:G,setupUrl:"https://console.byteplus.com/",placeholder:"your-key...",category:"cloud",models:[],status:"beta"},{type:"qianfan",name:"Baidu Qianfan",description:"ERNIE Bot 4.0, ERNIE Speed",Logo:z,setupUrl:"https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application",placeholder:"your-key...",category:"cloud",models:[],status:"beta"},{type:"modelstudio",name:"ModelStudio",description:"Alibaba DashScope compatible mode",Logo:N,setupUrl:"https://dashscope.console.aliyun.com/apiKey",placeholder:"sk-...",category:"cloud",models:[],status:"experimental"},{type:"minimax",name:"Minimax",description:"abab6.5, abab5.5 models (245k context)",Logo:T,setupUrl:"https://www.minimaxi.com/user-center/basic-information/interface-key",placeholder:"your-key...",category:"cloud",models:[],status:"beta"},{type:"xiaomi",name:"Xiaomi MiLM",description:"Xiaomi AI language models",Logo:V,setupUrl:"https://ai.xiaomi.com/",placeholder:"your-key...",category:"cloud",models:[],status:"experimental"},{type:"huggingface",name:"HuggingFace",description:"Llama, Mistral, and 1000s of open models",Logo:B,setupUrl:"https://huggingface.co/settings/tokens",placeholder:"hf_...",category:"cloud",models:[],status:"beta"},{type:"nvidia-nim",name:"NVIDIA NIM",description:"Llama 3.1 405B, Mixtral via NVIDIA",Logo:R,setupUrl:"https://build.nvidia.com/explore/discover",placeholder:"nvapi-...",category:"cloud",models:[],status:"beta"},{type:"venice",name:"Venice AI",description:"Privacy-preserving AI inference",Logo:q,setupUrl:"https://venice.ai/settings/api",placeholder:"your-key...",category:"cloud",models:[],status:"experimental"},{type:"kilocode",name:"Kilocode",description:"AI-powered code assistance",Logo:D,setupUrl:"https://kilocode.ai/",placeholder:"your-key...",category:"cloud",models:[],status:"experimental"},{type:"vercel-ai",name:"Vercel AI Gateway",description:"Unified gateway for multiple AI providers",Logo:E,setupUrl:"https://vercel.com/docs/ai/gateway",placeholder:"your-key...",category:"cloud",models:[],status:"beta"},{type:"cloudflare-ai",name:"Cloudflare AI Gateway",description:"Route AI calls via Cloudflare Workers AI",Logo:O,setupUrl:"https://dash.cloudflare.com/?to=/:account/ai/ai-gateway",placeholder:"your-token...",category:"cloud",models:[],requiresBaseUrl:!0,status:"beta"},{type:"watsonx",name:"IBM Watsonx",description:"Granite enterprise AI models",Logo:H,setupUrl:"https://dataplatform.cloud.ibm.com/wx/home",placeholder:"your-key...",category:"enterprise",models:[],status:"stable"}],Ce=[{value:"2024-10-21",label:"2024-10-21 (Recommended - Stable)"},{value:"2024-12-01-preview",label:"2024-12-01-preview (For o1/o1-mini)"},{value:"2025-01-01-preview",label:"2025-01-01-preview (Latest Preview)"},{value:"2024-08-01-preview",label:"2024-08-01-preview"},{value:"2024-02-15-preview",label:"2024-02-15-preview (Legacy)"}];function Pe(o){if(!o)return{valid:!0};try{if(!new URL(o).protocol.startsWith("https"))return{valid:!1,message:"Must use HTTPS"};const a=o.includes("openai.azure.com"),t=o.includes("cognitive.microsoft.com")||o.includes("cognitiveservices.azure.com");return a||t?{valid:!0}:{valid:!1,message:"Must be an Azure endpoint (e.g., https://your-resource.openai.azure.com or https://eastus.api.cognitive.microsoft.com)"}}catch{return{valid:!1,message:"Invalid URL format"}}}const Ge="http://localhost:3000";export{Ce as A,Ie as C,ae as M,ce as P,xe as S,we as T,Ue as V,_e as a,Ge as b,le as c,de as d,Se as e,ee as f,Pe as v};
@@ -1 +0,0 @@
1
- import{by as f,bF as p,r as l,j as t,bD as g,bz as i,bA as x,X as u,i as o,bB as d,bC as n,bE as r}from"./index--JkIxVXb.js";const w=f,R=p,y=g,c=l.forwardRef(({className:a,...e},s)=>t.jsx(r,{ref:s,className:o("fixed inset-0 z-50 bg-black/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...e}));c.displayName=r.displayName;const N=l.forwardRef(({className:a,children:e,...s},m)=>t.jsxs(y,{children:[t.jsx(c,{}),t.jsxs(i,{ref:m,className:o("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 p-6 shadow-2xl modal-glass duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-2xl",a),...s,children:[e,t.jsxs(x,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-[var(--background)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--accent)] data-[state=open]:text-[var(--muted-foreground)]",children:[t.jsx(u,{className:"h-4 w-4"}),t.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));N.displayName=i.displayName;const b=({className:a,...e})=>t.jsx("div",{className:o("flex flex-col space-y-1.5 text-center sm:text-left",a),...e});b.displayName="DialogHeader";const D=({className:a,...e})=>t.jsx("div",{className:o("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...e});D.displayName="DialogFooter";const j=l.forwardRef(({className:a,...e},s)=>t.jsx(d,{ref:s,className:o("text-lg font-semibold leading-none tracking-tight",a),...e}));j.displayName=d.displayName;const v=l.forwardRef(({className:a,...e},s)=>t.jsx(n,{ref:s,className:o("text-sm text-[var(--muted-foreground)]",a),...e}));v.displayName=n.displayName;export{w as D,R as a,N as b,b as c,j as d,v as e,D as f};