@open-code-review/cli 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/dashboard/client/assets/{_basePickBy-BBPb8BJA.js → _basePickBy-BAlGnwHG.js} +1 -1
  2. package/dist/dashboard/client/assets/{_baseUniq-CFHdos6T.js → _baseUniq-CoauyOeL.js} +1 -1
  3. package/dist/dashboard/client/assets/{arc-BKGGWA2F.js → arc-DtS0aHfP.js} +1 -1
  4. package/dist/dashboard/client/assets/{architectureDiagram-VXUJARFQ-B_ovNjX1.js → architectureDiagram-VXUJARFQ-CnWmtRTh.js} +1 -1
  5. package/dist/dashboard/client/assets/{blockDiagram-VD42YOAC-C2M-avVp.js → blockDiagram-VD42YOAC-DgPp4oGV.js} +1 -1
  6. package/dist/dashboard/client/assets/{c4Diagram-YG6GDRKO-BtOBpAzH.js → c4Diagram-YG6GDRKO--LV4qQaE.js} +1 -1
  7. package/dist/dashboard/client/assets/channel-BU2129fl.js +1 -0
  8. package/dist/dashboard/client/assets/{chunk-4BX2VUAB-Cz2EbHPl.js → chunk-4BX2VUAB-BRglpc7Z.js} +1 -1
  9. package/dist/dashboard/client/assets/{chunk-55IACEB6-C8xpXw9G.js → chunk-55IACEB6-Bgx06_CV.js} +1 -1
  10. package/dist/dashboard/client/assets/{chunk-B4BG7PRW-BSRfOovX.js → chunk-B4BG7PRW-D6HN3Yiy.js} +1 -1
  11. package/dist/dashboard/client/assets/{chunk-DI55MBZ5-CEUbYQWn.js → chunk-DI55MBZ5-NH9EgN9T.js} +1 -1
  12. package/dist/dashboard/client/assets/{chunk-FMBD7UC4-5xWP6GRj.js → chunk-FMBD7UC4-xriO6WNP.js} +1 -1
  13. package/dist/dashboard/client/assets/{chunk-QN33PNHL-DfNCVcy8.js → chunk-QN33PNHL-CV1h6_Zl.js} +1 -1
  14. package/dist/dashboard/client/assets/{chunk-QZHKN3VN--OdToKKu.js → chunk-QZHKN3VN-CV4VzxNq.js} +1 -1
  15. package/dist/dashboard/client/assets/{chunk-TZMSLE5B-B_0K0Qso.js → chunk-TZMSLE5B-isdklocW.js} +1 -1
  16. package/dist/dashboard/client/assets/classDiagram-2ON5EDUG-CVftFGiR.js +1 -0
  17. package/dist/dashboard/client/assets/classDiagram-v2-WZHVMYZB-CVftFGiR.js +1 -0
  18. package/dist/dashboard/client/assets/clone-DC6LEEC5.js +1 -0
  19. package/dist/dashboard/client/assets/{cose-bilkent-S5V4N54A-Cc_Dmnxz.js → cose-bilkent-S5V4N54A-CCzlFSJf.js} +1 -1
  20. package/dist/dashboard/client/assets/{dagre-6UL2VRFP-DaAfvUXU.js → dagre-6UL2VRFP-DVN3PkjZ.js} +1 -1
  21. package/dist/dashboard/client/assets/{diagram-PSM6KHXK-7idwN0rC.js → diagram-PSM6KHXK-SzJVoSsb.js} +1 -1
  22. package/dist/dashboard/client/assets/{diagram-QEK2KX5R-D9j9H13n.js → diagram-QEK2KX5R-CgGn7ts-.js} +1 -1
  23. package/dist/dashboard/client/assets/{diagram-S2PKOQOG-SMF5SB0K.js → diagram-S2PKOQOG-Bz1ukSx8.js} +1 -1
  24. package/dist/dashboard/client/assets/{erDiagram-Q2GNP2WA-EVJ4Qa2F.js → erDiagram-Q2GNP2WA-CpstUTMZ.js} +1 -1
  25. package/dist/dashboard/client/assets/{flowDiagram-NV44I4VS-tZ7SFE77.js → flowDiagram-NV44I4VS-aYVydGhp.js} +1 -1
  26. package/dist/dashboard/client/assets/{ganttDiagram-JELNMOA3-DFSqguY7.js → ganttDiagram-JELNMOA3-Cb2DUSRk.js} +1 -1
  27. package/dist/dashboard/client/assets/{gitGraphDiagram-V2S2FVAM-CqHdP3HE.js → gitGraphDiagram-V2S2FVAM-BUOnwA2w.js} +1 -1
  28. package/dist/dashboard/client/assets/{graph-C0XnkNkk.js → graph-4X5ddhLp.js} +1 -1
  29. package/dist/dashboard/client/assets/index-CKWqYAfu.js +581 -0
  30. package/dist/dashboard/client/assets/{infoDiagram-HS3SLOUP-DlXZo9U2.js → infoDiagram-HS3SLOUP-BlMqcrwm.js} +1 -1
  31. package/dist/dashboard/client/assets/{journeyDiagram-XKPGCS4Q-CgC8_7eN.js → journeyDiagram-XKPGCS4Q-DF2ew7ju.js} +1 -1
  32. package/dist/dashboard/client/assets/{kanban-definition-3W4ZIXB7-BMAw_jNp.js → kanban-definition-3W4ZIXB7-BKQMx0-n.js} +1 -1
  33. package/dist/dashboard/client/assets/{layout-XjM3Q-ka.js → layout-DNcn2g9w.js} +1 -1
  34. package/dist/dashboard/client/assets/{linear-CMUrrr1X.js → linear-Bqy9gvqb.js} +1 -1
  35. package/dist/dashboard/client/assets/{mermaid-renderer-D2jYNs7K.js → mermaid-renderer-dJ71wgld.js} +4 -4
  36. package/dist/dashboard/client/assets/{mindmap-definition-VGOIOE7T-CL4hv-vg.js → mindmap-definition-VGOIOE7T-BARc8sqJ.js} +1 -1
  37. package/dist/dashboard/client/assets/{pieDiagram-ADFJNKIX-DTqv-1h1.js → pieDiagram-ADFJNKIX-CULlNZTd.js} +1 -1
  38. package/dist/dashboard/client/assets/{quadrantDiagram-AYHSOK5B-BpFlSW9N.js → quadrantDiagram-AYHSOK5B-BJEZPVe9.js} +1 -1
  39. package/dist/dashboard/client/assets/{requirementDiagram-UZGBJVZJ-BqYqqXL4.js → requirementDiagram-UZGBJVZJ-BhMsmUIs.js} +1 -1
  40. package/dist/dashboard/client/assets/{sankeyDiagram-TZEHDZUN-kEI9kntR.js → sankeyDiagram-TZEHDZUN-BYbNgogG.js} +1 -1
  41. package/dist/dashboard/client/assets/{sequenceDiagram-WL72ISMW-Cnu_1j-N.js → sequenceDiagram-WL72ISMW-MoM_NwWk.js} +1 -1
  42. package/dist/dashboard/client/assets/{stateDiagram-FKZM4ZOC-BoC-rqoG.js → stateDiagram-FKZM4ZOC-ditrlbM3.js} +1 -1
  43. package/dist/dashboard/client/assets/stateDiagram-v2-4FDKWEC3-SqoG2LCn.js +1 -0
  44. package/dist/dashboard/client/assets/{timeline-definition-IT6M3QCI-CXMWuzDL.js → timeline-definition-IT6M3QCI-DOAJyjuz.js} +1 -1
  45. package/dist/dashboard/client/assets/{treemap-GDKQZRPO-o9ZFgpbJ.js → treemap-GDKQZRPO-BBJkjnJl.js} +1 -1
  46. package/dist/dashboard/client/assets/{xychartDiagram-PRI3JC2R-CfIuUpeA.js → xychartDiagram-PRI3JC2R-CPW4s5vm.js} +1 -1
  47. package/dist/dashboard/client/index.html +1 -1
  48. package/dist/dashboard/server.js +157 -153
  49. package/dist/index.js +144 -68
  50. package/dist/lib/models.js +125 -50
  51. package/package.json +2 -2
  52. package/dist/dashboard/client/assets/channel-rgw7C1e7.js +0 -1
  53. package/dist/dashboard/client/assets/classDiagram-2ON5EDUG-DTGi7d9X.js +0 -1
  54. package/dist/dashboard/client/assets/classDiagram-v2-WZHVMYZB-DTGi7d9X.js +0 -1
  55. package/dist/dashboard/client/assets/clone-Cz7hswqi.js +0 -1
  56. package/dist/dashboard/client/assets/index-C3NEq704.js +0 -571
  57. package/dist/dashboard/client/assets/stateDiagram-v2-4FDKWEC3-COR3QD3v.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as yh,_ as En}from"./index-C3NEq704.js";import{bA as Th,bB as Rh,aU as dd,bk as vh,aY as Eh,aV as je,aA as Ah,aB as dl,ba as Sh,bd as fd,be as hd,bb as kh,bp as fl,aD as Yn,aE as ae,aW as Ch,aQ as wh}from"./mermaid-renderer-D2jYNs7K.js";import{k as kr,j as Fc,g as Pr,S as Nh,w as bh,x as _h,c as pd,v as $e,y as md,l as Ih,z as Ph,A as $h,B as Lh,C as Oh,a as gd,d as q,i as tn,r as Je,f as ht,D as Fe}from"./_baseUniq-CFHdos6T.js";import{j as Gc,m as M,d as xh,f as yt,g as Cr,h as z,i as Uc,l as jn,e as Dh}from"./_basePickBy-BBPb8BJA.js";import{c as Be}from"./clone-Cz7hswqi.js";var Mh=Object.prototype,Fh=Mh.hasOwnProperty,ft=Th(function(t,e){if(Rh(e)||dd(e)){vh(e,kr(e),t);return}for(var n in e)Fh.call(e,n)&&Eh(t,n,e[n])});function yd(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),n=n>i?i:n,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=t[r+e];return s}function Gi(t){for(var e=-1,n=t==null?0:t.length,r=0,i=[];++e<n;){var s=t[e];s&&(i[r++]=s)}return i}function Gh(t,e,n,r){for(var i=-1,s=t==null?0:t.length;++i<s;){var a=t[i];e(r,a,n(a),t)}return r}function Uh(t,e,n,r){return Fc(t,function(i,s,a){e(r,i,n(i),a)}),r}function qh(t,e){return function(n,r){var i=je(n)?Gh:Uh,s=e?e():{};return i(n,t,Pr(r),s)}}var jh=200;function zh(t,e,n,r){var i=-1,s=bh,a=!0,o=t.length,c=[],l=e.length;if(!o)return c;e.length>=jh&&(s=_h,a=!1,e=new Nh(e));e:for(;++i<o;){var u=t[i],f=u;if(u=u!==0?u:0,a&&f===f){for(var m=l;m--;)if(e[m]===f)continue e;c.push(u)}else s(e,f,r)||c.push(u)}return c}var fa=Ah(function(t,e){return dl(t)?zh(t,pd(e,1,dl,!0)):[]});function Ge(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:Gc(e),yd(t,e<0?0:e,r)):[]}function wi(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:Gc(e),e=r-e,yd(t,0,e<0?0:e)):[]}function Bh(t,e){for(var n=-1,r=t==null?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function Wh(t,e){var n=!0;return Fc(t,function(r,i,s){return n=!!e(r,i,s),n}),n}function kt(t,e,n){var r=je(t)?Bh:Wh;return r(t,Pr(e))}function wt(t){return t&&t.length?t[0]:void 0}function dt(t,e){return pd(M(t,e))}var Vh=Object.prototype,Kh=Vh.hasOwnProperty,Hh=qh(function(t,e,n){Kh.call(t,n)?t[n].push(e):Sh(t,n,[e])}),Yh="[object String]";function nt(t){return typeof t=="string"||!je(t)&&fd(t)&&hd(t)==Yh}var Xh=Math.max;function et(t,e,n,r){t=dd(t)?t:$e(t),n=n?Gc(n):0;var i=t.length;return n<0&&(n=Xh(i+n,0)),nt(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&md(t,e,n)>-1}function hl(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var i=0;return md(t,e,i)}var Jh="[object RegExp]";function Qh(t){return fd(t)&&hd(t)==Jh}var pl=fl&&fl.isRegExp,nn=pl?kh(pl):Qh,Zh="Expected a function";function ep(t){if(typeof t!="function")throw new TypeError(Zh);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function Nt(t,e){if(t==null)return{};var n=Ih(Ph(t),function(r){return[r]});return e=Pr(e),xh(t,n,function(r,i){return e(r,i[0])})}function ha(t,e){var n=je(t)?$h:Lh;return n(t,ep(Pr(e)))}function tp(t,e){var n;return Fc(t,function(r,i,s){return n=e(r,i,s),!n}),!!n}function Td(t,e,n){var r=je(t)?Oh:tp;return r(t,Pr(e))}function qc(t){return t&&t.length?gd(t):[]}function np(t,e){return t&&t.length?gd(t,Pr(e)):[]}function We(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function St(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"&&"ref"in t}function un(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"&&"items"in t}function rp(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function Yr(t){return typeof t=="object"&&t!==null&&typeof t.info=="object"&&typeof t.message=="string"}class Rd{constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(e){const n=this.types[e.container.$type];if(!n)throw new Error(`Type ${e.container.$type||"undefined"} not found.`);const r=n.properties[e.property]?.referenceType;if(!r)throw new Error(`Property ${e.property||"undefined"} of type ${e.container.$type} is not a reference.`);return r}getTypeMetaData(e){const n=this.types[e];return n||{name:e,properties:{},superTypes:[]}}isInstance(e,n){return We(e)&&this.isSubtype(e.$type,n)}isSubtype(e,n){if(e===n)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[n];if(i!==void 0)return i;{const s=this.types[e],a=s?s.superTypes.some(o=>this.isSubtype(o,n)):!1;return r[n]=a,a}}getAllSubTypes(e){const n=this.allSubtypes[e];if(n)return n;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Ni(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function vd(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function Ed(t){return Ni(t)&&typeof t.fullText=="string"}class Ue{constructor(e,n){this.startFn=e,this.nextFn=n}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let n=0,r=e.next();for(;!r.done;)n++,r=e.next();return n}toArray(){const e=[],n=this.iterator();let r;do r=n.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,n){const r=this.map(i=>[e?e(i):i,n?n(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Ue(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),n=>{let r;if(!n.firstDone){do if(r=this.nextFn(n.first),!r.done)return r;while(!r.done);n.firstDone=!0}do if(r=n.iterator.next(),!r.done)return r;while(!r.done);return lt})}join(e=","){const n=this.iterator();let r="",i,s=!1;do i=n.next(),i.done||(s&&(r+=e),r+=ip(i.value)),s=!0;while(!i.done);return r}indexOf(e,n=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=n&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(!e(r.value))return!1;r=n.next()}return!0}some(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return!0;r=n.next()}return!1}forEach(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;)e(i.value,r),i=n.next(),r++}map(e){return new Ue(this.startFn,n=>{const{done:r,value:i}=this.nextFn(n);return r?lt:{done:!1,value:e(i)}})}filter(e){return new Ue(this.startFn,n=>{let r;do if(r=this.nextFn(n),!r.done&&e(r.value))return r;while(!r.done);return lt})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,n){const r=this.iterator();let i=n,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,n){return this.recursiveReduce(this.iterator(),e,n)}recursiveReduce(e,n,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,n,r);return s===void 0?i.value:n(s,i.value)}find(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return r.value;r=n.next()}}findIndex(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(e(i.value))return r;i=n.next(),r++}return-1}includes(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(r.value===e)return!0;r=n.next()}return!1}flatMap(e){return new Ue(()=>({this:this.startFn()}),n=>{do{if(n.iterator){const s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(n.this);if(!r){const s=e(i);if(zs(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(n.iterator);return lt})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const n=e>1?this.flat(e-1):this;return new Ue(()=>({this:n.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=n.nextFn(r.this);if(!i)if(zs(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return lt})}head(){const n=this.iterator().next();if(!n.done)return n.value}tail(e=1){return new Ue(()=>{const n=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(e){return new Ue(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>e?lt:this.nextFn(n.state)))}distinct(e){return new Ue(()=>({set:new Set,internalState:this.startFn()}),n=>{let r;do if(r=this.nextFn(n.internalState),!r.done){const i=e?e(r.value):r.value;if(!n.set.has(i))return n.set.add(i),r}while(!r.done);return lt})}exclude(e,n){const r=new Set;for(const i of e){const s=n?n(i):i;r.add(s)}return this.filter(i=>{const s=n?n(i):i;return!r.has(s)})}}function ip(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function zs(t){return!!t&&typeof t[Symbol.iterator]=="function"}const Ad=new Ue(()=>{},()=>lt),lt=Object.freeze({done:!0,value:void 0});function me(...t){if(t.length===1){const e=t[0];if(e instanceof Ue)return e;if(zs(e))return new Ue(()=>e[Symbol.iterator](),n=>n.next());if(typeof e.length=="number")return new Ue(()=>({index:0}),n=>n.index<e.length?{done:!1,value:e[n.index++]}:lt)}return t.length>1?new Ue(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const n=e.iterator.next();if(!n.done)return n;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<t.length){const n=t[e.collIndex++];zs(n)?e.iterator=n[Symbol.iterator]():n&&typeof n.length=="number"&&(e.array=n)}}while(e.iterator||e.array||e.collIndex<t.length);return lt}):Ad}class jc extends Ue{constructor(e,n,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[n(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(n(a.value)[Symbol.iterator]()),a}return lt})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var eo;(function(t){function e(s){return s.reduce((a,o)=>a+o,0)}t.sum=e;function n(s){return s.reduce((a,o)=>a*o,0)}t.product=n;function r(s){return s.reduce((a,o)=>Math.min(a,o))}t.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}t.max=i})(eo||(eo={}));function to(t,e={}){for(const[n,r]of Object.entries(t))n.startsWith("$")||(Array.isArray(r)?r.forEach((i,s)=>{We(i)&&(i.$container=t,i.$containerProperty=n,i.$containerIndex=s,e.deep&&to(i,e))}):We(r)&&(r.$container=t,r.$containerProperty=n,e.deep&&to(r,e)))}function pa(t,e){let n=t;for(;n;){if(e(n))return n;n=n.$container}}function Qt(t){const n=bs(t).$document;if(!n)throw new Error("AST node has no document.");return n}function bs(t){for(;t.$container;)t=t.$container;return t}function ml(t){return St(t)?t.ref?[t.ref]:[]:un(t)?t.items.map(e=>e.ref):[]}function zc(t,e){if(!t)throw new Error("Node must be an AstNode.");const n=e?.range;return new Ue(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=t[i];if(We(s)){if(r.keyIndex++,gl(s,n))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(We(o)&&gl(o,n))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return lt})}function Ui(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new jc(t,n=>zc(n,e))}function Zt(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new jc(t,n=>zc(n,e),{includeRoot:!0})}function gl(t,e){if(!e)return!0;const n=t.$cstNode?.range;return n?Np(n,e):!1}function Bs(t){return new Ue(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const n=e.keys[e.keyIndex];if(!n.startsWith("$")){const r=t[n];if(St(r)||un(r))return e.keyIndex++,{done:!1,value:{reference:r,container:t,property:n}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(St(s)||un(r))return{done:!1,value:{reference:s,container:t,property:n,index:i}}}e.arrayIndex=0}}e.keyIndex++}return lt})}function sp(t,e){const n=t.getTypeMetaData(e.$type),r=e;for(const i of Object.values(n.properties))i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Sd(i.defaultValue))}function Sd(t){return Array.isArray(t)?[...t.map(Sd)]:t}const ct={$type:"AbstractElement",cardinality:"cardinality"};function ap(t){return ee.isInstance(t,ct.$type)}const _s={$type:"AbstractParserRule"};function qi(t){return ee.isInstance(t,_s.$type)}const hs={$type:"AbstractRule"},Et={$type:"AbstractType"},On={$type:"Action",cardinality:"cardinality",feature:"feature",inferredType:"inferredType",operator:"operator",type:"type"};function ma(t){return ee.isInstance(t,On.$type)}const Is={$type:"Alternatives",cardinality:"cardinality",elements:"elements"};function kd(t){return ee.isInstance(t,Is.$type)}const yl={$type:"ArrayLiteral",elements:"elements"},Tl={$type:"ArrayType",elementType:"elementType"},xn={$type:"Assignment",cardinality:"cardinality",feature:"feature",operator:"operator",predicate:"predicate",terminal:"terminal"};function zn(t){return ee.isInstance(t,xn.$type)}const no={$type:"BooleanLiteral",true:"true"};function op(t){return ee.isInstance(t,no.$type)}const Dn={$type:"CharacterRange",cardinality:"cardinality",left:"left",lookahead:"lookahead",parenthesized:"parenthesized",right:"right"};function cp(t){return ee.isInstance(t,Dn.$type)}const nr={$type:"Condition"},Ps={$type:"Conjunction",left:"left",right:"right"};function lp(t){return ee.isInstance(t,Ps.$type)}const Mn={$type:"CrossReference",cardinality:"cardinality",deprecatedSyntax:"deprecatedSyntax",isMulti:"isMulti",terminal:"terminal",type:"type"};function ga(t){return ee.isInstance(t,Mn.$type)}const $s={$type:"Disjunction",left:"left",right:"right"};function up(t){return ee.isInstance(t,$s.$type)}const ro={$type:"EndOfFile",cardinality:"cardinality"};function dp(t){return ee.isInstance(t,ro.$type)}const An={$type:"Grammar",imports:"imports",interfaces:"interfaces",isDeclared:"isDeclared",name:"name",rules:"rules",types:"types"},Rl={$type:"GrammarImport",path:"path"},cr={$type:"Group",cardinality:"cardinality",elements:"elements",guardCondition:"guardCondition",predicate:"predicate"};function Bc(t){return ee.isInstance(t,cr.$type)}const io={$type:"InferredType",name:"name"};function Cd(t){return ee.isInstance(t,io.$type)}const Vt={$type:"InfixRule",call:"call",dataType:"dataType",inferredType:"inferredType",name:"name",operators:"operators",parameters:"parameters",returnType:"returnType"};function Ws(t){return ee.isInstance(t,Vt.$type)}const Ia={$type:"InfixRuleOperatorList",associativity:"associativity",operators:"operators"},vl={$type:"InfixRuleOperators",precedences:"precedences"},gi={$type:"Interface",attributes:"attributes",name:"name",superTypes:"superTypes"};function fp(t){return ee.isInstance(t,gi.$type)}const yi={$type:"Keyword",cardinality:"cardinality",predicate:"predicate",value:"value"};function Bn(t){return ee.isInstance(t,yi.$type)}const ps={$type:"NamedArgument",calledByName:"calledByName",parameter:"parameter",value:"value"},lr={$type:"NegatedToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function hp(t){return ee.isInstance(t,lr.$type)}const so={$type:"Negation",value:"value"};function pp(t){return ee.isInstance(t,so.$type)}const El={$type:"NumberLiteral",value:"value"},ms={$type:"Parameter",name:"name"},ao={$type:"ParameterReference",parameter:"parameter"};function mp(t){return ee.isInstance(t,ao.$type)}const Pt={$type:"ParserRule",dataType:"dataType",definition:"definition",entry:"entry",fragment:"fragment",inferredType:"inferredType",name:"name",parameters:"parameters",returnType:"returnType"};function sn(t){return ee.isInstance(t,Pt.$type)}const Pa={$type:"ReferenceType",isMulti:"isMulti",referenceType:"referenceType"},ur={$type:"RegexToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",regex:"regex"};function gp(t){return ee.isInstance(t,ur.$type)}const oo={$type:"ReturnType",name:"name"};function yp(t){return ee.isInstance(t,oo.$type)}const dr={$type:"RuleCall",arguments:"arguments",cardinality:"cardinality",predicate:"predicate",rule:"rule"};function Wn(t){return ee.isInstance(t,dr.$type)}const Ti={$type:"SimpleType",primitiveType:"primitiveType",stringType:"stringType",typeRef:"typeRef"};function Tp(t){return ee.isInstance(t,Ti.$type)}const Al={$type:"StringLiteral",value:"value"},fr={$type:"TerminalAlternatives",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function Rp(t){return ee.isInstance(t,fr.$type)}const gt={$type:"TerminalElement",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"},hr={$type:"TerminalGroup",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function vp(t){return ee.isInstance(t,hr.$type)}const ln={$type:"TerminalRule",definition:"definition",fragment:"fragment",hidden:"hidden",name:"name",type:"type"};function an(t){return ee.isInstance(t,ln.$type)}const pr={$type:"TerminalRuleCall",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",rule:"rule"};function Ep(t){return ee.isInstance(t,pr.$type)}const Ls={$type:"Type",name:"name",type:"type"};function Ap(t){return ee.isInstance(t,Ls.$type)}const Xr={$type:"TypeAttribute",defaultValue:"defaultValue",isOptional:"isOptional",name:"name",type:"type"},Jr={$type:"TypeDefinition"},Sl={$type:"UnionType",types:"types"},Os={$type:"UnorderedGroup",cardinality:"cardinality",elements:"elements"};function wd(t){return ee.isInstance(t,Os.$type)}const mr={$type:"UntilToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function Sp(t){return ee.isInstance(t,mr.$type)}const Qr={$type:"ValueLiteral"},Ri={$type:"Wildcard",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};function kp(t){return ee.isInstance(t,Ri.$type)}class Nd extends Rd{constructor(){super(...arguments),this.types={AbstractElement:{name:ct.$type,properties:{cardinality:{name:ct.cardinality}},superTypes:[]},AbstractParserRule:{name:_s.$type,properties:{},superTypes:[hs.$type,Et.$type]},AbstractRule:{name:hs.$type,properties:{},superTypes:[]},AbstractType:{name:Et.$type,properties:{},superTypes:[]},Action:{name:On.$type,properties:{cardinality:{name:On.cardinality},feature:{name:On.feature},inferredType:{name:On.inferredType},operator:{name:On.operator},type:{name:On.type,referenceType:Et.$type}},superTypes:[ct.$type]},Alternatives:{name:Is.$type,properties:{cardinality:{name:Is.cardinality},elements:{name:Is.elements,defaultValue:[]}},superTypes:[ct.$type]},ArrayLiteral:{name:yl.$type,properties:{elements:{name:yl.elements,defaultValue:[]}},superTypes:[Qr.$type]},ArrayType:{name:Tl.$type,properties:{elementType:{name:Tl.elementType}},superTypes:[Jr.$type]},Assignment:{name:xn.$type,properties:{cardinality:{name:xn.cardinality},feature:{name:xn.feature},operator:{name:xn.operator},predicate:{name:xn.predicate},terminal:{name:xn.terminal}},superTypes:[ct.$type]},BooleanLiteral:{name:no.$type,properties:{true:{name:no.true,defaultValue:!1}},superTypes:[nr.$type,Qr.$type]},CharacterRange:{name:Dn.$type,properties:{cardinality:{name:Dn.cardinality},left:{name:Dn.left},lookahead:{name:Dn.lookahead},parenthesized:{name:Dn.parenthesized,defaultValue:!1},right:{name:Dn.right}},superTypes:[gt.$type]},Condition:{name:nr.$type,properties:{},superTypes:[]},Conjunction:{name:Ps.$type,properties:{left:{name:Ps.left},right:{name:Ps.right}},superTypes:[nr.$type]},CrossReference:{name:Mn.$type,properties:{cardinality:{name:Mn.cardinality},deprecatedSyntax:{name:Mn.deprecatedSyntax,defaultValue:!1},isMulti:{name:Mn.isMulti,defaultValue:!1},terminal:{name:Mn.terminal},type:{name:Mn.type,referenceType:Et.$type}},superTypes:[ct.$type]},Disjunction:{name:$s.$type,properties:{left:{name:$s.left},right:{name:$s.right}},superTypes:[nr.$type]},EndOfFile:{name:ro.$type,properties:{cardinality:{name:ro.cardinality}},superTypes:[ct.$type]},Grammar:{name:An.$type,properties:{imports:{name:An.imports,defaultValue:[]},interfaces:{name:An.interfaces,defaultValue:[]},isDeclared:{name:An.isDeclared,defaultValue:!1},name:{name:An.name},rules:{name:An.rules,defaultValue:[]},types:{name:An.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:Rl.$type,properties:{path:{name:Rl.path}},superTypes:[]},Group:{name:cr.$type,properties:{cardinality:{name:cr.cardinality},elements:{name:cr.elements,defaultValue:[]},guardCondition:{name:cr.guardCondition},predicate:{name:cr.predicate}},superTypes:[ct.$type]},InferredType:{name:io.$type,properties:{name:{name:io.name}},superTypes:[Et.$type]},InfixRule:{name:Vt.$type,properties:{call:{name:Vt.call},dataType:{name:Vt.dataType},inferredType:{name:Vt.inferredType},name:{name:Vt.name},operators:{name:Vt.operators},parameters:{name:Vt.parameters,defaultValue:[]},returnType:{name:Vt.returnType,referenceType:Et.$type}},superTypes:[_s.$type]},InfixRuleOperatorList:{name:Ia.$type,properties:{associativity:{name:Ia.associativity},operators:{name:Ia.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:vl.$type,properties:{precedences:{name:vl.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:gi.$type,properties:{attributes:{name:gi.attributes,defaultValue:[]},name:{name:gi.name},superTypes:{name:gi.superTypes,defaultValue:[],referenceType:Et.$type}},superTypes:[Et.$type]},Keyword:{name:yi.$type,properties:{cardinality:{name:yi.cardinality},predicate:{name:yi.predicate},value:{name:yi.value}},superTypes:[ct.$type]},NamedArgument:{name:ps.$type,properties:{calledByName:{name:ps.calledByName,defaultValue:!1},parameter:{name:ps.parameter,referenceType:ms.$type},value:{name:ps.value}},superTypes:[]},NegatedToken:{name:lr.$type,properties:{cardinality:{name:lr.cardinality},lookahead:{name:lr.lookahead},parenthesized:{name:lr.parenthesized,defaultValue:!1},terminal:{name:lr.terminal}},superTypes:[gt.$type]},Negation:{name:so.$type,properties:{value:{name:so.value}},superTypes:[nr.$type]},NumberLiteral:{name:El.$type,properties:{value:{name:El.value}},superTypes:[Qr.$type]},Parameter:{name:ms.$type,properties:{name:{name:ms.name}},superTypes:[]},ParameterReference:{name:ao.$type,properties:{parameter:{name:ao.parameter,referenceType:ms.$type}},superTypes:[nr.$type]},ParserRule:{name:Pt.$type,properties:{dataType:{name:Pt.dataType},definition:{name:Pt.definition},entry:{name:Pt.entry,defaultValue:!1},fragment:{name:Pt.fragment,defaultValue:!1},inferredType:{name:Pt.inferredType},name:{name:Pt.name},parameters:{name:Pt.parameters,defaultValue:[]},returnType:{name:Pt.returnType,referenceType:Et.$type}},superTypes:[_s.$type]},ReferenceType:{name:Pa.$type,properties:{isMulti:{name:Pa.isMulti,defaultValue:!1},referenceType:{name:Pa.referenceType}},superTypes:[Jr.$type]},RegexToken:{name:ur.$type,properties:{cardinality:{name:ur.cardinality},lookahead:{name:ur.lookahead},parenthesized:{name:ur.parenthesized,defaultValue:!1},regex:{name:ur.regex}},superTypes:[gt.$type]},ReturnType:{name:oo.$type,properties:{name:{name:oo.name}},superTypes:[]},RuleCall:{name:dr.$type,properties:{arguments:{name:dr.arguments,defaultValue:[]},cardinality:{name:dr.cardinality},predicate:{name:dr.predicate},rule:{name:dr.rule,referenceType:hs.$type}},superTypes:[ct.$type]},SimpleType:{name:Ti.$type,properties:{primitiveType:{name:Ti.primitiveType},stringType:{name:Ti.stringType},typeRef:{name:Ti.typeRef,referenceType:Et.$type}},superTypes:[Jr.$type]},StringLiteral:{name:Al.$type,properties:{value:{name:Al.value}},superTypes:[Qr.$type]},TerminalAlternatives:{name:fr.$type,properties:{cardinality:{name:fr.cardinality},elements:{name:fr.elements,defaultValue:[]},lookahead:{name:fr.lookahead},parenthesized:{name:fr.parenthesized,defaultValue:!1}},superTypes:[gt.$type]},TerminalElement:{name:gt.$type,properties:{cardinality:{name:gt.cardinality},lookahead:{name:gt.lookahead},parenthesized:{name:gt.parenthesized,defaultValue:!1}},superTypes:[ct.$type]},TerminalGroup:{name:hr.$type,properties:{cardinality:{name:hr.cardinality},elements:{name:hr.elements,defaultValue:[]},lookahead:{name:hr.lookahead},parenthesized:{name:hr.parenthesized,defaultValue:!1}},superTypes:[gt.$type]},TerminalRule:{name:ln.$type,properties:{definition:{name:ln.definition},fragment:{name:ln.fragment,defaultValue:!1},hidden:{name:ln.hidden,defaultValue:!1},name:{name:ln.name},type:{name:ln.type}},superTypes:[hs.$type]},TerminalRuleCall:{name:pr.$type,properties:{cardinality:{name:pr.cardinality},lookahead:{name:pr.lookahead},parenthesized:{name:pr.parenthesized,defaultValue:!1},rule:{name:pr.rule,referenceType:ln.$type}},superTypes:[gt.$type]},Type:{name:Ls.$type,properties:{name:{name:Ls.name},type:{name:Ls.type}},superTypes:[Et.$type]},TypeAttribute:{name:Xr.$type,properties:{defaultValue:{name:Xr.defaultValue},isOptional:{name:Xr.isOptional,defaultValue:!1},name:{name:Xr.name},type:{name:Xr.type}},superTypes:[]},TypeDefinition:{name:Jr.$type,properties:{},superTypes:[]},UnionType:{name:Sl.$type,properties:{types:{name:Sl.types,defaultValue:[]}},superTypes:[Jr.$type]},UnorderedGroup:{name:Os.$type,properties:{cardinality:{name:Os.cardinality},elements:{name:Os.elements,defaultValue:[]}},superTypes:[ct.$type]},UntilToken:{name:mr.$type,properties:{cardinality:{name:mr.cardinality},lookahead:{name:mr.lookahead},parenthesized:{name:mr.parenthesized,defaultValue:!1},terminal:{name:mr.terminal}},superTypes:[gt.$type]},ValueLiteral:{name:Qr.$type,properties:{},superTypes:[]},Wildcard:{name:Ri.$type,properties:{cardinality:{name:Ri.cardinality},lookahead:{name:Ri.lookahead},parenthesized:{name:Ri.parenthesized,defaultValue:!1}},superTypes:[gt.$type]}}}}const ee=new Nd;function co(t){return new jc(t,e=>Ni(e)?e.content:[],{includeRoot:!0})}function Cp(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function lo(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Vs(t){if(!t)return;const{offset:e,end:n,range:r}=t;return{range:r,offset:e,end:n,length:n-e}}var Xt;(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(Xt||(Xt={}));function wp(t,e){if(t.end.line<e.start.line||t.end.line===e.start.line&&t.end.character<=e.start.character)return Xt.Before;if(t.start.line>e.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return Xt.After;const n=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,r=t.end.line<e.end.line||t.end.line===e.end.line&&t.end.character<=e.end.character;return n&&r?Xt.Inside:n?Xt.OverlapBack:r?Xt.OverlapFront:Xt.Outside}function Np(t,e){return wp(t,e)>Xt.After}const bp=/^[\w\p{L}]$/u;function _p(t,e){if(t){const n=Ip(t,!0);if(n&&kl(n,e))return n;if(Ed(t)){const r=t.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=t.content[i];if(kl(s,e))return s}}}}function kl(t,e){return vd(t)&&e.includes(t.tokenType.name)}function Ip(t,e=!0){for(;t.container;){const n=t.container;let r=n.content.indexOf(t);for(;r>0;){r--;const i=n.content[r];if(e||!i.hidden)return i}t=n}}class bd extends Error{constructor(e,n){super(e?`${n} at ${e.range.start.line}:${e.range.start.character}`:n)}}function ji(t,e="Error: Got unexpected value."){throw new Error(e)}function W(t){return t.charCodeAt(0)}function $a(t,e){Array.isArray(t)?t.forEach(function(n){e.push(n)}):e.push(t)}function Zr(t,e){if(t[e]===!0)throw"duplicate flag "+e;t[e],t[e]=!0}function rr(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function Pp(){throw Error("Internal Error - Should never get here!")}function Cl(t){return t.type==="Character"}const Ks=[];for(let t=W("0");t<=W("9");t++)Ks.push(t);const Hs=[W("_")].concat(Ks);for(let t=W("a");t<=W("z");t++)Hs.push(t);for(let t=W("A");t<=W("Z");t++)Hs.push(t);const wl=[W(" "),W("\f"),W(`
1
+ import{a as yh,_ as En}from"./index-CKWqYAfu.js";import{bA as Th,bB as Rh,aU as dd,bk as vh,aY as Eh,aV as je,aA as Ah,aB as dl,ba as Sh,bd as fd,be as hd,bb as kh,bp as fl,aD as Yn,aE as ae,aW as Ch,aQ as wh}from"./mermaid-renderer-dJ71wgld.js";import{k as kr,j as Fc,g as Pr,S as Nh,w as bh,x as _h,c as pd,v as $e,y as md,l as Ih,z as Ph,A as $h,B as Lh,C as Oh,a as gd,d as q,i as tn,r as Je,f as ht,D as Fe}from"./_baseUniq-CoauyOeL.js";import{j as Gc,m as M,d as xh,f as yt,g as Cr,h as z,i as Uc,l as jn,e as Dh}from"./_basePickBy-BAlGnwHG.js";import{c as Be}from"./clone-DC6LEEC5.js";var Mh=Object.prototype,Fh=Mh.hasOwnProperty,ft=Th(function(t,e){if(Rh(e)||dd(e)){vh(e,kr(e),t);return}for(var n in e)Fh.call(e,n)&&Eh(t,n,e[n])});function yd(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),n=n>i?i:n,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=t[r+e];return s}function Gi(t){for(var e=-1,n=t==null?0:t.length,r=0,i=[];++e<n;){var s=t[e];s&&(i[r++]=s)}return i}function Gh(t,e,n,r){for(var i=-1,s=t==null?0:t.length;++i<s;){var a=t[i];e(r,a,n(a),t)}return r}function Uh(t,e,n,r){return Fc(t,function(i,s,a){e(r,i,n(i),a)}),r}function qh(t,e){return function(n,r){var i=je(n)?Gh:Uh,s=e?e():{};return i(n,t,Pr(r),s)}}var jh=200;function zh(t,e,n,r){var i=-1,s=bh,a=!0,o=t.length,c=[],l=e.length;if(!o)return c;e.length>=jh&&(s=_h,a=!1,e=new Nh(e));e:for(;++i<o;){var u=t[i],f=u;if(u=u!==0?u:0,a&&f===f){for(var m=l;m--;)if(e[m]===f)continue e;c.push(u)}else s(e,f,r)||c.push(u)}return c}var fa=Ah(function(t,e){return dl(t)?zh(t,pd(e,1,dl,!0)):[]});function Ge(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:Gc(e),yd(t,e<0?0:e,r)):[]}function wi(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:Gc(e),e=r-e,yd(t,0,e<0?0:e)):[]}function Bh(t,e){for(var n=-1,r=t==null?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function Wh(t,e){var n=!0;return Fc(t,function(r,i,s){return n=!!e(r,i,s),n}),n}function kt(t,e,n){var r=je(t)?Bh:Wh;return r(t,Pr(e))}function wt(t){return t&&t.length?t[0]:void 0}function dt(t,e){return pd(M(t,e))}var Vh=Object.prototype,Kh=Vh.hasOwnProperty,Hh=qh(function(t,e,n){Kh.call(t,n)?t[n].push(e):Sh(t,n,[e])}),Yh="[object String]";function nt(t){return typeof t=="string"||!je(t)&&fd(t)&&hd(t)==Yh}var Xh=Math.max;function et(t,e,n,r){t=dd(t)?t:$e(t),n=n?Gc(n):0;var i=t.length;return n<0&&(n=Xh(i+n,0)),nt(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&md(t,e,n)>-1}function hl(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var i=0;return md(t,e,i)}var Jh="[object RegExp]";function Qh(t){return fd(t)&&hd(t)==Jh}var pl=fl&&fl.isRegExp,nn=pl?kh(pl):Qh,Zh="Expected a function";function ep(t){if(typeof t!="function")throw new TypeError(Zh);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function Nt(t,e){if(t==null)return{};var n=Ih(Ph(t),function(r){return[r]});return e=Pr(e),xh(t,n,function(r,i){return e(r,i[0])})}function ha(t,e){var n=je(t)?$h:Lh;return n(t,ep(Pr(e)))}function tp(t,e){var n;return Fc(t,function(r,i,s){return n=e(r,i,s),!n}),!!n}function Td(t,e,n){var r=je(t)?Oh:tp;return r(t,Pr(e))}function qc(t){return t&&t.length?gd(t):[]}function np(t,e){return t&&t.length?gd(t,Pr(e)):[]}function We(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function St(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"&&"ref"in t}function un(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"&&"items"in t}function rp(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function Yr(t){return typeof t=="object"&&t!==null&&typeof t.info=="object"&&typeof t.message=="string"}class Rd{constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(e){const n=this.types[e.container.$type];if(!n)throw new Error(`Type ${e.container.$type||"undefined"} not found.`);const r=n.properties[e.property]?.referenceType;if(!r)throw new Error(`Property ${e.property||"undefined"} of type ${e.container.$type} is not a reference.`);return r}getTypeMetaData(e){const n=this.types[e];return n||{name:e,properties:{},superTypes:[]}}isInstance(e,n){return We(e)&&this.isSubtype(e.$type,n)}isSubtype(e,n){if(e===n)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[n];if(i!==void 0)return i;{const s=this.types[e],a=s?s.superTypes.some(o=>this.isSubtype(o,n)):!1;return r[n]=a,a}}getAllSubTypes(e){const n=this.allSubtypes[e];if(n)return n;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Ni(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function vd(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function Ed(t){return Ni(t)&&typeof t.fullText=="string"}class Ue{constructor(e,n){this.startFn=e,this.nextFn=n}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let n=0,r=e.next();for(;!r.done;)n++,r=e.next();return n}toArray(){const e=[],n=this.iterator();let r;do r=n.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,n){const r=this.map(i=>[e?e(i):i,n?n(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Ue(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),n=>{let r;if(!n.firstDone){do if(r=this.nextFn(n.first),!r.done)return r;while(!r.done);n.firstDone=!0}do if(r=n.iterator.next(),!r.done)return r;while(!r.done);return lt})}join(e=","){const n=this.iterator();let r="",i,s=!1;do i=n.next(),i.done||(s&&(r+=e),r+=ip(i.value)),s=!0;while(!i.done);return r}indexOf(e,n=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=n&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(!e(r.value))return!1;r=n.next()}return!0}some(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return!0;r=n.next()}return!1}forEach(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;)e(i.value,r),i=n.next(),r++}map(e){return new Ue(this.startFn,n=>{const{done:r,value:i}=this.nextFn(n);return r?lt:{done:!1,value:e(i)}})}filter(e){return new Ue(this.startFn,n=>{let r;do if(r=this.nextFn(n),!r.done&&e(r.value))return r;while(!r.done);return lt})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,n){const r=this.iterator();let i=n,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,n){return this.recursiveReduce(this.iterator(),e,n)}recursiveReduce(e,n,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,n,r);return s===void 0?i.value:n(s,i.value)}find(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return r.value;r=n.next()}}findIndex(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(e(i.value))return r;i=n.next(),r++}return-1}includes(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(r.value===e)return!0;r=n.next()}return!1}flatMap(e){return new Ue(()=>({this:this.startFn()}),n=>{do{if(n.iterator){const s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(n.this);if(!r){const s=e(i);if(zs(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(n.iterator);return lt})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const n=e>1?this.flat(e-1):this;return new Ue(()=>({this:n.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=n.nextFn(r.this);if(!i)if(zs(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return lt})}head(){const n=this.iterator().next();if(!n.done)return n.value}tail(e=1){return new Ue(()=>{const n=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(e){return new Ue(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>e?lt:this.nextFn(n.state)))}distinct(e){return new Ue(()=>({set:new Set,internalState:this.startFn()}),n=>{let r;do if(r=this.nextFn(n.internalState),!r.done){const i=e?e(r.value):r.value;if(!n.set.has(i))return n.set.add(i),r}while(!r.done);return lt})}exclude(e,n){const r=new Set;for(const i of e){const s=n?n(i):i;r.add(s)}return this.filter(i=>{const s=n?n(i):i;return!r.has(s)})}}function ip(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function zs(t){return!!t&&typeof t[Symbol.iterator]=="function"}const Ad=new Ue(()=>{},()=>lt),lt=Object.freeze({done:!0,value:void 0});function me(...t){if(t.length===1){const e=t[0];if(e instanceof Ue)return e;if(zs(e))return new Ue(()=>e[Symbol.iterator](),n=>n.next());if(typeof e.length=="number")return new Ue(()=>({index:0}),n=>n.index<e.length?{done:!1,value:e[n.index++]}:lt)}return t.length>1?new Ue(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const n=e.iterator.next();if(!n.done)return n;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<t.length){const n=t[e.collIndex++];zs(n)?e.iterator=n[Symbol.iterator]():n&&typeof n.length=="number"&&(e.array=n)}}while(e.iterator||e.array||e.collIndex<t.length);return lt}):Ad}class jc extends Ue{constructor(e,n,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[n(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(n(a.value)[Symbol.iterator]()),a}return lt})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var eo;(function(t){function e(s){return s.reduce((a,o)=>a+o,0)}t.sum=e;function n(s){return s.reduce((a,o)=>a*o,0)}t.product=n;function r(s){return s.reduce((a,o)=>Math.min(a,o))}t.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}t.max=i})(eo||(eo={}));function to(t,e={}){for(const[n,r]of Object.entries(t))n.startsWith("$")||(Array.isArray(r)?r.forEach((i,s)=>{We(i)&&(i.$container=t,i.$containerProperty=n,i.$containerIndex=s,e.deep&&to(i,e))}):We(r)&&(r.$container=t,r.$containerProperty=n,e.deep&&to(r,e)))}function pa(t,e){let n=t;for(;n;){if(e(n))return n;n=n.$container}}function Qt(t){const n=bs(t).$document;if(!n)throw new Error("AST node has no document.");return n}function bs(t){for(;t.$container;)t=t.$container;return t}function ml(t){return St(t)?t.ref?[t.ref]:[]:un(t)?t.items.map(e=>e.ref):[]}function zc(t,e){if(!t)throw new Error("Node must be an AstNode.");const n=e?.range;return new Ue(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=t[i];if(We(s)){if(r.keyIndex++,gl(s,n))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(We(o)&&gl(o,n))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return lt})}function Ui(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new jc(t,n=>zc(n,e))}function Zt(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new jc(t,n=>zc(n,e),{includeRoot:!0})}function gl(t,e){if(!e)return!0;const n=t.$cstNode?.range;return n?Np(n,e):!1}function Bs(t){return new Ue(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const n=e.keys[e.keyIndex];if(!n.startsWith("$")){const r=t[n];if(St(r)||un(r))return e.keyIndex++,{done:!1,value:{reference:r,container:t,property:n}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(St(s)||un(r))return{done:!1,value:{reference:s,container:t,property:n,index:i}}}e.arrayIndex=0}}e.keyIndex++}return lt})}function sp(t,e){const n=t.getTypeMetaData(e.$type),r=e;for(const i of Object.values(n.properties))i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Sd(i.defaultValue))}function Sd(t){return Array.isArray(t)?[...t.map(Sd)]:t}const ct={$type:"AbstractElement",cardinality:"cardinality"};function ap(t){return ee.isInstance(t,ct.$type)}const _s={$type:"AbstractParserRule"};function qi(t){return ee.isInstance(t,_s.$type)}const hs={$type:"AbstractRule"},Et={$type:"AbstractType"},On={$type:"Action",cardinality:"cardinality",feature:"feature",inferredType:"inferredType",operator:"operator",type:"type"};function ma(t){return ee.isInstance(t,On.$type)}const Is={$type:"Alternatives",cardinality:"cardinality",elements:"elements"};function kd(t){return ee.isInstance(t,Is.$type)}const yl={$type:"ArrayLiteral",elements:"elements"},Tl={$type:"ArrayType",elementType:"elementType"},xn={$type:"Assignment",cardinality:"cardinality",feature:"feature",operator:"operator",predicate:"predicate",terminal:"terminal"};function zn(t){return ee.isInstance(t,xn.$type)}const no={$type:"BooleanLiteral",true:"true"};function op(t){return ee.isInstance(t,no.$type)}const Dn={$type:"CharacterRange",cardinality:"cardinality",left:"left",lookahead:"lookahead",parenthesized:"parenthesized",right:"right"};function cp(t){return ee.isInstance(t,Dn.$type)}const nr={$type:"Condition"},Ps={$type:"Conjunction",left:"left",right:"right"};function lp(t){return ee.isInstance(t,Ps.$type)}const Mn={$type:"CrossReference",cardinality:"cardinality",deprecatedSyntax:"deprecatedSyntax",isMulti:"isMulti",terminal:"terminal",type:"type"};function ga(t){return ee.isInstance(t,Mn.$type)}const $s={$type:"Disjunction",left:"left",right:"right"};function up(t){return ee.isInstance(t,$s.$type)}const ro={$type:"EndOfFile",cardinality:"cardinality"};function dp(t){return ee.isInstance(t,ro.$type)}const An={$type:"Grammar",imports:"imports",interfaces:"interfaces",isDeclared:"isDeclared",name:"name",rules:"rules",types:"types"},Rl={$type:"GrammarImport",path:"path"},cr={$type:"Group",cardinality:"cardinality",elements:"elements",guardCondition:"guardCondition",predicate:"predicate"};function Bc(t){return ee.isInstance(t,cr.$type)}const io={$type:"InferredType",name:"name"};function Cd(t){return ee.isInstance(t,io.$type)}const Vt={$type:"InfixRule",call:"call",dataType:"dataType",inferredType:"inferredType",name:"name",operators:"operators",parameters:"parameters",returnType:"returnType"};function Ws(t){return ee.isInstance(t,Vt.$type)}const Ia={$type:"InfixRuleOperatorList",associativity:"associativity",operators:"operators"},vl={$type:"InfixRuleOperators",precedences:"precedences"},gi={$type:"Interface",attributes:"attributes",name:"name",superTypes:"superTypes"};function fp(t){return ee.isInstance(t,gi.$type)}const yi={$type:"Keyword",cardinality:"cardinality",predicate:"predicate",value:"value"};function Bn(t){return ee.isInstance(t,yi.$type)}const ps={$type:"NamedArgument",calledByName:"calledByName",parameter:"parameter",value:"value"},lr={$type:"NegatedToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function hp(t){return ee.isInstance(t,lr.$type)}const so={$type:"Negation",value:"value"};function pp(t){return ee.isInstance(t,so.$type)}const El={$type:"NumberLiteral",value:"value"},ms={$type:"Parameter",name:"name"},ao={$type:"ParameterReference",parameter:"parameter"};function mp(t){return ee.isInstance(t,ao.$type)}const Pt={$type:"ParserRule",dataType:"dataType",definition:"definition",entry:"entry",fragment:"fragment",inferredType:"inferredType",name:"name",parameters:"parameters",returnType:"returnType"};function sn(t){return ee.isInstance(t,Pt.$type)}const Pa={$type:"ReferenceType",isMulti:"isMulti",referenceType:"referenceType"},ur={$type:"RegexToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",regex:"regex"};function gp(t){return ee.isInstance(t,ur.$type)}const oo={$type:"ReturnType",name:"name"};function yp(t){return ee.isInstance(t,oo.$type)}const dr={$type:"RuleCall",arguments:"arguments",cardinality:"cardinality",predicate:"predicate",rule:"rule"};function Wn(t){return ee.isInstance(t,dr.$type)}const Ti={$type:"SimpleType",primitiveType:"primitiveType",stringType:"stringType",typeRef:"typeRef"};function Tp(t){return ee.isInstance(t,Ti.$type)}const Al={$type:"StringLiteral",value:"value"},fr={$type:"TerminalAlternatives",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function Rp(t){return ee.isInstance(t,fr.$type)}const gt={$type:"TerminalElement",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"},hr={$type:"TerminalGroup",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function vp(t){return ee.isInstance(t,hr.$type)}const ln={$type:"TerminalRule",definition:"definition",fragment:"fragment",hidden:"hidden",name:"name",type:"type"};function an(t){return ee.isInstance(t,ln.$type)}const pr={$type:"TerminalRuleCall",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",rule:"rule"};function Ep(t){return ee.isInstance(t,pr.$type)}const Ls={$type:"Type",name:"name",type:"type"};function Ap(t){return ee.isInstance(t,Ls.$type)}const Xr={$type:"TypeAttribute",defaultValue:"defaultValue",isOptional:"isOptional",name:"name",type:"type"},Jr={$type:"TypeDefinition"},Sl={$type:"UnionType",types:"types"},Os={$type:"UnorderedGroup",cardinality:"cardinality",elements:"elements"};function wd(t){return ee.isInstance(t,Os.$type)}const mr={$type:"UntilToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function Sp(t){return ee.isInstance(t,mr.$type)}const Qr={$type:"ValueLiteral"},Ri={$type:"Wildcard",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};function kp(t){return ee.isInstance(t,Ri.$type)}class Nd extends Rd{constructor(){super(...arguments),this.types={AbstractElement:{name:ct.$type,properties:{cardinality:{name:ct.cardinality}},superTypes:[]},AbstractParserRule:{name:_s.$type,properties:{},superTypes:[hs.$type,Et.$type]},AbstractRule:{name:hs.$type,properties:{},superTypes:[]},AbstractType:{name:Et.$type,properties:{},superTypes:[]},Action:{name:On.$type,properties:{cardinality:{name:On.cardinality},feature:{name:On.feature},inferredType:{name:On.inferredType},operator:{name:On.operator},type:{name:On.type,referenceType:Et.$type}},superTypes:[ct.$type]},Alternatives:{name:Is.$type,properties:{cardinality:{name:Is.cardinality},elements:{name:Is.elements,defaultValue:[]}},superTypes:[ct.$type]},ArrayLiteral:{name:yl.$type,properties:{elements:{name:yl.elements,defaultValue:[]}},superTypes:[Qr.$type]},ArrayType:{name:Tl.$type,properties:{elementType:{name:Tl.elementType}},superTypes:[Jr.$type]},Assignment:{name:xn.$type,properties:{cardinality:{name:xn.cardinality},feature:{name:xn.feature},operator:{name:xn.operator},predicate:{name:xn.predicate},terminal:{name:xn.terminal}},superTypes:[ct.$type]},BooleanLiteral:{name:no.$type,properties:{true:{name:no.true,defaultValue:!1}},superTypes:[nr.$type,Qr.$type]},CharacterRange:{name:Dn.$type,properties:{cardinality:{name:Dn.cardinality},left:{name:Dn.left},lookahead:{name:Dn.lookahead},parenthesized:{name:Dn.parenthesized,defaultValue:!1},right:{name:Dn.right}},superTypes:[gt.$type]},Condition:{name:nr.$type,properties:{},superTypes:[]},Conjunction:{name:Ps.$type,properties:{left:{name:Ps.left},right:{name:Ps.right}},superTypes:[nr.$type]},CrossReference:{name:Mn.$type,properties:{cardinality:{name:Mn.cardinality},deprecatedSyntax:{name:Mn.deprecatedSyntax,defaultValue:!1},isMulti:{name:Mn.isMulti,defaultValue:!1},terminal:{name:Mn.terminal},type:{name:Mn.type,referenceType:Et.$type}},superTypes:[ct.$type]},Disjunction:{name:$s.$type,properties:{left:{name:$s.left},right:{name:$s.right}},superTypes:[nr.$type]},EndOfFile:{name:ro.$type,properties:{cardinality:{name:ro.cardinality}},superTypes:[ct.$type]},Grammar:{name:An.$type,properties:{imports:{name:An.imports,defaultValue:[]},interfaces:{name:An.interfaces,defaultValue:[]},isDeclared:{name:An.isDeclared,defaultValue:!1},name:{name:An.name},rules:{name:An.rules,defaultValue:[]},types:{name:An.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:Rl.$type,properties:{path:{name:Rl.path}},superTypes:[]},Group:{name:cr.$type,properties:{cardinality:{name:cr.cardinality},elements:{name:cr.elements,defaultValue:[]},guardCondition:{name:cr.guardCondition},predicate:{name:cr.predicate}},superTypes:[ct.$type]},InferredType:{name:io.$type,properties:{name:{name:io.name}},superTypes:[Et.$type]},InfixRule:{name:Vt.$type,properties:{call:{name:Vt.call},dataType:{name:Vt.dataType},inferredType:{name:Vt.inferredType},name:{name:Vt.name},operators:{name:Vt.operators},parameters:{name:Vt.parameters,defaultValue:[]},returnType:{name:Vt.returnType,referenceType:Et.$type}},superTypes:[_s.$type]},InfixRuleOperatorList:{name:Ia.$type,properties:{associativity:{name:Ia.associativity},operators:{name:Ia.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:vl.$type,properties:{precedences:{name:vl.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:gi.$type,properties:{attributes:{name:gi.attributes,defaultValue:[]},name:{name:gi.name},superTypes:{name:gi.superTypes,defaultValue:[],referenceType:Et.$type}},superTypes:[Et.$type]},Keyword:{name:yi.$type,properties:{cardinality:{name:yi.cardinality},predicate:{name:yi.predicate},value:{name:yi.value}},superTypes:[ct.$type]},NamedArgument:{name:ps.$type,properties:{calledByName:{name:ps.calledByName,defaultValue:!1},parameter:{name:ps.parameter,referenceType:ms.$type},value:{name:ps.value}},superTypes:[]},NegatedToken:{name:lr.$type,properties:{cardinality:{name:lr.cardinality},lookahead:{name:lr.lookahead},parenthesized:{name:lr.parenthesized,defaultValue:!1},terminal:{name:lr.terminal}},superTypes:[gt.$type]},Negation:{name:so.$type,properties:{value:{name:so.value}},superTypes:[nr.$type]},NumberLiteral:{name:El.$type,properties:{value:{name:El.value}},superTypes:[Qr.$type]},Parameter:{name:ms.$type,properties:{name:{name:ms.name}},superTypes:[]},ParameterReference:{name:ao.$type,properties:{parameter:{name:ao.parameter,referenceType:ms.$type}},superTypes:[nr.$type]},ParserRule:{name:Pt.$type,properties:{dataType:{name:Pt.dataType},definition:{name:Pt.definition},entry:{name:Pt.entry,defaultValue:!1},fragment:{name:Pt.fragment,defaultValue:!1},inferredType:{name:Pt.inferredType},name:{name:Pt.name},parameters:{name:Pt.parameters,defaultValue:[]},returnType:{name:Pt.returnType,referenceType:Et.$type}},superTypes:[_s.$type]},ReferenceType:{name:Pa.$type,properties:{isMulti:{name:Pa.isMulti,defaultValue:!1},referenceType:{name:Pa.referenceType}},superTypes:[Jr.$type]},RegexToken:{name:ur.$type,properties:{cardinality:{name:ur.cardinality},lookahead:{name:ur.lookahead},parenthesized:{name:ur.parenthesized,defaultValue:!1},regex:{name:ur.regex}},superTypes:[gt.$type]},ReturnType:{name:oo.$type,properties:{name:{name:oo.name}},superTypes:[]},RuleCall:{name:dr.$type,properties:{arguments:{name:dr.arguments,defaultValue:[]},cardinality:{name:dr.cardinality},predicate:{name:dr.predicate},rule:{name:dr.rule,referenceType:hs.$type}},superTypes:[ct.$type]},SimpleType:{name:Ti.$type,properties:{primitiveType:{name:Ti.primitiveType},stringType:{name:Ti.stringType},typeRef:{name:Ti.typeRef,referenceType:Et.$type}},superTypes:[Jr.$type]},StringLiteral:{name:Al.$type,properties:{value:{name:Al.value}},superTypes:[Qr.$type]},TerminalAlternatives:{name:fr.$type,properties:{cardinality:{name:fr.cardinality},elements:{name:fr.elements,defaultValue:[]},lookahead:{name:fr.lookahead},parenthesized:{name:fr.parenthesized,defaultValue:!1}},superTypes:[gt.$type]},TerminalElement:{name:gt.$type,properties:{cardinality:{name:gt.cardinality},lookahead:{name:gt.lookahead},parenthesized:{name:gt.parenthesized,defaultValue:!1}},superTypes:[ct.$type]},TerminalGroup:{name:hr.$type,properties:{cardinality:{name:hr.cardinality},elements:{name:hr.elements,defaultValue:[]},lookahead:{name:hr.lookahead},parenthesized:{name:hr.parenthesized,defaultValue:!1}},superTypes:[gt.$type]},TerminalRule:{name:ln.$type,properties:{definition:{name:ln.definition},fragment:{name:ln.fragment,defaultValue:!1},hidden:{name:ln.hidden,defaultValue:!1},name:{name:ln.name},type:{name:ln.type}},superTypes:[hs.$type]},TerminalRuleCall:{name:pr.$type,properties:{cardinality:{name:pr.cardinality},lookahead:{name:pr.lookahead},parenthesized:{name:pr.parenthesized,defaultValue:!1},rule:{name:pr.rule,referenceType:ln.$type}},superTypes:[gt.$type]},Type:{name:Ls.$type,properties:{name:{name:Ls.name},type:{name:Ls.type}},superTypes:[Et.$type]},TypeAttribute:{name:Xr.$type,properties:{defaultValue:{name:Xr.defaultValue},isOptional:{name:Xr.isOptional,defaultValue:!1},name:{name:Xr.name},type:{name:Xr.type}},superTypes:[]},TypeDefinition:{name:Jr.$type,properties:{},superTypes:[]},UnionType:{name:Sl.$type,properties:{types:{name:Sl.types,defaultValue:[]}},superTypes:[Jr.$type]},UnorderedGroup:{name:Os.$type,properties:{cardinality:{name:Os.cardinality},elements:{name:Os.elements,defaultValue:[]}},superTypes:[ct.$type]},UntilToken:{name:mr.$type,properties:{cardinality:{name:mr.cardinality},lookahead:{name:mr.lookahead},parenthesized:{name:mr.parenthesized,defaultValue:!1},terminal:{name:mr.terminal}},superTypes:[gt.$type]},ValueLiteral:{name:Qr.$type,properties:{},superTypes:[]},Wildcard:{name:Ri.$type,properties:{cardinality:{name:Ri.cardinality},lookahead:{name:Ri.lookahead},parenthesized:{name:Ri.parenthesized,defaultValue:!1}},superTypes:[gt.$type]}}}}const ee=new Nd;function co(t){return new jc(t,e=>Ni(e)?e.content:[],{includeRoot:!0})}function Cp(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function lo(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Vs(t){if(!t)return;const{offset:e,end:n,range:r}=t;return{range:r,offset:e,end:n,length:n-e}}var Xt;(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(Xt||(Xt={}));function wp(t,e){if(t.end.line<e.start.line||t.end.line===e.start.line&&t.end.character<=e.start.character)return Xt.Before;if(t.start.line>e.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return Xt.After;const n=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,r=t.end.line<e.end.line||t.end.line===e.end.line&&t.end.character<=e.end.character;return n&&r?Xt.Inside:n?Xt.OverlapBack:r?Xt.OverlapFront:Xt.Outside}function Np(t,e){return wp(t,e)>Xt.After}const bp=/^[\w\p{L}]$/u;function _p(t,e){if(t){const n=Ip(t,!0);if(n&&kl(n,e))return n;if(Ed(t)){const r=t.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=t.content[i];if(kl(s,e))return s}}}}function kl(t,e){return vd(t)&&e.includes(t.tokenType.name)}function Ip(t,e=!0){for(;t.container;){const n=t.container;let r=n.content.indexOf(t);for(;r>0;){r--;const i=n.content[r];if(e||!i.hidden)return i}t=n}}class bd extends Error{constructor(e,n){super(e?`${n} at ${e.range.start.line}:${e.range.start.character}`:n)}}function ji(t,e="Error: Got unexpected value."){throw new Error(e)}function W(t){return t.charCodeAt(0)}function $a(t,e){Array.isArray(t)?t.forEach(function(n){e.push(n)}):e.push(t)}function Zr(t,e){if(t[e]===!0)throw"duplicate flag "+e;t[e],t[e]=!0}function rr(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function Pp(){throw Error("Internal Error - Should never get here!")}function Cl(t){return t.type==="Character"}const Ks=[];for(let t=W("0");t<=W("9");t++)Ks.push(t);const Hs=[W("_")].concat(Ks);for(let t=W("a");t<=W("z");t++)Hs.push(t);for(let t=W("A");t<=W("Z");t++)Hs.push(t);const wl=[W(" "),W("\f"),W(`
2
2
  `),W("\r"),W(" "),W("\v"),W(" "),W(" "),W(" "),W(" "),W(" "),W(" "),W(" "),W(" "),W(" "),W(" "),W(" "),W(" "),W(" "),W(" "),W("\u2028"),W("\u2029"),W(" "),W(" "),W(" "),W("\uFEFF")],$p=/[0-9a-fA-F]/,gs=/[0-9]/,Lp=/[1-9]/;class _d{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const n=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Zr(r,"global");break;case"i":Zr(r,"ignoreCase");break;case"m":Zr(r,"multiLine");break;case"u":Zr(r,"unicode");break;case"y":Zr(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:n,loc:this.loc(0)}}disjunction(){const e=[],n=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(n)}}alternative(){const e=[],n=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(n)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let n;switch(this.popChar()){case"=":n="Lookahead";break;case"!":n="NegativeLookahead";break;case"<":{switch(this.popChar()){case"=":n="Lookbehind";break;case"!":n="NegativeLookbehind"}break}}rr(n);const r=this.disjunction();return this.consumeChar(")"),{type:n,value:r,loc:this.loc(e)}}return Pp()}quantifier(e=!1){let n;const r=this.idx;switch(this.popChar()){case"*":n={atLeast:0,atMost:1/0};break;case"+":n={atLeast:1,atMost:1/0};break;case"?":n={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":n={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),n={atLeast:i,atMost:s}):n={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&n===void 0)return;rr(n);break}if(!(e===!0&&n===void 0)&&rr(n))return this.peekChar(0)==="?"?(this.consumeChar("?"),n.greedy=!1):n.greedy=!0,n.type="Quantifier",n.loc=this.loc(r),n}atom(){let e;const n=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),rr(e))return e.loc=this.loc(n),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[W(`
3
3
  `),W("\r"),W("\u2028"),W("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,n=!1;switch(this.popChar()){case"d":e=Ks;break;case"D":e=Ks,n=!0;break;case"s":e=wl;break;case"S":e=wl,n=!0;break;case"w":e=Hs;break;case"W":e=Hs,n=!0;break}if(rr(e))return{type:"Set",value:e,complement:n}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=W("\f");break;case"n":e=W(`
4
4
  `);break;case"r":e=W("\r");break;case"t":e=W(" ");break;case"v":e=W("\v");break}if(rr(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:W("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:W(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
@@ -1,4 +1,4 @@
1
- import{s as ei,g as si,q as Lt,p as ni,a as ai,b as ri,_ as a,l as Et,H as oi,e as hi,y as li,F as xt,i as ci,D as It,E as ui,K as gi,aF as xi,R as Tt}from"./mermaid-renderer-D2jYNs7K.js";import{i as di}from"./init-Gi6I4Gst.js";import{o as fi}from"./ordinal-Cboi1Yqb.js";import{l as Dt}from"./linear-CMUrrr1X.js";import"./index-C3NEq704.js";import"./defaultLocale-DX6XiGOO.js";function pi(t,i,e){t=+t,i=+i,e=(n=arguments.length)<2?(i=t,t=0,1):n<3?1:+e;for(var s=-1,n=Math.max(0,Math.ceil((i-t)/e))|0,x=new Array(n);++s<n;)x[s]=t+s*e;return x}function ht(){var t=fi().unknown(void 0),i=t.domain,e=t.range,s=0,n=1,x,g,m=!1,S=0,D=0,v=.5;delete t.unknown;function w(){var y=i().length,E=n<s,T=E?n:s,P=E?s:n;x=(P-T)/Math.max(1,y-S+D*2),m&&(x=Math.floor(x)),T+=(P-T-x*(y-S))*v,g=x*(1-S),m&&(T=Math.round(T),g=Math.round(g));var I=pi(y).map(function(p){return T+x*p});return e(E?I.reverse():I)}return t.domain=function(y){return arguments.length?(i(y),w()):i()},t.range=function(y){return arguments.length?([s,n]=y,s=+s,n=+n,w()):[s,n]},t.rangeRound=function(y){return[s,n]=y,s=+s,n=+n,m=!0,w()},t.bandwidth=function(){return g},t.step=function(){return x},t.round=function(y){return arguments.length?(m=!!y,w()):m},t.padding=function(y){return arguments.length?(S=Math.min(1,D=+y),w()):S},t.paddingInner=function(y){return arguments.length?(S=Math.min(1,y),w()):S},t.paddingOuter=function(y){return arguments.length?(D=+y,w()):D},t.align=function(y){return arguments.length?(v=Math.max(0,Math.min(1,y)),w()):v},t.copy=function(){return ht(i(),[s,n]).round(m).paddingInner(S).paddingOuter(D).align(v)},di.apply(w(),arguments)}var lt=(function(){var t=a(function(F,o,c,u){for(c=c||{},u=F.length;u--;c[F[u]]=o);return c},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],x=[1,6],g=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],S=[1,25],D=[1,26],v=[1,28],w=[1,29],y=[1,30],E=[1,31],T=[1,32],P=[1,33],I=[1,34],p=[1,35],_=[1,36],l=[1,37],W=[1,43],z=[1,42],U=[1,47],X=[1,50],h=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],C=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],k=[1,64],$={trace:a(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,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$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",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"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],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(o,c,u,d,A,r,j){var f=r.length-1;switch(A){case 5:d.setOrientation(r[f]);break;case 9:d.setDiagramTitle(r[f].text.trim());break;case 12:d.setLineData({text:"",type:"text"},r[f]);break;case 13:d.setLineData(r[f-1],r[f]);break;case 14:d.setBarData({text:"",type:"text"},r[f]);break;case 15:d.setBarData(r[f-1],r[f]);break;case 16:this.$=r[f].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=r[f].trim(),d.setAccDescription(this.$);break;case 19:this.$=r[f-1];break;case 20:this.$=[Number(r[f-2]),...r[f]];break;case 21:this.$=[Number(r[f])];break;case 22:d.setXAxisTitle(r[f]);break;case 23:d.setXAxisTitle(r[f-1]);break;case 24:d.setXAxisTitle({type:"text",text:""});break;case 25:d.setXAxisBand(r[f]);break;case 26:d.setXAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 27:this.$=r[f-1];break;case 28:this.$=[r[f-2],...r[f]];break;case 29:this.$=[r[f]];break;case 30:d.setYAxisTitle(r[f]);break;case 31:d.setYAxisTitle(r[f-1]);break;case 32:d.setYAxisTitle({type:"text",text:""});break;case 33:d.setYAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 37:this.$={text:r[f],type:"text"};break;case 38:this.$={text:r[f],type:"text"};break;case 39:this.$={text:r[f],type:"markdown"};break;case 40:this.$=r[f];break;case 41:this.$=r[f-1]+""+r[f];break}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,34:n,35:x,36:g}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:n,35:x,36:g}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:x,36:g}),{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]},t(m,[2,34]),t(m,[2,35]),t(m,[2,36]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,34:n,35:x,36:g}),{1:[2,3]},t(m,[2,5]),t(i,[2,7],{4:22,34:n,35:x,36:g}),{11:23,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:39,13:38,24:W,27:z,29:40,30:41,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:45,15:44,27:U,33:46,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:49,17:48,24:X,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:52,17:51,24:X,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{20:[1,53]},{22:[1,54]},t(h,[2,18]),{1:[2,2]},t(h,[2,8]),t(h,[2,9]),t(L,[2,37],{40:55,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l}),t(L,[2,38]),t(L,[2,39]),t(C,[2,40]),t(C,[2,42]),t(C,[2,43]),t(C,[2,44]),t(C,[2,45]),t(C,[2,46]),t(C,[2,47]),t(C,[2,48]),t(C,[2,49]),t(C,[2,50]),t(C,[2,51]),t(h,[2,10]),t(h,[2,22],{30:41,29:56,24:W,27:z}),t(h,[2,24]),t(h,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},t(h,[2,11]),t(h,[2,30],{33:60,27:U}),t(h,[2,32]),{31:[1,61]},t(h,[2,12]),{17:62,24:X},{25:63,27:k},t(h,[2,14]),{17:65,24:X},t(h,[2,16]),t(h,[2,17]),t(C,[2,41]),t(h,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(h,[2,31]),{27:[1,69]},t(h,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(h,[2,15]),t(h,[2,26]),t(h,[2,27]),{11:59,32:72,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},t(h,[2,33]),t(h,[2,19]),{25:73,27:k},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(o,c){if(c.recoverable)this.trace(o);else{var u=new Error(o);throw u.hash=c,u}},"parseError"),parse:a(function(o){var c=this,u=[0],d=[],A=[null],r=[],j=this.table,f="",J=0,St=0,Zt=2,_t=1,Jt=r.slice.call(arguments,1),R=Object.create(this.lexer),Y={yy:{}};for(var nt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,nt)&&(Y.yy[nt]=this.yy[nt]);R.setInput(o,Y.yy),Y.yy.lexer=R,Y.yy.parser=this,typeof R.yylloc>"u"&&(R.yylloc={});var at=R.yylloc;r.push(at);var ti=R.options&&R.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ii(V){u.length=u.length-2*V,A.length=A.length-V,r.length=r.length-V}a(ii,"popStack");function kt(){var V;return V=d.pop()||R.lex()||_t,typeof V!="number"&&(V instanceof Array&&(d=V,V=d.pop()),V=c.symbols_[V]||V),V}a(kt,"lex");for(var M,H,B,rt,q={},tt,O,Rt,it;;){if(H=u[u.length-1],this.defaultActions[H]?B=this.defaultActions[H]:((M===null||typeof M>"u")&&(M=kt()),B=j[H]&&j[H][M]),typeof B>"u"||!B.length||!B[0]){var ot="";it=[];for(tt in j[H])this.terminals_[tt]&&tt>Zt&&it.push("'"+this.terminals_[tt]+"'");R.showPosition?ot="Parse error on line "+(J+1)+`:
1
+ import{s as ei,g as si,q as Lt,p as ni,a as ai,b as ri,_ as a,l as Et,H as oi,e as hi,y as li,F as xt,i as ci,D as It,E as ui,K as gi,aF as xi,R as Tt}from"./mermaid-renderer-dJ71wgld.js";import{i as di}from"./init-Gi6I4Gst.js";import{o as fi}from"./ordinal-Cboi1Yqb.js";import{l as Dt}from"./linear-Bqy9gvqb.js";import"./index-CKWqYAfu.js";import"./defaultLocale-DX6XiGOO.js";function pi(t,i,e){t=+t,i=+i,e=(n=arguments.length)<2?(i=t,t=0,1):n<3?1:+e;for(var s=-1,n=Math.max(0,Math.ceil((i-t)/e))|0,x=new Array(n);++s<n;)x[s]=t+s*e;return x}function ht(){var t=fi().unknown(void 0),i=t.domain,e=t.range,s=0,n=1,x,g,m=!1,S=0,D=0,v=.5;delete t.unknown;function w(){var y=i().length,E=n<s,T=E?n:s,P=E?s:n;x=(P-T)/Math.max(1,y-S+D*2),m&&(x=Math.floor(x)),T+=(P-T-x*(y-S))*v,g=x*(1-S),m&&(T=Math.round(T),g=Math.round(g));var I=pi(y).map(function(p){return T+x*p});return e(E?I.reverse():I)}return t.domain=function(y){return arguments.length?(i(y),w()):i()},t.range=function(y){return arguments.length?([s,n]=y,s=+s,n=+n,w()):[s,n]},t.rangeRound=function(y){return[s,n]=y,s=+s,n=+n,m=!0,w()},t.bandwidth=function(){return g},t.step=function(){return x},t.round=function(y){return arguments.length?(m=!!y,w()):m},t.padding=function(y){return arguments.length?(S=Math.min(1,D=+y),w()):S},t.paddingInner=function(y){return arguments.length?(S=Math.min(1,y),w()):S},t.paddingOuter=function(y){return arguments.length?(D=+y,w()):D},t.align=function(y){return arguments.length?(v=Math.max(0,Math.min(1,y)),w()):v},t.copy=function(){return ht(i(),[s,n]).round(m).paddingInner(S).paddingOuter(D).align(v)},di.apply(w(),arguments)}var lt=(function(){var t=a(function(F,o,c,u){for(c=c||{},u=F.length;u--;c[F[u]]=o);return c},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],x=[1,6],g=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],S=[1,25],D=[1,26],v=[1,28],w=[1,29],y=[1,30],E=[1,31],T=[1,32],P=[1,33],I=[1,34],p=[1,35],_=[1,36],l=[1,37],W=[1,43],z=[1,42],U=[1,47],X=[1,50],h=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],C=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],k=[1,64],$={trace:a(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,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$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",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"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],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(o,c,u,d,A,r,j){var f=r.length-1;switch(A){case 5:d.setOrientation(r[f]);break;case 9:d.setDiagramTitle(r[f].text.trim());break;case 12:d.setLineData({text:"",type:"text"},r[f]);break;case 13:d.setLineData(r[f-1],r[f]);break;case 14:d.setBarData({text:"",type:"text"},r[f]);break;case 15:d.setBarData(r[f-1],r[f]);break;case 16:this.$=r[f].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=r[f].trim(),d.setAccDescription(this.$);break;case 19:this.$=r[f-1];break;case 20:this.$=[Number(r[f-2]),...r[f]];break;case 21:this.$=[Number(r[f])];break;case 22:d.setXAxisTitle(r[f]);break;case 23:d.setXAxisTitle(r[f-1]);break;case 24:d.setXAxisTitle({type:"text",text:""});break;case 25:d.setXAxisBand(r[f]);break;case 26:d.setXAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 27:this.$=r[f-1];break;case 28:this.$=[r[f-2],...r[f]];break;case 29:this.$=[r[f]];break;case 30:d.setYAxisTitle(r[f]);break;case 31:d.setYAxisTitle(r[f-1]);break;case 32:d.setYAxisTitle({type:"text",text:""});break;case 33:d.setYAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 37:this.$={text:r[f],type:"text"};break;case 38:this.$={text:r[f],type:"text"};break;case 39:this.$={text:r[f],type:"markdown"};break;case 40:this.$=r[f];break;case 41:this.$=r[f-1]+""+r[f];break}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,34:n,35:x,36:g}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:n,35:x,36:g}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:x,36:g}),{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]},t(m,[2,34]),t(m,[2,35]),t(m,[2,36]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,34:n,35:x,36:g}),{1:[2,3]},t(m,[2,5]),t(i,[2,7],{4:22,34:n,35:x,36:g}),{11:23,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:39,13:38,24:W,27:z,29:40,30:41,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:45,15:44,27:U,33:46,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:49,17:48,24:X,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:52,17:51,24:X,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{20:[1,53]},{22:[1,54]},t(h,[2,18]),{1:[2,2]},t(h,[2,8]),t(h,[2,9]),t(L,[2,37],{40:55,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l}),t(L,[2,38]),t(L,[2,39]),t(C,[2,40]),t(C,[2,42]),t(C,[2,43]),t(C,[2,44]),t(C,[2,45]),t(C,[2,46]),t(C,[2,47]),t(C,[2,48]),t(C,[2,49]),t(C,[2,50]),t(C,[2,51]),t(h,[2,10]),t(h,[2,22],{30:41,29:56,24:W,27:z}),t(h,[2,24]),t(h,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},t(h,[2,11]),t(h,[2,30],{33:60,27:U}),t(h,[2,32]),{31:[1,61]},t(h,[2,12]),{17:62,24:X},{25:63,27:k},t(h,[2,14]),{17:65,24:X},t(h,[2,16]),t(h,[2,17]),t(C,[2,41]),t(h,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(h,[2,31]),{27:[1,69]},t(h,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(h,[2,15]),t(h,[2,26]),t(h,[2,27]),{11:59,32:72,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},t(h,[2,33]),t(h,[2,19]),{25:73,27:k},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(o,c){if(c.recoverable)this.trace(o);else{var u=new Error(o);throw u.hash=c,u}},"parseError"),parse:a(function(o){var c=this,u=[0],d=[],A=[null],r=[],j=this.table,f="",J=0,St=0,Zt=2,_t=1,Jt=r.slice.call(arguments,1),R=Object.create(this.lexer),Y={yy:{}};for(var nt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,nt)&&(Y.yy[nt]=this.yy[nt]);R.setInput(o,Y.yy),Y.yy.lexer=R,Y.yy.parser=this,typeof R.yylloc>"u"&&(R.yylloc={});var at=R.yylloc;r.push(at);var ti=R.options&&R.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ii(V){u.length=u.length-2*V,A.length=A.length-V,r.length=r.length-V}a(ii,"popStack");function kt(){var V;return V=d.pop()||R.lex()||_t,typeof V!="number"&&(V instanceof Array&&(d=V,V=d.pop()),V=c.symbols_[V]||V),V}a(kt,"lex");for(var M,H,B,rt,q={},tt,O,Rt,it;;){if(H=u[u.length-1],this.defaultActions[H]?B=this.defaultActions[H]:((M===null||typeof M>"u")&&(M=kt()),B=j[H]&&j[H][M]),typeof B>"u"||!B.length||!B[0]){var ot="";it=[];for(tt in j[H])this.terminals_[tt]&&tt>Zt&&it.push("'"+this.terminals_[tt]+"'");R.showPosition?ot="Parse error on line "+(J+1)+`:
2
2
  `+R.showPosition()+`
3
3
  Expecting `+it.join(", ")+", got '"+(this.terminals_[M]||M)+"'":ot="Parse error on line "+(J+1)+": Unexpected "+(M==_t?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(ot,{text:R.match,token:this.terminals_[M]||M,line:R.yylineno,loc:at,expected:it})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+M);switch(B[0]){case 1:u.push(M),A.push(R.yytext),r.push(R.yylloc),u.push(B[1]),M=null,St=R.yyleng,f=R.yytext,J=R.yylineno,at=R.yylloc;break;case 2:if(O=this.productions_[B[1]][1],q.$=A[A.length-O],q._$={first_line:r[r.length-(O||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(O||1)].first_column,last_column:r[r.length-1].last_column},ti&&(q._$.range=[r[r.length-(O||1)].range[0],r[r.length-1].range[1]]),rt=this.performAction.apply(q,[f,St,J,Y.yy,B[1],A,r].concat(Jt)),typeof rt<"u")return rt;O&&(u=u.slice(0,-1*O*2),A=A.slice(0,-1*O),r=r.slice(0,-1*O)),u.push(this.productions_[B[1]][0]),A.push(q.$),r.push(q._$),Rt=j[u[u.length-2]][u[u.length-1]],u.push(Rt);break;case 3:return!0}}return!0},"parse")},Ct=(function(){var F={EOF:1,parseError:a(function(c,u){if(this.yy.parser)this.yy.parser.parseError(c,u);else throw new Error(c)},"parseError"),setInput:a(function(o,c){return this.yy=c||this.yy||{},this._input=o,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:a(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var c=o.match(/(?:\r\n?|\n).*/g);return c?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:a(function(o){var c=o.length,u=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var d=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),u.length-1&&(this.yylineno-=u.length-1);var A=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:u?(u.length===d.length?this.yylloc.first_column:0)+d[d.length-u.length].length-u[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(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:a(function(o){this.unput(this.match.slice(o))},"less"),pastInput:a(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var o=this.pastInput(),c=new Array(o.length+1).join("-");return o+this.upcomingInput()+`
@@ -6,7 +6,7 @@
6
6
  <link id="favicon" rel="icon" type="image/x-icon" href="/favicon-dark.ico" media="(prefers-color-scheme: light)" />
7
7
  <link rel="icon" type="image/x-icon" href="/favicon-light.ico" media="(prefers-color-scheme: dark)" />
8
8
  <title>Open Code Review Dashboard</title>
9
- <script type="module" crossorigin src="/assets/index-C3NEq704.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-CKWqYAfu.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="/assets/index-CzxeSSaQ.css">
11
11
  </head>
12
12
  <body>
@@ -20806,7 +20806,7 @@ var require_application = __commonJS({
20806
20806
  };
20807
20807
  app2.del = deprecate.function(app2.delete, "app.del: Use app.delete instead");
20808
20808
  app2.render = function render(name, options, callback) {
20809
- var cache = this.cache;
20809
+ var cache2 = this.cache;
20810
20810
  var done = callback;
20811
20811
  var engines = this.engines;
20812
20812
  var opts = options;
@@ -20825,7 +20825,7 @@ var require_application = __commonJS({
20825
20825
  renderOptions.cache = this.enabled("view cache");
20826
20826
  }
20827
20827
  if (renderOptions.cache) {
20828
- view = cache[name];
20828
+ view = cache2[name];
20829
20829
  }
20830
20830
  if (!view) {
20831
20831
  var View2 = this.get("view");
@@ -20841,7 +20841,7 @@ var require_application = __commonJS({
20841
20841
  return done(err);
20842
20842
  }
20843
20843
  if (renderOptions.cache) {
20844
- cache[name] = view;
20844
+ cache2[name] = view;
20845
20845
  }
20846
20846
  }
20847
20847
  tryRender(view, renderOptions, done);
@@ -33489,11 +33489,6 @@ function buildResumeCommand(vendor, vendorSessionId) {
33489
33489
  // src/server/services/ai-cli/claude-adapter.ts
33490
33490
  var WORKFLOW_TOOLS = ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "TodoWrite", "TodoRead", "Task"];
33491
33491
  var QUERY_TOOLS = ["Read", "Grep", "Glob"];
33492
- var BUNDLED_CLAUDE_MODELS = [
33493
- { id: "claude-opus-4-7", displayName: "Claude Opus 4.7" },
33494
- { id: "claude-sonnet-4-6", displayName: "Claude Sonnet 4.6" },
33495
- { id: "claude-haiku-4-5-20251001", displayName: "Claude Haiku 4.5" }
33496
- ];
33497
33492
  var ClaudeCodeAdapter = class {
33498
33493
  name = "Claude Code";
33499
33494
  binary = "claude";
@@ -33562,38 +33557,6 @@ var ClaudeCodeAdapter = class {
33562
33557
  ...logPath ? { logPath } : {}
33563
33558
  };
33564
33559
  }
33565
- async listModels() {
33566
- try {
33567
- const output = execBinary("claude", ["models", "--json"], {
33568
- encoding: "utf-8",
33569
- timeout: 5e3,
33570
- stdio: ["ignore", "pipe", "ignore"]
33571
- });
33572
- const parsed = JSON.parse(output);
33573
- if (Array.isArray(parsed)) {
33574
- const models = [];
33575
- for (const item of parsed) {
33576
- if (typeof item === "string") {
33577
- models.push({ id: item });
33578
- } else if (typeof item === "object" && item !== null && "id" in item && typeof item.id === "string") {
33579
- const obj = item;
33580
- const desc = { id: obj.id };
33581
- if (typeof obj.displayName === "string") desc.displayName = obj.displayName;
33582
- if (typeof obj.provider === "string") desc.provider = obj.provider;
33583
- if (Array.isArray(obj.tags)) {
33584
- desc.tags = obj.tags.filter((t) => typeof t === "string");
33585
- }
33586
- models.push(desc);
33587
- }
33588
- }
33589
- if (models.length > 0) {
33590
- return models;
33591
- }
33592
- }
33593
- } catch {
33594
- }
33595
- return BUNDLED_CLAUDE_MODELS;
33596
- }
33597
33560
  createParser() {
33598
33561
  return new ClaudeLineParser();
33599
33562
  }
@@ -33747,11 +33710,6 @@ function extractToolResultOutput(content) {
33747
33710
  function capitalize(s) {
33748
33711
  return s.charAt(0).toUpperCase() + s.slice(1);
33749
33712
  }
33750
- var BUNDLED_OPENCODE_MODELS = [
33751
- { id: "anthropic/claude-opus-4-7", provider: "anthropic" },
33752
- { id: "anthropic/claude-sonnet-4-6", provider: "anthropic" },
33753
- { id: "anthropic/claude-haiku-4-5-20251001", provider: "anthropic" }
33754
- ];
33755
33713
  var OpenCodeAdapter = class {
33756
33714
  name = "OpenCode";
33757
33715
  binary = "opencode";
@@ -33819,38 +33777,6 @@ var OpenCodeAdapter = class {
33819
33777
  ...logPath ? { logPath } : {}
33820
33778
  };
33821
33779
  }
33822
- async listModels() {
33823
- try {
33824
- const output = execBinary("opencode", ["models", "--json"], {
33825
- encoding: "utf-8",
33826
- timeout: 5e3,
33827
- stdio: ["ignore", "pipe", "ignore"]
33828
- });
33829
- const parsed = JSON.parse(output);
33830
- if (Array.isArray(parsed)) {
33831
- const models = [];
33832
- for (const item of parsed) {
33833
- if (typeof item === "string") {
33834
- models.push({ id: item });
33835
- } else if (typeof item === "object" && item !== null && "id" in item && typeof item.id === "string") {
33836
- const obj = item;
33837
- const desc = { id: obj.id };
33838
- if (typeof obj.displayName === "string") desc.displayName = obj.displayName;
33839
- if (typeof obj.provider === "string") desc.provider = obj.provider;
33840
- if (Array.isArray(obj.tags)) {
33841
- desc.tags = obj.tags.filter((t) => typeof t === "string");
33842
- }
33843
- models.push(desc);
33844
- }
33845
- }
33846
- if (models.length > 0) {
33847
- return models;
33848
- }
33849
- }
33850
- } catch {
33851
- }
33852
- return BUNDLED_OPENCODE_MODELS;
33853
- }
33854
33780
  /**
33855
33781
  * OpenCode emits each event with all its content already resolved (tool
33856
33782
  * results arrive in the same event as the call), so the parser is
@@ -34019,6 +33945,9 @@ function readEventJournal(ocrDir, executionId) {
34019
33945
  }
34020
33946
 
34021
33947
  // src/server/services/ai-cli/index.ts
33948
+ function createRegisteredAdapters() {
33949
+ return [new ClaudeCodeAdapter(), new OpenCodeAdapter()];
33950
+ }
34022
33951
  function readAiCliPreference(ocrDir) {
34023
33952
  try {
34024
33953
  const configPath = join9(ocrDir, "config.yaml");
@@ -34038,10 +33967,7 @@ var AiCliService = class {
34038
33967
  status;
34039
33968
  constructor(ocrDir) {
34040
33969
  this.preference = readAiCliPreference(ocrDir);
34041
- const adapters = [
34042
- new ClaudeCodeAdapter(),
34043
- new OpenCodeAdapter()
34044
- ];
33970
+ const adapters = createRegisteredAdapters();
34045
33971
  this.entries = adapters.map((adapter) => ({
34046
33972
  adapter,
34047
33973
  detection: adapter.detect()
@@ -35699,23 +35625,62 @@ function resolveTeamComposition(team, override) {
35699
35625
  }
35700
35626
 
35701
35627
  // ../cli/src/lib/models.ts
35702
- var BUNDLED_CLAUDE_MODELS2 = [
35703
- { id: "claude-opus-4-7", displayName: "Claude Opus 4.7" },
35704
- { id: "claude-sonnet-4-6", displayName: "Claude Sonnet 4.6" },
35705
- { id: "claude-haiku-4-5-20251001", displayName: "Claude Haiku 4.5" }
35706
- ];
35707
- var BUNDLED_OPENCODE_MODELS2 = [
35708
- { id: "anthropic/claude-opus-4-7", provider: "anthropic" },
35709
- { id: "anthropic/claude-sonnet-4-6", provider: "anthropic" },
35710
- { id: "anthropic/claude-haiku-4-5-20251001", provider: "anthropic" }
35711
- ];
35712
- function detectActiveVendor() {
35713
- for (const vendor of ["claude", "opencode"]) {
35628
+ function parseOpenCodeModelList(stdout) {
35629
+ const models = [];
35630
+ for (const rawLine of stdout.split(/\r?\n/)) {
35631
+ const line = rawLine.trim();
35632
+ if (!/^[^\s:]+\/\S+$/.test(line)) continue;
35633
+ const provider = line.slice(0, line.indexOf("/"));
35634
+ models.push({ id: line, provider });
35635
+ }
35636
+ return models.length > 0 ? models : null;
35637
+ }
35638
+ var VENDOR_MODEL_STRATEGIES = {
35639
+ claude: {
35640
+ displayName: "Claude Code",
35641
+ native: {
35642
+ // Verified against Claude Code 2.1.x: the CLI has no model-listing
35643
+ // subcommand (`claude models --json` → "unknown option"). Revisit if
35644
+ // a future release adds one.
35645
+ unavailableReason: "Claude Code does not provide a model-listing command; showing its documented model aliases instead"
35646
+ },
35647
+ // Vendor-documented aliases that always track the latest generation —
35648
+ // dated ids here would go stale by construction (the exact bug class of
35649
+ // issue #39). Pinned dated ids remain available via free-text entry.
35650
+ bundled: [
35651
+ { id: "opus", displayName: "Claude Opus (latest)" },
35652
+ { id: "sonnet", displayName: "Claude Sonnet (latest)" },
35653
+ { id: "haiku", displayName: "Claude Haiku (latest)" }
35654
+ ]
35655
+ },
35656
+ opencode: {
35657
+ displayName: "OpenCode",
35658
+ native: {
35659
+ // Plain `opencode models` — newline-delimited ids. (`--json` is not a
35660
+ // real flag, and `--verbose` interleaves JSON metadata blocks that
35661
+ // defeat line parsing.)
35662
+ args: ["models"],
35663
+ parse: parseOpenCodeModelList
35664
+ },
35665
+ bundled: [
35666
+ { id: "anthropic/claude-opus-4-8", provider: "anthropic" },
35667
+ { id: "anthropic/claude-sonnet-4-6", provider: "anthropic" },
35668
+ { id: "anthropic/claude-haiku-4-5", provider: "anthropic" }
35669
+ ]
35670
+ }
35671
+ };
35672
+ var SUPPORTED_VENDORS = Object.keys(
35673
+ VENDOR_MODEL_STRATEGIES
35674
+ );
35675
+ function isModelVendor(value) {
35676
+ return Object.hasOwn(VENDOR_MODEL_STRATEGIES, value);
35677
+ }
35678
+ async function detectActiveVendor() {
35679
+ for (const vendor of SUPPORTED_VENDORS) {
35714
35680
  try {
35715
- execBinary(vendor, ["--version"], {
35681
+ await execBinaryAsync(vendor, ["--version"], {
35716
35682
  encoding: "utf-8",
35717
- timeout: 3e3,
35718
- stdio: ["ignore", "pipe", "ignore"]
35683
+ timeout: 3e3
35719
35684
  });
35720
35685
  return vendor;
35721
35686
  } catch {
@@ -35723,45 +35688,73 @@ function detectActiveVendor() {
35723
35688
  }
35724
35689
  return null;
35725
35690
  }
35726
- function tryNativeEnumeration(vendor) {
35691
+ function describeProbeFailure(vendor, args, err) {
35692
+ const command = `${vendor} ${args.join(" ")}`;
35693
+ const e = err;
35694
+ if (e.code === "ENOENT") {
35695
+ return `\`${vendor}\` is not installed or not on PATH`;
35696
+ }
35697
+ if (e.killed) {
35698
+ return `\`${command}\` timed out or exceeded output limits`;
35699
+ }
35700
+ const stderr = typeof e.stderr === "string" ? e.stderr.trim() : "";
35701
+ const firstLine = (stderr.split(/\r?\n/)[0] ?? "").replace(/\u001b\[[0-9;]*[A-Za-z]/g, "").replace(/[\u0000-\u001f\u007f]/g, "").slice(0, 200);
35702
+ const detail = firstLine ? `: ${firstLine}` : "";
35703
+ const exit = typeof e.code === "number" ? ` with exit code ${e.code}` : "";
35704
+ return `\`${command}\` failed${exit}${detail}`;
35705
+ }
35706
+ async function tryNativeEnumeration(vendor, probe) {
35707
+ let stdout;
35727
35708
  try {
35728
- const output = execBinary(vendor, ["models", "--json"], {
35709
+ const result = await execBinaryAsync(vendor, probe.args, {
35729
35710
  encoding: "utf-8",
35730
- timeout: 5e3,
35731
- stdio: ["ignore", "pipe", "ignore"]
35711
+ timeout: 5e3
35732
35712
  });
35733
- const parsed = JSON.parse(output);
35734
- if (!Array.isArray(parsed)) return null;
35735
- const models = [];
35736
- for (const item of parsed) {
35737
- if (typeof item === "string") {
35738
- models.push({ id: item });
35739
- } else if (typeof item === "object" && item !== null && "id" in item && typeof item.id === "string") {
35740
- const obj = item;
35741
- const desc = { id: obj.id };
35742
- if (typeof obj.displayName === "string") desc.displayName = obj.displayName;
35743
- if (typeof obj.provider === "string") desc.provider = obj.provider;
35744
- if (Array.isArray(obj.tags)) {
35745
- desc.tags = obj.tags.filter((t) => typeof t === "string");
35746
- }
35747
- models.push(desc);
35748
- }
35749
- }
35750
- return models.length > 0 ? models : null;
35751
- } catch {
35752
- return null;
35713
+ stdout = result.stdout;
35714
+ } catch (err) {
35715
+ return { models: null, reason: describeProbeFailure(vendor, probe.args, err) };
35753
35716
  }
35717
+ const models = probe.parse(stdout);
35718
+ if (!models) {
35719
+ return {
35720
+ models: null,
35721
+ reason: `\`${vendor} ${probe.args.join(" ")}\` output did not contain any model identifiers`
35722
+ };
35723
+ }
35724
+ return { models };
35754
35725
  }
35755
- function bundledForVendor(vendor) {
35756
- if (vendor === "claude") return BUNDLED_CLAUDE_MODELS2;
35757
- return BUNDLED_OPENCODE_MODELS2;
35758
- }
35759
- function listModelsForVendor(vendor) {
35760
- const native = tryNativeEnumeration(vendor);
35761
- if (native) {
35762
- return { vendor, source: "native", models: native };
35726
+ var SUCCESS_TTL_MS = 6e4;
35727
+ var FAILURE_TTL_MS = 1e4;
35728
+ var cache = /* @__PURE__ */ new Map();
35729
+ async function listModelsForVendor(vendor) {
35730
+ const cached = cache.get(vendor);
35731
+ if (cached && cached.expiresAt > Date.now()) {
35732
+ return cached.result;
35733
+ }
35734
+ const strategy = VENDOR_MODEL_STRATEGIES[vendor];
35735
+ if (!strategy) {
35736
+ throw new Error(`Unknown vendor: ${vendor}`);
35737
+ }
35738
+ let result;
35739
+ if ("unavailableReason" in strategy.native) {
35740
+ result = {
35741
+ vendor,
35742
+ source: "bundled",
35743
+ models: strategy.bundled,
35744
+ nativeUnavailableReason: strategy.native.unavailableReason
35745
+ };
35746
+ } else {
35747
+ const native = await tryNativeEnumeration(vendor, strategy.native);
35748
+ result = native.models ? { vendor, source: "native", models: native.models } : {
35749
+ vendor,
35750
+ source: "bundled",
35751
+ models: strategy.bundled,
35752
+ nativeUnavailableReason: native.reason
35753
+ };
35763
35754
  }
35764
- return { vendor, source: "bundled", models: bundledForVendor(vendor) };
35755
+ const ttl = result.source === "native" ? SUCCESS_TTL_MS : FAILURE_TTL_MS;
35756
+ cache.set(vendor, { result, expiresAt: Date.now() + ttl });
35757
+ return result;
35765
35758
  }
35766
35759
 
35767
35760
  // src/server/routes/team.ts
@@ -35847,30 +35840,41 @@ function createTeamRouter(ocrDir) {
35847
35840
  }
35848
35841
  });
35849
35842
  router.get("/models", (req, res) => {
35850
- let vendor;
35851
- const requested = req.query["vendor"]?.toLowerCase();
35852
- if (requested === "claude" || requested === "opencode") {
35853
- vendor = requested;
35854
- } else if (!requested || requested === "auto") {
35855
- vendor = detectActiveVendor();
35856
- } else {
35857
- res.status(400).json({ error: `Unknown vendor: ${requested}` });
35858
- return;
35859
- }
35860
- if (!vendor) {
35861
- res.json({ vendor: null, source: null, models: [] });
35862
- return;
35863
- }
35864
- try {
35865
- const result = listModelsForVendor(vendor);
35866
- res.json(result);
35867
- } catch (err) {
35868
- console.error("Failed to list models:", err);
35869
- res.status(500).json({
35870
- error: "Failed to list models",
35871
- detail: err instanceof Error ? err.message : String(err)
35872
- });
35873
- }
35843
+ void (async () => {
35844
+ try {
35845
+ const raw = req.query["vendor"];
35846
+ if (raw !== void 0 && typeof raw !== "string") {
35847
+ res.status(400).json({ error: "vendor must be a single string" });
35848
+ return;
35849
+ }
35850
+ const requested = raw?.toLowerCase();
35851
+ let vendor;
35852
+ if (requested && isModelVendor(requested)) {
35853
+ vendor = requested;
35854
+ } else if (!requested || requested === "auto") {
35855
+ vendor = await detectActiveVendor();
35856
+ } else {
35857
+ res.status(400).json({
35858
+ error: `Unknown vendor: ${requested}. Supported: ${SUPPORTED_VENDORS.join(", ")}`
35859
+ });
35860
+ return;
35861
+ }
35862
+ if (!vendor) {
35863
+ res.json({ vendor: null, source: null, models: [] });
35864
+ return;
35865
+ }
35866
+ const result = await listModelsForVendor(vendor);
35867
+ res.json(result);
35868
+ } catch (err) {
35869
+ console.error("Failed to list models:", err);
35870
+ if (!res.headersSent) {
35871
+ res.status(500).json({
35872
+ error: "Failed to list models",
35873
+ detail: err instanceof Error ? err.message : String(err)
35874
+ });
35875
+ }
35876
+ }
35877
+ })();
35874
35878
  });
35875
35879
  return router;
35876
35880
  }