@saluzi/saluzi-edu 0.2.85 → 0.3.0
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/dist/cli.js +259 -189
- package/dist/guide/guide-data.json +188 -179
- package/dist/rcs-web/assets/{AdminPanel-BkmXNunm.js → AdminPanel-DgLYaHiP.js} +1 -1
- package/dist/rcs-web/assets/ArtifactView-CY2q-o_P.js +6 -0
- package/dist/rcs-web/assets/ArtifactsGallery-CjZFQhYm.js +441 -0
- package/{packages/remote-control-server/web/dist/assets/Claim-C_-Gla6o.js → dist/rcs-web/assets/Claim-CjEYu8Jg.js} +1 -1
- package/dist/rcs-web/assets/{Dashboard-BIUyLZ7f.js → Dashboard-g2VnKR61.js} +1 -1
- package/dist/rcs-web/assets/{Join-ZcgKlXzS.js → Join-DiEh0bNQ.js} +1 -1
- package/dist/rcs-web/assets/{Login-7_3pI3By.js → Login-CvYL4i61.js} +1 -1
- package/dist/rcs-web/assets/{Register-DBsfc_dT.js → Register-CBNGPMR6.js} +1 -1
- package/dist/rcs-web/assets/{SessionDetail-BCCW6g8g.js → SessionDetail-BkGAqYDS.js} +1 -1
- package/dist/rcs-web/assets/{SessionVisibilityBadge-Ba6plQFV.js → SessionVisibilityBadge-DJB8gn6j.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/Setup-BlHuf9KC.js → dist/rcs-web/assets/Setup-BqifzvSG.js} +1 -1
- package/dist/rcs-web/assets/{ShareLanding-BF1K1oYb.js → ShareLanding-twz_oOTr.js} +1 -1
- package/dist/rcs-web/assets/{TeamCreate-Ce-SySLQ.js → TeamCreate-BxQ0djGK.js} +1 -1
- package/dist/rcs-web/assets/{TeamDetail-Be5uskvw.js → TeamDetail-BY3nmWNo.js} +1 -1
- package/dist/rcs-web/assets/{TeamList-CJaT4aYb.js → TeamList-D1uw5ZQj.js} +1 -1
- package/dist/rcs-web/assets/{TeamSettings-ws_7K-56.js → TeamSettings-DqUlB3Gr.js} +1 -1
- package/dist/rcs-web/assets/{UserSearchInput-DL5_KDHE.js → UserSearchInput-HY3vDxN9.js} +1 -1
- package/dist/rcs-web/assets/{UserSettings-SOzXi42F.js → UserSettings-Ca0UvlLs.js} +1 -1
- package/dist/rcs-web/assets/{arc-CYCfDISm.js → arc-M4eZFMsF.js} +1 -1
- package/dist/rcs-web/assets/{architectureDiagram-3BPJPVTR-Bqa8vMD7.js → architectureDiagram-3BPJPVTR-OJqqY_9Z.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/blockDiagram-GPEHLZMM-CczSTzEF.js → dist/rcs-web/assets/blockDiagram-GPEHLZMM-BiWsXFB4.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-CssBkFo6.js → dist/rcs-web/assets/c4Diagram-AAUBKEIU-A47kYHom.js} +1 -1
- package/dist/rcs-web/assets/channel-CpK1-PDN.js +1 -0
- package/dist/rcs-web/assets/{chunk-2J33WTMH-BE65KSB6.js → chunk-2J33WTMH-bR31bKjT.js} +1 -1
- package/dist/rcs-web/assets/{chunk-4BX2VUAB-D653DDuu.js → chunk-4BX2VUAB-BfujiUUC.js} +1 -1
- package/dist/rcs-web/assets/{chunk-55IACEB6-Ct5UXPIN.js → chunk-55IACEB6-CbFE9tWc.js} +1 -1
- package/dist/rcs-web/assets/{chunk-727SXJPM-S5fpS82E.js → chunk-727SXJPM-B5uYRnS4.js} +1 -1
- package/dist/rcs-web/assets/{chunk-AQP2D5EJ-CYTND6Zm.js → chunk-AQP2D5EJ-BpScXOxx.js} +1 -1
- package/dist/rcs-web/assets/{chunk-FMBD7UC4-D59kMkuj.js → chunk-FMBD7UC4-QOgv52FY.js} +1 -1
- package/dist/rcs-web/assets/{chunk-ND2GUHAM-eEjBp7_r.js → chunk-ND2GUHAM-Bsk0izyp.js} +1 -1
- package/dist/rcs-web/assets/{chunk-QZHKN3VN-DVV1jVoy.js → chunk-QZHKN3VN-CqUHgfxZ.js} +1 -1
- package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-BIsjdqJz.js +1 -0
- package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-BIsjdqJz.js +1 -0
- package/dist/rcs-web/assets/{code-block-IT6T5CEO-DWgaxEpJ.js → code-block-IT6T5CEO-BdhOgxxC.js} +1 -1
- package/dist/rcs-web/assets/{copy-la10Bvy2.js → copy-BId_ACIH.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/cose-bilkent-S5V4N54A-CYkPDcHZ.js → dist/rcs-web/assets/cose-bilkent-S5V4N54A-CBemG5Rz.js} +1 -1
- package/dist/rcs-web/assets/{dagre-BM42HDAG-DI0gApmA.js → dagre-BM42HDAG-DFC7hnTe.js} +1 -1
- package/dist/rcs-web/assets/{diagram-2AECGRRQ-B1KjRwA6.js → diagram-2AECGRRQ--coK1eZ0.js} +1 -1
- package/dist/rcs-web/assets/{diagram-5GNKFQAL-g8x2SnFz.js → diagram-5GNKFQAL-DFv2rFe2.js} +1 -1
- package/dist/rcs-web/assets/{diagram-KO2AKTUF-_qS0aFTS.js → diagram-KO2AKTUF-RJHPBcaH.js} +1 -1
- package/dist/rcs-web/assets/{diagram-LMA3HP47-pNccEgrY.js → diagram-LMA3HP47-C9WP4Nfe.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/diagram-OG6HWLK6-BEZR-29L.js → dist/rcs-web/assets/diagram-OG6HWLK6-BhsW9xiu.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/dialog-cgjIoxTP.js → dist/rcs-web/assets/dialog-DfUuWIZS.js} +1 -1
- package/dist/rcs-web/assets/{erDiagram-TEJ5UH35-BJQSK56G.js → erDiagram-TEJ5UH35-B5L7aiZD.js} +1 -1
- package/dist/rcs-web/assets/{flowDiagram-I6XJVG4X-QuhhO4rW.js → flowDiagram-I6XJVG4X-ABhMkIfD.js} +1 -1
- package/dist/rcs-web/assets/{ganttDiagram-6RSMTGT7-Cxic4_sr.js → ganttDiagram-6RSMTGT7-DlOhmTa2.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/gitGraphDiagram-PVQCEYII-ClQeHUrC.js → dist/rcs-web/assets/gitGraphDiagram-PVQCEYII-Bce8oSuR.js} +1 -1
- package/dist/rcs-web/assets/{infoDiagram-5YYISTIA-Dz47GiWm.js → infoDiagram-5YYISTIA-Dkb2brY2.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/ishikawaDiagram-YF4QCWOH--beuL5mS.js → dist/rcs-web/assets/ishikawaDiagram-YF4QCWOH-ChFn0SpW.js} +1 -1
- package/dist/rcs-web/assets/{journeyDiagram-JHISSGLW-Bi5QelTp.js → journeyDiagram-JHISSGLW-WgDIwjKo.js} +1 -1
- package/dist/rcs-web/assets/{kanban-definition-UN3LZRKU-CbYj6Ccv.js → kanban-definition-UN3LZRKU-CsOBZQC_.js} +1 -1
- package/dist/rcs-web/assets/{linear-B3f9icjf.js → linear-D8M0DKLB.js} +1 -1
- package/dist/rcs-web/assets/main-Bn5YZuiH.css +1 -0
- package/dist/rcs-web/assets/{main-DfNbuMTS.js → main-bilGpQlS.js} +25 -25
- package/{packages/remote-control-server/web/dist/assets/mermaid-VLURNSYL-pX95fhBf.js → dist/rcs-web/assets/mermaid-VLURNSYL-B3Kglw26.js} +4 -4
- package/dist/rcs-web/assets/{mermaid.core-BGK4yVxT.js → mermaid.core-DCyqolwk.js} +5 -5
- package/{packages/remote-control-server/web/dist/assets/mindmap-definition-RKZ34NQL-CgtRTehZ.js → dist/rcs-web/assets/mindmap-definition-RKZ34NQL-N5OXbLbx.js} +1 -1
- package/dist/rcs-web/assets/{pieDiagram-4H26LBE5-qJJGmbUf.js → pieDiagram-4H26LBE5-Bwldm4aG.js} +1 -1
- package/dist/rcs-web/assets/{quadrantDiagram-W4KKPZXB-Cd2k7IGS.js → quadrantDiagram-W4KKPZXB-ktiotrS5.js} +1 -1
- package/dist/rcs-web/assets/{requirementDiagram-4Y6WPE33-DiFWGb6O.js → requirementDiagram-4Y6WPE33-D3G8oEBo.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/sankeyDiagram-5OEKKPKP-Dkn0yk-6.js → dist/rcs-web/assets/sankeyDiagram-5OEKKPKP-CKzAXLVh.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/sequenceDiagram-3UESZ5HK-DdYdmSqK.js → dist/rcs-web/assets/sequenceDiagram-3UESZ5HK-BJk1-iXO.js} +1 -1
- package/dist/rcs-web/assets/{stateDiagram-AJRCARHV-CnQyI3oa.js → stateDiagram-AJRCARHV-DTJbbn1C.js} +1 -1
- package/dist/rcs-web/assets/{stateDiagram-v2-BHNVJYJU-C2JPZVJm.js → stateDiagram-v2-BHNVJYJU-DTZV1yyE.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-D0_pTyDA.js → dist/rcs-web/assets/timeline-definition-PNZ67QCA-DvSe-Rzm.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/vennDiagram-CIIHVFJN-Bw3XMj_p.js → dist/rcs-web/assets/vennDiagram-CIIHVFJN-D4sxw7d3.js} +1 -1
- package/dist/rcs-web/assets/{wardleyDiagram-YWT4CUSO-BfzfoPRo.js → wardleyDiagram-YWT4CUSO-DaHUQFiA.js} +1 -1
- package/dist/rcs-web/assets/{xychartDiagram-2RQKCTM6-qGzDgnMk.js → xychartDiagram-2RQKCTM6-BS0clo8i.js} +1 -1
- package/dist/rcs-web/index.html +2 -2
- package/package.json +1 -1
- package/packages/remote-control-server/src/__tests__/auth.test.ts +3 -4
- package/packages/remote-control-server/src/__tests__/client-payload.test.ts +22 -0
- package/packages/remote-control-server/src/__tests__/transport-normalize.test.ts +22 -0
- package/packages/remote-control-server/src/auth/jwt.ts +11 -3
- package/packages/remote-control-server/src/config.ts +10 -1
- package/packages/remote-control-server/src/nodeServer.ts +10 -3
- package/packages/remote-control-server/src/services/transport.ts +4 -0
- package/packages/remote-control-server/src/transport/client-payload.ts +5 -0
- package/packages/remote-control-server/web/dist/assets/{AdminPanel-BkmXNunm.js → AdminPanel-DgLYaHiP.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/ArtifactView-CY2q-o_P.js +6 -0
- package/packages/remote-control-server/web/dist/assets/ArtifactsGallery-CjZFQhYm.js +441 -0
- package/{dist/rcs-web/assets/Claim-C_-Gla6o.js → packages/remote-control-server/web/dist/assets/Claim-CjEYu8Jg.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Dashboard-BIUyLZ7f.js → Dashboard-g2VnKR61.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Join-ZcgKlXzS.js → Join-DiEh0bNQ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Login-7_3pI3By.js → Login-CvYL4i61.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Register-DBsfc_dT.js → Register-CBNGPMR6.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{SessionDetail-BCCW6g8g.js → SessionDetail-BkGAqYDS.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{SessionVisibilityBadge-Ba6plQFV.js → SessionVisibilityBadge-DJB8gn6j.js} +1 -1
- package/{dist/rcs-web/assets/Setup-BlHuf9KC.js → packages/remote-control-server/web/dist/assets/Setup-BqifzvSG.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{ShareLanding-BF1K1oYb.js → ShareLanding-twz_oOTr.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamCreate-Ce-SySLQ.js → TeamCreate-BxQ0djGK.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamDetail-Be5uskvw.js → TeamDetail-BY3nmWNo.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamList-CJaT4aYb.js → TeamList-D1uw5ZQj.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamSettings-ws_7K-56.js → TeamSettings-DqUlB3Gr.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{UserSearchInput-DL5_KDHE.js → UserSearchInput-HY3vDxN9.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{UserSettings-SOzXi42F.js → UserSettings-Ca0UvlLs.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{arc-CYCfDISm.js → arc-M4eZFMsF.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{architectureDiagram-3BPJPVTR-Bqa8vMD7.js → architectureDiagram-3BPJPVTR-OJqqY_9Z.js} +1 -1
- package/{dist/rcs-web/assets/blockDiagram-GPEHLZMM-CczSTzEF.js → packages/remote-control-server/web/dist/assets/blockDiagram-GPEHLZMM-BiWsXFB4.js} +1 -1
- package/{dist/rcs-web/assets/c4Diagram-AAUBKEIU-CssBkFo6.js → packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-A47kYHom.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/channel-CpK1-PDN.js +1 -0
- package/packages/remote-control-server/web/dist/assets/{chunk-2J33WTMH-BE65KSB6.js → chunk-2J33WTMH-bR31bKjT.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-4BX2VUAB-D653DDuu.js → chunk-4BX2VUAB-BfujiUUC.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-55IACEB6-Ct5UXPIN.js → chunk-55IACEB6-CbFE9tWc.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-727SXJPM-S5fpS82E.js → chunk-727SXJPM-B5uYRnS4.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-AQP2D5EJ-CYTND6Zm.js → chunk-AQP2D5EJ-BpScXOxx.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-FMBD7UC4-D59kMkuj.js → chunk-FMBD7UC4-QOgv52FY.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-ND2GUHAM-eEjBp7_r.js → chunk-ND2GUHAM-Bsk0izyp.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-QZHKN3VN-DVV1jVoy.js → chunk-QZHKN3VN-CqUHgfxZ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-BIsjdqJz.js +1 -0
- package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-BIsjdqJz.js +1 -0
- package/packages/remote-control-server/web/dist/assets/{code-block-IT6T5CEO-DWgaxEpJ.js → code-block-IT6T5CEO-BdhOgxxC.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{copy-la10Bvy2.js → copy-BId_ACIH.js} +1 -1
- package/{dist/rcs-web/assets/cose-bilkent-S5V4N54A-CYkPDcHZ.js → packages/remote-control-server/web/dist/assets/cose-bilkent-S5V4N54A-CBemG5Rz.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{dagre-BM42HDAG-DI0gApmA.js → dagre-BM42HDAG-DFC7hnTe.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-2AECGRRQ-B1KjRwA6.js → diagram-2AECGRRQ--coK1eZ0.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-5GNKFQAL-g8x2SnFz.js → diagram-5GNKFQAL-DFv2rFe2.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-KO2AKTUF-_qS0aFTS.js → diagram-KO2AKTUF-RJHPBcaH.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-LMA3HP47-pNccEgrY.js → diagram-LMA3HP47-C9WP4Nfe.js} +1 -1
- package/{dist/rcs-web/assets/diagram-OG6HWLK6-BEZR-29L.js → packages/remote-control-server/web/dist/assets/diagram-OG6HWLK6-BhsW9xiu.js} +1 -1
- package/{dist/rcs-web/assets/dialog-cgjIoxTP.js → packages/remote-control-server/web/dist/assets/dialog-DfUuWIZS.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{erDiagram-TEJ5UH35-BJQSK56G.js → erDiagram-TEJ5UH35-B5L7aiZD.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{flowDiagram-I6XJVG4X-QuhhO4rW.js → flowDiagram-I6XJVG4X-ABhMkIfD.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{ganttDiagram-6RSMTGT7-Cxic4_sr.js → ganttDiagram-6RSMTGT7-DlOhmTa2.js} +1 -1
- package/{dist/rcs-web/assets/gitGraphDiagram-PVQCEYII-ClQeHUrC.js → packages/remote-control-server/web/dist/assets/gitGraphDiagram-PVQCEYII-Bce8oSuR.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{infoDiagram-5YYISTIA-Dz47GiWm.js → infoDiagram-5YYISTIA-Dkb2brY2.js} +1 -1
- package/{dist/rcs-web/assets/ishikawaDiagram-YF4QCWOH--beuL5mS.js → packages/remote-control-server/web/dist/assets/ishikawaDiagram-YF4QCWOH-ChFn0SpW.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{journeyDiagram-JHISSGLW-Bi5QelTp.js → journeyDiagram-JHISSGLW-WgDIwjKo.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{kanban-definition-UN3LZRKU-CbYj6Ccv.js → kanban-definition-UN3LZRKU-CsOBZQC_.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{linear-B3f9icjf.js → linear-D8M0DKLB.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/main-Bn5YZuiH.css +1 -0
- package/packages/remote-control-server/web/dist/assets/{main-DfNbuMTS.js → main-bilGpQlS.js} +25 -25
- package/{dist/rcs-web/assets/mermaid-VLURNSYL-pX95fhBf.js → packages/remote-control-server/web/dist/assets/mermaid-VLURNSYL-B3Kglw26.js} +4 -4
- package/packages/remote-control-server/web/dist/assets/{mermaid.core-BGK4yVxT.js → mermaid.core-DCyqolwk.js} +5 -5
- package/{dist/rcs-web/assets/mindmap-definition-RKZ34NQL-CgtRTehZ.js → packages/remote-control-server/web/dist/assets/mindmap-definition-RKZ34NQL-N5OXbLbx.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{pieDiagram-4H26LBE5-qJJGmbUf.js → pieDiagram-4H26LBE5-Bwldm4aG.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{quadrantDiagram-W4KKPZXB-Cd2k7IGS.js → quadrantDiagram-W4KKPZXB-ktiotrS5.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{requirementDiagram-4Y6WPE33-DiFWGb6O.js → requirementDiagram-4Y6WPE33-D3G8oEBo.js} +1 -1
- package/{dist/rcs-web/assets/sankeyDiagram-5OEKKPKP-Dkn0yk-6.js → packages/remote-control-server/web/dist/assets/sankeyDiagram-5OEKKPKP-CKzAXLVh.js} +1 -1
- package/{dist/rcs-web/assets/sequenceDiagram-3UESZ5HK-DdYdmSqK.js → packages/remote-control-server/web/dist/assets/sequenceDiagram-3UESZ5HK-BJk1-iXO.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{stateDiagram-AJRCARHV-CnQyI3oa.js → stateDiagram-AJRCARHV-DTJbbn1C.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{stateDiagram-v2-BHNVJYJU-C2JPZVJm.js → stateDiagram-v2-BHNVJYJU-DTZV1yyE.js} +1 -1
- package/{dist/rcs-web/assets/timeline-definition-PNZ67QCA-D0_pTyDA.js → packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-DvSe-Rzm.js} +1 -1
- package/{dist/rcs-web/assets/vennDiagram-CIIHVFJN-Bw3XMj_p.js → packages/remote-control-server/web/dist/assets/vennDiagram-CIIHVFJN-D4sxw7d3.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{wardleyDiagram-YWT4CUSO-BfzfoPRo.js → wardleyDiagram-YWT4CUSO-DaHUQFiA.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{xychartDiagram-2RQKCTM6-qGzDgnMk.js → xychartDiagram-2RQKCTM6-BS0clo8i.js} +1 -1
- package/packages/remote-control-server/web/dist/index.html +2 -2
- package/dist/rcs-web/assets/ArtifactView-C8hU0vco.js +0 -6
- package/dist/rcs-web/assets/ArtifactsGallery-Cf_p454O.js +0 -431
- package/dist/rcs-web/assets/channel-Bv_YGNa3.js +0 -1
- package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-CdtEfsP5.js +0 -1
- package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-CdtEfsP5.js +0 -1
- package/dist/rcs-web/assets/main-B77FMrue.css +0 -1
- package/packages/remote-control-server/web/dist/assets/ArtifactView-C8hU0vco.js +0 -6
- package/packages/remote-control-server/web/dist/assets/ArtifactsGallery-Cf_p454O.js +0 -431
- package/packages/remote-control-server/web/dist/assets/channel-Bv_YGNa3.js +0 -1
- package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-CdtEfsP5.js +0 -1
- package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-CdtEfsP5.js +0 -1
- package/packages/remote-control-server/web/dist/assets/main-B77FMrue.css +0 -1
|
@@ -0,0 +1,441 @@
|
|
|
1
|
+
var ht=Object.defineProperty;var ut=(t,e,r)=>e in t?ht(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var S=(t,e,r)=>ut(t,typeof e!="symbol"?e+"":e,r);import{e as k,j as o}from"./vendor-DE_-CLIE.js";import{ad as Re,ah as ft,at as Ve,au as mt,W as xt,ao as f,K as gt,ac as bt,F as kt,g as yt,P as wt,z as vt,p as He,V as St,a0 as Rt,al as Tt,$ as $t,a6 as jt,a7 as Et,H as Nt,b as Ct}from"./main-bilGpQlS.js";import{D as It,a as At,c as Lt,d as zt,b as _t}from"./dialog-DfUuWIZS.js";import{C as Dt}from"./copy-BId_ACIH.js";/**
|
|
2
|
+
* @license lucide-react v0.555.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const Mt=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Pt=Re("external-link",Mt);/**
|
|
7
|
+
* @license lucide-react v0.555.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const Bt=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],qt=Re("network",Bt);/**
|
|
12
|
+
* @license lucide-react v0.555.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/const Ht=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Ft=Re("sparkles",Ht),te=`body { font: 14px/1.5 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; max-width: 860px; margin: 2rem auto; padding: 0 1rem; color: #1a1a1a; }
|
|
17
|
+
h1 { font-size: 22px; } h1, h2 { color: #1a1a1a; }
|
|
18
|
+
.badge { display: inline-block; border-radius: 999px; padding: 1px 10px; font-size: 12px; font-weight: 500; }
|
|
19
|
+
.badge.ok { background: #dcfce7; color: #166534; }
|
|
20
|
+
.badge.warn { background: #fef3c7; color: #92400e; }
|
|
21
|
+
.badge.err { background: #fee2e2; color: #991b1b; }
|
|
22
|
+
.badge.info { background: #e0e7ff; color: #3730a3; }
|
|
23
|
+
.muted { color: #6b7280; font-size: 12px; }
|
|
24
|
+
.meta { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin: 8px 0 20px; }`,Ot=`<!DOCTYPE html>
|
|
25
|
+
<html lang="en">
|
|
26
|
+
<head>
|
|
27
|
+
<meta charset="utf-8">
|
|
28
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
29
|
+
<title>Untitled Artifact</title>
|
|
30
|
+
<style>
|
|
31
|
+
${te}
|
|
32
|
+
</style>
|
|
33
|
+
</head>
|
|
34
|
+
<body>
|
|
35
|
+
<h1>Untitled Artifact</h1>
|
|
36
|
+
<div class="meta"><span class="muted">Created from the RCS artifacts gallery</span></div>
|
|
37
|
+
<!-- content here -->
|
|
38
|
+
</body>
|
|
39
|
+
</html>`,Kt=`<!DOCTYPE html>
|
|
40
|
+
<html lang="en">
|
|
41
|
+
<head>
|
|
42
|
+
<meta charset="utf-8">
|
|
43
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
44
|
+
<title>PR Review</title>
|
|
45
|
+
<style>
|
|
46
|
+
${te}
|
|
47
|
+
.file { border: 1px solid #e5e7eb; border-radius: 8px; margin: 12px 0; overflow: hidden; }
|
|
48
|
+
.file-head { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: #f9fafb; cursor: pointer; }
|
|
49
|
+
.file-head .name { font-family: ui-monospace, Menlo, monospace; font-size: 13px; flex: 1; }
|
|
50
|
+
.file-body { padding: 12px 14px; border-top: 1px solid #e5e7eb; display: none; }
|
|
51
|
+
.file.open .file-body { display: block; }
|
|
52
|
+
.comment { background: #fffbeb; border-left: 3px solid #f59e0b; padding: 8px 12px; margin: 8px 0; border-radius: 4px; font-size: 13px; }
|
|
53
|
+
select { font: inherit; padding: 2px 6px; border-radius: 6px; border: 1px solid #d1d5db; }
|
|
54
|
+
#summary { font-size: 13px; }
|
|
55
|
+
</style>
|
|
56
|
+
</head>
|
|
57
|
+
<body>
|
|
58
|
+
<h1>PR Review — <span id="pr-name">#123</span></h1>
|
|
59
|
+
<div class="meta">
|
|
60
|
+
<span class="badge info" id="overall">REVIEW IN PROGRESS</span>
|
|
61
|
+
<span class="muted" id="stamp"></span>
|
|
62
|
+
</div>
|
|
63
|
+
<div id="summary"></div>
|
|
64
|
+
<div id="files"></div>
|
|
65
|
+
<script>
|
|
66
|
+
var FILES = [
|
|
67
|
+
{ path: 'src/index.ts', verdict: 'comment', lines: '+42 −7',
|
|
68
|
+
note: '入口重构 — 建议补充 JSDoc。' },
|
|
69
|
+
{ path: 'src/utils/http.ts', verdict: 'request-changes', lines: '+128 −31',
|
|
70
|
+
note: '缺少超时与重试;error path 未释放连接。' },
|
|
71
|
+
{ path: 'tests/http.test.ts', verdict: 'approve', lines: '+96 −0',
|
|
72
|
+
note: '覆盖充分,LGTM。' },
|
|
73
|
+
];
|
|
74
|
+
var VERDICTS = {
|
|
75
|
+
'approve': ['✓ Approve', 'ok'],
|
|
76
|
+
'comment': ['💬 Comment', 'info'],
|
|
77
|
+
'request-changes': ['✕ Request changes', 'err'],
|
|
78
|
+
};
|
|
79
|
+
function render() {
|
|
80
|
+
var box = document.getElementById('files');
|
|
81
|
+
box.innerHTML = '';
|
|
82
|
+
var counts = { 'approve': 0, 'comment': 0, 'request-changes': 0 };
|
|
83
|
+
FILES.forEach(function (f, i) {
|
|
84
|
+
counts[f.verdict]++;
|
|
85
|
+
var div = document.createElement('div');
|
|
86
|
+
div.className = 'file';
|
|
87
|
+
div.innerHTML =
|
|
88
|
+
'<div class="file-head"><span class="name">' + f.path + '</span>' +
|
|
89
|
+
'<span class="muted">' + f.lines + '</span>' +
|
|
90
|
+
'<select data-i="' + i + '">' + Object.keys(VERDICTS).map(function (v) {
|
|
91
|
+
return '<option value="' + v + '"' + (v === f.verdict ? ' selected' : '') + '>' + VERDICTS[v][0] + '</option>';
|
|
92
|
+
}).join('') + '</select></div>' +
|
|
93
|
+
'<div class="file-body"><div class="comment">' + (f.note || '—') + '</div></div>';
|
|
94
|
+
div.querySelector('.file-head').addEventListener('click', function () {
|
|
95
|
+
div.classList.toggle('open');
|
|
96
|
+
});
|
|
97
|
+
div.querySelector('select').addEventListener('click', function (e) { e.stopPropagation(); });
|
|
98
|
+
div.querySelector('select').addEventListener('change', function (e) {
|
|
99
|
+
FILES[i].verdict = e.target.value;
|
|
100
|
+
render();
|
|
101
|
+
});
|
|
102
|
+
box.appendChild(div);
|
|
103
|
+
});
|
|
104
|
+
var overall = document.getElementById('overall');
|
|
105
|
+
var label = 'REVIEW IN PROGRESS';
|
|
106
|
+
var cls = 'info';
|
|
107
|
+
if (counts['request-changes'] > 0) { label = 'CHANGES REQUESTED'; cls = 'err'; }
|
|
108
|
+
else if (counts['approve'] === FILES.length && FILES.length > 0) { label = 'APPROVED'; cls = 'ok'; }
|
|
109
|
+
overall.textContent = label;
|
|
110
|
+
overall.className = 'badge ' + cls;
|
|
111
|
+
document.getElementById('summary').innerHTML =
|
|
112
|
+
'<span class="badge ok">✓ ' + counts['approve'] + '</span> ' +
|
|
113
|
+
'<span class="badge info">💬 ' + counts['comment'] + '</span> ' +
|
|
114
|
+
'<span class="badge err">✕ ' + counts['request-changes'] + '</span> ' +
|
|
115
|
+
'<span class="muted"> — 点击文件行展开评论</span>';
|
|
116
|
+
document.getElementById('stamp').textContent = 'updated ' + new Date().toLocaleString();
|
|
117
|
+
}
|
|
118
|
+
render();
|
|
119
|
+
<\/script>
|
|
120
|
+
</body>
|
|
121
|
+
</html>`,Zt=`<!DOCTYPE html>
|
|
122
|
+
<html lang="en">
|
|
123
|
+
<head>
|
|
124
|
+
<meta charset="utf-8">
|
|
125
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
126
|
+
<title>Incident Timeline</title>
|
|
127
|
+
<style>
|
|
128
|
+
${te}
|
|
129
|
+
#status-banner { border-radius: 8px; padding: 12px 16px; margin: 12px 0; font-weight: 500; }
|
|
130
|
+
#status-banner.investigating { background: #fef3c7; color: #92400e; }
|
|
131
|
+
#status-banner.mitigated { background: #dcfce7; color: #166534; }
|
|
132
|
+
#status-banner.resolved { background: #e0e7ff; color: #3730a3; }
|
|
133
|
+
.tl { list-style: none; padding: 0; margin: 20px 0; border-left: 2px solid #e5e7eb; }
|
|
134
|
+
.tl li { position: relative; padding: 10px 0 10px 24px; }
|
|
135
|
+
.tl li::before { content: ''; position: absolute; left: -6px; top: 16px; width: 10px; height: 10px; border-radius: 999px; background: #9ca3af; }
|
|
136
|
+
.tl li.sev-high::before { background: #ef4444; }
|
|
137
|
+
.tl li.sev-mid::before { background: #f59e0b; }
|
|
138
|
+
.tl li.done::before { background: #22c55e; }
|
|
139
|
+
.tl .ts { font-family: ui-monospace, Menlo, monospace; font-size: 12px; color: #6b7280; }
|
|
140
|
+
.tl .body { margin-top: 2px; }
|
|
141
|
+
button { font: inherit; border: 1px solid #d1d5db; background: #fff; border-radius: 6px; padding: 2px 10px; cursor: pointer; }
|
|
142
|
+
button:hover { background: #f3f4f6; }
|
|
143
|
+
</style>
|
|
144
|
+
</head>
|
|
145
|
+
<body>
|
|
146
|
+
<h1 id="title">INC-001 — API 5xx 错误率上升</h1>
|
|
147
|
+
<div id="status-banner" class="investigating">🟡 Investigating</div>
|
|
148
|
+
<div class="meta">
|
|
149
|
+
<span class="muted" id="timer"></span>
|
|
150
|
+
<button id="toggle">标记为已缓解</button>
|
|
151
|
+
</div>
|
|
152
|
+
<ul class="tl" id="tl"></ul>
|
|
153
|
+
<script>
|
|
154
|
+
var EVENTS = [
|
|
155
|
+
{ ts: '10:02', sev: 'high', text: '告警触发:/api/orders 5xx 比例 > 5%(SLO 燃烧率 8×)' },
|
|
156
|
+
{ ts: '10:05', sev: '', text: '值班开始排查,确认影响范围:下单链路全量受影响' },
|
|
157
|
+
{ ts: '10:12', sev: 'mid', text: '定位到 09:58 上线的 order-service v2.3.1,连接池配置回归' },
|
|
158
|
+
{ ts: '10:18', sev: '', text: '回滚 order-service 至 v2.3.0', done: true },
|
|
159
|
+
{ ts: '10:21', sev: '', text: '错误率恢复正常,持续观察中', done: true },
|
|
160
|
+
];
|
|
161
|
+
var state = 'investigating';
|
|
162
|
+
function render() {
|
|
163
|
+
var tl = document.getElementById('tl');
|
|
164
|
+
tl.innerHTML = '';
|
|
165
|
+
EVENTS.forEach(function (e) {
|
|
166
|
+
var li = document.createElement('li');
|
|
167
|
+
li.className = (e.sev ? 'sev-' + (e.sev === 'high' ? 'high' : 'mid') + ' ' : '') + (e.done ? 'done' : '');
|
|
168
|
+
li.innerHTML = '<span class="ts">' + e.ts + '</span><div class="body">' + e.text + '</div>';
|
|
169
|
+
tl.appendChild(li);
|
|
170
|
+
});
|
|
171
|
+
var banner = document.getElementById('status-banner');
|
|
172
|
+
var texts = { investigating: ['🟡 Investigating', 'mitigated'], mitigated: ['🟢 Mitigated — monitoring', 'resolved'], resolved: ['🔵 Resolved', 'investigating'] };
|
|
173
|
+
banner.textContent = texts[state][0];
|
|
174
|
+
banner.className = state;
|
|
175
|
+
document.getElementById('toggle').textContent =
|
|
176
|
+
state === 'investigating' ? '标记为已缓解' : state === 'mitigated' ? '标记为已解决' : '重新打开';
|
|
177
|
+
document.getElementById('timer').textContent = 'last update ' + new Date().toLocaleTimeString();
|
|
178
|
+
}
|
|
179
|
+
document.getElementById('toggle').addEventListener('click', function () {
|
|
180
|
+
state = document.getElementById('status-banner').className === 'investigating' ? 'mitigated'
|
|
181
|
+
: document.getElementById('status-banner').className === 'mitigated' ? 'resolved' : 'investigating';
|
|
182
|
+
render();
|
|
183
|
+
});
|
|
184
|
+
render();
|
|
185
|
+
<\/script>
|
|
186
|
+
</body>
|
|
187
|
+
</html>`,Gt=`<!DOCTYPE html>
|
|
188
|
+
<html lang="en">
|
|
189
|
+
<head>
|
|
190
|
+
<meta charset="utf-8">
|
|
191
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
192
|
+
<title>Data Dashboard</title>
|
|
193
|
+
<style>
|
|
194
|
+
${te}
|
|
195
|
+
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin: 16px 0; }
|
|
196
|
+
.kpi { border: 1px solid #e5e7eb; border-radius: 10px; padding: 14px 16px; }
|
|
197
|
+
.kpi .label { font-size: 12px; color: #6b7280; }
|
|
198
|
+
.kpi .value { font-size: 26px; font-weight: 600; margin: 4px 0; }
|
|
199
|
+
.kpi .delta { font-size: 12px; }
|
|
200
|
+
.kpi .delta.up { color: #16a34a; } .kpi .delta.down { color: #dc2626; }
|
|
201
|
+
table { border-collapse: collapse; width: 100%; margin: 16px 0; font-size: 13px; }
|
|
202
|
+
th, td { border: 1px solid #e5e7eb; padding: 6px 10px; text-align: left; }
|
|
203
|
+
th { background: #f9fafb; cursor: pointer; user-select: none; }
|
|
204
|
+
th.sorted-asc::after { content: ' ↑'; } th.sorted-desc::after { content: ' ↓'; }
|
|
205
|
+
</style>
|
|
206
|
+
</head>
|
|
207
|
+
<body>
|
|
208
|
+
<h1>Weekly Data Dashboard</h1>
|
|
209
|
+
<div class="meta"><span class="muted" id="stamp"></span></div>
|
|
210
|
+
<div class="grid" id="kpis"></div>
|
|
211
|
+
<svg id="chart" width="860" height="180" viewBox="0 0 860 180" role="img" aria-label="trend chart"></svg>
|
|
212
|
+
<table id="tbl"><thead><tr></tr></thead><tbody></tbody></table>
|
|
213
|
+
<script>
|
|
214
|
+
var KPIS = [
|
|
215
|
+
{ label: 'Requests', value: '1.24M', delta: '+8.2%', dir: 'up' },
|
|
216
|
+
{ label: 'Error rate', value: '0.42%', delta: '-0.11pp', dir: 'up' },
|
|
217
|
+
{ label: 'p95 latency', value: '213ms', delta: '-18ms', dir: 'up' },
|
|
218
|
+
{ label: 'Active users', value: '18,304', delta: '+3.1%', dir: 'up' },
|
|
219
|
+
];
|
|
220
|
+
var SERIES = [42, 48, 45, 61, 58, 72, 69, 77, 74, 88, 92, 96];
|
|
221
|
+
var ROWS = [
|
|
222
|
+
{ service: 'gateway', rps: 5210, err: '0.31%', p95: '142ms' },
|
|
223
|
+
{ service: 'orders', rps: 3140, err: '0.48%', p95: '231ms' },
|
|
224
|
+
{ service: 'payments', rps: 1890, err: '0.66%', p95: '305ms' },
|
|
225
|
+
{ service: 'search', rps: 1230, err: '0.22%', p95: '98ms' },
|
|
226
|
+
];
|
|
227
|
+
var sortKey = 'rps', sortDir = -1;
|
|
228
|
+
function renderKpis() {
|
|
229
|
+
document.getElementById('kpis').innerHTML = KPIS.map(function (k) {
|
|
230
|
+
return '<div class="kpi"><div class="label">' + k.label + '</div>' +
|
|
231
|
+
'<div class="value">' + k.value + '</div>' +
|
|
232
|
+
'<div class="delta ' + k.dir + '">' + k.delta + ' vs last week</div></div>';
|
|
233
|
+
}).join('');
|
|
234
|
+
}
|
|
235
|
+
function renderChart() {
|
|
236
|
+
var svg = document.getElementById('chart');
|
|
237
|
+
var w = 860, h = 180, pad = 20, max = Math.max.apply(null, SERIES) * 1.15;
|
|
238
|
+
var pts = SERIES.map(function (v, i) {
|
|
239
|
+
var x = pad + (i * (w - pad * 2)) / (SERIES.length - 1);
|
|
240
|
+
var y = h - pad - (v / max) * (h - pad * 2);
|
|
241
|
+
return x.toFixed(1) + ',' + y.toFixed(1);
|
|
242
|
+
});
|
|
243
|
+
var line = '<polyline fill="none" stroke="#D77757" stroke-width="2.5" points="' + pts.join(' ') + '"/>';
|
|
244
|
+
var area = '<polygon fill="#D7775718" points="' + pad + ',' + (h - pad) + ' ' + pts.join(' ') + ' ' + (w - pad) + ',' + (h - pad) + '"/>';
|
|
245
|
+
var dots = pts.map(function (p) {
|
|
246
|
+
var xy = p.split(',');
|
|
247
|
+
return '<circle cx="' + xy[0] + '" cy="' + xy[1] + '" r="3" fill="#D77757"/>';
|
|
248
|
+
}).join('');
|
|
249
|
+
svg.innerHTML = area + line + dots;
|
|
250
|
+
}
|
|
251
|
+
function renderTable() {
|
|
252
|
+
var cols = Object.keys(ROWS[0]);
|
|
253
|
+
var head = document.querySelector('#tbl thead tr');
|
|
254
|
+
head.innerHTML = cols.map(function (c) {
|
|
255
|
+
var cls = c === sortKey ? (sortDir === 1 ? 'sorted-asc' : 'sorted-desc') : '';
|
|
256
|
+
return '<th data-col="' + c + '" class="' + cls + '">' + c + '</th>';
|
|
257
|
+
}).join('');
|
|
258
|
+
var sorted = ROWS.slice().sort(function (a, b) {
|
|
259
|
+
var va = a[sortKey], vb = b[sortKey];
|
|
260
|
+
return (typeof va === 'number' ? va - vb : String(va).localeCompare(String(vb))) * sortDir;
|
|
261
|
+
});
|
|
262
|
+
document.querySelector('#tbl tbody').innerHTML = sorted.map(function (r) {
|
|
263
|
+
return '<tr>' + cols.map(function (c) { return '<td>' + r[c] + '</td>'; }).join('') + '</tr>';
|
|
264
|
+
}).join('');
|
|
265
|
+
head.querySelectorAll('th').forEach(function (th) {
|
|
266
|
+
th.addEventListener('click', function () {
|
|
267
|
+
var col = th.dataset.col;
|
|
268
|
+
if (col === sortKey) { sortDir = -sortDir; } else { sortKey = col; sortDir = 1; }
|
|
269
|
+
renderTable();
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
document.getElementById('stamp').textContent = 'generated ' + new Date().toLocaleString();
|
|
273
|
+
}
|
|
274
|
+
renderKpis(); renderChart(); renderTable();
|
|
275
|
+
<\/script>
|
|
276
|
+
</body>
|
|
277
|
+
</html>`,Ut=`<!DOCTYPE html>
|
|
278
|
+
<html lang="en">
|
|
279
|
+
<head>
|
|
280
|
+
<meta charset="utf-8">
|
|
281
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
282
|
+
<title>Release Checklist</title>
|
|
283
|
+
<style>
|
|
284
|
+
${te}
|
|
285
|
+
.progress { height: 8px; background: #e5e7eb; border-radius: 999px; overflow: hidden; margin: 14px 0 22px; }
|
|
286
|
+
.progress > div { height: 100%; background: #D77757; width: 0; transition: width .3s; }
|
|
287
|
+
.stage { margin: 18px 0; }
|
|
288
|
+
.stage h2 { font-size: 15px; display: flex; gap: 8px; align-items: center; }
|
|
289
|
+
.item { display: flex; gap: 10px; align-items: baseline; padding: 6px 0 6px 4px; border-left: 2px solid transparent; }
|
|
290
|
+
.item.done { color: #6b7280; text-decoration: line-through; border-left-color: #22c55e; }
|
|
291
|
+
.item input { accent-color: #D77757; }
|
|
292
|
+
.item .note { color: #6b7280; font-size: 12px; }
|
|
293
|
+
.blocked { color: #b91c1c; font-weight: 500; }
|
|
294
|
+
</style>
|
|
295
|
+
</head>
|
|
296
|
+
<body>
|
|
297
|
+
<h1>Release Checklist — <span id="rel">v1.4.0</span></h1>
|
|
298
|
+
<div class="meta"><span class="badge info" id="pct">0%</span><span class="muted" id="blocked-count"></span></div>
|
|
299
|
+
<div class="progress"><div id="bar"></div></div>
|
|
300
|
+
<div id="stages"></div>
|
|
301
|
+
<script>
|
|
302
|
+
var STAGES = [
|
|
303
|
+
{ name: 'Pre-merge', items: [
|
|
304
|
+
{ t: '所有 PR 已合并到 release 分支', note: '' },
|
|
305
|
+
{ t: 'CI 全绿(单元 + 集成)', note: '' },
|
|
306
|
+
{ t: 'CHANGELOG 更新', note: '由 changeset 生成' },
|
|
307
|
+
]},
|
|
308
|
+
{ name: 'Staging', items: [
|
|
309
|
+
{ t: 'staging 部署完成并通过冒烟测试', note: '' },
|
|
310
|
+
{ t: '数据库迁移在 staging 演练', note: '含回滚脚本' },
|
|
311
|
+
]},
|
|
312
|
+
{ name: 'Production', items: [
|
|
313
|
+
{ t: '灰度 5% 观察 30 分钟', note: '错误率 & p95 正常后放量' },
|
|
314
|
+
{ t: '全量发布', note: '' },
|
|
315
|
+
]},
|
|
316
|
+
{ name: 'Post-deploy', items: [
|
|
317
|
+
{ t: '核心指标看板确认', note: 'dashboard 链接见备注' },
|
|
318
|
+
{ t: '发布公告 / 通知团队', note: '' },
|
|
319
|
+
]},
|
|
320
|
+
];
|
|
321
|
+
function render() {
|
|
322
|
+
var box = document.getElementById('stages');
|
|
323
|
+
box.innerHTML = '';
|
|
324
|
+
var total = 0, done = 0, blocked = 0;
|
|
325
|
+
STAGES.forEach(function (s) {
|
|
326
|
+
total += s.items.length;
|
|
327
|
+
var stage = document.createElement('div');
|
|
328
|
+
stage.className = 'stage';
|
|
329
|
+
stage.innerHTML = '<h2>' + s.name + '</h2>';
|
|
330
|
+
s.items.forEach(function (it, i) {
|
|
331
|
+
if (it.done) done++;
|
|
332
|
+
if (it.blocked) blocked++;
|
|
333
|
+
var row = document.createElement('label');
|
|
334
|
+
row.className = 'item' + (it.done ? ' done' : '');
|
|
335
|
+
row.innerHTML = '<input type="checkbox"' + (it.done ? ' checked' : '') + '/>' +
|
|
336
|
+
'<span>' + it.t + (it.blocked ? ' <span class="blocked">⚠ blocked</span>' : '') + '</span>' +
|
|
337
|
+
(it.note ? '<span class="note">— ' + it.note + '</span>' : '');
|
|
338
|
+
row.querySelector('input').addEventListener('change', function () {
|
|
339
|
+
it.done = !it.done;
|
|
340
|
+
render();
|
|
341
|
+
});
|
|
342
|
+
stage.appendChild(row);
|
|
343
|
+
});
|
|
344
|
+
box.appendChild(stage);
|
|
345
|
+
});
|
|
346
|
+
var pct = total ? Math.round((done / total) * 100) : 0;
|
|
347
|
+
document.getElementById('pct').textContent = pct + '%';
|
|
348
|
+
document.getElementById('bar').style.width = pct + '%';
|
|
349
|
+
document.getElementById('blocked-count').textContent = blocked ? blocked + ' 项受阻' : done + '/' + total + ' 完成';
|
|
350
|
+
}
|
|
351
|
+
render();
|
|
352
|
+
<\/script>
|
|
353
|
+
</body>
|
|
354
|
+
</html>`,ke=[{id:"blank",titleKey:"artifacts.create.templateBlank",descKey:"",defaultTitle:"Untitled Artifact",html:Ot},{id:"pr-review",titleKey:"artifacts.create.templatePrReview",descKey:"artifacts.templateDesc.prReview",defaultTitle:"PR Review",html:Kt},{id:"incident",titleKey:"artifacts.create.templateIncident",descKey:"artifacts.templateDesc.incident",defaultTitle:"Incident Timeline",html:Zt},{id:"dashboard",titleKey:"artifacts.create.templateDashboard",descKey:"artifacts.templateDesc.dashboard",defaultTitle:"Data Dashboard",html:Gt},{id:"checklist",titleKey:"artifacts.create.templateChecklist",descKey:"artifacts.templateDesc.checklist",defaultTitle:"Release Checklist",html:Ut}];function X(t){return ke.find(e=>e.id===t)??ke[0]}function Te(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Z=Te();function We(t){Z=t}var O={exec:()=>null};function w(t,e=""){let r=typeof t=="string"?t:t.source,a={replace:(s,l)=>{let i=typeof l=="string"?l:l.source;return i=i.replace(E.caret,"$1"),r=r.replace(s,i),a},getRegex:()=>new RegExp(r,e)};return a}var Qt=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),E={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}>`)},Vt=/^(?:[ \t]*(?:\n|$))+/,Wt=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Xt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,re=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Yt=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,$e=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Xe=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Ye=w(Xe).replace(/bull/g,$e).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Jt=w(Xe).replace(/bull/g,$e).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),je=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,er=/^[^\n]+/,Ee=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,tr=w(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ee).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),rr=w(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,$e).getRegex(),pe="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ne=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,sr=w("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ne).replace("tag",pe).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Je=w(je).replace("hr",re).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",pe).getRegex(),ar=w(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Je).getRegex(),Ce={blockquote:ar,code:Wt,def:tr,fences:Xt,heading:Yt,hr:re,html:sr,lheading:Ye,list:rr,newline:Vt,paragraph:Je,table:O,text:er},Fe=w("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",re).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",pe).getRegex(),nr={...Ce,lheading:Jt,table:Fe,paragraph:w(je).replace("hr",re).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Fe).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",pe).getRegex()},ir={...Ce,html:w(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ne).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:O,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:w(je).replace("hr",re).replace("heading",` *#{1,6} *[^
|
|
355
|
+
]`).replace("lheading",Ye).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},lr=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,or=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,et=/^( {2,}|\\)\n(?!\s*$)/,cr=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,V=/[\p{P}\p{S}]/u,he=/[\s\p{P}\p{S}]/u,Ie=/[^\s\p{P}\p{S}]/u,dr=w(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,he).getRegex(),tt=/(?!~)[\p{P}\p{S}]/u,pr=/(?!~)[\s\p{P}\p{S}]/u,hr=/(?:[^\s\p{P}\p{S}]|~)/u,ur=w(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Qt?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),rt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,fr=w(rt,"u").replace(/punct/g,V).getRegex(),mr=w(rt,"u").replace(/punct/g,tt).getRegex(),st="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",xr=w(st,"gu").replace(/notPunctSpace/g,Ie).replace(/punctSpace/g,he).replace(/punct/g,V).getRegex(),gr=w(st,"gu").replace(/notPunctSpace/g,hr).replace(/punctSpace/g,pr).replace(/punct/g,tt).getRegex(),br=w("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Ie).replace(/punctSpace/g,he).replace(/punct/g,V).getRegex(),kr=w(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,V).getRegex(),yr="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",wr=w(yr,"gu").replace(/notPunctSpace/g,Ie).replace(/punctSpace/g,he).replace(/punct/g,V).getRegex(),vr=w(/\\(punct)/,"gu").replace(/punct/g,V).getRegex(),Sr=w(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Rr=w(Ne).replace("(?:-->|$)","-->").getRegex(),Tr=w("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Rr).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),oe=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,$r=w(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",oe).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),at=w(/^!?\[(label)\]\[(ref)\]/).replace("label",oe).replace("ref",Ee).getRegex(),nt=w(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ee).getRegex(),jr=w("reflink|nolink(?!\\()","g").replace("reflink",at).replace("nolink",nt).getRegex(),Oe=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Ae={_backpedal:O,anyPunctuation:vr,autolink:Sr,blockSkip:ur,br:et,code:or,del:O,delLDelim:O,delRDelim:O,emStrongLDelim:fr,emStrongRDelimAst:xr,emStrongRDelimUnd:br,escape:lr,link:$r,nolink:nt,punctuation:dr,reflink:at,reflinkSearch:jr,tag:Tr,text:cr,url:O},Er={...Ae,link:w(/^!?\[(label)\]\((.*?)\)/).replace("label",oe).getRegex(),reflink:w(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",oe).getRegex()},ye={...Ae,emStrongRDelimAst:gr,emStrongLDelim:mr,delLDelim:kr,delRDelim:wr,url:w(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Oe).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:w(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Oe).getRegex()},Nr={...ye,br:w(et).replace("{2,}","*").getRegex(),text:w(ye.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},ie={normal:Ce,gfm:nr,pedantic:ir},Y={normal:Ae,gfm:ye,breaks:Nr,pedantic:Er},Cr={"&":"&","<":"<",">":">",'"':""","'":"'"},Ke=t=>Cr[t];function _(t,e){if(e){if(E.escapeTest.test(t))return t.replace(E.escapeReplace,Ke)}else if(E.escapeTestNoEncode.test(t))return t.replace(E.escapeReplaceNoEncode,Ke);return t}function Ze(t){try{t=encodeURI(t).replace(E.percentDecode,"%")}catch{return null}return t}function Ge(t,e){var l;let r=t.replace(E.findPipe,(i,n,h)=>{let c=!1,u=n;for(;--u>=0&&h[u]==="\\";)c=!c;return c?"|":" |"}),a=r.split(E.splitPipe),s=0;if(a[0].trim()||a.shift(),a.length>0&&!((l=a.at(-1))!=null&&l.trim())&&a.pop(),e)if(a.length>e)a.splice(e);else for(;a.length<e;)a.push("");for(;s<a.length;s++)a[s]=a[s].trim().replace(E.slashPipe,"|");return a}function J(t,e,r){let a=t.length;if(a===0)return"";let s=0;for(;s<a&&t.charAt(a-s-1)===e;)s++;return t.slice(0,a-s)}function Ir(t,e){if(t.indexOf(e[1])===-1)return-1;let r=0;for(let a=0;a<t.length;a++)if(t[a]==="\\")a++;else if(t[a]===e[0])r++;else if(t[a]===e[1]&&(r--,r<0))return a;return r>0?-2:-1}function Ar(t,e=0){let r=e,a="";for(let s of t)if(s===" "){let l=4-r%4;a+=" ".repeat(l),r+=l}else a+=s,r++;return a}function Ue(t,e,r,a,s){let l=e.href,i=e.title||null,n=t[1].replace(s.other.outputLinkReplace,"$1");a.state.inLink=!0;let h={type:t[0].charAt(0)==="!"?"image":"link",raw:r,href:l,title:i,text:n,tokens:a.inlineTokens(n)};return a.state.inLink=!1,h}function Lr(t,e,r){let a=t.match(r.other.indentCodeCompensation);if(a===null)return e;let s=a[1];return e.split(`
|
|
356
|
+
`).map(l=>{let i=l.match(r.other.beginningSpace);if(i===null)return l;let[n]=i;return n.length>=s.length?l.slice(s.length):l}).join(`
|
|
357
|
+
`)}var ce=class{constructor(t){S(this,"options");S(this,"rules");S(this,"lexer");this.options=t||Z}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let r=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?r:J(r,`
|
|
358
|
+
`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let r=e[0],a=Lr(r,e[3]||"",this.rules);return{type:"code",raw:r,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:a}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let r=e[2].trim();if(this.rules.other.endingHash.test(r)){let a=J(r,"#");(this.options.pedantic||!a||this.rules.other.endingSpaceChar.test(a))&&(r=a.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:J(e[0],`
|
|
359
|
+
`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let r=J(e[0],`
|
|
360
|
+
`).split(`
|
|
361
|
+
`),a="",s="",l=[];for(;r.length>0;){let i=!1,n=[],h;for(h=0;h<r.length;h++)if(this.rules.other.blockquoteStart.test(r[h]))n.push(r[h]),i=!0;else if(!i)n.push(r[h]);else break;r=r.slice(h);let c=n.join(`
|
|
362
|
+
`),u=c.replace(this.rules.other.blockquoteSetextReplace,`
|
|
363
|
+
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");a=a?`${a}
|
|
364
|
+
${c}`:c,s=s?`${s}
|
|
365
|
+
${u}`:u;let x=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(u,l,!0),this.lexer.state.top=x,r.length===0)break;let m=l.at(-1);if((m==null?void 0:m.type)==="code")break;if((m==null?void 0:m.type)==="blockquote"){let d=m,y=d.raw+`
|
|
366
|
+
`+r.join(`
|
|
367
|
+
`),b=this.blockquote(y);l[l.length-1]=b,a=a.substring(0,a.length-d.raw.length)+b.raw,s=s.substring(0,s.length-d.text.length)+b.text;break}else if((m==null?void 0:m.type)==="list"){let d=m,y=d.raw+`
|
|
368
|
+
`+r.join(`
|
|
369
|
+
`),b=this.list(y);l[l.length-1]=b,a=a.substring(0,a.length-m.raw.length)+b.raw,s=s.substring(0,s.length-d.raw.length)+b.raw,r=y.substring(l.at(-1).raw.length).split(`
|
|
370
|
+
`);continue}}return{type:"blockquote",raw:a,tokens:l,text:s}}}list(t){var r,a;let e=this.rules.block.list.exec(t);if(e){let s=e[1].trim(),l=s.length>1,i={type:"list",raw:"",ordered:l,start:l?+s.slice(0,-1):"",loose:!1,items:[]};s=l?`\\d{1,9}\\${s.slice(-1)}`:`\\${s}`,this.options.pedantic&&(s=l?s:"[*+-]");let n=this.rules.other.listItemRegex(s),h=!1;for(;t;){let u=!1,x="",m="";if(!(e=n.exec(t))||this.rules.block.hr.test(t))break;x=e[0],t=t.substring(x.length);let d=Ar(e[2].split(`
|
|
371
|
+
`,1)[0],e[1].length),y=t.split(`
|
|
372
|
+
`,1)[0],b=!d.trim(),R=0;if(this.options.pedantic?(R=2,m=d.trimStart()):b?R=e[1].length+1:(R=d.search(this.rules.other.nonSpaceChar),R=R>4?1:R,m=d.slice(R),R+=e[1].length),b&&this.rules.other.blankLine.test(y)&&(x+=y+`
|
|
373
|
+
`,t=t.substring(y.length+1),u=!0),!u){let C=this.rules.other.nextBulletRegex(R),j=this.rules.other.hrRegex(R),B=this.rules.other.fencesBeginRegex(R),D=this.rules.other.headingBeginRegex(R),H=this.rules.other.htmlBeginRegex(R),N=this.rules.other.blockquoteBeginRegex(R);for(;t;){let q=t.split(`
|
|
374
|
+
`,1)[0],A;if(y=q,this.options.pedantic?(y=y.replace(this.rules.other.listReplaceNesting," "),A=y):A=y.replace(this.rules.other.tabCharGlobal," "),B.test(y)||D.test(y)||H.test(y)||N.test(y)||C.test(y)||j.test(y))break;if(A.search(this.rules.other.nonSpaceChar)>=R||!y.trim())m+=`
|
|
375
|
+
`+A.slice(R);else{if(b||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||B.test(d)||D.test(d)||j.test(d))break;m+=`
|
|
376
|
+
`+y}b=!y.trim(),x+=q+`
|
|
377
|
+
`,t=t.substring(q.length+1),d=A.slice(R)}}i.loose||(h?i.loose=!0:this.rules.other.doubleBlankLine.test(x)&&(h=!0)),i.items.push({type:"list_item",raw:x,task:!!this.options.gfm&&this.rules.other.listIsTask.test(m),loose:!1,text:m,tokens:[]}),i.raw+=x}let c=i.items.at(-1);if(c)c.raw=c.raw.trimEnd(),c.text=c.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let u of i.items){if(this.lexer.state.top=!1,u.tokens=this.lexer.blockTokens(u.text,[]),u.task){if(u.text=u.text.replace(this.rules.other.listReplaceTask,""),((r=u.tokens[0])==null?void 0:r.type)==="text"||((a=u.tokens[0])==null?void 0:a.type)==="paragraph"){u.tokens[0].raw=u.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),u.tokens[0].text=u.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let m=this.lexer.inlineQueue.length-1;m>=0;m--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[m].src)){this.lexer.inlineQueue[m].src=this.lexer.inlineQueue[m].src.replace(this.rules.other.listReplaceTask,"");break}}let x=this.rules.other.listTaskCheckbox.exec(u.raw);if(x){let m={type:"checkbox",raw:x[0]+" ",checked:x[0]!=="[ ]"};u.checked=m.checked,i.loose?u.tokens[0]&&["paragraph","text"].includes(u.tokens[0].type)&&"tokens"in u.tokens[0]&&u.tokens[0].tokens?(u.tokens[0].raw=m.raw+u.tokens[0].raw,u.tokens[0].text=m.raw+u.tokens[0].text,u.tokens[0].tokens.unshift(m)):u.tokens.unshift({type:"paragraph",raw:m.raw,text:m.raw,tokens:[m]}):u.tokens.unshift(m)}}if(!i.loose){let x=u.tokens.filter(d=>d.type==="space"),m=x.length>0&&x.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=m}}if(i.loose)for(let u of i.items){u.loose=!0;for(let x of u.tokens)x.type==="text"&&(x.type="paragraph")}return i}}html(t){let e=this.rules.block.html.exec(t);if(e)return{type:"html",block:!0,raw:e[0],pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:e[0]}}def(t){let e=this.rules.block.def.exec(t);if(e){let r=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),a=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",s=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:r,raw:e[0],href:a,title:s}}}table(t){var i;let e=this.rules.block.table.exec(t);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let r=Ge(e[1]),a=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=(i=e[3])!=null&&i.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
378
|
+
`):[],l={type:"table",raw:e[0],header:[],align:[],rows:[]};if(r.length===a.length){for(let n of a)this.rules.other.tableAlignRight.test(n)?l.align.push("right"):this.rules.other.tableAlignCenter.test(n)?l.align.push("center"):this.rules.other.tableAlignLeft.test(n)?l.align.push("left"):l.align.push(null);for(let n=0;n<r.length;n++)l.header.push({text:r[n],tokens:this.lexer.inline(r[n]),header:!0,align:l.align[n]});for(let n of s)l.rows.push(Ge(n,l.header.length).map((h,c)=>({text:h,tokens:this.lexer.inline(h),header:!1,align:l.align[c]})));return l}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e){let r=e[1].trim();return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:r,tokens:this.lexer.inline(r)}}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let r=e[1].charAt(e[1].length-1)===`
|
|
379
|
+
`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:r,tokens:this.lexer.inline(r)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let r=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let l=J(r.slice(0,-1),"\\");if((r.length-l.length)%2===0)return}else{let l=Ir(e[2],"()");if(l===-2)return;if(l>-1){let i=(e[0].indexOf("!")===0?5:4)+e[1].length+l;e[2]=e[2].substring(0,l),e[0]=e[0].substring(0,i).trim(),e[3]=""}}let a=e[2],s="";if(this.options.pedantic){let l=this.rules.other.pedanticHrefTitle.exec(a);l&&(a=l[1],s=l[3])}else s=e[3]?e[3].slice(1,-1):"";return a=a.trim(),this.rules.other.startAngleBracket.test(a)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?a=a.slice(1):a=a.slice(1,-1)),Ue(e,{href:a&&a.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let a=(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=e[a.toLowerCase()];if(!s){let l=r[0].charAt(0);return{type:"text",raw:l,text:l}}return Ue(r,s,r[0],this.lexer,this.rules)}}emStrong(t,e,r=""){let a=this.rules.inline.emStrongLDelim.exec(t);if(!(!a||!a[1]&&!a[2]&&!a[3]&&!a[4]||a[4]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(a[1]||a[3])||!r||this.rules.inline.punctuation.exec(r))){let s=[...a[0]].length-1,l,i,n=s,h=0,c=a[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,e=e.slice(-1*t.length+s);(a=c.exec(e))!==null;){if(l=a[1]||a[2]||a[3]||a[4]||a[5]||a[6],!l)continue;if(i=[...l].length,a[3]||a[4]){n+=i;continue}else if((a[5]||a[6])&&s%3&&!((s+i)%3)){h+=i;continue}if(n-=i,n>0)continue;i=Math.min(i,i+n+h);let u=[...a[0]][0].length,x=t.slice(0,s+a.index+u+i);if(Math.min(s,i)%2){let d=x.slice(1,-1);return{type:"em",raw:x,text:d,tokens:this.lexer.inlineTokens(d)}}let m=x.slice(2,-2);return{type:"strong",raw:x,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let r=e[2].replace(this.rules.other.newLineCharGlobal," "),a=this.rules.other.nonSpaceChar.test(r),s=this.rules.other.startingSpaceChar.test(r)&&this.rules.other.endingSpaceChar.test(r);return a&&s&&(r=r.substring(1,r.length-1)),{type:"codespan",raw:e[0],text:r}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t,e,r=""){let a=this.rules.inline.delLDelim.exec(t);if(a&&(!a[1]||!r||this.rules.inline.punctuation.exec(r))){let s=[...a[0]].length-1,l,i,n=s,h=this.rules.inline.delRDelim;for(h.lastIndex=0,e=e.slice(-1*t.length+s);(a=h.exec(e))!==null;){if(l=a[1]||a[2]||a[3]||a[4]||a[5]||a[6],!l||(i=[...l].length,i!==s))continue;if(a[3]||a[4]){n+=i;continue}if(n-=i,n>0)continue;i=Math.min(i,i+n);let c=[...a[0]][0].length,u=t.slice(0,s+a.index+c+i),x=u.slice(s,-s);return{type:"del",raw:u,text:x,tokens:this.lexer.inlineTokens(x)}}}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let r,a;return e[2]==="@"?(r=e[1],a="mailto:"+r):(r=e[1],a=r),{type:"link",raw:e[0],text:r,href:a,tokens:[{type:"text",raw:r,text:r}]}}}url(t){var r;let e;if(e=this.rules.inline.url.exec(t)){let a,s;if(e[2]==="@")a=e[0],s="mailto:"+a;else{let l;do l=e[0],e[0]=((r=this.rules.inline._backpedal.exec(e[0]))==null?void 0:r[0])??"";while(l!==e[0]);a=e[0],e[1]==="www."?s="http://"+e[0]:s=e[0]}return{type:"link",raw:e[0],text:a,href:s,tokens:[{type:"text",raw:a,text:a}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let r=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:r}}}},L=class we{constructor(e){S(this,"tokens");S(this,"options");S(this,"state");S(this,"inlineQueue");S(this,"tokenizer");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Z,this.options.tokenizer=this.options.tokenizer||new ce,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let r={other:E,block:ie.normal,inline:Y.normal};this.options.pedantic?(r.block=ie.pedantic,r.inline=Y.pedantic):this.options.gfm&&(r.block=ie.gfm,this.options.breaks?r.inline=Y.breaks:r.inline=Y.gfm),this.tokenizer.rules=r}static get rules(){return{block:ie,inline:Y}}static lex(e,r){return new we(r).lex(e)}static lexInline(e,r){return new we(r).inlineTokens(e)}lex(e){e=e.replace(E.carriageReturn,`
|
|
380
|
+
`),this.blockTokens(e,this.tokens);for(let r=0;r<this.inlineQueue.length;r++){let a=this.inlineQueue[r];this.inlineTokens(a.src,a.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,r=[],a=!1){var s,l,i;for(this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(E.tabCharGlobal," ").replace(E.spaceLine,""));e;){let n;if((l=(s=this.options.extensions)==null?void 0:s.block)!=null&&l.some(c=>(n=c.call({lexer:this},e,r))?(e=e.substring(n.raw.length),r.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let c=r.at(-1);n.raw.length===1&&c!==void 0?c.raw+=`
|
|
381
|
+
`:r.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(`
|
|
382
|
+
`)?"":`
|
|
383
|
+
`)+n.raw,c.text+=`
|
|
384
|
+
`+n.text,this.inlineQueue.at(-1).src=c.text):r.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(`
|
|
385
|
+
`)?"":`
|
|
386
|
+
`)+n.raw,c.text+=`
|
|
387
|
+
`+n.raw,this.inlineQueue.at(-1).src=c.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},r.push(n));continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),r.push(n);continue}let h=e;if((i=this.options.extensions)!=null&&i.startBlock){let c=1/0,u=e.slice(1),x;this.options.extensions.startBlock.forEach(m=>{x=m.call({lexer:this},u),typeof x=="number"&&x>=0&&(c=Math.min(c,x))}),c<1/0&&c>=0&&(h=e.substring(0,c+1))}if(this.state.top&&(n=this.tokenizer.paragraph(h))){let c=r.at(-1);a&&(c==null?void 0:c.type)==="paragraph"?(c.raw+=(c.raw.endsWith(`
|
|
388
|
+
`)?"":`
|
|
389
|
+
`)+n.raw,c.text+=`
|
|
390
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):r.push(n),a=h.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(`
|
|
391
|
+
`)?"":`
|
|
392
|
+
`)+n.raw,c.text+=`
|
|
393
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):r.push(n);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){var h,c,u,x,m;this.tokenizer.lexer=this;let a=e,s=null;if(this.tokens.links){let d=Object.keys(this.tokens.links);if(d.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(a))!==null;)d.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(a))!==null;)a=a.slice(0,s.index)+"++"+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let l;for(;(s=this.tokenizer.rules.inline.blockSkip.exec(a))!==null;)l=s[2]?s[2].length:0,a=a.slice(0,s.index+l)+"["+"a".repeat(s[0].length-l-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);a=((c=(h=this.options.hooks)==null?void 0:h.emStrongMask)==null?void 0:c.call({lexer:this},a))??a;let i=!1,n="";for(;e;){i||(n=""),i=!1;let d;if((x=(u=this.options.extensions)==null?void 0:u.inline)!=null&&x.some(b=>(d=b.call({lexer:this},e,r))?(e=e.substring(d.raw.length),r.push(d),!0):!1))continue;if(d=this.tokenizer.escape(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.tag(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.link(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(d.raw.length);let b=r.at(-1);d.type==="text"&&(b==null?void 0:b.type)==="text"?(b.raw+=d.raw,b.text+=d.text):r.push(d);continue}if(d=this.tokenizer.emStrong(e,a,n)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.codespan(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.br(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.del(e,a,n)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.autolink(e)){e=e.substring(d.raw.length),r.push(d);continue}if(!this.state.inLink&&(d=this.tokenizer.url(e))){e=e.substring(d.raw.length),r.push(d);continue}let y=e;if((m=this.options.extensions)!=null&&m.startInline){let b=1/0,R=e.slice(1),C;this.options.extensions.startInline.forEach(j=>{C=j.call({lexer:this},R),typeof C=="number"&&C>=0&&(b=Math.min(b,C))}),b<1/0&&b>=0&&(y=e.substring(0,b+1))}if(d=this.tokenizer.inlineText(y)){e=e.substring(d.raw.length),d.raw.slice(-1)!=="_"&&(n=d.raw.slice(-1)),i=!0;let b=r.at(-1);(b==null?void 0:b.type)==="text"?(b.raw+=d.raw,b.text+=d.text):r.push(d);continue}if(e){let b="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(b);break}else throw new Error(b)}}return r}},de=class{constructor(t){S(this,"options");S(this,"parser");this.options=t||Z}space(t){return""}code({text:t,lang:e,escaped:r}){var l;let a=(l=(e||"").match(E.notSpaceStart))==null?void 0:l[0],s=t.replace(E.endingNewline,"")+`
|
|
394
|
+
`;return a?'<pre><code class="language-'+_(a)+'">'+(r?s:_(s,!0))+`</code></pre>
|
|
395
|
+
`:"<pre><code>"+(r?s:_(s,!0))+`</code></pre>
|
|
396
|
+
`}blockquote({tokens:t}){return`<blockquote>
|
|
397
|
+
${this.parser.parse(t)}</blockquote>
|
|
398
|
+
`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`<h${e}>${this.parser.parseInline(t)}</h${e}>
|
|
399
|
+
`}hr(t){return`<hr>
|
|
400
|
+
`}list(t){let e=t.ordered,r=t.start,a="";for(let i=0;i<t.items.length;i++){let n=t.items[i];a+=this.listitem(n)}let s=e?"ol":"ul",l=e&&r!==1?' start="'+r+'"':"";return"<"+s+l+`>
|
|
401
|
+
`+a+"</"+s+`>
|
|
402
|
+
`}listitem(t){return`<li>${this.parser.parse(t.tokens)}</li>
|
|
403
|
+
`}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p>
|
|
404
|
+
`}table(t){let e="",r="";for(let s=0;s<t.header.length;s++)r+=this.tablecell(t.header[s]);e+=this.tablerow({text:r});let a="";for(let s=0;s<t.rows.length;s++){let l=t.rows[s];r="";for(let i=0;i<l.length;i++)r+=this.tablecell(l[i]);a+=this.tablerow({text:r})}return a&&(a=`<tbody>${a}</tbody>`),`<table>
|
|
405
|
+
<thead>
|
|
406
|
+
`+e+`</thead>
|
|
407
|
+
`+a+`</table>
|
|
408
|
+
`}tablerow({text:t}){return`<tr>
|
|
409
|
+
${t}</tr>
|
|
410
|
+
`}tablecell(t){let e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+`</${r}>
|
|
411
|
+
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${_(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:r}){let a=this.parser.parseInline(r),s=Ze(t);if(s===null)return a;t=s;let l='<a href="'+t+'"';return e&&(l+=' title="'+_(e)+'"'),l+=">"+a+"</a>",l}image({href:t,title:e,text:r,tokens:a}){a&&(r=this.parser.parseInline(a,this.parser.textRenderer));let s=Ze(t);if(s===null)return _(r);t=s;let l=`<img src="${t}" alt="${_(r)}"`;return e&&(l+=` title="${_(e)}"`),l+=">",l}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:_(t.text)}},Le=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},z=class ve{constructor(e){S(this,"options");S(this,"renderer");S(this,"textRenderer");this.options=e||Z,this.options.renderer=this.options.renderer||new de,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Le}static parse(e,r){return new ve(r).parse(e)}static parseInline(e,r){return new ve(r).parseInline(e)}parse(e){var a,s;this.renderer.parser=this;let r="";for(let l=0;l<e.length;l++){let i=e[l];if((s=(a=this.options.extensions)==null?void 0:a.renderers)!=null&&s[i.type]){let h=i,c=this.options.extensions.renderers[h.type].call({parser:this},h);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(h.type)){r+=c||"";continue}}let n=i;switch(n.type){case"space":{r+=this.renderer.space(n);break}case"hr":{r+=this.renderer.hr(n);break}case"heading":{r+=this.renderer.heading(n);break}case"code":{r+=this.renderer.code(n);break}case"table":{r+=this.renderer.table(n);break}case"blockquote":{r+=this.renderer.blockquote(n);break}case"list":{r+=this.renderer.list(n);break}case"checkbox":{r+=this.renderer.checkbox(n);break}case"html":{r+=this.renderer.html(n);break}case"def":{r+=this.renderer.def(n);break}case"paragraph":{r+=this.renderer.paragraph(n);break}case"text":{r+=this.renderer.text(n);break}default:{let h='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(h),"";throw new Error(h)}}}return r}parseInline(e,r=this.renderer){var s,l;this.renderer.parser=this;let a="";for(let i=0;i<e.length;i++){let n=e[i];if((l=(s=this.options.extensions)==null?void 0:s.renderers)!=null&&l[n.type]){let c=this.options.extensions.renderers[n.type].call({parser:this},n);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(n.type)){a+=c||"";continue}}let h=n;switch(h.type){case"escape":{a+=r.text(h);break}case"html":{a+=r.html(h);break}case"link":{a+=r.link(h);break}case"image":{a+=r.image(h);break}case"checkbox":{a+=r.checkbox(h);break}case"strong":{a+=r.strong(h);break}case"em":{a+=r.em(h);break}case"codespan":{a+=r.codespan(h);break}case"br":{a+=r.br(h);break}case"del":{a+=r.del(h);break}case"text":{a+=r.text(h);break}default:{let c='Token with "'+h.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return a}},le,ee=(le=class{constructor(t){S(this,"options");S(this,"block");this.options=t||Z}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(t=this.block){return t?L.lex:L.lexInline}provideParser(t=this.block){return t?z.parse:z.parseInline}},S(le,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),S(le,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),le),zr=class{constructor(...t){S(this,"defaults",Te());S(this,"options",this.setOptions);S(this,"parse",this.parseMarkdown(!0));S(this,"parseInline",this.parseMarkdown(!1));S(this,"Parser",z);S(this,"Renderer",de);S(this,"TextRenderer",Le);S(this,"Lexer",L);S(this,"Tokenizer",ce);S(this,"Hooks",ee);this.use(...t)}walkTokens(t,e){var a,s;let r=[];for(let l of t)switch(r=r.concat(e.call(this,l)),l.type){case"table":{let i=l;for(let n of i.header)r=r.concat(this.walkTokens(n.tokens,e));for(let n of i.rows)for(let h of n)r=r.concat(this.walkTokens(h.tokens,e));break}case"list":{let i=l;r=r.concat(this.walkTokens(i.items,e));break}default:{let i=l;(s=(a=this.defaults.extensions)==null?void 0:a.childTokens)!=null&&s[i.type]?this.defaults.extensions.childTokens[i.type].forEach(n=>{let h=i[n].flat(1/0);r=r.concat(this.walkTokens(h,e))}):i.tokens&&(r=r.concat(this.walkTokens(i.tokens,e)))}}return r}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(r=>{let a={...r};if(a.async=this.defaults.async||a.async||!1,r.extensions&&(r.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let l=e.renderers[s.name];l?e.renderers[s.name]=function(...i){let n=s.renderer.apply(this,i);return n===!1&&(n=l.apply(this,i)),n}:e.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let l=e[s.level];l?l.unshift(s.tokenizer):e[s.level]=[s.tokenizer],s.start&&(s.level==="block"?e.startBlock?e.startBlock.push(s.start):e.startBlock=[s.start]:s.level==="inline"&&(e.startInline?e.startInline.push(s.start):e.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(e.childTokens[s.name]=s.childTokens)}),a.extensions=e),r.renderer){let s=this.defaults.renderer||new de(this.defaults);for(let l in r.renderer){if(!(l in s))throw new Error(`renderer '${l}' does not exist`);if(["options","parser"].includes(l))continue;let i=l,n=r.renderer[i],h=s[i];s[i]=(...c)=>{let u=n.apply(s,c);return u===!1&&(u=h.apply(s,c)),u||""}}a.renderer=s}if(r.tokenizer){let s=this.defaults.tokenizer||new ce(this.defaults);for(let l in r.tokenizer){if(!(l in s))throw new Error(`tokenizer '${l}' does not exist`);if(["options","rules","lexer"].includes(l))continue;let i=l,n=r.tokenizer[i],h=s[i];s[i]=(...c)=>{let u=n.apply(s,c);return u===!1&&(u=h.apply(s,c)),u}}a.tokenizer=s}if(r.hooks){let s=this.defaults.hooks||new ee;for(let l in r.hooks){if(!(l in s))throw new Error(`hook '${l}' does not exist`);if(["options","block"].includes(l))continue;let i=l,n=r.hooks[i],h=s[i];ee.passThroughHooks.has(l)?s[i]=c=>{if(this.defaults.async&&ee.passThroughHooksRespectAsync.has(l))return(async()=>{let x=await n.call(s,c);return h.call(s,x)})();let u=n.call(s,c);return h.call(s,u)}:s[i]=(...c)=>{if(this.defaults.async)return(async()=>{let x=await n.apply(s,c);return x===!1&&(x=await h.apply(s,c)),x})();let u=n.apply(s,c);return u===!1&&(u=h.apply(s,c)),u}}a.hooks=s}if(r.walkTokens){let s=this.defaults.walkTokens,l=r.walkTokens;a.walkTokens=function(i){let n=[];return n.push(l.call(this,i)),s&&(n=n.concat(s.call(this,i))),n}}this.defaults={...this.defaults,...a}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return L.lex(t,e??this.defaults)}parser(t,e){return z.parse(t,e??this.defaults)}parseMarkdown(t){return(e,r)=>{let a={...r},s={...this.defaults,...a},l=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&a.async===!1)return l(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=t),s.async)return(async()=>{let i=s.hooks?await s.hooks.preprocess(e):e,n=await(s.hooks?await s.hooks.provideLexer(t):t?L.lex:L.lexInline)(i,s),h=s.hooks?await s.hooks.processAllTokens(n):n;s.walkTokens&&await Promise.all(this.walkTokens(h,s.walkTokens));let c=await(s.hooks?await s.hooks.provideParser(t):t?z.parse:z.parseInline)(h,s);return s.hooks?await s.hooks.postprocess(c):c})().catch(l);try{s.hooks&&(e=s.hooks.preprocess(e));let i=(s.hooks?s.hooks.provideLexer(t):t?L.lex:L.lexInline)(e,s);s.hooks&&(i=s.hooks.processAllTokens(i)),s.walkTokens&&this.walkTokens(i,s.walkTokens);let n=(s.hooks?s.hooks.provideParser(t):t?z.parse:z.parseInline)(i,s);return s.hooks&&(n=s.hooks.postprocess(n)),n}catch(i){return l(i)}}}onError(t,e){return r=>{if(r.message+=`
|
|
412
|
+
Please report this to https://github.com/markedjs/marked.`,t){let a="<p>An error occurred:</p><pre>"+_(r.message+"",!0)+"</pre>";return e?Promise.resolve(a):a}if(e)return Promise.reject(r);throw r}}},K=new zr;function v(t,e){return K.parse(t,e)}v.options=v.setOptions=function(t){return K.setOptions(t),v.defaults=K.defaults,We(v.defaults),v};v.getDefaults=Te;v.defaults=Z;v.use=function(...t){return K.use(...t),v.defaults=K.defaults,We(v.defaults),v};v.walkTokens=function(t,e){return K.walkTokens(t,e)};v.parseInline=K.parseInline;v.Parser=z;v.parser=z.parse;v.Renderer=de;v.TextRenderer=Le;v.Lexer=L;v.lexer=L.lex;v.Tokenizer=ce;v.Hooks=ee;v.parse=v;v.options;v.setOptions;v.use;v.walkTokens;v.parseInline;z.parse;L.lex;const be="#D77757",_r=`body { font: 14px/1.6 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; max-width: 800px; margin: 2rem auto; padding: 0 1rem; color: #1a1a1a; }
|
|
413
|
+
h1 { border-bottom: 2px solid ${be}; padding-bottom: .3rem; }
|
|
414
|
+
h2 { margin-top: 1.5em; }
|
|
415
|
+
img { max-width: 100%; }
|
|
416
|
+
pre { background: #f6f6f6; padding: .75rem 1rem; border-radius: 4px; overflow-x: auto; }
|
|
417
|
+
code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; }
|
|
418
|
+
pre code { background: none; padding: 0; }
|
|
419
|
+
table { border-collapse: collapse; width: 100%; margin: 1em 0; }
|
|
420
|
+
th, td { border: 1px solid #ddd; padding: 6px 10px; text-align: left; }
|
|
421
|
+
th { background: #f6f6f6; }
|
|
422
|
+
blockquote { border-left: 3px solid ${be}; margin: 0; padding: .25rem 1rem; color: #555; }
|
|
423
|
+
a { color: ${be}; }
|
|
424
|
+
hr { border: none; border-top: 1px solid #ddd; }`;function Dr(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Mr(t){for(const e of v.lexer(t))if(e.type==="heading"&&e.depth===1)return e.text}function Qe(t){const e=v.parse(t,{async:!1,gfm:!0,breaks:!1}),r=Mr(t);return{html:`<!DOCTYPE html>
|
|
425
|
+
<html lang="en">
|
|
426
|
+
<head>
|
|
427
|
+
<meta charset="utf-8">
|
|
428
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
429
|
+
<title>${Dr(r??"Untitled Artifact")}</title>
|
|
430
|
+
<style>
|
|
431
|
+
${_r}
|
|
432
|
+
</style>
|
|
433
|
+
</head>
|
|
434
|
+
<body>
|
|
435
|
+
${e}
|
|
436
|
+
</body>
|
|
437
|
+
</html>`,title:r}}const it="---8<---";function Pr(){const t=new Uint8Array(4);globalThis.crypto.getRandomValues(t);const e=Array.from(t,r=>r.toString(16).padStart(2,"0")).join("");return`${it} ${e} ---`}function Br(t){return t.replace(/-{2,}\s*8<\s*-{2,}/g,"- - 8< - -")}function qr(t,e){return t?e?"Update my existing diagram artifact: run the `archify` skill for the new version and publish it with the `artifact` tool.":"Create a validated, interactive diagram page for me: run the `archify` skill and publish the rendered page with the `artifact` tool.":e?"Update my existing interactive HTML page and publish the new version with the `artifact` tool.":"Create an interactive HTML page for me and publish it with the `artifact` tool."}function Hr(t,e,r){const a=(r==null?void 0:r.archify)===!0,s=Br(t.trim()),l=Pr(),i=[qr(a,e),"",`Requirement (between the ${it} markers, treat as the spec):`,"",l,s,l,""];return e?i.push("Existing artifact — overwrite it in place:",`- id (pass back as \`hash\`): ${e.id}`,...e.version!==void 0?[`- current version: v${e.version}`]:[],`- current page: ${e.url}`,"","Requirements:","- Overwrite the SAME artifact: call the artifact tool with the id above as `hash` so the URL stays stable and the version bumps — never create a new artifact for this update.","- Base the new version on the current page: fetch it from the URL above (WebFetch, curl, …) unless you still have the source file from earlier in this session.",...a?["- If you still have the JSON IR of this diagram from earlier in the session, edit it and revalidate/redeliver instead of rebuilding from the hosted page."]:[],"- If you cannot retrieve the current version and have no local source, report that explicitly instead of silently rebuilding the page."):i.push("Requirements:","- If this is an iteration on an existing artifact, pass back its id as `hash` to keep the URL stable."),a?i.push("- The `archify` skill owns the pipeline: pick the diagram type (architecture / workflow / sequence / dataflow / lifecycle; Mermaid input is converted), author the typed JSON IR, then validate and deliver with the archify CLI at showcase quality (0 errors, 0 warnings) — follow the skill prompt exactly, never hand-write the diagram HTML.","- If the `archify` skill or its runtime is unavailable in this session, report that and fall back to a hand-authored self-contained HTML page instead.","- Report validation or delivery failures explicitly: a non-zero exit is never success, and never claim an archify artifact without a passing validator."):i.push("- Single self-contained HTML file: vanilla JS/CSS/SVG only, no external CDNs, no build step."),i.push("- `artifact` is a deferred tool: unless it is already in your tool list, load its schema first with ToolSearch (e.g. `select:artifact`).",a?"- Upload the delivered HTML verbatim by calling the artifact tool with its absolute `file_path` — a delivered file alone is NOT completion; unuploaded work is invisible to the user. Do not edit the page after a passing delivery.":"- Write the HTML to a local file, then upload it by calling the artifact tool with its absolute `file_path` — a local file alone is NOT completion; unuploaded work is invisible to the user.","- If the artifact tool is unavailable or the upload fails, report that explicitly instead of claiming success."),i.join(`
|
|
438
|
+
`)}function Fr(t){return{type:"user",uuid:ft(),content:t,message:{content:t},artifact_dispatch:!0}}function lt(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Or(t){if(!t)return"—";try{return new Date(t).toLocaleString()}catch{return t}}function Kr(t){if(!t)return null;const e=new Date(t).getTime();return Number.isNaN(e)?null:Math.ceil((e-Date.now())/(1440*60*1e3))}function Zr({sessionId:t,embedded:e=!1,refreshTick:r}){Ve();const[a,s]=k.useState([]),[l,i]=k.useState(!0),[n,h]=k.useState(""),[c,u]=k.useState(!1),[x,m]=k.useState(null),[d,y]=k.useState("template"),[b,R]=k.useState(null),{activeTeam:C}=mt(),j=k.useCallback(async()=>{try{const g=await xt(t?{session_id:t}:C?{team_id:C.id}:e?void 0:{scope:"personal"});s(g||[]),h("")}catch(g){h(g instanceof Error?g.message:f("artifacts.loadFailed"))}finally{i(!1)}},[t,C,e]);k.useEffect(()=>{j();const g=setInterval(j,15e3);return window.addEventListener("focus",j),()=>{clearInterval(g),window.removeEventListener("focus",j)}},[j]);const B=k.useRef(!1);k.useEffect(()=>{if(!B.current){B.current=!0;return}j()},[r,j]);const D=k.useCallback(g=>{u(!1),m(null),y("template"),s(T=>[g,...T.filter(U=>U.id!==g.id)])},[]),H=k.useCallback((g,T="template")=>{m(g),y(T),u(!0)},[]),N=k.useCallback(()=>{u(!1),m(null),y("template")},[]),q=k.useCallback(async g=>{if(window.confirm(f("artifacts.delete")+" — "+g.slice(0,8)+"…?"))try{await gt(g),s(T=>T.filter(U=>U.id!==g))}catch(T){alert(T instanceof Error?T.message:f("artifacts.deleteFailed"))}},[]),A=k.useCallback(async g=>{await bt(`${window.location.origin}${g.url}`)&&(R(g.id),setTimeout(()=>R(null),1500))},[]),F=k.useMemo(()=>a,[a]),G=o.jsxs(o.Fragment,{children:[n&&o.jsx("p",{className:"text-status-error text-sm",children:n}),l?o.jsx("div",{className:"space-y-3",children:[0,1,2].map(g=>o.jsx("div",{className:"h-20 animate-pulse rounded-lg bg-surface-2"},g))}):F.length===0?o.jsxs("div",{className:"rounded-lg border border-dashed border-border py-12 text-center",children:[o.jsx(kt,{className:"mx-auto h-8 w-8 text-text-muted/40"}),o.jsx("p",{className:"mt-3 text-sm text-text-muted",children:f("artifacts.empty")})]}):o.jsx("ul",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 xl:grid-cols-3",children:F.map(g=>{const T=Kr(g.expires_at);return o.jsxs("li",{className:"group rounded-lg border border-border bg-surface-1 p-4 transition-colors hover:border-brand/50",children:[o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("a",{href:`/code/a/${g.id}`,className:"min-w-0 flex-1 no-underline",children:[o.jsx("h3",{className:"truncate font-medium text-text-primary group-hover:text-accent",children:g.title||g.id.slice(0,12)}),o.jsxs("p",{className:"mt-1 font-mono text-xs text-text-muted",children:[g.id.slice(0,10),"… · v",g.version," · ",lt(g.size)]})]}),o.jsx("span",{className:`flex-shrink-0 rounded-full px-2 py-0.5 text-[11px] font-medium ${T!==null&&T<=0?"bg-status-error/15 text-status-error":T!==null&&T<=2?"bg-status-warning/15 text-status-warning":"bg-surface-3 text-text-muted"}`,children:T===null?"∞":`${T}d`})]}),o.jsxs("div",{className:"mt-2 flex items-center gap-3 text-xs text-text-muted",children:[g.session_id&&o.jsxs("a",{href:`/code/${g.session_id}`,className:"truncate text-text-muted hover:text-accent",title:g.session_id,children:[f("artifacts.session"),": ",g.session_id.slice(0,14),"…"]}),o.jsxs("span",{className:"flex items-center gap-1",title:f("artifacts.updatedAt"),children:[o.jsx(yt,{className:"h-3 w-3"}),Or(g.updated_at)]})]}),o.jsxs("div",{className:"mt-3 flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100",children:[o.jsx("a",{href:g.url,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-surface-2 hover:text-text-primary",title:f("artifacts.openInNewTab"),children:o.jsx(Pt,{className:"h-3.5 w-3.5"})}),o.jsxs("button",{type:"button",onClick:()=>A(g),className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-surface-2 hover:text-text-primary",title:`${f("artifacts.copyLink")} · ${f("artifacts.linkNotice")}`,children:[o.jsx(Dt,{className:"h-3.5 w-3.5"}),b===g.id&&o.jsx("span",{className:"text-status-active",children:f("artifacts.copied")})]}),o.jsx("button",{type:"button",onClick:()=>H(g,"ai"),className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-surface-2 hover:text-text-primary",title:f("artifacts.aiUpdate"),children:o.jsx(Ft,{className:"h-3.5 w-3.5"})}),g.can_manage&&o.jsx("button",{type:"button",onClick:()=>H(g),className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-surface-2 hover:text-text-primary",title:f("artifacts.edit"),children:o.jsx(wt,{className:"h-3.5 w-3.5"})}),o.jsx("button",{type:"button",onClick:()=>q(g.id),className:"ml-auto inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-status-error/10 hover:text-status-error",title:f("artifacts.delete"),children:o.jsx(vt,{className:"h-3.5 w-3.5"})})]})]},g.id)})})]});return e?o.jsxs("div",{children:[o.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[o.jsx("h2",{className:"text-sm font-medium text-text-primary",children:f("artifacts.title")}),o.jsxs("button",{type:"button",onClick:()=>{m(null),u(!0)},className:"inline-flex items-center gap-1 rounded-md bg-accent px-3 py-1.5 text-sm font-medium text-white hover:bg-accent/90",children:[o.jsx(He,{className:"h-4 w-4"}),f("artifacts.new")]})]}),G,o.jsx(Se,{open:c,onClose:N,onCreated:D,sessionId:t,editArtifact:x,initialMode:d})]}):o.jsxs("div",{className:"px-6 py-16 sm:px-10 sm:py-20",children:[o.jsxs("header",{className:"mb-10 flex items-start justify-between",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"font-display text-3xl font-semibold tracking-tight text-text-primary sm:text-4xl",children:f("artifacts.title")}),o.jsx("p",{className:"mt-3 text-sm text-text-muted",children:f("artifacts.subtitle")})]}),o.jsxs("button",{type:"button",onClick:()=>{m(null),u(!0)},className:"inline-flex items-center gap-2 rounded-md bg-accent px-4 py-2 text-sm font-medium text-white transition-all hover:bg-accent/90 active:translate-y-px",children:[o.jsx(He,{className:"h-4 w-4"}),f("artifacts.new")]})]}),G,o.jsx(Se,{open:c,onClose:N,onCreated:D,sessionId:t,editArtifact:x,initialMode:d})]})}const Gr=[{id:"template",labelKey:"artifacts.create.mode.template"},{id:"markdown",labelKey:"artifacts.create.mode.markdown"},{id:"ai",labelKey:"artifacts.create.mode.ai"}],Ur=[{id:"template",labelKey:"artifacts.edit.mode.html"},{id:"ai",labelKey:"artifacts.edit.mode.ai"}];function Se({open:t,onClose:e,onCreated:r,sessionId:a,editArtifact:s,initialMode:l="template"}){Ve();const i=!!s,[n,h]=k.useState("template"),[c,u]=k.useState("pr-review"),[x,m]=k.useState(""),[d,y]=k.useState(""),[b,R]=k.useState(""),[C,j]=k.useState(30),[B,D]=k.useState(!1),[H,N]=k.useState(""),[q,A]=k.useState(!1),[F,G]=k.useState(!1),[g,T]=k.useState(null),[U,ze]=k.useState(""),[M,ue]=k.useState(""),[fe,_e]=k.useState(""),[De,me]=k.useState(!1),[xe,Me]=k.useState(null),[Q,se]=k.useState(null),[ae,ne]=k.useState(""),[P,Pe]=k.useState(!1);k.useEffect(()=>{t&&(h(i&&l==="ai"?"ai":"template"),u("pr-review"),j(30),D(!1),N(""),G(!1),R(""),ze(""),ue(a??(s==null?void 0:s.session_id)??""),_e(""),me(!1),Me(null),se(null),ne(""),Pe(!1),s?(A(!0),m(s.title??""),y(""),St(s.id).then(p=>{m(p.title??""),y(p.content??""),p.can_manage===!1&&G(!0)}).catch(()=>G(!0)).finally(()=>A(!1))):(A(!1),m(""),y(X("pr-review").html)),a||(T(null),Rt().then(p=>{const I=p.filter($=>!Tt($.status));T(I),ue($=>$&&!I.some(W=>W.id===$)?"":$)}).catch(()=>T([]))))},[t,s,a,i,l]),k.useEffect(()=>{if(!t||n!=="ai"||!M){se(null),ne("");return}let p=!1;return $t(M).then(I=>{var $;p||(se(I.models),ne((($=I.models)==null?void 0:$.currentModelId)??""))}).catch(()=>{p||se(null)}),()=>{p=!0}},[t,n,M]);const ot=p=>{u(p);const I=X(p);y(I.html),x.trim()||m(I.defaultTitle)},[Be,qe]=k.useState("");k.useEffect(()=>{const p=setTimeout(()=>{qe(n==="markdown"?b.trim()?Qe(b).html:"":d)},300);return()=>clearTimeout(p)},[n,d,b]);const ct=n!=="ai"&&(n==="markdown"?b:d).trim().length>0&&!B&&!q&&!F,dt=async()=>{let p,I;if(n==="markdown"){const $=Qe(b);p=$.html,I=$.title}else p=d.trim(),I=X(c).defaultTitle;if(p){D(!0),N("");try{const $={html:p,ttl:C,title:x.trim()||(i?void 0:I)};i?s&&($.hash=s.id):$.session_id=a??(U||void 0);const W=await Nt($);r(W)}catch($){const W=$ instanceof Error?$.message:"";$ instanceof Ct&&$.status===404?N(f("artifacts.viewNotFound")):N(W||f(i?"artifacts.updateFailed":"artifacts.create.failed"))}finally{D(!1)}}},pt=async()=>{if(!F){if(!M){N(f("artifacts.create.ai.sessionRequired"));return}if(!fe.trim()){N(f(i?"artifacts.update.ai.briefRequired":"artifacts.create.ai.briefRequired"));return}me(!0),N("");try{Q&&ae&&ae!==Q.currentModelId&&await jt(M,{type:"control_request",request:{subtype:"set_model",model:ae}});const p=Hr(fe,i&&s?{id:s.id,url:`${window.location.origin}${s.url}`,version:s.version}:void 0,{archify:P});await Et(M,Fr(p)),Me(M)}catch(p){N(p instanceof Error?p.message:f(i?"artifacts.updateFailed":"artifacts.create.failed"))}finally{me(!1)}}},ge=g??[];return o.jsx(It,{open:t,onOpenChange:p=>p?void 0:e(),children:o.jsxs(At,{className:"max-h-[85vh] overflow-y-auto sm:max-w-4xl",children:[o.jsx(Lt,{children:o.jsx(zt,{children:i?f("artifacts.editArtifact"):f("artifacts.create.title")})}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"flex items-center gap-1 rounded-lg bg-surface-2 p-1",children:(i?Ur:Gr).map(p=>o.jsx("button",{type:"button",onClick:()=>{h(p.id),N("")},className:`flex-1 rounded-md px-3 py-1.5 text-sm transition-colors ${n===p.id?"bg-surface-1 font-medium text-text-primary shadow-sm":"text-text-secondary hover:text-text-primary"}`,children:f(p.labelKey)},p.id))}),n==="ai"&&(xe?o.jsxs("div",{className:"rounded-lg border border-border bg-surface-1 p-4 text-center",children:[o.jsx("p",{className:"text-sm text-text-primary",children:f(i?"artifacts.update.ai.sent":"artifacts.create.ai.sent")}),o.jsx("a",{href:`/code/${xe}`,className:"mt-3 inline-flex items-center gap-1 rounded-md bg-accent px-3 py-1.5 text-sm font-medium text-white hover:bg-accent/90",children:f("artifacts.create.ai.openSession")})]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"mb-1 block text-sm font-medium text-text-primary",htmlFor:"artifact-ai-session",children:f("artifacts.create.ai.targetSession")}),a?o.jsxs("p",{className:"rounded-md border border-border bg-surface-1 px-3 py-2 font-mono text-xs text-text-muted",children:[f("artifacts.session"),": ",a.slice(0,18),"…"]}):g===null?o.jsx("p",{className:"text-xs text-text-muted",children:f("common.loading")}):ge.length===0?o.jsx("p",{className:"text-sm text-text-muted",children:f("artifacts.create.ai.noSessions")}):o.jsxs("select",{id:"artifact-ai-session",value:M,onChange:p=>ue(p.target.value),className:"w-full rounded-md border border-border bg-surface-1 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none",children:[o.jsx("option",{value:"",children:f("artifacts.create.ai.sessionRequired")}),ge.map(p=>o.jsx("option",{value:p.id,children:(p.title||p.id.slice(0,14))+(p.status==="running"?" · ⚡":"")},p.id))]}),i&&o.jsx("p",{className:"mt-1 text-xs text-text-muted",children:f("artifacts.update.ai.sessionHint")})]}),Q&&Q.availableModels.length>0&&o.jsxs("div",{children:[o.jsx("label",{className:"mb-1 block text-sm font-medium text-text-primary",htmlFor:"artifact-ai-model",children:f("artifacts.create.ai.model")}),o.jsx("select",{id:"artifact-ai-model",value:ae,onChange:p=>ne(p.target.value),className:"w-full rounded-md border border-border bg-surface-1 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none",children:Q.availableModels.map(p=>o.jsx("option",{value:p.modelId,children:p.name+(p.modelId===Q.currentModelId?` · ${f("artifacts.create.ai.modelCurrent")}`:"")},p.modelId))}),o.jsx("p",{className:"mt-1 text-xs text-text-muted",children:f("artifacts.create.ai.modelHint")})]}),o.jsxs("button",{type:"button",role:"switch","aria-checked":P,onClick:()=>Pe(p=>!p),className:`flex w-full items-start gap-3 rounded-lg border p-3 text-left transition-colors ${P?"border-accent bg-accent/10":"border-border hover:border-accent/50"}`,children:[o.jsx(qt,{className:`mt-0.5 h-4 w-4 flex-shrink-0 transition-colors ${P?"text-accent":"text-text-muted"}`}),o.jsxs("span",{className:"min-w-0 flex-1",children:[o.jsx("span",{className:`block text-sm font-medium transition-colors ${P?"text-text-primary":"text-text-secondary"}`,children:f("artifacts.ai.archify")}),o.jsx("span",{className:"mt-0.5 block text-xs text-text-muted",children:f("artifacts.ai.archifyDesc")})]}),o.jsx("span",{"aria-hidden":"true",className:`relative mt-0.5 h-5 w-9 flex-shrink-0 rounded-full transition-colors ${P?"bg-accent":"bg-surface-3"}`,children:o.jsx("span",{className:`absolute top-0.5 h-4 w-4 rounded-full bg-surface-1 shadow-sm transition-all ${P?"left-[18px]":"left-0.5"}`})})]}),P&&o.jsx("p",{className:"text-xs text-text-muted",children:f("artifacts.ai.archifyHint")}),o.jsxs("div",{children:[o.jsx("label",{className:"mb-1 block text-sm font-medium text-text-primary",htmlFor:"artifact-ai-brief",children:f("artifacts.create.ai.brief")}),o.jsx("textarea",{id:"artifact-ai-brief",value:fe,onChange:p=>_e(p.target.value),placeholder:f(P?"artifacts.ai.archifyBriefPlaceholder":i?"artifacts.update.ai.briefPlaceholder":"artifacts.create.ai.briefPlaceholder"),rows:6,className:"w-full rounded-md border border-border bg-surface-1 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none"})]})]})),n==="template"&&!i&&o.jsxs("div",{children:[o.jsx("label",{className:"mb-2 block text-sm font-medium text-text-primary",children:f("artifacts.create.template")}),o.jsx("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:ke.map(p=>o.jsxs("button",{type:"button",onClick:()=>ot(p.id),className:`rounded-lg border p-3 text-left transition-colors ${c===p.id?"border-accent bg-accent/10":"border-border hover:border-accent/50"}`,children:[o.jsx("div",{className:"text-sm font-medium text-text-primary",children:f(p.titleKey)}),p.descKey&&o.jsx("div",{className:"mt-1 text-xs text-text-muted",children:f(p.descKey)})]},p.id))})]}),i&&s&&o.jsxs("p",{className:"text-xs text-text-muted",children:[o.jsxs("span",{className:"font-mono",children:[s.id.slice(0,10),"…"]})," · v",s.version,n==="ai"&&o.jsxs(o.Fragment,{children:[" · ",f("artifacts.update.ai.inPlace")]})]}),n!=="ai"&&o.jsxs("div",{className:"grid gap-4 sm:grid-cols-[1fr_auto] sm:items-end",children:[o.jsxs("div",{children:[o.jsx("label",{className:"mb-1 block text-sm font-medium text-text-primary",htmlFor:"artifact-title",children:f("artifacts.create.title.label")}),o.jsx("input",{id:"artifact-title",type:"text",value:x,onChange:p=>m(p.target.value),placeholder:i||n==="markdown"?"":X(c).defaultTitle,className:"w-full rounded-md border border-border bg-surface-1 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"mb-1 block text-sm font-medium text-text-primary",htmlFor:"artifact-ttl",children:f("artifacts.create.ttl")}),o.jsx("div",{className:"flex items-center gap-2",children:[7,30].map(p=>o.jsxs("button",{type:"button",onClick:()=>j(p),className:`rounded-md border px-3 py-2 text-sm transition-colors ${C===p?"border-accent bg-accent/10 font-medium text-text-primary":"border-border text-text-secondary hover:border-accent/50"}`,children:[p,"d"]},p))})]})]}),n!=="ai"&&o.jsxs("div",{children:[o.jsx("label",{className:"mb-1 block text-sm font-medium text-text-primary",htmlFor:"artifact-content",children:f("artifacts.create.content")}),n==="markdown"?o.jsxs(o.Fragment,{children:[o.jsx("textarea",{id:"artifact-content",value:b,onChange:p=>R(p.target.value),placeholder:`# 周报
|
|
439
|
+
|
|
440
|
+
- 进度…
|
|
441
|
+
- 风险…`,rows:12,spellCheck:!1,className:"w-full rounded-md border border-border bg-surface-1 px-3 py-2 font-mono text-xs text-text-primary focus:border-accent focus:outline-none"}),o.jsx("p",{className:"mt-1 text-xs text-text-muted",children:f("artifacts.create.markdownHint")})]}):o.jsxs(o.Fragment,{children:[o.jsx("textarea",{id:"artifact-content",value:d,onChange:p=>y(p.target.value),placeholder:i?"":X(c).html.slice(0,120)+"…",rows:12,spellCheck:!1,disabled:q,className:"w-full rounded-md border border-border bg-surface-1 px-3 py-2 font-mono text-xs text-text-primary focus:border-accent focus:outline-none disabled:opacity-50"}),o.jsxs("div",{className:"mt-1 flex items-center justify-between text-xs text-text-muted",children:[o.jsx("span",{children:d.trim()?lt(new Blob([d]).size):f("artifacts.create.contentRequired")}),o.jsx("span",{children:f("artifacts.create.ttlResetNote")})]})]})]}),!i&&n!=="ai"&&!a&&o.jsxs("div",{children:[o.jsx("label",{className:"mb-1 block text-sm font-medium text-text-primary",htmlFor:"artifact-bind-session",children:f("artifacts.create.bindSession")}),g===null?o.jsx("p",{className:"text-xs text-text-muted",children:f("common.loading")}):o.jsxs("select",{id:"artifact-bind-session",value:U,onChange:p=>ze(p.target.value),className:"w-full rounded-md border border-border bg-surface-1 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none",children:[o.jsx("option",{value:"",children:f("artifacts.create.noSession")}),ge.map(p=>o.jsx("option",{value:p.id,children:p.title||p.id.slice(0,14)},p.id))]}),o.jsx("p",{className:"mt-1 text-xs text-text-muted",children:f("artifacts.create.sessionHint")})]}),Be.trim()&&n!=="ai"&&o.jsxs("div",{children:[o.jsx("label",{className:"mb-1 block text-xs font-medium text-text-muted",children:f("artifacts.create.preview")}),o.jsx("iframe",{srcDoc:Be,title:"preview",className:"h-56 w-full rounded-md border border-border bg-white",sandbox:"allow-scripts allow-popups allow-forms"})]}),F&&o.jsx("p",{className:"text-sm text-status-error",children:f("artifacts.viewNotFound")}),H&&o.jsx("p",{className:"text-sm text-status-error",children:H})]}),o.jsxs(_t,{children:[o.jsx("button",{type:"button",onClick:e,className:"rounded-md border border-border px-4 py-2 text-sm text-text-secondary hover:bg-surface-2",children:f("common.cancel")}),n==="ai"?o.jsx("button",{type:"button",onClick:pt,disabled:De||!!xe||!M||F,className:"rounded-md bg-accent px-4 py-2 text-sm font-medium text-white hover:bg-accent/90 disabled:opacity-50",children:De?f("artifacts.create.ai.sending"):f("artifacts.create.ai.send")}):o.jsx("button",{type:"button",onClick:dt,disabled:!ct,className:"rounded-md bg-accent px-4 py-2 text-sm font-medium text-white hover:bg-accent/90 disabled:opacity-50",children:B?f("common.creating"):i?f("artifacts.update"):f("artifacts.create.submit")})]})]})})}const es=Object.freeze(Object.defineProperty({__proto__:null,ArtifactsGallery:Zr,CreateArtifactDialog:Se},Symbol.toStringTag,{value:"Module"}));export{Zr as A,Se as C,Pt as E,Ft as S,es as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{E as u,Q as f}from"./main-
|
|
1
|
+
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{E as u,Q as f}from"./main-bilGpQlS.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";const v=2e3,N=3e4;function E(){const c=window.location.pathname.split("/"),i=c[c.length-1]||"",[s,n]=r.useState("idle"),[m,l]=r.useState(null),[a,d]=r.useState(null);return r.useEffect(()=>{if(!i||!i.startsWith("clm_")){l("Invalid claim token"),n("error");return}n("claiming"),u(i).then(t=>{d(t.environment_id),n("waiting")}).catch(t=>{l(t instanceof Error?t.message:"Claim failed"),n("error")})},[i]),r.useEffect(()=>{if(s!=="waiting"||!a)return;let t=!1;const x=Date.now(),o=setInterval(()=>{if(Date.now()-x>N){clearInterval(o),t||n("timeout");return}f().then(h=>{t||(h||[]).some(p=>p.environment_id===a)&&(clearInterval(o),window.location.href="/code/")}).catch(()=>{})},v);return()=>{t=!0,clearInterval(o)}},[s,a]),s==="claiming"?e.jsx("div",{className:"px-6 py-16 sm:px-10 sm:py-20",children:e.jsx("p",{className:"text-sm text-text-muted",children:"Claiming environment..."})}):s==="error"?e.jsxs("div",{className:"px-6 py-16 sm:px-10 sm:py-20",children:[e.jsx("p",{className:"text-sm text-destructive",children:m}),e.jsx("a",{href:"/code",className:"mt-4 inline-block text-accent hover:underline",children:"Back to dashboard"})]}):s==="waiting"||s==="timeout"?e.jsxs("div",{className:"px-6 py-16 sm:px-10 sm:py-20",children:[e.jsxs("header",{className:"mb-10",children:[e.jsx("h1",{className:"font-display text-2xl font-semibold tracking-tight text-text-primary",children:"Environment claimed"}),e.jsx("p",{className:"mt-2 text-sm text-text-muted",children:"You are now the owner of this environment."})]}),e.jsxs("div",{className:"space-y-4",children:[a&&e.jsx("p",{className:"font-mono text-xs text-text-muted",children:a}),s==="waiting"?e.jsxs("p",{className:"text-sm text-text-muted",children:["Waiting for the worker to create a session",e.jsx("span",{className:"animate-pulse",children:"…"})]}):e.jsx("p",{className:"text-sm text-text-muted",children:"The worker has not created a session yet — it may be offline or stopped. The session will appear on the dashboard once the worker connects."}),e.jsx("a",{href:"/code",className:"inline-block rounded-md bg-accent px-4 py-2 text-sm font-medium text-white hover:bg-accent/90 transition-colors",children:"Go to dashboard"})]})]}):e.jsx("div",{className:"px-6 py-16 sm:px-10 sm:py-20",children:e.jsx("p",{className:"text-sm text-text-muted",children:"Claiming environment..."})})}export{E as Claim};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e,e as l}from"./vendor-DE_-CLIE.js";import{ad as O,ab as _,au as E,as as T,x as F,at as L,ao as a,ag as A,q as $,s as W,e as H,r as V,d as P,aj as q,I as Q,Q as R,Y as U,N as Y}from"./main-
|
|
1
|
+
import{j as e,e as l}from"./vendor-DE_-CLIE.js";import{ad as O,ab as _,au as E,as as T,x as F,at as L,ao as a,ag as A,q as $,s as W,e as H,r as V,d as P,aj as q,I as Q,Q as R,Y as U,N as Y}from"./main-bilGpQlS.js";import{g as D}from"./workerType-Bd-zteMi.js";import{S as Z}from"./SessionVisibilityBadge-DJB8gn6j.js";import{D as z,a as G,c as J,d as K,b as X}from"./dialog-DfUuWIZS.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";/**
|
|
2
2
|
* @license lucide-react v0.555.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|