codeplane-darwin-x64-baseline 29.0.27 → 29.0.29

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 (111) hide show
  1. package/bin/codeplane +0 -0
  2. package/bin/runtime/tui/{_baseUniq-BXCc5S1E-ebr9rttb.js → _baseUniq-BfD7UfsT-jps4dmj6.js} +1 -1
  3. package/bin/runtime/tui/{ar-C7WDtW3h-bpze5df9.js → ar-BYeN3pXe-155y7w1s.js} +1 -1
  4. package/bin/runtime/tui/{ar-CoHVjd7F-07zkrmd5.js → ar-CsVRXOrn-8nb1rkwn.js} +1 -1
  5. package/bin/runtime/tui/{arc-DgVZspTm-0ypezsbp.js → arc-BTlxV9GP-24yz18fx.js} +1 -1
  6. package/bin/runtime/tui/{architectureDiagram-Q4EWVU46-C-LBnatD-qvbzgj8m.js → architectureDiagram-Q4EWVU46-B32q3lAf-3e8c40dc.js} +1 -1
  7. package/bin/runtime/tui/{blockDiagram-DXYQGD6D-7Wy4PzsZ-emv86afh.js → blockDiagram-DXYQGD6D-CbcvnwdO-j1bx77nd.js} +1 -1
  8. package/bin/runtime/tui/{br-DGP42J1P-qcyejd77.js → br-CREbSB32-shvwd30s.js} +1 -1
  9. package/bin/runtime/tui/{br-Cm1fwwtR-23esbz83.js → br-l9My7yvY-jykfx79x.js} +1 -1
  10. package/bin/runtime/tui/{bs-bhMJCGbH-nh565g6n.js → bs-DTB1gccJ-knrfyad5.js} +1 -1
  11. package/bin/runtime/tui/{bs-DYQWDns2-aypp0v5g.js → bs-DhOZrUk6-mfrtqtd1.js} +1 -1
  12. package/bin/runtime/tui/{c4Diagram-AHTNJAMY-CBV2Knv6-q8zc34q4.js → c4Diagram-AHTNJAMY-CwNzZ3PC-prgsdss1.js} +1 -1
  13. package/bin/runtime/tui/channel-oxCztWtt-052dehj8.js +1 -0
  14. package/bin/runtime/tui/{chunk-4BX2VUAB-DlX15Csq-gzxbjh1k.js → chunk-4BX2VUAB-DCEFdtm5-m2jk00xm.js} +1 -1
  15. package/bin/runtime/tui/{chunk-4TB4RGXK-BbFZM4-O-5s2ee0yb.js → chunk-4TB4RGXK-B9mLur-R-edk75snh.js} +1 -1
  16. package/bin/runtime/tui/{chunk-55IACEB6-DEqIdo-w-v92x30ds.js → chunk-55IACEB6-a4gcHkw3-7rpjy5xw.js} +1 -1
  17. package/bin/runtime/tui/{chunk-EDXVE4YY-0kyOG_xt-r8w3yrh8.js → chunk-EDXVE4YY-BhSdG1nS-c4mab1jm.js} +1 -1
  18. package/bin/runtime/tui/{chunk-FMBD7UC4-BhdCY7iu-faxwezph.js → chunk-FMBD7UC4-DuFuEoQM-sngwsdjy.js} +1 -1
  19. package/bin/runtime/tui/{chunk-OYMX7WX6-BvSfrePW-h8fytghk.js → chunk-OYMX7WX6-CU9wOSVg-d1v6xrbh.js} +1 -1
  20. package/bin/runtime/tui/{chunk-QZHKN3VN-B4kK4smI-ssw8597m.js → chunk-QZHKN3VN-DFWe_hTX-wfsefqk3.js} +1 -1
  21. package/bin/runtime/tui/{chunk-YZCP3GAM-BAZg0cIs-wrb9n1kx.js → chunk-YZCP3GAM-CDxGmG6i-c6r64fvz.js} +1 -1
  22. package/bin/runtime/tui/classDiagram-6PBFFD2Q-DbBlh_v1-tg9gjtr2.js +1 -0
  23. package/bin/runtime/tui/classDiagram-v2-HSJHXN6E-DbBlh_v1-tg9gjtr2.js +1 -0
  24. package/bin/runtime/tui/clone-xzZaR_mE-9b7mg33e.js +1 -0
  25. package/bin/runtime/tui/{cose-bilkent-S5V4N54A-v9DhiFwv-t900025f.js → cose-bilkent-S5V4N54A-BnFtAG0--nr6phe98.js} +1 -1
  26. package/bin/runtime/tui/{da-xczuYfI1-049pvcph.js → da-DFOwg2x2-wte0h547.js} +1 -1
  27. package/bin/runtime/tui/{da-CYEOjsPI-94y9fp7w.js → da-VphWawJH-7thaxtf9.js} +1 -1
  28. package/bin/runtime/tui/{dagre-KV5264BT-CFGjacpE-cv4593ch.js → dagre-KV5264BT-Da2qha1j-tp0910k1.js} +1 -1
  29. package/bin/runtime/tui/{de-D_ApD3Lp-67env03q.js → de-BWTZljWf-18a2gc1v.js} +1 -1
  30. package/bin/runtime/tui/{de-BWHKn6LX-syzcyeym.js → de-D0HPnGEL-yr2ay6v5.js} +1 -1
  31. package/bin/runtime/tui/{diagram-5BDNPKRD-DP1WUpCE-azg1t53s.js → diagram-5BDNPKRD-BUp68ftj-8j0n1fj2.js} +1 -1
  32. package/bin/runtime/tui/{diagram-G4DWMVQ6-BrTFxQvp-305regw1.js → diagram-G4DWMVQ6-DvTxSX1G-wm1yrczt.js} +1 -1
  33. package/bin/runtime/tui/{diagram-MMDJMWI5-DV1D3yNM-tvnq3hhc.js → diagram-MMDJMWI5-DyUS0c6f-e44cgeey.js} +1 -1
  34. package/bin/runtime/tui/{diagram-TYMM5635-DHDlqxRo-t7pxy017.js → diagram-TYMM5635-q-0wd4LC-2hbng02y.js} +1 -1
  35. package/bin/runtime/tui/{dialog-connect-provider-Bu4KLQuy-ehppfh4e.js → dialog-connect-provider-CNUrqWk6-9kjtjsqr.js} +2 -2
  36. package/bin/runtime/tui/{dialog-edit-project-uKYzJNxD-0a2nzmfq.js → dialog-edit-project-vp8zSgO3-ft5s1g6v.js} +1 -1
  37. package/bin/runtime/tui/{dialog-fork-lX7VZtPV-x83egj0w.js → dialog-fork-DznmvncP-4hrvf496.js} +1 -1
  38. package/bin/runtime/tui/{dialog-manage-models-BZuWLq4u-dwdas9b6.js → dialog-manage-models-CMvcMz5S-v2bhzcpm.js} +1 -1
  39. package/bin/runtime/tui/{dialog-quick-switcher-FNMUQYgW-qkk8rhm9.js → dialog-quick-switcher-D8VIbyGb-gw1b20hr.js} +1 -1
  40. package/bin/runtime/tui/{dialog-select-directory-C2zCcomM-1s7yxnkb.js → dialog-select-directory-BOqM4AIe-8ee7n3ht.js} +1 -1
  41. package/bin/runtime/tui/{dialog-select-file-BXGfJUaI-x1fnpfrt.js → dialog-select-file-DHEee5CQ-vsbp3m66.js} +1 -1
  42. package/bin/runtime/tui/{dialog-select-mcp-D8P018FT-hccnvbkx.js → dialog-select-mcp-CSpF9uEK-4hmdxg8n.js} +1 -1
  43. package/bin/runtime/tui/{dialog-select-model-unpaid-ZqNhReD2-hkpjksap.js → dialog-select-model-unpaid-a3cfHziA-bn5ph7hy.js} +2 -2
  44. package/bin/runtime/tui/{dialog-select-provider-BQ1tZN31-kyza0h3w.js → dialog-select-provider-C0mRAA1a-fref92pn.js} +1 -1
  45. package/bin/runtime/tui/{dialog-select-server-Dp5Tet44-w23bdak8.js → dialog-select-server-Do9ifHo5-1drz1498.js} +1 -1
  46. package/bin/runtime/tui/{erDiagram-SMLLAGMA-DiPsmx_P-h863e846.js → erDiagram-SMLLAGMA-ZJeV273i-7w5e2sex.js} +1 -1
  47. package/bin/runtime/tui/{es-Bm4f8gjn-avanmr70.js → es--gctLFvl-v6a7b2xz.js} +1 -1
  48. package/bin/runtime/tui/{es-ffI1PtU3-j2qbashc.js → es-7nfJcwlX-27a82pys.js} +1 -1
  49. package/bin/runtime/tui/{file-icon-CUHAYYUI-xgekeymb.js → file-icon-CGxXqMDY-8am7jrws.js} +1 -1
  50. package/bin/runtime/tui/{flowDiagram-DWJPFMVM-BFJRoOYj-7a52m6s2.js → flowDiagram-DWJPFMVM-Djdjywgs-2ypw200w.js} +1 -1
  51. package/bin/runtime/tui/{fr-Bm0j7Aay-dtkpf17v.js → fr-CToiX956-pzjz3qz6.js} +1 -1
  52. package/bin/runtime/tui/{fr-DHvHAp1Q-j9mvgd6f.js → fr-iNBKwJLv-3ez4w1s9.js} +1 -1
  53. package/bin/runtime/tui/{ganttDiagram-T4ZO3ILL-DEcUzDDg-m2angqhx.js → ganttDiagram-T4ZO3ILL-BUuxjBWP-0vghskz1.js} +1 -1
  54. package/bin/runtime/tui/{ghostty-web-DkA_oC48-6my3ek27.js → ghostty-web-C-qqn0yr-mbq3ch97.js} +1 -1
  55. package/bin/runtime/tui/{gitGraphDiagram-UUTBAWPF-DyEWD7iv-yr5pn97y.js → gitGraphDiagram-UUTBAWPF-BbSncmV--67a9f4kt.js} +1 -1
  56. package/bin/runtime/tui/{graph-7N1CdcOt-mgrqhyq6.js → graph-CZKWeYhv-53p6f4qh.js} +1 -1
  57. package/bin/runtime/tui/{home-ojzNiARa-67718yh6.js → home-CH5jMWbN-v8ewez0b.js} +1 -1
  58. package/bin/runtime/tui/{index-Dk9AuGHe-kcn31g1f.js → index-8BjFOjO4-ydpjbfy6.js} +6 -6
  59. package/bin/runtime/tui/{index-CZQK3M02-3hth30dy.css → index-Q8LEoj4f-6wvhwvxf.css} +1 -1
  60. package/bin/runtime/tui/{index-75ynt75d.html → index-rtvgvfq3.html} +2 -2
  61. package/bin/runtime/tui/{infoDiagram-42DDH7IO-g1WD2pcN-etnrabs5.js → infoDiagram-42DDH7IO-DJaCnOew-r13e4030.js} +1 -1
  62. package/bin/runtime/tui/{ishikawaDiagram-UXIWVN3A-D-UCqId0-ypcah34e.js → ishikawaDiagram-UXIWVN3A-K47kP3ph-62rf0z74.js} +1 -1
  63. package/bin/runtime/tui/{ja-DV6qlDOA-3yqnrsnb.js → ja-C6zddKtF-hv04eebd.js} +1 -1
  64. package/bin/runtime/tui/{ja-B5Gdg2t9-r21m9nrd.js → ja-CoysfMhk-7xzdqynq.js} +1 -1
  65. package/bin/runtime/tui/{journeyDiagram-VCZTEJTY-CSwp5Y-c-ehz3ekwe.js → journeyDiagram-VCZTEJTY-CaE7-Haz-8r2c4jnz.js} +1 -1
  66. package/bin/runtime/tui/{kanban-definition-6JOO6SKY-C7WTaGz8-fj06fpsw.js → kanban-definition-6JOO6SKY-Bb-hsY0s-aasfekbw.js} +1 -1
  67. package/bin/runtime/tui/{ko-DNi2zFC1-m7cj5pdq.js → ko-CVZIA0ni-d1jqv1wg.js} +1 -1
  68. package/bin/runtime/tui/{ko-pwsP5uts-wdg2aq56.js → ko-DoOvmC4A-wycn7mcw.js} +1 -1
  69. package/bin/runtime/tui/{layout-CJswCNga-tbatvxc1.js → layout-JyBe0l3F-eqavzyr6.js} +1 -1
  70. package/bin/runtime/tui/{linear-Dto289-h-16r94w31.js → linear-CaE8wR4T-q55sp8sd.js} +1 -1
  71. package/bin/runtime/tui/{list-CT29kQSN-acq35eh1.js → list-DyidJmck-j34zc199.js} +1 -1
  72. package/bin/runtime/tui/{mermaid.core-DbO6n2h4-tg5zx1ng.js → mermaid.core-Ox16xmjh-p50wsj1v.js} +5 -5
  73. package/bin/runtime/tui/{min-CJdsHiRt-n129jggv.js → min-DEpKLwZg-gaycjgsz.js} +1 -1
  74. package/bin/runtime/tui/{mindmap-definition-QFDTVHPH-BkJZCSUH-rp9527h3.js → mindmap-definition-QFDTVHPH-DutsyxQk-w8y39vwx.js} +1 -1
  75. package/bin/runtime/tui/{no-BH_W1RAp-mwg0dchd.js → no-Cx-dl_Gm-mt3q85yb.js} +1 -1
  76. package/bin/runtime/tui/{no-De8BE4vY-ap3qk4hs.js → no-DaNj7mKg-vqnp73h5.js} +1 -1
  77. package/bin/runtime/tui/node-main.js +1 -1
  78. package/bin/runtime/tui/{notifications-B607QxUU-gbgq17mw.js → notifications-DxC0Apej-f8af5r5z.js} +1 -1
  79. package/bin/runtime/tui/{pieDiagram-DEJITSTG-DqnudaQB-gfsh57v9.js → pieDiagram-DEJITSTG-DB-rrD_O-kr64fnvh.js} +1 -1
  80. package/bin/runtime/tui/{pl-Da8eMlcS-s2g6ceqm.js → pl-Bv2Q_WJZ-knsz8q1p.js} +1 -1
  81. package/bin/runtime/tui/{pl-DG-qxxy_-xywv6svq.js → pl-CY_ugA_f-8ayzwqdw.js} +1 -1
  82. package/bin/runtime/tui/{provider-icon-DCNYdPio-zmna8th6.js → provider-icon-DKDLm47a-qg8nj4h7.js} +1 -1
  83. package/bin/runtime/tui/{quadrantDiagram-34T5L4WZ-C_HzUK4S-hxtjy0zx.js → quadrantDiagram-34T5L4WZ-_1xsgMNG-6mqrba52.js} +1 -1
  84. package/bin/runtime/tui/{requirementDiagram-MS252O5E-BgAZJzHP-khy0ha0c.js → requirementDiagram-MS252O5E-DyP17ArS-egcwhdjz.js} +1 -1
  85. package/bin/runtime/tui/{ru-_enNKtGU-ypv353r7.js → ru-BWkh6TkK-6tzvaqta.js} +1 -1
  86. package/bin/runtime/tui/{ru-CHGG5AH5-tdwj88bm.js → ru-DPV-_Ofh-08grk4fe.js} +1 -1
  87. package/bin/runtime/tui/{sankeyDiagram-XADWPNL6-D-PDI1Ve-85bdf32v.js → sankeyDiagram-XADWPNL6-Cbj4cgXb-tgyp51p5.js} +1 -1
  88. package/bin/runtime/tui/{sequenceDiagram-FGHM5R23-BX2zoePz-dzdrnppv.js → sequenceDiagram-FGHM5R23-DM0mxL0d-9s2z4ymr.js} +1 -1
  89. package/bin/runtime/tui/{session-DVJbvogH-y8vqmchd.js → session-BS25gURC-q41z29y8.js} +27 -27
  90. package/bin/runtime/tui/{settings-DlhhO5F3-tn503twe.js → settings-VAqPDyCs-bjk2qas8.js} +1 -1
  91. package/bin/runtime/tui/{stateDiagram-FHFEXIEX-BqaWDtLL-kag26kc5.js → stateDiagram-FHFEXIEX-DfHNnVKk-hmg2fg64.js} +1 -1
  92. package/bin/runtime/tui/stateDiagram-v2-QKLJ7IA2-DHw3jS5u-nd05n2r6.js +1 -0
  93. package/bin/runtime/tui/{th-CvZ2XK4O-6n653kcv.js → th-BYy61-Pk-a91c289v.js} +1 -1
  94. package/bin/runtime/tui/{th-uv889OOl-xqgc6myg.js → th-RnCwfRls-1ht7y5qy.js} +1 -1
  95. package/bin/runtime/tui/{timeline-definition-GMOUNBTQ-BTF1SJ45-zm04s33j.js → timeline-definition-GMOUNBTQ-gFRUC-Xb-cg6s7wvv.js} +1 -1
  96. package/bin/runtime/tui/{tr-viLz0J-6-36cfsh80.js → tr-Bg30jRK1-g6z60z21.js} +1 -1
  97. package/bin/runtime/tui/{tr-DQDhMHN2-8t7z6sdk.js → tr-WXFhlpI_-y4xpb353.js} +1 -1
  98. package/bin/runtime/tui/{vennDiagram-DHZGUBPP-C2-K2e9q-cxtkt1h9.js → vennDiagram-DHZGUBPP-Ma9CzSYb-jb833vc6.js} +1 -1
  99. package/bin/runtime/tui/{wardley-RL74JXVD-BjFgiMeD-0pjpked9.js → wardley-RL74JXVD-Dkz2_xIB-bf1dhrw4.js} +1 -1
  100. package/bin/runtime/tui/{wardleyDiagram-NUSXRM2D-DVeIGY-b-6mpenc28.js → wardleyDiagram-NUSXRM2D-DPAOUtmF-k82phyn1.js} +1 -1
  101. package/bin/runtime/tui/{xychartDiagram-5P7HB3ND-CzrG1jGW-693htcj1.js → xychartDiagram-5P7HB3ND-Bagxlbib-ewzfmy14.js} +1 -1
  102. package/bin/runtime/tui/{zh-CZmCSE6f-cvfrbby6.js → zh-DJ2QlV_g-pn40fz61.js} +1 -1
  103. package/bin/runtime/tui/{zh-Da6OjCLD-ns7ykhxz.js → zh-Do5Xw6ep-djtna5mp.js} +1 -1
  104. package/bin/runtime/tui/{zht-BWgeUI0m-azyswzeg.js → zht-DCLHk-2v-ncme9raw.js} +1 -1
  105. package/bin/runtime/tui/{zht-CkYkAZwe-d5he8z0q.js → zht-DJRgZ82L-vf8mm8jw.js} +1 -1
  106. package/package.json +1 -1
  107. package/bin/runtime/tui/channel-BmkHrkgd-5j57arnv.js +0 -1
  108. package/bin/runtime/tui/classDiagram-6PBFFD2Q-At4KnqAM-vmk2fhk5.js +0 -1
  109. package/bin/runtime/tui/classDiagram-v2-HSJHXN6E-At4KnqAM-vmk2fhk5.js +0 -1
  110. package/bin/runtime/tui/clone-Daqv6ynS-5vd51yp7.js +0 -1
  111. package/bin/runtime/tui/stateDiagram-v2-QKLJ7IA2-Qo190tHS-dj6ctr9r.js +0 -1
@@ -1 +1 @@
1
- import{a as e}from"./index-Dk9AuGHe.js";const i={"ui.sessionReview.title":"Sessionsændringer","ui.sessionReview.title.lastTurn":"Ændringer fra sidste tur","ui.sessionReview.diffStyle.unified":"Samlet","ui.sessionReview.diffStyle.split":"Opdelt","ui.sessionReview.openFile":"Åbn fil","ui.sessionReview.selection.line":"linje {{line}}","ui.sessionReview.selection.lines":"linjer {{start}}-{{end}}","ui.sessionReview.expandAll":"Udvid alle","ui.sessionReview.collapseAll":"Skjul alle","ui.sessionReview.change.added":"Tilføjet","ui.sessionReview.change.removed":"Fjernet","ui.sessionReview.change.modified":"Ændret","ui.sessionReview.image.loading":"Indlæser...","ui.sessionReview.image.placeholder":"Billede","ui.sessionReview.largeDiff.title":"Diff er for stor til at blive vist","ui.sessionReview.largeDiff.meta":"Grænse: {{limit}} ændrede linjer. Nuværende: {{current}} ændrede linjer.","ui.sessionReview.largeDiff.renderAnyway":"Vis alligevel","ui.fileMedia.kind.image":"billede","ui.fileMedia.kind.audio":"lyd","ui.fileMedia.state.removed":"Fjernet: {{kind}}","ui.fileMedia.state.loading":"Indlæser {{kind}}...","ui.fileMedia.state.error":"Fejl ved indlæsning: {{kind}}","ui.fileMedia.state.unavailable":"Utilgængelig: {{kind}}","ui.fileMedia.binary.title":"Binær fil","ui.fileMedia.binary.description.path":"{{path}} kan ikke vises, fordi det er en binær fil.","ui.fileMedia.binary.description.default":"Denne fil kan ikke vises, fordi det er en binær fil.","ui.lineComment.label.prefix":"Kommenter på ","ui.lineComment.editorLabel.prefix":"Kommenterer på ","ui.lineComment.placeholder":"Tilføj kommentar","ui.lineComment.submit":"Kommenter","ui.sessionTurn.steps.show":"Vis trin","ui.sessionTurn.steps.hide":"Skjul trin","ui.sessionTurn.summary.response":"Svar","ui.sessionTurn.diff.showMore":"Vis flere ændringer ({{count}})","ui.sessionTurn.retry.retrying":"prøver igen","ui.sessionTurn.retry.inSeconds":"om {{seconds}}s","ui.sessionTurn.retry.attempt":"forsøg #{{attempt}}","ui.sessionTurn.retry.attemptLine":"{{line}} - forsøg #{{attempt}}","ui.sessionTurn.retry.geminiHot":"gemini er meget overbelastet lige nu","ui.sessionTurn.error.freeUsageExceeded":"Gratis forbrug overskredet","ui.sessionTurn.error.addCredits":"Tilføj kreditter","ui.sessionTurn.status.delegating":"Delegerer arbejde","ui.sessionTurn.status.planning":"Planlægger næste trin","ui.sessionTurn.status.gatheringContext":"Udforsker","ui.sessionTurn.status.gatheredContext":"Udforsket","ui.sessionTurn.status.searchingCodebase":"Søger i koden","ui.sessionTurn.status.searchingWeb":"Søger på nettet","ui.sessionTurn.status.makingEdits":"Laver ændringer","ui.sessionTurn.status.runningCommands":"Kører kommandoer","ui.sessionTurn.status.thinking":"Tænker","ui.sessionTurn.status.thinkingWithTopic":"Tænker - {{topic}}","ui.sessionTurn.status.gatheringThoughts":"Samler tanker","ui.sessionTurn.status.consideringNextSteps":"Overvejer næste skridt","ui.messagePart.questions.dismissed":"Spørgsmål afvist","ui.messagePart.compaction":"Session komprimeret","ui.messagePart.context.read.one":"{{count}} læsning","ui.messagePart.context.read.other":"{{count}} læsninger","ui.messagePart.context.search.one":"{{count}} søgning","ui.messagePart.context.search.other":"{{count}} søgninger","ui.messagePart.context.list.one":"{{count}} liste","ui.messagePart.context.list.other":"{{count}} lister","ui.messagePart.diagnostic.error":"Fejl","ui.messagePart.title.edit":"Rediger","ui.messagePart.title.write":"Skriv","ui.messagePart.option.typeOwnAnswer":"Skriv dit eget svar","ui.messagePart.review.title":"Gennemgå dine svar","ui.list.loading":"Indlæser","ui.list.empty":"Ingen resultater","ui.list.clearFilter":"Ryd filter","ui.list.emptyWithFilter.prefix":"Ingen resultater for","ui.messageNav.newMessage":"Ny besked","ui.textField.copyToClipboard":"Kopier til udklipsholder","ui.textField.copyLink":"Kopier link","ui.textField.copied":"Kopieret","ui.imagePreview.alt":"Billedforhåndsvisning","ui.scrollView.ariaLabel":"rulbart indhold","ui.tool.read":"Læs","ui.tool.loaded":"Indlæst","ui.tool.list":"Liste","ui.tool.webfetch":"Webhentning","ui.tool.websearch":"Websøgning","ui.tool.codesearch":"Kodesøgning","ui.tool.todos":"Opgaver","ui.tool.todos.read":"Læs opgaver","ui.tool.questions":"Spørgsmål","ui.common.file.one":"fil","ui.common.file.other":"filer","ui.common.question.one":"spørgsmål","ui.common.question.other":"spørgsmål","ui.common.add":"Tilføj","ui.common.back":"Tilbage","ui.common.cancel":"Annuller","ui.common.confirm":"Bekræft","ui.common.dismiss":"Afvis","ui.common.close":"Luk","ui.common.next":"Næste","ui.common.submit":"Indsend","ui.permission.deny":"Afvis","ui.permission.allowAlways":"Tillad altid","ui.permission.allowOnce":"Tillad én gang","ui.message.expand":"Udvid besked","ui.message.collapse":"Skjul besked","ui.message.copy":"Kopier","ui.message.copyMessage":"Kopier besked","ui.message.forkMessage":"Forgren til ny session","ui.message.revertMessage":"Nulstil til dette punkt","ui.message.copyResponse":"Kopier svar","ui.message.copied":"Kopieret!","ui.message.interrupted":"Afbrudt","ui.message.queued":"I kø","ui.message.attachment.alt":"vedhæftning","ui.patch.action.deleted":"Slettet","ui.patch.action.created":"Oprettet","ui.patch.action.moved":"Flyttet","ui.patch.action.patched":"Patchet","ui.question.subtitle.answered":"{{count}} besvaret","ui.question.answer.none":"(intet svar)","ui.question.review.notAnswered":"(ikke besvaret)","ui.question.multiHint":"Vælg alle der gælder","ui.question.singleHint":"Vælg ét svar","ui.question.custom.placeholder":"Skriv dit svar...","ui.fileSearch.previousMatch":"Forrige match","ui.fileSearch.nextMatch":"Næste match","ui.fileSearch.close":"Luk søgning","ui.tool.task":"Opgave","ui.tool.skill":"Færdighed","ui.basicTool.called":"Kaldte `{{tool}}`","ui.toolErrorCard.failed":"Fejlede","ui.toolErrorCard.copyError":"Kopier fejl"},t={...e,...i};export{t as dict};
1
+ import{a as e}from"./index-8BjFOjO4.js";const i={"ui.sessionReview.title":"Sessionsændringer","ui.sessionReview.title.lastTurn":"Ændringer fra sidste tur","ui.sessionReview.diffStyle.unified":"Samlet","ui.sessionReview.diffStyle.split":"Opdelt","ui.sessionReview.openFile":"Åbn fil","ui.sessionReview.selection.line":"linje {{line}}","ui.sessionReview.selection.lines":"linjer {{start}}-{{end}}","ui.sessionReview.expandAll":"Udvid alle","ui.sessionReview.collapseAll":"Skjul alle","ui.sessionReview.change.added":"Tilføjet","ui.sessionReview.change.removed":"Fjernet","ui.sessionReview.change.modified":"Ændret","ui.sessionReview.image.loading":"Indlæser...","ui.sessionReview.image.placeholder":"Billede","ui.sessionReview.largeDiff.title":"Diff er for stor til at blive vist","ui.sessionReview.largeDiff.meta":"Grænse: {{limit}} ændrede linjer. Nuværende: {{current}} ændrede linjer.","ui.sessionReview.largeDiff.renderAnyway":"Vis alligevel","ui.fileMedia.kind.image":"billede","ui.fileMedia.kind.audio":"lyd","ui.fileMedia.state.removed":"Fjernet: {{kind}}","ui.fileMedia.state.loading":"Indlæser {{kind}}...","ui.fileMedia.state.error":"Fejl ved indlæsning: {{kind}}","ui.fileMedia.state.unavailable":"Utilgængelig: {{kind}}","ui.fileMedia.binary.title":"Binær fil","ui.fileMedia.binary.description.path":"{{path}} kan ikke vises, fordi det er en binær fil.","ui.fileMedia.binary.description.default":"Denne fil kan ikke vises, fordi det er en binær fil.","ui.lineComment.label.prefix":"Kommenter på ","ui.lineComment.editorLabel.prefix":"Kommenterer på ","ui.lineComment.placeholder":"Tilføj kommentar","ui.lineComment.submit":"Kommenter","ui.sessionTurn.steps.show":"Vis trin","ui.sessionTurn.steps.hide":"Skjul trin","ui.sessionTurn.summary.response":"Svar","ui.sessionTurn.diff.showMore":"Vis flere ændringer ({{count}})","ui.sessionTurn.retry.retrying":"prøver igen","ui.sessionTurn.retry.inSeconds":"om {{seconds}}s","ui.sessionTurn.retry.attempt":"forsøg #{{attempt}}","ui.sessionTurn.retry.attemptLine":"{{line}} - forsøg #{{attempt}}","ui.sessionTurn.retry.geminiHot":"gemini er meget overbelastet lige nu","ui.sessionTurn.error.freeUsageExceeded":"Gratis forbrug overskredet","ui.sessionTurn.error.addCredits":"Tilføj kreditter","ui.sessionTurn.status.delegating":"Delegerer arbejde","ui.sessionTurn.status.planning":"Planlægger næste trin","ui.sessionTurn.status.gatheringContext":"Udforsker","ui.sessionTurn.status.gatheredContext":"Udforsket","ui.sessionTurn.status.searchingCodebase":"Søger i koden","ui.sessionTurn.status.searchingWeb":"Søger på nettet","ui.sessionTurn.status.makingEdits":"Laver ændringer","ui.sessionTurn.status.runningCommands":"Kører kommandoer","ui.sessionTurn.status.thinking":"Tænker","ui.sessionTurn.status.thinkingWithTopic":"Tænker - {{topic}}","ui.sessionTurn.status.gatheringThoughts":"Samler tanker","ui.sessionTurn.status.consideringNextSteps":"Overvejer næste skridt","ui.messagePart.questions.dismissed":"Spørgsmål afvist","ui.messagePart.compaction":"Session komprimeret","ui.messagePart.context.read.one":"{{count}} læsning","ui.messagePart.context.read.other":"{{count}} læsninger","ui.messagePart.context.search.one":"{{count}} søgning","ui.messagePart.context.search.other":"{{count}} søgninger","ui.messagePart.context.list.one":"{{count}} liste","ui.messagePart.context.list.other":"{{count}} lister","ui.messagePart.diagnostic.error":"Fejl","ui.messagePart.title.edit":"Rediger","ui.messagePart.title.write":"Skriv","ui.messagePart.option.typeOwnAnswer":"Skriv dit eget svar","ui.messagePart.review.title":"Gennemgå dine svar","ui.list.loading":"Indlæser","ui.list.empty":"Ingen resultater","ui.list.clearFilter":"Ryd filter","ui.list.emptyWithFilter.prefix":"Ingen resultater for","ui.messageNav.newMessage":"Ny besked","ui.textField.copyToClipboard":"Kopier til udklipsholder","ui.textField.copyLink":"Kopier link","ui.textField.copied":"Kopieret","ui.imagePreview.alt":"Billedforhåndsvisning","ui.scrollView.ariaLabel":"rulbart indhold","ui.tool.read":"Læs","ui.tool.loaded":"Indlæst","ui.tool.list":"Liste","ui.tool.webfetch":"Webhentning","ui.tool.websearch":"Websøgning","ui.tool.codesearch":"Kodesøgning","ui.tool.todos":"Opgaver","ui.tool.todos.read":"Læs opgaver","ui.tool.questions":"Spørgsmål","ui.common.file.one":"fil","ui.common.file.other":"filer","ui.common.question.one":"spørgsmål","ui.common.question.other":"spørgsmål","ui.common.add":"Tilføj","ui.common.back":"Tilbage","ui.common.cancel":"Annuller","ui.common.confirm":"Bekræft","ui.common.dismiss":"Afvis","ui.common.close":"Luk","ui.common.next":"Næste","ui.common.submit":"Indsend","ui.permission.deny":"Afvis","ui.permission.allowAlways":"Tillad altid","ui.permission.allowOnce":"Tillad én gang","ui.message.expand":"Udvid besked","ui.message.collapse":"Skjul besked","ui.message.copy":"Kopier","ui.message.copyMessage":"Kopier besked","ui.message.forkMessage":"Forgren til ny session","ui.message.revertMessage":"Nulstil til dette punkt","ui.message.copyResponse":"Kopier svar","ui.message.copied":"Kopieret!","ui.message.interrupted":"Afbrudt","ui.message.queued":"I kø","ui.message.attachment.alt":"vedhæftning","ui.patch.action.deleted":"Slettet","ui.patch.action.created":"Oprettet","ui.patch.action.moved":"Flyttet","ui.patch.action.patched":"Patchet","ui.question.subtitle.answered":"{{count}} besvaret","ui.question.answer.none":"(intet svar)","ui.question.review.notAnswered":"(ikke besvaret)","ui.question.multiHint":"Vælg alle der gælder","ui.question.singleHint":"Vælg ét svar","ui.question.custom.placeholder":"Skriv dit svar...","ui.fileSearch.previousMatch":"Forrige match","ui.fileSearch.nextMatch":"Næste match","ui.fileSearch.close":"Luk søgning","ui.tool.task":"Opgave","ui.tool.skill":"Færdighed","ui.basicTool.called":"Kaldte `{{tool}}`","ui.toolErrorCard.failed":"Fejlede","ui.toolErrorCard.copyError":"Kopier fejl"},t={...e,...i};export{t as dict};
@@ -1,4 +1,4 @@
1
- import{_ as w,as as F,at as Y,au as _,av as H,l as i,c as V,aw as z,ax as U,ah as $,an as q,ai as P,ag as K,ay as Q,az as W,aA as Z}from"./mermaid.core-DbO6n2h4.js";import{i as b,G as A}from"./graph-7N1CdcOt.js";import{l as I}from"./layout-CJswCNga.js";import{c as L}from"./clone-Daqv6ynS.js";import{m as B}from"./min-CJdsHiRt.js";import"./index-Dk9AuGHe.js";import"./_baseUniq-BXCc5S1E.js";function h(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:ee(e),edges:ne(e)};return b(e.graph())||(t.value=L(e.graph())),t}function ee(e){return B(e.nodes(),function(t){var n=e.node(t),a=e.parent(t),r={v:t};return b(n)||(r.value=n),b(a)||(r.parent=a),r})}function ne(e){return B(e.edges(),function(t){var n=e.edge(t),a={v:t.v,w:t.w};return b(t.name)||(a.name=t.name),b(n)||(a.value=n),a})}var d=new Map,p=new Map,J=new Map,te=w(()=>{p.clear(),J.clear(),d.clear()},"clear"),D=w((e,t)=>{const n=p.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),se=w((e,t)=>{const n=p.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||D(e.v,t)||D(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),G=w((e,t,n,a)=>{i.warn("Copying children of ",e,"root",a,"data",t.node(e),a);const r=t.children(e)||[];e!==a&&r.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",r),r.forEach(o=>{if(t.children(o).length>0)G(o,t,n,a);else{const l=t.node(o);i.info("cp ",o," to ",a," with parent ",e),n.setNode(o,l),a!==t.parent(o)&&(i.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==a&&o!==e?(i.debug("Setting parent",o,e),n.setParent(o,e)):(i.info("In copy ",e,"root",a,"data",t.node(e),a),i.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==a,"node!==clusterId",o!==e));const u=t.edges(o);i.debug("Copying Edges",u),u.forEach(c=>{i.info("Edge",c);const m=t.edge(c.v,c.w,c.name);i.info("Edge data",m,a);try{se(c,a)?(i.info("Copying as ",c.v,c.w,m,c.name),n.setEdge(c.v,c.w,m,c.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",c.v,"-->",c.w," rootId: ",a," clusterId:",e)}catch(v){i.error(v)}})}i.debug("Removing node",o),t.removeNode(o)})},"copy"),R=w((e,t)=>{const n=t.children(e);let a=[...n];for(const r of n)J.set(r,e),a=[...a,...R(r,t)];return a},"extractDescendants"),ie=w((e,t,n)=>{const a=e.edges().filter(c=>c.v===t||c.w===t),r=e.edges().filter(c=>c.v===n||c.w===n),o=a.map(c=>({v:c.v===t?n:c.v,w:c.w===t?t:c.w})),l=r.map(c=>({v:c.v,w:c.w}));return o.filter(c=>l.some(m=>c.v===m.v&&c.w===m.w))},"findCommonEdges"),C=w((e,t,n)=>{const a=t.children(e);if(i.trace("Searching children of id ",e,a),a.length<1)return e;let r;for(const o of a){const l=C(o,t,n),u=ie(t,n,l);if(l)if(u.length>0)r=l;else return l}return r},"findNonClusterChild"),k=w(e=>!d.has(e)||!d.get(e).externalConnections?e:d.has(e)?d.get(e).id:e,"getAnchorId"),re=w((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",C(n,e,n)),p.set(n,R(n,e)),d.set(n,{id:C(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const a=e.children(n),r=e.edges();a.length>0?(i.debug("Cluster identified",n,p),r.forEach(o=>{const l=D(o.v,n),u=D(o.w,n);l^u&&(i.warn("Edge: ",o," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",p.get(n)),d.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,p)});for(let n of d.keys()){const a=d.get(n).id,r=e.parent(a);r!==n&&d.has(r)&&!d.get(r).externalConnections&&(d.get(n).id=r)}e.edges().forEach(function(n){const a=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let r=n.v,o=n.w;if(i.warn("Fix XXX",d,"ids:",n.v,n.w,"Translating: ",d.get(n.v)," --- ",d.get(n.w)),d.get(n.v)||d.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),r=k(n.v),o=k(n.w),e.removeEdge(n.v,n.w,n.name),r!==n.v){const l=e.parent(r);d.get(l).externalConnections=!0,a.fromCluster=n.v}if(o!==n.w){const l=e.parent(o);d.get(l).externalConnections=!0,a.toCluster=n.w}i.warn("Fix Replacing with XXX",r,o,n.name),e.setEdge(r,o,a,n.name)}}),i.warn("Adjusted Graph",h(e)),T(e,0),i.trace(d)},"adjustClustersAndEdges"),T=w((e,t)=>{if(i.warn("extractor - ",t,h(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),a=!1;for(const r of n){const o=e.children(r);a=a||o.length>0}if(!a){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const r of n)if(i.debug("Extracting node",r,d,d.has(r)&&!d.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!d.has(r))i.debug("Not a cluster",r,t);else if(!d.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){i.warn("Cluster without external connections, without a parent and with children",r,t);let l=e.graph().rankdir==="TB"?"LR":"TB";d.get(r)?.clusterData?.dir&&(l=d.get(r).clusterData.dir,i.warn("Fixing dir",d.get(r).clusterData.dir,l));const u=new A({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",h(e)),G(r,e,u,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:d.get(r).clusterData,label:d.get(r).label,graph:u}),i.warn("New graph after copy node: (",r,")",h(u)),i.debug("Old graph after copy",h(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!d.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(d);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const o=e.node(r);i.warn(" Now next level",r,o),o?.clusterNode&&T(o.graph,t+1)}},"extractor"),M=w((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(a=>{const r=e.children(a),o=M(e,r);n=[...n,...o]}),n},"sorter"),oe=w(e=>M(e,e.children()),"sortNodesByHierarchy"),j=w(async(e,t,n,a,r,o)=>{i.warn("Graph in recursive render:XAX",h(t),r);const l=t.graph().rankdir;i.trace("Dir in recursive render - dir:",l);const u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const c=u.insert("g").attr("class","clusters"),m=u.insert("g").attr("class","edgePaths"),v=u.insert("g").attr("class","edgeLabels"),X=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(f){const s=t.node(f);if(r!==void 0){const g=JSON.parse(JSON.stringify(r.clusterData));i.trace(`Setting data for parent cluster XXX
1
+ import{_ as w,as as F,at as Y,au as _,av as H,l as i,c as V,aw as z,ax as U,ah as $,an as q,ai as P,ag as K,ay as Q,az as W,aA as Z}from"./mermaid.core-Ox16xmjh.js";import{i as b,G as A}from"./graph-CZKWeYhv.js";import{l as I}from"./layout-JyBe0l3F.js";import{c as L}from"./clone-xzZaR_mE.js";import{m as B}from"./min-DEpKLwZg.js";import"./index-8BjFOjO4.js";import"./_baseUniq-BfD7UfsT.js";function h(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:ee(e),edges:ne(e)};return b(e.graph())||(t.value=L(e.graph())),t}function ee(e){return B(e.nodes(),function(t){var n=e.node(t),a=e.parent(t),r={v:t};return b(n)||(r.value=n),b(a)||(r.parent=a),r})}function ne(e){return B(e.edges(),function(t){var n=e.edge(t),a={v:t.v,w:t.w};return b(t.name)||(a.name=t.name),b(n)||(a.value=n),a})}var d=new Map,p=new Map,J=new Map,te=w(()=>{p.clear(),J.clear(),d.clear()},"clear"),D=w((e,t)=>{const n=p.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),se=w((e,t)=>{const n=p.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||D(e.v,t)||D(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),G=w((e,t,n,a)=>{i.warn("Copying children of ",e,"root",a,"data",t.node(e),a);const r=t.children(e)||[];e!==a&&r.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",r),r.forEach(o=>{if(t.children(o).length>0)G(o,t,n,a);else{const l=t.node(o);i.info("cp ",o," to ",a," with parent ",e),n.setNode(o,l),a!==t.parent(o)&&(i.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==a&&o!==e?(i.debug("Setting parent",o,e),n.setParent(o,e)):(i.info("In copy ",e,"root",a,"data",t.node(e),a),i.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==a,"node!==clusterId",o!==e));const u=t.edges(o);i.debug("Copying Edges",u),u.forEach(c=>{i.info("Edge",c);const m=t.edge(c.v,c.w,c.name);i.info("Edge data",m,a);try{se(c,a)?(i.info("Copying as ",c.v,c.w,m,c.name),n.setEdge(c.v,c.w,m,c.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",c.v,"-->",c.w," rootId: ",a," clusterId:",e)}catch(v){i.error(v)}})}i.debug("Removing node",o),t.removeNode(o)})},"copy"),R=w((e,t)=>{const n=t.children(e);let a=[...n];for(const r of n)J.set(r,e),a=[...a,...R(r,t)];return a},"extractDescendants"),ie=w((e,t,n)=>{const a=e.edges().filter(c=>c.v===t||c.w===t),r=e.edges().filter(c=>c.v===n||c.w===n),o=a.map(c=>({v:c.v===t?n:c.v,w:c.w===t?t:c.w})),l=r.map(c=>({v:c.v,w:c.w}));return o.filter(c=>l.some(m=>c.v===m.v&&c.w===m.w))},"findCommonEdges"),C=w((e,t,n)=>{const a=t.children(e);if(i.trace("Searching children of id ",e,a),a.length<1)return e;let r;for(const o of a){const l=C(o,t,n),u=ie(t,n,l);if(l)if(u.length>0)r=l;else return l}return r},"findNonClusterChild"),k=w(e=>!d.has(e)||!d.get(e).externalConnections?e:d.has(e)?d.get(e).id:e,"getAnchorId"),re=w((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",C(n,e,n)),p.set(n,R(n,e)),d.set(n,{id:C(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const a=e.children(n),r=e.edges();a.length>0?(i.debug("Cluster identified",n,p),r.forEach(o=>{const l=D(o.v,n),u=D(o.w,n);l^u&&(i.warn("Edge: ",o," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",p.get(n)),d.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,p)});for(let n of d.keys()){const a=d.get(n).id,r=e.parent(a);r!==n&&d.has(r)&&!d.get(r).externalConnections&&(d.get(n).id=r)}e.edges().forEach(function(n){const a=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let r=n.v,o=n.w;if(i.warn("Fix XXX",d,"ids:",n.v,n.w,"Translating: ",d.get(n.v)," --- ",d.get(n.w)),d.get(n.v)||d.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),r=k(n.v),o=k(n.w),e.removeEdge(n.v,n.w,n.name),r!==n.v){const l=e.parent(r);d.get(l).externalConnections=!0,a.fromCluster=n.v}if(o!==n.w){const l=e.parent(o);d.get(l).externalConnections=!0,a.toCluster=n.w}i.warn("Fix Replacing with XXX",r,o,n.name),e.setEdge(r,o,a,n.name)}}),i.warn("Adjusted Graph",h(e)),T(e,0),i.trace(d)},"adjustClustersAndEdges"),T=w((e,t)=>{if(i.warn("extractor - ",t,h(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),a=!1;for(const r of n){const o=e.children(r);a=a||o.length>0}if(!a){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const r of n)if(i.debug("Extracting node",r,d,d.has(r)&&!d.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!d.has(r))i.debug("Not a cluster",r,t);else if(!d.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){i.warn("Cluster without external connections, without a parent and with children",r,t);let l=e.graph().rankdir==="TB"?"LR":"TB";d.get(r)?.clusterData?.dir&&(l=d.get(r).clusterData.dir,i.warn("Fixing dir",d.get(r).clusterData.dir,l));const u=new A({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",h(e)),G(r,e,u,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:d.get(r).clusterData,label:d.get(r).label,graph:u}),i.warn("New graph after copy node: (",r,")",h(u)),i.debug("Old graph after copy",h(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!d.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(d);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const o=e.node(r);i.warn(" Now next level",r,o),o?.clusterNode&&T(o.graph,t+1)}},"extractor"),M=w((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(a=>{const r=e.children(a),o=M(e,r);n=[...n,...o]}),n},"sorter"),oe=w(e=>M(e,e.children()),"sortNodesByHierarchy"),j=w(async(e,t,n,a,r,o)=>{i.warn("Graph in recursive render:XAX",h(t),r);const l=t.graph().rankdir;i.trace("Dir in recursive render - dir:",l);const u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const c=u.insert("g").attr("class","clusters"),m=u.insert("g").attr("class","edgePaths"),v=u.insert("g").attr("class","edgeLabels"),X=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(f){const s=t.node(f);if(r!==void 0){const g=JSON.parse(JSON.stringify(r.clusterData));i.trace(`Setting data for parent cluster XXX
2
2
  Node.id = `,f,`
3
3
  data=`,g.height,`
4
4
  Parent cluster`,r.height),t.setNode(r.id,g),t.parent(f)||(i.trace("Setting parent",f,r.id),t.setParent(f,r.id,g))}if(i.info("(Insert) Node XXX"+f+": "+JSON.stringify(t.node(f))),s?.clusterNode){i.info("Cluster identified XBX",f,s.width,t.node(f));const{ranksep:g,nodesep:E}=t.graph();s.graph.setGraph({...s.graph.graph(),ranksep:g+25,nodesep:E});const N=await j(X,s.graph,n,a,t.node(f),o),x=N.elem;z(s,x),s.diff=N.diff||0,i.info("New compound node after recursive render XAX",f,"width",s.width,"height",s.height),U(x,s)}else t.children(f).length>0?(i.trace("Cluster - the non recursive path XBX",f,s.id,s,s.width,"Graph:",t),i.trace(C(s.id,t)),d.set(s.id,{id:C(s.id,t),node:s})):(i.trace("Node - the non recursive path XAX",f,X,t.node(f),l),await $(X,t.node(f),{config:o,dir:l}))})),await w(async()=>{const f=t.edges().map(async function(s){const g=t.edge(s.v,s.w,s.name);i.info("Edge "+s.v+" -> "+s.w+": "+JSON.stringify(s)),i.info("Edge "+s.v+" -> "+s.w+": ",s," ",JSON.stringify(t.edge(s))),i.info("Fix",d,"ids:",s.v,s.w,"Translating: ",d.get(s.v),d.get(s.w)),await Z(v,g)});await Promise.all(f)},"processEdges")(),i.info("Graph before layout:",JSON.stringify(h(t))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),I(t),i.info("Graph after layout:",JSON.stringify(h(t)));let O=0,{subGraphTitleTotalMargin:S}=q(o);return await Promise.all(oe(t).map(async function(f){const s=t.node(f);if(i.info("Position XBX => "+f+": ("+s.x,","+s.y,") width: ",s.width," height: ",s.height),s?.clusterNode)s.y+=S,i.info("A tainted cluster node XBX1",f,s.id,s.width,s.height,s.x,s.y,t.parent(f)),d.get(s.id).node=s,P(s);else if(t.children(f).length>0){i.info("A pure cluster node XBX1",f,s.id,s.x,s.y,s.width,s.height,t.parent(f)),s.height+=S,t.node(s.parentId);const g=s?.padding/2||0,E=s?.labelBBox?.height||0,N=E-g||0;i.debug("OffsetY",N,"labelHeight",E,"halfPadding",g),await K(c,s),d.get(s.id).node=s}else{const g=t.node(s.parentId);s.y+=S/2,i.info("A regular node XBX1 - using the padding",s.id,"parent",s.parentId,s.width,s.height,s.x,s.y,"offsetY",s.offsetY,"parent",g,g?.offsetY,s),P(s)}})),t.edges().forEach(function(f){const s=t.edge(f);i.info("Edge "+f.v+" -> "+f.w+": "+JSON.stringify(s),s),s.points.forEach(x=>x.y+=S/2);const g=t.node(f.v);var E=t.node(f.w);const N=Q(m,s,d,n,g,E,a);W(s,N)}),t.nodes().forEach(function(f){const s=t.node(f);i.info(f,s.type,s.diff),s.isGroup&&(O=s.diff)}),i.warn("Returning from recursive render XAX",u,O),{elem:u,diff:O}},"recursiveRender"),we=w(async(e,t)=>{const n=new A({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),a=t.select("g");F(a,e.markers,e.type,e.diagramId),Y(),_(),H(),te(),e.nodes.forEach(o=>{n.setNode(o.id,{...o}),o.parentId&&n.setParent(o.id,o.parentId)}),i.debug("Edges:",e.edges),e.edges.forEach(o=>{if(o.start===o.end){const l=o.start,u=l+"---"+l+"---1",c=l+"---"+l+"---2",m=n.node(l);n.setNode(u,{domId:u,id:u,parentId:m.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(u,m.parentId),n.setNode(c,{domId:c,id:c,parentId:m.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(c,m.parentId);const v=structuredClone(o),X=structuredClone(o),y=structuredClone(o);v.label="",v.arrowTypeEnd="none",v.id=l+"-cyclic-special-1",X.arrowTypeStart="none",X.arrowTypeEnd="none",X.id=l+"-cyclic-special-mid",y.label="",m.isGroup&&(v.fromCluster=l,y.toCluster=l),y.id=l+"-cyclic-special-2",y.arrowTypeStart="none",n.setEdge(l,u,v,l+"-cyclic-special-0"),n.setEdge(u,c,X,l+"-cyclic-special-1"),n.setEdge(c,l,y,l+"-cyc<lic-special-2")}else n.setEdge(o.start,o.end,{...o},o.id)}),i.warn("Graph at first:",JSON.stringify(h(n))),re(n),i.warn("Graph after XAX:",JSON.stringify(h(n)));const r=V();await j(a,n,e.type,e.diagramId,void 0,r)},"render");export{we as render};
@@ -1,3 +1,3 @@
1
- import{d as e}from"./index-Dk9AuGHe.js";const n={"command.category.suggested":"Vorgeschlagen","command.category.view":"Ansicht","command.category.project":"Projekt","command.category.provider":"Anbieter","command.category.session":"Sitzung","command.category.theme":"Thema","command.category.language":"Sprache","command.category.file":"Datei","command.category.context":"Kontext","command.category.model":"Modell","command.category.permissions":"Berechtigungen","command.category.workspace":"Arbeitsbereich","command.category.settings":"Einstellungen","theme.scheme.light":"Hell","theme.scheme.dark":"Dunkel","command.sidebar.toggle":"Seitenleiste umschalten","command.project.open":"Projekt öffnen","command.provider.connect":"Anbieter verbinden","command.server.switch":"Server wechseln","command.settings.open":"Einstellungen öffnen","command.session.previous":"Vorherige Sitzung","command.session.next":"Nächste Sitzung","command.session.previous.unseen":"Vorherige ungelesene Sitzung","command.session.next.unseen":"Nächste ungelesene Sitzung","command.session.archive":"Sitzung archivieren","command.session.archived":"Archivierte Sitzungen","command.palette":"Befehlspalette","command.theme.cycle":"Thema wechseln","command.theme.set":"Thema verwenden: {{theme}}","command.theme.scheme.cycle":"Farbschema wechseln","command.theme.scheme.set":"Farbschema verwenden: {{scheme}}","command.language.cycle":"Sprache wechseln","command.language.set":"Sprache verwenden: {{language}}","command.session.new":"Neue Sitzung","command.file.open":"Datei öffnen","command.tab.close":"Tab schließen","command.context.addSelection":"Auswahl zum Kontext hinzufügen","command.context.addSelection.description":"Ausgewählte Zeilen aus der aktuellen Datei hinzufügen","command.input.focus":"Eingabefeld fokussieren","command.terminal.toggle":"Terminal umschalten","command.fileTree.toggle":"Dateibaum umschalten","command.review.toggle":"Überprüfung umschalten","command.terminal.new":"Neues Terminal","command.terminal.new.description":"Neuen Terminal-Tab erstellen","command.steps.toggle":"Schritte umschalten","command.steps.toggle.description":"Schritte für die aktuelle Nachricht anzeigen oder ausblenden","command.message.previous":"Vorherige Nachricht","command.message.previous.description":"Zur vorherigen Benutzernachricht gehen","command.message.next":"Nächste Nachricht","command.message.next.description":"Zur nächsten Benutzernachricht gehen","command.model.choose":"Modell wählen","command.model.choose.description":"Ein anderes Modell auswählen","command.mcp.toggle":"MCPs umschalten","command.mcp.toggle.description":"MCPs umschalten","command.agent.cycle":"Agent wechseln","command.agent.cycle.description":"Zum nächsten Agenten wechseln","command.agent.cycle.reverse":"Agent rückwärts wechseln","command.agent.cycle.reverse.description":"Zum vorherigen Agenten wechseln","command.model.variant.cycle":"Denkaufwand wechseln","command.model.variant.cycle.description":"Zum nächsten Aufwandslevel wechseln","command.permissions.autoaccept.enable":"Berechtigungen automatisch akzeptieren","command.permissions.autoaccept.disable":"Automatische Akzeptanz von Berechtigungen stoppen","command.workspace.toggle":"Arbeitsbereiche umschalten","command.workspace.toggle.description":"Mehrere Arbeitsbereiche in der Seitenleiste aktivieren oder deaktivieren","command.session.undo":"Rückgängig","command.session.undo.description":"Letzte Nachricht rückgängig machen","command.session.redo":"Wiederherstellen","command.session.redo.description":"Letzte rückgängig gemachte Nachricht wiederherstellen","command.session.compact":"Sitzung komprimieren","command.session.compact.description":"Sitzung zusammenfassen, um die Kontextgröße zu reduzieren","command.session.fork":"Von Nachricht abzweigen","command.session.fork.description":"Neue Sitzung aus einer früheren Nachricht erstellen","command.session.share":"Sitzung teilen","command.session.share.description":"Diese Sitzung teilen und URL in die Zwischenablage kopieren","command.session.unshare":"Teilen der Sitzung aufheben","command.session.unshare.description":"Teilen dieser Sitzung beenden","palette.search.placeholder":"Dateien, Befehle und Sitzungen durchsuchen","palette.empty":"Keine Ergebnisse gefunden","palette.empty.filesPrompt":"Tippe, um Dateien zu suchen","palette.group.commands":"Befehle","palette.group.files":"Dateien","dialog.provider.search.placeholder":"Anbieter durchsuchen","dialog.provider.empty":"Keine Anbieter gefunden","dialog.provider.group.popular":"Beliebt","dialog.provider.group.other":"Andere","dialog.provider.tag.recommended":"Empfohlen","dialog.provider.codeplane.note":"Kuratierte Modelle inklusive Claude, GPT, Gemini und mehr","dialog.provider.codeplane.tagline":"Zuverlässige, optimierte Modelle","dialog.provider.anthropic.note":"Mit einem Anthropic-API-Schlüssel verbinden","dialog.provider.copilot.note":"Mit Copilot oder API-Schlüssel verbinden","dialog.provider.openai.note":"Mit ChatGPT Pro/Plus oder API-Schlüssel verbinden","dialog.provider.google.note":"Gemini-Modelle für schnelle, strukturierte Antworten","dialog.provider.openrouter.note":"Zugriff auf alle unterstützten Modelle über einen Anbieter","dialog.provider.vercel.note":"Einheitlicher Zugriff auf KI-Modelle mit intelligentem Routing","dialog.model.select.title":"Modell auswählen","dialog.model.search.placeholder":"Modelle durchsuchen","dialog.model.empty":"Keine Modellergebnisse","dialog.model.manage":"Modelle verwalten","dialog.model.manage.description":"Anpassen, welche Modelle in der Modellauswahl erscheinen.","dialog.model.manage.provider.toggle":"Alle {{provider}}-Modelle umschalten","dialog.model.unpaid.freeModels.title":"Kostenlose Modelle von Codeplane","dialog.model.unpaid.addMore.title":"Weitere Modelle von beliebten Anbietern hinzufügen","dialog.provider.viewAll":"Mehr Anbieter anzeigen","provider.connect.title":"{{provider}} verbinden","provider.connect.title.anthropicProMax":"Mit Claude Pro/Max anmelden","provider.connect.selectMethod":"Anmeldemethode für {{provider}} auswählen.","provider.connect.method.apiKey":"API-Schlüssel","provider.connect.status.inProgress":"Autorisierung läuft...","provider.connect.status.waiting":"Warten auf Autorisierung...","provider.connect.status.failed":"Autorisierung fehlgeschlagen: {{error}}","provider.connect.apiKey.description":"Geben Sie Ihren {{provider}} API-Schlüssel ein, um Ihr Konto zu verbinden und {{provider}} Modelle in Codeplane zu nutzen.","provider.connect.apiKey.label":"{{provider}} API-Schlüssel","provider.connect.apiKey.placeholder":"API-Schlüssel","provider.connect.apiKey.required":"API-Schlüssel ist erforderlich","provider.connect.oauth.code.visit.prefix":"Besuchen Sie ","provider.connect.oauth.code.visit.link":"diesen Link","provider.connect.oauth.code.visit.suffix":", um Ihren Autorisierungscode zu erhalten, Ihr Konto zu verbinden und {{provider}} Modelle in Codeplane zu nutzen.","provider.connect.oauth.code.label":"{{method}} Autorisierungscode","provider.connect.oauth.code.placeholder":"Autorisierungscode","provider.connect.oauth.code.required":"Autorisierungscode ist erforderlich","provider.connect.oauth.code.invalid":"Ungültiger Autorisierungscode","provider.connect.oauth.auto.visit.prefix":"Besuchen Sie ","provider.connect.oauth.auto.visit.link":"diesen Link","provider.connect.oauth.auto.visit.suffix":" und geben Sie den untenstehenden Code ein, um Ihr Konto zu verbinden und {{provider}} Modelle in Codeplane zu nutzen.","provider.connect.oauth.auto.confirmationCode":"Bestätigungscode","provider.connect.toast.connected.title":"{{provider}} verbunden","provider.connect.toast.connected.description":"{{provider}} Modelle sind jetzt verfügbar.","provider.custom.title":"Benutzerdefinierter Anbieter","provider.custom.description.prefix":"Konfigurieren Sie einen OpenAI-kompatiblen Anbieter. Siehe die ","provider.custom.description.link":"Anbieter-Konfigurationsdokumente","provider.custom.field.providerID.label":"Anbieter-ID","provider.custom.field.providerID.description":"Kleinbuchstaben, Zahlen, Bindestriche oder Unterstriche","provider.custom.field.name.label":"Anzeigename","provider.custom.field.name.placeholder":"Mein KI-Anbieter","provider.custom.field.baseURL.label":"Basis-URL","provider.custom.field.apiKey.label":"API-Schlüssel","provider.custom.field.apiKey.placeholder":"API-Schlüssel","provider.custom.field.apiKey.description":"Optional. Leer lassen, wenn Sie die Authentifizierung über Header verwalten.","provider.custom.models.label":"Modelle","provider.custom.models.name.placeholder":"Anzeigename","provider.custom.models.remove":"Modell entfernen","provider.custom.models.add":"Modell hinzufügen","provider.custom.models.fetch":"Modelle laden","provider.custom.models.fetch.loading":"Lädt...","provider.custom.models.fetch.success":"{{count}} Modelle geladen","provider.custom.models.fetch.empty":"Keine Modelle gefunden","provider.custom.models.fetch.error":"Modelle konnten von diesem Anbieter nicht geladen werden","provider.custom.headers.label":"Header (optional)","provider.custom.headers.value.label":"Wert","provider.custom.headers.value.placeholder":"wert","provider.custom.headers.remove":"Header entfernen","provider.custom.headers.add":"Header hinzufügen","provider.custom.error.providerID.required":"Anbieter-ID ist erforderlich","provider.custom.error.providerID.format":"Verwenden Sie Kleinbuchstaben, Zahlen, Bindestriche oder Unterstriche","provider.custom.error.providerID.exists":"Diese Anbieter-ID existiert bereits","provider.custom.error.name.required":"Anzeigename ist erforderlich","provider.custom.error.baseURL.required":"Basis-URL ist erforderlich","provider.custom.error.baseURL.format":"Muss mit http:// oder https:// beginnen","provider.custom.error.required":"Erforderlich","provider.custom.error.duplicate":"Duplikat","provider.disconnect.toast.disconnected.title":"{{provider}} getrennt","provider.disconnect.toast.disconnected.description":"Die {{provider}}-Modelle sind nicht mehr verfügbar.","model.tag.free":"Kostenlos","model.tag.latest":"Neueste","model.input.text":"Text","model.input.image":"Bild","model.input.audio":"Audio","model.input.video":"Video","model.input.pdf":"PDF","model.tooltip.allows":"Erlaubt: {{inputs}}","model.tooltip.reasoning.allowed":"Erlaubt Reasoning","model.tooltip.reasoning.none":"Kein Reasoning","model.tooltip.context":"Kontextlimit {{limit}}","common.search.placeholder":"Suchen","common.goBack":"Zurück","common.goForward":"Vorwärts navigieren","common.loading":"Laden","common.cancel":"Abbrechen","common.connect":"Verbinden","common.disconnect":"Trennen","common.continue":"Absenden","common.submit":"Absenden","common.save":"Speichern","common.saving":"Speichert...","common.default":"Standard","common.attachment":"Anhang","prompt.placeholder.shell":"Shell-Befehl eingeben... {{example}}","prompt.placeholder.normal":'Fragen Sie alles... "{{example}}"',"prompt.placeholder.simple":"Fragen Sie alles...","prompt.placeholder.summarizeComments":"Kommentare zusammenfassen…","prompt.placeholder.summarizeComment":"Kommentar zusammenfassen…","prompt.mode.shell.exit":"esc zum Verlassen","prompt.example.1":"Ein TODO in der Codebasis beheben","prompt.example.2":"Was ist der Tech-Stack dieses Projekts?","prompt.example.3":"Fehlerhafte Tests beheben","prompt.example.4":"Erkläre, wie die Authentifizierung funktioniert","prompt.example.5":"Sicherheitslücken finden und beheben","prompt.example.6":"Unit-Tests für den Benutzerdienst hinzufügen","prompt.example.7":"Diese Funktion lesbarer gestalten","prompt.example.8":"Was bedeutet dieser Fehler?","prompt.example.9":"Hilf mir, dieses Problem zu debuggen","prompt.example.10":"API-Dokumentation generieren","prompt.example.11":"Datenbankabfragen optimieren","prompt.example.12":"Eingabevalidierung hinzufügen","prompt.example.13":"Neue Komponente erstellen für...","prompt.example.14":"Wie deploye ich dieses Projekt?","prompt.example.15":"Meinen Code auf Best Practices überprüfen","prompt.example.16":"Fehlerbehandlung zu dieser Funktion hinzufügen","prompt.example.17":"Erkläre dieses Regex-Muster","prompt.example.18":"Dies in TypeScript konvertieren","prompt.example.19":"Logging in der gesamten Codebasis hinzufügen","prompt.example.20":"Welche Abhängigkeiten sind veraltet?","prompt.example.21":"Hilf mir, ein Migrationsskript zu schreiben","prompt.example.22":"Caching für diesen Endpunkt implementieren","prompt.example.23":"Paginierung zu dieser Liste hinzufügen","prompt.example.24":"CLI-Befehl erstellen für...","prompt.example.25":"Wie funktionieren Umgebungsvariablen hier?","prompt.popover.emptyResults":"Keine passenden Ergebnisse","prompt.popover.emptyCommands":"Keine passenden Befehle","prompt.dropzone.label":"Bilder, PDFs oder Textdateien hier ablegen","prompt.dropzone.file.label":"Ablegen zum @Erwähnen der Datei","prompt.slash.badge.custom":"benutzerdefiniert","prompt.slash.badge.skill":"Skill","prompt.slash.badge.mcp":"MCP","prompt.context.active":"aktiv","prompt.context.includeActiveFile":"Aktive Datei einbeziehen","prompt.context.removeActiveFile":"Aktive Datei aus dem Kontext entfernen","prompt.context.removeFile":"Datei aus dem Kontext entfernen","prompt.action.attachFile":"Datei anhängen","prompt.action.screenshot":"Screenshot aufnehmen","prompt.attachment.remove":"Anhang entfernen","prompt.action.send":"Senden","prompt.action.stop":"Stopp","prompt.toast.pasteUnsupported.title":"Nicht unterstützter Anhang","prompt.toast.pasteUnsupported.description":"Hier können nur Bilder, PDFs oder Textdateien angehängt werden.","prompt.toast.screenshotUnsupported.title":"Screenshots nicht unterstützt","prompt.toast.screenshotUnsupported.description":"Dieser Browser stellt die Screen-Capture-API nicht bereit. Ziehen oder fügen Sie stattdessen ein Bild ein.","prompt.toast.screenshotFailed.title":"Screenshot fehlgeschlagen","prompt.toast.screenshotFailed.description":"Der ausgewählte Bildschirm konnte nicht erfasst werden. Bitte erneut versuchen oder das Bild manuell anhängen.","prompt.toast.modelAgentRequired.title":"Wählen Sie einen Agenten und ein Modell","prompt.toast.modelAgentRequired.description":"Wählen Sie einen Agenten und ein Modell, bevor Sie eine Eingabe senden.","prompt.toast.worktreeCreateFailed.title":"Worktree konnte nicht erstellt werden","prompt.toast.sessionCreateFailed.title":"Sitzung konnte nicht erstellt werden","prompt.toast.shellSendFailed.title":"Shell-Befehl konnte nicht gesendet werden","prompt.toast.commandSendFailed.title":"Befehl konnte nicht gesendet werden","prompt.toast.promptSendFailed.title":"Eingabe konnte nicht gesendet werden","prompt.toast.promptSendFailed.description":"Sitzung konnte nicht abgerufen werden","dialog.mcp.description":"{{enabled}} von {{total}} aktiviert","dialog.mcp.empty":"Keine MCPs konfiguriert","dialog.lsp.empty":"LSPs automatisch nach Dateityp erkannt","dialog.plugins.empty":"Keine Plugins aus codeplane.jsonc oder config/plugins geladen","mcp.status.connected":"verbunden","mcp.status.failed":"fehlgeschlagen","mcp.status.needs_auth":"benötigt Authentifizierung","mcp.status.disabled":"deaktiviert","dialog.fork.empty":"Keine Nachrichten zum Abzweigen vorhanden","dialog.directory.search.placeholder":"Ordner durchsuchen","dialog.directory.empty":"Keine Ordner gefunden","dialog.server.title":"Instanzen","dialog.server.description":"Wechseln Sie die Codeplane-Instanz, mit der diese App verbunden ist.","dialog.server.search.placeholder":"Instanzen durchsuchen","dialog.server.empty":"Noch keine Instanzen","dialog.server.add.title":"Instanz hinzufügen","dialog.server.add.url":"Instanz-Adresse","dialog.server.add.error":"Instanz nicht erreichbar","dialog.server.add.checking":"Prüfen...","dialog.server.add.button":"Instanz hinzufügen","dialog.server.add.name":"Instanz-Name (optional)","dialog.server.add.username":"Benutzername (optional)","dialog.server.add.password":"Passwort (optional)","dialog.server.edit.title":"Instanz bearbeiten","dialog.server.default.title":"Standard-Instanz","dialog.server.default.description":"Beim App-Start mit dieser Instanz verbinden, anstatt eine neue lokale zu starten. Erfordert Neustart.","dialog.server.default.none":"Keine Instanz ausgewählt","dialog.server.default.set":"Aktuelle Instanz als Standard setzen","dialog.server.default.clear":"Löschen","dialog.server.action.remove":"Instanz entfernen","dialog.server.menu.edit":"Bearbeiten","dialog.server.menu.default":"Als Standard festlegen","dialog.server.menu.defaultRemove":"Standard entfernen","dialog.server.menu.delete":"Löschen","dialog.server.current":"Aktuelle Instanz","dialog.server.status.default":"Standard","dialog.project.edit.title":"Projekt bearbeiten","dialog.project.edit.icon.alt":"Projekt-Icon","dialog.project.edit.icon.hint":"Klicken oder Bild ziehen","dialog.project.edit.icon.recommended":"Empfohlen: 128x128px","dialog.project.edit.color":"Farbe","dialog.project.edit.color.select":"{{color}}-Farbe auswählen","dialog.project.edit.worktree.startup":"Startup-Skript für Arbeitsbereich","dialog.project.edit.worktree.startup.description":"Wird nach dem Erstellen eines neuen Arbeitsbereichs (Worktree) ausgeführt.","dialog.project.edit.worktree.startup.placeholder":"z. B. bun install","context.breakdown.title":"Kontext-Aufschlüsselung","context.breakdown.note":'Ungefähre Aufschlüsselung der Eingabe-Token. "Andere" beinhaltet Werkzeugdefinitionen und Overhead.',"context.breakdown.user":"Benutzer","context.breakdown.assistant":"Assistent","context.breakdown.tool":"Werkzeugaufrufe","context.breakdown.other":"Andere","context.systemPrompt.title":"System-Prompt","context.rawMessages.title":"Rohdaten der Nachrichten","context.stats.session":"Sitzung","context.stats.averageTokensPerSecond":"Durchschn. Token/s","context.stats.messages":"Nachrichten","context.stats.provider":"Anbieter","context.stats.model":"Modell","context.stats.limit":"Kontextlimit","context.stats.totalTokens":"Gesamt-Token","context.stats.usage":"Nutzung","context.stats.inputTokens":"Eingabe-Token","context.stats.outputTokens":"Ausgabe-Token","context.stats.reasoningTokens":"Reasoning-Token","context.stats.cacheTokens":"Cache-Token (lesen/schreiben)","context.stats.userMessages":"Benutzernachrichten","context.stats.assistantMessages":"Assistentennachrichten","context.stats.totalCost":"Gesamtkosten","context.stats.sessionCreated":"Sitzung erstellt","context.stats.lastActivity":"Letzte Aktivität","context.usage.tokens":"Token","context.usage.usage":"Nutzung","context.usage.cost":"Kosten","context.usage.clickToView":"Klicken, um Kontext anzuzeigen","context.usage.view":"Kontextnutzung anzeigen","toast.language.title":"Sprache","toast.language.description":"Zu {{language}} gewechselt","toast.theme.title":"Thema gewechselt","toast.scheme.title":"Farbschema","toast.workspace.enabled.title":"Arbeitsbereiche aktiviert","toast.workspace.enabled.description":"Mehrere Worktrees werden jetzt in der Seitenleiste angezeigt","toast.workspace.disabled.title":"Arbeitsbereiche deaktiviert","toast.workspace.disabled.description":"Nur der Haupt-Worktree wird in der Seitenleiste angezeigt","toast.permissions.autoaccept.on.title":"Berechtigungen werden automatisch akzeptiert","toast.permissions.autoaccept.on.description":"Berechtigungsanfragen werden automatisch genehmigt","toast.permissions.autoaccept.off.title":"Automatische Akzeptanz von Berechtigungen gestoppt","toast.permissions.autoaccept.off.description":"Berechtigungsanfragen erfordern eine Genehmigung","toast.model.none.title":"Kein Modell ausgewählt","toast.model.none.description":"Verbinden Sie einen Anbieter, um diese Sitzung zusammenzufassen","toast.file.loadFailed.title":"Datei konnte nicht geladen werden","toast.file.listFailed.title":"Dateien konnten nicht aufgelistet werden","toast.context.noLineSelection.title":"Keine Zeilenauswahl","toast.context.noLineSelection.description":"Wählen Sie zuerst einen Zeilenbereich in einem Datei-Tab aus.","toast.session.share.copyFailed.title":"URL konnte nicht in die Zwischenablage kopiert werden","toast.session.share.success.title":"Sitzung geteilt","toast.session.share.success.description":"Teilen-URL in die Zwischenablage kopiert!","toast.session.share.failed.title":"Sitzung konnte nicht geteilt werden","toast.session.share.failed.description":"Beim Teilen der Sitzung ist ein Fehler aufgetreten","toast.session.unshare.success.title":"Teilen der Sitzung aufgehoben","toast.session.unshare.success.description":"Teilen der Sitzung erfolgreich aufgehoben!","toast.session.unshare.failed.title":"Aufheben des Teilens fehlgeschlagen","toast.session.unshare.failed.description":"Beim Aufheben des Teilens ist ein Fehler aufgetreten","toast.session.listFailed.title":"Sitzungen für {{project}} konnten nicht geladen werden","error.page.title":"Etwas ist schiefgelaufen","error.page.description":"Beim Laden der Anwendung ist ein Fehler aufgetreten.","error.page.details.label":"Fehlerdetails","error.page.action.restart":"Neustart","error.page.report.prefix":"Bitte melden Sie diesen Fehler dem Codeplane-Team","error.page.report.issues":"auf GitHub","error.dev.rootNotFound":"Wurzelelement nicht gefunden. Haben Sie vergessen, es in Ihre index.html aufzunehmen? Oder wurde das id-Attribut falsch geschrieben?","error.globalSync.connectFailed":"Verbindung zum Server fehlgeschlagen. Läuft ein Server unter `{{url}}`?","directory.error.invalidUrl":"Ungültiges Verzeichnis in der URL.","error.chain.unknown":"Unbekannter Fehler","error.chain.causedBy":"Verursacht durch:","error.chain.apiError":"API-Fehler","error.chain.retryable":"Wiederholbar: {{retryable}}","error.chain.responseBody":`Antwort-Body:
1
+ import{d as e}from"./index-8BjFOjO4.js";const n={"command.category.suggested":"Vorgeschlagen","command.category.view":"Ansicht","command.category.project":"Projekt","command.category.provider":"Anbieter","command.category.session":"Sitzung","command.category.theme":"Thema","command.category.language":"Sprache","command.category.file":"Datei","command.category.context":"Kontext","command.category.model":"Modell","command.category.permissions":"Berechtigungen","command.category.workspace":"Arbeitsbereich","command.category.settings":"Einstellungen","theme.scheme.light":"Hell","theme.scheme.dark":"Dunkel","command.sidebar.toggle":"Seitenleiste umschalten","command.project.open":"Projekt öffnen","command.provider.connect":"Anbieter verbinden","command.server.switch":"Server wechseln","command.settings.open":"Einstellungen öffnen","command.session.previous":"Vorherige Sitzung","command.session.next":"Nächste Sitzung","command.session.previous.unseen":"Vorherige ungelesene Sitzung","command.session.next.unseen":"Nächste ungelesene Sitzung","command.session.archive":"Sitzung archivieren","command.session.archived":"Archivierte Sitzungen","command.palette":"Befehlspalette","command.theme.cycle":"Thema wechseln","command.theme.set":"Thema verwenden: {{theme}}","command.theme.scheme.cycle":"Farbschema wechseln","command.theme.scheme.set":"Farbschema verwenden: {{scheme}}","command.language.cycle":"Sprache wechseln","command.language.set":"Sprache verwenden: {{language}}","command.session.new":"Neue Sitzung","command.file.open":"Datei öffnen","command.tab.close":"Tab schließen","command.context.addSelection":"Auswahl zum Kontext hinzufügen","command.context.addSelection.description":"Ausgewählte Zeilen aus der aktuellen Datei hinzufügen","command.input.focus":"Eingabefeld fokussieren","command.terminal.toggle":"Terminal umschalten","command.fileTree.toggle":"Dateibaum umschalten","command.review.toggle":"Überprüfung umschalten","command.terminal.new":"Neues Terminal","command.terminal.new.description":"Neuen Terminal-Tab erstellen","command.steps.toggle":"Schritte umschalten","command.steps.toggle.description":"Schritte für die aktuelle Nachricht anzeigen oder ausblenden","command.message.previous":"Vorherige Nachricht","command.message.previous.description":"Zur vorherigen Benutzernachricht gehen","command.message.next":"Nächste Nachricht","command.message.next.description":"Zur nächsten Benutzernachricht gehen","command.model.choose":"Modell wählen","command.model.choose.description":"Ein anderes Modell auswählen","command.mcp.toggle":"MCPs umschalten","command.mcp.toggle.description":"MCPs umschalten","command.agent.cycle":"Agent wechseln","command.agent.cycle.description":"Zum nächsten Agenten wechseln","command.agent.cycle.reverse":"Agent rückwärts wechseln","command.agent.cycle.reverse.description":"Zum vorherigen Agenten wechseln","command.model.variant.cycle":"Denkaufwand wechseln","command.model.variant.cycle.description":"Zum nächsten Aufwandslevel wechseln","command.permissions.autoaccept.enable":"Berechtigungen automatisch akzeptieren","command.permissions.autoaccept.disable":"Automatische Akzeptanz von Berechtigungen stoppen","command.workspace.toggle":"Arbeitsbereiche umschalten","command.workspace.toggle.description":"Mehrere Arbeitsbereiche in der Seitenleiste aktivieren oder deaktivieren","command.session.undo":"Rückgängig","command.session.undo.description":"Letzte Nachricht rückgängig machen","command.session.redo":"Wiederherstellen","command.session.redo.description":"Letzte rückgängig gemachte Nachricht wiederherstellen","command.session.compact":"Sitzung komprimieren","command.session.compact.description":"Sitzung zusammenfassen, um die Kontextgröße zu reduzieren","command.session.fork":"Von Nachricht abzweigen","command.session.fork.description":"Neue Sitzung aus einer früheren Nachricht erstellen","command.session.share":"Sitzung teilen","command.session.share.description":"Diese Sitzung teilen und URL in die Zwischenablage kopieren","command.session.unshare":"Teilen der Sitzung aufheben","command.session.unshare.description":"Teilen dieser Sitzung beenden","palette.search.placeholder":"Dateien, Befehle und Sitzungen durchsuchen","palette.empty":"Keine Ergebnisse gefunden","palette.empty.filesPrompt":"Tippe, um Dateien zu suchen","palette.group.commands":"Befehle","palette.group.files":"Dateien","dialog.provider.search.placeholder":"Anbieter durchsuchen","dialog.provider.empty":"Keine Anbieter gefunden","dialog.provider.group.popular":"Beliebt","dialog.provider.group.other":"Andere","dialog.provider.tag.recommended":"Empfohlen","dialog.provider.codeplane.note":"Kuratierte Modelle inklusive Claude, GPT, Gemini und mehr","dialog.provider.codeplane.tagline":"Zuverlässige, optimierte Modelle","dialog.provider.anthropic.note":"Mit einem Anthropic-API-Schlüssel verbinden","dialog.provider.copilot.note":"Mit Copilot oder API-Schlüssel verbinden","dialog.provider.openai.note":"Mit ChatGPT Pro/Plus oder API-Schlüssel verbinden","dialog.provider.google.note":"Gemini-Modelle für schnelle, strukturierte Antworten","dialog.provider.openrouter.note":"Zugriff auf alle unterstützten Modelle über einen Anbieter","dialog.provider.vercel.note":"Einheitlicher Zugriff auf KI-Modelle mit intelligentem Routing","dialog.model.select.title":"Modell auswählen","dialog.model.search.placeholder":"Modelle durchsuchen","dialog.model.empty":"Keine Modellergebnisse","dialog.model.manage":"Modelle verwalten","dialog.model.manage.description":"Anpassen, welche Modelle in der Modellauswahl erscheinen.","dialog.model.manage.provider.toggle":"Alle {{provider}}-Modelle umschalten","dialog.model.unpaid.freeModels.title":"Kostenlose Modelle von Codeplane","dialog.model.unpaid.addMore.title":"Weitere Modelle von beliebten Anbietern hinzufügen","dialog.provider.viewAll":"Mehr Anbieter anzeigen","provider.connect.title":"{{provider}} verbinden","provider.connect.title.anthropicProMax":"Mit Claude Pro/Max anmelden","provider.connect.selectMethod":"Anmeldemethode für {{provider}} auswählen.","provider.connect.method.apiKey":"API-Schlüssel","provider.connect.status.inProgress":"Autorisierung läuft...","provider.connect.status.waiting":"Warten auf Autorisierung...","provider.connect.status.failed":"Autorisierung fehlgeschlagen: {{error}}","provider.connect.apiKey.description":"Geben Sie Ihren {{provider}} API-Schlüssel ein, um Ihr Konto zu verbinden und {{provider}} Modelle in Codeplane zu nutzen.","provider.connect.apiKey.label":"{{provider}} API-Schlüssel","provider.connect.apiKey.placeholder":"API-Schlüssel","provider.connect.apiKey.required":"API-Schlüssel ist erforderlich","provider.connect.oauth.code.visit.prefix":"Besuchen Sie ","provider.connect.oauth.code.visit.link":"diesen Link","provider.connect.oauth.code.visit.suffix":", um Ihren Autorisierungscode zu erhalten, Ihr Konto zu verbinden und {{provider}} Modelle in Codeplane zu nutzen.","provider.connect.oauth.code.label":"{{method}} Autorisierungscode","provider.connect.oauth.code.placeholder":"Autorisierungscode","provider.connect.oauth.code.required":"Autorisierungscode ist erforderlich","provider.connect.oauth.code.invalid":"Ungültiger Autorisierungscode","provider.connect.oauth.auto.visit.prefix":"Besuchen Sie ","provider.connect.oauth.auto.visit.link":"diesen Link","provider.connect.oauth.auto.visit.suffix":" und geben Sie den untenstehenden Code ein, um Ihr Konto zu verbinden und {{provider}} Modelle in Codeplane zu nutzen.","provider.connect.oauth.auto.confirmationCode":"Bestätigungscode","provider.connect.toast.connected.title":"{{provider}} verbunden","provider.connect.toast.connected.description":"{{provider}} Modelle sind jetzt verfügbar.","provider.custom.title":"Benutzerdefinierter Anbieter","provider.custom.description.prefix":"Konfigurieren Sie einen OpenAI-kompatiblen Anbieter. Siehe die ","provider.custom.description.link":"Anbieter-Konfigurationsdokumente","provider.custom.field.providerID.label":"Anbieter-ID","provider.custom.field.providerID.description":"Kleinbuchstaben, Zahlen, Bindestriche oder Unterstriche","provider.custom.field.name.label":"Anzeigename","provider.custom.field.name.placeholder":"Mein KI-Anbieter","provider.custom.field.baseURL.label":"Basis-URL","provider.custom.field.apiKey.label":"API-Schlüssel","provider.custom.field.apiKey.placeholder":"API-Schlüssel","provider.custom.field.apiKey.description":"Optional. Leer lassen, wenn Sie die Authentifizierung über Header verwalten.","provider.custom.models.label":"Modelle","provider.custom.models.name.placeholder":"Anzeigename","provider.custom.models.remove":"Modell entfernen","provider.custom.models.add":"Modell hinzufügen","provider.custom.models.fetch":"Modelle laden","provider.custom.models.fetch.loading":"Lädt...","provider.custom.models.fetch.success":"{{count}} Modelle geladen","provider.custom.models.fetch.empty":"Keine Modelle gefunden","provider.custom.models.fetch.error":"Modelle konnten von diesem Anbieter nicht geladen werden","provider.custom.headers.label":"Header (optional)","provider.custom.headers.value.label":"Wert","provider.custom.headers.value.placeholder":"wert","provider.custom.headers.remove":"Header entfernen","provider.custom.headers.add":"Header hinzufügen","provider.custom.error.providerID.required":"Anbieter-ID ist erforderlich","provider.custom.error.providerID.format":"Verwenden Sie Kleinbuchstaben, Zahlen, Bindestriche oder Unterstriche","provider.custom.error.providerID.exists":"Diese Anbieter-ID existiert bereits","provider.custom.error.name.required":"Anzeigename ist erforderlich","provider.custom.error.baseURL.required":"Basis-URL ist erforderlich","provider.custom.error.baseURL.format":"Muss mit http:// oder https:// beginnen","provider.custom.error.required":"Erforderlich","provider.custom.error.duplicate":"Duplikat","provider.disconnect.toast.disconnected.title":"{{provider}} getrennt","provider.disconnect.toast.disconnected.description":"Die {{provider}}-Modelle sind nicht mehr verfügbar.","model.tag.free":"Kostenlos","model.tag.latest":"Neueste","model.input.text":"Text","model.input.image":"Bild","model.input.audio":"Audio","model.input.video":"Video","model.input.pdf":"PDF","model.tooltip.allows":"Erlaubt: {{inputs}}","model.tooltip.reasoning.allowed":"Erlaubt Reasoning","model.tooltip.reasoning.none":"Kein Reasoning","model.tooltip.context":"Kontextlimit {{limit}}","common.search.placeholder":"Suchen","common.goBack":"Zurück","common.goForward":"Vorwärts navigieren","common.loading":"Laden","common.cancel":"Abbrechen","common.connect":"Verbinden","common.disconnect":"Trennen","common.continue":"Absenden","common.submit":"Absenden","common.save":"Speichern","common.saving":"Speichert...","common.default":"Standard","common.attachment":"Anhang","prompt.placeholder.shell":"Shell-Befehl eingeben... {{example}}","prompt.placeholder.normal":'Fragen Sie alles... "{{example}}"',"prompt.placeholder.simple":"Fragen Sie alles...","prompt.placeholder.summarizeComments":"Kommentare zusammenfassen…","prompt.placeholder.summarizeComment":"Kommentar zusammenfassen…","prompt.mode.shell.exit":"esc zum Verlassen","prompt.example.1":"Ein TODO in der Codebasis beheben","prompt.example.2":"Was ist der Tech-Stack dieses Projekts?","prompt.example.3":"Fehlerhafte Tests beheben","prompt.example.4":"Erkläre, wie die Authentifizierung funktioniert","prompt.example.5":"Sicherheitslücken finden und beheben","prompt.example.6":"Unit-Tests für den Benutzerdienst hinzufügen","prompt.example.7":"Diese Funktion lesbarer gestalten","prompt.example.8":"Was bedeutet dieser Fehler?","prompt.example.9":"Hilf mir, dieses Problem zu debuggen","prompt.example.10":"API-Dokumentation generieren","prompt.example.11":"Datenbankabfragen optimieren","prompt.example.12":"Eingabevalidierung hinzufügen","prompt.example.13":"Neue Komponente erstellen für...","prompt.example.14":"Wie deploye ich dieses Projekt?","prompt.example.15":"Meinen Code auf Best Practices überprüfen","prompt.example.16":"Fehlerbehandlung zu dieser Funktion hinzufügen","prompt.example.17":"Erkläre dieses Regex-Muster","prompt.example.18":"Dies in TypeScript konvertieren","prompt.example.19":"Logging in der gesamten Codebasis hinzufügen","prompt.example.20":"Welche Abhängigkeiten sind veraltet?","prompt.example.21":"Hilf mir, ein Migrationsskript zu schreiben","prompt.example.22":"Caching für diesen Endpunkt implementieren","prompt.example.23":"Paginierung zu dieser Liste hinzufügen","prompt.example.24":"CLI-Befehl erstellen für...","prompt.example.25":"Wie funktionieren Umgebungsvariablen hier?","prompt.popover.emptyResults":"Keine passenden Ergebnisse","prompt.popover.emptyCommands":"Keine passenden Befehle","prompt.dropzone.label":"Bilder, PDFs oder Textdateien hier ablegen","prompt.dropzone.file.label":"Ablegen zum @Erwähnen der Datei","prompt.slash.badge.custom":"benutzerdefiniert","prompt.slash.badge.skill":"Skill","prompt.slash.badge.mcp":"MCP","prompt.context.active":"aktiv","prompt.context.includeActiveFile":"Aktive Datei einbeziehen","prompt.context.removeActiveFile":"Aktive Datei aus dem Kontext entfernen","prompt.context.removeFile":"Datei aus dem Kontext entfernen","prompt.action.attachFile":"Datei anhängen","prompt.action.screenshot":"Screenshot aufnehmen","prompt.attachment.remove":"Anhang entfernen","prompt.action.send":"Senden","prompt.action.stop":"Stopp","prompt.toast.pasteUnsupported.title":"Nicht unterstützter Anhang","prompt.toast.pasteUnsupported.description":"Hier können nur Bilder, PDFs oder Textdateien angehängt werden.","prompt.toast.screenshotUnsupported.title":"Screenshots nicht unterstützt","prompt.toast.screenshotUnsupported.description":"Dieser Browser stellt die Screen-Capture-API nicht bereit. Ziehen oder fügen Sie stattdessen ein Bild ein.","prompt.toast.screenshotFailed.title":"Screenshot fehlgeschlagen","prompt.toast.screenshotFailed.description":"Der ausgewählte Bildschirm konnte nicht erfasst werden. Bitte erneut versuchen oder das Bild manuell anhängen.","prompt.toast.modelAgentRequired.title":"Wählen Sie einen Agenten und ein Modell","prompt.toast.modelAgentRequired.description":"Wählen Sie einen Agenten und ein Modell, bevor Sie eine Eingabe senden.","prompt.toast.worktreeCreateFailed.title":"Worktree konnte nicht erstellt werden","prompt.toast.sessionCreateFailed.title":"Sitzung konnte nicht erstellt werden","prompt.toast.shellSendFailed.title":"Shell-Befehl konnte nicht gesendet werden","prompt.toast.commandSendFailed.title":"Befehl konnte nicht gesendet werden","prompt.toast.promptSendFailed.title":"Eingabe konnte nicht gesendet werden","prompt.toast.promptSendFailed.description":"Sitzung konnte nicht abgerufen werden","dialog.mcp.description":"{{enabled}} von {{total}} aktiviert","dialog.mcp.empty":"Keine MCPs konfiguriert","dialog.lsp.empty":"LSPs automatisch nach Dateityp erkannt","dialog.plugins.empty":"Keine Plugins aus codeplane.jsonc oder config/plugins geladen","mcp.status.connected":"verbunden","mcp.status.failed":"fehlgeschlagen","mcp.status.needs_auth":"benötigt Authentifizierung","mcp.status.disabled":"deaktiviert","dialog.fork.empty":"Keine Nachrichten zum Abzweigen vorhanden","dialog.directory.search.placeholder":"Ordner durchsuchen","dialog.directory.empty":"Keine Ordner gefunden","dialog.server.title":"Instanzen","dialog.server.description":"Wechseln Sie die Codeplane-Instanz, mit der diese App verbunden ist.","dialog.server.search.placeholder":"Instanzen durchsuchen","dialog.server.empty":"Noch keine Instanzen","dialog.server.add.title":"Instanz hinzufügen","dialog.server.add.url":"Instanz-Adresse","dialog.server.add.error":"Instanz nicht erreichbar","dialog.server.add.checking":"Prüfen...","dialog.server.add.button":"Instanz hinzufügen","dialog.server.add.name":"Instanz-Name (optional)","dialog.server.add.username":"Benutzername (optional)","dialog.server.add.password":"Passwort (optional)","dialog.server.edit.title":"Instanz bearbeiten","dialog.server.default.title":"Standard-Instanz","dialog.server.default.description":"Beim App-Start mit dieser Instanz verbinden, anstatt eine neue lokale zu starten. Erfordert Neustart.","dialog.server.default.none":"Keine Instanz ausgewählt","dialog.server.default.set":"Aktuelle Instanz als Standard setzen","dialog.server.default.clear":"Löschen","dialog.server.action.remove":"Instanz entfernen","dialog.server.menu.edit":"Bearbeiten","dialog.server.menu.default":"Als Standard festlegen","dialog.server.menu.defaultRemove":"Standard entfernen","dialog.server.menu.delete":"Löschen","dialog.server.current":"Aktuelle Instanz","dialog.server.status.default":"Standard","dialog.project.edit.title":"Projekt bearbeiten","dialog.project.edit.icon.alt":"Projekt-Icon","dialog.project.edit.icon.hint":"Klicken oder Bild ziehen","dialog.project.edit.icon.recommended":"Empfohlen: 128x128px","dialog.project.edit.color":"Farbe","dialog.project.edit.color.select":"{{color}}-Farbe auswählen","dialog.project.edit.worktree.startup":"Startup-Skript für Arbeitsbereich","dialog.project.edit.worktree.startup.description":"Wird nach dem Erstellen eines neuen Arbeitsbereichs (Worktree) ausgeführt.","dialog.project.edit.worktree.startup.placeholder":"z. B. bun install","context.breakdown.title":"Kontext-Aufschlüsselung","context.breakdown.note":'Ungefähre Aufschlüsselung der Eingabe-Token. "Andere" beinhaltet Werkzeugdefinitionen und Overhead.',"context.breakdown.user":"Benutzer","context.breakdown.assistant":"Assistent","context.breakdown.tool":"Werkzeugaufrufe","context.breakdown.other":"Andere","context.systemPrompt.title":"System-Prompt","context.rawMessages.title":"Rohdaten der Nachrichten","context.stats.session":"Sitzung","context.stats.averageTokensPerSecond":"Durchschn. Token/s","context.stats.messages":"Nachrichten","context.stats.provider":"Anbieter","context.stats.model":"Modell","context.stats.limit":"Kontextlimit","context.stats.totalTokens":"Gesamt-Token","context.stats.usage":"Nutzung","context.stats.inputTokens":"Eingabe-Token","context.stats.outputTokens":"Ausgabe-Token","context.stats.reasoningTokens":"Reasoning-Token","context.stats.cacheTokens":"Cache-Token (lesen/schreiben)","context.stats.userMessages":"Benutzernachrichten","context.stats.assistantMessages":"Assistentennachrichten","context.stats.totalCost":"Gesamtkosten","context.stats.sessionCreated":"Sitzung erstellt","context.stats.lastActivity":"Letzte Aktivität","context.usage.tokens":"Token","context.usage.usage":"Nutzung","context.usage.cost":"Kosten","context.usage.clickToView":"Klicken, um Kontext anzuzeigen","context.usage.view":"Kontextnutzung anzeigen","toast.language.title":"Sprache","toast.language.description":"Zu {{language}} gewechselt","toast.theme.title":"Thema gewechselt","toast.scheme.title":"Farbschema","toast.workspace.enabled.title":"Arbeitsbereiche aktiviert","toast.workspace.enabled.description":"Mehrere Worktrees werden jetzt in der Seitenleiste angezeigt","toast.workspace.disabled.title":"Arbeitsbereiche deaktiviert","toast.workspace.disabled.description":"Nur der Haupt-Worktree wird in der Seitenleiste angezeigt","toast.permissions.autoaccept.on.title":"Berechtigungen werden automatisch akzeptiert","toast.permissions.autoaccept.on.description":"Berechtigungsanfragen werden automatisch genehmigt","toast.permissions.autoaccept.off.title":"Automatische Akzeptanz von Berechtigungen gestoppt","toast.permissions.autoaccept.off.description":"Berechtigungsanfragen erfordern eine Genehmigung","toast.model.none.title":"Kein Modell ausgewählt","toast.model.none.description":"Verbinden Sie einen Anbieter, um diese Sitzung zusammenzufassen","toast.file.loadFailed.title":"Datei konnte nicht geladen werden","toast.file.listFailed.title":"Dateien konnten nicht aufgelistet werden","toast.context.noLineSelection.title":"Keine Zeilenauswahl","toast.context.noLineSelection.description":"Wählen Sie zuerst einen Zeilenbereich in einem Datei-Tab aus.","toast.session.share.copyFailed.title":"URL konnte nicht in die Zwischenablage kopiert werden","toast.session.share.success.title":"Sitzung geteilt","toast.session.share.success.description":"Teilen-URL in die Zwischenablage kopiert!","toast.session.share.failed.title":"Sitzung konnte nicht geteilt werden","toast.session.share.failed.description":"Beim Teilen der Sitzung ist ein Fehler aufgetreten","toast.session.unshare.success.title":"Teilen der Sitzung aufgehoben","toast.session.unshare.success.description":"Teilen der Sitzung erfolgreich aufgehoben!","toast.session.unshare.failed.title":"Aufheben des Teilens fehlgeschlagen","toast.session.unshare.failed.description":"Beim Aufheben des Teilens ist ein Fehler aufgetreten","toast.session.listFailed.title":"Sitzungen für {{project}} konnten nicht geladen werden","error.page.title":"Etwas ist schiefgelaufen","error.page.description":"Beim Laden der Anwendung ist ein Fehler aufgetreten.","error.page.details.label":"Fehlerdetails","error.page.action.restart":"Neustart","error.page.report.prefix":"Bitte melden Sie diesen Fehler dem Codeplane-Team","error.page.report.issues":"auf GitHub","error.dev.rootNotFound":"Wurzelelement nicht gefunden. Haben Sie vergessen, es in Ihre index.html aufzunehmen? Oder wurde das id-Attribut falsch geschrieben?","error.globalSync.connectFailed":"Verbindung zum Server fehlgeschlagen. Läuft ein Server unter `{{url}}`?","directory.error.invalidUrl":"Ungültiges Verzeichnis in der URL.","error.chain.unknown":"Unbekannter Fehler","error.chain.causedBy":"Verursacht durch:","error.chain.apiError":"API-Fehler","error.chain.retryable":"Wiederholbar: {{retryable}}","error.chain.responseBody":`Antwort-Body:
2
2
  {{body}}`,"error.chain.didYouMean":"Meinten Sie: {{suggestions}}","error.chain.modelNotFound":"Modell nicht gefunden: {{provider}}/{{model}}","error.chain.checkConfig":"Überprüfen Sie Ihre Konfiguration (codeplane.json) auf Anbieter-/Modellnamen","error.chain.mcpFailed":'MCP-Server "{{name}}" fehlgeschlagen. Hinweis: Codeplane unterstützt noch keine MCP-Authentifizierung.',"error.chain.providerAuthFailed":"Anbieter-Authentifizierung fehlgeschlagen ({{provider}}): {{message}}","error.chain.providerInitFailed":'Anbieter "{{provider}}" konnte nicht initialisiert werden. Überprüfen Sie Anmeldeinformationen und Konfiguration.',"error.chain.configJsonInvalid":"Konfigurationsdatei unter {{path}} ist kein gültiges JSON(C)","error.chain.configJsonInvalidWithMessage":"Konfigurationsdatei unter {{path}} ist kein gültiges JSON(C): {{message}}","error.chain.configDirectoryTypo":'Verzeichnis "{{dir}}" in {{path}} ist ungültig. Benennen Sie das Verzeichnis in "{{suggestion}}" um oder entfernen Sie es. Dies ist ein häufiger Tippfehler.',"error.chain.configFrontmatterError":`Frontmatter in {{path}} konnte nicht geparst werden:
3
3
  {{message}}`,"error.chain.configInvalid":"Konfigurationsdatei unter {{path}} ist ungültig","error.chain.configInvalidWithMessage":"Konfigurationsdatei unter {{path}} ist ungültig: {{message}}","notification.permission.title":"Berechtigung erforderlich","notification.permission.description":"{{sessionTitle}} in {{projectName}} benötigt Berechtigung","notification.question.title":"Frage","notification.question.description":"{{sessionTitle}} in {{projectName}} hat eine Frage","notification.action.goToSession":"Zur Sitzung gehen","notification.session.responseReady.title":"Antwort bereit","notification.session.error.title":"Sitzungsfehler","notification.session.error.fallbackDescription":"Ein Fehler ist aufgetreten","notification.session.untitled":"Sitzung ohne Titel","notification.center.title":"Benachrichtigungen","notification.center.count":"{{count}} Benachrichtigungen","notification.center.markAllRead":"Alle als gelesen markieren","notification.center.empty.title":"Keine Benachrichtigungen","notification.center.item.responseReady":"{{sessionTitle}} in {{projectName}} ist bereit","home.recentProjects":"Letzte Projekte","home.empty.title":"Keine letzten Projekte","home.empty.description":"Starten Sie, indem Sie ein lokales Projekt öffnen","home.title":"Arbeitsbereich","home.subtitle.zero":"Keine Projekte geöffnet","home.subtitle.one":"1 Projekt","home.subtitle.other":"{{count}} Projekte","home.subtitle.lastActivity":"Zuletzt aktiv {{time}}","home.tab.overview":"Übersicht","home.tab.models":"Modelle","home.range.all":"Alle","home.stat.sessions":"Sitzungen","home.stat.messages":"Nachrichten","home.stat.tokens":"Token gesamt","home.stat.activeDays":"Aktive Tage","home.stat.streak.current":"Aktuelle Streak","home.stat.streak.longest":"Längste Streak","home.stat.peakHour":"Spitzenstunde","home.stat.preferredModel":"Bevorzugtes Modell","home.stat.git.repos":"Repos bearbeitet","home.stat.git.commits":"Commits erstellt","home.stat.git.files":"Dateien geändert","home.stat.git.lines":"Zeilen geändert","home.stat.git.additions":"Zeilen hinzugefügt","home.stat.git.deletions":"Zeilen gelöscht","home.fact.devin.match":"Du erreichst ~{{percent}}% von Devin Oldenburgs Referenz­wert (~200M Token/Tag).","home.fact.devin.behind":"Devin Oldenburg verbraucht ~{{ratio}}× mehr Token pro Tag als du.","home.fact.tokens.novel":"Das entspricht ~{{count}} durchschnittlichen Romanen an Token.","home.fact.tokens.dune":"Du hast ~{{count}}× mehr Token verbraucht als Dune (Buch).","home.fact.tokens.lotr":"Genug Token für ~{{count}}× Der Herr der Ringe.","home.fact.tokens.warAndPeace":"Du hast Krieg und Frieden ~{{count}}× überschrieben.","home.fact.tokens.bible":"Deine Token entsprechen ~{{count}} Bibeln.","home.fact.tokens.shakespeare":"~{{count}}× Shakespeares Gesamtwerk in Token.","home.fact.tokens.harryPotter":"~{{count}}× die gesamte Harry-Potter-Reihe.","home.fact.tokens.perMessage":"~{{count}} Token pro Nachricht — du fütterst den Kontext großzügig.","home.fact.messages.perActiveDay":"Im Schnitt ~{{count}} Nachrichten pro aktivem Tag.","home.fact.messages.thousand":"{{count}}k Nachrichten gesendet — eine kleine Prompt-Zivilisation.","home.fact.messages.total":"{{count}} Nachrichten und es werden mehr.","home.fact.streak.week":"{{count}}-Tage-Streak — länger als die meisten Neujahrsvorsätze.","home.fact.streak.month":"{{count}} Tage in Folge — Gewohnheit offiziell etabliert.","home.fact.streak.legendary":"{{count}}-Tage-Streak — GitHub-Graph-grün.","home.fact.streak.bestEver":"Persönlicher Rekord: {{count}} Tage. Schlägst du das?","home.fact.activeDays.percent":"An {{count}} Tagen aktiv — {{percent}}% des Jahres.","home.fact.activeDays.workYear":"{{count}} aktive Tage — mehr als ein volles Arbeitsjahr.","home.fact.sessions.perWeek":"~{{count}} Sitzungen pro Woche — solider Rhythmus.","home.fact.sessions.century":"{{count}} Sitzungen abgeschlossen — Century Club.","home.fact.sessions.thousand":"{{count}}k Sitzungen — quasi eine ganze Flotte.","home.fact.peakHour.midnight":"Spitzenstunde {{hour}}:00 — echte Nachteule.","home.fact.peakHour.earlybird":"Spitzenstunde {{hour}}:00 — Kaffee vor Code.","home.fact.peakHour.midday":"Spitzenstunde {{hour}}:00 — Flow nach dem Mittag.","home.fact.peakHour.afternoon":"Spitzenstunde {{hour}}:00 — der produktive Nachmittag.","home.fact.peakHour.evening":"Spitzenstunde {{hour}}:00 — Abendessen kann warten.","home.activity.dayLabel":"{{count}} am {{date}}","home.activity.empty":"Noch keine Aktivität","home.models.empty":"Noch keine Modellnutzung","home.models.messages":"{{count}} Nachr.","home.models.sessions":"{{count}} Sitzungen","home.models.tokens":"{{value}} Token","home.projects.title":"Aktivste Projekte","home.projects.empty":"Öffnen Sie ein Projekt, um Aktivität zu sehen","home.projects.sessionsCount.one":"1 Sitzung","home.projects.sessionsCount.other":"{{count}} Sitzungen","home.projects.never":"Noch keine Aktivität","home.recent.title":"Letzte Sitzungen","home.recent.empty":"Starten Sie eine Sitzung, um sie hier zu sehen","home.start.title":"Etwas Neues beginnen","home.start.description":"Wählen Sie ein Projekt aus der Seitenleiste oder öffnen Sie ein neues, um zu starten.","session.tab.session":"Sitzung","session.tab.review":"Überprüfung","session.tab.context":"Kontext","session.panel.reviewAndFiles":"Überprüfung und Dateien","session.activity.timeline.empty":"Noch keine Aktivität","session.activity.model.initial":"Modell ausgewählt","session.activity.model.switch":"Modellwechsel","session.activity.tool.pending":"Wartet","session.activity.tool.running":"Läuft","session.activity.tool.completed":"Abgeschlossen","session.activity.tool.error":"Fehlgeschlagen","session.activity.file.added":"Hinzugefügt","session.activity.file.deleted":"Gelöscht","session.activity.file.modified":"Geändert","session.review.filesChanged":"{{count}} Dateien geändert","session.review.change.one":"Änderung","session.review.change.other":"Änderungen","session.review.loadingChanges":"Lade Änderungen...","session.review.empty":"Noch keine Änderungen in dieser Sitzung","session.review.noVcs":"Kein Git-Versionskontrollsystem erkannt, Änderungen werden nicht angezeigt","session.review.noSnapshot":"Snapshot-Tracking ist in der Konfiguration deaktiviert, daher sind Sitzungsänderungen nicht verfügbar","session.review.noChanges":"Keine Änderungen","session.files.selectToOpen":"Datei zum Öffnen auswählen","session.files.all":"Alle","session.files.empty":"Keine Dateien","session.files.binaryContent":"Binärdatei (Inhalt kann nicht angezeigt werden)","session.messages.renderEarlier":"Frühere Nachrichten rendern","session.messages.loadingEarlier":"Lade frühere Nachrichten...","session.messages.loadEarlier":"Frühere Nachrichten laden","session.messages.loading":"Lade Nachrichten...","session.messages.jumpToLatest":"Zum neuesten springen","session.context.addToContext":"{{selection}} zum Kontext hinzufügen","session.todo.title":"Aufgaben","session.todo.collapse":"Einklappen","session.todo.expand":"Ausklappen","session.followupDock.summary.one":"{{count}} Nachricht in der Warteschlange","session.followupDock.summary.other":"{{count}} Nachrichten in der Warteschlange","session.followupDock.sendNow":"Jetzt senden","session.followupDock.edit":"Bearbeiten","session.followupDock.collapse":"Warteschlange einklappen","session.followupDock.expand":"Warteschlange ausklappen","session.revertDock.summary.one":"{{count}} zurückgesetzte Nachricht","session.revertDock.summary.other":"{{count}} zurückgesetzte Nachrichten","session.revertDock.collapse":"Zurückgesetzte Nachrichten einklappen","session.revertDock.expand":"Zurückgesetzte Nachrichten ausklappen","session.revertDock.restore":"Nachricht wiederherstellen","session.new.title":"Baue, was du willst","session.new.worktree.main":"Haupt-Branch","session.new.worktree.mainWithBranch":"Haupt-Branch ({{branch}})","session.new.worktree.create":"Neuen Worktree erstellen","session.new.lastModified":"Zuletzt geändert","session.header.search.placeholder":"{{project}} durchsuchen","session.header.searchFiles":"Dateien suchen","session.header.openIn":"Öffnen in","session.header.open.action":"{{app}} öffnen","session.header.open.ariaLabel":"In {{app}} öffnen","session.header.open.menu":"Öffnen-Optionen","session.header.open.copyPath":"Pfad kopieren","status.popover.ariaLabel":"Serverkonfigurationen","status.popover.tab.servers":"Server","status.popover.action.manageServers":"Server verwalten","session.share.popover.title":"Im Web veröffentlichen","session.share.popover.description.shared":"Diese Sitzung ist öffentlich im Web. Sie ist für jeden mit dem Link zugänglich.","session.share.popover.description.unshared":"Sitzung öffentlich im Web teilen. Sie wird für jeden mit dem Link zugänglich sein.","session.share.action.share":"Teilen","session.share.action.publish":"Veröffentlichen","session.share.action.publishing":"Veröffentliche...","session.share.action.unpublish":"Veröffentlichung aufheben","session.share.action.unpublishing":"Hebe Veröffentlichung auf...","session.share.action.view":"Ansehen","session.share.copy.copied":"Kopiert","session.share.copy.copyLink":"Link kopieren","lsp.tooltip.none":"Keine LSP-Server","prompt.loading":"Lade Prompt...","terminal.loading":"Lade Terminal...","terminal.close":"Terminal schließen","terminal.connectionLost.title":"Verbindung verloren","terminal.connectionLost.description":"Die Terminalverbindung wurde unterbrochen. Das kann passieren, wenn der Server neu startet.","common.closeTab":"Tab schließen","common.dismiss":"Verwerfen","common.requestFailed":"Anfrage fehlgeschlagen","common.moreOptions":"Weitere Optionen","common.learnMore":"Mehr erfahren","common.rename":"Umbenennen","common.reset":"Zurücksetzen","common.refresh":"Aktualisieren","common.archive":"Archivieren","common.restore":"Wiederherstellen","common.delete":"Löschen","common.close":"Schließen","common.edit":"Bearbeiten","common.loadMore":"Mehr laden","sidebar.menu.toggle":"Menü umschalten","sidebar.nav.projectsAndSessions":"Projekte und Sitzungen","sidebar.notifications":"Benachrichtigungen","sidebar.settings":"Einstellungen","sidebar.help":"Hilfe","sidebar.workspaces.enable":"Arbeitsbereiche aktivieren","sidebar.workspaces.disable":"Arbeitsbereiche deaktivieren","sidebar.gettingStarted.title":"Erste Schritte","sidebar.gettingStarted.line1":"Codeplane enthält kostenlose Modelle, damit Sie sofort loslegen können.","sidebar.gettingStarted.line2":"Verbinden Sie einen beliebigen Anbieter, um Modelle wie Claude, GPT, Gemini usw. zu nutzen.","sidebar.project.recentSessions":"Letzte Sitzungen","sidebar.project.viewAllSessions":"Alle Sitzungen anzeigen","sidebar.project.clearNotifications":"Benachrichtigungen löschen","sidebar.sessionPreview.loading":"Lade Vorschau...","sidebar.sessionPreview.empty":"Noch kein Prompt","sidebar.sessionPreview.thinking":"Denkt nach...","sidebar.sessionPreview.duration":"Dauer","settings.section.ai":"KI","settings.section.extensions":"Erweiterungen","settings.tab.general":"Allgemein","settings.tab.general.description":"App-Einstellungen verwalten","settings.tab.shortcuts":"Tastenkombinationen","settings.tab.shortcuts.description":"Tastenkürzel anpassen","settings.tab.providers.description":"KI-Anbieter verbinden","settings.tab.models.description":"Sichtbare Modelle wählen","settings.tab.modes.description":"Agent-Modi konfigurieren","settings.tab.plugins.description":"Plugins verwalten","settings.tab.mcp.description":"MCP-Server verbinden","settings.tab.skills.description":"Skill-Quellen verwalten","settings.general.section.appearance":"Erscheinungsbild","settings.general.section.notifications":"Systembenachrichtigungen","settings.general.section.sounds":"Soundeffekte","settings.general.row.language.title":"Sprache","settings.general.row.language.description":"Die Anzeigesprache für Codeplane ändern","settings.general.row.appearance.title":"Erscheinungsbild","settings.general.row.appearance.description":"Anpassen, wie Codeplane auf Ihrem Gerät aussieht","settings.general.row.colorScheme.title":"Farbschema","settings.general.row.colorScheme.description":"Wählen Sie, ob Codeplane dem System-, hellen oder dunklen Thema folgt","settings.general.row.theme.title":"Thema","settings.general.row.theme.description":"Das Thema von Codeplane anpassen.","settings.general.row.font.title":"Code-Schriftart","settings.general.row.font.description":"Die in Codeblöcken verwendete Schriftart anpassen","settings.general.row.terminalFont.title":"Terminal-Schriftart","settings.general.row.terminalFont.description":"Die im Terminal verwendete Schriftart anpassen","settings.general.row.uiFont.title":"UI-Schriftart","settings.general.row.uiFont.description":"Die im gesamten Interface verwendete Schriftart anpassen","settings.general.row.followup.title":"Verhalten bei Folgefragen","settings.general.row.followup.description":"Wählen Sie, ob Folgefragen sofort steuern oder in einer Warteschlange warten","settings.general.row.followup.option.queue":"Warteschlange","settings.general.row.followup.option.steer":"Steuern","settings.general.row.codeplaneCoauthor.title":"Codeplane-Co-Autor","settings.general.row.codeplaneCoauthor.description":"Fügt Co-Authored-By: codeplane-agent[bot] <287208015+codeplane-agent[bot]@users.noreply.github.com> zu Commits hinzu, die über Codeplane erstellt wurden","settings.general.row.reasoningSummaries.title":"Reasoning-Zusammenfassungen anzeigen","settings.general.row.reasoningSummaries.description":"Zusammenfassungen des Modell-Reasonings in der Timeline anzeigen","settings.general.row.shellToolPartsExpanded.title":"Shell-Tool-Abschnitte ausklappen","settings.general.row.shellToolPartsExpanded.description":"Shell-Tool-Abschnitte standardmäßig in der Timeline ausgeklappt anzeigen","settings.general.row.editToolPartsExpanded.title":"Edit-Tool-Abschnitte ausklappen","settings.general.row.editToolPartsExpanded.description":"Edit-, Write- und Patch-Tool-Abschnitte standardmäßig in der Timeline ausgeklappt anzeigen","settings.general.row.showSessionProgressBar.title":"Sitzungsfortschrittsleiste anzeigen","settings.general.row.showSessionProgressBar.description":"Die animierte Fortschrittsleiste oben in der Sitzung anzeigen, wenn der Agent arbeitet","settings.general.row.browserUse.title":"Browser-Steuerung","settings.general.row.browserUse.description":"Ermöglicht dem Agenten die Steuerung eines isolierten Chrome-Browsers mit eigener virtueller Maus und Tastatur für UI-Tests und Debugging. Umfasst Navigation, Refs, Klicken, Hover, Ziehen, Tippen, Shortcuts, Screenshots, Konsolenprotokolle und JavaScript-Ausführung. Standardmäßig deaktiviert und nur in Codeplane Desktop verfügbar.","settings.general.row.computerUse.title":"Computer-Steuerung","settings.general.row.computerUse.description":"Ermöglicht dem Agenten, diesen Desktop über den echten Betriebssystem-Zeiger zu steuern: Screenshots, Mausbewegungen, Klicks, Ziehen, Scrollen, Tastatureingaben, Shortcuts und App-Start. Standardmäßig deaktiviert und nur in Codeplane Desktop verfügbar.","settings.general.row.computerUse.permissionsTitle":"Berechtigungen benötigt für {{ tool }}","settings.general.row.computerUse.permissionsBody":"{{ tool }} benötigt {{count}} Systemberechtigungen, um den Desktop zu steuern. Codeplane braucht diese, um den Cursor zu bewegen, zu klicken, zu tippen, Screenshots zu machen und Apps für dich zu öffnen.","settings.general.row.computerUse.permissionGranted":"Bereit","settings.general.row.computerUse.permissionMissing":"Nicht aktiv — Einstellungen öffnen oder neu starten","settings.general.row.computerUse.permissionRelaunchRequired":"Aktiviert — Neustart erforderlich","settings.general.row.computerUse.permissionOpenSettings":"Einstellungen öffnen","settings.general.row.computerUse.permissionOpening":"Wird geöffnet…","settings.general.row.computerUse.permissionsFooter":"Wenn der Schalter in den Systemeinstellungen bereits aktiv ist, hier aber weiter als inaktiv erscheint, starte Codeplane Desktop neu, damit macOS die Berechtigung neu lädt.","settings.general.row.computerUse.permissionsRelaunchFooter":"Die Berechtigung ist in den Systemeinstellungen aktiv, aber dieser laufende Codeplane-Prozess kann sie noch nicht verwenden. Starte Codeplane Desktop neu, um sie anzuwenden.","settings.general.row.computerUse.permissionDone":"Schließen","settings.general.row.computerUse.manage":"Berechtigungen verwalten","settings.general.row.computerUse.statusAllGranted":"Alle aktiv","settings.general.row.computerUse.statusActivePartial":"{{active}} von {{total}} aktiv","settings.general.row.computerUse.statusPartial":"{{granted}} von {{total}} erteilt","settings.general.row.computerUse.statusRelaunchRequired":"Neustart erforderlich","settings.general.row.computerUse.recheck":"Erneut prüfen","settings.general.row.computerUse.recheckLoading":"Prüfe…","settings.general.row.computerUse.relaunch":"Codeplane neu starten","settings.general.row.computerUse.relaunchPending":"Wird neu gestartet…","settings.general.row.computerUse.relaunchUnavailable.title":"Neustart nicht verfügbar","settings.general.row.computerUse.relaunchUnavailable.description":"Dieser Build kann sich nicht selbst neu starten. Beende Codeplane Desktop und öffne es manuell, damit die Berechtigungen wirksam werden.","settings.general.row.computerUse.enableAnyway":"Trotzdem aktivieren","settings.general.row.computerUse.enableNow":"Computer-Steuerung aktivieren","settings.general.row.computerUse.permissionDescription.accessibility":"Erlaubt Codeplane, den Cursor zu bewegen, zu klicken, zu tippen und Tastenkürzel zu senden. Ohne diese Berechtigung schlagen alle Klick-/Tipp-Aktionen mit „nicht für Bedienungshilfen autorisiert“ fehl.","settings.general.row.computerUse.permissionDescription.screenRecording":"Erlaubt Codeplane, den Bildschirm aufzunehmen, damit der Agent sieht, woran er gerade arbeitet. Ohne diese Berechtigung kommen Screenshots leer zurück oder schlagen fehl.","settings.general.row.computerUse.permissionDescription.generic":"Wird für Computer-Steuerung auf diesem Betriebssystem benötigt.","settings.general.row.releaseNotes.title":"Versionshinweise","settings.general.row.releaseNotes.description":'"Neuigkeiten"-Pop-ups nach Updates anzeigen',"settings.general.row.version.title":"Anwendungsversion","settings.general.row.version.developmentBuild":"Entwicklungs-Build","settings.general.row.version.descriptionLoading":"Suche nach Updates…","settings.general.row.version.descriptionError":"Konnte nicht nach Updates suchen. Erneut versuchen.","settings.general.row.version.descriptionUpToDate":"Du nutzt Version {{current}} — alles aktuell.","settings.general.row.version.descriptionHasUpdate":"Version {{latest}} ist verfügbar. Du nutzt {{current}}.","settings.general.row.version.descriptionUnknownMethod":"Du nutzt Version {{current}}. Automatische Updates sind für diese Installation nicht verfügbar — bitte manuell aktualisieren.","settings.general.row.version.descriptionDesktopManaged":"Du nutzt Version {{current}}. Updates werden von der Codeplane-Desktop-App verwaltet — öffne den Updates-Bereich der Desktop-App, um nach einer neuen Version zu suchen.","settings.general.row.version.descriptionManagedLocal":"Du nutzt Version {{current}}. Diese lokale Laufzeit wird vom Launcher verwaltet; starte Codeplane neu, um eine neuere Laufzeit zu verwenden.","settings.general.row.version.action.check":"Nach Updates suchen","settings.general.row.version.action.checking":"Suche…","settings.general.row.version.action.update":"Jetzt aktualisieren","settings.general.row.version.action.updating":"Wird aktualisiert…","settings.general.row.version.action.whatsNew":"Neuigkeiten","sound.option.none":"Keine","sound.option.alert01":"Alarm 01","sound.option.alert02":"Alarm 02","sound.option.alert03":"Alarm 03","sound.option.alert04":"Alarm 04","sound.option.alert05":"Alarm 05","sound.option.alert06":"Alarm 06","sound.option.alert07":"Alarm 07","sound.option.alert08":"Alarm 08","sound.option.alert09":"Alarm 09","sound.option.alert10":"Alarm 10","sound.option.staplebops01":"Tap 01","sound.option.staplebops02":"Tap 02","sound.option.staplebops03":"Tap 03","sound.option.staplebops04":"Tap 04","sound.option.staplebops05":"Tap 05","sound.option.staplebops06":"Tap 06","sound.option.staplebops07":"Tap 07","sound.option.nope01":"Klicken 01","sound.option.nope02":"Klicken 02","sound.option.nope03":"Klicken 03","sound.option.nope04":"Klicken 04","sound.option.nope05":"Klicken 05","sound.option.nope06":"Klicken 06","sound.option.nope07":"Nein 07","sound.option.nope08":"Nein 08","sound.option.nope09":"Nein 09","sound.option.nope10":"Nein 10","sound.option.nope11":"Nein 11","sound.option.nope12":"Nein 12","sound.option.yup01":"Ja 01","sound.option.yup02":"Ja 02","sound.option.yup03":"Ja 03","sound.option.yup04":"Ja 04","sound.option.yup05":"Ja 05","sound.option.yup06":"Ja 06","settings.general.notifications.agent.description":"Systembenachrichtigung anzeigen, wenn der Agent fertig ist oder Aufmerksamkeit benötigt","settings.general.notifications.permissions.title":"Berechtigungen","settings.general.notifications.permissions.description":"Systembenachrichtigung anzeigen, wenn eine Berechtigung erforderlich ist","settings.general.notifications.errors.title":"Fehler","settings.general.notifications.errors.description":"Systembenachrichtigung anzeigen, wenn ein Fehler auftritt","settings.general.sounds.agent.description":"Ton abspielen, wenn der Agent fertig ist oder Aufmerksamkeit benötigt","settings.general.sounds.permissions.title":"Berechtigungen","settings.general.sounds.permissions.description":"Ton abspielen, wenn eine Berechtigung erforderlich ist","settings.general.sounds.errors.title":"Fehler","settings.general.sounds.errors.description":"Ton abspielen, wenn ein Fehler auftritt","settings.shortcuts.title":"Tastenkombinationen","settings.shortcuts.reset.button":"Auf Standard zurücksetzen","settings.shortcuts.reset.toast.title":"Tastenkombinationen zurückgesetzt","settings.shortcuts.reset.toast.description":"Die Tastenkombinationen wurden auf die Standardwerte zurückgesetzt.","settings.shortcuts.conflict.title":"Tastenkombination bereits in Verwendung","settings.shortcuts.conflict.description":"{{keybind}} ist bereits {{titles}} zugewiesen.","settings.shortcuts.unassigned":"Nicht zugewiesen","settings.shortcuts.pressKeys":"Tasten drücken","settings.shortcuts.search.placeholder":"Tastenkürzel suchen","settings.shortcuts.search.empty":"Keine Tastenkürzel gefunden","settings.shortcuts.group.general":"Allgemein","settings.shortcuts.group.session":"Sitzung","settings.shortcuts.group.modelAndAgent":"Modell und Agent","settings.providers.title":"Anbieter","settings.providers.description":"Anbietereinstellungen können hier konfiguriert werden.","settings.providers.section.connected":"Verbundene Anbieter","settings.providers.connected.empty":"Keine verbundenen Anbieter","settings.providers.section.popular":"Beliebte Anbieter","settings.providers.tag.environment":"Umgebung","settings.providers.tag.config":"Konfiguration","settings.providers.tag.custom":"Benutzerdefiniert","settings.providers.tag.other":"Andere","settings.models.title":"Modelle","settings.models.description":"Modelleinstellungen können hier konfiguriert werden.","settings.agents.title":"Agenten","settings.agents.description":"Agenteneinstellungen können hier konfiguriert werden.","settings.commands.title":"Befehle","settings.commands.description":"Befehlseinstellungen können hier konfiguriert werden.","settings.mcp.description":"MCP-Einstellungen können hier konfiguriert werden.","settings.permissions.title":"Berechtigungen","settings.permissions.description":"Steuern Sie, welche Tools der Server standardmäßig verwenden darf.","settings.permissions.toast.updateFailed.title":"Berechtigungen konnten nicht aktualisiert werden","settings.permissions.action.allow":"Erlauben","settings.permissions.action.ask":"Fragen","settings.permissions.action.deny":"Verweigern","settings.permissions.tool.read.title":"Lesen","settings.permissions.tool.read.description":"Lesen einer Datei (stimmt mit dem Dateipfad überein)","settings.permissions.tool.edit.title":"Bearbeiten","settings.permissions.tool.edit.description":"Dateien ändern, einschließlich Bearbeitungen, Schreibvorgängen, Patches und Mehrfachbearbeitungen","settings.permissions.tool.glob.description":"Dateien mithilfe von Glob-Mustern abgleichen","settings.permissions.tool.grep.description":"Dateiinhalte mit regulären Ausdrücken durchsuchen","settings.permissions.tool.list.title":"Auflisten","settings.permissions.tool.list.description":"Dateien in einem Verzeichnis auflisten","settings.permissions.tool.bash.description":"Shell-Befehle ausführen","settings.permissions.tool.task.title":"Aufgabe","settings.permissions.tool.task.description":"Unteragenten starten","settings.permissions.tool.skill.title":"Fähigkeit","settings.permissions.tool.skill.description":"Eine Fähigkeit nach Namen laden","settings.permissions.tool.lsp.description":"Language-Server-Abfragen ausführen","settings.permissions.tool.todowrite.title":"Todo schreiben","settings.permissions.tool.todowrite.description":"Die Todo-Liste aktualisieren","settings.permissions.tool.webfetch.title":"Web-Abruf","settings.permissions.tool.webfetch.description":"Inhalt von einer URL abrufen","settings.permissions.tool.websearch.title":"Web-Suche","settings.permissions.tool.websearch.description":"Das Web durchsuchen","settings.permissions.tool.codesearch.title":"Code-Suche","settings.permissions.tool.codesearch.description":"Code im Web durchsuchen","settings.permissions.tool.external_directory.title":"Externes Verzeichnis","settings.permissions.tool.external_directory.description":"Zugriff auf Dateien außerhalb des Projektverzeichnisses","settings.permissions.tool.doom_loop.description":"Wiederholte Tool-Aufrufe mit identischer Eingabe erkennen","session.copyId":"Sitzungs-ID kopieren","session.delete.failed.title":"Sitzung konnte nicht gelöscht werden","session.delete.title":"Sitzung löschen","session.delete.confirm":'Sitzung "{{name}}" löschen?',"session.delete.button":"Sitzung löschen","workspace.new":"Neuer Arbeitsbereich","workspace.type.local":"lokal","workspace.type.sandbox":"Sandbox","workspace.create.failed.title":"Arbeitsbereich konnte nicht erstellt werden","workspace.delete.failed.title":"Arbeitsbereich konnte nicht gelöscht werden","workspace.resetting.title":"Arbeitsbereich wird zurückgesetzt","workspace.resetting.description":"Dies kann eine Minute dauern.","workspace.reset.failed.title":"Arbeitsbereich konnte nicht zurückgesetzt werden","workspace.reset.success.title":"Arbeitsbereich zurückgesetzt","workspace.reset.success.description":"Der Arbeitsbereich entspricht jetzt dem Standard-Branch.","workspace.error.stillPreparing":"Arbeitsbereich wird noch vorbereitet","workspace.status.checking":"Suche nach nicht zusammengeführten Änderungen...","workspace.status.error":"Git-Status konnte nicht überprüft werden.","workspace.status.clean":"Keine nicht zusammengeführten Änderungen erkannt.","workspace.status.dirty":"Nicht zusammengeführte Änderungen in diesem Arbeitsbereich erkannt.","workspace.delete.title":"Arbeitsbereich löschen","workspace.delete.confirm":'Arbeitsbereich "{{name}}" löschen?',"workspace.delete.button":"Arbeitsbereich löschen","workspace.reset.title":"Arbeitsbereich zurücksetzen","workspace.reset.confirm":'Arbeitsbereich "{{name}}" zurücksetzen?',"workspace.reset.button":"Arbeitsbereich zurücksetzen","workspace.reset.archived.none":"Keine aktiven Sitzungen werden archiviert.","workspace.reset.archived.one":"1 Sitzung wird archiviert.","workspace.reset.archived.many":"{{count}} Sitzungen werden archiviert.","workspace.reset.note":"Dadurch wird der Arbeitsbereich auf den Standard-Branch zurückgesetzt.","common.open":"Öffnen","dialog.releaseNotes.action.getStarted":"Loslegen","dialog.releaseNotes.action.next":"Weiter","dialog.releaseNotes.action.hideFuture":"In Zukunft nicht mehr anzeigen","dialog.releaseNotes.media.alt":"Vorschau auf die Version","toast.project.reloadFailed.title":"Fehler beim Neuladen von {{project}}","error.server.invalidConfiguration":"Ungültige Konfiguration","common.moreCountSuffix":" (+{{count}} weitere)","common.time.justNow":"Gerade eben","common.time.minutesAgo.short":"vor {{count}} Min","common.time.hoursAgo.short":"vor {{count}} Std","common.time.daysAgo.short":"vor {{count}} Tg","archiveSessions.title":"Archivierte Sitzungen","archiveSessions.search.label":"Archivierte Sitzungen suchen","archiveSessions.search.placeholder":"Archivierte Sitzungen suchen","archiveSessions.filter.scope.all":"Alle","archiveSessions.filter.age.all":"Alle","archiveSessions.filter.age.recent":"Kürzlich","archiveSessions.filter.age.older":"Älter","archiveSessions.empty":"Keine archivierten Sitzungen gefunden","archiveSessions.error":"Einige archivierte Sitzungen konnten nicht geladen werden","archiveSessions.archivedAt":"Archiviert {{time}}","archiveSessions.deletesIn":"Wird in {{count}} Tg. gelöscht","archiveSessions.retention":"Archivierte Sitzungen sind schreibgeschützt. Sie werden nach 30 Tagen gelöscht und können nicht wiederhergestellt werden.","archiveSessions.restore.success.title":"Sitzung wiederhergestellt","archiveSessions.restore.success.description":"Die Sitzung ist wieder in der Seitenleiste.","archiveSessions.restore.failed.title":"Sitzung konnte nicht wiederhergestellt werden","session.archived.readOnly":"Diese Sitzung ist archiviert und schreibgeschützt. Archivierte Sitzungen werden nach 30 Tagen gelöscht.","settings.providers.connected.environmentDescription":"Verbunden aus Ihren Umgebungsvariablen","settings.providers.custom.description":"Fügen Sie einen OpenAI-kompatiblen Anbieter per Basis-URL hinzu.","app.server.unreachable":"Konnte {{server}} nicht erreichen","app.server.retrying":"Automatische erneute Verbindung...","app.server.otherServers":"Andere Instanzen","dialog.server.add.usernamePlaceholder":"Benutzername","dialog.server.add.passwordPlaceholder":"Passwort","server.row.noUsername":"Kein Benutzername","session.review.noVcs.createGit.title":"Git-Repository erstellen","session.review.noVcs.createGit.description":"Änderungen in diesem Projekt verfolgen, überprüfen und rückgängig machen","session.review.noVcs.createGit.actionLoading":"Git-Repository wird erstellt...","session.review.noVcs.createGit.action":"Git-Repository erstellen","session.todo.progress":"{{done}} von {{total}} Aufgaben erledigt","session.question.progress":"{{current}} von {{total}} Fragen","session.header.open.fileExplorer":"Datei-Explorer","session.header.open.fileManager":"Dateimanager","debugBar.ariaLabel":"Entwicklungs-Leistungsdiagnose","debugBar.na":"n.v.","debugBar.nav.tip":"Letzter abgeschlossener Routenübergang, der eine Sitzungsseite berührt, gemessen vom Start des Routers bis zum ersten Rendern nach dem Einschwingen.","debugBar.fps.tip":"Gleitende Bilder pro Sekunde in den letzten 5 Sekunden.","debugBar.frame.tip":"Schlechteste Frame-Zeit in den letzten 5 Sekunden.","debugBar.jank.tip":"Frames über 32ms in den letzten 5 Sekunden.","debugBar.long.tip":"Blockierte Zeit und Anzahl langer Aufgaben in den letzten 5 Sekunden. Max Aufgabe: {{max}}.","debugBar.delay.tip":"Schlechteste beobachtete Eingabeverzögerung in den letzten 5 Sekunden.","debugBar.inp.tip":"Ungefähre Interaktionsdauer in den letzten 5 Sekunden. Dies ist INP-ähnlich, nicht das offizielle Web Vitals INP.","debugBar.cls.tip":"Kumulative Layoutverschiebung für die aktuelle App-Lebensdauer.","debugBar.mem.tipUnavailable":"Verwendeter JS-Heap vs Heap-Limit. Nur Chromium.","debugBar.mem.tip":"Verwendeter JS-Heap vs Heap-Limit. {{used}} von {{limit}}.","common.key.ctrl":"Strg","common.key.shift":"Umschalt","common.key.space":"Leertaste","common.key.backspace":"Rücktaste","common.key.enter":"Eingabe","common.key.delete":"Entf","common.key.home":"Pos1","common.key.end":"Ende","common.key.pageUp":"Bild auf","common.key.pageDown":"Bild ab","common.key.insert":"Einfg","common.unknown":"unbekannt","error.page.circular":"[Zirkulär]","error.globalSDK.noServerAvailable":"Kein Server verfügbar","error.globalSDK.serverNotAvailable":"Server nicht verfügbar","error.childStore.persistedCacheCreateFailed":"Dauerhafter Cache konnte nicht erstellt werden","error.childStore.persistedProjectMetadataCreateFailed":"Dauerhafte Projektmetadaten konnten nicht erstellt werden","error.childStore.persistedProjectIconCreateFailed":"Dauerhaftes Projekticon konnte nicht erstellt werden","error.childStore.storeCreateFailed":"Speicher konnte nicht erstellt werden","terminal.connectionLost.abnormalClose":"WebSocket abnormal geschlossen: {{code}}","settings.providers.models.edit":"Modelle bearbeiten","settings.providers.models.title":"Modelle für {{provider}}","settings.providers.models.count":"{{selected}} von {{total}} konfiguriert","settings.providers.models.selectAll":"Alle auswählen","settings.providers.models.clear":"Leeren","settings.providers.models.add.id":"Modell-ID","settings.providers.models.add.name":"Anzeigename","settings.providers.models.add.submit":"Hinzufügen","settings.providers.models.add.error.id":"Modell-ID ist erforderlich.","settings.providers.models.empty":"Keine Modelle gefunden","settings.providers.models.error.required":"Mindestens ein Modell auswählen.","settings.providers.models.toast.updated":"Modelle für {{provider}} aktualisiert","command.cron.open":"Geplante Aufgaben","cron.title":"Geplante Aufgaben","cron.subtitle":"Agent-Aufgaben automatisch nach Zeitplan ausführen.","cron.empty":"Noch keine geplanten Aufgaben. Erstelle eine, damit der Agent automatisch läuft.","cron.empty.project":"Für dieses Projekt sind noch keine geplanten Aufgaben vorhanden.","cron.create":"Neue geplante Aufgabe","cron.create.noProject":"Kein Projekt ausgewählt — bitte zuerst ein Projekt öffnen.","common.back":"Zurück","cron.delete.confirm":"Diese geplante Aufgabe und alle ihre Läufe löschen?","cron.action.pause":"Pausieren","cron.action.resume":"Fortsetzen","cron.action.disable":"Deaktivieren","cron.action.activate":"Aktivieren","cron.action.trigger":"Jetzt ausführen","cron.action.delete":"Löschen","cron.action.edit":"Bearbeiten","cron.action.cancel":"Lauf abbrechen","cron.action.openSession":"Sitzung öffnen","cron.field.name.placeholder":"Tägliches Code-Review","sidebar.restart":"Neustarten","sidebar.restart.confirm":"Codeplane neu starten? Aktive Sitzungen werden neu verbunden, Modus-, Plugin- und MCP-Änderungen werden neu geladen.","cron.field.description":"Beschreibung","cron.field.prompt":"Aufgaben-Prompt","cron.field.prompt.placeholder":"Beschreibe genau, was der Agent tun soll.","cron.field.schedule":"Zeitplan","cron.field.schedule.cron":"Cron-Ausdruck","cron.field.schedule.cron.placeholder":"z. B. 0 9 * * 1-5","cron.field.schedule.interval":"Intervall (Minuten)","cron.field.scheduleKind":"Zeitplan-Typ","cron.field.timeout":"Timeout (Minuten)","cron.field.model":"Modell (Anbieter/Modell-ID)","cron.field.directory":"Verzeichnis","cron.status.active":"Aktiv","cron.status.paused":"Pausiert","cron.status.disabled":"Deaktiviert","cron.run.status.queued":"In Warteschlange","cron.run.status.running":"Läuft","cron.run.status.success":"Erfolgreich","cron.run.status.failed":"Fehlgeschlagen","cron.run.status.timeout":"Zeitüberschreitung","cron.run.status.cancelled":"Abgebrochen","cron.runs.title":"Letzte Läufe","cron.runs.empty":"Noch keine Läufe","cron.next":"Nächster Lauf","cron.last":"Letzter Lauf","cron.never":"Nie","cron.error.name.required":"Name ist erforderlich","cron.error.prompt.required":"Prompt ist erforderlich","cron.error.interval.min":"Intervall muss mindestens 1 Minute sein","cron.error.timeout.min":"Timeout muss mindestens 1 Minute sein","cron.error.validation.fix":"Bitte die markierten Felder korrigieren","cron.rail.title":"Sitzungen","cron.rail.tasks":"Geplante Aufgaben","cron.rail.empty":"Noch keine Sitzungen","session.cron.readonly":"Dies ist eine Sitzung einer geplanten Aufgabe. Der Agent läuft autonom — Eingaben sind nicht möglich.","modes.page.title":"Modi","modes.page.subtitle":"{{enabled}} von {{total}} aktiviert","modes.page.add":"Modus hinzufügen","modes.page.empty":"Keine Modi konfiguriert","modes.kind.primary":"Primär","modes.kind.all":"Primär + Subagent","modes.source.legacy":"Alter Modus","modes.tag.hidden":"Ausgeblendet","modes.tag.disabled":"Deaktiviert","modes.toast.added":"Modus hinzugefügt","modes.toast.updated":"Modus aktualisiert","modes.editor.title.add":"Modus hinzufügen","modes.editor.title.edit":"Modus bearbeiten","modes.editor.description":"Beschreibung","modes.editor.description.placeholder":"Wann dieser Modus verwendet werden sollte","modes.editor.model":"Modell","modes.editor.model.description":"Optionales Provider/Modell-Override für diesen Modus.","modes.editor.prompt.description":"Zusätzlicher System-Prompt für diesen Modus.","modes.editor.prompt.placeholder":"Du konzentrierst dich auf das Überprüfen von Code auf Korrektheit ...","modes.editor.temperature":"Temperatur","modes.editor.steps":"Schritte","modes.editor.hidden":"Ausgeblendet","modes.editor.hidden.description":"Diesen Modus aus dem Prompt-Auswahlmenü ausblenden.","modes.editor.disable":"Deaktiviert","modes.editor.disable.description":"Konfiguration behalten, aber diesen Modus aus der Laufzeitauswahl entfernen.","modes.editor.error.name":"Name ist erforderlich.","modes.editor.error.duplicate":"Ein Modus oder Agent mit diesem Namen existiert bereits.","models.page.title":"Modelle","models.page.subtitle":"{{shown}} von {{total}} im Sitzungs-Modellauswahlmenü sichtbar","models.page.add":"Modell hinzufügen","models.page.empty":"Keine Modelle gefunden","models.page.search":"Modelle durchsuchen","models.kind.custom":"Benutzerdefiniert","models.kind.builtin":"Integriert","models.row.provider":"Anbieter {{provider}}","models.row.shown":"Im Sitzungs-Modellauswahlmenü anzeigen","models.toast.added":"Modell hinzugefügt","models.toast.updated":"Modell aktualisiert","models.editor.title.add":"Modell hinzufügen","models.editor.title.edit":"Modell bearbeiten","models.editor.provider":"Anbieter-ID","models.editor.model":"Modell-ID","models.editor.apiModel":"API-Modell-ID","models.editor.apiModel.description":"Optional. Damit kann ein Alias für ein Provider-Modell erstellt werden.","models.editor.family":"Familie","models.editor.releaseDate":"Veröffentlichung","models.editor.context":"Kontext","models.editor.input":"Eingabe","models.editor.output":"Ausgabe","models.editor.capabilities":"Fähigkeiten","models.editor.temperature":"Temperatur","models.editor.attachment":"Anhänge","models.editor.toolCall":"Tool-Aufrufe","models.editor.error.provider":"Anbieter-ID ist erforderlich.","models.editor.error.model":"Modell-ID ist erforderlich.","models.editor.error.duplicate":"Für diesen Anbieter existiert bereits ein Modell mit dieser ID.","models.editor.error.name":"Name ist erforderlich.","mcp.page.subtitle":"{{enabled}} von {{total}} aktiviert","mcp.page.add":"Server hinzufügen","mcp.page.empty":"Keine MCP-Server konfiguriert","mcp.page.confirm.remove":"MCP-Server „{{name}}“ entfernen?","mcp.page.stat.total":"Server","mcp.page.stat.local":"Lokal","mcp.toast.added":"MCP-Server hinzugefügt","mcp.toast.updated":"MCP-Server aktualisiert","mcp.toast.removed":"MCP-Server entfernt","mcp.editor.title.add":"MCP-Server hinzufügen","mcp.editor.title.edit":"MCP-Server bearbeiten","mcp.editor.type":"Typ","mcp.editor.type.local":"Lokal","mcp.editor.command":"Befehl","mcp.editor.command.description":"Befehl und Argumente zum Starten des MCP-Servers.","mcp.editor.environment":"Umgebungsvariablen","mcp.editor.environment.description":"Werden als Env-Variablen an den lokalen Prozess übergeben. Werte sind maskiert — auf das Auge tippen, um sie anzuzeigen.","mcp.editor.headers":"Header","mcp.editor.headers.description":"Werden mit jeder Anfrage gesendet. Werte sind maskiert — auf das Auge tippen, um sie anzuzeigen.","mcp.editor.timeout.description":"Wie lange auf MCP-Server-Anfragen gewartet wird, bevor abgebrochen wird.","mcp.editor.enabled":"Aktiviert","mcp.editor.enabled.description":"Diesen Server beim Start verbinden.","mcp.editor.row.add":"Zeile hinzufügen","mcp.editor.row.key":"Schlüssel","mcp.editor.row.value":"Wert","mcp.editor.row.reveal":"Wert anzeigen","mcp.editor.row.hide":"Wert ausblenden","mcp.editor.error.name":"Name ist erforderlich.","mcp.editor.error.duplicate":"Ein MCP-Server mit diesem Namen existiert bereits.","mcp.editor.error.command":"Befehl ist erforderlich.","mcp.editor.error.url":"URL ist erforderlich.","mcp.editor.error.urlInvalid":"URL muss mit http:// oder https:// beginnen.","plugins.page.subtitle":"{{count}} konfiguriert","plugins.page.add":"Plugin hinzufügen","plugins.page.empty":"Keine Plugins konfiguriert","plugins.page.confirm.remove":"Plugin „{{name}}“ entfernen?","plugins.page.stat.package":"Paket","plugins.page.stat.local":"Lokal","plugins.kind.local":"Lokal","plugins.kind.package":"Paket","plugins.row.optionCount":"{{count}} Optionen","plugins.toast.added":"Plugin hinzugefügt","plugins.toast.updated":"Plugin aktualisiert","plugins.toast.removed":"Plugin entfernt","plugins.editor.title.add":"Plugin hinzufügen","plugins.editor.title.edit":"Plugin bearbeiten","plugins.editor.specifier":"Spezifizierer","plugins.editor.specifier.description":"Paketname (mein-plugin), Pfad (./plugins/foo.ts) oder URL (https://example.com/plugin.js).","plugins.editor.options":"Optionen","plugins.editor.options.description":"Optionale Schlüssel-Wert-Konfiguration, die an das Plugin übergeben wird. Geheim aussehende Schlüssel sind maskiert — auf das Auge tippen, um sie anzuzeigen.","plugins.editor.option.add":"Option hinzufügen","plugins.editor.option.key":"Schlüssel","plugins.editor.option.value":"Wert","plugins.editor.option.reveal":"Wert anzeigen","plugins.editor.option.hide":"Wert ausblenden","plugins.editor.error.specifier":"Spezifizierer ist erforderlich.","skills.page.subtitle":"{{enabled}} von {{total}} aktiviert, {{sources}} Quellen","skills.page.addSource":"Quelle hinzufügen","skills.page.empty":"Keine Skills gefunden","skills.section.sources":"Quellen","skills.section.available":"Verfügbare Skills","skills.sources.empty":"Keine zusätzlichen Skill-Quellen konfiguriert","skills.sources.confirm.remove":"Skill-Quelle „{{source}}“ entfernen?","skills.source.path":"Pfad","skills.kind.local":"Lokal","skills.tag.disabled":"Deaktiviert","skills.row.openFile":"Skill-Datei bearbeiten","skills.toast.sourceAdded":"Skill-Quelle hinzugefügt","skills.toast.sourceUpdated":"Skill-Quelle aktualisiert","skills.toast.sourceRemoved":"Skill-Quelle entfernt","skills.editor.title.add":"Skill-Quelle hinzufügen","skills.editor.title.edit":"Skill-Quelle bearbeiten","skills.editor.type":"Typ","skills.editor.path":"Pfad","skills.editor.path.description":"Verzeichnis, das nach SKILL.md-Dateien durchsucht wird.","skills.editor.url.description":"Skill-Index-URL, die mit /.well-known/skills/ endet.","skills.editor.browse":"Durchsuchen","skills.editor.browse.title":"Skill-Verzeichnis auswählen","skills.editor.error.value":"Quelle ist erforderlich.","skills.editor.error.url":"URL muss mit http:// oder https:// beginnen.","skills.editor.error.duplicate":"Diese Quelle ist bereits konfiguriert."},i={...e,...n};export{i as dict};
@@ -1 +1 @@
1
- import{a as e}from"./index-Dk9AuGHe.js";const i={"ui.sessionReview.title":"Sitzungsänderungen","ui.sessionReview.title.lastTurn":"Änderungen der letzten Runde","ui.sessionReview.diffStyle.unified":"Vereinheitlicht","ui.sessionReview.diffStyle.split":"Geteilt","ui.sessionReview.openFile":"Datei öffnen","ui.sessionReview.selection.line":"Zeile {{line}}","ui.sessionReview.selection.lines":"Zeilen {{start}}-{{end}}","ui.sessionReview.expandAll":"Alle erweitern","ui.sessionReview.collapseAll":"Alle reduzieren","ui.sessionReview.change.added":"Hinzugefügt","ui.sessionReview.change.removed":"Entfernt","ui.sessionReview.change.modified":"Geändert","ui.sessionReview.image.loading":"Wird geladen...","ui.sessionReview.image.placeholder":"Bild","ui.sessionReview.largeDiff.title":"Diff zu groß zum Rendern","ui.sessionReview.largeDiff.meta":"Limit: {{limit}} geänderte Zeilen. Aktuell: {{current}} geänderte Zeilen.","ui.sessionReview.largeDiff.renderAnyway":"Trotzdem rendern","ui.fileMedia.kind.image":"bild","ui.fileMedia.state.removed":"{{kind}} entfernt","ui.fileMedia.state.loading":"{{kind}} wird geladen","ui.fileMedia.state.error":"Fehler bei {{kind}}","ui.fileMedia.state.unavailable":"{{kind}} nicht verfügbar","ui.fileMedia.binary.title":"Binärdatei","ui.fileMedia.binary.description.path":"{{path}} kann nicht angezeigt werden, da es sich um eine Binärdatei handelt.","ui.fileMedia.binary.description.default":"Diese Datei kann nicht angezeigt werden, da es sich um eine Binärdatei handelt.","ui.lineComment.label.prefix":"Kommentar zu ","ui.lineComment.editorLabel.prefix":"Kommentiere ","ui.lineComment.placeholder":"Kommentar hinzufügen","ui.lineComment.submit":"Kommentieren","ui.sessionTurn.steps.show":"Schritte anzeigen","ui.sessionTurn.steps.hide":"Schritte ausblenden","ui.sessionTurn.summary.response":"Antwort","ui.sessionTurn.diff.showMore":"Weitere Änderungen anzeigen ({{count}})","ui.sessionTurn.retry.retrying":"erneuter Versuch","ui.sessionTurn.retry.attempt":"Versuch #{{attempt}}","ui.sessionTurn.retry.attemptLine":"{{line}} - Versuch #{{attempt}}","ui.sessionTurn.retry.geminiHot":"gemini ist gerade sehr überlastet","ui.sessionTurn.error.freeUsageExceeded":"Kostenloses Nutzungslimit überschritten","ui.sessionTurn.error.addCredits":"Guthaben aufladen","ui.sessionTurn.status.delegating":"Arbeit delegieren","ui.sessionTurn.status.planning":"Nächste Schritte planen","ui.sessionTurn.status.gatheringContext":"Erkunden","ui.sessionTurn.status.gatheredContext":"Erkundet","ui.sessionTurn.status.searchingCodebase":"Codebasis durchsuchen","ui.sessionTurn.status.searchingWeb":"Web durchsuchen","ui.sessionTurn.status.makingEdits":"Änderungen vornehmen","ui.sessionTurn.status.runningCommands":"Befehle ausführen","ui.sessionTurn.status.thinking":"Denken","ui.sessionTurn.status.thinkingWithTopic":"Denken - {{topic}}","ui.sessionTurn.status.gatheringThoughts":"Gedanken sammeln","ui.sessionTurn.status.consideringNextSteps":"Nächste Schritte erwägen","ui.messagePart.questions.dismissed":"Fragen verworfen","ui.messagePart.compaction":"Sitzung komprimiert","ui.messagePart.context.read.one":"{{count}} Lesevorgang","ui.messagePart.context.read.other":"{{count}} Lesevorgänge","ui.messagePart.context.search.one":"{{count}} Suche","ui.messagePart.context.search.other":"{{count}} Suchen","ui.messagePart.context.list.one":"{{count}} Liste","ui.messagePart.context.list.other":"{{count}} Listen","ui.messagePart.diagnostic.error":"Fehler","ui.messagePart.title.edit":"Bearbeiten","ui.messagePart.title.write":"Schreiben","ui.messagePart.option.typeOwnAnswer":"Eigene Antwort eingeben","ui.messagePart.review.title":"Antworten überprüfen","ui.list.loading":"Laden","ui.list.empty":"Keine Ergebnisse","ui.list.clearFilter":"Filter löschen","ui.list.emptyWithFilter.prefix":"Keine Ergebnisse für","ui.messageNav.newMessage":"Neue Nachricht","ui.textField.copyToClipboard":"In die Zwischenablage kopieren","ui.textField.copyLink":"Link kopieren","ui.textField.copied":"Kopiert","ui.imagePreview.alt":"Bildvorschau","ui.scrollView.ariaLabel":"scrollbarer Inhalt","ui.tool.read":"Lesen","ui.tool.loaded":"Geladen","ui.tool.list":"Auflisten","ui.tool.webfetch":"Webabruf","ui.tool.websearch":"Websuche","ui.tool.codesearch":"Codesuche","ui.tool.todos":"Aufgaben","ui.tool.todos.read":"Aufgaben lesen","ui.tool.questions":"Fragen","ui.common.file.one":"Datei","ui.common.file.other":"Dateien","ui.common.question.one":"Frage","ui.common.question.other":"Fragen","ui.common.add":"Hinzufügen","ui.common.back":"Zurück","ui.common.cancel":"Abbrechen","ui.common.confirm":"Bestätigen","ui.common.dismiss":"Verwerfen","ui.common.close":"Schließen","ui.common.next":"Weiter","ui.common.submit":"Absenden","ui.permission.deny":"Verweigern","ui.permission.allowAlways":"Immer erlauben","ui.permission.allowOnce":"Einmal erlauben","ui.message.expand":"Nachricht erweitern","ui.message.collapse":"Nachricht reduzieren","ui.message.copy":"Kopieren","ui.message.copyMessage":"Nachricht kopieren","ui.message.forkMessage":"In neue Sitzung abzweigen","ui.message.revertMessage":"Auf diesen Punkt zurücksetzen","ui.message.copyResponse":"Antwort kopieren","ui.message.copied":"Kopiert!","ui.message.interrupted":"Unterbrochen","ui.message.queued":"In Warteschlange","ui.message.attachment.alt":"Anhang","ui.patch.action.deleted":"Gelöscht","ui.patch.action.created":"Erstellt","ui.patch.action.moved":"Verschoben","ui.patch.action.patched":"Gepatched","ui.question.subtitle.answered":"{{count}} beantwortet","ui.question.answer.none":"(keine Antwort)","ui.question.review.notAnswered":"(nicht beantwortet)","ui.question.multiHint":"Alle zutreffenden auswählen","ui.question.singleHint":"Eine Antwort auswählen","ui.question.custom.placeholder":"Geben Sie Ihre Antwort ein...","ui.fileSearch.placeholder":"Suchen","ui.fileSearch.previousMatch":"Vorheriges Ergebnis","ui.fileSearch.nextMatch":"Nächstes Ergebnis","ui.fileSearch.close":"Suche schließen","ui.tool.task":"Aufgabe","ui.tool.skill":"Fähigkeit","ui.basicTool.called":"`{{tool}}` aufgerufen","ui.toolErrorCard.failed":"Fehlgeschlagen","ui.toolErrorCard.copyError":"Fehler kopieren"},s={...e,...i};export{s as dict};
1
+ import{a as e}from"./index-8BjFOjO4.js";const i={"ui.sessionReview.title":"Sitzungsänderungen","ui.sessionReview.title.lastTurn":"Änderungen der letzten Runde","ui.sessionReview.diffStyle.unified":"Vereinheitlicht","ui.sessionReview.diffStyle.split":"Geteilt","ui.sessionReview.openFile":"Datei öffnen","ui.sessionReview.selection.line":"Zeile {{line}}","ui.sessionReview.selection.lines":"Zeilen {{start}}-{{end}}","ui.sessionReview.expandAll":"Alle erweitern","ui.sessionReview.collapseAll":"Alle reduzieren","ui.sessionReview.change.added":"Hinzugefügt","ui.sessionReview.change.removed":"Entfernt","ui.sessionReview.change.modified":"Geändert","ui.sessionReview.image.loading":"Wird geladen...","ui.sessionReview.image.placeholder":"Bild","ui.sessionReview.largeDiff.title":"Diff zu groß zum Rendern","ui.sessionReview.largeDiff.meta":"Limit: {{limit}} geänderte Zeilen. Aktuell: {{current}} geänderte Zeilen.","ui.sessionReview.largeDiff.renderAnyway":"Trotzdem rendern","ui.fileMedia.kind.image":"bild","ui.fileMedia.state.removed":"{{kind}} entfernt","ui.fileMedia.state.loading":"{{kind}} wird geladen","ui.fileMedia.state.error":"Fehler bei {{kind}}","ui.fileMedia.state.unavailable":"{{kind}} nicht verfügbar","ui.fileMedia.binary.title":"Binärdatei","ui.fileMedia.binary.description.path":"{{path}} kann nicht angezeigt werden, da es sich um eine Binärdatei handelt.","ui.fileMedia.binary.description.default":"Diese Datei kann nicht angezeigt werden, da es sich um eine Binärdatei handelt.","ui.lineComment.label.prefix":"Kommentar zu ","ui.lineComment.editorLabel.prefix":"Kommentiere ","ui.lineComment.placeholder":"Kommentar hinzufügen","ui.lineComment.submit":"Kommentieren","ui.sessionTurn.steps.show":"Schritte anzeigen","ui.sessionTurn.steps.hide":"Schritte ausblenden","ui.sessionTurn.summary.response":"Antwort","ui.sessionTurn.diff.showMore":"Weitere Änderungen anzeigen ({{count}})","ui.sessionTurn.retry.retrying":"erneuter Versuch","ui.sessionTurn.retry.attempt":"Versuch #{{attempt}}","ui.sessionTurn.retry.attemptLine":"{{line}} - Versuch #{{attempt}}","ui.sessionTurn.retry.geminiHot":"gemini ist gerade sehr überlastet","ui.sessionTurn.error.freeUsageExceeded":"Kostenloses Nutzungslimit überschritten","ui.sessionTurn.error.addCredits":"Guthaben aufladen","ui.sessionTurn.status.delegating":"Arbeit delegieren","ui.sessionTurn.status.planning":"Nächste Schritte planen","ui.sessionTurn.status.gatheringContext":"Erkunden","ui.sessionTurn.status.gatheredContext":"Erkundet","ui.sessionTurn.status.searchingCodebase":"Codebasis durchsuchen","ui.sessionTurn.status.searchingWeb":"Web durchsuchen","ui.sessionTurn.status.makingEdits":"Änderungen vornehmen","ui.sessionTurn.status.runningCommands":"Befehle ausführen","ui.sessionTurn.status.thinking":"Denken","ui.sessionTurn.status.thinkingWithTopic":"Denken - {{topic}}","ui.sessionTurn.status.gatheringThoughts":"Gedanken sammeln","ui.sessionTurn.status.consideringNextSteps":"Nächste Schritte erwägen","ui.messagePart.questions.dismissed":"Fragen verworfen","ui.messagePart.compaction":"Sitzung komprimiert","ui.messagePart.context.read.one":"{{count}} Lesevorgang","ui.messagePart.context.read.other":"{{count}} Lesevorgänge","ui.messagePart.context.search.one":"{{count}} Suche","ui.messagePart.context.search.other":"{{count}} Suchen","ui.messagePart.context.list.one":"{{count}} Liste","ui.messagePart.context.list.other":"{{count}} Listen","ui.messagePart.diagnostic.error":"Fehler","ui.messagePart.title.edit":"Bearbeiten","ui.messagePart.title.write":"Schreiben","ui.messagePart.option.typeOwnAnswer":"Eigene Antwort eingeben","ui.messagePart.review.title":"Antworten überprüfen","ui.list.loading":"Laden","ui.list.empty":"Keine Ergebnisse","ui.list.clearFilter":"Filter löschen","ui.list.emptyWithFilter.prefix":"Keine Ergebnisse für","ui.messageNav.newMessage":"Neue Nachricht","ui.textField.copyToClipboard":"In die Zwischenablage kopieren","ui.textField.copyLink":"Link kopieren","ui.textField.copied":"Kopiert","ui.imagePreview.alt":"Bildvorschau","ui.scrollView.ariaLabel":"scrollbarer Inhalt","ui.tool.read":"Lesen","ui.tool.loaded":"Geladen","ui.tool.list":"Auflisten","ui.tool.webfetch":"Webabruf","ui.tool.websearch":"Websuche","ui.tool.codesearch":"Codesuche","ui.tool.todos":"Aufgaben","ui.tool.todos.read":"Aufgaben lesen","ui.tool.questions":"Fragen","ui.common.file.one":"Datei","ui.common.file.other":"Dateien","ui.common.question.one":"Frage","ui.common.question.other":"Fragen","ui.common.add":"Hinzufügen","ui.common.back":"Zurück","ui.common.cancel":"Abbrechen","ui.common.confirm":"Bestätigen","ui.common.dismiss":"Verwerfen","ui.common.close":"Schließen","ui.common.next":"Weiter","ui.common.submit":"Absenden","ui.permission.deny":"Verweigern","ui.permission.allowAlways":"Immer erlauben","ui.permission.allowOnce":"Einmal erlauben","ui.message.expand":"Nachricht erweitern","ui.message.collapse":"Nachricht reduzieren","ui.message.copy":"Kopieren","ui.message.copyMessage":"Nachricht kopieren","ui.message.forkMessage":"In neue Sitzung abzweigen","ui.message.revertMessage":"Auf diesen Punkt zurücksetzen","ui.message.copyResponse":"Antwort kopieren","ui.message.copied":"Kopiert!","ui.message.interrupted":"Unterbrochen","ui.message.queued":"In Warteschlange","ui.message.attachment.alt":"Anhang","ui.patch.action.deleted":"Gelöscht","ui.patch.action.created":"Erstellt","ui.patch.action.moved":"Verschoben","ui.patch.action.patched":"Gepatched","ui.question.subtitle.answered":"{{count}} beantwortet","ui.question.answer.none":"(keine Antwort)","ui.question.review.notAnswered":"(nicht beantwortet)","ui.question.multiHint":"Alle zutreffenden auswählen","ui.question.singleHint":"Eine Antwort auswählen","ui.question.custom.placeholder":"Geben Sie Ihre Antwort ein...","ui.fileSearch.placeholder":"Suchen","ui.fileSearch.previousMatch":"Vorheriges Ergebnis","ui.fileSearch.nextMatch":"Nächstes Ergebnis","ui.fileSearch.close":"Suche schließen","ui.tool.task":"Aufgabe","ui.tool.skill":"Fähigkeit","ui.basicTool.called":"`{{tool}}` aufgerufen","ui.toolErrorCard.failed":"Fehlgeschlagen","ui.toolErrorCard.copyError":"Fehler kopieren"},s={...e,...i};export{s as dict};
@@ -1,4 +1,4 @@
1
- import{q as x,b as f,s as C,t as B,g as T,a as y,_ as s,G as u,l as k,K as V,e as _,E as N,H as S,z as D}from"./mermaid.core-DbO6n2h4.js";import{p as $}from"./chunk-4BX2VUAB-DlX15Csq.js";import{I as z}from"./chunk-QZHKN3VN-B4kK4smI.js";import{p as A}from"./wardley-RL74JXVD-BjFgiMeD.js";import"./index-Dk9AuGHe.js";import"./min-CJdsHiRt.js";import"./_baseUniq-BXCc5S1E.js";var d=new z(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",children:[]}]})),H=s(()=>{d.reset(),D()},"clear"),I=s(()=>d.records.stack[0],"getRoot"),X=s(()=>d.records.cnt,"getCount"),E=S.treeView,L=s(()=>u(E,N().treeView),"getConfig"),R=s((e,t)=>{for(;e<=d.records.stack[d.records.stack.length-1].level;)d.records.stack.pop();const a={id:d.records.cnt++,level:e,name:t,children:[]};d.records.stack[d.records.stack.length-1].children.push(a),d.records.stack.push(a)},"addNode"),W={clear:H,addNode:R,getRoot:I,getCount:X,getConfig:L,getAccTitle:y,getAccDescription:T,getDiagramTitle:B,setAccDescription:C,setAccTitle:f,setDiagramTitle:x},w=W,M=s(e=>{$(e,w),e.nodes.map(t=>w.addNode(t.indent?parseInt(t.indent):0,t.name))},"populate"),F={parse:s(async e=>{const t=await A("treeView",e);k.debug(t),M(t)},"parse")},Y=s((e,t,a,n,o)=>{const c=n.append("text").text(a.name).attr("dominant-baseline","middle").attr("class","treeView-node-label"),{height:g,width:r}=c.node().getBBox(),l=g+o.paddingY*2,i=r+o.paddingX*2;c.attr("x",e+o.paddingX),c.attr("y",t+l/2),a.BBox={x:e,y:t,width:i,height:l}},"positionLabel"),b=s((e,t,a,n,o,c)=>e.append("line").attr("x1",t).attr("y1",a).attr("x2",n).attr("y2",o).attr("stroke-width",c).attr("class","treeView-node-line"),"positionLine"),q=s((e,t,a)=>{let n=0,o=0;const c=s((r,l,i,h)=>{const v=h*(i.rowIndent+i.paddingX);Y(v,n,l,r,i);const{height:p,width:m}=l.BBox;b(r,v-i.rowIndent,n+p/2,v,n+p/2,i.lineThickness),o=Math.max(o,v+m),n+=p},"drawNode"),g=s((r,l=0)=>{c(e,r,a,l),r.children.forEach(p=>{g(p,l+1)});const{x:i,y:h,height:v}=r.BBox;if(r.children.length){const{y:p,height:m}=r.children[r.children.length-1].BBox;b(e,i+a.paddingX,h+v,i+a.paddingX,p+m/2+a.lineThickness/2,a.lineThickness)}},"processNode");return g(t),{totalHeight:n,totalWidth:o}},"drawTree"),G=s((e,t,a,n)=>{k.debug(`Rendering treeView diagram
1
+ import{q as x,b as f,s as C,t as B,g as T,a as y,_ as s,G as u,l as k,K as V,e as _,E as N,H as S,z as D}from"./mermaid.core-Ox16xmjh.js";import{p as $}from"./chunk-4BX2VUAB-DCEFdtm5.js";import{I as z}from"./chunk-QZHKN3VN-DFWe_hTX.js";import{p as A}from"./wardley-RL74JXVD-Dkz2_xIB.js";import"./index-8BjFOjO4.js";import"./min-DEpKLwZg.js";import"./_baseUniq-BfD7UfsT.js";var d=new z(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",children:[]}]})),H=s(()=>{d.reset(),D()},"clear"),I=s(()=>d.records.stack[0],"getRoot"),X=s(()=>d.records.cnt,"getCount"),E=S.treeView,L=s(()=>u(E,N().treeView),"getConfig"),R=s((e,t)=>{for(;e<=d.records.stack[d.records.stack.length-1].level;)d.records.stack.pop();const a={id:d.records.cnt++,level:e,name:t,children:[]};d.records.stack[d.records.stack.length-1].children.push(a),d.records.stack.push(a)},"addNode"),W={clear:H,addNode:R,getRoot:I,getCount:X,getConfig:L,getAccTitle:y,getAccDescription:T,getDiagramTitle:B,setAccDescription:C,setAccTitle:f,setDiagramTitle:x},w=W,M=s(e=>{$(e,w),e.nodes.map(t=>w.addNode(t.indent?parseInt(t.indent):0,t.name))},"populate"),F={parse:s(async e=>{const t=await A("treeView",e);k.debug(t),M(t)},"parse")},Y=s((e,t,a,n,o)=>{const c=n.append("text").text(a.name).attr("dominant-baseline","middle").attr("class","treeView-node-label"),{height:g,width:r}=c.node().getBBox(),l=g+o.paddingY*2,i=r+o.paddingX*2;c.attr("x",e+o.paddingX),c.attr("y",t+l/2),a.BBox={x:e,y:t,width:i,height:l}},"positionLabel"),b=s((e,t,a,n,o,c)=>e.append("line").attr("x1",t).attr("y1",a).attr("x2",n).attr("y2",o).attr("stroke-width",c).attr("class","treeView-node-line"),"positionLine"),q=s((e,t,a)=>{let n=0,o=0;const c=s((r,l,i,h)=>{const v=h*(i.rowIndent+i.paddingX);Y(v,n,l,r,i);const{height:p,width:m}=l.BBox;b(r,v-i.rowIndent,n+p/2,v,n+p/2,i.lineThickness),o=Math.max(o,v+m),n+=p},"drawNode"),g=s((r,l=0)=>{c(e,r,a,l),r.children.forEach(p=>{g(p,l+1)});const{x:i,y:h,height:v}=r.BBox;if(r.children.length){const{y:p,height:m}=r.children[r.children.length-1].BBox;b(e,i+a.paddingX,h+v,i+a.paddingX,p+m/2+a.lineThickness/2,a.lineThickness)}},"processNode");return g(t),{totalHeight:n,totalWidth:o}},"drawTree"),G=s((e,t,a,n)=>{k.debug(`Rendering treeView diagram
2
2
  `+e);const o=n.db,c=o.getRoot(),g=o.getConfig(),r=V(t),l=r.append("g");l.attr("class","tree-view");const{totalHeight:i,totalWidth:h}=q(l,c,g);r.attr("viewBox",`-${g.lineThickness/2} 0 ${h} ${i}`),_(r,i,h,g.useMaxWidth)},"draw"),K={draw:G},j=K,J={labelFontSize:"16px",labelColor:"black",lineColor:"black"},O=s(({treeView:e})=>{const{labelFontSize:t,labelColor:a,lineColor:n}=u(J,e);return`
3
3
  .treeView-node-label {
4
4
  font-size: ${t};
@@ -1,4 +1,4 @@
1
- import{_ as w,a0 as de,E as Q,G as Z,K as he,e as ue,l as J,ba as P,d as Y,b as pe,a as fe,q as me,t as ge,g as ye,s as Se,H as ve,bb as xe,z as be}from"./mermaid.core-DbO6n2h4.js";import{s as we}from"./chunk-EDXVE4YY-0kyOG_xt.js";import{p as Ce}from"./chunk-4BX2VUAB-DlX15Csq.js";import{p as Te}from"./wardley-RL74JXVD-BjFgiMeD.js";import{b as I}from"./defaultLocale-DX6XiGOO.js";import{o as U}from"./ordinal-Cboi1Yqb.js";import"./index-Dk9AuGHe.js";import"./min-CJdsHiRt.js";import"./_baseUniq-BXCc5S1E.js";import"./init-Gi6I4Gst.js";function Le(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function $e(){return this.eachAfter(Le)}function Ae(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function Fe(e,a){for(var n=this,l=[n],r,o,d=-1;n=l.pop();)if(e.call(a,n,++d,this),r=n.children)for(o=r.length-1;o>=0;--o)l.push(r[o]);return this}function Ne(e,a){for(var n=this,l=[n],r=[],o,d,h,m=-1;n=l.pop();)if(r.push(n),o=n.children)for(d=0,h=o.length;d<h;++d)l.push(o[d]);for(;n=r.pop();)e.call(a,n,++m,this);return this}function Me(e,a){let n=-1;for(const l of this)if(e.call(a,l,++n,this))return l}function Ve(e){return this.eachAfter(function(a){for(var n=+e(a.data)||0,l=a.children,r=l&&l.length;--r>=0;)n+=l[r].value;a.value=n})}function _e(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function ke(e){for(var a=this,n=ze(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var r=l.length;e!==n;)l.splice(r,0,e),e=e.parent;return l}function ze(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),r=null;for(e=n.pop(),a=l.pop();e===a;)r=e,e=n.pop(),a=l.pop();return r}function De(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function Pe(){return Array.from(this)}function Be(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Ee(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*Re(){var e=this,a,n=[e],l,r,o;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(r=0,o=l.length;r<o;++r)n.push(l[r]);while(n.length)}function ee(e,a){e instanceof Map?(e=[void 0,e],a===void 0&&(a=Ie)):a===void 0&&(a=He);for(var n=new j(e),l,r=[n],o,d,h,m;l=r.pop();)if((d=a(l.data))&&(m=(d=Array.from(d)).length))for(l.children=d,h=m-1;h>=0;--h)r.push(o=d[h]=new j(d[h])),o.parent=l,o.depth=l.depth+1;return n.eachBefore(Ge)}function We(){return ee(this).eachBefore(Oe)}function He(e){return e.children}function Ie(e){return Array.isArray(e)?e[1]:null}function Oe(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Ge(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function j(e){this.data=e,this.depth=this.height=0,this.parent=null}j.prototype=ee.prototype={constructor:j,count:$e,each:Ae,eachAfter:Ne,eachBefore:Fe,find:Me,sum:Ve,sort:_e,path:ke,ancestors:De,descendants:Pe,leaves:Be,links:Ee,copy:We,[Symbol.iterator]:Re};function qe(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function G(e){return function(){return e}}function Xe(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function Ye(e,a,n,l,r){for(var o=e.children,d,h=-1,m=o.length,c=e.value&&(l-a)/e.value;++h<m;)d=o[h],d.y0=n,d.y1=r,d.x0=a,d.x1=a+=d.value*c}function je(e,a,n,l,r){for(var o=e.children,d,h=-1,m=o.length,c=e.value&&(r-n)/e.value;++h<m;)d=o[h],d.x0=a,d.x1=l,d.y0=n,d.y1=n+=d.value*c}var Ke=(1+Math.sqrt(5))/2;function Ue(e,a,n,l,r,o){for(var d=[],h=a.children,m,c,u=0,b=0,s=h.length,x,S,v=a.value,p,g,M,N,z,E,V;u<s;){x=r-n,S=o-l;do p=h[b++].value;while(!p&&b<s);for(g=M=p,E=Math.max(S/x,x/S)/(v*e),V=p*p*E,z=Math.max(M/V,V/g);b<s;++b){if(p+=c=h[b].value,c<g&&(g=c),c>M&&(M=c),V=p*p*E,N=Math.max(M/V,V/g),N>z){p-=c;break}z=N}d.push(m={value:p,dice:x<S,children:h.slice(u,b)}),m.dice?Ye(m,n,l,r,v?l+=S*p/v:o):je(m,n,l,v?n+=x*p/v:r,o),v-=p,u=b}return d}const Ze=(function e(a){function n(l,r,o,d,h){Ue(a,l,r,o,d,h)}return n.ratio=function(l){return e((l=+l)>1?l:1)},n})(Ke);function Je(){var e=Ze,a=!1,n=1,l=1,r=[0],o=O,d=O,h=O,m=O,c=O;function u(s){return s.x0=s.y0=0,s.x1=n,s.y1=l,s.eachBefore(b),r=[0],a&&s.eachBefore(Xe),s}function b(s){var x=r[s.depth],S=s.x0+x,v=s.y0+x,p=s.x1-x,g=s.y1-x;p<S&&(S=p=(S+p)/2),g<v&&(v=g=(v+g)/2),s.x0=S,s.y0=v,s.x1=p,s.y1=g,s.children&&(x=r[s.depth+1]=o(s)/2,S+=c(s)-x,v+=d(s)-x,p-=h(s)-x,g-=m(s)-x,p<S&&(S=p=(S+p)/2),g<v&&(v=g=(v+g)/2),e(s,S,v,p,g))}return u.round=function(s){return arguments.length?(a=!!s,u):a},u.size=function(s){return arguments.length?(n=+s[0],l=+s[1],u):[n,l]},u.tile=function(s){return arguments.length?(e=qe(s),u):e},u.padding=function(s){return arguments.length?u.paddingInner(s).paddingOuter(s):u.paddingInner()},u.paddingInner=function(s){return arguments.length?(o=typeof s=="function"?s:G(+s),u):o},u.paddingOuter=function(s){return arguments.length?u.paddingTop(s).paddingRight(s).paddingBottom(s).paddingLeft(s):u.paddingTop()},u.paddingTop=function(s){return arguments.length?(d=typeof s=="function"?s:G(+s),u):d},u.paddingRight=function(s){return arguments.length?(h=typeof s=="function"?s:G(+s),u):h},u.paddingBottom=function(s){return arguments.length?(m=typeof s=="function"?s:G(+s),u):m},u.paddingLeft=function(s){return arguments.length?(c=typeof s=="function"?s:G(+s),u):c},u}var ae=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=pe,this.getAccTitle=fe,this.setDiagramTitle=me,this.getDiagramTitle=ge,this.getAccDescription=ye,this.setAccDescription=Se}static{w(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=ve,a=Q();return Z({...e.treemap,...a.treemap??{}})}addNode(e,a){this.nodes.push(e),this.levels.set(e,a),a===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,a){const n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=a.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach(r=>{xe(r)&&(n?.textStyles?n.textStyles.push(r):n.textStyles=[r]),n?.styles?n.styles.push(r):n.styles=[r]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){be(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function ne(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const r={name:l.name,children:l.type==="Leaf"?void 0:[]};for(r.classSelector=l?.classSelector,l?.cssCompiledStyles&&(r.cssCompiledStyles=l.cssCompiledStyles),l.type==="Leaf"&&l.value!==void 0&&(r.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(r);else{const o=n[n.length-1].node;o.children?o.children.push(r):o.children=[r]}l.type!=="Leaf"&&n.push({node:r,level:l.level})}),a}w(ne,"buildHierarchy");var Qe=w((e,a)=>{Ce(e,a);const n=[];for(const o of e.TreemapRows??[])o.$type==="ClassDefStatement"&&a.addClass(o.className??"",o.styleText??"");for(const o of e.TreemapRows??[]){const d=o.item;if(!d)continue;const h=o.indent?parseInt(o.indent):0,m=et(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],u=c.length>0?c:void 0,b={level:h,name:m,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:u};n.push(b)}const l=ne(n),r=w((o,d)=>{for(const h of o)a.addNode(h,d),h.children&&h.children.length>0&&r(h.children,d+1)},"addNodesRecursively");r(l,0)},"populate"),et=w(e=>e.name?String(e.name):"","getItemName"),le={parser:{yy:void 0},parse:w(async e=>{try{const n=await Te("treemap",e);J.debug("Treemap AST:",n);const l=le.parser?.yy;if(!(l instanceof ae))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Qe(n,l)}catch(a){throw J.error("Error parsing treemap:",a),a}},"parse")},tt=10,B=10,q=25,at=w((e,a,n,l)=>{const r=l.db,o=r.getConfig(),d=o.padding??tt,h=r.getDiagramTitle(),m=r.getRoot(),{themeVariables:c}=Q();if(!m)return;const u=h?30:0,b=he(a),s=o.nodeWidth?o.nodeWidth*B:960,x=o.nodeHeight?o.nodeHeight*B:500,S=s,v=x+u;b.attr("viewBox",`0 0 ${S} ${v}`),ue(b,v,S,o.useMaxWidth);let p;try{const t=o.valueFormat||",";if(t==="$0,0")p=w(i=>"$"+I(",")(i),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const i=/\.\d+/.exec(t),f=i?i[0]:"";p=w(C=>"$"+I(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const i=t.substring(1);p=w(f=>"$"+I(i||"")(f),"valueFormat")}else p=I(t)}catch(t){J.error("Error creating format function:",t),p=I(",")}const g=U().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),M=U().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),N=U().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);h&&b.append("text").attr("x",S/2).attr("y",u/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const z=b.append("g").attr("transform",`translate(0, ${u})`).attr("class","treemapContainer"),E=ee(m).sum(t=>t.value??0).sort((t,i)=>(i.value??0)-(t.value??0)),te=Je().size([s,x]).paddingTop(t=>t.children&&t.children.length>0?q+B:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?B:0).paddingRight(t=>t.children&&t.children.length>0?B:0).paddingBottom(t=>t.children&&t.children.length>0?B:0).round(!0)(E),re=te.descendants().filter(t=>t.children&&t.children.length>0),R=z.selectAll(".treemapSection").data(re).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",q).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),R.append("clipPath").attr("id",(t,i)=>`clip-section-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",q),R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,i)=>`treemapSection section${i}`).attr("fill",t=>g(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>M(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const i=P({cssCompiledStyles:t.data.cssCompiledStyles});return i.nodeStyles+";"+i.borderStyles.join(";")}),R.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",q/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>{if(t.depth===0)return"display: none;";const i="dominant-baseline: middle; font-size: 12px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const i=Y(this),f=t.data.name;i.text(f);const C=t.x1-t.x0,L=6;let $;o.showValues!==!1&&t.value?$=C-10-30-10-L:$=C-L-6;const A=Math.max(15,$),y=i.node();if(y.getComputedTextLength()>A){let T=f;for(;T.length>0;){if(T=f.substring(0,T.length-1),T.length===0){i.text("..."),y.getComputedTextLength()>A&&i.text("");break}if(i.text(T+"..."),y.getComputedTextLength()<=A)break}}}),o.showValues!==!1&&R.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",q/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?p(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const i="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")});const se=te.leaves(),X=z.selectAll(".treemapLeafGroup").data(se).enter().append("g").attr("class",(t,i)=>`treemapNode treemapLeafGroup leaf${i}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);X.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("style",t=>P({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("stroke-width",3),X.append("clipPath").attr("id",(t,i)=>`clip-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),X.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const i="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+N(t.data.name)+";",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,i)=>`url(#clip-${a}-${i})`).text(t=>t.data.name).each(function(t){const i=Y(this),f=t.x1-t.x0,C=t.y1-t.y0,L=i.node(),$=4,D=f-2*$,A=C-2*$;if(D<10||A<10){i.style("display","none");return}let y=parseInt(i.style("font-size"),10);const _=8,F=28,T=.6,k=6,W=2;for(;L.getComputedTextLength()>D&&y>_;)y--,i.style("font-size",`${y}px`);let H=Math.max(k,Math.min(F,Math.round(y*T))),K=y+W+H;for(;K>A&&y>_&&(y--,H=Math.max(k,Math.min(F,Math.round(y*T))),!(H<k&&y===_));)i.style("font-size",`${y}px`),K=y+W+H;i.style("font-size",`${y}px`),(L.getComputedTextLength()>D||y<_||A<y)&&i.style("display","none")}),o.showValues!==!1&&X.append("text").attr("class","treemapValue").attr("x",i=>(i.x1-i.x0)/2).attr("y",function(i){return(i.y1-i.y0)/2}).attr("style",i=>{const f="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+N(i.data.name)+";",C=P({cssCompiledStyles:i.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(i,f)=>`url(#clip-${a}-${f})`).text(i=>i.value?p(i.value):"").each(function(i){const f=Y(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=Y(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const $=parseFloat(L.style("font-size")),D=28,A=.6,y=6,_=2,F=Math.max(y,Math.min(D,Math.round($*A)));f.style("font-size",`${F}px`);const k=(i.y1-i.y0)/2+$/2+_;f.attr("y",k);const W=i.x1-i.x0,oe=i.y1-i.y0-4,ce=W-8;f.node().getComputedTextLength()>ce||k+F>oe||F<y?f.style("display","none"):f.style("display",null)});const ie=o.diagramPadding??8;we(b,ie,"flowchart",o?.useMaxWidth||!1)},"draw"),nt=w(function(e,a){return a.db.getClasses()},"getClasses"),lt={draw:at,getClasses:nt},rt={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},st=w(({treemap:e}={})=>{const a=de(),n=Q(),l=Z(a,n.themeVariables),r=Z(rt,e),o=r.titleColor??l.titleColor,d=r.labelColor??l.textColor,h=r.valueColor??l.textColor;return`
1
+ import{_ as w,a0 as de,E as Q,G as Z,K as he,e as ue,l as J,ba as P,d as Y,b as pe,a as fe,q as me,t as ge,g as ye,s as Se,H as ve,bb as xe,z as be}from"./mermaid.core-Ox16xmjh.js";import{s as we}from"./chunk-EDXVE4YY-BhSdG1nS.js";import{p as Ce}from"./chunk-4BX2VUAB-DCEFdtm5.js";import{p as Te}from"./wardley-RL74JXVD-Dkz2_xIB.js";import{b as I}from"./defaultLocale-DX6XiGOO.js";import{o as U}from"./ordinal-Cboi1Yqb.js";import"./index-8BjFOjO4.js";import"./min-DEpKLwZg.js";import"./_baseUniq-BfD7UfsT.js";import"./init-Gi6I4Gst.js";function Le(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function $e(){return this.eachAfter(Le)}function Ae(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function Fe(e,a){for(var n=this,l=[n],r,o,d=-1;n=l.pop();)if(e.call(a,n,++d,this),r=n.children)for(o=r.length-1;o>=0;--o)l.push(r[o]);return this}function Ne(e,a){for(var n=this,l=[n],r=[],o,d,h,m=-1;n=l.pop();)if(r.push(n),o=n.children)for(d=0,h=o.length;d<h;++d)l.push(o[d]);for(;n=r.pop();)e.call(a,n,++m,this);return this}function Me(e,a){let n=-1;for(const l of this)if(e.call(a,l,++n,this))return l}function Ve(e){return this.eachAfter(function(a){for(var n=+e(a.data)||0,l=a.children,r=l&&l.length;--r>=0;)n+=l[r].value;a.value=n})}function _e(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function ke(e){for(var a=this,n=ze(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var r=l.length;e!==n;)l.splice(r,0,e),e=e.parent;return l}function ze(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),r=null;for(e=n.pop(),a=l.pop();e===a;)r=e,e=n.pop(),a=l.pop();return r}function De(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function Pe(){return Array.from(this)}function Be(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Ee(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*Re(){var e=this,a,n=[e],l,r,o;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(r=0,o=l.length;r<o;++r)n.push(l[r]);while(n.length)}function ee(e,a){e instanceof Map?(e=[void 0,e],a===void 0&&(a=Ie)):a===void 0&&(a=He);for(var n=new j(e),l,r=[n],o,d,h,m;l=r.pop();)if((d=a(l.data))&&(m=(d=Array.from(d)).length))for(l.children=d,h=m-1;h>=0;--h)r.push(o=d[h]=new j(d[h])),o.parent=l,o.depth=l.depth+1;return n.eachBefore(Ge)}function We(){return ee(this).eachBefore(Oe)}function He(e){return e.children}function Ie(e){return Array.isArray(e)?e[1]:null}function Oe(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Ge(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function j(e){this.data=e,this.depth=this.height=0,this.parent=null}j.prototype=ee.prototype={constructor:j,count:$e,each:Ae,eachAfter:Ne,eachBefore:Fe,find:Me,sum:Ve,sort:_e,path:ke,ancestors:De,descendants:Pe,leaves:Be,links:Ee,copy:We,[Symbol.iterator]:Re};function qe(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function G(e){return function(){return e}}function Xe(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function Ye(e,a,n,l,r){for(var o=e.children,d,h=-1,m=o.length,c=e.value&&(l-a)/e.value;++h<m;)d=o[h],d.y0=n,d.y1=r,d.x0=a,d.x1=a+=d.value*c}function je(e,a,n,l,r){for(var o=e.children,d,h=-1,m=o.length,c=e.value&&(r-n)/e.value;++h<m;)d=o[h],d.x0=a,d.x1=l,d.y0=n,d.y1=n+=d.value*c}var Ke=(1+Math.sqrt(5))/2;function Ue(e,a,n,l,r,o){for(var d=[],h=a.children,m,c,u=0,b=0,s=h.length,x,S,v=a.value,p,g,M,N,z,E,V;u<s;){x=r-n,S=o-l;do p=h[b++].value;while(!p&&b<s);for(g=M=p,E=Math.max(S/x,x/S)/(v*e),V=p*p*E,z=Math.max(M/V,V/g);b<s;++b){if(p+=c=h[b].value,c<g&&(g=c),c>M&&(M=c),V=p*p*E,N=Math.max(M/V,V/g),N>z){p-=c;break}z=N}d.push(m={value:p,dice:x<S,children:h.slice(u,b)}),m.dice?Ye(m,n,l,r,v?l+=S*p/v:o):je(m,n,l,v?n+=x*p/v:r,o),v-=p,u=b}return d}const Ze=(function e(a){function n(l,r,o,d,h){Ue(a,l,r,o,d,h)}return n.ratio=function(l){return e((l=+l)>1?l:1)},n})(Ke);function Je(){var e=Ze,a=!1,n=1,l=1,r=[0],o=O,d=O,h=O,m=O,c=O;function u(s){return s.x0=s.y0=0,s.x1=n,s.y1=l,s.eachBefore(b),r=[0],a&&s.eachBefore(Xe),s}function b(s){var x=r[s.depth],S=s.x0+x,v=s.y0+x,p=s.x1-x,g=s.y1-x;p<S&&(S=p=(S+p)/2),g<v&&(v=g=(v+g)/2),s.x0=S,s.y0=v,s.x1=p,s.y1=g,s.children&&(x=r[s.depth+1]=o(s)/2,S+=c(s)-x,v+=d(s)-x,p-=h(s)-x,g-=m(s)-x,p<S&&(S=p=(S+p)/2),g<v&&(v=g=(v+g)/2),e(s,S,v,p,g))}return u.round=function(s){return arguments.length?(a=!!s,u):a},u.size=function(s){return arguments.length?(n=+s[0],l=+s[1],u):[n,l]},u.tile=function(s){return arguments.length?(e=qe(s),u):e},u.padding=function(s){return arguments.length?u.paddingInner(s).paddingOuter(s):u.paddingInner()},u.paddingInner=function(s){return arguments.length?(o=typeof s=="function"?s:G(+s),u):o},u.paddingOuter=function(s){return arguments.length?u.paddingTop(s).paddingRight(s).paddingBottom(s).paddingLeft(s):u.paddingTop()},u.paddingTop=function(s){return arguments.length?(d=typeof s=="function"?s:G(+s),u):d},u.paddingRight=function(s){return arguments.length?(h=typeof s=="function"?s:G(+s),u):h},u.paddingBottom=function(s){return arguments.length?(m=typeof s=="function"?s:G(+s),u):m},u.paddingLeft=function(s){return arguments.length?(c=typeof s=="function"?s:G(+s),u):c},u}var ae=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=pe,this.getAccTitle=fe,this.setDiagramTitle=me,this.getDiagramTitle=ge,this.getAccDescription=ye,this.setAccDescription=Se}static{w(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=ve,a=Q();return Z({...e.treemap,...a.treemap??{}})}addNode(e,a){this.nodes.push(e),this.levels.set(e,a),a===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,a){const n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=a.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach(r=>{xe(r)&&(n?.textStyles?n.textStyles.push(r):n.textStyles=[r]),n?.styles?n.styles.push(r):n.styles=[r]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){be(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function ne(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const r={name:l.name,children:l.type==="Leaf"?void 0:[]};for(r.classSelector=l?.classSelector,l?.cssCompiledStyles&&(r.cssCompiledStyles=l.cssCompiledStyles),l.type==="Leaf"&&l.value!==void 0&&(r.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(r);else{const o=n[n.length-1].node;o.children?o.children.push(r):o.children=[r]}l.type!=="Leaf"&&n.push({node:r,level:l.level})}),a}w(ne,"buildHierarchy");var Qe=w((e,a)=>{Ce(e,a);const n=[];for(const o of e.TreemapRows??[])o.$type==="ClassDefStatement"&&a.addClass(o.className??"",o.styleText??"");for(const o of e.TreemapRows??[]){const d=o.item;if(!d)continue;const h=o.indent?parseInt(o.indent):0,m=et(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],u=c.length>0?c:void 0,b={level:h,name:m,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:u};n.push(b)}const l=ne(n),r=w((o,d)=>{for(const h of o)a.addNode(h,d),h.children&&h.children.length>0&&r(h.children,d+1)},"addNodesRecursively");r(l,0)},"populate"),et=w(e=>e.name?String(e.name):"","getItemName"),le={parser:{yy:void 0},parse:w(async e=>{try{const n=await Te("treemap",e);J.debug("Treemap AST:",n);const l=le.parser?.yy;if(!(l instanceof ae))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Qe(n,l)}catch(a){throw J.error("Error parsing treemap:",a),a}},"parse")},tt=10,B=10,q=25,at=w((e,a,n,l)=>{const r=l.db,o=r.getConfig(),d=o.padding??tt,h=r.getDiagramTitle(),m=r.getRoot(),{themeVariables:c}=Q();if(!m)return;const u=h?30:0,b=he(a),s=o.nodeWidth?o.nodeWidth*B:960,x=o.nodeHeight?o.nodeHeight*B:500,S=s,v=x+u;b.attr("viewBox",`0 0 ${S} ${v}`),ue(b,v,S,o.useMaxWidth);let p;try{const t=o.valueFormat||",";if(t==="$0,0")p=w(i=>"$"+I(",")(i),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const i=/\.\d+/.exec(t),f=i?i[0]:"";p=w(C=>"$"+I(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const i=t.substring(1);p=w(f=>"$"+I(i||"")(f),"valueFormat")}else p=I(t)}catch(t){J.error("Error creating format function:",t),p=I(",")}const g=U().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),M=U().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),N=U().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);h&&b.append("text").attr("x",S/2).attr("y",u/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const z=b.append("g").attr("transform",`translate(0, ${u})`).attr("class","treemapContainer"),E=ee(m).sum(t=>t.value??0).sort((t,i)=>(i.value??0)-(t.value??0)),te=Je().size([s,x]).paddingTop(t=>t.children&&t.children.length>0?q+B:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?B:0).paddingRight(t=>t.children&&t.children.length>0?B:0).paddingBottom(t=>t.children&&t.children.length>0?B:0).round(!0)(E),re=te.descendants().filter(t=>t.children&&t.children.length>0),R=z.selectAll(".treemapSection").data(re).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",q).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),R.append("clipPath").attr("id",(t,i)=>`clip-section-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",q),R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,i)=>`treemapSection section${i}`).attr("fill",t=>g(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>M(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const i=P({cssCompiledStyles:t.data.cssCompiledStyles});return i.nodeStyles+";"+i.borderStyles.join(";")}),R.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",q/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>{if(t.depth===0)return"display: none;";const i="dominant-baseline: middle; font-size: 12px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const i=Y(this),f=t.data.name;i.text(f);const C=t.x1-t.x0,L=6;let $;o.showValues!==!1&&t.value?$=C-10-30-10-L:$=C-L-6;const A=Math.max(15,$),y=i.node();if(y.getComputedTextLength()>A){let T=f;for(;T.length>0;){if(T=f.substring(0,T.length-1),T.length===0){i.text("..."),y.getComputedTextLength()>A&&i.text("");break}if(i.text(T+"..."),y.getComputedTextLength()<=A)break}}}),o.showValues!==!1&&R.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",q/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?p(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const i="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")});const se=te.leaves(),X=z.selectAll(".treemapLeafGroup").data(se).enter().append("g").attr("class",(t,i)=>`treemapNode treemapLeafGroup leaf${i}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);X.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("style",t=>P({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("stroke-width",3),X.append("clipPath").attr("id",(t,i)=>`clip-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),X.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const i="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+N(t.data.name)+";",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,i)=>`url(#clip-${a}-${i})`).text(t=>t.data.name).each(function(t){const i=Y(this),f=t.x1-t.x0,C=t.y1-t.y0,L=i.node(),$=4,D=f-2*$,A=C-2*$;if(D<10||A<10){i.style("display","none");return}let y=parseInt(i.style("font-size"),10);const _=8,F=28,T=.6,k=6,W=2;for(;L.getComputedTextLength()>D&&y>_;)y--,i.style("font-size",`${y}px`);let H=Math.max(k,Math.min(F,Math.round(y*T))),K=y+W+H;for(;K>A&&y>_&&(y--,H=Math.max(k,Math.min(F,Math.round(y*T))),!(H<k&&y===_));)i.style("font-size",`${y}px`),K=y+W+H;i.style("font-size",`${y}px`),(L.getComputedTextLength()>D||y<_||A<y)&&i.style("display","none")}),o.showValues!==!1&&X.append("text").attr("class","treemapValue").attr("x",i=>(i.x1-i.x0)/2).attr("y",function(i){return(i.y1-i.y0)/2}).attr("style",i=>{const f="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+N(i.data.name)+";",C=P({cssCompiledStyles:i.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(i,f)=>`url(#clip-${a}-${f})`).text(i=>i.value?p(i.value):"").each(function(i){const f=Y(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=Y(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const $=parseFloat(L.style("font-size")),D=28,A=.6,y=6,_=2,F=Math.max(y,Math.min(D,Math.round($*A)));f.style("font-size",`${F}px`);const k=(i.y1-i.y0)/2+$/2+_;f.attr("y",k);const W=i.x1-i.x0,oe=i.y1-i.y0-4,ce=W-8;f.node().getComputedTextLength()>ce||k+F>oe||F<y?f.style("display","none"):f.style("display",null)});const ie=o.diagramPadding??8;we(b,ie,"flowchart",o?.useMaxWidth||!1)},"draw"),nt=w(function(e,a){return a.db.getClasses()},"getClasses"),lt={draw:at,getClasses:nt},rt={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},st=w(({treemap:e}={})=>{const a=de(),n=Q(),l=Z(a,n.themeVariables),r=Z(rt,e),o=r.titleColor??l.titleColor,d=r.labelColor??l.textColor,h=r.valueColor??l.textColor;return`
2
2
  .treemapNode.section {
3
3
  stroke: ${r.sectionStrokeColor};
4
4
  stroke-width: ${r.sectionStrokeWidth};
@@ -1,4 +1,4 @@
1
- import{s as k,g as R,t as E,q as I,a as _,b as F,_ as l,K as D,z,G as y,H as G,E as C,l as P,a0 as W,e as B}from"./mermaid.core-DbO6n2h4.js";import{p as H}from"./chunk-4BX2VUAB-DlX15Csq.js";import{p as V}from"./wardley-RL74JXVD-BjFgiMeD.js";import"./index-Dk9AuGHe.js";import"./min-CJdsHiRt.js";import"./_baseUniq-BXCc5S1E.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:x},m=structuredClone(w),j=G.radar,q=l(()=>y({...j,...C().radar}),"getConfig"),b=l(()=>m.axes,"getAxes"),K=l(()=>m.curves,"getCurves"),N=l(()=>m.options,"getOptions"),U=l(a=>{m.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),X=l(a=>{m.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:Y(t.entries)}))},"setCurves"),Y=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>s.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),Z=l(a=>{const t=a.reduce((e,r)=>(e[r.name]=r,e),{});m.options={showLegend:t.showLegend?.value??x.showLegend,ticks:t.ticks?.value??x.ticks,max:t.max?.value??x.max,min:t.min?.value??x.min,graticule:t.graticule?.value??x.graticule}},"setOptions"),J=l(()=>{z(),m=structuredClone(w)},"clear"),$={getAxes:b,getCurves:K,getOptions:N,setAxes:U,setCurves:X,setOptions:Z,getConfig:q,clear:J,setAccTitle:F,getAccTitle:_,setDiagramTitle:I,getDiagramTitle:E,getAccDescription:R,setAccDescription:k},Q=l(a=>{H(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:l(async a=>{const t=await V("radar",a);P.debug(t),Q(t)},"parse")},et=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),p=D(t),u=at(p,c),g=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(c.width,c.height)/2;rt(u,o,v,n.ticks,n.graticule),st(u,o,v,c),M(u,o,i,h,g,n.graticule,c),T(u,i,n.showLegend,c),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return B(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,p)=>{const u=2*p*Math.PI/o-Math.PI/2,g=n*Math.cos(u),h=n*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),st=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,p)=>{if(d.entries.length!==n)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=A(g,r,s,c),S=f*Math.cos(v),O=f*Math.sin(v);return{x:S,y:O}});o==="circle"?a.append("path").attr("d",L(u,i.curveTension)).attr("class",`radarCurve-${p}`):o==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},p={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var nt={draw:et},ot=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
1
+ import{s as k,g as R,t as E,q as I,a as _,b as F,_ as l,K as D,z,G as y,H as G,E as C,l as P,a0 as W,e as B}from"./mermaid.core-Ox16xmjh.js";import{p as H}from"./chunk-4BX2VUAB-DCEFdtm5.js";import{p as V}from"./wardley-RL74JXVD-Dkz2_xIB.js";import"./index-8BjFOjO4.js";import"./min-DEpKLwZg.js";import"./_baseUniq-BfD7UfsT.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:x},m=structuredClone(w),j=G.radar,q=l(()=>y({...j,...C().radar}),"getConfig"),b=l(()=>m.axes,"getAxes"),K=l(()=>m.curves,"getCurves"),N=l(()=>m.options,"getOptions"),U=l(a=>{m.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),X=l(a=>{m.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:Y(t.entries)}))},"setCurves"),Y=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>s.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),Z=l(a=>{const t=a.reduce((e,r)=>(e[r.name]=r,e),{});m.options={showLegend:t.showLegend?.value??x.showLegend,ticks:t.ticks?.value??x.ticks,max:t.max?.value??x.max,min:t.min?.value??x.min,graticule:t.graticule?.value??x.graticule}},"setOptions"),J=l(()=>{z(),m=structuredClone(w)},"clear"),$={getAxes:b,getCurves:K,getOptions:N,setAxes:U,setCurves:X,setOptions:Z,getConfig:q,clear:J,setAccTitle:F,getAccTitle:_,setDiagramTitle:I,getDiagramTitle:E,getAccDescription:R,setAccDescription:k},Q=l(a=>{H(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:l(async a=>{const t=await V("radar",a);P.debug(t),Q(t)},"parse")},et=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),p=D(t),u=at(p,c),g=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(c.width,c.height)/2;rt(u,o,v,n.ticks,n.graticule),st(u,o,v,c),M(u,o,i,h,g,n.graticule,c),T(u,i,n.showLegend,c),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return B(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,p)=>{const u=2*p*Math.PI/o-Math.PI/2,g=n*Math.cos(u),h=n*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),st=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,p)=>{if(d.entries.length!==n)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=A(g,r,s,c),S=f*Math.cos(v),O=f*Math.sin(v);return{x:S,y:O}});o==="circle"?a.append("path").attr("d",L(u,i.curveTension)).attr("class",`radarCurve-${p}`):o==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},p={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var nt={draw:et},ot=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
2
2
  .radarCurve-${r} {
3
3
  color: ${s};
4
4
  fill: ${s};
@@ -1,4 +1,4 @@
1
- import{_ as b,G as u,K as $,e as B,l as m,b as C,a as S,q as D,t as T,g as z,s as E,H as P,E as F,z as A}from"./mermaid.core-DbO6n2h4.js";import{p as W}from"./chunk-4BX2VUAB-DlX15Csq.js";import{p as _}from"./wardley-RL74JXVD-BjFgiMeD.js";import"./index-Dk9AuGHe.js";import"./min-CJdsHiRt.js";import"./_baseUniq-BXCc5S1E.js";var N=P.packet,w=class{constructor(){this.packet=[],this.setAccTitle=C,this.getAccTitle=S,this.setDiagramTitle=D,this.getDiagramTitle=T,this.getAccDescription=z,this.setAccDescription=E}static{b(this,"PacketDB")}getConfig(){const t=u({...N,...F().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){A(),this.packet=[]}},L=1e4,M=b((t,e)=>{W(t,e);let r=-1,o=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${r+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??=a+(d??1)-1,d??=i-a+1,r=i,m.debug(`Packet block ${a} - ${r} with label ${c}`);o.length<=l+1&&e.getPacket().length<L;){const[p,s]=Y({start:a,end:i,bits:d,label:c},n,l);if(o.push(p),p.end+1===n*l&&(e.pushWord(o),o=[],n++),!s)break;({start:a,end:i,bits:d,label:c}=s)}}e.pushWord(o)},"populate"),Y=b((t,e,r)=>{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const o=e*r-1,n=e*r;return[{start:t.start,end:o,label:t.label,bits:o-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");m.debug(e),M(e,r)},"parse")},G=b((t,e,r,o)=>{const n=o.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),s=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(s?0:a),k=d*c+2,f=$(e);f.attr("viewBox",`0 0 ${k} ${g}`),B(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())H(f,y,x,l);f.append("text").text(s).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),H=b((t,e,r,{rowHeight:o,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(o+l)+l;for(const s of e){const h=s.start%i*a+1,g=(s.end-s.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",o).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+o/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!d)continue;const k=s.end===s.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(s.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),I={draw:G},K={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},O=b(({packet:t}={})=>{const e=u(K,t);return`
1
+ import{_ as b,G as u,K as $,e as B,l as m,b as C,a as S,q as D,t as T,g as z,s as E,H as P,E as F,z as A}from"./mermaid.core-Ox16xmjh.js";import{p as W}from"./chunk-4BX2VUAB-DCEFdtm5.js";import{p as _}from"./wardley-RL74JXVD-Dkz2_xIB.js";import"./index-8BjFOjO4.js";import"./min-DEpKLwZg.js";import"./_baseUniq-BfD7UfsT.js";var N=P.packet,w=class{constructor(){this.packet=[],this.setAccTitle=C,this.getAccTitle=S,this.setDiagramTitle=D,this.getDiagramTitle=T,this.getAccDescription=z,this.setAccDescription=E}static{b(this,"PacketDB")}getConfig(){const t=u({...N,...F().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){A(),this.packet=[]}},L=1e4,M=b((t,e)=>{W(t,e);let r=-1,o=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${r+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??=a+(d??1)-1,d??=i-a+1,r=i,m.debug(`Packet block ${a} - ${r} with label ${c}`);o.length<=l+1&&e.getPacket().length<L;){const[p,s]=Y({start:a,end:i,bits:d,label:c},n,l);if(o.push(p),p.end+1===n*l&&(e.pushWord(o),o=[],n++),!s)break;({start:a,end:i,bits:d,label:c}=s)}}e.pushWord(o)},"populate"),Y=b((t,e,r)=>{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const o=e*r-1,n=e*r;return[{start:t.start,end:o,label:t.label,bits:o-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");m.debug(e),M(e,r)},"parse")},G=b((t,e,r,o)=>{const n=o.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),s=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(s?0:a),k=d*c+2,f=$(e);f.attr("viewBox",`0 0 ${k} ${g}`),B(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())H(f,y,x,l);f.append("text").text(s).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),H=b((t,e,r,{rowHeight:o,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(o+l)+l;for(const s of e){const h=s.start%i*a+1,g=(s.end-s.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",o).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+o/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!d)continue;const k=s.end===s.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(s.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),I={draw:G},K={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},O=b(({packet:t}={})=>{const e=u(K,t);return`
2
2
  .packetByte {
3
3
  font-size: ${e.byteFontSize};
4
4
  }