@coopcli/specsketch 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +10 -1
  2. package/dist/cli/index.js +63 -10
  3. package/dist/client/assets/{abnfDiagram-VRR7QNED-16f2_bGI.js → abnfDiagram-VRR7QNED-9LvWalHU.js} +1 -1
  4. package/dist/client/assets/{ar-SA-G6X2FPQ2-BliMWHsq.js → ar-SA-G6X2FPQ2-BP4GLzOL.js} +1 -1
  5. package/dist/client/assets/architecture-TIHT7OUA-C0XU-w_0.js +1 -0
  6. package/dist/client/assets/{architectureDiagram-ZJ3FMSHR-6GbpEUM7.js → architectureDiagram-ZJ3FMSHR-JGT5Y2Xo.js} +1 -1
  7. package/dist/client/assets/{az-AZ-76LH7QW2-CcmHdpe_.js → az-AZ-76LH7QW2-BL7aGO97.js} +1 -1
  8. package/dist/client/assets/{bg-BG-XCXSNQG7-9y6uaOsa.js → bg-BG-XCXSNQG7-BkccizPQ.js} +1 -1
  9. package/dist/client/assets/{blockDiagram-677ZJIJ3-BcMBzAms.js → blockDiagram-677ZJIJ3-CSMfPW2x.js} +1 -1
  10. package/dist/client/assets/{bn-BD-2XOGV67Q-DMquxXr0.js → bn-BD-2XOGV67Q-BvB29MhT.js} +1 -1
  11. package/dist/client/assets/{c4Diagram-LMCZKHZV-DKpo9yq8.js → c4Diagram-LMCZKHZV-BdI2t7Fw.js} +1 -1
  12. package/dist/client/assets/{ca-ES-6MX7JW3Y-DDkONtTz.js → ca-ES-6MX7JW3Y-BRz1caOn.js} +1 -1
  13. package/dist/client/assets/channel-D0gVHJmn.js +1 -0
  14. package/dist/client/assets/{chunk-32BRIVSS-DEyl_Nxr.js → chunk-32BRIVSS-CfgCuJ2S.js} +1 -1
  15. package/dist/client/assets/{chunk-52WLFC77-BRiX6aHf.js → chunk-52WLFC77-BADPESoq.js} +1 -1
  16. package/dist/client/assets/{chunk-C7G6YPKG-VAfRRT73.js → chunk-C7G6YPKG-BKTl4R9W.js} +1 -1
  17. package/dist/client/assets/{chunk-EIO257PC-PJvXSxFd.js → chunk-EIO257PC-hcR0ULdA.js} +1 -1
  18. package/dist/client/assets/{chunk-EX3LRPZG-B12uDakm.js → chunk-EX3LRPZG-DSAdQncj.js} +1 -1
  19. package/dist/client/assets/{chunk-FWX5IMBZ-DJqByAOU.js → chunk-FWX5IMBZ-B-bLlCzz.js} +2 -2
  20. package/dist/client/assets/{chunk-HOUHSVGY-uqo-OtAa.js → chunk-HOUHSVGY-DhoXq6Rd.js} +1 -1
  21. package/dist/client/assets/{chunk-ICXQ74PX-CAeU_wWJ.js → chunk-ICXQ74PX-B3ecNouC.js} +1 -1
  22. package/dist/client/assets/{chunk-MOJQB5TN-D8mFPGTn.js → chunk-MOJQB5TN-CL2WAZ8d.js} +1 -1
  23. package/dist/client/assets/{chunk-OGEWGWER-rSblczmM.js → chunk-OGEWGWER-DpHZ95Ou.js} +1 -1
  24. package/dist/client/assets/{chunk-PUDLZKDR-N4MYeMg7.js → chunk-PUDLZKDR-BslDQWVW.js} +1 -1
  25. package/dist/client/assets/{chunk-Q4XR5HBZ-DIiKBTGe.js → chunk-Q4XR5HBZ-CJVsuIz0.js} +1 -1
  26. package/dist/client/assets/{chunk-V7JOEXUC-D5EtXGKT.js → chunk-V7JOEXUC-CZGlgk94.js} +1 -1
  27. package/dist/client/assets/{chunk-VAUOI2AC-DCK8rog6.js → chunk-VAUOI2AC-C91DAhQB.js} +1 -1
  28. package/dist/client/assets/{chunk-VR4S4FIN-CM912FqX.js → chunk-VR4S4FIN-Bi0kkLZs.js} +1 -1
  29. package/dist/client/assets/{chunk-WYO6CB5R-2iEnPkYI.js → chunk-WYO6CB5R-WOgWEZB2.js} +1 -1
  30. package/dist/client/assets/{chunk-ZGVPDNZ5-CUa-NP8T.js → chunk-ZGVPDNZ5-CE90Bal7.js} +1 -1
  31. package/dist/client/assets/classDiagram-OUVF2IWQ-BuR8q78h.js +1 -0
  32. package/dist/client/assets/classDiagram-v2-EOCWNBFH-BuR8q78h.js +1 -0
  33. package/dist/client/assets/{cs-CZ-2BRQDIVT-zXFHXuyN.js → cs-CZ-2BRQDIVT-DeT5c9oE.js} +1 -1
  34. package/dist/client/assets/{cynefin-VYW2F7L2-Qe97INb_.js → cynefin-VYW2F7L2-C7eYwGQB.js} +1 -1
  35. package/dist/client/assets/{cynefinDiagram-TSTJHNR4-D3j6Tzbk.js → cynefinDiagram-TSTJHNR4-TjfXKu8O.js} +1 -1
  36. package/dist/client/assets/{da-DK-5WZEPLOC-RsMDMFPN.js → da-DK-5WZEPLOC-D0piI-Xp.js} +1 -1
  37. package/dist/client/assets/{dagre-VKFMJZFB-C8Ytm7T9.js → dagre-VKFMJZFB-Bb1mcWe2.js} +1 -1
  38. package/dist/client/assets/{de-DE-XR44H4JA-rbMWNgc4.js → de-DE-XR44H4JA-DtKABxSq.js} +1 -1
  39. package/dist/client/assets/{diagram-FQU43EPY-4gygVoas.js → diagram-FQU43EPY-D0ebQzkB.js} +1 -1
  40. package/dist/client/assets/{diagram-G47NLZAW-waBcZ0zD.js → diagram-G47NLZAW-mAy_wu85.js} +1 -1
  41. package/dist/client/assets/{diagram-NH7WQ7WH-CYaesizm.js → diagram-NH7WQ7WH-Bzfr25XU.js} +1 -1
  42. package/dist/client/assets/{diagram-OA4YK3LP-D83Nh9sN.js → diagram-OA4YK3LP-Df7M05fG.js} +1 -1
  43. package/dist/client/assets/{diagram-WEI45ONY-CGfmm2WY.js → diagram-WEI45ONY-BjZhI7--.js} +1 -1
  44. package/dist/client/assets/{dist-f8OLlO52.js → dist-CZroTgLe.js} +4 -4
  45. package/dist/client/assets/{ebnfDiagram-CCIWWBDH-BlZiBb4S.js → ebnfDiagram-CCIWWBDH-DUxSwKKK.js} +1 -1
  46. package/dist/client/assets/{el-GR-BZB4AONW-DZqM9E36.js → el-GR-BZB4AONW-DwxwKkxk.js} +1 -1
  47. package/dist/client/assets/{en-B4ZKOASM-Caam9N-X.js → en-B4ZKOASM-DbWq1JZq.js} +1 -1
  48. package/dist/client/assets/{erDiagram-Q63AITRT-zNSJaDnM.js → erDiagram-Q63AITRT-BZO1wQdn.js} +1 -1
  49. package/dist/client/assets/{es-ES-U4NZUMDT-qzXKymTT.js → es-ES-U4NZUMDT-HKSZwq1n.js} +1 -1
  50. package/dist/client/assets/{eu-ES-A7QVB2H4-CtY7Xg2M.js → eu-ES-A7QVB2H4-SBFBqbl6.js} +1 -1
  51. package/dist/client/assets/eventmodeling-45OFAUF4-1ttXm0MU.js +1 -0
  52. package/dist/client/assets/{fa-IR-HGAKTJCU-DEgH3Hqn.js → fa-IR-HGAKTJCU-OephStPw.js} +1 -1
  53. package/dist/client/assets/{fi-FI-Z5N7JZ37-BsnE5kmt.js → fi-FI-Z5N7JZ37-MqqXzLYb.js} +1 -1
  54. package/dist/client/assets/flowDiagram-23GEKE2U-pg72AQDT.js +1 -0
  55. package/dist/client/assets/{fr-FR-RHASNOE6-D5jzcSio.js → fr-FR-RHASNOE6-B_U118K8.js} +1 -1
  56. package/dist/client/assets/{ganttDiagram-NO4QXBWP-CcO5dZaj.js → ganttDiagram-NO4QXBWP-DIuhNI4R.js} +1 -1
  57. package/dist/client/assets/{gitGraph-TEB2WS4Q-BYZp8XwK.js → gitGraph-TEB2WS4Q-gtC5ENoq.js} +1 -1
  58. package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-C2sgRW8z.js → gitGraphDiagram-IHSO6WYX-Uu3sgpLC.js} +1 -1
  59. package/dist/client/assets/{gl-ES-HMX3MZ6V-CYCG2w9g.js → gl-ES-HMX3MZ6V-B8uLr62O.js} +1 -1
  60. package/dist/client/assets/{he-IL-6SHJWFNN--yDEZbty.js → he-IL-6SHJWFNN-BaXIdIWW.js} +1 -1
  61. package/dist/client/assets/{hi-IN-IWLTKZ5I-DRwKRLQJ.js → hi-IN-IWLTKZ5I-CiZpxQap.js} +1 -1
  62. package/dist/client/assets/{hu-HU-A5ZG7DT2-IcuCiqhE.js → hu-HU-A5ZG7DT2-D1gqx6aL.js} +1 -1
  63. package/dist/client/assets/{id-ID-SAP4L64H-DTH2ARbd.js → id-ID-SAP4L64H-COGgOgFw.js} +1 -1
  64. package/dist/client/assets/image-GAAHSSAO-D6-ZKeer.js +1 -0
  65. package/dist/client/assets/{index-J0gDT2pS.js → index-DZ_2V0y_.js} +8 -8
  66. package/dist/client/assets/{info-DKCQHKI2-CRI7fa22.js → info-DKCQHKI2-DukBHksi.js} +1 -1
  67. package/dist/client/assets/{infoDiagram-FWYZ7A6U-Bnc2s3td.js → infoDiagram-FWYZ7A6U-BDxLO6UX.js} +1 -1
  68. package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-DSTRhHYZ.js → ishikawaDiagram-FXEZZL3T-DMNp3gg4.js} +1 -1
  69. package/dist/client/assets/{it-IT-JPQ66NNP-CYPBIFaT.js → it-IT-JPQ66NNP-P3-QA8jC.js} +1 -1
  70. package/dist/client/assets/{ja-JP-DBVTYXUO-Q3XQ-5r8.js → ja-JP-DBVTYXUO-Dz9pBiAJ.js} +1 -1
  71. package/dist/client/assets/{journeyDiagram-5HDEW3XC-DJrtsHPH.js → journeyDiagram-5HDEW3XC-DhsvT8b6.js} +1 -1
  72. package/dist/client/assets/{kaa-6HZHGXH3-9BnW5XLF.js → kaa-6HZHGXH3-eoqMg1w6.js} +1 -1
  73. package/dist/client/assets/{kab-KAB-ZGHBKWFO-aoc5dPpL.js → kab-KAB-ZGHBKWFO-CcvPyNvQ.js} +1 -1
  74. package/dist/client/assets/{kanban-definition-HUTT4EX6--pNIAYZI.js → kanban-definition-HUTT4EX6-CjC34u75.js} +1 -1
  75. package/dist/client/assets/{kk-KZ-P5N5QNE5-C9fO5cSG.js → kk-KZ-P5N5QNE5-f-VK8qcK.js} +1 -1
  76. package/dist/client/assets/{km-KH-HSX4SM5Z-BNuQyN_P.js → km-KH-HSX4SM5Z-BCBh45oR.js} +1 -1
  77. package/dist/client/assets/{ko-KR-MTYHY66A-Dds6B1O1.js → ko-KR-MTYHY66A-QcfqVpsa.js} +1 -1
  78. package/dist/client/assets/{ku-TR-6OUDTVRD-BrWFBN_R.js → ku-TR-6OUDTVRD-BOO5VTf9.js} +1 -1
  79. package/dist/client/assets/{line-DWcTvCm-.js → line-BKYoxUsy.js} +1 -1
  80. package/dist/client/assets/{lt-LT-XHIRWOB4--cJLduJu.js → lt-LT-XHIRWOB4-CNhufcIZ.js} +1 -1
  81. package/dist/client/assets/{lv-LV-5QDEKY6T-DDV1U75_.js → lv-LV-5QDEKY6T-DpczMj-_.js} +1 -1
  82. package/dist/client/assets/{mermaid-parser.core-BqfnOrIO.js → mermaid-parser.core-BB1spMEk.js} +3 -3
  83. package/dist/client/assets/{mindmap-definition-LN4V7U3C-BSrRrH_A.js → mindmap-definition-LN4V7U3C-B1L2Cgvy.js} +1 -1
  84. package/dist/client/assets/{mr-IN-CRQNXWMA-BZFiW11y.js → mr-IN-CRQNXWMA-C9mAym7z.js} +1 -1
  85. package/dist/client/assets/{my-MM-5M5IBNSE-B5vq5uIU.js → my-MM-5M5IBNSE-BvR9_0Ba.js} +1 -1
  86. package/dist/client/assets/{nb-NO-T6EIAALU-DssJfvx1.js → nb-NO-T6EIAALU-D9QTRDiW.js} +1 -1
  87. package/dist/client/assets/{nl-NL-IS3SIHDZ-DofDpxLe.js → nl-NL-IS3SIHDZ-CB3MLLtD.js} +1 -1
  88. package/dist/client/assets/{nn-NO-6E72VCQL-COWIwAdQ.js → nn-NO-6E72VCQL-4s2iW47n.js} +1 -1
  89. package/dist/client/assets/{oc-FR-POXYY2M6-bMMGZDFH.js → oc-FR-POXYY2M6-BDp_Z-MA.js} +1 -1
  90. package/dist/client/assets/{pa-IN-N4M65BXN-CN09z_Xv.js → pa-IN-N4M65BXN-BEw5rXwN.js} +1 -1
  91. package/dist/client/assets/{packet-7NZHBO7P-CuYIlMin.js → packet-7NZHBO7P-VpUbhw9f.js} +1 -1
  92. package/dist/client/assets/{pegDiagram-2B236MQR-C0BbVZwA.js → pegDiagram-2B236MQR-Dvr2dVtY.js} +1 -1
  93. package/dist/client/assets/percentages-BXMCSKIN-B-Hry9UU.js +1 -0
  94. package/dist/client/assets/{pie-RZYD4A2V-B7Aa9X74.js → pie-RZYD4A2V-CK5JbE5r.js} +1 -1
  95. package/dist/client/assets/{pieDiagram-ENE6RG2P-C0wH5T9e.js → pieDiagram-ENE6RG2P-hrgv0FEH.js} +1 -1
  96. package/dist/client/assets/{pl-PL-T2D74RX3-Hzfv9oIJ.js → pl-PL-T2D74RX3-BnERCd0d.js} +1 -1
  97. package/dist/client/assets/{pt-BR-5N22H2LF-CrT9HM0t.js → pt-BR-5N22H2LF-slYmg2Ze.js} +1 -1
  98. package/dist/client/assets/{pt-PT-UZXXM6DQ-oUYp_awL.js → pt-PT-UZXXM6DQ-Cw2RqNmb.js} +1 -1
  99. package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-CL6G6yBt.js → quadrantDiagram-ABIIQ3AL-B7qeFyL4.js} +1 -1
  100. package/dist/client/assets/{radar-I7S5WNFK-L34bXC8_.js → radar-I7S5WNFK-xmyeC4UJ.js} +1 -1
  101. package/dist/client/assets/{railroad-3IZDKUUU-q-0aBpk4.js → railroad-3IZDKUUU-KepzRlFK.js} +1 -1
  102. package/dist/client/assets/railroad-abnf-AHOZXSZD-DfUr082h.js +1 -0
  103. package/dist/client/assets/railroad-ebnf-EBAXGLYW-C-dpjHIg.js +1 -0
  104. package/dist/client/assets/railroad-peg-LSFZ7HO6-CqTo_xnW.js +1 -0
  105. package/dist/client/assets/{railroadDiagram-RFXS5EU6-Dhq_UFr5.js → railroadDiagram-RFXS5EU6-PrCCHb2J.js} +1 -1
  106. package/dist/client/assets/{requirementDiagram-TGXJPOKE-BzIV3auq.js → requirementDiagram-TGXJPOKE-BZh8ujKD.js} +1 -1
  107. package/dist/client/assets/{ro-RO-JPDTUUEW-DBJstEDv.js → ro-RO-JPDTUUEW-CToftgdK.js} +1 -1
  108. package/dist/client/assets/{ru-RU-B4JR7IUQ-DX7bFYoq.js → ru-RU-B4JR7IUQ-CFeODx2o.js} +1 -1
  109. package/dist/client/assets/{sankeyDiagram-HTMAVEWB-CPjEKlV1.js → sankeyDiagram-HTMAVEWB-CjDpDF-M.js} +1 -1
  110. package/dist/client/assets/{sequenceDiagram-DBY2YBRQ-Cp0Cdfw0.js → sequenceDiagram-DBY2YBRQ-16bQSxmd.js} +1 -1
  111. package/dist/client/assets/{si-LK-N5RQ5JYF-Bv0pdm0z.js → si-LK-N5RQ5JYF-oZKUMo_P.js} +1 -1
  112. package/dist/client/assets/{sk-SK-C5VTKIMK-D1iTSf5f.js → sk-SK-C5VTKIMK-Dt7AjknE.js} +1 -1
  113. package/dist/client/assets/{sl-SI-NN7IZMDC-BqH5ecAz.js → sl-SI-NN7IZMDC-HhXTUu2g.js} +1 -1
  114. package/dist/client/assets/{stateDiagram-2N3HPSRC-FNhi3doi.js → stateDiagram-2N3HPSRC-PDyTeH2U.js} +1 -1
  115. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-C-jAQAU1.js +1 -0
  116. package/dist/client/assets/subset-shared.chunk-CuzycDCt.js +1 -0
  117. package/dist/client/assets/{subset-worker.chunk-Dirfxwpm.js → subset-worker.chunk-BH182Pym.js} +1 -1
  118. package/dist/client/assets/{sv-SE-XGPEYMSR-hfi5sOoT.js → sv-SE-XGPEYMSR-B0ThLx7H.js} +1 -1
  119. package/dist/client/assets/{swimlanes-5IMT3BWC-Bc45sTzh.js → swimlanes-5IMT3BWC-B6lSXfOr.js} +1 -1
  120. package/dist/client/assets/swimlanesDiagram-G3AALYLV-8y-Nyb1H.js +8 -0
  121. package/dist/client/assets/{ta-IN-2NMHFXQM-B3RmLnFO.js → ta-IN-2NMHFXQM-D3Tlt8wo.js} +1 -1
  122. package/dist/client/assets/{th-TH-HPSO5L25-z7coHf9c.js → th-TH-HPSO5L25-B-qBZifn.js} +1 -1
  123. package/dist/client/assets/{timeline-definition-FHXFAJF6-CUCLhtwj.js → timeline-definition-FHXFAJF6-DaiYdMF8.js} +1 -1
  124. package/dist/client/assets/{tr-TR-DEFEU3FU-oKbLZIQc.js → tr-TR-DEFEU3FU-BT3vutLm.js} +1 -1
  125. package/dist/client/assets/{treeView-QDETBFTQ-gEqM1aZw.js → treeView-QDETBFTQ-FTalIewb.js} +1 -1
  126. package/dist/client/assets/{treemap-6X3UGDF4-Cpkr6IjV.js → treemap-6X3UGDF4-CZ9rijWG.js} +1 -1
  127. package/dist/client/assets/{uk-UA-QMV73CPH-BpDJuMHs.js → uk-UA-QMV73CPH-C7D_Wurx.js} +1 -1
  128. package/dist/client/assets/{vennDiagram-L72KCM5P-BSP_kJAN.js → vennDiagram-L72KCM5P-ChTaYjAu.js} +1 -1
  129. package/dist/client/assets/{vi-VN-M7AON7JQ-DBfMeBJv.js → vi-VN-M7AON7JQ-BAyIBcPI.js} +1 -1
  130. package/dist/client/assets/{wardley-OPB4EBWU-BO-I7Hgc.js → wardley-OPB4EBWU-Dw8vP8Xf.js} +1 -1
  131. package/dist/client/assets/{wardleyDiagram-EHGQE667-BBhTfl1P.js → wardleyDiagram-EHGQE667-DtcHaU9I.js} +1 -1
  132. package/dist/client/assets/{xychartDiagram-FW5EYKEG-CKj06EtN.js → xychartDiagram-FW5EYKEG-B6du3f4I.js} +1 -1
  133. package/dist/client/assets/{zh-CN-LNUGB5OW-CnPPsSDv.js → zh-CN-LNUGB5OW-CuVtUKdm.js} +1 -1
  134. package/dist/client/assets/{zh-HK-E62DVLB3-CV2WuKCN.js → zh-HK-E62DVLB3-C3l9czi9.js} +1 -1
  135. package/dist/client/assets/{zh-TW-RAJ6MFWO-BFCIDL_e.js → zh-TW-RAJ6MFWO-CjUZVYEY.js} +1 -1
  136. package/dist/client/index.html +1 -1
  137. package/package.json +1 -1
  138. package/dist/client/assets/architecture-TIHT7OUA-BKt6Bp_c.js +0 -1
  139. package/dist/client/assets/channel-5C_-bpkt.js +0 -1
  140. package/dist/client/assets/classDiagram-OUVF2IWQ-CCWQPaLx.js +0 -1
  141. package/dist/client/assets/classDiagram-v2-EOCWNBFH-CCWQPaLx.js +0 -1
  142. package/dist/client/assets/eventmodeling-45OFAUF4-CQvE-Zz6.js +0 -1
  143. package/dist/client/assets/flowDiagram-23GEKE2U-BZlpWoyS.js +0 -1
  144. package/dist/client/assets/image-GAAHSSAO-BgFjo4xZ.js +0 -1
  145. package/dist/client/assets/percentages-BXMCSKIN-BonUZTZd.js +0 -1
  146. package/dist/client/assets/railroad-abnf-AHOZXSZD-DyhYVkRo.js +0 -1
  147. package/dist/client/assets/railroad-ebnf-EBAXGLYW-CyqxDZEz.js +0 -1
  148. package/dist/client/assets/railroad-peg-LSFZ7HO6-DDlWiY_v.js +0 -1
  149. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-CQz3pB3W.js +0 -1
  150. package/dist/client/assets/subset-shared.chunk-AWyPT4lx.js +0 -1
  151. package/dist/client/assets/swimlanesDiagram-G3AALYLV-aBAqktof.js +0 -8
package/README.md CHANGED
@@ -64,6 +64,15 @@ Binds to 127.0.0.1 only (no `--host`); `--port` defaults to 8787. Stop and rerun
64
64
  same directory to resume where you left off. Local dev of the CLI itself:
65
65
  `npm run build:cli` then `node dist/cli/index.js <change-dir>`.
66
66
 
67
+ **Auth for Generate Spec** (drawing works without it — the CLI warns at startup if neither
68
+ is present):
69
+
70
+ ```bash
71
+ export ANTHROPIC_API_KEY=sk-ant-... # option 1: plain API key
72
+ # option 2: the Anthropic CLI's login profile (no key handling)
73
+ brew install anthropics/tap/ant && ant auth login
74
+ ```
75
+
67
76
  ## Getting started (local MVP)
68
77
 
69
78
  ```bash
@@ -126,7 +135,7 @@ acceptance criteria. Run `npx openspec list` / `npx openspec validate --all`.
126
135
  | 3 | `conversation-transcription` | conversation-transcription | proposed |
127
136
  | 3 | `transcript-informed-specs` | transcript-informed-specs | proposed |
128
137
  | — | `spec-persistence-and-export` | spec-persistence-and-export | proposed |
129
- | — | `coopcli-specsketch-distribution` | npm-distribution, local-persistence, product-microsite | proposed |
138
+ | — | `coopcli-specsketch-distribution` | npm-distribution, local-persistence, product-microsite | shipped (v0.1.0 on npm; microsite live) |
130
139
 
131
140
  Suggested implementation order follows the table (each Phase 2/3 change builds on the one above
132
141
  it). The `spec-builder` workflow already dogfoods this format — its output is exactly these
package/dist/cli/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // server/cli.ts
4
- import { existsSync as existsSync2, readFileSync as readFileSync2 } from "node:fs";
4
+ import { existsSync as existsSync2, readFileSync as readFileSync2, readdirSync as readdirSync2 } from "node:fs";
5
+ import { homedir } from "node:os";
5
6
  import { dirname as dirname2, extname, join as join2, normalize, resolve as resolve2 } from "node:path";
6
7
  import { fileURLToPath } from "node:url";
7
8
  import { parseArgs } from "node:util";
@@ -156,15 +157,32 @@ Use exactly "${workspace.changeName}" as the changeName.` : "";
156
157
  ${renderGraph(graph)}
157
158
 
158
159
  Produce the OpenSpec change proposal for this architecture as structured output.` + changeNameHint + (workspace ? renderBaseline(workspace) : "");
159
- const msg = await anthropic.messages.parse({
160
- model: MODEL,
161
- max_tokens: 16e3,
162
- // non-streaming stays under the SDK HTTP timeout
163
- system: SYSTEM,
164
- messages: [{ role: "user", content: prompt }],
165
- output_config: { format: zodOutputFormat(SpecBundle) }
166
- // No temperature/top_p or thinking config — both 400 on modern models.
167
- });
160
+ let msg;
161
+ try {
162
+ msg = await anthropic.messages.parse({
163
+ model: MODEL,
164
+ max_tokens: 16e3,
165
+ // non-streaming stays under the SDK HTTP timeout
166
+ system: SYSTEM,
167
+ messages: [{ role: "user", content: prompt }],
168
+ output_config: { format: zodOutputFormat(SpecBundle) }
169
+ // No temperature/top_p or thinking config — both 400 on modern models.
170
+ });
171
+ } catch (err) {
172
+ const message = err instanceof Error ? err.message : String(err);
173
+ const status = err.status;
174
+ if (status === 401 || /authentication|auth token|x-api-key/i.test(message)) {
175
+ return c.json(
176
+ {
177
+ error: "anthropic-auth",
178
+ hint: "No Anthropic credentials available to the server. Set ANTHROPIC_API_KEY in your environment, or install the Anthropic CLI and run `ant auth login` (macOS: brew install anthropics/tap/ant), then restart specsketch.",
179
+ detail: message
180
+ },
181
+ 401
182
+ );
183
+ }
184
+ return c.json({ error: "generation-failed", detail: message }, 502);
185
+ }
168
186
  if (msg.stop_reason === "refusal") {
169
187
  return c.json({ error: "refusal", detail: msg.stop_details }, 422);
170
188
  }
@@ -383,7 +401,34 @@ function staticResponse(clientDir, pathname) {
383
401
  headers: { "Content-Type": MIME[extname(file)] ?? "application/octet-stream" }
384
402
  });
385
403
  }
404
+ var CREDENTIALS_HINT = `No Anthropic credentials detected. The canvas works without them,
405
+ but "Generate Spec" needs one of:
406
+
407
+ \u2022 ANTHROPIC_API_KEY set in your environment
408
+ export ANTHROPIC_API_KEY=sk-ant-...
409
+ \u2022 or the Anthropic CLI's login profile (no key handling needed):
410
+ brew install anthropics/tap/ant # macOS
411
+ ant auth login`;
412
+ function detectCredentialSource(env = process.env, home = homedir()) {
413
+ if (env.ANTHROPIC_API_KEY) return "ANTHROPIC_API_KEY";
414
+ if (env.ANTHROPIC_AUTH_TOKEN) return "ANTHROPIC_AUTH_TOKEN";
415
+ try {
416
+ const dir = join2(home, ".config", "anthropic", "credentials");
417
+ if (readdirSync2(dir).some((f) => f.endsWith(".json"))) return "anthropic profile";
418
+ } catch {
419
+ }
420
+ return null;
421
+ }
422
+ function preflight(log = console.log) {
423
+ const major = Number(process.versions.node.split(".")[0]);
424
+ if (major < 22) {
425
+ log(`\u26A0 Node ${process.versions.node} detected \u2014 specsketch needs Node >= 22.`);
426
+ log(" Install a current Node (https://nodejs.org) and rerun.");
427
+ process.exit(1);
428
+ }
429
+ }
386
430
  function main(argv) {
431
+ preflight();
387
432
  let args;
388
433
  try {
389
434
  args = parseCliArgs(argv);
@@ -405,9 +450,17 @@ ${USAGE}` : err);
405
450
  return res ?? c.notFound();
406
451
  });
407
452
  serve({ fetch: app.fetch, port: args.port, hostname: "127.0.0.1" }, () => {
453
+ const source = detectCredentialSource();
408
454
  console.log(`coopcli specsketch`);
409
455
  console.log(` workspace: ${workspace.dir}`);
410
456
  console.log(` open: http://127.0.0.1:${args.port}`);
457
+ if (source) {
458
+ console.log(` auth: ${source}`);
459
+ } else {
460
+ console.log(`
461
+ \u26A0 ${CREDENTIALS_HINT}
462
+ `);
463
+ }
411
464
  });
412
465
  }
413
466
 
@@ -1 +1 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t}from"./src-DpN7Pt3R.js";import"./chunk-WYO6CB5R-2iEnPkYI.js";import"./chunk-VAUOI2AC-DCK8rog6.js";import{n,r,t as i}from"./chunk-MOJQB5TN-D8mFPGTn.js";import{t as a}from"./chunk-JWPE2WC7-DVXcaiue.js";import{E as o,t as s}from"./mermaid-parser.core-BqfnOrIO.js";var c=o().RailroadAbnf.parser.LangiumParser,l=e(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=e(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=e(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=e(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=e(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=e(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=e(e=>{a(e,i),e.title&&i.setTitle(e.title),e.rules.map(e=>i.addRule(m(e)))},`populateDb`),g={parser:{parse:e(e=>{i.clear(),t.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new s(n);let r=n.value;t.debug(`[ABNF Parser] Parsed rules:`,r.rules.length),h(r),t.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:i}},db:i,renderer:r,styles:n};export{g as diagram};
1
+ import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t}from"./src-DpN7Pt3R.js";import"./chunk-WYO6CB5R-WOgWEZB2.js";import"./chunk-VAUOI2AC-C91DAhQB.js";import{n,r,t as i}from"./chunk-MOJQB5TN-CL2WAZ8d.js";import{t as a}from"./chunk-JWPE2WC7-DVXcaiue.js";import{E as o,t as s}from"./mermaid-parser.core-BB1spMEk.js";var c=o().RailroadAbnf.parser.LangiumParser,l=e(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=e(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=e(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=e(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=e(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=e(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=e(e=>{a(e,i),e.title&&i.setTitle(e.title),e.rules.map(e=>i.addRule(m(e)))},`populateDb`),g={parser:{parse:e(e=>{i.clear(),t.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new s(n);let r=n.value;t.debug(`[ABNF Parser] Parsed rules:`,r.rules.length),h(r),t.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:i}},db:i,renderer:r,styles:n};export{g as diagram};
@@ -1,4 +1,4 @@
1
- import"./index-J0gDT2pS.js";var e={paste:`لصق`,pasteAsPlaintext:`اللصق كنص عادي`,pasteCharts:`لصق الرسوم البيانية`,selectAll:`تحديد الكل`,multiSelect:`إضافة عنصر للتحديد`,moveCanvas:`نقل لوح الرسم`,cut:`قص`,copy:`نسخ`,copyAsPng:`نسخ إلى الحافظة بصيغة PNG`,copyAsSvg:`نسخ إلى الحافظة بصيغة SVG`,copyText:`نسخ إلى الحافظة كنص`,copySource:``,convertToCode:``,bringForward:`جلب للأمام`,sendToBack:`أرسل للخلف`,bringToFront:`أحضر للأمام`,sendBackward:`أرسل للخلف`,delete:`حذف`,copyStyles:`نسخ الأنماط`,pasteStyles:`لصق الأنماط`,stroke:`الخط`,background:`الخلفية`,fill:`التعبئة`,strokeWidth:`سُمك الخط`,strokeStyle:`نمط الخط`,strokeStyle_solid:`متصل`,strokeStyle_dashed:`متقطع`,strokeStyle_dotted:`منقط`,sloppiness:`الإمالة`,opacity:`الشفافية`,textAlign:`محاذاة النص`,edges:`الحواف`,sharp:`حادة`,round:`دائرية`,arrowheads:`رؤوس الأسهم`,arrowhead_none:`لا شيء`,arrowhead_arrow:`سهم`,arrowhead_bar:`شريط`,arrowhead_circle:``,arrowhead_circle_outline:``,arrowhead_triangle:`مثلث`,arrowhead_triangle_outline:``,arrowhead_diamond:``,arrowhead_diamond_outline:``,fontSize:`حجم الخط`,fontFamily:`نوع الخط`,addWatermark:`إضافة "مصنوعة بواسطة Excalidraw"`,handDrawn:`رسم باليد`,normal:`عادي`,code:`رمز`,small:`صغير`,medium:`متوسط`,large:`كبير`,veryLarge:`كبير جدا`,solid:`كامل`,hachure:`خطوط`,zigzag:`متعرج`,crossHatch:`خطوط متقطعة`,thin:`نحيف`,bold:`داكن`,left:`الـيسار`,center:`وسط`,right:`يمين`,extraBold:`عريض`,architect:`معماري`,artist:`رسام`,cartoonist:`كرتوني`,fileTitle:`إسم الملف`,colorPicker:`منتقي اللون`,canvasColors:`تستخدم على القماش`,canvasBackground:`خلفية اللوحة`,drawingCanvas:`لوحة الرسم`,layers:`الطبقات`,actions:`الإجراءات`,language:`اللغة`,liveCollaboration:`التعاون المباشر...`,duplicateSelection:`تكرار`,untitled:`غير معنون`,name:`الاسم`,yourName:`اسمك`,madeWithExcalidraw:`مصنوعة بواسطة Excalidraw`,group:`تحديد مجموعة`,ungroup:`إلغاء تحديد مجموعة`,collaborators:`المتعاونون`,showGrid:`إظهار الشبكة`,addToLibrary:`أضف إلى المكتبة`,removeFromLibrary:`حذف من المكتبة`,libraryLoadingMessage:`جارٍ تحميل المكتبة…`,libraries:`تصفح المكتبات`,loadingScene:`جاري تحميل المشهد…`,align:`محاذاة`,alignTop:`محاذاة إلى اﻷعلى`,alignBottom:`محاذاة إلى اﻷسفل`,alignLeft:`محاذاة إلى اليسار`,alignRight:`محاذاة إلى اليمين`,centerVertically:`توسيط عمودي`,centerHorizontally:`توسيط أفقي`,distributeHorizontally:`التوزيع الأفقي`,distributeVertically:`التوزيع عمودياً`,flipHorizontal:`قلب عامودي`,flipVertical:`قلب أفقي`,viewMode:`نمط العرض`,share:`مشاركة`,showStroke:`إظهار منتقي لون الخط`,showBackground:`إظهار منتقي لون الخلفية`,toggleTheme:`غير النمط`,personalLib:`المكتبة الشخصية`,excalidrawLib:`مكتبتنا`,decreaseFontSize:`تصغير حجم الخط`,increaseFontSize:`تكبير حجم الخط`,unbindText:`فك ربط النص`,bindText:`ربط النص بالحاوية`,createContainerFromText:`نص مغلف في حاوية`,link:{edit:`تعديل الرابط`,editEmbed:`تحرير الرابط وإدراجه`,create:`إنشاء رابط`,createEmbed:`إنشاء رابط و إدراجه`,label:`رابط`,labelEmbed:`رابط و إدراج`,empty:`لم يتم تعيين رابط`},lineEditor:{edit:`تحرير السطر`,exit:`الخروج من المُحرر`},elementLock:{lock:`قفل`,unlock:`فتح`,lockAll:`قفل الكل`,unlockAll:`فتح الكل`},statusPublished:`نُشر`,sidebarLock:`إبقاء الشريط الجانبي مفتوح`,selectAllElementsInFrame:`تحديد جميع العناصر في الإطار`,removeAllElementsFromFrame:`إزالة جميع العناصر من الإطار`,eyeDropper:`اختيار اللون من القماش`,textToDiagram:``,prompt:``},t={noItems:`لا توجد عناصر أضيفت بعد...`,hint_emptyLibrary:`حدد عنصر على القماش لإضافته هنا، أو تثبيت مكتبة من المستودع العام أدناه.`,hint_emptyPrivateLibrary:`حدد عنصر على القماش لإضافته هنا.`},n={clearReset:`إعادة تعيين اللوحة`,exportJSON:`صدر الملف`,exportImage:`تصدير الصورة...`,export:`حفظ إلى...`,copyToClipboard:`نسخ إلى الحافظة`,save:`احفظ للملف الحالي`,saveAs:`حفظ كـ`,load:`فتح`,getShareableLink:`احصل على رابط المشاركة`,close:`غلق`,selectLanguage:`اختر اللغة`,scrollBackToContent:`الرجوع إلى المحتوى`,zoomIn:`تكبير`,zoomOut:`تصغير`,resetZoom:`إعادة تعيين الشاشة`,menu:`القائمة`,done:`تم`,edit:`تعديل`,undo:`تراجع`,redo:`إعادة تنفيذ`,resetLibrary:`إعادة ضبط المكتبة`,createNewRoom:`إنشاء غرفة جديدة`,fullScreen:`شاشة كاملة`,darkMode:`الوضع المظلم`,lightMode:`الوضع المضيء`,zenMode:`وضع التأمل`,objectsSnapMode:`التقط إلى العناصر`,exitZenMode:`إلغاء الوضع الليلى`,cancel:`إلغاء`,clear:`مسح`,remove:`إزالة`,embed:`تبديل الإدراج`,publishLibrary:`انشر`,submit:`أرسل`,confirm:`تأكيد`,embeddableInteractionButton:`اضغط للتفاعل`},r={clearReset:`هذا سيُزيل كامل اللوحة. هل أنت متأكد؟`,couldNotCreateShareableLink:`تعذر إنشاء رابطة المشاركة.`,couldNotCreateShareableLinkTooBig:`تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا`,couldNotLoadInvalidFile:`تعذر التحميل، الملف غير صالح`,importBackendFailed:`فشل الاستيراد من الخادوم.`,cannotExportEmptyCanvas:`لا يمكن تصدير لوحة فارغة.`,couldNotCopyToClipboard:`تعذر النسخ إلى الحافظة.`,decryptFailed:`تعذر فك تشفير البيانات.`,uploadedSecurly:`تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.`,loadSceneOverridePrompt:`تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟`,collabStopOverridePrompt:`إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
1
+ import"./index-DZ_2V0y_.js";var e={paste:`لصق`,pasteAsPlaintext:`اللصق كنص عادي`,pasteCharts:`لصق الرسوم البيانية`,selectAll:`تحديد الكل`,multiSelect:`إضافة عنصر للتحديد`,moveCanvas:`نقل لوح الرسم`,cut:`قص`,copy:`نسخ`,copyAsPng:`نسخ إلى الحافظة بصيغة PNG`,copyAsSvg:`نسخ إلى الحافظة بصيغة SVG`,copyText:`نسخ إلى الحافظة كنص`,copySource:``,convertToCode:``,bringForward:`جلب للأمام`,sendToBack:`أرسل للخلف`,bringToFront:`أحضر للأمام`,sendBackward:`أرسل للخلف`,delete:`حذف`,copyStyles:`نسخ الأنماط`,pasteStyles:`لصق الأنماط`,stroke:`الخط`,background:`الخلفية`,fill:`التعبئة`,strokeWidth:`سُمك الخط`,strokeStyle:`نمط الخط`,strokeStyle_solid:`متصل`,strokeStyle_dashed:`متقطع`,strokeStyle_dotted:`منقط`,sloppiness:`الإمالة`,opacity:`الشفافية`,textAlign:`محاذاة النص`,edges:`الحواف`,sharp:`حادة`,round:`دائرية`,arrowheads:`رؤوس الأسهم`,arrowhead_none:`لا شيء`,arrowhead_arrow:`سهم`,arrowhead_bar:`شريط`,arrowhead_circle:``,arrowhead_circle_outline:``,arrowhead_triangle:`مثلث`,arrowhead_triangle_outline:``,arrowhead_diamond:``,arrowhead_diamond_outline:``,fontSize:`حجم الخط`,fontFamily:`نوع الخط`,addWatermark:`إضافة "مصنوعة بواسطة Excalidraw"`,handDrawn:`رسم باليد`,normal:`عادي`,code:`رمز`,small:`صغير`,medium:`متوسط`,large:`كبير`,veryLarge:`كبير جدا`,solid:`كامل`,hachure:`خطوط`,zigzag:`متعرج`,crossHatch:`خطوط متقطعة`,thin:`نحيف`,bold:`داكن`,left:`الـيسار`,center:`وسط`,right:`يمين`,extraBold:`عريض`,architect:`معماري`,artist:`رسام`,cartoonist:`كرتوني`,fileTitle:`إسم الملف`,colorPicker:`منتقي اللون`,canvasColors:`تستخدم على القماش`,canvasBackground:`خلفية اللوحة`,drawingCanvas:`لوحة الرسم`,layers:`الطبقات`,actions:`الإجراءات`,language:`اللغة`,liveCollaboration:`التعاون المباشر...`,duplicateSelection:`تكرار`,untitled:`غير معنون`,name:`الاسم`,yourName:`اسمك`,madeWithExcalidraw:`مصنوعة بواسطة Excalidraw`,group:`تحديد مجموعة`,ungroup:`إلغاء تحديد مجموعة`,collaborators:`المتعاونون`,showGrid:`إظهار الشبكة`,addToLibrary:`أضف إلى المكتبة`,removeFromLibrary:`حذف من المكتبة`,libraryLoadingMessage:`جارٍ تحميل المكتبة…`,libraries:`تصفح المكتبات`,loadingScene:`جاري تحميل المشهد…`,align:`محاذاة`,alignTop:`محاذاة إلى اﻷعلى`,alignBottom:`محاذاة إلى اﻷسفل`,alignLeft:`محاذاة إلى اليسار`,alignRight:`محاذاة إلى اليمين`,centerVertically:`توسيط عمودي`,centerHorizontally:`توسيط أفقي`,distributeHorizontally:`التوزيع الأفقي`,distributeVertically:`التوزيع عمودياً`,flipHorizontal:`قلب عامودي`,flipVertical:`قلب أفقي`,viewMode:`نمط العرض`,share:`مشاركة`,showStroke:`إظهار منتقي لون الخط`,showBackground:`إظهار منتقي لون الخلفية`,toggleTheme:`غير النمط`,personalLib:`المكتبة الشخصية`,excalidrawLib:`مكتبتنا`,decreaseFontSize:`تصغير حجم الخط`,increaseFontSize:`تكبير حجم الخط`,unbindText:`فك ربط النص`,bindText:`ربط النص بالحاوية`,createContainerFromText:`نص مغلف في حاوية`,link:{edit:`تعديل الرابط`,editEmbed:`تحرير الرابط وإدراجه`,create:`إنشاء رابط`,createEmbed:`إنشاء رابط و إدراجه`,label:`رابط`,labelEmbed:`رابط و إدراج`,empty:`لم يتم تعيين رابط`},lineEditor:{edit:`تحرير السطر`,exit:`الخروج من المُحرر`},elementLock:{lock:`قفل`,unlock:`فتح`,lockAll:`قفل الكل`,unlockAll:`فتح الكل`},statusPublished:`نُشر`,sidebarLock:`إبقاء الشريط الجانبي مفتوح`,selectAllElementsInFrame:`تحديد جميع العناصر في الإطار`,removeAllElementsFromFrame:`إزالة جميع العناصر من الإطار`,eyeDropper:`اختيار اللون من القماش`,textToDiagram:``,prompt:``},t={noItems:`لا توجد عناصر أضيفت بعد...`,hint_emptyLibrary:`حدد عنصر على القماش لإضافته هنا، أو تثبيت مكتبة من المستودع العام أدناه.`,hint_emptyPrivateLibrary:`حدد عنصر على القماش لإضافته هنا.`},n={clearReset:`إعادة تعيين اللوحة`,exportJSON:`صدر الملف`,exportImage:`تصدير الصورة...`,export:`حفظ إلى...`,copyToClipboard:`نسخ إلى الحافظة`,save:`احفظ للملف الحالي`,saveAs:`حفظ كـ`,load:`فتح`,getShareableLink:`احصل على رابط المشاركة`,close:`غلق`,selectLanguage:`اختر اللغة`,scrollBackToContent:`الرجوع إلى المحتوى`,zoomIn:`تكبير`,zoomOut:`تصغير`,resetZoom:`إعادة تعيين الشاشة`,menu:`القائمة`,done:`تم`,edit:`تعديل`,undo:`تراجع`,redo:`إعادة تنفيذ`,resetLibrary:`إعادة ضبط المكتبة`,createNewRoom:`إنشاء غرفة جديدة`,fullScreen:`شاشة كاملة`,darkMode:`الوضع المظلم`,lightMode:`الوضع المضيء`,zenMode:`وضع التأمل`,objectsSnapMode:`التقط إلى العناصر`,exitZenMode:`إلغاء الوضع الليلى`,cancel:`إلغاء`,clear:`مسح`,remove:`إزالة`,embed:`تبديل الإدراج`,publishLibrary:`انشر`,submit:`أرسل`,confirm:`تأكيد`,embeddableInteractionButton:`اضغط للتفاعل`},r={clearReset:`هذا سيُزيل كامل اللوحة. هل أنت متأكد؟`,couldNotCreateShareableLink:`تعذر إنشاء رابطة المشاركة.`,couldNotCreateShareableLinkTooBig:`تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا`,couldNotLoadInvalidFile:`تعذر التحميل، الملف غير صالح`,importBackendFailed:`فشل الاستيراد من الخادوم.`,cannotExportEmptyCanvas:`لا يمكن تصدير لوحة فارغة.`,couldNotCopyToClipboard:`تعذر النسخ إلى الحافظة.`,decryptFailed:`تعذر فك تشفير البيانات.`,uploadedSecurly:`تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.`,loadSceneOverridePrompt:`تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟`,collabStopOverridePrompt:`إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
2
2
 
3
3
  (إذا كنت ترغب في الاحتفاظ برسمك المخزن داخليا، ببساطة أغلق علامة تبويب المتصفح بدلاً من ذلك.)`,errorAddingToLibrary:`تعذر إضافة العنصر للمكتبة`,errorRemovingFromLibrary:`تعذر إزالة العنصر من المكتبة`,confirmAddLibrary:`هذا سيضيف {{numShapes}} شكل إلى مكتبتك. هل أنت متأكد؟`,imageDoesNotContainScene:`يبدو أن هذه الصورة لا تحتوي على أي بيانات مشهد. هل قمت بتمكين تضمين المشهد أثناء التصدير؟`,cannotRestoreFromImage:`تعذر استعادة المشهد من ملف الصورة`,invalidSceneUrl:`تعذر استيراد المشهد من عنوان URL المتوفر. إما أنها مشوهة، أو لا تحتوي على بيانات Excalidraw JSON صالحة.`,resetLibrary:`هذا سوف يمسح مكتبتك. هل أنت متأكد؟`,removeItemsFromsLibrary:`حذف {{count}} عنصر (عناصر) من المكتبة؟`,invalidEncryptionKey:`مفتاح التشفير يجب أن يكون من 22 حرفاً. التعاون المباشر معطل.`,collabOfflineWarning:`لا يوجد اتصال بالانترنت.
4
4
  لن يتم حفظ التغييرات التي قمت بها!`},i={unsupportedFileType:`نوع الملف غير مدعوم.`,imageInsertError:`تعذر إدراج الصورة. حاول مرة أخرى لاحقاً...`,fileTooBig:`الملف كبير جداً. الحد الأقصى المسموح به للحجم هو {{maxSize}}.`,svgImageInsertError:`تعذر إدراج صورة SVG. يبدو أن ترميز SVG غير صحيح.`,failedToFetchImage:``,invalidSVGString:`SVG غير صالح.`,cannotResolveCollabServer:`تعذر الاتصال بخادم التعاون. الرجاء إعادة تحميل الصفحة والمحاولة مرة أخرى.`,importLibraryError:`تعذر تحميل المكتبة`,collabSaveFailed:`تعذر الحفظ في قاعدة البيانات. إذا استمرت المشاكل، يفضل أن تحفظ ملفك محليا كي لا تفقد عملك.`,collabSaveFailed_sizeExceeded:`تعذر الحفظ في قاعدة البيانات، يبدو أن القماش كبير للغاية، يفضّل حفظ الملف محليا كي لا تفقد عملك.`,imageToolNotSupported:``,brave_measure_text_error:{line1:`يبدو أنك تستخدم متصفح Brave مع إعداد <bold>حظر صارم لتتبع البصمة</bold>.`,line2:`قد يؤدي هذا إلى كسر <bold>عناصر النص</bold> في الرسومات الخاصة بك.`,line3:`من المستحسن إلغاء تفعيل هذا الإعداد. يمكنك اتباع <link>هذه الخطوات</link> لفعل ذلك.`,line4:`إذا لم يصلح تعطيل هذا الإعداد طريقة عرض النصوص، الرجاء كتابة <issueLink>بلاغ</issueLink> على حسابنا في GitHub، أو راسلنا على <discordLink>Discord</discordLink>`},libraryElementTypeError:{embeddable:`لا يمكن إضافة العناصر القابلة للتضمين في المكتبة.`,iframe:``,image:`سوف يتم دعم إضافة صور إلى المكتبة قريباً!`},asyncPasteFailedOnRead:``,asyncPasteFailedOnParse:``,copyToSystemClipboardFailed:``},a={selection:`تحديد`,image:`إدراج صورة`,rectangle:`مستطيل`,diamond:`مضلع`,ellipse:`دائرة`,arrow:`سهم`,line:`خط`,freedraw:`رسم`,text:`نص`,library:`مكتبة`,lock:`الحفاظ على أداة التحديد نشطة بعد الرسم`,penMode:`وضع القلم - امنع اللمس`,link:`إضافة/تحديث الرابط للشكل المحدد`,eraser:`ممحاة`,frame:`أداة الإطار`,magicframe:``,embeddable:`تضمين ويب`,laser:`مؤشر ليزر`,hand:`يد (أداة الإزاحة)`,extraTools:`المزيد من أﻷدوات`,mermaidToExcalidraw:``,magicSettings:``},o={canvasActions:`إجراءات اللوحة`,selectedShapeActions:`إجراءات الشكل المحدد`,shapes:`الأشكال`},s={canvasPanning:`لتحريك القماش، اضغط على عجلة الفأرة أو مفتاح المسافة أثناء السحب، أو استخدم أداة اليد`,linearElement:`انقر لبدء نقاط متعددة، اسحب لخط واحد`,freeDraw:`انقر واسحب، افرج عند الانتهاء`,text:`نصيحة: يمكنك أيضًا إضافة نص بالنقر المزدوج في أي مكان بأداة الاختيار`,embeddable:`اضغط مع السحب لإنشاء موقع ويب مضمّن`,text_selected:`انقر نقراً مزدوجاً أو اضغط ادخال لتعديل النص`,text_editing:`اضغط على Esc أو (Ctrl أو Cmd) + Enter لإنهاء التعديل`,linearElementMulti:`انقر فوق النقطة الأخيرة أو اضغط على Esc أو Enter للإنهاء`,lockAngle:`يمكنك تقييد الزاوية بالضغط على SHIFT`,resize:`يمكنك تقييد النسب بالضغط على SHIFT أثناء تغيير الحجم،
@@ -0,0 +1 @@
1
+ import"./chunk-KEIR6QF5-BfrZ3jm6.js";import{o as e}from"./mermaid-parser.core-BB1spMEk.js";export{e as createArchitectureServices};