prefect 3.6.16.dev5__py3-none-any.whl → 3.6.16.dev7__py3-none-any.whl
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.
- prefect/_build_info.py +3 -3
- prefect/cli/__init__.py +1 -0
- prefect/cli/cloud/asset.py +135 -0
- prefect/server/ui-v2/assets/artifact-card-BnPKAfkY.js +2 -0
- prefect/server/ui-v2/assets/artifact-card-BnPKAfkY.js.map +1 -0
- prefect/server/ui-v2/assets/artifact._id-vDOuIuta.js +2 -0
- prefect/server/ui-v2/assets/artifact._id-vDOuIuta.js.map +1 -0
- prefect/server/ui-v2/assets/automation-wizard-RlOhF90R.js +2 -0
- prefect/server/ui-v2/assets/automation-wizard-RlOhF90R.js.map +1 -0
- prefect/server/ui-v2/assets/automation._id-CEHa-X0X.js +2 -0
- prefect/server/ui-v2/assets/{automation._id-CMiura1b.js.map → automation._id-CEHa-X0X.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation_._id.edit-Cbfcwa-K.js → automation_._id.edit-BRWAsELa.js} +2 -2
- prefect/server/ui-v2/assets/{automation_._id.edit-Cbfcwa-K.js.map → automation_._id.edit-BRWAsELa.js.map} +1 -1
- prefect/server/ui-v2/assets/{automations-header-BxPCOE-0.js → automations-header-Dr6v5dPp.js} +2 -2
- prefect/server/ui-v2/assets/{automations-header-BxPCOE-0.js.map → automations-header-Dr6v5dPp.js.map} +1 -1
- prefect/server/ui-v2/assets/base-job-template-form-section-C8_R96gO.js +2 -0
- prefect/server/ui-v2/assets/base-job-template-form-section-C8_R96gO.js.map +1 -0
- prefect/server/ui-v2/assets/block-type-details-tAkUWqs1.js +2 -0
- prefect/server/ui-v2/assets/block-type-details-tAkUWqs1.js.map +1 -0
- prefect/server/ui-v2/assets/block-type-logo-scnMsyY5.js +2 -0
- prefect/server/ui-v2/assets/{block-type-logo-DuvU7goV.js.map → block-type-logo-scnMsyY5.js.map} +1 -1
- prefect/server/ui-v2/assets/block._id-BY42cyjR.js +2 -0
- prefect/server/ui-v2/assets/block._id-BY42cyjR.js.map +1 -0
- prefect/server/ui-v2/assets/{block_._id.edit-C4SmoQ4y.js → block_._id.edit-n2jwU5yr.js} +2 -2
- prefect/server/ui-v2/assets/{block_._id.edit-C4SmoQ4y.js.map → block_._id.edit-n2jwU5yr.js.map} +1 -1
- prefect/server/ui-v2/assets/catalog-5_GoCKpb.js +2 -0
- prefect/server/ui-v2/assets/catalog-5_GoCKpb.js.map +1 -0
- prefect/server/ui-v2/assets/catalog_._slug-sZvt0fDy.js +2 -0
- prefect/server/ui-v2/assets/catalog_._slug-sZvt0fDy.js.map +1 -0
- prefect/server/ui-v2/assets/{catalog_._slug_.create-CgKL4TS2.js → catalog_._slug_.create-rboQmoyW.js} +2 -2
- prefect/server/ui-v2/assets/{catalog_._slug_.create-CgKL4TS2.js.map → catalog_._slug_.create-rboQmoyW.js.map} +1 -1
- prefect/server/ui-v2/assets/{collapsible-DZbPzSgr.js → collapsible-Lk7MRvBH.js} +2 -2
- prefect/server/ui-v2/assets/{collapsible-DZbPzSgr.js.map → collapsible-Lk7MRvBH.js.map} +1 -1
- prefect/server/ui-v2/assets/concurrency-limit._id-D5i9zZJh.js +2 -0
- prefect/server/ui-v2/assets/concurrency-limit._id-D5i9zZJh.js.map +1 -0
- prefect/server/ui-v2/assets/create-CtsA2QIl.js +2 -0
- prefect/server/ui-v2/assets/{create-BrNwbpVu.js.map → create-CtsA2QIl.js.map} +1 -1
- prefect/server/ui-v2/assets/{create-DWgkh2HT.js → create-DJPAEZ93.js} +2 -2
- prefect/server/ui-v2/assets/create-DJPAEZ93.js.map +1 -0
- prefect/server/ui-v2/assets/{data-table-QSHqmTar.js → data-table-bk-0xKWT.js} +2 -2
- prefect/server/ui-v2/assets/{data-table-QSHqmTar.js.map → data-table-bk-0xKWT.js.map} +1 -1
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-dLycVNo4.js → delete-confirmation-dialog-BZg9EOfN.js} +2 -2
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-dLycVNo4.js.map → delete-confirmation-dialog-BZg9EOfN.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-action-header-CzvBTL6H.js → deployment-action-header-DwuMPgVg.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-action-header-CzvBTL6H.js.map → deployment-action-header-DwuMPgVg.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment-form-BpKkzEf2.js +3 -0
- prefect/server/ui-v2/assets/deployment-form-BpKkzEf2.js.map +1 -0
- prefect/server/ui-v2/assets/{deployment-links-CGjJpxJA.js → deployment-links-B67P-6Ph.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-links-CGjJpxJA.js.map → deployment-links-B67P-6Ph.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment._id-DXrb6frJ.js → deployment._id-BVOBfMVf.js} +2 -2
- prefect/server/ui-v2/assets/deployment._id-BVOBfMVf.js.map +1 -0
- prefect/server/ui-v2/assets/deployment._id-KOMC9fpE.js +2 -0
- prefect/server/ui-v2/assets/deployment._id-KOMC9fpE.js.map +1 -0
- prefect/server/ui-v2/assets/deployment_._id.duplicate-BPk2SchT.js +2 -0
- prefect/server/ui-v2/assets/deployment_._id.duplicate-BPk2SchT.js.map +1 -0
- prefect/server/ui-v2/assets/deployment_._id.edit-Dv0M_huv.js +2 -0
- prefect/server/ui-v2/assets/deployment_._id.edit-Dv0M_huv.js.map +1 -0
- prefect/server/ui-v2/assets/deployment_._id.run-DFVA4Xhx.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.run-CnacOmhY.js.map → deployment_._id.run-DFVA4Xhx.js.map} +1 -1
- prefect/server/ui-v2/assets/{dropdown-menu-B9LKPlz7.js → dropdown-menu-fRiq5bS-.js} +2 -2
- prefect/server/ui-v2/assets/{dropdown-menu-B9LKPlz7.js.map → dropdown-menu-fRiq5bS-.js.map} +1 -1
- prefect/server/ui-v2/assets/{event-resource-display-B42RIaiX.js → event-resource-display-C1ZAey-o.js} +2 -2
- prefect/server/ui-v2/assets/{event-resource-display-B42RIaiX.js.map → event-resource-display-C1ZAey-o.js.map} +1 -1
- prefect/server/ui-v2/assets/event._eventDate._eventId-CcbtP9Ag.js +2 -0
- prefect/server/ui-v2/assets/{event._eventDate._eventId-CKTuT_8S.js.map → event._eventDate._eventId-CcbtP9Ag.js.map} +1 -1
- prefect/server/ui-v2/assets/flow-run-graph-CycKStSg.js +2 -0
- prefect/server/ui-v2/assets/flow-run-graph-CycKStSg.js.map +1 -0
- prefect/server/ui-v2/assets/{flow-run._id-BKv9Meqc.js → flow-run._id-Dn9R_Tjy.js} +2 -2
- prefect/server/ui-v2/assets/flow-run._id-Dn9R_Tjy.js.map +1 -0
- prefect/server/ui-v2/assets/{flow-run._id-ZTkjj6bM.js → flow-run._id-Dwx7ojcj.js} +2 -2
- prefect/server/ui-v2/assets/flow-run._id-Dwx7ojcj.js.map +1 -0
- prefect/server/ui-v2/assets/flow-run._id-YzRd5jrC.js +4 -0
- prefect/server/ui-v2/assets/flow-run._id-YzRd5jrC.js.map +1 -0
- prefect/server/ui-v2/assets/flow-runs-pagination-DMLZFM1m.js +2 -0
- prefect/server/ui-v2/assets/flow-runs-pagination-DMLZFM1m.js.map +1 -0
- prefect/server/ui-v2/assets/flow._id-V6-Qhkwk.js +2 -0
- prefect/server/ui-v2/assets/flow._id-V6-Qhkwk.js.map +1 -0
- prefect/server/ui-v2/assets/{form-DOdmIC3A.js → form-Cl5Hk9bq.js} +2 -2
- prefect/server/ui-v2/assets/{form-DOdmIC3A.js.map → form-Cl5Hk9bq.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-DcIuN5UN.js → header-BuI436ik.js} +2 -2
- prefect/server/ui-v2/assets/{header-DcIuN5UN.js.map → header-BuI436ik.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-CnBwASd-.js → header-DcAQCxQl.js} +2 -2
- prefect/server/ui-v2/assets/{header-CnBwASd-.js.map → header-DcAQCxQl.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-DxE-NzAK.js → header-qlcK4NLD.js} +2 -2
- prefect/server/ui-v2/assets/{header-DxE-NzAK.js.map → header-qlcK4NLD.js.map} +1 -1
- prefect/server/ui-v2/assets/index--Z69UYXV.js +2 -0
- prefect/server/ui-v2/assets/index--Z69UYXV.js.map +1 -0
- prefect/server/ui-v2/assets/{index-D0R9_LIL.js → index-BO4Qqsm8.js} +2 -2
- prefect/server/ui-v2/assets/index-BO4Qqsm8.js.map +1 -0
- prefect/server/ui-v2/assets/index-Bg45XS_V.js +2 -0
- prefect/server/ui-v2/assets/index-Bg45XS_V.js.map +1 -0
- prefect/server/ui-v2/assets/{index-BIBIJufF.js → index-BleYpDoN.js} +2 -2
- prefect/server/ui-v2/assets/index-BleYpDoN.js.map +1 -0
- prefect/server/ui-v2/assets/{index-DyOAqIOp.js → index-C63VUjOh.js} +2 -2
- prefect/server/ui-v2/assets/{index-DyOAqIOp.js.map → index-C63VUjOh.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DfKXdmko.js → index-C6LgWyJb.js} +2 -2
- prefect/server/ui-v2/assets/index-C6LgWyJb.js.map +1 -0
- prefect/server/ui-v2/assets/index-CE-bVgqj.js +2 -0
- prefect/server/ui-v2/assets/{index-DlAHvqFx.js.map → index-CE-bVgqj.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-V_xTKaEb.js → index-CPpeVt8m.js} +13 -13
- prefect/server/ui-v2/assets/index-CPpeVt8m.js.map +1 -0
- prefect/server/ui-v2/assets/index-CYaUe0Ym.js +2 -0
- prefect/server/ui-v2/assets/index-CYaUe0Ym.js.map +1 -0
- prefect/server/ui-v2/assets/{index-C5RMFRyZ.js → index-Clbms0kg.js} +2 -2
- prefect/server/ui-v2/assets/index-Clbms0kg.js.map +1 -0
- prefect/server/ui-v2/assets/index-D13YFoYA.js +2 -0
- prefect/server/ui-v2/assets/index-D13YFoYA.js.map +1 -0
- prefect/server/ui-v2/assets/{index-Cx1qEoCK.js → index-D73a_nGu.js} +2 -2
- prefect/server/ui-v2/assets/{index-Cx1qEoCK.js.map → index-D73a_nGu.js.map} +1 -1
- prefect/server/ui-v2/assets/index-DJXBzX1E.css +1 -0
- prefect/server/ui-v2/assets/{index-BO60ehN6.js → index-DPPPaOr_.js} +2 -2
- prefect/server/ui-v2/assets/index-DPPPaOr_.js.map +1 -0
- prefect/server/ui-v2/assets/{index-DP8W-xJo.js → index-DU9ShbqW.js} +2 -2
- prefect/server/ui-v2/assets/index-DU9ShbqW.js.map +1 -0
- prefect/server/ui-v2/assets/index-DdR1lzZk.js +2 -0
- prefect/server/ui-v2/assets/index-DdR1lzZk.js.map +1 -0
- prefect/server/ui-v2/assets/{index-B9ttjsyu.js → index-ELo08q04.js} +2 -2
- prefect/server/ui-v2/assets/{index-B9ttjsyu.js.map → index-ELo08q04.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BTL1xHS9.js → index-cp6PTdHp.js} +2 -2
- prefect/server/ui-v2/assets/{index-BTL1xHS9.js.map → index-cp6PTdHp.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-D6G96ToY.js → index-kM_g8J0u.js} +2 -2
- prefect/server/ui-v2/assets/{index-D6G96ToY.js.map → index-kM_g8J0u.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-q5Y3hlDT.js → index-mYcm9Rkr.js} +2 -2
- prefect/server/ui-v2/assets/index-mYcm9Rkr.js.map +1 -0
- prefect/server/ui-v2/assets/{index-D9cOtoSU.js → index-yavn_NBp.js} +2 -2
- prefect/server/ui-v2/assets/index-yavn_NBp.js.map +1 -0
- prefect/server/ui-v2/assets/{json-input-YKJMJCcT.js → json-input-iUzf6BvZ.js} +2 -2
- prefect/server/ui-v2/assets/{json-input-YKJMJCcT.js.map → json-input-iUzf6BvZ.js.map} +1 -1
- prefect/server/ui-v2/assets/{key-value-RPUUqQ6F.js → key-value-DI27Dv4P.js} +2 -2
- prefect/server/ui-v2/assets/{key-value-RPUUqQ6F.js.map → key-value-DI27Dv4P.js.map} +1 -1
- prefect/server/ui-v2/assets/key._key-C-nk2nld.js +2 -0
- prefect/server/ui-v2/assets/key._key-C-nk2nld.js.map +1 -0
- prefect/server/ui-v2/assets/{lazy-markdown-B9vEkJ0h.js → lazy-markdown-D_y73qoD.js} +2 -2
- prefect/server/ui-v2/assets/{lazy-markdown-B9vEkJ0h.js.map → lazy-markdown-D_y73qoD.js.map} +1 -1
- prefect/server/ui-v2/assets/{login-C3PhSGQJ.js → login-DR_xuMmg.js} +2 -2
- prefect/server/ui-v2/assets/{login-C3PhSGQJ.js.map → login-DR_xuMmg.js.map} +1 -1
- prefect/server/ui-v2/assets/{markdown-input-Dei7u1qp.js → markdown-input-hzlzpUdj.js} +2 -2
- prefect/server/ui-v2/assets/{markdown-input-Dei7u1qp.js.map → markdown-input-hzlzpUdj.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-example-snippet-DvulFxgw.js → python-example-snippet-d8bTNJ0J.js} +3 -3
- prefect/server/ui-v2/assets/{python-example-snippet-DvulFxgw.js.map → python-example-snippet-d8bTNJ0J.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-input-niCawr8m.js → python-input-Bxdnzvx3.js} +2 -2
- prefect/server/ui-v2/assets/{python-input-niCawr8m.js.map → python-input-Bxdnzvx3.js.map} +1 -1
- prefect/server/ui-v2/assets/{radio-group-D55TQZsk.js → radio-group-0oOEMJCS.js} +2 -2
- prefect/server/ui-v2/assets/{radio-group-D55TQZsk.js.map → radio-group-0oOEMJCS.js.map} +1 -1
- prefect/server/ui-v2/assets/{route-error-state-Cu4m0LTX.js → route-error-state-BqbnZCc-.js} +2 -2
- prefect/server/ui-v2/assets/{route-error-state-Cu4m0LTX.js.map → route-error-state-BqbnZCc-.js.map} +1 -1
- prefect/server/ui-v2/assets/{schema-form-BQAcWW5k.js → schema-form-BD-WM4S0.js} +2 -2
- prefect/server/ui-v2/assets/{schema-form-BQAcWW5k.js.map → schema-form-BD-WM4S0.js.map} +1 -1
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-Cb4sTJle.js → schema-form-input-string-format-datetime-Dg3zVAp5.js} +4 -4
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-Cb4sTJle.js.map → schema-form-input-string-format-datetime-Dg3zVAp5.js.map} +1 -1
- prefect/server/ui-v2/assets/{settings-DV4ewZ_4.js → settings-Dm6yMLix.js} +2 -2
- prefect/server/ui-v2/assets/{settings-DV4ewZ_4.js.map → settings-Dm6yMLix.js.map} +1 -1
- prefect/server/ui-v2/assets/{sort-filter-DY7vgl7C.js → sort-filter-X6JyRc0-.js} +2 -2
- prefect/server/ui-v2/assets/{sort-filter-DY7vgl7C.js.map → sort-filter-X6JyRc0-.js.map} +1 -1
- prefect/server/ui-v2/assets/{table-ChOwO4Pk.js → table-Xyel2BEw.js} +2 -2
- prefect/server/ui-v2/assets/{table-ChOwO4Pk.js.map → table-Xyel2BEw.js.map} +1 -1
- prefect/server/ui-v2/assets/{tags-input-2KSBvO_K.js → tags-input-DqZ8v99z.js} +2 -2
- prefect/server/ui-v2/assets/{tags-input-2KSBvO_K.js.map → tags-input-DqZ8v99z.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-CNrP9yPQ.js → task-run-concurrency-limits-reset-dialog-5xFWeoYy.js} +2 -2
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-CNrP9yPQ.js.map → task-run-concurrency-limits-reset-dialog-5xFWeoYy.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-cqXH0PMU.js → task-run._id-9DcrUEGz.js} +3 -3
- prefect/server/ui-v2/assets/{task-run._id-cqXH0PMU.js.map → task-run._id-9DcrUEGz.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-CQGeAiBh.js → task-run._id-DJkoLl_e.js} +2 -2
- prefect/server/ui-v2/assets/task-run._id-DJkoLl_e.js.map +1 -0
- prefect/server/ui-v2/assets/task-runs-pagination-B2fSdB1t.js +2 -0
- prefect/server/ui-v2/assets/task-runs-pagination-B2fSdB1t.js.map +1 -0
- prefect/server/ui-v2/assets/{textarea-9v5uTuxg.js → textarea-DFEOJJdc.js} +2 -2
- prefect/server/ui-v2/assets/{textarea-9v5uTuxg.js.map → textarea-DFEOJJdc.js.map} +1 -1
- prefect/server/ui-v2/assets/{timezone-select-DPtR_b06.js → timezone-select-NViFNNLz.js} +2 -2
- prefect/server/ui-v2/assets/{timezone-select-DPtR_b06.js.map → timezone-select-NViFNNLz.js.map} +1 -1
- prefect/server/ui-v2/assets/{toggle-group-CBJphTE6.js → toggle-group-EMgSOoYH.js} +2 -2
- prefect/server/ui-v2/assets/{toggle-group-CBJphTE6.js.map → toggle-group-EMgSOoYH.js.map} +1 -1
- prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-BHgDXlwg.js +2 -0
- prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-BHgDXlwg.js.map +1 -0
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-BYY1b8yH.js → use-delete-block-document-confirmation-dialog-CxRkBKPg.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-BYY1b8yH.js.map → use-delete-block-document-confirmation-dialog-CxRkBKPg.js.map} +1 -1
- prefect/server/ui-v2/assets/use-flow-runs-selected-rows-Ck8nwx2q.js +2 -0
- prefect/server/ui-v2/assets/use-flow-runs-selected-rows-Ck8nwx2q.js.map +1 -0
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-BOTU5FPq.js → use-get-artifacts-flow-task-runs-D7Djt53s.js} +2 -2
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-BOTU5FPq.js.map → use-get-artifacts-flow-task-runs-D7Djt53s.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-quick-run-DzSmbSlu.js → use-quick-run-Cpy0t7dX.js} +2 -2
- prefect/server/ui-v2/assets/{use-quick-run-DzSmbSlu.js.map → use-quick-run-Cpy0t7dX.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-state-favicon-UFxhmhHr.js → use-state-favicon-CMsL9s6j.js} +2 -2
- prefect/server/ui-v2/assets/{use-state-favicon-UFxhmhHr.js.map → use-state-favicon-CMsL9s6j.js.map} +1 -1
- prefect/server/ui-v2/assets/use-stepper-CZZEx5js.js +2 -0
- prefect/server/ui-v2/assets/use-stepper-CZZEx5js.js.map +1 -0
- prefect/server/ui-v2/assets/{utilities-2FfCfMAV.js → utilities-D9BfvLg5.js} +2 -2
- prefect/server/ui-v2/assets/{utilities-2FfCfMAV.js.map → utilities-D9BfvLg5.js.map} +1 -1
- prefect/server/ui-v2/assets/work-pool-filter-dsJ6xeK6.js +2 -0
- prefect/server/ui-v2/assets/work-pool-filter-dsJ6xeK6.js.map +1 -0
- prefect/server/ui-v2/assets/{work-pool-queue-toggle-zSWhEFap.js → work-pool-queue-toggle-f_-cTWxB.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool-queue-toggle-zSWhEFap.js.map → work-pool-queue-toggle-f_-cTWxB.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool._workPoolName-BwIVfCIe.js → work-pool._workPoolName-zBqgkYLT.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool._workPoolName-BwIVfCIe.js.map → work-pool._workPoolName-zBqgkYLT.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-j7cjgoJp.js → work-pool_._workPoolName.edit-B-8_CnfA.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-j7cjgoJp.js.map → work-pool_._workPoolName.edit-B-8_CnfA.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-BlFjSdoB.js → work-pool_._workPoolName.queue._workQueueName-DzrY1tMq.js} +2 -2
- prefect/server/ui-v2/assets/work-pool_._workPoolName.queue._workQueueName-DzrY1tMq.js.map +1 -0
- prefect/server/ui-v2/assets/{work-queue-icon-text-vWlRNW-b.js → work-queue-icon-text-BqqQ413o.js} +2 -2
- prefect/server/ui-v2/assets/{work-queue-icon-text-vWlRNW-b.js.map → work-queue-icon-text-BqqQ413o.js.map} +1 -1
- prefect/server/ui-v2/index.html +2 -2
- prefect/task_engine.py +26 -12
- prefect/workers/base.py +18 -1
- {prefect-3.6.16.dev5.dist-info → prefect-3.6.16.dev7.dist-info}/METADATA +1 -1
- {prefect-3.6.16.dev5.dist-info → prefect-3.6.16.dev7.dist-info}/RECORD +208 -207
- prefect/server/ui-v2/assets/artifact-card-DQfjRA2u.js +0 -2
- prefect/server/ui-v2/assets/artifact-card-DQfjRA2u.js.map +0 -1
- prefect/server/ui-v2/assets/artifact._id-BBhuX3px.js +0 -2
- prefect/server/ui-v2/assets/artifact._id-BBhuX3px.js.map +0 -1
- prefect/server/ui-v2/assets/automation-wizard-DeT-tz5i.js +0 -2
- prefect/server/ui-v2/assets/automation-wizard-DeT-tz5i.js.map +0 -1
- prefect/server/ui-v2/assets/automation._id-CMiura1b.js +0 -2
- prefect/server/ui-v2/assets/base-job-template-form-section-MeO0M71Y.js +0 -2
- prefect/server/ui-v2/assets/base-job-template-form-section-MeO0M71Y.js.map +0 -1
- prefect/server/ui-v2/assets/block-type-details-Bcb9qEO8.js +0 -2
- prefect/server/ui-v2/assets/block-type-details-Bcb9qEO8.js.map +0 -1
- prefect/server/ui-v2/assets/block-type-logo-DuvU7goV.js +0 -2
- prefect/server/ui-v2/assets/block._id-DFR6zmOy.js +0 -2
- prefect/server/ui-v2/assets/block._id-DFR6zmOy.js.map +0 -1
- prefect/server/ui-v2/assets/catalog-CPzaK8QS.js +0 -2
- prefect/server/ui-v2/assets/catalog-CPzaK8QS.js.map +0 -1
- prefect/server/ui-v2/assets/catalog_._slug-60h4tERz.js +0 -2
- prefect/server/ui-v2/assets/catalog_._slug-60h4tERz.js.map +0 -1
- prefect/server/ui-v2/assets/concurrency-limit._id-BFfR6_U0.js +0 -2
- prefect/server/ui-v2/assets/concurrency-limit._id-BFfR6_U0.js.map +0 -1
- prefect/server/ui-v2/assets/create-BrNwbpVu.js +0 -2
- prefect/server/ui-v2/assets/create-DWgkh2HT.js.map +0 -1
- prefect/server/ui-v2/assets/deployment-form-B33C7F2u.js +0 -3
- prefect/server/ui-v2/assets/deployment-form-B33C7F2u.js.map +0 -1
- prefect/server/ui-v2/assets/deployment._id-5rPcPD0T.js +0 -2
- prefect/server/ui-v2/assets/deployment._id-5rPcPD0T.js.map +0 -1
- prefect/server/ui-v2/assets/deployment._id-DXrb6frJ.js.map +0 -1
- prefect/server/ui-v2/assets/deployment_._id.duplicate-D7YLydeq.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.duplicate-D7YLydeq.js.map +0 -1
- prefect/server/ui-v2/assets/deployment_._id.edit-Daq0J0Ow.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.edit-Daq0J0Ow.js.map +0 -1
- prefect/server/ui-v2/assets/deployment_._id.run-CnacOmhY.js +0 -2
- prefect/server/ui-v2/assets/event._eventDate._eventId-CKTuT_8S.js +0 -2
- prefect/server/ui-v2/assets/flow-run-graph-OrT2Osbu.js +0 -2
- prefect/server/ui-v2/assets/flow-run-graph-OrT2Osbu.js.map +0 -1
- prefect/server/ui-v2/assets/flow-run._id-BKv9Meqc.js.map +0 -1
- prefect/server/ui-v2/assets/flow-run._id-DCYAnq0D.js +0 -4
- prefect/server/ui-v2/assets/flow-run._id-DCYAnq0D.js.map +0 -1
- prefect/server/ui-v2/assets/flow-run._id-ZTkjj6bM.js.map +0 -1
- prefect/server/ui-v2/assets/flow-runs-pagination-CykMKOhv.js +0 -2
- prefect/server/ui-v2/assets/flow-runs-pagination-CykMKOhv.js.map +0 -1
- prefect/server/ui-v2/assets/flow._id-DhrxqQmD.js +0 -2
- prefect/server/ui-v2/assets/flow._id-DhrxqQmD.js.map +0 -1
- prefect/server/ui-v2/assets/index-BIBIJufF.js.map +0 -1
- prefect/server/ui-v2/assets/index-BO60ehN6.js.map +0 -1
- prefect/server/ui-v2/assets/index-BS7fbJ2s.js +0 -2
- prefect/server/ui-v2/assets/index-BS7fbJ2s.js.map +0 -1
- prefect/server/ui-v2/assets/index-C5RMFRyZ.js.map +0 -1
- prefect/server/ui-v2/assets/index-D0R9_LIL.js.map +0 -1
- prefect/server/ui-v2/assets/index-D9cOtoSU.js.map +0 -1
- prefect/server/ui-v2/assets/index-DEpWUeaO.js +0 -2
- prefect/server/ui-v2/assets/index-DEpWUeaO.js.map +0 -1
- prefect/server/ui-v2/assets/index-DP8W-xJo.js.map +0 -1
- prefect/server/ui-v2/assets/index-DfKXdmko.js.map +0 -1
- prefect/server/ui-v2/assets/index-DiVKp6rW.js +0 -2
- prefect/server/ui-v2/assets/index-DiVKp6rW.js.map +0 -1
- prefect/server/ui-v2/assets/index-DlAHvqFx.js +0 -2
- prefect/server/ui-v2/assets/index-VNFzALsC.js +0 -2
- prefect/server/ui-v2/assets/index-VNFzALsC.js.map +0 -1
- prefect/server/ui-v2/assets/index-V_xTKaEb.js.map +0 -1
- prefect/server/ui-v2/assets/index-WIq8QUNT.js +0 -2
- prefect/server/ui-v2/assets/index-WIq8QUNT.js.map +0 -1
- prefect/server/ui-v2/assets/index-m9O-nIOl.css +0 -1
- prefect/server/ui-v2/assets/index-q5Y3hlDT.js.map +0 -1
- prefect/server/ui-v2/assets/key._key-CX8FwfwL.js +0 -2
- prefect/server/ui-v2/assets/key._key-CX8FwfwL.js.map +0 -1
- prefect/server/ui-v2/assets/task-run._id-CQGeAiBh.js.map +0 -1
- prefect/server/ui-v2/assets/task-runs-pagination-CYoOghEN.js +0 -2
- prefect/server/ui-v2/assets/task-runs-pagination-CYoOghEN.js.map +0 -1
- prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-DZplMJDW.js +0 -2
- prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-DZplMJDW.js.map +0 -1
- prefect/server/ui-v2/assets/use-flow-runs-selected-rows-1YE-VIgM.js +0 -2
- prefect/server/ui-v2/assets/use-flow-runs-selected-rows-1YE-VIgM.js.map +0 -1
- prefect/server/ui-v2/assets/use-stepper-CnGJHRLP.js +0 -2
- prefect/server/ui-v2/assets/use-stepper-CnGJHRLP.js.map +0 -1
- prefect/server/ui-v2/assets/work-pool-filter-CGfXNujK.js +0 -2
- prefect/server/ui-v2/assets/work-pool-filter-CGfXNujK.js.map +0 -1
- prefect/server/ui-v2/assets/work-pool_._workPoolName.queue._workQueueName-BlFjSdoB.js.map +0 -1
- {prefect-3.6.16.dev5.dist-info → prefect-3.6.16.dev7.dist-info}/WHEEL +0 -0
- {prefect-3.6.16.dev5.dist-info → prefect-3.6.16.dev7.dist-info}/entry_points.txt +0 -0
- {prefect-3.6.16.dev5.dist-info → prefect-3.6.16.dev7.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e,r as n,L as h,s as T}from"./vendor-tanstack-BdLtprmr.js";import{B as f,g,h as j,bw as p,bF as b,D,ap as x,q as v,I as N,y as L,V as _,aQ as m,av as S,br as k,dC as C,dB as M}from"./index-V_xTKaEb.js";import{a as A}from"./use-get-artifacts-flow-task-runs-BOTU5FPq.js";import{L as w}from"./lazy-markdown-B9vEkJ0h.js";import{u as B,E as F}from"./vendor-codemirror-DDrdK9VD.js";import{T as I,a as $,b as y,c as z,d as E,e as H}from"./table-ChOwO4Pk.js";import{K as r}from"./key-value-RPUUqQ6F.js";import"./vendor-react-HBv6Kpyp.js";import"./vendor-radix-CJc458uP.js";import"./vendor-recharts-CY3PKigC.js";import"./vendor-forms-BlFSCfFw.js";import"./vendor-date-Cl1Jav-N.js";const G=({artifact:s})=>{let a=e.jsx(e.Fragment,{});return s.key?a=e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(f,{children:e.jsxs(g,{children:[e.jsx(j,{children:e.jsx(p,{to:"/artifacts/key/$key",params:{key:s.key},className:"text-xl font-semibold",children:s.key})}),e.jsx(b,{}),e.jsx(j,{className:"text-xl font-semibold",children:s.id})]})})}):a=e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(f,{children:e.jsxs(g,{children:[s.flow_run&&e.jsxs(e.Fragment,{children:[e.jsx(j,{children:e.jsx(p,{to:"/runs/flow-run/$id",params:{id:s.flow_run_id??""},className:"text-xl font-semibold",children:s.flow_run.name})}),e.jsx(b,{})]}),s.task_run&&e.jsxs(e.Fragment,{children:[e.jsx(j,{children:e.jsx(p,{to:"/runs/task-run/$id",params:{id:s.task_run_id??""},className:"text-xl font-semibold",children:s.task_run.name})}),e.jsx(b,{})]}),e.jsx(j,{className:"text-xl font-semibold",children:s.id})]})})}),e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[a,e.jsx(D,{id:"artifacts-guide",label:"Documentation"})]}),s.description&&e.jsx("div",{className:"",children:e.jsx(x,{variant:"h2",className:"my-4 font-bold prose lg:prose-xl",children:e.jsx(w,{children:s.description})})}),e.jsx("hr",{})]})},O=({artifact:s})=>{const[a,t]=n.useState(!1),i=()=>{t(u=>!u)},d=n.useRef(null),o={highlightActiveLine:!1,foldGutter:!1,highlightActiveLineGutter:!1},{setContainer:l}=B({container:d.current,extensions:[F.lineWrapping],value:String(s.data),indentWithTab:!1,editable:!0,basicSetup:o});n.useEffect(()=>{d.current&&l(d.current)},[l]);const c=u=>{L.success("Copied to clipboard"),navigator.clipboard.writeText(u)};return e.jsxs("div",{className:"flex flex-col justify-center items-center",children:[e.jsxs(v,{"data-testid":"show-raw-data-button",variant:"outline",onClick:i,className:"my-4",children:[a?"Hide":"Show"," Raw Data"]}),e.jsx("div",{className:"rounded-md border shadow-xs focus-within:outline-hidden focus-within:ring-1 focus-within:ring-ring relative",style:{display:a?"block":"none"},ref:u=>{d.current=u},"data-testid":"raw-data-display",children:e.jsx(v,{onClick:()=>c(s.data),variant:"ghost",size:"icon",className:"absolute top-0 right-0 z-10","aria-label":"copy",children:e.jsx(N,{id:"Copy",className:"size-2"})})})]})},P=({url:s})=>e.jsxs("div",{"data-testid":s,className:"prose mt-2",children:[e.jsx("img",{"data-testid":`image-${s}`,src:s,alt:"artifact-image",className:"w-full"}),e.jsxs(x,{variant:"bodyLarge",children:["Image URL:"," ",e.jsx("a",{className:"text-blue-700 hover:underline",target:"_blank",href:s,rel:"noreferrer",children:s})]})]}),K=({markdown:s})=>e.jsx("div",{"data-testid":"markdown-display",className:"mt-4 prose",children:e.jsx(w,{children:s})}),Q=({progress:s})=>e.jsxs(x,{"data-testid":"progress-display",variant:"bodyLarge",children:["Progress: ",s,"%"]}),U=({tableData:s})=>{const a=JSON.parse(s),t=Object.keys(a[0]),[i,d]=n.useState(""),o=n.useMemo(()=>a.filter(l=>Object.values(l).some(c=>String(c).toLowerCase().includes(i.toLowerCase()))),[i,a]);return e.jsxs("div",{"data-testid":"table-display",className:"mt-4",children:[e.jsx("div",{className:"flex flex-row justify-end items-center mb-2",children:e.jsx("div",{children:e.jsx(_,{placeholder:"Search",value:i,onChange:l=>d(l.target.value)})})}),e.jsx("div",{className:"rounded-md border overflow-hidden",children:e.jsxs(I,{children:[e.jsx($,{className:"bg-muted",children:e.jsx(y,{children:t.map(l=>e.jsx(z,{className:"py-2 text-foreground",children:l},l))})}),e.jsx(E,{children:o.map(l=>e.jsx(y,{children:t.map(c=>e.jsx(H,{children:l[c]},c))},l.id))})]})})]})},V=({artifact:s})=>{const a=n.useMemo(()=>s.created?m(s.created,"dateTime"):null,[s.created]);return e.jsxs("div",{className:"mt-4",children:[e.jsx(x,{variant:"bodyLarge",className:"font-bold",children:"Artifact"}),e.jsxs("div",{className:"mt-3 flex flex-col gap-3",children:[e.jsx(r,{label:"Key",value:e.jsx("span",{className:"font-mono",children:s.key??"None"})}),e.jsx(r,{label:"Type",value:e.jsx("span",{className:"font-mono",children:s.type??"None"})}),e.jsx(r,{label:"Created",value:e.jsx("span",{className:"font-mono",children:a??"None"})})]})]})},W=({flowRun:s})=>{const a=n.useMemo(()=>s.start_time?m(s.start_time,"dateTime"):null,[s.start_time]),t=n.useMemo(()=>s.estimated_run_time?S(Math.ceil(s.estimated_run_time)*1e3):null,[s.estimated_run_time]),i=n.useMemo(()=>s.created?m(s.created,"dateTime"):null,[s.created]),d=n.useMemo(()=>s.updated?m(s.updated,"dateTime"):null,[s.updated]);return e.jsxs("div",{className:"mt-4",children:[e.jsx(x,{variant:"bodyLarge",className:"font-bold",children:"Flow Run"}),e.jsxs("div",{className:"mt-3 flex flex-col gap-3",children:[e.jsx(r,{label:"Start time",value:e.jsxs("span",{className:"font-mono flex items-center",children:[e.jsx(N,{id:"Calendar",className:"inline w-4 mr-2"}),a??"None"]})}),e.jsx(r,{label:"Duration",value:e.jsxs("span",{className:"font-mono flex items-center",children:[e.jsx(N,{id:"Clock",className:"inline w-4 mr-2"}),t??"None"]})}),e.jsx(r,{label:"Created",value:e.jsx("span",{className:"font-mono",children:i??"None"})}),e.jsx(r,{label:"Last Updated",value:e.jsx("span",{className:"font-mono",children:d??"None"})}),e.jsx(r,{label:"Tags",value:s.tags&&s.tags.length>0?e.jsx("div",{className:"flex flex-wrap",children:s.tags.map(o=>e.jsx(k,{tag:o},o))}):e.jsx("span",{className:"font-mono",children:"None"})}),e.jsx(r,{label:"State Message",value:e.jsx("span",{className:"font-mono",children:s.state?.message??"None"})})]})]})},J=({artifact:s})=>{const{flow_run:a,task_run:t}=s;return s.key||a||t?e.jsxs("div",{className:"flex flex-col gap-2",children:[s.key&&e.jsx(r,{label:"Artifact",value:e.jsx(h,{to:"/artifacts/key/$key",params:{key:s.key},className:"text-blue-500 hover:underline",children:s.key})}),a&&e.jsx(r,{label:"Flow Run",value:e.jsx(h,{to:"/runs/flow-run/$id",params:{id:a.id},className:"text-blue-500 hover:underline",children:a.name})}),t&&e.jsx(r,{label:"Task Run",value:e.jsx(h,{to:"/runs/task-run/$id",params:{id:t.id},className:"text-blue-500 hover:underline",children:t.name})}),e.jsx("hr",{className:"mt-2 border-border"})]}):null},q=({taskRun:s})=>{const a=n.useMemo(()=>s.created?m(s.created,"dateTime"):null,[s.created]),t=n.useMemo(()=>s.updated?m(s.updated,"dateTime"):null,[s.updated]);return e.jsxs("div",{className:"mt-4",children:[e.jsx(x,{variant:"bodyLarge",className:"font-bold",children:"Task Run"}),e.jsxs("div",{className:"mt-3 flex flex-col gap-3",children:[e.jsx(r,{label:"Created",value:e.jsx("span",{className:"font-mono",children:a??"None"})}),e.jsx(r,{label:"Last Updated",value:e.jsx("span",{className:"font-mono",children:t??"None"})}),e.jsx(r,{label:"Tags",value:s.tags&&s.tags.length>0?e.jsx("div",{className:"flex flex-wrap",children:s.tags.map(i=>e.jsx(k,{tag:i},i))}):e.jsx("span",{className:"font-mono",children:"None"})})]})]})},X=({artifact:s})=>{const{flow_run:a,task_run:t}=s;return e.jsxs("div",{className:"w-[250px] shrink-0 pt-4",children:[e.jsx(J,{artifact:s}),e.jsx(V,{artifact:s}),(a||t)&&e.jsx("hr",{className:"mt-4 border-border"}),a&&e.jsx(W,{flowRun:a}),a&&t&&e.jsx("hr",{className:"mt-4 border-border"}),t&&e.jsx(q,{taskRun:t})]})},Y=({artifact:s})=>{const a=n.useMemo(()=>{switch(s.type){case"markdown":case"link":return e.jsx(K,{markdown:s.data});case"image":return e.jsx(P,{url:s.data});case"progress":return e.jsx(Q,{progress:s.data});case"table":return e.jsx(U,{tableData:s.data});default:return e.jsx("pre",{children:JSON.stringify(s.data,null,2)})}},[s]);return e.jsxs("div",{children:[e.jsx(G,{artifact:s}),e.jsxs("div",{className:"flex flex-row gap-4 justify-between",children:[e.jsxs("div",{className:"flex-grow min-w-0",children:[a,e.jsx(O,{artifact:s})]}),e.jsx(X,{artifact:s})]})]})};function ce(){const{id:s}=C.useParams(),{data:a}=T(M(s)),t=A(s);return e.jsx(Y,{artifact:t??a})}export{ce as component};
|
|
2
|
-
//# sourceMappingURL=artifact._id-BBhuX3px.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"artifact._id-BBhuX3px.js","sources":["../../src/components/artifacts/artifact/artifact-detail-header.tsx","../../src/components/artifacts/artifact/artifact-raw-data-display.tsx","../../src/components/artifacts/artifact/detail-image.tsx","../../src/components/artifacts/artifact/detail-markdown.tsx","../../src/components/artifacts/artifact/detail-progress.tsx","../../src/components/artifacts/artifact/detail-table.tsx","../../src/components/artifacts/artifact/metadata-sidebar/artifact-section.tsx","../../src/components/artifacts/artifact/metadata-sidebar/flow-run-section.tsx","../../src/components/artifacts/artifact/metadata-sidebar/links-section.tsx","../../src/components/artifacts/artifact/metadata-sidebar/task-run-section.tsx","../../src/components/artifacts/artifact/metadata-sidebar/index.tsx","../../src/components/artifacts/artifact/artifact-detail-page.tsx","../../src/routes/artifacts/artifact.$id.tsx?tsr-split=component"],"sourcesContent":["import type { ArtifactWithFlowRunAndTaskRun } from \"@/api/artifacts\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { DocsLink } from \"@/components/ui/docs-link\";\nimport { LazyMarkdown } from \"@/components/ui/lazy-markdown\";\nimport { Typography } from \"@/components/ui/typography\";\n\nexport type ArtifactDetailHeaderProps = {\n\tartifact: ArtifactWithFlowRunAndTaskRun;\n};\n\nexport const ArtifactDetailHeader = ({\n\tartifact,\n}: ArtifactDetailHeaderProps) => {\n\tlet header = <></>;\n\tif (artifact.key) {\n\t\theader = (\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<Breadcrumb>\n\t\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\t\tto=\"/artifacts/key/$key\"\n\t\t\t\t\t\t\t\tparams={{ key: artifact.key }}\n\t\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{artifact.key}\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\t{artifact.id}\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t</BreadcrumbList>\n\t\t\t\t</Breadcrumb>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\theader = (\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<Breadcrumb>\n\t\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t\t{artifact.flow_run && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\t\t\t\tto=\"/runs/flow-run/$id\"\n\t\t\t\t\t\t\t\t\t\tparams={{ id: artifact.flow_run_id ?? \"\" }}\n\t\t\t\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{artifact.flow_run.name}\n\t\t\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{artifact.task_run && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\t\t\t\tto=\"/runs/task-run/$id\"\n\t\t\t\t\t\t\t\t\t\tparams={{ id: artifact.task_run_id ?? \"\" }}\n\t\t\t\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{artifact.task_run.name}\n\t\t\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\t{artifact.id}\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t</BreadcrumbList>\n\t\t\t\t</Breadcrumb>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t{header}\n\t\t\t\t<DocsLink id=\"artifacts-guide\" label=\"Documentation\" />\n\t\t\t</div>\n\t\t\t{artifact.description && (\n\t\t\t\t<div className=\"\">\n\t\t\t\t\t<Typography variant=\"h2\" className=\"my-4 font-bold prose lg:prose-xl\">\n\t\t\t\t\t\t<LazyMarkdown>{artifact.description}</LazyMarkdown>\n\t\t\t\t\t</Typography>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<hr />\n\t\t</>\n\t);\n};\n","import { EditorView, useCodeMirror } from \"@uiw/react-codemirror\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { toast } from \"sonner\";\nimport type { ArtifactWithFlowRunAndTaskRun } from \"@/api/artifacts\";\nimport { Button } from \"@/components/ui/button\";\nimport { Icon } from \"@/components/ui/icons\";\n\ntype ArtifactDataDisplayProps = {\n\tartifact: ArtifactWithFlowRunAndTaskRun;\n};\n\nexport const ArtifactDataDisplay = ({ artifact }: ArtifactDataDisplayProps) => {\n\tconst [showData, setShowData] = useState(false);\n\n\tconst toggleShowData = () => {\n\t\tsetShowData((val) => !val);\n\t};\n\n\tconst editor = useRef<HTMLDivElement | null>(null);\n\tconst basicSetup = {\n\t\thighlightActiveLine: false,\n\t\tfoldGutter: false,\n\t\thighlightActiveLineGutter: false,\n\t};\n\tconst { setContainer } = useCodeMirror({\n\t\tcontainer: editor.current,\n\t\textensions: [EditorView.lineWrapping],\n\t\tvalue: String(artifact.data),\n\t\tindentWithTab: false,\n\t\teditable: true,\n\t\tbasicSetup,\n\t});\n\n\tuseEffect(() => {\n\t\tif (editor.current) {\n\t\t\tsetContainer(editor.current);\n\t\t}\n\t}, [setContainer]);\n\n\tconst handleCopy = (_value: string) => {\n\t\ttoast.success(\"Copied to clipboard\");\n\t\tvoid navigator.clipboard.writeText(_value);\n\t};\n\n\treturn (\n\t\t<div className=\"flex flex-col justify-center items-center\">\n\t\t\t<Button\n\t\t\t\tdata-testid=\"show-raw-data-button\"\n\t\t\t\tvariant={\"outline\"}\n\t\t\t\tonClick={toggleShowData}\n\t\t\t\tclassName=\"my-4\"\n\t\t\t>\n\t\t\t\t{showData ? \"Hide\" : \"Show\"} Raw Data\n\t\t\t</Button>\n\n\t\t\t<div\n\t\t\t\tclassName=\"rounded-md border shadow-xs focus-within:outline-hidden focus-within:ring-1 focus-within:ring-ring relative\"\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: showData ? \"block\" : \"none\",\n\t\t\t\t}}\n\t\t\t\tref={(node) => {\n\t\t\t\t\teditor.current = node;\n\t\t\t\t}}\n\t\t\t\tdata-testid=\"raw-data-display\"\n\t\t\t>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={() => handleCopy(artifact.data as string)}\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tsize=\"icon\"\n\t\t\t\t\tclassName=\"absolute top-0 right-0 z-10\"\n\t\t\t\t\taria-label=\"copy\"\n\t\t\t\t>\n\t\t\t\t\t<Icon id=\"Copy\" className=\"size-2\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { Typography } from \"@/components/ui/typography\";\n\nexport type DetailImageProps = {\n\turl: string;\n};\n\nexport const DetailImage = ({ url }: DetailImageProps) => {\n\treturn (\n\t\t<div data-testid={url} className=\"prose mt-2\">\n\t\t\t<img\n\t\t\t\tdata-testid={`image-${url}`}\n\t\t\t\tsrc={url}\n\t\t\t\talt=\"artifact-image\"\n\t\t\t\tclassName=\"w-full\"\n\t\t\t/>\n\n\t\t\t<Typography variant=\"bodyLarge\">\n\t\t\t\tImage URL:{\" \"}\n\t\t\t\t<a\n\t\t\t\t\tclassName=\"text-blue-700 hover:underline\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\thref={url}\n\t\t\t\t\trel=\"noreferrer\"\n\t\t\t\t>\n\t\t\t\t\t{url}\n\t\t\t\t</a>\n\t\t\t</Typography>\n\t\t</div>\n\t);\n};\n","import { LazyMarkdown } from \"@/components/ui/lazy-markdown\";\n\nexport type DetailMarkdownProps = {\n\tmarkdown: string;\n};\n\nexport const DetailMarkdown = ({ markdown }: DetailMarkdownProps) => {\n\treturn (\n\t\t<div data-testid=\"markdown-display\" className=\"mt-4 prose\">\n\t\t\t<LazyMarkdown>{markdown}</LazyMarkdown>\n\t\t</div>\n\t);\n};\n","import { Typography } from \"@/components/ui/typography\";\n\nexport type DetailProgressProps = {\n\tprogress: number;\n};\n\nexport const DetailProgress = ({ progress }: DetailProgressProps) => {\n\treturn (\n\t\t<Typography data-testid=\"progress-display\" variant=\"bodyLarge\">\n\t\t\tProgress: {progress}%\n\t\t</Typography>\n\t);\n};\n","import { useMemo, useState } from \"react\";\nimport { SearchInput } from \"@/components/ui/input\";\nimport {\n\tTable,\n\tTableBody,\n\tTableCell,\n\tTableHead,\n\tTableHeader,\n\tTableRow,\n} from \"@/components/ui/table\";\n\nexport type DetailTableProps = {\n\ttableData: string;\n};\n\nexport const DetailTable = ({ tableData }: DetailTableProps) => {\n\tconst table = JSON.parse(tableData) as Record<string, string>[];\n\tconst headers = Object.keys(table[0]);\n\tconst [input, setInput] = useState<string>(\"\");\n\n\tconst filteredTable = useMemo(() => {\n\t\treturn table.filter((row) => {\n\t\t\treturn Object.values(row).some((value: string) =>\n\t\t\t\tString(value).toLowerCase().includes(input.toLowerCase()),\n\t\t\t);\n\t\t});\n\t}, [input, table]);\n\n\treturn (\n\t\t<div data-testid=\"table-display\" className=\"mt-4\">\n\t\t\t<div className=\"flex flex-row justify-end items-center mb-2\">\n\t\t\t\t<div>\n\t\t\t\t\t<SearchInput\n\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\tvalue={input}\n\t\t\t\t\t\tonChange={(e) => setInput(e.target.value)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"rounded-md border overflow-hidden\">\n\t\t\t\t<Table>\n\t\t\t\t\t<TableHeader className=\"bg-muted\">\n\t\t\t\t\t\t<TableRow>\n\t\t\t\t\t\t\t{headers.map((header) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<TableHead key={header} className=\"py-2 text-foreground\">\n\t\t\t\t\t\t\t\t\t\t{header}\n\t\t\t\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</TableRow>\n\t\t\t\t\t</TableHeader>\n\t\t\t\t\t<TableBody>\n\t\t\t\t\t\t{filteredTable.map((row) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<TableRow key={row.id}>\n\t\t\t\t\t\t\t\t\t{headers.map((header) => {\n\t\t\t\t\t\t\t\t\t\treturn <TableCell key={header}>{row[header]}</TableCell>;\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</TableRow>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</TableBody>\n\t\t\t\t</Table>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { useMemo } from \"react\";\nimport type { ArtifactWithFlowRunAndTaskRun } from \"@/api/artifacts\";\nimport { KeyValue } from \"@/components/ui/key-value\";\nimport { Typography } from \"@/components/ui/typography\";\nimport { formatDate } from \"@/utils/date\";\n\ntype ArtifactSectionProps = {\n\tartifact: ArtifactWithFlowRunAndTaskRun;\n};\n\nexport const ArtifactSection = ({ artifact }: ArtifactSectionProps) => {\n\tconst createdDate = useMemo(() => {\n\t\tif (!artifact.created) return null;\n\t\treturn formatDate(artifact.created, \"dateTime\");\n\t}, [artifact.created]);\n\n\treturn (\n\t\t<div className=\"mt-4\">\n\t\t\t<Typography variant=\"bodyLarge\" className=\"font-bold\">\n\t\t\t\tArtifact\n\t\t\t</Typography>\n\n\t\t\t<div className=\"mt-3 flex flex-col gap-3\">\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Key\"\n\t\t\t\t\tvalue={<span className=\"font-mono\">{artifact.key ?? \"None\"}</span>}\n\t\t\t\t/>\n\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Type\"\n\t\t\t\t\tvalue={<span className=\"font-mono\">{artifact.type ?? \"None\"}</span>}\n\t\t\t\t/>\n\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Created\"\n\t\t\t\t\tvalue={<span className=\"font-mono\">{createdDate ?? \"None\"}</span>}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import humanizeDuration from \"humanize-duration\";\nimport { useMemo } from \"react\";\nimport type { FlowRun } from \"@/api/flow-runs\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { KeyValue } from \"@/components/ui/key-value\";\nimport { TagBadge } from \"@/components/ui/tag-badge\";\nimport { Typography } from \"@/components/ui/typography\";\nimport { formatDate } from \"@/utils/date\";\n\ntype FlowRunSectionProps = {\n\tflowRun: FlowRun;\n};\n\nexport const FlowRunSection = ({ flowRun }: FlowRunSectionProps) => {\n\tconst startTime = useMemo(() => {\n\t\tif (!flowRun.start_time) return null;\n\t\treturn formatDate(flowRun.start_time, \"dateTime\");\n\t}, [flowRun.start_time]);\n\n\tconst duration = useMemo(() => {\n\t\tif (!flowRun.estimated_run_time) return null;\n\t\treturn humanizeDuration(Math.ceil(flowRun.estimated_run_time) * 1000);\n\t}, [flowRun.estimated_run_time]);\n\n\tconst createdDate = useMemo(() => {\n\t\tif (!flowRun.created) return null;\n\t\treturn formatDate(flowRun.created, \"dateTime\");\n\t}, [flowRun.created]);\n\n\tconst updatedDate = useMemo(() => {\n\t\tif (!flowRun.updated) return null;\n\t\treturn formatDate(flowRun.updated, \"dateTime\");\n\t}, [flowRun.updated]);\n\n\treturn (\n\t\t<div className=\"mt-4\">\n\t\t\t<Typography variant=\"bodyLarge\" className=\"font-bold\">\n\t\t\t\tFlow Run\n\t\t\t</Typography>\n\n\t\t\t<div className=\"mt-3 flex flex-col gap-3\">\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Start time\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t<span className=\"font-mono flex items-center\">\n\t\t\t\t\t\t\t<Icon id=\"Calendar\" className=\"inline w-4 mr-2\" />\n\t\t\t\t\t\t\t{startTime ?? \"None\"}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t/>\n\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Duration\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t<span className=\"font-mono flex items-center\">\n\t\t\t\t\t\t\t<Icon id=\"Clock\" className=\"inline w-4 mr-2\" />\n\t\t\t\t\t\t\t{duration ?? \"None\"}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t/>\n\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Created\"\n\t\t\t\t\tvalue={<span className=\"font-mono\">{createdDate ?? \"None\"}</span>}\n\t\t\t\t/>\n\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Last Updated\"\n\t\t\t\t\tvalue={<span className=\"font-mono\">{updatedDate ?? \"None\"}</span>}\n\t\t\t\t/>\n\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Tags\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\tflowRun.tags && flowRun.tags.length > 0 ? (\n\t\t\t\t\t\t\t<div className=\"flex flex-wrap\">\n\t\t\t\t\t\t\t\t{flowRun.tags.map((tag) => (\n\t\t\t\t\t\t\t\t\t<TagBadge key={tag} tag={tag} />\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"font-mono\">None</span>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"State Message\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t<span className=\"font-mono\">\n\t\t\t\t\t\t\t{flowRun.state?.message ?? \"None\"}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { Link } from \"@tanstack/react-router\";\nimport type { ArtifactWithFlowRunAndTaskRun } from \"@/api/artifacts\";\nimport { KeyValue } from \"@/components/ui/key-value\";\n\ntype LinksSectionProps = {\n\tartifact: ArtifactWithFlowRunAndTaskRun;\n};\n\nexport const LinksSection = ({ artifact }: LinksSectionProps) => {\n\tconst { flow_run, task_run } = artifact;\n\tconst hasLinks = artifact.key || flow_run || task_run;\n\n\tif (!hasLinks) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t{artifact.key && (\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Artifact\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tto=\"/artifacts/key/$key\"\n\t\t\t\t\t\t\tparams={{ key: artifact.key }}\n\t\t\t\t\t\t\tclassName=\"text-blue-500 hover:underline\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{artifact.key}\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{flow_run && (\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Flow Run\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tto=\"/runs/flow-run/$id\"\n\t\t\t\t\t\t\tparams={{ id: flow_run.id }}\n\t\t\t\t\t\t\tclassName=\"text-blue-500 hover:underline\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{flow_run.name}\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{task_run && (\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Task Run\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tto=\"/runs/task-run/$id\"\n\t\t\t\t\t\t\tparams={{ id: task_run.id }}\n\t\t\t\t\t\t\tclassName=\"text-blue-500 hover:underline\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{task_run.name}\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<hr className=\"mt-2 border-border\" />\n\t\t</div>\n\t);\n};\n","import { useMemo } from \"react\";\nimport type { TaskRun } from \"@/api/task-runs\";\nimport { KeyValue } from \"@/components/ui/key-value\";\nimport { TagBadge } from \"@/components/ui/tag-badge\";\nimport { Typography } from \"@/components/ui/typography\";\nimport { formatDate } from \"@/utils/date\";\n\ntype TaskRunSectionProps = {\n\ttaskRun: TaskRun;\n};\n\nexport const TaskRunSection = ({ taskRun }: TaskRunSectionProps) => {\n\tconst createdDate = useMemo(() => {\n\t\tif (!taskRun.created) return null;\n\t\treturn formatDate(taskRun.created, \"dateTime\");\n\t}, [taskRun.created]);\n\n\tconst updatedDate = useMemo(() => {\n\t\tif (!taskRun.updated) return null;\n\t\treturn formatDate(taskRun.updated, \"dateTime\");\n\t}, [taskRun.updated]);\n\n\treturn (\n\t\t<div className=\"mt-4\">\n\t\t\t<Typography variant=\"bodyLarge\" className=\"font-bold\">\n\t\t\t\tTask Run\n\t\t\t</Typography>\n\n\t\t\t<div className=\"mt-3 flex flex-col gap-3\">\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Created\"\n\t\t\t\t\tvalue={<span className=\"font-mono\">{createdDate ?? \"None\"}</span>}\n\t\t\t\t/>\n\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Last Updated\"\n\t\t\t\t\tvalue={<span className=\"font-mono\">{updatedDate ?? \"None\"}</span>}\n\t\t\t\t/>\n\n\t\t\t\t<KeyValue\n\t\t\t\t\tlabel=\"Tags\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\ttaskRun.tags && taskRun.tags.length > 0 ? (\n\t\t\t\t\t\t\t<div className=\"flex flex-wrap\">\n\t\t\t\t\t\t\t\t{taskRun.tags.map((tag) => (\n\t\t\t\t\t\t\t\t\t<TagBadge key={tag} tag={tag} />\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"font-mono\">None</span>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import type { ArtifactWithFlowRunAndTaskRun } from \"@/api/artifacts\";\nimport { ArtifactSection } from \"./artifact-section\";\nimport { FlowRunSection } from \"./flow-run-section\";\nimport { LinksSection } from \"./links-section\";\nimport { TaskRunSection } from \"./task-run-section\";\n\nexport type MetadataSidebarProps = {\n\tartifact: ArtifactWithFlowRunAndTaskRun;\n};\n\nexport const MetadataSidebar = ({ artifact }: MetadataSidebarProps) => {\n\tconst { flow_run, task_run } = artifact;\n\n\treturn (\n\t\t<div className=\"w-[250px] shrink-0 pt-4\">\n\t\t\t<LinksSection artifact={artifact} />\n\n\t\t\t<ArtifactSection artifact={artifact} />\n\n\t\t\t{(flow_run || task_run) && <hr className=\"mt-4 border-border\" />}\n\n\t\t\t{flow_run && <FlowRunSection flowRun={flow_run} />}\n\n\t\t\t{flow_run && task_run && <hr className=\"mt-4 border-border\" />}\n\n\t\t\t{task_run && <TaskRunSection taskRun={task_run} />}\n\t\t</div>\n\t);\n};\n","import { useMemo } from \"react\";\nimport type { ArtifactWithFlowRunAndTaskRun } from \"@/api/artifacts\";\nimport { ArtifactDetailHeader } from \"./artifact-detail-header\";\nimport { ArtifactDataDisplay } from \"./artifact-raw-data-display\";\nimport { DetailImage } from \"./detail-image\";\nimport { DetailMarkdown } from \"./detail-markdown\";\nimport { DetailProgress } from \"./detail-progress\";\nimport { DetailTable } from \"./detail-table\";\nimport { MetadataSidebar } from \"./metadata-sidebar\";\n\nexport type ArtifactDetailPageProps = {\n\tartifact: ArtifactWithFlowRunAndTaskRun;\n};\n\nexport const ArtifactDetailPage = ({ artifact }: ArtifactDetailPageProps) => {\n\tconst mapArtifactHoc = useMemo(() => {\n\t\tswitch (artifact.type) {\n\t\t\tcase \"markdown\":\n\t\t\tcase \"link\":\n\t\t\t\treturn <DetailMarkdown markdown={artifact.data as string} />;\n\t\t\tcase \"image\":\n\t\t\t\treturn <DetailImage url={artifact.data as string} />;\n\t\t\tcase \"progress\":\n\t\t\t\treturn <DetailProgress progress={artifact.data as number} />;\n\t\t\tcase \"table\":\n\t\t\t\treturn <DetailTable tableData={artifact.data as string} />;\n\t\t\tdefault:\n\t\t\t\treturn <pre>{JSON.stringify(artifact.data, null, 2)}</pre>;\n\t\t}\n\t}, [artifact]);\n\treturn (\n\t\t<div>\n\t\t\t<ArtifactDetailHeader artifact={artifact} />\n\t\t\t<div className=\"flex flex-row gap-4 justify-between\">\n\t\t\t\t<div className=\"flex-grow min-w-0\">\n\t\t\t\t\t{mapArtifactHoc}\n\t\t\t\t\t<ArtifactDataDisplay artifact={artifact} />\n\t\t\t\t</div>\n\t\t\t\t<MetadataSidebar artifact={artifact} />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { buildGetArtifactQuery } from \"@/api/artifacts\";\nimport { useGetArtifactFlowTaskRuns } from \"@/api/artifacts/use-get-artifacts-flow-task-runs/use-get-artifacts-flow-task-runs\";\nimport { ArtifactDetailPage } from \"@/components/artifacts/artifact/artifact-detail-page\";\n\nexport const Route = createFileRoute(\"/artifacts/artifact/$id\")({\n\tcomponent: RouteComponent,\n\tloader: async ({ context, params }) => {\n\t\tconst { id } = params;\n\n\t\tconst artifact = await context.queryClient.ensureQueryData(\n\t\t\tbuildGetArtifactQuery(id),\n\t\t);\n\n\t\treturn { artifact };\n\t},\n});\n\nfunction RouteComponent() {\n\tconst { id } = Route.useParams();\n\n\tconst { data: artifact } = useSuspenseQuery(buildGetArtifactQuery(id));\n\n\tconst artifactWithMetadata = useGetArtifactFlowTaskRuns(id);\n\n\treturn <ArtifactDetailPage artifact={artifactWithMetadata ?? artifact} />;\n}\n"],"names":["ArtifactDetailHeader","artifact","header","jsx","Fragment","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","jsxs","DocsLink","Typography","LazyMarkdown","ArtifactDataDisplay","showData","setShowData","useState","toggleShowData","val","editor","useRef","basicSetup","setContainer","useCodeMirror","EditorView","useEffect","handleCopy","_value","toast","Button","node","Icon","DetailImage","url","DetailMarkdown","markdown","DetailProgress","progress","DetailTable","tableData","table","headers","input","setInput","filteredTable","useMemo","row","value","SearchInput","e","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","ArtifactSection","createdDate","formatDate","KeyValue","FlowRunSection","flowRun","startTime","duration","humanizeDuration","updatedDate","tag","TagBadge","LinksSection","flow_run","task_run","Link","TaskRunSection","taskRun","MetadataSidebar","ArtifactDetailPage","mapArtifactHoc","RouteComponent","id","Route","useParams","data","useSuspenseQuery","buildGetArtifactQuery","artifactWithMetadata","useGetArtifactFlowTaskRuns"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e,r as m,t as E,L as ze}from"./vendor-tanstack-BdLtprmr.js";import{a as Je}from"./zod-B1GLD-Zc.js";import{g as _,p as D,q as Ge,Z as Re,c as Ye}from"./vendor-forms-BlFSCfFw.js";import{S as B,a as Q,b as z,c as J,d as Me,dn as He,e as G,b9 as Ke,bq as Ve,bt as Oe,ag as R,ah as M,ai as V,aj as O,al as W,ak as I,am as F,an as k,I as Y,dp as We,bQ as me,p as Z,ap as re,bv as Xe,bi as Ze,af as ie,T as pe,d7 as Ie,q as U,i as xe,a_ as et,b2 as tt,at as st,d0 as je,ao as ve,au as be,aA as rt,aB as nt,aC as Se,aD as we,L as ot,C as at,o as lt,dq as ct}from"./index-V_xTKaEb.js";import{b as w,c as b,d as S,e as y,a as C,F as it}from"./form-DOdmIC3A.js";import{u as ut,S as dt}from"./use-stepper-CnGJHRLP.js";import{U as te,T as Pe,A as ht}from"./automation-schema-D1HDjyeB.js";import{T as fe}from"./textarea-9v5uTuxg.js";import{S as mt,R as pt,a as $e,b as ye,c as xt}from"./index-DyOAqIOp.js";import{R as ft,a as gt}from"./radio-group-D55TQZsk.js";import{u as jt,C as vt,a as bt,b as St}from"./collapsible-DZbPzSgr.js";import{T as wt}from"./tags-input-2KSBvO_K.js";const Ce={"cancel-flow-run":"Cancel a flow run","suspend-flow-run":"Suspend a flow run","resume-flow-run":"Resume a flow run","change-flow-run-state":"Change flow run's state","run-deployment":"Run a deployment","pause-deployment":"Pause a deployment","resume-deployment":"Resume a deployment","pause-work-queue":"Pause a work queue","resume-work-queue":"Resume a work queue","pause-work-pool":"Pause a work pool","resume-work-pool":"Resume a work pool","pause-automation":"Pause an automation","resume-automation":"Resume an automation","send-notification":"Send a notification","call-webhook":"Call a webhook"},yt=({index:t})=>{const s=_();return e.jsx(w,{control:s.control,name:`actions.${t}.type`,render:({field:n})=>e.jsxs(b,{children:[e.jsx(S,{children:"Action Type"}),e.jsx(y,{children:e.jsxs(B,{...n,onValueChange:r=>{n.onChange(r);const a=Ct({index:t,type:r});a&&s.setValue(a,te)},children:[e.jsx(Q,{"aria-label":"select action",className:"w-full",children:e.jsx(z,{placeholder:"Select action"})}),e.jsx(J,{children:e.jsxs(Me,{children:[e.jsx(He,{children:"Actions"}),Object.keys(Ce).map(r=>e.jsx(G,{value:r,children:Ce[r]},r))]})})]})})]})})};function Ct({index:t,type:s}){switch(s){case"run-deployment":case"pause-deployment":case"resume-deployment":return`actions.${t}.deployment_id`;case"pause-work-queue":case"resume-work-queue":return`actions.${t}.work_queue_id`;case"pause-work-pool":case"resume-work-pool":return`actions.${t}.work_pool_id`;case"pause-automation":case"resume-automation":return`actions.${t}.automation_id`;default:return null}}const kt=4,ee=({length:t=kt})=>Array.from({length:t},(s,n)=>e.jsx(Ke,{className:"mt-2 p-4 h-2 w-full"},n)),Nt=({index:t})=>{const s=_(),[n,r]=m.useState(""),{data:a,isLoading:o}=E(Ve({offset:0,block_types:{slug:{any_:["webhook"]}}})),l=m.useMemo(()=>a?.map(i=>i.slug)??[],[a]),{data:h,isLoading:p}=E(Oe({block_types:l.length>0?{slug:{any_:l}}:void 0,include_secrets:!1,sort:"BLOCK_TYPE_AND_NAME_ASC",offset:0},{enabled:l.length>0})),d=o||p,c=m.useMemo(()=>!a||!h?[]:a.map(i=>({blockType:i,documents:h.filter(f=>f.block_type_id===i.id)})).filter(i=>i.documents.length>0),[a,h]),x=m.useMemo(()=>{if(!n)return c;const i=n.toLowerCase();return c.map(f=>({...f,documents:f.documents.filter(j=>j.name?.toLowerCase().includes(i))})).filter(f=>f.documents.length>0)},[c,n]),u=m.useCallback(i=>{if(!(!i||!h))return h.find(f=>f.id===i)},[h]);return e.jsxs("div",{className:"space-y-4",children:[e.jsx(w,{control:s.control,name:`actions.${t}.block_document_id`,render:({field:i})=>{const f=u(i.value);return e.jsxs(b,{className:"flex flex-col",children:[e.jsx(S,{children:"Block"}),e.jsxs(R,{children:[e.jsx(M,{selected:!!f,"aria-label":"Select webhook block",children:f?f.name:"Select a webhook block"}),e.jsxs(V,{children:[e.jsx(O,{value:n,onValueChange:r,placeholder:"Search for a block..."}),e.jsx(W,{children:"No webhook blocks found"}),e.jsx(I,{children:d?e.jsx(ee,{}):x.map(j=>e.jsx(F,{heading:j.blockType.name,children:j.documents.map(A=>e.jsx(k,{value:A.id,selected:i.value===A.id,onSelect:i.onChange,children:A.name},A.id))},j.blockType.id))})]})]}),e.jsx(C,{})]})}}),e.jsx(_t,{index:t}),e.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-blue-200 bg-blue-50 p-3 text-sm text-blue-800 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-200",children:[e.jsx(Y,{id:"Info",className:"mt-0.5 size-4 shrink-0"}),e.jsxs("p",{children:["In addition to any fields present on the triggering event, the following objects can be used in webhook payload templates:"," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"flow"}),","," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"deployment"}),","," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"flow_run"}),","," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"work_pool"}),", and"," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"work_queue"}),"."]})]})]})},_t=({index:t})=>{const s=_(),{validateTemplate:n}=We(),[r,a]=m.useState(null),[o,l]=m.useState(!1),h=s.watch(`actions.${t}.payload`),p=me(h,1e3);return m.useEffect(()=>{(async()=>{if(!p||p.trim()===""){a(null);return}l(!0);try{const c=await n(p);c.valid?a(null):a(c.error)}catch{a(null)}finally{l(!1)}})()},[p,n]),e.jsx(w,{control:s.control,name:`actions.${t}.payload`,render:({field:d})=>e.jsxs(b,{children:[e.jsxs(S,{className:"flex items-center gap-2",children:["Payload",o&&e.jsx(Y,{id:"Loader2",className:"size-3 animate-spin"})]}),e.jsx(y,{children:e.jsx(fe,{...d,value:d.value??"",placeholder:"Enter webhook payload...",className:r?"border-destructive":"",rows:5})}),r&&e.jsx("p",{className:"text-sm text-destructive",children:r}),e.jsx(C,{})]})})},Tt=({index:t})=>{const s=_(),n=s.watch(`actions.${t}.state`);return e.jsxs(e.Fragment,{children:[e.jsx(w,{control:s.control,name:`actions.${t}.state`,render:({field:r})=>e.jsxs(b,{children:[e.jsx(S,{children:"State"}),e.jsx(y,{children:e.jsx(mt,{value:r.value,onValueChange:r.onChange})}),e.jsx(C,{})]})}),e.jsx(w,{control:s.control,name:`actions.${t}.name`,render:({field:r})=>e.jsxs(b,{children:[e.jsx(S,{children:"Name"}),e.jsx(y,{children:e.jsx(Z,{type:"text",...r,value:r.value??"",placeholder:n?pt[n]:void 0})}),e.jsx(C,{})]})}),e.jsx(w,{control:s.control,name:`actions.${t}.message`,render:({field:r})=>e.jsxs(b,{children:[e.jsx(S,{children:"Message"}),e.jsx(y,{children:e.jsx(fe,{...r,placeholder:"State changed by Automation <id>"})}),e.jsx(C,{})]})})]})},ae=({action:t})=>{const s=t==="Resume"?"Resume a flow run inferred from the triggering event":`${t} flow run inferred from the triggering event`;return e.jsx(re,{variant:"bodySmall",className:"text-muted-foreground",children:s})},H={value:te,name:"Infer Automation"},At=(t,s)=>{if(s===H.value)return H.name;const n=t?.find(r=>r.id===s);if(n)return n.name},ke=({action:t,index:s})=>{const[n,r]=m.useState(""),a=_(),{data:o,isSuccess:l}=E(Xe()),h=m.useDeferredValue(n),p=m.useMemo(()=>o?o.filter(c=>c.name.toLowerCase().includes(h.toLowerCase())):[],[o,h]),d=H.name.toLowerCase().includes(h.toLowerCase());return e.jsx(w,{control:a.control,name:`actions.${s}.automation_id`,render:({field:c})=>{const x=At(o,c.value);return e.jsxs(b,{className:"flex flex-col",children:[e.jsxs(S,{children:["Automation To ",t]}),e.jsxs(R,{children:[e.jsx(M,{selected:!!x,"aria-label":`Select Automation to ${t}`,children:x??"Select automation"}),e.jsxs(V,{children:[e.jsx(O,{value:n,onValueChange:r,placeholder:"Search for an automation..."}),e.jsx(W,{children:"No automation found"}),e.jsx(I,{children:e.jsxs(F,{children:[d&&e.jsx(k,{selected:c.value===H.value,onSelect:u=>{c.onChange(u),r("")},value:H.value,children:H.name}),l?p.map(u=>e.jsx(k,{selected:c.value===u.id,onSelect:i=>{c.onChange(i),r("")},value:u.id,children:u.name},u.id)):e.jsx(ee,{})]})})]})]}),e.jsx(C,{})]})}})},Et=(t={page:1,limit:100,sort:"NAME_ASC"})=>{const{data:s,status:n}=E(Ze(t)),r=new Set(s?.results.map(l=>l.flow_id)),{data:a,status:o}=E(ie({flows:{operator:"or_",id:{any_:Array.from(r)}},sort:"NAME_DESC",offset:0},{enabled:r.size>0}));return m.useMemo(()=>{if(a&&s){const l=new Map(a.map(i=>[i.id,i])),h=s.results.map(i=>({...i,flow:l.get(i.flow_id)})),{count:p,limit:d,pages:c,page:x}=s;return{data:{count:p,limit:d,pages:c,page:x,results:h},status:"success"}}return o==="error"||n==="error"?{data:void 0,status:"error"}:{data:void 0,status:"pending"}},[s,n,a,o])},q={value:te,name:"Infer Deployment"},Lt=(t,s)=>{if(s===q.value)return q.name;const n=t?.find(r=>r.id===s);if(n)return e.jsx(qe,{deploymentWithFlow:n})},le=({action:t,index:s})=>{const[n,r]=m.useState(""),a=_(),o=a.watch(`actions.${s}.type`),l=D({name:`actions.${s}.deployment_id`}),h=me(n,500),{data:p}=Et({page:1,sort:"NAME_ASC",deployments:{operator:"or_",flow_or_deployment_name:{like_:h}}}),d=q.name.toLowerCase().includes(n.toLowerCase()),c=p?.results;return e.jsxs(e.Fragment,{children:[e.jsx(w,{control:a.control,name:`actions.${s}.deployment_id`,render:({field:x})=>{const u=Lt(c,x.value);return e.jsxs(b,{className:"flex flex-col",children:[e.jsxs(S,{children:["Deployment To ",t]}),e.jsxs(R,{children:[e.jsx(M,{selected:!!u,"aria-label":`Select Deployment to ${t}`,children:u??"Select deployment"}),e.jsxs(V,{children:[e.jsx(O,{value:n,onValueChange:r,placeholder:"Search for an deployment..."}),e.jsx(W,{children:"No deployment found"}),e.jsx(I,{children:e.jsxs(F,{children:[d&&e.jsx(k,{selected:x.value===q.value,onSelect:x.onChange,value:q.value,children:q.name}),c?c.map(i=>e.jsx(k,{"aria-label":i.name,selected:x.value===i.id,onSelect:x.onChange,value:i.id,children:e.jsx(qe,{deploymentWithFlow:i})},i.id)):e.jsx(ee,{})]})})]})]}),e.jsx(C,{})]})}}),l!==q.value&&o==="run-deployment"&&e.jsx("div",{children:"TODO: Additional fields"})]})},qe=({deploymentWithFlow:t})=>t.flow?e.jsxs("div",{className:"flex items-center gap-0.5",children:[e.jsx("div",{children:t.flow.name}),e.jsx(Y,{className:"size-4",id:"ChevronRight"}),e.jsx("div",{children:t.name})]}):t.name,K={value:te,name:"Infer Work Pool"},Dt=(t,s)=>{if(s===K.value)return K.name;const n=t?.find(r=>r.id===s);if(n)return n.name},Ne=({action:t,index:s})=>{const[n,r]=m.useState(""),a=_(),{data:o,isSuccess:l}=E(pe()),h=m.useDeferredValue(n),p=m.useMemo(()=>o?o.filter(c=>c.name.toLowerCase().includes(h.toLowerCase())):[],[o,h]),d=K.name.toLowerCase().includes(h.toLowerCase());return e.jsx(w,{control:a.control,name:`actions.${s}.work_pool_id`,render:({field:c})=>{const x=Dt(o,c.value);return e.jsxs(b,{className:"flex flex-col",children:[e.jsxs(S,{children:["Work Pool To ",t]}),e.jsxs(R,{children:[e.jsx(M,{selected:!!x,"aria-label":`Select Work Pool to ${t}`,children:x??"Select Work Pool"}),e.jsxs(V,{children:[e.jsx(O,{value:n,onValueChange:r,placeholder:"Search for a work pool..."}),e.jsx(W,{children:"No work pool found"}),e.jsx(I,{children:e.jsxs(F,{children:[d&&e.jsx(k,{selected:c.value===K.value,onSelect:u=>{c.onChange(u),r("")},value:K.value,children:K.name}),l?p.map(u=>e.jsx(k,{selected:c.value===u.id,onSelect:i=>{c.onChange(i),r("")},value:u.id,children:u.name},u.id)):e.jsx(ee,{})]})})]})]}),e.jsx(C,{})]})}})},X={value:te,name:"Infer Work Queue"},Ft=(t,s)=>{if(s===X.value)return X.name;const n=t?.find(r=>r.id===s);if(n)return n.name},_e=({action:t,index:s})=>{const[n,r]=m.useState(""),a=_(),{data:o}=E(Ie()),l=m.useDeferredValue(n),h=m.useMemo(()=>{if(!o)return;const d=new Map,c=o.filter(x=>x.name.toLowerCase().includes(l.toLowerCase()));for(const x of c){const{work_pool_name:u}=x;if(!u)throw new Error("'work_pool_name expected");d.set(u,[...d.get(u)??[],x])}return d},[o,l]),p=X.name.toLowerCase().includes(l.toLowerCase());return e.jsx(w,{control:a.control,name:`actions.${s}.work_queue_id`,render:({field:d})=>{const c=Ft(o,d.value);return e.jsxs(b,{className:"flex flex-col",children:[e.jsxs(S,{children:["Work Queue To ",t]}),e.jsxs(R,{children:[e.jsx(M,{selected:!!c,"aria-label":`Select Work Queue to ${t}`,children:c??"Select Work Queue"}),e.jsxs(V,{children:[e.jsx(O,{value:n,onValueChange:r,placeholder:"Search for a work queue..."}),e.jsx(W,{children:"No work queue found"}),e.jsx(I,{children:e.jsxs(F,{children:[p&&e.jsx(k,{selected:d.value===X.value,onSelect:x=>{d.onChange(x),r("")},value:X.value,children:X.name}),h?Array.from(h).map(([x,u])=>e.jsxs("div",{className:"border-b",children:[e.jsx(k,{disabled:!0,children:x}),u.map(i=>e.jsx(k,{selected:d.value===i.id,onSelect:f=>{d.onChange(f),r("")},value:i.id,children:i.name},i.id))]},x)):e.jsx(ee,{})]})})]})]}),e.jsx(C,{})]})}})},Rt=({index:t})=>{const s=_(),[n,r]=m.useState(""),{data:a,isLoading:o}=E(Ve({offset:0,block_schemas:{operator:"and_",block_capabilities:{all_:["notify"]}}})),l=m.useMemo(()=>a?.map(i=>i.slug)??[],[a]),{data:h,isLoading:p}=E(Oe({block_types:l.length>0?{slug:{any_:l}}:void 0,include_secrets:!1,sort:"BLOCK_TYPE_AND_NAME_ASC",offset:0},{enabled:l.length>0})),d=o||p,c=m.useMemo(()=>!a||!h?[]:a.map(i=>({blockType:i,documents:h.filter(f=>f.block_type_id===i.id)})).filter(i=>i.documents.length>0),[a,h]),x=m.useMemo(()=>{if(!n)return c;const i=n.toLowerCase();return c.map(f=>({...f,documents:f.documents.filter(j=>j.name?.toLowerCase().includes(i))})).filter(f=>f.documents.length>0)},[c,n]),u=m.useCallback(i=>{if(!(!i||!h))return h.find(f=>f.id===i)},[h]);return e.jsxs("div",{className:"space-y-4",children:[e.jsx(w,{control:s.control,name:`actions.${t}.block_document_id`,render:({field:i})=>{const f=u(i.value);return e.jsxs(b,{className:"flex flex-col",children:[e.jsx(S,{children:"Block"}),e.jsxs(R,{children:[e.jsx(M,{selected:!!f,"aria-label":"Select notification block",children:f?f.name:"Select a notification block"}),e.jsxs(V,{children:[e.jsx(O,{value:n,onValueChange:r,placeholder:"Search for a block..."}),e.jsx(W,{children:"No notification blocks found"}),e.jsx(I,{children:d?e.jsx(ee,{}):x.map(j=>e.jsx(F,{heading:j.blockType.name,children:j.documents.map(A=>e.jsx(k,{value:A.id,selected:i.value===A.id,onSelect:i.onChange,children:A.name},A.id))},j.blockType.id))})]})]}),e.jsx(C,{})]})}}),e.jsx(Te,{index:t,name:"subject",label:"Subject",placeholder:"Enter notification subject..."}),e.jsx(Te,{index:t,name:"body",label:"Body",placeholder:"Enter notification body...",multiline:!0}),e.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-blue-200 bg-blue-50 p-3 text-sm text-blue-800 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-200",children:[e.jsx(Y,{id:"Info",className:"mt-0.5 size-4 shrink-0"}),e.jsxs("p",{children:["In addition to any fields present on the triggering event, the following objects can be used in notification templates:"," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"flow"}),","," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"deployment"}),","," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"flow_run"}),","," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"work_pool"}),","," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"work_queue"}),", and"," ",e.jsx("code",{className:"rounded bg-blue-100 px-1 py-0.5 font-mono text-xs dark:bg-blue-900",children:"metric"}),"."]})]})]})},Te=({index:t,name:s,label:n,placeholder:r,multiline:a=!1})=>{const o=_(),{validateTemplate:l}=We(),[h,p]=m.useState(null),[d,c]=m.useState(!1),x=o.watch(`actions.${t}.${s}`),u=me(x,1e3);m.useEffect(()=>{(async()=>{if(!u||u.trim()===""){p(null);return}c(!0);try{const j=await l(u);j.valid?p(null):p(j.error)}catch{p(null)}finally{c(!1)}})()},[u,l]);const i=a?fe:Z;return e.jsx(w,{control:o.control,name:`actions.${t}.${s}`,render:({field:f})=>e.jsxs(b,{children:[e.jsxs(S,{className:"flex items-center gap-2",children:[n,d&&e.jsx(Y,{id:"Loader2",className:"size-3 animate-spin"})]}),e.jsx(y,{children:e.jsx(i,{...f,value:f.value??"",placeholder:r,className:h?"border-destructive":""})}),h&&e.jsx("p",{className:"text-sm text-destructive",children:h}),e.jsx(C,{})]})})},Mt=({index:t,onRemove:s})=>e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs(re,{variant:"body",className:"font-semibold",children:["Action ",t+1]}),e.jsx(U,{size:"icon","aria-label":`remove action ${t+1}`,onClick:s,variant:"outline",children:e.jsx(Y,{id:"Trash2",className:"size-4"})})]}),e.jsx(yt,{index:t}),e.jsx(Vt,{index:t}),e.jsx("hr",{className:"my-8"})]},t),Vt=({index:t})=>{switch(D({name:`actions.${t}.type`})){case"change-flow-run-state":return e.jsx(Tt,{index:t});case"run-deployment":return e.jsx(le,{action:"Run",index:t});case"pause-deployment":return e.jsx(le,{action:"Pause",index:t});case"resume-deployment":return e.jsx(le,{action:"Resume",index:t});case"pause-work-queue":return e.jsx(_e,{action:"Pause",index:t});case"resume-work-queue":return e.jsx(_e,{action:"Resume",index:t});case"pause-work-pool":return e.jsx(Ne,{action:"Pause",index:t});case"resume-work-pool":return e.jsx(Ne,{action:"Resume",index:t});case"pause-automation":return e.jsx(ke,{action:"Pause",index:t});case"resume-automation":return e.jsx(ke,{action:"Resume",index:t});case"send-notification":return e.jsx(Rt,{index:t});case"call-webhook":return e.jsx(Nt,{index:t});case"cancel-flow-run":return e.jsx(ae,{action:"Cancel"});case"suspend-flow-run":return e.jsx(ae,{action:"Suspend"});case"resume-flow-run":return e.jsx(ae,{action:"Resume"});default:return null}},Ot=()=>{const t=_(),{fields:s,append:n,remove:r}=Ge({control:t.control,name:"actions",shouldUnregister:!1,rules:{minLength:1}});return e.jsxs("div",{children:[s.map(({id:a},o)=>e.jsx(Mt,{index:o,onRemove:()=>r(o)},a)),e.jsxs(U,{type:"button",variant:"outline",onClick:()=>n({type:"cancel-flow-run"}),children:[e.jsx(Y,{id:"Plus",className:"mr-2 size-4"})," Add Action"]})]})},Wt=()=>{const t=_();return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(w,{control:t.control,name:"name",render:({field:s})=>e.jsxs(b,{children:[e.jsx(S,{children:"Automation Name"}),e.jsx(y,{children:e.jsx(Z,{type:"text",...s,value:s.value??""})}),e.jsx(C,{})]})}),e.jsx(w,{control:t.control,name:"description",render:({field:s})=>e.jsxs(b,{children:[e.jsx(S,{children:"Description (Optional)"}),e.jsx(y,{children:e.jsx(Z,{type:"text",...s,value:s.value??""})}),e.jsx(C,{})]})})]})},It=[{value:"Reactive",label:"Observe"},{value:"Proactive",label:"Don't observe"}],Pt=30,$t=()=>{const t=_(),s=n=>{const r=t.getValues("trigger.posture");if(t.setValue("trigger.posture",n),r==="Reactive"&&n==="Proactive"){const a=t.getValues("trigger.expect")??[];t.setValue("trigger.after",a),t.setValue("trigger.expect",[]),t.getValues("trigger.within")===0&&t.setValue("trigger.within",Pt)}else if(r==="Proactive"&&n==="Reactive"){const a=t.getValues("trigger.after")??[];t.setValue("trigger.expect",a),t.setValue("trigger.after",[])}};return e.jsx(w,{control:t.control,name:"trigger.posture",render:({field:n})=>e.jsxs(b,{children:[e.jsx(S,{children:"When I"}),e.jsx(y,{children:e.jsx(ft,{value:n.value,onValueChange:s,className:"flex gap-4",children:It.map(r=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(gt,{value:r.value,id:`custom-${r.value}`}),e.jsx(xe,{htmlFor:`custom-${r.value}`,children:r.label})]},r.value))})})]})})},ue=60,de=3600,he=86400,qt=[{label:"Seconds",value:1},{label:"Minutes",value:ue},{label:"Hours",value:de},{label:"Days",value:he}];function Ut(t){return t>0&&t%he===0?he:t>0&&t%de===0?de:t>0&&t%ue===0?ue:1}function se({value:t,onChange:s,min:n=0,max:r,className:a,disabled:o=!1}){const[l,h]=m.useState(()=>Ut(t)),p=m.useMemo(()=>qt.filter(u=>u.value>=n),[n]),d=m.useMemo(()=>t/l,[t,l]),c=m.useCallback(u=>{let i=u*l;r!==void 0&&i>r&&(i=r),s(i)},[s,l,r]),x=m.useCallback(u=>{const i=Number(u),f=l;h(i);let j=t/f*i;r!==void 0&&j>r&&(j=r),s(j)},[s,l,t,r]);return m.useEffect(()=>{if(!p.some(u=>u.value===l)){const u=p[0];u&&h(u.value)}},[p,l]),e.jsxs("div",{className:et("grid grid-cols-[1fr_7rem] gap-2 w-full",a),children:[e.jsx(Z,{type:"number",min:0,value:d,onChange:u=>c(Number(u.target.value)),disabled:o,"aria-label":"Duration quantity"}),e.jsxs(B,{value:String(l),onValueChange:x,disabled:o,children:[e.jsx(Q,{"aria-label":"Duration unit",children:e.jsx(z,{})}),e.jsx(J,{children:p.map(u=>e.jsx(G,{value:String(u.value),children:u.label},u.value))})]})]})}const Bt=2,Qt=40;function Ae({selectedResourceIds:t,onToggleResource:s,emptyMessage:n="All resources"}){const[r,a]=m.useState(""),o=m.useDeferredValue(r),[l,h]=m.useState(0),p=m.useRef(null),d=m.useRef(null);m.useEffect(()=>{const g=p.current;if(!g)return;const v=new ResizeObserver(N=>{for(const T of N)h(T.contentRect.width)});return v.observe(g),()=>v.disconnect()},[]);const{resourceOptions:c}=jt(),x=m.useMemo(()=>{const g=[{label:"Automations",options:[]},{label:"Blocks",options:[]},{label:"Deployments",options:[]},{label:"Flows",options:[]},{label:"Work Pools",options:[]},{label:"Work Queues",options:[]}];for(const v of c){const N={label:v.name,value:v.resourceId};switch(v.type){case"automation":g[0].options.push(N);break;case"block":g[1].options.push(N);break;case"deployment":g[2].options.push(N);break;case"flow":g[3].options.push(N);break;case"work-pool":g[4].options.push(N);break;case"work-queue":g[5].options.push(N);break}}return g.map(v=>({...v,options:v.options.sort((N,T)=>N.label.localeCompare(T.label))})).filter(v=>v.options.length>0)},[c]),u=m.useMemo(()=>{if(!o)return x;const g=o.toLowerCase();return x.map(v=>({...v,options:v.options.filter(N=>N.label.toLowerCase().includes(g)||N.value.toLowerCase().includes(g))})).filter(v=>v.options.length>0)},[x,o]),i=m.useMemo(()=>{if(!o.trim()||!o.includes("."))return!1;const g=o.toLowerCase();return!c.some(v=>v.resourceId.toLowerCase()===g)},[o,c]),f=m.useCallback(g=>{const v=d.current;if(!v||l===0||g.length===0)return Math.min(g.length,Bt);const N=g.length>1?l-Qt:l;let T=0;for(let L=0;L<g.length&&(v.textContent=g.slice(0,L+1).join(", "),v.offsetWidth<=N);L++)T=L+1;return T===g.length?g.length:Math.max(1,T)},[l]),j=()=>{if(t.length===0)return e.jsx("span",{className:"text-muted-foreground",children:n});const g=t.map(L=>c.find(Qe=>Qe.resourceId===L)?.name??L),v=f(g),N=g.slice(0,v),T=g.length-v;return e.jsxs("div",{ref:p,className:"flex flex-1 min-w-0 items-center gap-2",children:[e.jsx("div",{className:"flex flex-1 min-w-0 items-center gap-2 overflow-hidden",children:e.jsx("span",{className:"truncate",children:N.join(", ")})}),T>0&&e.jsxs(re,{variant:"bodySmall",className:"shrink-0",children:["+ ",T]}),e.jsx("div",{ref:d,className:"absolute invisible whitespace-nowrap","aria-hidden":"true"})]})},A=g=>{s(g),a("")};return e.jsxs(R,{children:[e.jsx(M,{selected:t.length>0,children:j()}),e.jsxs(V,{children:[e.jsx(O,{value:r,onValueChange:a,placeholder:"Search resources..."}),e.jsxs(I,{children:[e.jsx(W,{children:"No resources found"}),i&&e.jsx(F,{children:e.jsxs(k,{selected:t.includes(o),onSelect:()=>A(o),closeOnSelect:!1,value:o,children:['Add "',o,'"']},"__custom__")}),u.map(g=>e.jsx(F,{heading:g.label,children:g.options.map(v=>e.jsx(k,{selected:t.includes(v.value),onSelect:()=>A(v.value),closeOnSelect:!1,value:v.value,children:v.label},v.value))},g.label))]})]})]})}function zt(t){const s=new Map;for(const n of t){const r=n.split(".");for(let a=1;a<r.length;a++){const o=r.slice(0,a).join(".");s.set(o,(s.get(o)??0)+1)}}return Array.from(s.entries()).filter(([,n])=>n>1&&n<t.length).map(([n])=>`${n}.*`)}function Ee({selectedEvents:t,onToggleEvent:s,emptyMessage:n="All events"}){const[r,a]=m.useState(""),o=m.useDeferredValue(r),[l]=m.useState(()=>({since:new Date(Date.now()-10080*60*1e3).toISOString(),until:new Date().toISOString()})),{data:h=[]}=E(tt("event",{filter:{occurred:l,order:"DESC"},time_unit:"day",time_interval:1})),p=m.useMemo(()=>{const i=h.map(j=>j.label),f=zt(i);return[...i,...f].sort((j,A)=>j.localeCompare(A))},[h]),d=m.useMemo(()=>{if(!o)return p;const i=o.toLowerCase();return p.filter(f=>f.toLowerCase().includes(i))},[p,o]),c=m.useMemo(()=>{if(!o.trim())return!1;const i=o.toLowerCase();return!p.some(f=>f.toLowerCase()===i)},[o,p]),x=()=>{if(t.length===0)return e.jsx("span",{className:"text-muted-foreground",children:n});const i=t.slice(0,2),f=t.length-i.length;return e.jsxs("div",{className:"flex min-w-0 items-center justify-start gap-1",children:[e.jsx("span",{className:"truncate min-w-0 text-left",children:i.join(", ")}),f>0&&e.jsxs("span",{className:"shrink-0 text-muted-foreground",children:["+",f]})]})},u=i=>{s(i),a("")};return e.jsxs(R,{children:[e.jsx(M,{selected:t.length>0,children:x()}),e.jsxs(V,{children:[e.jsx(O,{value:r,onValueChange:a,placeholder:"Search events..."}),e.jsxs(I,{children:[e.jsx(W,{children:"No events found"}),e.jsxs(F,{children:[c&&e.jsxs(k,{selected:t.includes(o),onSelect:()=>u(o),closeOnSelect:!1,value:o,children:['Add "',o,'"']},"__custom__"),d.map(i=>e.jsx(k,{selected:t.includes(i),onSelect:()=>u(i),closeOnSelect:!1,value:i,children:i},i))]})]})]})]})}const Jt=()=>{const t=_(),s=D({name:"trigger.posture"});return e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex items-end gap-4",children:e.jsx($t,{})}),e.jsx(w,{control:t.control,name:"trigger.expect",render:({field:n})=>{const r=n.value??[];return e.jsxs(b,{children:[e.jsx(S,{children:"Any event matching"}),e.jsx(y,{children:e.jsx(Ee,{selectedEvents:r,onToggleEvent:a=>{const o=r.includes(a)?r.filter(l=>l!==a):[...r,a];n.onChange(o)}})}),e.jsx(C,{})]})}}),e.jsx(w,{control:t.control,name:"trigger.match",render:({field:n})=>{const r=n.value?.["prefect.resource.id"]??[],a=Array.isArray(r)?r:[r];return e.jsxs(b,{children:[e.jsx(S,{children:"From the following resources"}),e.jsx(y,{children:e.jsx(Ae,{selectedResourceIds:a,onToggleResource:o=>{const l=a.includes(o)?a.filter(h=>h!==o):[...a,o];l.length>0?n.onChange({"prefect.resource.id":l}):n.onChange({})}})}),e.jsx(C,{})]})}}),e.jsxs("div",{className:"flex items-end gap-2",children:[e.jsx(w,{control:t.control,name:"trigger.threshold",render:({field:n})=>e.jsxs(b,{className:"w-20",children:[e.jsx(y,{children:e.jsx(Z,{type:"number",min:1,...n,onChange:r=>n.onChange(Number(r.target.value))})}),e.jsx(C,{})]})}),e.jsx("span",{className:"pb-2 text-sm text-muted-foreground",children:"times within"}),e.jsx(w,{control:t.control,name:"trigger.within",render:({field:n})=>e.jsxs(b,{children:[e.jsx(y,{children:e.jsx(se,{value:n.value??0,onChange:n.onChange,min:s==="Proactive"?10:0})}),e.jsx(C,{})]})})]}),e.jsxs(vt,{children:[e.jsxs(bt,{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(st,{className:"h-4 w-4 transition-transform data-[state=open]:rotate-90"}),"Evaluation Options"]}),e.jsxs(St,{className:"mt-4 space-y-4 pl-6",children:[e.jsx(w,{control:t.control,name:"trigger.after",render:({field:n})=>{const r=n.value??[];return e.jsxs(b,{children:[e.jsx(S,{children:"Evaluate trigger only after observing an event matching"}),e.jsx(y,{children:e.jsx(Ee,{selectedEvents:r,onToggleEvent:a=>{const o=r.includes(a)?r.filter(l=>l!==a):[...r,a];n.onChange(o)}})}),e.jsx(C,{})]})}}),e.jsx(w,{control:t.control,name:"trigger.match_related",render:({field:n})=>{const r=n.value?.["prefect.resource.id"]??[],a=Array.isArray(r)?r:[r];return e.jsxs(b,{children:[e.jsx(S,{children:"Filter for events related to"}),e.jsx(y,{children:e.jsx(Ae,{selectedResourceIds:a,onToggleResource:o=>{const l=a.includes(o)?a.filter(h=>h!==o):[...a,o];l.length>0?n.onChange({"prefect.resource.id":l}):n.onChange({})}})}),e.jsx(C,{})]})}})]})]})]})},Gt=2,Yt=40,Ht=({selectedDeploymentIds:t,onSelectDeploymentIds:s})=>{const[n,r]=m.useState(""),a=m.useDeferredValue(n),[o,l]=m.useState(0),h=m.useRef(null),p=m.useRef(null),d=m.useMemo(()=>new Set(t),[t]);m.useEffect(()=>{const g=h.current;if(!g)return;const v=new ResizeObserver(N=>{for(const T of N)l(T.contentRect.width)});return v.observe(g),()=>v.disconnect()},[]);const{data:c=[]}=E(je({deployments:a?{operator:"and_",name:{like_:a}}:void 0,limit:100,offset:0,sort:"NAME_ASC"})),{data:x=[]}=E(je({deployments:d.size>0?{operator:"and_",id:{any_:t}}:void 0,limit:d.size||1,offset:0,sort:"NAME_ASC"},{enabled:d.size>0})),u=g=>{const v=new Set(d);d.has(g)?v.delete(g):v.add(g),s(Array.from(v))},i=()=>{s([])},f=m.useCallback(g=>{const v=p.current;if(!v||o===0||g.length===0)return Math.min(g.length,Gt);const N=g.length>1?o-Yt:o;let T=0;for(let L=0;L<g.length&&(v.textContent=g.slice(0,L+1).join(", "),v.offsetWidth<=N);L++)T=L+1;return T===g.length?g.length:Math.max(1,T)},[o]),j=()=>{if(d.size===0)return"All deployments";const g=x.filter(L=>d.has(L.id)).map(L=>L.name),v=f(g),N=g.slice(0,v),T=g.length-v;return e.jsxs("div",{ref:h,className:"flex flex-1 min-w-0 items-center gap-2",children:[e.jsx("div",{className:"flex flex-1 min-w-0 items-center gap-2 overflow-hidden",children:e.jsx("span",{className:"truncate",children:N.join(", ")})}),T>0&&e.jsxs(re,{variant:"bodySmall",className:"shrink-0",children:["+ ",T]}),e.jsx("div",{ref:p,className:"absolute invisible whitespace-nowrap","aria-hidden":"true"})]})},A=m.useMemo(()=>c.filter(g=>!a||g.name.toLowerCase().includes(a.toLowerCase())),[c,a]);return e.jsxs(R,{children:[e.jsx(M,{"aria-label":"Select deployments",selected:d.size===0,children:j()}),e.jsxs(V,{children:[e.jsx(O,{value:n,onValueChange:r,placeholder:"Search deployments..."}),e.jsxs(I,{children:[e.jsx(W,{children:"No deployments found"}),e.jsxs(F,{children:[e.jsxs(k,{"aria-label":"All deployments",onSelect:i,closeOnSelect:!1,value:"__all__",children:[e.jsx(ve,{checked:d.size===0}),"All deployments"]}),A.map(g=>e.jsxs(k,{"aria-label":g.name,onSelect:()=>u(g.id),closeOnSelect:!1,value:g.id,children:[e.jsx(ve,{checked:d.has(g.id)}),g.name]},g.id))]})]})]})]})},Kt=[{value:"Reactive",label:"Enters"},{value:"Proactive",label:"Stays in"}],Xt=30,ne=()=>{const t=_();return e.jsx(w,{control:t.control,name:"trigger.posture",render:({field:s})=>e.jsx(b,{children:e.jsx(y,{children:e.jsxs(B,{value:s.value,onValueChange:n=>{const r=s.value;if(s.onChange(n),r==="Reactive"&&n==="Proactive"){const a=t.getValues("trigger.expect")??[];t.setValue("trigger.after",a),t.setValue("trigger.expect",[]),t.getValues("trigger.within")===0&&t.setValue("trigger.within",Xt)}else if(r==="Proactive"&&n==="Reactive"){const a=t.getValues("trigger.after")??[];t.setValue("trigger.expect",a),t.setValue("trigger.after",[])}},children:[e.jsx(Q,{"aria-label":"select posture",className:"w-[160px]",children:e.jsx(z,{placeholder:"Select posture"})}),e.jsx(J,{children:Kt.map(n=>e.jsx(G,{value:n.value,children:n.label},n.value))})]})})})})},Zt=86400,es=30*Zt,ts=[{value:"prefect.deployment.ready",label:"Ready"},{value:"prefect.deployment.not-ready",label:"Not Ready"},{value:"prefect.deployment.disabled",label:"Disabled"}],Ue="prefect.deployment.",Be="prefect.deployment.*",ss=t=>t?(Array.isArray(t)?t:[t]).filter(n=>n!==Be).map(n=>n.replace(Ue,"")):[],rs=t=>t.length===0?Be:t.map(s=>`${Ue}${s}`),ns=()=>{const t=_(),s=D({name:"trigger.posture"}),n=D({name:"trigger.match"}),r=m.useMemo(()=>{const l=n?.["prefect.resource.id"];return ss(l)},[n]),a=m.useCallback(o=>{const l=t.getValues("trigger.match")??{};t.setValue("trigger.match",{...l,"prefect.resource.id":rs(o)})},[t]);return e.jsxs("div",{className:"space-y-4",children:[e.jsxs(b,{children:[e.jsx(S,{children:"Deployments"}),e.jsx(y,{children:e.jsx(Ht,{selectedDeploymentIds:r,onSelectDeploymentIds:a})})]}),e.jsxs(b,{children:[e.jsx(S,{children:"Deployment"}),e.jsxs("div",{className:"grid gap-2",style:{gridTemplateColumns:"10rem 1fr"},children:[e.jsx(ne,{}),e.jsx(w,{control:t.control,name:"trigger.expect",render:({field:o})=>{const l=o.value?.[0];return e.jsxs(B,{value:l??"",onValueChange:h=>o.onChange([h]),children:[e.jsx(Q,{className:"w-full",children:e.jsx(z,{placeholder:"Select status"})}),e.jsx(J,{children:ts.map(h=>e.jsx(G,{value:h.value,children:h.label},h.value))})]})}})]})]}),s==="Proactive"&&e.jsx(w,{control:t.control,name:"trigger.within",render:({field:o})=>e.jsxs(b,{children:[e.jsx(S,{children:"Within"}),e.jsx(y,{children:e.jsx(se,{value:o.value??0,onChange:o.onChange,min:10,max:es})}),e.jsx(C,{})]})})]})},os=2;function as({selectedFlowIds:t,onToggleFlow:s,emptyMessage:n="Any flow"}){const[r,a]=m.useState(""),o=m.useDeferredValue(r),{data:l=[]}=E(ie({flows:o?{operator:"and_",name:{like_:o}}:void 0,limit:100,offset:0,sort:"NAME_ASC"})),{data:h=[]}=E(ie({flows:t.length>0?{operator:"and_",id:{any_:t}}:void 0,limit:t.length||1,offset:0,sort:"NAME_ASC"},{enabled:t.length>0})),p=m.useMemo(()=>l.filter(c=>!o||c.name.toLowerCase().includes(o.toLowerCase())),[l,o]),d=()=>{if(t.length===0)return e.jsx("span",{className:"text-muted-foreground",children:n});const x=h.filter(i=>t.includes(i.id)).map(i=>i.name).slice(0,os),u=t.length-x.length;return e.jsxs("div",{className:"flex min-w-0 items-center justify-start gap-1",children:[e.jsx("span",{className:"truncate min-w-0 text-left",children:x.join(", ")}),u>0&&e.jsxs("span",{className:"shrink-0 text-muted-foreground",children:["+",u]})]})};return e.jsxs(R,{children:[e.jsx(M,{selected:t.length>0,children:d()}),e.jsxs(V,{children:[e.jsx(O,{value:r,onValueChange:a,placeholder:"Search flows..."}),e.jsxs(I,{children:[e.jsx(W,{children:"No flows found"}),e.jsx(F,{children:p.map(c=>e.jsx(k,{selected:t.includes(c.id),onSelect:()=>{s(c.id),a("")},closeOnSelect:!1,value:c.id,children:c.name},c.id))})]})]})]})}const P="All run states",$="All except scheduled";function ls(t){return t.length!==$e.length-1?!1:!t.includes("Scheduled")}function cs({selectedStates:t,onStateChange:s,emptyMessage:n="Any state"}){const[r,a]=m.useState(""),o=m.useDeferredValue(r),l=m.useMemo(()=>t.length===0?P:ls(t)?$:t,[t]),h=m.useMemo(()=>{const u=o.toLowerCase();return $e.filter(i=>i.toLowerCase().includes(u))},[o]),p=m.useMemo(()=>{const u=o.toLowerCase();return P.toLowerCase().includes(u)||$.toLowerCase().includes(u)},[o]),d=u=>{u===P?s([]):u===$&&s([...xt]),a("")},c=u=>{t.includes(u)?s(t.filter(i=>i!==u)):s([...t,u]),a("")},x=()=>l===P?e.jsx("span",{className:"text-muted-foreground",children:n}):l===$?e.jsx("span",{children:"All except scheduled"}):e.jsx("div",{className:"flex flex-wrap gap-1",children:t.map(u=>e.jsx(be,{type:ye[u],name:u,className:"cursor-pointer"},u))});return e.jsxs(R,{children:[e.jsx(M,{selected:t.length>0,children:x()}),e.jsxs(V,{children:[e.jsx(O,{value:r,onValueChange:a,placeholder:"Search states..."}),e.jsx(W,{children:"No state found"}),e.jsx(I,{children:e.jsxs(F,{children:[p&&e.jsxs(e.Fragment,{children:[e.jsx(k,{selected:l===P,onSelect:()=>d(P),value:P,closeOnSelect:!1,children:"All run states"},P),e.jsx(k,{selected:l===$,onSelect:()=>d($),value:$,closeOnSelect:!1,children:"All except scheduled"},$)]}),h.map(u=>e.jsx(k,{selected:t.includes(u),onSelect:()=>c(u),value:u,closeOnSelect:!1,children:e.jsx(be,{type:ye[u],name:u})},u))]})})]})]})}function is(t){return t.length===0?["prefect.flow-run.*"]:t.map(s=>`prefect.flow-run.${s}`)}function us(t){return!t||t.length===0?[]:t.includes("prefect.flow-run.*")?[]:t.filter(s=>s.startsWith("prefect.flow-run.")).map(s=>s.replace("prefect.flow-run.",""))}function ds(t){if(!t)return[];const s=t["prefect.resource.id"];return s?(Array.isArray(s)?s:[s]).filter(r=>r.startsWith("prefect.flow.")).map(r=>r.replace("prefect.flow.","")):[]}function hs(t){if(!t)return[];const s=t["prefect.resource.id"];return s?(Array.isArray(s)?s:[s]).filter(r=>r.startsWith("prefect.tag.")).map(r=>r.replace("prefect.tag.","")):[]}function Le(t,s){const n=t.map(l=>`prefect.flow.${l}`),r=s.map(l=>`prefect.tag.${l}`);if(n.length===0&&r.length===0)return{};const a=n.length>0?"flow":"tag",o=[...n,...r];return{"prefect.resource.role":a,"prefect.resource.id":o}}const ms=()=>{const t=_(),s=D({name:"trigger.posture"}),n=s==="Proactive"?"trigger.after":"trigger.expect",r=D({name:"trigger.match_related"}),a=ds(r),o=hs(r),l=d=>{const c=a,x=c.includes(d)?c.filter(i=>i!==d):[...c,d],u=x.length>0?[]:o;t.setValue("trigger.match_related",Le(x,u))},h=d=>{t.setValue("trigger.match_related",Le(a,d))},p=a.length===0;return e.jsxs("div",{className:"space-y-4",children:[e.jsxs(b,{children:[e.jsx(S,{children:"Flows"}),e.jsx(y,{children:e.jsx(as,{selectedFlowIds:a,onToggleFlow:l,emptyMessage:"All flows"})})]}),p&&e.jsxs(b,{children:[e.jsx(S,{children:"Flow Run Tags"}),e.jsx(y,{children:e.jsx(wt,{value:o,onChange:h,placeholder:"All tags"})})]}),e.jsxs(b,{children:[e.jsx(S,{children:"Flow Run"}),e.jsxs("div",{className:"grid grid-cols-[10rem_1fr] gap-2",children:[e.jsx(ne,{}),e.jsx(w,{control:t.control,name:n,render:({field:d})=>{const c=d.value??[],x=us(c);return e.jsx(y,{children:e.jsx(cs,{selectedStates:x,onStateChange:u=>{d.onChange(is(u))},emptyMessage:"Any state"})})}})]})]}),s==="Proactive"&&e.jsx(w,{control:t.control,name:"trigger.within",render:({field:d})=>e.jsxs(b,{children:[e.jsx(S,{children:"For"}),e.jsx(y,{children:e.jsx(se,{value:d.value??0,onChange:d.onChange,min:0})}),e.jsx(C,{})]})})]})},ps=({defaultValue:t="Form",value:s,onValueChange:n,formContent:r,jsonContent:a})=>{const o=s!==void 0?{value:s,onValueChange:n}:{defaultValue:t};return e.jsxs(rt,{...o,children:[e.jsx("div",{className:"flex justify-center",children:e.jsxs(nt,{children:[e.jsx(Se,{value:"Form",children:"Form"}),e.jsx(Se,{value:"JSON",children:"JSON"})]})}),e.jsx(we,{value:"Form",children:r}),e.jsx(we,{value:"JSON",children:a})]})},xs=({value:t,onChange:s,error:n})=>{const[r,a]=m.useState(null),o=()=>{try{const h=JSON.parse(t);s(JSON.stringify(h,null,2))}catch{}},l=h=>{try{const p=JSON.parse(h);return Pe.parse(p),a(null),!0}catch(p){return p instanceof SyntaxError?a("Invalid JSON syntax"):p instanceof Re&&a(p.errors[0]?.message??"Invalid trigger configuration"),!1}};return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(xe,{children:"Trigger Configuration"}),e.jsx(U,{variant:"ghost",size:"sm",onClick:o,children:"Format"})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Edit the trigger configuration as JSON."," ",e.jsx("a",{href:"https://docs.prefect.io/v3/automate/events/automations-triggers",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-foreground",children:"View documentation"})]}),e.jsx(ot,{value:t,onChange:s,onBlur:()=>l(t)}),(r||n)&&e.jsx("p",{className:"text-sm text-destructive",children:r||n})]})},De={"deployment-status":"Deployment status","flow-run-state":"Flow run state","work-pool-status":"Work pool status","work-queue-status":"Work queue status",custom:"Custom"},fs=({onValueChange:t,value:s})=>e.jsxs("div",{className:"space-y-2",children:[e.jsx(xe,{htmlFor:"automations-trigger-template-select",children:"Trigger Template"}),e.jsxs(B,{value:s,onValueChange:t,children:[e.jsx(Q,{id:"automations-trigger-template-select",className:"w-full",children:e.jsx(z,{placeholder:"Select template"})}),e.jsx(J,{children:e.jsx(Me,{children:Object.keys(De).map(n=>e.jsx(G,{value:n,children:De[n]},n))})})]})]}),gs=({onTemplateChange:t})=>{const s=_();return e.jsx(w,{control:s.control,name:"triggerTemplate",render:({field:n})=>e.jsx(b,{children:e.jsx(y,{children:e.jsx(fs,{value:n.value,onValueChange:r=>{n.onChange(r),t?.(r)}})})})})},js={type:"event",posture:"Reactive",threshold:1,within:0},vs=t=>{switch(t){case"flow-run-state":return{type:"event",match:{"prefect.resource.id":"prefect.flow-run.*"},match_related:{},after:[],expect:["prefect.flow-run.*"],for_each:["prefect.resource.id"],posture:"Reactive",threshold:1,within:0};case"deployment-status":return{type:"event",match:{"prefect.resource.id":"prefect.deployment.*"},match_related:{},after:[],expect:["prefect.deployment.not-ready"],for_each:["prefect.resource.id"],posture:"Reactive",threshold:1,within:0};case"work-pool-status":return{type:"event",match:{"prefect.resource.id":"prefect.work-pool.*"},match_related:{},after:[],expect:["prefect.work-pool.not-ready","prefect.work-pool.not_ready"],for_each:["prefect.resource.id"],posture:"Reactive",threshold:1,within:0};case"work-queue-status":return{type:"event",match:{"prefect.resource.id":"prefect.work-queue.*"},match_related:{},after:[],expect:["prefect.work-queue.not-ready"],for_each:["prefect.resource.id"],posture:"Reactive",threshold:1,within:0};case"custom":return{type:"event",match:{"prefect.resource.id":["prefect.flow-run.*"]},match_related:{},after:[],expect:["prefect.flow-run.Failed"],for_each:[],posture:"Reactive",threshold:5,within:60};default:return js}};function bs({selectedWorkPoolIds:t,onToggleWorkPool:s,emptyMessage:n="All work pools"}){const[r,a]=m.useState(""),o=m.useDeferredValue(r),{data:l=[]}=E(pe()),h=m.useMemo(()=>l.filter(c=>c.status!==null).filter(c=>!o||c.name.toLowerCase().includes(o.toLowerCase())),[l,o]),p=m.useMemo(()=>l.filter(c=>t.includes(c.id)),[l,t]),d=()=>{if(t.length===0)return e.jsx("span",{className:"text-muted-foreground",children:n});const c=p.map(x=>x.name);return e.jsx("span",{className:"truncate min-w-0 text-left",children:c.join(", ")})};return e.jsxs(R,{children:[e.jsx(M,{selected:t.length>0,children:d()}),e.jsxs(V,{children:[e.jsx(O,{value:r,onValueChange:a,placeholder:"Search work pools..."}),e.jsxs(I,{children:[e.jsx(W,{children:"No work pools found"}),e.jsx(F,{children:h.map(c=>e.jsx(k,{selected:t.includes(c.id),onSelect:()=>{s(c.id),a("")},closeOnSelect:!1,value:c.id,children:c.name},c.id))})]})]})]})}const oe=[{value:"ready",label:"Ready",events:["prefect.work-pool.ready"]},{value:"not_ready",label:"Not Ready",events:["prefect.work-pool.not-ready","prefect.work-pool.not_ready"]},{value:"paused",label:"Paused",events:["prefect.work-pool.paused"]}];function Fe(t){if(!t||t.length===0)return"not_ready";for(const s of oe)if(s.events.some(n=>t.includes(n)))return s.value;return"not_ready"}function Ss(t){const s=oe.find(n=>n.value===t);return s?[...s.events]:[]}function ws(t){return oe.filter(s=>s.value!==t).flatMap(s=>[...s.events])}function ys(t){if(!t)return[];const s=t["prefect.resource.id"];return s?s==="prefect.work-pool.*"?[]:(Array.isArray(s)?s:[s]).filter(r=>r.startsWith("prefect.work-pool.")&&r!=="prefect.work-pool.*").map(r=>r.replace("prefect.work-pool.","")):[]}function Cs(t){return t.length===0?{"prefect.resource.id":"prefect.work-pool.*"}:{"prefect.resource.id":t.map(s=>`prefect.work-pool.${s}`)}}const ks=()=>{const t=_(),s=D({name:"trigger.posture"}),n=D({name:"trigger.expect"}),r=D({name:"trigger.after"}),a=Fe(s==="Proactive"?r:n),o=l=>{const h=Ss(l),p=ws(l);s==="Proactive"?(t.setValue("trigger.after",h),t.setValue("trigger.expect",p)):(t.setValue("trigger.expect",h),t.setValue("trigger.after",[]))};return e.jsxs(B,{value:a,onValueChange:o,children:[e.jsx(Q,{"aria-label":"select status",className:"min-w-0 flex-1",children:e.jsx(z,{placeholder:"Select status"})}),e.jsx(J,{children:oe.map(l=>e.jsx(G,{value:l.value,children:l.label},l.value))})]})},Ns=()=>{const t=_(),s=D({name:"trigger.posture"}),n=D({name:"trigger.match"}),r=ys(n),a=o=>{const l=r,h=l.includes(o)?l.filter(p=>p!==o):[...l,o];t.setValue("trigger.match",Cs(h))};return e.jsxs("div",{className:"space-y-4",children:[e.jsxs(b,{children:[e.jsx(S,{children:"Work Pools"}),e.jsx(y,{children:e.jsx(bs,{selectedWorkPoolIds:r,onToggleWorkPool:a,emptyMessage:"All work pools"})})]}),e.jsxs(b,{children:[e.jsx(S,{children:"Work Pool"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(ne,{}),e.jsx(ks,{})]})]}),s==="Proactive"&&e.jsx(w,{control:t.control,name:"trigger.within",render:({field:o})=>e.jsxs(b,{children:[e.jsx(S,{children:"For"}),e.jsx(y,{children:e.jsx(se,{value:o.value??30,onChange:o.onChange,min:0})}),e.jsx(C,{})]})})]})};function _s({selectedWorkPoolIds:t,onToggleWorkPool:s,emptyMessage:n="All work pools"}){const[r,a]=m.useState(""),o=m.useDeferredValue(r),{data:l=[]}=E(pe({limit:100,offset:0})),h=m.useMemo(()=>l.filter(d=>d.status?o?d.name.toLowerCase().includes(o.toLowerCase()):!0:!1),[l,o]),p=()=>{if(t.length===0)return e.jsx("span",{className:"text-muted-foreground",children:n});const d=l.filter(c=>t.includes(c.id)).map(c=>c.name);return e.jsx("span",{className:"truncate min-w-0 text-left",children:d.join(", ")})};return e.jsxs(R,{children:[e.jsx(M,{selected:t.length>0,children:p()}),e.jsxs(V,{children:[e.jsx(O,{value:r,onValueChange:a,placeholder:"Search work pools..."}),e.jsxs(I,{children:[e.jsx(W,{children:"No work pools found"}),e.jsx(F,{children:h.map(d=>e.jsx(k,{selected:t.includes(d.id),onSelect:()=>{s(d.id),a("")},closeOnSelect:!1,value:d.id,children:d.name},d.id))})]})]})]})}function Ts({selectedWorkQueueIds:t,onToggleWorkQueue:s,workPoolIds:n=[],emptyMessage:r="All work queues"}){const[a,o]=m.useState(""),l=m.useDeferredValue(a),{data:h=[]}=E(Ie({limit:100,offset:0})),p=m.useMemo(()=>h.filter(x=>n.length>0&&(!x.work_pool_id||!n.includes(x.work_pool_id))?!1:l?x.name.toLowerCase().includes(l.toLowerCase()):!0),[h,n,l]),d=m.useMemo(()=>{const x={};for(const i of p){const f=i.work_pool_name??"Unknown";x[f]||(x[f]=[]),x[f].push(i)}return Object.keys(x).sort((i,f)=>i.localeCompare(f)).map(i=>({poolName:i,queues:x[i].sort((f,j)=>f.name.localeCompare(j.name))}))},[p]),c=()=>{if(t.length===0)return e.jsx("span",{className:"text-muted-foreground",children:r});const x=h.filter(u=>t.includes(u.id)).map(u=>u.name);return e.jsx("span",{className:"truncate min-w-0 text-left",children:x.join(", ")})};return e.jsxs(R,{children:[e.jsx(M,{selected:t.length>0,children:c()}),e.jsxs(V,{children:[e.jsx(O,{value:a,onValueChange:o,placeholder:"Search work queues..."}),e.jsxs(I,{children:[e.jsx(W,{children:"No work queues found"}),d.map(x=>e.jsx(F,{heading:x.poolName,children:x.queues.map(u=>e.jsx(k,{selected:t.includes(u.id),onSelect:()=>{s(u.id),o("")},closeOnSelect:!1,value:u.id,children:u.name},u.id))},x.poolName))]})]})]})}const As=[{value:"prefect.work-queue.ready",label:"Ready"},{value:"prefect.work-queue.not-ready",label:"Not Ready"},{value:"prefect.work-queue.paused",label:"Paused"}];function Es(t){if(!t)return[];const s=t["prefect.resource.id"];return s?(Array.isArray(s)?s:[s]).filter(r=>r.startsWith("prefect.work-pool.")).map(r=>r.replace("prefect.work-pool.","")):[]}function Ls(t){if(!t)return[];const s=t["prefect.resource.id"];if(!s)return[];const n=Array.isArray(s)?s:[s];return n.includes("prefect.work-queue.*")?[]:n.filter(r=>r.startsWith("prefect.work-queue.")).map(r=>r.replace("prefect.work-queue.",""))}function Ds(t){return t.length===0?{}:{"prefect.resource.role":"work-pool","prefect.resource.id":t.map(n=>`prefect.work-pool.${n}`)}}function Fs(t){return t.length===0?{"prefect.resource.id":"prefect.work-queue.*"}:{"prefect.resource.id":t.map(n=>`prefect.work-queue.${n}`)}}const Rs=()=>{const t=_(),s=D({name:"trigger.posture"}),n=D({name:"trigger.match_related"}),r=D({name:"trigger.match"}),a=Es(n),o=Ls(r),l=p=>{const d=a,c=d.includes(p)?d.filter(x=>x!==p):[...d,p];t.setValue("trigger.match_related",Ds(c))},h=p=>{const d=o,c=d.includes(p)?d.filter(x=>x!==p):[...d,p];t.setValue("trigger.match",Fs(c))};return e.jsxs("div",{className:"space-y-4",children:[e.jsxs(b,{children:[e.jsx(S,{children:"Work Pools"}),e.jsx(y,{children:e.jsx(_s,{selectedWorkPoolIds:a,onToggleWorkPool:l,emptyMessage:"All work pools"})})]}),e.jsxs(b,{children:[e.jsx(S,{children:"Work Queues"}),e.jsx(y,{children:e.jsx(Ts,{selectedWorkQueueIds:o,onToggleWorkQueue:h,workPoolIds:a,emptyMessage:"All work queues"})})]}),e.jsxs(b,{children:[e.jsx(S,{children:"Work Queue"}),e.jsxs("div",{className:"grid grid-cols-[10rem_1fr] gap-2",children:[e.jsx(ne,{}),e.jsx(w,{control:t.control,name:"trigger.expect",render:({field:p})=>{const d=p.value?.[0];return e.jsx(y,{children:e.jsxs(B,{value:d??"",onValueChange:c=>p.onChange([c]),children:[e.jsx(Q,{className:"w-full",children:e.jsx(z,{placeholder:"Select status"})}),e.jsx(J,{children:As.map(c=>e.jsx(G,{value:c.value,children:c.label},c.value))})]})})}})]})]}),s==="Proactive"&&e.jsx(w,{control:t.control,name:"trigger.within",render:({field:p})=>e.jsxs(b,{children:[e.jsx(S,{children:"For"}),e.jsx(y,{children:e.jsx(se,{value:p.value??0,onChange:p.onChange,min:0})}),e.jsx(C,{})]})})]})},Ms=()=>{const t=_(),s=t.watch("triggerTemplate"),n=t.watch("trigger"),[r,a]=m.useState("Form"),[o,l]=m.useState(""),[h,p]=m.useState(void 0),d=m.useCallback(()=>JSON.stringify(n,null,2),[n]);m.useEffect(()=>{r==="Form"&&l(d())},[r,d]);const c=m.useCallback(f=>{try{const j=JSON.parse(f);return{valid:!0,trigger:Pe.parse(j)}}catch(j){return j instanceof SyntaxError?{valid:!1,error:"Invalid JSON syntax"}:j instanceof Re?{valid:!1,error:j.errors[0]?.message??"Invalid trigger configuration"}:{valid:!1,error:"Unknown error"}}},[]),x=m.useCallback(f=>{if(r!==f){if(f==="Form"){const j=c(o);if(!j.valid){p(j.error);return}j.trigger&&t.setValue("trigger",j.trigger),p(void 0)}else l(d()),p(void 0);a(f)}},[r,o,c,t,d]),u=m.useCallback(f=>{l(f);const j=c(f);j.valid&&j.trigger&&(t.setValue("trigger",j.trigger),p(void 0))},[c,t]),i=f=>{const j=vs(f);t.setValue("trigger",j),l(JSON.stringify(j,null,2)),p(void 0)};return e.jsxs("div",{className:"space-y-6",children:[e.jsx(gs,{onTemplateChange:i}),s&&e.jsx(ps,{value:r,onValueChange:x,formContent:e.jsx(Vs,{template:s}),jsonContent:e.jsx(xs,{value:o,onChange:u,error:h})})]})},Vs=({template:t})=>{switch(t){case"flow-run-state":return e.jsx(ms,{});case"deployment-status":return e.jsx(ns,{});case"work-pool-status":return e.jsx(Ns,{});case"work-queue-status":return e.jsx(Rs,{});case"custom":return e.jsx(Jt,{});default:return null}},ce=["Trigger","Actions","Details"],Os={actions:[{type:void 0}],trigger:{type:"event",posture:"Reactive",threshold:1,within:0}},Hs=({defaultValues:t={},onSubmit:s,submitLabel:n="Save",isSubmitting:r=!1})=>{const o=!!(t&&Object.keys(t).length>0)?new Set([0,1,2]):new Set([0]),l=ut(ce.length,0,o),h=Ye({resolver:Je(ht),defaultValues:{...Os,...t}}),p=ce[l.currentStep],d={Trigger:{render:()=>e.jsx(Ms,{}),trigger:()=>h.trigger("trigger")},Actions:{render:()=>e.jsx(Ot,{}),trigger:()=>h.trigger("actions")},Details:{render:()=>e.jsx(Wt,{}),trigger:()=>h.trigger(["description","name"])}},c=async x=>{await d[x].trigger()&&l.incrementStep()};return e.jsx(it,{...h,children:e.jsx("form",{onSubmit:x=>{h.handleSubmit(s)(x)},children:e.jsxs("div",{className:"flex flex-col gap-8",children:[e.jsx(dt,{steps:ce,currentStepNum:l.currentStep,onClick:x=>l.changeStep(x.stepNum),completedSteps:l.completedStepsSet,visitedSteps:l.visitedStepsSet}),e.jsxs(at,{className:"p-4 pt-8",children:[e.jsxs(lt,{children:[d[p].render(),e.jsx(C,{children:h.formState.errors.root?.message})]}),e.jsxs(ct,{className:"mt-6 flex gap-2 justify-end",children:[e.jsx(U,{type:"button",variant:"outline",children:e.jsx(ze,{to:"/automations",children:"Cancel"})}),e.jsx(U,{disabled:l.isStartingStep,type:"button",variant:"outline",onClick:l.decrementStep,children:"Previous"}),l.isFinalStep?e.jsx(U,{type:"submit",loading:r,children:n},"save"):e.jsx(U,{type:"button",onClick:()=>{c(p)},children:"Next"},"next")]})]})]})})})};export{Hs as A};
|
|
2
|
-
//# sourceMappingURL=automation-wizard-DeT-tz5i.js.map
|