@saluzi/saluzi-edu 0.4.7 → 0.4.9
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 +59 -68
- package/dist/guide/guide-data.json +1 -1
- package/dist/rcs-web/assets/{AdminPanel-CpzAO2vZ.js → AdminPanel-CAK-wqCu.js} +1 -1
- package/dist/rcs-web/assets/{ArtifactView-CEyKbOJh.js → ArtifactView-DJxpXvlH.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/ArtifactsGallery-B_JcCYh1.js → dist/rcs-web/assets/ArtifactsGallery-CykyoUxk.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/Claim-CGxjGaui.js → dist/rcs-web/assets/Claim-DZQ8sfWt.js} +1 -1
- package/dist/rcs-web/assets/{Dashboard-DCq-h_y9.js → Dashboard-Cm9ZAh-6.js} +1 -1
- package/dist/rcs-web/assets/{Join-BM43XjA0.js → Join-D1X0Ji0b.js} +1 -1
- package/dist/rcs-web/assets/{Login-CPx4Dc28.js → Login-lDaHrIa-.js} +1 -1
- package/dist/rcs-web/assets/{Register-BV3xfUvd.js → Register-12ki3lPq.js} +1 -1
- package/dist/rcs-web/assets/{SessionDetail-DgMDo7Ge.js → SessionDetail-BZjIjZKu.js} +23 -23
- package/dist/rcs-web/assets/{SessionVisibilityBadge-CvqFRTea.js → SessionVisibilityBadge-BkZImPBJ.js} +1 -1
- package/dist/rcs-web/assets/{Setup-GfWdRpvh.js → Setup-Cpyfr8Pi.js} +1 -1
- package/dist/rcs-web/assets/{ShareLanding-BuEXTqqz.js → ShareLanding-Dh3_QdhD.js} +1 -1
- package/dist/rcs-web/assets/{TeamCreate-DalKoyLy.js → TeamCreate-CZC2EjYw.js} +1 -1
- package/dist/rcs-web/assets/{TeamDetail-DevkNiHQ.js → TeamDetail-umrDhcwG.js} +1 -1
- package/dist/rcs-web/assets/{TeamList-B1pHxRaK.js → TeamList-CI_ppYJz.js} +1 -1
- package/dist/rcs-web/assets/{TeamSettings-DWnEJMTx.js → TeamSettings-D_y3NFLr.js} +1 -1
- package/dist/rcs-web/assets/{UserSearchInput-DgktGnh2.js → UserSearchInput-BJTMnFdQ.js} +1 -1
- package/dist/rcs-web/assets/{UserSettings-DPhvsn9k.js → UserSettings-m2SsR0jt.js} +1 -1
- package/dist/rcs-web/assets/{arc-C7foUDWz.js → arc-B-w-om5W.js} +1 -1
- package/dist/rcs-web/assets/{architectureDiagram-3BPJPVTR-BzsYecpv.js → architectureDiagram-3BPJPVTR-A0JqD49y.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/blockDiagram-GPEHLZMM-D4BSEcZT.js → dist/rcs-web/assets/blockDiagram-GPEHLZMM-CRmWH6Kh.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-CIap7aYJ.js → dist/rcs-web/assets/c4Diagram-AAUBKEIU-Dil5npJC.js} +1 -1
- package/dist/rcs-web/assets/channel-BAxtMvz9.js +1 -0
- package/dist/rcs-web/assets/{chunk-2J33WTMH-s9V4oCUf.js → chunk-2J33WTMH-B0U3olYO.js} +1 -1
- package/dist/rcs-web/assets/{chunk-4BX2VUAB-CJrYwRaR.js → chunk-4BX2VUAB-D8eZOxCq.js} +1 -1
- package/dist/rcs-web/assets/{chunk-55IACEB6-D8swZDnP.js → chunk-55IACEB6-BCg1yqKV.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/chunk-727SXJPM-vJ6LjIbB.js → dist/rcs-web/assets/chunk-727SXJPM-C9GSmRyu.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/chunk-AQP2D5EJ-COrMlHZr.js → dist/rcs-web/assets/chunk-AQP2D5EJ-CDNB1DxJ.js} +1 -1
- package/dist/rcs-web/assets/{chunk-FMBD7UC4-0lUT-961.js → chunk-FMBD7UC4-CUyVgVhv.js} +1 -1
- package/dist/rcs-web/assets/{chunk-ND2GUHAM-BWqVDbg4.js → chunk-ND2GUHAM-DWUadZ9h.js} +1 -1
- package/dist/rcs-web/assets/{chunk-QZHKN3VN-CfeMmsaw.js → chunk-QZHKN3VN-De-swXbY.js} +1 -1
- package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-DAE_PUq2.js +1 -0
- package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-DAE_PUq2.js +1 -0
- package/dist/rcs-web/assets/{code-block-IT6T5CEO-FipRU7Gt.js → code-block-IT6T5CEO-DHPrRtQH.js} +1 -1
- package/dist/rcs-web/assets/{copy-RtDWH7m7.js → copy-CFPy3H8V.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/cose-bilkent-S5V4N54A-wlwIwiSf.js → dist/rcs-web/assets/cose-bilkent-S5V4N54A-CZjBoqHS.js} +1 -1
- package/dist/rcs-web/assets/{dagre-BM42HDAG-FlvB-WBQ.js → dagre-BM42HDAG-Cf5v7qFZ.js} +1 -1
- package/dist/rcs-web/assets/{diagram-2AECGRRQ-Dd5G25-Q.js → diagram-2AECGRRQ-C7UJVkwm.js} +1 -1
- package/dist/rcs-web/assets/{diagram-5GNKFQAL-CnS79Wiq.js → diagram-5GNKFQAL-DyOsGtm_.js} +1 -1
- package/dist/rcs-web/assets/{diagram-KO2AKTUF-oeffrVzV.js → diagram-KO2AKTUF-rj-dLm4C.js} +1 -1
- package/dist/rcs-web/assets/{diagram-LMA3HP47-Dc4rRllI.js → diagram-LMA3HP47-5IBISrVO.js} +1 -1
- package/dist/rcs-web/assets/{diagram-OG6HWLK6-QYKwztsm.js → diagram-OG6HWLK6-CvKsIOGI.js} +1 -1
- package/dist/rcs-web/assets/{dialog-C6bSop75.js → dialog-D3djNDCB.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/erDiagram-TEJ5UH35-CFoDAbeH.js → dist/rcs-web/assets/erDiagram-TEJ5UH35-DN3O1WDD.js} +1 -1
- package/dist/rcs-web/assets/{flowDiagram-I6XJVG4X-zOHsjkHO.js → flowDiagram-I6XJVG4X-CXmRfzEy.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/ganttDiagram-6RSMTGT7-DmdYR8vQ.js → dist/rcs-web/assets/ganttDiagram-6RSMTGT7-6uA2-PAt.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/gitGraphDiagram-PVQCEYII-ChNq0nxK.js → dist/rcs-web/assets/gitGraphDiagram-PVQCEYII-DWYRvHtj.js} +1 -1
- package/dist/rcs-web/assets/{infoDiagram-5YYISTIA-CTOfXwsH.js → infoDiagram-5YYISTIA-CJt4bepj.js} +1 -1
- package/dist/rcs-web/assets/{ishikawaDiagram-YF4QCWOH-AbFaqfWq.js → ishikawaDiagram-YF4QCWOH-DYHvIeSs.js} +1 -1
- package/dist/rcs-web/assets/{journeyDiagram-JHISSGLW-BZ5YDbY5.js → journeyDiagram-JHISSGLW-DWQeWDV-.js} +1 -1
- package/dist/rcs-web/assets/{kanban-definition-UN3LZRKU-2ujiDLTJ.js → kanban-definition-UN3LZRKU-D1vYCpGq.js} +1 -1
- package/dist/rcs-web/assets/{linear-hvc2NcTZ.js → linear-DEn8Cs7O.js} +1 -1
- package/dist/rcs-web/assets/{main-2KqxLOVo.js → main-COET8kmB.js} +3 -3
- package/{packages/remote-control-server/web/dist/assets/mermaid-VLURNSYL-CjE066pc.js → dist/rcs-web/assets/mermaid-VLURNSYL-DJIytlGH.js} +4 -4
- package/dist/rcs-web/assets/{mermaid.core-D0z5iBed.js → mermaid.core-DVQA7rXK.js} +5 -5
- package/{packages/remote-control-server/web/dist/assets/mindmap-definition-RKZ34NQL-DN_a_x4Q.js → dist/rcs-web/assets/mindmap-definition-RKZ34NQL-Dhv_wo7x.js} +1 -1
- package/dist/rcs-web/assets/{pieDiagram-4H26LBE5-EaZYytph.js → pieDiagram-4H26LBE5-C86veflr.js} +1 -1
- package/dist/rcs-web/assets/{quadrantDiagram-W4KKPZXB-BbYaZQ_j.js → quadrantDiagram-W4KKPZXB-DJmcygzl.js} +1 -1
- package/dist/rcs-web/assets/{refresh-cw-2QNtciSF.js → refresh-cw-BRNwaL3w.js} +1 -1
- package/dist/rcs-web/assets/{requirementDiagram-4Y6WPE33-sQpG_uMR.js → requirementDiagram-4Y6WPE33-PDkq_ITC.js} +1 -1
- package/dist/rcs-web/assets/{sankeyDiagram-5OEKKPKP-Dk-ywMbO.js → sankeyDiagram-5OEKKPKP-DvCuhECf.js} +1 -1
- package/dist/rcs-web/assets/{sequenceDiagram-3UESZ5HK-B8kXKWV0.js → sequenceDiagram-3UESZ5HK-Co2LWujo.js} +1 -1
- package/dist/rcs-web/assets/{stateDiagram-AJRCARHV-BIjc-tAY.js → stateDiagram-AJRCARHV-CDTXzmhr.js} +1 -1
- package/dist/rcs-web/assets/{stateDiagram-v2-BHNVJYJU-BjJyk52d.js → stateDiagram-v2-BHNVJYJU-Sdqiqtes.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-9Myr5rlZ.js → dist/rcs-web/assets/timeline-definition-PNZ67QCA-Cudtpim6.js} +1 -1
- package/dist/rcs-web/assets/{vennDiagram-CIIHVFJN-B_0p3XFw.js → vennDiagram-CIIHVFJN-B_84pCPM.js} +1 -1
- package/dist/rcs-web/assets/{wardleyDiagram-YWT4CUSO-JKVEgrM5.js → wardleyDiagram-YWT4CUSO-B_tneRWc.js} +1 -1
- package/dist/rcs-web/assets/{xychartDiagram-2RQKCTM6-DUPPleBK.js → xychartDiagram-2RQKCTM6-CNdStpy2.js} +1 -1
- package/dist/rcs-web/index.html +1 -1
- package/dist/vendor/archify/LICENSE +22 -0
- package/dist/vendor/archify/SKILL.md +137 -0
- package/dist/vendor/archify/THIRD_PARTY_NOTICES.md +69 -0
- package/dist/vendor/archify/assets/JetBrainsMono-OFL.txt +93 -0
- package/dist/vendor/archify/assets/template.html +14934 -0
- package/dist/vendor/archify/bin/archify.mjs +2687 -0
- package/dist/vendor/archify/bin/open-artifact.mjs +95 -0
- package/dist/vendor/archify/bin/preview.mjs +764 -0
- package/dist/vendor/archify/bin/visual-check.mjs +1012 -0
- package/dist/vendor/archify/brand-marks/README.md +31 -0
- package/dist/vendor/archify/brand-marks/catalog.json +131 -0
- package/dist/vendor/archify/delta/architecture-delta.mjs +1221 -0
- package/dist/vendor/archify/examples/agent-run.lifecycle.json +60 -0
- package/dist/vendor/archify/examples/agent-tool-call.workflow.json +94 -0
- package/dist/vendor/archify/examples/async-job-roundtrip.sequence.json +61 -0
- package/dist/vendor/archify/examples/brand-aware-delivery.architecture.json +47 -0
- package/dist/vendor/archify/examples/cache-miss-request.sequence.json +82 -0
- package/dist/vendor/archify/examples/checkout-platform.base.architecture.json +31 -0
- package/dist/vendor/archify/examples/checkout-platform.head.architecture.json +31 -0
- package/dist/vendor/archify/examples/dataflow-product-analytics.html +15045 -0
- package/dist/vendor/archify/examples/deployment-release.lifecycle.json +49 -0
- package/dist/vendor/archify/examples/event-stream.dataflow.json +57 -0
- package/dist/vendor/archify/examples/incident-response.workflow.json +64 -0
- package/dist/vendor/archify/examples/lifecycle-agent-run.html +14980 -0
- package/dist/vendor/archify/examples/product-analytics.dataflow.json +76 -0
- package/dist/vendor/archify/examples/production-deployment.architecture.json +71 -0
- package/dist/vendor/archify/examples/release-delivery.workflow.json +62 -0
- package/dist/vendor/archify/examples/sequence-cache-miss-request.html +15060 -0
- package/dist/vendor/archify/examples/web-app-rendered.html +15009 -0
- package/dist/vendor/archify/examples/web-app.architecture.json +46 -0
- package/dist/vendor/archify/examples/workflow-agent-tool-call-rendered.html +15051 -0
- package/dist/vendor/archify/migrations/workflow-v2.mjs +279 -0
- package/dist/vendor/archify/package.json +17 -0
- package/dist/vendor/archify/recipes/scenarios.mjs +391 -0
- package/dist/vendor/archify/references/authoring-contract.md +243 -0
- package/dist/vendor/archify/references/brand-marks.md +65 -0
- package/dist/vendor/archify/references/delivery-contract.md +120 -0
- package/dist/vendor/archify/references/viewer-runtime.md +45 -0
- package/dist/vendor/archify/renderers/architecture/grid.mjs +62 -0
- package/dist/vendor/archify/renderers/architecture/render-architecture.mjs +1078 -0
- package/dist/vendor/archify/renderers/dataflow/README.md +104 -0
- package/dist/vendor/archify/renderers/dataflow/render-dataflow.mjs +483 -0
- package/dist/vendor/archify/renderers/lifecycle/README.md +115 -0
- package/dist/vendor/archify/renderers/lifecycle/render-lifecycle.mjs +561 -0
- package/dist/vendor/archify/renderers/sequence/README.md +114 -0
- package/dist/vendor/archify/renderers/sequence/render-sequence.mjs +464 -0
- package/dist/vendor/archify/renderers/shared/brand-marks.mjs +563 -0
- package/dist/vendor/archify/renderers/shared/cli.mjs +218 -0
- package/dist/vendor/archify/renderers/shared/desktop-readability.mjs +26 -0
- package/dist/vendor/archify/renderers/shared/diagnostics.mjs +127 -0
- package/dist/vendor/archify/renderers/shared/engineering-profiles.mjs +157 -0
- package/dist/vendor/archify/renderers/shared/generated-brand-marks.mjs +2003 -0
- package/dist/vendor/archify/renderers/shared/generated-validators.mjs +13 -0
- package/dist/vendor/archify/renderers/shared/geometry.mjs +1423 -0
- package/dist/vendor/archify/renderers/shared/i18n.mjs +595 -0
- package/dist/vendor/archify/renderers/shared/layout-report.mjs +40 -0
- package/dist/vendor/archify/renderers/shared/legend.mjs +217 -0
- package/dist/vendor/archify/renderers/shared/output-path.mjs +340 -0
- package/dist/vendor/archify/renderers/shared/repository-evidence.mjs +238 -0
- package/dist/vendor/archify/renderers/shared/repository-location.mjs +58 -0
- package/dist/vendor/archify/renderers/shared/text-fit.mjs +49 -0
- package/dist/vendor/archify/renderers/shared/utils.mjs +232 -0
- package/dist/vendor/archify/renderers/shared/validator.mjs +86 -0
- package/dist/vendor/archify/renderers/workflow/README.md +223 -0
- package/dist/vendor/archify/renderers/workflow/render-workflow.mjs +35 -0
- package/dist/vendor/archify/renderers/workflow/workflow-compiler.mjs +4400 -0
- package/dist/vendor/archify/renderers/workflow/workflow-migration-geometry.mjs +144 -0
- package/dist/vendor/archify/schemas/README.md +211 -0
- package/dist/vendor/archify/schemas/architecture.schema.json +178 -0
- package/dist/vendor/archify/schemas/common.schema.json +115 -0
- package/dist/vendor/archify/schemas/dataflow.schema.json +243 -0
- package/dist/vendor/archify/schemas/lifecycle.schema.json +266 -0
- package/dist/vendor/archify/schemas/sequence.schema.json +223 -0
- package/dist/vendor/archify/schemas/workflow.schema.json +428 -0
- package/dist/vendor/archify/scripts/check-render-output.mjs +836 -0
- package/dist/vendor/archify/scripts/check-update.mjs +1667 -0
- package/dist/vendor/archify/scripts/render-examples.mjs +26 -0
- package/dist/vendor/archify/scripts/update-contract.mjs +182 -0
- package/dist/vendor/archify/skill-release.json +10 -0
- package/package.json +1 -1
- package/packages/remote-control-server/src/__tests__/stuck-turn-watchdog.test.ts +43 -0
- package/packages/remote-control-server/src/__tests__/ws-handler.test.ts +169 -0
- package/packages/remote-control-server/src/services/transport.ts +5 -1
- package/packages/remote-control-server/src/transport/ws-handler.ts +38 -3
- package/packages/remote-control-server/web/dist/assets/{AdminPanel-CpzAO2vZ.js → AdminPanel-CAK-wqCu.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{ArtifactView-CEyKbOJh.js → ArtifactView-DJxpXvlH.js} +1 -1
- package/{dist/rcs-web/assets/ArtifactsGallery-B_JcCYh1.js → packages/remote-control-server/web/dist/assets/ArtifactsGallery-CykyoUxk.js} +1 -1
- package/{dist/rcs-web/assets/Claim-CGxjGaui.js → packages/remote-control-server/web/dist/assets/Claim-DZQ8sfWt.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Dashboard-DCq-h_y9.js → Dashboard-Cm9ZAh-6.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Join-BM43XjA0.js → Join-D1X0Ji0b.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Login-CPx4Dc28.js → Login-lDaHrIa-.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Register-BV3xfUvd.js → Register-12ki3lPq.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{SessionDetail-DgMDo7Ge.js → SessionDetail-BZjIjZKu.js} +23 -23
- package/packages/remote-control-server/web/dist/assets/{SessionVisibilityBadge-CvqFRTea.js → SessionVisibilityBadge-BkZImPBJ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Setup-GfWdRpvh.js → Setup-Cpyfr8Pi.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{ShareLanding-BuEXTqqz.js → ShareLanding-Dh3_QdhD.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamCreate-DalKoyLy.js → TeamCreate-CZC2EjYw.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamDetail-DevkNiHQ.js → TeamDetail-umrDhcwG.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamList-B1pHxRaK.js → TeamList-CI_ppYJz.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamSettings-DWnEJMTx.js → TeamSettings-D_y3NFLr.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{UserSearchInput-DgktGnh2.js → UserSearchInput-BJTMnFdQ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{UserSettings-DPhvsn9k.js → UserSettings-m2SsR0jt.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{arc-C7foUDWz.js → arc-B-w-om5W.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{architectureDiagram-3BPJPVTR-BzsYecpv.js → architectureDiagram-3BPJPVTR-A0JqD49y.js} +1 -1
- package/{dist/rcs-web/assets/blockDiagram-GPEHLZMM-D4BSEcZT.js → packages/remote-control-server/web/dist/assets/blockDiagram-GPEHLZMM-CRmWH6Kh.js} +1 -1
- package/{dist/rcs-web/assets/c4Diagram-AAUBKEIU-CIap7aYJ.js → packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-Dil5npJC.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/channel-BAxtMvz9.js +1 -0
- package/packages/remote-control-server/web/dist/assets/{chunk-2J33WTMH-s9V4oCUf.js → chunk-2J33WTMH-B0U3olYO.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-4BX2VUAB-CJrYwRaR.js → chunk-4BX2VUAB-D8eZOxCq.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-55IACEB6-D8swZDnP.js → chunk-55IACEB6-BCg1yqKV.js} +1 -1
- package/{dist/rcs-web/assets/chunk-727SXJPM-vJ6LjIbB.js → packages/remote-control-server/web/dist/assets/chunk-727SXJPM-C9GSmRyu.js} +1 -1
- package/{dist/rcs-web/assets/chunk-AQP2D5EJ-COrMlHZr.js → packages/remote-control-server/web/dist/assets/chunk-AQP2D5EJ-CDNB1DxJ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-FMBD7UC4-0lUT-961.js → chunk-FMBD7UC4-CUyVgVhv.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-ND2GUHAM-BWqVDbg4.js → chunk-ND2GUHAM-DWUadZ9h.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-QZHKN3VN-CfeMmsaw.js → chunk-QZHKN3VN-De-swXbY.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-DAE_PUq2.js +1 -0
- package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-DAE_PUq2.js +1 -0
- package/packages/remote-control-server/web/dist/assets/{code-block-IT6T5CEO-FipRU7Gt.js → code-block-IT6T5CEO-DHPrRtQH.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{copy-RtDWH7m7.js → copy-CFPy3H8V.js} +1 -1
- package/{dist/rcs-web/assets/cose-bilkent-S5V4N54A-wlwIwiSf.js → packages/remote-control-server/web/dist/assets/cose-bilkent-S5V4N54A-CZjBoqHS.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{dagre-BM42HDAG-FlvB-WBQ.js → dagre-BM42HDAG-Cf5v7qFZ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-2AECGRRQ-Dd5G25-Q.js → diagram-2AECGRRQ-C7UJVkwm.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-5GNKFQAL-CnS79Wiq.js → diagram-5GNKFQAL-DyOsGtm_.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-KO2AKTUF-oeffrVzV.js → diagram-KO2AKTUF-rj-dLm4C.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-LMA3HP47-Dc4rRllI.js → diagram-LMA3HP47-5IBISrVO.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-OG6HWLK6-QYKwztsm.js → diagram-OG6HWLK6-CvKsIOGI.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{dialog-C6bSop75.js → dialog-D3djNDCB.js} +1 -1
- package/{dist/rcs-web/assets/erDiagram-TEJ5UH35-CFoDAbeH.js → packages/remote-control-server/web/dist/assets/erDiagram-TEJ5UH35-DN3O1WDD.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{flowDiagram-I6XJVG4X-zOHsjkHO.js → flowDiagram-I6XJVG4X-CXmRfzEy.js} +1 -1
- package/{dist/rcs-web/assets/ganttDiagram-6RSMTGT7-DmdYR8vQ.js → packages/remote-control-server/web/dist/assets/ganttDiagram-6RSMTGT7-6uA2-PAt.js} +1 -1
- package/{dist/rcs-web/assets/gitGraphDiagram-PVQCEYII-ChNq0nxK.js → packages/remote-control-server/web/dist/assets/gitGraphDiagram-PVQCEYII-DWYRvHtj.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{infoDiagram-5YYISTIA-CTOfXwsH.js → infoDiagram-5YYISTIA-CJt4bepj.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{ishikawaDiagram-YF4QCWOH-AbFaqfWq.js → ishikawaDiagram-YF4QCWOH-DYHvIeSs.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{journeyDiagram-JHISSGLW-BZ5YDbY5.js → journeyDiagram-JHISSGLW-DWQeWDV-.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{kanban-definition-UN3LZRKU-2ujiDLTJ.js → kanban-definition-UN3LZRKU-D1vYCpGq.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{linear-hvc2NcTZ.js → linear-DEn8Cs7O.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{main-2KqxLOVo.js → main-COET8kmB.js} +3 -3
- package/{dist/rcs-web/assets/mermaid-VLURNSYL-CjE066pc.js → packages/remote-control-server/web/dist/assets/mermaid-VLURNSYL-DJIytlGH.js} +4 -4
- package/packages/remote-control-server/web/dist/assets/{mermaid.core-D0z5iBed.js → mermaid.core-DVQA7rXK.js} +5 -5
- package/{dist/rcs-web/assets/mindmap-definition-RKZ34NQL-DN_a_x4Q.js → packages/remote-control-server/web/dist/assets/mindmap-definition-RKZ34NQL-Dhv_wo7x.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{pieDiagram-4H26LBE5-EaZYytph.js → pieDiagram-4H26LBE5-C86veflr.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{quadrantDiagram-W4KKPZXB-BbYaZQ_j.js → quadrantDiagram-W4KKPZXB-DJmcygzl.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{refresh-cw-2QNtciSF.js → refresh-cw-BRNwaL3w.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{requirementDiagram-4Y6WPE33-sQpG_uMR.js → requirementDiagram-4Y6WPE33-PDkq_ITC.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{sankeyDiagram-5OEKKPKP-Dk-ywMbO.js → sankeyDiagram-5OEKKPKP-DvCuhECf.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{sequenceDiagram-3UESZ5HK-B8kXKWV0.js → sequenceDiagram-3UESZ5HK-Co2LWujo.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{stateDiagram-AJRCARHV-BIjc-tAY.js → stateDiagram-AJRCARHV-CDTXzmhr.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{stateDiagram-v2-BHNVJYJU-BjJyk52d.js → stateDiagram-v2-BHNVJYJU-Sdqiqtes.js} +1 -1
- package/{dist/rcs-web/assets/timeline-definition-PNZ67QCA-9Myr5rlZ.js → packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-Cudtpim6.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{vennDiagram-CIIHVFJN-B_0p3XFw.js → vennDiagram-CIIHVFJN-B_84pCPM.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{wardleyDiagram-YWT4CUSO-JKVEgrM5.js → wardleyDiagram-YWT4CUSO-B_tneRWc.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{xychartDiagram-2RQKCTM6-DUPPleBK.js → xychartDiagram-2RQKCTM6-CNdStpy2.js} +1 -1
- package/packages/remote-control-server/web/dist/index.html +1 -1
- package/dist/rcs-web/assets/channel-69qfoCOr.js +0 -1
- package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-DihFTUAb.js +0 -1
- package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-DihFTUAb.js +0 -1
- package/packages/remote-control-server/web/dist/assets/channel-69qfoCOr.js +0 -1
- package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-DihFTUAb.js +0 -1
- package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-DihFTUAb.js +0 -1
|
@@ -7187,7 +7187,7 @@
|
|
|
7187
7187
|
"交互页面"
|
|
7188
7188
|
]
|
|
7189
7189
|
},
|
|
7190
|
-
"content": "\n## Artifacts 是什么\n\nArtifacts 是 agent 替你发布的**可分享 HTML 页面**:你在对话里让 agent 产出报告、看板或交互界面,它写好文件后用 `artifact` 工具上传,立刻得到一个稳定 URL,发给谁都能在浏览器打开。\n\n典型用途:\n\n- **团队交互界面** — PR 审查板、事故时间线、数据看板、发布清单(HTML 原样托管,`<script>` 可运行)\n- **进度与交付物** — 任务进度面板、调研报告、设计文档、数据可视化\n- **团队共享** — 接入 RCS 后,上传的页面自动出现在团队 Web 画廊,全员可见\n\n## 30 秒上手\n\n最短路径 — 直接在对话里说:\n\n```text\n把刚才的分析整理成一个 HTML 报告页,发布成 artifact 给我链接\n```\n\nagent 会自动完成:写文件 → 调用 `artifact` 工具上传 → 返回 `{ id, url, expiresAt }`。打开 `url` 即可查看。\n\n想更系统化地使用(复杂任务全程用一个「活文档」跟踪进度),让 agent 加载内置技能:\n\n```text\n/use-artifacts\n```\n\n它会教会 agent 何时该建 artifact、何时该更新、Markdown 与 HTML 怎么选。\n\n## 三种内容形态\n\n| 形态 | 适合场景 | 说明 |\n|------|---------|------|\n| **Markdown**(`.md`) | 文字为主的报告、设计文档、调研笔记 | 上传前自动转为带样式的 HTML(标题、GFM 表格、代码块高亮、引用、mermaid 图)。你只管写内容,排版交给工具 |\n| **HTML**(`.html`) | 定制布局、内嵌 SVG 图表、交互脚本 | 原样托管(包括 `<script>`),适合 PR 审查板、看板等可交互页面 |\n| **Archify 图表**(`.html`) | 架构图、流程图、时序图、数据流、状态机 | 内置 archify 渲染器把一份类型化 JSON 编译成**经过校验的**自包含交互页(明暗主题、缩放、路径探查),比手写 SVG 更专业可靠 |\n\n## 图表:/archify 模板\n\n需要画架构图 / CI-CD 流程 / API 时序 / 数据管道 / 状态机时,让 agent 运行:\n\n```text\n/archify 给这个仓库的请求路径画一张架构图,发布成 artifact\n```\n\nagent 的流水线:选定图类型 → 按内置 schema 编写 JSON 源(≤12 个主节点)→ 本地校验(不通过会按机器可读诊断自动修复)→ 编译出自包含 HTML → 用 `artifact` 工具上传进画廊。\n\n之后要改图(比如「加个 Redis 缓存层,链接别变」),agent 会改同一份 JSON 源、重新校验编译、再以原 `hash` 覆盖上传——**链接不变,图已更新**。产物还支持深链分享,如 `#route=网关~数据库` 可直接打开到某条调用路径。\n\n运行时查找顺序:`SALUZI_ARCHIFY_ROOT` 环境变量 →
|
|
7190
|
+
"content": "\n## Artifacts 是什么\n\nArtifacts 是 agent 替你发布的**可分享 HTML 页面**:你在对话里让 agent 产出报告、看板或交互界面,它写好文件后用 `artifact` 工具上传,立刻得到一个稳定 URL,发给谁都能在浏览器打开。\n\n典型用途:\n\n- **团队交互界面** — PR 审查板、事故时间线、数据看板、发布清单(HTML 原样托管,`<script>` 可运行)\n- **进度与交付物** — 任务进度面板、调研报告、设计文档、数据可视化\n- **团队共享** — 接入 RCS 后,上传的页面自动出现在团队 Web 画廊,全员可见\n\n## 30 秒上手\n\n最短路径 — 直接在对话里说:\n\n```text\n把刚才的分析整理成一个 HTML 报告页,发布成 artifact 给我链接\n```\n\nagent 会自动完成:写文件 → 调用 `artifact` 工具上传 → 返回 `{ id, url, expiresAt }`。打开 `url` 即可查看。\n\n想更系统化地使用(复杂任务全程用一个「活文档」跟踪进度),让 agent 加载内置技能:\n\n```text\n/use-artifacts\n```\n\n它会教会 agent 何时该建 artifact、何时该更新、Markdown 与 HTML 怎么选。\n\n## 三种内容形态\n\n| 形态 | 适合场景 | 说明 |\n|------|---------|------|\n| **Markdown**(`.md`) | 文字为主的报告、设计文档、调研笔记 | 上传前自动转为带样式的 HTML(标题、GFM 表格、代码块高亮、引用、mermaid 图)。你只管写内容,排版交给工具 |\n| **HTML**(`.html`) | 定制布局、内嵌 SVG 图表、交互脚本 | 原样托管(包括 `<script>`),适合 PR 审查板、看板等可交互页面 |\n| **Archify 图表**(`.html`) | 架构图、流程图、时序图、数据流、状态机 | 内置 archify 渲染器把一份类型化 JSON 编译成**经过校验的**自包含交互页(明暗主题、缩放、路径探查),比手写 SVG 更专业可靠 |\n\n## 图表:/archify 模板\n\n需要画架构图 / CI-CD 流程 / API 时序 / 数据管道 / 状态机时,让 agent 运行:\n\n```text\n/archify 给这个仓库的请求路径画一张架构图,发布成 artifact\n```\n\nagent 的流水线:选定图类型 → 按内置 schema 编写 JSON 源(≤12 个主节点)→ 本地校验(不通过会按机器可读诊断自动修复)→ 编译出自包含 HTML → 用 `artifact` 工具上传进画廊。\n\n之后要改图(比如「加个 Redis 缓存层,链接别变」),agent 会改同一份 JSON 源、重新校验编译、再以原 `hash` 覆盖上传——**链接不变,图已更新**。产物还支持深链分享,如 `#route=网关~数据库` 可直接打开到某条调用路径。\n\n运行时查找顺序:`SALUZI_ARCHIFY_ROOT` 环境变量 → 项目级(`<项目>/.claude/skills/archify`)/ 用户级已安装的 archify 技能(Saluzi 的技能目录 `~/.saluzi-edu/skills/archify`,可用 `SALUZI_CONFIG_DIR` 改变;也兼容 Claude Code / Codex / opencode 的用户技能目录)→ CLI 内置副本(离线可用,无需安装任何东西)。如需手动安装上游技能,把 [archify.zip](https://github.com/tt-a1i/archify/raw/main/archify.zip) 解压到 `~/.saluzi-edu/skills/` 即可;不建议用 `npx skills add`——它会把技能播种到本机所有被检测到的 agent 目录里。\n\n两者都要求**绝对路径**,单文件不超过 **10MB**。\n\n## 更新而不换链接:hash 覆盖\n\n每次上传默认生成新 id(也就是新 URL)。要迭代同一个页面时,让 agent 把第一次返回的 `id` 作为 `hash` 传回:\n\n- URL **保持不变**,内容更新,版本号 +1,TTL 重新计时\n- 你可以把链接发出去后就不管了,agent 每完成一个阶段就原地更新\n\n这是「任务全程活文档」工作流的基础:任务开始先发布骨架,之后里程碑时用 `hash` 刷新,结束时就是最终交付物。\n\n## 会话内管理:/artifacts\n\n```text\n/artifacts\n```\n\n列出当前会话上传过的所有 artifact(最新的在最上面),含文件名、id、URL 和过期时间。键位:\n\n| 按键 | 作用 |\n|------|------|\n| `↑` / `↓` | 选择条目 |\n| `Enter` | 在浏览器打开选中项的 URL |\n| `c` | 复制 URL 到剪贴板 |\n| `Esc` / `q` | 退出 |\n\n## 团队画廊:RCS Web UI\n\n接入 RCS(见「Remote Control 与 ACP」章节)后,artifact 会上传到自托管服务器并归属当前会话,自动进入团队画廊:\n\n- **画廊页** `http://<rcs-host>:3000/code/artifacts` — 浏览所有你有权限查看的 artifact,展示大小、过期倒计时、所属会话\n- **从模板新建** — 画廊内可基于 5 个内置模板直接创建:空白页、PR 审查板、事故时间线、数据看板、发布清单(纯前端运行,无需构建)\n- **AI 生成 / AI 更新** — 新建与编辑对话框都可把需求派发给一个会话,由 agent 生成或迭代页面;已有 artifact 的「AI 更新」入口(卡片悬停操作行与详情页 ✨ 按钮)默认派发到归属会话(可改选),agent 以 `hash` 原位覆盖:链接不变、版本自增\n- **详情页实时刷新** — artifact 详情页订阅归属会话的 SSE 事件流,agent 上传新版本(或 CLI 覆盖)后 iframe 原位热更新,版本徽标闪烁提示\n- **会话详情页内嵌画廊** — 只显示该会话上传的 artifact,方便按会话回溯\n- **复制 / 删除** — 一键复制分享链接;创建者、会话/团队管理者或系统 admin 可删除\n- **可见性跟随会话** — 会话对谁可见,其 artifact 就对谁可见;画廊里新建的无会话 artifact 仅创建者与所属团队可见\n\n## 上传到哪:目标解析与配置\n\n`artifact` 工具按以下优先级选择上传目标(命中即停):\n\n| 优先级 | 条件 | 上传地址 |\n|-------|------|---------|\n| 1 | 设置了 `SALUZI_ARTIFACTS_URL` | `{该地址}/v1/artifacts`(设 `SALUZI_ARTIFACTS_KIND=cloud` 则为 `{该地址}/upload`) |\n| 2 | 自托管 RCS bridge(`SALUZI_BRIDGE_BASE_URL` 默认 `http://localhost:3000`,同机 RCS 零配置命中) | `{SALUZI_BRIDGE_BASE_URL}/v1/artifacts`,归属当前会话,进入团队画廊 |\n| 3 | 都没有 | 默认云端 artifacts 服务(无需任何配置即可用,但不进 RCS 画廊) |\n\n相关环境变量:\n\n| 环境变量 | 说明 |\n|---------|------|\n| `SALUZI_ARTIFACTS_URL` | 指定自托管上传地址(RCS 或云端兼容服务) |\n| `SALUZI_ARTIFACTS_TOKEN` | 上传认证 token(默认复用 bridge token) |\n| `SALUZI_ARTIFACTS_KIND` | 设为 `cloud` 表示目标是云端兼容服务(`/upload` 路径) |\n\nRCS 服务端还有一个开关:`RCS_ARTIFACTS_PUBLIC_ACCESS=false` 可把内容读取从「URL 即密钥」改为需要登录凭证(默认关闭公开访问开关,即默认任何人持链接可读)。\n\n## 限制与生命周期\n\n| 项目 | 值 |\n|------|-----|\n| 单文件上限 | 10MB |\n| 支持扩展名 | `.html` / `.htm` / `.md` / `.markdown` |\n| 保存时长(TTL) | 7 天(默认)或 30 天,上传时二选一 |\n| 过期行为 | 到期即删,链接失效(`hash` 重新上传可复活同一 id) |\n| 覆盖规则 | `hash` 仅接受字母/数字/`-`/`_`,最长 128 字符 |\n\n## 安全须知\n\n- **URL 即密钥**:id 是不可猜测的随机串,拿到链接的人即可查看 — 不要在 artifact 内容里放敏感信息(密钥、内网地址等)\n- 对外分享前确认内容可以公开;内网团队内容建议部署在受保护的 RCS 上并考虑设置 `RCS_ARTIFACTS_PUBLIC_ACCESS=false`\n- HTML 页面会原样执行脚本,仅上传可信内容\n\n## 故障排查\n\n| 问题 | 排查 |\n|------|------|\n| 上传报 `unauthorized` | 检查 `SALUZI_ARTIFACTS_TOKEN`;未设置时应复用 bridge token — 确认 `SALUZI_BRIDGE_OAUTH_TOKEN` 与 RCS 的 `RCS_API_KEYS` 匹配 |\n| 上传报 `payload_too_large` | 文件超过 10MB,精简内容或拆分页面 |\n| 报不支持扩展名 | 只接受 `.html` / `.htm` / `.md` / `.markdown`;把内容另存为这两种格式之一 |\n| 链接打不开(404) | artifact 可能已过期(默认 7 天);让 agent 用原 `hash` 重新上传即可恢复同一 URL |\n| 团队画廊看不到 artifact | 确认 CLI 已连接 RCS bridge(`/rc` 状态正常)且未设置 `SALUZI_ARTIFACTS_URL` 指向别处;可见性跟随会话,确认你对会话有权限 |\n| 想让 artifact 不进云端 | 设置 `SALUZI_ARTIFACTS_URL` 指向自己的 RCS,或确保 bridge 已连接(优先级 2 自动生效) |\n"
|
|
7191
7191
|
},
|
|
7192
7192
|
"docs/guide/commit-workflow": {
|
|
7193
7193
|
"frontmatter": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as d,j as e}from"./vendor-DE_-CLIE.js";import{aC as x,aD as o,Y as m,aw as s,al as l,z as u}from"./main-
|
|
1
|
+
import{e as d,j as e}from"./vendor-DE_-CLIE.js";import{aC as x,aD as o,Y as m,aw as s,al as l,z as u}from"./main-COET8kmB.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";function j(){x();const[a,i]=d.useState([]),{myTeams:r,isLoading:c}=o(),n=d.useCallback(async()=>{try{const t=await m();i(t||[])}catch(t){console.error("Admin: failed to load sessions",t)}},[]);return d.useEffect(()=>{n()},[n]),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsxs("div",{className:"mx-auto max-w-5xl px-4 py-8",children:[e.jsx("h1",{className:"mb-6 font-display text-2xl font-semibold text-text-primary",children:s("admin.title")}),e.jsxs("section",{className:"mb-10",children:[e.jsxs("h2",{className:"mb-4 font-display text-lg font-semibold text-text-primary",children:[s("admin.teams")," (",r.length,")"]}),c?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-4 text-center text-text-muted",children:s("common.loading")}):r.length===0?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-4 text-center text-text-muted",children:s("admin.noTeams")}):e.jsx("div",{className:"space-y-2",children:r.map(t=>e.jsxs("a",{href:`/teams/${t.slug}`,className:"flex items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 no-underline transition-colors hover:border-border-light hover:bg-surface-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"font-medium text-text-primary",children:t.name}),e.jsx("span",{className:"ml-2 text-xs text-text-muted",children:t.slug})]}),e.jsx("span",{className:"text-xs text-text-muted",children:l(new Date(t.created_at).getTime()/1e3)})]},t.id))})]}),e.jsxs("section",{children:[e.jsxs("h2",{className:"mb-4 font-display text-lg font-semibold text-text-primary",children:[s("admin.sessions")," (",a.length,")"]}),a.length===0?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-4 text-center text-text-muted",children:s("admin.noSessions")}):e.jsx("div",{className:"space-y-2",children:a.map(t=>e.jsxs("a",{href:`/code/${t.id}`,className:"flex items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 no-underline transition-colors hover:border-border-light hover:bg-surface-2",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate font-medium text-text-primary",children:t.title||t.id}),e.jsx("span",{className:"rounded-full bg-surface-2 px-2 py-0.5 text-xs text-text-muted",children:t.source||"unknown"})]}),e.jsx("div",{className:"truncate text-xs text-text-muted",children:t.id})]}),e.jsxs("div",{className:"ml-4 flex items-center gap-3",children:[e.jsx(u,{status:t.status}),e.jsx("span",{className:"text-xs text-text-muted",children:l(t.updated_at||t.created_at)})]})]},t.id))})]})]})})}export{j as AdminPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as a,j as t}from"./vendor-DE_-CLIE.js";import{aC as A,Z as j,aw as r,V as q,ah as R,P as U,G as F}from"./main-
|
|
1
|
+
import{e as a,j as t}from"./vendor-DE_-CLIE.js";import{aC as A,Z as j,aw as r,V as q,ah as R,P as U,G as F}from"./main-COET8kmB.js";import{S as O,E as G,C as K}from"./ArtifactsGallery-CykyoUxk.js";import{R as P}from"./refresh-cw-BRNwaL3w.js";import{C as V}from"./copy-CFPy3H8V.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";import"./dialog-D3djNDCB.js";let m=null;function J(n,c,e=0){b();const o=`/web/sessions/${n}/events`,l=new EventSource(o,{withCredentials:!0});m=l;let u=e;l.addEventListener("message",p=>{try{const x=JSON.parse(p.data);if(x.seqNum!==void 0&&x.seqNum<=u)return;x.seqNum!==void 0&&(u=x.seqNum),c(x)}catch{}}),l.addEventListener("error",()=>{console.warn("[SSE] error, readyState:",l.readyState),l.readyState===EventSource.CLOSED&&(l.close(),b())})}function b(){m&&(m.close(),m=null)}function M(n,c){const e=a.useRef(c);e.current=c;const o=a.useCallback(l=>{e.current(l)},[]);a.useEffect(()=>{if(n)return J(n,o),()=>{b()}},[n,o])}function I({artifactId:n,onBack:c}){A();const[e,o]=a.useState(null),[l,u]=a.useState(""),[p,x]=a.useState(!1),[S,f]=a.useState(0),[w,h]=a.useState(!1),[g,C]=a.useState(null),[E,k]=a.useState("template"),[d,y]=a.useState(!1);a.useEffect(()=>{let s=!1;return j(n).then(i=>{s||o(i)}).catch(i=>{s||u(i instanceof Error?i.message:r("artifacts.viewNotFound"))}),()=>{s=!0}},[n]);const v=a.useCallback(()=>{j(n).then(s=>o(s)).catch(()=>{})},[n]),_=a.useCallback(s=>{var i;s.type==="artifact_updated"&&((i=s.payload)!=null&&i.id&&s.payload.id!==n||(v(),f(D=>D+1),y(!0)))},[n,v]);M((e==null?void 0:e.session_id)??null,_),a.useEffect(()=>{if(!d)return;const s=setTimeout(()=>y(!1),2500);return()=>clearTimeout(s)},[d]);const N=a.useCallback(s=>{e&&(C(e),k(s),h(!0))},[e]),$=a.useCallback(s=>{h(!1),o(i=>i?{...i,...s}:s),f(i=>i+1)},[]),T=a.useCallback(async()=>{if(window.confirm(r("artifacts.delete")+" — "+n.slice(0,8)+"…?"))try{await q(n),c()}catch(s){alert(s instanceof Error?s.message:r("artifacts.deleteFailed"))}},[n,c]),L=a.useCallback(async()=>{if(!e)return;await R(`${window.location.origin}${e.url}`)&&(x(!0),setTimeout(()=>x(!1),1500))},[e]);return l?t.jsx("div",{className:"flex flex-1 items-center justify-center",children:t.jsxs("div",{className:"text-center",children:[t.jsx("p",{className:"text-status-error",children:r("artifacts.viewNotFound")}),t.jsx("p",{className:"mt-1 text-xs text-text-muted",children:l}),t.jsx("button",{type:"button",onClick:c,className:"mt-4 rounded-md border border-border px-4 py-2 text-sm text-text-secondary hover:bg-surface-2",children:r("artifacts.backToGallery")})]})}):e?t.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[t.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-b border-border bg-surface-1 px-4 py-2.5",children:[t.jsx("button",{type:"button",onClick:c,className:"text-sm text-text-muted hover:text-text-primary",children:r("artifacts.backToGallery")}),t.jsx("span",{className:"text-text-muted/40",children:"/"}),t.jsx("span",{className:"truncate font-medium text-text-primary",children:e.title||e.id.slice(0,12)}),t.jsx("span",{className:`rounded-full px-2 py-0.5 text-[11px] transition-colors ${d?"bg-status-active/15 text-status-active":"bg-surface-3 text-text-muted"}`,title:d?r("artifacts.view.liveUpdated"):void 0,children:d?`↻ v${e.version}`:`v${e.version}`}),e.session_id&&t.jsxs("a",{href:`/code/${e.session_id}`,className:"truncate font-mono text-[11px] text-text-muted hover:text-accent",title:e.session_id,children:[r("artifacts.session"),": ",e.session_id.slice(0,14),"…"]}),e.expires_at&&t.jsxs("span",{className:"text-[11px] text-text-muted",title:e.expires_at,children:[r("artifacts.expires"),": ",new Date(e.expires_at).toLocaleDateString()]}),t.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[t.jsx("button",{type:"button",onClick:()=>f(s=>s+1),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:r("common.loading"),children:t.jsx(P,{className:"h-3.5 w-3.5"})}),t.jsx("button",{type:"button",onClick:()=>N("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:r("artifacts.aiUpdate"),children:t.jsx(O,{className:"h-3.5 w-3.5"})}),e.can_manage&&t.jsx("button",{type:"button",onClick:()=>N("template"),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:r("artifacts.edit"),children:t.jsx(U,{className:"h-3.5 w-3.5"})}),t.jsxs("button",{type:"button",onClick:L,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:`${r("artifacts.copyLink")} · ${r("artifacts.linkNotice")}`,children:[t.jsx(V,{className:"h-3.5 w-3.5"}),p&&t.jsx("span",{className:"text-status-active",children:r("artifacts.copied")})]}),t.jsx("a",{href:e.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:r("artifacts.openInNewTab"),children:t.jsx(G,{className:"h-3.5 w-3.5"})}),t.jsx("button",{type:"button",onClick:T,className:"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:r("artifacts.delete"),children:t.jsx(F,{className:"h-3.5 w-3.5"})})]})]}),t.jsx("iframe",{src:`${e.url}${e.url.includes("?")?"&":"?"}_=${Date.now()}`,title:e.title||e.id,className:"min-h-0 w-full flex-1 border-0 bg-white",sandbox:"allow-scripts allow-popups allow-forms"},S),t.jsx(K,{open:w,onClose:()=>h(!1),onCreated:$,editArtifact:g,initialMode:E})]}):t.jsx("div",{className:"flex flex-1 items-center justify-center text-text-muted",children:r("common.loading")})}export{I as ArtifactView};
|
|
@@ -1,4 +1,4 @@
|
|
|
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{ai as Re,am as ft,aC as Ve,aD as mt,_ as xt,aw as f,V as gt,ah as bt,F as kt,g as yt,P as wt,G as vt,q as He,Z as St,a3 as Rt,ar as Tt,a2 as $t,ab as jt,ac as Et,K as Nt,b as Ct}from"./main-
|
|
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{ai as Re,am as ft,aC as Ve,aD as mt,_ as xt,aw as f,V as gt,ah as bt,F as kt,g as yt,P as wt,G as vt,q as He,Z as St,a3 as Rt,ar as Tt,a2 as $t,ab as jt,ac as Et,K as Nt,b as Ct}from"./main-COET8kmB.js";import{D as It,a as At,c as Lt,d as zt,b as _t}from"./dialog-D3djNDCB.js";import{C as Dt}from"./copy-CFPy3H8V.js";/**
|
|
2
2
|
* @license lucide-react v0.555.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{I as u,Y as f}from"./main-
|
|
1
|
+
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{I as u,Y as f}from"./main-COET8kmB.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 n}from"./vendor-DE_-CLIE.js";import{ai as O,ag as S,aD as T,aB as L,z as F,aC as M,aw as a,al as R,r as $,t as A,e as W,s as q,d as I,ao as H,N as Q,aa as V,Y as z,$ as U,W as Y}from"./main-
|
|
1
|
+
import{j as e,e as n}from"./vendor-DE_-CLIE.js";import{ai as O,ag as S,aD as T,aB as L,z as F,aC as M,aw as a,al as R,r as $,t as A,e as W,s as q,d as I,ao as H,N as Q,aa as V,Y as z,$ as U,W as Y}from"./main-COET8kmB.js";import{g as E}from"./workerType-Bd-zteMi.js";import{S as Z}from"./SessionVisibilityBadge-BkZImPBJ.js";import{D as G,a as J,c as K,d as X,b as ee}from"./dialog-D3djNDCB.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.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{aB as v,aw as t}from"./main-
|
|
1
|
+
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{aB as v,aw as t}from"./main-COET8kmB.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";function E({onSuccess:b,onInvalidInvite:l}){const{join:h}=v(),[u,f]=r.useState(""),[d,j]=r.useState(""),[o,w]=r.useState(""),[c,g]=r.useState(""),[m,n]=r.useState(""),[x,p]=r.useState(!1);r.useEffect(()=>{const a=new URLSearchParams(window.location.search).get("invite");a?f(a):l()},[l]);const y=async s=>{if(s.preventDefault(),n(""),o.length<8){n(t("auth.setup.passwordTooShort"));return}if(o!==c){n(t("auth.setup.passwordMismatch"));return}p(!0);try{await h(u,d,o),b()}catch(a){const i=a instanceof Error?a.message:"Join failed";if(i.includes("Invalid invitation")||i.includes("expired")||i.includes("already used")){l();return}n(i)}finally{p(!1)}};return e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface-0 px-4",children:e.jsxs("div",{className:"w-full max-w-sm space-y-6",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"font-display text-2xl font-semibold text-text-primary",children:t("auth.join.title")}),e.jsx("p",{className:"mt-2 text-sm text-text-muted",children:t("auth.join.welcome")}),e.jsx("p",{className:"mt-1 text-sm text-text-muted",children:t("auth.join.description")})]}),e.jsxs("form",{onSubmit:y,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.join.username")}),e.jsx("input",{type:"text",value:d,onChange:s=>j(s.target.value),required:!0,autoComplete:"username",autoFocus:!0,className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.join.password")}),e.jsx("input",{type:"password",value:o,onChange:s=>w(s.target.value),required:!0,autoComplete:"new-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.join.confirmPassword")}),e.jsx("input",{type:"password",value:c,onChange:s=>g(s.target.value),required:!0,autoComplete:"new-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),m&&e.jsx("p",{className:"text-sm text-status-error",children:m}),e.jsx("button",{type:"submit",disabled:x||!u,className:"w-full rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-brand-light disabled:cursor-not-allowed disabled:opacity-50",children:x?t("common.loading"):t("auth.join.submit")})]})]})})}export{E as Join};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{aB as f,aw as t}from"./main-
|
|
1
|
+
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{aB as f,aw as t}from"./main-COET8kmB.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";function v({onSuccess:u,onNavigateRegister:c}){const{login:m,registrationAllowed:x,singleUserMode:p}=f(),[a,b]=r.useState(""),[o,h]=r.useState(""),[n,l]=r.useState(""),[i,d]=r.useState(!1),g=async s=>{s.preventDefault(),l(""),d(!0);try{await m(a,o),u()}catch{l(t("auth.login.failed"))}finally{d(!1)}};return e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface-0 px-4",children:e.jsxs("div",{className:"w-full max-w-sm space-y-6",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"font-display text-2xl font-semibold text-text-primary",children:t("auth.login.title")}),e.jsx("p",{className:"mt-2 text-sm text-text-muted",children:t("auth.login.description")})]}),e.jsxs("form",{onSubmit:g,className:"space-y-4",children:[p&&e.jsxs("div",{className:"rounded-lg border border-border bg-surface-2 px-3 py-2 text-xs text-text-secondary",children:[e.jsx("p",{children:t("auth.login.singleUserHint")}),e.jsx("p",{className:"mt-1 font-mono text-text-primary",children:"admin / admin123"}),e.jsx("p",{className:"mt-1 text-text-muted",children:t("auth.login.singleUserHintFooter")})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.login.username")}),e.jsx("input",{type:"text",value:a,onChange:s=>b(s.target.value),required:!0,autoComplete:"username",autoFocus:!0,className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.login.password")}),e.jsx("input",{type:"password",value:o,onChange:s=>h(s.target.value),required:!0,autoComplete:"current-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),n&&e.jsx("p",{className:"text-sm text-status-error",children:n}),e.jsx("button",{type:"submit",disabled:i,className:"w-full rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-brand-light disabled:cursor-not-allowed disabled:opacity-50",children:i?t("common.loading"):t("auth.login.submit")})]}),x&&e.jsx("button",{type:"button",onClick:c,className:"w-full text-center text-sm text-text-muted hover:text-text-primary transition-colors",children:t("auth.login.register")})]})})}export{v as Login};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{aB as w,aw as t}from"./main-
|
|
1
|
+
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{aB as w,aw as t}from"./main-COET8kmB.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";function S({onSuccess:m,onBack:x}){const{register:p}=w(),[n,b]=r.useState(""),[a,h]=r.useState(""),[l,f]=r.useState(""),[i,o]=r.useState(""),[u,d]=r.useState(!1),g=async s=>{if(s.preventDefault(),o(""),a.length<8){o(t("auth.setup.passwordTooShort"));return}if(a!==l){o(t("auth.setup.passwordMismatch"));return}d(!0);try{await p(n,a),m()}catch(c){o(c instanceof Error?c.message:t("auth.register.failed"))}finally{d(!1)}};return e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface-0 px-4",children:e.jsxs("div",{className:"w-full max-w-sm space-y-6",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"font-display text-2xl font-semibold text-text-primary",children:t("auth.register.title")}),e.jsx("p",{className:"mt-2 text-sm text-text-muted",children:t("auth.register.description")})]}),e.jsxs("form",{onSubmit:g,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.login.username")}),e.jsx("input",{type:"text",value:n,onChange:s=>b(s.target.value),required:!0,autoComplete:"username",autoFocus:!0,className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.login.password")}),e.jsx("input",{type:"password",value:a,onChange:s=>h(s.target.value),required:!0,autoComplete:"new-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.join.confirmPassword")}),e.jsx("input",{type:"password",value:l,onChange:s=>f(s.target.value),required:!0,autoComplete:"new-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),i&&e.jsx("p",{className:"text-sm text-status-error",children:i}),e.jsx("button",{type:"submit",disabled:u,className:"w-full rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-brand-light disabled:cursor-not-allowed disabled:opacity-50",children:u?t("common.loading"):t("auth.register.submit")})]}),e.jsx("button",{type:"button",onClick:x,className:"w-full text-center text-sm text-text-muted hover:text-text-primary transition-colors",children:t("auth.register.backToLogin")})]})})}export{S as Register};
|