dirigent-server 0.16.0__tar.gz → 0.16.2__tar.gz
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.
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/PKG-INFO +5 -5
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/pyproject.toml +5 -5
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/pyproject.toml.orig +5 -5
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/runs.py +10 -6
- dirigent_server-0.16.0/src/dirigent_server/static/assets/AdminOnly-ji4IpQ_T.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/AdminOnly-B5Il8Luo.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/Alerting-COmhStnD.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Blocks-DqIuk4gC.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Blocks-RnBlFCOl.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Breadcrumb-KS3i4O6Q.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Breadcrumb-x6p00HyX.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/CodeEditor-cfjDMRpA.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/CodeEditor-BhtcpaBC.js +32 -32
- dirigent_server-0.16.2/src/dirigent_server/static/assets/Connections-B6bucg3u.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Dashboard-CKQIJG-e.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Dashboard-CbXXsGAQ.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Description-DVFPKyRO.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Description-MmXUnb-9.js +2 -2
- dirigent_server-0.16.0/src/dirigent_server/static/assets/ExamplePanel-DOH0Epmn.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/ExamplePanel-Br09oxb1.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Examples-CxIWUWj-.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Examples-BCnJ7MEA.js +2 -2
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Instant-BWqGNC0V.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Instant-mr1E5jAK.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/JsonBlock-Cr-ftwn4.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/JsonBlock-odsSGca5.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/KindChip-CuBFi3X9.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/KindChip-CwU_Xxdy.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/ListTable-405QAql8.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Markdown-B6er3LhH.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Markdown-roa7jpVu.js +3 -3
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Overview-BgtK0rX_.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Overview-DV1Y9SZt.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/PageState-Cp732SGc.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Panel-ClHPU8x_.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Panel-wjrXUPsz.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/Picker-z4lQH0eh.js +1 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/PipelineEditor-DkqRJdHR.js +2 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/PipelineGraph-Dx4v2fyL.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/PipelinePreview-DZxQbFFU.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/PipelinePreview-DAz7dBTh.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/PipelineTab-D3EBI8Jb.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/PipelineTab-D2CdC76K.js +6 -8
- dirigent_server-0.16.0/src/dirigent_server/static/assets/ProgramReference-5SoAtU41.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/ProgramReference-DF37mMAT.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Refusal-DgcJTR4J.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Refusal-BTUIx0l-.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/RunDetail-DNt_XPhK.js +3 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/RunGraph-CbO6g6oF.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/RunGraph-qagZGb0s.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/SchemaForm-C0x8Bg-w.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Schemas-CO82M3iN.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Schemas-TuNaPAIV.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Segmented-DvCzioEn.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Segmented-VHBNaGnm.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/SettingsDialog-B_-yFoYA.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/SettingsDialog-BLO_Ekxx.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/StarterPicker-BSs18xoM.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/StarterPicker-DA-qzc_W.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/StepPorts-KFpmX5hF.js +30 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/TileCard-DuzDmLB3.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/TileCard-B95pdwkG.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/Triggers-rhTcshmS.js +1 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/Users-BO6D-4QW.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/WindowedPane-bblrzCyF.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/WindowedPane-DwMXUf5F.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Workers-DbAZZj4o.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/Workers-D-ckw9mz.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/WorkersTable-kH_DDvFt.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/WorkersTable-DzmeJuci.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/api-BgT8tbGp.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/auth-Chi4DcFq.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/auth-Bfdai8PV.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/badge-DABGWbc8.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/badge-jeTEGfya.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/blocks-DgBe9px-.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/blocks-DqStV2zY.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/chevron-down-DAO3SUWv.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/chunk-BV7QT456-Bfa1dvOx.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/chunk-OB3PAWPO-DOp4K52_.js +2 -2
- dirigent_server-0.16.0/src/dirigent_server/static/assets/connections-1Ltd2U4L.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/connections-DXsWpZJc.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/copy-BeBwg8IR.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/dist-BWSEJlfk.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/dist-DD8kpv1W.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/dropdown-menu-CAzEbJy4.js +1 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/editor.worker-CIvRzd4O.js +12 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/examples-6Nbc5Lgs.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/examples-BtRLOjVV.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/file-braces-Ep8AP5Yq.js +1 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/index-q1be8tDf.js +53 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/input-CfaV2SUH.js +1 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/json.worker-fczZDBja.js +51 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/jsonMode-DC1hnmsD.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/jsonMode-RBBZ5Va3.js +2 -2
- dirigent_server-0.16.2/src/dirigent_server/static/assets/maximize-2-BdFIT4cn.js +1 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/nav-i7bJ0lrA.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/paging-DL6m7m7g.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/paging-BPj1IA1S.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/pipelines-CU_Q479F.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/pipelines-NdeXXJeR.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/play-CPVSEWx6.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/preload-helper-Czpn1I53.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/preload-helper-BZ1Pz5am.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/react-CQOZoUwg.js +1 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/resolveAriaLabelledBy-BwLqNBBB.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/schemas-CQifVwSc.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/schemas-BkE5ckCD.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/select-DQyRMc3Y.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/textarea-XMYmRm72.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/textarea-ljIbN_md.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/tooltip-S6Jq0v8d.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/triggers-U4QjnQ1U.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/triggers-Cu9QYlwa.js +1 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/use-heartbeat-ByRKom_T.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/use-heartbeat-CBT8848s.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/use-store-CfRquqZF.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/users-DhXGlOS0.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/users-CtRHdoHp.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/utils-CT7ZGLfR.js +1 -0
- dirigent_server-0.16.2/src/dirigent_server/static/assets/with-selector-BXYKoaOE.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/workers-Cn6T4C66.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/workers-CJAzSpj-.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/x-Dltw6Vbs.js +1 -0
- dirigent_server-0.16.0/src/dirigent_server/static/assets/yaml-Vu_1GF43.js → dirigent_server-0.16.2/src/dirigent_server/static/assets/yaml-OoeOcOvp.js +1 -1
- dirigent_server-0.16.2/src/dirigent_server/static/assets/yaml.worker-B2SaT_wA.js +453 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/index.html +24 -24
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Alerting-CypGXVms.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Connections-Bs3_sKps.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/ListTable-B9skT-_Y.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/PageState-BxxntCdE.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Picker-R-mumgI7.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/PipelineEditor-CLRl4-nW.js +0 -2
- dirigent_server-0.16.0/src/dirigent_server/static/assets/PipelineGraph-PZ3341dH.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/RunDetail-jzvEjMoL.js +0 -3
- dirigent_server-0.16.0/src/dirigent_server/static/assets/SchemaForm-C0jzhj3Z.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/StepPorts-Cpg_hQaj.js +0 -30
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Triggers-PRvIYDRh.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/Users-Cj1QqzJI.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/api-DxX94A25.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/chevron-down-Cs1_pMxC.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/copy-C7fd9gfy.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/dropdown-menu-BmoO2uui.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/editor.worker-BaAK1IVA.js +0 -12
- dirigent_server-0.16.0/src/dirigent_server/static/assets/file-braces-NOlOm1fG.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/index-DziHXrVI.js +0 -53
- dirigent_server-0.16.0/src/dirigent_server/static/assets/input-C5XexCJf.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/json.worker-C-kBQgxp.js +0 -51
- dirigent_server-0.16.0/src/dirigent_server/static/assets/maximize-2-8DfD9AFn.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/nav-CE-Cbv84.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/play-Cpq8RIJ2.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/react-BatatxyT.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/resolveAriaLabelledBy-Bm8j8jxz.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/select-fBLlNmQ_.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/tooltip-Dh4uy__Z.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/use-store-CgWwefFs.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/utils-CRMSf51M.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/with-selector-BQ0vq4Ay.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/x-CaKz-2po.js +0 -1
- dirigent_server-0.16.0/src/dirigent_server/static/assets/yaml.worker-D2mqiKN-.js +0 -431
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/LICENSE +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/README.md +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/THIRD_PARTY_NOTICES.md +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/__init__.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/app.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/dependencies.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/errors.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/health.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/logging.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/pagination.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/py.typed +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/__init__.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/alerts.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/auth.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/blocks.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/connections.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/examples.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/hooks.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/pipelines.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/schema.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/schemas.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/system.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/trigger_documents.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/triggers.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/users.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/routes/workers.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/security.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/.gitkeep +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/CodeEditor-B55U_qvj.css +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/docs-CCoB3shg.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/format-B5YbYOY-.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2 +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/identity-BNZxCf_y.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/index-Cmuh18en.css +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/preferences-DsqSnjg9.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/rolldown-runtime-Dd_uD5pT.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/schema-form-dcZ8A0M1.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/shell-CC2rA5mh.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/sql-NEE52Syq.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/starters-CvbebKUN.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/status-Ctx8x8Mf.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/store-C2zgoyrT.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/assets/twig-De2hgUGE.js +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/favicon-32.png +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/static/logo.png +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/transactions.py +0 -0
- {dirigent_server-0.16.0 → dirigent_server-0.16.2}/src/dirigent_server/ui.py +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dirigent-server
|
|
3
|
-
Version: 0.16.
|
|
3
|
+
Version: 0.16.2
|
|
4
4
|
Summary: Dirigent FastAPI server: the REST API, its authentication, and the health probes.
|
|
5
5
|
License-Expression: LicenseRef-Proprietary
|
|
6
6
|
License-File: LICENSE
|
|
7
7
|
License-File: THIRD_PARTY_NOTICES.md
|
|
8
|
-
Requires-Dist: dirigent-client
|
|
9
|
-
Requires-Dist: dirigent-common
|
|
10
|
-
Requires-Dist: dirigent-core
|
|
11
|
-
Requires-Dist: dirigent-examples
|
|
8
|
+
Requires-Dist: dirigent-client==0.16.2
|
|
9
|
+
Requires-Dist: dirigent-common==0.16.2
|
|
10
|
+
Requires-Dist: dirigent-core==0.16.2
|
|
11
|
+
Requires-Dist: dirigent-examples==0.16.2
|
|
12
12
|
Requires-Dist: fastapi>=0.141.1
|
|
13
13
|
Requires-Python: >=3.13
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "dirigent-server"
|
|
3
|
-
version = "0.16.
|
|
3
|
+
version = "0.16.2"
|
|
4
4
|
description = "Dirigent FastAPI server: the REST API, its authentication, and the health probes."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.13"
|
|
@@ -10,10 +10,10 @@ license-files = [
|
|
|
10
10
|
"THIRD_PARTY_NOTICES.md",
|
|
11
11
|
]
|
|
12
12
|
dependencies = [
|
|
13
|
-
"dirigent-client",
|
|
14
|
-
"dirigent-common",
|
|
15
|
-
"dirigent-core",
|
|
16
|
-
"dirigent-examples",
|
|
13
|
+
"dirigent-client==0.16.2",
|
|
14
|
+
"dirigent-common==0.16.2",
|
|
15
|
+
"dirigent-core==0.16.2",
|
|
16
|
+
"dirigent-examples==0.16.2",
|
|
17
17
|
"fastapi>=0.141.1",
|
|
18
18
|
]
|
|
19
19
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "dirigent-server"
|
|
3
|
-
version = "0.16.
|
|
3
|
+
version = "0.16.2"
|
|
4
4
|
description = "Dirigent FastAPI server: the REST API, its authentication, and the health probes."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.13"
|
|
7
7
|
license = "LicenseRef-Proprietary"
|
|
8
8
|
license-files = ["LICENSE", "THIRD_PARTY_NOTICES.md"]
|
|
9
9
|
dependencies = [
|
|
10
|
-
"dirigent-client",
|
|
11
|
-
"dirigent-common",
|
|
12
|
-
"dirigent-core",
|
|
13
|
-
"dirigent-examples",
|
|
10
|
+
"dirigent-client==0.16.2",
|
|
11
|
+
"dirigent-common==0.16.2",
|
|
12
|
+
"dirigent-core==0.16.2",
|
|
13
|
+
"dirigent-examples==0.16.2",
|
|
14
14
|
"fastapi>=0.141.1",
|
|
15
15
|
]
|
|
16
16
|
|
|
@@ -45,7 +45,7 @@ from dirigent_core.models import (
|
|
|
45
45
|
StepAttempt,
|
|
46
46
|
utcnow,
|
|
47
47
|
)
|
|
48
|
-
from dirigent_core.pipelines import UNWELL, carries_tag, failing_steps
|
|
48
|
+
from dirigent_core.pipelines import UNWELL, FailedStep, carries_tag, failing_steps
|
|
49
49
|
from dirigent_core.registry import unmet_worker_tags
|
|
50
50
|
from dirigent_core.reporting import duration_ms, items_in_order, run_facts
|
|
51
51
|
from dirigent_server.dependencies import ServicesDep, SessionDep, get_sessions
|
|
@@ -93,8 +93,12 @@ async def _context(session: AsyncSession, run: Run) -> tuple[Pipeline, PipelineV
|
|
|
93
93
|
return pipeline, version, load_definition(version.ordered_document)
|
|
94
94
|
|
|
95
95
|
|
|
96
|
-
def _render_run(run: Run, pipeline: Pipeline, version: PipelineVersion,
|
|
97
|
-
"""Render a run row with the names a client actually wants to see.
|
|
96
|
+
def _render_run(run: Run, pipeline: Pipeline, version: PipelineVersion, failed: FailedStep | None = None) -> RunOut:
|
|
97
|
+
"""Render a run row with the names a client actually wants to see.
|
|
98
|
+
|
|
99
|
+
A run row holds an error of its own only when it was cancelled, so a run that failed in a
|
|
100
|
+
step answers with what that step's attempt said.
|
|
101
|
+
"""
|
|
98
102
|
return RunOut(
|
|
99
103
|
id=run.id,
|
|
100
104
|
pipeline=pipeline.code,
|
|
@@ -105,8 +109,8 @@ def _render_run(run: Run, pipeline: Pipeline, version: PipelineVersion, failed_s
|
|
|
105
109
|
triggered_by_kind=run.triggered_by_kind,
|
|
106
110
|
triggered_by_label=run.triggered_by_label,
|
|
107
111
|
trace_id=telemetry.trace_id_of(run.traceparent),
|
|
108
|
-
error=run.error,
|
|
109
|
-
failed_step=
|
|
112
|
+
error=run.error or (failed.error if failed is not None else None),
|
|
113
|
+
failed_step=failed.step if failed is not None else None,
|
|
110
114
|
started_at=run.started_at,
|
|
111
115
|
finished_at=run.finished_at,
|
|
112
116
|
window_start=run.window_start,
|
|
@@ -739,7 +743,7 @@ async def _story(
|
|
|
739
743
|
reported.update({row.id: _fingerprint(row) for row in moved})
|
|
740
744
|
transitions = [
|
|
741
745
|
(
|
|
742
|
-
_moment(row.finished_at or row.started_at),
|
|
746
|
+
_moment(row.finished_at or row.started_at or row.created_at),
|
|
743
747
|
f"event: attempt\ndata: {_render_event(row, spilled, labels).model_dump_json()}\n\n",
|
|
744
748
|
)
|
|
745
749
|
for row in moved
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./PageState-
|
|
1
|
+
import{n as e}from"./PageState-Cp732SGc.js";import{r as t}from"./utils-CT7ZGLfR.js";import{t as n}from"./use-store-CfRquqZF.js";import{n as r,t as i}from"./auth-Bfdai8PV.js";var a=t(),o={status:403,title:`Forbidden`,detail:`This screen is an admin's. Operators may define, run and observe pipelines; managing accounts, tokens and connections is an admin's.`,problems:[],instance:null};function s({children:t}){let s=n(i);return r(s)?(0,a.jsx)(a.Fragment,{children:t}):(0,a.jsx)(e,{loading:!1,problem:o,empty:!1,children:null})}export{s as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{r as n}from"./with-selector-BXYKoaOE.js";import{n as r}from"./chunk-OB3PAWPO-DOp4K52_.js";import{i,r as a}from"./api-BgT8tbGp.js";import{n as o,o as s,t as c}from"./PageState-Cp732SGc.js";import{r as l,t as u}from"./ListTable-405QAql8.js";import{r as d}from"./utils-CT7ZGLfR.js";import{d as f,f as p}from"./paging-BPj1IA1S.js";import{t as m}from"./input-CfaV2SUH.js";import{t as h}from"./identity-BNZxCf_y.js";import{n as g,s as _}from"./pipelines-NdeXXJeR.js";import{$ as v,At as y,Dt as b,E as x,Ft as S,Mt as C,Nt as w,Ot as T,S as E,b as D,et as O,g as k,it as A,jt as j,kt as M,ot as N,pt as P,st as F,ut as I,v as L,y as R}from"./index-q1be8tDf.js";import{t as z}from"./Description-MmXUnb-9.js";import{t as B}from"./WindowedPane-DwMXUf5F.js";import{l as V}from"./connections-DXsWpZJc.js";import{n as H,t as ee}from"./Refusal-BTUIx0l-.js";import{t as U}from"./Instant-mr1E5jAK.js";import{t as te}from"./Segmented-VHBNaGnm.js";import{t as ne}from"./ProgramReference-DF37mMAT.js";import{t as re}from"./Picker-z4lQH0eh.js";import{t as ie}from"./AdminOnly-B5Il8Luo.js";var ae={name:`bell-plus`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M15 8h6`,key:`8ybuxh`}],[`path`,{d:`M18 5v6`,key:`g5ayrv`}],[`path`,{d:`M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332`,key:`1abcvy`}]]};ae.node;var W=n(ae),oe={name:`send`,size:24,node:[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]};oe.node;var se=n(oe),G=e(t(),1),ce=[`run_failed`,`run_completed_with_errors`,`run_succeeded`,`run_stuck`],le=[`pending`,`sending`,`sent`,`failed`],ue=`0s`;function de(e){return e===ue?`none`:e}function fe(e){return e.replaceAll(`_`,` `)}function pe(e){return e.scope===`pipeline`&&e.pipeline!==null?e.pipeline:`every pipeline`}function me(e){return e.active&&!e.paused}function he(e){return e===`sent`||e===`failed`}function ge(e,t=50){let n=new URLSearchParams({limit:String(t)});return e!==null&&n.set(`after`,e),`/alert-rules?${n.toString()}`}function _e(e){return a(ge(e))}function ve(e){return i(`/alert-rules`,`POST`,e)}function ye(e,t){return i(`/alert-rules/${encodeURIComponent(e)}`,`PATCH`,t)}function be(e,t){return ye(e,{paused:t})}function xe(e){return a(`/alert-rules/${encodeURIComponent(e)}`,{method:`DELETE`})}var Se={status:``,notifier:``};function Ce(e,t,n=50){let r=new URLSearchParams({limit:String(n)});return e.status!==``&&r.set(`status`,e.status),e.notifier!==``&&r.set(`notifier`,e.notifier),t!==null&&r.set(`after`,t),`/notifications?${r.toString()}`}function we(e,t){return a(Ce(e,t))}function Te(e){return a(`/notifications/${encodeURIComponent(e)}`)}function Ee(e){return i(`/notifications/${encodeURIComponent(e)}/$retry`,`POST`,{})}function De(e){return i(`/alert-rules/$test`,`POST`,e)}async function Oe(){return(await a(`/blocks`)).notifiers.map(e=>e.id)}function ke(e,t){let n=[];for(let r of e){if(r===`log`){n.push({id:r,notifier:r,connection:null,reachable:!0,last_check_at:null,last_check_healthy:null,last_check_detail:null});continue}let e=t.filter(e=>e.kind===r);if(e.length===0){n.push({id:r,notifier:r,connection:null,reachable:!1,last_check_at:null,last_check_healthy:null,last_check_detail:null});continue}for(let t of e)n.push({id:`${r}:${t.code}`,notifier:r,connection:t.code,reachable:!0,last_check_at:t.last_check_at,last_check_healthy:t.last_check_healthy,last_check_detail:t.last_check_detail})}return n}function Ae(e){return e.notifier===`log`?{tone:`good`,label:`built in`,detail:null}:e.reachable?e.last_check_at===null?{tone:`quiet`,label:`never checked`,detail:null}:{tone:e.last_check_healthy===!0?`good`:`critical`,label:e.last_check_healthy===!0?`checked`:`failing`,detail:e.last_check_detail}:{tone:`quiet`,label:`no connection`,detail:`Nothing delivers through this channel yet.`}}var je=/^[a-z0-9]+(?:[-_][a-z0-9]+)*$/u,Me=/^(?:\d+(?:ms|s|m|h|d|w))+$/u,Ne=`A Jinja template: {{ run.* }} reads the run's pipeline, status, id, error, trigger, duration_ms and url.`,Pe=`A Jinja template over the run's facts; report is the run's report document when it has one.`,K=`text/x-jinja`;function q(e){let t=e.trim();return t===``?null:t}var Fe=[{value:`global`,label:`Every pipeline`},{value:`pipeline`,label:`One pipeline`}],Ie={run_failed:`Failed`,run_completed_with_errors:`Completed with errors`,run_succeeded:`Succeeded`,run_stuck:`Stuck`};function J(e){return e!==``&&e!==`log`}function Le(e){if(e.code.trim()===``)return`A rule is addressed by its code, and this one has none.`;if(!je.test(e.code.trim()))return`A code is lowercase words joined by - or _.`;if(e.scope===`pipeline`&&e.pipeline===``)return`A rule watching one pipeline names that pipeline, and this one names none.`;if(e.notifier===``)return`A rule delivers through a channel, and this one names none.`;if(J(e.notifier)&&e.connection===``)return`The ${e.notifier} channel delivers through a connection, and this one names none.`;if(!Me.test(e.throttle.trim()))return`A throttle is a duration, such as 15m.`}function Re(e,t){if(e===``)return`A test goes through a channel, and this one names none.`;if(J(e)&&t===``)return`The ${e} channel delivers through a connection, and this one names none.`}var Y=d();function ze({rule:e,onChanged:t,onDeleted:n,onTest:r}){let[i,a]=(0,G.useState)(!1),[o,c]=(0,G.useState)(null),l=o===e.code,u=R(),d=(0,G.useCallback)(e=>we(Se,e),[]),{state:f}=L(d,He),m=f.rows.filter(t=>t.rule===e.code);return(0,Y.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,Y.jsxs)(Ge,{thing:e,children:[e.paused&&(0,Y.jsx)(We,{children:`paused`}),!e.active&&(0,Y.jsx)(We,{children:`off`})]}),(0,Y.jsx)(z,{text:e.description}),(0,Y.jsxs)(`dl`,{className:`space-y-1.5`,children:[(0,Y.jsx)(Z,{label:`Event`,children:fe(e.event)}),(0,Y.jsx)(Z,{label:`Scope`,children:pe(e)}),(0,Y.jsx)(Z,{label:`Delivers through`,children:(0,Y.jsx)(X,{notifier:e.notifier,connection:e.connection})}),(0,Y.jsx)(Z,{label:`Throttle`,children:de(e.throttle)}),l?(0,Y.jsx)(Be,{rule:e,onDone:()=>{c(null)},onSaved:e=>{t(e),c(null)}},e.code):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Z,{label:`Subject`,children:(0,Y.jsxs)(`span`,{className:`flex flex-wrap items-baseline gap-2`,children:[e.template===null?(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`none`}):(0,Y.jsx)(`span`,{className:`font-mono text-xs break-all`,children:e.template}),(0,Y.jsx)(s,{why:u.why,children:(0,Y.jsx)(p,{variant:`ghost`,size:`xs`,disabled:!u.may,title:u.why,onClick:()=>{c(e.code)},children:`Edit`})})]})}),e.body!==null&&(0,Y.jsx)(Z,{label:`Body`,children:(0,Y.jsx)(`span`,{className:`line-clamp-3 font-mono text-xs break-words whitespace-pre-wrap`,children:e.body})})]}),(0,Y.jsx)(Z,{label:`Last sent`,children:e.last_sent_at===null?(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`never`}):(0,Y.jsx)(U,{at:e.last_sent_at})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(s,{why:u.why,children:(0,Y.jsx)(p,{variant:`outline`,size:`sm`,disabled:i||!u.may,title:u.why,onClick:()=>{a(!0),be(e.code,!e.paused).then(t,H).finally(()=>{a(!1)})},children:e.paused?`Resume`:`Pause`})}),(0,Y.jsx)(s,{why:u.why,children:(0,Y.jsx)(p,{variant:`outline`,size:`sm`,disabled:!u.may,title:u.why,onClick:r,children:`Send a test`})}),(0,Y.jsx)(s,{why:u.why,children:(0,Y.jsx)(p,{variant:`outline`,size:`sm`,className:`destructive-action ml-auto`,disabled:i||!u.may,title:u.why,onClick:()=>{a(!0),xe(e.code).then(n,H).finally(()=>{a(!1)})},children:`Delete`})})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Recent deliveries`}),!f.read&&(0,Y.jsx)(`p`,{className:`text-xs text-faint`,children:`Reading from the server`}),f.read&&m.length===0&&(0,Y.jsx)(`p`,{className:`text-xs text-faint`,children:`Nothing sent.`}),(0,Y.jsx)(`ul`,{className:`divide-y divide-border`,children:m.map(e=>(0,Y.jsxs)(`li`,{className:`row-hover -mx-4 flex items-center gap-2 px-4 py-2`,children:[(0,Y.jsx)(E,{status:e.status}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs`,children:e.subject}),(0,Y.jsx)(U,{className:`shrink-0 text-xs text-faint`,at:e.created_at})]},e.id))})]})]})}function Be({rule:e,onDone:t,onSaved:n}){let[r,i]=(0,G.useState)(e.template??``),[a,o]=(0,G.useState)(e.body??``),[s,c]=(0,G.useState)(null),[l,u]=(0,G.useState)(!1),d=`alert-rule/${e.code}/body`,h=`rule-${e.code}-subject`;return(0,Y.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-border bg-secondary/30 p-3`,children:[(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(x,{htmlFor:h,children:`Subject`}),(0,Y.jsx)(m,{id:h,className:`font-mono`,spellCheck:!1,autoComplete:`off`,value:r,placeholder:`{{ run.pipeline }} run {{ run.status }}`,onChange:e=>{i(e.target.value)}}),(0,Y.jsx)(`p`,{className:`text-xs text-faint`,children:Ne})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(x,{children:`Body`}),(0,Y.jsx)(`p`,{className:`text-xs text-faint`,children:Pe}),(0,Y.jsx)(B,{name:`body`,className:`overflow-hidden rounded-md border border-border bg-background`,aside:(0,Y.jsx)(ne,{mediaType:K}),windowed:(0,Y.jsx)(A,{value:a,mediaType:K,path:d,label:`body, in a window`,className:`min-h-0 flex-1`,onChange:o}),children:(0,Y.jsx)(A,{value:a,mediaType:K,path:d,label:`body`,placeholder:`{{ run.pipeline }} ended {{ run.status }}: {{ run.url }}`,className:`h-40 min-h-32`,onChange:o})})]}),s!==null&&(0,Y.jsx)(ee,{problem:s}),(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Y.jsx)(p,{variant:`ghost`,size:`sm`,onClick:t,children:`Cancel`}),(0,Y.jsx)(p,{size:`sm`,disabled:l,onClick:()=>{let i={};if(q(r)!==e.template&&(i.template=q(r)),q(a)!==e.body&&(i.body=q(a)),Object.keys(i).length===0){t();return}u(!0),c(null),ye(e.code,i).then(n,e=>{c(f(e))}).finally(()=>{u(!1)})},children:l?`Saving`:`Save`})]})]})}function Ve({notification:e,onChanged:t}){let[n,i]=(0,G.useState)(!1),a=R();return(0,Y.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,Y.jsx)(`div`,{className:`space-y-1`,children:(0,Y.jsxs)(`p`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(E,{status:e.status}),(0,Y.jsx)(`span`,{className:`text-sm font-semibold`,children:e.subject})]})}),(0,Y.jsxs)(`dl`,{className:`space-y-1.5`,children:[e.rule===null?(0,Y.jsx)(Z,{label:`Raised by`,children:(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`a test, not a rule`})}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Z,{label:`Event`,children:fe(e.event)}),(0,Y.jsx)(Z,{label:`Rule`,children:(0,Y.jsx)(`span`,{className:`font-mono text-xs`,children:e.rule})})]}),(0,Y.jsx)(Z,{label:`Delivers through`,children:(0,Y.jsx)(X,{notifier:e.notifier,connection:e.connection})}),(0,Y.jsx)(Z,{label:`Run`,children:(0,Y.jsx)(Ue,{notification:e})}),(0,Y.jsx)(Z,{label:`Queued`,children:(0,Y.jsx)(U,{at:e.created_at})}),e.status===`sent`?(0,Y.jsx)(Z,{label:`Sent`,children:(0,Y.jsx)(U,{at:e.sent_at})}):(0,Y.jsx)(Z,{label:`Next try`,children:(0,Y.jsx)(U,{at:e.available_at})}),(0,Y.jsxs)(Z,{label:`Attempts`,children:[e.attempt,` of `,e.max_attempts]})]}),e.error!==null&&(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`What the channel said`}),(0,Y.jsx)(`p`,{className:`text-xs break-words text-critical`,children:e.error}),(0,Y.jsx)(`p`,{className:`text-xs text-faint`,children:`Only the latest refusal is kept. Earlier attempts are counted, not stored.`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(s,{why:a.why,children:(0,Y.jsx)(p,{variant:`outline`,size:`sm`,disabled:n||!a.may,title:a.why,onClick:()=>{i(!0),Ee(e.id).then(t,H).finally(()=>{i(!1)})},children:`Retry now`})}),e.run_id!==null&&(0,Y.jsx)(p,{variant:`outline`,size:`sm`,render:(0,Y.jsx)(r,{to:`/runs/${e.run_id}`}),children:`Open the run`})]})]})}var He=e=>e.id;function X({notifier:e,connection:t}){return(0,Y.jsxs)(`span`,{className:`flex flex-wrap items-baseline gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-sm`,children:e}),t!==null&&(0,Y.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:t})]})}function Ue({notification:e}){if(e.run_id===null)return(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`no run`});let t=e.run_pipeline??`a run`;return(0,Y.jsxs)(r,{className:`text-primary hover:underline`,to:`/runs/${e.run_id}`,children:[(0,Y.jsx)(`span`,{className:`text-sm`,children:t}),e.run_started_at!==null&&(0,Y.jsx)(U,{className:`ml-1.5 text-xs text-muted-foreground`,at:e.run_started_at})]})}function We({children:e}){return(0,Y.jsx)(`span`,{className:`rounded-sm border border-border px-1.5 text-xs text-muted-foreground`,children:e})}function Ge({thing:e,children:t}){let n=h(e);return(0,Y.jsxs)(`p`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:n.named?`text-sm font-semibold`:`font-mono text-sm font-semibold`,children:n.title}),t,n.code!==null&&(0,Y.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:n.code})]})}function Z({label:e,children:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,Y.jsx)(`dt`,{className:`w-32 shrink-0 text-xs text-muted-foreground`,children:e}),(0,Y.jsx)(`dd`,{className:`min-w-0 text-sm`,children:t})]})}var Ke={good:`var(--good)`,critical:`var(--critical)`,quiet:`var(--faint)`};function qe({channels:e}){return(0,Y.jsx)(`ul`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2 lg:grid-cols-4`,children:e.map(e=>(0,Y.jsx)(Je,{channel:e},e.id))})}function Je({channel:e}){let t=Ae(e);return(0,Y.jsxs)(`li`,{className:`flex items-start justify-between gap-3 rounded-lg border border-border bg-card p-3`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-2`,title:e.connection===null?e.notifier:`${e.notifier} ${e.connection}`,children:[(0,Y.jsx)(`span`,{className:`status-dot shrink-0`,style:{"--chip":Ke[t.tone]}}),(0,Y.jsx)(`span`,{className:`shrink-0 text-sm font-medium`,children:e.notifier}),e.connection!==null&&(0,Y.jsx)(`span`,{className:`truncate font-mono text-xs text-muted-foreground`,children:e.connection})]}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 flex-col items-end`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:t.label}),e.last_check_at!==null&&(0,Y.jsx)(U,{className:`text-xs text-faint`,at:e.last_check_at}),t.detail!==null&&(0,Y.jsx)(`span`,{className:`max-w-48 truncate text-xs text-faint`,title:t.detail,children:t.detail})]})]})}function Q({id:e,label:t,value:n,onChange:r,placeholder:i,mono:a,hint:o}){return(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(x,{htmlFor:e,children:t}),(0,Y.jsx)(m,{id:e,className:a===!0?`font-mono`:void 0,spellCheck:!1,autoComplete:`off`,value:n,placeholder:i,onChange:e=>{r(e.target.value)}}),o!==void 0&&(0,Y.jsx)(`p`,{className:`text-xs text-faint`,children:o})]})}function Ye({id:e,notifiers:t,value:n,onChange:r}){return(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(x,{htmlFor:e,children:`Notifier`}),(0,Y.jsx)(re,{id:e,label:`Notifier`,value:n,options:t.map(e=>({value:e,label:e,aside:``})),placeholder:`Search the installed channels`,onChange:r})]})}function Xe({id:e,kind:t,value:n,onChange:r}){let i=Ze(t);return(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(x,{htmlFor:e,children:`Connection`}),(0,Y.jsx)(re,{id:e,label:`Connection`,value:n,options:i,placeholder:i.length===0?`No ${t} connection yet`:`Search by name or code`,onChange:r})]})}function Ze(e){let[t,n]=(0,G.useState)([]);return(0,G.useEffect)(()=>{if(e===``||e===`log`)return;let t=!0;return V().then(e=>{t&&n(e.items)},()=>{t&&n([])}),()=>{t=!1}},[e]),t.filter(t=>t.kind===e).map(e=>{let t=h(e);return{value:e.code,label:t.title,aside:t.code??``}})}var Qe=`0s`,$e=`alert-rule/new/body`,$=`body`;function et({open:e,onOpenChange:t,notifiers:n,onCreated:r}){let[i,a]=(0,G.useState)(``),[o,c]=(0,G.useState)(``),[l,u]=(0,G.useState)(``),[d,m]=(0,G.useState)(`run_failed`),[h,g]=(0,G.useState)(`global`),[_,v]=(0,G.useState)(``),[y,S]=(0,G.useState)(``),[E,O]=(0,G.useState)(``),[k,N]=(0,G.useState)(``),[P,F]=(0,G.useState)(``),[I,L]=(0,G.useState)(Qe),[z,V]=(0,G.useState)(null),[H,U]=(0,G.useState)(!1),ie=tt(e),ae=R(),W=D(ae.why,Le({code:i,scope:h,pipeline:_,notifier:y,connection:E,throttle:I}));return(0,Y.jsx)(b,{open:e,onOpenChange:t,children:(0,Y.jsxs)(M,{className:`flex max-h-[calc(100vh-4rem)] flex-col sm:max-w-3xl`,showCloseButton:!1,children:[(0,Y.jsx)(C,{children:(0,Y.jsx)(w,{children:`New rule`})}),(0,Y.jsxs)(`div`,{className:`-mx-1 min-h-0 flex-1 space-y-4 overflow-y-auto px-1`,children:[(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:[(0,Y.jsx)(Q,{id:`rule-code`,label:`Code`,value:i,onChange:a,placeholder:`ops-slack-failed`,mono:!0}),(0,Y.jsx)(Q,{id:`rule-name`,label:`Name`,value:o,onChange:c,placeholder:`Tell the ops channel`})]}),(0,Y.jsx)(Q,{id:`rule-description`,label:`Description`,value:l,onChange:u,placeholder:`What this rule is for`}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(x,{children:`Event`}),(0,Y.jsx)(te,{label:`Event`,size:`md`,value:d,options:ce.map(e=>({value:e,label:Ie[e]})),onChoose:m})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:[(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(x,{children:`Scope`}),(0,Y.jsx)(te,{label:`Scope`,size:`md`,value:h,options:Fe,onChoose:g})]}),h===`pipeline`&&(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(x,{htmlFor:`rule-pipeline`,children:`Pipeline`}),(0,Y.jsx)(re,{id:`rule-pipeline`,label:`Pipeline`,value:_,options:ie,placeholder:`Search by name or code`,onChange:v})]})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:[(0,Y.jsx)(Ye,{id:`rule-notifier`,notifiers:n,value:y,onChange:e=>{S(e),O(``)}}),J(y)&&(0,Y.jsx)(Xe,{id:`rule-connection`,kind:y,value:E,onChange:O})]}),(0,Y.jsx)(Q,{id:`rule-subject`,label:`Subject`,value:k,onChange:N,placeholder:`{{ run.pipeline }} run {{ run.status }}`,mono:!0,hint:Ne}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(x,{children:`Body`}),(0,Y.jsx)(`p`,{className:`text-xs text-faint`,children:Pe}),(0,Y.jsx)(B,{name:$,className:`overflow-hidden rounded-md border border-border`,aside:(0,Y.jsx)(ne,{mediaType:K}),windowed:(0,Y.jsx)(A,{value:P,mediaType:K,path:$e,label:`${$}, in a window`,className:`min-h-0 flex-1`,onChange:F}),children:(0,Y.jsx)(A,{value:P,mediaType:K,path:$e,label:$,placeholder:`{{ run.pipeline }} ended {{ run.status }}: {{ run.url }}`,className:`h-40 min-h-32`,onChange:F})})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:(0,Y.jsx)(Q,{id:`rule-throttle`,label:`Throttle`,value:I,onChange:L,placeholder:`15m`,mono:!0})})]}),z!==null&&(0,Y.jsx)(ee,{problem:z}),(0,Y.jsxs)(j,{children:[(0,Y.jsx)(`p`,{className:`mr-auto self-center text-xs text-muted-foreground`,children:`A rule fires when a run settles. Nothing is sent now.`}),(0,Y.jsx)(T,{render:(0,Y.jsx)(p,{variant:`ghost`}),children:`Close`}),(0,Y.jsx)(s,{why:W,children:(0,Y.jsx)(p,{disabled:H||W!==void 0,title:W,onClick:()=>{U(!0),V(null),ve({code:i.trim(),name:q(o),description:q(l),event:d,notifier:y,scope:h,pipeline:h===`pipeline`?_:null,connection:J(y)?E:null,template:q(k),body:q(P),throttle:I.trim()}).then(()=>{r(),a(``),c(``),u(``),N(``),F(``),t(!1)},e=>{V(f(e))}).finally(()=>{U(!1)})},children:H?`Creating`:`Create`})})]})]})})}function tt(e){let[t,n]=(0,G.useState)([]);return(0,G.useEffect)(()=>{if(!e)return;let t=!0;return _().then(e=>{t&&n(e.toSorted(g).map(e=>{let t=h(e);return{value:e.code,label:t.title,aside:t.code??``}}))},()=>{t&&n([])}),()=>{t=!1}},[e]),t}var nt=1e3,rt=6e4,it=`dirigent test alert`,at={notifier:``,connection:``,subject:``};function ot({open:e,draft:t,onOpenChange:n,notifiers:r,onQueued:i,onOpenQueue:a}){let[o,c]=(0,G.useState)(t.notifier),[l,u]=(0,G.useState)(t.connection),[d,m]=(0,G.useState)(t.subject),[h,g]=(0,G.useState)(null),[_,v]=(0,G.useState)(null),[x,S]=(0,G.useState)(!1),E=ct(h),O=R(),k=E!==null&&he(E.status)?E.id:null;(0,G.useEffect)(()=>{k!==null&&i()},[k]);let A=D(O.why,Re(o,l));return(0,Y.jsx)(b,{open:e,onOpenChange:n,children:(0,Y.jsxs)(M,{className:`sm:max-w-lg`,showCloseButton:!1,children:[(0,Y.jsxs)(C,{children:[(0,Y.jsx)(w,{children:`Send a test`}),(0,Y.jsx)(y,{children:`The message goes through the same queue a real alert does, and a worker delivers it.`})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:[(0,Y.jsx)(Ye,{id:`test-notifier`,notifiers:r,value:o,onChange:e=>{c(e),u(``)}}),J(o)&&(0,Y.jsx)(Xe,{id:`test-connection`,kind:o,value:l,onChange:u})]}),(0,Y.jsx)(Q,{id:`test-subject`,label:`Subject`,value:d,onChange:m,placeholder:it}),_!==null&&(0,Y.jsx)(ee,{problem:_}),E!==null&&(0,Y.jsx)(st,{row:E}),(0,Y.jsxs)(j,{children:[(0,Y.jsx)(T,{render:(0,Y.jsx)(p,{variant:`ghost`}),children:`Close`}),h!==null&&(0,Y.jsx)(p,{variant:`outline`,onClick:()=>{a(h)},children:`Open in the queue`}),(0,Y.jsx)(s,{why:A,children:(0,Y.jsx)(p,{disabled:x||A!==void 0,title:A,onClick:()=>{S(!0),v(null),g(null),De({notifier:o,connection:J(o)?l:null,...d.trim()===``?{}:{subject:d.trim()}}).then(e=>{g(e.notification_id),i()},e=>{v(f(e))}).finally(()=>{S(!1)})},children:h===null?`Send`:`Send again`})})]})]})})}function st({row:e}){return(0,Y.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-border bg-secondary/40 p-3`,"data-testid":`test-delivery`,"aria-live":`polite`,children:[(0,Y.jsxs)(`p`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(E,{status:e.status}),(0,Y.jsx)(`span`,{className:`text-sm`,children:e.subject})]}),(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.status===`sent`?(0,Y.jsxs)(Y.Fragment,{children:[`Delivered `,(0,Y.jsx)(U,{at:e.sent_at}),`.`]}):e.status===`failed`?(0,Y.jsxs)(Y.Fragment,{children:[`Given up after `,e.attempt,` of `,e.max_attempts,` attempts.`]}):e.attempt===0?`Queued for the next worker pass.`:(0,Y.jsxs)(Y.Fragment,{children:[`Attempt `,e.attempt,` of `,e.max_attempts,`, next try`,` `,(0,Y.jsx)(U,{at:e.available_at}),`.`]})}),e.error!==null&&(0,Y.jsx)(`p`,{className:`text-xs break-words text-critical`,children:e.error})]})}function ct(e){let[t,n]=(0,G.useState)(null);return(0,G.useEffect)(()=>{if(e===null)return;let t=!0,r,i=Date.now()+rt,a=()=>{Te(e).then(o=>{t&&(n({id:e,row:o}),!(he(o.status)||Date.now()>i)&&(r=setTimeout(a,nt)))},()=>{})};return a(),()=>{t=!1,r!==void 0&&clearTimeout(r)}},[e]),t!==null&&t.id===e?t.row:null}var lt=e=>e.id,ut=e=>e.id;function dt(){return(0,Y.jsx)(ie,{children:(0,Y.jsx)(ft,{})})}function ft(){let[e,t]=(0,G.useState)(!1),[n,r]=(0,G.useState)(null),[i,a]=(0,G.useState)(null),[s,d]=(0,G.useState)(null),[f,p]=(0,G.useState)({status:``,notifier:``}),[m,h]=(0,G.useState)({}),[g,_]=(0,G.useState)({}),y=L((0,G.useCallback)(e=>_e(e),[]),lt),b=L((0,G.useCallback)(e=>we(f,e),[f]),ut),x=ht(),{reload:C}=y,{reload:w}=b,T=(0,G.useMemo)(()=>y.state.rows.map(e=>m[e.id]??e),[m,y.state.rows]),D=(0,G.useMemo)(()=>b.state.rows.map(e=>g[e.id]??e),[g,b.state.rows]),A=T.find(e=>e.id===i)??null,j=D.find(e=>e.id===s)??null,M=(0,G.useCallback)(e=>{r(t=>({draft:e,opened:(t?.opened??0)+1}))},[]);(0,G.useEffect)(()=>(O({note:null,tone:`quiet`,identifier:null}),v),[]),(0,G.useEffect)(()=>{if(A!==null){let e=A;return N([{id:`rule`,label:`Rule`,render:()=>(0,Y.jsx)(ze,{rule:e,onChanged:e=>{h(t=>({...t,[e.id]:e}))},onDeleted:()=>{a(null),C()},onTest:()=>{M({notifier:e.notifier,connection:e.connection??``,subject:``})}})}],{screen:`alerting`})}if(j!==null){let e=j;return N([{id:`notification`,label:`Notification`,render:()=>(0,Y.jsx)(Ve,{notification:e,onChanged:e=>{_(t=>({...t,[e.id]:e}))}})}],{screen:`alerting`})}},[j,A,M,C]);let z=R(`admin`),B=z.may;return(0,G.useEffect)(()=>P([...B?[{id:`alerting:rule`,title:`New alert rule`,group:I,screen:!0,icon:W,keywords:[`alert`,`event`,`create`],run:()=>{t(!0)}},{id:`alerting:test`,title:`Send a test through a channel`,group:I,screen:!0,icon:se,keywords:[`alert`,`notification`,`try`],run:()=>{M(at)}}]:[],{id:`alerting:reload`,title:`Read the alert rules again`,group:I,screen:!0,icon:S,keywords:[`refresh`,`reload`],run:()=>{C(),w()}}]),[B,M,w,C]),(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(c,{title:`Alerting`,aside:(0,Y.jsx)(l,{tag:`alerts`}),actions:[{id:`test`,label:`Send a test`,icon:se,variant:`outline`,disabled:!z.may,why:z.why,onClick:()=>{M(at)}},{id:`rule`,label:`New rule`,icon:W,disabled:!z.may,why:z.why,onClick:()=>{t(!0)}}]}),(0,Y.jsxs)(`section`,{className:`mb-6 space-y-2`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Channels`}),x.read?x.rows.length===0?(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No channel is installed.`}):(0,Y.jsx)(qe,{channels:x.rows}):(0,Y.jsx)(`p`,{className:`text-sm text-faint`,children:`Reading from the server`})]}),(0,Y.jsxs)(`section`,{className:`space-y-2`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Rules`}),(0,Y.jsx)(o,{loading:!y.state.read,problem:y.state.problem,empty:T.length===0,emptyMessage:`No rules.`,children:(0,Y.jsx)(u,{columns:gt,rows:T,rowKey:lt,rowClassName:e=>me(e)?void 0:`opacity-60`,reading:y.state.reading,next:y.state.next,onMore:y.more,noun:`rules`,onSelect:e=>{d(null),a(e.id),F()},selected:e=>e.id===i})})]}),(0,Y.jsxs)(`section`,{className:`mt-8 space-y-2`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Notifications`}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(k,{label:`Status`,value:f.status,anything:`Any status`,options:le.map(e=>({value:e,label:e,mark:(0,Y.jsx)(E,{status:e})})),onChange:e=>{p(t=>({...t,status:e}))}}),(0,Y.jsx)(k,{label:`Notifier`,value:f.notifier,anything:`Any notifier`,options:mt(x.rows),onChange:e=>{p(t=>({...t,notifier:e}))}})]})]}),(0,Y.jsx)(o,{loading:!b.state.read,problem:b.state.problem,empty:D.length===0,emptyMessage:`Nothing queued.`,children:(0,Y.jsx)(u,{columns:_t,rows:D,rowKey:ut,reading:b.state.reading,next:b.state.next,onMore:b.more,noun:`notifications`,onSelect:e=>{a(null),d(e.id),F()},selected:e=>e.id===s})})]}),(0,Y.jsx)(et,{open:e,onOpenChange:t,notifiers:pt(x.rows),onCreated:C}),(0,Y.jsx)(ot,{open:n!==null,draft:n?.draft??at,onOpenChange:e=>{e||r(null)},notifiers:pt(x.rows),onQueued:w,onOpenQueue:e=>{r(null),a(null),d(e),w(),F()}},n?.opened??0)]})}function pt(e){return[...new Set(e.map(e=>e.notifier))]}function mt(e){return pt(e).map(e=>({value:e,label:e}))}function ht(){let[e,t]=(0,G.useState)(null),[n,r]=(0,G.useState)(null);return(0,G.useEffect)(()=>{let e=!0;return Oe().then(n=>{e&&t(n)},()=>{e&&t([])}),V().then(t=>{e&&r(t.items)},()=>{e&&r([])}),()=>{e=!1}},[]),{rows:(0,G.useMemo)(()=>ke(e??[],n??[]),[n,e]),read:e!==null&&n!==null}}var gt=[{id:`rule`,header:`Rule`,cell:e=>{let t=h(e);return(0,Y.jsxs)(`span`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,Y.jsx)(`span`,{className:t.named?`text-sm font-medium`:`font-mono text-sm font-medium`,children:t.title}),t.code!==null&&(0,Y.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:t.code})]})}},{id:`event`,header:`Event`,cell:e=>(0,Y.jsx)(`span`,{className:`text-sm`,children:Ie[e.event]})},{id:`scope`,header:`Scope`,cell:e=>(0,Y.jsx)(`span`,{className:e.scope===`pipeline`?`font-mono text-xs`:`text-sm`,children:pe(e)})},{id:`delivers`,header:`Delivers through`,cell:e=>(0,Y.jsx)(X,{notifier:e.notifier,connection:e.connection})},{id:`throttle`,header:`Throttle`,className:`font-mono text-xs`,cell:e=>(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:de(e.throttle)})},{id:`sent`,header:`Last sent`,className:`text-xs`,cell:e=>e.last_sent_at===null?(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`never`}):(0,Y.jsx)(U,{className:`text-muted-foreground`,at:e.last_sent_at})},{id:`live`,header:`State`,cell:e=>e.paused?(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`paused`}):e.active?(0,Y.jsx)(`span`,{className:`text-xs text-good`,children:`active`}):(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`off`})}],_t=[{id:`status`,header:`Status`,cell:e=>(0,Y.jsx)(E,{status:e.status})},{id:`subject`,header:`Subject`,cell:e=>(0,Y.jsxs)(`span`,{className:`flex flex-col`,children:[(0,Y.jsx)(`span`,{className:`text-sm`,children:e.subject}),e.error!==null&&(0,Y.jsx)(`span`,{className:`max-w-96 truncate text-xs text-critical`,title:e.error,children:e.error})]})},{id:`delivers`,header:`Delivers through`,cell:e=>(0,Y.jsx)(X,{notifier:e.notifier,connection:e.connection})},{id:`run`,header:`Run`,cell:e=>(0,Y.jsx)(Ue,{notification:e})},{id:`queued`,header:`Queued`,className:`text-xs`,cell:e=>(0,Y.jsx)(U,{className:`text-muted-foreground`,at:e.created_at})},{id:`sent`,header:`Sent`,className:`text-xs`,cell:e=>e.status===`sent`?(0,Y.jsx)(U,{className:`text-muted-foreground`,at:e.sent_at}):e.attempt>0?(0,Y.jsxs)(`span`,{className:`text-faint`,children:[e.attempt,` of `,e.max_attempts,` attempts`]}):null}];export{dt as AdminAlerting};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{n}from"./chunk-OB3PAWPO-DOp4K52_.js";import{n as r,t as i}from"./PageState-Cp732SGc.js";import{r as a,t as o}from"./ListTable-405QAql8.js";import{r as s}from"./utils-CT7ZGLfR.js";import{t as c}from"./input-CfaV2SUH.js";import{$ as l,_ as u,et as d,ot as f,st as p}from"./index-q1be8tDf.js";import{t as m}from"./Markdown-roa7jpVu.js";import{n as h,r as g}from"./Panel-wjrXUPsz.js";import{a as _,c as v,l as y,n as b,o as x,r as S,t as C}from"./blocks-DqStV2zY.js";import{r as w}from"./schema-form-dcZ8A0M1.js";import{l as T,r as E}from"./examples-BtRLOjVV.js";import{t as D}from"./KindChip-CwU_Xxdy.js";var O=e(t(),1),k=s(),A=e=>e.id,j=[{key:`scheme`,title:`Storage schemes`,noun:`schemes`},{key:`notifier`,title:`Notifiers`,noun:`notifiers`},{key:`connection`,title:`Connection kinds`,noun:`connection kinds`}],M=e=>t=>`${e}:${t.id}`,N=()=>{};function P(){let[e,t]=(0,O.useState)(``),[n,s]=(0,O.useState)(null),{value:m,problem:h,read:g}=u(v),y=u(T),b=(0,O.useMemo)(()=>E(y.value??[]),[y.value]),S=(0,O.useMemo)(()=>m?.blocks??[],[m]),w=(0,O.useMemo)(()=>_(S,e),[S,e]),D=(0,O.useMemo)(()=>C(w),[w]),P=(0,O.useMemo)(()=>x(m?.storage_schemes??[],e),[m,e]),I=(0,O.useMemo)(()=>x(m?.notifiers??[],e),[m,e]),B=(0,O.useMemo)(()=>x(m?.connection_kinds??[],e),[m,e]),V=(0,O.useMemo)(()=>F(b),[b]),H=S.find(e=>`block:${e.id}`===n)??null,U={scheme:P,notifier:I,connection:B},W=j.flatMap(e=>U[e.key].map(t=>({registry:e,entry:t}))).find(({registry:e,entry:t})=>M(e.key)(t)===n)??null;(0,O.useEffect)(()=>{if(g)return d({note:null,tone:`quiet`,identifier:null}),l},[S,g,m]),(0,O.useEffect)(()=>{if(H!==null)return f([{id:`block`,label:`Block`,render:()=>(0,k.jsx)(z,{entry:H})}],{screen:`blocks`});if(W!==null){let{registry:e,entry:t}=W;return f([{id:`entry`,label:e.title,render:()=>(0,k.jsx)(R,{entry:t})}],{screen:`blocks`})}},[H,W]);let G=(0,O.useCallback)(e=>{s(`block:${e.id}`),p()},[]);return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(i,{title:`Blocks`,aside:(0,k.jsx)(a,{tag:`blocks`})}),(0,k.jsx)(`div`,{className:`mb-4 flex flex-wrap items-center gap-2`,children:(0,k.jsx)(c,{className:`w-56`,value:e,onChange:e=>{t(e.target.value)},placeholder:`Search blocks`,"aria-label":`Search blocks by id or summary`})}),(0,k.jsx)(r,{loading:!g,problem:h,empty:w.length===0&&P.length===0&&I.length===0&&B.length===0,emptyMessage:S.length===0?`No blocks installed — plugins contribute them.`:`Nothing in the catalog matches that.`,children:(0,k.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[D.map(([e,t])=>(0,k.jsxs)(`section`,{children:[(0,k.jsx)(`h2`,{className:`mb-1.5 font-mono text-xs font-semibold tracking-wide text-faint uppercase`,children:e}),(0,k.jsx)(o,{chrome:{footer:!1},fixed:!0,columns:V,rows:t,rowKey:A,reading:!1,next:null,onMore:N,noun:`blocks`,onSelect:G,selected:e=>`block:${e.id}`===n})]},e)),j.map(e=>{let t=U[e.key];return t.length===0?null:(0,k.jsxs)(`section`,{children:[(0,k.jsx)(`h2`,{className:`mb-1.5 font-mono text-xs font-semibold tracking-wide text-faint uppercase`,children:e.title}),(0,k.jsx)(o,{chrome:{footer:!1},fixed:!0,columns:L(e.key),rows:t,rowKey:M(e.key),reading:!1,next:null,onMore:N,noun:e.noun,onSelect:t=>{s(M(e.key)(t)),p()},selected:t=>M(e.key)(t)===n})]},e.key)})]})})]})}function F(e){return[{id:`block`,header:`Block`,className:`w-full max-w-0`,cell:e=>(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`span`,{className:`font-mono text-sm font-semibold`,children:e.id}),(0,k.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,title:e.summary,children:e.summary})]})},{id:`kind`,header:`Kind`,className:`w-32 whitespace-nowrap`,cell:e=>(0,k.jsx)(D,{kind:e.kind})},{id:`examples`,header:`Examples`,className:`w-28 whitespace-nowrap`,cell:t=>(0,k.jsx)(I,{id:t.id,many:e.get(t.id)??0})},{id:`plugin`,header:`Plugin`,className:`w-36 font-mono text-xs whitespace-nowrap`,cell:e=>(0,k.jsx)(`span`,{className:`text-muted-foreground`,children:e.plugin})}]}function I({id:e,many:t}){if(t===0)return(0,k.jsx)(`span`,{className:`text-xs text-faint`,children:`none`});let r=`${String(t)} ${t===1?`example`:`examples`}`;return(0,k.jsx)(n,{className:`text-xs text-primary-ink hover:underline`,to:`/examples?block=${encodeURIComponent(e)}`,title:`The shipped documents that require ${e}`,onClick:e=>{e.stopPropagation()},children:r})}function L(e){let t=e===`scheme`?`storage`:e;return[{id:`entry`,header:`Entry`,className:`w-full max-w-0`,cell:e=>{let t=typeof e.config_schema.description==`string`?e.config_schema.description:``;return(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`span`,{className:`font-mono text-sm font-semibold`,children:e.id}),(0,k.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,title:t,children:t})]})}},{id:`kind`,header:`Kind`,className:`w-32 whitespace-nowrap`,cell:()=>(0,k.jsx)(D,{kind:t})},{id:`plugin`,header:`Plugin`,className:`w-36 font-mono text-xs whitespace-nowrap`,cell:e=>(0,k.jsx)(`span`,{className:`text-muted-foreground`,children:e.plugin})}]}function R({entry:e}){let t=(0,O.useMemo)(()=>w(e.config_schema),[e]),n=typeof e.config_schema.description==`string`?e.config_schema.description:null;return(0,k.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,k.jsxs)(`div`,{className:`space-y-1`,children:[(0,k.jsx)(`h2`,{className:`font-mono text-sm font-semibold`,children:e.id}),n!==null&&(0,k.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n}),(0,k.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs`,children:(0,k.jsx)(h,{term:`plugin`,detail:e.plugin})})]}),(0,k.jsx)(g,{title:`Config`,children:t.length===0?(0,k.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This takes no configuration.`}):(0,k.jsx)(`div`,{className:`flex flex-col gap-4`,children:t.map(e=>(0,k.jsx)(B,{field:e},e.name))})})]})}function z({entry:e}){let t=(0,O.useMemo)(()=>w(e.config_schema),[e]),n=S(e);return(0,k.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,k.jsxs)(`div`,{className:`space-y-1`,children:[(0,k.jsx)(`h2`,{className:`font-mono text-sm font-semibold`,children:e.id}),(0,k.jsx)(`p`,{children:(0,k.jsx)(D,{kind:e.kind})}),(0,k.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.summary})]}),(0,k.jsx)(g,{title:`Facts`,children:(0,k.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs`,children:n.map(e=>(0,k.jsx)(h,{term:e.term,detail:e.detail},e.term))})}),(0,k.jsx)(g,{title:`Config`,children:t.length===0?(0,k.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This block takes no configuration.`}):(0,k.jsx)(`div`,{className:`flex flex-col gap-4`,children:t.map(e=>(0,k.jsx)(B,{field:e},e.name))})})]})}function B({field:e}){let t=b(e);return(0,k.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,k.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2`,children:[(0,k.jsx)(`span`,{className:`font-mono text-sm font-medium`,children:e.name}),(0,k.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:y(e)}),e.required&&(0,k.jsx)(`span`,{className:`text-xs text-primary`,children:`required`}),e.hint!==null&&(0,k.jsx)(`span`,{className:`text-xs text-faint`,children:e.hint}),t!==null&&(0,k.jsxs)(`span`,{className:`text-xs text-faint`,children:[`default `,t]})]}),e.options.length>0&&(0,k.jsx)(`p`,{className:`font-mono text-xs text-muted-foreground`,children:e.options.map(e=>e.label).join(` · `)}),e.help!==null&&(0,k.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:(0,k.jsx)(m,{text:e.help})})]})}export{P as Blocks};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{n}from"./chunk-OB3PAWPO-DOp4K52_.js";import{r,t as i}from"./utils-CT7ZGLfR.js";var a=e(t(),1),o=r();function s({trail:e,code:t}){return(0,o.jsxs)(`nav`,{className:`flex min-w-0 items-center gap-1.5 text-sm`,"aria-label":`Breadcrumb`,title:e.map(e=>e.label).join(` / `),children:[e.map((t,r)=>{let s=r===e.length-1,c=s||t.keep===!0,l=e.slice(0,r).some(e=>e.keep===!0);return(0,o.jsxs)(a.Fragment,{children:[r>0&&(0,o.jsx)(`span`,{className:i(`text-faint`,!(c&&l)&&`hidden md:inline`),"aria-hidden":!0,children:`/`}),t.to===void 0?(0,o.jsx)(`span`,{title:t.title,className:i(`min-w-0 truncate`,s&&`font-medium`,t.mono===!0&&`font-mono`,!c&&`hidden md:inline`),children:t.label}):(0,o.jsx)(n,{to:t.to,title:t.title,className:i(`min-w-0 truncate text-muted-foreground hover:text-foreground`,t.mono===!0&&`font-mono`,!c&&`hidden md:inline`),children:t.label})]},`${t.label}-${String(r)}`)}),t!=null&&(0,o.jsx)(`span`,{className:`min-w-0 truncate font-mono text-xs text-muted-foreground`,children:t})]})}export{s as t};
|