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,85 +0,0 @@
1
- /**
2
- * File Locking Utilities
3
- *
4
- * Provides safe concurrent access to config and data files
5
- * using proper-lockfile for cross-process synchronization.
6
- *
7
- * Features:
8
- * - Automatic retry with backoff on lock contention
9
- * - Stale lock detection and recovery
10
- * - Clean async/await API
11
- * - TypeScript-safe with generics
12
- */
13
- /**
14
- * Lock options
15
- */
16
- export interface LockOptions {
17
- /** Time to wait before declaring lock stale (ms) */
18
- stale?: number;
19
- /** Retry interval (ms) */
20
- retries?: number | {
21
- retries: number;
22
- factor?: number;
23
- minTimeout?: number;
24
- maxTimeout?: number;
25
- };
26
- /** Whether to wait for lock */
27
- wait?: boolean;
28
- /** Update interval for lock freshness (ms) */
29
- update?: number;
30
- }
31
- /**
32
- * Acquire a lock on a file
33
- * Returns a release function that must be called when done
34
- */
35
- export declare function acquireLock(filePath: string, options?: LockOptions): Promise<() => Promise<void>>;
36
- /**
37
- * Check if a file is currently locked
38
- */
39
- export declare function isLocked(filePath: string): Promise<boolean>;
40
- /**
41
- * Execute a function while holding a file lock
42
- * Automatically releases the lock when done or on error
43
- */
44
- export declare function withLock<T>(filePath: string, fn: () => Promise<T>, options?: LockOptions): Promise<T>;
45
- /**
46
- * Read a JSON file with locking
47
- */
48
- export declare function readJsonWithLock<T>(filePath: string, options?: LockOptions): Promise<T | null>;
49
- /**
50
- * Write a JSON file with locking
51
- */
52
- export declare function writeJsonWithLock<T>(filePath: string, data: T, options?: LockOptions): Promise<void>;
53
- /**
54
- * Update a JSON file atomically with locking
55
- * Reads current value, applies updater, writes result
56
- */
57
- export declare function updateJsonWithLock<T>(filePath: string, updater: (current: T | null) => T, options?: LockOptions): Promise<T>;
58
- /**
59
- * Multi-file lock for transactions spanning multiple files
60
- * All files are locked in a deterministic order to prevent deadlocks
61
- */
62
- export declare function withMultiLock<T>(filePaths: string[], fn: () => Promise<T>, options?: LockOptions): Promise<T>;
63
- /**
64
- * Lock file path for a given config file
65
- * Uses a .lock suffix by default
66
- */
67
- export declare function getLockFilePath(filePath: string): string;
68
- /**
69
- * Clean up stale lock files
70
- * Use with caution - only for recovery scenarios
71
- */
72
- export declare function cleanupStaleLock(filePath: string): Promise<boolean>;
73
- /**
74
- * Wrapper for settings file operations
75
- */
76
- export declare class LockedConfigFile<T> {
77
- private filePath;
78
- private options?;
79
- constructor(filePath: string, options?: LockOptions | undefined);
80
- read(): Promise<T | null>;
81
- write(data: T): Promise<void>;
82
- update(updater: (current: T | null) => T): Promise<T>;
83
- isLocked(): Promise<boolean>;
84
- }
85
- //# sourceMappingURL=file-lock.d.ts.map
@@ -1,204 +0,0 @@
1
- /**
2
- * File Locking Utilities
3
- *
4
- * Provides safe concurrent access to config and data files
5
- * using proper-lockfile for cross-process synchronization.
6
- *
7
- * Features:
8
- * - Automatic retry with backoff on lock contention
9
- * - Stale lock detection and recovery
10
- * - Clean async/await API
11
- * - TypeScript-safe with generics
12
- */
13
- import lockfile from 'proper-lockfile';
14
- import { existsSync, writeFileSync, mkdirSync } from 'fs';
15
- import { dirname } from 'path';
16
- const DEFAULT_LOCK_OPTIONS = {
17
- stale: 10000, // 10 seconds
18
- retries: {
19
- retries: 5,
20
- factor: 1.5,
21
- minTimeout: 100,
22
- maxTimeout: 2000,
23
- },
24
- update: 5000, // 5 seconds
25
- };
26
- /**
27
- * Ensure file exists before locking
28
- * (proper-lockfile requires the file to exist)
29
- */
30
- function ensureFileExists(filePath) {
31
- if (!existsSync(filePath)) {
32
- const dir = dirname(filePath);
33
- if (!existsSync(dir)) {
34
- mkdirSync(dir, { recursive: true });
35
- }
36
- writeFileSync(filePath, '');
37
- }
38
- }
39
- /**
40
- * Acquire a lock on a file
41
- * Returns a release function that must be called when done
42
- */
43
- export async function acquireLock(filePath, options) {
44
- ensureFileExists(filePath);
45
- const opts = { ...DEFAULT_LOCK_OPTIONS, ...options };
46
- try {
47
- const release = await lockfile.lock(filePath, {
48
- stale: opts.stale,
49
- retries: opts.retries,
50
- update: opts.update,
51
- });
52
- return release;
53
- }
54
- catch (error) {
55
- if (error.code === 'ELOCKED') {
56
- throw new Error(`File is locked by another process: ${filePath}`);
57
- }
58
- throw error;
59
- }
60
- }
61
- /**
62
- * Check if a file is currently locked
63
- */
64
- export async function isLocked(filePath) {
65
- if (!existsSync(filePath)) {
66
- return false;
67
- }
68
- try {
69
- return await lockfile.check(filePath);
70
- }
71
- catch {
72
- return false;
73
- }
74
- }
75
- /**
76
- * Execute a function while holding a file lock
77
- * Automatically releases the lock when done or on error
78
- */
79
- export async function withLock(filePath, fn, options) {
80
- const release = await acquireLock(filePath, options);
81
- try {
82
- return await fn();
83
- }
84
- finally {
85
- await release();
86
- }
87
- }
88
- /**
89
- * Read a JSON file with locking
90
- */
91
- export async function readJsonWithLock(filePath, options) {
92
- if (!existsSync(filePath)) {
93
- return null;
94
- }
95
- return withLock(filePath, async () => {
96
- const { readFileSync } = await import('fs');
97
- const content = readFileSync(filePath, 'utf-8');
98
- return JSON.parse(content);
99
- }, options);
100
- }
101
- /**
102
- * Write a JSON file with locking
103
- */
104
- export async function writeJsonWithLock(filePath, data, options) {
105
- await withLock(filePath, async () => {
106
- const { writeFileSync } = await import('fs');
107
- writeFileSync(filePath, JSON.stringify(data, null, 2));
108
- }, options);
109
- }
110
- /**
111
- * Update a JSON file atomically with locking
112
- * Reads current value, applies updater, writes result
113
- */
114
- export async function updateJsonWithLock(filePath, updater, options) {
115
- return withLock(filePath, async () => {
116
- const { readFileSync, writeFileSync } = await import('fs');
117
- let current = null;
118
- if (existsSync(filePath)) {
119
- const content = readFileSync(filePath, 'utf-8');
120
- if (content.trim()) {
121
- current = JSON.parse(content);
122
- }
123
- }
124
- const updated = updater(current);
125
- writeFileSync(filePath, JSON.stringify(updated, null, 2));
126
- return updated;
127
- }, options);
128
- }
129
- /**
130
- * Multi-file lock for transactions spanning multiple files
131
- * All files are locked in a deterministic order to prevent deadlocks
132
- */
133
- export async function withMultiLock(filePaths, fn, options) {
134
- // Sort paths to prevent deadlocks
135
- const sortedPaths = [...filePaths].sort();
136
- const releases = [];
137
- try {
138
- // Acquire all locks in order
139
- for (const filePath of sortedPaths) {
140
- const release = await acquireLock(filePath, options);
141
- releases.push(release);
142
- }
143
- // Execute function
144
- return await fn();
145
- }
146
- finally {
147
- // Release all locks in reverse order
148
- for (const release of releases.reverse()) {
149
- await release().catch(console.error);
150
- }
151
- }
152
- }
153
- /**
154
- * Lock file path for a given config file
155
- * Uses a .lock suffix by default
156
- */
157
- export function getLockFilePath(filePath) {
158
- return `${filePath}.lock`;
159
- }
160
- /**
161
- * Clean up stale lock files
162
- * Use with caution - only for recovery scenarios
163
- */
164
- export async function cleanupStaleLock(filePath) {
165
- try {
166
- const isStale = await lockfile.check(filePath, { stale: 0 });
167
- if (!isStale) {
168
- // Not locked or not stale, nothing to do
169
- return false;
170
- }
171
- // Force unlock
172
- await lockfile.unlock(filePath, { realpath: false });
173
- console.log(`[FileLock] Cleaned up stale lock: ${filePath}`);
174
- return true;
175
- }
176
- catch {
177
- // Lock file might not exist
178
- return false;
179
- }
180
- }
181
- /**
182
- * Wrapper for settings file operations
183
- */
184
- export class LockedConfigFile {
185
- filePath;
186
- options;
187
- constructor(filePath, options) {
188
- this.filePath = filePath;
189
- this.options = options;
190
- }
191
- async read() {
192
- return readJsonWithLock(this.filePath, this.options);
193
- }
194
- async write(data) {
195
- return writeJsonWithLock(this.filePath, data, this.options);
196
- }
197
- async update(updater) {
198
- return updateJsonWithLock(this.filePath, updater, this.options);
199
- }
200
- async isLocked() {
201
- return isLocked(this.filePath);
202
- }
203
- }
204
- //# sourceMappingURL=file-lock.js.map
@@ -1 +0,0 @@
1
- import{c as z,n as I,r as x,u as K,o as h,m as d,t as w,j as e,k as c,a1 as Q,b as f,f as j,i as p,C as A,aK as B,g as E,U as V,v as $}from"./index--JkIxVXb.js";import{B as L}from"./badge-DEmc3Z_l.js";import{S as g}from"./skeleton-C9oEzNlU.js";import{S as k,a as C,b,c as S,d as a}from"./select-MADP8m6Q.js";import{T as U}from"./trash-2-eM-CNwsZ.js";import"./chevron-up-DcJ4LL_N.js";const _=[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]],D=z("check-check",_);function O({type:i}){switch(i){case"success":return e.jsx(A,{className:"h-4 w-4 text-green-400"});case"error":return e.jsx($,{className:"h-4 w-4 text-red-400"});case"warning":return e.jsx(V,{className:"h-4 w-4 text-amber-400"});default:return e.jsx(E,{className:"h-4 w-4 text-blue-400"})}}function P(i){const o=Date.now()-i,l=Math.floor(o/1e3);if(l<60)return"just now";const n=Math.floor(l/60);if(n<60)return`${n}m ago`;const t=Math.floor(n/60);return t<24?`${t}h ago`:`${Math.floor(t/24)}d ago`}function Z(){const i=I(),[r,o]=x.useState("all"),[l,n]=x.useState("all"),[t,u]=x.useState(!1),{data:y,isLoading:M}=K({queryKey:["notifications","activity"],queryFn:()=>d.notifications.list({limit:100}),refetchInterval:3e4}),T=h({mutationFn:s=>d.notifications.markRead(s),onSuccess:()=>{i.invalidateQueries({queryKey:["notifications"]})}}),N=h({mutationFn:()=>d.notifications.markAllRead(),onSuccess:()=>{i.invalidateQueries({queryKey:["notifications"]}),w.success("All notifications marked as read")}}),q=h({mutationFn:s=>d.notifications.delete(s),onSuccess:()=>{i.invalidateQueries({queryKey:["notifications"]}),w.success("Notification deleted")}}),F=y?.notifications??[],m=y?.unreadCount??0,v=F.filter(s=>!(r!=="all"&&s.type!==r||l!=="all"&&s.category!==l||t&&s.read));return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Activity"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:m>0?`${m} unread`:"All caught up"})]}),m>0&&e.jsxs(c,{variant:"outline",size:"sm",onClick:()=>N.mutate(),disabled:N.isPending,className:"gap-2",children:[e.jsx(D,{className:"h-4 w-4"}),"Mark all read"]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs(k,{value:r,onValueChange:s=>o(s),children:[e.jsx(C,{className:"w-[140px]",children:e.jsx(b,{placeholder:"Type"})}),e.jsxs(S,{children:[e.jsx(a,{value:"all",children:"All types"}),e.jsx(a,{value:"success",children:"Success"}),e.jsx(a,{value:"error",children:"Error"}),e.jsx(a,{value:"warning",children:"Warning"}),e.jsx(a,{value:"info",children:"Info"})]})]}),e.jsxs(k,{value:l,onValueChange:s=>n(s),children:[e.jsx(C,{className:"w-[140px]",children:e.jsx(b,{placeholder:"Category"})}),e.jsxs(S,{children:[e.jsx(a,{value:"all",children:"All categories"}),e.jsx(a,{value:"task",children:"Task"}),e.jsx(a,{value:"ticket",children:"Ticket"}),e.jsx(a,{value:"system",children:"System"}),e.jsx(a,{value:"agent",children:"Agent"}),e.jsx(a,{value:"chat",children:"Chat"}),e.jsx(a,{value:"cron",children:"Cron"})]})]}),e.jsxs(c,{variant:t?"default":"outline",size:"sm",onClick:()=>u(!t),className:"gap-2",children:[e.jsx(Q,{className:"h-4 w-4"}),"Unread only"]}),(r!=="all"||l!=="all"||t)&&e.jsx(c,{variant:"ghost",size:"sm",onClick:()=>{o("all"),n("all"),u(!1)},children:"Clear filters"})]}),M?e.jsx("div",{className:"space-y-3",children:Array.from({length:5}).map((s,R)=>e.jsx(f,{className:"glass rounded-2xl",children:e.jsx(j,{className:"p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(g,{className:"h-8 w-8 rounded-xl"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(g,{className:"h-4 w-48"}),e.jsx(g,{className:"h-3 w-32"})]})]})})},R))}):v.length>0?e.jsx("div",{className:"space-y-2",children:v.map(s=>e.jsx(f,{className:p("glass rounded-2xl overflow-hidden transition-all hover-lift",!s.read&&"border-primary/20"),children:e.jsx(j,{className:"p-4",children:e.jsxs("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:p("h-8 w-8 rounded-xl flex items-center justify-center flex-shrink-0",s.type==="success"&&"bg-green-500/10",s.type==="error"&&"bg-red-500/10",s.type==="warning"&&"bg-amber-500/10",s.type==="info"&&"bg-blue-500/10"),children:e.jsx(O,{type:s.type})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:p("text-sm font-medium truncate",!s.read&&"font-bold"),children:s.title}),!s.read&&e.jsx("span",{className:"h-2 w-2 rounded-full bg-primary flex-shrink-0"})]}),s.description&&e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:s.description}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5",children:[e.jsx(L,{variant:"outline",className:"text-[10px] px-1.5 py-0",children:s.category}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:P(s.createdAt)})]})]})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[!s.read&&e.jsx(c,{variant:"ghost",size:"icon",className:"h-7 w-7 rounded-lg",onClick:()=>T.mutate(s.id),title:"Mark as read",children:e.jsx(A,{className:"h-3.5 w-3.5"})}),e.jsx(c,{variant:"ghost",size:"icon",className:"h-7 w-7 rounded-lg text-muted-foreground hover:text-destructive",onClick:()=>q.mutate(s.id),title:"Delete",children:e.jsx(U,{className:"h-3.5 w-3.5"})})]})]})})},s.id))}):e.jsx(f,{className:"glass rounded-2xl",children:e.jsxs(j,{className:"py-16 text-center",children:[e.jsx(B,{className:"h-12 w-12 mx-auto text-muted-foreground opacity-20 mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-1",children:"No notifications"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:r!=="all"||l!=="all"||t?"No notifications match your filters":"You're all caught up"})]})})]})}export{Z as ActivityView};
@@ -1 +0,0 @@
1
- import{u as o,j as e,M as r,B as d,k as i,S as x,i as c,g as m,V as h}from"./index--JkIxVXb.js";import{S as u}from"./StatusIndicator-yig0uZEA.js";import{C as p}from"./cpu-Ck6AoG8c.js";import{S as g}from"./shield-check-PEr7nmVw.js";const j="http://localhost:3000";function f(){return o({queryKey:["agents"],queryFn:async()=>{const s=await fetch(`${j}/api/agents`);if(!s.ok)throw new Error("Failed to fetch agents");return(await s.json()).agents},refetchInterval:1e4})}function k(){const{data:s,isLoading:t,error:l}=f();return t?e.jsxs("div",{className:"flex flex-col gap-6",children:[e.jsxs("header",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Agent Status"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Monitor your active AI workforce."})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:[1,2,3].map(a=>e.jsx("div",{className:"h-48 rounded-2xl premium-card animate-pulse"},a))})]}):l?e.jsxs("div",{className:"premium-card rounded-2xl p-12 text-center",children:[e.jsx(r,{className:"h-12 w-12 mx-auto text-red-500 mb-4 opacity-50"}),e.jsx("h3",{className:"text-lg font-semibold",children:"Failed to load agents"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Make sure the backend is running at http://localhost:3000"})]}):e.jsxs("div",{className:"flex flex-col gap-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:"Agent Status"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Monitor and manage your autonomous AI agents."})]}),e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 rounded-full premium-card border-primary/10",children:[e.jsx(r,{className:"h-4 w-4 text-primary"}),e.jsxs("span",{className:"text-xs font-bold uppercase tracking-wider",children:[s?.length||0," Agents Registered"]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:[s?.map(a=>e.jsx(N,{agent:a},a.type)),s?.length===0&&e.jsxs("div",{className:"col-span-full glass-heavy rounded-[24px] p-12 text-center border-dashed border-2 border-white/5",children:[e.jsx(d,{className:"h-16 w-16 mx-auto text-muted-foreground mb-4 opacity-20"}),e.jsx("h3",{className:"text-xl font-bold",children:"No agents active"}),e.jsx("p",{className:"text-muted-foreground max-w-md mx-auto mb-6",children:"Connect an agent adapter like OpenClaw or Claude Code to start orchestrating tasks."}),e.jsx(i,{variant:"black",className:"px-6 h-10 rounded-full",onClick:()=>{},children:"Go to Settings"})]})]})]})}function N({agent:s}){const t=s.type==="openclaw"?x:s.type==="claude-code"?d:p;return e.jsxs("div",{className:"group relative premium-card rounded-2xl p-6 hover-lift transition-liquid overflow-hidden",children:[e.jsx("div",{className:c("absolute -top-12 -right-12 w-32 h-32 rounded-full blur-[60px] opacity-20 group-hover:opacity-40 transition-opacity",s.healthy.healthy?"bg-green-500":"bg-red-500")}),e.jsxs("div",{className:"flex items-start justify-between mb-8",children:[e.jsxs("div",{className:"flex gap-4",children:[e.jsx("div",{className:"h-12 w-12 rounded-xl glass-heavy flex items-center justify-center border-primary/10 shadow-lg",children:e.jsx(t,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-base font-bold capitalize",children:s.name}),e.jsx("p",{className:"text-[10px] text-muted-foreground font-mono uppercase tracking-tight",children:s.type})]})]}),e.jsx(u,{status:s.healthy.healthy?"online":"error",size:"md"})]}),e.jsxs("div",{className:"space-y-4 mb-8",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(n,{label:"Success",value:s.stats.completed,className:"text-green-500/80"}),e.jsx(n,{label:"Failed",value:s.stats.failed,className:"text-red-500/80"})]}),e.jsxs("div",{className:"flex items-center justify-between px-1",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(m,{className:"h-3.5 w-3.5"}),e.jsx("span",{className:"text-[11px] font-medium",children:"Avg duration:"})]}),e.jsxs("span",{className:"text-[11px] font-bold",children:[(s.stats.avgDuration/1e3).toFixed(1),"s"]})]}),e.jsxs("div",{className:"flex items-center justify-between px-1",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(r,{className:"h-3.5 w-3.5"}),e.jsx("span",{className:"text-[11px] font-medium",children:"Latency:"})]}),e.jsxs("span",{className:"text-[11px] font-bold text-blue-400",children:[s.healthy.latencyMs,"ms"]})]})]}),e.jsxs("div",{className:"pt-4 border-t border-white/5 flex items-center justify-between",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"premium-label",children:"Last Active"}),e.jsx("span",{className:"text-[11px] font-medium leading-relaxed",children:s.lastActivity?new Date(s.lastActivity).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):"Never"})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(i,{variant:"ghost",size:"icon",className:"h-8 w-8 rounded-lg",children:e.jsx(h,{className:"h-3.5 w-3.5 text-muted-foreground"})}),e.jsxs(i,{variant:"outline",size:"sm",className:"h-8 gap-2 rounded-lg",children:[e.jsx(g,{className:"h-3.5 w-3.5 text-blue-400"}),e.jsx("span",{className:"text-[10px] font-bold",children:"CONFIG"})]})]})]})]})}function n({label:s,value:t,className:l}){return e.jsxs("div",{className:"flex flex-col px-3 py-2 rounded-xl bg-primary/5 border border-primary/5",children:[e.jsx("span",{className:"premium-label",children:s}),e.jsx("span",{className:c("text-lg font-bold leading-tight",l),children:t})]})}export{k as AgentList};
@@ -1 +0,0 @@
1
- import{c as R,j as e,u as f,L as ee,a as T,T as A,F as se,C as te,b as p,d as I,e as q,f as g,Z as ae,S as re,B as F,g as le,h as N,i as m,k as ie,R as ne,l as ce,A as oe,m as j}from"./index--JkIxVXb.js";import{B as de}from"./badge-DEmc3Z_l.js";import{R as B,C as xe,X as me,Y as he,T as z,L as ue,a as fe}from"./CartesianChart-BaQ3It0c.js";import{A as pe,a as M,P as ge,b as je}from"./AreaChart-CfYWmbtr.js";import{T as P}from"./trending-up-BGafmjRo.js";import{G as ve}from"./git-branch-GTOPQgU4.js";const Ne=[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]],ye=R("arrow-down-right",Ne);const be=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],ke=R("arrow-up-right",be);const we=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],Ce=R("wifi-off",we),Ae={created:"#3b82f6",completed:"#22c55e"};function Le({data:a,title:n,showLegend:r=!0,colors:c}){const l={...Ae,...c},d=a.map(i=>({...i,displayDate:new Date(i.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})})),o=(i,t)=>t%5===0?i:"";return a.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"No data available"}):e.jsxs("div",{className:"w-full h-full",children:[n&&e.jsx("h4",{className:"text-sm font-medium text-muted-foreground mb-2",children:n}),e.jsx(B,{width:"100%",height:"100%",children:e.jsxs(pe,{data:d,margin:{top:10,right:10,left:-20,bottom:0},children:[e.jsxs("defs",{children:[e.jsxs("linearGradient",{id:"colorCreated",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"5%",stopColor:l.created,stopOpacity:.3}),e.jsx("stop",{offset:"95%",stopColor:l.created,stopOpacity:0})]}),e.jsxs("linearGradient",{id:"colorCompleted",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"5%",stopColor:l.completed,stopOpacity:.3}),e.jsx("stop",{offset:"95%",stopColor:l.completed,stopOpacity:0})]})]}),e.jsx(xe,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.05)"}),e.jsx(me,{dataKey:"displayDate",tick:{fontSize:10,fill:"var(--muted-foreground)"},tickFormatter:o,axisLine:{stroke:"rgba(255,255,255,0.1)"},tickLine:{stroke:"rgba(255,255,255,0.1)"}}),e.jsx(he,{tick:{fontSize:10,fill:"var(--muted-foreground)"},axisLine:{stroke:"rgba(255,255,255,0.1)"},tickLine:{stroke:"rgba(255,255,255,0.1)"},allowDecimals:!1}),e.jsx(z,{content:({active:i,payload:t,label:k})=>i&&t&&t.length?e.jsxs("div",{className:"glass-heavy px-3 py-2 rounded-lg text-sm border border-white/10",children:[e.jsx("p",{className:"font-medium mb-1",children:k}),t.map(u=>e.jsxs("p",{style:{color:u.color},children:[u.name,": ",u.value]},u.name))]}):null}),r&&e.jsx(ue,{verticalAlign:"top",height:36,iconType:"circle",iconSize:8,wrapperStyle:{fontSize:"11px"}}),e.jsx(M,{type:"monotone",dataKey:"created",name:"Created",stroke:l.created,strokeWidth:2,fillOpacity:1,fill:"url(#colorCreated)"}),e.jsx(M,{type:"monotone",dataKey:"completed",name:"Completed",stroke:l.completed,strokeWidth:2,fillOpacity:1,fill:"url(#colorCompleted)"})]})})]})}const v=5e3,h={pending:"#facc15",in_progress:"#3b82f6",completed:"#22c55e",failed:"#ef4444"},Te={urgent:"text-red-500",high:"text-orange-400",medium:"text-yellow-400",low:"text-blue-400",none:"text-gray-400"};function b({label:a,value:n,icon:r,trend:c,gradient:l,href:d}){const o=e.jsxs("div",{className:m("group relative overflow-hidden rounded-3xl glass-heavy p-5 transition-all duration-300","hover:shadow-xl hover:scale-[1.02]",d&&"cursor-pointer"),children:[e.jsx("div",{className:m("absolute -top-8 -right-8 h-24 w-24 rounded-full opacity-20 blur-2xl transition-opacity duration-300 group-hover:opacity-30",l)}),e.jsxs("div",{className:"relative flex items-start justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[11px] font-bold text-muted-foreground/70 uppercase tracking-wider",children:a}),e.jsx("p",{className:"text-3xl font-black mt-1.5 tracking-tight",children:n}),c&&e.jsxs("div",{className:"flex items-center gap-1 mt-1.5",children:[c.positive?e.jsx(ke,{className:"h-3 w-3 text-emerald-500"}):e.jsx(ye,{className:"h-3 w-3 text-red-400"}),e.jsx("span",{className:m("text-[11px] font-semibold",c.positive?"text-emerald-500":"text-red-400"),children:c.value})]})]}),e.jsx("div",{className:m("h-11 w-11 rounded-xl flex items-center justify-center shadow-lg",l),children:e.jsx(r,{className:"h-5 w-5 text-white"})})]}),d&&e.jsx(ce,{className:"absolute right-4 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/20 group-hover:text-muted-foreground/50 transition-colors"})]});return d?e.jsx(N,{to:d,children:o}):o}function Re({completed:a,running:n,pending:r,failed:c}){const l=[{name:"Completed",value:a,color:h.completed},{name:"Running",value:n,color:h.in_progress},{name:"Pending",value:r,color:h.pending},{name:"Failed",value:c,color:h.failed}].filter(o=>o.value>0),d=a+n+r+c;return d===0?e.jsx("div",{className:"h-full w-full flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"h-12 w-12 rounded-full bg-muted/20 flex items-center justify-center mx-auto mb-2",children:e.jsx(T,{className:"h-5 w-5 text-muted-foreground/40"})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"No tasks"})]})}):e.jsxs("div",{className:"relative h-full w-full",children:[e.jsx(B,{width:"100%",height:"100%",children:e.jsxs(ge,{children:[e.jsx(je,{data:l,cx:"50%",cy:"50%",innerRadius:35,outerRadius:50,paddingAngle:2,dataKey:"value",strokeWidth:0,children:l.map((o,i)=>e.jsx(fe,{fill:o.color},`cell-${i}`))}),e.jsx(z,{content:({active:o,payload:i})=>{if(o&&i&&i.length){const t=i[0].payload;return e.jsxs("div",{className:"px-2.5 py-1.5 rounded-lg bg-black/90 text-white text-xs border border-white/10",children:[t.name,": ",t.value]})}return null}})]})}),e.jsx("div",{className:"absolute inset-0 flex flex-col items-center justify-center pointer-events-none","aria-hidden":"true",children:e.jsx("span",{className:"text-xl font-bold",children:d})})]})}function L({icon:a,title:n,href:r,linkText:c}){return e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("h3",{className:"text-sm font-semibold",children:n})]}),r&&e.jsxs(N,{to:r,className:"text-xs text-primary hover:text-primary/80 font-medium flex items-center gap-1",children:[c||"View All"," ",e.jsx(oe,{className:"h-3 w-3"})]})]})}function K({icon:a,title:n,action:r}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-6 text-center",children:[e.jsx("div",{className:"h-10 w-10 rounded-xl bg-muted/10 flex items-center justify-center mb-2",children:e.jsx(a,{className:"h-5 w-5 text-muted-foreground/40","aria-hidden":"true"})}),e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:n}),r&&e.jsx(N,{to:r.href,className:"text-xs text-primary hover:underline font-medium",children:r.label})]})}function Oe({onRetry:a}){return e.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[60vh] text-center px-4",children:[e.jsx("div",{className:"h-20 w-20 rounded-2xl bg-red-500/10 flex items-center justify-center mb-6 border border-red-500/20",children:e.jsx(Ce,{className:"h-10 w-10 text-red-400"})}),e.jsx("h2",{className:"text-xl font-bold mb-2",children:"Backend Offline"}),e.jsx("p",{className:"text-muted-foreground text-sm max-w-md mb-6",children:"Unable to connect to the API. Make sure the server is running."}),e.jsx("code",{className:"px-4 py-2 rounded-lg bg-black/20 font-mono text-sm text-muted-foreground mb-4",children:"pnpm dev"}),e.jsxs(ie,{onClick:a,variant:"outline",className:"rounded-xl gap-2",children:[e.jsx(ne,{className:"h-4 w-4"}),"Retry"]})]})}function Me(){const{data:a,isLoading:n,error:r,refetch:c}=f({queryKey:["tasks"],queryFn:()=>j.tasks.list({limit:100}),refetchInterval:s=>s.state.error?!1:v}),{data:l,isLoading:d,error:o,refetch:i}=f({queryKey:["summaries","stats"],queryFn:()=>j.summaries.stats(),refetchInterval:s=>s.state.error?!1:v*2}),{data:t,isLoading:k,error:u,refetch:E}=f({queryKey:["stats","dashboard"],queryFn:()=>j.stats.dashboard(),refetchInterval:s=>s.state.error?!1:v*2}),{data:$,refetch:G}=f({queryKey:["tickets","recent"],queryFn:()=>j.tickets.list({limit:5,sortBy:"updatedAt",sortOrder:"desc"}),refetchInterval:s=>s.state.error?!1:v*2}),{data:U,refetch:H}=f({queryKey:["gateway","agents"],queryFn:()=>j.gateway.agents(),refetchInterval:s=>s.state.error?!1:v*4}),V=r||o||u,O=n||d||k,W=()=>{c(),i(),E(),G(),H()};if(V&&!O)return e.jsx(Oe,{onRetry:W});const x=a?.tasks??[],X=x.filter(s=>s.status==="pending").length,w=x.filter(s=>s.status==="in_progress").length,S=x.filter(s=>s.status==="completed").length,Y=x.filter(s=>s.status==="failed").length,Z=t?.tickets.total??0,D=t?.tickets.open??0,Q=t?.projects.total??0,C=t?.sprints.active??0,_=$?.tickets??[],y=U?.agents??[],J=y.filter(s=>s.health?.healthy).length;return O?e.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:e.jsxs("div",{className:"text-center",children:[e.jsx(ee,{className:"h-8 w-8 animate-spin text-primary mx-auto mb-3"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading analytics..."})]})}):e.jsxs("div",{className:"space-y-6 max-w-7xl mx-auto",children:[e.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Analytics"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Overview of your AI operations and metrics"})]})}),e.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[e.jsx(b,{label:"Tasks",value:x.length,icon:T,trend:w>0?{value:`${w} running`,positive:!0}:void 0,gradient:"bg-gradient-to-br from-rose-400 to-rose-600",href:"/tasks"}),e.jsx(b,{label:"Tickets",value:Z,icon:A,trend:D>0?{value:`${D} open`,positive:!0}:void 0,gradient:"bg-gradient-to-br from-rose-500 to-rose-700",href:"/tickets"}),e.jsx(b,{label:"Projects",value:Q,icon:se,trend:C>0?{value:`${C} sprints`,positive:!0}:void 0,gradient:"bg-gradient-to-br from-rose-300 to-rose-500",href:"/projects"}),e.jsx(b,{label:"Completed",value:S,icon:te,gradient:"bg-gradient-to-br from-emerald-400 to-emerald-600"})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-5",children:[e.jsxs("div",{className:"lg:col-span-3 space-y-6",children:[e.jsxs(p,{className:"glass overflow-hidden",children:[e.jsx(I,{className:"pb-3",children:e.jsxs(q,{className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(P,{className:"h-4 w-4 text-muted-foreground"}),"Activity Overview"]})}),e.jsx(g,{children:e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsxs("div",{className:"h-32",children:[e.jsx(Re,{completed:S,running:w,pending:X,failed:Y}),e.jsx("div",{className:"flex justify-center gap-3 mt-2",children:[{color:h.completed,label:"Done"},{color:h.in_progress,label:"Active"},{color:h.pending,label:"Pending"}].map(s=>e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"h-2 w-2 rounded-full",style:{backgroundColor:s.color}}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:s.label})]},s.label))})]}),e.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"p-3 rounded-xl bg-muted/10",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(ae,{className:"h-3.5 w-3.5 text-amber-400"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:"Sprints"})]}),e.jsx("p",{className:"text-lg font-bold",children:C})]}),e.jsxs("div",{className:"p-3 rounded-xl bg-muted/10",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(re,{className:"h-3.5 w-3.5 text-violet-400"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:"AI Created"})]}),e.jsx("p",{className:"text-lg font-bold",children:t?.tickets.aiCreated??0})]}),e.jsxs("div",{className:"p-3 rounded-xl bg-muted/10",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(ve,{className:"h-3.5 w-3.5 text-cyan-400"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:"Files Changed"})]}),e.jsx("p",{className:"text-lg font-bold",children:l?.filesChangedCount??0})]}),e.jsxs("div",{className:"p-3 rounded-xl bg-muted/10",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(F,{className:"h-3.5 w-3.5 text-green-400"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:"Agents"})]}),e.jsxs("p",{className:"text-lg font-bold",children:[J,"/",y.length]})]})]})]})})]}),(t?.velocity.tasks?.length??0)>0&&e.jsxs(p,{className:"glass",children:[e.jsx(I,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(q,{className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(P,{className:"h-4 w-4 text-muted-foreground"}),"Velocity (30 days)"]}),e.jsx("div",{className:"flex items-center gap-4 text-xs text-muted-foreground",children:e.jsxs("span",{children:["Avg: ",e.jsx("strong",{className:"text-foreground",children:t?.velocity.weeklyAvg.created??0}),"/wk"]})})]})}),e.jsx(g,{className:"h-48",children:e.jsx(Le,{data:t?.velocity.tasks??[],showLegend:!0,colors:{created:"#fb7185",completed:"#22c55e"}})})]}),e.jsxs("div",{children:[e.jsx(L,{icon:le,title:"Recent Tasks",href:"/tasks"}),e.jsx(p,{className:"glass",children:e.jsx(g,{className:"p-3",children:x.length>0?e.jsx("div",{className:"space-y-1",children:x.slice(0,5).map(s=>e.jsxs(N,{to:`/tasks/${s.id}`,className:"flex items-center justify-between p-2.5 rounded-xl hover:bg-muted/20 transition-colors group",children:[e.jsxs("div",{className:"flex-1 min-w-0 mr-3",children:[e.jsx("p",{className:"truncate text-sm font-medium group-hover:text-primary transition-colors",children:s.title}),e.jsx("p",{className:"text-[10px] text-muted-foreground uppercase",children:s.source})]}),e.jsx(de,{variant:s.status==="completed"?"success":s.status==="failed"?"destructive":s.status==="in_progress"?"info":"secondary",className:m("text-[10px]",s.status==="in_progress"&&"animate-pulse"),children:s.status.replace("_"," ")})]},s.id))}):e.jsx(K,{icon:T,title:"No tasks yet",action:{label:"Create Task",href:"/tasks?create=true"}})})})]})]}),e.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[e.jsxs("div",{children:[e.jsx(L,{icon:A,title:"Recent Tickets",href:"/tickets"}),e.jsx(p,{className:"glass",children:e.jsx(g,{className:"p-3",children:_.length>0?e.jsx("div",{className:"space-y-1",children:_.slice(0,5).map(s=>e.jsxs(N,{to:`/tickets/${s.id}`,className:"flex items-center gap-2 p-2.5 rounded-xl hover:bg-muted/20 transition-colors group",children:[e.jsxs("span",{className:m("text-[10px] font-mono shrink-0",Te[s.priority]),children:["#",s.sequence]}),e.jsx("p",{className:"truncate text-sm font-medium group-hover:text-primary transition-colors flex-1",children:s.title})]},s.id))}):e.jsx(K,{icon:A,title:"No tickets",action:{label:"Create Ticket",href:"/tickets?create=true"}})})})]}),y.length>0&&e.jsxs("div",{children:[e.jsx(L,{icon:F,title:"AI Agents",href:"/gateway",linkText:"Configure"}),e.jsx(p,{className:"glass",children:e.jsx(g,{className:"p-3",children:e.jsx("div",{className:"space-y-1",children:y.slice(0,4).map(s=>e.jsxs("div",{className:"flex items-center gap-3 p-2.5 rounded-xl bg-muted/5",children:[e.jsx("div",{className:m("h-2 w-2 rounded-full shrink-0",s.health?.healthy?"bg-green-500":"bg-gray-500"),"aria-label":s.health?.healthy?"Healthy":"Offline"}),e.jsx("span",{className:"text-sm font-medium capitalize flex-1",children:s.name||s.type.replace(/-/g," ")}),e.jsx("span",{className:"text-[10px] text-muted-foreground","aria-hidden":"true",children:s.health?.healthy?"Active":"Offline"})]},s.type))})})})]})]})]})]})}export{Me as AnalyticsDashboard};
@@ -1 +0,0 @@
1
- import{r as l,al as ee}from"./index--JkIxVXb.js";import{c as k,p as V,b as Qe,i as ea,s as B,d as aa,e as ta,f as Se,g as ra,h as na,j as R,k as ia,l as la,m as oa,n as sa,o as U,q as ca,r as ua,t as da,u as pa,v as Ce,w as va,x as ma,y as fa,z as ae,A as ha,B as X,D as te,E as ke,S as ya,F as se,G as De,H as z,I as ga,J as _,Z as ce,K as je,M as we,N as Te,O as ba,P as M,a as Le,Q as Aa,U as Pa,V as xa,W as Ea,_ as Ia,$ as Oa,a0 as Sa,a1 as Ca,a2 as ka,a3 as Da,a4 as ja,a5 as Ne,a6 as K,a7 as q,a8 as me,a9 as le,aa as wa,ab as F,ac as Z,ad as Ta,ae as La,af as Na,ag as Ra,ah as Re,ai as ue,aj as de,ak as _e,al as _a,am as Me,an as fe,ao as Ma,ap as Ka,aq as Wa,ar as Ke,as as $a,at as Ba,au as Ga,av as za,aw as Fa,ax as Va,ay as Ua,az as Xa,aA as Ya,aB as Ha,aC as qa,aD as he,aE as ye,aF as Za,aG as Ja,aH as Qa,aI as et,aJ as at,aK as tt,aL as J,aM as rt,aN as nt,aO as it,aP as lt,aQ as ot,aR as st,aS as ct,aT as ut,aU as We,aV as dt}from"./CartesianChart-BaQ3It0c.js";var $e=a=>a.graphicalItems.polarItems,pt=k([V,Qe],ea),re=k([$e,B,pt],aa),vt=k([re],ta),ne=k([vt,Se],ra),mt=k([ne,B,re],na);k([ne,B,re],(a,e,t)=>t.length>0?a.flatMap(r=>t.flatMap(n=>{var i,s=R(r,(i=e.dataKey)!==null&&i!==void 0?i:n.dataKey);return{value:s,errorDomain:[]}})).filter(Boolean):e?.dataKey!=null?a.map(r=>({value:R(r,e.dataKey),errorDomain:[]})):a.map(r=>({value:r,errorDomain:[]})));var ge=()=>{},ft=k([ne,B,re,ia,V],la),ht=k([B,oa,sa,ge,ft,ge,U,V],ca),Be=k([B,U,ne,mt,ua,V,ht],da),yt=k([Be,pa,Ce],va),gt=k([B,Be,yt,V],ma);k([Ce,gt],fa);function be(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(a);e&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(a,n).enumerable})),t.push.apply(t,r)}return t}function Ae(a){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?be(Object(t),!0).forEach(function(r){bt(a,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(t)):be(Object(t)).forEach(function(r){Object.defineProperty(a,r,Object.getOwnPropertyDescriptor(t,r))})}return a}function bt(a,e,t){return(e=At(e))in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function At(a){var e=Pt(a,"string");return typeof e=="symbol"?e:e+""}function Pt(a,e){if(typeof a!="object"||!a)return a;var t=a[Symbol.toPrimitive];if(t!==void 0){var r=t.call(a,e);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(a)}var xt=(a,e)=>e,pe=k([$e,xt],(a,e)=>a.filter(t=>t.type==="pie").find(t=>t.id===e)),Et=[],ve=(a,e,t)=>t?.length===0?Et:t,Ge=k([Se,pe,ve],(a,e,t)=>{var{chartData:r}=a;if(e!=null){var n;if(e?.data!=null&&e.data.length>0?n=e.data:n=r,(!n||!n.length)&&t!=null&&(n=t.map(i=>Ae(Ae({},e.presentationProps),i.props))),n!=null)return n}}),It=k([Ge,pe,ve],(a,e,t)=>{if(!(a==null||e==null))return a.map((r,n)=>{var i,s=R(r,e.nameKey,e.name),o;return t!=null&&(i=t[n])!==null&&i!==void 0&&(i=i.props)!==null&&i!==void 0&&i.fill?o=t[n].props.fill:typeof r=="object"&&r!=null&&"fill"in r?o=r.fill:o=e.fill,{value:ae(s,e.dataKey),color:o,payload:r,type:e.legendType}})}),Ot=k([Ge,pe,ve,ha],(a,e,t,r)=>{if(!(e==null||a==null))return Vt({offset:r,pieSettings:e,displayedData:a,cells:t})}),St=["key"],Ct=["onMouseEnter","onClick","onMouseLeave"],kt=["id"],Dt=["id"];function Pe(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(a);e&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(a,n).enumerable})),t.push.apply(t,r)}return t}function S(a){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Pe(Object(t),!0).forEach(function(r){jt(a,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(t)):Pe(Object(t)).forEach(function(r){Object.defineProperty(a,r,Object.getOwnPropertyDescriptor(t,r))})}return a}function jt(a,e,t){return(e=wt(e))in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function wt(a){var e=Tt(a,"string");return typeof e=="symbol"?e:e+""}function Tt(a,e){if(typeof a!="object"||!a)return a;var t=a[Symbol.toPrimitive];if(t!==void 0){var r=t.call(a,e);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(a)}function W(){return W=Object.assign?Object.assign.bind():function(a){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(a[r]=t[r])}return a},W.apply(null,arguments)}function ie(a,e){if(a==null)return{};var t,r,n=Lt(a,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(a);for(r=0;r<i.length;r++)t=i[r],e.indexOf(t)===-1&&{}.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}function Lt(a,e){if(a==null)return{};var t={};for(var r in a)if({}.hasOwnProperty.call(a,r)){if(e.indexOf(r)!==-1)continue;t[r]=a[r]}return t}function Nt(a){var e=l.useMemo(()=>De(a.children,Le),[a.children]),t=z(r=>It(r,a.id,e));return t==null?null:l.createElement(ga,{legendPayload:t})}var Rt=l.memo(a=>{var{dataKey:e,nameKey:t,sectors:r,stroke:n,strokeWidth:i,fill:s,name:o,hide:c,tooltipType:d,id:p}=a,v={dataDefinedOnItem:r.map(u=>u.tooltipPayload),getPosition:u=>{var m;return(m=r[Number(u)])===null||m===void 0?void 0:m.tooltipPosition},settings:{stroke:n,strokeWidth:i,fill:s,dataKey:e,nameKey:t,name:ae(o,e),hide:c,type:d,color:s,unit:"",graphicalItemId:p}};return l.createElement(je,{tooltipEntrySettings:v})}),_t=(a,e)=>a>e?"start":a<e?"end":"middle",Mt=(a,e,t)=>typeof e=="function"?F(e(a),t,t*.8):F(e,t,t*.8),Kt=(a,e,t)=>{var{top:r,left:n,width:i,height:s}=e,o=wa(i,s),c=n+F(a.cx,i,i/2),d=r+F(a.cy,s,s/2),p=F(a.innerRadius,o,0),v=Mt(t,a.outerRadius,o),u=a.maxRadius||Math.sqrt(i*i+s*s)/2;return{cx:c,cy:d,innerRadius:p,outerRadius:v,maxRadius:u}},Wt=(a,e)=>{var t=q(e-a),r=Math.min(Math.abs(e-a),360);return t*r},$t=(a,e)=>{if(l.isValidElement(a))return l.cloneElement(a,e);if(typeof a=="function")return a(e);var t=ee("recharts-pie-label-line",typeof a!="boolean"?a.className:""),{key:r}=e,n=ie(e,St);return l.createElement(Z,W({},n,{type:"linear",className:t}))},Bt=(a,e,t)=>{if(l.isValidElement(a))return l.cloneElement(a,e);var r=t;if(typeof a=="function"&&(r=a(e),l.isValidElement(r)))return r;var n=ee("recharts-pie-label-text",Ta(a));return l.createElement(La,W({},e,{alignmentBaseline:"middle",className:n}),r)};function Gt(a){var{sectors:e,props:t,showLabels:r}=a,{label:n,labelLine:i,dataKey:s}=t;if(!r||!n||!e)return null;var o=te(t),c=me(n),d=me(i),p=typeof n=="object"&&"offsetRadius"in n&&typeof n.offsetRadius=="number"&&n.offsetRadius||20,v=e.map((u,m)=>{var A=(u.startAngle+u.endAngle)/2,E=le(u.cx,u.cy,u.outerRadius+p,A),P=S(S(S(S({},o),u),{},{stroke:"none"},c),{},{index:m,textAnchor:_t(E.x,u.cx)},E),f=S(S(S(S({},o),u),{},{fill:"none",stroke:u.fill},d),{},{index:m,points:[le(u.cx,u.cy,u.outerRadius,A),E],key:"line"});return l.createElement(ce,{zIndex:se.label,key:"label-".concat(u.startAngle,"-").concat(u.endAngle,"-").concat(u.midAngle,"-").concat(m)},l.createElement(_,null,i&&$t(i,f),Bt(n,P,R(u,s))))});return l.createElement(_,{className:"recharts-pie-labels"},v)}function zt(a){var{sectors:e,props:t,showLabels:r}=a,{label:n}=t;return typeof n=="object"&&n!=null&&"position"in n?l.createElement(Ne,{label:n}):l.createElement(Gt,{sectors:e,props:t,showLabels:r})}function Ft(a){var{sectors:e,activeShape:t,inactiveShape:r,allOtherPieProps:n,shape:i,id:s}=a,o=z(Pa),c=z(xa),d=z(Ea),{onMouseEnter:p,onClick:v,onMouseLeave:u}=n,m=ie(n,Ct),A=Ia(p,n.dataKey,s),E=Oa(u),P=Sa(v,n.dataKey,s);return e==null||e.length===0?null:l.createElement(l.Fragment,null,e.map((f,I)=>{if(f?.startAngle===0&&f?.endAngle===0&&e.length!==1)return null;var C=d==null||d===s,h=String(I)===o&&(c==null||n.dataKey===c)&&C,x=o?r:null,g=t&&h?t:x,b=S(S({},f),{},{stroke:f.stroke,tabIndex:-1,[ka]:I,[Ca]:s});return l.createElement(_,W({key:"sector-".concat(f?.startAngle,"-").concat(f?.endAngle,"-").concat(f.midAngle,"-").concat(I),tabIndex:-1,className:"recharts-pie-sector"},Da(m,f,I),{onMouseEnter:A(f,I),onMouseLeave:E(f,I),onClick:P(f,I)}),l.createElement(ja,W({option:i??g,index:I,shapeType:"sector",isActive:h},b)))}))}function Vt(a){var e,{pieSettings:t,displayedData:r,cells:n,offset:i}=a,{cornerRadius:s,startAngle:o,endAngle:c,dataKey:d,nameKey:p,tooltipType:v}=t,u=Math.abs(t.minAngle),m=Wt(o,c),A=Math.abs(m),E=r.length<=1?0:(e=t.paddingAngle)!==null&&e!==void 0?e:0,P=r.filter(g=>R(g,d,0)!==0).length,f=(A>=360?P:P-1)*E,I=A-P*u-f,C=r.reduce((g,b)=>{var y=R(b,d,0);return g+(K(y)?y:0)},0),h;if(C>0){var x;h=r.map((g,b)=>{var y=R(g,d,0),j=R(g,p,b),w=Kt(t,i,g),D=(K(y)?y:0)/C,O,T=S(S({},g),n&&n[b]&&n[b].props);b?O=x.endAngle+q(m)*E*(y!==0?1:0):O=o;var L=O+q(m)*((y!==0?u:0)+D*I),N=(O+L)/2,Y=(w.innerRadius+w.outerRadius)/2,H=[{name:j,value:y,payload:T,dataKey:d,type:v,graphicalItemId:t.id}],Je=le(w.cx,w.cy,Y,N);return x=S(S(S(S({},t.presentationProps),{},{percent:D,cornerRadius:typeof s=="string"?parseFloat(s):s,name:j,tooltipPayload:H,midAngle:N,middleRadius:Y,tooltipPosition:Je},T),w),{},{value:y,dataKey:d,startAngle:O,endAngle:L,payload:T,paddingAngle:q(m)*E}),x})}return h}function Ut(a){var{showLabels:e,sectors:t,children:r}=a,n=l.useMemo(()=>!e||!t?[]:t.map(i=>({value:i.value,payload:i.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:i.cx,cy:i.cy,innerRadius:i.innerRadius,outerRadius:i.outerRadius,startAngle:i.startAngle,endAngle:i.endAngle,clockWise:!1},fill:i.fill})),[t,e]);return l.createElement(Aa,{value:e?n:void 0},r)}function Xt(a){var{props:e,previousSectorsRef:t,id:r}=a,{sectors:n,isAnimationActive:i,animationBegin:s,animationDuration:o,animationEasing:c,activeShape:d,inactiveShape:p,onAnimationStart:v,onAnimationEnd:u}=e,m=we(e,"recharts-pie-"),A=t.current,[E,P]=l.useState(!1),f=l.useCallback(()=>{typeof u=="function"&&u(),P(!1)},[u]),I=l.useCallback(()=>{typeof v=="function"&&v(),P(!0)},[v]);return l.createElement(Ut,{showLabels:!E,sectors:n},l.createElement(Te,{animationId:m,begin:s,duration:o,isActive:i,easing:c,onAnimationStart:I,onAnimationEnd:f,key:m},C=>{var h,x=[],g=n&&n[0],b=(h=g?.startAngle)!==null&&h!==void 0?h:0;return n?.forEach((y,j)=>{var w=A&&A[j],D=j>0?ba(y,"paddingAngle",0):0;if(w){var O=M(w.endAngle-w.startAngle,y.endAngle-y.startAngle,C),T=S(S({},y),{},{startAngle:b+D,endAngle:b+O+D});x.push(T),b=T.endAngle}else{var{endAngle:L,startAngle:N}=y,Y=M(0,L-N,C),H=S(S({},y),{},{startAngle:b+D,endAngle:b+Y+D});x.push(H),b=H.endAngle}}),t.current=x,l.createElement(_,null,l.createElement(Ft,{sectors:x,activeShape:d,inactiveShape:p,allOtherPieProps:e,shape:e.shape,id:r}))}),l.createElement(zt,{showLabels:!E,sectors:n,props:e}),e.children)}var Yt={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff",zIndex:se.area};function Ht(a){var{id:e}=a,t=ie(a,kt),{hide:r,className:n,rootTabIndex:i}=a,s=l.useMemo(()=>De(a.children,Le),[a.children]),o=z(p=>Ot(p,e,s)),c=l.useRef(null),d=ee("recharts-pie",n);return r||o==null?(c.current=null,l.createElement(_,{tabIndex:i,className:d})):l.createElement(ce,{zIndex:a.zIndex},l.createElement(Rt,{dataKey:a.dataKey,nameKey:a.nameKey,sectors:o,stroke:a.stroke,strokeWidth:a.strokeWidth,fill:a.fill,name:a.name,hide:a.hide,tooltipType:a.tooltipType,id:e}),l.createElement(_,{tabIndex:i,className:d},l.createElement(Xt,{props:S(S({},t),{},{sectors:o}),previousSectorsRef:c,id:e})))}function qt(a){var e=X(a,Yt),{id:t}=e,r=ie(e,Dt),n=te(r);return l.createElement(ke,{id:t,type:"pie"},i=>l.createElement(l.Fragment,null,l.createElement(ya,{type:"pie",id:i,data:r.data,dataKey:r.dataKey,hide:r.hide,angleAxisId:0,radiusAxisId:0,name:r.name,nameKey:r.nameKey,tooltipType:r.tooltipType,legendType:r.legendType,fill:r.fill,cx:r.cx,cy:r.cy,startAngle:r.startAngle,endAngle:r.endAngle,paddingAngle:r.paddingAngle,minAngle:r.minAngle,innerRadius:r.innerRadius,outerRadius:r.outerRadius,cornerRadius:r.cornerRadius,presentationProps:n,maxRadius:e.maxRadius}),l.createElement(Nt,W({},r,{id:i})),l.createElement(Ht,W({},r,{id:i}))))}qt.displayName="Pie";var ze=(a,e,t)=>Re(a,"xAxis",ue(a,e),t),Fe=(a,e,t)=>_e(a,"xAxis",ue(a,e),t),Ve=(a,e,t)=>Re(a,"yAxis",de(a,e),t),Ue=(a,e,t)=>_e(a,"yAxis",de(a,e),t),Zt=k([U,ze,Ve,Fe,Ue],(a,e,t,r,n)=>Me(a,"xAxis")?fe(e,r,!1):fe(t,n,!1)),Jt=(a,e)=>e,Xe=k([Ma,Jt],(a,e)=>a.filter(t=>t.type==="area").find(t=>t.id===e)),Ye=a=>{var e=U(a),t=Me(e,"xAxis");return t?"yAxis":"xAxis"},Qt=(a,e)=>{var t=Ye(a);return t==="yAxis"?de(a,e):ue(a,e)},er=(a,e,t)=>Ka(a,Ye(a),Qt(a,e),t),ar=k([Xe,er],(a,e)=>{var t;if(!(a==null||e==null)){var{stackId:r}=a,n=_a(a);if(!(r==null||n==null)){var i=(t=e[r])===null||t===void 0?void 0:t.stackedData,s=i?.find(o=>o.key===n);if(s!=null)return s.map(o=>[o[0],o[1]])}}}),tr=k([U,ze,Ve,Fe,Ue,ar,Na,Zt,Xe,Ra],(a,e,t,r,n,i,s,o,c,d)=>{var{chartData:p,dataStartIndex:v,dataEndIndex:u}=s;if(!(c==null||a!=="horizontal"&&a!=="vertical"||e==null||t==null||r==null||n==null||r.length===0||n.length===0||o==null)){var{data:m}=c,A;if(m&&m.length>0?A=m:A=p?.slice(v,u+1),A!=null)return Pr({layout:a,xAxis:e,yAxis:t,xAxisTicks:r,yAxisTicks:n,dataStartIndex:v,areaSettings:c,stackedData:i,displayedData:A,chartBaseValue:d,bandSize:o})}}),rr=["id"],nr=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function $(){return $=Object.assign?Object.assign.bind():function(a){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(a[r]=t[r])}return a},$.apply(null,arguments)}function He(a,e){if(a==null)return{};var t,r,n=ir(a,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(a);for(r=0;r<i.length;r++)t=i[r],e.indexOf(t)===-1&&{}.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}function ir(a,e){if(a==null)return{};var t={};for(var r in a)if({}.hasOwnProperty.call(a,r)){if(e.indexOf(r)!==-1)continue;t[r]=a[r]}return t}function xe(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(a);e&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(a,n).enumerable})),t.push.apply(t,r)}return t}function G(a){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?xe(Object(t),!0).forEach(function(r){lr(a,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(t)):xe(Object(t)).forEach(function(r){Object.defineProperty(a,r,Object.getOwnPropertyDescriptor(t,r))})}return a}function lr(a,e,t){return(e=or(e))in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function or(a){var e=sr(a,"string");return typeof e=="symbol"?e:e+""}function sr(a,e){if(typeof a!="object"||!a)return a;var t=a[Symbol.toPrimitive];if(t!==void 0){var r=t.call(a,e);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(a)}function Q(a,e){return a&&a!=="none"?a:e}var cr=a=>{var{dataKey:e,name:t,stroke:r,fill:n,legendType:i,hide:s}=a;return[{inactive:s,dataKey:e,type:i,color:Q(r,n),value:ae(t,e),payload:a}]},ur=l.memo(a=>{var{dataKey:e,data:t,stroke:r,strokeWidth:n,fill:i,name:s,hide:o,unit:c,tooltipType:d,id:p}=a,v={dataDefinedOnItem:t,getPosition:za,settings:{stroke:r,strokeWidth:n,fill:i,dataKey:e,nameKey:void 0,name:ae(s,e),hide:o,type:d,color:Q(r,i),unit:c,graphicalItemId:p}};return l.createElement(je,{tooltipEntrySettings:v})});function dr(a){var{clipPathId:e,points:t,props:r}=a,{needClip:n,dot:i,dataKey:s}=r,o=te(r);return l.createElement(tt,{points:t,dot:i,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:o,needClip:n,clipPathId:e})}function pr(a){var{showLabels:e,children:t,points:r}=a,n=r.map(i=>{var s,o,c={x:(s=i.x)!==null&&s!==void 0?s:0,y:(o=i.y)!==null&&o!==void 0?o:0,width:0,lowerWidth:0,upperWidth:0,height:0};return G(G({},c),{},{value:i.value,payload:i.payload,parentViewBox:void 0,viewBox:c,fill:void 0})});return l.createElement(et,{value:e?n:void 0},t)}function Ee(a){var{points:e,baseLine:t,needClip:r,clipPathId:n,props:i}=a,{layout:s,type:o,stroke:c,connectNulls:d,isRange:p}=i,{id:v}=i,u=He(i,rr),m=te(u),A=at(u);return l.createElement(l.Fragment,null,e?.length>1&&l.createElement(_,{clipPath:r?"url(#clipPath-".concat(n,")"):void 0},l.createElement(Z,$({},A,{id:v,points:e,connectNulls:d,type:o,baseLine:t,layout:s,stroke:"none",className:"recharts-area-area"})),c!=="none"&&l.createElement(Z,$({},m,{className:"recharts-area-curve",layout:s,type:o,connectNulls:d,fill:"none",points:e})),c!=="none"&&p&&l.createElement(Z,$({},m,{className:"recharts-area-curve",layout:s,type:o,connectNulls:d,fill:"none",points:t}))),l.createElement(dr,{points:e,props:u,clipPathId:n}))}function vr(a){var e,t,{alpha:r,baseLine:n,points:i,strokeWidth:s}=a,o=(e=i[0])===null||e===void 0?void 0:e.y,c=(t=i[i.length-1])===null||t===void 0?void 0:t.y;if(!J(o)||!J(c))return null;var d=r*Math.abs(o-c),p=Math.max(...i.map(v=>v.x||0));return K(n)?p=Math.max(n,p):n&&Array.isArray(n)&&n.length&&(p=Math.max(...n.map(v=>v.x||0),p)),K(p)?l.createElement("rect",{x:0,y:o<c?o:o-d,width:p+(s?parseInt("".concat(s),10):1),height:Math.floor(d)}):null}function mr(a){var e,t,{alpha:r,baseLine:n,points:i,strokeWidth:s}=a,o=(e=i[0])===null||e===void 0?void 0:e.x,c=(t=i[i.length-1])===null||t===void 0?void 0:t.x;if(!J(o)||!J(c))return null;var d=r*Math.abs(o-c),p=Math.max(...i.map(v=>v.y||0));return K(n)?p=Math.max(n,p):n&&Array.isArray(n)&&n.length&&(p=Math.max(...n.map(v=>v.y||0),p)),K(p)?l.createElement("rect",{x:o<c?o:o-d,y:0,width:d,height:Math.floor(p+(s?parseInt("".concat(s),10):1))}):null}function fr(a){var{alpha:e,layout:t,points:r,baseLine:n,strokeWidth:i}=a;return t==="vertical"?l.createElement(vr,{alpha:e,points:r,baseLine:n,strokeWidth:i}):l.createElement(mr,{alpha:e,points:r,baseLine:n,strokeWidth:i})}function hr(a){var{needClip:e,clipPathId:t,props:r,previousPointsRef:n,previousBaselineRef:i}=a,{points:s,baseLine:o,isAnimationActive:c,animationBegin:d,animationDuration:p,animationEasing:v,onAnimationStart:u,onAnimationEnd:m}=r,A=l.useMemo(()=>({points:s,baseLine:o}),[s,o]),E=we(A,"recharts-area-"),P=Za(),[f,I]=l.useState(!1),C=!f,h=l.useCallback(()=>{typeof m=="function"&&m(),I(!1)},[m]),x=l.useCallback(()=>{typeof u=="function"&&u(),I(!0)},[u]);if(P==null)return null;var g=n.current,b=i.current;return l.createElement(pr,{showLabels:C,points:s},r.children,l.createElement(Te,{animationId:E,begin:d,duration:p,isActive:c,easing:v,onAnimationEnd:h,onAnimationStart:x,key:E},y=>{if(g){var j=g.length/s.length,w=y===1?s:s.map((O,T)=>{var L=Math.floor(T*j);if(g[L]){var N=g[L];return G(G({},O),{},{x:M(N.x,O.x,y),y:M(N.y,O.y,y)})}return O}),D;return K(o)?D=M(b,o,y):Ja(o)||Qa(o)?D=M(b,0,y):D=o.map((O,T)=>{var L=Math.floor(T*j);if(Array.isArray(b)&&b[L]){var N=b[L];return G(G({},O),{},{x:M(N.x,O.x,y),y:M(N.y,O.y,y)})}return O}),y>0&&(n.current=w,i.current=D),l.createElement(Ee,{points:w,baseLine:D,needClip:e,clipPathId:t,props:r})}return y>0&&(n.current=s,i.current=o),l.createElement(_,null,c&&l.createElement("defs",null,l.createElement("clipPath",{id:"animationClipPath-".concat(t)},l.createElement(fr,{alpha:y,points:s,baseLine:o,layout:P,strokeWidth:r.strokeWidth}))),l.createElement(_,{clipPath:"url(#animationClipPath-".concat(t,")")},l.createElement(Ee,{points:s,baseLine:o,needClip:e,clipPathId:t,props:r})))}),l.createElement(Ne,{label:r.label}))}function yr(a){var{needClip:e,clipPathId:t,props:r}=a,n=l.useRef(null),i=l.useRef();return l.createElement(hr,{needClip:e,clipPathId:t,props:r,previousPointsRef:n,previousBaselineRef:i})}class gr extends l.PureComponent{render(){var{hide:e,dot:t,points:r,className:n,top:i,left:s,needClip:o,xAxisId:c,yAxisId:d,width:p,height:v,id:u,baseLine:m,zIndex:A}=this.props;if(e)return null;var E=ee("recharts-area",n),P=u,{r:f,strokeWidth:I}=Ya(t),C=Ha(t),h=f*2+I,x=o?"url(#clipPath-".concat(C?"":"dots-").concat(P,")"):void 0;return l.createElement(ce,{zIndex:A},l.createElement(_,{className:E},o&&l.createElement("defs",null,l.createElement(qa,{clipPathId:P,xAxisId:c,yAxisId:d}),!C&&l.createElement("clipPath",{id:"clipPath-dots-".concat(P)},l.createElement("rect",{x:s-h/2,y:i-h/2,width:p+h,height:v+h}))),l.createElement(yr,{needClip:o,clipPathId:P,props:this.props})),l.createElement(he,{points:r,mainColor:Q(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:x}),this.props.isRange&&Array.isArray(m)&&l.createElement(he,{points:m,mainColor:Q(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:x}))}}var qe={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,xAxisId:0,yAxisId:0,zIndex:se.area};function br(a){var e,t=X(a,qe),{activeDot:r,animationBegin:n,animationDuration:i,animationEasing:s,connectNulls:o,dot:c,fill:d,fillOpacity:p,hide:v,isAnimationActive:u,legendType:m,stroke:A,xAxisId:E,yAxisId:P}=t,f=He(t,nr),I=Fa(),C=Va(),{needClip:h}=Ua(E,P),x=Ke(),{points:g,isRange:b,baseLine:y}=(e=z(L=>tr(L,a.id,x)))!==null&&e!==void 0?e:{},j=Xa();if(I!=="horizontal"&&I!=="vertical"||j==null||C!=="AreaChart"&&C!=="ComposedChart")return null;var{height:w,width:D,x:O,y:T}=j;return!g||!g.length?null:l.createElement(gr,$({},f,{activeDot:r,animationBegin:n,animationDuration:i,animationEasing:s,baseLine:y,connectNulls:o,dot:c,fill:d,fillOpacity:p,height:w,hide:v,layout:I,isAnimationActive:u==="auto"?!rt.isSsr:u,isRange:b,legendType:m,needClip:h,points:g,stroke:A,width:D,left:O,top:T,xAxisId:E,yAxisId:P}))}var Ar=(a,e,t,r,n)=>{var i=t??e;if(K(i))return i;var s=a==="horizontal"?n:r,o=s.scale.domain();if(s.type==="number"){var c=Math.max(o[0],o[1]),d=Math.min(o[0],o[1]);return i==="dataMin"?d:i==="dataMax"||c<0?c:Math.max(Math.min(o[0],o[1]),0)}return i==="dataMin"?o[0]:i==="dataMax"?o[1]:o[0]};function Pr(a){var{areaSettings:{connectNulls:e,baseValue:t,dataKey:r},stackedData:n,layout:i,chartBaseValue:s,xAxis:o,yAxis:c,displayedData:d,dataStartIndex:p,xAxisTicks:v,yAxisTicks:u,bandSize:m}=a,A=n&&n.length,E=Ar(i,s,t,o,c),P=i==="horizontal",f=!1,I=d.map((h,x)=>{var g,b,y,j;if(A)j=n[p+x];else{var w=R(h,r);Array.isArray(w)?(j=w,f=!0):j=[E,w]}var D=(g=(b=j)===null||b===void 0?void 0:b[1])!==null&&g!==void 0?g:null,O=D==null||A&&!e&&R(h,r)==null;if(P){var T;return{x:ye({axis:o,ticks:v,bandSize:m,entry:h,index:x}),y:O?null:(T=c.scale.map(D))!==null&&T!==void 0?T:null,value:j,payload:h}}return{x:O?null:(y=o.scale.map(D))!==null&&y!==void 0?y:null,y:ye({axis:c,ticks:u,bandSize:m,entry:h,index:x}),value:j,payload:h}}),C;return A||f?C=I.map(h=>{var x,g=Array.isArray(h.value)?h.value[0]:null;if(P){var b;return{x:h.x,y:g!=null&&h.y!=null&&(b=c.scale.map(g))!==null&&b!==void 0?b:null,payload:h.payload}}return{x:g!=null&&(x=o.scale.map(g))!==null&&x!==void 0?x:null,y:h.y,payload:h.payload}}):C=P?c.scale.map(E):o.scale.map(E),{points:I,baseLine:C??0,isRange:f}}function xr(a){var e=X(a,qe),t=Ke();return l.createElement(ke,{id:e.id,type:"area"},r=>l.createElement(l.Fragment,null,l.createElement($a,{legendPayload:cr(e)}),l.createElement(ur,{dataKey:e.dataKey,data:e.data,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,unit:e.unit,tooltipType:e.tooltipType,id:r}),l.createElement(Ba,{type:"area",id:r,data:e.data,dataKey:e.dataKey,xAxisId:e.xAxisId,yAxisId:e.yAxisId,zAxisId:0,stackId:Ga(e.stackId),hide:e.hide,barSize:void 0,baseValue:e.baseValue,isPanorama:t,connectNulls:e.connectNulls}),l.createElement(br,$({},e,{id:r}))))}var Er=l.memo(xr,Wa);Er.displayName="Area";function Ir(a){var e=nt();return l.useEffect(()=>{e(it(a))},[e,a]),null}var Or=["layout"];function oe(){return oe=Object.assign?Object.assign.bind():function(a){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(a[r]=t[r])}return a},oe.apply(null,arguments)}function Sr(a,e){if(a==null)return{};var t,r,n=Cr(a,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(a);for(r=0;r<i.length;r++)t=i[r],e.indexOf(t)===-1&&{}.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}function Cr(a,e){if(a==null)return{};var t={};for(var r in a)if({}.hasOwnProperty.call(a,r)){if(e.indexOf(r)!==-1)continue;t[r]=a[r]}return t}var kr={top:5,right:5,bottom:5,left:5},Ze={accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:kr,reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},Dr=l.forwardRef(function(e,t){var r,n=X(e.categoricalChartProps,Ze),{layout:i}=n,s=Sr(n,Or),{chartName:o,defaultTooltipEventType:c,validateTooltipEventTypes:d,tooltipPayloadSearcher:p}=e,v={chartName:o,defaultTooltipEventType:c,validateTooltipEventTypes:d,tooltipPayloadSearcher:p,eventEmitter:void 0};return l.createElement(lt,{preloadedState:{options:v},reduxStoreName:(r=n.id)!==null&&r!==void 0?r:o},l.createElement(ot,{chartData:n.data}),l.createElement(st,{layout:i,margin:n.margin}),l.createElement(ct,{baseValue:void 0,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),l.createElement(Ir,{cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius}),l.createElement(ut,oe({},s,{ref:t})))});function Ie(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(a);e&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(a,n).enumerable})),t.push.apply(t,r)}return t}function Oe(a){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Ie(Object(t),!0).forEach(function(r){jr(a,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(t)):Ie(Object(t)).forEach(function(r){Object.defineProperty(a,r,Object.getOwnPropertyDescriptor(t,r))})}return a}function jr(a,e,t){return(e=wr(e))in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function wr(a){var e=Tr(a,"string");return typeof e=="symbol"?e:e+""}function Tr(a,e){if(typeof a!="object"||!a)return a;var t=a[Symbol.toPrimitive];if(t!==void 0){var r=t.call(a,e);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(a)}var Lr=["item"],Nr=Oe(Oe({},Ze),{},{layout:"centric",startAngle:0,endAngle:360}),Kr=l.forwardRef((a,e)=>{var t=X(a,Nr);return l.createElement(Dr,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:Lr,tooltipPayloadSearcher:We,categoricalChartProps:t,ref:e})}),Rr=["axis"],Wr=l.forwardRef((a,e)=>l.createElement(dt,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:Rr,tooltipPayloadSearcher:We,categoricalChartProps:a,ref:e}));export{Wr as A,Kr as P,Er as a,qt as b};