@winspan/claude-forge 8.41.0 → 8.51.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 (923) hide show
  1. package/.claude/CLAUDE.md +17 -0
  2. package/.eslintrc.js +23 -0
  3. package/.prettierrc +8 -0
  4. package/ARCHITECTURE_ISSUES.md +249 -0
  5. package/CLAUDE.md +265 -0
  6. package/CLAUDE.md.backup +488 -0
  7. package/DEVELOPMENT.md +310 -0
  8. package/dist/claudemd/claudemd-generator.d.ts +38 -3
  9. package/dist/claudemd/claudemd-generator.d.ts.map +1 -1
  10. package/dist/claudemd/claudemd-generator.js +420 -12
  11. package/dist/claudemd/claudemd-generator.js.map +1 -1
  12. package/dist/claudemd/index.d.ts +2 -2
  13. package/dist/claudemd/index.d.ts.map +1 -1
  14. package/dist/claudemd/index.js.map +1 -1
  15. package/dist/claudemd/resume-manager.d.ts.map +1 -1
  16. package/dist/claudemd/resume-manager.js +6 -3
  17. package/dist/claudemd/resume-manager.js.map +1 -1
  18. package/dist/claudemd/tech-detector.d.ts +1 -0
  19. package/dist/claudemd/tech-detector.d.ts.map +1 -1
  20. package/dist/claudemd/tech-detector.js +53 -0
  21. package/dist/claudemd/tech-detector.js.map +1 -1
  22. package/dist/claudemd/templates/swarm-protocol.md +222 -0
  23. package/dist/cli/commands/claudemd.js +2 -2
  24. package/dist/cli/commands/claudemd.js.map +1 -1
  25. package/dist/cli/commands/daemon.d.ts +28 -0
  26. package/dist/cli/commands/daemon.d.ts.map +1 -1
  27. package/dist/cli/commands/daemon.js +204 -12
  28. package/dist/cli/commands/daemon.js.map +1 -1
  29. package/dist/cli/commands/executions.d.ts.map +1 -1
  30. package/dist/cli/commands/executions.js +4 -3
  31. package/dist/cli/commands/executions.js.map +1 -1
  32. package/dist/cli/commands/init.d.ts.map +1 -1
  33. package/dist/cli/commands/init.js +5 -37
  34. package/dist/cli/commands/init.js.map +1 -1
  35. package/dist/cli/commands/logs.js.map +1 -1
  36. package/dist/cli/commands/mcp.d.ts.map +1 -1
  37. package/dist/cli/commands/mcp.js +3 -5
  38. package/dist/cli/commands/mcp.js.map +1 -1
  39. package/dist/cli/commands/menu.d.ts.map +1 -1
  40. package/dist/cli/commands/menu.js +14 -13
  41. package/dist/cli/commands/menu.js.map +1 -1
  42. package/dist/cli/commands/skills.d.ts.map +1 -1
  43. package/dist/cli/commands/skills.js +8 -2
  44. package/dist/cli/commands/skills.js.map +1 -1
  45. package/dist/cli/commands/stats.d.ts.map +1 -1
  46. package/dist/cli/commands/stats.js +2 -20
  47. package/dist/cli/commands/stats.js.map +1 -1
  48. package/dist/cli/commands/status.js +2 -2
  49. package/dist/cli/commands/status.js.map +1 -1
  50. package/dist/cli/commands/trace.d.ts +9 -0
  51. package/dist/cli/commands/trace.d.ts.map +1 -0
  52. package/dist/cli/commands/trace.js +125 -0
  53. package/dist/cli/commands/trace.js.map +1 -0
  54. package/dist/cli/index.js +2 -4
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/cli/init/hook-manager.d.ts.map +1 -1
  57. package/dist/cli/init/hook-manager.js +2 -2
  58. package/dist/cli/init/hook-manager.js.map +1 -1
  59. package/dist/core/ai/provider.d.ts +10 -2
  60. package/dist/core/ai/provider.d.ts.map +1 -1
  61. package/dist/core/ai/provider.js +2 -2
  62. package/dist/core/ai/provider.js.map +1 -1
  63. package/dist/core/ai/types.d.ts +1 -19
  64. package/dist/core/ai/types.d.ts.map +1 -1
  65. package/dist/core/ai/types.js +1 -1
  66. package/dist/core/config.d.ts +2 -1
  67. package/dist/core/config.d.ts.map +1 -1
  68. package/dist/core/config.js +23 -6
  69. package/dist/core/config.js.map +1 -1
  70. package/dist/core/constants.d.ts +14 -3
  71. package/dist/core/constants.d.ts.map +1 -1
  72. package/dist/core/constants.js +17 -3
  73. package/dist/core/constants.js.map +1 -1
  74. package/dist/core/event-fields.d.ts +16 -0
  75. package/dist/core/event-fields.d.ts.map +1 -0
  76. package/dist/core/event-fields.js +19 -0
  77. package/dist/core/event-fields.js.map +1 -0
  78. package/dist/core/queue/index.d.ts +52 -0
  79. package/dist/core/queue/index.d.ts.map +1 -0
  80. package/dist/core/queue/index.js +175 -0
  81. package/dist/core/queue/index.js.map +1 -0
  82. package/dist/core/storage/base.d.ts +66 -0
  83. package/dist/core/storage/base.d.ts.map +1 -0
  84. package/dist/core/storage/base.js +254 -0
  85. package/dist/core/storage/base.js.map +1 -0
  86. package/dist/core/storage/events.d.ts +141 -0
  87. package/dist/core/storage/events.d.ts.map +1 -0
  88. package/dist/core/storage/events.js +348 -0
  89. package/dist/core/storage/events.js.map +1 -0
  90. package/dist/core/storage/injections.d.ts +27 -0
  91. package/dist/core/storage/injections.d.ts.map +1 -0
  92. package/dist/core/storage/injections.js +51 -0
  93. package/dist/core/storage/injections.js.map +1 -0
  94. package/dist/core/storage/maintenance.d.ts +21 -0
  95. package/dist/core/storage/maintenance.d.ts.map +1 -0
  96. package/dist/core/storage/maintenance.js +52 -0
  97. package/dist/core/storage/maintenance.js.map +1 -0
  98. package/dist/core/storage/routing.d.ts +124 -0
  99. package/dist/core/storage/routing.d.ts.map +1 -0
  100. package/dist/core/storage/routing.js +239 -0
  101. package/dist/core/storage/routing.js.map +1 -0
  102. package/dist/core/storage/rows.d.ts +0 -47
  103. package/dist/core/storage/rows.d.ts.map +1 -1
  104. package/dist/core/storage/schema.sql +85 -137
  105. package/dist/core/storage/sessions.d.ts +54 -0
  106. package/dist/core/storage/sessions.d.ts.map +1 -0
  107. package/dist/core/storage/sessions.js +137 -0
  108. package/dist/core/storage/sessions.js.map +1 -0
  109. package/dist/core/storage/skills.d.ts +63 -0
  110. package/dist/core/storage/skills.d.ts.map +1 -0
  111. package/dist/core/storage/skills.js +154 -0
  112. package/dist/core/storage/skills.js.map +1 -0
  113. package/dist/core/storage/sqlite.d.ts +97 -266
  114. package/dist/core/storage/sqlite.d.ts.map +1 -1
  115. package/dist/core/storage/sqlite.js +196 -764
  116. package/dist/core/storage/sqlite.js.map +1 -1
  117. package/dist/core/storage/tasks.d.ts +113 -0
  118. package/dist/core/storage/tasks.d.ts.map +1 -0
  119. package/dist/core/storage/tasks.js +276 -0
  120. package/dist/core/storage/tasks.js.map +1 -0
  121. package/dist/core/storage/token-usage.d.ts +36 -0
  122. package/dist/core/storage/token-usage.d.ts.map +1 -0
  123. package/dist/core/storage/token-usage.js +59 -0
  124. package/dist/core/storage/token-usage.js.map +1 -0
  125. package/dist/core/types.d.ts +83 -6
  126. package/dist/core/types.d.ts.map +1 -1
  127. package/dist/core/types.js +24 -1
  128. package/dist/core/types.js.map +1 -1
  129. package/dist/core/utils/error-handler.d.ts.map +1 -1
  130. package/dist/core/utils/error-handler.js +3 -2
  131. package/dist/core/utils/error-handler.js.map +1 -1
  132. package/dist/core/utils/format.d.ts +28 -0
  133. package/dist/core/utils/format.d.ts.map +1 -0
  134. package/dist/core/utils/format.js +68 -0
  135. package/dist/core/utils/format.js.map +1 -0
  136. package/dist/core/utils/git.d.ts +10 -0
  137. package/dist/core/utils/git.d.ts.map +1 -0
  138. package/dist/core/utils/git.js +24 -0
  139. package/dist/core/utils/git.js.map +1 -0
  140. package/dist/core/utils/logger.d.ts +6 -1
  141. package/dist/core/utils/logger.d.ts.map +1 -1
  142. package/dist/core/utils/logger.js +87 -3
  143. package/dist/core/utils/logger.js.map +1 -1
  144. package/dist/core/utils/lru-cache.d.ts +1 -0
  145. package/dist/core/utils/lru-cache.d.ts.map +1 -1
  146. package/dist/core/utils/lru-cache.js +3 -0
  147. package/dist/core/utils/lru-cache.js.map +1 -1
  148. package/dist/core/utils/session.d.ts +16 -0
  149. package/dist/core/utils/session.d.ts.map +1 -0
  150. package/dist/core/utils/session.js +25 -0
  151. package/dist/core/utils/session.js.map +1 -0
  152. package/dist/core/utils/time.d.ts +22 -0
  153. package/dist/core/utils/time.d.ts.map +1 -0
  154. package/dist/core/utils/time.js +38 -0
  155. package/dist/core/utils/time.js.map +1 -0
  156. package/dist/core/utils/token-tracker.js +1 -1
  157. package/dist/core/utils/token-tracker.js.map +1 -1
  158. package/dist/daemon/event-parser.d.ts.map +1 -1
  159. package/dist/daemon/event-parser.js +2 -1
  160. package/dist/daemon/event-parser.js.map +1 -1
  161. package/dist/daemon/handlers/history-exporter.d.ts.map +1 -1
  162. package/dist/daemon/handlers/history-exporter.js +6 -4
  163. package/dist/daemon/handlers/history-exporter.js.map +1 -1
  164. package/dist/daemon/handlers/post-tool-use.d.ts +5 -12
  165. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  166. package/dist/daemon/handlers/post-tool-use.js +25 -79
  167. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  168. package/dist/daemon/handlers/stop.d.ts +28 -12
  169. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  170. package/dist/daemon/handlers/stop.js +129 -42
  171. package/dist/daemon/handlers/stop.js.map +1 -1
  172. package/dist/daemon/handlers/user-prompt.d.ts +18 -19
  173. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  174. package/dist/daemon/handlers/user-prompt.js +93 -227
  175. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  176. package/dist/daemon/index.d.ts +6 -2
  177. package/dist/daemon/index.d.ts.map +1 -1
  178. package/dist/daemon/index.js +97 -127
  179. package/dist/daemon/index.js.map +1 -1
  180. package/dist/daemon/launchd/com.claude-forge.daemon.plist.template +47 -0
  181. package/dist/daemon/launchd-installer.d.ts +61 -0
  182. package/dist/daemon/launchd-installer.d.ts.map +1 -0
  183. package/dist/daemon/launchd-installer.js +182 -0
  184. package/dist/daemon/launchd-installer.js.map +1 -0
  185. package/dist/daemon/lifecycle.d.ts +11 -0
  186. package/dist/daemon/lifecycle.d.ts.map +1 -1
  187. package/dist/daemon/lifecycle.js +47 -4
  188. package/dist/daemon/lifecycle.js.map +1 -1
  189. package/dist/daemon/router.d.ts +9 -2
  190. package/dist/daemon/router.d.ts.map +1 -1
  191. package/dist/daemon/router.js +27 -3
  192. package/dist/daemon/router.js.map +1 -1
  193. package/dist/daemon/server.d.ts +6 -4
  194. package/dist/daemon/server.d.ts.map +1 -1
  195. package/dist/daemon/server.js +80 -88
  196. package/dist/daemon/server.js.map +1 -1
  197. package/dist/{intelligence → daemon/services}/task-segmenter.d.ts +7 -1
  198. package/dist/daemon/services/task-segmenter.d.ts.map +1 -0
  199. package/dist/{intelligence → daemon/services}/task-segmenter.js +30 -7
  200. package/dist/daemon/services/task-segmenter.js.map +1 -0
  201. package/dist/hooks/hook-lib.sh +118 -0
  202. package/dist/hooks/notification.sh +9 -5
  203. package/dist/hooks/post-tool-use.sh +10 -6
  204. package/dist/hooks/pre-tool-use.sh +9 -6
  205. package/dist/hooks/stop.sh +10 -7
  206. package/dist/hooks/user-prompt-submit.sh +10 -11
  207. package/dist/mcp/server.d.ts +2 -2
  208. package/dist/mcp/server.d.ts.map +1 -1
  209. package/dist/mcp/server.js +71 -11
  210. package/dist/mcp/server.js.map +1 -1
  211. package/dist/skills/invocation-guard.d.ts +20 -0
  212. package/dist/skills/invocation-guard.d.ts.map +1 -1
  213. package/dist/skills/invocation-guard.js +63 -0
  214. package/dist/skills/invocation-guard.js.map +1 -1
  215. package/dist/skills/matcher.d.ts.map +1 -1
  216. package/dist/skills/matcher.js +12 -3
  217. package/dist/skills/matcher.js.map +1 -1
  218. package/dist/skills/official/code-simplifier.md +16 -0
  219. package/dist/skills/official/find-skills.md +23 -0
  220. package/dist/skills/official/official-api-design.md +17 -0
  221. package/dist/skills/official/official-architecture-decision.md +20 -0
  222. package/dist/skills/official/official-bmad.md +118 -0
  223. package/dist/skills/official/official-db-schema-design.md +16 -0
  224. package/dist/skills/official/official-debug.md +17 -0
  225. package/dist/skills/official/official-doc-driven.md +31 -0
  226. package/dist/skills/official/official-harness-engineering.md +108 -0
  227. package/dist/skills/official/official-performance-optimization.md +30 -0
  228. package/dist/skills/official/official-pr-review.md +35 -0
  229. package/dist/skills/official/official-release-checklist.md +30 -0
  230. package/dist/skills/official/official-security-hardening.md +26 -0
  231. package/dist/skills/official/official-spec-driven-design.md +31 -0
  232. package/dist/skills/official/planning-with-files.md +37 -0
  233. package/dist/skills/official/ui-ux-pro-max.md +18 -0
  234. package/dist/skills/official/webapp-testing.md +12 -0
  235. package/dist/skills/official-skills.d.ts +8 -4
  236. package/dist/skills/official-skills.d.ts.map +1 -1
  237. package/dist/skills/official-skills.js +48 -704
  238. package/dist/skills/official-skills.js.map +1 -1
  239. package/dist/skills/registry.d.ts +5 -0
  240. package/dist/skills/registry.d.ts.map +1 -1
  241. package/dist/skills/registry.js +48 -15
  242. package/dist/skills/registry.js.map +1 -1
  243. package/dist/skills/tools/pipeline-suggest.d.ts +30 -0
  244. package/dist/skills/tools/pipeline-suggest.d.ts.map +1 -0
  245. package/dist/skills/tools/pipeline-suggest.js +178 -0
  246. package/dist/skills/tools/pipeline-suggest.js.map +1 -0
  247. package/dist/web/analytics/anti-pattern-detector.d.ts +49 -0
  248. package/dist/web/analytics/anti-pattern-detector.d.ts.map +1 -0
  249. package/dist/web/analytics/anti-pattern-detector.js +318 -0
  250. package/dist/web/analytics/anti-pattern-detector.js.map +1 -0
  251. package/dist/web/analytics/drift-detector.d.ts +64 -0
  252. package/dist/web/analytics/drift-detector.d.ts.map +1 -0
  253. package/dist/web/analytics/drift-detector.js +198 -0
  254. package/dist/web/analytics/drift-detector.js.map +1 -0
  255. package/dist/web/analytics/weekly-report.d.ts +91 -0
  256. package/dist/web/analytics/weekly-report.d.ts.map +1 -0
  257. package/dist/web/analytics/weekly-report.js +328 -0
  258. package/dist/web/analytics/weekly-report.js.map +1 -0
  259. package/dist/web/auth-middleware.d.ts.map +1 -1
  260. package/dist/web/auth-middleware.js +1 -2
  261. package/dist/web/auth-middleware.js.map +1 -1
  262. package/dist/web/routes/_helpers.d.ts +16 -0
  263. package/dist/web/routes/_helpers.d.ts.map +1 -0
  264. package/dist/web/routes/_helpers.js +32 -0
  265. package/dist/web/routes/_helpers.js.map +1 -0
  266. package/dist/web/routes/ai.d.ts.map +1 -1
  267. package/dist/web/routes/ai.js +16 -22
  268. package/dist/web/routes/ai.js.map +1 -1
  269. package/dist/web/routes/drift.d.ts +10 -0
  270. package/dist/web/routes/drift.d.ts.map +1 -0
  271. package/dist/web/routes/drift.js +21 -0
  272. package/dist/web/routes/drift.js.map +1 -0
  273. package/dist/web/routes/error-handler.d.ts +43 -0
  274. package/dist/web/routes/error-handler.d.ts.map +1 -0
  275. package/dist/web/routes/error-handler.js +99 -0
  276. package/dist/web/routes/error-handler.js.map +1 -0
  277. package/dist/web/routes/insights.d.ts +9 -0
  278. package/dist/web/routes/insights.d.ts.map +1 -0
  279. package/dist/web/routes/insights.js +34 -0
  280. package/dist/web/routes/insights.js.map +1 -0
  281. package/dist/web/routes/patch.js +2 -2
  282. package/dist/web/routes/patch.js.map +1 -1
  283. package/dist/web/routes/reports.d.ts +10 -0
  284. package/dist/web/routes/reports.d.ts.map +1 -0
  285. package/dist/web/routes/reports.js +27 -0
  286. package/dist/web/routes/reports.js.map +1 -0
  287. package/dist/web/routes/rules.d.ts +13 -3
  288. package/dist/web/routes/rules.d.ts.map +1 -1
  289. package/dist/web/routes/rules.js +58 -97
  290. package/dist/web/routes/rules.js.map +1 -1
  291. package/dist/web/routes/sessions.d.ts +1 -2
  292. package/dist/web/routes/sessions.d.ts.map +1 -1
  293. package/dist/web/routes/sessions.js +43 -69
  294. package/dist/web/routes/sessions.js.map +1 -1
  295. package/dist/web/routes/skill-stats.d.ts +2 -0
  296. package/dist/web/routes/skill-stats.d.ts.map +1 -1
  297. package/dist/web/routes/skill-stats.js +41 -39
  298. package/dist/web/routes/skill-stats.js.map +1 -1
  299. package/dist/web/routes/skills.d.ts.map +1 -1
  300. package/dist/web/routes/skills.js +39 -4
  301. package/dist/web/routes/skills.js.map +1 -1
  302. package/dist/web/routes/stats.d.ts +11 -0
  303. package/dist/web/routes/stats.d.ts.map +1 -0
  304. package/dist/web/routes/stats.js +42 -0
  305. package/dist/web/routes/stats.js.map +1 -0
  306. package/dist/web/routes/status.js +1 -1
  307. package/dist/web/routes/status.js.map +1 -1
  308. package/dist/web/routes/tasks.d.ts +4 -0
  309. package/dist/web/routes/tasks.d.ts.map +1 -0
  310. package/dist/web/routes/tasks.js +156 -0
  311. package/dist/web/routes/tasks.js.map +1 -0
  312. package/dist/web/routes/trace.d.ts +10 -0
  313. package/dist/web/routes/trace.d.ts.map +1 -0
  314. package/dist/web/routes/trace.js +113 -0
  315. package/dist/web/routes/trace.js.map +1 -0
  316. package/dist/web/routes/types.d.ts +1 -14
  317. package/dist/web/routes/types.d.ts.map +1 -1
  318. package/dist/web/routes/types.js +12 -20
  319. package/dist/web/routes/types.js.map +1 -1
  320. package/dist/web/server.d.ts +1 -9
  321. package/dist/web/server.d.ts.map +1 -1
  322. package/dist/web/server.js +28 -28
  323. package/dist/web/server.js.map +1 -1
  324. package/dist/web/static/assets/AIConfig-CdDWzJyO.js +2 -0
  325. package/dist/web/static/assets/AIConfig-CdDWzJyO.js.map +1 -0
  326. package/dist/web/static/assets/Dashboard-CoEmmIDt.js +2 -0
  327. package/dist/web/static/assets/Dashboard-CoEmmIDt.js.map +1 -0
  328. package/dist/web/static/assets/{Drawer-DcU3ln98.js → Drawer-DdRTzlLB.js} +2 -2
  329. package/dist/web/static/assets/{Drawer-DcU3ln98.js.map → Drawer-DdRTzlLB.js.map} +1 -1
  330. package/dist/web/static/assets/Events-DrIq1SUS.js +2 -0
  331. package/dist/web/static/assets/Events-DrIq1SUS.js.map +1 -0
  332. package/dist/web/static/assets/Reports-DFBM3MDK.js +2 -0
  333. package/dist/web/static/assets/Reports-DFBM3MDK.js.map +1 -0
  334. package/dist/web/static/assets/SearchInput-qCj_jAcf.js +2 -0
  335. package/dist/web/static/assets/SearchInput-qCj_jAcf.js.map +1 -0
  336. package/dist/web/static/assets/SessionDetail-CCzwdoT7.js +2 -0
  337. package/dist/web/static/assets/SessionDetail-CCzwdoT7.js.map +1 -0
  338. package/dist/web/static/assets/Sessions-FfLYkAw9.js +2 -0
  339. package/dist/web/static/assets/Sessions-FfLYkAw9.js.map +1 -0
  340. package/dist/web/static/assets/Skills-C8Gvs3Qa.js +2 -0
  341. package/dist/web/static/assets/Skills-C8Gvs3Qa.js.map +1 -0
  342. package/dist/web/static/assets/TaskDetail-BS8pYhaR.js +2 -0
  343. package/dist/web/static/assets/TaskDetail-BS8pYhaR.js.map +1 -0
  344. package/dist/web/static/assets/Tasks-CyuhizG8.js +2 -0
  345. package/dist/web/static/assets/Tasks-CyuhizG8.js.map +1 -0
  346. package/dist/web/static/assets/export-L_VBD2p1.js +4 -0
  347. package/dist/web/static/assets/export-L_VBD2p1.js.map +1 -0
  348. package/dist/web/static/assets/index-CBX47X8l.js +3 -0
  349. package/dist/web/static/assets/index-CBX47X8l.js.map +1 -0
  350. package/dist/web/static/assets/index-DjIoMdoR.css +1 -0
  351. package/dist/web/static/assets/{lucide-53bR2rki.js → lucide-Bs_edTLa.js} +73 -38
  352. package/dist/web/static/assets/lucide-Bs_edTLa.js.map +1 -0
  353. package/dist/web/static/assets/react-router-r79dBVy4.js +20 -0
  354. package/dist/web/static/assets/{react-router-I-HqunH7.js.map → react-router-r79dBVy4.js.map} +1 -1
  355. package/dist/web/static/assets/task-title-BhOcemuR.js +2 -0
  356. package/dist/web/static/assets/task-title-BhOcemuR.js.map +1 -0
  357. package/dist/web/static/assets/time-Bxuk0M-C.js +2 -0
  358. package/dist/web/static/assets/time-Bxuk0M-C.js.map +1 -0
  359. package/dist/web/static/index.html +4 -4
  360. package/docs/concurrent-agents.md +129 -0
  361. package/docs/design/architecture-review-20260516.md +232 -0
  362. package/docs/design/fix-skills-data-and-set-leak-spec-20260516-1300.md +219 -0
  363. package/docs/design/h1-storage-aggregation-spec-20260518-1121.md +299 -0
  364. package/docs/design/h2-getdatabase-encapsulation-spec-20260518-1450.md +191 -0
  365. package/docs/design/h3-fallback-removal-spec-20260518-1245.md +76 -0
  366. package/docs/design/h4-index-dedup-spec-20260518-1230.md +109 -0
  367. package/docs/design/h6-services-migration-spec-20260518-1355.md +82 -0
  368. package/docs/design/hook-failure-queue-spec-20260516-1530.md +204 -0
  369. package/docs/design/l1-swarm-protocol-extract-spec-20260518-1605.md +106 -0
  370. package/docs/design/m10-forge-paths-spec-20260518-1320.md +121 -0
  371. package/docs/design/m2-m3-tool-input-spec-20260518-1425.md +131 -0
  372. package/docs/design/m7-routing-event-association-spec-20260518-1545.md +103 -0
  373. package/docs/design/project-path-gitroot-spec-20260518-1715.md +134 -0
  374. package/docs/design/refactor-phase1-spec-20260515-1600.md +543 -0
  375. package/docs/design/refactor-phase2-spec-20260515-1700.md +424 -0
  376. package/docs/design/task-active-gc-spec-20260518-1745.md +146 -0
  377. package/docs/design/tasks-list-filter-pagination-spec-20260518-0930.md +208 -0
  378. package/docs/implementation/fix-skills-data-and-set-leak-changelog-20260516-1300.md +104 -0
  379. package/docs/implementation/h1-storage-aggregation-changelog-20260518-1121.md +82 -0
  380. package/docs/implementation/h2-final-changelog-20260518-1530.md +61 -0
  381. package/docs/implementation/h2-phase1-safety-net-changelog-20260518-1450.md +70 -0
  382. package/docs/implementation/h2-phase2-operations-changelog-20260518-1450.md +120 -0
  383. package/docs/implementation/h2-phase3-callsites-changelog-20260518-1450.md +71 -0
  384. package/docs/implementation/h3-fallback-removal-changelog-20260518-1245.md +71 -0
  385. package/docs/implementation/h4-index-dedup-changelog-20260518-1230.md +60 -0
  386. package/docs/implementation/h6-services-migration-changelog-20260518-1355.md +46 -0
  387. package/docs/implementation/h7-m9-defaults-changelog-20260518-1300.md +46 -0
  388. package/docs/implementation/hook-failure-queue-changelog-20260516-1530.md +196 -0
  389. package/docs/implementation/hotfix-daemon-event-reject-20260516-1430.md +56 -0
  390. package/docs/implementation/l1-swarm-protocol-extract-changelog-20260518-1605.md +45 -0
  391. package/docs/implementation/l3-l4-daemon-perf-changelog-20260518-1410.md +63 -0
  392. package/docs/implementation/l6-l8-final-cleanup-changelog-20260518-1640.md +38 -0
  393. package/docs/implementation/m1-m4-m5-l7-cleanup-changelog-20260518-1310.md +58 -0
  394. package/docs/implementation/m10-forge-paths-changelog-20260518-1320.md +60 -0
  395. package/docs/implementation/m2-m3-tool-input-changelog-20260518-1425.md +43 -0
  396. package/docs/implementation/m6-m8-naming-shutdown-changelog-20260518-1340.md +56 -0
  397. package/docs/implementation/m7-routing-association-changelog-20260518-1545.md +69 -0
  398. package/docs/implementation/project-path-gitroot-changelog-20260518-1715.md +63 -0
  399. package/docs/implementation/refactor-phase1-changelog-20260515-1630.md +354 -0
  400. package/docs/implementation/refactor-phase2-changelog-20260515-1705.md +421 -0
  401. package/docs/implementation/task-active-gc-changelog-20260518-1745.md +35 -0
  402. package/docs/implementation/task-title-summary-changelog-20260518-1130.md +39 -0
  403. package/docs/implementation/tasks-detail-back-loses-filters-changelog-20260518-1100.md +22 -0
  404. package/docs/implementation/tasks-list-filter-pagination-changelog-20260518-0930.md +72 -0
  405. package/docs/implementation/tasks-page-white-screen-hotfix-changelog-20260518-1015.md +56 -0
  406. package/docs/reviews/claudemd-template-sync.md +54 -0
  407. package/docs/reviews/task-title-summary.md +92 -0
  408. package/docs/reviews/tasks-detail-back-loses-filters.md +58 -0
  409. package/docs/reviews/tasks-filter-pagination.md +80 -0
  410. package/docs/reviews/tasks-page-white-screen-hotfix.md +126 -0
  411. package/docs/ruflo-learning-strategy.md +322 -0
  412. package/docs/skills-deduplication-analysis.md +83 -0
  413. package/docs/skills-multiformat-support.md +177 -0
  414. package/docs/skills-third-party.md +183 -0
  415. package/docs/testing/tasks-filter-pagination-test-report.md +86 -0
  416. package/forge +321 -0
  417. package/package.json +28 -62
  418. package/playwright.config.ts +40 -0
  419. package/scripts/demo-v2.ts +91 -0
  420. package/scripts/dev-daemon.sh +232 -0
  421. package/scripts/dev-web.ts +109 -0
  422. package/scripts/e2e-mcp-link.ts +423 -0
  423. package/scripts/e2e-methodology-quality.ts +253 -0
  424. package/scripts/e2e-routing.ts +456 -0
  425. package/scripts/e2e-user-methodology.ts +326 -0
  426. package/scripts/e2e-web-workflows.ts +299 -0
  427. package/scripts/migrate-legacy-to-dynamic.sql +108 -0
  428. package/scripts/regenerate-execution-docs.ts +116 -0
  429. package/scripts/sync-agent-skills.ts +193 -0
  430. package/scripts/test-hook.sh +71 -0
  431. package/scripts/verify-skill-loading.ts +62 -0
  432. package/src/claudemd/claudemd-generator.ts +568 -0
  433. package/src/claudemd/convention-extractor.ts +69 -0
  434. package/src/claudemd/index.ts +35 -0
  435. package/src/claudemd/persona-manager.ts +88 -0
  436. package/src/claudemd/resume-manager.ts +236 -0
  437. package/src/claudemd/tech-detector.ts +220 -0
  438. package/src/claudemd/templates/swarm-protocol.md +222 -0
  439. package/src/cli/commands/claudemd.ts +84 -0
  440. package/src/cli/commands/config.ts +46 -0
  441. package/src/cli/commands/daemon.ts +310 -0
  442. package/src/cli/commands/executions.ts +115 -0
  443. package/src/cli/commands/init.ts +204 -0
  444. package/src/cli/commands/logs.ts +181 -0
  445. package/src/cli/commands/mcp.ts +242 -0
  446. package/src/cli/commands/menu.ts +357 -0
  447. package/src/cli/commands/skills.ts +185 -0
  448. package/src/cli/commands/stats.ts +73 -0
  449. package/src/cli/commands/status.ts +69 -0
  450. package/src/cli/commands/template.ts +77 -0
  451. package/src/cli/commands/trace.ts +148 -0
  452. package/src/cli/index.ts +42 -0
  453. package/src/cli/init/hook-manager.ts +132 -0
  454. package/src/core/ai/provider.ts +308 -0
  455. package/src/core/ai/types.ts +51 -0
  456. package/src/core/config.ts +124 -0
  457. package/src/core/constants.ts +62 -0
  458. package/src/core/event-fields.ts +32 -0
  459. package/src/core/queue/index.ts +192 -0
  460. package/src/core/storage/base.ts +302 -0
  461. package/src/core/storage/events.ts +434 -0
  462. package/src/core/storage/injections.ts +78 -0
  463. package/src/core/storage/maintenance.ts +59 -0
  464. package/src/core/storage/migrations/002_add_skill_tracking.sql +6 -0
  465. package/src/core/storage/migrations/003_add_skill_invocations.sql +23 -0
  466. package/src/core/storage/performance-indexes.sql +23 -0
  467. package/src/core/storage/routing.ts +322 -0
  468. package/src/core/storage/rows.ts +112 -0
  469. package/src/core/storage/schema.sql +224 -0
  470. package/src/core/storage/sessions.ts +168 -0
  471. package/src/core/storage/skills.ts +233 -0
  472. package/src/core/storage/sqlite.ts +293 -0
  473. package/src/core/storage/tasks.ts +318 -0
  474. package/src/core/storage/token-usage.ts +93 -0
  475. package/src/core/types.ts +181 -0
  476. package/src/core/utils/error-handler.ts +257 -0
  477. package/src/core/utils/forge-resume-block.ts +74 -0
  478. package/src/core/utils/format.ts +69 -0
  479. package/src/core/utils/git.ts +23 -0
  480. package/src/core/utils/logger.ts +134 -0
  481. package/src/core/utils/lru-cache.ts +54 -0
  482. package/src/core/utils/path.ts +19 -0
  483. package/src/core/utils/session.ts +26 -0
  484. package/src/core/utils/time.ts +37 -0
  485. package/src/core/utils/token-tracker.ts +97 -0
  486. package/src/daemon/event-parser.ts +36 -0
  487. package/src/daemon/handlers/history-exporter.ts +117 -0
  488. package/src/daemon/handlers/post-tool-use.ts +54 -0
  489. package/src/daemon/handlers/stop.ts +208 -0
  490. package/src/daemon/handlers/user-prompt.ts +178 -0
  491. package/src/daemon/index.ts +292 -0
  492. package/src/daemon/launchd/com.claude-forge.daemon.plist.template +47 -0
  493. package/src/daemon/launchd-installer.ts +260 -0
  494. package/src/daemon/lifecycle.ts +128 -0
  495. package/src/daemon/router.ts +40 -0
  496. package/src/daemon/server.ts +196 -0
  497. package/src/daemon/services/task-segmenter.ts +112 -0
  498. package/src/hooks/hook-lib.sh +118 -0
  499. package/src/hooks/notification.sh +35 -0
  500. package/src/hooks/post-tool-use.sh +61 -0
  501. package/src/hooks/pre-tool-use.sh +63 -0
  502. package/src/hooks/stop.sh +43 -0
  503. package/src/hooks/user-prompt-submit.sh +69 -0
  504. package/src/mcp/server.ts +322 -0
  505. package/src/skills/index.ts +2 -0
  506. package/src/skills/invocation-guard.ts +177 -0
  507. package/src/skills/matcher.ts +148 -0
  508. package/src/skills/official/code-simplifier.md +16 -0
  509. package/src/skills/official/find-skills.md +23 -0
  510. package/src/skills/official/official-api-design.md +17 -0
  511. package/src/skills/official/official-architecture-decision.md +20 -0
  512. package/src/skills/official/official-bmad.md +118 -0
  513. package/src/skills/official/official-db-schema-design.md +16 -0
  514. package/src/skills/official/official-debug.md +17 -0
  515. package/src/skills/official/official-doc-driven.md +31 -0
  516. package/src/skills/official/official-harness-engineering.md +108 -0
  517. package/src/skills/official/official-performance-optimization.md +30 -0
  518. package/src/skills/official/official-pr-review.md +35 -0
  519. package/src/skills/official/official-release-checklist.md +30 -0
  520. package/src/skills/official/official-security-hardening.md +26 -0
  521. package/src/skills/official/official-spec-driven-design.md +31 -0
  522. package/src/skills/official/planning-with-files.md +37 -0
  523. package/src/skills/official/ui-ux-pro-max.md +18 -0
  524. package/src/skills/official/webapp-testing.md +12 -0
  525. package/src/skills/official-skills.ts +89 -0
  526. package/src/skills/registry.ts +355 -0
  527. package/src/skills/semantic-matcher.ts +231 -0
  528. package/src/skills/tools/pipeline-suggest.ts +226 -0
  529. package/src/skills/tools/skill-invoke.ts +168 -0
  530. package/src/skills/tools/skill-list.ts +59 -0
  531. package/src/templates/go.yaml +53 -0
  532. package/src/templates/python.yaml +59 -0
  533. package/src/templates/react.yaml +55 -0
  534. package/src/templates/template-manager.ts +170 -0
  535. package/src/web/analytics/anti-pattern-detector.ts +367 -0
  536. package/src/web/analytics/drift-detector.ts +219 -0
  537. package/src/web/analytics/weekly-report.ts +431 -0
  538. package/src/web/auth-middleware.ts +54 -0
  539. package/src/web/routes/_helpers.ts +34 -0
  540. package/src/web/routes/ai.ts +204 -0
  541. package/src/web/routes/auth.ts +22 -0
  542. package/src/web/routes/drift.ts +25 -0
  543. package/src/web/routes/error-handler.ts +120 -0
  544. package/src/web/routes/events.ts +47 -0
  545. package/src/web/routes/insights.ts +43 -0
  546. package/src/web/routes/patch.ts +117 -0
  547. package/src/web/routes/reports.ts +34 -0
  548. package/src/web/routes/rules.ts +76 -0
  549. package/src/web/routes/sessions.ts +250 -0
  550. package/src/web/routes/skill-stats.ts +92 -0
  551. package/src/web/routes/skills.ts +350 -0
  552. package/src/web/routes/static.ts +67 -0
  553. package/src/web/routes/stats.ts +50 -0
  554. package/src/web/routes/status.ts +30 -0
  555. package/src/web/routes/tasks.ts +193 -0
  556. package/src/web/routes/token-usage.ts +20 -0
  557. package/src/web/routes/trace.ts +126 -0
  558. package/src/web/routes/types.ts +57 -0
  559. package/src/web/server.ts +134 -0
  560. package/src/web/ssrf-guard.ts +112 -0
  561. package/src/web/static/index.html +3251 -0
  562. package/src/web/static/vendor/chart.umd.min.js +20 -0
  563. package/tests/e2e/dashboard.spec.ts +205 -0
  564. package/tests/e2e/routing-skill-e2e.test.ts +39 -0
  565. package/tests/helpers/mock-ai.ts +92 -0
  566. package/tests/helpers/mock-storage.ts +159 -0
  567. package/tests/integration/claudemd-generator.test.ts +90 -0
  568. package/tests/integration/queue-replay.integration.test.ts +193 -0
  569. package/tests/integration/tasks-filter.integration.test.ts +154 -0
  570. package/tests/integration/web-analytics.integration.test.ts +133 -0
  571. package/tests/integration/web-stats.integration.test.ts +135 -0
  572. package/tests/integration/web-trace.integration.test.ts +175 -0
  573. package/tests/performance/database.benchmark.ts +161 -0
  574. package/tests/semantic-matcher.test.ts +99 -0
  575. package/tests/skill-matcher.test.ts +110 -0
  576. package/tests/unit/ai-provider-retry.test.ts +194 -0
  577. package/tests/unit/ai-provider-vision.test.ts +224 -0
  578. package/tests/unit/claudemd-generator.test.ts +68 -0
  579. package/tests/unit/cli-mcp.test.ts +141 -0
  580. package/tests/unit/core/forge-paths.test.ts +99 -0
  581. package/tests/unit/daemon/post-tool-use.test.ts +121 -0
  582. package/tests/unit/daemon/stop-handler-behavior-summary.test.ts +202 -0
  583. package/tests/unit/daemon/task-segmenter-recover.test.ts +84 -0
  584. package/tests/unit/event-fields.test.ts +88 -0
  585. package/tests/unit/event-parser.test.ts +55 -0
  586. package/tests/unit/handlers.test.ts +171 -0
  587. package/tests/unit/hooks/resolve-project-path.test.ts +122 -0
  588. package/tests/unit/invocation-guard.test.ts +125 -0
  589. package/tests/unit/queue.test.ts +272 -0
  590. package/tests/unit/router.test.ts +138 -0
  591. package/tests/unit/security.test.ts +128 -0
  592. package/tests/unit/skill-invocations-workflow.test.ts +495 -0
  593. package/tests/unit/skill-registry.test.ts +94 -0
  594. package/tests/unit/skills/invocation-guard-ttl.test.ts +211 -0
  595. package/tests/unit/skills/official-skills-loader.test.ts +126 -0
  596. package/tests/unit/skills/registry-multiformat.test.ts +92 -0
  597. package/tests/unit/socket-server.test.ts +183 -0
  598. package/tests/unit/storage/event-operations-aggregates.test.ts +342 -0
  599. package/tests/unit/storage/migration-idempotent.test.ts +304 -0
  600. package/tests/unit/storage/routing-aggregates.test.ts +276 -0
  601. package/tests/unit/storage/routing.test.ts +117 -0
  602. package/tests/unit/storage/schema-missing.test.ts +81 -0
  603. package/tests/unit/storage/session-operations-aggregates.test.ts +120 -0
  604. package/tests/unit/storage/sessions-aggregate.test.ts +435 -0
  605. package/tests/unit/storage/skill-operations-counts.test.ts +106 -0
  606. package/tests/unit/storage/skills-aggregates.test.ts +104 -0
  607. package/tests/unit/storage/sqlite-refactor-harness.test.ts +314 -0
  608. package/tests/unit/storage/task-operations-counts.test.ts +46 -0
  609. package/tests/unit/storage/tasks-getById.test.ts +343 -0
  610. package/tests/unit/storage/tasks-stale-gc.test.ts +86 -0
  611. package/tests/unit/storage.test.ts +172 -0
  612. package/tests/unit/token-usage.test.ts +144 -0
  613. package/tests/unit/type-guards.test.ts +201 -0
  614. package/tests/unit/utils/format.test.ts +189 -0
  615. package/tests/unit/utils/session.test.ts +89 -0
  616. package/tests/unit/utils/time.test.ts +112 -0
  617. package/tests/unit/web/navigation-back-contract.test.ts +134 -0
  618. package/tests/unit/web/routes-auth.test.ts +93 -0
  619. package/tests/unit/web/routes-events.test.ts +101 -0
  620. package/tests/unit/web/routes-rules.test.ts +182 -0
  621. package/tests/unit/web/routes-sessions.test.ts +181 -0
  622. package/tests/unit/web/routes-skill-stats.test.ts +179 -0
  623. package/tests/unit/web/routes-stats.test.ts +92 -0
  624. package/tests/unit/web/routes-tasks.test.ts +385 -0
  625. package/tests/unit/web/task-title-contract.test.ts +210 -0
  626. package/tests/unit/web/tasks-component-contract.test.ts +179 -0
  627. package/tsconfig.json +22 -0
  628. package/vitest.config.ts +21 -0
  629. package/vitest.integration.config.ts +16 -0
  630. package/web/CLAUDE.md +20 -0
  631. package/web/index.html +13 -0
  632. package/web/package-lock.json +4854 -0
  633. package/web/package.json +35 -0
  634. package/web/postcss.config.js +6 -0
  635. package/web/src/App.tsx +110 -0
  636. package/web/src/components/CodeBlock.tsx +31 -0
  637. package/web/src/components/Confirm.tsx +96 -0
  638. package/web/src/components/Drawer.tsx +60 -0
  639. package/web/src/components/Layout.tsx +145 -0
  640. package/web/src/components/MarkdownRenderer.tsx +77 -0
  641. package/web/src/components/SearchInput.tsx +31 -0
  642. package/web/src/components/SessionDetailContent.tsx +157 -0
  643. package/web/src/components/Toast.tsx +92 -0
  644. package/web/src/index.css +19 -0
  645. package/web/src/main.tsx +31 -0
  646. package/web/src/pages/AIConfig.tsx +233 -0
  647. package/web/src/pages/Dashboard.tsx +572 -0
  648. package/web/src/pages/Events.tsx +271 -0
  649. package/web/src/pages/Reports.tsx +428 -0
  650. package/web/src/pages/SessionDetail.tsx +162 -0
  651. package/web/src/pages/Sessions.tsx +205 -0
  652. package/web/src/pages/Skills.tsx +180 -0
  653. package/web/src/pages/TaskDetail.tsx +515 -0
  654. package/web/src/pages/Tasks.tsx +415 -0
  655. package/web/src/utils/auth.ts +59 -0
  656. package/web/src/utils/export.ts +54 -0
  657. package/web/src/utils/navigation.ts +25 -0
  658. package/web/src/utils/task-title.ts +49 -0
  659. package/web/src/utils/time.ts +13 -0
  660. package/web/tailwind.config.js +11 -0
  661. package/web/tsconfig.json +21 -0
  662. package/web/tsconfig.node.json +10 -0
  663. package/web/vite.config.ts +76 -0
  664. package/winspan-claude-forge-8.43.0.tgz +0 -0
  665. package/dist/agents/definition.d.ts +0 -62
  666. package/dist/agents/definition.d.ts.map +0 -1
  667. package/dist/agents/definition.js +0 -27
  668. package/dist/agents/definition.js.map +0 -1
  669. package/dist/agents/distributor.d.ts +0 -23
  670. package/dist/agents/distributor.d.ts.map +0 -1
  671. package/dist/agents/distributor.js +0 -85
  672. package/dist/agents/distributor.js.map +0 -1
  673. package/dist/agents/index.d.ts +0 -5
  674. package/dist/agents/index.d.ts.map +0 -1
  675. package/dist/agents/index.js +0 -5
  676. package/dist/agents/index.js.map +0 -1
  677. package/dist/agents/methodologies/agent-builder.d.ts +0 -21
  678. package/dist/agents/methodologies/agent-builder.d.ts.map +0 -1
  679. package/dist/agents/methodologies/agent-builder.js +0 -149
  680. package/dist/agents/methodologies/agent-builder.js.map +0 -1
  681. package/dist/agents/methodologies/phases/bmad/analyze.d.ts +0 -3
  682. package/dist/agents/methodologies/phases/bmad/analyze.d.ts.map +0 -1
  683. package/dist/agents/methodologies/phases/bmad/analyze.js +0 -19
  684. package/dist/agents/methodologies/phases/bmad/analyze.js.map +0 -1
  685. package/dist/agents/methodologies/phases/bmad/design.d.ts +0 -3
  686. package/dist/agents/methodologies/phases/bmad/design.d.ts.map +0 -1
  687. package/dist/agents/methodologies/phases/bmad/design.js +0 -18
  688. package/dist/agents/methodologies/phases/bmad/design.js.map +0 -1
  689. package/dist/agents/methodologies/phases/bmad/implement.d.ts +0 -3
  690. package/dist/agents/methodologies/phases/bmad/implement.d.ts.map +0 -1
  691. package/dist/agents/methodologies/phases/bmad/implement.js +0 -17
  692. package/dist/agents/methodologies/phases/bmad/implement.js.map +0 -1
  693. package/dist/agents/methodologies/phases/bmad/index.d.ts +0 -6
  694. package/dist/agents/methodologies/phases/bmad/index.d.ts.map +0 -1
  695. package/dist/agents/methodologies/phases/bmad/index.js +0 -6
  696. package/dist/agents/methodologies/phases/bmad/index.js.map +0 -1
  697. package/dist/agents/methodologies/phases/bmad/review.d.ts +0 -3
  698. package/dist/agents/methodologies/phases/bmad/review.d.ts.map +0 -1
  699. package/dist/agents/methodologies/phases/bmad/review.js +0 -17
  700. package/dist/agents/methodologies/phases/bmad/review.js.map +0 -1
  701. package/dist/agents/methodologies/phases/bmad/test.d.ts +0 -3
  702. package/dist/agents/methodologies/phases/bmad/test.d.ts.map +0 -1
  703. package/dist/agents/methodologies/phases/bmad/test.js +0 -21
  704. package/dist/agents/methodologies/phases/bmad/test.js.map +0 -1
  705. package/dist/agents/methodologies/phases/harness/fix.d.ts +0 -3
  706. package/dist/agents/methodologies/phases/harness/fix.d.ts.map +0 -1
  707. package/dist/agents/methodologies/phases/harness/fix.js +0 -17
  708. package/dist/agents/methodologies/phases/harness/fix.js.map +0 -1
  709. package/dist/agents/methodologies/phases/harness/index.d.ts +0 -6
  710. package/dist/agents/methodologies/phases/harness/index.d.ts.map +0 -1
  711. package/dist/agents/methodologies/phases/harness/index.js +0 -6
  712. package/dist/agents/methodologies/phases/harness/index.js.map +0 -1
  713. package/dist/agents/methodologies/phases/harness/reproduce.d.ts +0 -3
  714. package/dist/agents/methodologies/phases/harness/reproduce.d.ts.map +0 -1
  715. package/dist/agents/methodologies/phases/harness/reproduce.js +0 -20
  716. package/dist/agents/methodologies/phases/harness/reproduce.js.map +0 -1
  717. package/dist/agents/methodologies/phases/harness/root-cause.d.ts +0 -3
  718. package/dist/agents/methodologies/phases/harness/root-cause.d.ts.map +0 -1
  719. package/dist/agents/methodologies/phases/harness/root-cause.js +0 -21
  720. package/dist/agents/methodologies/phases/harness/root-cause.js.map +0 -1
  721. package/dist/agents/methodologies/phases/harness/safety-net.d.ts +0 -3
  722. package/dist/agents/methodologies/phases/harness/safety-net.d.ts.map +0 -1
  723. package/dist/agents/methodologies/phases/harness/safety-net.js +0 -17
  724. package/dist/agents/methodologies/phases/harness/safety-net.js.map +0 -1
  725. package/dist/agents/methodologies/phases/harness/verify.d.ts +0 -3
  726. package/dist/agents/methodologies/phases/harness/verify.d.ts.map +0 -1
  727. package/dist/agents/methodologies/phases/harness/verify.js +0 -22
  728. package/dist/agents/methodologies/phases/harness/verify.js.map +0 -1
  729. package/dist/agents/methodologies/presets.d.ts +0 -10
  730. package/dist/agents/methodologies/presets.d.ts.map +0 -1
  731. package/dist/agents/methodologies/presets.js +0 -79
  732. package/dist/agents/methodologies/presets.js.map +0 -1
  733. package/dist/agents/methodologies/types.d.ts +0 -45
  734. package/dist/agents/methodologies/types.d.ts.map +0 -1
  735. package/dist/agents/methodologies/types.js +0 -10
  736. package/dist/agents/methodologies/types.js.map +0 -1
  737. package/dist/agents/methodologies/user-config-loader.d.ts +0 -30
  738. package/dist/agents/methodologies/user-config-loader.d.ts.map +0 -1
  739. package/dist/agents/methodologies/user-config-loader.js +0 -159
  740. package/dist/agents/methodologies/user-config-loader.js.map +0 -1
  741. package/dist/agents/official-agents.d.ts +0 -4
  742. package/dist/agents/official-agents.d.ts.map +0 -1
  743. package/dist/agents/official-agents.js +0 -559
  744. package/dist/agents/official-agents.js.map +0 -1
  745. package/dist/agents/registry.d.ts +0 -57
  746. package/dist/agents/registry.d.ts.map +0 -1
  747. package/dist/agents/registry.js +0 -271
  748. package/dist/agents/registry.js.map +0 -1
  749. package/dist/capability/index.d.ts +0 -10
  750. package/dist/capability/index.d.ts.map +0 -1
  751. package/dist/capability/index.js +0 -10
  752. package/dist/capability/index.js.map +0 -1
  753. package/dist/capability/types.d.ts +0 -10
  754. package/dist/capability/types.d.ts.map +0 -1
  755. package/dist/capability/types.js +0 -10
  756. package/dist/capability/types.js.map +0 -1
  757. package/dist/cli/commands/agents.d.ts +0 -3
  758. package/dist/cli/commands/agents.d.ts.map +0 -1
  759. package/dist/cli/commands/agents.js +0 -62
  760. package/dist/cli/commands/agents.js.map +0 -1
  761. package/dist/cli/commands/rules.d.ts +0 -8
  762. package/dist/cli/commands/rules.d.ts.map +0 -1
  763. package/dist/cli/commands/rules.js +0 -89
  764. package/dist/cli/commands/rules.js.map +0 -1
  765. package/dist/daemon/auto-disable-scheduler.d.ts +0 -53
  766. package/dist/daemon/auto-disable-scheduler.d.ts.map +0 -1
  767. package/dist/daemon/auto-disable-scheduler.js +0 -114
  768. package/dist/daemon/auto-disable-scheduler.js.map +0 -1
  769. package/dist/daemon/handlers/pre-tool-use.d.ts +0 -39
  770. package/dist/daemon/handlers/pre-tool-use.d.ts.map +0 -1
  771. package/dist/daemon/handlers/pre-tool-use.js +0 -166
  772. package/dist/daemon/handlers/pre-tool-use.js.map +0 -1
  773. package/dist/daemon/routing-observer.d.ts +0 -42
  774. package/dist/daemon/routing-observer.d.ts.map +0 -1
  775. package/dist/daemon/routing-observer.js +0 -264
  776. package/dist/daemon/routing-observer.js.map +0 -1
  777. package/dist/daemon/routing-state.d.ts +0 -64
  778. package/dist/daemon/routing-state.d.ts.map +0 -1
  779. package/dist/daemon/routing-state.js +0 -240
  780. package/dist/daemon/routing-state.js.map +0 -1
  781. package/dist/engine/agent-router.d.ts +0 -142
  782. package/dist/engine/agent-router.d.ts.map +0 -1
  783. package/dist/engine/agent-router.js +0 -276
  784. package/dist/engine/agent-router.js.map +0 -1
  785. package/dist/engine/context-builder.d.ts +0 -23
  786. package/dist/engine/context-builder.d.ts.map +0 -1
  787. package/dist/engine/context-builder.js +0 -63
  788. package/dist/engine/context-builder.js.map +0 -1
  789. package/dist/engine/conventions/basic-security.yaml +0 -109
  790. package/dist/engine/conventions/code-quality.yaml +0 -123
  791. package/dist/engine/conventions/database-safety.yaml +0 -74
  792. package/dist/engine/conventions/dependency-safety.yaml +0 -132
  793. package/dist/engine/conventions/docker-safety.yaml +0 -69
  794. package/dist/engine/conventions/git-safety.yaml +0 -118
  795. package/dist/engine/conventions/go-best-practices.yaml +0 -84
  796. package/dist/engine/conventions/python-best-practices.yaml +0 -96
  797. package/dist/engine/conventions/react-best-practices.yaml +0 -96
  798. package/dist/engine/conventions/routing.yaml +0 -378
  799. package/dist/engine/conventions/strict-security.yaml +0 -30
  800. package/dist/engine/conventions/ts-quality.yaml +0 -49
  801. package/dist/engine/dsl/compiler.d.ts +0 -34
  802. package/dist/engine/dsl/compiler.d.ts.map +0 -1
  803. package/dist/engine/dsl/compiler.js +0 -702
  804. package/dist/engine/dsl/compiler.js.map +0 -1
  805. package/dist/engine/dsl/parser.d.ts +0 -25
  806. package/dist/engine/dsl/parser.d.ts.map +0 -1
  807. package/dist/engine/dsl/parser.js +0 -208
  808. package/dist/engine/dsl/parser.js.map +0 -1
  809. package/dist/engine/dsl/runtime.d.ts +0 -46
  810. package/dist/engine/dsl/runtime.d.ts.map +0 -1
  811. package/dist/engine/dsl/runtime.js +0 -173
  812. package/dist/engine/dsl/runtime.js.map +0 -1
  813. package/dist/engine/dsl/types.d.ts +0 -139
  814. package/dist/engine/dsl/types.d.ts.map +0 -1
  815. package/dist/engine/dsl/types.js +0 -11
  816. package/dist/engine/dsl/types.js.map +0 -1
  817. package/dist/engine/evidence-store.d.ts +0 -44
  818. package/dist/engine/evidence-store.d.ts.map +0 -1
  819. package/dist/engine/evidence-store.js +0 -109
  820. package/dist/engine/evidence-store.js.map +0 -1
  821. package/dist/engine/experiment-router.d.ts +0 -102
  822. package/dist/engine/experiment-router.d.ts.map +0 -1
  823. package/dist/engine/experiment-router.js +0 -289
  824. package/dist/engine/experiment-router.js.map +0 -1
  825. package/dist/engine/recommender.d.ts +0 -52
  826. package/dist/engine/recommender.d.ts.map +0 -1
  827. package/dist/engine/recommender.js +0 -162
  828. package/dist/engine/recommender.js.map +0 -1
  829. package/dist/engine/rule-engine.d.ts +0 -33
  830. package/dist/engine/rule-engine.d.ts.map +0 -1
  831. package/dist/engine/rule-engine.js +0 -250
  832. package/dist/engine/rule-engine.js.map +0 -1
  833. package/dist/engine/security-gates.d.ts +0 -42
  834. package/dist/engine/security-gates.d.ts.map +0 -1
  835. package/dist/engine/security-gates.js +0 -210
  836. package/dist/engine/security-gates.js.map +0 -1
  837. package/dist/intelligence/classifier.d.ts +0 -75
  838. package/dist/intelligence/classifier.d.ts.map +0 -1
  839. package/dist/intelligence/classifier.js +0 -352
  840. package/dist/intelligence/classifier.js.map +0 -1
  841. package/dist/intelligence/context-gatherer.d.ts +0 -101
  842. package/dist/intelligence/context-gatherer.d.ts.map +0 -1
  843. package/dist/intelligence/context-gatherer.js +0 -417
  844. package/dist/intelligence/context-gatherer.js.map +0 -1
  845. package/dist/intelligence/cot-classifier.d.ts +0 -95
  846. package/dist/intelligence/cot-classifier.d.ts.map +0 -1
  847. package/dist/intelligence/cot-classifier.js +0 -391
  848. package/dist/intelligence/cot-classifier.js.map +0 -1
  849. package/dist/intelligence/distiller.d.ts +0 -22
  850. package/dist/intelligence/distiller.d.ts.map +0 -1
  851. package/dist/intelligence/distiller.js +0 -108
  852. package/dist/intelligence/distiller.js.map +0 -1
  853. package/dist/intelligence/execution-doc-builder.d.ts +0 -151
  854. package/dist/intelligence/execution-doc-builder.d.ts.map +0 -1
  855. package/dist/intelligence/execution-doc-builder.js +0 -1018
  856. package/dist/intelligence/execution-doc-builder.js.map +0 -1
  857. package/dist/intelligence/intent-types.d.ts +0 -13
  858. package/dist/intelligence/intent-types.d.ts.map +0 -1
  859. package/dist/intelligence/intent-types.js +0 -19
  860. package/dist/intelligence/intent-types.js.map +0 -1
  861. package/dist/intelligence/multimodal-parser.d.ts +0 -105
  862. package/dist/intelligence/multimodal-parser.d.ts.map +0 -1
  863. package/dist/intelligence/multimodal-parser.js +0 -425
  864. package/dist/intelligence/multimodal-parser.js.map +0 -1
  865. package/dist/intelligence/quality-gate.d.ts +0 -45
  866. package/dist/intelligence/quality-gate.d.ts.map +0 -1
  867. package/dist/intelligence/quality-gate.js +0 -193
  868. package/dist/intelligence/quality-gate.js.map +0 -1
  869. package/dist/intelligence/task-segmenter.d.ts.map +0 -1
  870. package/dist/intelligence/task-segmenter.js.map +0 -1
  871. package/dist/web/routes/agents.d.ts +0 -7
  872. package/dist/web/routes/agents.d.ts.map +0 -1
  873. package/dist/web/routes/agents.js +0 -209
  874. package/dist/web/routes/agents.js.map +0 -1
  875. package/dist/web/routes/execution-trace.d.ts +0 -21
  876. package/dist/web/routes/execution-trace.d.ts.map +0 -1
  877. package/dist/web/routes/execution-trace.js +0 -353
  878. package/dist/web/routes/execution-trace.js.map +0 -1
  879. package/dist/web/routes/experiments.d.ts +0 -15
  880. package/dist/web/routes/experiments.d.ts.map +0 -1
  881. package/dist/web/routes/experiments.js +0 -187
  882. package/dist/web/routes/experiments.js.map +0 -1
  883. package/dist/web/routes/routing.d.ts +0 -17
  884. package/dist/web/routes/routing.d.ts.map +0 -1
  885. package/dist/web/routes/routing.js +0 -592
  886. package/dist/web/routes/routing.js.map +0 -1
  887. package/dist/web/routes/workflows.d.ts +0 -19
  888. package/dist/web/routes/workflows.d.ts.map +0 -1
  889. package/dist/web/routes/workflows.js +0 -86
  890. package/dist/web/routes/workflows.js.map +0 -1
  891. package/dist/web/static/assets/AIConfig-R5wZ3ZKT.js +0 -2
  892. package/dist/web/static/assets/AIConfig-R5wZ3ZKT.js.map +0 -1
  893. package/dist/web/static/assets/Agents-Beg34V1g.js +0 -2
  894. package/dist/web/static/assets/Agents-Beg34V1g.js.map +0 -1
  895. package/dist/web/static/assets/CodeBlock--H53gk46.js +0 -2
  896. package/dist/web/static/assets/CodeBlock--H53gk46.js.map +0 -1
  897. package/dist/web/static/assets/Dashboard-Cy1xsj1J.js +0 -2
  898. package/dist/web/static/assets/Dashboard-Cy1xsj1J.js.map +0 -1
  899. package/dist/web/static/assets/Events-mFhXl4zI.js +0 -2
  900. package/dist/web/static/assets/Events-mFhXl4zI.js.map +0 -1
  901. package/dist/web/static/assets/ExecutionTrace-DG901hLR.js +0 -3
  902. package/dist/web/static/assets/ExecutionTrace-DG901hLR.js.map +0 -1
  903. package/dist/web/static/assets/MarkdownRenderer-CCIz1MOz.js +0 -2
  904. package/dist/web/static/assets/MarkdownRenderer-CCIz1MOz.js.map +0 -1
  905. package/dist/web/static/assets/Routing-B7BFLfjh.js +0 -2
  906. package/dist/web/static/assets/Routing-B7BFLfjh.js.map +0 -1
  907. package/dist/web/static/assets/SessionDetail-BT0l4RrK.js +0 -2
  908. package/dist/web/static/assets/SessionDetail-BT0l4RrK.js.map +0 -1
  909. package/dist/web/static/assets/Sessions-C6J_HQ_u.js +0 -2
  910. package/dist/web/static/assets/Sessions-C6J_HQ_u.js.map +0 -1
  911. package/dist/web/static/assets/Skills-4DQWLaTv.js +0 -2
  912. package/dist/web/static/assets/Skills-4DQWLaTv.js.map +0 -1
  913. package/dist/web/static/assets/WorkflowDetail-zhNqUkBE.js +0 -2
  914. package/dist/web/static/assets/WorkflowDetail-zhNqUkBE.js.map +0 -1
  915. package/dist/web/static/assets/Workflows-Btvi-lGw.js +0 -2
  916. package/dist/web/static/assets/Workflows-Btvi-lGw.js.map +0 -1
  917. package/dist/web/static/assets/export-BQQZLaHV.js +0 -4
  918. package/dist/web/static/assets/export-BQQZLaHV.js.map +0 -1
  919. package/dist/web/static/assets/index-Cgr9qMtq.js +0 -3
  920. package/dist/web/static/assets/index-Cgr9qMtq.js.map +0 -1
  921. package/dist/web/static/assets/index-CngWb5gC.css +0 -1
  922. package/dist/web/static/assets/lucide-53bR2rki.js.map +0 -1
  923. package/dist/web/static/assets/react-router-I-HqunH7.js +0 -20
@@ -1 +0,0 @@
1
- {"version":3,"mappings":"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","names":["sections","LayoutDashboard","MessageSquare","Activity","TrendingUp","GitBranch","Bot","BookOpen","Network","Cpu","Layout","location","useLocation","sidebarOpen","setSidebarOpen","useState","renderNav","onClick","jsx","Fragment","section","jsxs","item","Icon","isActive","Link","clsx","X","Menu","Outlet","Dashboard","lazy","Sessions","SessionDetail","Events","ExecutionTrace","Agents","Skills","Routing","AIConfig","Workflows","WorkflowDetail","PageFallback","App","Routes","Route","Navigate","Suspense","ToastContext","createContext","useToast","ctx","useContext","nextId","ToastProvider","children","toasts","setToasts","remove","useCallback","id","prev","t","show","type","message","value","msg","ToastItem","toast","onClose","icons","CheckCircle","XCircle","AlertCircle","Info","borderColors","ConfirmContext","ConfirmProvider","state","setState","confirm","options","resolve","handleClose","result","variant","_a","iconColor","btnColor","AlertTriangle","queryClient","QueryClient","ReactDOM","React","QueryClientProvider","BrowserRouter"],"ignoreList":[],"sources":["../../src/components/Layout.tsx","../../src/App.tsx","../../src/components/Toast.tsx","../../src/components/Confirm.tsx","../../src/main.tsx"],"sourcesContent":["import { Outlet, Link, useLocation } from 'react-router-dom'\nimport {\n LayoutDashboard,\n MessageSquare,\n Activity,\n Menu,\n X,\n Bot,\n BookOpen,\n Network,\n Cpu,\n TrendingUp,\n GitBranch,\n} from 'lucide-react'\nimport { useState } from 'react'\nimport clsx from 'clsx'\n\ninterface NavItem {\n name: string\n href: string\n icon: any\n}\n\ninterface NavSection {\n title: string\n items: NavItem[]\n}\n\nconst sections: NavSection[] = [\n {\n title: '总览',\n items: [\n { name: '仪表盘', href: '/dashboard', icon: LayoutDashboard },\n ],\n },\n {\n title: '活动',\n items: [\n { name: '会话', href: '/sessions', icon: MessageSquare },\n { name: '事件', href: '/events', icon: Activity },\n { name: '执行追踪', href: '/execution-trace', icon: TrendingUp },\n { name: '工作流进度', href: '/workflows', icon: GitBranch },\n ],\n },\n {\n title: '配置',\n items: [\n { name: 'Agent 管理', href: '/agents', icon: Bot },\n { name: 'Skill 管理', href: '/skills', icon: BookOpen },\n { name: 'Agent 路由', href: '/routing', icon: Network },\n { name: 'AI 配置', href: '/ai-config', icon: Cpu },\n ],\n },\n]\n\nexport default function Layout() {\n const location = useLocation()\n const [sidebarOpen, setSidebarOpen] = useState(false)\n\n const renderNav = (onClick?: () => void) => (\n <>\n {sections.map((section) => (\n <div key={section.title} className=\"mb-4\">\n <div className=\"px-3 py-2 text-xs font-semibold text-gray-400 uppercase tracking-wider\">\n {section.title}\n </div>\n {section.items.map((item) => {\n const Icon = item.icon\n const isActive = location.pathname === item.href || location.pathname.startsWith(item.href + '/')\n return (\n <Link\n key={item.name}\n to={item.href}\n onClick={onClick}\n className={clsx(\n 'group flex items-center px-3 py-2 text-sm font-medium rounded-md mb-0.5',\n isActive\n ? 'bg-indigo-50 text-indigo-600'\n : 'text-gray-700 hover:bg-gray-50'\n )}\n >\n <Icon className={clsx('mr-3 h-4 w-4', isActive ? 'text-indigo-600' : 'text-gray-400')} />\n {item.name}\n </Link>\n )\n })}\n </div>\n ))}\n </>\n )\n\n return (\n <div className=\"min-h-screen bg-gray-50\">\n {/* Mobile sidebar */}\n <div className={clsx('fixed inset-0 z-40 lg:hidden', sidebarOpen ? 'block' : 'hidden')}>\n <div className=\"fixed inset-0 bg-gray-600 bg-opacity-75\" onClick={() => setSidebarOpen(false)} />\n <div className=\"fixed inset-y-0 left-0 flex w-64 flex-col bg-white\">\n <div className=\"flex items-center justify-between px-4 py-4 border-b\">\n <div className=\"flex items-center gap-2\">\n <div className=\"w-8 h-8 rounded-lg bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center text-white font-bold text-sm\">\n CF\n </div>\n <h1 className=\"text-base font-bold text-gray-900\">Claude Forge</h1>\n </div>\n <button onClick={() => setSidebarOpen(false)} className=\"text-gray-500\">\n <X className=\"h-5 w-5\" />\n </button>\n </div>\n <nav className=\"flex-1 overflow-y-auto px-2 py-4\">\n {renderNav(() => setSidebarOpen(false))}\n </nav>\n </div>\n </div>\n\n {/* Desktop sidebar */}\n <div className=\"hidden lg:fixed lg:inset-y-0 lg:flex lg:w-64 lg:flex-col\">\n <div className=\"flex flex-col flex-grow border-r border-gray-200 bg-white\">\n <div className=\"flex items-center gap-2 px-4 py-4 border-b\">\n <div className=\"w-8 h-8 rounded-lg bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center text-white font-bold text-sm\">\n CF\n </div>\n <h1 className=\"text-base font-bold text-gray-900\">Claude Forge</h1>\n </div>\n <nav className=\"flex-1 overflow-y-auto px-2 py-4\">{renderNav()}</nav>\n </div>\n </div>\n\n {/* Main content */}\n <div className=\"lg:pl-64\">\n <div className=\"sticky top-0 z-10 flex h-14 flex-shrink-0 bg-white border-b border-gray-200 lg:hidden\">\n <button\n onClick={() => setSidebarOpen(true)}\n className=\"px-4 text-gray-500 focus:outline-none\"\n >\n <Menu className=\"h-5 w-5\" />\n </button>\n <div className=\"flex flex-1 items-center px-4\">\n <h1 className=\"text-base font-semibold text-gray-900\">Claude Forge</h1>\n </div>\n </div>\n <main className=\"py-6\">\n <div className=\"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8\">\n <Outlet />\n </div>\n </main>\n </div>\n </div>\n )\n}\n","import { lazy, Suspense } from 'react'\nimport { Routes, Route, Navigate } from 'react-router-dom'\nimport Layout from './components/Layout'\n\n// 路由级代码分割:按需加载 page 组件,缩小主 bundle\nconst Dashboard = lazy(() => import('./pages/Dashboard'))\nconst Sessions = lazy(() => import('./pages/Sessions'))\nconst SessionDetail = lazy(() => import('./pages/SessionDetail'))\nconst Events = lazy(() => import('./pages/Events'))\nconst ExecutionTrace = lazy(() => import('./pages/ExecutionTrace'))\nconst Agents = lazy(() => import('./pages/Agents'))\nconst Skills = lazy(() => import('./pages/Skills'))\nconst Routing = lazy(() => import('./pages/Routing'))\nconst AIConfig = lazy(() => import('./pages/AIConfig'))\nconst Workflows = lazy(() => import('./pages/Workflows'))\nconst WorkflowDetail = lazy(() => import('./pages/WorkflowDetail'))\n\nfunction PageFallback() {\n return (\n <div className=\"flex items-center justify-center h-full py-16\">\n <div className=\"flex items-center gap-3 text-sm text-gray-500\">\n <div className=\"w-4 h-4 border-2 border-gray-300 border-t-blue-500 rounded-full animate-spin\" />\n 加载中...\n </div>\n </div>\n )\n}\n\nexport default function App() {\n return (\n <Routes>\n <Route path=\"/\" element={<Layout />}>\n <Route\n index\n element={<Navigate to=\"/dashboard\" replace />}\n />\n <Route\n path=\"dashboard\"\n element={\n <Suspense fallback={<PageFallback />}>\n <Dashboard />\n </Suspense>\n }\n />\n <Route\n path=\"sessions\"\n element={\n <Suspense fallback={<PageFallback />}>\n <Sessions />\n </Suspense>\n }\n />\n <Route\n path=\"sessions/:id\"\n element={\n <Suspense fallback={<PageFallback />}>\n <SessionDetail />\n </Suspense>\n }\n />\n <Route\n path=\"events\"\n element={\n <Suspense fallback={<PageFallback />}>\n <Events />\n </Suspense>\n }\n />\n <Route\n path=\"execution-trace\"\n element={\n <Suspense fallback={<PageFallback />}>\n <ExecutionTrace />\n </Suspense>\n }\n />\n <Route\n path=\"agents\"\n element={\n <Suspense fallback={<PageFallback />}>\n <Agents />\n </Suspense>\n }\n />\n <Route\n path=\"skills\"\n element={\n <Suspense fallback={<PageFallback />}>\n <Skills />\n </Suspense>\n }\n />\n <Route\n path=\"routing\"\n element={\n <Suspense fallback={<PageFallback />}>\n <Routing />\n </Suspense>\n }\n />\n <Route\n path=\"ai-config\"\n element={\n <Suspense fallback={<PageFallback />}>\n <AIConfig />\n </Suspense>\n }\n />\n <Route\n path=\"workflows\"\n element={\n <Suspense fallback={<PageFallback />}>\n <Workflows />\n </Suspense>\n }\n />\n <Route\n path=\"workflows/:routeRequestId\"\n element={\n <Suspense fallback={<PageFallback />}>\n <WorkflowDetail />\n </Suspense>\n }\n />\n </Route>\n </Routes>\n )\n}\n","import { createContext, useContext, useState, useCallback, ReactNode } from 'react'\nimport { CheckCircle, XCircle, AlertCircle, Info, X } from 'lucide-react'\nimport clsx from 'clsx'\n\ntype ToastType = 'success' | 'error' | 'warning' | 'info'\n\ninterface Toast {\n id: number\n type: ToastType\n message: string\n}\n\ninterface ToastContextValue {\n show: (type: ToastType, message: string) => void\n success: (message: string) => void\n error: (message: string) => void\n warning: (message: string) => void\n info: (message: string) => void\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null)\n\nexport function useToast() {\n const ctx = useContext(ToastContext)\n if (!ctx) throw new Error('useToast must be used within ToastProvider')\n return ctx\n}\n\nlet nextId = 1\n\nexport function ToastProvider({ children }: { children: ReactNode }) {\n const [toasts, setToasts] = useState<Toast[]>([])\n\n const remove = useCallback((id: number) => {\n setToasts(prev => prev.filter(t => t.id !== id))\n }, [])\n\n const show = useCallback((type: ToastType, message: string) => {\n const id = nextId++\n setToasts(prev => [...prev, { id, type, message }])\n setTimeout(() => remove(id), 4000)\n }, [remove])\n\n const value: ToastContextValue = {\n show,\n success: (msg) => show('success', msg),\n error: (msg) => show('error', msg),\n warning: (msg) => show('warning', msg),\n info: (msg) => show('info', msg),\n }\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n <div className=\"fixed top-4 right-4 z-[9999] space-y-2 max-w-md\">\n {toasts.map(t => (\n <ToastItem key={t.id} toast={t} onClose={() => remove(t.id)} />\n ))}\n </div>\n </ToastContext.Provider>\n )\n}\n\nfunction ToastItem({ toast, onClose }: { toast: Toast; onClose: () => void }) {\n const icons = {\n success: <CheckCircle className=\"h-5 w-5 text-green-500\" />,\n error: <XCircle className=\"h-5 w-5 text-red-500\" />,\n warning: <AlertCircle className=\"h-5 w-5 text-yellow-500\" />,\n info: <Info className=\"h-5 w-5 text-blue-500\" />,\n }\n const borderColors = {\n success: 'border-green-200',\n error: 'border-red-200',\n warning: 'border-yellow-200',\n info: 'border-blue-200',\n }\n\n return (\n <div\n className={clsx(\n 'bg-white shadow-lg rounded-lg border px-4 py-3 flex items-start gap-3 animate-in slide-in-from-right',\n borderColors[toast.type]\n )}\n >\n {icons[toast.type]}\n <div className=\"flex-1 text-sm text-gray-800\">{toast.message}</div>\n <button onClick={onClose} className=\"text-gray-400 hover:text-gray-600\">\n <X className=\"h-4 w-4\" />\n </button>\n </div>\n )\n}\n","import { createContext, useContext, useState, useCallback, ReactNode } from 'react'\nimport { AlertTriangle } from 'lucide-react'\n\ninterface ConfirmOptions {\n title: string\n message: string\n confirmText?: string\n cancelText?: string\n variant?: 'danger' | 'warning' | 'info'\n}\n\ninterface ConfirmContextValue {\n confirm: (options: ConfirmOptions) => Promise<boolean>\n}\n\nconst ConfirmContext = createContext<ConfirmContextValue | null>(null)\n\nexport function useConfirm() {\n const ctx = useContext(ConfirmContext)\n if (!ctx) throw new Error('useConfirm must be used within ConfirmProvider')\n return ctx.confirm\n}\n\nexport function ConfirmProvider({ children }: { children: ReactNode }) {\n const [state, setState] = useState<{\n open: boolean\n options: ConfirmOptions | null\n resolve: ((value: boolean) => void) | null\n }>({ open: false, options: null, resolve: null })\n\n const confirm = useCallback((options: ConfirmOptions): Promise<boolean> => {\n return new Promise((resolve) => {\n setState({ open: true, options, resolve })\n })\n }, [])\n\n const handleClose = (result: boolean) => {\n if (state.resolve) state.resolve(result)\n setState({ open: false, options: null, resolve: null })\n }\n\n const variant = state.options?.variant || 'danger'\n const iconColor = {\n danger: 'text-red-600',\n warning: 'text-yellow-600',\n info: 'text-blue-600',\n }[variant]\n const btnColor = {\n danger: 'bg-red-600 hover:bg-red-700',\n warning: 'bg-yellow-600 hover:bg-yellow-700',\n info: 'bg-indigo-600 hover:bg-indigo-700',\n }[variant]\n\n return (\n <ConfirmContext.Provider value={{ confirm }}>\n {children}\n {state.open && state.options && (\n <div className=\"fixed inset-0 z-[9999] flex items-center justify-center\">\n <div\n className=\"absolute inset-0 bg-black bg-opacity-50\"\n onClick={() => handleClose(false)}\n />\n <div className=\"relative bg-white rounded-lg shadow-xl max-w-md w-full mx-4 p-6\">\n <div className=\"flex items-start gap-4\">\n <div className={`flex-shrink-0 ${iconColor}`}>\n <AlertTriangle className=\"h-6 w-6\" />\n </div>\n <div className=\"flex-1\">\n <h3 className=\"text-lg font-semibold text-gray-900 mb-2\">\n {state.options.title}\n </h3>\n <p className=\"text-sm text-gray-600 whitespace-pre-wrap\">\n {state.options.message}\n </p>\n </div>\n </div>\n <div className=\"flex justify-end gap-2 mt-6\">\n <button\n onClick={() => handleClose(false)}\n className=\"px-4 py-2 text-sm text-gray-700 bg-white border border-gray-300 rounded hover:bg-gray-50\"\n >\n {state.options.cancelText || '取消'}\n </button>\n <button\n onClick={() => handleClose(true)}\n className={`px-4 py-2 text-sm text-white rounded ${btnColor}`}\n >\n {state.options.confirmText || '确定'}\n </button>\n </div>\n </div>\n </div>\n )}\n </ConfirmContext.Provider>\n )\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport { BrowserRouter } from 'react-router-dom'\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport App from './App'\nimport { ToastProvider } from './components/Toast'\nimport { ConfirmProvider } from './components/Confirm'\nimport './index.css'\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n retry: 1,\n },\n },\n})\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n <React.StrictMode>\n <QueryClientProvider client={queryClient}>\n <ToastProvider>\n <ConfirmProvider>\n <BrowserRouter>\n <App />\n </BrowserRouter>\n </ConfirmProvider>\n </ToastProvider>\n </QueryClientProvider>\n </React.StrictMode>,\n)\n"],"file":"assets/index-Cgr9qMtq.js"}
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.left-0{left:0}.left-2\.5{left:.625rem}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-8{height:2rem}.h-full{height:100%}.max-h-\[500px\]{max-height:500px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[600px\]{width:600px}.w-\[800px\]{width:800px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-2{row-gap:.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-indigo-200{--tw-border-opacity: 1;border-color:rgb(199 210 254 / var(--tw-border-opacity, 1))}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-t-blue-500{--tw-border-opacity: 1;border-top-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-600{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.bg-opacity-0{--tw-bg-opacity: 0}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-75{--tw-bg-opacity: .75}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.p-1{padding:.25rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-8{padding-right:2rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tracking-wider{letter-spacing:.05em}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-700:hover{--tw-bg-opacity: 1;background-color:rgb(161 98 7 / var(--tw-bg-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-indigo-700:hover{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-indigo-500:focus{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.disabled\:bg-gray-400:disabled{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.disabled\:bg-gray-50:disabled{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.disabled\:text-gray-400:disabled{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width: 640px){.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:fixed{position:fixed}.lg\:inset-y-0{top:0;bottom:0}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-64{width:16rem}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-col{flex-direction:column}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pl-64{padding-left:16rem}}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lucide-53bR2rki.js","sources":["../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/Icon.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/activity.js","../../node_modules/lucide-react/dist/esm/icons/arrow-left.js","../../node_modules/lucide-react/dist/esm/icons/book-open.js","../../node_modules/lucide-react/dist/esm/icons/bot.js","../../node_modules/lucide-react/dist/esm/icons/circle-alert.js","../../node_modules/lucide-react/dist/esm/icons/circle-check-big.js","../../node_modules/lucide-react/dist/esm/icons/circle-check.js","../../node_modules/lucide-react/dist/esm/icons/circle-x.js","../../node_modules/lucide-react/dist/esm/icons/clock.js","../../node_modules/lucide-react/dist/esm/icons/cpu.js","../../node_modules/lucide-react/dist/esm/icons/download.js","../../node_modules/lucide-react/dist/esm/icons/eye-off.js","../../node_modules/lucide-react/dist/esm/icons/eye.js","../../node_modules/lucide-react/dist/esm/icons/file-code.js","../../node_modules/lucide-react/dist/esm/icons/file-pen.js","../../node_modules/lucide-react/dist/esm/icons/file-text.js","../../node_modules/lucide-react/dist/esm/icons/filter.js","../../node_modules/lucide-react/dist/esm/icons/git-branch.js","../../node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js","../../node_modules/lucide-react/dist/esm/icons/info.js","../../node_modules/lucide-react/dist/esm/icons/layout-dashboard.js","../../node_modules/lucide-react/dist/esm/icons/loader-circle.js","../../node_modules/lucide-react/dist/esm/icons/menu.js","../../node_modules/lucide-react/dist/esm/icons/message-square.js","../../node_modules/lucide-react/dist/esm/icons/network.js","../../node_modules/lucide-react/dist/esm/icons/pen.js","../../node_modules/lucide-react/dist/esm/icons/save.js","../../node_modules/lucide-react/dist/esm/icons/search.js","../../node_modules/lucide-react/dist/esm/icons/terminal.js","../../node_modules/lucide-react/dist/esm/icons/trending-up.js","../../node_modules/lucide-react/dist/esm/icons/triangle-alert.js","../../node_modules/lucide-react/dist/esm/icons/wifi-off.js","../../node_modules/lucide-react/dist/esm/icons/wifi.js","../../node_modules/lucide-react/dist/esm/icons/x.js","../../node_modules/lucide-react/dist/esm/icons/zap.js"],"sourcesContent":["/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n}).join(\" \");\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Activity = createLucideIcon(\"Activity\", [\n [\n \"path\",\n {\n d: \"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\",\n key: \"169zse\"\n }\n ]\n]);\n\nexport { Activity as default };\n//# sourceMappingURL=activity.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ArrowLeft = createLucideIcon(\"ArrowLeft\", [\n [\"path\", { d: \"m12 19-7-7 7-7\", key: \"1l729n\" }],\n [\"path\", { d: \"M19 12H5\", key: \"x3x0zl\" }]\n]);\n\nexport { ArrowLeft as default };\n//# sourceMappingURL=arrow-left.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst BookOpen = createLucideIcon(\"BookOpen\", [\n [\"path\", { d: \"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\", key: \"vv98re\" }],\n [\"path\", { d: \"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\", key: \"1cyq3y\" }]\n]);\n\nexport { BookOpen as default };\n//# sourceMappingURL=book-open.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Bot = createLucideIcon(\"Bot\", [\n [\"path\", { d: \"M12 8V4H8\", key: \"hb8ula\" }],\n [\"rect\", { width: \"16\", height: \"12\", x: \"4\", y: \"8\", rx: \"2\", key: \"enze0r\" }],\n [\"path\", { d: \"M2 14h2\", key: \"vft8re\" }],\n [\"path\", { d: \"M20 14h2\", key: \"4cs60a\" }],\n [\"path\", { d: \"M15 13v2\", key: \"1xurst\" }],\n [\"path\", { d: \"M9 13v2\", key: \"rq6x2g\" }]\n]);\n\nexport { Bot as default };\n//# sourceMappingURL=bot.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleAlert = createLucideIcon(\"CircleAlert\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n]);\n\nexport { CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleCheckBig = createLucideIcon(\"CircleCheckBig\", [\n [\"path\", { d: \"M22 11.08V12a10 10 0 1 1-5.93-9.14\", key: \"g774vq\" }],\n [\"path\", { d: \"m9 11 3 3L22 4\", key: \"1pflzl\" }]\n]);\n\nexport { CircleCheckBig as default };\n//# sourceMappingURL=circle-check-big.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleCheck = createLucideIcon(\"CircleCheck\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n]);\n\nexport { CircleCheck as default };\n//# sourceMappingURL=circle-check.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleX = createLucideIcon(\"CircleX\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m15 9-6 6\", key: \"1uzhvr\" }],\n [\"path\", { d: \"m9 9 6 6\", key: \"z0biqf\" }]\n]);\n\nexport { CircleX as default };\n//# sourceMappingURL=circle-x.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Clock = createLucideIcon(\"Clock\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"polyline\", { points: \"12 6 12 12 16 14\", key: \"68esgv\" }]\n]);\n\nexport { Clock as default };\n//# sourceMappingURL=clock.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Cpu = createLucideIcon(\"Cpu\", [\n [\"rect\", { width: \"16\", height: \"16\", x: \"4\", y: \"4\", rx: \"2\", key: \"14l7u7\" }],\n [\"rect\", { width: \"6\", height: \"6\", x: \"9\", y: \"9\", rx: \"1\", key: \"5aljv4\" }],\n [\"path\", { d: \"M15 2v2\", key: \"13l42r\" }],\n [\"path\", { d: \"M15 20v2\", key: \"15mkzm\" }],\n [\"path\", { d: \"M2 15h2\", key: \"1gxd5l\" }],\n [\"path\", { d: \"M2 9h2\", key: \"1bbxkp\" }],\n [\"path\", { d: \"M20 15h2\", key: \"19e6y8\" }],\n [\"path\", { d: \"M20 9h2\", key: \"19tzq7\" }],\n [\"path\", { d: \"M9 2v2\", key: \"165o2o\" }],\n [\"path\", { d: \"M9 20v2\", key: \"i2bqo8\" }]\n]);\n\nexport { Cpu as default };\n//# sourceMappingURL=cpu.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Download = createLucideIcon(\"Download\", [\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n [\"polyline\", { points: \"7 10 12 15 17 10\", key: \"2ggqvy\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"15\", y2: \"3\", key: \"1vk2je\" }]\n]);\n\nexport { Download as default };\n//# sourceMappingURL=download.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst EyeOff = createLucideIcon(\"EyeOff\", [\n [\"path\", { d: \"M9.88 9.88a3 3 0 1 0 4.24 4.24\", key: \"1jxqfv\" }],\n [\n \"path\",\n {\n d: \"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\",\n key: \"9wicm4\"\n }\n ],\n [\n \"path\",\n { d: \"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\", key: \"1jreej\" }\n ],\n [\"line\", { x1: \"2\", x2: \"22\", y1: \"2\", y2: \"22\", key: \"a6p6uj\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Eye = createLucideIcon(\"Eye\", [\n [\"path\", { d: \"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\", key: \"rwhkz3\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileCode = createLucideIcon(\"FileCode\", [\n [\"path\", { d: \"M10 12.5 8 15l2 2.5\", key: \"1tg20x\" }],\n [\"path\", { d: \"m14 12.5 2 2.5-2 2.5\", key: \"yinavb\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z\", key: \"1mlx9k\" }]\n]);\n\nexport { FileCode as default };\n//# sourceMappingURL=file-code.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FilePen = createLucideIcon(\"FilePen\", [\n [\"path\", { d: \"M12 22h6a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v10\", key: \"x7tsz2\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10.4 12.6a2 2 0 1 1 3 3L8 21l-4 1 1-4Z\", key: \"o3xyfb\" }]\n]);\n\nexport { FilePen as default };\n//# sourceMappingURL=file-pen.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileText = createLucideIcon(\"FileText\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n]);\n\nexport { FileText as default };\n//# sourceMappingURL=file-text.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\"polygon\", { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst GitBranch = createLucideIcon(\"GitBranch\", [\n [\"line\", { x1: \"6\", x2: \"6\", y1: \"3\", y2: \"15\", key: \"17qcm7\" }],\n [\"circle\", { cx: \"18\", cy: \"6\", r: \"3\", key: \"1h7g24\" }],\n [\"circle\", { cx: \"6\", cy: \"18\", r: \"3\", key: \"fqmcym\" }],\n [\"path\", { d: \"M18 9a9 9 0 0 1-9 9\", key: \"n2h4wq\" }]\n]);\n\nexport { GitBranch as default };\n//# sourceMappingURL=git-branch.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst GitCommitHorizontal = createLucideIcon(\"GitCommitHorizontal\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }],\n [\"line\", { x1: \"3\", x2: \"9\", y1: \"12\", y2: \"12\", key: \"1dyftd\" }],\n [\"line\", { x1: \"15\", x2: \"21\", y1: \"12\", y2: \"12\", key: \"oup4p8\" }]\n]);\n\nexport { GitCommitHorizontal as default };\n//# sourceMappingURL=git-commit-horizontal.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Info = createLucideIcon(\"Info\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n]);\n\nexport { Info as default };\n//# sourceMappingURL=info.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst LayoutDashboard = createLucideIcon(\"LayoutDashboard\", [\n [\"rect\", { width: \"7\", height: \"9\", x: \"3\", y: \"3\", rx: \"1\", key: \"10lvy0\" }],\n [\"rect\", { width: \"7\", height: \"5\", x: \"14\", y: \"3\", rx: \"1\", key: \"16une8\" }],\n [\"rect\", { width: \"7\", height: \"9\", x: \"14\", y: \"12\", rx: \"1\", key: \"1hutg5\" }],\n [\"rect\", { width: \"7\", height: \"5\", x: \"3\", y: \"16\", rx: \"1\", key: \"ldoo1y\" }]\n]);\n\nexport { LayoutDashboard as default };\n//# sourceMappingURL=layout-dashboard.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst LoaderCircle = createLucideIcon(\"LoaderCircle\", [\n [\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]\n]);\n\nexport { LoaderCircle as default };\n//# sourceMappingURL=loader-circle.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Menu = createLucideIcon(\"Menu\", [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"12\", y2: \"12\", key: \"1e0a9i\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"6\", y2: \"6\", key: \"1owob3\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"18\", y2: \"18\", key: \"yk5zj1\" }]\n]);\n\nexport { Menu as default };\n//# sourceMappingURL=menu.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MessageSquare = createLucideIcon(\"MessageSquare\", [\n [\"path\", { d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\", key: \"1lielz\" }]\n]);\n\nexport { MessageSquare as default };\n//# sourceMappingURL=message-square.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Network = createLucideIcon(\"Network\", [\n [\"rect\", { x: \"16\", y: \"16\", width: \"6\", height: \"6\", rx: \"1\", key: \"4q2zg0\" }],\n [\"rect\", { x: \"2\", y: \"16\", width: \"6\", height: \"6\", rx: \"1\", key: \"8cvhb9\" }],\n [\"rect\", { x: \"9\", y: \"2\", width: \"6\", height: \"6\", rx: \"1\", key: \"1egb70\" }],\n [\"path\", { d: \"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\", key: \"1jsf9p\" }],\n [\"path\", { d: \"M12 12V8\", key: \"2874zd\" }]\n]);\n\nexport { Network as default };\n//# sourceMappingURL=network.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Pen = createLucideIcon(\"Pen\", [\n [\"path\", { d: \"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\", key: \"5qss01\" }]\n]);\n\nexport { Pen as default };\n//# sourceMappingURL=pen.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Save = createLucideIcon(\"Save\", [\n [\n \"path\",\n {\n d: \"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\",\n key: \"1c8476\"\n }\n ],\n [\"path\", { d: \"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\", key: \"1ydtos\" }],\n [\"path\", { d: \"M7 3v4a1 1 0 0 0 1 1h7\", key: \"t51u73\" }]\n]);\n\nexport { Save as default };\n//# sourceMappingURL=save.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Search = createLucideIcon(\"Search\", [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n]);\n\nexport { Search as default };\n//# sourceMappingURL=search.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Terminal = createLucideIcon(\"Terminal\", [\n [\"polyline\", { points: \"4 17 10 11 4 5\", key: \"akl6gq\" }],\n [\"line\", { x1: \"12\", x2: \"20\", y1: \"19\", y2: \"19\", key: \"q2wloq\" }]\n]);\n\nexport { Terminal as default };\n//# sourceMappingURL=terminal.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TrendingUp = createLucideIcon(\"TrendingUp\", [\n [\"polyline\", { points: \"22 7 13.5 15.5 8.5 10.5 2 17\", key: \"126l90\" }],\n [\"polyline\", { points: \"16 7 22 7 22 13\", key: \"kwv8wd\" }]\n]);\n\nexport { TrendingUp as default };\n//# sourceMappingURL=trending-up.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TriangleAlert = createLucideIcon(\"TriangleAlert\", [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst WifiOff = createLucideIcon(\"WifiOff\", [\n [\"path\", { d: \"M12 20h.01\", key: \"zekei9\" }],\n [\"path\", { d: \"M8.5 16.429a5 5 0 0 1 7 0\", key: \"1bycff\" }],\n [\"path\", { d: \"M5 12.859a10 10 0 0 1 5.17-2.69\", key: \"1dl1wf\" }],\n [\"path\", { d: \"M19 12.859a10 10 0 0 0-2.007-1.523\", key: \"4k23kn\" }],\n [\"path\", { d: \"M2 8.82a15 15 0 0 1 4.177-2.643\", key: \"1grhjp\" }],\n [\"path\", { d: \"M22 8.82a15 15 0 0 0-11.288-3.764\", key: \"z3jwby\" }],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n]);\n\nexport { WifiOff as default };\n//# sourceMappingURL=wifi-off.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Wifi = createLucideIcon(\"Wifi\", [\n [\"path\", { d: \"M12 20h.01\", key: \"zekei9\" }],\n [\"path\", { d: \"M2 8.82a15 15 0 0 1 20 0\", key: \"dnpr2z\" }],\n [\"path\", { d: \"M5 12.859a10 10 0 0 1 14 0\", key: \"1x1e6c\" }],\n [\"path\", { d: \"M8.5 16.429a5 5 0 0 1 7 0\", key: \"1bycff\" }]\n]);\n\nexport { Wifi as default };\n//# sourceMappingURL=wifi.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst X = createLucideIcon(\"X\", [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n]);\n\nexport { X as default };\n//# sourceMappingURL=x.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Zap = createLucideIcon(\"Zap\", [\n [\n \"path\",\n {\n d: \"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\",\n key: \"1xq2db\"\n }\n ]\n]);\n\nexport { Zap as default };\n//# sourceMappingURL=zap.js.map\n"],"names":["toKebabCase","string","mergeClasses","classes","className","index","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","props","Activity","ArrowLeft","BookOpen","Bot","CircleAlert","CircleCheckBig","CircleCheck","CircleX","Clock","Cpu","Download","EyeOff","Eye","FileCode","FilePen","FileText","Filter","GitBranch","GitCommitHorizontal","Info","LayoutDashboard","LoaderCircle","Menu","MessageSquare","Network","Pen","Save","Search","Terminal","TrendingUp","TriangleAlert","WifiOff","Wifi","X","Zap"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]}
@@ -1,20 +0,0 @@
1
- import{r as a,R as Y}from"./react-vendor-CSp-GLFF.js";import{i as v,g as T,r as _,j as N,A as z,p as V,s as W,m as Z,a as H,c as F,b as ee}from"./vendor-CMMjVdZs.js";/**
2
- * React Router v6.30.3
3
- *
4
- * Copyright (c) Remix Software Inc.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */function P(){return P=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},P.apply(this,arguments)}const k=a.createContext(null),te=a.createContext(null),y=a.createContext(null),L=a.createContext(null),E=a.createContext({outlet:null,matches:[],isDataRoute:!1}),A=a.createContext(null);function re(e,t){let{relative:n}=t===void 0?{}:t;R()||v(!1);let{basename:r,navigator:l}=a.useContext(y),{hash:s,pathname:o,search:d}=G(e,{relative:n}),f=o;return r!=="/"&&(f=o==="/"?r:N([r,o])),l.createHref({pathname:f,search:d,hash:s})}function R(){return a.useContext(L)!=null}function w(){return R()||v(!1),a.useContext(L).location}function K(e){a.useContext(y).static||a.useLayoutEffect(e)}function $(){let{isDataRoute:e}=a.useContext(E);return e?ge():ne()}function ne(){R()||v(!1);let e=a.useContext(k),{basename:t,future:n,navigator:r}=a.useContext(y),{matches:l}=a.useContext(E),{pathname:s}=w(),o=JSON.stringify(T(l,n.v7_relativeSplatPath)),d=a.useRef(!1);return K(()=>{d.current=!0}),a.useCallback(function(c,u){if(u===void 0&&(u={}),!d.current)return;if(typeof c=="number"){r.go(c);return}let i=_(c,JSON.parse(o),s,u.relative==="path");e==null&&t!=="/"&&(i.pathname=i.pathname==="/"?t:N([t,i.pathname])),(u.replace?r.replace:r.push)(i,u.state,u)},[t,r,o,s,e])}const ae=a.createContext(null);function oe(e){let t=a.useContext(E).outlet;return t&&a.createElement(ae.Provider,{value:e},t)}function _e(){let{matches:e}=a.useContext(E),t=e[e.length-1];return t?t.params:{}}function G(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=a.useContext(y),{matches:l}=a.useContext(E),{pathname:s}=w(),o=JSON.stringify(T(l,r.v7_relativeSplatPath));return a.useMemo(()=>_(e,JSON.parse(o),s,n==="path"),[e,o,s,n])}function le(e,t){return ie(e,t)}function ie(e,t,n,r){R()||v(!1);let{navigator:l}=a.useContext(y),{matches:s}=a.useContext(E),o=s[s.length-1],d=o?o.params:{};o&&o.pathname;let f=o?o.pathnameBase:"/";o&&o.route;let c=w(),u;if(t){var i;let h=typeof t=="string"?V(t):t;f==="/"||(i=h.pathname)!=null&&i.startsWith(f)||v(!1),u=h}else u=c;let p=u.pathname||"/",m=p;if(f!=="/"){let h=f.replace(/^\//,"").split("/");m="/"+p.replace(/^\//,"").split("/").slice(h.length).join("/")}let g=Z(e,{pathname:m}),x=de(g&&g.map(h=>Object.assign({},h,{params:Object.assign({},d,h.params),pathname:N([f,l.encodeLocation?l.encodeLocation(h.pathname).pathname:h.pathname]),pathnameBase:h.pathnameBase==="/"?f:N([f,l.encodeLocation?l.encodeLocation(h.pathnameBase).pathname:h.pathnameBase])})),s,n,r);return t&&x?a.createElement(L.Provider,{value:{location:P({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:z.Pop}},x):x}function se(){let e=me(),t=H(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return a.createElement(a.Fragment,null,a.createElement("h2",null,"Unexpected Application Error!"),a.createElement("h3",{style:{fontStyle:"italic"}},t),n?a.createElement("pre",{style:l},n):null,null)}const ue=a.createElement(se,null);class ce extends a.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?a.createElement(E.Provider,{value:this.props.routeContext},a.createElement(A.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function fe(e){let{routeContext:t,match:n,children:r}=e,l=a.useContext(k);return l&&l.static&&l.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=n.route.id),a.createElement(E.Provider,{value:t},r)}function de(e,t,n,r){var l;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var s;if(!n)return null;if(n.errors)e=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,d=(l=n)==null?void 0:l.errors;if(d!=null){let u=o.findIndex(i=>i.route.id&&(d==null?void 0:d[i.route.id])!==void 0);u>=0||v(!1),o=o.slice(0,Math.min(o.length,u+1))}let f=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let u=0;u<o.length;u++){let i=o[u];if((i.route.HydrateFallback||i.route.hydrateFallbackElement)&&(c=u),i.route.id){let{loaderData:p,errors:m}=n,g=i.route.loader&&p[i.route.id]===void 0&&(!m||m[i.route.id]===void 0);if(i.route.lazy||g){f=!0,c>=0?o=o.slice(0,c+1):o=[o[0]];break}}}return o.reduceRight((u,i,p)=>{let m,g=!1,x=null,h=null;n&&(m=d&&i.route.id?d[i.route.id]:void 0,x=i.route.errorElement||ue,f&&(c<0&&p===0?(Ce("route-fallback"),g=!0,h=null):c===p&&(g=!0,h=i.route.hydrateFallbackElement||null)));let b=t.concat(o.slice(0,p+1)),U=()=>{let C;return m?C=x:g?C=h:i.route.Component?C=a.createElement(i.route.Component,null):i.route.element?C=i.route.element:C=u,a.createElement(fe,{match:i,routeContext:{outlet:u,matches:b,isDataRoute:n!=null},children:C})};return n&&(i.route.ErrorBoundary||i.route.errorElement||p===0)?a.createElement(ce,{location:n.location,revalidation:n.revalidation,component:x,error:m,children:U(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):U()},null)}var X=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(X||{}),q=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(q||{});function he(e){let t=a.useContext(k);return t||v(!1),t}function pe(e){let t=a.useContext(te);return t||v(!1),t}function ve(e){let t=a.useContext(E);return t||v(!1),t}function Q(e){let t=ve(),n=t.matches[t.matches.length-1];return n.route.id||v(!1),n.route.id}function me(){var e;let t=a.useContext(A),n=pe(),r=Q();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function ge(){let{router:e}=he(X.UseNavigateStable),t=Q(q.UseNavigateStable),n=a.useRef(!1);return K(()=>{n.current=!0}),a.useCallback(function(l,s){s===void 0&&(s={}),n.current&&(typeof l=="number"?e.navigate(l):e.navigate(l,P({fromRouteId:t},s)))},[e,t])}const j={};function Ce(e,t,n){j[e]||(j[e]=!0)}function xe(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function ke(e){let{to:t,replace:n,state:r,relative:l}=e;R()||v(!1);let{future:s,static:o}=a.useContext(y),{matches:d}=a.useContext(E),{pathname:f}=w(),c=$(),u=_(t,T(d,s.v7_relativeSplatPath),f,l==="path"),i=JSON.stringify(u);return a.useEffect(()=>c(JSON.parse(i),{replace:n,state:r,relative:l}),[c,i,l,n,r]),null}function Ie(e){return oe(e.context)}function Ee(e){v(!1)}function ye(e){let{basename:t="/",children:n=null,location:r,navigationType:l=z.Pop,navigator:s,static:o=!1,future:d}=e;R()&&v(!1);let f=t.replace(/^\/*/,"/"),c=a.useMemo(()=>({basename:f,navigator:s,static:o,future:P({v7_relativeSplatPath:!1},d)}),[f,d,s,o]);typeof r=="string"&&(r=V(r));let{pathname:u="/",search:i="",hash:p="",state:m=null,key:g="default"}=r,x=a.useMemo(()=>{let h=W(u,f);return h==null?null:{location:{pathname:h,search:i,hash:p,state:m,key:g},navigationType:l}},[f,u,i,p,m,g,l]);return x==null?null:a.createElement(y.Provider,{value:c},a.createElement(L.Provider,{children:n,value:x}))}function Fe(e){let{children:t,location:n}=e;return le(B(t),n)}new Promise(()=>{});function B(e,t){t===void 0&&(t=[]);let n=[];return a.Children.forEach(e,(r,l)=>{if(!a.isValidElement(r))return;let s=[...t,l];if(r.type===a.Fragment){n.push.apply(n,B(r.props.children,s));return}r.type!==Ee&&v(!1),!r.props.index||!r.props.children||v(!1);let o={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=B(r.props.children,s)),n.push(o)}),n}/**
11
- * React Router DOM v6.30.3
12
- *
13
- * Copyright (c) Remix Software Inc.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE.md file in the root directory of this source tree.
17
- *
18
- * @license MIT
19
- */function S(){return S=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},S.apply(this,arguments)}function Re(e,t){if(e==null)return{};var n={},r=Object.keys(e),l,s;for(s=0;s<r.length;s++)l=r[s],!(t.indexOf(l)>=0)&&(n[l]=e[l]);return n}function be(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Pe(e,t){return e.button===0&&(!t||t==="_self")&&!be(e)}const we=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Ue="6";try{window.__reactRouterVersion=Ue}catch{}const Oe="startTransition",M=Y[Oe];function je(e){let{basename:t,children:n,future:r,window:l}=e,s=a.useRef();s.current==null&&(s.current=ee({window:l,v5Compat:!0}));let o=s.current,[d,f]=a.useState({action:o.action,location:o.location}),{v7_startTransition:c}=r||{},u=a.useCallback(i=>{c&&M?M(()=>f(i)):f(i)},[f,c]);return a.useLayoutEffect(()=>o.listen(u),[o,u]),a.useEffect(()=>xe(r),[r]),a.createElement(ye,{basename:t,children:n,location:d.location,navigationType:d.action,navigator:o,future:r})}const Ne=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Le=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Me=a.forwardRef(function(t,n){let{onClick:r,relative:l,reloadDocument:s,replace:o,state:d,target:f,to:c,preventScrollReset:u,viewTransition:i}=t,p=Re(t,we),{basename:m}=a.useContext(y),g,x=!1;if(typeof c=="string"&&Le.test(c)&&(g=c,Ne))try{let C=new URL(window.location.href),O=c.startsWith("//")?new URL(C.protocol+c):new URL(c),I=W(O.pathname,m);O.origin===C.origin&&I!=null?c=I+O.search+O.hash:x=!0}catch{}let h=re(c,{relative:l}),b=Be(c,{replace:o,state:d,target:f,preventScrollReset:u,relative:l,viewTransition:i});function U(C){r&&r(C),C.defaultPrevented||b(C)}return a.createElement("a",S({},p,{href:g||h,onClick:x||s?r:U,ref:n,target:f}))});var J;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(J||(J={}));var D;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(D||(D={}));function Be(e,t){let{target:n,replace:r,state:l,preventScrollReset:s,relative:o,viewTransition:d}=t===void 0?{}:t,f=$(),c=w(),u=G(e,{relative:o});return a.useCallback(i=>{if(Pe(i,n)){i.preventDefault();let p=r!==void 0?r:F(c)===F(u);f(e,{replace:p,state:l,preventScrollReset:s,relative:o,viewTransition:d})}},[c,f,u,r,l,n,e,s,o,d])}export{je as B,Me as L,ke as N,Ie as O,Fe as R,Ee as a,$ as b,_e as c,w as u};
20
- //# sourceMappingURL=react-router-I-HqunH7.js.map