@cnrai/pave 0.11.75 → 0.11.77

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 (70) hide show
  1. package/package.json +1 -1
  2. package/pave.js +2 -2
  3. package/sandbox/SandboxRunner.js +1 -1
  4. package/sandbox/permission.js +1 -1
  5. package/web/assets/{abnfDiagram-N423BO3Z-lrbCxeIq.js → abnfDiagram-N423BO3Z-DNaZFbnQ.js} +1 -1
  6. package/web/assets/{arc-WeOya9OS.js → arc-BBjnZAjs.js} +1 -1
  7. package/web/assets/{architectureDiagram-T3A2C74G-BW35m1mc.js → architectureDiagram-T3A2C74G-CRqHj6Ck.js} +1 -1
  8. package/web/assets/{blockDiagram-VBNYF7ZC-BQjEPCWo.js → blockDiagram-VBNYF7ZC-BGymdfZe.js} +1 -1
  9. package/web/assets/{c4Diagram-5PPSVZJV-AnBEO1VP.js → c4Diagram-5PPSVZJV-DHm1U-vQ.js} +1 -1
  10. package/web/assets/channel-CzlEDRcP.js +1 -0
  11. package/web/assets/{chunk-2GRJ4B5K-BOhrpN3g.js → chunk-2GRJ4B5K-CYRSqRZj.js} +1 -1
  12. package/web/assets/{chunk-2Q5K7J3B-C9ZAnfaL.js → chunk-2Q5K7J3B-Cnc9JyYe.js} +1 -1
  13. package/web/assets/{chunk-5RXB4S5H-r_qHF1Xp.js → chunk-5RXB4S5H-Dk8yyxBX.js} +1 -1
  14. package/web/assets/{chunk-5VM5RSS4-CxiGiUPn.js → chunk-5VM5RSS4-CUxUltN5.js} +1 -1
  15. package/web/assets/{chunk-6Q2QTUOP-b2nq5Lk6.js → chunk-6Q2QTUOP-D_XAzpG5.js} +1 -1
  16. package/web/assets/{chunk-GF5L2VYU-B-me927H.js → chunk-GF5L2VYU-BygLhC0b.js} +1 -1
  17. package/web/assets/{chunk-JWPE2WC7-C8qzad5g.js → chunk-JWPE2WC7-Daf2PmiF.js} +1 -1
  18. package/web/assets/{chunk-KBJHAD2P-BkIlWgz1.js → chunk-KBJHAD2P-Dacfg8Vm.js} +1 -1
  19. package/web/assets/{chunk-RYQCIY6F-BkjF1Eup.js → chunk-RYQCIY6F-CTqPiw-E.js} +1 -1
  20. package/web/assets/{chunk-XXDRQBXY-kzilkm84.js → chunk-XXDRQBXY-BcdL-i6k.js} +1 -1
  21. package/web/assets/classDiagram-JCYQIIEL-DVilfxdw.js +1 -0
  22. package/web/assets/classDiagram-v2-OCEON4UE-DVilfxdw.js +1 -0
  23. package/web/assets/{cose-bilkent-JH36ORCC-B1cfOg4Z.js → cose-bilkent-JH36ORCC-CvG-qT7o.js} +1 -1
  24. package/web/assets/{cynefin-VYW2F7L2-9CNtsnOQ.js → cynefin-VYW2F7L2-BL1D6Zap.js} +1 -1
  25. package/web/assets/{cynefinDiagram-MW4NZA55-Dh59dwt5.js → cynefinDiagram-MW4NZA55-MfeGrxw5.js} +1 -1
  26. package/web/assets/cytoscape.esm-Dz9tvMTw.js +331 -0
  27. package/web/assets/{dagre-VZM6K2ZE-CsbdXBp0.js → dagre-VZM6K2ZE-CPj1vSJ1.js} +1 -1
  28. package/web/assets/{diagram-7IWD3JNH-Auw3SNRR.js → diagram-7IWD3JNH-PuLn-9zm.js} +1 -1
  29. package/web/assets/{diagram-B4RE2ZJO-CPdAJzCM.js → diagram-B4RE2ZJO-CkIZwq5c.js} +1 -1
  30. package/web/assets/{diagram-LBJQPF4R-DibTO6h8.js → diagram-LBJQPF4R-DoqMV830.js} +1 -1
  31. package/web/assets/{diagram-Q27KOJAE-BDPGYyDz.js → diagram-Q27KOJAE-mo3Qhf-E.js} +1 -1
  32. package/web/assets/{diagram-UB23O5K3-qbu_rb1X.js → diagram-UB23O5K3-OkIIheXv.js} +1 -1
  33. package/web/assets/{ebnfDiagram-BXEA7PRR-CfaXih1G.js → ebnfDiagram-BXEA7PRR-BtrnFNZ5.js} +1 -1
  34. package/web/assets/{erDiagram-JOGREHBK-Cq8zoS2R.js → erDiagram-JOGREHBK-Do2qkPJ6.js} +1 -1
  35. package/web/assets/{flowDiagram-UKHOOZJN-C3HYbejV.js → flowDiagram-UKHOOZJN-CO05QYxY.js} +1 -1
  36. package/web/assets/{ganttDiagram-PKOTCBZU-ClkeLBH2.js → ganttDiagram-PKOTCBZU-CsDUxXgM.js} +1 -1
  37. package/web/assets/{gitGraphDiagram-DS77QQ5N-BML0qgt5.js → gitGraphDiagram-DS77QQ5N-D_JRbJnn.js} +1 -1
  38. package/web/assets/index-DqSR1Tzn.js +122 -0
  39. package/web/assets/{infoDiagram-6WML65LV-_oTa6J3U.js → infoDiagram-6WML65LV-Bm51MVeD.js} +1 -1
  40. package/web/assets/{ishikawaDiagram-WSZJBQD7-DHLvkJnA.js → ishikawaDiagram-WSZJBQD7-hC73dV6-.js} +1 -1
  41. package/web/assets/{journeyDiagram-NVQOT4AX-CagqE6Zi.js → journeyDiagram-NVQOT4AX-SrvvbJRK.js} +1 -1
  42. package/web/assets/{kanban-definition-27J2QSJJ-BO08yCXe.js → kanban-definition-27J2QSJJ-NkVpEBib.js} +1 -1
  43. package/web/assets/{linear-pbF_-XZV.js → linear-DuFTppiB.js} +1 -1
  44. package/web/assets/{mermaid.core-D_mctH75.js → mermaid.core-Csqy-TMM.js} +4 -4
  45. package/web/assets/{mindmap-definition-FAOFIHXS-CT_Fa4qB.js → mindmap-definition-FAOFIHXS-u_GH4Qfd.js} +1 -1
  46. package/web/assets/{pegDiagram-VL7TDLO6-CqBe5Mzn.js → pegDiagram-VL7TDLO6-BhGIjN6A.js} +1 -1
  47. package/web/assets/{pieDiagram-7S7Q4E2Y-CFMfSfxk.js → pieDiagram-7S7Q4E2Y-B_M8PUaK.js} +1 -1
  48. package/web/assets/{quadrantDiagram-CIZ2JOQS-C5z627LA.js → quadrantDiagram-CIZ2JOQS-DSirVekl.js} +1 -1
  49. package/web/assets/{railroadDiagram-AXF67PYL-C4B3veao.js → railroadDiagram-AXF67PYL-Dy2zbnOk.js} +1 -1
  50. package/web/assets/{requirementDiagram-LRYGKXZP-BINEux-N.js → requirementDiagram-LRYGKXZP-BOm79sUC.js} +1 -1
  51. package/web/assets/{sankeyDiagram-W5VNT64P-Dr-MpB6V.js → sankeyDiagram-W5VNT64P-CKvdTJMK.js} +1 -1
  52. package/web/assets/{sequenceDiagram-SI44F4Z6-QHQSjNuP.js → sequenceDiagram-SI44F4Z6-DMu0TdCJ.js} +1 -1
  53. package/web/assets/{sizeCapture-X5ZJPWSS-qFPgYNQw.js → sizeCapture-X5ZJPWSS-bAw6BW35.js} +1 -1
  54. package/web/assets/{stateDiagram-OKZ733FA-BsSaiwWT.js → stateDiagram-OKZ733FA-BY7brHbI.js} +1 -1
  55. package/web/assets/stateDiagram-v2-UEYNNEHI-DQllBEYE.js +1 -0
  56. package/web/assets/{swimlanes-SLNWSIFB-DVMdapPL.js → swimlanes-SLNWSIFB-DxITDC19.js} +2 -2
  57. package/web/assets/swimlanesDiagram-ULZ7WXOC-BEysfC0G.js +8 -0
  58. package/web/assets/{timeline-definition-Z64GVDOM-Xe5LUaoU.js → timeline-definition-Z64GVDOM-BmlqIPEF.js} +1 -1
  59. package/web/assets/{vennDiagram-T6HMQDX7-CYtKW9nj.js → vennDiagram-T6HMQDX7-BZTPZCF_.js} +1 -1
  60. package/web/assets/{wardleyDiagram-T6FBY63Y-BlILyKsK.js → wardleyDiagram-T6FBY63Y-iNVTU5LZ.js} +1 -1
  61. package/web/assets/{xychartDiagram-ELKLHX3M-DAKFU68H.js → xychartDiagram-ELKLHX3M-bmAoBhux.js} +1 -1
  62. package/web/assets/{zh-TW-CJN4iDCH.js → zh-TW-B9YR1mTH.js} +1 -1
  63. package/web/index.html +1 -1
  64. package/web/assets/channel-Cc2g6cj2.js +0 -1
  65. package/web/assets/classDiagram-JCYQIIEL-EMYjdswO.js +0 -1
  66. package/web/assets/classDiagram-v2-OCEON4UE-EMYjdswO.js +0 -1
  67. package/web/assets/cytoscape.esm-CUqq0XTU.js +0 -331
  68. package/web/assets/index-CE7eCSFC.js +0 -122
  69. package/web/assets/stateDiagram-v2-UEYNNEHI-5LjYXxYy.js +0 -1
  70. package/web/assets/swimlanesDiagram-ULZ7WXOC-CZizv_du.js +0 -8
@@ -0,0 +1,8 @@
1
+ import{c as r,s as e}from"./flowDiagram-UKHOOZJN-CO05QYxY.js";import{_ as a}from"./mermaid.core-Csqy-TMM.js";import"./chunk-5VM5RSS4-CUxUltN5.js";import"./chunk-XXDRQBXY-BcdL-i6k.js";import"./chunk-KBJHAD2P-Dacfg8Vm.js";import"./chunk-2GRJ4B5K-CYRSqRZj.js";import"./index-DqSR1Tzn.js";import"./channel-CzlEDRcP.js";var o=a(t=>`${e(t)}
2
+ .swimlane.cluster rect {
3
+ stroke: ${t.clusterBorder} !important;
4
+ }
5
+ [data-look="neo"].cluster rect {
6
+ filter: none;
7
+ }
8
+ `,"getStyles"),s=o,n=r({defaultLayout:"swimlane",styles:s});export{n as diagram};
@@ -1,4 +1,4 @@
1
- import{_ as l,y as pt,S as Wt,T as Pt,U as Bt,c as gt,l as S,D as Vt,K as Ft,V as ft,d as J,t as zt,W as Gt,p as Ot}from"./mermaid.core-D_mctH75.js";import{d as ot}from"./arc-WeOya9OS.js";import"./index-CE7eCSFC.js";var tt=function(){var e=l(function(k,s,d,h){for(d=d||{},h=k.length;h--;d[k[h]]=s);return d},"o"),t=[6,11,13,14,15,17,19,20,23,24],n=[1,12],i=[1,13],r=[1,14],c=[1,15],a=[1,16],o=[1,19],p=[1,20],y={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",7:"timeline",8:"timeline_lr",9:"timeline_td",11:"SPACE",13:"NEWLINE",14:"title",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",23:"period",24:"event"},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:l(function(s,d,h,g,m,u,w){var v=u.length-1;switch(m){case 1:return u[v-1];case 3:g.setDirection("LR");break;case 4:g.setDirection("TD");break;case 5:this.$=[];break;case 6:u[v-1].push(u[v]),this.$=u[v-1];break;case 7:case 8:this.$=u[v];break;case 9:case 10:this.$=[];break;case 11:g.getCommonDb().setDiagramTitle(u[v].substr(6)),this.$=u[v].substr(6);break;case 12:this.$=u[v].trim(),g.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=u[v].trim(),g.getCommonDb().setAccDescription(this.$);break;case 15:g.addSection(u[v].substr(8)),this.$=u[v].substr(8);break;case 18:g.addTask(u[v],0,""),this.$=u[v];break;case 19:g.addEvent(u[v].substr(2)),this.$=u[v];break}},"anonymous"),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},e(t,[2,5],{5:6}),e(t,[2,2]),e(t,[2,3]),e(t,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:n,15:i,17:r,19:c,20:a,21:17,22:18,23:o,24:p},e(t,[2,10],{1:[2,1]}),e(t,[2,6]),{12:21,14:n,15:i,17:r,19:c,20:a,21:17,22:18,23:o,24:p},e(t,[2,8]),e(t,[2,9]),e(t,[2,11]),{16:[1,22]},{18:[1,23]},e(t,[2,14]),e(t,[2,15]),e(t,[2,16]),e(t,[2,17]),e(t,[2,18]),e(t,[2,19]),e(t,[2,7]),e(t,[2,12]),e(t,[2,13])],defaultActions:{},parseError:l(function(s,d){if(d.recoverable)this.trace(s);else{var h=new Error(s);throw h.hash=d,h}},"parseError"),parse:l(function(s){var d=this,h=[0],g=[],m=[null],u=[],w=this.table,v="",M=0,C=0,P=2,V=1,L=u.slice.call(arguments,1),_=Object.create(this.lexer),R={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(R.yy[F]=this.yy[F]);_.setInput(s,R.yy),R.yy.lexer=_,R.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var z=_.yylloc;u.push(z);var q=_.options&&_.options.ranges;typeof R.yy.parseError=="function"?this.parseError=R.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function K(A){h.length=h.length-2*A,m.length=m.length-A,u.length=u.length-A}l(K,"popStack");function O(){var A;return A=g.pop()||_.lex()||V,typeof A!="number"&&(A instanceof Array&&(g=A,A=g.pop()),A=d.symbols_[A]||A),A}l(O,"lex");for(var $,N,b,T,E={},H,I,B,D;;){if(N=h[h.length-1],this.defaultActions[N]?b=this.defaultActions[N]:(($===null||typeof $>"u")&&($=O()),b=w[N]&&w[N][$]),typeof b>"u"||!b.length||!b[0]){var U="";D=[];for(H in w[N])this.terminals_[H]&&H>P&&D.push("'"+this.terminals_[H]+"'");_.showPosition?U="Parse error on line "+(M+1)+`:
1
+ import{_ as l,y as pt,S as Wt,T as Pt,U as Bt,c as gt,l as S,D as Vt,K as Ft,V as ft,d as J,t as zt,W as Gt,p as Ot}from"./mermaid.core-Csqy-TMM.js";import{d as ot}from"./arc-BBjnZAjs.js";import"./index-DqSR1Tzn.js";var tt=function(){var e=l(function(k,s,d,h){for(d=d||{},h=k.length;h--;d[k[h]]=s);return d},"o"),t=[6,11,13,14,15,17,19,20,23,24],n=[1,12],i=[1,13],r=[1,14],c=[1,15],a=[1,16],o=[1,19],p=[1,20],y={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",7:"timeline",8:"timeline_lr",9:"timeline_td",11:"SPACE",13:"NEWLINE",14:"title",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",23:"period",24:"event"},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:l(function(s,d,h,g,m,u,w){var v=u.length-1;switch(m){case 1:return u[v-1];case 3:g.setDirection("LR");break;case 4:g.setDirection("TD");break;case 5:this.$=[];break;case 6:u[v-1].push(u[v]),this.$=u[v-1];break;case 7:case 8:this.$=u[v];break;case 9:case 10:this.$=[];break;case 11:g.getCommonDb().setDiagramTitle(u[v].substr(6)),this.$=u[v].substr(6);break;case 12:this.$=u[v].trim(),g.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=u[v].trim(),g.getCommonDb().setAccDescription(this.$);break;case 15:g.addSection(u[v].substr(8)),this.$=u[v].substr(8);break;case 18:g.addTask(u[v],0,""),this.$=u[v];break;case 19:g.addEvent(u[v].substr(2)),this.$=u[v];break}},"anonymous"),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},e(t,[2,5],{5:6}),e(t,[2,2]),e(t,[2,3]),e(t,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:n,15:i,17:r,19:c,20:a,21:17,22:18,23:o,24:p},e(t,[2,10],{1:[2,1]}),e(t,[2,6]),{12:21,14:n,15:i,17:r,19:c,20:a,21:17,22:18,23:o,24:p},e(t,[2,8]),e(t,[2,9]),e(t,[2,11]),{16:[1,22]},{18:[1,23]},e(t,[2,14]),e(t,[2,15]),e(t,[2,16]),e(t,[2,17]),e(t,[2,18]),e(t,[2,19]),e(t,[2,7]),e(t,[2,12]),e(t,[2,13])],defaultActions:{},parseError:l(function(s,d){if(d.recoverable)this.trace(s);else{var h=new Error(s);throw h.hash=d,h}},"parseError"),parse:l(function(s){var d=this,h=[0],g=[],m=[null],u=[],w=this.table,v="",M=0,C=0,P=2,V=1,L=u.slice.call(arguments,1),_=Object.create(this.lexer),R={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(R.yy[F]=this.yy[F]);_.setInput(s,R.yy),R.yy.lexer=_,R.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var z=_.yylloc;u.push(z);var q=_.options&&_.options.ranges;typeof R.yy.parseError=="function"?this.parseError=R.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function K(A){h.length=h.length-2*A,m.length=m.length-A,u.length=u.length-A}l(K,"popStack");function O(){var A;return A=g.pop()||_.lex()||V,typeof A!="number"&&(A instanceof Array&&(g=A,A=g.pop()),A=d.symbols_[A]||A),A}l(O,"lex");for(var $,N,b,T,E={},H,I,B,D;;){if(N=h[h.length-1],this.defaultActions[N]?b=this.defaultActions[N]:(($===null||typeof $>"u")&&($=O()),b=w[N]&&w[N][$]),typeof b>"u"||!b.length||!b[0]){var U="";D=[];for(H in w[N])this.terminals_[H]&&H>P&&D.push("'"+this.terminals_[H]+"'");_.showPosition?U="Parse error on line "+(M+1)+`:
2
2
  `+_.showPosition()+`
3
3
  Expecting `+D.join(", ")+", got '"+(this.terminals_[$]||$)+"'":U="Parse error on line "+(M+1)+": Unexpected "+($==V?"end of input":"'"+(this.terminals_[$]||$)+"'"),this.parseError(U,{text:_.match,token:this.terminals_[$]||$,line:_.yylineno,loc:z,expected:D})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+N+", token: "+$);switch(b[0]){case 1:h.push($),m.push(_.yytext),u.push(_.yylloc),h.push(b[1]),$=null,C=_.yyleng,v=_.yytext,M=_.yylineno,z=_.yylloc;break;case 2:if(I=this.productions_[b[1]][1],E.$=m[m.length-I],E._$={first_line:u[u.length-(I||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(I||1)].first_column,last_column:u[u.length-1].last_column},q&&(E._$.range=[u[u.length-(I||1)].range[0],u[u.length-1].range[1]]),T=this.performAction.apply(E,[v,C,M,R.yy,b[1],m,u].concat(L)),typeof T<"u")return T;I&&(h=h.slice(0,-1*I*2),m=m.slice(0,-1*I),u=u.slice(0,-1*I)),h.push(this.productions_[b[1]][0]),m.push(E.$),u.push(E._$),B=w[h[h.length-2]][h[h.length-1]],h.push(B);break;case 3:return!0}}return!0},"parse")},x=function(){var k={EOF:1,parseError:l(function(d,h){if(this.yy.parser)this.yy.parser.parseError(d,h);else throw new Error(d)},"parseError"),setInput:l(function(s,d){return this.yy=d||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:l(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var d=s.match(/(?:\r\n?|\n).*/g);return d?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:l(function(s){var d=s.length,h=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d),this.offset-=d;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),h.length-1&&(this.yylineno-=h.length-1);var m=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:h?(h.length===g.length?this.yylloc.first_column:0)+g[g.length-h.length].length-h[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-d]),this.yyleng=this.yytext.length,this},"unput"),more:l(function(){return this._more=!0,this},"more"),reject:l(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:l(function(s){this.unput(this.match.slice(s))},"less"),pastInput:l(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:l(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:l(function(){var s=this.pastInput(),d=new Array(s.length+1).join("-");return s+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- import{b3 as Wt,s as Kt,g as Ht,o as Yt,n as Xt,a as Zt,b as Jt,_ as S,y as St,D as Qt,d as rt,ak as $t,S as te,T as ee,U as ne,e as se,p as ie,A as re,B as oe}from"./mermaid.core-D_mctH75.js";import"./index-CE7eCSFC.js";const It=(t,n)=>Wt(t,"a",-n),_t=1e-10;function st(t,n){const s=le(t),e=s.filter(l=>ae(l,t));let i=0,r=0;const o=[];if(e.length>1){const l=Et(e);for(let u=0;u<e.length;++u){const a=e[u];a.angle=Math.atan2(a.x-l.x,a.y-l.y)}e.sort((u,a)=>a.angle-u.angle);let h=e[e.length-1];for(let u=0;u<e.length;++u){const a=e[u];r+=(h.x+a.x)*(a.y-h.y);const p={x:(a.x+h.x)/2,y:(a.y+h.y)/2};let d=null;for(let m=0;m<a.parentIndex.length;++m)if(h.parentIndex.includes(a.parentIndex[m])){const y=t[a.parentIndex[m]],M=Math.atan2(a.x-y.x,a.y-y.y),E=Math.atan2(h.x-y.x,h.y-y.y);let T=E-M;T<0&&(T+=2*Math.PI);const w=E-T/2;let g=K(p,{x:y.x+y.radius*Math.sin(w),y:y.y+y.radius*Math.cos(w)});g>y.radius*2&&(g=y.radius*2),(d==null||d.width>g)&&(d={circle:y,width:g,p1:a,p2:h,large:g>y.radius,sweep:!0})}d!=null&&(o.push(d),i+=lt(d.circle.radius,d.width),h=a)}}else{let l=t[0];for(let u=1;u<t.length;++u)t[u].radius<l.radius&&(l=t[u]);let h=!1;for(let u=0;u<t.length;++u)if(K(t[u],l)>Math.abs(l.radius-t[u].radius)){h=!0;break}h?i=r=0:(i=l.radius*l.radius*Math.PI,o.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-_t,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}return r/=2,n&&(n.area=i+r,n.arcArea=i,n.polygonArea=r,n.arcs=o,n.innerPoints=e,n.intersectionPoints=s),i+r}function ae(t,n){return n.every(s=>K(t,s)<s.radius+_t)}function le(t){const n=[];for(let s=0;s<t.length;++s)for(let e=s+1;e<t.length;++e){const i=Tt(t[s],t[e]);for(const r of i)r.parentIndex=[s,e],n.push(r)}return n}function lt(t,n){return t*t*Math.acos(1-n/t)-(t-n)*Math.sqrt(n*(2*t-n))}function K(t,n){return Math.sqrt((t.x-n.x)*(t.x-n.x)+(t.y-n.y)*(t.y-n.y))}function xt(t,n,s){if(s>=t+n)return 0;if(s<=Math.abs(t-n))return Math.PI*Math.min(t,n)*Math.min(t,n);const e=t-(s*s-n*n+t*t)/(2*s),i=n-(s*s-t*t+n*n)/(2*s);return lt(t,e)+lt(n,i)}function Tt(t,n){const s=K(t,n),e=t.radius,i=n.radius;if(s>=e+i||s<=Math.abs(e-i))return[];const r=(e*e-i*i+s*s)/(2*s),o=Math.sqrt(e*e-r*r),l=t.x+r*(n.x-t.x)/s,h=t.y+r*(n.y-t.y)/s,u=-(n.y-t.y)*(o/s),a=-(n.x-t.x)*(o/s);return[{x:l+u,y:h-a},{x:l-u,y:h+a}]}function Et(t){const n={x:0,y:0};for(const s of t)n.x+=s.x,n.y+=s.y;return n.x/=t.length,n.y/=t.length,n}function ce(t,n,s,e){e=e||{};const i=e.maxIterations||100,r=e.tolerance||1e-10,o=t(n),l=t(s);let h=s-n;if(o*l>0)throw"Initial bisect points must have opposite signs";if(o===0)return n;if(l===0)return s;for(let u=0;u<i;++u){h/=2;const a=n+h,p=t(a);if(p*o>=0&&(n=a),Math.abs(h)<r||p===0)return a}return n+h}function ct(t){const n=new Array(t);for(let s=0;s<t;++s)n[s]=0;return n}function Mt(t,n){return ct(t).map(()=>ct(n))}function tt(t,n){let s=0;for(let e=0;e<t.length;++e)s+=t[e]*n[e];return s}function ut(t){return Math.sqrt(tt(t,t))}function ht(t,n,s){for(let e=0;e<n.length;++e)t[e]=n[e]*s}function Q(t,n,s,e,i){for(let r=0;r<t.length;++r)t[r]=n*s[r]+e*i[r]}function zt(t,n,s){s=s||{};const e=s.maxIterations||n.length*200,i=s.nonZeroDelta||1.05,r=s.zeroDelta||.001,o=s.minErrorDelta||1e-6,l=s.minErrorDelta||1e-5,h=s.rho!==void 0?s.rho:1,u=s.chi!==void 0?s.chi:2,a=s.psi!==void 0?s.psi:-.5,p=s.sigma!==void 0?s.sigma:.5;let d;const m=n.length,y=new Array(m+1);y[0]=n,y[0].fx=t(n),y[0].id=0;for(let v=0;v<m;++v){const c=n.slice();c[v]=c[v]?c[v]*i:r,y[v+1]=c,y[v+1].fx=t(c),y[v+1].id=v+1}function M(v){for(let c=0;c<v.length;c++)y[m][c]=v[c];y[m].fx=v.fx}const E=(v,c)=>v.fx-c.fx,T=n.slice(),w=n.slice(),g=n.slice(),b=n.slice();for(let v=0;v<e;++v){if(y.sort(E),s.history){const x=y.map(f=>{const O=f.slice();return O.fx=f.fx,O.id=f.id,O});x.sort((f,O)=>f.id-O.id),s.history.push({x:y[0].slice(),fx:y[0].fx,simplex:x})}d=0;for(let x=0;x<m;++x)d=Math.max(d,Math.abs(y[0][x]-y[1][x]));if(Math.abs(y[0].fx-y[m].fx)<o&&d<l)break;for(let x=0;x<m;++x){T[x]=0;for(let f=0;f<m;++f)T[x]+=y[f][x];T[x]/=m}const c=y[m];if(Q(w,1+h,T,-h,c),w.fx=t(w),w.fx<y[0].fx)Q(b,1+u,T,-u,c),b.fx=t(b),b.fx<w.fx?M(b):M(w);else if(w.fx>=y[m-1].fx){let x=!1;if(w.fx>c.fx?(Q(g,1+a,T,-a,c),g.fx=t(g),g.fx<c.fx?M(g):x=!0):(Q(g,1-a*h,T,a*h,c),g.fx=t(g),g.fx<w.fx?M(g):x=!0),x){if(p>=1)break;for(let f=1;f<y.length;++f)Q(y[f],1-p,y[0],p,y[f]),y[f].fx=t(y[f])}}else M(w)}return y.sort(E),{fx:y[0].fx,x:y[0]}}function ue(t,n,s,e,i,r,o){const l=s.fx,h=tt(s.fxprime,n);let u=l,a=l,p=h,d=0;i=i||1,r=r||1e-6,o=o||.1;function m(y,M,E){for(let T=0;T<16;++T)if(i=(y+M)/2,Q(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),p=tt(e.fxprime,n),u>l+r*i*h||u>=E)M=i;else{if(Math.abs(p)<=-o*h)return i;p*(M-y)>=0&&(M=y),y=i,E=u}return 0}for(let y=0;y<10;++y){if(Q(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),p=tt(e.fxprime,n),u>l+r*i*h||y&&u>=a)return m(d,i,a);if(Math.abs(p)<=-o*h)return i;if(p>=0)return m(i,d,u);a=u,d=i,i*=2}return i}function he(t,n,s){let e={x:n.slice(),fx:0,fxprime:n.slice()},i={x:n.slice(),fx:0,fxprime:n.slice()};const r=n.slice();let o,l,h=1,u;s=s||{},u=s.maxIterations||n.length*20,e.fx=t(e.x,e.fxprime),o=e.fxprime.slice(),ht(o,e.fxprime,-1);for(let a=0;a<u;++a){if(h=ue(t,o,e,i,h),s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:h}),!h)ht(o,e.fxprime,-1);else{Q(r,1,i.fxprime,-1,e.fxprime);const p=tt(e.fxprime,e.fxprime),d=Math.max(0,tt(r,i.fxprime)/p);Q(o,d,o,-1,i.fxprime),l=e,e=i,i=l}if(ut(e.fxprime)<=1e-5)break}return s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:h}),e}function At(t,n={}){n.maxIterations=n.maxIterations||500;const s=n.initialLayout||xe,e=n.lossFunction||et,i=fe(t,n),r=s(i,n),o=Object.keys(r),l=[];for(const a of o)l.push(r[a].x),l.push(r[a].y);const u=zt(a=>{const p={};for(let d=0;d<o.length;++d){const m=o[d];p[m]={x:a[2*d],y:a[2*d+1],radius:r[m].radius}}return e(p,i)},l,n).x;for(let a=0;a<o.length;++a){const p=o[a];r[p].x=u[2*a],r[p].y=u[2*a+1]}return r}const Rt=1e-10;function ft(t,n,s){return Math.min(t,n)*Math.min(t,n)*Math.PI<=s+Rt?Math.abs(t-n):ce(e=>xt(t,n,e)-s,0,t+n)}function fe(t,n={}){const s=n.distinct,e=t.map(l=>Object.assign({},l));function i(l){return l.join(";")}if(s){const l=new Map;for(const h of e)for(let u=0;u<h.sets.length;u++){const a=String(h.sets[u]);l.set(a,h.size+(l.get(a)||0));for(let p=u+1;p<h.sets.length;p++){const d=String(h.sets[p]),m=`${a};${d}`,y=`${d};${a}`;l.set(m,h.size+(l.get(m)||0)),l.set(y,h.size+(l.get(y)||0))}}for(const h of e)h.sets.length<3&&(h.size=l.get(i(h.sets)))}const r=[],o=new Set;for(const l of e)if(l.sets.length===1)r.push(l.sets[0]);else if(l.sets.length===2){const h=l.sets[0],u=l.sets[1];o.add(i(l.sets)),o.add(i([u,h]))}r.sort((l,h)=>l===h?0:l<h?-1:1);for(let l=0;l<r.length;++l){const h=r[l];for(let u=l+1;u<r.length;++u){const a=r[u];o.has(i([h,a]))||e.push({sets:[h,a],size:0})}}return e}function de(t,n,s){const e=Mt(n.length,n.length),i=Mt(n.length,n.length);return t.filter(r=>r.sets.length===2).forEach(r=>{const o=s[r.sets[0]],l=s[r.sets[1]],h=Math.sqrt(n[o].size/Math.PI),u=Math.sqrt(n[l].size/Math.PI),a=ft(h,u,r.size);e[o][l]=e[l][o]=a;let p=0;r.size+1e-10>=Math.min(n[o].size,n[l].size)?p=1:r.size<=1e-10&&(p=-1),i[o][l]=i[l][o]=p}),{distances:e,constraints:i}}function ge(t,n,s,e){for(let r=0;r<n.length;++r)n[r]=0;let i=0;for(let r=0;r<s.length;++r){const o=t[2*r],l=t[2*r+1];for(let h=r+1;h<s.length;++h){const u=t[2*h],a=t[2*h+1],p=s[r][h],d=e[r][h],m=(u-o)*(u-o)+(a-l)*(a-l),y=Math.sqrt(m),M=m-p*p;d>0&&y<=p||d<0&&y>=p||(i+=2*M*M,n[2*r]+=4*M*(o-u),n[2*r+1]+=4*M*(l-a),n[2*h]+=4*M*(u-o),n[2*h+1]+=4*M*(a-l))}}return i}function xe(t,n={}){let s=pe(t,n);const e=n.lossFunction||et;if(t.length>=8){const i=ye(t,n),r=e(i,t),o=e(s,t);r+1e-8<o&&(s=i)}return s}function ye(t,n={}){const s=n.restarts||10,e=[],i={};for(const d of t)d.sets.length===1&&(i[d.sets[0]]=e.length,e.push(d));let{distances:r,constraints:o}=de(t,e,i);const l=ut(r.map(ut))/r.length;r=r.map(d=>d.map(m=>m/l));const h=(d,m)=>ge(d,m,r,o);let u=null;for(let d=0;d<s;++d){const m=ct(r.length*2).map(Math.random),y=he(h,m,n);(!u||y.fx<u.fx)&&(u=y)}const a=u.x,p={};for(let d=0;d<e.length;++d){const m=e[d];p[m.sets[0]]={x:a[2*d]*l,y:a[2*d+1]*l,radius:Math.sqrt(m.size/Math.PI)}}if(n.history)for(const d of n.history)ht(d.x,l);return p}function pe(t,n){const s=n&&n.lossFunction?n.lossFunction:et,e={},i={};for(const p of t)if(p.sets.length===1){const d=p.sets[0];e[d]={x:1e10,y:1e10,rowid:e.length,size:p.size,radius:Math.sqrt(p.size/Math.PI)},i[d]=[]}t=t.filter(p=>p.sets.length===2);for(const p of t){let d=p.weight!=null?p.weight:1;const m=p.sets[0],y=p.sets[1];p.size+Rt>=Math.min(e[m].size,e[y].size)&&(d=0),i[m].push({set:y,size:p.size,weight:d}),i[y].push({set:m,size:p.size,weight:d})}const r=[];Object.keys(i).forEach(p=>{let d=0;for(let m=0;m<i[p].length;++m)d+=i[p][m].size*i[p][m].weight;r.push({set:p,size:d})});function o(p,d){return d.size-p.size}r.sort(o);const l={};function h(p){return p.set in l}function u(p,d){e[d].x=p.x,e[d].y=p.y,l[d]=!0}u({x:0,y:0},r[0].set);for(let p=1;p<r.length;++p){const d=r[p].set,m=i[d].filter(h),y=e[d];if(m.sort(o),m.length===0)throw"ERROR: missing pairwise overlap information";const M=[];for(var a=0;a<m.length;++a){const w=e[m[a].set],g=ft(y.radius,w.radius,m[a].size);M.push({x:w.x+g,y:w.y}),M.push({x:w.x-g,y:w.y}),M.push({y:w.y+g,x:w.x}),M.push({y:w.y-g,x:w.x});for(let b=a+1;b<m.length;++b){const v=e[m[b].set],c=ft(y.radius,v.radius,m[b].size),x=Tt({x:w.x,y:w.y,radius:g},{x:v.x,y:v.y,radius:c});M.push(...x)}}let E=1e50,T=M[0];for(const w of M){e[d].x=w.x,e[d].y=w.y;const g=s(e,t);g<E&&(E=g,T=w)}u(T,d)}return e}function et(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const o=t[e.sets[0]],l=t[e.sets[1]];i=xt(o.radius,l.radius,K(o,l))}else i=st(e.sets.map(o=>t[o]));const r=e.weight!=null?e.weight:1;s+=r*(i-e.size)*(i-e.size)}return s}function Dt(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const l=t[e.sets[0]],h=t[e.sets[1]];i=xt(l.radius,h.radius,K(l,h))}else i=st(e.sets.map(l=>t[l]));const r=e.weight!=null?e.weight:1,o=Math.log((i+1)/(e.size+1));s+=r*o*o}return s}function me(t,n,s){if(s==null?t.sort((i,r)=>r.radius-i.radius):t.sort(s),t.length>0){const i=t[0].x,r=t[0].y;for(const o of t)o.x-=i,o.y-=r}if(t.length===2&&K(t[0],t[1])<Math.abs(t[1].radius-t[0].radius)&&(t[1].x=t[0].x+t[0].radius-t[1].radius-1e-10,t[1].y=t[0].y),t.length>1){const i=Math.atan2(t[1].x,t[1].y)-n,r=Math.cos(i),o=Math.sin(i);for(const l of t){const h=l.x,u=l.y;l.x=r*h-o*u,l.y=o*h+r*u}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-n;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){const r=t[1].y/(1e-10+t[1].x);for(const o of t){var e=(o.x+r*o.y)/(1+r*r);o.x=2*e-o.x,o.y=2*e*r-o.y}}}}function be(t){t.forEach(i=>{i.parent=i});function n(i){return i.parent!==i&&(i.parent=n(i.parent)),i.parent}function s(i,r){const o=n(i),l=n(r);o.parent=l}for(let i=0;i<t.length;++i)for(let r=i+1;r<t.length;++r){const o=t[i].radius+t[r].radius;K(t[i],t[r])+1e-10<o&&s(t[r],t[i])}const e=new Map;for(let i=0;i<t.length;++i){const r=n(t[i]).parent.setid;e.has(r)||e.set(r,[]),e.get(r).push(t[i])}return t.forEach(i=>{delete i.parent}),Array.from(e.values())}function dt(t){const n=s=>{const e=t.reduce((r,o)=>Math.max(r,o[s]+o.radius),Number.NEGATIVE_INFINITY),i=t.reduce((r,o)=>Math.min(r,o[s]-o.radius),Number.POSITIVE_INFINITY);return{max:e,min:i}};return{xRange:n("x"),yRange:n("y")}}function Ct(t,n,s){n==null&&(n=Math.PI/2);let e=Ft(t).map(u=>Object.assign({},u));const i=be(e);for(const u of i){me(u,n,s);const a=dt(u);u.size=(a.xRange.max-a.xRange.min)*(a.yRange.max-a.yRange.min),u.bounds=a}i.sort((u,a)=>a.size-u.size),e=i[0];let r=e.bounds;const o=(r.xRange.max-r.xRange.min)/50;function l(u,a,p){if(!u)return;const d=u.bounds;let m,y;if(a)m=r.xRange.max-d.xRange.min+o;else{m=r.xRange.max-d.xRange.max;const M=(d.xRange.max-d.xRange.min)/2-(r.xRange.max-r.xRange.min)/2;M<0&&(m+=M)}if(p)y=r.yRange.max-d.yRange.min+o;else{y=r.yRange.max-d.yRange.max;const M=(d.yRange.max-d.yRange.min)/2-(r.yRange.max-r.yRange.min)/2;M<0&&(y+=M)}for(const M of u)M.x+=m,M.y+=y,e.push(M)}let h=1;for(;h<i.length;)l(i[h],!0,!1),l(i[h+1],!1,!0),l(i[h+2],!0,!0),h+=3,r=dt(e);return Ot(e)}function Nt(t,n,s,e,i){const r=Ft(t);n-=2*e,s-=2*e;const{xRange:o,yRange:l}=dt(r);if(o.max===o.min||l.max===l.min)return console.log("not scaling solution: zero size detected"),t;let h,u;if(i){const m=Math.sqrt(i/Math.PI)*2;h=n/m,u=s/m}else h=n/(o.max-o.min),u=s/(l.max-l.min);const a=Math.min(u,h),p=(n-(o.max-o.min)*a)/2,d=(s-(l.max-l.min)*a)/2;return Ot(r.map(m=>({radius:a*m.radius,x:e+p+(m.x-o.min)*a,y:e+d+(m.y-l.min)*a,setid:m.setid})))}function Ot(t){const n={};for(const s of t)n[s.setid]=s;return n}function Ft(t){return Object.keys(t).map(s=>Object.assign(t[s],{setid:s}))}function ve(t={}){let n=!1,s=600,e=350,i=15,r=1e3,o=Math.PI/2,l=!0,h=null,u=!0,a=!0,p=null,d=null,m=!1,y=null,M=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,E={},T=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],w=0,g=function(x){if(x in E)return E[x];var f=E[x]=T[w];return w+=1,w>=T.length&&(w=0),f},b=At,v=et;function c(x){let f=x.datum();const O=new Set;f.forEach(k=>{k.size==0&&k.sets.length==1&&O.add(k.sets[0])}),f=f.filter(k=>!k.sets.some(C=>O.has(C)));let I={},R={};if(f.length>0){let k=b(f,{lossFunction:v,distinct:m});l&&(k=Ct(k,o,d)),I=Nt(k,s,e,i,h),R=Lt(I,f,M)}const Z={};f.forEach(k=>{k.label&&(Z[k.sets]=k.label)});function q(k){if(k.sets in Z)return Z[k.sets];if(k.sets.length==1)return""+k.sets[0]}x.selectAll("svg").data([I]).enter().append("svg");const B=x.select("svg");n?B.attr("viewBox",`0 0 ${s} ${e}`):B.attr("width",s).attr("height",e);const V={};let z=!1;B.selectAll(".venn-area path").each(function(k){const C=this.getAttribute("d");k.sets.length==1&&C&&!m&&(z=!0,V[k.sets[0]]=Me(C))});function U(k){return C=>{const G=k.sets.map(J=>{let W=V[J],X=I[J];return W||(W={x:s/2,y:e/2,radius:1}),X||(X={x:s/2,y:e/2,radius:1}),{x:W.x*(1-C)+X.x*C,y:W.y*(1-C)+X.y*C,radius:W.radius*(1-C)+X.radius*C}});return wt(G,y)}}const A=B.selectAll(".venn-area").data(f,k=>k.sets),F=A.enter().append("g").attr("class",k=>`venn-area venn-${k.sets.length==1?"circle":"intersection"}${k.colour||k.color?" venn-coloured":""}`).attr("data-venn-sets",k=>k.sets.join("_")),j=F.append("path"),L=F.append("text").attr("class","label").text(k=>q(k)).attr("text-anchor","middle").attr("dy",".35em").attr("x",s/2).attr("y",e/2);a&&(j.style("fill-opacity","0").filter(k=>k.sets.length==1).style("fill",k=>k.colour?k.colour:k.color?k.color:g(k.sets)).style("fill-opacity",".25"),L.style("fill",k=>k.colour||k.color?"#FFF":t.textFill?t.textFill:k.sets.length==1?g(k.sets):"#444"));function P(k){return typeof k.transition=="function"?k.transition("venn").duration(r):k}let _=x;z&&typeof _.transition=="function"?(_=P(x),_.selectAll("path").attrTween("d",U)):_.selectAll("path").attr("d",k=>wt(k.sets.map(C=>I[C])),y);const D=_.selectAll("text").filter(k=>k.sets in R).text(k=>q(k)).attr("x",k=>Math.floor(R[k.sets].x)).attr("y",k=>Math.floor(R[k.sets].y));u&&(z?"on"in D?D.on("end",ot(I,q)):D.each("end",ot(I,q)):D.each(ot(I,q)));const N=P(A.exit()).remove();typeof A.transition=="function"&&N.selectAll("path").attrTween("d",U);const Y=N.selectAll("text").attr("x",s/2).attr("y",e/2);return p!==null&&(L.style("font-size","0px"),D.style("font-size",p),Y.style("font-size","0px")),{circles:I,textCentres:R,nodes:A,enter:F,update:_,exit:N}}return c.wrap=function(x){return arguments.length?(u=x,c):u},c.useViewBox=function(){return n=!0,c},c.width=function(x){return arguments.length?(s=x,c):s},c.height=function(x){return arguments.length?(e=x,c):e},c.padding=function(x){return arguments.length?(i=x,c):i},c.distinct=function(x){return arguments.length?(m=x,c):m},c.colours=function(x){return arguments.length?(g=x,c):g},c.colors=function(x){return arguments.length?(g=x,c):g},c.fontSize=function(x){return arguments.length?(p=x,c):p},c.round=function(x){return arguments.length?(y=x,c):y},c.duration=function(x){return arguments.length?(r=x,c):r},c.layoutFunction=function(x){return arguments.length?(b=x,c):b},c.normalize=function(x){return arguments.length?(l=x,c):l},c.scaleToFit=function(x){return arguments.length?(h=x,c):h},c.styled=function(x){return arguments.length?(a=x,c):a},c.orientation=function(x){return arguments.length?(o=x,c):o},c.orientationOrder=function(x){return arguments.length?(d=x,c):d},c.lossFunction=function(x){return arguments.length?(v=x==="default"?et:x==="logRatio"?Dt:x,c):v},c}function ot(t,n){return function(s){const e=this,i=t[s.sets[0]].radius||50,r=n(s)||"",o=r.split(/\s+/).reverse(),h=(r.length+o.length)/3;let u=o.pop(),a=[u],p=0;const d=1.1;e.textContent=null;const m=[];function y(g){const b=e.ownerDocument.createElementNS(e.namespaceURI,"tspan");return b.textContent=g,m.push(b),e.append(b),b}let M=y(u);for(;u=o.pop(),!!u;){a.push(u);const g=a.join(" ");M.textContent=g,g.length>h&&M.getComputedTextLength()>i&&(a.pop(),M.textContent=a.join(" "),a=[u],M=y(u),p++)}const E=.35-p*d/2,T=e.getAttribute("x"),w=e.getAttribute("y");m.forEach((g,b)=>{g.setAttribute("x",T),g.setAttribute("y",w),g.setAttribute("dy",`${E+b*d}em`)})}}function at(t,n,s){let e=n[0].radius-K(n[0],t);for(let i=1;i<n.length;++i){const r=n[i].radius-K(n[i],t);r<=e&&(e=r)}for(let i=0;i<s.length;++i){const r=K(s[i],t)-s[i].radius;r<=e&&(e=r)}return e}function jt(t,n,s){const e=[];for(const a of t)e.push({x:a.x,y:a.y}),e.push({x:a.x+a.radius/2,y:a.y}),e.push({x:a.x-a.radius/2,y:a.y}),e.push({x:a.x,y:a.y+a.radius/2}),e.push({x:a.x,y:a.y-a.radius/2});let i=e[0],r=at(e[0],t,n);for(let a=1;a<e.length;++a){const p=at(e[a],t,n);p>=r&&(i=e[a],r=p)}const o=zt(a=>-1*at({x:a[0],y:a[1]},t,n),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:s?0:o[0],y:o[1]};let h=!0;for(const a of t)if(K(l,a)>a.radius){h=!1;break}for(const a of n)if(K(l,a)<a.radius){h=!1;break}if(h)return l;if(t.length==1)return{x:t[0].x,y:t[0].y};const u={};return st(t,u),u.arcs.length===0?{x:0,y:-1e3,disjoint:!0}:u.arcs.length==1?{x:u.arcs[0].circle.x,y:u.arcs[0].circle.y}:n.length?jt(t,[]):Et(u.arcs.map(a=>a.p1))}function ke(t){const n={},s=Object.keys(t);for(const e of s)n[e]=[];for(let e=0;e<s.length;e++){const i=s[e],r=t[i];for(let o=e+1;o<s.length;++o){const l=s[o],h=t[l],u=K(r,h);u+h.radius<=r.radius+1e-10?n[l].push(i):u+r.radius<=h.radius+1e-10&&n[i].push(l)}}return n}function Lt(t,n,s){const e={},i=ke(t);for(let r=0;r<n.length;++r){const o=n[r].sets,l={},h={};for(let d=0;d<o.length;++d){l[o[d]]=!0;const m=i[o[d]];for(let y=0;y<m.length;++y)h[m[y]]=!0}const u=[],a=[];for(let d in t)d in l?u.push(t[d]):d in h||a.push(t[d]);const p=jt(u,a,s);e[o]=p,p.disjoint&&n[r].size>0&&console.log("WARNING: area "+o+" not represented on screen")}return e}function Ie(t,n,s){const e=[];return e.push(`
1
+ import{b3 as Wt,s as Kt,g as Ht,o as Yt,n as Xt,a as Zt,b as Jt,_ as S,y as St,D as Qt,d as rt,ak as $t,S as te,T as ee,U as ne,e as se,p as ie,A as re,B as oe}from"./mermaid.core-Csqy-TMM.js";import"./index-DqSR1Tzn.js";const It=(t,n)=>Wt(t,"a",-n),_t=1e-10;function st(t,n){const s=le(t),e=s.filter(l=>ae(l,t));let i=0,r=0;const o=[];if(e.length>1){const l=Et(e);for(let u=0;u<e.length;++u){const a=e[u];a.angle=Math.atan2(a.x-l.x,a.y-l.y)}e.sort((u,a)=>a.angle-u.angle);let h=e[e.length-1];for(let u=0;u<e.length;++u){const a=e[u];r+=(h.x+a.x)*(a.y-h.y);const p={x:(a.x+h.x)/2,y:(a.y+h.y)/2};let d=null;for(let m=0;m<a.parentIndex.length;++m)if(h.parentIndex.includes(a.parentIndex[m])){const y=t[a.parentIndex[m]],M=Math.atan2(a.x-y.x,a.y-y.y),E=Math.atan2(h.x-y.x,h.y-y.y);let T=E-M;T<0&&(T+=2*Math.PI);const w=E-T/2;let g=K(p,{x:y.x+y.radius*Math.sin(w),y:y.y+y.radius*Math.cos(w)});g>y.radius*2&&(g=y.radius*2),(d==null||d.width>g)&&(d={circle:y,width:g,p1:a,p2:h,large:g>y.radius,sweep:!0})}d!=null&&(o.push(d),i+=lt(d.circle.radius,d.width),h=a)}}else{let l=t[0];for(let u=1;u<t.length;++u)t[u].radius<l.radius&&(l=t[u]);let h=!1;for(let u=0;u<t.length;++u)if(K(t[u],l)>Math.abs(l.radius-t[u].radius)){h=!0;break}h?i=r=0:(i=l.radius*l.radius*Math.PI,o.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-_t,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}return r/=2,n&&(n.area=i+r,n.arcArea=i,n.polygonArea=r,n.arcs=o,n.innerPoints=e,n.intersectionPoints=s),i+r}function ae(t,n){return n.every(s=>K(t,s)<s.radius+_t)}function le(t){const n=[];for(let s=0;s<t.length;++s)for(let e=s+1;e<t.length;++e){const i=Tt(t[s],t[e]);for(const r of i)r.parentIndex=[s,e],n.push(r)}return n}function lt(t,n){return t*t*Math.acos(1-n/t)-(t-n)*Math.sqrt(n*(2*t-n))}function K(t,n){return Math.sqrt((t.x-n.x)*(t.x-n.x)+(t.y-n.y)*(t.y-n.y))}function xt(t,n,s){if(s>=t+n)return 0;if(s<=Math.abs(t-n))return Math.PI*Math.min(t,n)*Math.min(t,n);const e=t-(s*s-n*n+t*t)/(2*s),i=n-(s*s-t*t+n*n)/(2*s);return lt(t,e)+lt(n,i)}function Tt(t,n){const s=K(t,n),e=t.radius,i=n.radius;if(s>=e+i||s<=Math.abs(e-i))return[];const r=(e*e-i*i+s*s)/(2*s),o=Math.sqrt(e*e-r*r),l=t.x+r*(n.x-t.x)/s,h=t.y+r*(n.y-t.y)/s,u=-(n.y-t.y)*(o/s),a=-(n.x-t.x)*(o/s);return[{x:l+u,y:h-a},{x:l-u,y:h+a}]}function Et(t){const n={x:0,y:0};for(const s of t)n.x+=s.x,n.y+=s.y;return n.x/=t.length,n.y/=t.length,n}function ce(t,n,s,e){e=e||{};const i=e.maxIterations||100,r=e.tolerance||1e-10,o=t(n),l=t(s);let h=s-n;if(o*l>0)throw"Initial bisect points must have opposite signs";if(o===0)return n;if(l===0)return s;for(let u=0;u<i;++u){h/=2;const a=n+h,p=t(a);if(p*o>=0&&(n=a),Math.abs(h)<r||p===0)return a}return n+h}function ct(t){const n=new Array(t);for(let s=0;s<t;++s)n[s]=0;return n}function Mt(t,n){return ct(t).map(()=>ct(n))}function tt(t,n){let s=0;for(let e=0;e<t.length;++e)s+=t[e]*n[e];return s}function ut(t){return Math.sqrt(tt(t,t))}function ht(t,n,s){for(let e=0;e<n.length;++e)t[e]=n[e]*s}function Q(t,n,s,e,i){for(let r=0;r<t.length;++r)t[r]=n*s[r]+e*i[r]}function zt(t,n,s){s=s||{};const e=s.maxIterations||n.length*200,i=s.nonZeroDelta||1.05,r=s.zeroDelta||.001,o=s.minErrorDelta||1e-6,l=s.minErrorDelta||1e-5,h=s.rho!==void 0?s.rho:1,u=s.chi!==void 0?s.chi:2,a=s.psi!==void 0?s.psi:-.5,p=s.sigma!==void 0?s.sigma:.5;let d;const m=n.length,y=new Array(m+1);y[0]=n,y[0].fx=t(n),y[0].id=0;for(let v=0;v<m;++v){const c=n.slice();c[v]=c[v]?c[v]*i:r,y[v+1]=c,y[v+1].fx=t(c),y[v+1].id=v+1}function M(v){for(let c=0;c<v.length;c++)y[m][c]=v[c];y[m].fx=v.fx}const E=(v,c)=>v.fx-c.fx,T=n.slice(),w=n.slice(),g=n.slice(),b=n.slice();for(let v=0;v<e;++v){if(y.sort(E),s.history){const x=y.map(f=>{const O=f.slice();return O.fx=f.fx,O.id=f.id,O});x.sort((f,O)=>f.id-O.id),s.history.push({x:y[0].slice(),fx:y[0].fx,simplex:x})}d=0;for(let x=0;x<m;++x)d=Math.max(d,Math.abs(y[0][x]-y[1][x]));if(Math.abs(y[0].fx-y[m].fx)<o&&d<l)break;for(let x=0;x<m;++x){T[x]=0;for(let f=0;f<m;++f)T[x]+=y[f][x];T[x]/=m}const c=y[m];if(Q(w,1+h,T,-h,c),w.fx=t(w),w.fx<y[0].fx)Q(b,1+u,T,-u,c),b.fx=t(b),b.fx<w.fx?M(b):M(w);else if(w.fx>=y[m-1].fx){let x=!1;if(w.fx>c.fx?(Q(g,1+a,T,-a,c),g.fx=t(g),g.fx<c.fx?M(g):x=!0):(Q(g,1-a*h,T,a*h,c),g.fx=t(g),g.fx<w.fx?M(g):x=!0),x){if(p>=1)break;for(let f=1;f<y.length;++f)Q(y[f],1-p,y[0],p,y[f]),y[f].fx=t(y[f])}}else M(w)}return y.sort(E),{fx:y[0].fx,x:y[0]}}function ue(t,n,s,e,i,r,o){const l=s.fx,h=tt(s.fxprime,n);let u=l,a=l,p=h,d=0;i=i||1,r=r||1e-6,o=o||.1;function m(y,M,E){for(let T=0;T<16;++T)if(i=(y+M)/2,Q(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),p=tt(e.fxprime,n),u>l+r*i*h||u>=E)M=i;else{if(Math.abs(p)<=-o*h)return i;p*(M-y)>=0&&(M=y),y=i,E=u}return 0}for(let y=0;y<10;++y){if(Q(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),p=tt(e.fxprime,n),u>l+r*i*h||y&&u>=a)return m(d,i,a);if(Math.abs(p)<=-o*h)return i;if(p>=0)return m(i,d,u);a=u,d=i,i*=2}return i}function he(t,n,s){let e={x:n.slice(),fx:0,fxprime:n.slice()},i={x:n.slice(),fx:0,fxprime:n.slice()};const r=n.slice();let o,l,h=1,u;s=s||{},u=s.maxIterations||n.length*20,e.fx=t(e.x,e.fxprime),o=e.fxprime.slice(),ht(o,e.fxprime,-1);for(let a=0;a<u;++a){if(h=ue(t,o,e,i,h),s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:h}),!h)ht(o,e.fxprime,-1);else{Q(r,1,i.fxprime,-1,e.fxprime);const p=tt(e.fxprime,e.fxprime),d=Math.max(0,tt(r,i.fxprime)/p);Q(o,d,o,-1,i.fxprime),l=e,e=i,i=l}if(ut(e.fxprime)<=1e-5)break}return s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:h}),e}function At(t,n={}){n.maxIterations=n.maxIterations||500;const s=n.initialLayout||xe,e=n.lossFunction||et,i=fe(t,n),r=s(i,n),o=Object.keys(r),l=[];for(const a of o)l.push(r[a].x),l.push(r[a].y);const u=zt(a=>{const p={};for(let d=0;d<o.length;++d){const m=o[d];p[m]={x:a[2*d],y:a[2*d+1],radius:r[m].radius}}return e(p,i)},l,n).x;for(let a=0;a<o.length;++a){const p=o[a];r[p].x=u[2*a],r[p].y=u[2*a+1]}return r}const Rt=1e-10;function ft(t,n,s){return Math.min(t,n)*Math.min(t,n)*Math.PI<=s+Rt?Math.abs(t-n):ce(e=>xt(t,n,e)-s,0,t+n)}function fe(t,n={}){const s=n.distinct,e=t.map(l=>Object.assign({},l));function i(l){return l.join(";")}if(s){const l=new Map;for(const h of e)for(let u=0;u<h.sets.length;u++){const a=String(h.sets[u]);l.set(a,h.size+(l.get(a)||0));for(let p=u+1;p<h.sets.length;p++){const d=String(h.sets[p]),m=`${a};${d}`,y=`${d};${a}`;l.set(m,h.size+(l.get(m)||0)),l.set(y,h.size+(l.get(y)||0))}}for(const h of e)h.sets.length<3&&(h.size=l.get(i(h.sets)))}const r=[],o=new Set;for(const l of e)if(l.sets.length===1)r.push(l.sets[0]);else if(l.sets.length===2){const h=l.sets[0],u=l.sets[1];o.add(i(l.sets)),o.add(i([u,h]))}r.sort((l,h)=>l===h?0:l<h?-1:1);for(let l=0;l<r.length;++l){const h=r[l];for(let u=l+1;u<r.length;++u){const a=r[u];o.has(i([h,a]))||e.push({sets:[h,a],size:0})}}return e}function de(t,n,s){const e=Mt(n.length,n.length),i=Mt(n.length,n.length);return t.filter(r=>r.sets.length===2).forEach(r=>{const o=s[r.sets[0]],l=s[r.sets[1]],h=Math.sqrt(n[o].size/Math.PI),u=Math.sqrt(n[l].size/Math.PI),a=ft(h,u,r.size);e[o][l]=e[l][o]=a;let p=0;r.size+1e-10>=Math.min(n[o].size,n[l].size)?p=1:r.size<=1e-10&&(p=-1),i[o][l]=i[l][o]=p}),{distances:e,constraints:i}}function ge(t,n,s,e){for(let r=0;r<n.length;++r)n[r]=0;let i=0;for(let r=0;r<s.length;++r){const o=t[2*r],l=t[2*r+1];for(let h=r+1;h<s.length;++h){const u=t[2*h],a=t[2*h+1],p=s[r][h],d=e[r][h],m=(u-o)*(u-o)+(a-l)*(a-l),y=Math.sqrt(m),M=m-p*p;d>0&&y<=p||d<0&&y>=p||(i+=2*M*M,n[2*r]+=4*M*(o-u),n[2*r+1]+=4*M*(l-a),n[2*h]+=4*M*(u-o),n[2*h+1]+=4*M*(a-l))}}return i}function xe(t,n={}){let s=pe(t,n);const e=n.lossFunction||et;if(t.length>=8){const i=ye(t,n),r=e(i,t),o=e(s,t);r+1e-8<o&&(s=i)}return s}function ye(t,n={}){const s=n.restarts||10,e=[],i={};for(const d of t)d.sets.length===1&&(i[d.sets[0]]=e.length,e.push(d));let{distances:r,constraints:o}=de(t,e,i);const l=ut(r.map(ut))/r.length;r=r.map(d=>d.map(m=>m/l));const h=(d,m)=>ge(d,m,r,o);let u=null;for(let d=0;d<s;++d){const m=ct(r.length*2).map(Math.random),y=he(h,m,n);(!u||y.fx<u.fx)&&(u=y)}const a=u.x,p={};for(let d=0;d<e.length;++d){const m=e[d];p[m.sets[0]]={x:a[2*d]*l,y:a[2*d+1]*l,radius:Math.sqrt(m.size/Math.PI)}}if(n.history)for(const d of n.history)ht(d.x,l);return p}function pe(t,n){const s=n&&n.lossFunction?n.lossFunction:et,e={},i={};for(const p of t)if(p.sets.length===1){const d=p.sets[0];e[d]={x:1e10,y:1e10,rowid:e.length,size:p.size,radius:Math.sqrt(p.size/Math.PI)},i[d]=[]}t=t.filter(p=>p.sets.length===2);for(const p of t){let d=p.weight!=null?p.weight:1;const m=p.sets[0],y=p.sets[1];p.size+Rt>=Math.min(e[m].size,e[y].size)&&(d=0),i[m].push({set:y,size:p.size,weight:d}),i[y].push({set:m,size:p.size,weight:d})}const r=[];Object.keys(i).forEach(p=>{let d=0;for(let m=0;m<i[p].length;++m)d+=i[p][m].size*i[p][m].weight;r.push({set:p,size:d})});function o(p,d){return d.size-p.size}r.sort(o);const l={};function h(p){return p.set in l}function u(p,d){e[d].x=p.x,e[d].y=p.y,l[d]=!0}u({x:0,y:0},r[0].set);for(let p=1;p<r.length;++p){const d=r[p].set,m=i[d].filter(h),y=e[d];if(m.sort(o),m.length===0)throw"ERROR: missing pairwise overlap information";const M=[];for(var a=0;a<m.length;++a){const w=e[m[a].set],g=ft(y.radius,w.radius,m[a].size);M.push({x:w.x+g,y:w.y}),M.push({x:w.x-g,y:w.y}),M.push({y:w.y+g,x:w.x}),M.push({y:w.y-g,x:w.x});for(let b=a+1;b<m.length;++b){const v=e[m[b].set],c=ft(y.radius,v.radius,m[b].size),x=Tt({x:w.x,y:w.y,radius:g},{x:v.x,y:v.y,radius:c});M.push(...x)}}let E=1e50,T=M[0];for(const w of M){e[d].x=w.x,e[d].y=w.y;const g=s(e,t);g<E&&(E=g,T=w)}u(T,d)}return e}function et(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const o=t[e.sets[0]],l=t[e.sets[1]];i=xt(o.radius,l.radius,K(o,l))}else i=st(e.sets.map(o=>t[o]));const r=e.weight!=null?e.weight:1;s+=r*(i-e.size)*(i-e.size)}return s}function Dt(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const l=t[e.sets[0]],h=t[e.sets[1]];i=xt(l.radius,h.radius,K(l,h))}else i=st(e.sets.map(l=>t[l]));const r=e.weight!=null?e.weight:1,o=Math.log((i+1)/(e.size+1));s+=r*o*o}return s}function me(t,n,s){if(s==null?t.sort((i,r)=>r.radius-i.radius):t.sort(s),t.length>0){const i=t[0].x,r=t[0].y;for(const o of t)o.x-=i,o.y-=r}if(t.length===2&&K(t[0],t[1])<Math.abs(t[1].radius-t[0].radius)&&(t[1].x=t[0].x+t[0].radius-t[1].radius-1e-10,t[1].y=t[0].y),t.length>1){const i=Math.atan2(t[1].x,t[1].y)-n,r=Math.cos(i),o=Math.sin(i);for(const l of t){const h=l.x,u=l.y;l.x=r*h-o*u,l.y=o*h+r*u}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-n;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){const r=t[1].y/(1e-10+t[1].x);for(const o of t){var e=(o.x+r*o.y)/(1+r*r);o.x=2*e-o.x,o.y=2*e*r-o.y}}}}function be(t){t.forEach(i=>{i.parent=i});function n(i){return i.parent!==i&&(i.parent=n(i.parent)),i.parent}function s(i,r){const o=n(i),l=n(r);o.parent=l}for(let i=0;i<t.length;++i)for(let r=i+1;r<t.length;++r){const o=t[i].radius+t[r].radius;K(t[i],t[r])+1e-10<o&&s(t[r],t[i])}const e=new Map;for(let i=0;i<t.length;++i){const r=n(t[i]).parent.setid;e.has(r)||e.set(r,[]),e.get(r).push(t[i])}return t.forEach(i=>{delete i.parent}),Array.from(e.values())}function dt(t){const n=s=>{const e=t.reduce((r,o)=>Math.max(r,o[s]+o.radius),Number.NEGATIVE_INFINITY),i=t.reduce((r,o)=>Math.min(r,o[s]-o.radius),Number.POSITIVE_INFINITY);return{max:e,min:i}};return{xRange:n("x"),yRange:n("y")}}function Ct(t,n,s){n==null&&(n=Math.PI/2);let e=Ft(t).map(u=>Object.assign({},u));const i=be(e);for(const u of i){me(u,n,s);const a=dt(u);u.size=(a.xRange.max-a.xRange.min)*(a.yRange.max-a.yRange.min),u.bounds=a}i.sort((u,a)=>a.size-u.size),e=i[0];let r=e.bounds;const o=(r.xRange.max-r.xRange.min)/50;function l(u,a,p){if(!u)return;const d=u.bounds;let m,y;if(a)m=r.xRange.max-d.xRange.min+o;else{m=r.xRange.max-d.xRange.max;const M=(d.xRange.max-d.xRange.min)/2-(r.xRange.max-r.xRange.min)/2;M<0&&(m+=M)}if(p)y=r.yRange.max-d.yRange.min+o;else{y=r.yRange.max-d.yRange.max;const M=(d.yRange.max-d.yRange.min)/2-(r.yRange.max-r.yRange.min)/2;M<0&&(y+=M)}for(const M of u)M.x+=m,M.y+=y,e.push(M)}let h=1;for(;h<i.length;)l(i[h],!0,!1),l(i[h+1],!1,!0),l(i[h+2],!0,!0),h+=3,r=dt(e);return Ot(e)}function Nt(t,n,s,e,i){const r=Ft(t);n-=2*e,s-=2*e;const{xRange:o,yRange:l}=dt(r);if(o.max===o.min||l.max===l.min)return console.log("not scaling solution: zero size detected"),t;let h,u;if(i){const m=Math.sqrt(i/Math.PI)*2;h=n/m,u=s/m}else h=n/(o.max-o.min),u=s/(l.max-l.min);const a=Math.min(u,h),p=(n-(o.max-o.min)*a)/2,d=(s-(l.max-l.min)*a)/2;return Ot(r.map(m=>({radius:a*m.radius,x:e+p+(m.x-o.min)*a,y:e+d+(m.y-l.min)*a,setid:m.setid})))}function Ot(t){const n={};for(const s of t)n[s.setid]=s;return n}function Ft(t){return Object.keys(t).map(s=>Object.assign(t[s],{setid:s}))}function ve(t={}){let n=!1,s=600,e=350,i=15,r=1e3,o=Math.PI/2,l=!0,h=null,u=!0,a=!0,p=null,d=null,m=!1,y=null,M=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,E={},T=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],w=0,g=function(x){if(x in E)return E[x];var f=E[x]=T[w];return w+=1,w>=T.length&&(w=0),f},b=At,v=et;function c(x){let f=x.datum();const O=new Set;f.forEach(k=>{k.size==0&&k.sets.length==1&&O.add(k.sets[0])}),f=f.filter(k=>!k.sets.some(C=>O.has(C)));let I={},R={};if(f.length>0){let k=b(f,{lossFunction:v,distinct:m});l&&(k=Ct(k,o,d)),I=Nt(k,s,e,i,h),R=Lt(I,f,M)}const Z={};f.forEach(k=>{k.label&&(Z[k.sets]=k.label)});function q(k){if(k.sets in Z)return Z[k.sets];if(k.sets.length==1)return""+k.sets[0]}x.selectAll("svg").data([I]).enter().append("svg");const B=x.select("svg");n?B.attr("viewBox",`0 0 ${s} ${e}`):B.attr("width",s).attr("height",e);const V={};let z=!1;B.selectAll(".venn-area path").each(function(k){const C=this.getAttribute("d");k.sets.length==1&&C&&!m&&(z=!0,V[k.sets[0]]=Me(C))});function U(k){return C=>{const G=k.sets.map(J=>{let W=V[J],X=I[J];return W||(W={x:s/2,y:e/2,radius:1}),X||(X={x:s/2,y:e/2,radius:1}),{x:W.x*(1-C)+X.x*C,y:W.y*(1-C)+X.y*C,radius:W.radius*(1-C)+X.radius*C}});return wt(G,y)}}const A=B.selectAll(".venn-area").data(f,k=>k.sets),F=A.enter().append("g").attr("class",k=>`venn-area venn-${k.sets.length==1?"circle":"intersection"}${k.colour||k.color?" venn-coloured":""}`).attr("data-venn-sets",k=>k.sets.join("_")),j=F.append("path"),L=F.append("text").attr("class","label").text(k=>q(k)).attr("text-anchor","middle").attr("dy",".35em").attr("x",s/2).attr("y",e/2);a&&(j.style("fill-opacity","0").filter(k=>k.sets.length==1).style("fill",k=>k.colour?k.colour:k.color?k.color:g(k.sets)).style("fill-opacity",".25"),L.style("fill",k=>k.colour||k.color?"#FFF":t.textFill?t.textFill:k.sets.length==1?g(k.sets):"#444"));function P(k){return typeof k.transition=="function"?k.transition("venn").duration(r):k}let _=x;z&&typeof _.transition=="function"?(_=P(x),_.selectAll("path").attrTween("d",U)):_.selectAll("path").attr("d",k=>wt(k.sets.map(C=>I[C])),y);const D=_.selectAll("text").filter(k=>k.sets in R).text(k=>q(k)).attr("x",k=>Math.floor(R[k.sets].x)).attr("y",k=>Math.floor(R[k.sets].y));u&&(z?"on"in D?D.on("end",ot(I,q)):D.each("end",ot(I,q)):D.each(ot(I,q)));const N=P(A.exit()).remove();typeof A.transition=="function"&&N.selectAll("path").attrTween("d",U);const Y=N.selectAll("text").attr("x",s/2).attr("y",e/2);return p!==null&&(L.style("font-size","0px"),D.style("font-size",p),Y.style("font-size","0px")),{circles:I,textCentres:R,nodes:A,enter:F,update:_,exit:N}}return c.wrap=function(x){return arguments.length?(u=x,c):u},c.useViewBox=function(){return n=!0,c},c.width=function(x){return arguments.length?(s=x,c):s},c.height=function(x){return arguments.length?(e=x,c):e},c.padding=function(x){return arguments.length?(i=x,c):i},c.distinct=function(x){return arguments.length?(m=x,c):m},c.colours=function(x){return arguments.length?(g=x,c):g},c.colors=function(x){return arguments.length?(g=x,c):g},c.fontSize=function(x){return arguments.length?(p=x,c):p},c.round=function(x){return arguments.length?(y=x,c):y},c.duration=function(x){return arguments.length?(r=x,c):r},c.layoutFunction=function(x){return arguments.length?(b=x,c):b},c.normalize=function(x){return arguments.length?(l=x,c):l},c.scaleToFit=function(x){return arguments.length?(h=x,c):h},c.styled=function(x){return arguments.length?(a=x,c):a},c.orientation=function(x){return arguments.length?(o=x,c):o},c.orientationOrder=function(x){return arguments.length?(d=x,c):d},c.lossFunction=function(x){return arguments.length?(v=x==="default"?et:x==="logRatio"?Dt:x,c):v},c}function ot(t,n){return function(s){const e=this,i=t[s.sets[0]].radius||50,r=n(s)||"",o=r.split(/\s+/).reverse(),h=(r.length+o.length)/3;let u=o.pop(),a=[u],p=0;const d=1.1;e.textContent=null;const m=[];function y(g){const b=e.ownerDocument.createElementNS(e.namespaceURI,"tspan");return b.textContent=g,m.push(b),e.append(b),b}let M=y(u);for(;u=o.pop(),!!u;){a.push(u);const g=a.join(" ");M.textContent=g,g.length>h&&M.getComputedTextLength()>i&&(a.pop(),M.textContent=a.join(" "),a=[u],M=y(u),p++)}const E=.35-p*d/2,T=e.getAttribute("x"),w=e.getAttribute("y");m.forEach((g,b)=>{g.setAttribute("x",T),g.setAttribute("y",w),g.setAttribute("dy",`${E+b*d}em`)})}}function at(t,n,s){let e=n[0].radius-K(n[0],t);for(let i=1;i<n.length;++i){const r=n[i].radius-K(n[i],t);r<=e&&(e=r)}for(let i=0;i<s.length;++i){const r=K(s[i],t)-s[i].radius;r<=e&&(e=r)}return e}function jt(t,n,s){const e=[];for(const a of t)e.push({x:a.x,y:a.y}),e.push({x:a.x+a.radius/2,y:a.y}),e.push({x:a.x-a.radius/2,y:a.y}),e.push({x:a.x,y:a.y+a.radius/2}),e.push({x:a.x,y:a.y-a.radius/2});let i=e[0],r=at(e[0],t,n);for(let a=1;a<e.length;++a){const p=at(e[a],t,n);p>=r&&(i=e[a],r=p)}const o=zt(a=>-1*at({x:a[0],y:a[1]},t,n),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:s?0:o[0],y:o[1]};let h=!0;for(const a of t)if(K(l,a)>a.radius){h=!1;break}for(const a of n)if(K(l,a)<a.radius){h=!1;break}if(h)return l;if(t.length==1)return{x:t[0].x,y:t[0].y};const u={};return st(t,u),u.arcs.length===0?{x:0,y:-1e3,disjoint:!0}:u.arcs.length==1?{x:u.arcs[0].circle.x,y:u.arcs[0].circle.y}:n.length?jt(t,[]):Et(u.arcs.map(a=>a.p1))}function ke(t){const n={},s=Object.keys(t);for(const e of s)n[e]=[];for(let e=0;e<s.length;e++){const i=s[e],r=t[i];for(let o=e+1;o<s.length;++o){const l=s[o],h=t[l],u=K(r,h);u+h.radius<=r.radius+1e-10?n[l].push(i):u+r.radius<=h.radius+1e-10&&n[i].push(l)}}return n}function Lt(t,n,s){const e={},i=ke(t);for(let r=0;r<n.length;++r){const o=n[r].sets,l={},h={};for(let d=0;d<o.length;++d){l[o[d]]=!0;const m=i[o[d]];for(let y=0;y<m.length;++y)h[m[y]]=!0}const u=[],a=[];for(let d in t)d in l?u.push(t[d]):d in h||a.push(t[d]);const p=jt(u,a,s);e[o]=p,p.disjoint&&n[r].size>0&&console.log("WARNING: area "+o+" not represented on screen")}return e}function Ie(t,n,s){const e=[];return e.push(`
2
2
  M`,t,n),e.push(`
3
3
  m`,-s,0),e.push(`
4
4
  a`,s,s,0,1,0,s*2,0),e.push(`
@@ -1,4 +1,4 @@
1
- import{p as zt}from"./chunk-JWPE2WC7-C8qzad5g.js";import{s as Lt,g as Tt,o as At,n as Xt,a as Et,b as Yt,_ as y,E as It,y as Bt,A as Q,l as et,D as Ft,e as Rt,p as Ot,c as V}from"./mermaid.core-D_mctH75.js";import{p as Wt}from"./cynefin-VYW2F7L2-9CNtsnOQ.js";import"./index-CE7eCSFC.js";var G=y((a,o)=>{const e=a<=1?a*100:a;if(e<0||e>100)throw new Error(`${o} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${a}`);return e},"toPercent"),E=y((a,o,e)=>({x:G(o,`${e} evolution`),y:G(a,`${e} visibility`)}),"toCoordinates"),tt=y(a=>{if(a){if(a==="+<>")return"bidirectional";if(a==="+<")return"backward";if(a==="+>")return"forward"}},"getFlowFromPort"),Dt=y(a=>{if(!(a!=null&&a.startsWith("+")))return{};const o=/^\+'([^']*)'/.exec(a),e=o==null?void 0:o[1];return a.includes("<>")?{flow:"bidirectional",label:e}:a.includes("<")?{flow:"backward",label:e}:a.includes(">")?{flow:"forward",label:e}:{label:e}},"extractFlowFromArrow"),Gt=y((a,o)=>{if(zt(a,o),a.size&&o.setSize(a.size.width,a.size.height),a.evolution){const e=a.evolution.stages.map(r=>r.secondName?`${r.name.trim()} / ${r.secondName.trim()}`:r.name.trim()),p=a.evolution.stages.filter(r=>r.boundary!==void 0).map(r=>r.boundary);o.updateAxes({stages:e,stageBoundaries:p})}if(a.anchors.forEach(e=>{const p=E(e.visibility,e.evolution,`Anchor "${e.name}"`);o.addNode(e.name,e.name,p.x,p.y,"anchor")}),a.components.forEach(e=>{var v;const p=E(e.visibility,e.evolution,`Component "${e.name}"`),r=e.label?(e.label.negX?-1:1)*e.label.offsetX:void 0,d=e.label?(e.label.negY?-1:1)*e.label.offsetY:void 0,m=(v=e.decorator)==null?void 0:v.strategy;o.addNode(e.name,e.name,p.x,p.y,"component",r,d,e.inertia,m)}),a.notes.forEach(e=>{const p=E(e.visibility,e.evolution,`Note "${e.text}"`);o.addNote(e.text,p.x,p.y)}),a.pipelines.forEach(e=>{const p=o.getNode(e.parent);if(!p||typeof p.y!="number")throw new Error(`Pipeline "${e.parent}" must reference an existing component with coordinates.`);const r=p.y;o.startPipeline(e.parent),e.components.forEach(d=>{const m=`${e.parent}_${d.name}`,v=d.label?(d.label.negX?-1:1)*d.label.offsetX:void 0,g=d.label?(d.label.negY?-1:1)*d.label.offsetY:void 0,L=G(d.evolution,`Pipeline component "${d.name}" evolution`);o.addNode(m,d.name,L,r,"pipeline-component",v,g),o.addPipelineComponent(e.parent,m)})}),a.links.forEach(e=>{const p=!!e.arrow&&(e.arrow.includes("-.->")||e.arrow.includes(".-."));let r=tt(e.fromPort)??tt(e.toPort);const{flow:d,label:m}=Dt(e.arrow);!r&&d&&(r=d);const v=e.linkLabel,g=m??v;o.addLink(o.resolveNodeId(e.from),o.resolveNodeId(e.to),p,g,r)}),a.evolves.forEach(e=>{const p=o.getNode(e.component);if((p==null?void 0:p.y)!==void 0){const r=G(e.target,`Evolve target for "${e.component}"`);o.addTrend(e.component,r,p.y)}}),a.annotations.length>0){const e=a.annotations[0],p=E(e.x,e.y,"Annotations box");o.setAnnotationsBox(p.x,p.y)}a.annotation.forEach(e=>{const p=E(e.x,e.y,`Annotation ${e.number}`);o.addAnnotation(e.number,[{x:p.x,y:p.y}],e.text)}),a.accelerators.forEach(e=>{const p=E(e.x,e.y,`Accelerator "${e.name}"`);o.addAccelerator(e.name,p.x,p.y)}),a.deaccelerators.forEach(e=>{const p=E(e.x,e.y,`Deaccelerator "${e.name}"`);o.addDeaccelerator(e.name,p.x,p.y)})},"populateDb"),at={parser:{yy:void 0},parse:y(async a=>{var p;const o=await Wt("wardley",a);et.debug(o);const e=(p=at.parser)==null?void 0:p.yy;if(!e||typeof e.addNode!="function")throw new Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Gt(o,e)},"parse")},I,qt=(I=class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}addNode(o){const e=this.nodes.get(o.id)??{id:o.id,label:o.label},p={...e,...o,className:o.className??e.className,labelOffsetX:o.labelOffsetX??e.labelOffsetX,labelOffsetY:o.labelOffsetY??e.labelOffsetY};this.nodes.set(o.id,p)}addLink(o){this.links.push(o)}addTrend(o){this.trends.set(o.nodeId,o)}startPipeline(o){this.pipelines.set(o,{nodeId:o,componentIds:[]});const e=this.nodes.get(o);e&&(e.isPipelineParent=!0)}addPipelineComponent(o,e){const p=this.pipelines.get(o);p&&p.componentIds.push(e);const r=this.nodes.get(e);r&&(r.inPipeline=!0)}addAnnotation(o){this.annotations.push(o)}addNote(o){this.notes.push(o)}addAccelerator(o){this.accelerators.push(o)}addDeaccelerator(o){this.deaccelerators.push(o)}setAnnotationsBox(o,e){this.annotationsBox={x:o,y:e}}setAxes(o){this.axes={...this.axes,...o}}setSize(o,e){this.size={width:o,height:e}}getNode(o){return this.nodes.get(o)}resolveNodeId(o){if(this.nodes.has(o))return o;for(const[e,p]of this.nodes)if(p.label===o)return e;return o}build(){const o=[];for(const e of this.nodes.values()){if(typeof e.x!="number"||typeof e.y!="number")throw new Error(`Node "${e.label}" is missing coordinates`);o.push(e)}return{nodes:o,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}},y(I,"WardleyBuilder"),I),b=new qt;function rt(){return V()["wardley-beta"]}y(rt,"getConfig");function ot(a,o,e,p,r,d,m,v,g){b.addNode({id:a,label:o,x:e,y:p,className:r,labelOffsetX:d,labelOffsetY:m,inertia:v,sourceStrategy:g})}y(ot,"addNode");function st(a,o,e=!1,p,r){b.addLink({source:a,target:o,dashed:e,label:p,flow:r})}y(st,"addLink");function nt(a,o,e){b.addTrend({nodeId:a,targetX:o,targetY:e})}y(nt,"addTrend");function it(a,o,e){b.addAnnotation({number:a,coordinates:o,text:e})}y(it,"addAnnotation");function dt(a,o,e){b.addNote({text:a,x:o,y:e})}y(dt,"addNote");function lt(a,o,e){b.addAccelerator({name:a,x:o,y:e})}y(lt,"addAccelerator");function ct(a,o,e){b.addDeaccelerator({name:a,x:o,y:e})}y(ct,"addDeaccelerator");function pt(a,o){b.setAnnotationsBox(a,o)}y(pt,"setAnnotationsBox");function ht(a,o){b.setSize(a,o)}y(ht,"setSize");function xt(a){b.startPipeline(a)}y(xt,"startPipeline");function ft(a,o){b.addPipelineComponent(a,o)}y(ft,"addPipelineComponent");function gt(a){b.setAxes(a)}y(gt,"updateAxes");function ut(a){return b.getNode(a)}y(ut,"getNode");function yt(a){return b.resolveNodeId(a)}y(yt,"resolveNodeId");function mt(){return b.build()}y(mt,"getWardleyData");function wt(){b.clear(),Ot()}y(wt,"clear");var Ht={getConfig:rt,addNode:ot,addLink:st,addTrend:nt,addAnnotation:it,addNote:dt,addAccelerator:lt,addDeaccelerator:ct,setAnnotationsBox:pt,setSize:ht,startPipeline:xt,addPipelineComponent:ft,updateAxes:gt,getNode:ut,resolveNodeId:yt,getWardleyData:mt,clear:wt,setAccTitle:Yt,getAccTitle:Et,setDiagramTitle:Xt,getDiagramTitle:At,getAccDescription:Tt,setAccDescription:Lt},jt=["Genesis","Custom Built","Product","Commodity"],Vt=y(()=>{var o,e,p,r,d,m,v,g,L,M,k,N;const{themeVariables:a}=V();return{backgroundColor:((o=a.wardley)==null?void 0:o.backgroundColor)??a.background??"#fff",axisColor:((e=a.wardley)==null?void 0:e.axisColor)??"#000",axisTextColor:((p=a.wardley)==null?void 0:p.axisTextColor)??a.primaryTextColor??"#222",gridColor:((r=a.wardley)==null?void 0:r.gridColor)??"rgba(100, 100, 100, 0.2)",componentFill:((d=a.wardley)==null?void 0:d.componentFill)??"#fff",componentStroke:((m=a.wardley)==null?void 0:m.componentStroke)??"#000",componentLabelColor:((v=a.wardley)==null?void 0:v.componentLabelColor)??a.primaryTextColor??"#222",linkStroke:((g=a.wardley)==null?void 0:g.linkStroke)??"#000",evolutionStroke:((L=a.wardley)==null?void 0:L.evolutionStroke)??"#dc3545",annotationStroke:((M=a.wardley)==null?void 0:M.annotationStroke)??"#000",annotationTextColor:((k=a.wardley)==null?void 0:k.annotationTextColor)??a.primaryTextColor??"#222",annotationFill:((N=a.wardley)==null?void 0:N.annotationFill)??a.background??"#fff"}},"getTheme"),_t=y(()=>{const a=V()["wardley-beta"];return{width:(a==null?void 0:a.width)??900,height:(a==null?void 0:a.height)??600,padding:(a==null?void 0:a.padding)??48,nodeRadius:(a==null?void 0:a.nodeRadius)??6,nodeLabelOffset:(a==null?void 0:a.nodeLabelOffset)??8,axisFontSize:(a==null?void 0:a.axisFontSize)??12,labelFontSize:(a==null?void 0:a.labelFontSize)??10,showGrid:(a==null?void 0:a.showGrid)??!1,useMaxWidth:(a==null?void 0:a.useMaxWidth)??!0}},"getConfigValues"),Zt=y((a,o,e,p)=>{var J,K;et.debug(`Rendering Wardley map
1
+ import{p as zt}from"./chunk-JWPE2WC7-Daf2PmiF.js";import{s as Lt,g as Tt,o as At,n as Xt,a as Et,b as Yt,_ as y,E as It,y as Bt,A as Q,l as et,D as Ft,e as Rt,p as Ot,c as V}from"./mermaid.core-Csqy-TMM.js";import{p as Wt}from"./cynefin-VYW2F7L2-BL1D6Zap.js";import"./index-DqSR1Tzn.js";var G=y((a,o)=>{const e=a<=1?a*100:a;if(e<0||e>100)throw new Error(`${o} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${a}`);return e},"toPercent"),E=y((a,o,e)=>({x:G(o,`${e} evolution`),y:G(a,`${e} visibility`)}),"toCoordinates"),tt=y(a=>{if(a){if(a==="+<>")return"bidirectional";if(a==="+<")return"backward";if(a==="+>")return"forward"}},"getFlowFromPort"),Dt=y(a=>{if(!(a!=null&&a.startsWith("+")))return{};const o=/^\+'([^']*)'/.exec(a),e=o==null?void 0:o[1];return a.includes("<>")?{flow:"bidirectional",label:e}:a.includes("<")?{flow:"backward",label:e}:a.includes(">")?{flow:"forward",label:e}:{label:e}},"extractFlowFromArrow"),Gt=y((a,o)=>{if(zt(a,o),a.size&&o.setSize(a.size.width,a.size.height),a.evolution){const e=a.evolution.stages.map(r=>r.secondName?`${r.name.trim()} / ${r.secondName.trim()}`:r.name.trim()),p=a.evolution.stages.filter(r=>r.boundary!==void 0).map(r=>r.boundary);o.updateAxes({stages:e,stageBoundaries:p})}if(a.anchors.forEach(e=>{const p=E(e.visibility,e.evolution,`Anchor "${e.name}"`);o.addNode(e.name,e.name,p.x,p.y,"anchor")}),a.components.forEach(e=>{var v;const p=E(e.visibility,e.evolution,`Component "${e.name}"`),r=e.label?(e.label.negX?-1:1)*e.label.offsetX:void 0,d=e.label?(e.label.negY?-1:1)*e.label.offsetY:void 0,m=(v=e.decorator)==null?void 0:v.strategy;o.addNode(e.name,e.name,p.x,p.y,"component",r,d,e.inertia,m)}),a.notes.forEach(e=>{const p=E(e.visibility,e.evolution,`Note "${e.text}"`);o.addNote(e.text,p.x,p.y)}),a.pipelines.forEach(e=>{const p=o.getNode(e.parent);if(!p||typeof p.y!="number")throw new Error(`Pipeline "${e.parent}" must reference an existing component with coordinates.`);const r=p.y;o.startPipeline(e.parent),e.components.forEach(d=>{const m=`${e.parent}_${d.name}`,v=d.label?(d.label.negX?-1:1)*d.label.offsetX:void 0,g=d.label?(d.label.negY?-1:1)*d.label.offsetY:void 0,L=G(d.evolution,`Pipeline component "${d.name}" evolution`);o.addNode(m,d.name,L,r,"pipeline-component",v,g),o.addPipelineComponent(e.parent,m)})}),a.links.forEach(e=>{const p=!!e.arrow&&(e.arrow.includes("-.->")||e.arrow.includes(".-."));let r=tt(e.fromPort)??tt(e.toPort);const{flow:d,label:m}=Dt(e.arrow);!r&&d&&(r=d);const v=e.linkLabel,g=m??v;o.addLink(o.resolveNodeId(e.from),o.resolveNodeId(e.to),p,g,r)}),a.evolves.forEach(e=>{const p=o.getNode(e.component);if((p==null?void 0:p.y)!==void 0){const r=G(e.target,`Evolve target for "${e.component}"`);o.addTrend(e.component,r,p.y)}}),a.annotations.length>0){const e=a.annotations[0],p=E(e.x,e.y,"Annotations box");o.setAnnotationsBox(p.x,p.y)}a.annotation.forEach(e=>{const p=E(e.x,e.y,`Annotation ${e.number}`);o.addAnnotation(e.number,[{x:p.x,y:p.y}],e.text)}),a.accelerators.forEach(e=>{const p=E(e.x,e.y,`Accelerator "${e.name}"`);o.addAccelerator(e.name,p.x,p.y)}),a.deaccelerators.forEach(e=>{const p=E(e.x,e.y,`Deaccelerator "${e.name}"`);o.addDeaccelerator(e.name,p.x,p.y)})},"populateDb"),at={parser:{yy:void 0},parse:y(async a=>{var p;const o=await Wt("wardley",a);et.debug(o);const e=(p=at.parser)==null?void 0:p.yy;if(!e||typeof e.addNode!="function")throw new Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Gt(o,e)},"parse")},I,qt=(I=class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}addNode(o){const e=this.nodes.get(o.id)??{id:o.id,label:o.label},p={...e,...o,className:o.className??e.className,labelOffsetX:o.labelOffsetX??e.labelOffsetX,labelOffsetY:o.labelOffsetY??e.labelOffsetY};this.nodes.set(o.id,p)}addLink(o){this.links.push(o)}addTrend(o){this.trends.set(o.nodeId,o)}startPipeline(o){this.pipelines.set(o,{nodeId:o,componentIds:[]});const e=this.nodes.get(o);e&&(e.isPipelineParent=!0)}addPipelineComponent(o,e){const p=this.pipelines.get(o);p&&p.componentIds.push(e);const r=this.nodes.get(e);r&&(r.inPipeline=!0)}addAnnotation(o){this.annotations.push(o)}addNote(o){this.notes.push(o)}addAccelerator(o){this.accelerators.push(o)}addDeaccelerator(o){this.deaccelerators.push(o)}setAnnotationsBox(o,e){this.annotationsBox={x:o,y:e}}setAxes(o){this.axes={...this.axes,...o}}setSize(o,e){this.size={width:o,height:e}}getNode(o){return this.nodes.get(o)}resolveNodeId(o){if(this.nodes.has(o))return o;for(const[e,p]of this.nodes)if(p.label===o)return e;return o}build(){const o=[];for(const e of this.nodes.values()){if(typeof e.x!="number"||typeof e.y!="number")throw new Error(`Node "${e.label}" is missing coordinates`);o.push(e)}return{nodes:o,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}},y(I,"WardleyBuilder"),I),b=new qt;function rt(){return V()["wardley-beta"]}y(rt,"getConfig");function ot(a,o,e,p,r,d,m,v,g){b.addNode({id:a,label:o,x:e,y:p,className:r,labelOffsetX:d,labelOffsetY:m,inertia:v,sourceStrategy:g})}y(ot,"addNode");function st(a,o,e=!1,p,r){b.addLink({source:a,target:o,dashed:e,label:p,flow:r})}y(st,"addLink");function nt(a,o,e){b.addTrend({nodeId:a,targetX:o,targetY:e})}y(nt,"addTrend");function it(a,o,e){b.addAnnotation({number:a,coordinates:o,text:e})}y(it,"addAnnotation");function dt(a,o,e){b.addNote({text:a,x:o,y:e})}y(dt,"addNote");function lt(a,o,e){b.addAccelerator({name:a,x:o,y:e})}y(lt,"addAccelerator");function ct(a,o,e){b.addDeaccelerator({name:a,x:o,y:e})}y(ct,"addDeaccelerator");function pt(a,o){b.setAnnotationsBox(a,o)}y(pt,"setAnnotationsBox");function ht(a,o){b.setSize(a,o)}y(ht,"setSize");function xt(a){b.startPipeline(a)}y(xt,"startPipeline");function ft(a,o){b.addPipelineComponent(a,o)}y(ft,"addPipelineComponent");function gt(a){b.setAxes(a)}y(gt,"updateAxes");function ut(a){return b.getNode(a)}y(ut,"getNode");function yt(a){return b.resolveNodeId(a)}y(yt,"resolveNodeId");function mt(){return b.build()}y(mt,"getWardleyData");function wt(){b.clear(),Ot()}y(wt,"clear");var Ht={getConfig:rt,addNode:ot,addLink:st,addTrend:nt,addAnnotation:it,addNote:dt,addAccelerator:lt,addDeaccelerator:ct,setAnnotationsBox:pt,setSize:ht,startPipeline:xt,addPipelineComponent:ft,updateAxes:gt,getNode:ut,resolveNodeId:yt,getWardleyData:mt,clear:wt,setAccTitle:Yt,getAccTitle:Et,setDiagramTitle:Xt,getDiagramTitle:At,getAccDescription:Tt,setAccDescription:Lt},jt=["Genesis","Custom Built","Product","Commodity"],Vt=y(()=>{var o,e,p,r,d,m,v,g,L,M,k,N;const{themeVariables:a}=V();return{backgroundColor:((o=a.wardley)==null?void 0:o.backgroundColor)??a.background??"#fff",axisColor:((e=a.wardley)==null?void 0:e.axisColor)??"#000",axisTextColor:((p=a.wardley)==null?void 0:p.axisTextColor)??a.primaryTextColor??"#222",gridColor:((r=a.wardley)==null?void 0:r.gridColor)??"rgba(100, 100, 100, 0.2)",componentFill:((d=a.wardley)==null?void 0:d.componentFill)??"#fff",componentStroke:((m=a.wardley)==null?void 0:m.componentStroke)??"#000",componentLabelColor:((v=a.wardley)==null?void 0:v.componentLabelColor)??a.primaryTextColor??"#222",linkStroke:((g=a.wardley)==null?void 0:g.linkStroke)??"#000",evolutionStroke:((L=a.wardley)==null?void 0:L.evolutionStroke)??"#dc3545",annotationStroke:((M=a.wardley)==null?void 0:M.annotationStroke)??"#000",annotationTextColor:((k=a.wardley)==null?void 0:k.annotationTextColor)??a.primaryTextColor??"#222",annotationFill:((N=a.wardley)==null?void 0:N.annotationFill)??a.background??"#fff"}},"getTheme"),_t=y(()=>{const a=V()["wardley-beta"];return{width:(a==null?void 0:a.width)??900,height:(a==null?void 0:a.height)??600,padding:(a==null?void 0:a.padding)??48,nodeRadius:(a==null?void 0:a.nodeRadius)??6,nodeLabelOffset:(a==null?void 0:a.nodeLabelOffset)??8,axisFontSize:(a==null?void 0:a.axisFontSize)??12,labelFontSize:(a==null?void 0:a.labelFontSize)??10,showGrid:(a==null?void 0:a.showGrid)??!1,useMaxWidth:(a==null?void 0:a.useMaxWidth)??!0}},"getConfigValues"),Zt=y((a,o,e,p)=>{var J,K;et.debug(`Rendering Wardley map
2
2
  `+a);const r=_t(),d=Vt(),m=r.nodeRadius*1.6,v=p.db,g=v.getWardleyData(),L=v.getDiagramTitle(),M=((J=g.size)==null?void 0:J.width)??r.width,k=((K=g.size)==null?void 0:K.height)??r.height,N=Ft(o);N.selectAll("*").remove(),Rt(N,k,M,r.useMaxWidth),N.attr("viewBox",`0 0 ${M} ${k}`);const P=N.append("g").attr("class","wardley-map"),q=N.append("defs");q.append("marker").attr("id",`arrow-${o}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.evolutionStroke).attr("stroke","none"),q.append("marker").attr("id",`link-arrow-end-${o}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.linkStroke).attr("stroke","none"),q.append("marker").attr("id",`link-arrow-start-${o}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",d.linkStroke).attr("stroke","none"),P.append("rect").attr("class","wardley-background").attr("width",M).attr("height",k).attr("fill",d.backgroundColor);const B=M-r.padding*2,F=k-r.padding*2;L&&P.append("text").attr("class","wardley-title").attr("x",M/2).attr("y",r.padding/2).attr("fill",d.axisTextColor).attr("font-size",r.axisFontSize*1.05).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(L);const T=y(t=>r.padding+t/100*B,"projectX"),A=y(t=>k-r.padding-t/100*F,"projectY"),O=P.append("g").attr("class","wardley-axes");O.append("line").attr("x1",r.padding).attr("x2",M-r.padding).attr("y1",k-r.padding).attr("y2",k-r.padding).attr("stroke",d.axisColor).attr("stroke-width",1),O.append("line").attr("x1",r.padding).attr("x2",r.padding).attr("y1",r.padding).attr("y2",k-r.padding).attr("stroke",d.axisColor).attr("stroke-width",1);const kt=g.axes.xLabel??"Evolution",bt=g.axes.yLabel??"Visibility";O.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",r.padding+B/2).attr("y",k-r.padding/4).attr("fill",d.axisTextColor).attr("font-size",r.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(kt),O.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",r.padding/3).attr("y",r.padding+F/2).attr("fill",d.axisTextColor).attr("font-size",r.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${r.padding/3} ${r.padding+F/2})`).text(bt);const R=g.axes.stages&&g.axes.stages.length>0?g.axes.stages:jt;if(R.length>0){const t=P.append("g").attr("class","wardley-stages"),n=g.axes.stageBoundaries,s=[];if(n&&n.length===R.length){let i=0;n.forEach(h=>{s.push({start:i,end:h}),i=h})}else{const i=1/R.length;R.forEach((h,l)=>{s.push({start:l*i,end:(l+1)*i})})}R.forEach((i,h)=>{const l=s[h],x=r.padding+l.start*B,f=r.padding+l.end*B,u=(x+f)/2;h>0&&t.append("line").attr("x1",x).attr("x2",x).attr("y1",r.padding).attr("y2",k-r.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),t.append("text").attr("class","wardley-stage-label").attr("x",u).attr("y",k-r.padding/1.5).attr("fill",d.axisTextColor).attr("font-size",r.axisFontSize-2).attr("text-anchor","middle").text(i)})}if(r.showGrid){const t=P.append("g").attr("class","wardley-grid");for(let n=1;n<4;n++){const s=n/4,i=r.padding+B*s;t.append("line").attr("x1",i).attr("x2",i).attr("y1",r.padding).attr("y2",k-r.padding).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6"),t.append("line").attr("x1",r.padding).attr("x2",M-r.padding).attr("y1",k-r.padding-F*s).attr("y2",k-r.padding-F*s).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6")}}const c=new Map;if(g.nodes.forEach(t=>{c.set(t.id,{x:T(t.x),y:A(t.y),node:t})}),g.pipelines.length>0){const t=P.append("g").attr("class","wardley-pipelines"),n=P.append("g").attr("class","wardley-pipeline-links");g.pipelines.forEach(s=>{if(s.componentIds.length===0)return;const i=s.componentIds.map(f=>({id:f,pos:c.get(f),node:g.nodes.find(u=>u.id===f)})).filter(f=>f.pos&&f.node).sort((f,u)=>f.node.x-u.node.x);for(let f=0;f<i.length-1;f++){const u=i[f],w=i[f+1];n.append("line").attr("class","wardley-pipeline-evolution-link").attr("x1",u.pos.x).attr("y1",u.pos.y).attr("x2",w.pos.x).attr("y2",w.pos.y).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4")}let h=1/0,l=-1/0,x=0;if(s.componentIds.forEach(f=>{const u=c.get(f);u&&(h=Math.min(h,u.x),l=Math.max(l,u.x),x=u.y)}),h!==1/0&&l!==-1/0){const u=r.nodeRadius*4,w=x-u/2,S=c.get(s.nodeId);if(S){const z=(h+l)/2;S.x=z,S.y=w-m/6}t.append("rect").attr("class","wardley-pipeline-box").attr("x",h-15).attr("y",w).attr("width",l-h+15*2).attr("height",u).attr("fill","none").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}const _=P.append("g").attr("class","wardley-links"),Z=new Map;g.pipelines.forEach(t=>{Z.set(t.nodeId,new Set(t.componentIds))});const U=g.links.filter(t=>{if(!c.has(t.source)||!c.has(t.target))return!1;const n=Z.get(t.target);return!(n!=null&&n.has(t.source))});_.selectAll("line").data(U).enter().append("line").attr("class",t=>`wardley-link${t.dashed?" wardley-link--dashed":""}`).attr("x1",t=>{const n=c.get(t.source),s=c.get(t.target),h=g.nodes.find(u=>u.id===t.source).isPipelineParent?m/Math.sqrt(2):r.nodeRadius,l=s.x-n.x,x=s.y-n.y,f=Math.sqrt(l*l+x*x);return n.x+l/f*h}).attr("y1",t=>{const n=c.get(t.source),s=c.get(t.target),h=g.nodes.find(u=>u.id===t.source).isPipelineParent?m/Math.sqrt(2):r.nodeRadius,l=s.x-n.x,x=s.y-n.y,f=Math.sqrt(l*l+x*x);return n.y+x/f*h}).attr("x2",t=>{const n=c.get(t.source),s=c.get(t.target),h=g.nodes.find(u=>u.id===t.target).isPipelineParent?m/Math.sqrt(2):r.nodeRadius,l=n.x-s.x,x=n.y-s.y,f=Math.sqrt(l*l+x*x);return s.x+l/f*h}).attr("y2",t=>{const n=c.get(t.source),s=c.get(t.target),h=g.nodes.find(u=>u.id===t.target).isPipelineParent?m/Math.sqrt(2):r.nodeRadius,l=n.x-s.x,x=n.y-s.y,f=Math.sqrt(l*l+x*x);return s.y+x/f*h}).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",t=>t.dashed?"6 6":null).attr("marker-end",t=>t.flow==="forward"||t.flow==="bidirectional"?`url(#link-arrow-end-${o})`:null).attr("marker-start",t=>t.flow==="backward"||t.flow==="bidirectional"?`url(#link-arrow-start-${o})`:null),_.selectAll("text").data(U.filter(t=>t.label)).enter().append("text").attr("class","wardley-link-label").attr("x",t=>{const n=c.get(t.source),s=c.get(t.target),i=(n.x+s.x)/2,h=s.y-n.y,l=s.x-n.x,x=Math.sqrt(l*l+h*h),f=8,u=h/x;return i+u*f}).attr("y",t=>{const n=c.get(t.source),s=c.get(t.target),i=(n.y+s.y)/2,h=s.x-n.x,l=s.y-n.y,x=Math.sqrt(h*h+l*l),f=8,u=-h/x;return i+u*f}).attr("fill",d.axisTextColor).attr("font-size",r.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",t=>{const n=c.get(t.source),s=c.get(t.target),i=(n.x+s.x)/2,h=(n.y+s.y)/2,l=s.x-n.x,x=s.y-n.y,f=Math.sqrt(l*l+x*x),u=8,w=x/f,S=-l/f,z=i+w*u,W=h+S*u;let Y=Math.atan2(x,l)*180/Math.PI;return(Y>90||Y<-90)&&(Y+=180),`rotate(${Y} ${z} ${W})`}).text(t=>t.label);const $t=P.append("g").attr("class","wardley-trends"),vt=g.trends.map(t=>{const n=c.get(t.nodeId);if(!n)return null;const s=T(t.targetX),i=A(t.targetY),h=s-n.x,l=i-n.y,x=Math.sqrt(h*h+l*l),f=r.nodeRadius+2,u=x>f?s-h/x*f:s,w=x>f?i-l/x*f:i;return{origin:n,targetX:s,targetY:i,adjustedX2:u,adjustedY2:w}}).filter(t=>t!==null);$t.selectAll("line").data(vt).enter().append("line").attr("class","wardley-trend").attr("x1",t=>t.origin.x).attr("y1",t=>t.origin.y).attr("x2",t=>t.adjustedX2).attr("y2",t=>t.adjustedY2).attr("stroke",d.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${o})`);const C=P.append("g").attr("class","wardley-nodes").selectAll("g").data(g.nodes).enter().append("g").attr("class",t=>["wardley-node",t.className?`wardley-node--${t.className}`:""].filter(Boolean).join(" "));C.filter(t=>t.sourceStrategy==="outsource").append("circle").attr("class","wardley-outsource-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",r.nodeRadius*2).attr("fill","#666").attr("stroke",d.componentStroke).attr("stroke-width",1),C.filter(t=>t.sourceStrategy==="buy").append("circle").attr("class","wardley-buy-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",r.nodeRadius*2).attr("fill","#ccc").attr("stroke",d.componentStroke).attr("stroke-width",1),C.filter(t=>t.sourceStrategy==="build").append("circle").attr("class","wardley-build-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",r.nodeRadius*2).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);const X=C.filter(t=>t.sourceStrategy==="market");X.append("circle").attr("class","wardley-market-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",r.nodeRadius*2).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),C.filter(t=>!t.isPipelineParent&&t.sourceStrategy!=="market"&&t.className!=="anchor").append("circle").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",r.nodeRadius).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1);const H=r.nodeRadius*.7,$=r.nodeRadius*1.2;if(X.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x).attr("y1",t=>c.get(t.id).y-$).attr("x2",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("y2",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),X.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("y1",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("x2",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("y2",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),X.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("y1",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("x2",t=>c.get(t.id).x).attr("y2",t=>c.get(t.id).y-$).attr("stroke",d.componentStroke).attr("stroke-width",1),X.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y-$).attr("r",H).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),X.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("cy",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("r",H).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),X.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("cy",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("r",H).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),C.filter(t=>t.isPipelineParent===!0).append("rect").attr("x",t=>c.get(t.id).x-m/2).attr("y",t=>c.get(t.id).y-m/2).attr("width",m).attr("height",m).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1),C.filter(t=>t.inertia===!0).append("line").attr("class","wardley-inertia").attr("x1",t=>{const n=c.get(t.id);let s=t.isPipelineParent?m/2+15:r.nodeRadius+15;return t.sourceStrategy&&(s+=r.nodeRadius+10),n.x+s}).attr("y1",t=>{const n=c.get(t.id),s=t.isPipelineParent?m:r.nodeRadius*2;return n.y-s/2}).attr("x2",t=>{const n=c.get(t.id);let s=t.isPipelineParent?m/2+15:r.nodeRadius+15;return t.sourceStrategy&&(s+=r.nodeRadius+10),n.x+s}).attr("y2",t=>{const n=c.get(t.id),s=t.isPipelineParent?m:r.nodeRadius*2;return n.y+s/2}).attr("stroke",d.componentStroke).attr("stroke-width",6),C.append("text").attr("x",t=>{const n=c.get(t.id);if(t.className==="anchor")return t.labelOffsetX!==void 0?n.x+t.labelOffsetX:n.x;let s=r.nodeLabelOffset;t.sourceStrategy&&t.labelOffsetX===void 0&&(s+=10);const i=t.labelOffsetX??s;return n.x+i}).attr("y",t=>{const n=c.get(t.id);if(t.className==="anchor")return t.labelOffsetY!==void 0?n.y+t.labelOffsetY:n.y-3;let s=-r.nodeLabelOffset;t.sourceStrategy&&t.labelOffsetY===void 0&&(s-=10);const i=t.labelOffsetY??s;return n.y+i}).attr("class","wardley-node-label").attr("fill",t=>t.className==="evolved"?d.evolutionStroke:t.className==="anchor"?"#000":d.componentLabelColor).attr("font-size",r.labelFontSize).attr("font-weight",t=>t.className==="anchor"?"bold":"normal").attr("text-anchor",t=>t.className==="anchor"?"middle":"start").attr("dominant-baseline",t=>t.className==="anchor"?"middle":"auto").text(t=>t.label),g.annotations.length>0){const t=P.append("g").attr("class","wardley-annotations");if(g.annotations.forEach(n=>{const s=n.coordinates.map(i=>({x:T(i.x),y:A(i.y)}));if(s.length>1)for(let i=0;i<s.length-1;i++)t.append("line").attr("class","wardley-annotation-line").attr("x1",s[i].x).attr("y1",s[i].y).attr("x2",s[i+1].x).attr("y2",s[i+1].y).attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("stroke-dasharray","4 4");s.forEach(i=>{const h=t.append("g").attr("class","wardley-annotation");h.append("circle").attr("cx",i.x).attr("cy",i.y).attr("r",10).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5),h.append("text").attr("x",i.x).attr("y",i.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(n.number)})}),g.annotationsBox){let n=T(g.annotationsBox.x),s=A(g.annotationsBox.y);const i=10,h=16,l=11,x=t.append("g").attr("class","wardley-annotations-box"),f=[...g.annotations].filter(w=>w.text).sort((w,S)=>w.number-S.number),u=[];if(f.forEach((w,S)=>{const z=x.append("text").attr("x",n+i).attr("y",s+i+(S+1)*h).attr("font-size",l).attr("fill",d.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${w.number}. ${w.text}`);u.push(z)}),u.length>0){let w=0,S=0;u.forEach(j=>{const D=j.node(),Nt=D.getComputedTextLength();w=Math.max(w,Nt);const Ct=D.getBBox();S=Math.max(S,Ct.height)});const z=w+i*2+105,W=f.length*h+i*2+S/2,Y=r.padding,Pt=M-r.padding-z,St=r.padding,Mt=k-r.padding-W;n=Math.max(Y,Math.min(n,Pt)),s=Math.max(St,Math.min(s,Mt)),u.forEach((j,D)=>{j.attr("x",n+i).attr("y",s+i+(D+1)*h)}),x.insert("rect","text").attr("x",n).attr("y",s).attr("width",z).attr("height",W).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(g.notes.length>0){const t=P.append("g").attr("class","wardley-notes");g.notes.forEach(n=>{const s=T(n.x),i=A(n.y);t.append("text").attr("x",s).attr("y",i).attr("text-anchor","start").attr("font-size",11).attr("fill",d.axisTextColor).attr("font-weight","bold").text(n.text)})}if(g.accelerators.length>0){const t=P.append("g").attr("class","wardley-accelerators");g.accelerators.forEach(n=>{const s=T(n.x),i=A(n.y),h=60,l=30,x=20,f=`
3
3
  M ${s} ${i-l/2}
4
4
  L ${s+h-x} ${i-l/2}
@@ -1,4 +1,4 @@
1
- import{s as xi,g as di,o as Yt,n as fi,a as pi,b as mi,_ as n,l as Nt,D as yi,e as bi,p as Ai,y as kt,i as wi,A as Ht,B as Ci,E as Si,ay as Ri,O as Ot}from"./mermaid.core-D_mctH75.js";import{i as _i}from"./init-Gi6I4Gst.js";import{o as ki}from"./ordinal-Cboi1Yqb.js";import{l as Wt}from"./linear-pbF_-XZV.js";import"./index-CE7eCSFC.js";import"./defaultLocale-DX6XiGOO.js";function Ti(e,t,i){e=+e,t=+t,i=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+i;for(var s=-1,a=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(a);++s<a;)o[s]=e+s*i;return o}function wt(){var e=ki().unknown(void 0),t=e.domain,i=e.range,s=0,a=1,o,l,p=!1,d=0,k=0,T=.5;delete e.unknown;function _(){var b=t().length,E=a<s,L=E?a:s,P=E?s:a;o=(P-L)/Math.max(1,b-d+k*2),p&&(o=Math.floor(o)),L+=(P-L-o*(b-d))*T,l=o*(1-d),p&&(L=Math.round(L),l=Math.round(l));var I=Ti(b).map(function(m){return L+o*m});return i(E?I.reverse():I)}return e.domain=function(b){return arguments.length?(t(b),_()):t()},e.range=function(b){return arguments.length?([s,a]=b,s=+s,a=+a,_()):[s,a]},e.rangeRound=function(b){return[s,a]=b,s=+s,a=+a,p=!0,_()},e.bandwidth=function(){return l},e.step=function(){return o},e.round=function(b){return arguments.length?(p=!!b,_()):p},e.padding=function(b){return arguments.length?(d=Math.min(1,k=+b),_()):d},e.paddingInner=function(b){return arguments.length?(d=Math.min(1,b),_()):d},e.paddingOuter=function(b){return arguments.length?(k=+b,_()):k},e.align=function(b){return arguments.length?(T=Math.max(0,Math.min(1,b)),_()):T},e.copy=function(){return wt(t(),[s,a]).round(p).paddingInner(d).paddingOuter(k).align(T)},_i.apply(_(),arguments)}var Ct=function(){var e=n(function(F,h,u,g){for(u=u||{},g=F.length;g--;u[F[g]]=h);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],a=[1,5],o=[1,6],l=[1,7],p=[1,5,10,12,14,16,18,19,21,23,36,37,38],d=[1,25],k=[1,26],T=[1,28],_=[1,29],b=[1,30],E=[1,31],L=[1,32],P=[1,33],I=[1,34],m=[1,35],D=[1,36],c=[1,37],B=[1,43],W=[1,42],X=[1,47],Y=[1,50],S=[1,10,12,14,16,18,19,21,23,36,37,38],H=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],A=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],w=[1,65],V=[26,28],R={trace:n(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:n(function(h,u,g,x,C,r,rt){var f=r.length-1;switch(C){case 5:x.setOrientation(r[f]);break;case 9:x.setDiagramTitle(r[f].text.trim());break;case 12:x.setLineData({text:"",type:"text"},r[f]);break;case 13:x.setLineData(r[f-1],r[f]);break;case 14:x.setBarData({text:"",type:"text"},r[f]);break;case 15:x.setBarData(r[f-1],r[f]);break;case 16:this.$=r[f].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=r[f].trim(),x.setAccDescription(this.$);break;case 19:this.$=r[f-1];break;case 20:case 30:this.$=[r[f-2],...r[f]];break;case 21:case 31:this.$=[r[f]];break;case 22:this.$={value:Number(r[f-1]),label:r[f]};break;case 23:this.$={value:Number(r[f]),label:""};break;case 24:x.setXAxisTitle(r[f]);break;case 25:x.setXAxisTitle(r[f-1]);break;case 26:x.setXAxisTitle({type:"text",text:""});break;case 27:x.setXAxisBand(r[f]);break;case 28:x.setXAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 29:this.$=r[f-1];break;case 32:x.setYAxisTitle(r[f]);break;case 33:x.setYAxisTitle(r[f-1]);break;case 34:x.setYAxisTitle({type:"text",text:""});break;case 35:x.setYAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 39:this.$={text:r[f],type:"text"};break;case 40:this.$={text:r[f],type:"text"};break;case 41:this.$={text:r[f],type:"markdown"};break;case 42:this.$=r[f];break;case 43:this.$=r[f-1]+""+r[f];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,36:a,37:o,38:l}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,36:a,37:o,38:l}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:a,37:o,38:l}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,36]),e(p,[2,37]),e(p,[2,38]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,36:a,37:o,38:l}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,36:a,37:o,38:l}),{11:23,30:d,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{11:39,13:38,24:B,29:W,30:d,31:40,32:41,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{11:45,15:44,29:X,30:d,35:46,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{11:49,17:48,24:Y,30:d,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{11:52,17:51,24:Y,30:d,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{20:[1,53]},{22:[1,54]},e(S,[2,18]),{1:[2,2]},e(S,[2,8]),e(S,[2,9]),e(H,[2,39],{41:55,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c}),e(H,[2,40]),e(H,[2,41]),e(A,[2,42]),e(A,[2,44]),e(A,[2,45]),e(A,[2,46]),e(A,[2,47]),e(A,[2,48]),e(A,[2,49]),e(A,[2,50]),e(A,[2,51]),e(A,[2,52]),e(A,[2,53]),e(S,[2,10]),e(S,[2,24],{32:41,31:56,24:B,29:W}),e(S,[2,26]),e(S,[2,27]),{33:[1,57]},{11:59,30:d,34:58,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},e(S,[2,11]),e(S,[2,32],{35:60,29:X}),e(S,[2,34]),{33:[1,61]},e(S,[2,12]),{17:62,24:Y},{25:63,27:64,29:w},e(S,[2,14]),{17:66,24:Y},e(S,[2,16]),e(S,[2,17]),e(A,[2,43]),e(S,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},e(S,[2,33]),{29:[1,70]},e(S,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},e(V,[2,23],{30:[1,73]}),e(S,[2,15]),e(S,[2,28]),e(S,[2,29]),{11:59,30:d,34:74,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},e(S,[2,35]),e(S,[2,19]),{25:75,27:64,29:w},e(V,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:n(function(h,u){if(u.recoverable)this.trace(h);else{var g=new Error(h);throw g.hash=u,g}},"parseError"),parse:n(function(h){var u=this,g=[0],x=[],C=[null],r=[],rt=this.table,f="",gt=0,Mt=0,li=2,zt=1,ci=r.slice.call(arguments,1),v=Object.create(this.lexer),$={yy:{}};for(var mt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,mt)&&($.yy[mt]=this.yy[mt]);v.setInput(h,$.yy),$.yy.lexer=v,$.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var yt=v.yylloc;r.push(yt);var ui=v.options&&v.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function gi(z){g.length=g.length-2*z,C.length=C.length-z,r.length=r.length-z}n(gi,"popStack");function Bt(){var z;return z=x.pop()||v.lex()||zt,typeof z!="number"&&(z instanceof Array&&(x=z,z=x.pop()),z=u.symbols_[z]||z),z}n(Bt,"lex");for(var M,U,O,bt,G={},xt,N,Vt,dt;;){if(U=g[g.length-1],this.defaultActions[U]?O=this.defaultActions[U]:((M===null||typeof M>"u")&&(M=Bt()),O=rt[U]&&rt[U][M]),typeof O>"u"||!O.length||!O[0]){var At="";dt=[];for(xt in rt[U])this.terminals_[xt]&&xt>li&&dt.push("'"+this.terminals_[xt]+"'");v.showPosition?At="Parse error on line "+(gt+1)+`:
1
+ import{s as xi,g as di,o as Yt,n as fi,a as pi,b as mi,_ as n,l as Nt,D as yi,e as bi,p as Ai,y as kt,i as wi,A as Ht,B as Ci,E as Si,ay as Ri,O as Ot}from"./mermaid.core-Csqy-TMM.js";import{i as _i}from"./init-Gi6I4Gst.js";import{o as ki}from"./ordinal-Cboi1Yqb.js";import{l as Wt}from"./linear-DuFTppiB.js";import"./index-DqSR1Tzn.js";import"./defaultLocale-DX6XiGOO.js";function Ti(e,t,i){e=+e,t=+t,i=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+i;for(var s=-1,a=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(a);++s<a;)o[s]=e+s*i;return o}function wt(){var e=ki().unknown(void 0),t=e.domain,i=e.range,s=0,a=1,o,l,p=!1,d=0,k=0,T=.5;delete e.unknown;function _(){var b=t().length,E=a<s,L=E?a:s,P=E?s:a;o=(P-L)/Math.max(1,b-d+k*2),p&&(o=Math.floor(o)),L+=(P-L-o*(b-d))*T,l=o*(1-d),p&&(L=Math.round(L),l=Math.round(l));var I=Ti(b).map(function(m){return L+o*m});return i(E?I.reverse():I)}return e.domain=function(b){return arguments.length?(t(b),_()):t()},e.range=function(b){return arguments.length?([s,a]=b,s=+s,a=+a,_()):[s,a]},e.rangeRound=function(b){return[s,a]=b,s=+s,a=+a,p=!0,_()},e.bandwidth=function(){return l},e.step=function(){return o},e.round=function(b){return arguments.length?(p=!!b,_()):p},e.padding=function(b){return arguments.length?(d=Math.min(1,k=+b),_()):d},e.paddingInner=function(b){return arguments.length?(d=Math.min(1,b),_()):d},e.paddingOuter=function(b){return arguments.length?(k=+b,_()):k},e.align=function(b){return arguments.length?(T=Math.max(0,Math.min(1,b)),_()):T},e.copy=function(){return wt(t(),[s,a]).round(p).paddingInner(d).paddingOuter(k).align(T)},_i.apply(_(),arguments)}var Ct=function(){var e=n(function(F,h,u,g){for(u=u||{},g=F.length;g--;u[F[g]]=h);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],a=[1,5],o=[1,6],l=[1,7],p=[1,5,10,12,14,16,18,19,21,23,36,37,38],d=[1,25],k=[1,26],T=[1,28],_=[1,29],b=[1,30],E=[1,31],L=[1,32],P=[1,33],I=[1,34],m=[1,35],D=[1,36],c=[1,37],B=[1,43],W=[1,42],X=[1,47],Y=[1,50],S=[1,10,12,14,16,18,19,21,23,36,37,38],H=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],A=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],w=[1,65],V=[26,28],R={trace:n(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:n(function(h,u,g,x,C,r,rt){var f=r.length-1;switch(C){case 5:x.setOrientation(r[f]);break;case 9:x.setDiagramTitle(r[f].text.trim());break;case 12:x.setLineData({text:"",type:"text"},r[f]);break;case 13:x.setLineData(r[f-1],r[f]);break;case 14:x.setBarData({text:"",type:"text"},r[f]);break;case 15:x.setBarData(r[f-1],r[f]);break;case 16:this.$=r[f].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=r[f].trim(),x.setAccDescription(this.$);break;case 19:this.$=r[f-1];break;case 20:case 30:this.$=[r[f-2],...r[f]];break;case 21:case 31:this.$=[r[f]];break;case 22:this.$={value:Number(r[f-1]),label:r[f]};break;case 23:this.$={value:Number(r[f]),label:""};break;case 24:x.setXAxisTitle(r[f]);break;case 25:x.setXAxisTitle(r[f-1]);break;case 26:x.setXAxisTitle({type:"text",text:""});break;case 27:x.setXAxisBand(r[f]);break;case 28:x.setXAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 29:this.$=r[f-1];break;case 32:x.setYAxisTitle(r[f]);break;case 33:x.setYAxisTitle(r[f-1]);break;case 34:x.setYAxisTitle({type:"text",text:""});break;case 35:x.setYAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 39:this.$={text:r[f],type:"text"};break;case 40:this.$={text:r[f],type:"text"};break;case 41:this.$={text:r[f],type:"markdown"};break;case 42:this.$=r[f];break;case 43:this.$=r[f-1]+""+r[f];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,36:a,37:o,38:l}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,36:a,37:o,38:l}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:a,37:o,38:l}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,36]),e(p,[2,37]),e(p,[2,38]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,36:a,37:o,38:l}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,36:a,37:o,38:l}),{11:23,30:d,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{11:39,13:38,24:B,29:W,30:d,31:40,32:41,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{11:45,15:44,29:X,30:d,35:46,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{11:49,17:48,24:Y,30:d,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{11:52,17:51,24:Y,30:d,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},{20:[1,53]},{22:[1,54]},e(S,[2,18]),{1:[2,2]},e(S,[2,8]),e(S,[2,9]),e(H,[2,39],{41:55,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c}),e(H,[2,40]),e(H,[2,41]),e(A,[2,42]),e(A,[2,44]),e(A,[2,45]),e(A,[2,46]),e(A,[2,47]),e(A,[2,48]),e(A,[2,49]),e(A,[2,50]),e(A,[2,51]),e(A,[2,52]),e(A,[2,53]),e(S,[2,10]),e(S,[2,24],{32:41,31:56,24:B,29:W}),e(S,[2,26]),e(S,[2,27]),{33:[1,57]},{11:59,30:d,34:58,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},e(S,[2,11]),e(S,[2,32],{35:60,29:X}),e(S,[2,34]),{33:[1,61]},e(S,[2,12]),{17:62,24:Y},{25:63,27:64,29:w},e(S,[2,14]),{17:66,24:Y},e(S,[2,16]),e(S,[2,17]),e(A,[2,43]),e(S,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},e(S,[2,33]),{29:[1,70]},e(S,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},e(V,[2,23],{30:[1,73]}),e(S,[2,15]),e(S,[2,28]),e(S,[2,29]),{11:59,30:d,34:74,39:24,40:k,41:27,42:T,43:_,44:b,45:E,46:L,47:P,48:I,49:m,50:D,51:c},e(S,[2,35]),e(S,[2,19]),{25:75,27:64,29:w},e(V,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:n(function(h,u){if(u.recoverable)this.trace(h);else{var g=new Error(h);throw g.hash=u,g}},"parseError"),parse:n(function(h){var u=this,g=[0],x=[],C=[null],r=[],rt=this.table,f="",gt=0,Mt=0,li=2,zt=1,ci=r.slice.call(arguments,1),v=Object.create(this.lexer),$={yy:{}};for(var mt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,mt)&&($.yy[mt]=this.yy[mt]);v.setInput(h,$.yy),$.yy.lexer=v,$.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var yt=v.yylloc;r.push(yt);var ui=v.options&&v.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function gi(z){g.length=g.length-2*z,C.length=C.length-z,r.length=r.length-z}n(gi,"popStack");function Bt(){var z;return z=x.pop()||v.lex()||zt,typeof z!="number"&&(z instanceof Array&&(x=z,z=x.pop()),z=u.symbols_[z]||z),z}n(Bt,"lex");for(var M,U,O,bt,G={},xt,N,Vt,dt;;){if(U=g[g.length-1],this.defaultActions[U]?O=this.defaultActions[U]:((M===null||typeof M>"u")&&(M=Bt()),O=rt[U]&&rt[U][M]),typeof O>"u"||!O.length||!O[0]){var At="";dt=[];for(xt in rt[U])this.terminals_[xt]&&xt>li&&dt.push("'"+this.terminals_[xt]+"'");v.showPosition?At="Parse error on line "+(gt+1)+`:
2
2
  `+v.showPosition()+`
3
3
  Expecting `+dt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":At="Parse error on line "+(gt+1)+": Unexpected "+(M==zt?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(At,{text:v.match,token:this.terminals_[M]||M,line:v.yylineno,loc:yt,expected:dt})}if(O[0]instanceof Array&&O.length>1)throw new Error("Parse Error: multiple actions possible at state: "+U+", token: "+M);switch(O[0]){case 1:g.push(M),C.push(v.yytext),r.push(v.yylloc),g.push(O[1]),M=null,Mt=v.yyleng,f=v.yytext,gt=v.yylineno,yt=v.yylloc;break;case 2:if(N=this.productions_[O[1]][1],G.$=C[C.length-N],G._$={first_line:r[r.length-(N||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(N||1)].first_column,last_column:r[r.length-1].last_column},ui&&(G._$.range=[r[r.length-(N||1)].range[0],r[r.length-1].range[1]]),bt=this.performAction.apply(G,[f,Mt,gt,$.yy,O[1],C,r].concat(ci)),typeof bt<"u")return bt;N&&(g=g.slice(0,-1*N*2),C=C.slice(0,-1*N),r=r.slice(0,-1*N)),g.push(this.productions_[O[1]][0]),C.push(G.$),r.push(G._$),Vt=rt[g[g.length-2]][g[g.length-1]],g.push(Vt);break;case 3:return!0}}return!0},"parse")},ot=function(){var F={EOF:1,parseError:n(function(u,g){if(this.yy.parser)this.yy.parser.parseError(u,g);else throw new Error(u)},"parseError"),setInput:n(function(h,u){return this.yy=u||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:n(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var u=h.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:n(function(h){var u=h.length,g=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===x.length?this.yylloc.first_column:0)+x[x.length-g.length].length-g[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:n(function(){return this._more=!0,this},"more"),reject:n(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:n(function(h){this.unput(this.match.slice(h))},"less"),pastInput:n(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:n(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:n(function(){var h=this.pastInput(),u=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
@@ -1 +1 @@
1
- const e={"planCard.heading":"計劃已就緒——下一步?","planCard.showPlan":"查看計劃","planCard.execute":"切換到建置模式並執行","planCard.keepPlanning":"繼續規劃","planCard.executedStatus":"已切換到建置模式——正在執行計劃。","planCard.dismissedStatus":"繼續保持規劃模式。","planCard.close":"關閉","planCard.loading":"載入中…","planCard.loadError":"無法載入計劃。","planCard.executePrompt":"請實作 PLAN.md 中的計劃,逐步執行。","agent_conversation.back":"返回","agent_conversation.message_count":"{name} - {count} 則訊息","agent_conversation.message_queued":"訊息已加入代理佇列","agent_conversation.no_messages":"暫無訊息","agent_conversation.no_messages_hint":"使用右下角按鈕向代理傳送訊息","agent_conversation.compose_button":"傳送訊息","agent_conversation.modal_title":"傳送訊息給 {name}","agent_conversation.reply_to_inbox":"完成後通知我","agent_conversation.urgent_interrupt_button":"傳送緊急中斷","agent_conversation.urgent_warning":"這將立即中斷代理目前的工作。再次點擊以確認。","agent_conversation.confirm_interrupt":"確認中斷","agent_conversation.priority":"優先級:","agent_conversation.priority_high":"高","agent_conversation.priority_normal":"普通","agent_conversation.priority_urgent":"緊急","agent_conversation.priority_urgent_confirm":"這將傳送緊急中斷,終止代理目前的工作。確定繼續嗎?","agent_conversation.priority_urgent_title":"傳送緊急中斷","agent_conversation.priority_urgent_hint":"緊急:這將立即中斷代理目前的工作","agent_conversation.interrupt_button":"中斷","agent_conversation.interrupt_sent":"已向代理傳送緊急中斷","agent_conversation.queue_hint":"訊息將在代理下次喚醒時處理","agent_conversation.refresh":"重新整理","agent_conversation.send_button":"傳送","agent_conversation.send_placeholder":"向代理的收件匣傳送訊息...","agent_conversation.sending":"傳送中","agent_conversation.title":"對話","confirm_dialog.cancel":"取消","confirm_dialog.confirm":"確認","agent_create.cancel":"取消","agent_create.configure_subtitle":"設定您的自主代理","agent_create.custom_model":"自訂模型...","agent_create.custom_model_hint":"輸入任何模型識別碼(例如 github-copilot/claude-opus-4.6、openai/gpt-4o)","agent_create.custom_model_placeholder":"輸入自訂模型識別碼(例如 provider/model-name)","agent_create.deselect_all":"取消全選","agent_create.display_name_hint":"在介面中顯示的易讀名稱","agent_create.display_name_label":"顯示名稱(可選)","agent_create.display_name_placeholder":"例如:我的開發代理","agent_create.dormant_mode":"以休眠模式啟動","agent_create.dormant_mode_desc":"代理啟動時不會處理 AGENTS.md。它會等待直到收到收件匣訊息。","agent_create.instructions_label":"代理指令 (AGENTS.md)","agent_create.instructions_optional":"(可選)","agent_create.instructions_hint":"代理的指令和上下文。如果設定了工作目錄,會寫入 workspace/AGENTS.md。","agent_create.loading_models":"載入模型中...","agent_create.loading_skills":"載入技能中...","agent_create.model_hint":"從列表中選擇模型或選擇「自訂模型...」以使用其他選項","agent_create.model_label":"模型 *","agent_create.model_placeholder":"github-copilot/claude-opus-4.6","agent_create.name_generate":"產生隨機名稱","agent_create.name_hint":"僅限小寫字母、數字、連字號和底線","agent_create.name_label":"代理名稱 *","agent_create.name_placeholder":"例如:swift-falcon","agent_create.no_skills":"未安裝技能","agent_create.random":"隨機","agent_create.reset_default":"重設為預設","agent_create.select_all":"全選","agent_create.skills_label":"技能","agent_create.skills_selected":"已選擇 {count} 個技能","agent_create.soul_label":"Soul / 指令 (AGENTS.md)","agent_create.soul_placeholder":"# AGENTS.md 內容...","agent_create.spawn":"建立代理","agent_create.spawning":"建立中...","agent_create.start_mode":"啟動模式","agent_create.title":"建立新代理","agent_create.validate_model":"請選擇模型","agent_create.validate_workspace":"工作目錄為必填","agent_create.working_dir_hint":"代理進行檔案操作的工作目錄","agent_create.working_dir_label":"工作目錄 *","agent_create.working_dir_placeholder":"/path/to/project","agent_detail.action_deleted":"代理已刪除","agent_detail.action_updated":"設定更新成功","agent_detail.agent_info":"代理資訊","agent_detail.back":"返回代理列表","agent_detail.edit_settings":"編輯設定","agent_detail.failed_to_load":"載入代理失敗:","agent_detail.iteration":"迭代次數","agent_detail.model":"模型","agent_detail.pid":"處理程序ID","agent_detail.port":"連接埠","agent_detail.session_id":"工作階段ID","agent_detail.soul_file":"Soul 檔案","agent_detail.start_mode":"啟動模式","agent_detail.start_mode_dormant":"休眠啟動","agent_detail.start_mode_normal":"正常","agent_detail.started":"啟動時間","agent_detail.status":"狀態","agent_detail.stopped":"已停止","agent_detail.token_cached":"快取","agent_detail.token_input":"輸入","agent_detail.token_output":"輸出","agent_detail.token_usage":"Token 使用量","agent_detail.total_cost":"總費用","agent_detail.unknown_agent":"未知代理","agent_detail.uptime":"執行時間","agent_detail.view_conversation":"檢視對話","agent_detail.working_dir":"工作目錄","agent_detail.working_dir_label":"工作目錄:","agent_edit.cannot_change":"(無法更改)","agent_edit.custom_model":"自訂模型...","agent_edit.custom_model_hint":"輸入任何模型識別碼(例如 github-copilot/claude-opus-4.6、openai/gpt-4o)","agent_edit.custom_model_placeholder":"輸入自訂模型識別碼(例如 provider/model-name)","agent_edit.deselect_all":"取消全選","agent_edit.display_name_label":"顯示名稱","agent_edit.display_name_placeholder":"易於識別的名稱","agent_edit.dormant_mode":"以休眠模式啟動","agent_edit.dormant_mode_desc":"代理啟動時不會處理 AGENTS.md。下次啟動時生效。","agent_edit.instructions_label":"代理指令 (AGENTS.md)","agent_edit.instructions_hint":"代理的指令和上下文。此檔案會在代理啟動或熱重載時重新讀取。","agent_edit.loading_models":"載入模型中...","agent_edit.loading_skills":"載入技能中...","agent_edit.model_hint":"從列表中選擇模型或選擇「自訂模型...」以使用其他選項","agent_edit.model_label":"模型","agent_edit.model_placeholder":"例如:github-copilot/claude-opus-4.6","agent_edit.name_label":"代理名稱","agent_edit.no_skills":"未安裝技能","agent_edit.no_workspace_warning":"未設定工作目錄。無法在沒有工作目錄的情況下編輯 AGENTS.md。","agent_edit.not_set":"未設定","agent_edit.running_warning":"執行中 — 需要重新啟動才能套用變更","agent_edit.save":"儲存變更","agent_edit.saved":"設定儲存成功","agent_edit.saving":"儲存中...","agent_edit.select_all":"全選","agent_edit.skills_label":"技能","agent_edit.skills_selected":"已選擇 {count} 個技能","agent_edit.soul_placeholder":"# AGENTS.md 內容...","agent_edit.start_mode":"啟動模式","agent_edit.stop_to_change":"停止代理以更改工作目錄","agent_edit.tab_general":"一般","agent_edit.tab_soul":"AGENTS.md","agent_edit.title":"編輯代理設定","agent_edit.will_be_created":"(將會建立)","agent_edit.working_dir_hint":"代理進行檔案操作的工作目錄","agent_edit.working_dir_label":"工作目錄 *","agent_edit.working_dir_placeholder":"/path/to/project","agent_edit.workspace_changed_warning":"工作目錄已更改。AGENTS.md 編輯已停用,以防止覆蓋新工作目錄中的檔案。儲存變更後,重新開啟設定以在新工作目錄中編輯 AGENTS.md。","agent_edit.workspace_move_warning":"更改工作目錄不會移動現有的 AGENTS.md。您可能需要重新設定代理的指令。","agents.back_to_chat":"返回對話","agents.no_agents_desc":"建立您的第一個自主代理","agents.no_agents_title":"暫無代理","agents.model_label":"模型:{model}","agents.resize_terminal":"調整終端面板大小","agents.back":"返回","agents.iteration":"迭代","agents.pid":"PID","agents.port":"連接埠","agents.refresh":"重新整理","agents.restart":"重新啟動","agents.restarting":"重新啟動中...","agents.clean_restart":"全新啟動","agents.clean_restart_tooltip":"以新工作階段重新啟動(開始全新對話)","agents.spawn_button":"建立代理","agents.start":"啟動","agents.starting":"啟動中...","agents.stop":"停止","agents.stopping":"停止中...","agents.subtitle":"管理自主代理","agents.title":"代理","agents.uptime":"運行時間","agents.drop_to_import":"拖放 YAML 檔案以匯入代理","agents.export":"匯出","agents.export_error":"匯出代理失敗","agents.import":"匯入","agents.import_button":"匯入代理","agents.import_error":"匯入代理失敗","agents.import_invalid_file":"無效檔案類型,請選擇 .yaml 或 .yml 檔案。","agents.import_file_too_large":"檔案過大(最大 10MB)","agents.import_read_error":"讀取檔案失敗","agents.import_success":"代理匯入成功","agents.view_details":"代理詳情","agents.pause":"暫停","agents.pausing":"暫停中...","agents.unpause":"取消暫停","agents.resume":"繼續","agents.resuming":"繼續中...","agents.paused":"已暫停","agents.select":"選取","agents.selected":"已選取 {count} 個","agents.selectAll":"全選","agents.deselectAll":"取消全選","agents.pauseAll":"全部暫停","agents.unpauseAll":"全部取消暫停","agents.stopAll":"全部停止","agents.restartAll":"全部重新啟動","agents.startAll":"全部啟動","agents.collapse_panel":"收合面板","agents.expand_panel":"展開面板","app.activities_panel":"活動面板","app.agents_tab":"代理","app.chat_tab":"對話","app.close_activities":"關閉活動面板","app.close_search":"關閉搜尋","app.dismiss_error":"關閉錯誤","app.hacker_mode_enter":"進入駭客模式 (Ctrl+H 或 Ctrl+Shift+M)","app.hacker_mode_exit":"退出駭客模式 (Ctrl+H 或 Ctrl+Shift+M)","app.match_count":"第 {current} 個,共 {total} 個","app.new_chat":"新對話","app.next_match":"下一個匹配","app.no_matches":"無匹配","app.previous_match":"上一個匹配","app.reconnecting":"正在重新連線伺服器...","app.resize_terminal":"調整終端機面板大小","app.right_pane_hidden":"活動面板已隱藏","app.right_pane_shown":"活動面板已顯示","app.search_messages":"搜尋訊息","app.search_placeholder":"在對話中搜尋...","app.settings_tab":"設定","app.skills_tab":"技能","app.toggle_right_pane":"切換活動面板 ({shortcut})","app.welcome_start":"開始對話吧。","app.welcome_subtitle":"您的AI驅動開發助手","app.welcome_title":"歡迎使用 PAVE","chat.attach_image":"附加圖片","chat.attach_file":"附加檔案 (圖片、docx、pdf、文字)","chat.cancel_queued":"從佇列移除","chat.queued":"已排隊","chat.edit_queued":"編輯已排隊的訊息","chat.attachment":"附件","chat.attachment_with_index":"附件 {index}","chat.copied":"已複製!","chat.copy":"複製","chat.copy_message":"複製訊息","chat.edit_resend":"編輯並重發","chat.read_only":"唯讀","chat.read_only_desc":"這是TUI的唯讀工作階段。無法傳送訊息。","chat.regenerate":"重新產生回覆","chat.scroll_to_bottom":"捲動到底部","chat.send_button":"傳送訊息","chat.send_hint":"按 Enter 傳送,Shift+Enter 換行。輸入 / 查看指令","chat.send_placeholder":"傳送訊息...","chat.stop_generating":"停止產生","chat.tool_bash":"執行命令","chat.tool_edit":"編輯檔案","chat.tool_glob":"搜尋檔案","chat.tool_grep":"搜尋程式碼","chat.tool_preparing":"準備工具呼叫","chat.tool_preparing_name":"準備 {name}","chat.tool_read":"讀取檔案","chat.tool_write":"寫入檔案","chat.viewing_terminal":"檢視終端機工作階段(唯讀)","chat.yesterday":"昨天","chat.yesterday_time":"昨天 {time}","chat.viewing_archive":"檢視封存的工作階段(唯讀)","chat.compacted_switch_to_new":"已壓縮 — 切換至新工作階段","chat.unpin_compacted":"取消釘選 — 返回原始工作階段","chat.compacting_context":"正在壓縮上下文","chat.show_thinking":"顯示思考過程","chat.hide_thinking":"隱藏思考過程","chat.thinking":"思考中","chat.whatsapp_enabled":"WhatsApp 模式已啟用 - 助手回覆將傳送至 WhatsApp","chat.whatsapp_disabled":"啟用 WhatsApp 雙向模式","chat.whatsapp_no_chatid":"請先在設定中填寫 PAVE_WHATSAPP_CHAT_ID 才能啟用 WhatsApp 路由","chat.working_directory":"工作目錄","chat.working_directory_current":"目前:","chat.working_directory_recent":"最近:","chat.working_directory_change":"變更","chat.working_directory_cancel":"取消","chat.working_directory_create":"建立目錄","chat.working_directory_not_found":"目錄不存在","chat.working_directory_invalid":"無效路徑","chat.working_directory_checking":"檢查路徑中...","chat.working_directory_changed":"工作目錄已變更為 {path}","chat.working_directory_created":"目錄已建立:{path}","chat.working_directory_create_failed":"建立目錄失敗:{error}","chat.working_directory_remove_recent":"從最近清單移除","chat.working_directory_has_agents_md":"包含 AGENTS.md","chat.working_directory_no_agents_md":"此目錄不含 AGENTS.md","chat.working_directory_new_path":"新路徑","chat.working_directory_placeholder":"/path/to/directory 或 ~/projects/...","chat.working_directory_not_set":"(未設定)","chat.idle_injection_title":"閒置注入","chat.idle_injection_toggle":"啟用閒置注入","chat.idle_injection_message":"注入訊息","chat.idle_injection_message_placeholder":"閒置時注入的訊息","chat.idle_injection_interval":"閒置間隔(秒)","chat.idle_injection_interval_desc":"LLM 完成回應後,等待多久再注入訊息。","chat.idle_injection_max":"最大注入次數(0 = 無限制)","chat.idle_injection_max_desc":"超過此次數後停止注入。0 表示不限制。","chat.idle_injection_mode":"派發模式","chat.idle_injection_mode_desc":"注入訊息如何排入佇列。","chat.idle_injection_mode_urgent":"緊急(工具呼叫間注入)","chat.idle_injection_mode_normal":"一般(回合完成後注入)","chat.idle_injection_mode_idle":"閒置(回合完成 + 延遲後注入)","chat.idle_injection_wait_ms":"閒置延遲(秒)","chat.idle_injection_wait_ms_desc":"閒置模式下,注入前的額外延遲時間。","chat.idle_injection_timeout_toggle":"啟用 LLM 超時偵測","chat.idle_injection_timeout_toggle_desc":"偵測 LLM 卡住(無回應)時自動重新注入。","chat.idle_injection_timeout_threshold":"超時閾值(秒)","chat.idle_injection_timeout_threshold_desc":"等待第一個 token 的時間,超過則視為 LLM 掛掉。","chat.idle_injection_timeout_cooldown":"超時冷卻(秒)","chat.idle_injection_timeout_cooldown_desc":"超時後等待多久再重新注入。","chat.idle_injection_save":"儲存","chat.idle_injection_disable":"停用","chat.idle_injection_saving":"儲存中...","chat.idle_injection_disabling":"停用中...","chat.idle_injection_saved":"設定已儲存","chat.idle_injection_disabled_toast":"閒置注入已停用","chat.idle_injection_enabled_toast":"閒置注入已啟用","chat.idle_injection_fired_toast":"閒置注入已觸發","chat.idle_injection_timeout_toast":"偵測到 LLM 超時 — 重試中","chat.idle_injection_auto_badge":"自動","scheduled_injection.title":"排程注入","scheduled_injection.subtitle":"在排程時間自動注入訊息","scheduled_injection.add":"新增排程","scheduled_injection.empty":"尚未設定排程。","scheduled_injection.time":"時間","scheduled_injection.repeat":"重複","scheduled_injection.repeat_every_day":"每天","scheduled_injection.repeat_weekdays":"平日","scheduled_injection.repeat_weekends":"週末","scheduled_injection.repeat_custom":"自訂","scheduled_injection.timezone":"時區","scheduled_injection.message":"訊息(選填)","scheduled_injection.message_placeholder":"留空使用預設 check-in 訊息","scheduled_injection.enabled":"啟用","scheduled_injection.save":"儲存排程","scheduled_injection.saving":"儲存中...","scheduled_injection.delete":"刪除","scheduled_injection.day_sun":"日","scheduled_injection.day_mon":"一","scheduled_injection.day_tue":"二","scheduled_injection.day_wed":"三","scheduled_injection.day_thu":"四","scheduled_injection.day_fri":"五","scheduled_injection.day_sat":"六","scheduled_injection.fired_toast":"排程注入已觸發","scheduled_injection.error_generic":"排程儲存失敗","chat.moe_auto":"自動","chat.moe_fast":"快速","chat.moe_fastest":"最快","chat.moe_tooltip":"專家數量 — 越快但準確度越低","chat.reasoning_max":"最強","chat.reasoning_high":"中度","chat.reasoning_off":"關閉","chat.reasoning_tooltip":"推理強度 — 越強越聰明但越慢","common.back":"返回","common.cancel":"取消","common.close":"關閉","common.confirm":"確認","common.delete":"刪除","common.deleting":"刪除中...","common.edit":"編輯","common.error":"錯誤","common.loading":"載入中...","common.no":"否","common.optional":"(可選)","common.retry":"重試","common.save":"儲存","common.success":"成功","common.unknown_error":"未知錯誤","common.yes":"是","login.email_placeholder":"電子郵件","login.or":"或","login.password_placeholder":"密碼","login.pave_subtitle":"個人AI虛擬環境","login.powered_by":"由 PAVE 驅動","login.sign_in":"登入","login.sign_in_locally":"本機登入","login.signing_in":"登入中...","login.terms":"登入即表示您同意服務條款。","permission.allow":"允許","permission.allowing":"允許中...","permission.action_clear_all":"全部清除","permission.action_grant":"授予","permission.action_revoke":"撤銷","permission.clear_all":"清除所有權限(鎖定沙箱)","permission.deny":"拒絕","permission.denying":"拒絕中...","permission.expired":"請求已過期","permission.no_reason":"未提供原因","permission.reason_prefix":"原因:","permission.request_desc":"{action} {type} 權限:{target}","permission.title":"權限請求","permission.type_file_read":"檔案讀取","permission.type_file_write":"檔案寫入","permission.type_module":"模組","permission.type_network":"網路","permission.type_system":"系統指令","question.already_answered":"問題已回答","question.custom_placeholder":"或輸入自訂回答...","question.dismiss":"關閉","question.dismissing":"關閉中...","question.expired":"問題已過期","question.input_placeholder":"輸入您的回答...","question.select_all":"可複選","question.submit":"提交","question.submit_n":"提交 {count} 個回答","question.submitting":"提交中...","question.title":"AI 提問","question.reconnecting":"重連中…","pricing.add":"新增","pricing.add_model":"新增模型","pricing.add_model_placeholder":"模型名稱(例如 gpt-4)","pricing.add_new_model":"新增模型","pricing.cached_tokens":"快取 Token(每百萬)","pricing.close":"關閉定價設定","pricing.configured_count":"已設定 {count} 個模型","pricing.fallback_badge":"預設","pricing.default_exists":'無法新增"default"——它已作為預設值存在',"pricing.discard_confirm":"放棄未儲存的變更?","pricing.discard_title":"放棄變更","pricing.heading":"Token 定價","pricing.input_tokens":"輸入 Token(每百萬)","pricing.label_cache":"快取:","pricing.label_input":"輸入:","pricing.label_output":"輸出:","pricing.model_column":"模型","pricing.model_exists":"模型已存在","pricing.model_required":"模型名稱為必填","pricing.output_tokens":"輸出 Token(每百萬)","pricing.rates_column":"輸入 / 輸出 / 快取","pricing.rates_subtitle":"價格以美元計算(每百萬 Token)","pricing.remove_model":"移除模型","pricing.remove_model_aria":"移除 {modelName}","pricing.remove_confirm":"移除「{model}」的定價?","pricing.remove_title":"移除模型定價","pricing.reset":"重設為預設","pricing.reset_confirm":"重設所有定價為預設值?此操作無法復原。","pricing.reset_title":"重設定價","pricing.save":"儲存","pricing.save_changes":"儲存變更","pricing.subtitle":"設定每百萬 Token 的成本(美元)","pricing.title":"Token 定價設定","settings.back":"返回對話","settings.category.display":"顯示","settings.appearance":"外觀","settings.mobile_frameless":"無框助理訊息","settings.mobile_frameless_label":"行動版 UX 增強(實驗性)","settings.mobile_frameless_desc":"移除助理訊息的頭像與泡泡背景,提供更乾淨的全寬閱讀體驗","settings.category.language":"語言","settings.category.marketplace":"市集","settings.category.model":"AI 模型與供應商","settings.category.prefillFallback":"預填回退","settings.category.rate":"速率限制","settings.category.systemPrompts":"系統提示","settings.category.tools":"工具執行","settings.category.whatsapp":"WhatsApp","settings.category.models":"模型","settings.category.lmstudio":"LM Studio","settings.category.compaction":"壓縮","settings.category.sessionBanner":"工作階段橫幅","settings.category.sessionBehavior":"工作階段行為","settings.currently_set_to":"目前設定為:{path}","settings.default_prefix":"預設值:{value}","settings.default_empty":"(空白)","settings.description":"設定 PAVE 執行時設定。大多數變更在儲存後生效;某些設定(如逾時)可能需要重新啟動 PAVE。","settings.env_badge":"env","settings.env_override":"此值目前被 {envVar} 環境變數覆蓋。","settings.failed_to_load":"載入設定失敗:{error}","settings.language":"語言","settings.language_description":"選擇您偏好的介面語言","settings.language_auto_applied":"✓ 語言已自動套用","settings.no_changes":"沒有需要儲存的變更。","settings.not_set":"未設定","settings.notification_sound":"通知音效","settings.notification_sound_desc":"收到新收件匣訊息時播放音效","settings.native_notifications":"瀏覽器通知","settings.native_notifications_desc":"收到新收件匣訊息時顯示瀏覽器通知","settings.native_notifications_blocked":"瀏覽器已封鎖通知——請在瀏覽器設定中啟用","settings.native_notifications_permission":"點擊啟用——將要求通知權限","settings.native_notifications_unsupported":"此瀏覽器不支援通知功能","settings.auto_saved":"變更立即生效","settings.notifications":"通知","settings.partial_save":"部分設定無法儲存。請查看下方錯誤。","settings.requires_restart":"(需要重啟)","settings.reset":"重設","settings.save":"儲存","settings.save_failed":"儲存失敗:{error}","settings.saved":"設定儲存成功。","settings.saving":"儲存中...","settings.source_default":"預設","settings.source_env":"ENV","settings.source_saved":"已儲存","settings.title":"設定","settings.validating":"驗證中...","settings.apply":"套用","settings.enabled":"已啟用","settings.disabled":"已停用","settings.workspace":"工作區","settings.working_dir":"工作目錄","settings.working_dir_desc":"設定檔案操作和工具執行的自訂工作目錄。留空則使用伺服器預設值。","settings.working_dir_reset":"工作目錄已重設為伺服器預設值","settings.working_dir_updated":"工作目錄已更新為:{path}","settings.working_dir_invalid":"無效的目錄路徑:{error}","settings.version_title":"版本","settings.current_version":"目前版本","settings.latest_version":"最新版本","settings.update_available":"有可用更新","settings.update_button":"更新","settings.no_updates":"沒有可用更新","settings.check_updates":"檢查更新","settings.checking_updates":"正在檢查更新…","settings.update_in_progress":"更新中…","settings.update_success":"更新成功","settings.update_failed":"更新失敗","settings.check_updates_failed":"檢查更新失敗","settings.model_registry.title":"模型登錄檔","settings.model_registry.builtin":"內建模型","settings.model_registry.user":"自訂模型","settings.model_registry.add_model":"+ 新增模型","settings.model_registry.no_user_models":"沒有自訂模型。點擊「+ 新增模型」來新增。","settings.model_registry.name":"模型名稱","settings.model_registry.name_placeholder":"模型名稱(例如 my-custom-model)","settings.model_registry.provider":"供應商","settings.model_registry.provider_placeholder":"例如 openai","settings.model_registry.displayName":"顯示名稱","settings.model_registry.displayName_placeholder":"我的模型","settings.model_registry.url":"端點 URL","settings.model_registry.url_placeholder":"http(s)://… 或 pave(s)://…","settings.model_registry.tier":"等級","settings.model_registry.tier_placeholder":"例如 fast、premium","settings.model_registry.limit_context":"上下文限制","settings.model_registry.limit_output":"輸出限制","settings.model_registry.cost_input":"輸入成本($/1M token)","settings.model_registry.cost_output":"輸出成本($/1M token)","settings.model_registry.save":"儲存","settings.model_registry.saving":"儲存中...","settings.model_registry.cancel":"取消","settings.model_registry.add":"新增","settings.model_registry.adding":"新增中...","settings.model_registry.edit":"編輯模型","settings.model_registry.delete":"刪除模型","settings.model_registry.delete_confirm":"從登錄檔移除模型「{name}」?","settings.model_registry.loading":"載入模型登錄檔...","settings.model_registry.load_error":"載入登錄檔失敗:{error}","settings.model_registry.context_k":"{value}K 上下文","settings.model_registry.target":"別名目標 (選填)","settings.model_registry.target_placeholder":"例如 github-copilot/claude-opus-4.7","settings.model_registry.target_hint":"若有填寫,此項目為別名 — 選用時會路由到目標模型。留空表示獨立模型並使用自己的端點 URL。","settings.model_registry.spec":"模型規格","settings.model_registry.spec_placeholder":"例如 github-copilot/claude-opus-4.7 或 pave://host/path?model=…","settings.model_registry.spec_hint":"輸入 provider/model 別名 (例如 github-copilot/claude-opus-4.7) 或完整的 pave://、paves://、http://、https:// URL。系統會自動辨識 URL。","settings.model_registry.kind_alias":"別名","settings.model_registry.advanced":"進階 (限制與費用)","settings.model_registry.error_name_required":"模型名稱為必填","settings.model_registry.error_name_reserved":"模型名稱「{name}」為保留字","settings.model_registry.error_name_exists":"已存在名為「{name}」的模型","settings.model_registry.error_rename_cleanup":"已重新命名,但無法移除舊項目: {error}","settings.custom_model":"自訂模型...","settings.custom_model_placeholder":"輸入自訂模型識別碼(例如 provider/model-name)","sidebar.conversations":"對話","sidebar.delete":"刪除","sidebar.delete_all":"刪除所有對話","sidebar.delete_all_confirm":"刪除這裡列出的對話?屬於其他應用程式的工作階段不會被刪除。此操作無法復原。","sidebar.delete_all_title":"刪除所有工作階段","sidebar.delete_confirm":"刪除此對話?","sidebar.delete_title":"刪除工作階段","sidebar.hide":"隱藏側邊欄","sidebar.load_more":"載入更多","sidebar.no_conversations":"暫無對話","sidebar.no_matches":"無匹配","sidebar.rename":"重新命名","sidebar.regenerate_title":"重新產生標題","sidebar.search_placeholder":"搜尋對話...","sidebar.session_processing":"工作階段處理中","sidebar.more_actions":"更多操作","sidebar.age_now":"剛剛","sidebar.age_minutes":"{n} 分","sidebar.age_hours":"{n} 小時","sidebar.age_days":"{n} 天","sidebar.age_weeks":"{n} 週","sidebar.show":"顯示對話列表","sidebar.terminal":"終端機","sidebar.studio":"PAVE Studio","sidebar.acp":"已連線的編輯器","sidebar.legacy_sessions":"早期工作階段","sidebar.untitled":"未命名","sidebar.pin":"置頂","sidebar.unpin":"取消置頂","sidebar.archive":"封存","sidebar.unarchive":"取消封存","sidebar.confirmArchive":"封存此工作階段?它將從側邊欄隱藏。","sidebar.show_archived":"顯示封存","sidebar.hide_archived":"隱藏封存","sidebar.pinned":"已置頂","sidebar.today":"今天","sidebar.yesterday":"昨天","sidebar.this_week":"本週","sidebar.this_month":"本月","sidebar.older":"更早","sidebar.other":"其他","sidebar.archived":"已封存","sidebar.export":"匯出為 YAML","sidebar.import":"匯入工作階段","sidebar.drop_to_import":"拖放工作階段檔案以匯入","import.invalid_file_type":"僅支援匯入 .yaml 或 .yml 工作階段檔案","import.file_too_large":"匯入檔案過大(最大 10MB)","import.read_error":"讀取檔案失敗,請重試。","skills.back_to_chat":"返回對話","skills.cancel":"取消","skills.clear_all":"全部清除","skills.clear_confirm":"清除 {skill} 的所有憑證?","skills.clear_title":"清除憑證","skills.close":"關閉","skills.close_credential_editor":"關閉憑證編輯器","skills.configure":"設定","skills.configure_skill":"設定 {skill}","skills.configured":"已設定","skills.current_value":"(目前:{value})","skills.enter_token":"請輸入至少一個令牌值","skills.enter_value":"輸入值...","skills.install":"安裝","skills.installed":"已安裝","skills.installed_count":"{installed} 已安裝,{available} 可用","skills.installing":"安裝中...","skills.install_failed":"安裝失敗:{error}","skills.leave_blank":"留空保持目前值","skills.load_installed_failed":"載入已安裝技能失敗:{error}","skills.load_marketplace_failed":"載入市集失敗:{error}","skills.needs_setup":"需要設定","skills.no_credentials_needed":"此技能不需要任何憑證。","skills.no_description":"暫無描述","skills.no_match":"沒有符合搜尋的技能。","skills.no_skills":"找不到技能。","skills.not_installed":"未安裝","skills.oauth_connect":"連接 {provider}","skills.oauth_connect_hint":"使用 OAuth 進行 {provider} 驗證。點擊下方按鈕開啟授權頁面。","skills.oauth_connected":"已連接 {provider}","skills.oauth_connecting":"連接中...","skills.oauth_needs_credentials":"請先在上方輸入 Client ID 和 Client Secret,然後才能連接 {provider}。","skills.save":"儲存","skills.saving":"儲存中...","skills.search_placeholder":"搜尋技能...","skills.skill_management":"技能管理","skills.subtitle":"管理AI工具能力","skills.tab_all":"全部","skills.tab_available":"可用","skills.tab_installed":"已安裝","skills.tab_marketplace":"市集","skills.title":"技能","skills.check_updates":"檢查更新","skills.checking_updates":"檢查中...","skills.update":"更新","skills.updating":"更新中...","skills.update_available":"可更新至 v{version}","skills.update_success":"已更新至 v{version}","skills.update_failed":"更新失敗","skills.up_to_date":"已是最新版本","skills.updates_available":"有 {count} 個更新","skills.no_updates":"所有技能都是最新版本","skills.uninstall":"移除","skills.uninstall_title":"移除技能","skills.uninstall_confirm":"移除 {skill}?已保存的憑證資訊將被保留。","skills.uninstalling":"移除中...","skills.uninstall_failed":"移除失敗:{error}","skills.toggle_title":"管理本會話的技能","skills.toggle_header":"會話技能","skills.toggle_hint":"僅對此聊天開啓/關閉技能","skills.builtin_tools":"內建工具","skills.agent_comm":"代理通訊","skills.default":"預設","skills.default_for_new_sessions":"新會話預設啟用","skills.reset_to_defaults":"重置為預設","auth.device_code_title":"GitHub Copilot 認証","auth.device_code_instructions":"開啟 {url} 並輸入驗證碼: {code}","auth.device_code_waiting":"等待授權中...","task.activity":"活動","task.awaiting":"等待核准","task.completed":"已完成","task.error":"錯誤","task.no_active":"沒有活動任務。傳送訊息開始使用。","task.processing":"處理中...","task.tool_bash":"Bash","task.tool_edit":"編輯","task.tool_editing":"正在編輯 {target}","task.tool_glob":"Glob","task.tool_glob_desc":"搜尋檔案","task.tool_grep":"Grep","task.tool_grep_desc":"搜尋程式碼","task.tool_read":"讀取","task.tool_reading":"正在讀取 {target}","task.tool_write":"寫入","task.tool_writing":"正在寫入 {target}","task.working":"處理中...","terminal.decrease_font":"縮小字體","terminal.increase_font":"放大字體","terminal.matrix_mode":"矩陣","terminal.no_output":"暫無終端機輸出","terminal.prompt":"$","theme.dark":"切換到深色模式","theme.light":"切換到淺色模式","time.days":"{count}天","time.hours":"{count}小時","time.just_now":"剛剛","time.milliseconds":"{count}毫秒","time.minutes":"{count}分鐘","time.seconds":"{count}秒","token.cache_read":"快取讀取","token.cache_write":"快取寫入","token.generating":"產生中...","token.idle":"閒置","token.input":"輸入","token.model":"模型","token.output":"輸出","token.session_cost":"工作階段","token.tokens":"tokens","token.total_cost":"總費用","token_usage.generating":"生成中...","token_usage.idle":"閒置","token_usage.messages":"訊息","token_usage.model":"模型","token_usage.originally":"原始模型","token_usage.session_info":"工作階段資訊","token_usage.status":"狀態","tool.completed":"完成","tool.error":"錯誤","tool.running":"執行中...","tool.tool":"工具","user_menu.agents":"代理管理","user_menu.pricing":"Token 定價","user_menu.settings":"設定","user_menu.sign_out":"登出","user_menu.skills":"技能管理","user_menu.title":"使用者選單","user_inbox.clear_all":"清除全部","user_inbox.delete":"刪除","user_inbox.empty":"暫無通知","user_inbox.high_priority":"緊急","user_inbox.mark_all_read":"全部標記為已讀","user_inbox.mark_unread":"標記為未讀","user_inbox.next_message":"下一封訊息","user_inbox.prev_message":"上一封訊息","user_inbox.title":"通知","user_inbox.unread":"未讀","user_inbox.view_agent":"檢視代理","user_inbox.view_message":"檢視訊息","user_inbox.close":"關閉","user_inbox.mark_read":"標記為已讀","voice.dismiss_error":"關閉語音錯誤","voice.downloading_model":"正在下載語音模型...","voice.loading_model":"正在載入語音模型...","voice.processing":"正在轉錄音訊...","voice.processing_backend":"正在雲端轉錄...","voice.processing_local":"正在本地轉錄...","voice.processing_local_server":"正在透過本地伺服器轉錄...","voice.source_backend":"已透過雲端轉錄","voice.source_local":"已在本地轉錄","voice.source_local_server":"已透過本地伺服器轉錄","voice.start_recording":"開始語音錄入","voice.stop_recording":"停止錄音","voice.pause_recording":"暫停錄音","voice.resume_recording":"繼續錄音","voice.select_asr_model":"選擇語音辨識模型","model_selector.title":"工作階段模型","model_selector.list_label":"可用模型","model_selector.use_default":"使用預設模型","model_selector.no_models":"暫無可用模型","model_selector.default_label":"預設","model_selector.lmstudio_loading":"正在載入 LM Studio 模型...","spotlight.title":"搜尋工作階段","spotlight.new_chat":"新對話","spotlight.placeholder":"依標題搜尋工作階段...","spotlight.results":"工作階段結果","spotlight.recent_sessions":"最近的工作階段","spotlight.no_results":"找不到工作階段","spotlight.searching":"搜尋中...","spotlight.untitled":"無標題工作階段","spotlight.current":"目前","spotlight.navigate":"導航","spotlight.select":"選擇","spotlight.close":"關閉","slashCommand.title":"技能","slashCommand.skills":"技能","slashCommand.commands":"指令","slashCommand.command":"指令","slashCommand.noResults":"找不到相符的指令","slashCommand.notConfigured":"未設定","slashCommand.back":"返回技能列表","slashCommand.navigate":"導航","slashCommand.select":"選擇","slashCommand.close":"關閉","slashCommand.hint":"輸入 / 查看可用指令","archiveViewer.title":"原始對話歷史","archiveViewer.messages":"則訊息","archiveViewer.loading":"載入已封存訊息中...","archiveViewer.noArchive":"此工作階段沒有可用的封存歷史。","archiveViewer.readOnly":"唯讀封存","archiveViewer.archivedAt":"封存於","archiveViewer.close":"關閉","archiveViewer.loadError":"載入封存失敗","archiveViewer.you":"你","archiveViewer.assistant":"助理","compaction.title":"對話已壓縮","compaction.showSummary":"顯示摘要","compaction.viewOriginal":"檢視原始歷史","compaction.viewInHistory":"在歷史中檢視","compaction.server.title":"伺服器自動壓縮","compaction.server.status":"伺服器已自動壓縮上下文","compaction.mode.client":"客戶端(PAVE 摘要)","compaction.mode.server":"伺服器(vllm-mlx 自動壓縮)","compaction.mode.auto":"自動(依提供者偵測)","compaction.banner_title":"此工作階段由先前的對話壓縮而來。","compaction.view_original":"檢視原始對話","compaction.dismiss":"關閉","compaction.user_message_label":"正在摘要我們的對話以提升效率。","compaction.boundary":"上下文已壓縮 — 上方訊息已不在模型的上下文中","compaction.show_history":"顯示壓縮前的 {count} 則訊息","compaction.hide_history":"隱藏壓縮前的訊息","credits.limit_reached":"額度已用完","credits.limit_message":"您的可用額度已用完。請加值以繼續使用服務。","credits.add_credits":"加值","credits.dismiss":"關閉","dlp.heading":"私隱與 DLP 設定","dlp.subtitle":"設定資料外洩防護規則及私隱模式","dlp.title":"DLP 設定","dlp.close":"關閉 DLP 設定","dlp.cancel":"取消","dlp.save":"儲存","dlp.saving":"儲存中...","dlp.discard_title":"放棄變更","dlp.discard_confirm":"確定放棄未儲存的 DLP 設定變更?","dlp.enable_label":"啟用資料外洩防護","dlp.enable_desc":"啟用後,發送給 AI 模型的訊息會先掃描敏感資料。","dlp.default_action_label":"偵測到敏感資料時的預設動作","dlp.default_action_desc":"「詢問」會顯示對話框,「一律轉送」會改用私隱模型,「僅警告」會記錄並繼續。","dlp.reroute_model_label":"私隱模型(轉送目標)","dlp.reroute_model_desc":"私隱模式使用的模型/供應商。格式:provider/modelID","dlp.builtin_patterns":"內建規則","dlp.builtin_desc":"恆常可用的偵測規則。可獨立啟用或停用。","dlp.user_patterns":"自訂規則","dlp.user_patterns_desc":"您定義的規則,儲存至政策檔案,重啟後仍有效。","dlp.no_user_patterns":"尚未新增自訂規則。請在下方新增。","dlp.add_pattern":"新增規則","dlp.pattern_name":"名稱","dlp.regex_pattern":"正則表達式","dlp.severity":"嚴重程度","dlp.add":"新增","dlp.remove_pattern":"移除規則","dlp.remove_pattern_aria":"移除規則 {name}","dlp.pattern_exists":"規則「{name}」已存在","dlp.name_required":"規則名稱為必填","dlp.regex_required":"正則表達式為必填","dlp.invalid_regex":"正則表達式語法無效","user_menu.privacy_dlp":"私隱與 DLP","chat.interrupted_badge":"Interrupted"};export{e as default};
1
+ const e={"planCard.heading":"計劃已就緒——下一步?","planCard.showPlan":"查看計劃","planCard.execute":"切換到建置模式並執行","planCard.keepPlanning":"繼續規劃","planCard.executedStatus":"已切換到建置模式——正在執行計劃。","planCard.dismissedStatus":"繼續保持規劃模式。","planCard.close":"關閉","planCard.loading":"載入中…","planCard.loadError":"無法載入計劃。","planCard.executePrompt":"請實作 PLAN.md 中的計劃,逐步執行。","agent_conversation.back":"返回","agent_conversation.message_count":"{name} - {count} 則訊息","agent_conversation.message_queued":"訊息已加入代理佇列","agent_conversation.no_messages":"暫無訊息","agent_conversation.no_messages_hint":"使用右下角按鈕向代理傳送訊息","agent_conversation.compose_button":"傳送訊息","agent_conversation.modal_title":"傳送訊息給 {name}","agent_conversation.reply_to_inbox":"完成後通知我","agent_conversation.urgent_interrupt_button":"傳送緊急中斷","agent_conversation.urgent_warning":"這將立即中斷代理目前的工作。再次點擊以確認。","agent_conversation.confirm_interrupt":"確認中斷","agent_conversation.priority":"優先級:","agent_conversation.priority_high":"高","agent_conversation.priority_normal":"普通","agent_conversation.priority_urgent":"緊急","agent_conversation.priority_urgent_confirm":"這將傳送緊急中斷,終止代理目前的工作。確定繼續嗎?","agent_conversation.priority_urgent_title":"傳送緊急中斷","agent_conversation.priority_urgent_hint":"緊急:這將立即中斷代理目前的工作","agent_conversation.interrupt_button":"中斷","agent_conversation.interrupt_sent":"已向代理傳送緊急中斷","agent_conversation.queue_hint":"訊息將在代理下次喚醒時處理","agent_conversation.refresh":"重新整理","agent_conversation.send_button":"傳送","agent_conversation.send_placeholder":"向代理的收件匣傳送訊息...","agent_conversation.sending":"傳送中","agent_conversation.title":"對話","confirm_dialog.cancel":"取消","confirm_dialog.confirm":"確認","agent_create.cancel":"取消","agent_create.configure_subtitle":"設定您的自主代理","agent_create.custom_model":"自訂模型...","agent_create.custom_model_hint":"輸入任何模型識別碼(例如 github-copilot/claude-opus-4.6、openai/gpt-4o)","agent_create.custom_model_placeholder":"輸入自訂模型識別碼(例如 provider/model-name)","agent_create.deselect_all":"取消全選","agent_create.display_name_hint":"在介面中顯示的易讀名稱","agent_create.display_name_label":"顯示名稱(可選)","agent_create.display_name_placeholder":"例如:我的開發代理","agent_create.dormant_mode":"以休眠模式啟動","agent_create.dormant_mode_desc":"代理啟動時不會處理 AGENTS.md。它會等待直到收到收件匣訊息。","agent_create.instructions_label":"代理指令 (AGENTS.md)","agent_create.instructions_optional":"(可選)","agent_create.instructions_hint":"代理的指令和上下文。如果設定了工作目錄,會寫入 workspace/AGENTS.md。","agent_create.loading_models":"載入模型中...","agent_create.loading_skills":"載入技能中...","agent_create.model_hint":"從列表中選擇模型或選擇「自訂模型...」以使用其他選項","agent_create.model_label":"模型 *","agent_create.model_placeholder":"github-copilot/claude-opus-4.6","agent_create.name_generate":"產生隨機名稱","agent_create.name_hint":"僅限小寫字母、數字、連字號和底線","agent_create.name_label":"代理名稱 *","agent_create.name_placeholder":"例如:swift-falcon","agent_create.no_skills":"未安裝技能","agent_create.random":"隨機","agent_create.reset_default":"重設為預設","agent_create.select_all":"全選","agent_create.skills_label":"技能","agent_create.skills_selected":"已選擇 {count} 個技能","agent_create.soul_label":"Soul / 指令 (AGENTS.md)","agent_create.soul_placeholder":"# AGENTS.md 內容...","agent_create.spawn":"建立代理","agent_create.spawning":"建立中...","agent_create.start_mode":"啟動模式","agent_create.title":"建立新代理","agent_create.validate_model":"請選擇模型","agent_create.validate_workspace":"工作目錄為必填","agent_create.working_dir_hint":"代理進行檔案操作的工作目錄","agent_create.working_dir_label":"工作目錄 *","agent_create.working_dir_placeholder":"/path/to/project","agent_detail.action_deleted":"代理已刪除","agent_detail.action_updated":"設定更新成功","agent_detail.agent_info":"代理資訊","agent_detail.back":"返回代理列表","agent_detail.edit_settings":"編輯設定","agent_detail.failed_to_load":"載入代理失敗:","agent_detail.iteration":"迭代次數","agent_detail.model":"模型","agent_detail.pid":"處理程序ID","agent_detail.port":"連接埠","agent_detail.session_id":"工作階段ID","agent_detail.soul_file":"Soul 檔案","agent_detail.start_mode":"啟動模式","agent_detail.start_mode_dormant":"休眠啟動","agent_detail.start_mode_normal":"正常","agent_detail.started":"啟動時間","agent_detail.status":"狀態","agent_detail.stopped":"已停止","agent_detail.token_cached":"快取","agent_detail.token_input":"輸入","agent_detail.token_output":"輸出","agent_detail.token_usage":"Token 使用量","agent_detail.total_cost":"總費用","agent_detail.unknown_agent":"未知代理","agent_detail.uptime":"執行時間","agent_detail.view_conversation":"檢視對話","agent_detail.working_dir":"工作目錄","agent_detail.working_dir_label":"工作目錄:","agent_edit.cannot_change":"(無法更改)","agent_edit.custom_model":"自訂模型...","agent_edit.custom_model_hint":"輸入任何模型識別碼(例如 github-copilot/claude-opus-4.6、openai/gpt-4o)","agent_edit.custom_model_placeholder":"輸入自訂模型識別碼(例如 provider/model-name)","agent_edit.deselect_all":"取消全選","agent_edit.display_name_label":"顯示名稱","agent_edit.display_name_placeholder":"易於識別的名稱","agent_edit.dormant_mode":"以休眠模式啟動","agent_edit.dormant_mode_desc":"代理啟動時不會處理 AGENTS.md。下次啟動時生效。","agent_edit.instructions_label":"代理指令 (AGENTS.md)","agent_edit.instructions_hint":"代理的指令和上下文。此檔案會在代理啟動或熱重載時重新讀取。","agent_edit.loading_models":"載入模型中...","agent_edit.loading_skills":"載入技能中...","agent_edit.model_hint":"從列表中選擇模型或選擇「自訂模型...」以使用其他選項","agent_edit.model_label":"模型","agent_edit.model_placeholder":"例如:github-copilot/claude-opus-4.6","agent_edit.name_label":"代理名稱","agent_edit.no_skills":"未安裝技能","agent_edit.no_workspace_warning":"未設定工作目錄。無法在沒有工作目錄的情況下編輯 AGENTS.md。","agent_edit.not_set":"未設定","agent_edit.running_warning":"執行中 — 需要重新啟動才能套用變更","agent_edit.save":"儲存變更","agent_edit.saved":"設定儲存成功","agent_edit.saving":"儲存中...","agent_edit.select_all":"全選","agent_edit.skills_label":"技能","agent_edit.skills_selected":"已選擇 {count} 個技能","agent_edit.soul_placeholder":"# AGENTS.md 內容...","agent_edit.start_mode":"啟動模式","agent_edit.stop_to_change":"停止代理以更改工作目錄","agent_edit.tab_general":"一般","agent_edit.tab_soul":"AGENTS.md","agent_edit.title":"編輯代理設定","agent_edit.will_be_created":"(將會建立)","agent_edit.working_dir_hint":"代理進行檔案操作的工作目錄","agent_edit.working_dir_label":"工作目錄 *","agent_edit.working_dir_placeholder":"/path/to/project","agent_edit.workspace_changed_warning":"工作目錄已更改。AGENTS.md 編輯已停用,以防止覆蓋新工作目錄中的檔案。儲存變更後,重新開啟設定以在新工作目錄中編輯 AGENTS.md。","agent_edit.workspace_move_warning":"更改工作目錄不會移動現有的 AGENTS.md。您可能需要重新設定代理的指令。","agents.back_to_chat":"返回對話","agents.no_agents_desc":"建立您的第一個自主代理","agents.no_agents_title":"暫無代理","agents.model_label":"模型:{model}","agents.resize_terminal":"調整終端面板大小","agents.back":"返回","agents.iteration":"迭代","agents.pid":"PID","agents.port":"連接埠","agents.refresh":"重新整理","agents.restart":"重新啟動","agents.restarting":"重新啟動中...","agents.clean_restart":"全新啟動","agents.clean_restart_tooltip":"以新工作階段重新啟動(開始全新對話)","agents.spawn_button":"建立代理","agents.start":"啟動","agents.starting":"啟動中...","agents.stop":"停止","agents.stopping":"停止中...","agents.subtitle":"管理自主代理","agents.title":"代理","agents.uptime":"運行時間","agents.drop_to_import":"拖放 YAML 檔案以匯入代理","agents.export":"匯出","agents.export_error":"匯出代理失敗","agents.import":"匯入","agents.import_button":"匯入代理","agents.import_error":"匯入代理失敗","agents.import_invalid_file":"無效檔案類型,請選擇 .yaml 或 .yml 檔案。","agents.import_file_too_large":"檔案過大(最大 10MB)","agents.import_read_error":"讀取檔案失敗","agents.import_success":"代理匯入成功","agents.view_details":"代理詳情","agents.pause":"暫停","agents.pausing":"暫停中...","agents.unpause":"取消暫停","agents.resume":"繼續","agents.resuming":"繼續中...","agents.paused":"已暫停","agents.select":"選取","agents.selected":"已選取 {count} 個","agents.selectAll":"全選","agents.deselectAll":"取消全選","agents.pauseAll":"全部暫停","agents.unpauseAll":"全部取消暫停","agents.stopAll":"全部停止","agents.restartAll":"全部重新啟動","agents.startAll":"全部啟動","agents.collapse_panel":"收合面板","agents.expand_panel":"展開面板","app.activities_panel":"活動面板","app.agents_tab":"代理","app.chat_tab":"對話","app.close_activities":"關閉活動面板","app.close_search":"關閉搜尋","app.dismiss_error":"關閉錯誤","app.hacker_mode_enter":"進入駭客模式 (Ctrl+H 或 Ctrl+Shift+M)","app.hacker_mode_exit":"退出駭客模式 (Ctrl+H 或 Ctrl+Shift+M)","app.match_count":"第 {current} 個,共 {total} 個","app.new_chat":"新對話","app.next_match":"下一個匹配","app.no_matches":"無匹配","app.previous_match":"上一個匹配","app.reconnecting":"正在重新連線伺服器...","app.resize_terminal":"調整終端機面板大小","app.right_pane_hidden":"活動面板已隱藏","app.right_pane_shown":"活動面板已顯示","app.search_messages":"搜尋訊息","app.search_placeholder":"在對話中搜尋...","app.settings_tab":"設定","app.skills_tab":"技能","app.toggle_right_pane":"切換活動面板 ({shortcut})","app.welcome_start":"開始對話吧。","app.welcome_subtitle":"您的AI驅動開發助手","app.welcome_title":"歡迎使用 PAVE","chat.attach_image":"附加圖片","chat.attach_file":"附加檔案 (圖片、docx、pdf、文字)","chat.cancel_queued":"從佇列移除","chat.queued":"已排隊","chat.edit_queued":"編輯已排隊的訊息","chat.attachment":"附件","chat.attachment_with_index":"附件 {index}","chat.copied":"已複製!","chat.copy":"複製","chat.copy_message":"複製訊息","chat.edit_resend":"編輯並重發","chat.read_only":"唯讀","chat.read_only_desc":"這是TUI的唯讀工作階段。無法傳送訊息。","chat.regenerate":"重新產生回覆","chat.scroll_to_bottom":"捲動到底部","chat.send_button":"傳送訊息","chat.send_hint":"按 Enter 傳送,Shift+Enter 換行。輸入 / 查看指令","chat.send_placeholder":"傳送訊息...","chat.stop_generating":"停止產生","chat.tool_bash":"執行命令","chat.tool_edit":"編輯檔案","chat.tool_glob":"搜尋檔案","chat.tool_grep":"搜尋程式碼","chat.tool_preparing":"準備工具呼叫","chat.tool_preparing_name":"準備 {name}","chat.tool_read":"讀取檔案","chat.tool_write":"寫入檔案","chat.viewing_terminal":"檢視終端機工作階段(唯讀)","chat.yesterday":"昨天","chat.yesterday_time":"昨天 {time}","chat.viewing_archive":"檢視封存的工作階段(唯讀)","chat.compacted_switch_to_new":"已壓縮 — 切換至新工作階段","chat.unpin_compacted":"取消釘選 — 返回原始工作階段","chat.compacting_context":"正在壓縮上下文","chat.show_thinking":"顯示思考過程","chat.hide_thinking":"隱藏思考過程","chat.thinking":"思考中","chat.whatsapp_enabled":"WhatsApp 模式已啟用 - 助手回覆將傳送至 WhatsApp","chat.whatsapp_disabled":"啟用 WhatsApp 雙向模式","chat.whatsapp_no_chatid":"請先在設定中填寫 PAVE_WHATSAPP_CHAT_ID 才能啟用 WhatsApp 路由","chat.working_directory":"工作目錄","chat.working_directory_current":"目前:","chat.working_directory_recent":"最近:","chat.working_directory_change":"變更","chat.working_directory_cancel":"取消","chat.working_directory_create":"建立目錄","chat.working_directory_not_found":"目錄不存在","chat.working_directory_invalid":"無效路徑","chat.working_directory_checking":"檢查路徑中...","chat.working_directory_changed":"工作目錄已變更為 {path}","chat.working_directory_created":"目錄已建立:{path}","chat.working_directory_create_failed":"建立目錄失敗:{error}","chat.working_directory_remove_recent":"從最近清單移除","chat.working_directory_has_agents_md":"包含 AGENTS.md","chat.working_directory_no_agents_md":"此目錄不含 AGENTS.md","chat.working_directory_new_path":"新路徑","chat.working_directory_placeholder":"/path/to/directory 或 ~/projects/...","chat.working_directory_not_set":"(未設定)","chat.idle_injection_title":"閒置注入","chat.idle_injection_toggle":"啟用閒置注入","chat.idle_injection_message":"注入訊息","chat.idle_injection_message_placeholder":"閒置時注入的訊息","chat.idle_injection_interval":"閒置間隔(秒)","chat.idle_injection_interval_desc":"LLM 完成回應後,等待多久再注入訊息。","chat.idle_injection_max":"最大注入次數(0 = 無限制)","chat.idle_injection_max_desc":"超過此次數後停止注入。0 表示不限制。","chat.idle_injection_mode":"派發模式","chat.idle_injection_mode_desc":"注入訊息如何排入佇列。","chat.idle_injection_mode_urgent":"緊急(工具呼叫間注入)","chat.idle_injection_mode_normal":"一般(回合完成後注入)","chat.idle_injection_mode_idle":"閒置(回合完成 + 延遲後注入)","chat.idle_injection_wait_ms":"閒置延遲(秒)","chat.idle_injection_wait_ms_desc":"閒置模式下,注入前的額外延遲時間。","chat.idle_injection_timeout_toggle":"啟用 LLM 超時偵測","chat.idle_injection_timeout_toggle_desc":"偵測 LLM 卡住(無回應)時自動重新注入。","chat.idle_injection_timeout_threshold":"超時閾值(秒)","chat.idle_injection_timeout_threshold_desc":"等待第一個 token 的時間,超過則視為 LLM 掛掉。","chat.idle_injection_timeout_cooldown":"超時冷卻(秒)","chat.idle_injection_timeout_cooldown_desc":"超時後等待多久再重新注入。","chat.idle_injection_save":"儲存","chat.idle_injection_disable":"停用","chat.idle_injection_saving":"儲存中...","chat.idle_injection_disabling":"停用中...","chat.idle_injection_saved":"設定已儲存","chat.idle_injection_disabled_toast":"閒置注入已停用","chat.idle_injection_enabled_toast":"閒置注入已啟用","chat.idle_injection_fired_toast":"閒置注入已觸發","chat.idle_injection_timeout_toast":"偵測到 LLM 超時 — 重試中","chat.idle_injection_auto_badge":"自動","scheduled_injection.title":"排程注入","scheduled_injection.subtitle":"在排程時間自動注入訊息","scheduled_injection.add":"新增排程","scheduled_injection.empty":"尚未設定排程。","scheduled_injection.time":"時間","scheduled_injection.repeat":"重複","scheduled_injection.repeat_every_day":"每天","scheduled_injection.repeat_weekdays":"平日","scheduled_injection.repeat_weekends":"週末","scheduled_injection.repeat_custom":"自訂","scheduled_injection.timezone":"時區","scheduled_injection.message":"訊息(選填)","scheduled_injection.message_placeholder":"留空使用預設 check-in 訊息","scheduled_injection.enabled":"啟用","scheduled_injection.save":"儲存排程","scheduled_injection.saving":"儲存中...","scheduled_injection.delete":"刪除","scheduled_injection.day_sun":"日","scheduled_injection.day_mon":"一","scheduled_injection.day_tue":"二","scheduled_injection.day_wed":"三","scheduled_injection.day_thu":"四","scheduled_injection.day_fri":"五","scheduled_injection.day_sat":"六","scheduled_injection.fired_toast":"排程注入已觸發","scheduled_injection.error_generic":"排程儲存失敗","chat.moe_auto":"自動","chat.moe_fast":"快速","chat.moe_fastest":"最快","chat.moe_tooltip":"專家數量 — 越快但準確度越低","chat.reasoning_max":"最強","chat.reasoning_high":"中度","chat.reasoning_off":"關閉","chat.reasoning_tooltip":"推理強度 — 越強越聰明但越慢","common.back":"返回","common.cancel":"取消","common.close":"關閉","common.confirm":"確認","common.delete":"刪除","common.deleting":"刪除中...","common.edit":"編輯","common.error":"錯誤","common.loading":"載入中...","common.no":"否","common.optional":"(可選)","common.retry":"重試","common.save":"儲存","common.success":"成功","common.unknown_error":"未知錯誤","common.yes":"是","login.email_placeholder":"電子郵件","login.or":"或","login.password_placeholder":"密碼","login.pave_subtitle":"個人AI虛擬環境","login.powered_by":"由 PAVE 驅動","login.sign_in":"登入","login.sign_in_locally":"本機登入","login.signing_in":"登入中...","login.terms":"登入即表示您同意服務條款。","permission.allow":"允許","permission.allowing":"允許中...","permission.action_clear_all":"全部清除","permission.action_grant":"授予","permission.action_revoke":"撤銷","permission.clear_all":"清除所有權限(鎖定沙箱)","permission.deny":"拒絕","permission.denying":"拒絕中...","permission.expired":"請求已過期","permission.no_reason":"未提供原因","permission.reason_prefix":"原因:","permission.request_desc":"{action} {type} 權限:{target}","permission.title":"權限請求","permission.type_file_read":"檔案讀取","permission.type_file_write":"檔案寫入","permission.type_module":"模組","permission.type_network":"網路","permission.type_system":"系統指令","question.already_answered":"問題已回答","question.custom_placeholder":"或輸入自訂回答...","question.dismiss":"關閉","question.dismissing":"關閉中...","question.expired":"問題已過期","question.input_placeholder":"輸入您的回答...","question.select_all":"可複選","question.submit":"提交","question.submit_n":"提交 {count} 個回答","question.submitting":"提交中...","question.title":"AI 提問","question.reconnecting":"重連中…","pricing.add":"新增","pricing.add_model":"新增模型","pricing.add_model_placeholder":"模型名稱(例如 gpt-4)","pricing.add_new_model":"新增模型","pricing.cached_tokens":"快取 Token(每百萬)","pricing.close":"關閉定價設定","pricing.configured_count":"已設定 {count} 個模型","pricing.fallback_badge":"預設","pricing.default_exists":'無法新增"default"——它已作為預設值存在',"pricing.discard_confirm":"放棄未儲存的變更?","pricing.discard_title":"放棄變更","pricing.heading":"Token 定價","pricing.input_tokens":"輸入 Token(每百萬)","pricing.label_cache":"快取:","pricing.label_input":"輸入:","pricing.label_output":"輸出:","pricing.model_column":"模型","pricing.model_exists":"模型已存在","pricing.model_required":"模型名稱為必填","pricing.output_tokens":"輸出 Token(每百萬)","pricing.rates_column":"輸入 / 輸出 / 快取","pricing.rates_subtitle":"價格以美元計算(每百萬 Token)","pricing.remove_model":"移除模型","pricing.remove_model_aria":"移除 {modelName}","pricing.remove_confirm":"移除「{model}」的定價?","pricing.remove_title":"移除模型定價","pricing.reset":"重設為預設","pricing.reset_confirm":"重設所有定價為預設值?此操作無法復原。","pricing.reset_title":"重設定價","pricing.save":"儲存","pricing.save_changes":"儲存變更","pricing.subtitle":"設定每百萬 Token 的成本(美元)","pricing.title":"Token 定價設定","settings.back":"返回對話","settings.category.display":"顯示","settings.appearance":"外觀","settings.mobile_frameless":"無框助理訊息","settings.mobile_frameless_label":"行動版 UX 增強(實驗性)","settings.mobile_frameless_desc":"移除助理訊息的頭像與泡泡背景,提供更乾淨的全寬閱讀體驗","settings.category.language":"語言","settings.category.marketplace":"市集","settings.category.model":"AI 模型與供應商","settings.category.prefillFallback":"預填回退","settings.category.rate":"速率限制","settings.category.systemPrompts":"系統提示","settings.category.tools":"工具執行","settings.category.whatsapp":"WhatsApp","settings.category.models":"模型","settings.category.lmstudio":"LM Studio","settings.category.compaction":"壓縮","settings.category.sessionBanner":"工作階段橫幅","settings.category.sessionBehavior":"工作階段行為","settings.currently_set_to":"目前設定為:{path}","settings.default_prefix":"預設值:{value}","settings.default_empty":"(空白)","settings.description":"設定 PAVE 執行時設定。大多數變更在儲存後生效;某些設定(如逾時)可能需要重新啟動 PAVE。","settings.env_badge":"env","settings.env_override":"此值目前被 {envVar} 環境變數覆蓋。","settings.failed_to_load":"載入設定失敗:{error}","settings.language":"語言","settings.language_description":"選擇您偏好的介面語言","settings.language_auto_applied":"✓ 語言已自動套用","settings.no_changes":"沒有需要儲存的變更。","settings.not_set":"未設定","settings.notification_sound":"通知音效","settings.notification_sound_desc":"收到新收件匣訊息時播放音效","settings.native_notifications":"瀏覽器通知","settings.native_notifications_desc":"收到新收件匣訊息時顯示瀏覽器通知","settings.native_notifications_blocked":"瀏覽器已封鎖通知——請在瀏覽器設定中啟用","settings.native_notifications_permission":"點擊啟用——將要求通知權限","settings.native_notifications_unsupported":"此瀏覽器不支援通知功能","settings.auto_saved":"變更立即生效","settings.notifications":"通知","settings.partial_save":"部分設定無法儲存。請查看下方錯誤。","settings.requires_restart":"(需要重啟)","settings.reset":"重設","settings.save":"儲存","settings.save_failed":"儲存失敗:{error}","settings.saved":"設定儲存成功。","settings.saving":"儲存中...","settings.source_default":"預設","settings.source_env":"ENV","settings.source_saved":"已儲存","settings.title":"設定","settings.validating":"驗證中...","settings.apply":"套用","settings.enabled":"已啟用","settings.disabled":"已停用","settings.workspace":"工作區","settings.working_dir":"工作目錄","settings.working_dir_desc":"設定檔案操作和工具執行的自訂工作目錄。留空則使用伺服器預設值。","settings.working_dir_reset":"工作目錄已重設為伺服器預設值","settings.working_dir_updated":"工作目錄已更新為:{path}","settings.working_dir_invalid":"無效的目錄路徑:{error}","settings.version_title":"版本","settings.current_version":"目前版本","settings.latest_version":"最新版本","settings.update_available":"有可用更新","settings.update_button":"更新","settings.no_updates":"沒有可用更新","settings.check_updates":"檢查更新","settings.checking_updates":"正在檢查更新…","settings.update_in_progress":"更新中…","settings.update_success":"更新成功","settings.update_failed":"更新失敗","settings.check_updates_failed":"檢查更新失敗","settings.model_registry.title":"模型登錄檔","settings.model_registry.builtin":"內建模型","settings.model_registry.user":"自訂模型","settings.model_registry.add_model":"+ 新增模型","settings.model_registry.no_user_models":"沒有自訂模型。點擊「+ 新增模型」來新增。","settings.model_registry.name":"模型名稱","settings.model_registry.name_placeholder":"模型名稱(例如 my-custom-model)","settings.model_registry.provider":"供應商","settings.model_registry.provider_placeholder":"例如 openai","settings.model_registry.displayName":"顯示名稱","settings.model_registry.displayName_placeholder":"我的模型","settings.model_registry.url":"端點 URL","settings.model_registry.url_placeholder":"http(s)://… 或 pave(s)://…","settings.model_registry.tier":"等級","settings.model_registry.tier_placeholder":"例如 fast、premium","settings.model_registry.limit_context":"上下文限制","settings.model_registry.limit_output":"輸出限制","settings.model_registry.cost_input":"輸入成本($/1M token)","settings.model_registry.cost_output":"輸出成本($/1M token)","settings.model_registry.save":"儲存","settings.model_registry.saving":"儲存中...","settings.model_registry.cancel":"取消","settings.model_registry.add":"新增","settings.model_registry.adding":"新增中...","settings.model_registry.edit":"編輯模型","settings.model_registry.delete":"刪除模型","settings.model_registry.delete_confirm":"從登錄檔移除模型「{name}」?","settings.model_registry.loading":"載入模型登錄檔...","settings.model_registry.load_error":"載入登錄檔失敗:{error}","settings.model_registry.context_k":"{value}K 上下文","settings.model_registry.target":"別名目標 (選填)","settings.model_registry.target_placeholder":"例如 github-copilot/claude-opus-4.7","settings.model_registry.target_hint":"若有填寫,此項目為別名 — 選用時會路由到目標模型。留空表示獨立模型並使用自己的端點 URL。","settings.model_registry.spec":"模型規格","settings.model_registry.spec_placeholder":"例如 github-copilot/claude-opus-4.7 或 pave://host/path?model=…","settings.model_registry.spec_hint":"輸入 provider/model 別名 (例如 github-copilot/claude-opus-4.7) 或完整的 pave://、paves://、http://、https:// URL。系統會自動辨識 URL。","settings.model_registry.kind_alias":"別名","settings.model_registry.advanced":"進階 (限制與費用)","settings.model_registry.error_name_required":"模型名稱為必填","settings.model_registry.error_name_reserved":"模型名稱「{name}」為保留字","settings.model_registry.error_name_exists":"已存在名為「{name}」的模型","settings.model_registry.error_rename_cleanup":"已重新命名,但無法移除舊項目: {error}","settings.custom_model":"自訂模型...","settings.custom_model_placeholder":"輸入自訂模型識別碼(例如 provider/model-name)","sidebar.conversations":"對話","sidebar.delete":"刪除","sidebar.delete_all":"刪除所有對話","sidebar.delete_all_confirm":"刪除這裡列出的對話?屬於其他應用程式的工作階段不會被刪除。此操作無法復原。","sidebar.delete_all_title":"刪除所有工作階段","sidebar.delete_confirm":"刪除此對話?","sidebar.delete_title":"刪除工作階段","sidebar.hide":"隱藏側邊欄","sidebar.load_more":"載入更多","sidebar.no_conversations":"暫無對話","sidebar.no_matches":"無匹配","sidebar.rename":"重新命名","sidebar.regenerate_title":"重新產生標題","sidebar.send_to_session":"傳送至其他工作階段","send_to_session.title":"傳送至其他工作階段","send_to_session.target_label":"傳送給","send_to_session.message_label":"訊息","send_to_session.delivery_note":"由開啟該工作階段的應用程式接收,通常在數秒內。接收的應用程式可能不是目前這一個。","send_to_session.queued":"已排入佇列,將由開啟該工作階段的應用程式接手處理。","send_to_session.no_targets":"沒有其他可傳送的工作階段。","send_to_session.send":"傳送","send_to_session.sending":"傳送中...","send_to_session.cancel":"取消","send_to_session.close":"關閉","sidebar.search_placeholder":"搜尋對話...","sidebar.session_processing":"工作階段處理中","sidebar.more_actions":"更多操作","sidebar.age_now":"剛剛","sidebar.age_minutes":"{n} 分","sidebar.age_hours":"{n} 小時","sidebar.age_days":"{n} 天","sidebar.age_weeks":"{n} 週","sidebar.show":"顯示對話列表","sidebar.terminal":"終端機","sidebar.studio":"PAVE Studio","sidebar.acp":"已連線的編輯器","sidebar.legacy_sessions":"早期工作階段","sidebar.untitled":"未命名","sidebar.pin":"置頂","sidebar.unpin":"取消置頂","sidebar.archive":"封存","sidebar.unarchive":"取消封存","sidebar.confirmArchive":"封存此工作階段?它將從側邊欄隱藏。","sidebar.show_archived":"顯示封存","sidebar.hide_archived":"隱藏封存","sidebar.pinned":"已置頂","sidebar.today":"今天","sidebar.yesterday":"昨天","sidebar.this_week":"本週","sidebar.this_month":"本月","sidebar.older":"更早","sidebar.other":"其他","sidebar.archived":"已封存","sidebar.export":"匯出為 YAML","sidebar.import":"匯入工作階段","sidebar.drop_to_import":"拖放工作階段檔案以匯入","import.invalid_file_type":"僅支援匯入 .yaml 或 .yml 工作階段檔案","import.file_too_large":"匯入檔案過大(最大 10MB)","import.read_error":"讀取檔案失敗,請重試。","skills.back_to_chat":"返回對話","skills.cancel":"取消","skills.clear_all":"全部清除","skills.clear_confirm":"清除 {skill} 的所有憑證?","skills.clear_title":"清除憑證","skills.close":"關閉","skills.close_credential_editor":"關閉憑證編輯器","skills.configure":"設定","skills.configure_skill":"設定 {skill}","skills.configured":"已設定","skills.current_value":"(目前:{value})","skills.enter_token":"請輸入至少一個令牌值","skills.enter_value":"輸入值...","skills.install":"安裝","skills.installed":"已安裝","skills.installed_count":"{installed} 已安裝,{available} 可用","skills.installing":"安裝中...","skills.install_failed":"安裝失敗:{error}","skills.leave_blank":"留空保持目前值","skills.load_installed_failed":"載入已安裝技能失敗:{error}","skills.load_marketplace_failed":"載入市集失敗:{error}","skills.needs_setup":"需要設定","skills.no_credentials_needed":"此技能不需要任何憑證。","skills.no_description":"暫無描述","skills.no_match":"沒有符合搜尋的技能。","skills.no_skills":"找不到技能。","skills.not_installed":"未安裝","skills.oauth_connect":"連接 {provider}","skills.oauth_connect_hint":"使用 OAuth 進行 {provider} 驗證。點擊下方按鈕開啟授權頁面。","skills.oauth_connected":"已連接 {provider}","skills.oauth_connecting":"連接中...","skills.oauth_needs_credentials":"請先在上方輸入 Client ID 和 Client Secret,然後才能連接 {provider}。","skills.save":"儲存","skills.saving":"儲存中...","skills.search_placeholder":"搜尋技能...","skills.skill_management":"技能管理","skills.subtitle":"管理AI工具能力","skills.tab_all":"全部","skills.tab_available":"可用","skills.tab_installed":"已安裝","skills.tab_marketplace":"市集","skills.title":"技能","skills.check_updates":"檢查更新","skills.checking_updates":"檢查中...","skills.update":"更新","skills.updating":"更新中...","skills.update_available":"可更新至 v{version}","skills.update_success":"已更新至 v{version}","skills.update_failed":"更新失敗","skills.up_to_date":"已是最新版本","skills.updates_available":"有 {count} 個更新","skills.no_updates":"所有技能都是最新版本","skills.uninstall":"移除","skills.uninstall_title":"移除技能","skills.uninstall_confirm":"移除 {skill}?已保存的憑證資訊將被保留。","skills.uninstalling":"移除中...","skills.uninstall_failed":"移除失敗:{error}","skills.toggle_title":"管理本會話的技能","skills.toggle_header":"會話技能","skills.toggle_hint":"僅對此聊天開啓/關閉技能","skills.builtin_tools":"內建工具","skills.agent_comm":"代理通訊","skills.default":"預設","skills.default_for_new_sessions":"新會話預設啟用","skills.reset_to_defaults":"重置為預設","auth.device_code_title":"GitHub Copilot 認証","auth.device_code_instructions":"開啟 {url} 並輸入驗證碼: {code}","auth.device_code_waiting":"等待授權中...","task.activity":"活動","task.awaiting":"等待核准","task.completed":"已完成","task.error":"錯誤","task.no_active":"沒有活動任務。傳送訊息開始使用。","task.processing":"處理中...","task.tool_bash":"Bash","task.tool_edit":"編輯","task.tool_editing":"正在編輯 {target}","task.tool_glob":"Glob","task.tool_glob_desc":"搜尋檔案","task.tool_grep":"Grep","task.tool_grep_desc":"搜尋程式碼","task.tool_read":"讀取","task.tool_reading":"正在讀取 {target}","task.tool_write":"寫入","task.tool_writing":"正在寫入 {target}","task.working":"處理中...","terminal.decrease_font":"縮小字體","terminal.increase_font":"放大字體","terminal.matrix_mode":"矩陣","terminal.no_output":"暫無終端機輸出","terminal.prompt":"$","theme.dark":"切換到深色模式","theme.light":"切換到淺色模式","time.days":"{count}天","time.hours":"{count}小時","time.just_now":"剛剛","time.milliseconds":"{count}毫秒","time.minutes":"{count}分鐘","time.seconds":"{count}秒","token.cache_read":"快取讀取","token.cache_write":"快取寫入","token.generating":"產生中...","token.idle":"閒置","token.input":"輸入","token.model":"模型","token.output":"輸出","token.session_cost":"工作階段","token.tokens":"tokens","token.total_cost":"總費用","token_usage.generating":"生成中...","token_usage.idle":"閒置","token_usage.messages":"訊息","token_usage.model":"模型","token_usage.originally":"原始模型","token_usage.session_info":"工作階段資訊","token_usage.status":"狀態","tool.completed":"完成","tool.error":"錯誤","tool.running":"執行中...","tool.tool":"工具","user_menu.agents":"代理管理","user_menu.pricing":"Token 定價","user_menu.settings":"設定","user_menu.sign_out":"登出","user_menu.skills":"技能管理","user_menu.title":"使用者選單","user_inbox.clear_all":"清除全部","user_inbox.delete":"刪除","user_inbox.empty":"暫無通知","user_inbox.high_priority":"緊急","user_inbox.mark_all_read":"全部標記為已讀","user_inbox.mark_unread":"標記為未讀","user_inbox.next_message":"下一封訊息","user_inbox.prev_message":"上一封訊息","user_inbox.title":"通知","user_inbox.unread":"未讀","user_inbox.view_agent":"檢視代理","user_inbox.view_message":"檢視訊息","user_inbox.close":"關閉","user_inbox.mark_read":"標記為已讀","voice.dismiss_error":"關閉語音錯誤","voice.downloading_model":"正在下載語音模型...","voice.loading_model":"正在載入語音模型...","voice.processing":"正在轉錄音訊...","voice.processing_backend":"正在雲端轉錄...","voice.processing_local":"正在本地轉錄...","voice.processing_local_server":"正在透過本地伺服器轉錄...","voice.source_backend":"已透過雲端轉錄","voice.source_local":"已在本地轉錄","voice.source_local_server":"已透過本地伺服器轉錄","voice.start_recording":"開始語音錄入","voice.stop_recording":"停止錄音","voice.pause_recording":"暫停錄音","voice.resume_recording":"繼續錄音","voice.select_asr_model":"選擇語音辨識模型","model_selector.title":"工作階段模型","model_selector.list_label":"可用模型","model_selector.use_default":"使用預設模型","model_selector.no_models":"暫無可用模型","model_selector.default_label":"預設","model_selector.lmstudio_loading":"正在載入 LM Studio 模型...","spotlight.title":"搜尋工作階段","spotlight.new_chat":"新對話","spotlight.placeholder":"依標題搜尋工作階段...","spotlight.results":"工作階段結果","spotlight.recent_sessions":"最近的工作階段","spotlight.no_results":"找不到工作階段","spotlight.searching":"搜尋中...","spotlight.untitled":"無標題工作階段","spotlight.current":"目前","spotlight.navigate":"導航","spotlight.select":"選擇","spotlight.close":"關閉","slashCommand.title":"技能","slashCommand.skills":"技能","slashCommand.commands":"指令","slashCommand.command":"指令","slashCommand.noResults":"找不到相符的指令","slashCommand.notConfigured":"未設定","slashCommand.back":"返回技能列表","slashCommand.navigate":"導航","slashCommand.select":"選擇","slashCommand.close":"關閉","slashCommand.hint":"輸入 / 查看可用指令","archiveViewer.title":"原始對話歷史","archiveViewer.messages":"則訊息","archiveViewer.loading":"載入已封存訊息中...","archiveViewer.noArchive":"此工作階段沒有可用的封存歷史。","archiveViewer.readOnly":"唯讀封存","archiveViewer.archivedAt":"封存於","archiveViewer.close":"關閉","archiveViewer.loadError":"載入封存失敗","archiveViewer.you":"你","archiveViewer.assistant":"助理","compaction.title":"對話已壓縮","compaction.showSummary":"顯示摘要","compaction.viewOriginal":"檢視原始歷史","compaction.viewInHistory":"在歷史中檢視","compaction.server.title":"伺服器自動壓縮","compaction.server.status":"伺服器已自動壓縮上下文","compaction.mode.client":"客戶端(PAVE 摘要)","compaction.mode.server":"伺服器(vllm-mlx 自動壓縮)","compaction.mode.auto":"自動(依提供者偵測)","compaction.banner_title":"此工作階段由先前的對話壓縮而來。","compaction.view_original":"檢視原始對話","compaction.dismiss":"關閉","compaction.user_message_label":"正在摘要我們的對話以提升效率。","compaction.boundary":"上下文已壓縮 — 上方訊息已不在模型的上下文中","compaction.show_history":"顯示壓縮前的 {count} 則訊息","compaction.hide_history":"隱藏壓縮前的訊息","credits.limit_reached":"額度已用完","credits.limit_message":"您的可用額度已用完。請加值以繼續使用服務。","credits.add_credits":"加值","credits.dismiss":"關閉","dlp.heading":"私隱與 DLP 設定","dlp.subtitle":"設定資料外洩防護規則及私隱模式","dlp.title":"DLP 設定","dlp.close":"關閉 DLP 設定","dlp.cancel":"取消","dlp.save":"儲存","dlp.saving":"儲存中...","dlp.discard_title":"放棄變更","dlp.discard_confirm":"確定放棄未儲存的 DLP 設定變更?","dlp.enable_label":"啟用資料外洩防護","dlp.enable_desc":"啟用後,發送給 AI 模型的訊息會先掃描敏感資料。","dlp.default_action_label":"偵測到敏感資料時的預設動作","dlp.default_action_desc":"「詢問」會顯示對話框,「一律轉送」會改用私隱模型,「僅警告」會記錄並繼續。","dlp.reroute_model_label":"私隱模型(轉送目標)","dlp.reroute_model_desc":"私隱模式使用的模型/供應商。格式:provider/modelID","dlp.builtin_patterns":"內建規則","dlp.builtin_desc":"恆常可用的偵測規則。可獨立啟用或停用。","dlp.user_patterns":"自訂規則","dlp.user_patterns_desc":"您定義的規則,儲存至政策檔案,重啟後仍有效。","dlp.no_user_patterns":"尚未新增自訂規則。請在下方新增。","dlp.add_pattern":"新增規則","dlp.pattern_name":"名稱","dlp.regex_pattern":"正則表達式","dlp.severity":"嚴重程度","dlp.add":"新增","dlp.remove_pattern":"移除規則","dlp.remove_pattern_aria":"移除規則 {name}","dlp.pattern_exists":"規則「{name}」已存在","dlp.name_required":"規則名稱為必填","dlp.regex_required":"正則表達式為必填","dlp.invalid_regex":"正則表達式語法無效","user_menu.privacy_dlp":"私隱與 DLP","chat.interrupted_badge":"Interrupted"};export{e as default};
package/web/index.html CHANGED
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
8
8
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
9
9
  <link rel="manifest" href="/manifest.json" />
10
- <script type="module" crossorigin src="/assets/index-CE7eCSFC.js"></script>
10
+ <script type="module" crossorigin src="/assets/index-DqSR1Tzn.js"></script>
11
11
  <link rel="stylesheet" crossorigin href="/assets/index-kSBS2QmP.css">
12
12
  </head>
13
13
  <body class="bg-white dark:bg-gray-950 text-gray-900 dark:text-gray-100">
@@ -1 +0,0 @@
1
- import{af as o,ag as n}from"./mermaid.core-D_mctH75.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-B-me927H.js";import{_ as i}from"./mermaid.core-D_mctH75.js";import"./chunk-5VM5RSS4-CxiGiUPn.js";import"./chunk-XXDRQBXY-kzilkm84.js";import"./chunk-KBJHAD2P-BkIlWgz1.js";import"./chunk-2GRJ4B5K-BOhrpN3g.js";import"./index-CE7eCSFC.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-B-me927H.js";import{_ as i}from"./mermaid.core-D_mctH75.js";import"./chunk-5VM5RSS4-CxiGiUPn.js";import"./chunk-XXDRQBXY-kzilkm84.js";import"./chunk-KBJHAD2P-BkIlWgz1.js";import"./chunk-2GRJ4B5K-BOhrpN3g.js";import"./index-CE7eCSFC.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};