@overlordai/server 1.0.175 → 1.0.177
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.
- package/database/migrations/020-connectors.sql +48 -0
- package/database/migrations/021-task-design-context.sql +17 -0
- package/dist/adapters/command-parser.utils.d.ts +1 -0
- package/dist/adapters/command-parser.utils.d.ts.map +1 -1
- package/dist/adapters/command-parser.utils.js +9 -0
- package/dist/adapters/command-parser.utils.js.map +1 -1
- package/dist/adapters/nlu.service.d.ts.map +1 -1
- package/dist/adapters/nlu.service.js +4 -1
- package/dist/adapters/nlu.service.js.map +1 -1
- package/dist/app.module.d.ts.map +1 -1
- package/dist/app.module.js +2 -0
- package/dist/app.module.js.map +1 -1
- package/dist/connectors/connector-closure.service.d.ts +16 -0
- package/dist/connectors/connector-closure.service.d.ts.map +1 -0
- package/dist/connectors/connector-closure.service.js +97 -0
- package/dist/connectors/connector-closure.service.js.map +1 -0
- package/dist/connectors/connector-dispatch.service.d.ts +30 -0
- package/dist/connectors/connector-dispatch.service.d.ts.map +1 -0
- package/dist/connectors/connector-dispatch.service.js +226 -0
- package/dist/connectors/connector-dispatch.service.js.map +1 -0
- package/dist/connectors/connector.constants.d.ts +4 -0
- package/dist/connectors/connector.constants.d.ts.map +1 -0
- package/dist/connectors/connector.constants.js +12 -0
- package/dist/connectors/connector.constants.js.map +1 -0
- package/dist/connectors/connector.controller.d.ts +20 -0
- package/dist/connectors/connector.controller.d.ts.map +1 -0
- package/dist/connectors/connector.controller.js +166 -0
- package/dist/connectors/connector.controller.js.map +1 -0
- package/dist/connectors/connector.interface.d.ts +61 -0
- package/dist/connectors/connector.interface.d.ts.map +1 -0
- package/dist/connectors/connector.interface.js +3 -0
- package/dist/connectors/connector.interface.js.map +1 -0
- package/dist/connectors/connector.module.d.ts +3 -0
- package/dist/connectors/connector.module.d.ts.map +1 -0
- package/dist/connectors/connector.module.js +50 -0
- package/dist/connectors/connector.module.js.map +1 -0
- package/dist/connectors/connector.registry.d.ts +15 -0
- package/dist/connectors/connector.registry.d.ts.map +1 -0
- package/dist/connectors/connector.registry.js +48 -0
- package/dist/connectors/connector.registry.js.map +1 -0
- package/dist/connectors/design-context.service.d.ts +21 -0
- package/dist/connectors/design-context.service.d.ts.map +1 -0
- package/dist/connectors/design-context.service.js +77 -0
- package/dist/connectors/design-context.service.js.map +1 -0
- package/dist/connectors/design-review-trigger.service.d.ts +15 -0
- package/dist/connectors/design-review-trigger.service.d.ts.map +1 -0
- package/dist/connectors/design-review-trigger.service.js +98 -0
- package/dist/connectors/design-review-trigger.service.js.map +1 -0
- package/dist/connectors/figma/figma-url-parser.d.ts +12 -0
- package/dist/connectors/figma/figma-url-parser.d.ts.map +1 -0
- package/dist/connectors/figma/figma-url-parser.js +28 -0
- package/dist/connectors/figma/figma-url-parser.js.map +1 -0
- package/dist/connectors/figma/figma.client.d.ts +67 -0
- package/dist/connectors/figma/figma.client.d.ts.map +1 -0
- package/dist/connectors/figma/figma.client.js +67 -0
- package/dist/connectors/figma/figma.client.js.map +1 -0
- package/dist/connectors/figma/figma.connector.d.ts +29 -0
- package/dist/connectors/figma/figma.connector.d.ts.map +1 -0
- package/dist/connectors/figma/figma.connector.js +223 -0
- package/dist/connectors/figma/figma.connector.js.map +1 -0
- package/dist/connectors/figma/index.d.ts +4 -0
- package/dist/connectors/figma/index.d.ts.map +1 -0
- package/dist/connectors/figma/index.js +10 -0
- package/dist/connectors/figma/index.js.map +1 -0
- package/dist/connectors/issue-ref-helpers.d.ts +10 -0
- package/dist/connectors/issue-ref-helpers.d.ts.map +1 -0
- package/dist/connectors/issue-ref-helpers.js +24 -0
- package/dist/connectors/issue-ref-helpers.js.map +1 -0
- package/dist/connectors/issue-ref-parser.d.ts +22 -0
- package/dist/connectors/issue-ref-parser.d.ts.map +1 -0
- package/dist/connectors/issue-ref-parser.js +35 -0
- package/dist/connectors/issue-ref-parser.js.map +1 -0
- package/dist/connectors/issue-ref-resolver.service.d.ts +44 -0
- package/dist/connectors/issue-ref-resolver.service.d.ts.map +1 -0
- package/dist/connectors/issue-ref-resolver.service.js +226 -0
- package/dist/connectors/issue-ref-resolver.service.js.map +1 -0
- package/dist/connectors/jira/jira.client.d.ts +58 -0
- package/dist/connectors/jira/jira.client.d.ts.map +1 -0
- package/dist/connectors/jira/jira.client.js +70 -0
- package/dist/connectors/jira/jira.client.js.map +1 -0
- package/dist/connectors/jira/jira.connector.d.ts +17 -0
- package/dist/connectors/jira/jira.connector.d.ts.map +1 -0
- package/dist/connectors/jira/jira.connector.js +141 -0
- package/dist/connectors/jira/jira.connector.js.map +1 -0
- package/dist/connectors/sentry/sentry.client.d.ts +54 -0
- package/dist/connectors/sentry/sentry.client.d.ts.map +1 -0
- package/dist/connectors/sentry/sentry.client.js +69 -0
- package/dist/connectors/sentry/sentry.client.js.map +1 -0
- package/dist/connectors/sentry/sentry.connector.d.ts +17 -0
- package/dist/connectors/sentry/sentry.connector.d.ts.map +1 -0
- package/dist/connectors/sentry/sentry.connector.js +173 -0
- package/dist/connectors/sentry/sentry.connector.js.map +1 -0
- package/dist/connectors/webhook-comment-parser.d.ts +18 -0
- package/dist/connectors/webhook-comment-parser.d.ts.map +1 -0
- package/dist/connectors/webhook-comment-parser.js +28 -0
- package/dist/connectors/webhook-comment-parser.js.map +1 -0
- package/dist/database/repositories/connector.repository.d.ts +84 -0
- package/dist/database/repositories/connector.repository.d.ts.map +1 -0
- package/dist/database/repositories/connector.repository.js +222 -0
- package/dist/database/repositories/connector.repository.js.map +1 -0
- package/dist/database/repositories/developer.repository.d.ts +6 -1
- package/dist/database/repositories/developer.repository.d.ts.map +1 -1
- package/dist/database/repositories/developer.repository.js +19 -1
- package/dist/database/repositories/developer.repository.js.map +1 -1
- package/dist/database/repositories/external-issue-link.repository.d.ts +27 -0
- package/dist/database/repositories/external-issue-link.repository.d.ts.map +1 -0
- package/dist/database/repositories/external-issue-link.repository.js +85 -0
- package/dist/database/repositories/external-issue-link.repository.js.map +1 -0
- package/dist/database/repositories/task-design-context.repository.d.ts +33 -0
- package/dist/database/repositories/task-design-context.repository.d.ts.map +1 -0
- package/dist/database/repositories/task-design-context.repository.js +76 -0
- package/dist/database/repositories/task-design-context.repository.js.map +1 -0
- package/dist/database/repository.module.d.ts.map +1 -1
- package/dist/database/repository.module.js +6 -0
- package/dist/database/repository.module.js.map +1 -1
- package/dist/dispatcher/dedup.service.d.ts +1 -1
- package/dist/dispatcher/dedup.service.d.ts.map +1 -1
- package/dist/dispatcher/dedup.service.js +2 -2
- package/dist/dispatcher/dedup.service.js.map +1 -1
- package/dist/dispatcher/dispatcher.module.d.ts.map +1 -1
- package/dist/dispatcher/dispatcher.module.js +2 -1
- package/dist/dispatcher/dispatcher.module.js.map +1 -1
- package/dist/dispatcher/dispatcher.service.d.ts +7 -1
- package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
- package/dist/dispatcher/dispatcher.service.js +79 -8
- package/dist/dispatcher/dispatcher.service.js.map +1 -1
- package/dist/dispatcher/dispatcher.types.d.ts +26 -0
- package/dist/dispatcher/dispatcher.types.d.ts.map +1 -1
- package/dist/dispatcher/scheduler.service.d.ts +3 -1
- package/dist/dispatcher/scheduler.service.d.ts.map +1 -1
- package/dist/dispatcher/scheduler.service.js +16 -2
- package/dist/dispatcher/scheduler.service.js.map +1 -1
- package/dist/dispatcher/task-creation.service.d.ts +47 -3
- package/dist/dispatcher/task-creation.service.d.ts.map +1 -1
- package/dist/dispatcher/task-creation.service.js +26 -9
- package/dist/dispatcher/task-creation.service.js.map +1 -1
- package/dist/dispatcher/task-lifecycle.service.d.ts +5 -1
- package/dist/dispatcher/task-lifecycle.service.d.ts.map +1 -1
- package/dist/dispatcher/task-lifecycle.service.js +32 -3
- package/dist/dispatcher/task-lifecycle.service.js.map +1 -1
- package/dist/notifier/notification-consumer.d.ts +3 -1
- package/dist/notifier/notification-consumer.d.ts.map +1 -1
- package/dist/notifier/notification-consumer.js +26 -5
- package/dist/notifier/notification-consumer.js.map +1 -1
- package/dist/notifier/template.service.d.ts +6 -0
- package/dist/notifier/template.service.d.ts.map +1 -1
- package/dist/notifier/template.service.js +12 -0
- package/dist/notifier/template.service.js.map +1 -1
- package/dist/web/admin/admin-connector.controller.d.ts +58 -0
- package/dist/web/admin/admin-connector.controller.d.ts.map +1 -0
- package/dist/web/admin/admin-connector.controller.js +327 -0
- package/dist/web/admin/admin-connector.controller.js.map +1 -0
- package/dist/web/admin/admin-developer.controller.d.ts +1 -1
- package/dist/web/admin/admin-developer.controller.d.ts.map +1 -1
- package/dist/web/admin/admin-developer.controller.js +16 -5
- package/dist/web/admin/admin-developer.controller.js.map +1 -1
- package/dist/web/dashboard.controller.d.ts +1 -1
- package/dist/web/dashboard.service.d.ts +2 -7
- package/dist/web/dashboard.service.d.ts.map +1 -1
- package/dist/web/dashboard.service.js +16 -21
- package/dist/web/dashboard.service.js.map +1 -1
- package/dist/web/frame-handlers/review-report.handler.d.ts +3 -1
- package/dist/web/frame-handlers/review-report.handler.d.ts.map +1 -1
- package/dist/web/frame-handlers/review-report.handler.js +8 -3
- package/dist/web/frame-handlers/review-report.handler.js.map +1 -1
- package/dist/web/task.controller.d.ts +11 -1
- package/dist/web/task.controller.d.ts.map +1 -1
- package/dist/web/task.controller.js +118 -4
- package/dist/web/task.controller.js.map +1 -1
- package/dist/web/web.module.d.ts.map +1 -1
- package/dist/web/web.module.js +4 -1
- package/dist/web/web.module.js.map +1 -1
- package/dist/web/worker-channel.gateway.d.ts +3 -1
- package/dist/web/worker-channel.gateway.d.ts.map +1 -1
- package/dist/web/worker-channel.gateway.js +6 -3
- package/dist/web/worker-channel.gateway.js.map +1 -1
- package/package.json +4 -4
- package/public/assets/{AccessTokensPage-BlZBgj0-.js → AccessTokensPage-BhRmma33.js} +1 -1
- package/public/assets/{AdminPage-C0OFG0LC.js → AdminPage-ByfD-Bj7.js} +1 -1
- package/public/assets/{AgentCliPage-Ci2XVaN8.js → AgentCliPage-DyJnRmFm.js} +1 -1
- package/public/assets/{ApiReferencePage-Dm9y-zCM.js → ApiReferencePage-Wcyoo5XT.js} +1 -1
- package/public/assets/{ArchitecturePage-BetPO5Ws.js → ArchitecturePage-DgwFpJ3c.js} +1 -1
- package/public/assets/{AuditLogPage-Dbd27v1s.js → AuditLogPage-ByFVvlFb.js} +1 -1
- package/public/assets/{AutomationCreatePage-BvSw8KoZ.js → AutomationCreatePage-Cx-FCZEr.js} +1 -1
- package/public/assets/{AutomationDetailPage-1Y2tp1KP.js → AutomationDetailPage-BDh7SFeh.js} +1 -1
- package/public/assets/{AutomationEditPage-C9UO1XrW.js → AutomationEditPage-D76Ybtpz.js} +1 -1
- package/public/assets/{AutomationListPage-CJk8o3Vp.js → AutomationListPage-bNDDFN0Y.js} +1 -1
- package/public/assets/{AutomationRunDetailPage-h7T4V9Yq.js → AutomationRunDetailPage-BEWaGMai.js} +1 -1
- package/public/assets/{BindPlatformPage-DpzV1bpB.js → BindPlatformPage-CgfAbUal.js} +1 -1
- package/public/assets/{BotIntegrationPage-9kAG4BIL.js → BotIntegrationPage-D1A10L4d.js} +1 -1
- package/public/assets/{BotManage-BanZ5a5-.js → BotManage-IJm4jT-7.js} +1 -1
- package/public/assets/{BotSetupPage-BZIfJYqL.js → BotSetupPage-DIUSFgGv.js} +1 -1
- package/public/assets/{ChangelogPage-Da8n7_T3.js → ChangelogPage-D3R17QQT.js} +1 -1
- package/public/assets/{Checkbox-Dsj1BuTd.js → Checkbox-Drx9oKpj.js} +1 -1
- package/public/assets/{CliReferencePage-BDFsLYmx.js → CliReferencePage-BQ6Eyq2_.js} +1 -1
- package/public/assets/{ConfirmStageDialog-BUTA9YZ1.js → ConfirmStageDialog-BjjJNcLJ.js} +1 -1
- package/public/assets/ConnectorsPage-BgBXQlwq.js +48 -0
- package/public/assets/{DeploymentPage-B5TlN0FI.js → DeploymentPage-Cbmb8KKs.js} +1 -1
- package/public/assets/{DevWorkflowPage-Abvhng0F.js → DevWorkflowPage-Dur0zn7L.js} +1 -1
- package/public/assets/DeveloperManage-BmFhmcbZ.js +16 -0
- package/public/assets/{DeveloperSetupPage-QipfVSjp.js → DeveloperSetupPage-G9amle-q.js} +1 -1
- package/public/assets/{DocsIndexPage-Dw-saIXq.js → DocsIndexPage-CAPCKH_C.js} +11 -6
- package/public/assets/{DocsLayout-BsGaDVp1.js → DocsLayout-gVsQBlHm.js} +1 -1
- package/public/assets/{DocsPrimitives-Bv8TQpkc.js → DocsPrimitives-VBA7lZhS.js} +1 -1
- package/public/assets/{EditProjectPage-CtNCwK-z.js → EditProjectPage-Dn-MgU4f.js} +1 -1
- package/public/assets/{EmptyState-BpbqIJyG.js → EmptyState-B0pdsOsA.js} +1 -1
- package/public/assets/{EnvVariablesPage-D5Cn_E5P.js → EnvVariablesPage-DXaJ3Ejc.js} +1 -1
- package/public/assets/HomePage-B4ION8nK.js +1 -0
- package/public/assets/{InfoRow-BCDb21nt.js → InfoRow-DTHohr5Y.js} +1 -1
- package/public/assets/{InstallationPage-DLW6MXhs.js → InstallationPage-BVY5fIOG.js} +1 -1
- package/public/assets/{LandingPage-BLcQBvuD.js → LandingPage-DAP65IzR.js} +1 -1
- package/public/assets/{LocalDevelopmentPage-BnbdovKe.js → LocalDevelopmentPage-C9pD5y0c.js} +1 -1
- package/public/assets/{LoginPage-Bh-p4hP9.js → LoginPage-BToTW-qz.js} +1 -1
- package/public/assets/{MetricBar-DLR15rum.js → MetricBar-DA42IEeN.js} +1 -1
- package/public/assets/{MultiSelect-BKtGWYgt.js → MultiSelect-5hKAHK2N.js} +1 -1
- package/public/assets/{NotFoundPage-BpUwim1l.js → NotFoundPage-BQbQRjCC.js} +1 -1
- package/public/assets/{OnboardingGuide-BTsSW7Mq.js → OnboardingGuide-or_CwmfY.js} +1 -1
- package/public/assets/{PermissionsPage-A828G2ih.js → PermissionsPage-D867c8K5.js} +1 -1
- package/public/assets/{PipelineConfigPage-Cw1OxgKV.js → PipelineConfigPage-DYL-Eg8a.js} +1 -1
- package/public/assets/{PipelineEditorPage-tewviYrj.js → PipelineEditorPage-D6EpDvPI.js} +1 -1
- package/public/assets/{PlanPage-Bidp5iEn.js → PlanPage-Bfgn9hdf.js} +1 -1
- package/public/assets/{ProfilePage-DgFxZS6i.js → ProfilePage-DydZ_JO_.js} +1 -1
- package/public/assets/{ProjectDetailPage-BoIU1U3V.js → ProjectDetailPage-BLSkZmV0.js} +1 -1
- package/public/assets/{ProjectListPage-DMoN7Ghc.js → ProjectListPage-KWBq3v71.js} +1 -1
- package/public/assets/{PtyTerminal-QdM0LGge.js → PtyTerminal-DZ-tRh7i.js} +1 -1
- package/public/assets/{QuickAuth-CGnZQLaj.js → QuickAuth-D_2JnzxW.js} +1 -1
- package/public/assets/{RemoveMemberConfirmDialog-uFuATit4.js → RemoveMemberConfirmDialog-B1T8FRls.js} +1 -1
- package/public/assets/ReviewAggregatePage-D-sgcTHd.js +6 -0
- package/public/assets/ReviewPage-DLXr5nmf.js +1 -0
- package/public/assets/{Select-CC0FnszM.js → Select-PNbJCK1d.js} +1 -1
- package/public/assets/{SettingsPage-DiecpWAG.js → SettingsPage-DgNCPUzP.js} +1 -1
- package/public/assets/{Skeleton-WCDZdltv.js → Skeleton-C9OmZNVj.js} +1 -1
- package/public/assets/{SkillPage-ABYkJSop.js → SkillPage-jXi2VAvG.js} +1 -1
- package/public/assets/TaskDetailPage-Dy0CSg-i.js +21 -0
- package/public/assets/{TaskGuidePage-CFzoePPd.js → TaskGuidePage-C2VJEOGp.js} +1 -1
- package/public/assets/TaskListPage-63cj9-Gf.js +1 -0
- package/public/assets/{TaskStatusBadge-CzUIb3QQ.js → TaskStatusBadge-Ieecwysj.js} +1 -1
- package/public/assets/{TerminalHomePage-DP-gqkiq.js → TerminalHomePage-wxZHwphZ.js} +1 -1
- package/public/assets/{TokenManage-CbLsJbR9.js → TokenManage-D_fRhfSC.js} +1 -1
- package/public/assets/{Tooltip-Ds3lc4sS.js → Tooltip-hO7lE45q.js} +1 -1
- package/public/assets/{TotpSetupPage-Bakhx3kM.js → TotpSetupPage-DPv5zEkr.js} +1 -1
- package/public/assets/{WorkerDetailPage-W_1tf-Ng.js → WorkerDetailPage-BNHh3G4i.js} +1 -1
- package/public/assets/{WorkerListPage-DAgJojBW.js → WorkerListPage-CnUaksv5.js} +1 -1
- package/public/assets/{WorkerOperationsPage-BE8gDr3P.js → WorkerOperationsPage-BF-j3TGV.js} +1 -1
- package/public/assets/{WorkerSetupGuidePage-Cjwu7yCO.js → WorkerSetupGuidePage-CgoXTtvB.js} +1 -1
- package/public/assets/{WorkerSetupPage-C4F2PDWx.js → WorkerSetupPage-C9FJdEtx.js} +1 -1
- package/public/assets/{agent-type-options-BTd_pbKQ.js → agent-type-options-DPcGCrTV.js} +1 -1
- package/public/assets/{arrow-left-Czit8jGK.js → arrow-left-CMC8xPNU.js} +1 -1
- package/public/assets/{arrow-right-DUvU3ZSE.js → arrow-right-CzgMaKkq.js} +1 -1
- package/public/assets/{bot-xYitrdXz.js → bot-DZNbJaal.js} +1 -1
- package/public/assets/{chevron-down-DwSdaR46.js → chevron-down-Byw_H7qa.js} +1 -1
- package/public/assets/{chevron-left-DMFdbT8q.js → chevron-left-B9OwsObK.js} +1 -1
- package/public/assets/{chevron-right-BqoEBUXc.js → chevron-right-BDxmkY05.js} +1 -1
- package/public/assets/{chevron-up-4jZShvn6.js → chevron-up-qpQChOEd.js} +1 -1
- package/public/assets/{circle-alert-gAYg5DQY.js → circle-alert-qjGQBuvk.js} +1 -1
- package/public/assets/{clock-Bn8CRcdc.js → clock-RH0F7m7Y.js} +1 -1
- package/public/assets/{copy-_C7txolK.js → copy-sq8YNzps.js} +1 -1
- package/public/assets/{download-CGR9pdGa.js → download-BILbhyFl.js} +1 -1
- package/public/assets/{external-link-DGEar13h.js → external-link-6-aTSDMz.js} +1 -1
- package/public/assets/{git-fork-bd2vu3ng.js → git-fork-Tz0-ma48.js} +1 -1
- package/public/assets/{index-DAwsREkq.js → index-CqgRY3L6.js} +13 -13
- package/public/assets/{key-b6kn-A1T.js → key-D8a2ymYq.js} +1 -1
- package/public/assets/{loader-circle-vH-Hp_AS.js → loader-circle-CRxnDWNg.js} +1 -1
- package/public/assets/{pencil-Cxzh8oiw.js → pencil-BB-LZCT2.js} +1 -1
- package/public/assets/{play-bFi1k4eQ.js → play-DP6MNxNf.js} +1 -1
- package/public/assets/{plus-DJTaWh3N.js → plus-DSLmbw91.js} +1 -1
- package/public/assets/{rotate-ccw-CXFQ7046.js → rotate-ccw-DkPBqmSU.js} +1 -1
- package/public/assets/{scroll-text-UIbwyc0E.js → scroll-text-Cn9LA-xo.js} +1 -1
- package/public/assets/{settings-DA_C9Znv.js → settings-DQCRnFRi.js} +1 -1
- package/public/assets/{skip-forward-C71GgwGt.js → skip-forward-ZkknEL37.js} +1 -1
- package/public/assets/{status-colors-C14ffr9M.js → status-colors-CpKIU449.js} +1 -1
- package/public/assets/{task-agent-BasiQZ0L.js → task-agent-knUib-IL.js} +1 -1
- package/public/assets/{task-constants-DihuKtBw.js → task-constants-DiU1z_dP.js} +1 -1
- package/public/assets/{task.store-MpV9TV7z.js → task.store-BfdxbFUg.js} +1 -1
- package/public/assets/{timer-COkLkLUF.js → timer-BJw0BmGT.js} +1 -1
- package/public/assets/{trash-2-CDhJihtl.js → trash-2-DLdIg5hq.js} +1 -1
- package/public/assets/{useFetch-CgkGfhaP.js → useFetch-cT1ib8kh.js} +1 -1
- package/public/assets/{users-BwpIig9c.js → users-D2JV7gxB.js} +1 -1
- package/public/assets/{wifi-D5o6IWuC.js → wifi-Jy12B8KN.js} +1 -1
- package/public/assets/{workflow-DXTOpHef.js → workflow-BmBIBEn9.js} +1 -1
- package/public/assets/{zap-CEUF2oJs.js → zap-oNjSxQ6J.js} +1 -1
- package/public/index.html +1 -1
- package/public/sw.js +1 -1
- package/public/assets/DeveloperManage-DPSHCC6K.js +0 -16
- package/public/assets/HomePage-BFNO_Hk6.js +0 -1
- package/public/assets/ReviewAggregatePage-D5S57j51.js +0 -6
- package/public/assets/ReviewPage-tkUY7vrY.js +0 -1
- package/public/assets/TaskDetailPage-D6qSqsm0.js +0 -21
- package/public/assets/TaskListPage-rDPMfjmN.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{W as r,o as e,ab as s,ac as u,a8 as a}from"./index-
|
|
1
|
+
import{W as r,o as e,ab as s,ac as u,a8 as a}from"./index-CqgRY3L6.js";const n={[e.QUEUED]:"var(--text-muted)",[e.ASSIGNED]:"#60a5fa",[e.RUNNING]:"var(--accent)",[e.SUSPENDED]:"var(--warning)",[e.COMPLETED]:"var(--info)",[e.FAILED]:"var(--destructive)",[e.CANCELLED]:"var(--text-muted)"};function v(t){return n[t]??"var(--text-muted)"}const o={[r.ONLINE]:"var(--accent)",[r.OFFLINE]:"var(--destructive)",[r.DRAINING]:"var(--warning)",[r.DECOMMISSIONED]:"var(--text-muted)"};function E(t){return o[t]??"var(--text-muted)"}function x(t){switch(t){case s.ACTIVE:return"text-green-400";case s.DISABLED:return"text-red-400";default:return"text-[var(--text-muted)]"}}function S(t){switch(t){case a.ACTIVE:return"text-green-400";case a.USED:return"text-blue-400";case a.REVOKED:return"text-red-400";case a.EXPIRED:return"text-[var(--text-muted)]";default:return"text-[var(--text-muted)]"}}function d(t){switch(t){case u.ACTIVE:return"text-green-400";case"error":return"text-red-400";default:return"text-[var(--text-muted)]"}}function i(t){return t>.8?"var(--destructive)":t>.6?"var(--warning)":"var(--accent)"}export{v as a,i as b,x as c,d,S as e,E as g,n as t,o as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as a,Q as t}from"./index-
|
|
1
|
+
import{o as a,Q as t}from"./index-CqgRY3L6.js";import{a as l}from"./agent-type-options-DPcGCrTV.js";const r=[a.COMPLETED,a.FAILED,a.CANCELLED],E=[{value:"feat",label:"feat"},{value:"fix",label:"fix"},{value:"refactor",label:"refactor"},{value:"docs",label:"docs"},{value:"chore",label:"chore"}],o=l(e=>e);[...o];function c(e){return(e??t.CLAUDE).toLowerCase()}export{r as T,E as a,c as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as i,h as c}from"./index-
|
|
1
|
+
import{n as i,h as c}from"./index-CqgRY3L6.js";const k=i((a,o)=>({tasks:[],currentTask:null,loading:!1,error:null,nextCursor:null,_fetchTasksAbort:null,_fetchTasksRequestId:0,fetchTasks:async s=>{const t=o()._fetchTasksAbort;t&&t.abort();const e=new AbortController,n=o()._fetchTasksRequestId+1;a({loading:!0,error:null,_fetchTasksAbort:e,_fetchTasksRequestId:n});try{const r={};s!=null&&s.status&&(r.status=s.status),s!=null&&s.projectKey&&(r.projectKey=s.projectKey),s!=null&&s.developerId&&(r.developerId=s.developerId),s!=null&&s.taskMode&&(r.taskMode=s.taskMode),s!=null&&s.cursor&&(r.cursor=s.cursor),s!=null&&s.limit&&(r.limit=String(s.limit));const l=await c.get("web/tasks",{searchParams:r,signal:e.signal}).json();if(o()._fetchTasksRequestId!==n)return;a({tasks:l.data,nextCursor:l.nextCursor??null,_fetchTasksAbort:null})}catch(r){if(r instanceof DOMException&&r.name==="AbortError")return;o()._fetchTasksRequestId===n&&a({error:r instanceof Error?r.message:"Failed to fetch tasks"})}finally{o()._fetchTasksRequestId===n&&a({loading:!1,_fetchTasksAbort:null})}},fetchTask:async s=>{a({loading:!0,error:null});try{const t=await c.get(`web/tasks/${s}`).json();a({currentTask:t})}catch(t){a({error:t instanceof Error?t.message:"Failed to fetch task"})}finally{a({loading:!1})}},createTask:async s=>{a({error:null});try{const t=await c.post("web/tasks",{json:s}).json();return a(e=>({tasks:[t,...e.tasks]})),t}catch(t){throw a({error:t instanceof Error?t.message:"Failed to create task"}),t}},cancelTask:async s=>{a({error:null});try{await c.post(`web/tasks/${s}/cancel`);const{currentTask:t}=o();(t==null?void 0:t.id)===s&&await o().fetchTask(s)}catch(t){throw a({error:t instanceof Error?t.message:"Failed to cancel task"}),t}},reset:()=>{a({tasks:[],currentTask:null,loading:!1,error:null,nextCursor:null,_fetchTasksAbort:null,_fetchTasksRequestId:0})}}));export{k as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./index-
|
|
1
|
+
import{r as e}from"./index-CqgRY3L6.js";function p(s,l){const[i,d]=e.useState(null),[R,a]=e.useState(!0),[m,o]=e.useState(null),f=e.useRef(s);f.current=s;const r=e.useRef(0),t=e.useRef(!0),u=e.useCallback(async()=>{const c=++r.current;a(!0),o(null);try{const n=await f.current();t.current&&c===r.current&&d(n)}catch(n){if(t.current&&c===r.current){const E=n instanceof Error?n.message:"An unexpected error occurred";o(E)}}finally{t.current&&c===r.current&&a(!1)}},l);return e.useEffect(()=>{u()},[u]),e.useEffect(()=>()=>{t.current=!1,r.current+=1},[]),{data:i,loading:R,error:m,refetch:u}}export{p as u};
|
package/public/index.html
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap"
|
|
29
29
|
rel="stylesheet"
|
|
30
30
|
/>
|
|
31
|
-
<script type="module" crossorigin src="/assets/index-
|
|
31
|
+
<script type="module" crossorigin src="/assets/index-CqgRY3L6.js"></script>
|
|
32
32
|
<link rel="stylesheet" crossorigin href="/assets/index-B40ZH6vh.css">
|
|
33
33
|
<link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
|
|
34
34
|
<body>
|
package/public/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()}).then(()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s}));self.define=(i,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let a={};const u=s=>l(s,r),o={module:{uri:r},exports:a,require:u};e[r]=Promise.all(i.map(s=>o[s]||u(s))).then(s=>(n(...s),a))}}define(["./workbox-6e9b121d"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"og-image.png",revision:"f1563b4bdc7d1a4ab0aef864b0c2294e"},{url:"index.html",revision:"
|
|
1
|
+
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()}).then(()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s}));self.define=(i,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let a={};const u=s=>l(s,r),o={module:{uri:r},exports:a,require:u};e[r]=Promise.all(i.map(s=>o[s]||u(s))).then(s=>(n(...s),a))}}define(["./workbox-6e9b121d"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"og-image.png",revision:"f1563b4bdc7d1a4ab0aef864b0c2294e"},{url:"index.html",revision:"f38a26e4e43741abb62ae858515c17db"},{url:"icon-maskable-512x512.png",revision:"69ada030d99c4a087bc309c00d716654"},{url:"icon-maskable-192x192.png",revision:"bf88226fe789dcb35bf89a307d3ba1af"},{url:"icon-512x512.png",revision:"74e561c3eb152bbb9cdcb333b5f1f3be"},{url:"icon-192x192.png",revision:"0bc2b74efb274c01d9eb50f717f4b7cf"},{url:"favicon.svg",revision:"e91ea32c7308cc2267ae15a5974a27f8"},{url:"apple-touch-icon-180x180.png",revision:"34c1b155ebc55bee221777f86f4612d8"},{url:"apple-touch-icon-152x152.png",revision:"8cc7ef3bc3aa19c3d8a29a58646d0636"},{url:"apple-touch-icon-120x120.png",revision:"7057fb6fb60df3fcf3cd49883db13be9"},{url:"assets/zap-oNjSxQ6J.js",revision:null},{url:"assets/workflow-BmBIBEn9.js",revision:null},{url:"assets/wifi-Jy12B8KN.js",revision:null},{url:"assets/users-D2JV7gxB.js",revision:null},{url:"assets/useFetch-cT1ib8kh.js",revision:null},{url:"assets/trash-2-DLdIg5hq.js",revision:null},{url:"assets/timer-BJw0BmGT.js",revision:null},{url:"assets/task.store-BfdxbFUg.js",revision:null},{url:"assets/task-constants-DiU1z_dP.js",revision:null},{url:"assets/task-agent-knUib-IL.js",revision:null},{url:"assets/status-colors-CpKIU449.js",revision:null},{url:"assets/skip-forward-ZkknEL37.js",revision:null},{url:"assets/settings-DQCRnFRi.js",revision:null},{url:"assets/scroll-text-Cn9LA-xo.js",revision:null},{url:"assets/rotate-ccw-DkPBqmSU.js",revision:null},{url:"assets/plus-DSLmbw91.js",revision:null},{url:"assets/play-DP6MNxNf.js",revision:null},{url:"assets/pencil-BB-LZCT2.js",revision:null},{url:"assets/password-CHk45-jw.js",revision:null},{url:"assets/loader-circle-CRxnDWNg.js",revision:null},{url:"assets/key-D8a2ymYq.js",revision:null},{url:"assets/index-CqgRY3L6.js",revision:null},{url:"assets/index-B40ZH6vh.css",revision:null},{url:"assets/git-fork-Tz0-ma48.js",revision:null},{url:"assets/external-link-6-aTSDMz.js",revision:null},{url:"assets/download-BILbhyFl.js",revision:null},{url:"assets/date-CmcdoD87.js",revision:null},{url:"assets/copy-sq8YNzps.js",revision:null},{url:"assets/clock-RH0F7m7Y.js",revision:null},{url:"assets/circle-alert-qjGQBuvk.js",revision:null},{url:"assets/chevron-up-qpQChOEd.js",revision:null},{url:"assets/chevron-right-BDxmkY05.js",revision:null},{url:"assets/chevron-left-B9OwsObK.js",revision:null},{url:"assets/chevron-down-Byw_H7qa.js",revision:null},{url:"assets/bot-DZNbJaal.js",revision:null},{url:"assets/automationFindings-DfyQvLZV.js",revision:null},{url:"assets/arrow-right-CzgMaKkq.js",revision:null},{url:"assets/arrow-left-CMC8xPNU.js",revision:null},{url:"assets/agent-type-options-DPcGCrTV.js",revision:null},{url:"assets/WorkerSetupPage-C9FJdEtx.js",revision:null},{url:"assets/WorkerSetupGuidePage-CgoXTtvB.js",revision:null},{url:"assets/WorkerOperationsPage-BF-j3TGV.js",revision:null},{url:"assets/WorkerListPage-CnUaksv5.js",revision:null},{url:"assets/WorkerDetailPage-BNHh3G4i.js",revision:null},{url:"assets/TotpSetupPage-DPv5zEkr.js",revision:null},{url:"assets/Tooltip-hO7lE45q.js",revision:null},{url:"assets/TokenManage-D_fRhfSC.js",revision:null},{url:"assets/TerminalHomePage-wxZHwphZ.js",revision:null},{url:"assets/TaskStatusBadge-Ieecwysj.js",revision:null},{url:"assets/TaskListPage-63cj9-Gf.js",revision:null},{url:"assets/TaskGuidePage-C2VJEOGp.js",revision:null},{url:"assets/TaskDetailPage-Dy0CSg-i.js",revision:null},{url:"assets/SkillPage-jXi2VAvG.js",revision:null},{url:"assets/Skeleton-C9OmZNVj.js",revision:null},{url:"assets/SettingsPage-DgNCPUzP.js",revision:null},{url:"assets/Select-PNbJCK1d.js",revision:null},{url:"assets/ReviewPage-DLXr5nmf.js",revision:null},{url:"assets/ReviewAggregatePage-D-sgcTHd.js",revision:null},{url:"assets/RemoveMemberConfirmDialog-B1T8FRls.js",revision:null},{url:"assets/QuickAuth-D_2JnzxW.js",revision:null},{url:"assets/PtyTerminal-DZ-tRh7i.js",revision:null},{url:"assets/PtyTerminal-6GBZ9nXN.css",revision:null},{url:"assets/ProjectListPage-KWBq3v71.js",revision:null},{url:"assets/ProjectDetailPage-BLSkZmV0.js",revision:null},{url:"assets/ProfilePage-DydZ_JO_.js",revision:null},{url:"assets/PlanPage-Bfgn9hdf.js",revision:null},{url:"assets/PipelineEditorPage-D6EpDvPI.js",revision:null},{url:"assets/PipelineConfigPage-DYL-Eg8a.js",revision:null},{url:"assets/PermissionsPage-D867c8K5.js",revision:null},{url:"assets/OnboardingGuide-or_CwmfY.js",revision:null},{url:"assets/NotFoundPage-BQbQRjCC.js",revision:null},{url:"assets/MultiSelect-5hKAHK2N.js",revision:null},{url:"assets/MetricBar-DA42IEeN.js",revision:null},{url:"assets/LoginPage-BToTW-qz.js",revision:null},{url:"assets/LocalDevelopmentPage-C9pD5y0c.js",revision:null},{url:"assets/LandingPage-DAP65IzR.js",revision:null},{url:"assets/InstallationPage-BVY5fIOG.js",revision:null},{url:"assets/InfoRow-DTHohr5Y.js",revision:null},{url:"assets/HomePage-B4ION8nK.js",revision:null},{url:"assets/EnvVariablesPage-DXaJ3Ejc.js",revision:null},{url:"assets/EmptyState-B0pdsOsA.js",revision:null},{url:"assets/EditProjectPage-Dn-MgU4f.js",revision:null},{url:"assets/DocsPrimitives-VBA7lZhS.js",revision:null},{url:"assets/DocsLayout-gVsQBlHm.js",revision:null},{url:"assets/DocsIndexPage-CAPCKH_C.js",revision:null},{url:"assets/DeveloperSetupPage-G9amle-q.js",revision:null},{url:"assets/DeveloperManage-BmFhmcbZ.js",revision:null},{url:"assets/DevWorkflowPage-Dur0zn7L.js",revision:null},{url:"assets/DeploymentPage-Cbmb8KKs.js",revision:null},{url:"assets/ConnectorsPage-BgBXQlwq.js",revision:null},{url:"assets/ConfirmStageDialog-BjjJNcLJ.js",revision:null},{url:"assets/CliReferencePage-BQ6Eyq2_.js",revision:null},{url:"assets/Checkbox-Drx9oKpj.js",revision:null},{url:"assets/ChangelogPage-D3R17QQT.js",revision:null},{url:"assets/BotSetupPage-DIUSFgGv.js",revision:null},{url:"assets/BotManage-IJm4jT-7.js",revision:null},{url:"assets/BotIntegrationPage-D1A10L4d.js",revision:null},{url:"assets/BindPlatformPage-CgfAbUal.js",revision:null},{url:"assets/AutomationRunDetailPage-BEWaGMai.js",revision:null},{url:"assets/AutomationListPage-bNDDFN0Y.js",revision:null},{url:"assets/AutomationEditPage-D76Ybtpz.js",revision:null},{url:"assets/AutomationDetailPage-BDh7SFeh.js",revision:null},{url:"assets/AutomationCreatePage-Cx-FCZEr.js",revision:null},{url:"assets/AuditLogPage-ByFVvlFb.js",revision:null},{url:"assets/ArchitecturePage-DgwFpJ3c.js",revision:null},{url:"assets/ApiReferencePage-Wcyoo5XT.js",revision:null},{url:"assets/AgentCliPage-DyJnRmFm.js",revision:null},{url:"assets/AdminPage-ByfD-Bj7.js",revision:null},{url:"assets/AccessTokensPage-BhRmma33.js",revision:null},{url:"apple-touch-icon-180x180.png",revision:"34c1b155ebc55bee221777f86f4612d8"},{url:"favicon.svg",revision:"e91ea32c7308cc2267ae15a5974a27f8"},{url:"icon-192x192.png",revision:"0bc2b74efb274c01d9eb50f717f4b7cf"},{url:"icon-512x512.png",revision:"74e561c3eb152bbb9cdcb333b5f1f3be"},{url:"icon-maskable-192x192.png",revision:"bf88226fe789dcb35bf89a307d3ba1af"},{url:"icon-maskable-512x512.png",revision:"69ada030d99c4a087bc309c00d716654"},{url:"manifest.webmanifest",revision:"e3100788a89f54481dbd663d57df57a6"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("/index.html"))),s.registerRoute(/^https:\/\/fonts\.googleapis\.com/,new s.CacheFirst({cacheName:"google-fonts-stylesheets",plugins:[]}),"GET"),s.registerRoute(/^https:\/\/fonts\.gstatic\.com/,new s.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new s.ExpirationPlugin({maxEntries:10,maxAgeSeconds:31536e3})]}),"GET")});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import{c as X,D as S,a as E,v as L,r as n,j as e,X as M,h as C,u as q,y as K,ab as w}from"./index-DAwsREkq.js";import{S as G}from"./Select-CC0FnszM.js";import{v as B}from"./password-CHk45-jw.js";import{E as J}from"./EmptyState-BpbqIJyG.js";import{T as Q}from"./Skeleton-WCDZdltv.js";import{u as W}from"./useFetch-CgkGfhaP.js";import{c as F}from"./status-colors-C14ffr9M.js";import{P as Y}from"./plus-DJTaWh3N.js";import{U as Z}from"./users-BwpIig9c.js";import{P as ee}from"./pencil-Cxzh8oiw.js";import{R as te}from"./rotate-ccw-CXFQ7046.js";import"./chevron-down-DwSdaR46.js";/**
|
|
2
|
-
* @license lucide-react v0.469.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const ae=X("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/**
|
|
7
|
-
* @license lucide-react v0.469.0 - ISC
|
|
8
|
-
*
|
|
9
|
-
* This source code is licensed under the ISC license.
|
|
10
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/const re=X("UserCheck",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["polyline",{points:"16 11 18 13 22 9",key:"1pwet4"}]]);/**
|
|
12
|
-
* @license lucide-react v0.469.0 - ISC
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the ISC license.
|
|
15
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/const se=X("UserX",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"17",x2:"22",y1:"8",y2:"13",key:"3nzzx3"}],["line",{x1:"22",x2:"17",y1:"8",y2:"13",key:"1swrse"}]]),$=Object.values(S).map(t=>({value:t,label:t}));function ne({isOpen:t,onClose:r,onCreated:o}){const{t:l}=E();L(t);const[s,i]=n.useState(""),[p,b]=n.useState(""),[u,h]=n.useState(""),[m,f]=n.useState(""),[d,v]=n.useState("developer"),[y,a]=n.useState(!1),[j,g]=n.useState("");function D(){i(""),b(""),h(""),f(""),v("developer"),g("")}function N(){D(),r()}async function U(){if(g(""),!s.trim()||!p.trim()||!u.trim()||!m.trim()){g(l("admin.all_fields_required"));return}const x=B(m);if(x){g(l(x));return}try{a(!0),await C.post("admin/developers",{json:{name:s.trim(),gitName:p.trim(),gitEmail:u.trim(),password:m,role:d}}).json(),N(),o()}catch(R){const A=R instanceof Error?R.message:l("admin.failed_to_create_developer");g(A)}finally{a(!1)}}return t?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{backdropFilter:"blur(2px)"},children:[e.jsx("div",{className:"fixed inset-0 bg-[var(--modal-backdrop)]"}),e.jsxs("div",{className:"relative z-10 w-full max-w-[480px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] font-mono",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-5 py-4",children:[e.jsxs("h3",{className:"text-sm text-[var(--text-primary)]",children:["// ",l("admin.create_developer_title")]}),e.jsx("button",{type:"button",className:"rounded-[4px] p-1 text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",onClick:N,children:e.jsx(M,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"space-y-4 px-5 py-5",children:[j&&e.jsx("div",{className:"rounded-[4px] border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-400",children:j}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:l("admin.username")}),e.jsx("input",{type:"text",placeholder:"e.g. jdoe",value:s,onChange:x=>i(x.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:l("profile.git_name")}),e.jsx("input",{type:"text",placeholder:"e.g. John Doe",value:p,onChange:x=>b(x.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:l("profile.git_email")}),e.jsx("input",{type:"email",placeholder:"e.g. john@example.com",value:u,onChange:x=>h(x.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:l("auth.password")}),e.jsx("input",{type:"password",placeholder:"10-20 chars, letters + digits + special",value:m,onChange:x=>f(x.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"}),e.jsx("p",{className:"mt-1 text-[11px] text-[var(--text-muted)]",children:l("admin.password_hint")})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:l("common.role")}),e.jsx(G,{value:d,onChange:v,options:$})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-[var(--border)] px-5 py-4",children:[e.jsx("button",{type:"button",className:"rounded-[4px] border border-[var(--border)] px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",onClick:N,children:l("common.cancel")}),e.jsx("button",{type:"button",className:"rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs text-black hover:opacity-90 transition-opacity disabled:opacity-50",disabled:y,onClick:U,children:l(y?"common.creating":"common.create")})]})]})]}):null}function oe({isOpen:t,developer:r,onClose:o,onUpdated:l}){var z,P;const{t:s}=E();L(t);const i=q(c=>c.user),[p,b]=n.useState(r.name),[u,h]=n.useState(r.gitName),[m,f]=n.useState(r.gitEmail),[d,v]=n.useState(r.role),[y,a]=n.useState(((z=r.platformUids)==null?void 0:z.lark)??""),[j,g]=n.useState(((P=r.platformUids)==null?void 0:P.slack)??""),[D,N]=n.useState(!1),[U,x]=n.useState(""),A=r.id===(i==null?void 0:i.id)&&r.role===S.ADMIN&&d!==S.ADMIN;n.useEffect(()=>{var c,k;b(r.name),h(r.gitName),f(r.gitEmail),v(r.role),a(((c=r.platformUids)==null?void 0:c.lark)??""),g(((k=r.platformUids)==null?void 0:k.slack)??""),x("")},[r]);async function O(){var c,k;if(x(""),!p.trim()||!u.trim()||!m.trim()){x(s("admin.all_fields_required"));return}A&&x(s("admin.demote_self_warning"));try{N(!0);const _={name:p.trim(),gitName:u.trim(),gitEmail:m.trim(),role:d},T=((c=r.platformUids)==null?void 0:c.lark)??"",H=((k=r.platformUids)==null?void 0:k.slack)??"";if(y.trim()!==T||j.trim()!==H){const I={};I.lark=y.trim(),I.slack=j.trim(),_.platformUids=I}await C.put(`admin/developers/${r.id}`,{json:_}).json(),o(),l()}catch(_){const T=_ instanceof Error?_.message:s("admin.failed_to_update_developer");x(T)}finally{N(!1)}}return t?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{backdropFilter:"blur(2px)"},children:[e.jsx("div",{className:"fixed inset-0 bg-[var(--modal-backdrop)]"}),e.jsxs("div",{className:"relative z-10 mx-2 w-full max-w-[480px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] font-mono",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-5 py-4",children:[e.jsxs("h3",{className:"text-sm text-[var(--text-primary)]",children:["// ",s("admin.edit_developer_title")]}),e.jsx("button",{type:"button",className:"rounded-[4px] p-1 text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",onClick:o,children:e.jsx(M,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"space-y-4 px-5 py-5",children:[U&&e.jsx("div",{className:"rounded-[4px] border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-400",children:U}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:s("admin.username")}),e.jsx("input",{type:"text",value:p,onChange:c=>b(c.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:s("profile.git_name")}),e.jsx("input",{type:"text",value:u,onChange:c=>h(c.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:s("profile.git_email")}),e.jsx("input",{type:"email",value:m,onChange:c=>f(c.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:s("common.role")}),e.jsx(G,{value:d,onChange:v,options:$}),A&&e.jsx("div",{className:"mt-2 rounded-[4px] border border-[var(--warning)] bg-[var(--warning)]/10 px-3 py-2 text-xs text-[var(--warning)]",children:s("admin.demote_self_inline_warning")})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:s("admin.platform_accounts")}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-xs text-[var(--text-muted)]",children:s("admin.lark_uid")}),e.jsx("input",{type:"text",value:y,onChange:c=>a(c.target.value),placeholder:"ou_xxxxxxxxxx",className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-xs text-[var(--text-muted)]",children:s("admin.slack_uid")}),e.jsx("input",{type:"text",value:j,onChange:c=>g(c.target.value),placeholder:"U0XXXXXXXXX",className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]})]})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-[var(--border)] px-5 py-4",children:[e.jsx("button",{type:"button",className:"rounded-[4px] border border-[var(--border)] px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",onClick:o,children:s("common.cancel")}),e.jsx("button",{type:"button",className:"rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs text-black hover:opacity-90 transition-opacity disabled:opacity-50",disabled:D,onClick:O,children:s(D?"common.saving":"common.save_changes")})]})]})]}):null}function le({isOpen:t,developer:r,onClose:o,onConfirmed:l}){const{t:s}=E();L(t);const[i,p]=n.useState(!1),[b,u]=n.useState(""),h=n.useRef(null);n.useEffect(()=>{var d;t&&((d=h.current)==null||d.focus())},[t]);const m=n.useCallback(d=>{d.key==="Escape"&&!i&&o()},[o,i]);async function f(){u("");try{p(!0),await C.put(`admin/developers/${r.id}/reset-totp`),o(),l()}catch(d){const v=d instanceof Error?d.message:s("admin.failed_to_reset_2fa");u(v)}finally{p(!1)}}return t?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{backdropFilter:"blur(2px)"},children:[e.jsx("div",{className:"fixed inset-0 bg-[var(--modal-backdrop)]"}),e.jsxs("div",{ref:h,className:"relative z-10 w-full max-w-[480px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] font-mono",onKeyDown:m,tabIndex:-1,children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-5 py-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ae,{className:"h-4 w-4 text-yellow-400"}),e.jsxs("h3",{className:"text-sm text-[var(--text-primary)]",children:["// ",s("admin.reset_2fa")]})]}),e.jsx("button",{type:"button",className:"rounded-[4px] p-1 text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",onClick:o,children:e.jsx(M,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"space-y-3 px-5 py-5",children:[b&&e.jsx("div",{className:"rounded-[4px] border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-400",children:b}),e.jsxs("p",{className:"text-xs text-[var(--text-primary)]",children:[s("admin.reset_2fa_confirm_message")," ",e.jsx("span",{className:"text-[var(--accent)]",children:r.name}),"?"]}),e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:s("admin.reset_2fa_audit_note")})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-[var(--border)] px-5 py-4",children:[e.jsx("button",{type:"button",className:"rounded-[4px] border border-[var(--border)] px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",onClick:o,children:s("common.cancel")}),e.jsx("button",{type:"button",className:"rounded-[4px] bg-yellow-600 px-3 py-1.5 text-xs text-white hover:opacity-90 transition-opacity disabled:opacity-50",disabled:i,onClick:f,children:s(i?"admin.resetting":"admin.reset_2fa")})]})]})]}):null}function V({dev:t,currentUserId:r,onEdit:o,onReset2fa:l,onToggleStatus:s}){const{t:i}=E();return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{type:"button",className:"rounded-[4px] p-2.5 md:p-1.5 text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:bg-white/[0.05] transition-colors",title:i("common.edit"),onClick:()=>o(t),children:e.jsx(ee,{className:"h-3.5 w-3.5"})}),t.id!==r&&e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"rounded-[4px] p-2.5 md:p-1.5 text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:bg-white/[0.05] transition-colors",title:i("admin.reset_2fa"),onClick:()=>l(t),children:e.jsx(te,{className:"h-3.5 w-3.5"})}),e.jsx("button",{type:"button",className:`rounded-[4px] p-2.5 md:p-1.5 transition-colors hover:bg-white/[0.05] ${t.status===w.ACTIVE?"text-red-400 hover:text-red-300":"text-green-400 hover:text-green-300"}`,title:t.status===w.ACTIVE?i("admin.deactivate"):i("admin.activate"),onClick:()=>s(t),children:t.status===w.ACTIVE?e.jsx(se,{className:"h-3.5 w-3.5"}):e.jsx(re,{className:"h-3.5 w-3.5"})})]})]})}function je(){const{t}=E(),r=q(a=>a.user),[o,l]=n.useState(""),[s,i]=n.useState(!1),[p,b]=n.useState(null),[u,h]=n.useState(null),{data:m,loading:f,refetch:d}=W(()=>{const a={};return o&&(a.q=o),C.get("admin/developers",{searchParams:a}).json()},[o]);async function v(a){const j=a.status===w.ACTIVE?w.DISABLED:w.ACTIVE;try{await C.put(`admin/developers/${a.id}`,{json:{status:j}}),d()}catch{}}function y(a){switch(a){case S.ADMIN:return"text-yellow-400";case S.DEVELOPER:return"text-blue-400";default:return"text-[var(--text-secondary)]"}}return e.jsxs("div",{className:"font-mono",children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-sm text-[var(--text-primary)]",children:t("admin.developers_title")}),e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:t("admin.developers_subtitle")})]}),e.jsxs("button",{type:"button",className:"flex items-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs text-black hover:opacity-90 transition-opacity",onClick:()=>i(!0),children:[e.jsx(Y,{className:"h-3.5 w-3.5"}),t("admin.create_developer")]})]}),e.jsx("div",{className:"mb-4",children:e.jsxs("div",{className:"relative w-full max-w-xs",children:[e.jsx(K,{className:"absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-[var(--text-muted)]"}),e.jsx("input",{type:"text",placeholder:t("admin.search_developers"),value:o,onChange:a=>l(a.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] py-1.5 pl-8 pr-3 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]})}),f?e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4",children:e.jsx(Q,{rows:4})}):!m||m.length===0?e.jsx(J,{icon:Z,title:t(o?"admin.no_matching_developers":"admin.no_developers_found"),description:t(o?"admin.try_adjusting_search":"admin.create_first_developer"),actionLabel:o?void 0:t("admin.create_developer"),onAction:o?void 0:()=>i(!0)}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"hidden md:block overflow-x-auto",children:e.jsxs("table",{className:"w-full text-xs",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border)] text-left text-[var(--text-muted)]",children:[e.jsx("th",{className:"pb-2 pr-4 font-normal",children:t("admin.username")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:t("profile.git_name")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:t("admin.role")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:t("admin.status")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:t("admin.totp")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:t("common.created_at")}),e.jsx("th",{className:"pb-2 font-normal",children:t("common.actions")})]})}),e.jsx("tbody",{children:m.map(a=>e.jsxs("tr",{className:"border-b border-[var(--border-row)] hover:bg-white/[0.02] transition-colors",children:[e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-primary)]",children:a.name}),e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-secondary)]",children:a.gitName}),e.jsx("td",{className:"py-2.5 pr-4",children:e.jsx("span",{className:y(a.role),children:a.role})}),e.jsx("td",{className:"py-2.5 pr-4",children:e.jsx("span",{className:F(a.status),children:a.status})}),e.jsx("td",{className:"py-2.5 pr-4",children:e.jsx("span",{className:a.totpEnabled?"text-green-400":"text-[var(--text-muted)]",children:a.totpEnabled?t("common.enabled"):t("common.disabled")})}),e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-muted)]",children:new Date(a.createdAt).toLocaleDateString()}),e.jsx("td",{className:"py-2.5",children:e.jsx(V,{dev:a,currentUserId:r==null?void 0:r.id,onEdit:b,onReset2fa:h,onToggleStatus:v})})]},a.id))})]})}),e.jsx("div",{className:"md:hidden space-y-3",children:m.map(a=>e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-3",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("span",{className:"text-xs text-[var(--text-primary)] font-medium",children:a.name}),e.jsx(V,{dev:a,currentUserId:r==null?void 0:r.id,onEdit:b,onReset2fa:h,onToggleStatus:v})]}),e.jsx("div",{className:"text-[11px] text-[var(--text-secondary)] mb-1",children:a.gitName}),e.jsxs("div",{className:"flex items-center gap-3 text-[11px]",children:[e.jsx("span",{className:y(a.role),children:a.role}),e.jsx("span",{className:F(a.status),children:a.status}),e.jsx("span",{className:a.totpEnabled?"text-green-400":"text-[var(--text-muted)]",children:a.totpEnabled?t("common.enabled"):t("common.disabled")})]})]},a.id))})]}),e.jsx(ne,{isOpen:s,onClose:()=>i(!1),onCreated:d}),p&&e.jsx(oe,{isOpen:!!p,developer:p,onClose:()=>b(null),onUpdated:d}),u&&e.jsx(le,{isOpen:!!u,developer:u,onClose:()=>h(null),onConfirmed:d})]})}export{je as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as z,a as K,i as H,k as D,r as $,j as e,L as p,l as I,m as B,W as w,h}from"./index-DAwsREkq.js";import{T as R}from"./TaskStatusBadge-CzUIb3QQ.js";import{T as g}from"./Skeleton-WCDZdltv.js";import{O as G}from"./OnboardingGuide-BTsSW7Mq.js";import{f as _}from"./date-CmcdoD87.js";import{g as V}from"./status-colors-C14ffr9M.js";import{u as b}from"./useFetch-CgkGfhaP.js";import{T as q}from"./Tooltip-Ds3lc4sS.js";import{A as v}from"./arrow-right-DUvU3ZSE.js";import"./chevron-right-BqoEBUXc.js";const Y=3e5,J=[{type:"fraction",numerator:"active_tasks",denominator:"queued_tasks",labelKey:"dashboard.tasks_active_queued"},{type:"simple",key:"online_workers",labelKey:"dashboard.online_workers"},{type:"simple",key:"completed_today",labelKey:"dashboard.completed_all_today"},{type:"simple",key:"completed_by_user_today",labelKey:"dashboard.completed_by_you_today"}],Q=["sun","mon","tue","wed","thu","fri","sat"];function U(){const n=new Date;return Array.from({length:7},(a,i)=>{const r=new Date(n);r.setDate(r.getDate()-(6-i));const c=String(r.getMonth()+1).padStart(2,"0"),l=String(r.getDate()).padStart(2,"0");return{label:Q[r.getDay()],date:`${c}/${l}`}})}function X({dailyRates:n,dailyCounts:a,overallRate:i}){const{t:r}=K(),c=U(),l=a.reduce((t,o)=>t+o,0),u=Math.max(...a,1);return e.jsxs("div",{children:[e.jsxs("div",{className:"mb-3 flex items-baseline gap-2",children:[e.jsx("span",{className:"text-2xl font-bold text-[var(--text-primary)]",children:l}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:r("dashboard.last_7_days")}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"·"}),e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[r("dashboard.success_rate"),": ",i,"%"]})]}),e.jsx("div",{className:"flex gap-2",style:{height:80},children:c.map(({label:t,date:o},j)=>{const x=a[j]??0,m=n[j]??0,f=r(x===1?"dashboard.task_total":"dashboard.tasks_total"),N=u>0?Math.max(x/u*100,4):4;return e.jsxs(q,{content:`${t} ${o} — ${x} ${f} (${m}%)`,className:"flex flex-1 flex-col items-center gap-1",children:[e.jsx("div",{className:"relative w-full h-full rounded-[4px] cursor-default",style:{backgroundColor:"rgba(34,197,94,0.1)"},children:e.jsx("div",{className:"absolute bottom-0 left-0 right-0 rounded-[4px]",style:{height:`${N}%`,backgroundColor:m>=80?"var(--accent)":m>=50?"var(--warning)":"var(--destructive)"}})}),e.jsx("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:t})]},t)})})]})}function oe(){const n=z(),{t:a}=K(),i=H(),r=D(s=>s.taskSeq),c=D(s=>s.workerSeq),[l,u]=$.useState(0),{data:t,loading:o}=b(()=>h.get("web/dashboard/stats",{searchParams:{tz:String(new Date().getTimezoneOffset())}}).json(),[l,r,c]),{data:j,loading:x}=b(()=>h.get("web/dashboard/recent-tasks",{searchParams:{limit:"5"}}).json(),[l,r]),{data:m,loading:f}=b(()=>h.get("web/workers").json(),[l,c]),{data:N,loading:E}=b(()=>h.get("web/projects").json(),[l]),{data:O,loading:M}=b(()=>h.get("web/dashboard/recent-activity").json(),[]);$.useEffect(()=>{const s=setInterval(()=>{u(d=>d+1)},Y);return()=>clearInterval(s)},[]);const S=(t==null?void 0:t.success_rate_daily)??null,T=(t==null?void 0:t.task_count_daily)??[],W=(t==null?void 0:t.task_success_rate_7d)??0,L=j??[],y=m??[],C=N??[],A=O??[];function F(s){switch(s){case w.ONLINE:return a("dashboard.online");case w.DRAINING:return a("dashboard.idle");case w.OFFLINE:default:return a("dashboard.offline")}}function P(s){return a(s===1?"dashboard.task_total":"dashboard.tasks_total")}return e.jsxs("div",{className:"mx-auto max-w-6xl overflow-hidden px-2 py-4 md:px-4 md:py-6 font-mono",children:[e.jsx("div",{className:"mb-6 md:mb-8 grid grid-cols-2 gap-3 md:gap-4 lg:grid-cols-4",children:J.map(s=>e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-3 md:p-4",children:[e.jsxs("span",{className:"text-[11px] md:text-xs text-[var(--text-muted)]",children:[a(s.labelKey),":"]}),o?e.jsx("div",{className:"mt-1 h-6 md:h-8 w-12 md:w-16 animate-pulse rounded-[4px] bg-[var(--bg-input)]"}):e.jsx("div",{className:"mt-1 flex items-baseline gap-2",children:s.type==="fraction"?e.jsxs("span",{className:"text-2xl md:text-3xl font-bold text-[var(--text-primary)]",children:[(t==null?void 0:t[s.numerator])??0,e.jsx("span",{className:"text-base md:text-lg font-normal text-[var(--text-muted)]",children:"/"}),(t==null?void 0:t[s.denominator])??0]}):e.jsx("span",{className:"text-2xl md:text-3xl font-bold text-[var(--text-primary)]",children:(t==null?void 0:t[s.key])??0})})]},s.labelKey))}),e.jsx(G,{data:{activeTasks:((t==null?void 0:t.active_tasks)??0)+((t==null?void 0:t.queued_tasks)??0),totalWorkers:y.length,totalProjects:(t==null?void 0:t.project_count)??0,totalDevelopers:(t==null?void 0:t.developer_count)??0}}),e.jsxs("div",{className:"mb-6 grid gap-6 lg:grid-cols-3 items-stretch",children:[e.jsx("div",{className:"flex flex-col gap-6 lg:col-span-2",children:e.jsxs("div",{className:"flex flex-1 flex-col rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:[e.jsx("div",{className:"border-b border-[var(--border)] px-5 py-3",children:e.jsx("h2",{className:"text-sm text-[var(--text-primary)]",children:a("dashboard.task_count")})}),e.jsx("div",{className:"flex flex-1 flex-col justify-center p-5",children:o?e.jsx("div",{className:"h-24 animate-pulse rounded-[4px] bg-[var(--bg-input)]"}):S?e.jsx(X,{dailyRates:S,dailyCounts:T,overallRate:W}):e.jsxs("div",{className:"flex flex-col items-center gap-2 py-6",children:[e.jsx("span",{className:"text-2xl font-bold text-[var(--text-primary)]",children:T.reduce((s,d)=>s+d,0)}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:a("dashboard.daily_breakdown_not_available")})]})})]})}),e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] md:border",children:[e.jsxs("div",{className:"hidden md:flex items-center justify-between border-b border-[var(--border)] px-5 py-3",children:[e.jsx("h2",{className:"text-sm text-[var(--text-primary)]",children:a("dashboard.recent_tasks")}),e.jsxs(p,{to:"/tasks",className:"flex items-center gap-1 text-xs text-[var(--accent)] hover:underline",children:[a("common.view_all")," ",e.jsx(v,{className:"h-3 w-3"})]})]}),e.jsx("div",{className:"flex md:hidden items-center justify-between px-3 py-3",children:e.jsx("h2",{className:"text-xs font-bold text-[var(--accent)]",children:a("dashboard.recent_tasks")})}),e.jsx("div",{className:"px-3 pb-3 md:px-5 md:pb-4 md:pt-0",children:x?e.jsx(g,{rows:4}):L.length===0?e.jsxs("div",{className:"flex flex-col items-center gap-3 py-8",children:[e.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:a("dashboard.no_tasks_yet")})]}):e.jsx("div",{className:"flex flex-col gap-2 md:gap-0",children:L.map(s=>e.jsxs("div",{onClick:()=>n(`/tasks/${s.id}`),className:"flex cursor-pointer items-center gap-3 rounded-[4px] border border-[var(--border)] p-3 transition-colors hover:bg-[var(--bg-input)] md:rounded-none md:border-0 md:border-b md:border-[var(--border-row)] md:p-0 md:py-2.5 last:md:border-b-0",children:[e.jsxs("div",{className:"flex-1 min-w-0 md:hidden",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("span",{className:"text-[11px] text-[var(--text-primary)] leading-tight line-clamp-2 preserve-case",title:B(s),children:["#",s.id," ",I(s)]}),e.jsx("span",{className:"shrink-0",children:e.jsx(R,{status:s.status})})]}),e.jsx("span",{className:"text-[11px] text-[var(--text-muted)] mt-1 block",children:_(s.createdAt)})]}),e.jsxs("span",{className:"hidden md:inline shrink-0 text-xs text-[var(--text-muted)]",children:["#",s.id]}),e.jsx("span",{className:"hidden md:inline flex-1 text-xs text-[var(--text-primary)] truncate preserve-case",children:e.jsx(q,{content:s.description,children:I(s,40)})}),e.jsx("span",{className:"hidden md:inline",children:e.jsx(R,{status:s.status})}),e.jsx("span",{className:"hidden md:inline shrink-0 text-xs text-[var(--text-muted)]",children:_(s.createdAt)})]},s.id))})})]})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:[e.jsxs("div",{className:"hidden md:flex items-center justify-between border-b border-[var(--border)] px-5 py-3",children:[e.jsx("h2",{className:"text-sm text-[var(--text-primary)]",children:a("dashboard.workers")}),e.jsxs(p,{to:"/workers",className:"flex items-center gap-1 text-xs text-[var(--accent)] hover:underline",children:[a("common.view_all")," ",e.jsx(v,{className:"h-3 w-3"})]})]}),e.jsxs("div",{className:"flex md:hidden items-center justify-between border-b border-[var(--border)] px-3 py-3",children:[e.jsx("h2",{className:"text-xs font-bold text-[var(--accent)]",children:a("dashboard.workers")}),e.jsxs(p,{to:"/workers",className:"flex items-center gap-1 text-[11px] text-[var(--accent)] hover:underline",children:[a("common.view_all")," ",e.jsx(v,{className:"h-3 w-3"})]})]}),e.jsx("div",{className:"p-4",children:f?e.jsx(g,{rows:3}):y.length===0?e.jsxs("div",{className:"flex flex-col items-center gap-3 py-8",children:[e.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:a("dashboard.no_workers_registered")})]}):e.jsx("div",{className:"flex flex-col",children:y.map(s=>e.jsxs("div",{onClick:()=>n(`/workers/${s.id}`),className:"flex cursor-pointer items-center justify-between border-b border-[var(--border-row)] py-2.5 transition-colors hover:bg-[var(--bg-input)] last:border-b-0",children:[e.jsxs("div",{className:"min-w-0 flex-1 flex flex-col gap-0.5",children:[e.jsx("span",{className:"truncate text-xs text-[var(--text-primary)]",children:s.name}),e.jsx("span",{className:"truncate text-xs text-[var(--text-muted)]",children:s.host??"--"})]}),e.jsxs("div",{className:"shrink-0 flex items-center gap-3",children:[e.jsxs("span",{className:"text-xs text-[var(--text-secondary)]",children:[s.activeSlots,"/",s.maxSlots," ",a("dashboard.slots")]}),e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs",style:{color:V(s.status)},children:[e.jsx("span",{style:{fontSize:"0.5rem"},children:"●"}),F(s.status)]})]})]},s.id))})})]}),e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] md:hidden",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-3 py-3",children:[e.jsx("h2",{className:"text-xs font-bold text-[var(--accent)]",children:a("dashboard.projects")}),e.jsxs(p,{to:"/projects",className:"flex items-center gap-1 text-[11px] text-[var(--accent)] hover:underline",children:[a("common.view_all")," ",e.jsx(v,{className:"h-3 w-3"})]})]}),e.jsx("div",{className:"p-3",children:E?e.jsx(g,{rows:3}):C.length===0?e.jsxs("div",{className:"flex flex-col items-center gap-3 py-8",children:[e.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:a("projects.no_projects_yet")})]}):e.jsx("div",{className:"flex flex-col gap-2",children:C.map(s=>{const d=s.taskCount??0;return e.jsxs("div",{onClick:()=>n(`/projects/${s.key}`),className:"cursor-pointer rounded-[4px] border border-[var(--border)] p-3 transition-colors hover:bg-[var(--bg-input)]",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:"min-w-0 truncate text-xs font-medium text-[var(--accent)]",children:s.key}),e.jsxs("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:[d," ",P(d)]})]}),e.jsx("span",{className:"mt-1 block text-[11px] text-[var(--text-primary)]",children:s.name}),e.jsx("span",{className:"mt-0.5 block text-[11px] text-[var(--text-muted)]",children:s.agentType})]},s.key)})})})]}),e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-5 py-3",children:[e.jsx("h2",{className:"text-sm text-[var(--text-primary)]",children:a("dashboard.recent_activity")}),i&&e.jsxs(p,{to:"/admin/audit-logs",className:"flex items-center gap-1 text-xs text-[var(--accent)] hover:underline",children:[a("common.view_all")," ",e.jsx(v,{className:"h-3 w-3"})]})]}),e.jsx("div",{className:"p-3 md:p-4",children:M?e.jsx(g,{rows:4}):A.length===0?e.jsxs("div",{className:"flex flex-col items-center gap-3 py-8",children:[e.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:a("dashboard.no_recent_activity")})]}):e.jsx("div",{className:"flex flex-col",children:A.map(s=>{const d=s.message.match(/task\s*#?(\d+)/i),k=d?d[1]:null;return e.jsxs("div",{className:`flex min-w-0 flex-col gap-1 rounded-[4px] border-b border-[var(--border-row)] px-2 py-2 transition-colors last:border-b-0 md:flex-row md:items-start md:gap-3 md:rounded-none md:px-0 ${k?"cursor-pointer hover:bg-[var(--bg-input)]":""}`,onClick:()=>k&&n(`/tasks/${k}`),children:[e.jsx("span",{className:"shrink-0 whitespace-nowrap text-[11px] text-[var(--text-muted)] md:text-xs",children:_(s.timestamp)}),e.jsx("span",{className:"min-w-0 break-words text-[11px] leading-relaxed text-[var(--text-secondary)] md:truncate md:text-xs md:leading-normal",children:s.message})]},s.id)})})})]})]})]})}export{oe as default};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{c as xe,B as me,f as ue,a as H,k as pe,r as n,h as L,j as e,L as ve,V as W,Y as be,t as f,o as v,b as ge,Q as he,X as fe}from"./index-DAwsREkq.js";import{P as je}from"./PtyTerminal-QdM0LGge.js";import{T as Ne}from"./Skeleton-WCDZdltv.js";import{C as K}from"./Checkbox-Dsj1BuTd.js";import{f as we,b as ye}from"./date-CmcdoD87.js";import{a as ke}from"./agent-type-options-BTd_pbKQ.js";import{T as G,g as Q}from"./task-constants-DihuKtBw.js";import{A as Se}from"./arrow-left-Czit8jGK.js";import{L as Ce}from"./loader-circle-vH-Hp_AS.js";import{P as z}from"./play-bFi1k4eQ.js";import{S as Te}from"./skip-forward-C71GgwGt.js";import{R as Ae}from"./rotate-ccw-CXFQ7046.js";import{C as Ee}from"./chevron-up-4jZShvn6.js";import{C as Re}from"./chevron-down-DwSdaR46.js";import{C as De}from"./circle-alert-gAYg5DQY.js";/**
|
|
2
|
-
* @license lucide-react v0.469.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const Ie=xe("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),X={critical:0,warning:1,suggestion:2};function Le(s){switch(s){case"critical":return{text:"text-[var(--destructive)]",bg:"rgba(239,68,68,0.12)",border:"rgba(239,68,68,0.27)"};case"warning":return{text:"text-[var(--warning)]",bg:"rgba(245,158,11,0.12)",border:"rgba(245,158,11,0.27)"};default:return{text:"text-[var(--info)]",bg:"rgba(59,130,246,0.10)",border:"rgba(59,130,246,0.27)"}}}function _e({severity:s}){return s==="critical"?e.jsx(De,{className:"h-3.5 w-3.5 text-[var(--destructive)]"}):s==="warning"?e.jsx(W,{className:"h-3.5 w-3.5 text-[var(--warning)]"}):e.jsx(Ie,{className:"h-3.5 w-3.5 text-[var(--info)]"})}function $e(s){switch(s){case v.RUNNING:return"bg-[var(--accent)]";case v.QUEUED:case v.ASSIGNED:case v.SUSPENDED:return"bg-[var(--warning)]";case v.COMPLETED:return"bg-[var(--accent)]";case v.FAILED:return"bg-[var(--destructive)]";default:return"bg-[#525252]"}}function Z(s){return s===v.RUNNING||s===v.QUEUED||s===v.ASSIGNED}function O(s){return s===v.SUSPENDED}const Pe=ke(Q);function Fe({task:s,expanded:l,onToggleExpand:r}){const b=Q(s.agentType),d=$e(s.status),o=ye(s.startedAt,s.completedAt??void 0),j=Z(s.status),g=G.includes(s.status),w=n.useRef(null);return e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:[e.jsxs("div",{className:"flex cursor-pointer items-center gap-3 px-4 py-3 hover:bg-[var(--bg-input)] transition-colors",onClick:r,children:[e.jsx("span",{className:`h-2 w-2 shrink-0 rounded-full ${d} ${j?"animate-pulse":""}`}),e.jsx("span",{className:"flex-1 text-xs font-medium text-[var(--text-primary)]",children:b}),e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)]",children:[j?`${s.status.toLowerCase()}...`:s.status.toLowerCase(),o&&` · ${o}`]}),e.jsxs("a",{href:`/tasks/${s.id}`,target:"_blank",rel:"noopener noreferrer",onClick:y=>y.stopPropagation(),className:"rounded-[4px] border border-[var(--border)] px-2 py-1 text-[11px] text-[var(--text-muted)] hover:text-[var(--accent)] hover:border-[var(--accent)] transition-colors flex items-center gap-1",children:[e.jsx(ge,{className:"h-3 w-3"}),"↗"]}),l?e.jsx(Ee,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"}):e.jsx(Re,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"})]}),l&&e.jsx("div",{className:"border-t border-[var(--border)]",style:{height:"300px"},children:e.jsx(je,{ref:w,taskId:s.id,sessionId:s.currentSessionId??void 0,taskFinished:g})})]})}function Ue({issue:s}){const l=Le(s.severity);return e.jsxs("div",{className:`rounded-[4px] p-3 text-xs ${s.isDuplicate?"opacity-60":""}`,style:{backgroundColor:l.bg,border:`1px solid ${l.border}`},children:[e.jsxs("div",{className:"mb-1 flex items-center gap-2",children:[e.jsx(_e,{severity:s.severity}),e.jsx("span",{className:`font-bold ${l.text}`,children:s.severity}),s.agentType&&e.jsx("span",{className:"rounded-[4px] border border-[var(--border)] px-1.5 py-0.5 text-[10px] text-[var(--text-muted)]",children:s.agentType}),e.jsxs("span",{className:"text-[var(--text-muted)]",children:[s.file,s.line!=null?`:${s.line}`:""]}),s.isDuplicate&&e.jsx("span",{className:"rounded-[4px] border border-[var(--border)] px-1.5 py-0.5 text-[10px] text-[var(--text-muted)]",children:"duplicate"})]}),e.jsx("p",{className:"mb-1 text-[var(--text-secondary)]",children:s.description}),s.suggestion&&e.jsxs("p",{className:"text-[var(--text-muted)]",children:[e.jsx("span",{className:"font-medium",children:"suggestion:"})," ",s.suggestion]})]})}function Me({sourceTaskId:s,defaultReviewers:l,onClose:r,onLaunched:b}){const{t:d}=H(),o=l.length>0?l:[he.CLAUDE],j=l.length>0,[g,w]=n.useState(o),[y,_]=n.useState(""),[N,$]=n.useState(!1),[C,T]=n.useState(!1);function R(i){w(p=>p.includes(i)?p.filter(P=>P!==i):[...p,i])}async function D(){if(g.length===0){f.error("select at least one review agent.");return}T(!0);try{await L.post(`web/tasks/${s}/review`,{json:{agentTypes:g,description:y.trim()||void 0,skipFix:N||void 0}}),f.success("review launched"),b(),r()}catch(i){const p=i instanceof Error?i.message:String(i);f.error(p)}finally{T(!1)}}return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",children:e.jsxs("div",{className:"w-full max-w-sm rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5 font-mono",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("span",{className:"text-sm font-bold text-[var(--text-primary)]",children:d("review.review_again")}),e.jsx("button",{onClick:r,className:"text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",children:e.jsx(fe,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx("p",{className:"text-[11px] text-[var(--text-muted)]",children:d("review.select_agents")}),j&&e.jsx("span",{className:"rounded-[4px] border border-amber-500/40 bg-amber-500/10 px-1.5 py-0.5 text-[10px] text-amber-500",children:"using project defaults"})]}),e.jsx("div",{className:"mb-4 flex flex-col gap-2",children:Pe.map(i=>e.jsx(K,{checked:g.includes(i.value),onCheckedChange:()=>R(i.value),label:i.label,containerClassName:"w-full gap-2.5 rounded-[4px] border border-[var(--border)] px-3 py-2 hover:bg-[var(--bg-input)] transition-colors"},i.value))}),e.jsx("textarea",{value:y,onChange:i=>_(i.target.value),placeholder:d("review.description_placeholder"),rows:3,className:"mb-3 w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none focus:border-[var(--accent)] resize-none"}),e.jsx(K,{checked:N,onCheckedChange:$,label:d("review.skip_fix_label"),containerClassName:"mb-4 w-full gap-2.5 rounded-[4px] border border-[var(--border)] px-3 py-2 hover:bg-[var(--bg-input)] transition-colors",labelClassName:"text-[var(--text-muted)]"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("button",{onClick:D,disabled:C||g.length===0,className:"flex flex-1 items-center justify-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-4 py-2 text-xs font-bold text-black disabled:opacity-40 disabled:cursor-not-allowed",children:[e.jsx(z,{className:"h-3 w-3"}),d(C?"common.processing":"review.launch")]}),e.jsx("button",{onClick:r,className:"rounded-[4px] border border-[var(--border)] px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",children:d("common.cancel")})]})]})})}function tt(){var B;const{sourceTaskId:s}=me(),l=ue(),{t:r}=H(),b=Number(s),d=pe(t=>t.eventSeq),[o,j]=n.useState(null),[g,w]=n.useState(!0),[y,_]=n.useState(new Set),[N,$]=n.useState(""),[C,T]=n.useState(!1),[R,D]=n.useState(!1),[i,p]=n.useState(!1),[P,V]=n.useState(null),k=n.useCallback(async()=>{try{const t=await L.get(`web/tasks/${b}/reviews`).json();j(t),t.rounds&&t.rounds.length>0&&V(a=>a??t.rounds[t.rounds.length-1].round)}catch{j(null)}finally{w(!1)}},[b]);n.useEffect(()=>{w(!0),k()},[k]),n.useEffect(()=>{d>0&&k()},[d,k]);const ee=n.useCallback(t=>{_(a=>{const x=new Set(a);return x.has(t)?x.delete(t):x.add(t),x})},[]),S=(o==null?void 0:o.rounds)??[],F=S.length>0?S[S.length-1].round:null,h=P??F,U=S.find(t=>t.round===h),c=(U==null?void 0:U.reviewTasks)??(o==null?void 0:o.reviewTasks)??[];c.some(t=>Z(t.status));const I=c.some(t=>O(t.status)),M=c.length>0&&c.every(t=>G.includes(t.status)),te=c.some(t=>t.report!=null),se=c.length>0&&c.every(t=>t.report!=null),q=h===F,re=I||M,A=n.useMemo(()=>{var x;const t=[];for(const u of c)if((x=u.report)!=null&&x.issues)for(const E of u.report.issues)t.push({...E,agentType:u.agentType??"claude"});t.sort((u,E)=>(X[u.severity]??9)-(X[E.severity]??9));const a=new Set;return t.map(u=>{const E=u.description.slice(0,20),J=`${u.file}:${u.line??""}:${E}`;return a.has(J)?{...u,isDuplicate:!0}:(a.add(J),u)})},[c]),ae=A.filter(t=>t.severity==="critical").length,ne=A.filter(t=>t.severity==="warning").length,oe=A.filter(t=>t.severity==="suggestion").length,Y=c.filter(t=>O(t.status)),ie=n.useMemo(()=>[{value:"",label:"select agent..."},...Y.map(t=>({value:String(t.id),label:Q(t.agentType)}))],[Y]);async function ce(){if(!N){f.error("select a review agent to perform the fix.");return}T(!0);try{await L.post(`web/tasks/${b}/approve-fix`,{json:{reviewTaskId:Number(N)}}),f.success("fix started"),k()}catch(t){const a=t instanceof Error?t.message:String(t);f.error(a)}finally{T(!1)}}async function le(){D(!0);try{await L.post(`web/tasks/${b}/skip-fix`,{json:h!=null?{round:h}:{}}),f.success("review completed — no fix needed"),l("/review")}catch(t){const a=t instanceof Error?t.message:String(t);f.error(a)}finally{D(!1)}}const de=n.useMemo(()=>{var a;const t=(a=o==null?void 0:o.sourceTask)==null?void 0:a.configSnapshot;if(!t)return[];try{const x=JSON.parse(t);return Array.isArray(x.defaultReviewers)?x.defaultReviewers:[]}catch{return[]}},[(B=o==null?void 0:o.sourceTask)==null?void 0:B.configSnapshot]);if(g)return e.jsx("div",{className:"mx-auto max-w-4xl px-2 py-4 md:px-4 md:py-6 font-mono",children:e.jsx(Ne,{rows:5})});if(!o)return e.jsxs("div",{className:"mx-auto max-w-4xl px-2 py-4 md:px-4 md:py-6 font-mono text-center",children:[e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:"// reviews not found"}),e.jsx("button",{onClick:()=>l("/review"),className:"mt-4 rounded-[4px] border border-[var(--border)] px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",children:"< back to review"})]});const{sourceTask:m}=o;return e.jsxs("div",{className:"mx-auto max-w-4xl px-2 py-4 md:px-4 md:py-6 font-mono",children:[e.jsx("div",{className:"mb-4 flex items-center gap-2",children:e.jsxs("button",{onClick:()=>l("/review"),className:"flex items-center gap-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",children:[e.jsx(Se,{className:"h-3.5 w-3.5"}),r("common.back")]})}),e.jsx("div",{className:"mb-5 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] px-4 py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsxs("div",{className:"flex flex-1 flex-col gap-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs font-bold text-[var(--text-muted)]",children:"source task"}),e.jsxs(ve,{to:`/tasks/${m.id}`,className:"text-xs text-[var(--info)] hover:underline",children:["#",m.id]}),e.jsx("span",{className:"shrink-0 rounded-[4px] border border-[var(--border)] px-2 py-0.5 text-[11px] text-[var(--text-muted)]",children:m.projectKey})]}),e.jsx("span",{className:"truncate text-sm text-[var(--text-primary)]",children:m.description}),(m.branch||m.sourceCommitSha)&&e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)]",children:["reviewing branch"," ",m.branch&&e.jsx("span",{className:"text-[var(--text-secondary)]",children:m.branch}),m.sourceCommitSha&&e.jsxs(e.Fragment,{children:[" ","at commit"," ",e.jsx("span",{className:"font-mono text-[var(--accent)]",children:m.sourceCommitSha.slice(0,7)})]})]})]}),e.jsx("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:we(m.createdAt)})]})}),S.length>1&&e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"round:"}),e.jsx("div",{className:"flex gap-1",children:S.map(t=>e.jsxs("button",{onClick:()=>V(t.round),className:`rounded-[4px] border px-3 py-1 text-xs transition-colors ${h===t.round?"border-[var(--accent)] bg-[var(--accent)] text-black font-bold":"border-[var(--border)] text-[var(--text-muted)] hover:text-[var(--text-primary)]"}`,children:["#",t.round]},t.round))}),h!==F&&e.jsx("span",{className:"text-[11px] text-[var(--text-muted)]",children:"// historical"})]}),c.length>0&&e.jsxs("div",{className:"mb-5",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[e.jsxs("span",{className:"text-xs font-bold text-[var(--text-muted)]",children:[r("review.round"),h?` #${h}`:""]}),e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)]",children:[c.filter(t=>G.includes(t.status)||O(t.status)).length," / ",c.length," done"]})]}),e.jsx("div",{className:"flex flex-col gap-2",children:c.map(t=>e.jsx(Fe,{task:t,expanded:y.has(t.id),onToggleExpand:()=>ee(t.id)},t.id))})]}),re&&te&&(c.filter(a=>a.report!=null).every(a=>!a.report.summary&&a.report.issues.length===0)?e.jsx("div",{className:"mb-5 rounded-[4px] border border-amber-500/40 bg-amber-500/10 p-4",children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(W,{className:"h-4 w-4 shrink-0 text-amber-500 mt-0.5"}),e.jsx("p",{className:"text-xs text-amber-500",children:r("review.empty_report_warning")})]})}):e.jsxs("div",{className:"mb-5 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4",children:[e.jsx("div",{className:"mb-3 flex items-center gap-3",children:e.jsxs("span",{className:"text-xs font-bold text-[var(--accent)]",children:[r("review.round")," — ",r("review.issues_summary",{critical:String(ae),warning:String(ne),suggestion:String(oe)})]})}),A.length>0?e.jsx("div",{className:"flex flex-col gap-2",children:A.map((a,x)=>e.jsx(Ue,{issue:a},x))}):e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"// no issues reported"})]})),q&&se&&!I&&!M&&e.jsxs("div",{className:"mb-4 flex items-center gap-2 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] px-4 py-3",children:[e.jsx(Ce,{className:"h-3.5 w-3.5 animate-spin text-[var(--text-muted)]"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:r("review.waiting_agents")})]}),q&&(I||M)&&e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4",children:[e.jsx("span",{className:"mb-3 block text-xs font-bold text-[var(--text-muted)]",children:"actions"}),e.jsxs("div",{className:"flex flex-col gap-3",children:[I&&e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex flex-col gap-2 md:flex-row md:items-center",children:[e.jsx("select",{value:N,onChange:t=>$(t.target.value),className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] outline-none focus:border-[var(--accent)] md:w-48",children:ie.map(t=>e.jsx("option",{value:t.value,children:t.label},t.value))}),e.jsxs("button",{onClick:ce,disabled:C||!N,className:"flex items-center justify-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-4 py-2 text-xs font-bold text-black disabled:opacity-40 disabled:cursor-not-allowed",children:[e.jsx(z,{className:"h-3 w-3"}),r(C?"common.processing":"review.approve_fix")]}),e.jsxs("button",{onClick:le,disabled:R,className:"flex items-center justify-center gap-1.5 rounded-[4px] border border-[var(--border)] px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-input)] transition-colors disabled:opacity-40 disabled:cursor-not-allowed",children:[e.jsx(Te,{className:"h-3 w-3"}),r(R?"common.processing":"review.skip_fix")]})]}),e.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] text-[var(--text-muted)]",children:[e.jsx(be,{className:"h-3 w-3 shrink-0"}),r("review.fix_push_info")]})]}),e.jsxs("button",{onClick:()=>p(!0),className:"flex items-center gap-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",children:[e.jsx(Ae,{className:"h-3.5 w-3.5"}),r("review.review_again")]})]})]}),c.length===0&&e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-8 text-center",children:[e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:r("review.no_reviews")}),e.jsxs("button",{onClick:()=>p(!0),className:"mt-3 flex items-center gap-1.5 mx-auto rounded-[4px] bg-[var(--accent)] px-4 py-2 text-xs font-bold text-black",children:[e.jsx(z,{className:"h-3 w-3"}),r("review.launch")]})]}),i&&e.jsx(Me,{sourceTaskId:b,defaultReviewers:de,onClose:()=>p(!1),onLaunched:()=>{p(!1),k()}})]})}export{tt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as w,f as k,k as K,r,x as F,j as e,h as N,o as m,E,l as B,X as T,H,t as y,Q}from"./index-DAwsREkq.js";import{E as D}from"./EmptyState-BpbqIJyG.js";import{T as L}from"./Skeleton-WCDZdltv.js";import{C as q}from"./Checkbox-Dsj1BuTd.js";import{S as C}from"./Select-CC0FnszM.js";import{f as P}from"./date-CmcdoD87.js";import{T as A}from"./Tooltip-Ds3lc4sS.js";import{a as z}from"./agent-type-options-BTd_pbKQ.js";import{g as X}from"./task-constants-DihuKtBw.js";import{P as Z}from"./plus-DJTaWh3N.js";import{P as R}from"./play-bFi1k4eQ.js";import{C as J}from"./chevron-left-DMFdbT8q.js";import{C as V}from"./chevron-right-BqoEBUXc.js";import"./chevron-down-DwSdaR46.js";function $(){const[s,i]=r.useState(void 0),[t,o]=r.useState(void 0),[p,c]=r.useState([]),h=r.useRef(void 0),u=r.useRef(void 0);h.current=s,u.current=t;const g=r.useCallback(x=>{i(x)},[]),l=r.useCallback(()=>{const x=h.current;x&&(c(j=>[...j,u.current??""]),o(x))},[]),b=r.useRef([]);b.current=p;const d=r.useCallback(()=>{const x=b.current;x.length!==0&&(o(x.at(-1)||void 0),c(x.slice(0,-1)))},[]),a=p.length+1,n=p.length>0;return{cursor:t,setNextCursor:g,goNext:l,goPrev:d,pageNumber:a,hasPrev:n,hasNext:!!s}}const I=20;function W(s){switch(s){case m.RUNNING:return"bg-[var(--accent)]";case m.QUEUED:return"bg-[var(--warning)]";case m.ASSIGNED:return"bg-[var(--info)]";case m.SUSPENDED:return"bg-[var(--warning)]";case m.COMPLETED:return"bg-[var(--accent)]";case m.FAILED:return"bg-[var(--destructive)]";case m.CANCELLED:return"bg-[#525252]";default:return"bg-[#525252]"}}const Y=z(X);function ee({taskId:s,onClose:i,onLaunched:t}){const{t:o}=w(),[p,c]=r.useState([Q.CLAUDE]),[h,u]=r.useState(""),[g,l]=r.useState(!1);function b(a){c(n=>n.includes(a)?n.filter(f=>f!==a):[...n,a])}async function d(){if(p.length===0){y.error("select at least one review agent.");return}l(!0);try{await N.post(`web/tasks/${s}/review`,{json:{agentTypes:p,description:h.trim()||void 0}}),y.success("review launched"),t(),i()}catch(a){const n=a instanceof Error?a.message:String(a);y.error(n)}finally{l(!1)}}return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",children:e.jsxs("div",{className:"w-full max-w-sm rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5 font-mono",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("span",{className:"text-sm font-bold text-[var(--text-primary)]",children:o("review.launch")}),e.jsx("button",{onClick:i,className:"text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",children:e.jsx(T,{className:"h-4 w-4"})})]}),e.jsxs("p",{className:"mb-3 text-[11px] text-[var(--text-muted)]",children:["task #",s," — ",o("review.select_agents")]}),e.jsx("div",{className:"mb-4 flex flex-col gap-2",children:Y.map(a=>e.jsx(q,{checked:p.includes(a.value),onCheckedChange:()=>b(a.value),label:a.label,containerClassName:"w-full gap-2.5 rounded-[4px] border border-[var(--border)] px-3 py-2 hover:bg-[var(--bg-input)] transition-colors"},a.value))}),e.jsx("textarea",{value:h,onChange:a=>u(a.target.value),placeholder:o("review.description_placeholder"),rows:3,className:"mb-4 w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none focus:border-[var(--accent)] resize-none"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("button",{onClick:d,disabled:g||p.length===0,className:"flex flex-1 items-center justify-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-4 py-2 text-xs font-bold text-black disabled:opacity-40 disabled:cursor-not-allowed",children:[e.jsx(R,{className:"h-3 w-3"}),o(g?"common.processing":"review.launch")]}),e.jsx("button",{onClick:i,className:"rounded-[4px] border border-[var(--border)] px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",children:o("common.cancel")})]})]})})}function _({pag:s}){const{t:i}=w();return!s.hasPrev&&!s.hasNext?null:e.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["// page ",s.pageNumber]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("button",{onClick:s.goPrev,disabled:!s.hasPrev,className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2.5 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--accent)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:[e.jsx(J,{className:"h-3.5 w-3.5"}),i("tasks.prev")]}),e.jsxs("button",{onClick:s.goNext,disabled:!s.hasNext,className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2.5 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--accent)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:[i("common.next"),e.jsx(V,{className:"h-3.5 w-3.5"})]})]})]})}function se({onRefresh:s,projectFilter:i,developerFilter:t}){const{t:o}=w(),p=k(),[c,h]=r.useState([]),[u,g]=r.useState(!0),[l,b]=r.useState(null),d=$(),a=r.useCallback(async n=>{g(!0);try{const f=new Date(Date.now()-6048e5).toISOString(),x=new URLSearchParams({status:m.COMPLETED,taskMode:"develop",reviewStatus:"null",completedAfter:f,limit:String(I)});i&&x.set("projectKey",i),t&&x.set("developerId",t),n&&x.set("cursor",n);const j=await N.get(`web/tasks?${x}`).json();h(j.data??[]),d.setNextCursor(j.nextCursor)}catch{h([]),d.setNextCursor(void 0)}finally{g(!1)}},[i,t]);return r.useEffect(()=>{a(d.cursor)},[a,d.cursor]),u&&c.length===0?e.jsx("div",{className:"p-4",children:e.jsx(L,{rows:4})}):!u&&c.length===0&&!d.hasPrev?e.jsx(D,{icon:E,title:o("review.no_reviews"),description:o("review.pending")}):e.jsxs(e.Fragment,{children:[c.length>0&&e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:c.map(n=>e.jsxs("div",{className:"flex flex-col gap-1 border-b border-[var(--border)] px-4 py-3 last:border-b-0",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--accent)]"}),e.jsx(A,{content:n.description,className:"flex-1 min-w-0",children:e.jsxs("span",{className:"cursor-pointer truncate text-xs text-[var(--text-primary)] hover:text-[var(--accent)] transition-colors block preserve-case",onClick:()=>p(`/tasks/${n.id}`),children:["#",n.id," ",B(n)]})}),e.jsx("button",{onClick:async()=>{try{await N.post(`web/tasks/${n.id}/review-status`,{json:{reviewStatus:"dismissed"}}),a(d.cursor)}catch(f){let x="Failed to dismiss";try{if(f instanceof H){const j=await f.response.json();x=(j==null?void 0:j.message)??x}else f instanceof Error&&(x=f.message)}catch{}y.error(x)}},className:"shrink-0 flex items-center rounded-[4px] p-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors","aria-label":"dismiss",children:e.jsx(T,{className:"h-3.5 w-3.5"})}),e.jsxs("button",{onClick:()=>b(n.id),className:"shrink-0 flex items-center gap-1.5 rounded-[4px] px-3 py-1.5 text-[11px] font-medium text-[var(--accent)]",style:{backgroundColor:"rgba(34,197,94,0.12)"},children:[e.jsx(R,{className:"h-3 w-3"}),e.jsx("span",{className:"hidden md:inline",children:o("review.launch_short")})]})]}),e.jsxs("div",{className:"flex items-center gap-2 pl-5 text-[11px] text-[var(--text-muted)] min-w-0",children:[e.jsx("span",{className:"shrink-0",children:P(n.completedAt??n.createdAt)}),e.jsx("span",{className:"shrink-0",children:"·"}),e.jsx("span",{className:"shrink-0",children:n.projectKey}),n.workerName&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"shrink-0",children:"·"}),e.jsx("span",{className:"truncate",children:n.workerName})]})]})]},n.id))}),e.jsx(_,{pag:d}),l!==null&&e.jsx(ee,{taskId:l,onClose:()=>b(null),onLaunched:()=>{s(),a(d.cursor)}})]})}function te(s){const i=new Map;for(const t of s){const o=t.sourceTaskId??t.id;i.has(o)||i.set(o,[]),i.get(o).push(t)}return Array.from(i.entries()).map(([t,o])=>({sourceTaskId:t,tasks:o}))}function re({group:s,onClick:i}){const t=s.tasks[0],o=s.tasks.every(c=>c.status===m.COMPLETED||c.status===m.FAILED||c.status===m.CANCELLED),p=t==null?void 0:t.sourceCommitSha;return e.jsxs("div",{onClick:i,className:"flex cursor-pointer items-center gap-3 border-b border-[var(--border)] px-4 py-3 last:border-b-0 hover:bg-[var(--bg-input)] transition-colors",children:[e.jsx("span",{className:`h-2 w-2 shrink-0 rounded-full ${o?"bg-[var(--accent)]":"bg-[var(--warning)]"}`}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[e.jsx(A,{content:(t==null?void 0:t.sourceTaskDescription)??(t==null?void 0:t.description),className:"truncate",children:e.jsxs("span",{className:"truncate text-xs text-[var(--text-primary)]",children:["source #",s.sourceTaskId]})}),p&&e.jsxs("span",{className:"shrink-0 font-mono text-[11px] text-[var(--accent)]",children:["@",p.slice(0,7)]})]}),e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)]",children:[s.tasks.length," ",s.tasks.length===1?"agent":"agents"," · ",s.tasks.map(c=>(c.agentType??"claude").toLowerCase()).join(", ")]})]}),t&&e.jsx("span",{className:"shrink-0 rounded-[4px] border border-[var(--border)] px-2 py-0.5 text-[11px] text-[var(--text-muted)]",children:t.projectKey}),t&&e.jsx("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:P(t.createdAt)}),e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:s.tasks.map(c=>e.jsx("span",{className:`h-2 w-2 rounded-full ${W(c.status)}`,title:c.status.toLowerCase()},c.id))})]})}function S({mode:s,projectFilter:i,developerFilter:t}){const{t:o}=w(),p=k(),[c,h]=r.useState([]),[u,g]=r.useState(!0),l=$(),b=r.useCallback(async d=>{g(!0);try{const a=new URLSearchParams({taskMode:"review",limit:String(I),groupBySource:"true"});s==="in_progress"?a.set("status",[m.QUEUED,m.ASSIGNED,m.RUNNING,m.SUSPENDED].join(",")):a.set("status",[m.COMPLETED,m.FAILED,m.CANCELLED].join(",")),i&&a.set("projectKey",i),t&&a.set("sourceDeveloperId",t),d&&a.set("cursor",d);const n=await N.get(`web/tasks?${a}`).json();h(te(n.data??[])),l.setNextCursor(n.nextCursor??void 0)}catch{h([]),l.setNextCursor(void 0)}finally{g(!1)}},[s,i,t]);return r.useEffect(()=>{b(l.cursor)},[b,l.cursor]),u&&c.length===0?e.jsx("div",{className:"p-4",children:e.jsx(L,{rows:4})}):!u&&c.length===0&&!l.hasPrev?e.jsx(D,{icon:E,title:o("review.no_reviews")}):e.jsxs(e.Fragment,{children:[c.length>0&&e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:c.map(d=>e.jsx(re,{group:d,onClick:()=>p(`/review/${d.sourceTaskId}`)},d.sourceTaskId))}),e.jsx(_,{pag:l})]})}function fe(){const{t:s}=w(),i=k(),t=K(v=>v.taskSeq),[o,p]=r.useState("pending"),[c,h]=r.useState(0),[u,g]=r.useState(""),[l,b]=r.useState(""),[d,a]=r.useState([]),[n,f]=r.useState([]);F(null);const x=r.useCallback(()=>h(v=>v+1),[]);r.useEffect(()=>{let v=!1;return(async()=>{try{const[M,G]=await Promise.all([N.get("web/projects").json(),N.get("web/projects/-/developers").json()]);if(v)return;a(M),f(G)}catch{}})(),()=>{v=!0}},[]);const j=r.useMemo(()=>[{value:"",label:s("tasks.filter_project")},...d.map(v=>({value:v.key,label:v.name}))],[d,s]),O=r.useMemo(()=>[{value:"",label:s("tasks.filter_developer")},...n.map(v=>({value:String(v.id),label:v.name}))],[n,s]),U=[{key:"pending",label:s("review.pending")},{key:"in_progress",label:s("review.in_progress")},{key:"history",label:s("review.history")}];return e.jsxs("div",{className:"mx-auto max-w-6xl px-2 py-4 md:px-4 md:py-6 font-mono",children:[e.jsx("h1",{className:"sr-only",children:s("review.title")}),e.jsxs("div",{className:"mb-4 flex flex-col gap-3 md:gap-4 md:flex-row md:items-center",children:[e.jsxs("div",{className:"flex items-center gap-1 overflow-x-auto pb-1 md:pb-0 no-scrollbar",children:[U.map(v=>e.jsx("button",{onClick:()=>p(v.key),className:`shrink-0 rounded-[4px] px-3 py-2 h-8 text-xs transition-colors ${o===v.key?"text-[var(--accent)] bg-[var(--bg-input)]":"text-[var(--text-muted)] bg-[var(--bg-card)] hover:text-[var(--text-secondary)]"}`,children:v.label},v.key)),e.jsxs("button",{onClick:()=>i("/plan"),className:"shrink-0 flex items-center gap-1 rounded-[4px] px-3 py-2 h-8 text-xs text-[var(--text-muted)] hover:text-[var(--accent)] transition-colors",children:[e.jsx(Z,{className:"h-3 w-3"}),s("plan.title")]})]}),e.jsxs("div",{className:"flex flex-col gap-2 md:ml-auto md:flex-row md:items-center",children:[e.jsx(C,{value:u,onChange:g,options:j,className:"md:w-40"}),e.jsx(C,{value:l,onChange:b,options:O,className:"md:w-40"})]})]}),o==="pending"&&e.jsx(se,{onRefresh:x,projectFilter:u,developerFilter:l},`pending-${c}-${t}-${u}-${l}`),o==="in_progress"&&e.jsx(S,{mode:"in_progress",projectFilter:u,developerFilter:l},`inprogress-${c}-${t}-${u}-${l}`),o==="history"&&e.jsx(S,{mode:"history",projectFilter:u,developerFilter:l},`history-${c}-${t}-${u}-${l}`)]})}export{fe as default};
|