@hotmeshio/long-tail 0.1.7 → 0.1.8
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/README.md +3 -1
- package/build/api/auth.d.ts +11 -0
- package/build/api/auth.js +11 -0
- package/build/api/bot-accounts.d.ts +87 -0
- package/build/api/bot-accounts.js +87 -0
- package/build/api/controlplane.d.ts +48 -0
- package/build/api/controlplane.js +48 -0
- package/build/api/dba.d.ts +27 -0
- package/build/api/dba.js +27 -0
- package/build/api/escalations.d.ts +201 -0
- package/build/api/escalations.js +236 -0
- package/build/api/exports.d.ts +58 -0
- package/build/api/exports.js +58 -0
- package/build/api/insight.d.ts +57 -0
- package/build/api/insight.js +57 -0
- package/build/api/maintenance.d.ts +15 -0
- package/build/api/maintenance.js +15 -0
- package/build/api/mcp-runs.d.ts +27 -0
- package/build/api/mcp-runs.js +27 -0
- package/build/api/mcp.d.ts +108 -0
- package/build/api/mcp.js +108 -0
- package/build/api/namespaces.d.ts +13 -0
- package/build/api/namespaces.js +13 -0
- package/build/api/roles.d.ts +63 -0
- package/build/api/roles.js +63 -5
- package/build/api/settings.d.ts +8 -0
- package/build/api/settings.js +8 -0
- package/build/api/tasks.d.ts +43 -0
- package/build/api/tasks.js +43 -0
- package/build/api/users.d.ts +71 -0
- package/build/api/users.js +71 -5
- package/build/api/workflow-sets.d.ts +51 -0
- package/build/api/workflow-sets.js +51 -0
- package/build/api/workflows.d.ts +110 -0
- package/build/api/workflows.js +109 -0
- package/build/api/yaml-workflows.d.ts +195 -0
- package/build/api/yaml-workflows.js +195 -0
- package/build/examples/types/envelopes.d.ts +27 -0
- package/build/examples/types/index.d.ts +1 -1
- package/build/examples/workers.js +8 -0
- package/build/examples/workflows/assembly-line/activities.d.ts +28 -0
- package/build/examples/workflows/assembly-line/activities.js +53 -0
- package/build/examples/workflows/assembly-line/index.d.ts +17 -0
- package/build/examples/workflows/assembly-line/index.js +60 -0
- package/build/examples/workflows/assembly-line/iterator.d.ts +12 -0
- package/build/examples/workflows/assembly-line/iterator.js +54 -0
- package/build/examples/workflows/assembly-line/reverter.d.ts +18 -0
- package/build/examples/workflows/assembly-line/reverter.js +89 -0
- package/build/examples/workflows/assembly-line/types.d.ts +25 -0
- package/build/examples/workflows/assembly-line/types.js +8 -0
- package/build/examples/workflows/assembly-line/worker.d.ts +13 -0
- package/build/examples/workflows/assembly-line/worker.js +81 -0
- package/build/routes/escalations/list.js +22 -0
- package/build/routes/workflows/invocation.js +15 -9
- package/build/sdk/index.d.ts +11 -0
- package/build/sdk/index.js +1 -0
- package/build/services/workflow-invocation.d.ts +15 -2
- package/build/services/workflow-invocation.js +11 -6
- package/build/tsconfig.tsbuildinfo +1 -1
- package/dashboard/dist/assets/{AdminDashboard-DRjkRSjJ.js → AdminDashboard-B15jSEV2.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DRjkRSjJ.js.map → AdminDashboard-B15jSEV2.js.map} +1 -1
- package/dashboard/dist/assets/{AvailableEscalationsPage-CnivX4Tz.js → AvailableEscalationsPage-0V2yvKak.js} +2 -2
- package/dashboard/dist/assets/{AvailableEscalationsPage-CnivX4Tz.js.map → AvailableEscalationsPage-0V2yvKak.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-DwwaBhTH.js → BotPicker-B4UxHcek.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-DwwaBhTH.js.map → BotPicker-B4UxHcek.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-DQpaVA0M.js → CollapsibleSection-BBexNWVd.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-DQpaVA0M.js.map → CollapsibleSection-BBexNWVd.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-B7JoDNvt.js → ConfirmDeleteModal-DlPDJSq_.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-B7JoDNvt.js.map → ConfirmDeleteModal-DlPDJSq_.js.map} +1 -1
- package/dashboard/dist/assets/{CopyableId-AqoZayBG.js → CopyableId-BxHW1ahb.js} +2 -2
- package/dashboard/dist/assets/{CopyableId-AqoZayBG.js.map → CopyableId-BxHW1ahb.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-qGw1kQzi.js → CredentialsPage-Bp_Y1Szk.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-qGw1kQzi.js.map → CredentialsPage-Bp_Y1Szk.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-D1HUQcd0.js → CustomDurationPicker-ByBFqXSO.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-D1HUQcd0.js.map → CustomDurationPicker-ByBFqXSO.js.map} +1 -1
- package/dashboard/dist/assets/{DataTable-DKvSKoVG.js → DataTable-DyIXg-tQ.js} +2 -2
- package/dashboard/dist/assets/{DataTable-DKvSKoVG.js.map → DataTable-DyIXg-tQ.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-B0yrReGQ.js → ElapsedCell-BgnA0qpS.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-B0yrReGQ.js.map → ElapsedCell-BgnA0qpS.js.map} +1 -1
- package/dashboard/dist/assets/{EmptyState-X0fIzYID.js → EmptyState-DlMImvgm.js} +2 -2
- package/dashboard/dist/assets/{EmptyState-X0fIzYID.js.map → EmptyState-DlMImvgm.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-BQAT9W7r.js → EscalationsOverview-D90kdfw1.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-BQAT9W7r.js.map → EscalationsOverview-D90kdfw1.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-CX1KNLhZ.js → EventTable-BNxtlgNz.js} +2 -2
- package/dashboard/dist/assets/{EventTable-CX1KNLhZ.js.map → EventTable-BNxtlgNz.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-DMTvuQy-.js → FilterBar-BTiaAhCx.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-DMTvuQy-.js.map → FilterBar-BTiaAhCx.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-DTOSxoEy.js → ListToolbar-BUcagSCn.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-DTOSxoEy.js.map → ListToolbar-BUcagSCn.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-BaKTIWrG.js → McpOverview-B-tCvz8C.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-BaKTIWrG.js.map → McpOverview-B-tCvz8C.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-CC08T5k8.js → McpQueryDetailPage-DPlF1wYb.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-CC08T5k8.js.map → McpQueryDetailPage-DPlF1wYb.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-CVfF9dYg.js → McpQueryPage-Bz7AdcfR.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-CVfF9dYg.js.map → McpQueryPage-Bz7AdcfR.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-CKs1RWeV.js → McpRunDetailPage-Di_qpL2V.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-CKs1RWeV.js.map → McpRunDetailPage-Di_qpL2V.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-CcPD_tY1.js → McpRunsPage-BBgybBEa.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-CcPD_tY1.js.map → McpRunsPage-BBgybBEa.js.map} +1 -1
- package/dashboard/dist/assets/{Modal-_2AbWxJT.js → Modal-CaJ0gTEa.js} +2 -2
- package/dashboard/dist/assets/{Modal-_2AbWxJT.js.map → Modal-CaJ0gTEa.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-BGiRaRDr.js → OperatorDashboard-DDfMmrmR.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-BGiRaRDr.js.map → OperatorDashboard-DDfMmrmR.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-DVr5Qyzm.js → PageHeader-C5D-G5rp.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-DVr5Qyzm.js.map → PageHeader-C5D-G5rp.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-D0KRASML.js → PageHeaderWithStats-DCa2eZh2.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-D0KRASML.js.map → PageHeaderWithStats-DCa2eZh2.js.map} +1 -1
- package/dashboard/dist/assets/{PriorityBadge-Bx2559OU.js → PriorityBadge-DTHq6OUZ.js} +2 -2
- package/dashboard/dist/assets/{PriorityBadge-Bx2559OU.js.map → PriorityBadge-DTHq6OUZ.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-69I--sry.js → ProcessDetailPage-fC4dhrd0.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-69I--sry.js.map → ProcessDetailPage-fC4dhrd0.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-BDpUbua2.js → ProcessesListPage-CL2MY8uD.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-BDpUbua2.js.map → ProcessesListPage-CL2MY8uD.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-CcAqEaSt.js → RolePill-kgKPANly.js} +2 -2
- package/dashboard/dist/assets/{RolePill-CcAqEaSt.js.map → RolePill-kgKPANly.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-Cl23Hjet.js → RolesPage-Be2lXTHD.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-Cl23Hjet.js.map → RolesPage-Be2lXTHD.js.map} +1 -1
- package/dashboard/dist/assets/{RowActions-B4mqIt3Z.js → RowActions-DIzJCwqR.js} +2 -2
- package/dashboard/dist/assets/{RowActions-B4mqIt3Z.js.map → RowActions-DIzJCwqR.js.map} +1 -1
- package/dashboard/dist/assets/{StatCard-Cz_2OjAZ.js → StatCard-CRi2Jy6t.js} +2 -2
- package/dashboard/dist/assets/{StatCard-Cz_2OjAZ.js.map → StatCard-CRi2Jy6t.js.map} +1 -1
- package/dashboard/dist/assets/{StatusBadge-Wi2FJZsn.js → StatusBadge-BETI_8Mr.js} +2 -2
- package/dashboard/dist/assets/{StatusBadge-Wi2FJZsn.js.map → StatusBadge-BETI_8Mr.js.map} +1 -1
- package/dashboard/dist/assets/{StepIndicator-PW5NRDMb.js → StepIndicator-DjpMqCjz.js} +2 -2
- package/dashboard/dist/assets/{StepIndicator-PW5NRDMb.js.map → StepIndicator-DjpMqCjz.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-Bl2Uzz65.js → StickyPagination-BZbExQ9t.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-Bl2Uzz65.js.map → StickyPagination-BZbExQ9t.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-CUPqMd0z.js → SwimlaneTimeline-DZthQyhR.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-CUPqMd0z.js.map → SwimlaneTimeline-DZthQyhR.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-BLtf86Ly.js → TagInput-CukbOfYn.js} +2 -2
- package/dashboard/dist/assets/{TagInput-BLtf86Ly.js.map → TagInput-CukbOfYn.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-BXJFX74D.js → TaskDetailPage-CIZHIKo9.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-BXJFX74D.js.map → TaskDetailPage-CIZHIKo9.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-CWYj3xKe.js → TaskQueuePill-Q7DGoysj.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-CWYj3xKe.js.map → TaskQueuePill-Q7DGoysj.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-C3cX94Mw.js → TasksListPage-CsC9wjb0.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-C3cX94Mw.js.map → TasksListPage-CsC9wjb0.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-B_5yDDHV.js → TimeAgo-BcOOnJeH.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-B_5yDDHV.js.map → TimeAgo-BcOOnJeH.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-DRX724uU.js → TimestampCell-CEMapYDQ.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-DRX724uU.js.map → TimestampCell-CEMapYDQ.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-Ca8FA469.js → UserName-BHoN7iRL.js} +2 -2
- package/dashboard/dist/assets/{UserName-Ca8FA469.js.map → UserName-BHoN7iRL.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-BBYWEV2P.js → WorkflowExecutionPage-DawKl1LT.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-BBYWEV2P.js.map → WorkflowExecutionPage-DawKl1LT.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-BXifAuLi.js → WorkflowPill-CP84Vqeg.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-BXifAuLi.js.map → WorkflowPill-CP84Vqeg.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-Drl3juz9.js → WorkflowsDashboard-QrvVFxtQ.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-Drl3juz9.js.map → WorkflowsDashboard-QrvVFxtQ.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-03IRrDLg.js → WorkflowsOverview-DuhAi_OY.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-03IRrDLg.js.map → WorkflowsOverview-DuhAi_OY.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-DC2cLxVi.js → YamlWorkflowsPage-Dc9xw82a.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-DC2cLxVi.js.map → YamlWorkflowsPage-Dc9xw82a.js.map} +1 -1
- package/dashboard/dist/assets/{bots-DZEXcgiJ.js → bots-Dny-rmmI.js} +2 -2
- package/dashboard/dist/assets/{bots-DZEXcgiJ.js.map → bots-Dny-rmmI.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-Cw48lNaF.js → escalation-CV0sKNH5.js} +2 -2
- package/dashboard/dist/assets/{escalation-Cw48lNaF.js.map → escalation-CV0sKNH5.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-NINpo3qf.js → escalation-columns-30CKyoWI.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-NINpo3qf.js.map → escalation-columns-30CKyoWI.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-fk_qr729.js → helpers-C1-30CzH.js} +2 -2
- package/dashboard/dist/assets/{helpers-fk_qr729.js.map → helpers-C1-30CzH.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-Cuu3xKfr.js → helpers-C1jaRD-d.js} +2 -2
- package/dashboard/dist/assets/{helpers-Cuu3xKfr.js.map → helpers-C1jaRD-d.js.map} +1 -1
- package/dashboard/dist/assets/{index-CNI7k7oB.js → index-BUVQ6wmy.js} +2 -2
- package/dashboard/dist/assets/{index-CNI7k7oB.js.map → index-BUVQ6wmy.js.map} +1 -1
- package/dashboard/dist/assets/{index-aRvL-dXp.js → index-CxVB7F4X.js} +2 -2
- package/dashboard/dist/assets/{index-aRvL-dXp.js.map → index-CxVB7F4X.js.map} +1 -1
- package/dashboard/dist/assets/{index-BIG3KooI.js → index-D-oCWCAS.js} +2 -2
- package/dashboard/dist/assets/{index-BIG3KooI.js.map → index-D-oCWCAS.js.map} +1 -1
- package/dashboard/dist/assets/{index-b03HlbnH.js → index-D0wPM3Ck.js} +2 -2
- package/dashboard/dist/assets/{index-b03HlbnH.js.map → index-D0wPM3Ck.js.map} +1 -1
- package/dashboard/dist/assets/{index-DwRytW9O.js → index-DHgnkykj.js} +2 -2
- package/dashboard/dist/assets/{index-DwRytW9O.js.map → index-DHgnkykj.js.map} +1 -1
- package/dashboard/dist/assets/{index-Dj-z-x8M.js → index-D_aJBEAG.js} +2 -2
- package/dashboard/dist/assets/{index-Dj-z-x8M.js.map → index-D_aJBEAG.js.map} +1 -1
- package/dashboard/dist/assets/{index-CORHB0WC.js → index-Dd_U4mLm.js} +2 -2
- package/dashboard/dist/assets/{index-CORHB0WC.js.map → index-Dd_U4mLm.js.map} +1 -1
- package/dashboard/dist/assets/{index-BwN3KP_L.js → index-DnmZbNxk.js} +7 -7
- package/dashboard/dist/assets/index-DnmZbNxk.js.map +1 -0
- package/dashboard/dist/assets/{index-B98ipWxE.js → index-_RBvi7s6.js} +2 -2
- package/dashboard/dist/assets/{index-B98ipWxE.js.map → index-_RBvi7s6.js.map} +1 -1
- package/dashboard/dist/assets/{index-Bxe8h1x4.js → index-n7td8zgX.js} +2 -2
- package/dashboard/dist/assets/{index-Bxe8h1x4.js.map → index-n7td8zgX.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-BZoFryNc.js → mcp-CRFr4L9W.js} +2 -2
- package/dashboard/dist/assets/{mcp-BZoFryNc.js.map → mcp-CRFr4L9W.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-wiw1kwm8.js → mcp-query-DHY2mZBQ.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-wiw1kwm8.js.map → mcp-query-DHY2mZBQ.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-runs-BaEKnf5v.js → mcp-runs-BqPHqwAO.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-BaEKnf5v.js.map → mcp-runs-BqPHqwAO.js.map} +1 -1
- package/dashboard/dist/assets/{namespaces-BwnZI4_A.js → namespaces-TG1aIpo_.js} +2 -2
- package/dashboard/dist/assets/{namespaces-BwnZI4_A.js.map → namespaces-TG1aIpo_.js.map} +1 -1
- package/dashboard/dist/assets/{roles-Bgn1K8zU.js → roles-DhhLTvXg.js} +2 -2
- package/dashboard/dist/assets/{roles-Bgn1K8zU.js.map → roles-DhhLTvXg.js.map} +1 -1
- package/dashboard/dist/assets/{settings-CizYiutL.js → settings-D9MBzEeB.js} +2 -2
- package/dashboard/dist/assets/{settings-CizYiutL.js.map → settings-D9MBzEeB.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-Bmte_hc4.js → tasks-BxmcZoev.js} +2 -2
- package/dashboard/dist/assets/{tasks-Bmte_hc4.js.map → tasks-BxmcZoev.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-CUCxpiI2.js → useEventHooks-BylecvvI.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-CUCxpiI2.js.map → useEventHooks-BylecvvI.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-Cum02Ej9.js → useYamlActivityEvents-ocmj11e_.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-Cum02Ej9.js.map → useYamlActivityEvents-ocmj11e_.js.map} +1 -1
- package/dashboard/dist/assets/{users-NSDgTt-z.js → users-Ce5r-JAv.js} +2 -2
- package/dashboard/dist/assets/{users-NSDgTt-z.js.map → users-Ce5r-JAv.js.map} +1 -1
- package/dashboard/dist/assets/{workflows-k0XRdGXx.js → workflows-ykIeVbRJ.js} +2 -2
- package/dashboard/dist/assets/{workflows-k0XRdGXx.js.map → workflows-ykIeVbRJ.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-DAre8I78.js → yaml-workflows-WypmKYht.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-DAre8I78.js.map → yaml-workflows-WypmKYht.js.map} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/docs/api/sdk/auth.md +27 -0
- package/docs/api/sdk/bot-accounts.md +243 -0
- package/docs/api/sdk/controlplane.md +103 -0
- package/docs/api/sdk/dba.md +52 -0
- package/docs/api/sdk/escalations.md +374 -0
- package/docs/api/sdk/events.md +68 -0
- package/docs/api/sdk/exports.md +124 -0
- package/docs/api/sdk/insight.md +112 -0
- package/docs/api/sdk/maintenance.md +54 -0
- package/docs/api/sdk/mcp-runs.md +71 -0
- package/docs/api/sdk/mcp.md +250 -0
- package/docs/api/sdk/namespaces.md +43 -0
- package/docs/api/sdk/roles.md +183 -0
- package/docs/api/sdk/settings.md +24 -0
- package/docs/api/sdk/tasks.md +120 -0
- package/docs/api/sdk/users.md +196 -0
- package/docs/api/sdk/workflow-sets.md +135 -0
- package/docs/api/sdk/workflows.md +271 -0
- package/docs/api/sdk/yaml-workflows.md +408 -0
- package/package.json +1 -1
- package/dashboard/dist/assets/index-BwN3KP_L.js.map +0 -1
- package/docs/epic-integration.md +0 -224
- package/docs/workflow-builder.md +0 -371
- /package/docs/api/{dba.md → http/dba.md} +0 -0
- /package/docs/api/{escalations.md → http/escalations.md} +0 -0
- /package/docs/api/{exports.md → http/exports.md} +0 -0
- /package/docs/api/{maintenance.md → http/maintenance.md} +0 -0
- /package/docs/api/{mcp-runs.md → http/mcp-runs.md} +0 -0
- /package/docs/api/{mcp-servers.md → http/mcp-servers.md} +0 -0
- /package/docs/api/{namespaces.md → http/namespaces.md} +0 -0
- /package/docs/api/{roles.md → http/roles.md} +0 -0
- /package/docs/api/{service-accounts.md → http/service-accounts.md} +0 -0
- /package/docs/api/{settings.md → http/settings.md} +0 -0
- /package/docs/api/{tasks.md → http/tasks.md} +0 -0
- /package/docs/api/{users.md → http/users.md} +0 -0
- /package/docs/api/{workflows.md → http/workflows.md} +0 -0
- /package/docs/api/{yaml-workflows.md → http/yaml-workflows.md} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"./index-BwN3KP_L.js";import{a as u}from"./vendor-query-DLp59M9_.js";import{b as A,c as T,d as K,e as I,f as F,u as z}from"./users-NSDgTt-z.js";import{u as C}from"./useFilterParams-BUyLHcx_.js";import{D as U}from"./DataTable-DKvSKoVG.js";import{S as k}from"./StickyPagination-Bl2Uzz65.js";import{F as $,b as O}from"./FilterBar-DMTvuQy-.js";import{T as w}from"./TimestampCell-DRX724uU.js";import{C as y}from"./ConfirmDeleteModal-B7JoDNvt.js";import{R as M,a as D}from"./RowActions-B4mqIt3Z.js";import{P as S}from"./PageHeader-DVr5Qyzm.js";import{R as E}from"./RolePill-CcAqEaSt.js";import{M as j}from"./Modal-_2AbWxJT.js";import{a as G,b as L,c as q,d as H,e as J,f as Q,g as W,h as X,u as Y}from"./bots-DZEXcgiJ.js";import{u as R}from"./roles-Bgn1K8zU.js";import{T as Z}from"./TimeAgo-B_5yDDHV.js";import{H as ee,J as se,ag as ae,j as P,a9 as te,x as _,U as ie,a2 as re}from"./vendor-icons-D1DdudfH.js";import{f as le}from"./vendor-react-Co3Y8ikm.js";import"./EmptyState-X0fIzYID.js";function oe({open:t,onClose:l}){const s=A(),[i,r]=u.useState({external_id:"",email:"",display_name:"",password:""}),[d,p]=u.useState(t);t!==d&&(p(t),t&&r({external_id:"",email:"",display_name:"",password:""}));const c=()=>{i.external_id.trim()&&s.mutate({external_id:i.external_id.trim(),email:i.email.trim()||void 0,display_name:i.display_name.trim()||void 0,password:i.password||void 0},{onSuccess:l})},m=(a,o)=>r(N=>({...N,[a]:o}));return e.jsxDEV(j,{open:t,onClose:l,title:"Create User",children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"External ID (required)"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:46,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.external_id,onChange:a=>m("external_id",a.target.value),placeholder:"e.g., john.doe",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:49,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:45,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Display Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:58,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.display_name,onChange:a=>m("display_name",a.target.value),placeholder:"John Doe",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:61,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:57,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Email"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:70,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.email,onChange:a=>m("email",a.target.value),placeholder:"john@example.com",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:73,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:69,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Password"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:82,columnNumber:11},this),e.jsxDEV("input",{type:"password",value:i.password,onChange:a=>m("password",a.target.value),placeholder:"Leave blank for no password",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:85,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:81,columnNumber:9},this),s.error&&e.jsxDEV("p",{className:"text-xs text-status-error",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:95,columnNumber:11},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:l,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:99,columnNumber:11},this),e.jsxDEV("button",{onClick:c,disabled:!i.external_id.trim()||s.isPending,className:"btn-primary text-xs",children:s.isPending?"Creating...":"Create"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:102,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:98,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:44,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:43,columnNumber:5},this)}function ne({open:t,onClose:l,user:s}){const i=T(),[r,d]=u.useState({display_name:"",email:"",status:"active"}),[p,c]=u.useState(s);s!==p&&(c(s),s&&d({display_name:s.display_name??"",email:s.email??"",status:s.status}));const m=()=>{s&&i.mutate({id:s.id,display_name:r.display_name.trim()||void 0,email:r.email.trim()||void 0,status:r.status},{onSuccess:l})};return e.jsxDEV(j,{open:t,onClose:l,title:`Edit — ${(s==null?void 0:s.display_name)||(s==null?void 0:s.external_id)||""}`,children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Display Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:55,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:r.display_name,onChange:a=>d(o=>({...o,display_name:a.target.value})),className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:58,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:54,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Email"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:66,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:r.email,onChange:a=>d(o=>({...o,email:a.target.value})),className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:69,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:65,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Status"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:77,columnNumber:11},this),e.jsxDEV("select",{value:r.status,onChange:a=>d(o=>({...o,status:a.target.value})),className:"select text-xs w-full",children:[e.jsxDEV("option",{value:"active",children:"Active"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:85,columnNumber:13},this),e.jsxDEV("option",{value:"inactive",children:"Inactive"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:86,columnNumber:13},this),e.jsxDEV("option",{value:"suspended",children:"Suspended"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:87,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:80,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:76,columnNumber:9},this),i.error&&e.jsxDEV("p",{className:"text-xs text-status-error",children:i.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:92,columnNumber:11},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:l,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:96,columnNumber:11},this),e.jsxDEV("button",{onClick:m,disabled:i.isPending,className:"btn-primary text-xs",children:i.isPending?"Saving...":"Save"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:99,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:95,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:53,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:48,columnNumber:5},this)}function de({open:t,onClose:l}){const s=G(),[i,r]=u.useState({name:"",display_name:"",description:""}),[d,p]=u.useState(t);t!==d&&(p(t),t&&r({name:"",display_name:"",description:""}));const c=()=>{i.name.trim()&&s.mutate({name:i.name.trim(),display_name:i.display_name.trim()||void 0,description:i.description.trim()||void 0},{onSuccess:l})},m=(a,o)=>r(N=>({...N,[a]:o}));return e.jsxDEV(j,{open:t,onClose:l,title:"Create Bot",children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Name (required)"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:44,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.name,onChange:a=>m("name",a.target.value.replace(/\s+/g,"-").toLowerCase()),placeholder:"e.g., ci-bot",className:"input text-xs w-full font-mono"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:47,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:43,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Display Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:56,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.display_name,onChange:a=>m("display_name",a.target.value),placeholder:"CI Bot",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:59,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:55,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Description"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:68,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.description,onChange:a=>m("description",a.target.value),placeholder:"Runs scheduled workflows",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:71,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:67,columnNumber:9},this),s.error&&e.jsxDEV("p",{className:"text-xs text-status-error",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:81,columnNumber:11},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:l,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:85,columnNumber:11},this),e.jsxDEV("button",{onClick:c,disabled:!i.name.trim()||s.isPending,className:"btn-primary text-xs",children:s.isPending?"Creating...":"Create"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:88,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:42,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:41,columnNumber:5},this)}function me({open:t,onClose:l,bot:s}){const i=L(),[r,d]=u.useState({display_name:"",description:"",status:"active"}),[p,c]=u.useState(s);s!==p&&(c(s),s&&d({display_name:s.display_name??"",description:s.description??"",status:s.status}));const m=()=>{s&&i.mutate({id:s.id,display_name:r.display_name.trim()||void 0,description:r.description.trim()||void 0,status:r.status},{onSuccess:l})};return e.jsxDEV(j,{open:t,onClose:l,title:`Edit — ${(s==null?void 0:s.display_name)||(s==null?void 0:s.external_id)||""}`,children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Display Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:55,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:r.display_name,onChange:a=>d(o=>({...o,display_name:a.target.value})),className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:58,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:54,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Description"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:66,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:r.description,onChange:a=>d(o=>({...o,description:a.target.value})),className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:69,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:65,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Status"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:77,columnNumber:11},this),e.jsxDEV("select",{value:r.status,onChange:a=>d(o=>({...o,status:a.target.value})),className:"select text-xs w-full",children:[e.jsxDEV("option",{value:"active",children:"Active"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:85,columnNumber:13},this),e.jsxDEV("option",{value:"inactive",children:"Inactive"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:86,columnNumber:13},this),e.jsxDEV("option",{value:"suspended",children:"Suspended"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:87,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:80,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:76,columnNumber:9},this),i.error&&e.jsxDEV("p",{className:"text-xs text-status-error",children:i.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:92,columnNumber:11},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:l,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:96,columnNumber:11},this),e.jsxDEV("button",{onClick:m,disabled:i.isPending,className:"btn-primary text-xs",children:i.isPending?"Saving...":"Save"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:99,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:95,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:53,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:48,columnNumber:5},this)}function ue({botId:t}){const{data:l}=q(t),s=H(),i=J(),[r,d]=u.useState(""),[p,c]=u.useState(null),[m,a]=u.useState(!1),[o,N]=u.useState(null),g=(l==null?void 0:l.keys)??[],n=()=>{r.trim()&&s.mutate({botId:t,name:r.trim(),scopes:["mcp:tool:call"]},{onSuccess:f=>{c(f.rawKey),d("")}})},h=()=>{p&&(navigator.clipboard.writeText(p),a(!0),setTimeout(()=>a(!1),2e3))},v=()=>{o&&i.mutate({botId:t,keyId:o.id},{onSuccess:()=>N(null)})};return e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-3",children:"API Keys"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:58,columnNumber:7},this),p&&e.jsxDEV("div",{className:"mb-3 p-3 bg-status-success/10 border border-status-success/30 rounded-md",children:[e.jsxDEV("p",{className:"text-[10px] font-semibold text-status-success mb-1",children:"Key generated — copy now, it won't be shown again"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:64,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("code",{className:"text-[11px] font-mono text-text-primary bg-surface-sunken px-2 py-1 rounded flex-1 overflow-hidden text-ellipsis",children:p},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:68,columnNumber:13},this),e.jsxDEV("button",{onClick:h,className:"text-text-tertiary hover:text-text-primary shrink-0",title:"Copy to clipboard",children:m?e.jsxDEV(ee,{className:"w-3.5 h-3.5 text-status-success"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:76,columnNumber:25},this):e.jsxDEV(se,{className:"w-3.5 h-3.5"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:76,columnNumber:81},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:71,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:67,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:63,columnNumber:9},this),g.length===0?e.jsxDEV("p",{className:"text-xs text-text-tertiary mb-3",children:"No API keys."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:83,columnNumber:9},this):e.jsxDEV("div",{className:"space-y-1.5 mb-3",children:g.map(f=>e.jsxDEV("div",{className:"group/key flex items-center justify-between px-2.5 py-1.5 bg-surface-sunken rounded text-xs",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(ae,{className:"w-3 h-3 text-text-tertiary"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:92,columnNumber:17},this),e.jsxDEV("span",{className:"text-text-primary font-mono",children:f.name},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:93,columnNumber:17},this),f.last_used_at&&e.jsxDEV("span",{className:"text-[10px] text-text-tertiary",children:["used ",e.jsxDEV(Z,{date:f.last_used_at},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:96,columnNumber:26},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:95,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:91,columnNumber:15},this),e.jsxDEV("button",{onClick:()=>N(f),className:"opacity-0 group-hover/key:opacity-100 transition-opacity text-text-tertiary hover:text-status-error",title:"Revoke key",children:e.jsxDEV(P,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:105,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:100,columnNumber:15},this)]},f.id,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:87,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:85,columnNumber:9},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("input",{type:"text",value:r,onChange:f=>d(f.target.value),placeholder:"Key name...",className:"input text-xs flex-1 font-mono"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:113,columnNumber:9},this),e.jsxDEV("button",{onClick:n,disabled:!r.trim()||s.isPending,className:"btn-primary text-xs inline-flex items-center gap-1",children:[e.jsxDEV(te,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:125,columnNumber:11},this),s.isPending?"...":"Generate"]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:120,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:112,columnNumber:7},this),s.error&&e.jsxDEV("p",{className:"text-[10px] text-status-error mt-1",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:130,columnNumber:9},this),e.jsxDEV(y,{open:!!o,onClose:()=>N(null),onConfirm:v,title:"Revoke API Key",description:e.jsxDEV(e.Fragment,{children:["Revoke API key"," ",e.jsxDEV("span",{className:"font-medium text-text-primary font-mono",children:o==null?void 0:o.name},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:141,columnNumber:13},this),"? This bot will no longer be able to authenticate with this key."]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:139,columnNumber:11},this),isPending:i.isPending,error:i.error},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:133,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:57,columnNumber:5},this)}function ce({bot:t}){const{data:l}=R(),s=Q(),i=W(),[r,d]=u.useState(""),[p,c]=u.useState("member"),m=(l==null?void 0:l.roles)??[],a=t.roles??[],o=u.useMemo(()=>{const n=new Set(a.map(h=>h.role));return m.filter(h=>!n.has(h))},[m,a]),N=()=>{r.trim()&&s.mutate({botId:t.id,role:r.trim(),type:p},{onSuccess:()=>{d(""),c("member")}})},g=n=>{i.mutate({botId:t.id,role:n})};return e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-3",children:"Roles"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:183,columnNumber:7},this),a.length===0?e.jsxDEV("p",{className:"text-xs text-text-tertiary mb-3",children:"No roles assigned."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:188,columnNumber:9},this):e.jsxDEV("div",{className:"flex flex-wrap gap-2 mb-3",children:a.map(n=>e.jsxDEV("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs bg-surface-sunken rounded-full text-text-secondary",children:[e.jsxDEV(E,{role:n.role},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:196,columnNumber:15},this),e.jsxDEV("span",{className:"text-[9px] text-text-tertiary",children:n.type},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:197,columnNumber:15},this),e.jsxDEV("button",{onClick:()=>g(n.role),className:"text-text-tertiary hover:text-status-error transition-colors ml-0.5",title:`Remove ${n.role}`,children:"×"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:198,columnNumber:15},this)]},n.role,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:192,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:190,columnNumber:9},this),o.length>0&&e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("select",{value:r,onChange:n=>d(n.target.value),className:"select text-xs font-mono flex-1",children:[e.jsxDEV("option",{value:"",children:"Select a role..."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:217,columnNumber:13},this),o.map(n=>e.jsxDEV("option",{value:n,children:n},n,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:219,columnNumber:15},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:212,columnNumber:11},this),e.jsxDEV("select",{value:p,onChange:n=>c(n.target.value),className:"select text-xs w-24",children:[e.jsxDEV("option",{value:"member",children:"member"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:227,columnNumber:13},this),e.jsxDEV("option",{value:"admin",children:"admin"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:228,columnNumber:13},this),e.jsxDEV("option",{value:"superadmin",children:"superadmin"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:229,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:222,columnNumber:11},this),e.jsxDEV("button",{onClick:N,disabled:!r||s.isPending,className:"btn-primary text-xs",children:s.isPending?"...":"Add"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:231,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:211,columnNumber:9},this),s.error&&e.jsxDEV("p",{className:"text-[10px] text-status-error mt-1",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:241,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:182,columnNumber:5},this)}function pe({bot:t}){return t?e.jsxDEV("div",{className:"border-l border-surface-border pl-6 pt-4 min-h-[300px] space-y-6",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm text-text-primary",children:t.display_name||t.external_id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:261,columnNumber:9},this),t.description&&e.jsxDEV("p",{className:"text-xs text-text-tertiary mt-0.5",children:t.description},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:263,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:260,columnNumber:7},this),e.jsxDEV(ue,{botId:t.id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:267,columnNumber:7},this),e.jsxDEV(ce,{bot:t},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:268,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:259,columnNumber:5},this):e.jsxDEV("div",{className:"border-l border-surface-border pl-6 pt-4 min-h-[300px]",children:e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:"Select a bot to manage its API keys and roles."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:251,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:250,columnNumber:7},this)}const be={active:"bg-status-success",inactive:"bg-text-tertiary",suspended:"bg-status-error"};function Ne({embedded:t=!1}){const{pagination:l}=C({filters:{}}),s=X(),[i,r]=u.useState(!1),[d,p]=u.useState(null),[c,m]=u.useState(null),[a,o]=u.useState(null),{data:N,isLoading:g}=Y({limit:l.pageSize,offset:l.offset}),n=(N==null?void 0:N.total)??0,h=(N==null?void 0:N.bots)??[],v=u.useMemo(()=>c?h.find(x=>x.id===c.id)??c:null,[h,c]),f=[{key:"display_name",label:"Bot",render:x=>e.jsxDEV("div",{className:"flex items-center gap-2.5",children:[e.jsxDEV("span",{className:`w-2 h-2 rounded-full shrink-0 ${be[x.status]??"bg-status-pending"}`,title:x.status},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:51,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm text-text-primary",children:x.display_name||x.external_id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:56,columnNumber:13},this),x.description&&e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:x.description},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:60,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:55,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:50,columnNumber:9},this)},{key:"roles",label:"Roles",render:x=>e.jsxDEV("div",{className:"flex gap-1 flex-wrap",children:(x.roles??[]).map(b=>e.jsxDEV(E,{role:b.role},b.role,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:72,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:70,columnNumber:9},this)},{key:"created_at",label:"Created",render:x=>e.jsxDEV(w,{date:x.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:80,columnNumber:24},this),className:"w-44"},{key:"actions",label:"",render:x=>e.jsxDEV(M,{children:[e.jsxDEV(D,{icon:_,title:"Edit bot",onClick:()=>p(x)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:88,columnNumber:11},this),e.jsxDEV(D,{icon:P,title:"Delete bot",onClick:()=>o(x),colorClass:"text-text-tertiary hover:text-status-error"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:93,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:87,columnNumber:9},this),className:"w-16 text-right"}],V=()=>{a&&s.mutate(a.id,{onSuccess:()=>{o(null),(c==null?void 0:c.id)===a.id&&m(null)}})};return e.jsxDEV("div",{children:[t?e.jsxDEV("div",{className:"flex justify-end mb-4",children:e.jsxDEV("button",{onClick:()=>r(!0),className:"btn-primary text-xs",children:"Add Bot"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:119,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:118,columnNumber:9},this):e.jsxDEV(S,{title:"Service Accounts",actions:e.jsxDEV("button",{onClick:()=>r(!0),className:"btn-primary text-xs",children:"Add Bot"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:127,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:124,columnNumber:9},this),e.jsxDEV("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_360px] gap-6",children:[e.jsxDEV("div",{className:"overflow-x-clip",children:[e.jsxDEV(U,{columns:f,data:h,keyFn:x=>x.id,isLoading:g,emptyMessage:"No bots yet",onRowClick:x=>m(x),activeRowKey:(v==null?void 0:v.id)??null},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:136,columnNumber:11},this),e.jsxDEV(k,{page:l.page,totalPages:l.totalPages(n),onPageChange:l.setPage,total:n,pageSize:l.pageSize,onPageSizeChange:l.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:146,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:135,columnNumber:9},this),e.jsxDEV(pe,{bot:v},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:156,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:134,columnNumber:7},this),e.jsxDEV(de,{open:i,onClose:()=>r(!1)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:159,columnNumber:7},this),e.jsxDEV(me,{open:!!d,onClose:()=>p(null),bot:d},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:161,columnNumber:7},this),e.jsxDEV(y,{open:!!a,onClose:()=>o(null),onConfirm:V,title:"Delete Bot",description:e.jsxDEV(e.Fragment,{children:["Delete"," ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:(a==null?void 0:a.display_name)||(a==null?void 0:a.external_id)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:175,columnNumber:13},this),"? This will also revoke all API keys. This action cannot be undone."]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:173,columnNumber:11},this),isPending:s.isPending,error:s.error},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:167,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:116,columnNumber:5},this)}function xe({user:t}){const{data:l}=R(),s=K(),i=I(),[r,d]=u.useState(""),[p,c]=u.useState("member"),m=(l==null?void 0:l.roles)??[],a=(t==null?void 0:t.roles)??[],o=u.useMemo(()=>{const n=new Set(a.map(h=>h.role));return m.filter(h=>!n.has(h))},[m,a]),N=()=>{!t||!r.trim()||s.mutate({userId:t.id,role:r.trim(),type:p},{onSuccess:()=>{d(""),c("member")}})},g=n=>{t&&i.mutate({userId:t.id,role:n})};return e.jsxDEV("div",{className:"border-l border-surface-border pl-6 pt-4 min-h-[300px]",children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-4",children:"Role Membership"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:37,columnNumber:7},this),t?e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm text-text-primary",children:t.display_name||t.external_id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:48,columnNumber:13},this),e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:"Member of:"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:49,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:47,columnNumber:11},this),a.length===0?e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:"No roles assigned."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:53,columnNumber:13},this):e.jsxDEV("div",{className:"flex flex-wrap gap-2",children:a.map(n=>e.jsxDEV("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs bg-surface-sunken rounded-full text-text-secondary",children:[e.jsxDEV(E,{role:n.role},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:61,columnNumber:19},this),e.jsxDEV("span",{className:"text-[9px] text-text-tertiary",children:n.type},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:62,columnNumber:19},this),e.jsxDEV("button",{onClick:()=>g(n.role),className:"text-text-tertiary hover:text-status-error transition-colors ml-0.5",title:`Remove ${n.role}`,children:"×"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:63,columnNumber:19},this)]},n.role,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:57,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:55,columnNumber:13},this),o.length>0&&e.jsxDEV("div",{className:"pt-3 border-t border-surface-border",children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-2",children:"Add Role"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:77,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("select",{value:r,onChange:n=>d(n.target.value),className:"select text-xs font-mono flex-1",children:[e.jsxDEV("option",{value:"",children:"Select a role..."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:86,columnNumber:19},this),o.map(n=>e.jsxDEV("option",{value:n,children:n},n,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:88,columnNumber:21},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:81,columnNumber:17},this),e.jsxDEV("select",{value:p,onChange:n=>c(n.target.value),className:"select text-xs w-24",children:[e.jsxDEV("option",{value:"member",children:"member"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:96,columnNumber:19},this),e.jsxDEV("option",{value:"admin",children:"admin"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:97,columnNumber:19},this),e.jsxDEV("option",{value:"superadmin",children:"superadmin"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:98,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:91,columnNumber:17},this),e.jsxDEV("button",{onClick:N,disabled:!r||s.isPending,className:"btn-primary text-xs",children:s.isPending?"...":"Add"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:100,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:80,columnNumber:15},this),s.error&&e.jsxDEV("p",{className:"text-[10px] text-status-error mt-1",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:109,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:76,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:46,columnNumber:9},this):e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:"Select a user to manage their roles."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:42,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:36,columnNumber:5},this)}function he({active:t,onChange:l}){const s=(i,r,d)=>e.jsxDEV("button",{onClick:()=>l(i),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md transition-colors ${t===i?"bg-accent/10 text-accent font-medium":"text-text-tertiary hover:text-text-secondary hover:bg-surface-hover"}`,children:[r,d]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/AccountTabToggle.tsx",lineNumber:7,columnNumber:5},this);return e.jsxDEV("div",{className:"flex gap-1 p-0.5 bg-surface-sunken rounded-lg w-fit",children:[s("users",e.jsxDEV(ie,{className:"w-3.5 h-3.5"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/AccountTabToggle.tsx",lineNumber:22,columnNumber:21},this),"User Accounts"),s("service-accounts",e.jsxDEV(re,{className:"w-3.5 h-3.5"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/AccountTabToggle.tsx",lineNumber:23,columnNumber:32},this),"Service Accounts")]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/AccountTabToggle.tsx",lineNumber:21,columnNumber:5},this)}const fe=[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"},{value:"suspended",label:"Suspended"}],ge={active:"bg-status-success",inactive:"bg-text-tertiary",suspended:"bg-status-error"};function Fe(){const[t,l]=le(),i=t.get("tab")==="service-accounts"?"service-accounts":"users",r=d=>{l(d==="users"?{}:{tab:d})};return e.jsxDEV("div",{children:[e.jsxDEV(S,{title:"Accounts",actions:e.jsxDEV(he,{active:i,onChange:r},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:50,columnNumber:18},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:48,columnNumber:7},this),i==="users"?e.jsxDEV(ve,{},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:52,columnNumber:32},this):e.jsxDEV(Ne,{embedded:!0},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:52,columnNumber:56},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:47,columnNumber:5},this)}function ve(){const{filters:t,setFilter:l,pagination:s}=C({filters:{status:""}}),i=F(),[r,d]=u.useState(!1),[p,c]=u.useState(null),[m,a]=u.useState(null),[o,N]=u.useState(null),{data:g,isLoading:n}=z({status:t.status||void 0,limit:s.pageSize,offset:s.offset}),h=(g==null?void 0:g.total)??0,v=(g==null?void 0:g.users)??[],f=u.useMemo(()=>m?v.find(b=>b.id===m.id)??m:null,[v,m]),V=[{key:"display_name",label:"User",render:b=>e.jsxDEV("div",{className:"flex items-center gap-2.5",children:[e.jsxDEV("span",{className:`w-2 h-2 rounded-full shrink-0 ${ge[b.status]??"bg-status-pending"}`,title:b.status},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:88,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm text-text-primary",children:b.display_name||b.external_id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:93,columnNumber:13},this),b.email&&e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:b.email},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:97,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:92,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:87,columnNumber:9},this)},{key:"roles",label:"Roles",render:b=>e.jsxDEV("div",{className:"flex gap-1 flex-wrap",children:(b.roles??[]).map(B=>e.jsxDEV(E,{role:B.role},B.role,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:109,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:107,columnNumber:9},this)},{key:"created_at",label:"Created",render:b=>e.jsxDEV(w,{date:b.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:117,columnNumber:24},this),className:"w-44"},{key:"actions",label:"",render:b=>e.jsxDEV(M,{children:[e.jsxDEV(D,{icon:_,title:"Edit user",onClick:()=>c(b)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:125,columnNumber:11},this),e.jsxDEV(D,{icon:P,title:"Delete user",onClick:()=>N(b),colorClass:"text-text-tertiary hover:text-status-error"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:130,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:124,columnNumber:9},this),className:"w-16 text-right"}],x=()=>{o&&i.mutate(o.id,{onSuccess:()=>N(null)})};return e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex justify-end mb-4",children:e.jsxDEV("button",{onClick:()=>d(!0),className:"btn-primary text-xs",children:"Add User"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:152,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:151,columnNumber:7},this),e.jsxDEV($,{children:e.jsxDEV(O,{label:"Status",value:t.status,onChange:b=>l("status",b),options:fe},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:158,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:157,columnNumber:7},this),e.jsxDEV("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_320px] gap-6",children:[e.jsxDEV("div",{className:"overflow-x-clip",children:[e.jsxDEV(U,{columns:V,data:v,keyFn:b=>b.id,isLoading:n,emptyMessage:"No users found",onRowClick:b=>a(b),activeRowKey:(f==null?void 0:f.id)??null},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:169,columnNumber:11},this),e.jsxDEV(k,{page:s.page,totalPages:s.totalPages(h),onPageChange:s.setPage,total:h,pageSize:s.pageSize,onPageSizeChange:s.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:179,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:168,columnNumber:9},this),e.jsxDEV(xe,{user:f},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:190,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:166,columnNumber:7},this),e.jsxDEV(oe,{open:r,onClose:()=>d(!1)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:193,columnNumber:7},this),e.jsxDEV(ne,{open:!!p,onClose:()=>c(null),user:p},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:195,columnNumber:7},this),e.jsxDEV(y,{open:!!o,onClose:()=>N(null),onConfirm:x,title:"Delete User",description:e.jsxDEV(e.Fragment,{children:["Delete"," ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:(o==null?void 0:o.display_name)||(o==null?void 0:o.external_id)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:209,columnNumber:13},this),"? This action cannot be undone."]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:207,columnNumber:11},this),isPending:i.isPending,error:i.error},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:201,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:150,columnNumber:5},this)}export{Fe as UsersPage};
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{j as e}from"./index-DnmZbNxk.js";import{a as u}from"./vendor-query-DLp59M9_.js";import{b as A,c as T,d as K,e as I,f as F,u as z}from"./users-Ce5r-JAv.js";import{u as C}from"./useFilterParams-BUyLHcx_.js";import{D as U}from"./DataTable-DyIXg-tQ.js";import{S as k}from"./StickyPagination-BZbExQ9t.js";import{F as $,b as O}from"./FilterBar-BTiaAhCx.js";import{T as w}from"./TimestampCell-CEMapYDQ.js";import{C as y}from"./ConfirmDeleteModal-DlPDJSq_.js";import{R as M,a as D}from"./RowActions-DIzJCwqR.js";import{P as S}from"./PageHeader-C5D-G5rp.js";import{R as E}from"./RolePill-kgKPANly.js";import{M as j}from"./Modal-CaJ0gTEa.js";import{a as G,b as L,c as q,d as H,e as J,f as Q,g as W,h as X,u as Y}from"./bots-Dny-rmmI.js";import{u as R}from"./roles-DhhLTvXg.js";import{T as Z}from"./TimeAgo-BcOOnJeH.js";import{H as ee,J as se,ag as ae,j as P,a9 as te,x as _,U as ie,a2 as re}from"./vendor-icons-D1DdudfH.js";import{f as le}from"./vendor-react-Co3Y8ikm.js";import"./EmptyState-DlMImvgm.js";function oe({open:t,onClose:l}){const s=A(),[i,r]=u.useState({external_id:"",email:"",display_name:"",password:""}),[d,p]=u.useState(t);t!==d&&(p(t),t&&r({external_id:"",email:"",display_name:"",password:""}));const c=()=>{i.external_id.trim()&&s.mutate({external_id:i.external_id.trim(),email:i.email.trim()||void 0,display_name:i.display_name.trim()||void 0,password:i.password||void 0},{onSuccess:l})},m=(a,o)=>r(N=>({...N,[a]:o}));return e.jsxDEV(j,{open:t,onClose:l,title:"Create User",children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"External ID (required)"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:46,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.external_id,onChange:a=>m("external_id",a.target.value),placeholder:"e.g., john.doe",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:49,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:45,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Display Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:58,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.display_name,onChange:a=>m("display_name",a.target.value),placeholder:"John Doe",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:61,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:57,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Email"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:70,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.email,onChange:a=>m("email",a.target.value),placeholder:"john@example.com",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:73,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:69,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Password"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:82,columnNumber:11},this),e.jsxDEV("input",{type:"password",value:i.password,onChange:a=>m("password",a.target.value),placeholder:"Leave blank for no password",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:85,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:81,columnNumber:9},this),s.error&&e.jsxDEV("p",{className:"text-xs text-status-error",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:95,columnNumber:11},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:l,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:99,columnNumber:11},this),e.jsxDEV("button",{onClick:c,disabled:!i.external_id.trim()||s.isPending,className:"btn-primary text-xs",children:s.isPending?"Creating...":"Create"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:102,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:98,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:44,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/CreateUserModal.tsx",lineNumber:43,columnNumber:5},this)}function ne({open:t,onClose:l,user:s}){const i=T(),[r,d]=u.useState({display_name:"",email:"",status:"active"}),[p,c]=u.useState(s);s!==p&&(c(s),s&&d({display_name:s.display_name??"",email:s.email??"",status:s.status}));const m=()=>{s&&i.mutate({id:s.id,display_name:r.display_name.trim()||void 0,email:r.email.trim()||void 0,status:r.status},{onSuccess:l})};return e.jsxDEV(j,{open:t,onClose:l,title:`Edit — ${(s==null?void 0:s.display_name)||(s==null?void 0:s.external_id)||""}`,children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Display Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:55,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:r.display_name,onChange:a=>d(o=>({...o,display_name:a.target.value})),className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:58,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:54,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Email"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:66,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:r.email,onChange:a=>d(o=>({...o,email:a.target.value})),className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:69,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:65,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Status"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:77,columnNumber:11},this),e.jsxDEV("select",{value:r.status,onChange:a=>d(o=>({...o,status:a.target.value})),className:"select text-xs w-full",children:[e.jsxDEV("option",{value:"active",children:"Active"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:85,columnNumber:13},this),e.jsxDEV("option",{value:"inactive",children:"Inactive"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:86,columnNumber:13},this),e.jsxDEV("option",{value:"suspended",children:"Suspended"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:87,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:80,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:76,columnNumber:9},this),i.error&&e.jsxDEV("p",{className:"text-xs text-status-error",children:i.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:92,columnNumber:11},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:l,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:96,columnNumber:11},this),e.jsxDEV("button",{onClick:m,disabled:i.isPending,className:"btn-primary text-xs",children:i.isPending?"Saving...":"Save"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:99,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:95,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:53,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/EditUserModal.tsx",lineNumber:48,columnNumber:5},this)}function de({open:t,onClose:l}){const s=G(),[i,r]=u.useState({name:"",display_name:"",description:""}),[d,p]=u.useState(t);t!==d&&(p(t),t&&r({name:"",display_name:"",description:""}));const c=()=>{i.name.trim()&&s.mutate({name:i.name.trim(),display_name:i.display_name.trim()||void 0,description:i.description.trim()||void 0},{onSuccess:l})},m=(a,o)=>r(N=>({...N,[a]:o}));return e.jsxDEV(j,{open:t,onClose:l,title:"Create Bot",children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Name (required)"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:44,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.name,onChange:a=>m("name",a.target.value.replace(/\s+/g,"-").toLowerCase()),placeholder:"e.g., ci-bot",className:"input text-xs w-full font-mono"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:47,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:43,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Display Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:56,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.display_name,onChange:a=>m("display_name",a.target.value),placeholder:"CI Bot",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:59,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:55,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Description"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:68,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i.description,onChange:a=>m("description",a.target.value),placeholder:"Runs scheduled workflows",className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:71,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:67,columnNumber:9},this),s.error&&e.jsxDEV("p",{className:"text-xs text-status-error",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:81,columnNumber:11},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:l,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:85,columnNumber:11},this),e.jsxDEV("button",{onClick:c,disabled:!i.name.trim()||s.isPending,className:"btn-primary text-xs",children:s.isPending?"Creating...":"Create"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:88,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:42,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/CreateBotModal.tsx",lineNumber:41,columnNumber:5},this)}function me({open:t,onClose:l,bot:s}){const i=L(),[r,d]=u.useState({display_name:"",description:"",status:"active"}),[p,c]=u.useState(s);s!==p&&(c(s),s&&d({display_name:s.display_name??"",description:s.description??"",status:s.status}));const m=()=>{s&&i.mutate({id:s.id,display_name:r.display_name.trim()||void 0,description:r.description.trim()||void 0,status:r.status},{onSuccess:l})};return e.jsxDEV(j,{open:t,onClose:l,title:`Edit — ${(s==null?void 0:s.display_name)||(s==null?void 0:s.external_id)||""}`,children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Display Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:55,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:r.display_name,onChange:a=>d(o=>({...o,display_name:a.target.value})),className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:58,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:54,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Description"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:66,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:r.description,onChange:a=>d(o=>({...o,description:a.target.value})),className:"input text-xs w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:69,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:65,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Status"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:77,columnNumber:11},this),e.jsxDEV("select",{value:r.status,onChange:a=>d(o=>({...o,status:a.target.value})),className:"select text-xs w-full",children:[e.jsxDEV("option",{value:"active",children:"Active"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:85,columnNumber:13},this),e.jsxDEV("option",{value:"inactive",children:"Inactive"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:86,columnNumber:13},this),e.jsxDEV("option",{value:"suspended",children:"Suspended"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:87,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:80,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:76,columnNumber:9},this),i.error&&e.jsxDEV("p",{className:"text-xs text-status-error",children:i.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:92,columnNumber:11},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:l,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:96,columnNumber:11},this),e.jsxDEV("button",{onClick:m,disabled:i.isPending,className:"btn-primary text-xs",children:i.isPending?"Saving...":"Save"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:99,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:95,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:53,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/EditBotModal.tsx",lineNumber:48,columnNumber:5},this)}function ue({botId:t}){const{data:l}=q(t),s=H(),i=J(),[r,d]=u.useState(""),[p,c]=u.useState(null),[m,a]=u.useState(!1),[o,N]=u.useState(null),g=(l==null?void 0:l.keys)??[],n=()=>{r.trim()&&s.mutate({botId:t,name:r.trim(),scopes:["mcp:tool:call"]},{onSuccess:f=>{c(f.rawKey),d("")}})},h=()=>{p&&(navigator.clipboard.writeText(p),a(!0),setTimeout(()=>a(!1),2e3))},v=()=>{o&&i.mutate({botId:t,keyId:o.id},{onSuccess:()=>N(null)})};return e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-3",children:"API Keys"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:58,columnNumber:7},this),p&&e.jsxDEV("div",{className:"mb-3 p-3 bg-status-success/10 border border-status-success/30 rounded-md",children:[e.jsxDEV("p",{className:"text-[10px] font-semibold text-status-success mb-1",children:"Key generated — copy now, it won't be shown again"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:64,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("code",{className:"text-[11px] font-mono text-text-primary bg-surface-sunken px-2 py-1 rounded flex-1 overflow-hidden text-ellipsis",children:p},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:68,columnNumber:13},this),e.jsxDEV("button",{onClick:h,className:"text-text-tertiary hover:text-text-primary shrink-0",title:"Copy to clipboard",children:m?e.jsxDEV(ee,{className:"w-3.5 h-3.5 text-status-success"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:76,columnNumber:25},this):e.jsxDEV(se,{className:"w-3.5 h-3.5"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:76,columnNumber:81},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:71,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:67,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:63,columnNumber:9},this),g.length===0?e.jsxDEV("p",{className:"text-xs text-text-tertiary mb-3",children:"No API keys."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:83,columnNumber:9},this):e.jsxDEV("div",{className:"space-y-1.5 mb-3",children:g.map(f=>e.jsxDEV("div",{className:"group/key flex items-center justify-between px-2.5 py-1.5 bg-surface-sunken rounded text-xs",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(ae,{className:"w-3 h-3 text-text-tertiary"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:92,columnNumber:17},this),e.jsxDEV("span",{className:"text-text-primary font-mono",children:f.name},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:93,columnNumber:17},this),f.last_used_at&&e.jsxDEV("span",{className:"text-[10px] text-text-tertiary",children:["used ",e.jsxDEV(Z,{date:f.last_used_at},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:96,columnNumber:26},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:95,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:91,columnNumber:15},this),e.jsxDEV("button",{onClick:()=>N(f),className:"opacity-0 group-hover/key:opacity-100 transition-opacity text-text-tertiary hover:text-status-error",title:"Revoke key",children:e.jsxDEV(P,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:105,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:100,columnNumber:15},this)]},f.id,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:87,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:85,columnNumber:9},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("input",{type:"text",value:r,onChange:f=>d(f.target.value),placeholder:"Key name...",className:"input text-xs flex-1 font-mono"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:113,columnNumber:9},this),e.jsxDEV("button",{onClick:n,disabled:!r.trim()||s.isPending,className:"btn-primary text-xs inline-flex items-center gap-1",children:[e.jsxDEV(te,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:125,columnNumber:11},this),s.isPending?"...":"Generate"]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:120,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:112,columnNumber:7},this),s.error&&e.jsxDEV("p",{className:"text-[10px] text-status-error mt-1",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:130,columnNumber:9},this),e.jsxDEV(y,{open:!!o,onClose:()=>N(null),onConfirm:v,title:"Revoke API Key",description:e.jsxDEV(e.Fragment,{children:["Revoke API key"," ",e.jsxDEV("span",{className:"font-medium text-text-primary font-mono",children:o==null?void 0:o.name},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:141,columnNumber:13},this),"? This bot will no longer be able to authenticate with this key."]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:139,columnNumber:11},this),isPending:i.isPending,error:i.error},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:133,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:57,columnNumber:5},this)}function ce({bot:t}){const{data:l}=R(),s=Q(),i=W(),[r,d]=u.useState(""),[p,c]=u.useState("member"),m=(l==null?void 0:l.roles)??[],a=t.roles??[],o=u.useMemo(()=>{const n=new Set(a.map(h=>h.role));return m.filter(h=>!n.has(h))},[m,a]),N=()=>{r.trim()&&s.mutate({botId:t.id,role:r.trim(),type:p},{onSuccess:()=>{d(""),c("member")}})},g=n=>{i.mutate({botId:t.id,role:n})};return e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-3",children:"Roles"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:183,columnNumber:7},this),a.length===0?e.jsxDEV("p",{className:"text-xs text-text-tertiary mb-3",children:"No roles assigned."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:188,columnNumber:9},this):e.jsxDEV("div",{className:"flex flex-wrap gap-2 mb-3",children:a.map(n=>e.jsxDEV("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs bg-surface-sunken rounded-full text-text-secondary",children:[e.jsxDEV(E,{role:n.role},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:196,columnNumber:15},this),e.jsxDEV("span",{className:"text-[9px] text-text-tertiary",children:n.type},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:197,columnNumber:15},this),e.jsxDEV("button",{onClick:()=>g(n.role),className:"text-text-tertiary hover:text-status-error transition-colors ml-0.5",title:`Remove ${n.role}`,children:"×"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:198,columnNumber:15},this)]},n.role,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:192,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:190,columnNumber:9},this),o.length>0&&e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("select",{value:r,onChange:n=>d(n.target.value),className:"select text-xs font-mono flex-1",children:[e.jsxDEV("option",{value:"",children:"Select a role..."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:217,columnNumber:13},this),o.map(n=>e.jsxDEV("option",{value:n,children:n},n,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:219,columnNumber:15},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:212,columnNumber:11},this),e.jsxDEV("select",{value:p,onChange:n=>c(n.target.value),className:"select text-xs w-24",children:[e.jsxDEV("option",{value:"member",children:"member"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:227,columnNumber:13},this),e.jsxDEV("option",{value:"admin",children:"admin"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:228,columnNumber:13},this),e.jsxDEV("option",{value:"superadmin",children:"superadmin"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:229,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:222,columnNumber:11},this),e.jsxDEV("button",{onClick:N,disabled:!r||s.isPending,className:"btn-primary text-xs",children:s.isPending?"...":"Add"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:231,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:211,columnNumber:9},this),s.error&&e.jsxDEV("p",{className:"text-[10px] text-status-error mt-1",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:241,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:182,columnNumber:5},this)}function pe({bot:t}){return t?e.jsxDEV("div",{className:"border-l border-surface-border pl-6 pt-4 min-h-[300px] space-y-6",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm text-text-primary",children:t.display_name||t.external_id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:261,columnNumber:9},this),t.description&&e.jsxDEV("p",{className:"text-xs text-text-tertiary mt-0.5",children:t.description},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:263,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:260,columnNumber:7},this),e.jsxDEV(ue,{botId:t.id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:267,columnNumber:7},this),e.jsxDEV(ce,{bot:t},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:268,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:259,columnNumber:5},this):e.jsxDEV("div",{className:"border-l border-surface-border pl-6 pt-4 min-h-[300px]",children:e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:"Select a bot to manage its API keys and roles."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:251,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotDetailPanel.tsx",lineNumber:250,columnNumber:7},this)}const be={active:"bg-status-success",inactive:"bg-text-tertiary",suspended:"bg-status-error"};function Ne({embedded:t=!1}){const{pagination:l}=C({filters:{}}),s=X(),[i,r]=u.useState(!1),[d,p]=u.useState(null),[c,m]=u.useState(null),[a,o]=u.useState(null),{data:N,isLoading:g}=Y({limit:l.pageSize,offset:l.offset}),n=(N==null?void 0:N.total)??0,h=(N==null?void 0:N.bots)??[],v=u.useMemo(()=>c?h.find(x=>x.id===c.id)??c:null,[h,c]),f=[{key:"display_name",label:"Bot",render:x=>e.jsxDEV("div",{className:"flex items-center gap-2.5",children:[e.jsxDEV("span",{className:`w-2 h-2 rounded-full shrink-0 ${be[x.status]??"bg-status-pending"}`,title:x.status},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:51,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm text-text-primary",children:x.display_name||x.external_id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:56,columnNumber:13},this),x.description&&e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:x.description},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:60,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:55,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:50,columnNumber:9},this)},{key:"roles",label:"Roles",render:x=>e.jsxDEV("div",{className:"flex gap-1 flex-wrap",children:(x.roles??[]).map(b=>e.jsxDEV(E,{role:b.role},b.role,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:72,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:70,columnNumber:9},this)},{key:"created_at",label:"Created",render:x=>e.jsxDEV(w,{date:x.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:80,columnNumber:24},this),className:"w-44"},{key:"actions",label:"",render:x=>e.jsxDEV(M,{children:[e.jsxDEV(D,{icon:_,title:"Edit bot",onClick:()=>p(x)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:88,columnNumber:11},this),e.jsxDEV(D,{icon:P,title:"Delete bot",onClick:()=>o(x),colorClass:"text-text-tertiary hover:text-status-error"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:93,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:87,columnNumber:9},this),className:"w-16 text-right"}],V=()=>{a&&s.mutate(a.id,{onSuccess:()=>{o(null),(c==null?void 0:c.id)===a.id&&m(null)}})};return e.jsxDEV("div",{children:[t?e.jsxDEV("div",{className:"flex justify-end mb-4",children:e.jsxDEV("button",{onClick:()=>r(!0),className:"btn-primary text-xs",children:"Add Bot"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:119,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:118,columnNumber:9},this):e.jsxDEV(S,{title:"Service Accounts",actions:e.jsxDEV("button",{onClick:()=>r(!0),className:"btn-primary text-xs",children:"Add Bot"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:127,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:124,columnNumber:9},this),e.jsxDEV("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_360px] gap-6",children:[e.jsxDEV("div",{className:"overflow-x-clip",children:[e.jsxDEV(U,{columns:f,data:h,keyFn:x=>x.id,isLoading:g,emptyMessage:"No bots yet",onRowClick:x=>m(x),activeRowKey:(v==null?void 0:v.id)??null},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:136,columnNumber:11},this),e.jsxDEV(k,{page:l.page,totalPages:l.totalPages(n),onPageChange:l.setPage,total:n,pageSize:l.pageSize,onPageSizeChange:l.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:146,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:135,columnNumber:9},this),e.jsxDEV(pe,{bot:v},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:156,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:134,columnNumber:7},this),e.jsxDEV(de,{open:i,onClose:()=>r(!1)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:159,columnNumber:7},this),e.jsxDEV(me,{open:!!d,onClose:()=>p(null),bot:d},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:161,columnNumber:7},this),e.jsxDEV(y,{open:!!a,onClose:()=>o(null),onConfirm:V,title:"Delete Bot",description:e.jsxDEV(e.Fragment,{children:["Delete"," ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:(a==null?void 0:a.display_name)||(a==null?void 0:a.external_id)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:175,columnNumber:13},this),"? This will also revoke all API keys. This action cannot be undone."]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:173,columnNumber:11},this),isPending:s.isPending,error:s.error},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:167,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/bots/BotsPage.tsx",lineNumber:116,columnNumber:5},this)}function xe({user:t}){const{data:l}=R(),s=K(),i=I(),[r,d]=u.useState(""),[p,c]=u.useState("member"),m=(l==null?void 0:l.roles)??[],a=(t==null?void 0:t.roles)??[],o=u.useMemo(()=>{const n=new Set(a.map(h=>h.role));return m.filter(h=>!n.has(h))},[m,a]),N=()=>{!t||!r.trim()||s.mutate({userId:t.id,role:r.trim(),type:p},{onSuccess:()=>{d(""),c("member")}})},g=n=>{t&&i.mutate({userId:t.id,role:n})};return e.jsxDEV("div",{className:"border-l border-surface-border pl-6 pt-4 min-h-[300px]",children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-4",children:"Role Membership"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:37,columnNumber:7},this),t?e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm text-text-primary",children:t.display_name||t.external_id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:48,columnNumber:13},this),e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:"Member of:"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:49,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:47,columnNumber:11},this),a.length===0?e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:"No roles assigned."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:53,columnNumber:13},this):e.jsxDEV("div",{className:"flex flex-wrap gap-2",children:a.map(n=>e.jsxDEV("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs bg-surface-sunken rounded-full text-text-secondary",children:[e.jsxDEV(E,{role:n.role},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:61,columnNumber:19},this),e.jsxDEV("span",{className:"text-[9px] text-text-tertiary",children:n.type},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:62,columnNumber:19},this),e.jsxDEV("button",{onClick:()=>g(n.role),className:"text-text-tertiary hover:text-status-error transition-colors ml-0.5",title:`Remove ${n.role}`,children:"×"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:63,columnNumber:19},this)]},n.role,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:57,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:55,columnNumber:13},this),o.length>0&&e.jsxDEV("div",{className:"pt-3 border-t border-surface-border",children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-2",children:"Add Role"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:77,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("select",{value:r,onChange:n=>d(n.target.value),className:"select text-xs font-mono flex-1",children:[e.jsxDEV("option",{value:"",children:"Select a role..."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:86,columnNumber:19},this),o.map(n=>e.jsxDEV("option",{value:n,children:n},n,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:88,columnNumber:21},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:81,columnNumber:17},this),e.jsxDEV("select",{value:p,onChange:n=>c(n.target.value),className:"select text-xs w-24",children:[e.jsxDEV("option",{value:"member",children:"member"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:96,columnNumber:19},this),e.jsxDEV("option",{value:"admin",children:"admin"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:97,columnNumber:19},this),e.jsxDEV("option",{value:"superadmin",children:"superadmin"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:98,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:91,columnNumber:17},this),e.jsxDEV("button",{onClick:N,disabled:!r||s.isPending,className:"btn-primary text-xs",children:s.isPending?"...":"Add"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:100,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:80,columnNumber:15},this),s.error&&e.jsxDEV("p",{className:"text-[10px] text-status-error mt-1",children:s.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:109,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:76,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:46,columnNumber:9},this):e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:"Select a user to manage their roles."},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:42,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/RolePanel.tsx",lineNumber:36,columnNumber:5},this)}function he({active:t,onChange:l}){const s=(i,r,d)=>e.jsxDEV("button",{onClick:()=>l(i),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md transition-colors ${t===i?"bg-accent/10 text-accent font-medium":"text-text-tertiary hover:text-text-secondary hover:bg-surface-hover"}`,children:[r,d]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/AccountTabToggle.tsx",lineNumber:7,columnNumber:5},this);return e.jsxDEV("div",{className:"flex gap-1 p-0.5 bg-surface-sunken rounded-lg w-fit",children:[s("users",e.jsxDEV(ie,{className:"w-3.5 h-3.5"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/AccountTabToggle.tsx",lineNumber:22,columnNumber:21},this),"User Accounts"),s("service-accounts",e.jsxDEV(re,{className:"w-3.5 h-3.5"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/AccountTabToggle.tsx",lineNumber:23,columnNumber:32},this),"Service Accounts")]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/AccountTabToggle.tsx",lineNumber:21,columnNumber:5},this)}const fe=[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"},{value:"suspended",label:"Suspended"}],ge={active:"bg-status-success",inactive:"bg-text-tertiary",suspended:"bg-status-error"};function Fe(){const[t,l]=le(),i=t.get("tab")==="service-accounts"?"service-accounts":"users",r=d=>{l(d==="users"?{}:{tab:d})};return e.jsxDEV("div",{children:[e.jsxDEV(S,{title:"Accounts",actions:e.jsxDEV(he,{active:i,onChange:r},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:50,columnNumber:18},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:48,columnNumber:7},this),i==="users"?e.jsxDEV(ve,{},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:52,columnNumber:32},this):e.jsxDEV(Ne,{embedded:!0},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:52,columnNumber:56},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:47,columnNumber:5},this)}function ve(){const{filters:t,setFilter:l,pagination:s}=C({filters:{status:""}}),i=F(),[r,d]=u.useState(!1),[p,c]=u.useState(null),[m,a]=u.useState(null),[o,N]=u.useState(null),{data:g,isLoading:n}=z({status:t.status||void 0,limit:s.pageSize,offset:s.offset}),h=(g==null?void 0:g.total)??0,v=(g==null?void 0:g.users)??[],f=u.useMemo(()=>m?v.find(b=>b.id===m.id)??m:null,[v,m]),V=[{key:"display_name",label:"User",render:b=>e.jsxDEV("div",{className:"flex items-center gap-2.5",children:[e.jsxDEV("span",{className:`w-2 h-2 rounded-full shrink-0 ${ge[b.status]??"bg-status-pending"}`,title:b.status},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:88,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm text-text-primary",children:b.display_name||b.external_id},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:93,columnNumber:13},this),b.email&&e.jsxDEV("p",{className:"text-xs text-text-tertiary",children:b.email},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:97,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:92,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:87,columnNumber:9},this)},{key:"roles",label:"Roles",render:b=>e.jsxDEV("div",{className:"flex gap-1 flex-wrap",children:(b.roles??[]).map(B=>e.jsxDEV(E,{role:B.role},B.role,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:109,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:107,columnNumber:9},this)},{key:"created_at",label:"Created",render:b=>e.jsxDEV(w,{date:b.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:117,columnNumber:24},this),className:"w-44"},{key:"actions",label:"",render:b=>e.jsxDEV(M,{children:[e.jsxDEV(D,{icon:_,title:"Edit user",onClick:()=>c(b)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:125,columnNumber:11},this),e.jsxDEV(D,{icon:P,title:"Delete user",onClick:()=>N(b),colorClass:"text-text-tertiary hover:text-status-error"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:130,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:124,columnNumber:9},this),className:"w-16 text-right"}],x=()=>{o&&i.mutate(o.id,{onSuccess:()=>N(null)})};return e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex justify-end mb-4",children:e.jsxDEV("button",{onClick:()=>d(!0),className:"btn-primary text-xs",children:"Add User"},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:152,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:151,columnNumber:7},this),e.jsxDEV($,{children:e.jsxDEV(O,{label:"Status",value:t.status,onChange:b=>l("status",b),options:fe},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:158,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:157,columnNumber:7},this),e.jsxDEV("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_320px] gap-6",children:[e.jsxDEV("div",{className:"overflow-x-clip",children:[e.jsxDEV(U,{columns:V,data:v,keyFn:b=>b.id,isLoading:n,emptyMessage:"No users found",onRowClick:b=>a(b),activeRowKey:(f==null?void 0:f.id)??null},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:169,columnNumber:11},this),e.jsxDEV(k,{page:s.page,totalPages:s.totalPages(h),onPageChange:s.setPage,total:h,pageSize:s.pageSize,onPageSizeChange:s.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:179,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:168,columnNumber:9},this),e.jsxDEV(xe,{user:f},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:190,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:166,columnNumber:7},this),e.jsxDEV(oe,{open:r,onClose:()=>d(!1)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:193,columnNumber:7},this),e.jsxDEV(ne,{open:!!p,onClose:()=>c(null),user:p},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:195,columnNumber:7},this),e.jsxDEV(y,{open:!!o,onClose:()=>N(null),onConfirm:x,title:"Delete User",description:e.jsxDEV(e.Fragment,{children:["Delete"," ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:(o==null?void 0:o.display_name)||(o==null?void 0:o.external_id)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:209,columnNumber:13},this),"? This action cannot be undone."]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:207,columnNumber:11},this),isPending:i.isPending,error:i.error},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:201,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/admin/users/UsersPage.tsx",lineNumber:150,columnNumber:5},this)}export{Fe as UsersPage};
|
|
2
|
+
//# sourceMappingURL=index-_RBvi7s6.js.map
|