@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Y as e,l as t,lt as n,ot as r,st as i}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{t as a}from"./debounce-rZaFFwsz.js";import{n as o}from"./pinia-BfqEuvsi.js";import{a as s,c,d as l,h as u,i as d,l as f,m as p,n as m,p as h,r as g,t as _,u as v}from"./single-flight-CyDZB3rb.js";import{t as y}from"./safe-storage-
|
|
1
|
+
import{Y as e,l as t,lt as n,ot as r,st as i}from"./runtime-core.esm-bundler-DDnHUoIy.js";import{t as a}from"./debounce-rZaFFwsz.js";import{n as o}from"./pinia-BfqEuvsi.js";import{a as s,c,d as l,h as u,i as d,l as f,m as p,n as m,p as h,r as g,t as _,u as v}from"./single-flight-CyDZB3rb.js";import{t as y}from"./safe-storage-CCnof8j6.js";import{n as b}from"./use-server-events-CvcbsbIf.js";var x=`terminal`,S=`preview`,C=.25,ee=.25,w=`cubic-bezier(0.05, 0.7, 0.1, 1)`,T=`cubic-bezier(0.4, 0, 1, 1)`,te=`cubic-bezier(0.2, 0, 0, 1)`,E=2500,ne=[`free`,`top`,`right`,`bottom`,`left`],re=[`n`,`e`,`s`,`w`,`ne`,`nw`,`se`,`sw`],D=new Map,O=new Map,k=new Map,ie=null;function ae(e,t){return k.set(e,t),()=>{k.get(e)===t&&k.delete(e)}}function oe(e){return ie=e,()=>{ie===e&&(ie=null)}}var se=new Set,ce=new Map;function le(e,t){return D.set(e,t),()=>{D.get(e)===t&&D.delete(e)}}function ue(e,t){t?O.set(e,t):O.delete(e)}function de(e){return O.get(e)}function fe(e,t){se.add(e);try{t()}finally{se.delete(e)}}function pe(e){return se.has(e)}function me(e,t){ce.set(e,t),t.finally(()=>{ce.get(e)===t&&ce.delete(e)})}function he(e,t){let n=ce.get(e);n?n.then(t):t()}function ge(e){if(typeof document>`u`||document.querySelector(`[role="dialog"][aria-modal="true"]`))return;let t=e?D.get(e):null;if(t){let n=e?k.get(e):void 0;n?n():t.focus({preventScroll:!0})}else ie?.focus({preventScroll:!0})}var _e=`githuman:windows:v1`,ve=1,ye={x:260,y:120},be=new Set([`__proto__`,`constructor`,`prototype`]);function xe(e){return{...e,get maximized(){return this.mode===`maximized`},set maximized(e){this.mode=e?`maximized`:`normal`}}}function Se(e){if(!u(e)||!u(e.position)||!p(e.position.x)||!p(e.position.y))return null;let t=e.windowSize;return xe({position:{x:e.position.x,y:e.position.y},windowSize:u(t)&&p(t.width)&&p(t.height)&&t.width>0&&t.height>0?{width:t.width,height:t.height}:null,open:e.open===!0,minimized:e.minimized===!0,mode:e.mode===`normal`||e.mode===`maximized`||e.mode===`left`||e.mode===`right`?e.mode:e.maximized===!0?`maximized`:`normal`})}var Ce=o(`windows`,()=>{let r=n({}),i=n([]),a=[],o=n({edge:`bottom`,position:null});try{let e=JSON.parse(y.get(_e)??`null`);if(u(e)&&e.version===ve){if(u(e.windows))for(let[t,n]of Object.entries(e.windows)){if(be.has(t))continue;let e=Se(n);e&&(r.value[t]=e)}Array.isArray(e.order)&&(i.value=e.order.filter(e=>typeof e==`string`&&Object.hasOwn(r.value,e)));let t=e.dock;if(u(t)){let e=ne.find(e=>e===t.edge);e&&(o.value.edge=e),u(t.position)&&p(t.position.x)&&p(t.position.y)&&(o.value.position={x:t.position.x,y:t.position.y})}}}catch{}function s(){y.set(_e,JSON.stringify({version:ve,windows:r.value,order:i.value,dock:o.value}))}function c(e){if(!e||be.has(e))throw Error(`Invalid window id`);return Object.hasOwn(r.value,e)||(r.value[e]=xe({position:{...ye},windowSize:null,open:!1,minimized:!1,mode:`normal`})),r.value[e]}function l(e){let t=c(e);t.open=!0,t.minimized=!1,i.value=[...i.value.filter(t=>t!==e),e],s()}function d(e){c(e).open=!1,i.value=i.value.filter(t=>t!==e),s()}let f=t(()=>i.value.findLast(e=>r.value[e]?.open&&!r.value[e]?.minimized)??null);function m(e){return f.value===e}function h(e){let t=c(e);t.open&&!t.minimized&&(t.minimized=!0,a=[...a.filter(t=>t!==e),e],s())}function g(){for(let e of i.value)h(e);s()}function _(){if(f.value)return!1;let e=[...i.value,...a].findLast(e=>r.value[e]?.open&&r.value[e]?.minimized);return e?(a=a.filter(t=>t!==e),l(e),!0):!1}function v(e,t){let n=c(e);n.mode=n.mode===t?`normal`:t,s()}return e(o,s,{deep:!0}),{windows:r,order:i,dock:o,activeId:f,ensure:c,focus:l,close:d,isActive:m,minimize:h,minimizeAll:g,restoreLastMinimized:_,toggleMode:v,remember:s}});function we(e){return e.split(`/`).at(-1)??``}function Te(e){return e.split(`/`).slice(0,-1).join(`/`)}function Ee(e,t){return e?e+`/`+t:t}function De(e){return we(e).replace(/\.md$/i,``)}var Oe=1e7,ke=1e8,Ae=2e8,A={inspectExternalAsset:(e,t)=>f(`/api/notes/assets/inspect`,{url:e},t),importExternalAsset:(e,t)=>f(`/api/notes/assets/import`,e,t),previewExternalAsset:(e,t)=>v(`/api/notes/assets/preview`,{url:e},t),delete:(e,t)=>f(`/api/notes/delete`,{id:e,storageId:t}),uploadAsset:async e=>{if(e.size>1e7)throw Error(`Image must be under 10 MB`);let t=new FormData;return t.append(`file`,e),l(`/api/notes/assets`,t)},resolvePath:e=>s(`/api/notes/path?path=`+encodeURIComponent(e)),index:()=>s(`/api/notes`),read:e=>s(`/api/notes/document?path=`+encodeURIComponent(e)),create:(e,t)=>f(`/api/notes/document`,{path:e,text:t}),save:(e,t,n,r,i)=>c(`/api/notes/document`,{path:e,text:t,version:n,id:r,storageId:i}),readId:(e,t)=>s(`/api/notes/by-id?id=`+encodeURIComponent(e)+`&storageId=`+encodeURIComponent(t)),descriptor:(e,t)=>s(`/api/notes/identity?id=`+encodeURIComponent(e)+`&storageId=`+encodeURIComponent(t)),resolve:(e,t,n,r,i)=>f(`/api/notes/resolve`,{sourceId:e,storageId:t,text:n,href:r,occurrence:i}),resolveIdentity:(e,t,n)=>f(`/api/notes/identity/resolve`,{issueId:e,restore:t,candidateId:n}),repair:()=>f(`/api/notes/repair`,{}),rename:(e,t,n,r,i,a)=>f(`/api/notes/rename`,{path:e,name:t,folder:n,target:r,id:i,revision:a}),folder:e=>f(`/api/notes/folder`,{path:e})};function je(e,t,n=Object.is){return e.length===t.length&&e.every((e,r)=>n(e,t[r]))}function Me(e,t){let n=new Map(e.map(e=>[e.path,e])),r=t.map(e=>{let t=n.get(e.path);return t&&t.folder===e.folder&&t.id===e.id&&t.presence===e.presence&&t.error===e.error&&je(t.tags,e.tags)?t:e});return je(e,r)?e:r}var Ne=Symbol.for(`yaml.alias`),Pe=Symbol.for(`yaml.document`),j=Symbol.for(`yaml.map`),Fe=Symbol.for(`yaml.pair`),M=Symbol.for(`yaml.scalar`),Ie=Symbol.for(`yaml.seq`),N=Symbol.for(`yaml.node.type`),P=e=>!!e&&typeof e==`object`&&e[N]===Ne,Le=e=>!!e&&typeof e==`object`&&e[N]===Pe,F=e=>!!e&&typeof e==`object`&&e[N]===j,I=e=>!!e&&typeof e==`object`&&e[N]===Fe,L=e=>!!e&&typeof e==`object`&&e[N]===M,Re=e=>!!e&&typeof e==`object`&&e[N]===Ie;function R(e){if(e&&typeof e==`object`)switch(e[N]){case j:case Ie:return!0}return!1}function z(e){if(e&&typeof e==`object`)switch(e[N]){case Ne:case j:case M:case Ie:return!0}return!1}var ze=e=>(L(e)||R(e))&&!!e.anchor,B=Symbol(`break visit`),Be=Symbol(`skip children`),Ve=Symbol(`remove node`);function He(e,t){let n=We(t);Le(e)?Ue(null,e.contents,n,Object.freeze([e]))===Ve&&(e.contents=null):Ue(null,e,n,Object.freeze([]))}He.BREAK=B,He.SKIP=Be,He.REMOVE=Ve;function Ue(e,t,n,r){let i=Ge(e,t,n,r);if(z(i)||I(i))return Ke(e,r,i),Ue(e,i,n,r);if(typeof i!=`symbol`){if(R(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=Ue(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===B)return B;else i===Ve&&(t.items.splice(e,1),--e)}}else if(I(t)){r=Object.freeze(r.concat(t));let e=Ue(`key`,t.key,n,r);if(e===B)return B;e===Ve&&(t.key=null);let i=Ue(`value`,t.value,n,r);if(i===B)return B;i===Ve&&(t.value=null)}}return i}function We(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function Ge(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(F(t))return n.Map?.(e,t,r);if(Re(t))return n.Seq?.(e,t,r);if(I(t))return n.Pair?.(e,t,r);if(L(t))return n.Scalar?.(e,t,r);if(P(t))return n.Alias?.(e,t,r)}function Ke(e,t,n){let r=t[t.length-1];if(R(r))r.items[e]=n;else if(I(r))e===`key`?r.key=n:r.value=n;else if(Le(r))r.contents=n;else{let e=P(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var qe={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},Je=e=>e.replace(/[!,[\]{}]/g,e=>qe[e]),V=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags)}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+Je(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&z(e.contents)){let t={};He(e.contents,(e,n)=>{z(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)(i!==`!!`||a!==`tag:yaml.org,2002:`)&&(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
|
|
2
2
|
`)}};V.defaultYaml={explicit:!1,version:`1.2`},V.defaultTags={"!!":`tag:yaml.org,2002:`};function Ye(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function Xe(e){let t=new Set;return He(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function Ze(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function Qe(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??=Xe(e);let a=Ze(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(L(t.node)||R(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}function $e(e,t,n,r){if(r&&typeof r==`object`){if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=$e(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=$e(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=$e(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=$e(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}}return e.call(t,n,r)}function H(e,t,n){if(Array.isArray(e))return e.map((e,t)=>H(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!ze(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var et=class{constructor(e){Object.defineProperty(this,N,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!Le(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=H(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?$e(i,{"":o},``,o):o}},tt=class extends et{constructor(e){super(Ne),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],He(e,{Node:(e,t)=>{(P(t)||ze(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}return r}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r,t);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||=(H(a,null,t),n.get(a)),!o||o.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=nt(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(Ye(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function nt(e,t,n){if(P(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}if(R(t)){let r=0;for(let i of t.items){let t=nt(e,i,n);t>r&&(r=t)}return r}if(I(t)){let r=nt(e,t.key,n),i=nt(e,t.value,n);return Math.max(r,i)}return 1}var rt=e=>!e||typeof e!=`function`&&typeof e!=`object`,U=class extends et{constructor(e){super(M),this.value=e}toJSON(e,t){return t?.keep?this.value:H(this.value,e,t)}toString(){return String(this.value)}};U.BLOCK_FOLDED=`BLOCK_FOLDED`,U.BLOCK_LITERAL=`BLOCK_LITERAL`,U.PLAIN=`PLAIN`,U.QUOTE_DOUBLE=`QUOTE_DOUBLE`,U.QUOTE_SINGLE=`QUOTE_SINGLE`;var it=`tag:yaml.org,2002:`;function at(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function ot(e,t,n){if(Le(e)&&(e=e.contents),z(e))return e;if(I(e)){let t=n.schema[j].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??(c.anchor=i(e)),new tt(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=it+t.slice(2));let l=at(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new U(e);return c&&(c.node=t),t}l=e instanceof Map?o[j]:Symbol.iterator in Object(e)?o[Ie]:o[j]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new U(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function st(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return ot(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var ct=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,lt=class extends et{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>z(t)||I(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(ct(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(R(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,st(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(R(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&L(i)?i.value:i:R(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!I(t))return!1;let n=t.value;return n==null||e&&L(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return R(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(R(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,st(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},ut=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function W(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var G=(e,t,n)=>e.endsWith(`
|
|
3
3
|
`)?W(n,t):n.includes(`
|
|
4
4
|
`)?`
|
|
@@ -110,4 +110,4 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
110
110
|
`};let r=n.match(/^---\r?\n([\s\S]*?)(?:^---[ \t]*(?:\r?\n|$))/m);if(!r)throw Error(`Unclosed YAML frontmatter`);return{head:t+r[0],body:n.slice(r[0].length),yaml:r[1]??``,eol:r[0].includes(`\r
|
|
111
111
|
`)?`\r
|
|
112
112
|
`:`
|
|
113
|
-
`}}function ei(e){try{let{doc:t}=ri(e),n=t.get(`tags`);if(n===void 0)return{tags:[],error:null};if(!Re(n)||n.items.some(e=>!L(e)||typeof e.value!=`string`))throw Error(`tags must be a list of strings`);return{tags:ti(n.items.map(e=>L(e)?String(e.value):``)),error:null}}catch(e){return{tags:[],error:m(e)}}}function ti(e){return[...new Set(e.map(e=>e.trim()).filter(Boolean))]}function ni(e,t){let n=ei(e);if(n.error)throw Error(n.error);let r=ti(t);if(JSON.stringify(r)===JSON.stringify(n.tags))return e;let{parts:i,doc:a}=ri(e);return a.set(`tags`,r),ai(e,i,a.toString())}function ri(e){let t=$r(e),n=Qr(t.yaml);if(n.errors.length)throw Error(n.errors[0]?.message);if(n.contents&&!F(n.contents))throw Error(`Frontmatter must be a YAML mapping`);return{parts:t,doc:n}}function ii(e){let{doc:t}=ri(e);if(!F(t.contents))return[];let n=t.toJS({maxAliasCount:100});return u(n)?t.contents.items.map(e=>{if(!L(e.key)||typeof e.key.value!=`string`)throw Error(`Property names must be strings`);let t=e.key.value;return{key:t,value:n[t]}}):[]}function ai(e,t,n){return(e.startsWith(``)?``:``)+`---`+t.eol+n.replace(/\n/g,t.eol)+`---`+t.eol+t.body}function oi(e,t,n){if(!t.trim())throw Error(`Property name must not be empty`);if(t===`tags`){if(!Array.isArray(n))throw Error(`tags must be a list of strings`);return ni(e,n)}let{parts:r,doc:i}=ri(e),a=ii(e).find(e=>e.key===t);return a&&JSON.stringify(a.value)===JSON.stringify(n)?e:(i.set(t,n),ai(e,r,i.toString()))}function si(e,t){let{parts:n,doc:r}=ri(e);return r.has(t)?(r.delete(t),ai(e,n,r.toString())):e}function ci(e){return e.id&&e.storageId?A.readId(e.id,e.storageId):A.read(e.path)}var li=o(`notes`,()=>{let e=n({entries:[],storage:``,warning:null}),r=n(``),a=n(``),o=n(null),s=i({}),c=n(``),l=n(!1),u=t(()=>s[r.value]),d=t(()=>u.value?.path??o.value?.note.path??``),f=new Map,p=0;function h(e){let t=e.id??e.path,n=s[t];s[t]={...e,saved:e.text,status:`saved`,error:``,disk:null,revision:(n?.revision??0)+1}}function v(e){return s[e]?e:Object.keys(s).find(t=>s[t]?.path===e)??e}function y(e,t){let n=s[v(e)];n&&n.text!==t&&(n.text=t,n.status!==`conflict`&&(n.status=t===n.saved?`saved`:`dirty`,n.error=``))}async function b(e){let t=s[e];if(!t||t.deleted)return!0;for(;t.text!==t.saved;){if(t.status===`conflict`)return!1;let e=ei(t.text);if(e.error)return t.status=`error`,t.error=e.error,!1;let n=t.text;t.status=`saving`;try{let e=await A.save(t.path,n,t.version,t.id,t.storageId);t.path=e.path,t.saved=e.text,t.version=e.version,t.error=``}catch(e){return t.status=e instanceof g&&e.status===409?`conflict`:`error`,t.error=m(e),t.status===`conflict`&&(t.disk=await ci(t).catch(()=>null)),!1}}return t.status=`saved`,!0}async function x(e=r.value){e=v(e);let t=f.get(e);if(t)return await t?x(e):!1;let n=b(e);f.set(e,n);try{return await n}finally{f.delete(e)}}let S=_(async()=>{try{let t=await A.index(),n=Me(e.value.entries,t.entries);(n!==e.value.entries||t.storage!==e.value.storage||t.warning!==e.value.warning||t.storageId!==e.value.storageId||t.revision!==e.value.revision||JSON.stringify(t.issues)!==JSON.stringify(e.value.issues))&&(e.value={...t,entries:n});let i=r.value;f.has(i)&&await f.get(i);let a=s[i];if(a)try{let e=a.version,t=await ci(a);if(r.value!==i||s[i]!==a||a.version!==e)return;if(a.path=t.path,t.id&&t.id!==a.id&&a.text===a.saved){h(t),r.value=t.id,delete s[i];return}t.version!==a.version&&(a.text===a.saved?h(t):(a.status=`conflict`,a.disk=t,a.error=`The note changed on disk.`))}catch(e){a.status=e instanceof g&&e.status===404?`conflict`:`error`,a.disk=null,a.error=m(e)}if(o.value&&e.value.storageId){o.value=await A.descriptor(o.value.note.id,e.value.storageId);let t=s[o.value.note.id];o.value.note.presence===`deleted`&&t&&(t.deleted=!0)}c.value=``}catch(e){c.value=m(e)}});async function C(e){let t=++p;if(!await x())return!1;l.value=!0;try{let n=await A.read(e);return t===p&&(h(n),r.value=n.id??n.path,o.value=null,c.value=``,!0)}catch(e){return c.value=m(e),!1}finally{t===p&&(l.value=!1)}}async function ee(e,t=``){if(!await x())return!1;try{let n=await A.create(e,t);return h(n),a.value=n.id??n.path,await S(),!0}catch(e){return c.value=m(e),!1}}async function w(t,n,i,a,o){let l=e=>e===t||i&&e.startsWith(t+`/`);for(let e of Object.keys(s))if(!await x(e))return c.value=s[e]?.error||`Save the note before renaming.`,!1;try{await S();let c=e.value.entries.find(e=>e.path===t&&!e.folder)?.id;if(o&&c!==o)throw Error(`The note moved or changed. Try again.`);await A.rename(t,n,i,a,c,e.value.revision);let u=a??Ee(Te(t),n),d=e=>u+e.slice(t.length);for(let e of Object.keys(s)){if(!l(s[e].path))continue;let t=s[e],n=t.path;t.path=d(n),t.id||(delete s[e],s[t.path]=t,r.value===e&&(r.value=t.path))}return await S(),!0}catch(e){return c.value=m(e),!1}}async function T(t){let n=e.value.entries.find(e=>e.path===t&&!e.folder),i=e.value.storageId;if(!n?.id||!i)return c.value=`The note is no longer available.`,!1;if(!await x(t))return c.value=s[v(t)]?.error||`Save the note before deleting.`,!1;try{return await A.delete(n.id,i),delete s[n.id],delete s[t],(r.value===n.id||r.value===t)&&D(),await S(),!0}catch(e){return c.value=m(e),!1}}async function te(e){try{await A.folder(e),await S()}catch(e){c.value=m(e)}}async function E(){let e=r.value;await f.get(e);try{let t=s[e];return t?(h(await ci(t)),!0):!1}catch(e){return c.value=m(e),!1}}async function ne(e){let t=u.value;if(!t)return!1;try{let n=await A.create(e,t.text);return h(n),a.value=n.id??n.path,delete s[t.id??t.path],await S(),!0}catch(e){return c.value=m(e),!1}}async function re(e,t){let n=++p;if(!await x())return!1;l.value=!0;try{let i=await A.descriptor(e,t),a=i.note.presence===`present`?await A.readId(i.note.id,t):null;return n===p&&(o.value=i,r.value=i.note.id,a&&h(a),c.value=``,!0)}catch(e){return n===p&&(r.value=``,o.value=null,c.value=m(e)),!1}finally{n===p&&(l.value=!1)}}function D(){r.value=``,o.value=null}async function O(e,t,n){if(!await x())return!1;try{return await A.resolveIdentity(e,t,n),await S(),!0}catch(e){return c.value=m(e),!1}}async function k(){if(await x())try{await A.repair(),await S()}catch(e){c.value=m(e)}}return{createdId:a,selectedId:r,descriptor:o,selectId:re,clearSelection:D,resolveIdentity:O,repair:k,index:e,selected:d,drafts:s,current:u,error:c,loading:l,edit:y,save:x,refresh:S,select:C,create:ee,folder:te,reloadDisk:E,saveCopy:ne,remove:T,rename:w}}),ui=10485760;function di(e){return`tool:${e}`}function fi(){return{items:[],permissions:[],status:`starting`,usage:null,config:[],autoApprove:!1,lastEventId:0,lastStopReason:null}}function pi(e,t){if(t.id<=e.lastEventId)return;e.lastEventId=t.id;let{event:n}=t,r=`ev:${t.id}`;switch(n.type){case`status`:e.status=n.status;break;case`config`:e.config=n.options;break;case`user`:e.items.push({kind:`user`,id:r,text:n.text,context:n.context});break;case`message`:{let t=e.items.at(-1),i=n.role;t&&t.kind===i?t.text+=n.text:e.items.push({kind:i,id:r,text:n.text});break}case`tool`:{let t=e.items.find(e=>e.kind===`tool`&&e.id===di(n.toolCallId));t?(n.title&&(t.title=n.title),n.kind&&(t.toolKind=n.kind),n.status&&(t.status=n.status),n.locations&&(t.locations=n.locations),n.diffs&&(t.diffs=n.diffs),n.output!==void 0&&(t.output=n.output)):e.items.push({kind:`tool`,id:di(n.toolCallId),title:n.title??``,toolKind:n.kind,status:n.status??`pending`,locations:n.locations??[],diffs:n.diffs??[],output:n.output});break}case`permission`:e.permissions.some(e=>e.requestId===n.requestId)||e.permissions.push({requestId:n.requestId,toolCallId:n.toolCallId,title:n.title,options:n.options,diffs:n.diffs});break;case`permission-resolved`:e.permissions=e.permissions.filter(e=>e.requestId!==n.requestId);break;case`auto-approve`:e.autoApprove=n.enabled;break;case`auto-approved`:e.items.push({kind:`auto-approved`,id:r,title:n.title});break;case`usage`:e.usage={used:n.used,size:n.size,cost:n.cost};break;case`stop`:e.lastStopReason=n.stopReason;break;case`error`:e.items.push({kind:`error`,id:r,text:n.message})}}function mi(e,t){e.status=t.status,e.autoApprove=t.autoApprove,e.config=t.config,e.permissions=t.permissions.map(({requestId:e,toolCallId:t,title:n,options:r,diffs:i})=>({requestId:e,toolCallId:t,title:n,options:r,diffs:i}))}function hi(e){let t;try{t=JSON.parse(e)}catch{return null}return u(t)&&typeof t.sessionId==`string`&&typeof t.status==`string`&&typeof t.autoApprove==`boolean`&&Array.isArray(t.config)&&Array.isArray(t.permissions)?t:null}function gi(e){return e.kind===`artifact`?JSON.stringify([e.kind,e.storeId,e.artifactId]):e.kind===`note`?JSON.stringify([e.kind,e.storageId,e.noteId]):JSON.stringify(e)}function _i(e,t){let n=new Set,r=[];for(let i of[...e,...t]){let e=gi(i);n.has(e)||(n.add(e),r.push(i))}return r}function vi(e){return e.some(e=>e.kind===`user`&&e.context.some(e=>e.kind===`review`))}function yi(e){let t=bi(e);if(!t)return null;let{sessionId:n}=t;return typeof n==`string`&&n!==``?{...t,sessionId:n}:null}function bi(e){let t;try{t=JSON.parse(e)}catch{return null}return u(t)&&typeof t.id==`number`&&u(t.event)&&typeof t.event.type==`string`?t:null}var xi=`githuman.agent.activeChat`,Si=2e3,Ci=2e3,wi=o(`agent`,()=>{let e=n([]),i=n(!1),o=n(!1),c=n({}),l=n([]),p=n(null),v=n(!1),x=n(!1),S=n(null),C=n(0),ee=n({open:!1,context:[]}),w=null,T=!1,te=a(()=>{T=!1,he()},Si),E=!1,ne=!1,re=0,D=new Set,O=new Map,k=new Map,ie=t(()=>l.value.flatMap(e=>{let t=c.value[e];return t?[t]:[]})),ae=t(()=>p.value===null?null:c.value[p.value]??null),oe=t(()=>l.value.length<5);function se(e){let t=c.value[e.id];if(t)return t.info=e,t;let n=fi();n.status=e.status,n.autoApprove=e.autoApprove,c.value[e.id]={info:e,chat:n,pendingContext:[],error:null,reviewStale:!1,closing:!1,seq:++re},l.value.push(e.id);let r=c.value[e.id];if(!r)throw Error(`unreachable: chat was just registered`);let i=k.get(e.id);i&&mi(r.chat,i),k.delete(e.id);for(let t of O.get(e.id)??[])pi(r.chat,t);return O.delete(e.id),r}function ce(e){let t=l.value.indexOf(e);t!==-1&&(l.value.splice(t,1),delete c.value[e],O.delete(e),k.delete(e),p.value===e&&le(l.value[t]??l.value[t-1]??null))}function le(e){p.value=e,e===null?y.remove(xi):y.set(xi,e)}function ue(e){c.value[e]&&(le(e),v.value=!0)}let de=_(async()=>{let e=re,t;try{t=await s(`/api/agent/sessions`)}catch(e){S.value=m(e);return}let n=new Set(t.map(e=>e.id));for(let e of t)D.has(e.id)||se(e);let r=l.value.filter(t=>!n.has(t)&&(c.value[t]?.seq??0)<=e);for(let e of r)ce(e);for(let e of O.keys())n.has(e)||O.delete(e);for(let e of k.keys())n.has(e)||k.delete(e);if(p.value===null||!c.value[p.value]){let e=y.get(xi);le((e!==null&&c.value[e]?e:null)??l.value[0]??null)}});function fe(e){let t=c.value[e.sessionId];if(t){pi(t.chat,e);return}if(D.has(e.sessionId))return;let n=O.get(e.sessionId)??[];n.length<Ci&&n.push(e),O.set(e.sessionId,n),de()}function pe(){E||T||(T=!0,te())}function me(){E=!0,te.cancel(),T=!1,w?.close(),w=null}function he(){if(E||w)return;te.cancel(),T=!1;let e=new EventSource(`/api/agent/events`);e.addEventListener(`agent`,t=>{if(w!==e||!(t instanceof MessageEvent))return;let n=yi(String(t.data));n&&fe(n)}),e.addEventListener(`gap`,t=>{if(w===e&&t instanceof MessageEvent)try{let e=JSON.parse(String(t.data)),n=u(e)&&typeof e.sessionId==`string`?e.sessionId:null,r=n===null?void 0:c.value[n];r?Object.assign(r.chat,fi()):n!==null&&O.delete(n)}catch{}}),e.addEventListener(`state`,t=>{if(w!==e||!(t instanceof MessageEvent))return;let n=hi(String(t.data));if(!n)return;let r=c.value[n.sessionId];r?mi(r.chat,n):D.has(n.sessionId)||k.set(n.sessionId,n)}),e.addEventListener(`artifact-actions`,()=>{w===e&&C.value++}),e.addEventListener(`sessions`,()=>{w===e&&de()}),e.addEventListener(`open`,()=>{w===e&&(de(),C.value++)}),e.addEventListener(`error`,()=>{w===e&&e.readyState===EventSource.CLOSED&&(w=null,h(),pe())}),w=e}async function ge(){try{e.value=await s(`/api/agent/presets`)}catch(e){if(E)return;o.value=!0,i.value=!1,e instanceof g&&e.status===404||(S.value=m(e));return}E||(i.value=!0,o.value=!0,await de(),!E&&(he(),ne||(ne=!0,b([`files:changed`],Oe))))}function _e(e=[]){return oe.value?(ee.value={open:!0,context:e},!0):!1}function ve(){ee.value={open:!1,context:[]}}async function ye(e,t,n=[]){if(x.value)throw Error(`A chat is already being created`);x.value=!0,S.value=null;try{let r=await f(`/api/agent/sessions`,{presetId:e,name:t}),i=se(r);return i.pendingContext=_i(i.pendingContext,n),ue(r.id),r.id}catch(e){throw S.value=m(e),e}finally{x.value=!1}}async function be(e){let t=c.value[e];if(t&&!t.closing){t.closing=!0;try{await d(`/api/agent/sessions/${e}`)}catch(e){if(!(e instanceof g&&e.status===404))throw t.closing=!1,t.error=m(e),e}D.add(e),ce(e)}}async function xe(e,t=[],n=p.value){let r=n===null?void 0:c.value[n],i=e.trim();if(!r||i===``||r.chat.status!==`ready`)return!1;r.error=null;let a=_i(r.pendingContext,t),o={text:i,context:a};try{let e=li();for(let t of a){if(t.kind!==`note`)continue;let n=e.drafts[t.noteId];if(n&&n.storageId===t.storageId&&!await e.save(t.noteId))throw Error(n.error||`Could not save the note`)}await f(`/api/agent/sessions/${r.info.id}/prompt`,o);let t=new Set(a.map(gi));return r.pendingContext=r.pendingContext.filter(e=>!t.has(gi(e))),!0}catch(e){throw r.error=m(e),e}}async function Se(e=p.value){let t=e===null?void 0:c.value[e];t&&t.chat.status===`busy`&&await f(`/api/agent/sessions/${t.info.id}/cancel`)}async function Ce(e,t,n=p.value){let r=n===null?void 0:c.value[n];if(!r)return;let i=t===void 0?{}:{optionId:t};await f(`/api/agent/sessions/${r.info.id}/permissions/${e}`,i)}async function we(e,t,n=p.value){let r=n===null?void 0:c.value[n];if(!r||r.chat.status!==`ready`)return;r.error=null;let i={configId:e,value:t};try{await f(`/api/agent/sessions/${r.info.id}/config`,i)}catch(e){throw r.error=m(e),e}}async function Te(e,t=p.value){let n=t===null?void 0:c.value[t];if(!n)return;let r={enabled:e};await f(`/api/agent/sessions/${n.info.id}/auto-approve`,r)}function Ee(e,t){let n=t===void 0?ae.value:c.value[t];if(t!==void 0&&!n)return`missing`;if(!n)return _e([e])?`dialog`:`limit`;let r=gi(e);return n.pendingContext.some(e=>gi(e)===r)||n.pendingContext.push(e),v.value=!0,`added`}function De(e,t=p.value){(t===null?void 0:c.value[t])?.pendingContext.splice(e,1)}function Oe(){for(let e of Object.values(c.value))vi(e.chat.items)&&(e.reviewStale=!0)}return r(me),{artifactActionsVersion:C,presets:e,enabled:i,initialized:o,chats:c,order:l,list:ie,activeId:p,activeChat:ae,canAddChat:oe,panelOpen:v,creating:x,error:S,newChatDialog:ee,init:ge,refreshSessions:de,openNewChatDialog:_e,closeNewChatDialog:ve,createChat:ye,closeChat:be,selectChat:le,openChat:ue,send:xe,cancel:Se,answerPermission:Ce,setConfig:we,setAutoApprove:Te,addContext:Ee,removeContext:De,markWorktreeChanged:Oe}});export{me as A,te as B,de as C,oe as D,ue as E,re as F,x as I,E as L,C as M,ee as N,le as O,S as P,w as R,he as S,pe as T,we as _,ii as a,De as b,ni as c,L as d,je as f,ke as g,Ae as h,ei as i,fe as j,ae as k,$r as l,Oe as m,ui as n,si as o,A as p,li as r,oi as s,wi as t,Qr as u,Ee as v,ge as w,Ce as x,Te as y,T as z};
|
|
113
|
+
`}}function ei(e){try{let{doc:t}=ri(e),n=t.get(`tags`);if(n===void 0)return{tags:[],error:null};if(!Re(n)||n.items.some(e=>!L(e)||typeof e.value!=`string`))throw Error(`tags must be a list of strings`);return{tags:ti(n.items.map(e=>L(e)?String(e.value):``)),error:null}}catch(e){return{tags:[],error:m(e)}}}function ti(e){return[...new Set(e.map(e=>e.trim()).filter(Boolean))]}function ni(e,t){let n=ei(e);if(n.error)throw Error(n.error);let r=ti(t);if(JSON.stringify(r)===JSON.stringify(n.tags))return e;let{parts:i,doc:a}=ri(e);return a.set(`tags`,r),ai(e,i,a.toString())}function ri(e){let t=$r(e),n=Qr(t.yaml);if(n.errors.length)throw Error(n.errors[0]?.message);if(n.contents&&!F(n.contents))throw Error(`Frontmatter must be a YAML mapping`);return{parts:t,doc:n}}function ii(e){let{doc:t}=ri(e);if(!F(t.contents))return[];let n=t.toJS({maxAliasCount:100});return u(n)?t.contents.items.map(e=>{if(!L(e.key)||typeof e.key.value!=`string`)throw Error(`Property names must be strings`);let t=e.key.value;return{key:t,value:n[t]}}):[]}function ai(e,t,n){return(e.startsWith(``)?``:``)+`---`+t.eol+n.replace(/\n/g,t.eol)+`---`+t.eol+t.body}function oi(e,t,n){if(!t.trim())throw Error(`Property name must not be empty`);if(t===`tags`){if(!Array.isArray(n))throw Error(`tags must be a list of strings`);return ni(e,n)}let{parts:r,doc:i}=ri(e),a=ii(e).find(e=>e.key===t);return a&&JSON.stringify(a.value)===JSON.stringify(n)?e:(i.set(t,n),ai(e,r,i.toString()))}function si(e,t){let{parts:n,doc:r}=ri(e);return r.has(t)?(r.delete(t),ai(e,n,r.toString())):e}function ci(e){return e.id&&e.storageId?A.readId(e.id,e.storageId):A.read(e.path)}var li=o(`notes`,()=>{let e=n({entries:[],storage:``,warning:null}),r=n(``),a=n(``),o=n(null),s=i({}),c=n(``),l=n(!1),u=t(()=>s[r.value]),d=t(()=>u.value?.path??o.value?.note.path??``),f=new Map,p=0;function h(e){let t=e.id??e.path,n=s[t];s[t]={...e,saved:e.text,status:`saved`,error:``,disk:null,revision:(n?.revision??0)+1}}function v(e){return s[e]?e:Object.keys(s).find(t=>s[t]?.path===e)??e}function y(e,t){let n=s[v(e)];n&&n.text!==t&&(n.text=t,n.status!==`conflict`&&(n.status=t===n.saved?`saved`:`dirty`,n.error=``))}async function b(e){let t=s[e];if(!t||t.deleted)return!0;for(;t.text!==t.saved;){if(t.status===`conflict`)return!1;let e=ei(t.text);if(e.error)return t.status=`error`,t.error=e.error,!1;let n=t.text;t.status=`saving`;try{let e=await A.save(t.path,n,t.version,t.id,t.storageId);t.path=e.path,t.saved=e.text,t.version=e.version,t.error=``}catch(e){return t.status=e instanceof g&&e.status===409?`conflict`:`error`,t.error=m(e),t.status===`conflict`&&(t.disk=await ci(t).catch(()=>null)),!1}}return t.status=`saved`,!0}async function x(e=r.value){e=v(e);let t=f.get(e);if(t)return await t?x(e):!1;let n=b(e);f.set(e,n);try{return await n}finally{f.delete(e)}}let S=_(async()=>{try{let t=await A.index(),n=Me(e.value.entries,t.entries);(n!==e.value.entries||t.storage!==e.value.storage||t.warning!==e.value.warning||t.storageId!==e.value.storageId||t.revision!==e.value.revision||JSON.stringify(t.issues)!==JSON.stringify(e.value.issues))&&(e.value={...t,entries:n});let i=r.value;f.has(i)&&await f.get(i);let a=s[i];if(a)try{let e=a.version,t=await ci(a);if(r.value!==i||s[i]!==a||a.version!==e)return;if(a.path=t.path,t.id&&t.id!==a.id&&a.text===a.saved){h(t),r.value=t.id,delete s[i];return}t.version!==a.version&&(a.text===a.saved?h(t):(a.status=`conflict`,a.disk=t,a.error=`The note changed on disk.`))}catch(e){a.status=e instanceof g&&e.status===404?`conflict`:`error`,a.disk=null,a.error=m(e)}if(o.value&&e.value.storageId){o.value=await A.descriptor(o.value.note.id,e.value.storageId);let t=s[o.value.note.id];o.value.note.presence===`deleted`&&t&&(t.deleted=!0)}c.value=``}catch(e){c.value=m(e)}});async function C(e){let t=++p;if(!await x())return!1;l.value=!0;try{let n=await A.read(e);return t===p&&(h(n),r.value=n.id??n.path,o.value=null,c.value=``,!0)}catch(e){return c.value=m(e),!1}finally{t===p&&(l.value=!1)}}async function ee(e,t=``){if(!await x())return!1;try{let n=await A.create(e,t);return h(n),a.value=n.id??n.path,await S(),!0}catch(e){return c.value=m(e),!1}}async function w(t,n,i,a,o){let l=e=>e===t||i&&e.startsWith(t+`/`);for(let e of Object.keys(s))if(!await x(e))return c.value=s[e]?.error||`Save the note before renaming.`,!1;try{await S();let c=e.value.entries.find(e=>e.path===t&&!e.folder)?.id;if(o&&c!==o)throw Error(`The note moved or changed. Try again.`);await A.rename(t,n,i,a,c,e.value.revision);let u=a??Ee(Te(t),n),d=e=>u+e.slice(t.length);for(let e of Object.keys(s)){if(!l(s[e].path))continue;let t=s[e],n=t.path;t.path=d(n),t.id||(delete s[e],s[t.path]=t,r.value===e&&(r.value=t.path))}return await S(),!0}catch(e){return c.value=m(e),!1}}async function T(t){let n=e.value.entries.find(e=>e.path===t&&!e.folder),i=e.value.storageId;if(!n?.id||!i)return c.value=`The note is no longer available.`,!1;if(!await x(t))return c.value=s[v(t)]?.error||`Save the note before deleting.`,!1;try{return await A.delete(n.id,i),delete s[n.id],delete s[t],(r.value===n.id||r.value===t)&&D(),await S(),!0}catch(e){return c.value=m(e),!1}}async function te(e){try{await A.folder(e),await S()}catch(e){c.value=m(e)}}async function E(){let e=r.value;await f.get(e);try{let t=s[e];return t?(h(await ci(t)),!0):!1}catch(e){return c.value=m(e),!1}}async function ne(e){let t=u.value;if(!t)return!1;try{let n=await A.create(e,t.text);return h(n),a.value=n.id??n.path,delete s[t.id??t.path],await S(),!0}catch(e){return c.value=m(e),!1}}async function re(e,t){let n=++p;if(!await x())return!1;l.value=!0;try{let i=await A.descriptor(e,t),a=i.note.presence===`present`?await A.readId(i.note.id,t):null;return n===p&&(o.value=i,r.value=i.note.id,a&&h(a),c.value=``,!0)}catch(e){return n===p&&(r.value=``,o.value=null,c.value=m(e)),!1}finally{n===p&&(l.value=!1)}}function D(){r.value=``,o.value=null}async function O(e,t,n){if(!await x())return!1;try{return await A.resolveIdentity(e,t,n),await S(),!0}catch(e){return c.value=m(e),!1}}async function k(){if(await x())try{await A.repair(),await S()}catch(e){c.value=m(e)}}return{createdId:a,selectedId:r,descriptor:o,selectId:re,clearSelection:D,resolveIdentity:O,repair:k,index:e,selected:d,drafts:s,current:u,error:c,loading:l,edit:y,save:x,refresh:S,select:C,create:ee,folder:te,reloadDisk:E,saveCopy:ne,remove:T,rename:w}}),ui=10485760;function di(e){return`tool:${e}`}function fi(){return{items:[],permissions:[],status:`starting`,usage:null,config:[],autoApprove:!1,lastEventId:0,lastStopReason:null}}function pi(e,t){if(t.id<=e.lastEventId)return;e.lastEventId=t.id;let{event:n}=t,r=`ev:${t.id}`;switch(n.type){case`status`:e.status=n.status;break;case`config`:e.config=n.options;break;case`user`:e.items.push({kind:`user`,id:r,text:n.text,context:n.context});break;case`message`:{let t=e.items.at(-1),i=n.role;t&&t.kind===i?t.text+=n.text:e.items.push({kind:i,id:r,text:n.text});break}case`tool`:{let t=e.items.find(e=>e.kind===`tool`&&e.id===di(n.toolCallId));t?(n.title&&(t.title=n.title),n.kind&&(t.toolKind=n.kind),n.status&&(t.status=n.status),n.locations&&(t.locations=n.locations),n.diffs&&(t.diffs=n.diffs),n.output!==void 0&&(t.output=n.output)):e.items.push({kind:`tool`,id:di(n.toolCallId),title:n.title??``,toolKind:n.kind,status:n.status??`pending`,locations:n.locations??[],diffs:n.diffs??[],output:n.output});break}case`permission`:e.permissions.some(e=>e.requestId===n.requestId)||e.permissions.push({requestId:n.requestId,toolCallId:n.toolCallId,title:n.title,options:n.options,diffs:n.diffs});break;case`permission-resolved`:e.permissions=e.permissions.filter(e=>e.requestId!==n.requestId);break;case`auto-approve`:e.autoApprove=n.enabled;break;case`auto-approved`:e.items.push({kind:`auto-approved`,id:r,title:n.title});break;case`usage`:e.usage={used:n.used,size:n.size,cost:n.cost};break;case`stop`:e.lastStopReason=n.stopReason;break;case`error`:e.items.push({kind:`error`,id:r,text:n.message})}}function mi(e,t){e.status=t.status,e.autoApprove=t.autoApprove,e.config=t.config,e.permissions=t.permissions.map(({requestId:e,toolCallId:t,title:n,options:r,diffs:i})=>({requestId:e,toolCallId:t,title:n,options:r,diffs:i}))}function hi(e){let t;try{t=JSON.parse(e)}catch{return null}return u(t)&&typeof t.sessionId==`string`&&typeof t.status==`string`&&typeof t.autoApprove==`boolean`&&Array.isArray(t.config)&&Array.isArray(t.permissions)?t:null}function gi(e){return e.kind===`artifact`?JSON.stringify([e.kind,e.storeId,e.artifactId]):e.kind===`note`?JSON.stringify([e.kind,e.storageId,e.noteId]):JSON.stringify(e)}function _i(e,t){let n=new Set,r=[];for(let i of[...e,...t]){let e=gi(i);n.has(e)||(n.add(e),r.push(i))}return r}function vi(e){return e.some(e=>e.kind===`user`&&e.context.some(e=>e.kind===`review`))}function yi(e){let t=bi(e);if(!t)return null;let{sessionId:n}=t;return typeof n==`string`&&n!==``?{...t,sessionId:n}:null}function bi(e){let t;try{t=JSON.parse(e)}catch{return null}return u(t)&&typeof t.id==`number`&&u(t.event)&&typeof t.event.type==`string`?t:null}var xi=`githuman.agent.activeChat`,Si=2e3,Ci=2e3,wi=o(`agent`,()=>{let e=n([]),i=n(!1),o=n(!1),c=n({}),l=n([]),p=n(null),v=n(!1),x=n(!1),S=n(null),C=n(0),ee=n({open:!1,context:[]}),w=null,T=!1,te=a(()=>{T=!1,he()},Si),E=!1,ne=!1,re=0,D=new Set,O=new Map,k=new Map,ie=t(()=>l.value.flatMap(e=>{let t=c.value[e];return t?[t]:[]})),ae=t(()=>p.value===null?null:c.value[p.value]??null),oe=t(()=>l.value.length<5||ie.value.some(e=>e.info.retired===!0));function se(e){let t=c.value[e.id];if(t)return t.info=e,t;let n=fi();n.status=e.status,n.autoApprove=e.autoApprove,c.value[e.id]={info:e,chat:n,pendingContext:[],error:null,reviewStale:!1,closing:!1,seq:++re},l.value.push(e.id);let r=c.value[e.id];if(!r)throw Error(`unreachable: chat was just registered`);let i=k.get(e.id);i&&mi(r.chat,i),k.delete(e.id);for(let t of O.get(e.id)??[])pi(r.chat,t);return O.delete(e.id),r}function ce(e){let t=l.value.indexOf(e);t!==-1&&(l.value.splice(t,1),delete c.value[e],O.delete(e),k.delete(e),p.value===e&&le(l.value[t]??l.value[t-1]??null))}function le(e){p.value=e,e===null?y.remove(xi):y.set(xi,e)}function ue(e){c.value[e]&&(le(e),v.value=!0)}let de=_(async()=>{let e=re,t;try{t=await s(`/api/agent/sessions`)}catch(e){S.value=m(e);return}let n=new Set(t.map(e=>e.id));for(let e of t)D.has(e.id)||se(e);let r=l.value.filter(t=>!n.has(t)&&(c.value[t]?.seq??0)<=e);for(let e of r)ce(e);for(let e of O.keys())n.has(e)||O.delete(e);for(let e of k.keys())n.has(e)||k.delete(e);if(p.value===null||!c.value[p.value]){let e=y.get(xi);le((e!==null&&c.value[e]?e:null)??l.value[0]??null)}});function fe(e){let t=c.value[e.sessionId];if(t){pi(t.chat,e);return}if(D.has(e.sessionId))return;let n=O.get(e.sessionId)??[];n.length<Ci&&n.push(e),O.set(e.sessionId,n),de()}function pe(){E||T||(T=!0,te())}function me(){E=!0,te.cancel(),T=!1,w?.close(),w=null}function he(){if(E||w)return;te.cancel(),T=!1;let e=new EventSource(`/api/agent/events`);e.addEventListener(`agent`,t=>{if(w!==e||!(t instanceof MessageEvent))return;let n=yi(String(t.data));n&&fe(n)}),e.addEventListener(`gap`,t=>{if(w===e&&t instanceof MessageEvent)try{let e=JSON.parse(String(t.data)),n=u(e)&&typeof e.sessionId==`string`?e.sessionId:null,r=n===null?void 0:c.value[n];r?Object.assign(r.chat,fi()):n!==null&&O.delete(n)}catch{}}),e.addEventListener(`state`,t=>{if(w!==e||!(t instanceof MessageEvent))return;let n=hi(String(t.data));if(!n)return;let r=c.value[n.sessionId];r?mi(r.chat,n):D.has(n.sessionId)||k.set(n.sessionId,n)}),e.addEventListener(`artifact-actions`,()=>{w===e&&C.value++}),e.addEventListener(`sessions`,()=>{w===e&&de()}),e.addEventListener(`open`,()=>{w===e&&(de(),C.value++)}),e.addEventListener(`error`,()=>{w===e&&e.readyState===EventSource.CLOSED&&(w=null,h(),pe())}),w=e}async function ge(){try{e.value=await s(`/api/agent/presets`)}catch(e){if(E)return;o.value=!0,i.value=!1,e instanceof g&&e.status===404||(S.value=m(e));return}E||(i.value=!0,o.value=!0,await de(),!E&&(he(),ne||(ne=!0,b([`files:changed`],Oe))))}function _e(e=[]){return oe.value?(ee.value={open:!0,context:e},!0):!1}function ve(){ee.value={open:!1,context:[]}}async function ye(e,t,n=[]){if(x.value)throw Error(`A chat is already being created`);x.value=!0,S.value=null;try{let r=await f(`/api/agent/sessions`,{presetId:e,name:t}),i=se(r);return i.pendingContext=_i(i.pendingContext,n),ue(r.id),r.id}catch(e){throw S.value=m(e),e}finally{x.value=!1}}async function be(e){let t=c.value[e];if(t&&!t.closing){t.closing=!0;try{await d(`/api/agent/sessions/${e}`)}catch(e){if(!(e instanceof g&&e.status===404))throw t.closing=!1,t.error=m(e),e}D.add(e),ce(e)}}async function xe(e,t=[],n=p.value){let r=n===null?void 0:c.value[n],i=e.trim();if(!r||i===``||r.chat.status!==`ready`)return!1;r.error=null;let a=_i(r.pendingContext,t),o={text:i,context:a};try{let e=li();for(let t of a){if(t.kind!==`note`)continue;let n=e.drafts[t.noteId];if(n&&n.storageId===t.storageId&&!await e.save(t.noteId))throw Error(n.error||`Could not save the note`)}await f(`/api/agent/sessions/${r.info.id}/prompt`,o);let t=new Set(a.map(gi));return r.pendingContext=r.pendingContext.filter(e=>!t.has(gi(e))),!0}catch(e){throw r.error=m(e),e}}async function Se(e=p.value){let t=e===null?void 0:c.value[e];t&&t.chat.status===`busy`&&await f(`/api/agent/sessions/${t.info.id}/cancel`)}async function Ce(e,t,n=p.value){let r=n===null?void 0:c.value[n];if(!r)return;let i=t===void 0?{}:{optionId:t};await f(`/api/agent/sessions/${r.info.id}/permissions/${e}`,i)}async function we(e,t,n=p.value){let r=n===null?void 0:c.value[n];if(!r||r.chat.status!==`ready`)return;r.error=null;let i={configId:e,value:t};try{await f(`/api/agent/sessions/${r.info.id}/config`,i)}catch(e){throw r.error=m(e),e}}async function Te(e,t=p.value){let n=t===null?void 0:c.value[t];if(!n)return;let r={enabled:e};await f(`/api/agent/sessions/${n.info.id}/auto-approve`,r)}function Ee(e,t){let n=t===void 0?ae.value:c.value[t];if(t!==void 0&&!n)return`missing`;if(!n)return _e([e])?`dialog`:`limit`;let r=gi(e);return n.pendingContext.some(e=>gi(e)===r)||n.pendingContext.push(e),v.value=!0,`added`}function De(e,t=p.value){(t===null?void 0:c.value[t])?.pendingContext.splice(e,1)}function Oe(){for(let e of Object.values(c.value))vi(e.chat.items)&&(e.reviewStale=!0)}return r(me),{artifactActionsVersion:C,presets:e,enabled:i,initialized:o,chats:c,order:l,list:ie,activeId:p,activeChat:ae,canAddChat:oe,panelOpen:v,creating:x,error:S,newChatDialog:ee,init:ge,refreshSessions:de,openNewChatDialog:_e,closeNewChatDialog:ve,createChat:ye,closeChat:be,selectChat:le,openChat:ue,send:xe,cancel:Se,answerPermission:Ce,setConfig:we,setAutoApprove:Te,addContext:Ee,removeContext:De,markWorktreeChanged:Oe}});export{me as A,te as B,de as C,oe as D,ue as E,re as F,x as I,E as L,C as M,ee as N,le as O,S as P,w as R,he as S,pe as T,we as _,ii as a,De as b,ni as c,L as d,je as f,ke as g,Ae as h,ei as i,fe as j,ae as k,$r as l,Oe as m,ui as n,si as o,A as p,li as r,oi as s,wi as t,Qr as u,Ee as v,ge as w,Ce as x,Te as y,T as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-FOHPRMQF-CoA4358r.js";import{M as e}from"./mermaid-parser.core-kANV9P4V.js";export{e as createArchitectureServices};
|