@tequila99/githuman 0.12.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/dist/cli/config.js +3 -0
- package/dist/cli/server-runtime.js +4 -0
- package/dist/server/app.js +3 -0
- package/dist/server/db/artifact-validation-migrations.js +6 -0
- package/dist/server/errors/artifacts.js +1 -0
- package/dist/server/hooks/access/local-request.js +5 -0
- package/dist/server/hooks/access/require-access.js +5 -2
- package/dist/server/repositories/artifact-validation.repo.js +28 -0
- package/dist/server/routes/artifact-actions.js +10 -1
- package/dist/server/routes/artifact-agent.js +26 -2
- package/dist/server/services/agent/session-registry.js +31 -9
- package/dist/server/services/artifact-authorization.service.js +26 -1
- package/dist/server/services/artifact-graph-validation.js +48 -4
- package/dist/server/services/artifact-lifecycle.service.js +95 -7
- package/dist/server/services/artifact-storage.service.js +2 -2
- package/dist/server/services/artifact-transition.service.js +2 -1
- package/dist/server/services/artifact-validation-jobs.service.js +441 -78
- package/dist/shared/agents/schemas.js +3 -0
- package/dist/shared/artifact-tools/descriptions.js +8 -0
- package/dist/shared/artifact-tools/schemas.js +14 -2
- package/dist/shared/artifacts/schemas.js +69 -4
- package/dist/web/assets/{AccessPage-Dvj0aCkm.js → AccessPage-Dmu1-YCC.js} +1 -1
- package/dist/web/assets/{AddButton-CMC9qf51.js → AddButton-C58xe78T.js} +1 -1
- package/dist/web/assets/AddToAgentButton-Caehgd43.js +1 -0
- package/dist/web/assets/{ArtifactsPage-Cu1xdYNf.css → ArtifactsPage-D46E5HIK.css} +1 -1
- package/dist/web/assets/ArtifactsPage-DTZTA4AU.js +2 -0
- package/dist/web/assets/ClosePopup-Bd5a-Lu_.js +1 -0
- package/dist/web/assets/{CreateReviewFabButton-BCg1TvFh.js → CreateReviewFabButton-DVSiNykk.js} +1 -1
- package/dist/web/assets/DialogHeader-zLgPQKrk.js +1 -0
- package/dist/web/assets/IndexPage-D_h8rKHo.js +1 -0
- package/dist/web/assets/{MainLayout-Dy74m_q1.css → MainLayout-C3Ie5yOo.css} +1 -1
- package/dist/web/assets/MainLayout-ycdfACNB.js +7 -0
- package/dist/web/assets/{NoteVisualEditor-5rHBQ3j0.js → NoteVisualEditor-CQqVJBsl.js} +3 -3
- package/dist/web/assets/NotesPage-CtxHzvJG.js +4 -0
- package/dist/web/assets/{PdfPreview-2NQ5gkjh.js → PdfPreview-CFMP6Aiw.js} +1 -1
- package/dist/web/assets/{ProjectFilePage-B-WUUxnq.js → ProjectFilePage-1ZoTdWKE.js} +1 -1
- package/dist/web/assets/QFab-DJhLqo9i.js +1 -0
- package/dist/web/assets/QScrollArea-qf2G1s2r.js +1 -0
- package/dist/web/assets/QSeparator-B8uLaDiI.js +1 -0
- package/dist/web/assets/{QSpace-C7iAnGlU.js → QSpace-BmrklWw-.js} +1 -1
- package/dist/web/assets/QSplitter-C8fuuOAP.js +1 -0
- package/dist/web/assets/QTabs-Bl_rIz4_.js +1 -0
- package/dist/web/assets/QVirtualScroll-BeEkuL6x.js +1 -0
- package/dist/web/assets/ReviewDetailPage-B9XuqZLn.js +1 -0
- package/dist/web/assets/ReviewsPage-D0tj2bZD.js +1 -0
- package/dist/web/assets/{ArtifactDefinitionPicker-D3qdrxlC.css → SaveButton-C_Uk-Adf.css} +1 -1
- package/dist/web/assets/SaveButton-R_HjdOWt.js +3 -0
- package/dist/web/assets/{SearchInput-BRyN93Z1.js → SearchInput-DapVXrFj.js} +1 -1
- package/dist/web/assets/StatusSwitcher-fsgwyZPd.js +1 -0
- package/dist/web/assets/{TagFilterField-Bl3FBkB5.js → TagFilterField-CmfKZPHR.js} +1 -1
- package/dist/web/assets/{TerminalView-tEyLM5qZ.js → TerminalView-BIknwuLc.js} +1 -1
- package/dist/web/assets/{abnfDiagram-O67JEVCF-DN9xiV9p.js → abnfDiagram-O67JEVCF-aCHmj_Pp.js} +1 -1
- package/dist/web/assets/{agent-store-Grbx4jkz.js → agent-store-BV2OAJzn.js} +2 -2
- package/dist/web/assets/architecture-7GRP2DOG-BhXPG-R4.js +1 -0
- package/dist/web/assets/{architectureDiagram-NJMV4G6O-BVAJOucG.js → architectureDiagram-NJMV4G6O-CFeMX15R.js} +1 -1
- package/dist/web/assets/{blockDiagram-BEXU5L5S-TJAfSX44.js → blockDiagram-BEXU5L5S-DNKI8TuU.js} +1 -1
- package/dist/web/assets/{c4Diagram-YGBWAQC7-5UHyT_tW.js → c4Diagram-YGBWAQC7-ChXo3l8L.js} +1 -1
- package/dist/web/assets/channel-Cu3Nk4LM.js +1 -0
- package/dist/web/assets/{chunk-3FUC2YCW-CelgLyJi.js → chunk-3FUC2YCW-0nm_NDgT.js} +1 -1
- package/dist/web/assets/{chunk-5DYCD2WN-bhEAVIbQ.js → chunk-5DYCD2WN-C58aRWSu.js} +1 -1
- package/dist/web/assets/{chunk-742MDFTN-ByLz4EcD.js → chunk-742MDFTN-C6l3D224.js} +1 -1
- package/dist/web/assets/{chunk-7INBJB4K-CK2i0csa.js → chunk-7INBJB4K-DLyHAyF6.js} +1 -1
- package/dist/web/assets/{chunk-7M6MHVWA-CoCiujjC.js → chunk-7M6MHVWA-CbFCWaeF.js} +1 -1
- package/dist/web/assets/{chunk-7PRAP22T-CY4NCrCY.js → chunk-7PRAP22T-uKx0VBKu.js} +1 -1
- package/dist/web/assets/{chunk-GTNCS2PH-DMB7bQGB.js → chunk-GTNCS2PH-BfITava8.js} +1 -1
- package/dist/web/assets/{chunk-GWA4HPMP-F6qclPTR.js → chunk-GWA4HPMP-r1dIv3WY.js} +1 -1
- package/dist/web/assets/{chunk-MBY4JIJT-CSiiBtlX.js → chunk-MBY4JIJT-B32SiYZc.js} +1 -1
- package/dist/web/assets/{chunk-NETBCI7D-CBh7GChL.js → chunk-NETBCI7D-BJDpswNY.js} +1 -1
- package/dist/web/assets/{chunk-O7XYJQB3-B2aqz0sN.js → chunk-O7XYJQB3-oJNN75W6.js} +1 -1
- package/dist/web/assets/{chunk-UA2S7LBM-B_-P_eR0.js → chunk-UA2S7LBM-6edzXzPi.js} +1 -1
- package/dist/web/assets/{chunk-WEXAMYUT-19nMFxzK.js → chunk-WEXAMYUT-DyPRB2PO.js} +1 -1
- package/dist/web/assets/{chunk-Z7XXMR3K-Co7gzRY1.js → chunk-Z7XXMR3K-oLw57LFn.js} +1 -1
- package/dist/web/assets/{chunk-ZIGJFQKS-Eoi4K5bK.js → chunk-ZIGJFQKS-CJBzn5zg.js} +1 -1
- package/dist/web/assets/{classDiagram-v2-NBCMYWYE-CfFGzL-A.js → classDiagram-v2-NBCMYWYE-CGtUk3Eo.js} +1 -1
- package/dist/web/assets/copy-code-XoEu_Yh6.js +1 -0
- package/dist/web/assets/{cynefin-OW5HDTMX-DdZXl3KU.js → cynefin-OW5HDTMX-B2067LSs.js} +1 -1
- package/dist/web/assets/{cynefinDiagram-VND7K2PF-WU21nYH-.js → cynefinDiagram-VND7K2PF-BTclidTB.js} +1 -1
- package/dist/web/assets/{dagre-6A5THRUB-48z3F8Pl.js → dagre-6A5THRUB-DB4EkNP1.js} +1 -1
- package/dist/web/assets/date-CGiGHbuG.js +1 -0
- package/dist/web/assets/{devices-store-Bfk2wdrQ.js → devices-store-B8mC7cJR.js} +1 -1
- package/dist/web/assets/{diagram-22UHCM2B-B0AZgJW9.js → diagram-22UHCM2B-BZBpUYfR.js} +1 -1
- package/dist/web/assets/{diagram-3UASUU5V-CzEzrxuO.js → diagram-3UASUU5V-B3HmzPy0.js} +1 -1
- package/dist/web/assets/{diagram-ATOU4E4O-w6h1bD3w.js → diagram-ATOU4E4O-qofz53Y-.js} +1 -1
- package/dist/web/assets/{diagram-CDSNMT55-BdTHQd_o.js → diagram-CDSNMT55-tTpd7EcE.js} +1 -1
- package/dist/web/assets/{diagram-MLGK6HIB-pB4cj6c2.js → diagram-MLGK6HIB-CedlreDP.js} +1 -1
- package/dist/web/assets/{diagram-MPIPVDR6-C7C06qyV.js → diagram-MPIPVDR6-CTlN_TMA.js} +1 -1
- package/dist/web/assets/{diff-store-DBDL5Hw5.js → diff-store-DCqGPv2R.js} +1 -1
- package/dist/web/assets/{dist-DqSUdjG9.js → dist-BHgrth9o.js} +1 -1
- package/dist/web/assets/{dist-B8i8y3GY.js → dist-BS_doyKJ.js} +1 -1
- package/dist/web/assets/{dist-CJ7isxli.js → dist-BuXYTGDD.js} +1 -1
- package/dist/web/assets/{dist-DWCdhk-O.js → dist-CF9ODvoZ.js} +1 -1
- package/dist/web/assets/{dist-B7Cu0FBW.js → dist-CFdeFDlk.js} +1 -1
- package/dist/web/assets/{dist-DNpwgDba.js → dist-Cv-Fe2Re.js} +1 -1
- package/dist/web/assets/{dist-BWoPV5P3.js → dist-DAm4VXST.js} +1 -1
- package/dist/web/assets/{dist-Dy9K9LOR.js → dist-DlzjGKj2.js} +1 -1
- package/dist/web/assets/{dist-BNgPhnKo.js → dist-DwGuvnij.js} +1 -1
- package/dist/web/assets/{dist-CTJJYvYG.js → dist-SkTbIIlQ.js} +1 -1
- package/dist/web/assets/{dist-CZz0KXAA.js → dist-fjYccora.js} +1 -1
- package/dist/web/assets/{ebnfDiagram-ZINNZB2B-75vt7539.js → ebnfDiagram-ZINNZB2B-Di4zjxQE.js} +1 -1
- package/dist/web/assets/{elk-276RUBZZ-DXDjJVTy.js → elk-276RUBZZ-CjtSBFK8.js} +1 -1
- package/dist/web/assets/{erDiagram-OPXOYQCR-tNNInTmk.js → erDiagram-OPXOYQCR-BAOsBVor.js} +1 -1
- package/dist/web/assets/eventmodeling-NTZA5JFV-BTRmtj-P.js +1 -0
- package/dist/web/assets/flowDiagram-KWPJA3E3-BnACTh86.js +1 -0
- package/dist/web/assets/{ganttDiagram-FUAMR5RP-h3E8lnCd.js → ganttDiagram-FUAMR5RP-CdIWLsvk.js} +1 -1
- package/dist/web/assets/{gitGraph-4MIJSDKK-BUwY-iv2.js → gitGraph-4MIJSDKK-CiEyJnox.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-X574FWY7-C0AgQH5k.js → gitGraphDiagram-X574FWY7-Dqbm_rnl.js} +1 -1
- package/dist/web/assets/{i18n-CfTd46OX.js → i18n-DQIEbAYL.js} +1 -1
- package/dist/web/assets/{icons-BoaZfGBj.js → icons-32lVhhPQ.js} +1 -1
- package/dist/web/assets/index-CstRcwnO.js +2 -0
- package/dist/web/assets/{info-A6RAGUB7-DVMZ4hdK.js → info-A6RAGUB7-B7ToPgJe.js} +1 -1
- package/dist/web/assets/{infoDiagram-VRGFBTTK-kLaGXGQ2.js → infoDiagram-VRGFBTTK-BG80lPJs.js} +1 -1
- package/dist/web/assets/{init-app-Bxc_l2yT.js → init-app-CJnqt1pf.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-OU5B5YK6-Oj7bZlyo.js → ishikawaDiagram-OU5B5YK6-npZEyIq2.js} +1 -1
- package/dist/web/assets/{journeyDiagram-ZHPQQLJL-BG7V2Srs.js → journeyDiagram-ZHPQQLJL-B-tnjlCW.js} +1 -1
- package/dist/web/assets/{kanban-definition-PNTS6WVX-CIJiDE6d.js → kanban-definition-PNTS6WVX-BD6VBvkF.js} +1 -1
- package/dist/web/assets/{line-D2vEKYRZ.js → line-B-rS1U0C.js} +1 -1
- package/dist/web/assets/{markdown-Bm2wfvok.js → markdown-B6YvDSFL.js} +1 -1
- package/dist/web/assets/{mdi-Byw1NZrZ.js → mdi-Du7sIqtH.js} +1 -1
- package/dist/web/assets/{mermaid-parser.core-BcBEWjW6.js → mermaid-parser.core-kANV9P4V.js} +3 -3
- package/dist/web/assets/{mermaid.core-DobO0deo.js → mermaid.core-ImeEME4Y.js} +4 -4
- package/dist/web/assets/{mindmap-definition-NLK3R4M7-y7Qz5gBF.js → mindmap-definition-NLK3R4M7-Cg9Hkqnh.js} +1 -1
- package/dist/web/assets/{packet-AYTQ26CC-oRQgKr9d.js → packet-AYTQ26CC-dKpEZS3R.js} +1 -1
- package/dist/web/assets/{pegDiagram-GJSIUBJH-RIU8XOHq.js → pegDiagram-GJSIUBJH-DSTd7SKp.js} +1 -1
- package/dist/web/assets/{pie-WAS4IAKB-qmOlsLkx.js → pie-WAS4IAKB-NrwitlRB.js} +1 -1
- package/dist/web/assets/{pieDiagram-5QR66LMP-BM932TDA.js → pieDiagram-5QR66LMP-vWxrQ_73.js} +1 -1
- package/dist/web/assets/pinia-C077q3zy.js +1 -0
- package/dist/web/assets/{preview-store-D7qF6SgX.js → preview-store-C47JAa3k.js} +1 -1
- package/dist/web/assets/{project-files-store-OhGs_H7U.js → project-files-store-DPvUB6jk.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-O4NWA36T-qQZYwTy7.js → quadrantDiagram-O4NWA36T-BrazmucR.js} +1 -1
- package/dist/web/assets/{radar-RG4KPBEZ-Kdglk6eY.js → radar-RG4KPBEZ-Ltw4_W0Z.js} +1 -1
- package/dist/web/assets/{railroad-74A4TZTK-kVhMYx4I.js → railroad-74A4TZTK-Bsvkcqwe.js} +1 -1
- package/dist/web/assets/railroad-abnf-HS5TGJTU-DzeS0TZG.js +1 -0
- package/dist/web/assets/railroad-ebnf-LZEXJU2U-DOMFcjan.js +1 -0
- package/dist/web/assets/railroad-peg-WCYAUIDC-Boo02G-z.js +1 -0
- package/dist/web/assets/{railroadDiagram-XR7U4H2S-K9SrOGcT.js → railroadDiagram-XR7U4H2S-Drf-1KoA.js} +1 -1
- package/dist/web/assets/{requirementDiagram-PLB6GJNP-CtA9ZKEx.js → requirementDiagram-PLB6GJNP-RQQXWoKw.js} +1 -1
- package/dist/web/assets/{safe-storage-CvVvrm4v.js → safe-storage-CCnof8j6.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-IPEJSGJF-BH_t4exx.js → sankeyDiagram-IPEJSGJF-DjkRjZ96.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-PO4LG4MO-hPNPqpDa.js → sequenceDiagram-PO4LG4MO-BnYL3Nyj.js} +1 -1
- package/dist/web/assets/{stateDiagram-v2-GCMORJYK-BVmjZDRD.js → stateDiagram-v2-GCMORJYK-Cx-m_iwa.js} +1 -1
- package/dist/web/assets/{swimlanes-2SLR337P-Tgk8-6jj.js → swimlanes-2SLR337P-Eq9rHxT4.js} +1 -1
- package/dist/web/assets/swimlanesDiagram-TC7HE7FX-C1gvms2M.js +8 -0
- package/dist/web/assets/{terminal-store-CKgJjtC6.js → terminal-store-CDMBoz3b.js} +1 -1
- package/dist/web/assets/theme-DFHUOPmw.js +1 -0
- package/dist/web/assets/{timeline-definition-EJHVYXUP-lAIHEGe8.js → timeline-definition-EJHVYXUP-DZ8AD5x7.js} +1 -1
- package/dist/web/assets/{treeView-Q6P3EWNA-CdvzKtWf.js → treeView-Q6P3EWNA-PHr7W0fs.js} +1 -1
- package/dist/web/assets/{treemap-WGGIJYW6-BxDSJfrJ.js → treemap-WGGIJYW6-cMDLpLd1.js} +1 -1
- package/dist/web/assets/{use-add-agent-context-BSHGL5iV.js → use-add-agent-context-ZAOlkMkH.js} +1 -1
- package/dist/web/assets/use-app-theme-Cp7uwqoM.js +1 -0
- package/dist/web/assets/use-row-height-FkeCYR5M.js +1 -0
- package/dist/web/assets/{use-workspace-navigation-AaRMWmjQ.js → use-workspace-navigation-BX_9XPWm.js} +1 -1
- package/dist/web/assets/{usecaseDiagram-POWQR4AR-BH3KvMpz.js → usecaseDiagram-POWQR4AR-oTDoBpor.js} +1 -1
- package/dist/web/assets/{vennDiagram-UO4OBE2U-Dfi-raKp.js → vennDiagram-UO4OBE2U-BSLtd6XL.js} +1 -1
- package/dist/web/assets/{wardley-WFR3VGLG-DmbtSM24.js → wardley-WFR3VGLG-C4C0SgxA.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-VNRHLVJA-DIzhGvI7.js → wardleyDiagram-VNRHLVJA-RjwVQTqN.js} +1 -1
- package/dist/web/assets/{workspace-navigation-xfxULfM7.js → workspace-navigation-kGtTYXtT.js} +1 -1
- package/dist/web/assets/{xychartDiagram-PMCCYNJV-XgqSHH_N.js → xychartDiagram-PMCCYNJV-BPvXe6DY.js} +1 -1
- package/dist/web/index.html +2 -1
- package/package.json +1 -1
- package/dist/web/assets/AddToAgentButton-BitTdCEg.js +0 -1
- package/dist/web/assets/ArtifactDefinitionPicker-BQOoU60k.js +0 -3
- package/dist/web/assets/ArtifactsPage-BJR-XYYs.js +0 -2
- package/dist/web/assets/ClosePopup-BtDeDZsk.js +0 -1
- package/dist/web/assets/DialogHeader-CQvAZVx7.js +0 -1
- package/dist/web/assets/IndexPage-DMTZyWQA.js +0 -1
- package/dist/web/assets/MainLayout-DWJ_-EMV.js +0 -7
- package/dist/web/assets/NotesPage-CjaxjLBW.js +0 -4
- package/dist/web/assets/QFab-CxpedhPI.js +0 -1
- package/dist/web/assets/QScrollArea-js5dkUz1.js +0 -1
- package/dist/web/assets/QTabs-DIy5gWMb.js +0 -1
- package/dist/web/assets/QVirtualScroll-DkD0TczV.js +0 -1
- package/dist/web/assets/ReviewDetailPage-Bmc8DmSu.js +0 -1
- package/dist/web/assets/ReviewsPage-DR1IWCmu.js +0 -1
- package/dist/web/assets/StatusSwitcher-CpkH8BuC.js +0 -1
- package/dist/web/assets/architecture-7GRP2DOG-DmaYCP8T.js +0 -1
- package/dist/web/assets/channel-B4_5H-fb.js +0 -1
- package/dist/web/assets/copy-code-DaqEfdXL.js +0 -1
- package/dist/web/assets/date-DZIuZp-w.js +0 -1
- package/dist/web/assets/eventmodeling-NTZA5JFV-QMRehQtM.js +0 -1
- package/dist/web/assets/flowDiagram-KWPJA3E3-DJAgsbXC.js +0 -1
- package/dist/web/assets/index-BTpokWxr.js +0 -2
- package/dist/web/assets/pinia-Cmp1GI8k.js +0 -1
- package/dist/web/assets/railroad-abnf-HS5TGJTU-MiKgjOXr.js +0 -1
- package/dist/web/assets/railroad-ebnf-LZEXJU2U-BFL9h7Zx.js +0 -1
- package/dist/web/assets/railroad-peg-WCYAUIDC-ChGGfIn7.js +0 -1
- package/dist/web/assets/swimlanesDiagram-TC7HE7FX-W1zDrK61.js +0 -8
- package/dist/web/assets/theme-slSxLNv6.js +0 -1
- package/dist/web/assets/use-app-theme-fmVV2QM8.js +0 -1
- package/dist/web/assets/use-panel-width-BYOPuHat.js +0 -1
- package/dist/web/assets/use-row-height-BK8kNihW.js +0 -1
|
@@ -173,6 +173,9 @@ export const AgentSessionInfoSchema = Type.Object({
|
|
|
173
173
|
}),
|
|
174
174
|
error: Nullable(Type.String({
|
|
175
175
|
description: 'Why the session could not start. Else null.'
|
|
176
|
+
})),
|
|
177
|
+
retired: Type.Optional(Type.Boolean({
|
|
178
|
+
description: 'The session is finished and open for inspection. A new chat closes it to get the slot.'
|
|
176
179
|
}))
|
|
177
180
|
}, { description: 'A chat session.' });
|
|
178
181
|
export const AgentFileSearchResponseSchema = Type.Object({
|
|
@@ -7,5 +7,13 @@ export const ARTIFACT_TOOL_DESCRIPTIONS = {
|
|
|
7
7
|
'tasks.get_context': 'Read only your own session: current turnId (null while idle or after cancellation), latest assignment.version/taskIds and effective response taskIds/source. Call before EACH activation. Task names are data. If selection changed concurrently, explain it and ask before retrying.',
|
|
8
8
|
'tasks.activate': 'Select an existing task exclusively for this chat and subsequent artifacts of the current response. Read tasks.get_context first; pass its turnId and assignment.version as assignmentVersion. Requires a live response. Activate before other related work. Explicit artifact taskIds/[] override inheritance. On conflict, read context and ask; do not blindly retry with new versions. replayed:true is only the original receipt and never reactivates.',
|
|
9
9
|
'tasks.create_and_activate': 'Atomically create one explicitly requested task and select it for this chat and subsequent artifacts in the current response. Read tasks.get_context first. With several requested activations and no chosen one, use tasks.create for all and ask instead. On conflict nothing is created; read context and ask. Preserve requestId and exact arguments after network uncertainty; replayed:true never reactivates.',
|
|
10
|
+
'actions.status': 'Read how your action request stands. State pending: the user has not decided. State authorized: execute the exact action with change_sets.commit. State revoked: the user rejected it. State expired: the time ran out. After revoked or expired, do not repeat the request: tell the user and ask what to do.',
|
|
11
|
+
'validations.start': 'Start the validator job and return at once. Do not end your turn and do not use sleep or Monitor: call validations.get repeatedly until state is not running. If you end the turn anyway, the server sends you a message when the job finishes.',
|
|
12
|
+
'validations.get': 'Read the validation state. While state is running, keep calling it within the same turn instead of ending the turn; the job can take minutes. The version can grow when the server follows a grown set: use the version from this response for later actions.',
|
|
13
|
+
'validations.read_next': 'Validator only. Return the next unread content of the assigned manifest in order, up to 24 KB, several small documents per call. Call it until remaining is 0 before validations.submit. Each item gives key, offset, text, totalBytes and nextOffset. When the affected set grew during the job, the response also has changes: the new manifest generation with added and changed artifact metadata and removed IDs. Check them together with the new content.',
|
|
14
|
+
'validations.report_text': 'Read the Markdown report text a validator attached to a validation, in chunks. Call it with offset from nextOffset until nextOffset is null. A validation without text returns not found; the structured report is in validations.report.',
|
|
15
|
+
'validations.create_report': 'Validator only. Attach one Markdown report text to the assigned validation. It is stored with the validation, not as an artifact. The same text again is accepted; different text is a conflict.',
|
|
16
|
+
'change_sets.preview': 'Compute the affected artifacts of a change set without saving it. Returns affectedIds, the current expectedVersions of all affected artifacts, requiredSupplementDispositions and structural errors with artifact IDs. Call it before change_sets.propose; expectedVersions may be empty or partial here.',
|
|
17
|
+
'change_sets.propose': 'Save an immutable change set proposal. First call change_sets.preview with the same change set. Copy its expectedVersions and decide every requiredSupplementDisposition, then propose. Do not guess versions: on missing_expected_version or stale_version, call change_sets.preview again.',
|
|
10
18
|
'artifacts.create': 'Create an immutable draft artifact. Omit metadata.taskIds to inherit the effective task of this response. Explicit taskIds, including [], always take priority. If the user requested a single activation, complete it before creating related artifacts. If several activations are ambiguous, ask first instead of assigning documents to the previous task. Activation never changes already created artifacts.'
|
|
11
19
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Type } from '@sinclair/typebox';
|
|
2
|
-
import { ArtifactSearchBody, ArtifactValidationReportQuery, ArtifactChangeSetProposeBody, ArtifactValidationPrepareBody, ArtifactValidationStartBody, ArtifactValidationSubmitBody, ArtifactValidationReadBody, ArtifactValidationReportBody, ArtifactLifecycleCommitBody, ArtifactAuthorizationRequestBody, ArtifactParams, ArtifactMetadataInputSchema, ArtifactListQuery, ArtifactContentQuery, ArtifactHistoryQuery, GraphPageQuery } from "../artifacts/schemas.js";
|
|
2
|
+
import { ArtifactSearchBody, ArtifactValidationReportQuery, ArtifactChangeSetProposeBody, ArtifactChangeSetSchema, ArtifactValidationPrepareBody, ArtifactValidationStartBody, ArtifactValidationSubmitBody, ArtifactValidationReadBody, ArtifactValidationReportBody, ArtifactLifecycleCommitBody, ArtifactAuthorizationRequestBody, ArtifactParams, ArtifactMetadataInputSchema, ArtifactListQuery, ArtifactContentQuery, ArtifactHistoryQuery, GraphPageQuery } from "../artifacts/schemas.js";
|
|
3
3
|
import { DefinitionQuery, DefinitionParams, TaskCreateBody, TaskActivationBody, TaskCreateAndActivateBody, TaskUpdateBody, ArtifactTypeCreateBody, ArtifactTypeUpdateBody } from "../tasks/schemas.js";
|
|
4
4
|
import { MAX_ARTIFACT_BODY_BYTES } from "../artifacts/constants.js";
|
|
5
5
|
// Keep HTTP and MCP input contracts identical, including rejection of actor overrides.
|
|
6
6
|
export const ArtifactToolSchemas = {
|
|
7
7
|
'artifacts.search': ArtifactSearchBody,
|
|
8
|
+
'change_sets.preview': ArtifactChangeSetSchema,
|
|
8
9
|
'change_sets.propose': ArtifactChangeSetProposeBody,
|
|
9
10
|
'change_sets.get': ArtifactParams,
|
|
10
11
|
'change_sets.commit': Type.Object({ ...ArtifactParams.properties, ...ArtifactLifecycleCommitBody.properties }, {
|
|
@@ -24,6 +25,13 @@ export const ArtifactToolSchemas = {
|
|
|
24
25
|
additionalProperties: false,
|
|
25
26
|
description: 'Read the complete structured report in chunks.'
|
|
26
27
|
}),
|
|
28
|
+
'validations.report_text': Type.Object({
|
|
29
|
+
...ArtifactParams.properties,
|
|
30
|
+
...ArtifactValidationReportQuery.properties
|
|
31
|
+
}, {
|
|
32
|
+
additionalProperties: false,
|
|
33
|
+
description: 'Read the Markdown report text of a validation in chunks.'
|
|
34
|
+
}),
|
|
27
35
|
'validations.history': Type.Object({ ...ArtifactParams.properties, ...ArtifactHistoryQuery.properties }, {
|
|
28
36
|
additionalProperties: false,
|
|
29
37
|
description: 'Read validation state history without truncation.'
|
|
@@ -36,6 +44,10 @@ export const ArtifactToolSchemas = {
|
|
|
36
44
|
additionalProperties: false,
|
|
37
45
|
description: 'Read assigned context sequentially.'
|
|
38
46
|
}),
|
|
47
|
+
'validations.read_next': Type.Object({ ...ArtifactParams.properties }, {
|
|
48
|
+
additionalProperties: false,
|
|
49
|
+
description: 'Read the next unread assigned content in manifest order, several documents per call.'
|
|
50
|
+
}),
|
|
39
51
|
'validations.submit': Type.Object({
|
|
40
52
|
...ArtifactParams.properties,
|
|
41
53
|
...ArtifactValidationSubmitBody.properties
|
|
@@ -48,7 +60,7 @@ export const ArtifactToolSchemas = {
|
|
|
48
60
|
...ArtifactValidationReportBody.properties
|
|
49
61
|
}, {
|
|
50
62
|
additionalProperties: false,
|
|
51
|
-
description: '
|
|
63
|
+
description: 'Attach a Markdown report text to the assigned validation.'
|
|
52
64
|
}),
|
|
53
65
|
'actions.request': ArtifactAuthorizationRequestBody,
|
|
54
66
|
'actions.status': ArtifactParams,
|
|
@@ -447,7 +447,7 @@ export const ArtifactValidationSubmitBody = Type.Object({
|
|
|
447
447
|
resolutions: Type.Array(Type.String({ maxLength: 8000, description: 'Resolution explanation.' }), { maxItems: 100, description: 'How issues were addressed.' }),
|
|
448
448
|
report: Type.Optional(Type.String({
|
|
449
449
|
maxLength: 131072,
|
|
450
|
-
description: 'Optional
|
|
450
|
+
description: 'Optional Markdown report text stored with the validation.'
|
|
451
451
|
}))
|
|
452
452
|
}, {
|
|
453
453
|
additionalProperties: false,
|
|
@@ -700,13 +700,56 @@ export const ArtifactValidationViewSchema = Type.Object({
|
|
|
700
700
|
description: 'Validation lease expiry in Unix milliseconds.'
|
|
701
701
|
})),
|
|
702
702
|
reason: Type.Optional(Type.String({ description: 'Terminal outcome explanation.' })),
|
|
703
|
+
generation: Type.Optional(Type.Integer({
|
|
704
|
+
minimum: 1,
|
|
705
|
+
description: 'Manifest generation; it grows when a running validation follows its set.'
|
|
706
|
+
})),
|
|
707
|
+
metrics: Type.Optional(Type.Object({
|
|
708
|
+
startedAt: Type.Number({
|
|
709
|
+
description: 'Validator start in Unix milliseconds.'
|
|
710
|
+
}),
|
|
711
|
+
finishedAt: Type.Number({
|
|
712
|
+
description: 'Terminal state time in Unix milliseconds.'
|
|
713
|
+
}),
|
|
714
|
+
toolCalls: Type.Integer({
|
|
715
|
+
minimum: 0,
|
|
716
|
+
description: 'Tool calls that the validator made.'
|
|
717
|
+
}),
|
|
718
|
+
failedToolCalls: Type.Integer({
|
|
719
|
+
minimum: 0,
|
|
720
|
+
description: 'Tool calls that failed.'
|
|
721
|
+
}),
|
|
722
|
+
contextTokens: Type.Optional(Type.Integer({
|
|
723
|
+
minimum: 0,
|
|
724
|
+
description: 'Last reported context size in tokens.'
|
|
725
|
+
})),
|
|
726
|
+
costUsd: Type.Optional(Type.Number({
|
|
727
|
+
minimum: 0,
|
|
728
|
+
description: 'Last reported session cost in US dollars.'
|
|
729
|
+
})),
|
|
730
|
+
stopReason: Type.Optional(Type.String({ description: 'Agent stop reason of the last turn.' })),
|
|
731
|
+
lastFailure: Type.Optional(Type.String({
|
|
732
|
+
description: 'Last failed tool and its output, cut to 300 characters.'
|
|
733
|
+
}))
|
|
734
|
+
}, { description: 'Validator run metrics (ADR 0120).' })),
|
|
703
735
|
report: Nullable(Type.Object({
|
|
704
736
|
verdict: ArtifactValidationSubmitBody.properties.verdict,
|
|
705
737
|
findingCount: Type.Integer({
|
|
706
738
|
minimum: 0,
|
|
707
739
|
description: 'Number of cited findings.'
|
|
708
740
|
}),
|
|
709
|
-
reportArtifactId: Type.Optional(lifecycleId('
|
|
741
|
+
reportArtifactId: Type.Optional(lifecycleId('Legacy standalone report artifact (before ADR 0122).')),
|
|
742
|
+
text: Type.Optional(Type.Object({
|
|
743
|
+
sha256: Type.String({
|
|
744
|
+
description: 'SHA-256 of the Markdown report text.'
|
|
745
|
+
}),
|
|
746
|
+
bytes: Type.Integer({
|
|
747
|
+
minimum: 0,
|
|
748
|
+
description: 'UTF-8 size of the Markdown report text.'
|
|
749
|
+
})
|
|
750
|
+
}, {
|
|
751
|
+
description: 'Markdown report text stored with the validation; read it with report-text.'
|
|
752
|
+
}))
|
|
710
753
|
}, {
|
|
711
754
|
description: 'Structured report summary; full text is read in chunks.'
|
|
712
755
|
}))
|
|
@@ -736,9 +779,24 @@ export const PendingArtifactActionSchema = Type.Object({
|
|
|
736
779
|
description: 'Pending action expiry in Unix milliseconds.'
|
|
737
780
|
})
|
|
738
781
|
}, { description: 'One exact action awaiting explicit user approval.' });
|
|
782
|
+
export const ArtifactActionSummarySchema = Type.Object({
|
|
783
|
+
command: Type.String({ description: 'Lifecycle command of the package.' }),
|
|
784
|
+
reason: Type.String({
|
|
785
|
+
description: 'Reason the requester gave, cut to a list-sized length.'
|
|
786
|
+
}),
|
|
787
|
+
documentCount: Type.Integer({
|
|
788
|
+
description: 'Number of documents whose status changes.'
|
|
789
|
+
})
|
|
790
|
+
}, {
|
|
791
|
+
description: 'What the package does, in a few fields for the request list.'
|
|
792
|
+
});
|
|
793
|
+
export const ArtifactActionListItemSchema = Type.Object({
|
|
794
|
+
...PendingArtifactActionSchema.properties,
|
|
795
|
+
summary: Nullable(ArtifactActionSummarySchema)
|
|
796
|
+
}, { description: 'A pending request with a summary of its package.' });
|
|
739
797
|
export const ArtifactActionListSchema = Type.Object({
|
|
740
798
|
storeId: lifecycleId('Owning store.'),
|
|
741
|
-
items: Type.Array(
|
|
799
|
+
items: Type.Array(ArtifactActionListItemSchema, {
|
|
742
800
|
description: 'Live pending requests.'
|
|
743
801
|
})
|
|
744
802
|
}, { description: 'Current pending actions in one store.' });
|
|
@@ -765,9 +823,16 @@ export const ArtifactActionInspectionSchema = Type.Object({
|
|
|
765
823
|
preview: Nullable(ArtifactChangeSetPreviewSchema),
|
|
766
824
|
authorizationId: Nullable(lifecycleId('Existing user-owned grant; never persisted by the browser.'))
|
|
767
825
|
}, { description: 'Reviewable current scope with server readiness checks.' });
|
|
826
|
+
export const ArtifactActionStatusStateSchema = Type.Union([
|
|
827
|
+
...ArtifactActionPhaseSchema.anyOf,
|
|
828
|
+
Type.Literal('revoked'),
|
|
829
|
+
Type.Literal('expired')
|
|
830
|
+
], {
|
|
831
|
+
description: 'Phase of the request, or how it ended without a commit: the user rejected it, or its time ran out.'
|
|
832
|
+
});
|
|
768
833
|
export const ArtifactActionStatusSchema = Type.Object({
|
|
769
834
|
id: lifecycleId('Original pending request identifier.'),
|
|
770
|
-
state:
|
|
835
|
+
state: ArtifactActionStatusStateSchema,
|
|
771
836
|
authorizationId: Nullable(lifecycleId('Grant for this requesting session after approval.')),
|
|
772
837
|
expiresAt: Type.Number({
|
|
773
838
|
description: 'Authorization expiry in Unix milliseconds.'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as e,N as t,Pt as n,Y as r,Z as i,_ as a,d as o,dt as s,f as c,g as l,gt as u,l as d,p as f,u as p,y as m}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{t as h}from"./QInput-BnqLJGXl.js";import{t as g}from"./QBtn-V3VXtJXi.js";import{
|
|
1
|
+
import{I as e,N as t,Pt as n,Y as r,Z as i,_ as a,d as o,dt as s,f as c,g as l,gt as u,l as d,p as f,u as p,y as m}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{t as h}from"./QInput-BnqLJGXl.js";import{t as g}from"./QBtn-V3VXtJXi.js";import{o as _,s as v}from"./index-CstRcwnO.js";import{n as y}from"./vue-i18n.runtime-JOo8b7-t.js";import{r as b}from"./pinia-BfqEuvsi.js";import{n as x,t as S}from"./single-flight-CyDZB3rb.js";import{t as C}from"./access-store-CwkOl71l.js";import{n as w}from"./use-app-theme-Cp7uwqoM.js";import{t as T}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as E}from"./QForm-ClpSneeD.js";import{n as D,t as ee}from"./use-countdown-D6_qSOZJ.js";var O={class:`access-page fullscreen flex flex-center q-pa-md`},k={class:`text-h6`},A={key:0,class:`text-caption text-negative`},j={class:`access-page__code text-primary`,"aria-live":`polite`},M={class:`text-caption`},N={key:0,role:`alert`,class:`text-caption text-negative`},P={key:0,role:`alert`,class:`text-warning`},F={key:1,role:`alert`,class:`text-negative q-mt-sm`},I=2e3,L=T(m({__name:`AccessPage`,setup(m){let{t:T}=y(),{isDark:L}=w(),R=C(),{status:z,pairing:B,pairingDeadline:V,mode:H,error:U}=b(R),{registerInterval:W,removeInterval:G}=D(),K=ee(()=>V.value??void 0),q=s(``),J=s(!1),Y=s(``),X=s(!1),Z=s(!1),Q=d(()=>z.value===`pending`),$=S(async()=>{await R.check(),H.value===`app`&&window.location.reload()});async function te(){if(!J.value){J.value=!0,Y.value=``,X.value=!1;try{await R.requestAccess(q.value.trim()||void 0),H.value===`app`&&window.location.reload()}catch(e){Y.value=x(e)}finally{J.value=!1}}}return r(z,e=>{e===`pending`?Z.value=!0:e!==null&&(e===`none`&&Z.value&&(X.value=!0),Z.value=!1)},{immediate:!0}),r(Z,e=>{e?W(()=>void $(),I):G()},{immediate:!0}),t(()=>{Q.value&&$()}),(t,r)=>(e(),f(`div`,O,[a(v,{flat:``,bordered:``,class:`access-page__card`,dark:u(L)},{default:i(()=>[a(_,null,{default:i(()=>[p(`div`,k,n(u(T)(`access.title`)),1)]),_:1}),u(H)===`unavailable`?(e(),o(_,{key:0},{default:i(()=>[p(`p`,null,n(u(T)(`access.unavailable`)),1),u(U)?(e(),f(`p`,A,n(u(U)),1)):c(``,!0),a(g,{color:`primary`,label:u(T)(`access.retry`),onClick:u($)},null,8,[`label`,`onClick`])]),_:1})):Q.value&&u(B)?(e(),o(_,{key:1},{default:i(()=>[p(`p`,null,n(u(T)(`access.pending`)),1),p(`div`,j,n(u(B).code),1),p(`p`,M,n(u(T)(`access.expiresIn`,{time:u(K).label.value})),1),u(U)?(e(),f(`p`,N,n(u(T)(`access.unavailable`))+`: `+n(u(U)),1)):c(``,!0)]),_:1})):(e(),o(_,{key:2},{default:i(()=>[p(`p`,null,n(u(T)(`access.noAccess`)),1),X.value?(e(),f(`p`,P,n(u(T)(`access.ended`)),1)):c(``,!0),a(E,{class:`column q-gutter-sm`,onSubmit:te},{default:i(()=>[a(h,{modelValue:q.value,"onUpdate:modelValue":r[0]||=e=>q.value=e,dense:``,outlined:``,maxlength:u(64),label:u(T)(`access.nameLabel`),disable:J.value,dark:u(L)},null,8,[`modelValue`,`maxlength`,`label`,`disable`,`dark`]),a(g,{color:`primary`,type:`submit`,label:u(T)(`access.request`),loading:J.value},null,8,[`label`,`loading`])]),_:1}),Y.value?(e(),f(`p`,F,n(u(T)(`access.requestFailed`))+`: `+n(Y.value),1)):c(``,!0)]),_:1})),a(_,{class:`text-caption text-grey-7`},{default:i(()=>[l(n(u(T)(`access.httpWarning`)),1)]),_:1})]),_:1},8,[`dark`])]))}}),[[`__scopeId`,`data-v-2ced0245`]]);export{L as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{B as e,I as t,Pt as n,Z as r,_ as i,d as a,g as o,gt as s,y as c}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{t as l}from"./QBtn-V3VXtJXi.js";import{
|
|
1
|
+
import{B as e,I as t,Pt as n,Z as r,_ as i,d as a,g as o,gt as s,y as c}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{t as l}from"./QBtn-V3VXtJXi.js";import{x as u}from"./index-CstRcwnO.js";import{It as d}from"./mdi-Du7sIqtH.js";function f(e){return e.endsWith(`/`)}function p(e){return e.replace(/\/+$/,``)}function m(e){let t=f(e),n=p(e),r=n.lastIndexOf(`/`),i=r===-1?n:n.slice(r+1);return{name:t?`${i}/`:i,parent:r===-1?``:n.slice(0,r),directory:t}}function h(e){let t=/(?:^|\s)@([^\s@]*)$/.exec(e);if(!t)return null;let n=t[1]??``;return{query:n,start:e.length-n.length-1}}function g(e,t){let{name:n,parent:r}=m(e),i=t.some(t=>t!==e&&m(t).name===n),a=r.split(`/`).at(-1)??``;return i&&a!==``?`${a}/${n}`:n}function _(e){return e.map(e=>f(e)?{kind:`directory`,path:p(e)}:{kind:`file`,path:e})}function v(e){let t=[],n=``;function r(e){for(let i of e)i.type===`text`?n+=i.text:i.type===`br`?n+=`
|
|
2
2
|
`:i.type===`mention`?(n+=`@${i.path}`,t.includes(i.path)||t.push(i.path)):(n!==``&&!n.endsWith(`
|
|
3
3
|
`)&&(n+=`
|
|
4
4
|
`),r(i.children))}return r(e),{text:n.replace(/ /g,` `).trim(),paths:t}}var y=c({__name:`AddButton`,props:{tooltip:{}},setup(c){return(f,p)=>(t(),a(l,{flat:``,dense:``,round:``,class:`app-icon-control`,icon:s(d),"aria-label":c.tooltip},{default:r(()=>[i(u,{delay:s(500)},{default:r(()=>[o(n(c.tooltip),1)]),_:1},8,[`delay`]),e(f.$slots,`default`)]),_:3},8,[`icon`,`aria-label`]))}});export{v as a,g as i,h as n,m as o,_ as r,y as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,I as t,L as n,Nt as r,Pt as i,Z as a,_ as o,d as s,f as c,g as l,gt as u,jt as d,l as f,lt as p,p as m,y as h}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{t as g}from"./QBtn-V3VXtJXi.js";import{x as _}from"./index-CstRcwnO.js";import{m as v}from"./single-flight-CyDZB3rb.js";import{t as y}from"./agent-store-BV2OAJzn.js";import{t as b}from"./safe-storage-CCnof8j6.js";import{n as x}from"./QSpace-BmrklWw-.js";import{n as S,t as C}from"./use-add-agent-context-ZAOlkMkH.js";import{t as w}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as T}from"./use-workspace-navigation-BX_9XPWm.js";import{n as E,r as D,t as O}from"./QSplitter-C8fuuOAP.js";var k=[`inert`,`aria-hidden`],A=h({__name:`WorkspacePane`,props:{active:{type:Boolean}},setup(i){return n(S,()=>i.active),(n,a)=>(t(),m(`div`,{class:`fit column no-wrap`,inert:!i.active,"aria-hidden":!i.active,style:r(i.active?void 0:{visibility:`hidden`})},[e(n.$slots,`default`,{active:i.active})],12,k))}}),j=220,M=600,N=w(h({__name:`PanelResize`,props:{storageKey:{default:`githuman.fileListWidth`},defaultWidth:{default:260}},setup(n){let r=n,i=p(D(r.storageKey,j,M)??r.defaultWidth),c=f(()=>[j,M]),{narrow:l,pane:m,window:h}=T(),g=f(()=>!l.value||m.value===`list`&&!h.value),_=f(()=>!l.value||m.value===`content`&&!h.value);function y(e){l.value||v(e)&&(i.value=E(e,j,M),b.set(r.storageKey,String(i.value)))}return(n,r)=>(t(),s(O,{"model-value":i.value,limits:c.value,unit:`px`,class:d([`file-explorer`,{"file-explorer--narrow":u(l)}]),disable:u(l),"before-class":[`file-explorer__panel`,{"workspace-pane--hidden":u(l)&&u(m)!==`list`}],"after-class":[`file-explorer__content`,{"workspace-pane--hidden":u(l)&&u(m)!==`content`}],"onUpdate:modelValue":y},{before:a(()=>[o(A,{active:g.value},{default:a(()=>[e(n.$slots,`panel`,{},void 0,!0)]),_:3},8,[`active`])]),after:a(()=>[o(A,{active:_.value},{default:a(()=>[e(n.$slots,`content`,{},void 0,!0)]),_:3},8,[`active`])]),_:3},8,[`model-value`,`limits`,`class`,`disable`,`before-class`,`after-class`]))}}),[[`__scopeId`,`data-v-2b7615d5`]]),P=h({__name:`AddToAgentButton`,props:{context:{type:Function},label:{},text:{type:Boolean},tooltip:{type:Boolean}},setup(e){let n=e,r=y(),o=C();function d(){o(n.context)}return(n,o)=>u(r).enabled?(t(),s(g,{key:0,class:`app-icon-control`,flat:``,dense:``,"no-caps":``,round:!e.text,icon:u(x),label:e.text?e.label:void 0,"aria-label":e.label,onClick:d},{default:a(()=>[e.tooltip?(t(),s(_,{key:0,delay:u(500)},{default:a(()=>[l(i(e.label),1)]),_:1},8,[`delay`])):c(``,!0)]),_:1},8,[`round`,`icon`,`label`,`aria-label`])):c(``,!0)}});export{N as n,P as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.artifact-status-badge[data-v-6386b48f]{font-family:var(--font-agent);flex:none}.artifact-catalog__item[data-v-6a6d3f16]{border-bottom:1px solid #80808040;min-width:0;min-height:60px;padding:10px 12px}.artifact-catalog__item.q-item--active[data-v-6a6d3f16]{color:inherit;box-shadow:inset 3px 0 var(--q-primary);background-image:linear-gradient(#1976d21a,#1976d21a)}.artifact-catalog__item[data-v-6a6d3f16]:focus-visible{outline:2px solid var(--q-primary);outline-offset:-2px}.artifact-catalog__side[data-v-6a6d3f16]{min-width:0;padding-right:10px}.artifact-catalog__main[data-v-6a6d3f16]{min-width:0}.artifact-catalog__title.ellipsis[data-v-6a6d3f16]{white-space:nowrap;overflow-wrap:normal}.artifact-catalog__metadata[data-v-6a6d3f16]{white-space:nowrap;align-items:baseline;gap:8px;min-width:0;max-width:100%;display:flex}.artifact-catalog__type[data-v-6a6d3f16],.artifact-catalog__task[data-v-6a6d3f16]{flex:0 auto;min-width:0}.artifact-catalog__date[data-v-6a6d3f16]{flex:none}.artifact-catalog__icon[data-v-6a6d3f16]{color:var(--app-icon-neutral)}.artifact-catalog__item.q-item--active .artifact-catalog__icon[data-v-6a6d3f16]{color:var(--q-primary)}.artifact-catalog[data-v-d1772a13]{min-width:0}.artifact-catalog__group[data-v-d1772a13]{overflow-wrap:anywhere;letter-spacing:.01em;color:inherit;background-color:#8080801f;border-bottom:1px solid #80808040;padding:10px 12px;font-size:14px;font-weight:600}.artifact-catalog-panel[data-v-4efcc79e]{min-width:0;min-height:0}.artifact-catalog-panel__toolbar[data-v-4efcc79e] .q-btn{color:#757575}.body--dark .artifact-catalog-panel__toolbar[data-v-4efcc79e] .q-btn{color:#bdbdbd}.artifact-catalog-panel__toolbar[data-v-4efcc79e] .q-btn .q-icon{font-size:20px}.artifact-export-error[data-v-5607f417]{overflow-wrap:anywhere;max-width:260px}.artifact-metadata[data-v-07016dce]{overflow-wrap:anywhere}.artifact-metadata__fields[data-v-07016dce]{margin:0}.artifact-metadata__fields dt[data-v-07016dce]{opacity:.7;font-size:12px}.artifact-metadata__fields dd[data-v-07016dce]{white-space:pre-wrap;margin:0 0 12px}.artifact-metadata__task[data-v-07016dce]{display:block}.artifact-transition-dialog[data-v-
|
|
1
|
+
.artifact-status-badge[data-v-6386b48f]{font-family:var(--font-agent);flex:none}.artifact-catalog__item[data-v-6a6d3f16]{border-bottom:1px solid #80808040;min-width:0;min-height:60px;padding:10px 12px}.artifact-catalog__item.q-item--active[data-v-6a6d3f16]{color:inherit;box-shadow:inset 3px 0 var(--q-primary);background-image:linear-gradient(#1976d21a,#1976d21a)}.artifact-catalog__item[data-v-6a6d3f16]:focus-visible{outline:2px solid var(--q-primary);outline-offset:-2px}.artifact-catalog__side[data-v-6a6d3f16]{min-width:0;padding-right:10px}.artifact-catalog__main[data-v-6a6d3f16]{min-width:0}.artifact-catalog__title.ellipsis[data-v-6a6d3f16]{white-space:nowrap;overflow-wrap:normal}.artifact-catalog__metadata[data-v-6a6d3f16]{white-space:nowrap;align-items:baseline;gap:8px;min-width:0;max-width:100%;display:flex}.artifact-catalog__type[data-v-6a6d3f16],.artifact-catalog__task[data-v-6a6d3f16]{flex:0 auto;min-width:0}.artifact-catalog__date[data-v-6a6d3f16]{flex:none}.artifact-catalog__icon[data-v-6a6d3f16]{color:var(--app-icon-neutral)}.artifact-catalog__item.q-item--active .artifact-catalog__icon[data-v-6a6d3f16]{color:var(--q-primary)}.artifact-catalog[data-v-d1772a13]{min-width:0}.artifact-catalog__group[data-v-d1772a13]{overflow-wrap:anywhere;letter-spacing:.01em;color:inherit;background-color:#8080801f;border-bottom:1px solid #80808040;padding:10px 12px;font-size:14px;font-weight:600}.artifact-catalog-panel[data-v-4efcc79e]{min-width:0;min-height:0}.artifact-catalog-panel__toolbar[data-v-4efcc79e] .q-btn{color:#757575}.body--dark .artifact-catalog-panel__toolbar[data-v-4efcc79e] .q-btn{color:#bdbdbd}.artifact-catalog-panel__toolbar[data-v-4efcc79e] .q-btn .q-icon{font-size:20px}.artifact-export-error[data-v-5607f417]{overflow-wrap:anywhere;max-width:260px}.artifact-metadata[data-v-07016dce]{overflow-wrap:anywhere}.artifact-metadata__fields[data-v-07016dce]{margin:0}.artifact-metadata__fields dt[data-v-07016dce]{opacity:.7;font-size:12px}.artifact-metadata__fields dd[data-v-07016dce]{white-space:pre-wrap;margin:0 0 12px}.artifact-metadata__task[data-v-07016dce]{display:block}.artifact-transition-dialog[data-v-3a56a119]{min-width:min(32rem,92vw)}.artifact-transition-result[data-v-9f5702ab]{min-width:min(36rem,92vw)}.artifact-relations__list[data-v-9509cce5]{max-height:var(--v13c38cf8);overflow-y:auto}.artifact-relations__title[data-v-9509cce5]{overflow-wrap:anywhere}.artifact-history[data-v-170776c7]{font-size:14px;line-height:20px}.artifact-history__events[data-v-170776c7]{overflow-wrap:anywhere;padding-left:24px}.artifact-history__payload[data-v-170776c7]{white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;font-size:12px;overflow:auto}.artifact-pane[data-v-18ff9445]{min-width:0}.artifact-pane[data-v-18ff9445] .q-scrollarea__content{width:100%}.artifact-pane__body[data-v-18ff9445]{min-width:0}.artifact-document-panel[data-v-3e12d2a1]{min-width:0;min-height:0}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,B as t,D as n,F as r,I as i,K as a,L as o,M as s,N as c,Nt as l,O as u,P as d,Pt as f,Q as p,S as m,T as h,V as g,Y as _,Z as v,_ as y,b,d as x,dt as S,f as C,g as w,gt as T,h as E,ht as D,jt as O,l as k,lt as A,p as j,q as ee,r as M,u as N,ut as te,w as ne,y as P,z as F}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{h as re}from"./use-router-link-D7geCGQI.js";import{t as ie}from"./create-DedXY-KP.js";import{t as ae}from"./debounce-rZaFFwsz.js";import{a as oe,i as se,r as ce}from"./render-Brao9Nj2.js";import{C as le,a as ue,d as de,f as fe,i as pe,l as me,o as he,s as ge,t as I,u as _e}from"./QSeparator-B8uLaDiI.js";import{t as L}from"./QInput-BnqLJGXl.js";import{_ as ve,a as R,g as ye,l as z,t as B}from"./QBtn-V3VXtJXi.js";import{_ as be,a as xe,c as Se,d as Ce,g as we,n as Te,o as Ee,s as De,u as Oe,x as ke}from"./index-CstRcwnO.js";import{n as V}from"./vue-i18n.runtime-JOo8b7-t.js";import{Et as Ae,H as je,J as Me,K as Ne,P as Pe,R as Fe,Rt as Ie,Tt as Le,U as Re,W as ze,Wt as Be,Y as Ve,c as He,dt as Ue,en as We,i as Ge,kt as Ke,q as qe,wt as Je,xt as Ye,yt as Xe}from"./mdi-Du7sIqtH.js";import{n as Ze}from"./pinia-BfqEuvsi.js";import{a as Qe,l as $e,n as H,r as et,t as U}from"./single-flight-CyDZB3rb.js";import{t as tt}from"./agent-store-BV2OAJzn.js";import{t as nt}from"./safe-storage-CCnof8j6.js";import{n as W}from"./use-server-events-CvcbsbIf.js";import{n as G}from"./use-app-theme-Cp7uwqoM.js";import{i as K,t as rt}from"./QSpace-BmrklWw-.js";import{u as it}from"./workspace-navigation-kGtTYXtT.js";import{r as at}from"./use-add-agent-context-ZAOlkMkH.js";import{r as q}from"./use-virtual-scroll-DixIsJk4.js";import{c as ot,l as J,n as st,t as ct,u as Y}from"./ClosePopup-Bd5a-Lu_.js";import{t as X}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as lt,t as ut}from"./QScrollArea-qf2G1s2r.js";import{n as dt,t as ft}from"./use-workspace-navigation-BX_9XPWm.js";import{_ as pt,g as mt,v as Z,y as ht}from"./preview-store-C47JAa3k.js";import{a as gt,c as _t,d as vt,f as yt,l as bt,n as xt,o as St,p as Ct,r as wt,s as Tt,t as Et,u as Dt}from"./SaveButton-R_HjdOWt.js";import{n as Ot}from"./project-files-store-DPvUB6jk.js";import{n as kt,r as At,t as jt}from"./DialogHeader-zLgPQKrk.js";import{a as Mt,i as Nt,o as Pt,r as Ft,s as It,t as Lt}from"./date-CGiGHbuG.js";import{t as Rt}from"./QVirtualScroll-BeEkuL6x.js";import{t as zt}from"./AppPage-Cozv2vqG.js";import{n as Bt,t as Vt}from"./AddToAgentButton-Caehgd43.js";import{n as Ht,r as Ut,t as Wt}from"./TagFilterField-CmfKZPHR.js";import{t as Gt}from"./SearchInput-DapVXrFj.js";import{t as Kt}from"./CancelButton-mkxRHwoZ.js";var qt=ie({props:[`store`],setup(e,{slots:t}){let n=S(null);function i(){let t=`${e.store.isFetching.value?`un`:``}pauseAnimations`;for(let e of n.value.getElementsByTagName(`svg`))e[t]()}return c(i),r(i),()=>m(`div`,{ref:n,class:`q-infinite-scroll__loading`+(e.store.isFetching.value?``:` invisible`)},ce(t.default))}});function Jt(e){for(;e!==null&&e!==document.body;){if(window.getComputedStyle(e).position===`fixed`)return!0;e=e.parentElement}return!1}var Yt=ie({name:`QInfiniteScroll`,props:{offset:{type:Number,default:500},debounce:{type:[String,Number],default:100},scrollTarget:_e,initialIndex:{type:Number,default:0},disable:Boolean,reverse:Boolean,horizontal:Boolean},emits:[`load`],setup(t,{slots:r,emit:i}){let a=oe(),o=A(!1),l=A(!0),d=A(!1),f=S(null),p=S(null),h=S(null),g={isFetching:o},v=t.initialIndex,y,x=!1,C=k(()=>`q-infinite-scroll`+(t.horizontal?` q-infinite-scroll--horizontal`:``)+(t.reverse?` q-infinite-scroll--reverse`:``)+(d.value?` q-infinite-scroll--no-anchoring`:``)),w=k(()=>`q-infinite-scroll__sentinel q-infinite-scroll__sentinel--`+(t.horizontal?t.reverse?`start`:`end`:t.reverse?`top`:`bottom`)),T=k(()=>{if(!t.horizontal)return t.reverse?`top`:`bottom`;let e=a.lang.rtl===!0?`right`:`left`,n=a.lang.rtl===!0?`left`:`right`;return t.reverse?e:n});function E(e){return t.horizontal?ge(e):ue(e)}function D(e){return t.horizontal?Math.abs(pe(e)):me(e)}function O(e,n){t.horizontal?de(e,a.lang.rtl===!0?-n:n):fe(e,n)}function j(e){return t.horizontal?ve(e):ye(e)}c(()=>{L(t.debounce),le(),!t.disable&&te()&&!ne()&&F()});let{isIntersecting:ee,refreshIntersection:M}=Ut(()=>{let e=h.value,n=T.value,r=[`top`,`right`,`bottom`,`left`].map(e=>(e===n?t.offset:0)+`px`).join(` `);return{target:p,root:e!==null&&e!==window&&e.contains(f.value)?e:null,rootMargin:r,disabled:t.disable||!l.value,onIntersect:N}});function N(e){e.isIntersecting&&y()}function te(){let e=p.value;if(e===null)return!1;let n=h.value,r=n!==null&&n!==window&&n.contains(f.value)?n:null,{top:i,bottom:a,left:o,right:s}=r===null?{top:0,bottom:document.documentElement.clientHeight,left:0,right:document.documentElement.clientWidth}:r.getBoundingClientRect(),{top:c,bottom:l,left:u,right:d}=e.getBoundingClientRect();for(let t=e.parentElement;t!==null&&t!==r;t=t.parentElement){if(window.getComputedStyle(t).overflow===`visible`)continue;let e=t.getBoundingClientRect();if(e.top>c&&(c=e.top),e.bottom<l&&(l=e.bottom),e.left>u&&(u=e.left),e.right<d&&(d=e.right),c>l||u>d)return!1}let m=T.value;return l>=i-(m===`top`?t.offset:0)&&c<=a+(m===`bottom`?t.offset:0)&&d>=o-(m===`left`?t.offset:0)&&u<=s+(m===`right`?t.offset:0)}function ne(){return h.value===window&&(x&&=Jt(f.value),x||document.qScrollPrevented===!0)}function P(){t.disable||o.value||!l.value||!ee.value||ne()||F()}function F(){if(t.disable||o.value||!l.value)return;let e=h.value;v++,o.value=!0,t.reverse===!0&&(d.value=!0);let r=E(e);i(`load`,v,i=>{l.value&&(o.value=!1,n(()=>{t.reverse&&O(e,D(e)+E(e)-r),d.value=!1,i===!0?ce():M()}))})}function re(){v=0}function ie(){l.value?M():l.value=!0}function ce(){l.value&&(l.value=!1,o.value=!1,d.value=!1,y.cancel?.())}function le(){let e=he(f.value,t.scrollTarget),n=x;h.value=e,x=e===window&&Jt(f.value),x&&!n&&console.warn(`[Quasar] QInfiniteScroll: the window scroll target cannot react to content inside a position:fixed subtree (e.g. a Dialog), so automatic loading stays off here; set the scroll-target prop to a scrollable element of the overlay`),l.value&&t.reverse&&!x&&O(e,E(e)-j(e))}function I(){le(),M()}function _e(e){v=e}function L(e){e=Number.parseInt(e,10),y?.cancel?.(),y=e<=0?P:ae(P,Number.isNaN(e)?100:e)}let R=k(()=>!t.disable&&l.value);_(()=>t.disable,e=>{e?ce():ie()}),_(()=>t.scrollTarget,I),_(()=>t.debounce,L);let z=!1;u(()=>{z!==!1&&h.value!==null&&O(h.value,z)}),s(()=>{z=h.value!==null&&D(h.value)}),e(()=>{y?.cancel?.()});{let t=()=>{h.value===window&&M()};Oe(t),e(()=>{Ce(t)})}let B=b();return Object.assign(B.proxy,{poll:()=>{M()},trigger:F,stop:ce,reset:re,resume:ie,setIndex:_e,updateScrollTarget:I}),()=>{let e=se(r.default,[]),n=m(`div`,{ref:p,class:w.value});return R.value&&e[t.reverse?`unshift`:`push`](m(qt,{store:g},{default:r.loading})),e[t.reverse?`unshift`:`push`](n),m(`div`,{class:C.value,ref:f},e)}}}),Xt=P({__name:`RefreshButton`,props:{tooltip:{}},setup(e){return(n,r)=>(i(),x(B,{flat:``,dense:``,round:``,class:`app-icon-control`,icon:T(Ie),"aria-label":e.tooltip},{default:v(()=>[y(ke,{delay:T(500)},{default:v(()=>[w(f(e.tooltip),1)]),_:1},8,[`delay`]),t(n.$slots,`default`)]),_:3},8,[`icon`,`aria-label`]))}}),Zt=`GHT_ARTIFACT_INTEGRITY`;function Qt(e){if(e instanceof Error&&e.name===`AbortError`)return`abort`;if(e instanceof mt)return`integrity`;if(e instanceof et){if(e.code===Zt)return`integrity`;if(e.status===401||e.status===403)return`access`}return`transport`}function $t(e){return e===`ready`}function en(e){return e!==`integrity`}var tn=5;function nn(e){return[e.storeId,e.id,e.sha256,e.bytes,e.bodyStartLine].join(`:`)}var rn=Ze(`artifacts`,()=>{let e=S(null),t=S({}),n=S(null),r=S(!1),i=S(null),a=S(!1),o=S(null),s=S(``),c=S(!1),l=S(null),u=S(null),d=S(`idle`),f=S(null),p=S(null),m=S(!1),h=!0,g=null,_=!1,v=0,y=1,b=0,x=null,C=U(async()=>{if(!h)return;let o=++v,s=t.value;r.value=!0,i.value=null;try{if(y>tn)throw Error(`Too many loaded pages to refresh automatically. Reload the catalog.`);let t=y,r=await Z.search(s);if(o!==v)return;let i=r,c=1;for(;c<t;){if(!i.nextCursor){i=r,c=1;break}let e;try{e=await Z.search({...s,cursor:i.nextCursor})}catch(e){if(!(e instanceof et)||e.status!==409)throw e;i=r,c=1;break}if(o!==v)return;if(e.storeId!==r.storeId||e.storeEpoch!==r.storeEpoch||e.indexEpoch!==r.indexEpoch||!e.items.length){i=r,c=1;break}i={...e,items:[...i.items,...e.items]},++c}if(o!==v)return;y=c,e.value=i.storeId,n.value=i,a.value=!1}catch(e){if(o!==v)return;i.value=H(e),a.value=n.value!==null}finally{o===v&&(r.value=!1)}});function w(e){return h=!0,t.value=e,a.value=!1,++v,n.value=null,y=1,C()}function T(){return y=1,++v,C()}async function E(){if(r.value||a.value||!n.value?.nextCursor)return;let e=v,o=n.value;r.value=!0,i.value=null;try{let r=await Z.search({...t.value,cursor:o.nextCursor});if(e!==v)return;if(r.storeId!==o.storeId||r.storeEpoch!==o.storeEpoch||r.indexEpoch!==o.indexEpoch)throw Error(`The artifact catalog changed. Refresh the list.`);n.value={...r,items:[...o.items,...r.items]},++y}catch(t){if(e!==v)return;i.value=H(t),a.value=!0}finally{e===v&&(r.value=!1)}}function D(){s.value=``,g=null,d.value=`idle`,f.value=null,p.value=null,m.value=!1}async function O(e,t){u.value=e;let n=++b;if(x?.abort(),o.value?.id===e?.id&&o.value?.storeId===e?.storeId&&o.value||(o.value=null,D()),l.value=null,c.value=!!e,!e)return;let r=new AbortController;x=r;try{let i=await Z.get(e.id,r.signal);if(n!==b)return;if(i.storeId!==e.storeId||i.id!==e.id)throw Error(`This document belongs to another artifact store.`);o.value=i;let a=nn(i),c=d.value===`ready`&&g===a;if(!t&&c||!t&&d.value===`error`)return;c?m.value=!0:(s.value=``,g=null,d.value=`loading`),f.value=null,p.value=null;try{let e=await pt(i,r.signal);if(n!==b)return;s.value=e,g=a,d.value=`ready`}catch(e){if(n!==b)return;let t=Qt(e);if(t===`abort`)return;s.value=``,g=null,d.value=`error`,f.value=H(e),p.value=t}}catch(e){n===b&&(l.value=H(e),d.value===`loading`&&(d.value=`idle`))}finally{n===b&&(c.value=!1,m.value=!1)}}function k(e){return _=!1,O(e,!1)}let A=U(async()=>{if(!h)return;let e=_;_=!1,await O(u.value,e)});function j(){return h?(_=!0,A()):Promise.resolve()}function ee(){h=!1,_=!1,++v,++b,x?.abort(),r.value=!1,c.value=!1,m.value=!1,d.value===`loading`&&(d.value=`idle`)}return{storeId:e,input:t,catalog:n,loading:r,error:i,stale:a,document:o,body:s,documentLoading:c,documentError:l,contentState:d,contentError:f,contentErrorKind:p,verifying:m,search:w,refresh:C,reload:T,loadMore:E,select:k,refreshDocument:A,retryContent:j,cancel:ee}}),an=X(P({__name:`ArtifactStatusBadge`,props:{status:{}},setup(e){let t=e,{t:n}=V(),r=k(()=>n(`artifacts.statuses.`+t.status)),a=k(()=>`var(--artifact-status-${t.status})`);return(e,t)=>(i(),x(lt,{class:`artifact-status-badge`,style:l({background:a.value}),title:r.value},{default:v(()=>[w(f(r.value),1)]),_:1},8,[`style`,`title`]))}}),[[`__scopeId`,`data-v-6386b48f`]]),on=P({__name:`ArtifactTypeIcon`,props:{typeId:{},size:{}},setup(e){let t=new Map([[`adr`,Xe],[`plan`,Ue],[`specification`,Fe],[`prd`,Fe],[`proposal`,Le],[`research`,Ve],[`report`,We]]);return(n,r)=>(i(),x(z,{name:T(t).get(e.typeId)??T(`M6,2A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6M6,4H13V9H18V20H6V4M8,12V14H16V12H8M8,16V18H13V16H8Z`),size:e.size,"aria-hidden":`true`,class:`app-icon-neutral`},null,8,[`name`,`size`]))}}),sn=[`title`],cn=[`datetime`,`title`],ln=[`title`],un=X(P({__name:`ArtifactCatalogItem`,props:{item:{},selected:{type:Boolean},storeId:{}},emits:[`select`],setup(e){let t=e,{isDark:n}=G(),r=Dt(),a=k(()=>t.storeId?r.forStore(t.storeId):null),o=k(()=>a.value?.typeLabels.get(t.item.typeId)?.label??t.item.typeId);function s(e){return a.value?.taskLabels.get(e)?.title??e}return(t,r)=>(i(),x(J,{role:`listitem`,"data-status":e.item.status,clickable:``,dark:T(n),class:`artifact-catalog__item`,active:e.selected,"aria-current":e.selected?`true`:void 0,onClick:r[0]||=n=>t.$emit(`select`,e.item)},{default:v(()=>[y(Y,{side:``,class:`artifact-catalog__side`},{default:v(()=>[y(on,{"type-id":e.item.typeId,size:`18px`,class:`artifact-catalog__icon`},null,8,[`type-id`])]),_:1}),y(Y,{class:`artifact-catalog__main`},{default:v(()=>[y(q,{class:`artifact-summary__title artifact-catalog__title ellipsis`,title:e.item.title},{default:v(()=>[w(f(e.item.title),1)]),_:1},8,[`title`]),y(q,{caption:``,class:`artifact-summary__caption artifact-catalog__metadata`},{default:v(()=>[y(an,{status:e.item.status},null,8,[`status`]),N(`span`,{class:`artifact-catalog__type ellipsis`,title:o.value},f(o.value),9,sn),N(`time`,{class:`artifact-catalog__date`,datetime:e.item.createdAt,title:e.item.createdAt},f(T(Lt)(e.item.createdAt)),9,cn),(i(!0),j(M,null,F(e.item.taskIds,e=>(i(),j(`span`,{key:e,class:`artifact-catalog__task ellipsis`,title:s(e)},f(s(e)),9,ln))),128))]),_:1})]),_:1})]),_:1},8,[`data-status`,`dark`,`active`,`aria-current`]))}}),[[`__scopeId`,`data-v-6a6d3f16`]]),dn=60,fn=X(P({__name:`ArtifactCatalog`,props:{items:{},selectedId:{},grouping:{},storeId:{},scrollTarget:{}},emits:[`select`],setup(e){let t=e,{t:n}=V(),{isDark:r}=G(),a=Dt();function o(e){if(!t.storeId)return e;let n=a.forStore(t.storeId);return t.grouping===`type`?n.typeLabels.get(e)?.label??e:n.taskLabels.get(e)?.title??e}let s=k(()=>{let e=new Map;for(let n of t.items){let r=t.grouping===`type`?[n.typeId]:t.grouping===`task`&&n.taskIds.length?n.taskIds:[``];for(let t of r){let r=e.get(t)??[];r.push(n),e.set(t,r)}}return[...e].flatMap(([e,n])=>[...t.grouping===`none`?[]:[{kind:`group`,key:`group:${e}`,label:e}],...n.map(t=>({kind:`artifact`,key:`${e}:${t.id}`,item:t}))])});return(t,a)=>(i(),x(Rt,{items:s.value,"scroll-target":e.scrollTarget,"virtual-scroll-item-size":dn,class:O([`artifact-catalog artifact-summary`,{"artifact-summary--dark":T(r)}]),role:`list`},{default:v(({item:r})=>[r.kind===`group`?(i(),x(q,{key:r.key,header:``,class:`artifact-catalog__group`},{default:v(()=>[w(f(r.label?o(r.label):T(n)(`artifacts.noTask`)),1)]),_:2},1024)):(i(),x(un,{key:r.key,item:r.item,selected:r.item.id===e.selectedId,"store-id":e.storeId,onSelect:a[0]||=e=>t.$emit(`select`,e)},null,8,[`item`,`selected`,`store-id`]))]),_:1},8,[`items`,`scroll-target`,`class`]))}}),[[`__scopeId`,`data-v-d1772a13`]]);function Q(e,t){let n=e[t];return typeof n==`string`?n:``}function pn(e,t){let n=e[t];return[...new Set((Array.isArray(n)?n:[n]).filter(e=>typeof e==`string`&&!!e))]}function mn(){return{status:null,typeIds:[],taskId:null,tags:[],tagMode:`all`,createdFrom:null,createdTo:null,group:`none`,mode:`auto`}}function hn(e){return e.status!==null||e.typeIds.length>0||e.taskId!==null||e.tags.length>0||e.createdFrom!==null||e.createdTo!==null||e.group!==`none`||e.mode!==`auto`}function gn(e,t){let n={...e},r={status:t.status,typeId:t.typeIds,taskId:t.taskId,tag:t.tags,tagMode:t.tags.length>1&&t.tagMode===`any`?`any`:null,from:t.createdFrom,to:t.createdTo,group:t.group===`none`?null:t.group,mode:t.mode===`auto`?null:t.mode};for(let[e,t]of Object.entries(r))(Array.isArray(t)?t.length:t)?n[e]=t:delete n[e];return n}function _n(e){let t=ht.find(t=>t===Q(e,`status`))??null,n=Q(e,`group`),r=Q(e,`storeId`),i=Q(e,`selectedId`),a=Q(e,`taskId`),o={status:t,typeIds:pn(e,`typeId`),taskId:it(a)?a:null,tags:pn(e,`tag`),tagMode:Q(e,`tagMode`)===`any`?`any`:`all`,createdFrom:Ft(Q(e,`from`))?Q(e,`from`):null,createdTo:Ft(Q(e,`to`))?Q(e,`to`):null,group:n===`type`||n===`task`?n:`none`,mode:Q(e,`mode`)===`exact`?`exact`:`auto`};return{input:{query:Q(e,`q`),mode:o.mode,sort:`createdAt`,limit:50,filters:{statuses:t===null?[...ht]:[t],...o.typeIds.length?{typeIds:o.typeIds}:{},...o.taskId?{taskIds:[o.taskId]}:{},...o.tags.length?{tags:o.tags,tagMode:o.tagMode}:{},...o.createdFrom?{createdFrom:Mt(o.createdFrom)}:{},...o.createdTo?{createdTo:Nt(o.createdTo)}:{}}},filters:o,group:o.group,selection:it(r)&&it(i)?{storeId:r,id:i}:null}}function vn(e,t,n={}){return{path:`/artifacts`,query:{...n,storeId:e,selectedId:t,uiPane:`content`,uiWindow:void 0}}}var yn=P({__name:`ArtifactFilterDialog`,props:h({storeId:{},tagOptions:{}},{modelValue:{type:Boolean,required:!0},modelModifiers:{},filter:{required:!0},filterModifiers:{}}),emits:[`update:modelValue`,`update:filter`],setup(e){let t=a(e,`modelValue`),n=a(e,`filter`),r=e,{t:o}=V(),{isDark:s}=G(),c=A(mn()),l=k(()=>hn(c.value)),u=k(()=>[...new Set([...r.tagOptions,...c.value.tags])]),d=k(()=>[{label:o(`artifacts.allStatuses`),value:null},...ht.map(e=>({label:o(`artifacts.statuses.`+e),value:e}))]),f=k(()=>[`none`,`type`,`task`].map(e=>({label:o(`artifacts.groups.`+e),value:e})));function p(){c.value={...n.value,typeIds:[...n.value.typeIds],tags:[...n.value.tags]}}function m(){c.value=mn()}function h(){n.value={...c.value},t.value=!1}function g(e){c.value.typeIds=Array.isArray(e)?e:[]}function _(e){c.value.taskId=typeof e==`string`?e:null}return(n,r)=>(i(),x(Ht,{modelValue:t.value,"onUpdate:modelValue":r[7]||=e=>t.value=e,"can-reset":l.value,width:`640px`,onPrepare:p,onReset:m,onApply:h},{default:v(()=>[y(Pt,{modelValue:c.value.status,"onUpdate:modelValue":r[0]||=e=>c.value.status=e,dark:T(s),outlined:``,dense:``,clearable:``,"emit-value":``,"map-options":``,options:d.value,"display-value":c.value.status===null?T(o)(`artifacts.allStatuses`):T(o)(`artifacts.statuses.`+c.value.status),label:T(o)(`artifacts.status`)},null,8,[`modelValue`,`dark`,`options`,`display-value`,`label`]),e.storeId?(i(),x(Tt,{key:`type:`+e.storeId,"model-value":c.value.typeIds,"store-id":e.storeId,kind:`type`,multiple:``,"onUpdate:modelValue":g},null,8,[`model-value`,`store-id`])):C(``,!0),e.storeId?(i(),x(Tt,{key:`task:`+e.storeId,"model-value":c.value.taskId,"store-id":e.storeId,kind:`task`,"onUpdate:modelValue":_},null,8,[`model-value`,`store-id`])):C(``,!0),y(Wt,{tags:c.value.tags,"onUpdate:tags":r[1]||=e=>c.value.tags=e,mode:c.value.tagMode,"onUpdate:mode":r[2]||=e=>c.value.tagMode=e,options:u.value,"allow-create":``},null,8,[`tags`,`mode`,`options`]),y(L,{modelValue:c.value.createdFrom,"onUpdate:modelValue":r[3]||=e=>c.value.createdFrom=e,dark:T(s),outlined:``,dense:``,clearable:``,"stack-label":``,type:`date`,max:c.value.createdTo??void 0,label:T(o)(`artifacts.createdFrom`)},null,8,[`modelValue`,`dark`,`max`,`label`]),y(L,{modelValue:c.value.createdTo,"onUpdate:modelValue":r[4]||=e=>c.value.createdTo=e,dark:T(s),outlined:``,dense:``,clearable:``,"stack-label":``,type:`date`,min:c.value.createdFrom??void 0,label:T(o)(`artifacts.createdTo`)},null,8,[`modelValue`,`dark`,`min`,`label`]),y(Pt,{modelValue:c.value.group,"onUpdate:modelValue":r[5]||=e=>c.value.group=e,dark:T(s),outlined:``,dense:``,"emit-value":``,"map-options":``,options:f.value,label:T(o)(`artifacts.group`)},null,8,[`modelValue`,`dark`,`options`,`label`]),y(Te,{dark:T(s),"model-value":c.value.mode===`auto`,label:T(o)(`artifacts.typos`),"onUpdate:modelValue":r[6]||=e=>c.value.mode=e?`auto`:`exact`},null,8,[`dark`,`model-value`,`label`])]),_:1},8,[`modelValue`,`can-reset`]))}}),bn=[`aria-label`],xn=P({__name:`ArtifactFilters`,props:h({storeId:{},navigationKey:{},tagOptions:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=a(e,`modelValue`),r=S(!1),{t:o}=V(),s=k(()=>hn(n.value));return _(()=>t.navigationKey,()=>{r.value=!1}),(t,a)=>(i(),j(`div`,{class:`artifact-filters row no-wrap`,role:`group`,"aria-label":T(o)(`common.filters.title`)},[y(B,{class:`app-icon-control`,flat:``,round:``,dense:``,icon:s.value?T(Ne):T(qe),color:s.value?`primary`:void 0,"aria-label":T(o)(`common.filters.title`),"aria-pressed":s.value,onClick:a[0]||=e=>r.value=!0},{default:v(()=>[y(ke,{delay:T(500)},{default:v(()=>[w(f(T(o)(`common.filters.title`)),1)]),_:1},8,[`delay`])]),_:1},8,[`icon`,`color`,`aria-label`,`aria-pressed`]),s.value?(i(),x(B,{key:0,class:`app-icon-control`,flat:``,round:``,dense:``,icon:T(Me),"aria-label":T(o)(`common.filters.reset`),onClick:a[1]||=e=>n.value=T(mn)()},{default:v(()=>[y(ke,{delay:T(500)},{default:v(()=>[w(f(T(o)(`common.filters.reset`)),1)]),_:1},8,[`delay`])]),_:1},8,[`icon`,`aria-label`])):C(``,!0),y(yn,{modelValue:r.value,"onUpdate:modelValue":a[2]||=e=>r.value=e,filter:n.value,"onUpdate:filter":a[3]||=e=>n.value=e,"store-id":e.storeId,"tag-options":e.tagOptions},null,8,[`modelValue`,`filter`,`store-id`,`tag-options`])],8,bn))}}),Sn={key:0},Cn=P({__name:`ArtifactStatusBanners`,props:{loading:{type:Boolean},error:{},stale:{type:Boolean},partial:{type:Boolean}},setup(e){let{t:n}=V();return(r,a)=>(i(),j(M,null,[e.loading?(i(),x(yt,{key:0,indeterminate:``})):C(``,!0),e.error?(i(),x(K,{key:1,class:`text-negative`},E({default:v(()=>[w(f(e.error)+` `,1),e.stale?(i(),j(`div`,Sn,f(T(n)(`artifacts.stale`)),1)):C(``,!0)]),_:2},[r.$slots.action?{name:`action`,fn:v(()=>[t(r.$slots,`action`)]),key:`0`}:void 0]),1024)):C(``,!0),e.partial?(i(),x(K,{key:2},{default:v(()=>[w(f(T(n)(`artifacts.partial`)),1)]),_:1})):C(``,!0)],64))}}),wn={class:`artifact-catalog-panel column no-wrap fit`},Tn={class:`q-pa-sm`},En={class:`artifact-catalog-panel__toolbar row items-center`},Dn={key:0,class:`q-pa-md text-grey`},On={class:`row justify-center q-pa-sm`},kn=X(P({__name:`ArtifactCatalogPanel`,props:{filters:{},query:{},selectedId:{},searchKey:{},navigationKey:{},tagOptions:{},active:{type:Boolean}},emits:[`update:filters`,`update:query`,`select`],setup(e,{emit:t}){let n=e,r=t,{t:a}=V(),o=rn(),s=ee(`catalogScroll`),c=k(()=>s.value?.getScrollTarget()??null);async function l(e,t){try{await o.loadMore()}finally{t()}}return _(()=>n.searchKey,()=>s.value?.setScrollPosition(`vertical`,0)),(t,n)=>(i(),j(`section`,wn,[N(`div`,Tn,[N(`div`,En,[y(rt),y(Xt,{tooltip:T(a)(`artifacts.refresh`),loading:T(o).loading,onClick:n[0]||=()=>T(o).reload()},null,8,[`tooltip`,`loading`]),y(xn,{"model-value":e.filters,"store-id":T(o).storeId,"navigation-key":e.navigationKey,"tag-options":e.tagOptions,"onUpdate:modelValue":n[1]||=e=>r(`update:filters`,e)},null,8,[`model-value`,`store-id`,`navigation-key`,`tag-options`])]),y(Gt,{debounce:`300`,"model-value":e.query,placeholder:T(a)(`artifacts.search`),"aria-label":T(a)(`artifacts.search`),"onUpdate:modelValue":n[2]||=e=>r(`update:query`,e==null?null:String(e))},null,8,[`model-value`,`placeholder`,`aria-label`])]),y(I),y(Cn,{loading:T(o).loading,error:T(o).error,stale:T(o).stale,partial:!!T(o).catalog?.partial},null,8,[`loading`,`error`,`stale`,`partial`]),y(ut,{ref:`catalogScroll`,class:`col`,"content-style":`width: 100%`,"content-active-style":`width: 100%`},{default:v(()=>[c.value?(i(),x(Yt,{key:0,"scroll-target":c.value,offset:300,disable:T(o).loading||T(o).stale||!T(o).catalog?.nextCursor||!e.active,onLoad:l},{loading:v(()=>[N(`div`,On,[y(R,{color:`primary`})])]),default:v(()=>[y(fn,{"scroll-target":c.value,items:T(o).catalog?.items??[],"selected-id":e.selectedId,grouping:e.filters.group,"store-id":T(o).storeId,onSelect:n[3]||=e=>r(`select`,e)},null,8,[`scroll-target`,`items`,`selected-id`,`grouping`,`store-id`]),!T(o).loading&&!T(o).error&&!T(o).catalog?.items.length?(i(),j(`div`,Dn,f(T(a)(`artifacts.empty`)),1)):C(``,!0)]),_:1},8,[`scroll-target`,`disable`])):C(``,!0)]),_:1},512)]))}}),[[`__scopeId`,`data-v-4efcc79e`]]),An=Symbol(`artifact-refresh`);function jn(e){let t=new Set,n=S(!1);return o(An,t),{loading:n,refresh:U(async()=>{n.value=!0;try{await Promise.allSettled([e(),...Array.from(t,e=>e())])}finally{n.value=!1}})}}function Mn(e){let t=ne(An,void 0);t?.add(e),d(()=>t?.delete(e))}var Nn={key:0,role:`alert`,class:`text-negative artifact-export-error`},Pn=X(P({__name:`ArtifactExportMenu`,props:{artifactId:{},originalAllowed:{type:Boolean,default:!0}},setup(e){let t=e,{t:n}=V(),r=S(!1),a=S(null),o=null,s=!1;async function c(e){if(!r.value){o=new AbortController,r.value=!0,a.value=null;try{await Ot(`/api/artifacts/`+encodeURIComponent(t.artifactId)+`/export?format=`+e,`artifact-`+t.artifactId+(e===`original`?`.md`:`.metadata-history.json`),o.signal)}catch(e){s||(a.value=H(e))}finally{s||(r.value=!1)}}}return d(()=>{s=!0,o?.abort()}),(t,o)=>(i(),j(`div`,null,[y(B,{class:`app-icon-control`,flat:``,round:``,icon:T(Pe),loading:r.value,disable:r.value,"aria-label":T(n)(`artifacts.export.menu`)},{default:v(()=>[y(st,null,{default:v(()=>[y(ot,null,{default:v(()=>[p((i(),x(J,{clickable:``,disable:!e.originalAllowed,onClick:o[0]||=e=>c(`original`)},{default:v(()=>[y(Y,null,{default:v(()=>[y(q,null,{default:v(()=>[w(f(T(n)(`artifacts.export.original`)),1)]),_:1}),e.originalAllowed?C(``,!0):(i(),x(q,{key:0,caption:``},{default:v(()=>[w(f(T(n)(`artifacts.content.blocked`)),1)]),_:1}))]),_:1})]),_:1},8,[`disable`])),[[ct]]),p((i(),x(J,{clickable:``,onClick:o[1]||=e=>c(`metadata-history`)},{default:v(()=>[y(Y,null,{default:v(()=>[w(f(T(n)(`artifacts.export.history`)),1)]),_:1})]),_:1})),[[ct]])]),_:1})]),_:1})]),_:1},8,[`icon`,`loading`,`disable`,`aria-label`]),a.value?(i(),j(`div`,Nn,f(a.value),1)):C(``,!0)]))}}),[[`__scopeId`,`data-v-5607f417`]]),Fn={key:0,class:`q-pa-md artifact-metadata`},In={class:`artifact-metadata__fields`},Ln={key:1},Rn={class:`artifact-metadata__source`},zn=X(P({__name:`ArtifactMetadata`,props:{artifact:{}},setup(e){let t=e,n=Dt().forStore(t.artifact.storeId),r=S(!1),a=at(),o=we(),{t:s}=V();Mn(async()=>{r.value&&a()&&await n.invalidate()}),_(()=>[r.value&&a(),t.artifact.typeId,...t.artifact.taskIds],async(e,i,o)=>{if(!r.value||!a())return;let s=!1;o(()=>{s=!0});let{typeId:c,taskIds:l}=t.artifact;await n.resolve(`type`,c).catch(()=>{});for(let e=0;e<l.length;e+=4){if(s)return;await Promise.allSettled(l.slice(e,e+4).map(e=>n.resolve(`task`,e)))}});function c(e){return{path:`/artifacts`,query:{...o.query,taskId:e,uiPane:`list`,uiWindow:void 0}}}return(t,a)=>{let o=g(`router-link`);return i(),x(At,{modelValue:r.value,"onUpdate:modelValue":a[0]||=e=>r.value=e,icon:T(Je),label:T(s)(`artifacts.details.metadata`),class:`app-icon-expansion q-mb-md`,bordered:``},{default:v(()=>[r.value?(i(),j(`div`,Fn,[N(`dl`,In,[N(`dt`,null,f(T(s)(`artifacts.details.currentTitle`)),1),N(`dd`,null,f(e.artifact.title),1),a[1]||=w(),N(`dt`,null,f(T(s)(`artifacts.status`)),1),N(`dd`,null,f(T(s)(`artifacts.statuses.`+e.artifact.status)),1),N(`dt`,null,f(T(s)(`artifacts.type`)),1),N(`dd`,null,f(T(n).typeLabels.get(e.artifact.typeId)?.label??e.artifact.typeId),1),N(`dt`,null,f(T(s)(`artifacts.details.tasks`)),1),N(`dd`,null,[e.artifact.taskIds.length?(i(!0),j(M,{key:0},F(e.artifact.taskIds,e=>(i(),x(o,{key:e,to:c(e),class:`artifact-metadata__task`},{default:v(()=>[w(f(T(n).taskLabels.get(e)?.title??e),1)]),_:2},1032,[`to`]))),128)):(i(),j(`span`,Ln,f(T(s)(`artifacts.details.none`)),1))]),N(`dt`,null,f(T(s)(`artifacts.tag`)),1),N(`dd`,null,f(e.artifact.tags.join(`, `)||T(s)(`artifacts.details.none`)),1),N(`dt`,null,f(T(s)(`artifacts.details.version`)),1),N(`dd`,null,f(e.artifact.metadataVersion),1),N(`dt`,null,f(T(s)(`artifacts.details.created`)),1),N(`dd`,null,f(T(Lt)(e.artifact.createdAt)),1),N(`dt`,null,f(T(s)(`artifacts.details.updated`)),1),N(`dd`,null,f(T(Lt)(e.artifact.metadataUpdatedAt)),1),N(`dt`,null,f(T(s)(`artifacts.identity`)),1),N(`dd`,null,f(e.artifact.id),1),a[2]||=w(),N(`dt`,null,f(T(s)(`artifacts.store`)),1),N(`dd`,null,f(e.artifact.storeId),1),a[3]||=w(),a[4]||=N(`dt`,null,`SHA-256`,-1),N(`dd`,null,f(e.artifact.sha256),1),N(`dt`,null,f(T(s)(`artifacts.details.bytes`)),1),N(`dd`,null,f(e.artifact.bytes),1),e.artifact.sourcePath?(i(),j(M,{key:0},[N(`dt`,null,f(T(s)(`artifacts.details.sourcePath`)),1),N(`dd`,Rn,f(e.artifact.sourcePath),1)],64)):C(``,!0)])])):C(``,!0)]),_:1},8,[`modelValue`,`icon`,`label`])}}}),[[`__scopeId`,`data-v-07016dce`]]),$={options:(e,t)=>Qe(`/api/artifacts/`+encodeURIComponent(e)+`/transitions`,t),operations:(e,t)=>Qe(`/api/artifacts/`+encodeURIComponent(e)+`/transition-operations`,t),preview:(e,t,n)=>$e(`/api/artifacts/`+encodeURIComponent(e)+`/transition-previews`,{targetStatus:t},n),start:(e,t,n)=>$e(`/api/artifact-transition-operations`,{previewId:e,presetId:t,requestId:n}),cancel:e=>$e(`/api/artifact-transition-operations/`+encodeURIComponent(e)+`/cancel`)},Bn=[`succeeded`,`failed`,`cancelled`,`interrupted`];[...Bn];function Vn(e){return Bn.some(t=>t===e)}var Hn=`githuman:artifact-transition-preset:v1`,Un=6e5,Wn=Object.freeze({options:null,operation:null,error:null,stale:!1,loaded:!1}),Gn=Ze(`artifact-transition`,()=>{let e=te(new Map),t=new Set,n=new Map,r=new Map,i=new Map,a=new Map;function o(e){return a.get(e)??0}function s(e){a.set(e,o(e)+1),r.get(e)?.abort()}function c(t){return e.get(t)??Wn}function l(t,n){e.set(t,{...c(t),...n})}function u(e){let n=i.get(e);if(n)return n;{let n=U(async()=>{r.get(e)?.abort();let n=new AbortController;r.set(e,n);let i=o(e);try{let[r,a]=await Promise.all([$.options(e,n.signal),$.operations(e,n.signal)]);if(n.signal.aborted||i!==o(e))return;let s=a.items[0]??null;l(e,{options:r,operation:s!==null&&Vn(s.stage)&&(t.has(s.id)||Date.now()-s.updatedAt>=Un)?null:s,error:null,stale:!1,loaded:!0})}catch(t){!n.signal.aborted&&i===o(e)&&l(e,{error:H(t),stale:!0,loaded:!0})}});return i.set(e,n),n}}function d(e){return u(e)()}function f(e){r.get(e)?.abort(),r.delete(e),a.delete(e),i.delete(e)}function p(e,t){s(e);let n=c(e).options;l(e,{operation:t,error:null,...n?{options:{...n,activeOperationId:Vn(t.stage)?null:t.id}}:{}})}function m(){return nt.get(Hn)}async function h(e,r,i){let a=_t(n.get(e)??null,{previewId:r,presetId:i});n.set(e,a);try{let o=await $.start(r,i,a.requestId);return n.delete(e),nt.set(Hn,i),t.delete(o.id),p(e,o),o}finally{d(e)}}async function g(e,t){try{let n=await $.cancel(t);return p(e,n),n}finally{d(e)}}function _(e){let n=c(e).operation;n&&Vn(n.stage)&&(t.add(n.id),l(e,{operation:null}))}return{entries:e,entry:c,load:d,release:f,previewFor:$.preview,lastPreset:m,begin:h,cancel:g,dismiss:_}});function Kn(e){let t=Gn();_(()=>D(e),(e,n)=>{n&&t.release(n),t.load(e)},{immediate:!0});let n=W([`artifacts:changed`],()=>{t.load(D(e))});return Mn(()=>t.load(D(e))),d(()=>{n.close(),t.release(D(e))}),{entry:k(()=>t.entry(D(e))),store:t}}function qn(e,t,n,r){let i=Gn(),{registerTimeout:a,removeTimeout:o}=le(),s=S(null),c=S(!1),l=S(!1),u=S(!1),f=S(null),p=0,m=null;async function h(r=!1){let d=D(t);if(!D(n)||!d)return;let h=++p;m?.abort();let g=new AbortController;m=g,c.value=!0,f.value=null,l.value=!1,o();try{let t=await i.previewFor(D(e),d,g.signal);if(h!==p)return;s.value=t,u.value=r,a(()=>{l.value=!0},Math.max(0,t.expiresAt-Date.now()))}catch(e){h===p&&(s.value=null,f.value=H(e))}finally{h===p&&(c.value=!1)}}function g(){++p,m?.abort(),o(),s.value=null,c.value=!1,l.value=!1,u.value=!1,f.value=null}_([()=>D(n),()=>D(e),()=>D(t)],()=>{g(),D(n)&&h()},{immediate:!0});let v=W([`artifacts:changed`],()=>{D(n)&&!D(r)&&h(!0)});return d(()=>{v.close(),g()}),{preview:s,loading:c,expired:l,refreshed:u,error:f,load:h}}var Jn={class:`q-mb-md`},Yn={class:`text-subtitle2`},Xn={class:`q-my-xs`},Zn=P({__name:`ArtifactTransitionConsequences`,props:{preview:{}},setup(e){let{t}=V();return(n,r)=>(i(),j(M,null,[N(`div`,Jn,f(T(t)(`artifacts.transition.question`,{title:e.preview.title,from:T(t)(`artifacts.statuses.`+e.preview.fromStatus),to:T(t)(`artifacts.statuses.`+e.preview.targetStatus)})),1),N(`div`,Yn,f(T(t)(`artifacts.transition.changes`)),1),N(`ul`,Xn,[(i(!0),j(M,null,F(e.preview.changes,e=>(i(),j(`li`,{key:e.artifactId},f(T(t)(`artifacts.transition.change`,{title:e.title,from:T(t)(`artifacts.statuses.`+e.fromStatus),to:T(t)(`artifacts.statuses.`+e.toStatus)})),1))),128))])],64))}}),Qn={class:`text-weight-medium`},$n={class:`q-mt-xs`},er=P({__name:`ArtifactTransitionStatus`,props:{blockers:{},refreshed:{type:Boolean},expired:{type:Boolean},error:{}},setup(e){let{t}=V();return(n,r)=>(i(),j(M,null,[e.blockers.length?(i(),x(K,{key:0,dense:``,class:`bg-warning text-dark q-mt-sm`,role:`alert`},{default:v(()=>[N(`div`,Qn,f(T(t)(`artifacts.transition.blocked`)),1),(i(!0),j(M,null,F(e.blockers,e=>(i(),j(`div`,{key:e.code+e.message},f(e.message),1))),128)),N(`div`,$n,f(T(t)(`artifacts.transition.blockedHint`)),1)]),_:1})):C(``,!0),e.refreshed?(i(),x(K,{key:1,dense:``,class:`q-mt-sm`,role:`status`},{default:v(()=>[w(f(T(t)(`artifacts.transition.refreshed`)),1)]),_:1})):C(``,!0),e.expired?(i(),x(K,{key:2,dense:``,class:`q-mt-sm`,role:`status`},{default:v(()=>[w(f(T(t)(`artifacts.transition.expired`)),1)]),_:1})):C(``,!0),e.error?(i(),x(K,{key:3,dense:``,class:`text-negative q-mt-sm`,role:`alert`},{default:v(()=>[w(f(T(t)(`artifacts.transition.startFailed`))+`: `+f(e.error),1)]),_:1})):C(``,!0)],64))}}),tr={key:1},nr={key:0,class:`text-negative q-mt-sm`},rr=X(P({__name:`ArtifactTransitionDialog`,props:h({artifactId:{},target:{},contentReady:{type:Boolean,default:!0}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=a(e,`modelValue`),{t:r}=V(),o=tt(),s=Gn(),c=S(!1),l=S(null),u=S(null),{preview:d,loading:p,expired:m,refreshed:h,error:g,load:b}=qn(()=>t.artifactId,()=>t.target,n,c),w=k(()=>o.presets),E=k(()=>l.value??g.value),D=k(()=>!!d.value?.canConfirm&&!m.value&&!p.value&&!c.value&&t.contentReady&&w.value.some(e=>e.id===u.value&&e.available));_(n,e=>{e&&(u.value=s.lastPreset(),l.value=null)},{immediate:!0}),_(()=>t.contentReady,e=>{!e&&n.value&&!c.value&&(n.value=!1)});function O(){l.value=null,b()}async function A(){if(D.value&&d.value&&u.value){c.value=!0,l.value=null;try{await s.begin(t.artifactId,d.value.previewId,u.value),n.value=!1}catch(e){l.value=H(e)}finally{c.value=!1}}}return(e,t)=>(i(),x(Se,{modelValue:n.value,"onUpdate:modelValue":t[2]||=e=>n.value=e,persistent:``},{default:v(()=>[y(De,{class:`artifact-transition-dialog`},{default:v(()=>[y(jt,{title:T(r)(`artifacts.transition.dialogTitle`),"close-label":T(r)(`artifacts.transition.close`),"disable-close":c.value},null,8,[`title`,`close-label`,`disable-close`]),y(Ee,{class:`q-pt-none`},{default:v(()=>[T(d)?(i(),x(Zn,{key:0,preview:T(d)},null,8,[`preview`])):T(p)?(i(),j(`div`,tr,f(T(r)(`artifacts.transition.loading`)),1)):C(``,!0),y(er,{blockers:T(d)?.blockers??[],refreshed:T(h),expired:T(m),error:E.value},null,8,[`blockers`,`refreshed`,`expired`,`error`])]),_:1}),y(Ee,{class:`q-pt-none`},{default:v(()=>[y(Pt,{modelValue:u.value,"onUpdate:modelValue":t[0]||=e=>u.value=e,dense:``,outlined:``,"emit-value":``,"map-options":``,"option-value":`id`,"option-label":`title`,"option-disable":e=>!e.available,options:w.value,label:T(r)(`artifacts.transition.validator`),hint:T(r)(`artifacts.transition.validatorHint`)},null,8,[`modelValue`,`option-disable`,`options`,`label`,`hint`]),w.value.some(e=>e.available)?C(``,!0):(i(),j(`div`,nr,f(T(r)(`artifacts.transition.validatorNone`)),1))]),_:1}),y(xe,{align:`right`},{default:v(()=>[T(m)||E.value?(i(),x(xt,{key:0,label:T(r)(`artifacts.transition.refresh`),disable:T(p)||c.value,onClick:O},null,8,[`label`,`disable`])):C(``,!0),y(xt,{label:T(r)(`artifacts.transition.no`),disable:c.value,onClick:t[1]||=e=>n.value=!1},null,8,[`label`,`disable`]),y(Et,{label:T(r)(`artifacts.transition.yes`),loading:c.value,disable:!D.value,onClick:A},null,8,[`label`,`loading`,`disable`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]))}}),[[`__scopeId`,`data-v-3a56a119`]]),ir=[`conflict`,`incomplete`,`pass`];function ar(e){return e.validationId!==null&&e.verdict!==null&&ir.includes(e.verdict)}var or={key:0,class:`text-caption`},sr=X(P({__name:`ArtifactTransitionResult`,props:h({operation:{}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=a(e,`modelValue`),{t:r}=V(),{report:o,text:s,titles:c,loading:l,error:u,textError:d,load:p}=wt(()=>t.operation.validationId,n);return(t,a)=>{let m=g(`router-link`);return i(),x(Se,{modelValue:n.value,"onUpdate:modelValue":a[1]||=e=>n.value=e},{default:v(()=>[y(De,{class:`artifact-transition-result`},{default:v(()=>[y(jt,{title:T(r)(`artifacts.transition.result`),"close-label":T(r)(`artifacts.transition.close`)},null,8,[`title`,`close-label`]),y(Ee,{class:`q-pt-none`},{default:v(()=>[T(o)?(i(),j(`div`,or,f(T(r)(`artifacts.actions.verdict`))+`: `+f(T(o).verdict),1)):C(``,!0)]),_:1}),y(Ee,{class:`q-pt-none`},{default:v(()=>[y(gt,{report:T(o),text:T(s),titles:T(c),loading:T(l),error:T(u),"text-error":T(d)},null,8,[`report`,`text`,`titles`,`loading`,`error`,`text-error`]),e.operation.reportArtifactId?(i(),x(m,{key:0,class:`q-mt-md block`,to:{name:`artifacts`,query:{storeId:e.operation.storeId,selectedId:e.operation.reportArtifactId}}},{default:v(()=>[w(f(T(r)(`artifacts.transition.report`)),1)]),_:1},8,[`to`])):C(``,!0)]),_:1}),y(xe,{align:`right`},{default:v(()=>[T(u)||T(d)?(i(),x(xt,{key:0,label:T(r)(`artifacts.transition.retry`),onClick:T(p)},null,8,[`label`,`onClick`])):C(``,!0),y(xt,{label:T(r)(`artifacts.transition.close`),onClick:a[0]||=e=>n.value=!1},null,8,[`label`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])}}}),[[`__scopeId`,`data-v-9f5702ab`]]),cr=[`aria-label`],lr={class:`text-caption`},ur={key:1,class:`text-caption text-negative`},dr={key:2,class:`text-caption text-negative`},fr=P({__name:`ArtifactTransitionProgress`,props:{operation:{}},emits:[`retry`],setup(e,{emit:t}){let n=e,r=t,{t:a}=V(),o=Gn(),s=A(null),c=A(!1),l=A(!1),u=k(()=>Vn(n.operation.stage)),d=k(()=>n.operation.cancelRequested&&!u.value?a(`artifacts.transition.cancelRequested`):a(`artifacts.transition.stages.`+n.operation.stage)),p=k(()=>u.value&&n.operation.stage!==`succeeded`);_([()=>n.operation.id,()=>n.operation.stage],()=>{s.value=null});async function m(){c.value=!0,s.value=null;try{await o.cancel(n.operation.artifactId,n.operation.id)}catch(e){s.value=H(e)}finally{c.value=!1}}return(t,n)=>(i(),j(`div`,{class:`artifact-transition-progress row items-center no-wrap q-gutter-x-sm`,role:`status`,"aria-live":`polite`,"aria-label":T(a)(`artifacts.transition.progressLabel`,{to:T(a)(`artifacts.statuses.`+e.operation.targetStatus)})},[u.value?C(``,!0):(i(),x(R,{key:0,size:`1em`})),N(`span`,lr,f(d.value),1),e.operation.reason?(i(),j(`span`,ur,f(e.operation.reason),1)):C(``,!0),s.value?(i(),j(`span`,dr,f(s.value),1)):C(``,!0),e.operation.canCancel&&!e.operation.cancelRequested?(i(),x(Kt,{key:3,"no-caps":``,size:`sm`,loading:c.value,onClick:m},null,8,[`loading`])):C(``,!0),u.value&&T(ar)(e.operation)?(i(),x(St,{key:4,label:T(a)(`artifacts.transition.result`),onClick:n[0]||=e=>l.value=!0},null,8,[`label`])):C(``,!0),y(sr,{modelValue:l.value,"onUpdate:modelValue":n[1]||=e=>l.value=e,operation:e.operation},null,8,[`modelValue`,`operation`]),p.value?(i(),x(St,{key:5,label:T(a)(`artifacts.transition.retry`),onClick:n[2]||=e=>r(`retry`)},null,8,[`label`])):C(``,!0),u.value?(i(),x(kt,{key:6,size:`sm`,label:T(a)(`artifacts.transition.dismiss`),onClick:n[3]||=t=>T(o).dismiss(e.operation.artifactId)},null,8,[`label`])):C(``,!0)],8,cr))}}),pr={class:`artifact-status-button row items-center no-wrap q-gutter-x-sm`},mr={key:3,class:`row items-center no-wrap q-gutter-x-xs`,role:`alert`},hr={class:`text-caption text-negative`},gr=P({__name:`ArtifactStatusButton`,props:{artifact:{},contentReady:{type:Boolean,default:!0}},setup(e){let t=e,{t:n}=V(),{entry:r,store:a}=Kn(()=>t.artifact.id),o=A(!1),s=A(null),c=k(()=>r.value.operation),l=k(()=>!!r.value.options?.activeOperationId),u=k(()=>!r.value.loaded),d=k(()=>r.value.error!==null),p=k(()=>r.value.options?.status===t.artifact.status&&!r.value.stale?r.value.options.targets:[]);function m(e){t.contentReady&&(s.value=e,o.value=!0)}return(t,r)=>(i(),j(`div`,pr,[p.value.length&&!l.value&&e.contentReady?(i(),x(B,{key:0,dense:``,flat:``,"no-caps":``,class:`artifact-status-button__trigger`,"aria-label":T(n)(`artifacts.transition.button`,{status:T(n)(`artifacts.statuses.`+e.artifact.status)})},{default:v(()=>[y(an,{status:e.artifact.status},null,8,[`status`]),y(z,{name:T(Ke),size:`1.2em`,class:`app-icon-control`},null,8,[`name`]),y(st,{"auto-close":``},{default:v(()=>[y(ot,{dense:``,style:{"min-width":`12rem`}},{default:v(()=>[y(q,{header:``},{default:v(()=>[w(f(T(n)(`artifacts.transition.menuTitle`)),1)]),_:1}),(i(!0),j(M,null,F(p.value,e=>(i(),x(J,{key:e.status,clickable:``,disable:!e.available,onClick:t=>m(e.status)},{default:v(()=>[y(Y,null,{default:v(()=>[y(q,null,{default:v(()=>[w(f(T(n)(`artifacts.statuses.`+e.status)),1)]),_:2},1024),e.reason?(i(),x(q,{key:0,caption:``},{default:v(()=>[w(f(e.reason),1)]),_:2},1024)):C(``,!0)]),_:2},1024)]),_:2},1032,[`disable`,`onClick`]))),128))]),_:1})]),_:1})]),_:1},8,[`aria-label`])):(i(),x(an,{key:1,status:e.artifact.status},null,8,[`status`])),u.value?(i(),x(R,{key:2,size:`1em`,"aria-label":T(n)(`artifacts.transition.loadingMenu`)},null,8,[`aria-label`])):C(``,!0),d.value?(i(),j(`span`,mr,[N(`span`,hr,f(T(n)(`artifacts.transition.loadFailed`)),1),y(B,{dense:``,flat:``,"no-caps":``,size:`sm`,label:T(n)(`artifacts.transition.reload`),onClick:r[0]||=t=>T(a).load(e.artifact.id)},null,8,[`label`])])):C(``,!0),c.value?(i(),x(fr,{key:4,operation:c.value,onRetry:r[1]||=e=>m(c.value.targetStatus)},null,8,[`operation`])):C(``,!0),y(rr,{modelValue:o.value,"onUpdate:modelValue":r[2]||=e=>o.value=e,"artifact-id":e.artifact.id,target:s.value,"content-ready":e.contentReady},null,8,[`modelValue`,`artifact-id`,`target`,`content-ready`])]))}});function _r(e,t){if(e.storeEpoch!==t.storeEpoch)throw Error(`The artifact graph changed. Refresh before reading more.`)}function vr(e,t){return vt({storeId:e.storeId,fetch:(n,r)=>Z.relations(e.id,t,n??void 0,r),cursor:e=>e.nextCursor,validate:n=>{if(n.items.some(n=>(t===`outgoing`?n.sourceId:n.targetId)!==e.id))throw Error(`A relationship belongs to another artifact.`)},append:(e,t)=>(_r(e,t),{...t,items:[...e.items,...t.items]})})}function yr(e){return vt({storeId:e.storeId,fetch:(t,n)=>Z.ancestry(e.id,t??void 0,n),cursor:e=>e.nextCursor,validate:t=>{if(t.artifactId!==e.id||t.ancestorIds.includes(e.id))throw Error(`The revision ancestry does not match this artifact.`)},append:(e,t)=>(_r(e,t),{...t,ancestorIds:[...e.ancestorIds,...t.ancestorIds]})})}function br(e){return vt({storeId:e.storeId,fetch:(t,n)=>Z.history(e.id,t??0,n),cursor:e=>e.nextAfterSeq,validate:t=>{let n=0;for(let r of t.items){if(r.storeId!==e.storeId||r.artifactId!==e.id||r.seq<=n)throw Error(`The metadata history does not match this artifact.`);n=r.seq}if(t.nextAfterSeq!==null&&(n===0||t.nextAfterSeq!==n))throw Error(`Invalid metadata history continuation.`)},append:(e,t)=>{if(t.items.length&&t.items[0].seq<=(e.items.at(-1)?.seq??0))throw Error(`The metadata history page overlaps. Refresh the history.`);return{...t,items:[...e.items,...t.items]}}})}var xr=4;function Sr(e){let t=vr(e,`outgoing`),n=vr(e,`incoming`),r=yr(e),i=[t,n,r],a=te({titles:new Map,loading:!1,error:null}),o=k(()=>a.loading||i.some(e=>e.state.loading)),s=k(()=>a.error!==null||i.some(e=>e.state.stale)),c=k(()=>[...new Set([a.error,...i.map(e=>e.state.error)].filter(Boolean))].join(`
|
|
2
|
+
`)||null),l=k(()=>i.some(e=>e.state.page?.nextCursor)),u=!1,d=!1,f=0,p=!0,m=null;function h(){return[...new Set([...t.state.page?.items.map(e=>e.targetId)??[],...n.state.page?.items.map(e=>e.sourceId)??[],...r.state.page?.ancestorIds??[]])]}async function g(t){if(!u||d||t!==f)return;let n=h(),r=new Map(n.filter(e=>a.titles.has(e)).map(e=>[e,a.titles.get(e)])),i=n.filter(e=>p||!r.has(e)),o=new AbortController;m?.abort(),m=o,a.loading=!0,a.error=null;let s=null;for(let n=0;n<i.length;n+=xr)if(await Promise.all(i.slice(n,n+xr).map(async t=>{try{let n=await Z.get(t,o.signal);if(n.storeId!==e.storeId||n.id!==t)throw Error(`The linked document belongs to another store or identity.`);r.set(t,n.title)}catch(e){s??=H(e)}})),d||t!==f)return;d||t!==f||(a.titles=r,a.error=s,a.loading=!1,p=s!==null)}async function _(e){if(d)return;u=e;let t=++f;m?.abort(),a.loading=!1,await Promise.all(i.map(t=>t.setActive(e))),e&&await g(t)}async function v(){if(d)return;let e=++f;m?.abort(),a.loading=!1,p=!0,await Promise.all(i.map(e=>e.invalidate())),await g(e)}async function y(){if(!u||d||o.value||s.value)return;let e=++f;await Promise.all(i.filter(e=>e.state.page?.nextCursor).map(e=>e.more())),await g(e)}function b(){d=!0,++f,m?.abort(),a.loading=!1;for(let e of i)e.dispose()}return{outgoing:t,incoming:n,ancestry:r,names:a,loading:o,stale:s,error:c,hasMore:l,setActive:_,invalidate:v,more:y,dispose:b}}function Cr(e,t){Mn(e.invalidate);let n=at();_(()=>D(t)&&n(),t=>{e.setActive(t)},{immediate:!0});let r=W([`artifacts:changed`],()=>{e.invalidate()});return d(()=>{r.close(),e.dispose()}),e}var wr={key:1,role:`alert`,class:`q-pa-sm text-negative`},Tr={key:2,role:`status`,class:`q-pa-sm`},Er=P({__name:`ArtifactDetailState`,props:{loading:{type:Boolean},error:{},stale:{type:Boolean}},setup(e){let{t}=V();return(n,r)=>(i(),j(M,null,[e.loading?(i(),x(yt,{key:0,indeterminate:``})):C(``,!0),e.error?(i(),j(`div`,wr,f(e.error),1)):C(``,!0),e.stale&&!e.loading?(i(),j(`div`,Tr,f(T(t)(`artifacts.details.stale`)),1)):C(``,!0)],64))}}),Dr={class:`q-mb-md`},Or={class:`row justify-center q-pa-sm`},kr=X(P({__name:`ArtifactRelations`,props:{artifact:{}},setup(e){re(e=>({v13c38cf8:t}));let t=`192px`,n={parent:ze,replaces:Re,supplements:je,references:Ae},r=e,{t:a}=V(),o=we(),s=at(),c=ee(`listScroll`),l=Cr(Sr(r.artifact),!0),{outgoing:u,incoming:d,ancestry:p,names:m,loading:h,stale:g,error:_,hasMore:b}=l;async function S(e,t){try{await l.more()}finally{t()}}let E=k(()=>[...[u,d].flatMap((e,t)=>(e.state.page?.items??[]).map(e=>({id:t===0?e.targetId:e.sourceId,key:`${t}:${e.sourceId}:${e.kind}:${e.targetId}`,icon:n[e.kind],directionIcon:t===0?He:Ge,label:`${a(`artifacts.details.`+(t===0?`outgoing`:`incoming`))}: ${a(`artifacts.details.kinds.`+e.kind)}`}))),...(p.state.page?.ancestorIds??[]).map(e=>({id:e,key:`ancestor:${e}`,icon:Be,directionIcon:``,label:a(`artifacts.details.lineage`)}))].map(e=>({...e,title:m.titles.get(e.id)??e.id,route:vn(r.artifact.storeId,e.id,o.query)})));return(e,t)=>(i(),j(`div`,Dr,[y(Er,{loading:T(h),stale:T(g),error:T(_)},null,8,[`loading`,`stale`,`error`]),N(`div`,{ref_key:`listScroll`,ref:c,class:`artifact-relations__list`},[c.value?(i(),x(Yt,{key:0,"scroll-target":c.value,offset:100,disable:!T(b)||T(h)||T(g)||!T(s)(),onLoad:S},{loading:v(()=>[N(`div`,Or,[y(R,{color:`primary`})])]),default:v(()=>[y(ot,{separator:``},{default:v(()=>[(i(!0),j(M,null,F(E.value,e=>(i(),x(J,{key:e.key,to:e.route,clickable:``},{default:v(()=>[y(Y,{avatar:``,class:`app-icon-neutral`},{default:v(()=>[y(z,{name:e.icon,size:`24px`,"aria-label":e.label},{default:v(()=>[y(ke,{delay:T(500)},{default:v(()=>[w(f(e.label),1)]),_:2},1032,[`delay`])]),_:2},1032,[`name`,`aria-label`])]),_:2},1024),y(Y,null,{default:v(()=>[y(q,{class:`artifact-relations__title`},{default:v(()=>[w(f(e.title),1)]),_:2},1024)]),_:2},1024),e.directionIcon?(i(),x(Y,{key:0,side:``,class:`app-icon-neutral`},{default:v(()=>[y(z,{name:e.directionIcon,"aria-label":e.label},null,8,[`name`,`aria-label`])]),_:2},1024)):C(``,!0)]),_:2},1032,[`to`]))),128))]),_:1})]),_:1},8,[`scroll-target`,`disable`])):C(``,!0)],512)]))}}),[[`__scopeId`,`data-v-9509cce5`]]),Ar={key:0,class:`q-pa-md`},jr={class:`artifact-history__events`},Mr={class:`artifact-summary__title`},Nr={class:`artifact-summary__caption q-mt-xs`},Pr={class:`artifact-history__payload`},Fr={key:0,class:`q-pa-sm text-grey`},Ir=X(P({__name:`ArtifactHistory`,props:{artifact:{}},setup(e){let t=e,n=S(!1),{t:r}=V(),{isDark:a}=G(),o=Cr(br(t.artifact),n),s=k(()=>o.state.page?.items.map(e=>({...e,payload:JSON.stringify(e.metadata,null,2)}))??[]);return(e,t)=>(i(),x(At,{modelValue:n.value,"onUpdate:modelValue":t[0]||=e=>n.value=e,icon:T(Ye),label:T(r)(`artifacts.details.history`),class:O([`app-icon-expansion artifact-history artifact-summary q-mb-md`,{"artifact-summary--dark":T(a)}])},{default:v(()=>[n.value?(i(),j(`div`,Ar,[y(Er,{loading:T(o).state.loading,error:T(o).state.error,stale:T(o).state.stale},null,8,[`loading`,`error`,`stale`]),N(`ol`,jr,[(i(!0),j(M,null,F(s.value,e=>(i(),j(`li`,{key:e.seq,class:`q-mb-md`},[N(`div`,Mr,f(e.metadata.title),1),N(`div`,Nr,f(T(Lt)(e.createdAt))+` · `+f(e.actor.kind)+`: `+f(e.actor.id)+` · #`+f(e.seq)+` · `+f(T(r)(`artifacts.details.eventVersion`,{version:e.afterVersion}))+` · `+f(T(r)(`artifacts.details.actions.`+e.action)),1),y(At,{class:`app-icon-expansion`,label:T(r)(`artifacts.details.recordedMetadata`),dense:``},{default:v(()=>[N(`pre`,Pr,f(e.payload),1)]),_:2},1032,[`label`])]))),128))]),!T(o).state.loading&&!T(o).state.error&&!s.value.length?(i(),j(`div`,Fr,f(T(r)(`artifacts.details.noHistory`)),1)):C(``,!0),T(o).state.page?.nextAfterSeq!==null&&T(o).state.page?(i(),x(B,{key:1,flat:``,disable:T(o).state.loading||T(o).state.stale,label:T(r)(`artifacts.more`),onClick:T(o).more},null,8,[`disable`,`label`,`onClick`])):C(``,!0)])):C(``,!0)]),_:1},8,[`modelValue`,`icon`,`label`,`class`]))}}),[[`__scopeId`,`data-v-170776c7`]]),Lr={class:`artifact-pane column no-wrap fit`},Rr={class:`q-pa-md`},zr={class:`text-h5 q-my-sm`},Br={class:`row items-center q-gutter-sm`},Vr={class:`text-caption`},Hr={class:`text-caption q-mt-sm`},Ur={key:0,class:`q-mt-sm document-tags`},Wr={class:`q-pa-lg artifact-pane__body`},Gr={key:1,class:`row items-center q-gutter-sm`,role:`status`},Kr={class:`text-weight-medium`},qr={class:`text-caption q-mt-xs`},Jr=X(P({__name:`ArtifactPane`,props:{artifact:{},body:{}},setup(e){let{t}=V(),n=rn(),{loading:r,refresh:a}=jn(n.retryContent),o=k(()=>$t(n.contentState)),s=k(()=>en(n.contentErrorKind));return(c,l)=>(i(),j(`section`,Lr,[N(`div`,Rr,[N(`h1`,zr,f(e.artifact.title),1),N(`div`,Br,[(i(),x(gr,{key:e.artifact.id,artifact:e.artifact,"content-ready":o.value},null,8,[`artifact`,`content-ready`])),N(`span`,Vr,f(e.artifact.typeId),1),y(rt),y(Vt,{dense:!1,disable:!s.value,title:s.value?void 0:T(t)(`artifacts.content.blocked`),label:T(t)(`artifacts.addToAgent`),context:{kind:`artifact`,storeId:e.artifact.storeId,artifactId:e.artifact.id,name:e.artifact.title}},null,8,[`disable`,`title`,`label`,`context`]),(i(),x(Pn,{key:e.artifact.id,"artifact-id":e.artifact.id,"original-allowed":s.value},null,8,[`artifact-id`,`original-allowed`])),T(n).verifying?(i(),x(R,{key:0,size:`1em`,role:`status`,"aria-label":T(t)(`artifacts.content.verifying`)},null,8,[`aria-label`])):C(``,!0),y(Xt,{dense:!1,loading:T(r),tooltip:T(t)(`artifacts.refresh`),onClick:T(a)},null,8,[`loading`,`tooltip`,`onClick`])]),N(`div`,Hr,f(T(t)(`artifacts.currentMetadata`)),1),e.artifact.tags.length?(i(),j(`div`,Ur,[(i(!0),j(M,null,F(e.artifact.tags,e=>(i(),x(It,{key:e,dense:``},{default:v(()=>[w(f(e),1)]),_:2},1024))),128))])):C(``,!0)]),y(I),y(ut,{class:`col`},{default:v(()=>[N(`div`,Wr,[y(zn,{artifact:e.artifact},null,8,[`artifact`]),y(Ir,{artifact:e.artifact},null,8,[`artifact`]),y(kr,{artifact:e.artifact},null,8,[`artifact`]),T(n).contentState===`ready`?(i(),x(Ct,{key:0,text:e.body,variant:`document`,"disable-images":``,"heading-anchors":``},null,8,[`text`])):T(n).contentState===`loading`?(i(),j(`div`,Gr,[y(R,{size:`1em`}),N(`span`,null,f(T(t)(`artifacts.content.loading`)),1)])):T(n).contentState===`error`?(i(),x(K,{key:2,dense:``,class:`bg-negative text-white`,role:`alert`},{action:v(()=>[y(B,{flat:``,"no-caps":``,label:T(t)(`artifacts.content.retry`),disable:T(n).documentLoading,onClick:T(n).retryContent},null,8,[`label`,`disable`,`onClick`])]),default:v(()=>[N(`div`,Kr,f(T(t)(T(n).contentErrorKind===`integrity`?`artifacts.content.integrity`:`artifacts.content.failed`)),1),N(`div`,null,f(T(n).contentError),1),N(`div`,qr,f(T(t)(`artifacts.content.hint`)),1)]),_:1})):C(``,!0)])]),_:1})]))}}),[[`__scopeId`,`data-v-18ff9445`]]),Yr={class:`column no-wrap fit artifact-document-panel`},Xr={key:1,class:`q-pa-lg text-grey`},Zr=X(P({__name:`ArtifactDocumentPanel`,setup(e){let{t}=V(),n=rn();return(e,r)=>(i(),j(`section`,Yr,[y(Cn,{loading:T(n).documentLoading,error:T(n).documentError},{action:v(()=>[y(B,{flat:``,label:T(t)(`artifacts.refresh`),onClick:T(n).refreshDocument},null,8,[`label`,`onClick`])]),_:1},8,[`loading`,`error`]),T(n).document?(i(),x(Jr,{key:T(n).document.storeId+`:`+T(n).document.id,artifact:T(n).document,body:T(n).body},null,8,[`artifact`,`body`])):!T(n).documentLoading&&!T(n).documentError?(i(),j(`div`,Xr,f(T(t)(`artifacts.select`)),1)):C(``,!0)]))}}),[[`__scopeId`,`data-v-3e12d2a1`]]),Qr=P({__name:`ArtifactsPage`,setup(e){let t=we(),n=be(),r=rn(),a=dt(),o=k(()=>_n(t.query)),s=k(()=>JSON.stringify(o.value.input)),c=k(()=>JSON.stringify(o.value.selection)),l=k(()=>!a.narrow.value||!a.window.value&&(a.pane.value===`list`||a.pane.value===`content`)),u=k(()=>l.value&&(!a.narrow.value||a.pane.value===`list`));bt(()=>r.storeId,()=>l.value,()=>r.catalog?.items??[]);let f=k(()=>[...new Set((r.catalog?.items??[]).flatMap(e=>e.tags))].sort((e,t)=>e.localeCompare(t)));function p(e){ft(n,()=>({query:gn(t.query,e)}))}function m(e){ft(n,()=>({query:{...t.query,q:e||void 0}}))}function h(e){ft(n,()=>({query:{...t.query,storeId:e.storeId,selectedId:e.id,...a.narrow.value?{uiPane:`content`,uiWindow:void 0}:{}}}))}_(s,()=>void r.search(o.value.input),{immediate:!0}),_(c,()=>void r.select(o.value.selection),{immediate:!0});let g=W([`artifacts:changed`],()=>{r.refresh(),r.refreshDocument()});return d(()=>{g.close(),r.cancel()}),(e,n)=>(i(),x(zt,null,{default:v(()=>[y(Bt,{class:`fit`,"storage-key":`githuman.artifactsListWidth`,"default-width":340},{panel:v(()=>[y(kn,{filters:o.value.filters,query:o.value.input.query??null,"selected-id":o.value.selection?.id,"search-key":s.value,"navigation-key":T(t).fullPath,"tag-options":f.value,active:u.value,"onUpdate:filters":p,"onUpdate:query":m,onSelect:h},null,8,[`filters`,`query`,`selected-id`,`search-key`,`navigation-key`,`tag-options`,`active`])]),content:v(()=>[y(Zr)]),_:1})]),_:1}))}});export{Qr as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,L as t,S as n,Y as r,b as i,dt as a,l as o,lt as s,w as c}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{a as l,f as u,l as d,r as f,t as p}from"./use-router-link-D7geCGQI.js";import{a as m,c as h,i as g,l as _,o as v,r as y,s as b,u as x}from"./event-rR76ioXz.js";import{s as S}from"./is-B1kBQ5Va.js";import{n as C,t as w}from"./create-DedXY-KP.js";import{a as ee,i as te,r as T,u as ne}from"./render-Brao9Nj2.js";import{C as re,D as ie,E,F as ae,I as oe,L as se,M as ce,N as le,P as D,R as ue,S as de,T as fe,V as O,_ as k,b as pe,g as me,h as he,j as ge,m as _e,n as ve,p as ye,r as be,v as xe,w as Se,x as A,y as Ce,z as j}from"./QSeparator-B8uLaDiI.js";import{f as we}from"./QInput-BnqLJGXl.js";import{p as Te}from"./QBtn-V3VXtJXi.js";import{n as M,t as N}from"./use-dark-BHObfh0O.js";var P=w({name:`QItemSection`,props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:t}){let r=o(()=>`q-item__section column q-item__section--${e.avatar||e.side||e.thumbnail?`side`:`main`}`+(e.top?` q-item__section--top justify-start`:` justify-center`)+(e.avatar?` q-item__section--avatar`:``)+(e.thumbnail?` q-item__section--thumbnail`:``)+(e.noWrap?` q-item__section--nowrap`:``));return()=>n(`div`,{class:r.value},T(t.default))}}),Ee=w({name:`QItem`,props:{...M,...f,tag:{type:String,default:`div`},active:{type:Boolean,default:null},clickable:{type:Boolean,default:null},onClick:Function,dense:Boolean,insetLevel:Number,role:String,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:[`keyup`],setup(e,{slots:t,emit:r}){let i=ee(),s=N(e,i),{hasLink:l,linkAttrs:u,linkClass:f,linkTag:m,navigateOnClick:h}=p(),g=a(null),_=a(null),v=o(()=>(e.clickable===null?e.onClick!==void 0:e.clickable)||l.value||e.tag===`label`),y=o(()=>!e.disable&&v.value),b=c(ne,null),S=o(()=>{if(e.role!==void 0)return e.role;let t=b===null?null:b.value;if(t===`menu`||t===`menubar`)return v.value?`menuitem`:void 0;if(!l.value)return y.value?`button`:t===`list`?`listitem`:void 0}),C=o(()=>`q-item q-item-type row no-wrap`+(e.dense?` q-item--dense`:``)+(s()?` q-item--dark`:``)+(l.value&&e.active===null?f.value:e.active?` q-item--active${e.activeClass===void 0?``:` ${e.activeClass}`}`:``)+(e.disable?` disabled`:``)+(y.value?` q-item--clickable q-link cursor-pointer `+(e.manualFocus?`q-manual-focusable`:`q-focusable q-hoverable`)+(e.focused?` q-manual-focusable--focused`:``):``)),w=o(()=>e.insetLevel===void 0?null:{[`padding`+(i.lang.rtl?`Right`:`Left`)]:16+e.insetLevel*56+`px`});function T(e){y.value&&(_.value!==null&&!e.qAvoidFocus&&(!e.qKeyEvent&&document.activeElement===g.value?_.value.focus({preventScroll:!0}):document.activeElement===_.value&&g.value.focus({preventScroll:!0})),h(e))}function re(e){if(y.value&&d(e,[13,32])){x(e),e.qKeyEvent=!0;let t=new MouseEvent(`click`,e);t.qKeyEvent=!0,g.value.dispatchEvent(t)}r(`keyup`,e)}function ie(e){y.value&&e.keyCode===32&&x(e)}function E(){let e=te(t.default,[]);return y.value&&e.unshift(n(`div`,{class:`q-focus-helper`,tabindex:-1,ref:_})),e}return()=>{let t={ref:g,class:C.value,style:w.value,role:S.value,onKeyup:re};return y.value?(t.onClick=T,t.onKeydown=ie,t.tabindex=e.tabindex||`0`,Object.assign(t,u.value)):v.value&&(t[`aria-disabled`]=`true`),n(m.value,t,E())}}}),De=[`ul`,`ol`],F=w({name:`QList`,props:{...M,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,role:String,tag:{type:String,default:`div`}},setup(e,{slots:r}){let i=ee(),a=N(e,i),s=o(()=>e.role===void 0?De.includes(e.tag)?null:`list`:e.role);t(ne,o(()=>e.role===void 0?`list`:e.role));let c=o(()=>`q-list`+(e.bordered?` q-list--bordered`:``)+(e.dense?` q-list--dense`:``)+(e.separator?` q-list--separator`:``)+(a()?` q-list--dark`:``)+(e.padding?` q-list--padding`:``));return()=>n(e.tag,{class:c.value,role:s.value},T(r.default))}}),I={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},Oe=Object.keys(I);I.all=!0;function L(e){let t={};for(let n of Oe)e[n]&&(t[n]=!0);return Object.keys(t).length===0?I:(t.horizontal?t.left=t.right=!0:t.left&&t.right&&(t.horizontal=!0),t.vertical?t.up=t.down=!0:t.up&&t.down&&(t.vertical=!0),t.horizontal&&t.vertical&&(t.all=!0),t)}var R=[`INPUT`,`TEXTAREA`];function z(e,t){return t.event===void 0&&e.target!==void 0&&!e.target.draggable&&typeof t.handler==`function`&&!R.includes(e.target.nodeName.toUpperCase())&&(e.qClonedBy===void 0||!e.qClonedBy.includes(t.uid))}var{passive:ke,passiveCapture:B,notPassiveCapture:V}=g,Ae=0;function H(e,t,n){let r=v(e),i,a=r.left-t.event.x,o=r.top-t.event.y,s=Math.abs(a),c=Math.abs(o),l=t.direction;l.horizontal&&!l.vertical?i=a<0?`left`:`right`:!l.horizontal&&l.vertical?i=o<0?`up`:`down`:l.up&&o<0?(i=`up`,s>c&&(l.left&&a<0?i=`left`:l.right&&a>0&&(i=`right`))):l.down&&o>0?(i=`down`,s>c&&(l.left&&a<0?i=`left`:l.right&&a>0&&(i=`right`))):l.left&&a<0?(i=`left`,s<c&&(l.up&&o<0?i=`up`:l.down&&o>0&&(i=`down`))):l.right&&a>0&&(i=`right`,s<c&&(l.up&&o<0?i=`up`:l.down&&o>0&&(i=`down`)));let u=!1;if(i===void 0&&n===!1){if(t.event.isFirst||t.event.lastDir===void 0)return{};i=t.event.lastDir,u=!0,i===`left`||i===`right`?(r.left-=a,s=0,a=0):(r.top-=o,c=0,o=0)}return{synthetic:u,payload:{evt:e,touch:t.event.mouse!==!0,mouse:t.event.mouse===!0,position:r,direction:i,isFirst:t.event.isFirst,isFinal:n===!0,duration:Date.now()-t.event.time,distance:{x:s,y:c},offset:{x:a,y:o},delta:{x:r.left-t.event.lastX,y:r.top-t.event.lastY}}}}function U(e,t,n){t.modifiers=n,t.direction=L(n),t.stop=n.stop===!0,t.prevent=n.prevent===!0,t.mouseAllDir=n.mouseAllDir===!0||n.mousealldir===!0,t.preserveCursor=n.preserveCursor===!0||n.preservecursor===!0;let r=n.mouse?n.mouseCapture||n.mousecapture?B:ke:null;r!==t.mouseOpts&&(t.mouseOpts!==null&&e.removeEventListener(`mousedown`,W,t.mouseOpts),r!==null&&e.addEventListener(`mousedown`,W,r),t.mouseOpts=r);let i=S.has.touch?n.capture?B:ke:null;i!==t.touchOpts&&(t.touchOpts!==null&&e.removeEventListener(`touchstart`,G,t.touchOpts),i!==null&&e.addEventListener(`touchstart`,G,i),t.touchOpts=i)}function W(e){let t=e.currentTarget.__qtouchpan;z(e,t)&&y(e)&&(t.target=document,document.addEventListener(`mousemove`,t,V),document.addEventListener(`mouseup`,t,B),Ne(t,e,!0))}function G(e){let t=e.currentTarget.__qtouchpan;if(z(e,t)){let{target:n}=e;t.target=n,n.addEventListener(`touchmove`,t,V),n.addEventListener(`touchcancel`,t,B),n.addEventListener(`touchend`,t,B),Ne(t,e,!1)}}function je(e){e.type===`mousemove`||e.type===`touchmove`?q(this,e):J(this,e)}function Me(e,t,n){n?x(t):(e.stop&&_(t),e.prevent&&b(t))}function Ne(e,t,n){if(S.is.firefox&&h(e.el,!0),e.lastEvt=t,n||e.stop){if(!e.direction.all&&(!n||!e.mouseAllDir)){let n=t.type.includes(`mouse`)?new MouseEvent(t.type,t):new TouchEvent(t.type,t);t.defaultPrevented&&b(n),t.cancelBubble&&_(n),Object.assign(n,{qKeyEvent:t.qKeyEvent,qClickOutside:t.qClickOutside,qAnchorHandled:t.qAnchorHandled,qClonedBy:t.qClonedBy===void 0?[e.uid]:t.qClonedBy.concat(e.uid)}),e.initialEvent={target:t.target,event:n}}_(t)}let{left:r,top:i}=v(t);e.event={x:r,y:i,time:Date.now(),mouse:n,detected:!1,isFirst:!0,isFinal:!1,lastX:r,lastY:i,lastDir:void 0}}function K(e,t,n){Me(e,t,n),e.styled=!0,e.preserveCursor||(e.cursor=document.documentElement.style.cursor||``,document.documentElement.style.cursor=`grabbing`),n&&document.body.classList.add(`no-pointer-events--children`),document.body.classList.add(`non-selectable`),O()}function Pe(e,t){e.styled=!1,e.cursor!==void 0&&(document.documentElement.style.cursor=e.cursor,e.cursor=void 0),document.body.classList.remove(`non-selectable`),t&&document.body.classList.remove(`no-pointer-events--children`)}function q(e,t){let{event:n}=e;if(n===void 0)return;let r=v(t),i=r.left-n.x,a=r.top-n.y;if(i===0&&a===0)return;e.lastEvt=t;let{mouse:o}=n;if(n.detected){n.isFirst||Me(e,t,o);let{payload:r,synthetic:i}=H(t,e,!1);r!==void 0&&(e.handler(r)===!1?J(e,t):(!e.styled&&n.isFirst&&K(e,t,o),n.lastX=r.position.left,n.lastY=r.position.top,n.lastDir=i?void 0:r.direction,n.isFirst=!1));return}let{direction:s}=e;if(s.all||o&&e.mouseAllDir){K(e,t,o),n.detected=!0,q(e,t);return}let c=Math.abs(i),l=Math.abs(a);c!==l&&(s.horizontal&&c>l||s.vertical&&c<l||s.up&&c<l&&a<0||s.down&&c<l&&a>0||s.left&&c>l&&i<0||s.right&&c>l&&i>0?(n.detected=!0,q(e,t)):J(e,t,!0))}function J(e,t,n){let{event:r,target:i}=e;if(r===void 0)return;let{mouse:a}=r;if(a?(i.removeEventListener(`mousemove`,e,V),i.removeEventListener(`mouseup`,e,B)):(i.removeEventListener(`touchmove`,e,V),i.removeEventListener(`touchcancel`,e,B),i.removeEventListener(`touchend`,e,B)),S.is.firefox&&h(e.el,!1),n)e.styled&&Pe(e,a),!r.detected&&e.initialEvent!==void 0&&e.initialEvent.target.dispatchEvent(e.initialEvent.event);else if(r.detected){t===void 0&&(t=e.lastEvt),r.isFirst&&e.handler(H(t,e).payload);let{payload:n}=H(t,e,!0),{handler:i}=e;e.styled?(Pe(e,a),a?setTimeout(i,50,n):i(n)):i(n)}e.event=void 0,e.initialEvent=void 0,e.lastEvt=void 0,e.target=null}var Fe=C({name:`touch-pan`,beforeMount(e,{value:t,modifiers:n}){let r={handleEvent:je,el:e,uid:`qvtp_`+Ae++,handler:t,modifiers:void 0,direction:void 0,stop:!1,prevent:!1,mouseAllDir:!1,preserveCursor:!1,mouseOpts:null,touchOpts:null,target:null,event:void 0,initialEvent:void 0,lastEvt:void 0,styled:!1,cursor:void 0};e.__qtouchpan=r,U(e,r,n),r.touchOpts!==null&&e.addEventListener(`touchmove`,m,V)},updated(e,{oldValue:t,value:n,modifiers:r}){let i=e.__qtouchpan;i!==void 0&&(t!==n&&(typeof n!=`function`&&J(i),i.handler=n),r!==i.modifiers&&U(e,i,r))},beforeUnmount(e){let t=e.__qtouchpan;t!==void 0&&(J(t),t.mouseOpts!==null&&e.removeEventListener(`mousedown`,W,t.mouseOpts),t.touchOpts!==null&&(e.removeEventListener(`touchstart`,G,t.touchOpts),e.removeEventListener(`touchmove`,m,V)),e.__qtouchpan=void 0)}}),Ie={hover:Boolean,hoverDelay:{type:Number,default:0},hoverHideDelay:{type:Number,default:150}};function Le({props:e,canShow:t,show:n,canHide:r,hide:i}){let{removeTimeout:a,registerTimeout:o}=re();function s(r){e.hover===!0&&r.pointerType!==`touch`&&(a(),t(r)&&(e.hoverDelay>0?o(()=>{n(r)},e.hoverDelay):n(r)))}function c(t){a(),r(t)&&o(()=>{i(t)},e.hoverHideDelay)}function l(t){e.hover===!0&&t.pointerType!==`touch`&&c(t)}function u(e){e.pointerType!==`touch`&&a()}return{clearHoverTimer:a,hoverShow:s,hoverHide:l,scheduleHoverHide:c,onHoverContentEnter:u}}var Y=null,{notPassiveCapture:X,passiveCapture:Re}=g,Z=[];function Q(e){Y!==null&&(clearTimeout(Y),Y=null);let t=e.target;if(t===void 0||t.nodeType===8||t.classList.contains(`no-pointer-events`))return;let n=null,r=!1;for(let e=D.length-1;e>=0;e--){let t=D[e].$,i=t.type.name;if(i!==`QTooltip`){if(i===`QDialog`){if(t.props.seamless!==!0){if(r===!1)return;n=new Set(D.slice(e+1).map(e=>e.contentEl));break}continue}r=!0}}for(let r=Z.length-1;r>=0;r--){let i=Z[r];if(n!==null&&!n.has(i.innerRef.value))return;if((i.anchorEl.value===null||!i.anchorEl.value.contains(t)&&!k(i.anchorEl.value,t))&&(t===document.body||i.innerRef.value!==null&&!i.innerRef.value.contains(t)&&!k(i.innerRef.value,t)))e.qClickOutside=!0,i.onClickOutside(e);else return}}function ze(e){e.pointerType!==`touch`&&(Y!==null&&clearTimeout(Y),Y=setTimeout(()=>{Y=null,Q(e)},0))}function Be(e){Z.push(e),Z.length===1&&(document.addEventListener(`pointerdown`,ze,Re),document.addEventListener(`mousedown`,Q,X),document.addEventListener(`touchstart`,Q,X))}function Ve(e){let t=Z.indexOf(e);t!==-1&&(Z.splice(t,1),Z.length===0&&(Y!==null&&(clearTimeout(Y),Y=null),document.removeEventListener(`pointerdown`,ze,Re),document.removeEventListener(`mousedown`,Q,X),document.removeEventListener(`touchstart`,Q,X)))}var He=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex^="-"])`,Ue=w({name:`QMenu`,inheritAttrs:!1,props:{...j,...se,...M,...E,persistent:Boolean,autoClose:Boolean,separateClosePopup:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,fit:Boolean,cover:Boolean,square:Boolean,anchor:{type:String,validator:A},self:{type:String,validator:A},offset:{type:Array,validator:pe},touchPosition:Boolean,...Ie,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null}},emits:[...oe,`click`,`escapeKey`],setup(t,{slots:c,emit:d,attrs:f}){let p,m=!1,h=i(),{proxy:g}=h,_=ee(),v=a(null),y=s(!1),b=o(()=>!t.persistent&&!t.noRouteDismiss),S=N(t,_),{registerTick:C,removeTick:w}=Se(),{registerTransitionEnd:te}=de(t),{transitionProps:ne,transitionStyle:re}=fe(t),{anchorEl:E,canShow:oe,anchorEvents:se}=ue({showing:y,getPopupRole:()=>f.role}),{show:ce,hide:D}=ae({showing:y,canShow:oe,canHide(e){return m&&P()?e?.type!==`click`:!0},handleShow:je,handleHide:Me,handleRouteChange:Ne,hideOnRouteChange:b,processOnMount:!0}),{clearHoverTimer:O,hoverShow:k,scheduleHoverHide:pe,onHoverContentEnter:A}=Le({props:t,canShow:()=>!y.value,show:ce,canHide:e=>y.value&&!W(e.relatedTarget),hide:D});Object.assign(se,{hoverShow:k,hoverHide:G});let{showPortal:j,hidePortal:M,portalIsOpening:P,renderPortal:Ee}=ie(h,v,Ie,`menu`),{captureRefocusTarget:De,clearRefocusTarget:F,restoreFocus:I,restoreFocusSync:Oe,adoptRefocusTarget:L}=ye(t,()=>!t.noFocus&&!m&&P()),R={anchorEl:E,innerRef:v,onClickOutside(e){if(!t.persistent&&y.value)return D(e),(e.type===`touchstart`||e.target.classList.contains(`q-dialog__backdrop`))&&x(e),!0}},z=o(()=>Ce(t.anchor||(t.cover?`center middle`:`bottom start`),_.lang.rtl)),ke=o(()=>t.cover?z.value:Ce(t.self||`top start`,_.lang.rtl)),B=me({props:t,$q:_,anchorEl:E,innerRef:v,showing:y,anchorOrigin:z,selfOrigin:ke}),V=o(()=>`q-menu scroll`+(B.viaCssAnchor?``:` q-position-engine`)+(t.square?` q-menu--square`:``)+(S()?` q-menu--dark q-dark`:``)),Ae=o(()=>t.autoClose?{onClick:Pe}:{}),H=o(()=>y.value&&!t.persistent);r(H,e=>{e?(_e(J),Be(R)):(he(J),Ve(R))});function U(){we(()=>{let e=v.value;e&&e.contains!==void 0&&!e.contains(document.activeElement)&&(e=e.querySelector(`[autofocus][tabindex], [data-autofocus][tabindex]`)||e.querySelector(`[autofocus] [tabindex], [data-autofocus] [tabindex]`)||e.querySelector(`[autofocus], [data-autofocus]`)||e,e.focus({preventScroll:!0}))})}function W(e){if(e==null)return!1;if(E.value!==null&&E.value.contains(e)||v.value!==null&&v.value.contains(e))return!0;let t=le(e);for(;t!=null;){if(t===g)return!0;t=l(t)}return!1}function G(e){if(e.pointerType===`touch`)return;pe(e);let t=l(g);for(;t!=null;)t.$options.name===`QMenu`&&t.$props.hover===!0&&t.__qHoverHide?.(e),t=l(t)}function je(e){m=t.hover&&e?.type===`pointerenter`,O(),De(m),ve(q),j(!1,m),B.handleShow(!m&&(t.touchPosition||t.contextMenu)?e:void 0),!t.noFocus&&!m&&document.activeElement.blur(),C(()=>{B.handleTick(),!t.noFocus&&!m&&U()}),te(()=>{_.platform.is.ios&&(p=t.autoClose,v.value.click()),B.viaCssAnchor||B.track(),j(!0),d(`show`,e)})}function Me(e){m=!1,w(),M(),K(!0),e===void 0||!e.qClickOutside?I(e):F(),te(()=>{M(!0),B.releaseAnchor(!1),d(`hide`,e)})}function Ne(){F()}function K(e){O(),B.releaseAnchor(e),(e||y.value)&&(be(q),Ve(R),he(J)),e||F()}function Pe(e){p?p=!1:(ge(g,e),d(`click`,e))}function q(e){H.value&&!t.noFocus&&!m&&!Te(v.value,e.target)&&!xe(v.value,e.target)&&U()}function J(e){t.noEscDismiss||(d(`escapeKey`),D(e))}function Fe(e){if(e.keyCode!==9||e.defaultPrevented||!H.value||v.value===null)return;let t=v.value,n=t.querySelectorAll(He),r=n.length===0?null:n[e.shiftKey?0:n.length-1];(r===null||document.activeElement===r||e.shiftKey&&document.activeElement===t)&&(be(q),Oe(e),D(e))}function Ie(){return n(u,ne(),()=>y.value?n(`div`,{...f,ref:v,tabindex:-1,onKeydown:[].concat(f.onKeydown||[],Fe),...t.hover?{onPointerenter:[].concat(f.onPointerenter||[],A),onPointerleave:[].concat(f.onPointerleave||[],G)}:{},class:[V.value,f.class],style:[f.style,re(),B.positionStyle.value],...Ae.value},T(c.default)):null)}return e(()=>{K(!1)}),Object.assign(g,{focus:U,updatePosition:B.updatePosition,__adoptRefocusTarget:L}),g.__qHoverHide=pe,Ee}});function We(e){return e===!1?0:e===!0||e===void 0?1:Number.parseInt(e,10)||0}function $(e){let t=e.currentTarget,n=t.__qclosepopup;n!==0&&setTimeout(()=>{let r=le(t);r!==void 0&&ce(r,e,n)},0)}function Ge(e){d(e,13)&&$(e)}var Ke=C({name:`close-popup`,beforeMount(e,{value:t}){e.__qclosepopup=We(t),e.addEventListener(`click`,$),e.addEventListener(`keyup`,Ge)},updated(e,{value:t,oldValue:n}){t!==n&&e.__qclosepopup!==void 0&&(e.__qclosepopup=We(t))},beforeUnmount(e){e.__qclosepopup!==void 0&&(e.removeEventListener(`click`,$),e.removeEventListener(`keyup`,Ge),e.__qclosepopup=void 0)}});export{Fe as a,F as c,Ie as i,Ee as l,Ue as n,L as o,Le as r,z as s,Ke as t,P as u};
|
package/dist/web/assets/{CreateReviewFabButton-BCg1TvFh.js → CreateReviewFabButton-DVSiNykk.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as e,K as t,Pt as n,Q as r,S as i,T as a,Z as o,_ as s,b as c,d as l,gt as u,l as d,lt as f,p,r as m,u as h,w as g,y as _}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{_ as v}from"./use-router-link-D7geCGQI.js";import{t as y}from"./create-DedXY-KP.js";import{a as b,l as x,o as S,r as C}from"./render-Brao9Nj2.js";import{t as w}from"./QInput-BnqLJGXl.js";import{
|
|
1
|
+
import{I as e,K as t,Pt as n,Q as r,S as i,T as a,Z as o,_ as s,b as c,d as l,gt as u,l as d,lt as f,p,r as m,u as h,w as g,y as _}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{_ as v}from"./use-router-link-D7geCGQI.js";import{t as y}from"./create-DedXY-KP.js";import{a as b,l as x,o as S,r as C}from"./render-Brao9Nj2.js";import{t as w}from"./QInput-BnqLJGXl.js";import{a as T,c as E,o as D,s as O}from"./index-CstRcwnO.js";import{n as k}from"./vue-i18n.runtime-JOo8b7-t.js";import{It as A}from"./mdi-Du7sIqtH.js";import{n as j,r as M}from"./pinia-BfqEuvsi.js";import{a as N,l as P,n as F}from"./single-flight-CyDZB3rb.js";import{a as I,t as L}from"./ClosePopup-Bd5a-Lu_.js";import{t as R}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as z}from"./diff-store-DCqGPv2R.js";import{t as B}from"./CancelButton-mkxRHwoZ.js";import{n as V,r as H,t as U}from"./CreateButton-zCmb7snC.js";import{t as W}from"./QFab-DJhLqo9i.js";var G={position:{type:String,default:`bottom-right`,validator:e=>[`top-right`,`top-left`,`bottom-right`,`bottom-left`,`top`,`right`,`bottom`,`left`].includes(e)},offset:{type:Array,validator:e=>e.length===2},expand:Boolean};function K(){let{props:e}=c(),t=b(),n=g(x,S);if(n===S)return console.error(`QPageSticky needs to be child of QLayout`),S;let r=d(()=>{let t=e.position;return{top:t.includes(`top`),right:t.includes(`right`),bottom:t.includes(`bottom`),left:t.includes(`left`),vertical:t===`top`||t===`bottom`,horizontal:t===`left`||t===`right`}}),a=d(()=>n.header.offset),o=d(()=>n.right.offset),s=d(()=>n.footer.offset),l=d(()=>n.left.offset),u=d(()=>{let n=0,i=0,c=r.value,u=t.lang.rtl?-1:1;c.top&&a.value!==0?i=`${a.value}px`:c.bottom&&s.value!==0&&(i=`${-s.value}px`),c.left&&l.value!==0?n=`${u*l.value}px`:c.right&&o.value!==0&&(n=`${-u*o.value}px`);let d={transform:`translate(${n}, ${i})`};return e.offset&&(d.margin=`${e.offset[1]}px ${e.offset[0]}px`),c.vertical?(l.value!==0&&(d[t.lang.rtl?`right`:`left`]=`${l.value}px`),o.value!==0&&(d[t.lang.rtl?`left`:`right`]=`${o.value}px`)):c.horizontal&&(a.value!==0&&(d.top=`${a.value}px`),s.value!==0&&(d.bottom=`${s.value}px`)),d}),f=d(()=>`q-page-sticky row flex-center fixed-${e.position} q-page-sticky--${e.expand?`expand`:`shrink`}`);function p(t){let n=C(t.default);return i(`div`,{class:f.value,style:u.value},e.expand?n:[i(`div`,n)])}return{$layout:n,getStickyContent:p}}var q=y({name:`QPageSticky`,props:G,setup(e,{slots:t}){let{getStickyContent:n}=K();return()=>n(t)}});function J(e){let t=new URLSearchParams;e.search&&t.set(`search`,e.search),e.createdFrom&&t.set(`createdFrom`,e.createdFrom),e.createdTo&&t.set(`createdTo`,e.createdTo),e.files&&e.files.length>0&&t.set(`files`,e.files.join(`,`));let n=t.toString();return n?`?${n}`:``}var Y=j(`reviews`,()=>{let e=f([]),t=f(!1),n=f(null);async function r(r={}){t.value=!0,n.value=null;try{e.value=await N(`/api/reviews${J(r)}`)}catch(t){e.value=[],n.value=F(t)}finally{t.value=!1}}async function i(t){let n=await P(`/api/reviews`,t);return e.value=[H(n),...e.value],n}return{reviews:e,loading:t,error:n,fetchReviews:r,createReview:i}}),X={class:`text-h6`},Z=R(_({__name:`ReviewCreateDialog`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:a([`created`,`hide`],[`update:modelValue`]),setup(i,{emit:a}){let c=t(i,`modelValue`),d=a,{t:p}=k(),m=Y(),g=f(``),_=f(!1),y=f(null);function b(){g.value=``,_.value=!1,y.value=null}async function x(){_.value=!0,y.value=null;try{let e=g.value.trim(),t=await m.createReview(e?{name:e}:{});c.value=!1,b(),d(`created`,t)}catch(e){y.value=F(e)}finally{_.value=!1}}function S(){b(),d(`hide`)}return(t,i)=>(e(),l(E,{modelValue:c.value,"onUpdate:modelValue":i[1]||=e=>c.value=e,onHide:S},{default:o(()=>[s(O,{class:`review-create-dialog`},{default:o(()=>[s(D,null,{default:o(()=>[h(`div`,X,n(u(p)(`reviews.create.title`)),1)]),_:1}),s(D,{class:`q-gutter-y-md`},{default:o(()=>[s(w,{modelValue:g.value,"onUpdate:modelValue":i[0]||=e=>g.value=e,dense:``,outlined:``,label:u(p)(`reviews.create.nameLabel`),hint:u(p)(`reviews.create.nameHint`),error:!!y.value,"error-message":y.value??void 0,onKeyup:v(x,[`enter`])},null,8,[`modelValue`,`label`,`hint`,`error`,`error-message`])]),_:1}),s(T,{align:`right`},{default:o(()=>[r(s(B,null,null,512),[[L]]),s(U,{loading:_.value,onClick:x},null,8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]))}}),[[`__scopeId`,`data-v-dd3d2128`]]),Q=_({__name:`CreateReviewFabButton`,emits:[`created`],setup(t,{emit:n}){let i=n,a=V(),c=z(),{activeReview:l}=M(a),{changedPaths:h}=M(c),g=f(!1),_=f(!1),v=f([18,18]),y=f(!1),b=d(()=>h.value.length===0||l.value!==null);function x(e){y.value=e.isFirst!==!0&&e.isFinal!==!0,v.value=[v.value[0]-(e.delta?.x??0),v.value[1]-(e.delta?.y??0)]}function S(e){a.setActiveReview(e),i(`created`,e)}return(t,n)=>(e(),p(m,null,[s(q,{position:`bottom-right`,offset:v.value},{default:o(()=>[r(s(W,{modelValue:_.value,"onUpdate:modelValue":n[0]||=e=>_.value=e,icon:u(A),color:`accent`,disable:b.value||y.value,onClick:n[1]||=e=>g.value=!0},null,8,[`modelValue`,`icon`,`disable`]),[[I,x,void 0,{prevent:!0,mouse:!0}]])]),_:1},8,[`offset`]),s(Z,{modelValue:g.value,"onUpdate:modelValue":n[2]||=e=>g.value=e,onCreated:S,onHide:n[3]||=e=>_.value=!1},null,8,[`modelValue`])],64))}});export{Y as n,Q as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,D as t,I as n,Pt as r,Q as i,S as a,Y as o,Z as s,_ as c,d as l,dt as u,gt as d,l as f,lt as p,u as m,ut as h,y as g}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{r as _}from"./use-router-link-D7geCGQI.js";import{u as v}from"./event-rR76ioXz.js";import{t as y}from"./create-DedXY-KP.js";import{a as b,r as x}from"./render-Brao9Nj2.js";import{F as ee,I as S,L as C,t as w}from"./QSeparator-B8uLaDiI.js";import{d as T}from"./QInput-BnqLJGXl.js";import{t as E}from"./uid-B1JNhznI.js";import{l as D,t as O}from"./QBtn-V3VXtJXi.js";import{n as k,t as te}from"./use-dark-BHObfh0O.js";import{o as A}from"./index-CstRcwnO.js";import{w as j}from"./mdi-Du7sIqtH.js";import{r as M}from"./use-virtual-scroll-DixIsJk4.js";import{l as N,t as P,u as F}from"./ClosePopup-Bd5a-Lu_.js";import{t as I}from"./_plugin-vue_export-helper-BDNMzG2s.js";var L=()=>{},R=`cubic-bezier(.25, .8, .50, 1)`,z=`calc-size(auto, size)`,B=[{height:`0px`},{height:z}],V=[{height:z},{height:`0px`}],H=typeof CSS<`u`&&CSS.supports(`height`,z)?U:W;function U(t,n=L){let r=null,i,a,o=null;function s(){o!==null&&(clearTimeout(o),o=null),r?.cancel(),r=null}function c(){s(),i?.(),i=null}function l(e,t){e.style.overflowY=null,c(),t!==a&&n(t)}function u(e,n,s,c){let u=t(),d=r!==null&&r.effect.target===e;if(r===null?a=s===`show`?`hide`:`show`:(d||i?.(),clearTimeout(o)),i=n,u<=0){l(e,s);return}d?r.reverse():(r?.cancel(),e.style.overflowY=`hidden`,r=e.animate(c,{duration:u,easing:R,fill:`forwards`})),r.onfinish=()=>{l(e,s)},o=setTimeout(r.onfinish,u*1.1)}function d(e,t){u(e,t,`show`,B)}function f(e,t){u(e,t,`hide`,V)}return e(()=>{r!==null&&c()}),{onEnter:d,onLeave:f}}function W(t,n=L){let r=!1,i,a,o=null,s,c;function l(){r=!1,o!==null&&(clearTimeout(o),o=null),a?.removeEventListener(`transitionend`,s),s=null}function u(){l(),i?.(),i=null}function d(e){a!==e&&i?.(),i=null,l()}function f(e,n,a){return n!==void 0&&(e.style.height=`${n}px`),e.style.transition=`height ${t()}ms ${R}`,r=!0,i=a,e.scrollHeight}function p(e,t){e.style.overflowY=null,e.style.height=null,e.style.transition=null,u(),t!==c&&n(t)}function m(e,n){let l=0,u=r,m=t();if(u?d(e):c=`hide`,a=e,m<=0){i=n,p(e,`show`);return}u?l=e.offsetHeight===e.scrollHeight?0:void 0:e.style.overflowY=`hidden`;let h=f(e,l,n);e.style.height=`${h}px`,s=t=>{(Object(t)!==t||t.target===e)&&p(e,`show`)},e.addEventListener(`transitionend`,s),o=setTimeout(s,m*1.1)}function h(e,n){let l,u=r,m=t();if(u?d(e):c=`show`,a=e,m<=0){i=n,p(e,`hide`);return}u===!1&&(e.style.overflowY=`hidden`,l=e.scrollHeight),f(e,l,n),e.style.height=0,s=t=>{(Object(t)!==t||t.target===e)&&p(e,`hide`)},e.addEventListener(`transitionend`,s),o=setTimeout(s,m*1.1)}return e(()=>{r&&u()}),{onEnter:m,onLeave:h}}var G=h({});function K(e){e.keyCode===32&&v(e)}var q=Object.keys(_),J=y({name:`QExpansionItem`,props:{..._,...C,...k,icon:String,label:String,labelLines:[Number,String],caption:String,captionLines:[Number,String],dense:Boolean,toggleAriaLabel:String,expandIcon:String,expandedIcon:String,expandIconClass:[Array,String,Object],duration:{type:Number,default:300},headerInsetLevel:Number,contentInsetLevel:Number,expandSeparator:Boolean,defaultOpened:Boolean,hideExpandIcon:Boolean,expandIconToggle:Boolean,switchToggleSide:Boolean,denseToggle:Boolean,group:String,popup:Boolean,headerStyle:[Array,String,Object],headerClass:[Array,String,Object]},emits:[...S,`click`,`afterShow`,`afterHide`],setup(n,{slots:r,emit:i}){let s=b(),c=te(n,s),l=p(n.modelValue===null?n.defaultOpened:n.modelValue),d=u(null),m=u(null),h=T(),{show:g,hide:_,toggle:y}=ee({showing:l}),S=p(!l.value),{onEnter:C,onLeave:O}=H(()=>n.duration,X),k,A,j=f(()=>`q-expansion-item q-item-type q-expansion-item--${l.value?`expanded`:`collapsed`} q-expansion-item--${n.popup?`popup`:`standard`}`),P=f(()=>{let e=S.value?{display:`none`}:{};if(n.contentInsetLevel!==void 0){let t=s.lang.rtl?`Right`:`Left`;e[`padding`+t]=n.contentInsetLevel*56+`px`}return e}),I=f(()=>!n.disable&&(n.href!==void 0||n.to!==void 0&&n.to!==null&&n.to!==``)),L=f(()=>{let e={};return q.forEach(t=>{e[t]=n[t]}),e}),R=f(()=>I.value||!n.expandIconToggle),z=f(()=>n.expandedIcon!==void 0&&l.value?n.expandedIcon:n.expandIcon||s.iconSet.expansionItem[n.denseToggle?`denseIcon`:`icon`]),B=f(()=>!n.disable&&(I.value||n.expandIconToggle)),V=f(()=>({expanded:l.value,detailsId:h.value,toggle:y,show:g,hide:_})),U=f(()=>{let e=n.toggleAriaLabel===void 0?s.lang.label[l.value?`collapse`:`expand`](n.label):n.toggleAriaLabel;return{role:`button`,"aria-expanded":l.value?`true`:`false`,"aria-controls":h.value,"aria-label":e}});o(()=>n.group,e=>{A?.(),e!==void 0&&$()});function W(e){I.value||y(e),i(`click`,e)}function J(e){[13,32].includes(e.keyCode)&&Y(e,!0)}function Y(e,t){!t&&!e.qAvoidFocus&&d.value?.focus({preventScroll:!0}),y(e),v(e)}function X(e){i(e===`show`?`afterShow`:`afterHide`)}function Z(){S.value=!0}function Q(){m.value!==null&&C(m.value)}o(l,e=>{e?S.value?(S.value=!1,t(Q)):Q():m.value===null?(Z(),X(`hide`)):O(m.value,Z)});function $(){k===void 0&&(k=E()),l.value&&(G[n.group]=k);let e=o(l,e=>{e?G[n.group]=k:G[n.group]===k&&delete G[n.group]}),t=o(()=>G[n.group],(e,t)=>{t===k&&e!==void 0&&e!==k&&_()});A=()=>{e(),t(),G[n.group]===k&&delete G[n.group],A=void 0}}function ne(){let e={class:[`q-expansion-item__toggle-section${n.switchToggleSide?` q-expansion-item__toggle-section--switched`:``} q-focusable relative-position cursor-pointer${n.denseToggle&&n.switchToggleSide?` items-end`:``}`,n.expandIconClass],side:!0},t=[a(D,{class:`q-expansion-item__toggle-icon`+(n.expandedIcon===void 0&&l.value?` q-expansion-item__toggle-icon--rotated`:``),name:z.value})];return B.value&&(Object.assign(e,{tabindex:0,...U.value,onClick:Y,onKeydown:K,onKeyup:J}),t.unshift(a(`div`,{ref:d,class:`q-expansion-item__toggle-focus q-icon q-focus-helper q-focus-helper--rounded`,tabindex:-1}))),a(F,e,()=>t)}function re(){let e;return r.header===void 0?(e=[a(F,()=>[a(M,{lines:n.labelLines},()=>n.label||``),n.caption?a(M,{lines:n.captionLines,caption:!0},()=>n.caption):null])],n.icon&&e[n.switchToggleSide?`push`:`unshift`](a(F,{class:`q-expansion-item__icon-section`,avatar:!0},()=>a(D,{name:n.icon})))):e=[r.header(V.value)].flat(),!n.disable&&!n.hideExpandIcon&&e[n.switchToggleSide?`unshift`:`push`](ne()),e}function ie(){let e={ref:`item`,style:n.headerStyle,class:n.headerClass,dark:c(),disable:n.disable,dense:n.dense,insetLevel:n.headerInsetLevel};return R.value&&(e.clickable=!0,e.onClick=W,Object.assign(e,I.value?L.value:U.value)),a(N,e,re)}function ae(){let e=[ie(),a(`div`,{ref:m,class:`q-expansion-item__content relative-position`,style:P.value,id:h.value},x(r.default))];return n.expandSeparator&&e.push(a(w,{class:`q-expansion-item__border q-expansion-item__border--top absolute-top`,dark:c()}),a(w,{class:`q-expansion-item__border q-expansion-item__border--bottom absolute-bottom`,dark:c()})),e}return n.group!==void 0&&$(),e(()=>{A?.()}),()=>a(`div`,{class:j.value},[a(`div`,{class:`q-expansion-item__container relative-position`},ae())])}}),Y=g({__name:`CloseButton`,props:{label:{}},setup(e){return(t,r)=>(n(),l(O,{flat:``,round:``,dense:``,class:`app-icon-control`,icon:d(j),"aria-label":e.label},null,8,[`icon`,`aria-label`]))}}),X={class:`text-h6 col`},Z=I(g({__name:`DialogHeader`,props:{title:{},closeLabel:{},disableClose:{type:Boolean}},setup(e){return(t,a)=>(n(),l(A,{class:`row items-center no-wrap dialog-header`},{default:s(()=>[m(`div`,X,r(e.title),1),i(c(Y,{label:e.closeLabel,disable:e.disableClose},null,8,[`label`,`disable`]),[[P,!e.disableClose]])]),_:1}))}}),[[`__scopeId`,`data-v-a18b04bf`]]);export{H as i,Y as n,J as r,Z as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,D as t,I as n,K as r,L as i,N as a,Nt as o,P as s,Pt as c,Q as l,T as u,V as d,X as f,Y as p,Z as m,_ as h,d as g,dt as _,f as v,g as y,gt as b,ht as x,it as S,jt as C,l as w,lt as T,ot as E,p as D,q as O,r as k,u as A,y as j,z as M}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{_ as N,v as P}from"./use-router-link-D7geCGQI.js";import{t as F}from"./QSeparator-B8uLaDiI.js";import{a as I,i as L,l as R,t as z}from"./QBtn-V3VXtJXi.js";import{b as B,n as ee,x as V}from"./index-CstRcwnO.js";import{n as H}from"./vue-i18n.runtime-JOo8b7-t.js";import{B as te,S as ne,Wt as re,X as ie,Z as ae,k as oe,x as se}from"./mdi-Du7sIqtH.js";import{r as U}from"./pinia-BfqEuvsi.js";import{f as ce}from"./agent-store-BV2OAJzn.js";import{n as le}from"./use-server-events-CvcbsbIf.js";import{t as ue}from"./QSpace-BmrklWw-.js";import{r as de}from"./use-add-agent-context-ZAOlkMkH.js";import{r as fe}from"./use-virtual-scroll-DixIsJk4.js";import{l as W,u as G}from"./ClosePopup-Bd5a-Lu_.js";import{t as K}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as pe,t as q}from"./QScrollArea-qf2G1s2r.js";import{n as me,t as he}from"./QTabs-Bl_rIz4_.js";import{c as J,l as ge,n as _e,o as Y}from"./use-row-height-FkeCYR5M.js";import{t as X}from"./QVirtualScroll-BeEkuL6x.js";import{t as ve}from"./use-notify-error-Dx2D9IEP.js";import{o as ye,s as Z,t as Q}from"./diff-store-DCqGPv2R.js";import{t as be}from"./AppPage-Cozv2vqG.js";import{n as xe,t as Se}from"./AddToAgentButton-Caehgd43.js";import{t as Ce}from"./SearchInput-DapVXrFj.js";import{n as $}from"./CreateButton-zCmb7snC.js";import{C as we,S as Te,T as Ee,_ as De,a as Oe,b as ke,c as Ae,d as je,f as Me,g as Ne,h as Pe,i as Fe,l as Ie,m as Le,n as Re,o as ze,p as Be,r as Ve,s as He,t as Ue,u as We,v as Ge,w as Ke,x as qe,y as Je}from"./StatusSwitcher-fsgwyZPd.js";import{t as Ye}from"./CreateReviewFabButton-DVSiNykk.js";var Xe={class:`row items-center no-wrap q-gutter-x-xs`},Ze={class:`row items-center no-wrap q-gutter-x-xs`},Qe=j({__name:`FileExplorerTabs`,props:u({stagedFilesLength:{},unstagedFilesLength:{}},{modelValue:{default:`unstaged`},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=r(e,`modelValue`),{t:i}=H();return(r,a)=>(n(),g(he,{modelValue:t.value,"onUpdate:modelValue":a[0]||=e=>t.value=e,dense:``,"no-caps":``,align:`left`,"narrow-indicator":``,class:`text-primary q-mb-sm`},{default:m(()=>[h(me,{name:`unstaged`},{default:m(()=>[A(`div`,Xe,[A(`span`,null,c(b(i)(`changes.unstaged`)),1),h(pe,{color:`warning`,rounded:``},{default:m(()=>[y(c(e.unstagedFilesLength),1)]),_:1})])]),_:1}),h(me,{name:`staged`},{default:m(()=>[A(`div`,Ze,[A(`span`,null,c(b(i)(`changes.staged`)),1),h(pe,{color:`positive`,rounded:``},{default:m(()=>[y(c(e.stagedFilesLength),1)]),_:1})])]),_:1})]),_:1},8,[`modelValue`]))}}),$e={class:`file-tree-node`},et={class:`row items-center no-wrap q-gutter-x-xs`},tt=[`data-tooltip`],nt=[`data-tooltip`],rt={key:2},it=K(j({__name:`FileTreeNode`,props:{node:{},selectedPath:{},expandedFolders:{},level:{}},emits:[`toggle-folder`,`file-select`],setup(e,{emit:t}){let r=t;return(t,i)=>{let a=d(`FileTreeNode`,!0);return n(),D(`div`,$e,[e.node.type===`directory`?l((n(),g(W,{key:0,clickable:``,dense:``,style:o({paddingLeft:`${b(J)(e.level,!1)}px`}),onClick:i[0]||=t=>r(`toggle-folder`,e.node.path)},{default:m(()=>[h(G,{avatar:``,class:`file-tree-node__icon-section`},{default:m(()=>[A(`div`,et,[h(R,{name:b(se),size:`xs`,class:C([`app-icon-neutral file-tree-node__chevron`,{"file-tree-node__chevron--expanded":e.expandedFolders.has(e.node.path)}])},null,8,[`name`,`class`]),h(R,{name:e.expandedFolders.has(e.node.path)?b(ie):b(ae),size:`xs`,class:`app-icon-neutral`},null,8,[`name`])])]),_:1}),h(G,{class:`text-mono`},{default:m(()=>[A(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":e.node.path},c(e.node.name),9,tt)]),_:1}),e.node.children?(n(),g(G,{key:0,side:``,class:`text-caption text-grey-6`},{default:m(()=>[y(c(e.node.children.length),1)]),_:1})):v(``,!0)]),_:1},8,[`style`])),[[L]]):l((n(),g(W,{key:1,clickable:``,dense:``,active:e.node.path===e.selectedPath,"active-class":`file-tree-node--selected`,style:o({paddingLeft:`${b(J)(e.level,!0)}px`}),onClick:i[1]||=t=>r(`file-select`,e.node.path)},{default:m(()=>[h(G,{avatar:``,class:`file-tree-node__icon-section`},{default:m(()=>[h(R,{name:b(te),size:`xs`,class:`app-icon-neutral`},null,8,[`name`])]),_:1}),h(G,{class:`text-mono`},{default:m(()=>[A(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":e.node.path},c(e.node.name),9,nt)]),_:1}),e.node.isChanged?(n(),g(G,{key:0,side:``},{default:m(()=>[h(R,{name:b(ne),size:`8px`,class:`app-icon-warning`},null,8,[`name`])]),_:1})):v(``,!0)]),_:1},8,[`active`,`style`])),[[L]]),e.node.type===`directory`&&e.expandedFolders.has(e.node.path)&&e.node.children?(n(),D(`div`,rt,[(n(!0),D(k,null,M(e.node.children,t=>(n(),g(a,{key:t.path,node:t,"selected-path":e.selectedPath,"expanded-folders":e.expandedFolders,level:e.level+1,onToggleFolder:i[2]||=e=>r(`toggle-folder`,e),onFileSelect:i[3]||=e=>r(`file-select`,e)},null,8,[`node`,`selected-path`,`expanded-folders`,`level`]))),128))])):v(``,!0)])}}}),[[`__scopeId`,`data-v-3a3f58f2`]]),at={class:`file-list-item__path-row row no-wrap items-center`},ot=[`data-tooltip`],st={class:`text-caption`},ct={class:`text-positive`},lt={class:`text-negative q-ml-xs`},ut=K(j({__name:`FileListItem`,props:{file:{},selected:{type:Boolean},source:{},label:{},depth:{}},emits:[`click`],setup(e){let t={added:`A`,modified:`M`,deleted:`D`,renamed:`R`},r={added:`positive`,modified:`warning`,deleted:`negative`,renamed:`purple`},i=e,a=$(),s=w(()=>Z(i.file)),u=w(()=>a.commentsByFile.get(s.value)?.length??0);return(i,a)=>l((n(),g(W,{clickable:``,dense:``,class:`file-list-item`,active:e.selected,"active-class":`file-list-item--selected`,"aria-label":e.label===void 0?void 0:s.value,style:o(e.depth===void 0?void 0:{paddingLeft:`${b(J)(e.depth,!0)}px`}),onClick:a[0]||=e=>i.$emit(`click`)},{default:m(()=>[h(G,{avatar:``,class:`file-list-item__icon-section`},{default:m(()=>[A(`span`,{class:C([`text-caption text-weight-bold text-mono`,`text-${r[e.file.status]}`])},c(t[e.file.status]),3)]),_:1}),h(G,{class:`text-mono`},{default:m(()=>[A(`div`,at,[A(`span`,{class:`ellipsis file-list-item__path-label`,"data-tooltip":s.value},c(e.label??s.value),9,ot),u.value>0?(n(),g(Ke,{key:0,compact:``,class:`file-list-item__badge`,count:u.value},null,8,[`count`])):v(``,!0)])]),_:1}),h(G,{side:``,class:`file-list-item__stats`},{default:m(()=>[A(`span`,st,[A(`span`,ct,`+`+c(e.file.additions),1),A(`span`,lt,`-`+c(e.file.deletions),1)])]),_:1}),h(G,{side:``,class:`file-list-item__actions`},{default:m(()=>[h(Ee,{path:s.value,source:e.source},null,8,[`path`,`source`])]),_:1})]),_:1},8,[`active`,`aria-label`,`style`])),[[L]])}}),[[`__scopeId`,`data-v-3c335b20`]]),dt=j({__name:`BrowseModeToggle`,props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=r(e,`modelValue`),{t:i}=H();return(e,r)=>(n(),g(W,null,{default:m(()=>[h(G,null,{default:m(()=>[h(fe,null,{default:m(()=>[y(c(b(i)(`browse.toggle`)),1)]),_:1})]),_:1}),h(G,{side:``},{default:m(()=>[h(ee,{modelValue:t.value,"onUpdate:modelValue":r[0]||=e=>t.value=e,dense:``,size:`xs`},null,8,[`modelValue`])]),_:1})]),_:1}))}}),ft={class:`row items-center no-wrap q-gutter-x-xs`},pt=[`data-tooltip`],mt=K(j({__name:`DiffTreeFolderRow`,props:{name:{},path:{},depth:{},expanded:{type:Boolean},locked:{type:Boolean}},emits:[`toggle`],setup(e){let{t}=H();return(r,i)=>l((n(),g(W,{clickable:!e.locked,dense:``,class:`file-list-item diff-tree-folder-row`,style:o({paddingLeft:`${b(J)(e.depth,!1)}px`}),"aria-expanded":e.locked?void 0:e.expanded,"aria-label":e.locked?void 0:b(t)(`changes.listMode.folder`,{path:e.path}),onClick:i[0]||=e=>r.$emit(`toggle`)},{default:m(()=>[h(G,{avatar:``,class:`diff-tree-folder-row__icons`},{default:m(()=>[A(`div`,ft,[h(R,{name:b(se),size:`xs`,class:C([`app-icon-neutral diff-tree-folder-row__chevron`,{"diff-tree-folder-row__chevron--expanded":e.expanded,invisible:e.locked}])},null,8,[`name`,`class`]),h(R,{name:e.expanded?b(ie):b(ae),size:`xs`,class:`app-icon-neutral`},null,8,[`name`])])]),_:1}),h(G,{class:`text-mono`},{default:m(()=>[A(`span`,{class:`ellipsis`,"data-tooltip":e.path},c(e.name),9,pt)]),_:1})]),_:1},8,[`clickable`,`style`,`aria-expanded`,`aria-label`])),[[L,!e.locked]])}}),[[`__scopeId`,`data-v-b12962d8`]]),ht={class:`file-list-panel__header q-pa-sm`},gt={key:1,class:`text-subtitle2 q-mb-sm`},_t={key:0,class:`text-primary`},vt={class:`row no-wrap items-center q-gutter-x-xs`},yt={key:0,class:`row justify-center q-pa-lg`},bt={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},xt={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},St=32,Ct=K(j({__name:`FileListPanel`,setup(e){let{t}=H(),{stagedFiles:r,unstagedFiles:i,initialLoading:a,error:o}=U(Q()),s=Y(),{source:l,browseMode:u,filter:d,selectedPath:f,expandedFolders:p,treeInitialLoading:_,treeError:x,filteredDiffFiles:C,diffTreeRows:E,diffListMode:O,filtering:j,filteredTree:N,totalTreeFiles:P}=U(s),L=T(null),R=w(()=>L.value?.getScrollTarget()??null);return(e,w)=>(n(),D(k,null,[A(`div`,ht,[b(u)?(n(),D(`div`,gt,[y(c(b(t)(`browse.allFiles`))+` `,1),b(P)>0||!b(x)?(n(),D(`span`,_t,`(`+c(b(P))+`)`,1)):v(``,!0)])):(n(),g(Qe,{key:0,modelValue:b(l),"onUpdate:modelValue":w[0]||=e=>S(l)?l.value=e:null,"staged-files-length":b(r).length,"unstaged-files-length":b(i).length},null,8,[`modelValue`,`staged-files-length`,`unstaged-files-length`])),A(`div`,vt,[h(Ce,{modelValue:b(d),"onUpdate:modelValue":w[1]||=e=>S(d)?d.value=e:null,class:`col`,placeholder:b(u)?b(t)(`browse.searchPlaceholder`):b(t)(`changes.filterPlaceholder`)},null,8,[`modelValue`,`placeholder`]),b(u)?v(``,!0):(n(),g(z,{key:0,class:`app-icon-control`,flat:``,dense:``,round:``,size:`sm`,icon:b(re),color:b(O)===`tree`?`primary`:void 0,"aria-label":b(t)(`changes.listMode.tree`),"aria-pressed":b(O)===`tree`,onClick:w[2]||=e=>O.value=b(O)===`tree`?`list`:`tree`},{default:m(()=>[h(V,{delay:b(500)},{default:m(()=>[y(c(b(t)(`changes.listMode.tree`)),1)]),_:1},8,[`delay`])]),_:1},8,[`icon`,`color`,`aria-label`,`aria-pressed`]))])]),h(F),h(q,{ref_key:`scrollArea`,ref:L,class:`col file-list-panel__scroll`,"content-style":`padding: 4px 0`,"content-active-style":`padding: 4px 0`},{default:m(()=>[(b(u)?b(_):b(a))?(n(),D(`div`,yt,[h(I,{color:`primary`,size:`2em`})])):b(u)?(n(),D(k,{key:1},[b(N).length===0&&(!b(x)||b(d)&&b(P)>0)?(n(),D(`p`,bt,c(b(d)?b(t)(`browse.noMatchingFiles`):b(t)(`browse.noFiles`)),1)):v(``,!0),(n(!0),D(k,null,M(b(N),e=>(n(),g(it,{key:e.path,node:e,"selected-path":b(f),"expanded-folders":b(p),level:0,onToggleFolder:b(s).toggleFolder,onFileSelect:b(s).selectFile},null,8,[`node`,`selected-path`,`expanded-folders`,`onToggleFolder`,`onFileSelect`]))),128))],64)):(n(),D(k,{key:2},[b(C).length===0&&(b(d)||!b(o))?(n(),D(`p`,xt,c(b(d)?b(t)(`browse.noMatchingFiles`):b(t)(`changes.emptyFileList`)),1)):v(``,!0),R.value&&b(O)===`tree`?(n(),g(X,{key:`${b(l)}:tree`,"scroll-target":R.value,items:b(E),"virtual-scroll-item-size":St},{default:m(({item:e})=>[e.kind===`folder`?(n(),g(mt,{key:`d:${e.path}`,name:e.name,path:e.path,depth:e.depth,expanded:e.expanded,locked:b(j),onToggle:t=>b(s).toggleDiffFolder(e.paths)},null,8,[`name`,`path`,`depth`,`expanded`,`locked`,`onToggle`])):(n(),g(ut,{key:`f:${e.path}`,file:e.file,label:e.name,depth:e.depth,selected:b(f)===e.path,source:b(l),onClick:t=>b(s).selectFile(e.path)},null,8,[`file`,`label`,`depth`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):R.value?(n(),g(X,{key:`${b(l)}:list`,"scroll-target":R.value,items:b(C),"virtual-scroll-item-size":St},{default:m(({item:e})=>[(n(),g(ut,{key:b(Z)(e),file:e,selected:b(f)===b(Z)(e),source:b(l),onClick:t=>b(s).selectFile(b(Z)(e))},null,8,[`file`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):v(``,!0)],64))]),_:1},512),h(F),h(dt,{modelValue:b(u),"onUpdate:modelValue":w[3]||=e=>S(u)?u.value=e:null},null,8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-9f3868a2`]]),wt=[`wheel`,`pointerdown`,`keydown`,`touchstart`];function Tt(e){let n=e.inputTarget??(typeof document>`u`?null:document),r=e.follow??ke,i=null,a;function o(){(e.ready===void 0||x(e.ready))&&(i=x(e.request),a?.(),a=void 0)}for(let e of wt)n?.addEventListener(e,o,{capture:!0,passive:!0});let s=p([()=>x(e.request),()=>x(e.list),()=>x(e.root),()=>e.ready===void 0||x(e.ready)],([n,o,s,c],l,u)=>{if(!n||n===i||!o||!s||!c)return;let d=!1,f=!1,p,m=()=>{d=!0,p?.(),p=void 0};a=m,u(()=>{m(),x(e.request)===n&&(f||x(e.list)!==o||x(e.root)!==s)&&(i=n),a===m&&(a=void 0)}),t().then(()=>{d||n===i||e.ready!==void 0&&!x(e.ready)||(f=!0,o.scrollTo(n.index,`start`),p=r({root:s,target:()=>e.target?e.target(n):document.getElementById(`diff-file-${n.path}`)}))})},{immediate:!0,flush:`post`});E(()=>{s(),a?.();for(let e of wt)n?.removeEventListener(e,o,!0)})}var Et=[`aria-label`,`aria-expanded`],Dt={class:`diff-status-bar__files ellipsis`},Ot={class:`text-weight-medium`},kt={key:0,class:`text-grey-6 q-ml-sm`},At={key:1,class:`text-grey-6 q-ml-sm`},jt={key:2,class:`text-grey-6 q-ml-sm`},Mt={key:3,class:`text-grey-6 q-ml-sm`},Nt={class:`diff-status-bar__lines row items-center q-gutter-x-md no-wrap`},Pt={class:`text-positive`},Ft={class:`text-negative`},It=K(j({__name:`DiffStatusBar`,props:{files:{},anyExpanded:{type:Boolean}},emits:[`toggle-all`],setup(e,{emit:t}){let r=e,i=t,{t:a}=H(),o=w(()=>{let e=r.files.reduce((e,t)=>e+t.additions,0),t=r.files.reduce((e,t)=>e+t.deletions,0),n=r.files.filter(e=>e.status===`added`).length,i=r.files.filter(e=>e.status===`modified`).length,a=r.files.filter(e=>e.status===`deleted`).length,o=r.files.filter(e=>e.status===`renamed`).length;return{total:r.files.length,additions:e,deletions:t,added:n,modified:i,deleted:a,renamed:o}});return(t,r)=>(n(),D(`div`,{class:`diff-status-bar row items-center q-pa-sm text-body2 non-selectable`,role:`button`,tabindex:`0`,"aria-label":b(a)(e.anyExpanded?`changes.collapseAll`:`changes.expandAll`),"aria-expanded":e.anyExpanded,onDblclick:r[0]||=e=>i(`toggle-all`),onKeydown:[r[1]||=N(P(e=>!e.repeat&&i(`toggle-all`),[`prevent`]),[`enter`]),r[2]||=N(P(e=>!e.repeat&&i(`toggle-all`),[`prevent`]),[`space`])]},[A(`div`,Dt,[A(`span`,Ot,c(b(a)(`changes.filesChanged`,o.value.total))+`:`,1),o.value.added?(n(),D(`span`,kt,c(o.value.added)+` `+c(b(a)(`changes.added`)),1)):v(``,!0),o.value.modified?(n(),D(`span`,At,c(o.value.modified)+` `+c(b(a)(`changes.modified`)),1)):v(``,!0),o.value.deleted?(n(),D(`span`,jt,c(o.value.deleted)+` `+c(b(a)(`changes.deletedPlural`)),1)):v(``,!0),o.value.renamed?(n(),D(`span`,Mt,c(o.value.renamed)+` `+c(b(a)(`changes.renamed`)),1)):v(``,!0)]),A(`div`,Nt,[A(`span`,Pt,`+`+c(o.value.additions)+` `+c(b(a)(`changes.additions`)),1),A(`span`,Ft,`-`+c(o.value.deletions)+` `+c(b(a)(`changes.deletions`)),1)]),h(V,{delay:b(500)},{default:m(()=>[y(c(b(a)(e.anyExpanded?`changes.collapseAllHint`:`changes.expandAllHint`)),1)]),_:1},8,[`delay`])],40,Et))}}),[[`__scopeId`,`data-v-6335a458`]]),Lt=6e3,Rt=40;function zt(e,t,n){let r=_(n(t())?.clientWidth??0),i=w(()=>JSON.stringify([e.version,r.value])),a=Le({get minHeight(){return e.minHeight},get heightOwner(){return e.owner},heightKey:`card-reserve`,get heightVersion(){return i.value},get cacheHeight(){return e.cacheHeight},get keep(){return e.keep},cost:Rt,mountMargin:Lt},t),o;function s(){let e=n(t());e&&(r.value=e.clientWidth,o=Pe(e,()=>{r.value=e.clientWidth})),a.start(e)}function c(){a.stop(),o?.(),o=void 0}return E(c),{mounted:a.mounted,height:a.height,start:s,stop:c}}var Bt={key:1,class:`card-shell-placeholder__title text-mono`,"aria-busy":`true`},Vt=K(j({__name:`ChangesFileCard`,props:{file:{}},setup(t){let r=t,i=Y(),s=Q(),l=$(),{expandedFiles:u}=U(i),{activeReview:d,commentsByFile:f}=U(l),p=w(()=>Z(r.file)),m=w(()=>ye(i.source,p.value)),h=w(()=>s.hunksOf(i.source,r.file)),_=w(()=>s.hunksFresh(i.source,r.file)),v=w(()=>s.hunksError(i.source,r.file)),y=w(()=>u.value.has(p.value)),x=w(()=>f.value.get(p.value)),S=w(()=>!!d.value),T=_e(S),E={key:m.value},k=Me(`wrap`,()=>Ie(p.value),E),A=Me(`viewMode`,()=>`diff`,E),j=je(E),M=We(E),N=w(()=>A.value===`full`?M.value:j.value),P=w(()=>46+(y.value?Je(r.file,h.value,T.value)+Ge(x.value??[],A.value)+(N.value?90:0):0)),F=w(()=>De({expanded:y.value,mode:A.value,wrap:k.value,activeReview:S.value,rowHeight:T.value,pending:N.value,comments:x.value})),I=O(`el`),{mounted:L,height:R,start:z,stop:B}=zt({get minHeight(){return P.value},get owner(){return h.value??r.file},get version(){return F.value},get cacheHeight(){return y.value&&_.value&&A.value===`diff`&&!k.value&&!x.value?.length&&!N.value},get keep(){return!!N.value}},()=>I.value,we());a(z),e(B);function ee(){s.ensureHunks(i.source,r.file)}function V(){s.retryHunks(i.source,r.file)}return(e,r)=>(n(),D(`div`,{ref_key:`el`,ref:I,class:C({"card-shell-placeholder":!b(L)}),style:o(b(L)?void 0:{height:`${b(R)}px`})},[b(L)?(n(),g(Re,{key:0,file:t.file,"state-key":m.value,detail:h.value,"hunks-loaded":_.value,"hunks-error":v.value,expanded:y.value,"agent-source":b(i).source,commentable:S.value,"comments-editable":S.value,comments:x.value,onLoadHunks:ee,onRetryHunks:V,onClearHunksError:r[0]||=e=>b(s).clearHunksError(b(i).source,t.file),onToggle:r[1]||=e=>b(i).handleCardToggle(p.value),onExpand:r[2]||=e=>b(i).expandFile(p.value)},null,8,[`file`,`state-key`,`detail`,`hunks-loaded`,`hunks-error`,`expanded`,`agent-source`,`commentable`,`comments-editable`,`comments`])):(n(),D(`div`,Bt,c(p.value),1))],6))}}),[[`__scopeId`,`data-v-39faff44`]]),Ht={key:0,class:`active-review-bar row items-center q-gutter-x-sm q-px-sm no-wrap`},Ut={class:`text-body2 ellipsis`},Wt=K(j({__name:`ActiveReviewBar`,setup(e){let{t}=H(),r=ve(),i=$(),{activeReview:a}=U(i);function o(e){i.setStatus(e).catch(e=>{r(t(`reviews.comments.error`),e)})}return(e,r)=>b(a)?(n(),D(`div`,Ht,[h(R,{name:b(oe),size:`18px`,color:`primary`},null,8,[`name`]),A(`span`,Ut,c(b(a).name??b(t)(`reviews.list.unnamed`)),1),h(ue),h(Se,{text:``,size:`sm`,label:b(t)(`agent.context.addReview`),context:{kind:`review`,reviewId:b(a).id}},null,8,[`label`,`context`]),h(Ue,{status:b(a).status,onChange:o},null,8,[`status`])])):v(``,!0)}}),[[`__scopeId`,`data-v-12f9b192`]]),Gt=[`aria-label`],Kt={class:`text-caption ellipsis`},qt={class:`row items-center q-gutter-sm`},Jt=K(j({__name:`TouchCommentToolbar`,props:{path:{},start:{},end:{},confirming:{type:Boolean}},emits:[`confirm`,`cancel`],setup(e,{emit:t}){let r=t,{t:i}=H();return(t,a)=>(n(),D(`div`,{class:`touch-comment-toolbar q-pa-sm`,role:`region`,"aria-label":b(i)(`workspace.selectLines`)},[A(`div`,Kt,c(e.path)+` · `+c(b(i)(`workspace.extendSelection`)),1),A(`div`,qt,[h(z,{color:`primary`,"no-caps":``,label:b(i)(`workspace.commentRange`,{start:e.start,end:e.end}),loading:e.confirming,onClick:a[0]||=e=>r(`confirm`)},null,8,[`label`,`loading`]),h(z,{flat:``,"no-caps":``,label:b(i)(`workspace.cancelSelection`),onClick:a[1]||=e=>r(`cancel`)},null,8,[`label`])])],8,Gt))}}),[[`__scopeId`,`data-v-55ab315b`]]);function Yt(e){let t=e.follow??ke,n,r;function i(){r?.(),r=void 0}function a(t=!1){if(n&&!t)return;let r=x(e.root);if(!r?.clientWidth||!r.clientHeight)return;let i=r.getBoundingClientRect().top,a=[...r.querySelectorAll(`[data-file-path]`)].find(e=>e.getBoundingClientRect().bottom>i);if(!a?.dataset.filePath)return;let o=a.querySelector(`.file-card-frame__header`)?.getBoundingClientRect().height??0,s=[...a.querySelectorAll(`[data-line-key]`)].find(e=>e.getBoundingClientRect().bottom>i+o),c=s??a;n={root:r,path:a.dataset.filePath,line:s?.getAttribute(`data-line-key`)??null,offset:qe(r,c),request:x(e.request)}}return p(()=>x(e.active),e=>{e||a(!0),i()},{flush:`sync`}),p(()=>x(e.request),i,{flush:`sync`}),p(()=>x(e.root),()=>{n=void 0,i()},{flush:`sync`}),p(()=>x(e.ready),a=>{if(i(),!a||!x(e.active))return;let o=n;n=void 0,o&&o.root===x(e.root)&&o.request===x(e.request)&&(r=t({root:o.root,offset:o.offset,target:()=>{let e=[...o.root.querySelectorAll(`[data-file-path]`)].find(e=>e.dataset.filePath===o.path);return o.line?[...e?.querySelectorAll(`[data-line-key]`)??[]].find(e=>e.getAttribute(`data-line-key`)===o.line)??null:e??null}}))},{flush:`post`}),B(()=>typeof document>`u`?null:document,[`wheel`,`pointerdown`,`touchstart`,`keydown`],i,{capture:!0,passive:!0}),E(i),{capture:a}}var Xt={key:1,class:`q-pa-md text-grey-6`},Zt={class:`col column diff-scroll-container`},Qt=[`data-file-path`],$t=12,en=1.5,tn=2,nn=K(j({__name:`DiffPanel`,setup(e){let r=de(),{t:a}=H(),o=Y(),s=Be(),l=Ae({reveal:e=>{o.expandFile(e),o.scrollToFile(e)}});f(()=>{let e=l.selection.value;if(!e)return;let t=s.get(e.cardKey,`viewMode`)??`diff`;(e.cardKey!==ye(o.source,e.path)||t!==e.mode)&&l.cancel(e.cardKey)});let{diffFiles:u}=U(o),{error:d,loading:_}=U(Q()),y=$(),{activeReview:x}=U(y);Ne({create:e=>y.createComment(e),edit:(e,t)=>y.editComment(e,t),remove:e=>y.deleteComment(e),resolve:e=>y.resolveComment(e),unresolve:e=>y.unresolveComment(e)});let S=T(null),C=w(()=>S.value?.getScrollTarget()??null);i(Te,()=>C.value);let E=T(null),O=T({width:0,height:0}),j=T(!1),M=Yt({active:r,ready:j,root:C,request:()=>o.scrollRequest});return p([r,O,E],async([e,n,r],i,a)=>{if(j.value=!1,!e||!r||n.width<=0||n.height<=0)return;let o=!0;M.capture(),a(()=>{o=!1}),await t(),o&&(r.refresh(-1),await t(),o&&(j.value=!0))},{flush:`post`}),Tt({request:()=>o.scrollRequest,list:E,root:C,ready:j}),p(()=>o.layoutVersion,async()=>{await t(),E.value?.reset()}),p(u,async(e,n)=>{ce(e,n,(e,t)=>Z(e)===Z(t))||(await t(),E.value?.reset())}),(e,t)=>(n(),D(k,null,[b(d)?(n(),g(ze,{key:0,title:b(a)(`changes.loadError`),message:b(d),loading:b(_),onRetry:t[0]||=e=>b(o).refresh()},null,8,[`title`,`message`,`loading`])):v(``,!0),b(u).length===0&&!b(d)?(n(),D(`div`,Xt,c(b(a)(`changes.emptyDiffPanel`)),1)):b(u).length>0?(n(),D(k,{key:2},[h(Wt),b(x)?(n(),g(F,{key:0})):v(``,!0),h(It,{files:b(u),"any-expanded":b(o).hasExpandedFiles,onToggleAll:b(o).toggleAllFiles},null,8,[`files`,`any-expanded`,`onToggleAll`]),h(F),A(`div`,Zt,[h(ge,{onResize:t[1]||=e=>O.value=e}),h(q,{ref_key:`scrollArea`,ref:S,class:`col sticky-header-scroll`,"content-style":`padding: 8px; width: 100%; max-width: 100%`,"content-active-style":`padding: 8px; width: 100%; max-width: 100%`},{default:m(()=>[C.value?(n(),g(X,{key:b(o).source,ref_key:`virtualScroll`,ref:E,"scroll-target":C.value,items:b(u),"virtual-scroll-item-size":b(46),"virtual-scroll-slice-size":$t,"virtual-scroll-slice-ratio-before":en,"virtual-scroll-slice-ratio-after":tn},{default:m(({item:e})=>[(n(),D(`div`,{key:b(Z)(e),"data-file-path":b(Z)(e),class:`diff-virtual-slot`},[h(Vt,{file:e},null,8,[`file`])],8,Qt))]),_:1},8,[`scroll-target`,`items`,`virtual-scroll-item-size`])):v(``,!0)]),_:1},512)])],64)):v(``,!0),!b(x)&&b(u).length>0?(n(),g(Ye,{key:3})):v(``,!0),b(l).selection.value?(n(),g(Jt,{key:4,path:b(l).selection.value.path,start:b(l).selection.value.anchor.startKey,end:b(l).selection.value.anchor.endKey,confirming:b(l).selection.value.phase===`confirming`,onConfirm:b(l).confirm,onCancel:t[2]||=e=>b(l).cancel()},null,8,[`path`,`start`,`end`,`confirming`,`onConfirm`])):v(``,!0)],64))}}),[[`__scopeId`,`data-v-30b76bdf`]]),rn={key:1,class:`q-pa-md text-grey-6`},an={key:0,class:`row justify-center q-pa-lg`},on={key:1,class:`q-pa-md text-grey-6`},sn={class:`text-caption`},cn={key:2,class:`q-pa-md text-grey-6`},ln=j({__name:`FileContentPanel`,setup(e){let{t}=H(),r=Y(),{selectedPath:i,browseFileLines:a,browseFileIsBinary:o,browseFileLoading:s,browseFileError:l,treeError:u,refreshing:d}=U(r),{error:f}=U(Q()),_=w(()=>f.value?{title:t(`changes.loadError`),message:f.value}:u.value?{title:t(`browse.treeLoadError`),message:u.value}:null),x=T(!1);return p(i,e=>{x.value=e?Ie(e):!1},{immediate:!0}),(e,u)=>(n(),D(k,null,[_.value?(n(),g(ze,{key:0,title:_.value.title,message:_.value.message,loading:b(d),onRetry:u[0]||=e=>b(r).refresh()},null,8,[`title`,`message`,`loading`])):v(``,!0),b(i)?(n(),g(Ve,{key:2,class:`col`},{header:m(()=>[h(Oe,{path:b(i)},{default:m(()=>[h(Fe,{modelValue:x.value,"onUpdate:modelValue":u[1]||=e=>x.value=e,path:b(i)},null,8,[`modelValue`,`path`])]),_:1},8,[`path`])]),default:m(()=>[b(s)&&b(a).length===0&&!b(l)?(n(),D(`div`,an,[h(I,{color:`primary`,size:`2em`})])):b(l)?(n(),D(`div`,on,[y(c(b(t)(`changes.fullFileLoadError`))+` `,1),A(`div`,sn,c(b(l)),1),h(z,{flat:``,dense:``,color:`primary`,class:`q-mt-sm`,label:b(t)(`changes.retry`),loading:b(d),onClick:u[2]||=e=>b(r).refresh()},null,8,[`label`,`loading`])])):b(o)?(n(),D(`div`,cn,c(b(t)(`changes.binaryFile`)),1)):(n(),g(q,{key:3,class:`col`,"content-style":`padding: 8px`,"content-active-style":`padding: 8px`},{default:m(()=>[h(He,{path:b(i),lines:b(a),wrap:x.value},null,8,[`path`,`lines`,`wrap`])]),_:1}))]),_:1})):(n(),D(`div`,rn,c(b(t)(`browse.selectFile`)),1))],64))}}),un=j({__name:`FileExplorer`,setup(e){let t=Y(),r=$(),{browseMode:i}=U(t);a(()=>{t.refresh(),r.refresh()});let o=le([`files:changed`],()=>void t.refreshFromServerEvent());s(()=>o.close());let c=le([`review:created`,`review:updated`,`review:deleted`,`comment:created`,`comment:updated`,`comment:deleted`],()=>void r.refresh());return s(()=>c.close()),(e,t)=>(n(),g(xe,null,{panel:m(()=>[h(Ct)]),content:m(()=>[b(i)?(n(),g(ln,{key:0})):(n(),g(nn,{key:1}))]),_:1}))}}),dn=j({__name:`IndexPage`,setup(e){return(e,t)=>(n(),g(be,null,{default:m(()=>[h(un)]),_:1}))}});export{dn as default};
|