@langgraph-js/ui 5.2.0 → 5.4.0

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 (69) hide show
  1. package/dist/assets/{arc-k3dgSSjU.js → arc-DQUrjEml.js} +1 -1
  2. package/dist/assets/{architectureDiagram-VXUJARFQ-3N4Q3aZn.js → architectureDiagram-VXUJARFQ-HbPzZrlH.js} +1 -1
  3. package/dist/assets/{blockDiagram-VD42YOAC-gYWuEePF.js → blockDiagram-VD42YOAC-D_Idys33.js} +1 -1
  4. package/dist/assets/{c4Diagram-YG6GDRKO-d1wDBP0m.js → c4Diagram-YG6GDRKO-Cz8lYf2-.js} +1 -1
  5. package/dist/assets/channel-B6KFe5Ui.js +1 -0
  6. package/dist/assets/{chunk-4BX2VUAB-DFEs4FqT.js → chunk-4BX2VUAB-B-hX18OI.js} +1 -1
  7. package/dist/assets/{chunk-55IACEB6-CBZCFFSQ.js → chunk-55IACEB6-CDCucU6U.js} +1 -1
  8. package/dist/assets/{chunk-B4BG7PRW-MBLYLOpW.js → chunk-B4BG7PRW-B_bvOmJU.js} +1 -1
  9. package/dist/assets/{chunk-DI55MBZ5-CKIqbMAk.js → chunk-DI55MBZ5-BqSop0cW.js} +1 -1
  10. package/dist/assets/{chunk-FMBD7UC4-CKvuUqu2.js → chunk-FMBD7UC4-C54-XKR7.js} +1 -1
  11. package/dist/assets/{chunk-QN33PNHL-C7W3Jof4.js → chunk-QN33PNHL-BPnnBJ3E.js} +1 -1
  12. package/dist/assets/{chunk-QZHKN3VN-DTp6PsnU.js → chunk-QZHKN3VN-WNR9TOch.js} +1 -1
  13. package/dist/assets/{chunk-TZMSLE5B-CbzLkt3f.js → chunk-TZMSLE5B-7H_0y6Jq.js} +1 -1
  14. package/dist/assets/classDiagram-2ON5EDUG-By_JhIEM.js +1 -0
  15. package/dist/assets/classDiagram-v2-WZHVMYZB-By_JhIEM.js +1 -0
  16. package/dist/assets/clone-BuF8XBFq.js +1 -0
  17. package/dist/assets/{cose-bilkent-S5V4N54A-DIvheiGX.js → cose-bilkent-S5V4N54A-DYYnco-F.js} +1 -1
  18. package/dist/assets/{dagre-6UL2VRFP-DZhx7t5Y.js → dagre-6UL2VRFP-BuN5tYoM.js} +1 -1
  19. package/dist/assets/{diagram-PSM6KHXK-DGAecazr.js → diagram-PSM6KHXK-BqLZHOD_.js} +1 -1
  20. package/dist/assets/{diagram-QEK2KX5R-B_5MlwT9.js → diagram-QEK2KX5R-D6ihm09C.js} +1 -1
  21. package/dist/assets/{diagram-S2PKOQOG-DbnmA7e2.js → diagram-S2PKOQOG-Z4kDGPqZ.js} +1 -1
  22. package/dist/assets/{erDiagram-Q2GNP2WA-Br7xZhkv.js → erDiagram-Q2GNP2WA-tT_ZIA6k.js} +1 -1
  23. package/dist/assets/{flowDiagram-NV44I4VS-B0eGR7-f.js → flowDiagram-NV44I4VS-DP4XZFAl.js} +1 -1
  24. package/dist/assets/{ganttDiagram-LVOFAZNH-1DUzINqD.js → ganttDiagram-LVOFAZNH-D8dtKJe7.js} +1 -1
  25. package/dist/assets/{gitGraphDiagram-NY62KEGX-BoWt4frQ.js → gitGraphDiagram-NY62KEGX-CHTqjWSe.js} +1 -1
  26. package/dist/assets/{graph-DzatdHCT.js → graph-BuzEybDF.js} +1 -1
  27. package/dist/assets/index-C2dvtkqk.css +1 -0
  28. package/dist/assets/{index-BKT1JcWk.js → index-C7NPwb1W.js} +71 -64
  29. package/dist/assets/{index-DW8ErvlV.js → index-CRO3NlHm.js} +1 -1
  30. package/dist/assets/{infoDiagram-F6ZHWCRC-DLQslVcT.js → infoDiagram-F6ZHWCRC-DxSSCHjJ.js} +1 -1
  31. package/dist/assets/{isUndefined-BgBSNL7h.js → isUndefined-CMHFQ84G.js} +1 -1
  32. package/dist/assets/{journeyDiagram-XKPGCS4Q-CM8hW-Dy.js → journeyDiagram-XKPGCS4Q-BevCzXS0.js} +1 -1
  33. package/dist/assets/{kanban-definition-3W4ZIXB7-BV_KMoL8.js → kanban-definition-3W4ZIXB7-Datdpuzc.js} +1 -1
  34. package/dist/assets/{layout-DI2Ek4ZX.js → layout-CRoaNhL7.js} +1 -1
  35. package/dist/assets/{linear-B70jw5Te.js → linear-CZCbyP3Y.js} +1 -1
  36. package/dist/assets/{mermaid.core-CGLWRVx8.js → mermaid.core-oWlc3CvG.js} +5 -5
  37. package/dist/assets/{min-IW_t5ZIc.js → min-B-Brdcc-.js} +1 -1
  38. package/dist/assets/{mindmap-definition-VGOIOE7T-DKmAom6R.js → mindmap-definition-VGOIOE7T-C2cLH6vf.js} +1 -1
  39. package/dist/assets/{pieDiagram-ADFJNKIX-2BvdVtwh.js → pieDiagram-ADFJNKIX-lHSlzymq.js} +1 -1
  40. package/dist/assets/{quadrantDiagram-AYHSOK5B-tZqJeg84.js → quadrantDiagram-AYHSOK5B-Cu4iHHyE.js} +1 -1
  41. package/dist/assets/{requirementDiagram-UZGBJVZJ-BDVfQky-.js → requirementDiagram-UZGBJVZJ-DsXoYXUv.js} +1 -1
  42. package/dist/assets/{sankeyDiagram-TZEHDZUN-DL3nHaW_.js → sankeyDiagram-TZEHDZUN-BR0Y-EwJ.js} +1 -1
  43. package/dist/assets/{sequenceDiagram-WL72ISMW-Ccci1BhL.js → sequenceDiagram-WL72ISMW-DI7AT-qP.js} +1 -1
  44. package/dist/assets/{stateDiagram-FKZM4ZOC-D72rbhg9.js → stateDiagram-FKZM4ZOC-oxL9LRWa.js} +1 -1
  45. package/dist/assets/stateDiagram-v2-4FDKWEC3-C9dX-PKL.js +1 -0
  46. package/dist/assets/{timeline-definition-IT6M3QCI-BJz3pzov.js → timeline-definition-IT6M3QCI-Dj8UUbRz.js} +1 -1
  47. package/dist/assets/{treemap-KMMF4GRG-C6FRo8sN.js → treemap-KMMF4GRG-oIIgGlOX.js} +1 -1
  48. package/dist/assets/{xychartDiagram-PRI3JC2R-B1dvrGNn.js → xychartDiagram-PRI3JC2R-tBcCr-MQ.js} +1 -1
  49. package/dist/index.html +3 -3
  50. package/index.html +1 -1
  51. package/package.json +11 -7
  52. package/server/graph/debugAgent.ts +42 -0
  53. package/server/index.ts +6 -1
  54. package/src/chat/Chat.tsx +56 -25
  55. package/src/chat/components/MessageHuman.tsx +83 -8
  56. package/src/chat/components/UsageMetadata.tsx +2 -2
  57. package/src/debugPanel/Context.tsx +45 -0
  58. package/src/debugPanel/DebugPanel.tsx +237 -0
  59. package/src/debugPanel/index.ts +1 -0
  60. package/src/index.ts +1 -0
  61. package/src/monitor/index.tsx +1 -4
  62. package/test/App.tsx +8 -2
  63. package/tsconfig.json +1 -1
  64. package/dist/assets/channel-vUExqIsh.js +0 -1
  65. package/dist/assets/classDiagram-2ON5EDUG-BR8LFF3q.js +0 -1
  66. package/dist/assets/classDiagram-v2-WZHVMYZB-BR8LFF3q.js +0 -1
  67. package/dist/assets/clone-DFFpaJQA.js +0 -1
  68. package/dist/assets/index-DfuXfoTh.css +0 -1
  69. package/dist/assets/stateDiagram-v2-4FDKWEC3-yiVP38kq.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a3 as xc,a4 as Sc,t as $l,a5 as Ic,k as Xt,U as Cc,d as Us,g as Qn,h as ae,v as Bs,a6 as xl,T as Nc,N as wc,a7 as he,a8 as Sl,a9 as _c,aa as Lc,Q as Oc,ab as ga,e as bc,ac as Pc,ad as Mc,ae as Me,f as C,af as Vs,V as Ne,X as N,i as Et,r as le,a as D,ag as hi,y as ya,ah as Y,Z as Jt,ai as Dc,a0 as ft}from"./index-BKT1JcWk.js";import{m as $,f as Qt,e as Ks,d as Fc}from"./min-IW_t5ZIc.js";import{v as z,b as Gc,i as Ye,f as $e}from"./isUndefined-BgBSNL7h.js";import{c as ne}from"./clone-DFFpaJQA.js";var Uc=Object.prototype,Bc=Uc.hasOwnProperty,ke=xc(function(n,e){if(Sc(e)||$l(e)){Ic(e,Xt(e),n);return}for(var t in e)Bc.call(e,t)&&Cc(n,t,e[t])});function Zn(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function Vc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function Kc(n,e,t,r){return Us(n,function(i,s,a){e(r,i,t(i),a)}),r}function Wc(n,e){return function(t,r){var i=ae(t)?Vc:Kc,s=e?e():{};return i(t,n,Qn(r),s)}}function Q(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Bs(e),xl(n,e<0?0:e,r)):[]}function qn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Bs(e),e=r-e,xl(n,0,e<0?0:e)):[]}function jc(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function Hc(n,e){var t=!0;return Us(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function be(n,e,t){var r=ae(n)?jc:Hc;return r(n,Qn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function Ee(n,e){return Nc($(n,e),1)}var zc=Object.prototype,qc=zc.hasOwnProperty,Yc=Wc(function(n,e,t){qc.call(n,t)?n[t].push(e):wc(n,t,[e])}),Xc=Math.max;function de(n,e,t,r){n=$l(n)?n:z(n),t=t?Bs(t):0;var i=n.length;return t<0&&(t=Xc(i+t,0)),he(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Sl(n,e,t)>-1}function Ta(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return Sl(n,e,i)}var Jc="[object RegExp]";function Qc(n){return _c(n)&&Lc(n)==Jc}var Ra=ga&&ga.isRegExp,Xe=Ra?Oc(Ra):Qc,Zc="Expected a function";function ed(n){if(typeof n!="function")throw new TypeError(Zc);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function pi(n,e){var t=ae(n)?bc:Gc;return t(n,ed(Qn(e)))}function td(n,e){var t;return Us(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Il(n,e,t){var r=ae(n)?Pc:td;return r(n,Qn(e))}function nd(n,e){return n&&n.length?Mc(n,Qn(e)):[]}function se(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function rd(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function Nr(n){return typeof n=="object"&&n!==null&&se(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Cl{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return se(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Yn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function Nl(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function wl(n){return Yn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}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 t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return ve})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=id(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?ve:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return ve})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(Wr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ve})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.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}=t.nextFn(r.this);if(!i)if(Wr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ve})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?ve:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return ve})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function id(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Wr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const sd=new Z(()=>{},()=>ve),ve=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(Wr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:ve)}return n.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;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<n.length){const t=n[e.collIndex++];Wr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return ve}):sd}class Ws extends Z{constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(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(t(a.value)[Symbol.iterator]()),a}return ve})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var is;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(is||(is={}));function ss(n){return new Ws(n,e=>Yn(e)?e.content:[],{includeRoot:!0})}function ad(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function as(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function jr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var He;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(He||(He={}));function od(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return He.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return He.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?He.Inside:t?He.OverlapBack:r?He.OverlapFront:He.Outside}function ld(n,e){return od(n,e)>He.After}const ud=/^[\w\p{L}]$/u;function cd(n,e){if(n){const t=dd(n,!0);if(t&&va(t,e))return t;if(wl(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(va(s,e))return s}}}}function va(n,e){return Nl(n)&&e.includes(n.tokenType.name)}function dd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class _l extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function er(n){throw new Error("Error! The input value was not handled.")}const or="AbstractRule",lr="AbstractType",wi="Condition",Aa="TypeDefinition",_i="ValueLiteral",dn="AbstractElement";function fd(n){return M.isInstance(n,dn)}const ur="ArrayLiteral",cr="ArrayType",fn="BooleanLiteral";function hd(n){return M.isInstance(n,fn)}const hn="Conjunction";function pd(n){return M.isInstance(n,hn)}const pn="Disjunction";function md(n){return M.isInstance(n,pn)}const dr="Grammar",Li="GrammarImport",mn="InferredType";function Ll(n){return M.isInstance(n,mn)}const gn="Interface";function Ol(n){return M.isInstance(n,gn)}const Oi="NamedArgument",yn="Negation";function gd(n){return M.isInstance(n,yn)}const fr="NumberLiteral",hr="Parameter",Tn="ParameterReference";function yd(n){return M.isInstance(n,Tn)}const Rn="ParserRule";function we(n){return M.isInstance(n,Rn)}const pr="ReferenceType",wr="ReturnType";function Td(n){return M.isInstance(n,wr)}const vn="SimpleType";function Rd(n){return M.isInstance(n,vn)}const mr="StringLiteral",Nt="TerminalRule";function kt(n){return M.isInstance(n,Nt)}const An="Type";function bl(n){return M.isInstance(n,An)}const bi="TypeAttribute",gr="UnionType",En="Action";function mi(n){return M.isInstance(n,En)}const kn="Alternatives";function Pl(n){return M.isInstance(n,kn)}const $n="Assignment";function gt(n){return M.isInstance(n,$n)}const xn="CharacterRange";function vd(n){return M.isInstance(n,xn)}const Sn="CrossReference";function js(n){return M.isInstance(n,Sn)}const In="EndOfFile";function Ad(n){return M.isInstance(n,In)}const Cn="Group";function Hs(n){return M.isInstance(n,Cn)}const Nn="Keyword";function yt(n){return M.isInstance(n,Nn)}const wn="NegatedToken";function Ed(n){return M.isInstance(n,wn)}const _n="RegexToken";function kd(n){return M.isInstance(n,_n)}const Ln="RuleCall";function Tt(n){return M.isInstance(n,Ln)}const On="TerminalAlternatives";function $d(n){return M.isInstance(n,On)}const bn="TerminalGroup";function xd(n){return M.isInstance(n,bn)}const Pn="TerminalRuleCall";function Sd(n){return M.isInstance(n,Pn)}const Mn="UnorderedGroup";function Ml(n){return M.isInstance(n,Mn)}const Dn="UntilToken";function Id(n){return M.isInstance(n,Dn)}const Fn="Wildcard";function Cd(n){return M.isInstance(n,Fn)}class Dl extends Cl{getAllTypes(){return[dn,or,lr,En,kn,ur,cr,$n,fn,xn,wi,hn,Sn,pn,In,dr,Li,Cn,mn,gn,Nn,Oi,wn,yn,fr,hr,Tn,Rn,pr,_n,wr,Ln,vn,mr,On,bn,Nt,Pn,An,bi,Aa,gr,Mn,Dn,_i,Fn]}computeIsSubtype(e,t){switch(e){case En:case kn:case $n:case xn:case Sn:case In:case Cn:case Nn:case wn:case _n:case Ln:case On:case bn:case Pn:case Mn:case Dn:case Fn:return this.isSubtype(dn,t);case ur:case fr:case mr:return this.isSubtype(_i,t);case cr:case pr:case vn:case gr:return this.isSubtype(Aa,t);case fn:return this.isSubtype(wi,t)||this.isSubtype(_i,t);case hn:case pn:case yn:case Tn:return this.isSubtype(wi,t);case mn:case gn:case An:return this.isSubtype(lr,t);case Rn:return this.isSubtype(or,t)||this.isSubtype(lr,t);case Nt:return this.isSubtype(or,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return lr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return or;case"Grammar:usedGrammars":return dr;case"NamedArgument:parameter":case"ParameterReference:parameter":return hr;case"TerminalRuleCall:rule":return Nt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case dn:return{name:dn,properties:[{name:"cardinality"},{name:"lookahead"}]};case ur:return{name:ur,properties:[{name:"elements",defaultValue:[]}]};case cr:return{name:cr,properties:[{name:"elementType"}]};case fn:return{name:fn,properties:[{name:"true",defaultValue:!1}]};case hn:return{name:hn,properties:[{name:"left"},{name:"right"}]};case pn:return{name:pn,properties:[{name:"left"},{name:"right"}]};case dr:return{name:dr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Li:return{name:Li,properties:[{name:"path"}]};case mn:return{name:mn,properties:[{name:"name"}]};case gn:return{name:gn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case yn:return{name:yn,properties:[{name:"value"}]};case fr:return{name:fr,properties:[{name:"value"}]};case hr:return{name:hr,properties:[{name:"name"}]};case Tn:return{name:Tn,properties:[{name:"parameter"}]};case Rn:return{name:Rn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case pr:return{name:pr,properties:[{name:"referenceType"}]};case wr:return{name:wr,properties:[{name:"name"}]};case vn:return{name:vn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case mr:return{name:mr,properties:[{name:"value"}]};case Nt:return{name:Nt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case An:return{name:An,properties:[{name:"name"},{name:"type"}]};case bi:return{name:bi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case gr:return{name:gr,properties:[{name:"types",defaultValue:[]}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"lookahead"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Ln:return{name:Ln,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case On:return{name:On,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Fn:return{name:Fn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Dl;function Nd(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{se(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):se(t)&&(t.$container=n,t.$containerProperty=e))}function gi(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function Ze(n){const t=os(n).$document;if(!t)throw new Error("AST node has no document.");return t}function os(n){for(;n.$container;)n=n.$container;return n}function zs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e?.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(se(s)){if(r.keyIndex++,Ea(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(se(o)&&Ea(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return ve})}function tr(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ws(n,t=>zs(t,e))}function _t(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ws(n,t=>zs(t,e),{includeRoot:!0})}function Ea(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?ld(r,e):!1}function Fl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return ve})}function wd(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Gl(i.defaultValue))}function Gl(n){return Array.isArray(n)?[...n.map(Gl)]:n}function w(n){return n.charCodeAt(0)}function Pi(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function ln(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Ct(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function _d(){throw Error("Internal Error - Should never get here!")}function ka(n){return n.type==="Character"}const Hr=[];for(let n=w("0");n<=w("9");n++)Hr.push(n);const zr=[w("_")].concat(Hr);for(let n=w("a");n<=w("z");n++)zr.push(n);for(let n=w("A");n<=w("Z");n++)zr.push(n);const $a=[w(" "),w("\f"),w(`
1
+ import{a3 as xc,a4 as Sc,t as $l,a5 as Ic,k as Xt,U as Cc,d as Us,g as Qn,h as ae,v as Bs,a6 as xl,T as Nc,N as wc,a7 as he,a8 as Sl,a9 as _c,aa as Lc,Q as Oc,ab as ga,e as bc,ac as Pc,ad as Mc,ae as Me,f as C,af as Vs,V as Ne,X as N,i as Et,r as le,a as D,ag as hi,y as ya,ah as Y,Z as Jt,ai as Dc,a0 as ft}from"./index-C7NPwb1W.js";import{m as $,f as Qt,e as Ks,d as Fc}from"./min-B-Brdcc-.js";import{v as z,b as Gc,i as Ye,f as $e}from"./isUndefined-CMHFQ84G.js";import{c as ne}from"./clone-BuF8XBFq.js";var Uc=Object.prototype,Bc=Uc.hasOwnProperty,ke=xc(function(n,e){if(Sc(e)||$l(e)){Ic(e,Xt(e),n);return}for(var t in e)Bc.call(e,t)&&Cc(n,t,e[t])});function Zn(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function Vc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function Kc(n,e,t,r){return Us(n,function(i,s,a){e(r,i,t(i),a)}),r}function Wc(n,e){return function(t,r){var i=ae(t)?Vc:Kc,s=e?e():{};return i(t,n,Qn(r),s)}}function Q(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Bs(e),xl(n,e<0?0:e,r)):[]}function qn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Bs(e),e=r-e,xl(n,0,e<0?0:e)):[]}function jc(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function Hc(n,e){var t=!0;return Us(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function be(n,e,t){var r=ae(n)?jc:Hc;return r(n,Qn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function Ee(n,e){return Nc($(n,e),1)}var zc=Object.prototype,qc=zc.hasOwnProperty,Yc=Wc(function(n,e,t){qc.call(n,t)?n[t].push(e):wc(n,t,[e])}),Xc=Math.max;function de(n,e,t,r){n=$l(n)?n:z(n),t=t?Bs(t):0;var i=n.length;return t<0&&(t=Xc(i+t,0)),he(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Sl(n,e,t)>-1}function Ta(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return Sl(n,e,i)}var Jc="[object RegExp]";function Qc(n){return _c(n)&&Lc(n)==Jc}var Ra=ga&&ga.isRegExp,Xe=Ra?Oc(Ra):Qc,Zc="Expected a function";function ed(n){if(typeof n!="function")throw new TypeError(Zc);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function pi(n,e){var t=ae(n)?bc:Gc;return t(n,ed(Qn(e)))}function td(n,e){var t;return Us(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Il(n,e,t){var r=ae(n)?Pc:td;return r(n,Qn(e))}function nd(n,e){return n&&n.length?Mc(n,Qn(e)):[]}function se(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function rd(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function Nr(n){return typeof n=="object"&&n!==null&&se(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Cl{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return se(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Yn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function Nl(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function wl(n){return Yn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}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 t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return ve})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=id(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?ve:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return ve})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(Wr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ve})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.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}=t.nextFn(r.this);if(!i)if(Wr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ve})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?ve:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return ve})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function id(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Wr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const sd=new Z(()=>{},()=>ve),ve=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(Wr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:ve)}return n.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;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<n.length){const t=n[e.collIndex++];Wr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return ve}):sd}class Ws extends Z{constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(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(t(a.value)[Symbol.iterator]()),a}return ve})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var is;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(is||(is={}));function ss(n){return new Ws(n,e=>Yn(e)?e.content:[],{includeRoot:!0})}function ad(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function as(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function jr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var He;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(He||(He={}));function od(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return He.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return He.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?He.Inside:t?He.OverlapBack:r?He.OverlapFront:He.Outside}function ld(n,e){return od(n,e)>He.After}const ud=/^[\w\p{L}]$/u;function cd(n,e){if(n){const t=dd(n,!0);if(t&&va(t,e))return t;if(wl(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(va(s,e))return s}}}}function va(n,e){return Nl(n)&&e.includes(n.tokenType.name)}function dd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class _l extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function er(n){throw new Error("Error! The input value was not handled.")}const or="AbstractRule",lr="AbstractType",wi="Condition",Aa="TypeDefinition",_i="ValueLiteral",dn="AbstractElement";function fd(n){return M.isInstance(n,dn)}const ur="ArrayLiteral",cr="ArrayType",fn="BooleanLiteral";function hd(n){return M.isInstance(n,fn)}const hn="Conjunction";function pd(n){return M.isInstance(n,hn)}const pn="Disjunction";function md(n){return M.isInstance(n,pn)}const dr="Grammar",Li="GrammarImport",mn="InferredType";function Ll(n){return M.isInstance(n,mn)}const gn="Interface";function Ol(n){return M.isInstance(n,gn)}const Oi="NamedArgument",yn="Negation";function gd(n){return M.isInstance(n,yn)}const fr="NumberLiteral",hr="Parameter",Tn="ParameterReference";function yd(n){return M.isInstance(n,Tn)}const Rn="ParserRule";function we(n){return M.isInstance(n,Rn)}const pr="ReferenceType",wr="ReturnType";function Td(n){return M.isInstance(n,wr)}const vn="SimpleType";function Rd(n){return M.isInstance(n,vn)}const mr="StringLiteral",Nt="TerminalRule";function kt(n){return M.isInstance(n,Nt)}const An="Type";function bl(n){return M.isInstance(n,An)}const bi="TypeAttribute",gr="UnionType",En="Action";function mi(n){return M.isInstance(n,En)}const kn="Alternatives";function Pl(n){return M.isInstance(n,kn)}const $n="Assignment";function gt(n){return M.isInstance(n,$n)}const xn="CharacterRange";function vd(n){return M.isInstance(n,xn)}const Sn="CrossReference";function js(n){return M.isInstance(n,Sn)}const In="EndOfFile";function Ad(n){return M.isInstance(n,In)}const Cn="Group";function Hs(n){return M.isInstance(n,Cn)}const Nn="Keyword";function yt(n){return M.isInstance(n,Nn)}const wn="NegatedToken";function Ed(n){return M.isInstance(n,wn)}const _n="RegexToken";function kd(n){return M.isInstance(n,_n)}const Ln="RuleCall";function Tt(n){return M.isInstance(n,Ln)}const On="TerminalAlternatives";function $d(n){return M.isInstance(n,On)}const bn="TerminalGroup";function xd(n){return M.isInstance(n,bn)}const Pn="TerminalRuleCall";function Sd(n){return M.isInstance(n,Pn)}const Mn="UnorderedGroup";function Ml(n){return M.isInstance(n,Mn)}const Dn="UntilToken";function Id(n){return M.isInstance(n,Dn)}const Fn="Wildcard";function Cd(n){return M.isInstance(n,Fn)}class Dl extends Cl{getAllTypes(){return[dn,or,lr,En,kn,ur,cr,$n,fn,xn,wi,hn,Sn,pn,In,dr,Li,Cn,mn,gn,Nn,Oi,wn,yn,fr,hr,Tn,Rn,pr,_n,wr,Ln,vn,mr,On,bn,Nt,Pn,An,bi,Aa,gr,Mn,Dn,_i,Fn]}computeIsSubtype(e,t){switch(e){case En:case kn:case $n:case xn:case Sn:case In:case Cn:case Nn:case wn:case _n:case Ln:case On:case bn:case Pn:case Mn:case Dn:case Fn:return this.isSubtype(dn,t);case ur:case fr:case mr:return this.isSubtype(_i,t);case cr:case pr:case vn:case gr:return this.isSubtype(Aa,t);case fn:return this.isSubtype(wi,t)||this.isSubtype(_i,t);case hn:case pn:case yn:case Tn:return this.isSubtype(wi,t);case mn:case gn:case An:return this.isSubtype(lr,t);case Rn:return this.isSubtype(or,t)||this.isSubtype(lr,t);case Nt:return this.isSubtype(or,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return lr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return or;case"Grammar:usedGrammars":return dr;case"NamedArgument:parameter":case"ParameterReference:parameter":return hr;case"TerminalRuleCall:rule":return Nt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case dn:return{name:dn,properties:[{name:"cardinality"},{name:"lookahead"}]};case ur:return{name:ur,properties:[{name:"elements",defaultValue:[]}]};case cr:return{name:cr,properties:[{name:"elementType"}]};case fn:return{name:fn,properties:[{name:"true",defaultValue:!1}]};case hn:return{name:hn,properties:[{name:"left"},{name:"right"}]};case pn:return{name:pn,properties:[{name:"left"},{name:"right"}]};case dr:return{name:dr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Li:return{name:Li,properties:[{name:"path"}]};case mn:return{name:mn,properties:[{name:"name"}]};case gn:return{name:gn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case yn:return{name:yn,properties:[{name:"value"}]};case fr:return{name:fr,properties:[{name:"value"}]};case hr:return{name:hr,properties:[{name:"name"}]};case Tn:return{name:Tn,properties:[{name:"parameter"}]};case Rn:return{name:Rn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case pr:return{name:pr,properties:[{name:"referenceType"}]};case wr:return{name:wr,properties:[{name:"name"}]};case vn:return{name:vn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case mr:return{name:mr,properties:[{name:"value"}]};case Nt:return{name:Nt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case An:return{name:An,properties:[{name:"name"},{name:"type"}]};case bi:return{name:bi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case gr:return{name:gr,properties:[{name:"types",defaultValue:[]}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"lookahead"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Ln:return{name:Ln,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case On:return{name:On,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Fn:return{name:Fn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Dl;function Nd(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{se(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):se(t)&&(t.$container=n,t.$containerProperty=e))}function gi(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function Ze(n){const t=os(n).$document;if(!t)throw new Error("AST node has no document.");return t}function os(n){for(;n.$container;)n=n.$container;return n}function zs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e?.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(se(s)){if(r.keyIndex++,Ea(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(se(o)&&Ea(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return ve})}function tr(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ws(n,t=>zs(t,e))}function _t(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ws(n,t=>zs(t,e),{includeRoot:!0})}function Ea(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?ld(r,e):!1}function Fl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return ve})}function wd(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Gl(i.defaultValue))}function Gl(n){return Array.isArray(n)?[...n.map(Gl)]:n}function w(n){return n.charCodeAt(0)}function Pi(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function ln(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Ct(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function _d(){throw Error("Internal Error - Should never get here!")}function ka(n){return n.type==="Character"}const Hr=[];for(let n=w("0");n<=w("9");n++)Hr.push(n);const zr=[w("_")].concat(Hr);for(let n=w("a");n<=w("z");n++)zr.push(n);for(let n=w("A");n<=w("Z");n++)zr.push(n);const $a=[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")],Ld=/[0-9a-fA-F]/,yr=/[0-9]/,Od=/[1-9]/;class Ul{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 t=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":ln(r,"global");break;case"i":ln(r,"ignoreCase");break;case"m":ln(r,"multiLine");break;case"u":ln(r,"unicode");break;case"y":ln(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}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 t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}Ct(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return _d()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;Ct(t);break}if(!(e===!0&&t===void 0)&&Ct(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const t=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()),Ct(e))return e.loc=this.loc(t),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,t=!1;switch(this.popChar()){case"d":e=Hr;break;case"D":e=Hr,t=!0;break;case"s":e=$a;break;case"S":e=$a,t=!0;break;case"w":e=zr;break;case"W":e=zr,t=!0;break}if(Ct(e))return{type:"Set",value:e,complement:t}}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(Ct(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{_ as a,s as gi,g as xi,q as Xt,p as di,a as fi,b as pi,l as Nt,I as mi,d as yi,y as bi,F as St,E as Yt,G as Ai,a0 as wi,h as Ci,az as Si,a8 as Wt}from"./mermaid.core-CGLWRVx8.js";import"./index-BKT1JcWk.js";import{i as _i}from"./init-Gi6I4Gst.js";import{o as ki}from"./ordinal-Cboi1Yqb.js";import{l as zt}from"./linear-B70jw5Te.js";import"./defaultLocale-C4B-KCzX.js";function Ri(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function yt(){var e=ki().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,g,m=!1,p=0,k=0,v=.5;delete e.unknown;function C(){var b=t().length,E=n<s,D=E?n:s,P=E?s:n;o=(P-D)/Math.max(1,b-p+k*2),m&&(o=Math.floor(o)),D+=(P-D-o*(b-p))*v,g=o*(1-p),m&&(D=Math.round(D),g=Math.round(g));var I=Ri(b).map(function(y){return D+o*y});return i(E?I.reverse():I)}return e.domain=function(b){return arguments.length?(t(b),C()):t()},e.range=function(b){return arguments.length?([s,n]=b,s=+s,n=+n,C()):[s,n]},e.rangeRound=function(b){return[s,n]=b,s=+s,n=+n,m=!0,C()},e.bandwidth=function(){return g},e.step=function(){return o},e.round=function(b){return arguments.length?(m=!!b,C()):m},e.padding=function(b){return arguments.length?(p=Math.min(1,k=+b),C()):p},e.paddingInner=function(b){return arguments.length?(p=Math.min(1,b),C()):p},e.paddingOuter=function(b){return arguments.length?(k=+b,C()):k},e.align=function(b){return arguments.length?(v=Math.max(0,Math.min(1,b)),C()):v},e.copy=function(){return yt(t(),[s,n]).round(m).paddingInner(p).paddingOuter(k).align(v)},_i.apply(C(),arguments)}var bt=function(){var e=a(function(F,h,u,x){for(u=u||{},x=F.length;x--;u[F[x]]=h);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],g=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],p=[1,25],k=[1,26],v=[1,28],C=[1,29],b=[1,30],E=[1,31],D=[1,32],P=[1,33],I=[1,34],y=[1,35],_=[1,36],c=[1,37],W=[1,43],z=[1,42],U=[1,47],X=[1,50],l=[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],S=[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],R=[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(h,u,x,d,w,r,at){var f=r.length-1;switch(w){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:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:g}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:g}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,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]},e(m,[2,34]),e(m,[2,35]),e(m,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:g}),{1:[2,3]},e(m,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:g}),{11:23,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:39,13:38,24:W,27:z,29:40,30:41,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:45,15:44,27:U,33:46,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:49,17:48,24:X,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:52,17:51,24:X,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{20:[1,53]},{22:[1,54]},e(l,[2,18]),{1:[2,2]},e(l,[2,8]),e(l,[2,9]),e(L,[2,37],{40:55,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c}),e(L,[2,38]),e(L,[2,39]),e(S,[2,40]),e(S,[2,42]),e(S,[2,43]),e(S,[2,44]),e(S,[2,45]),e(S,[2,46]),e(S,[2,47]),e(S,[2,48]),e(S,[2,49]),e(S,[2,50]),e(S,[2,51]),e(l,[2,10]),e(l,[2,22],{30:41,29:56,24:W,27:z}),e(l,[2,24]),e(l,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},e(l,[2,11]),e(l,[2,30],{33:60,27:U}),e(l,[2,32]),{31:[1,61]},e(l,[2,12]),{17:62,24:X},{25:63,27:R},e(l,[2,14]),{17:65,24:X},e(l,[2,16]),e(l,[2,17]),e(S,[2,41]),e(l,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(l,[2,31]),{27:[1,69]},e(l,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(l,[2,15]),e(l,[2,26]),e(l,[2,27]),{11:59,32:72,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},e(l,[2,33]),e(l,[2,19]),{25:73,27:R},{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(h,u){if(u.recoverable)this.trace(h);else{var x=new Error(h);throw x.hash=u,x}},"parseError"),parse:a(function(h){var u=this,x=[0],d=[],w=[null],r=[],at=this.table,f="",lt=0,It=0,hi=2,Mt=1,li=r.slice.call(arguments,1),T=Object.create(this.lexer),Y={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(Y.yy[dt]=this.yy[dt]);T.setInput(h,Y.yy),Y.yy.lexer=T,Y.yy.parser=this,typeof T.yylloc>"u"&&(T.yylloc={});var ft=T.yylloc;r.push(ft);var ci=T.options&&T.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ui(V){x.length=x.length-2*V,w.length=w.length-V,r.length=r.length-V}a(ui,"popStack");function Vt(){var V;return V=d.pop()||T.lex()||Mt,typeof V!="number"&&(V instanceof Array&&(d=V,V=d.pop()),V=u.symbols_[V]||V),V}a(Vt,"lex");for(var M,H,B,pt,q={},ct,O,Bt,ut;;){if(H=x[x.length-1],this.defaultActions[H]?B=this.defaultActions[H]:((M===null||typeof M>"u")&&(M=Vt()),B=at[H]&&at[H][M]),typeof B>"u"||!B.length||!B[0]){var mt="";ut=[];for(ct in at[H])this.terminals_[ct]&&ct>hi&&ut.push("'"+this.terminals_[ct]+"'");T.showPosition?mt="Parse error on line "+(lt+1)+`:
1
+ import{_ as a,s as gi,g as xi,q as Xt,p as di,a as fi,b as pi,l as Nt,I as mi,d as yi,y as bi,F as St,E as Yt,G as Ai,a0 as wi,h as Ci,az as Si,a8 as Wt}from"./mermaid.core-oWlc3CvG.js";import"./index-C7NPwb1W.js";import{i as _i}from"./init-Gi6I4Gst.js";import{o as ki}from"./ordinal-Cboi1Yqb.js";import{l as zt}from"./linear-CZCbyP3Y.js";import"./defaultLocale-C4B-KCzX.js";function Ri(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function yt(){var e=ki().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,g,m=!1,p=0,k=0,v=.5;delete e.unknown;function C(){var b=t().length,E=n<s,D=E?n:s,P=E?s:n;o=(P-D)/Math.max(1,b-p+k*2),m&&(o=Math.floor(o)),D+=(P-D-o*(b-p))*v,g=o*(1-p),m&&(D=Math.round(D),g=Math.round(g));var I=Ri(b).map(function(y){return D+o*y});return i(E?I.reverse():I)}return e.domain=function(b){return arguments.length?(t(b),C()):t()},e.range=function(b){return arguments.length?([s,n]=b,s=+s,n=+n,C()):[s,n]},e.rangeRound=function(b){return[s,n]=b,s=+s,n=+n,m=!0,C()},e.bandwidth=function(){return g},e.step=function(){return o},e.round=function(b){return arguments.length?(m=!!b,C()):m},e.padding=function(b){return arguments.length?(p=Math.min(1,k=+b),C()):p},e.paddingInner=function(b){return arguments.length?(p=Math.min(1,b),C()):p},e.paddingOuter=function(b){return arguments.length?(k=+b,C()):k},e.align=function(b){return arguments.length?(v=Math.max(0,Math.min(1,b)),C()):v},e.copy=function(){return yt(t(),[s,n]).round(m).paddingInner(p).paddingOuter(k).align(v)},_i.apply(C(),arguments)}var bt=function(){var e=a(function(F,h,u,x){for(u=u||{},x=F.length;x--;u[F[x]]=h);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],g=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],p=[1,25],k=[1,26],v=[1,28],C=[1,29],b=[1,30],E=[1,31],D=[1,32],P=[1,33],I=[1,34],y=[1,35],_=[1,36],c=[1,37],W=[1,43],z=[1,42],U=[1,47],X=[1,50],l=[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],S=[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],R=[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(h,u,x,d,w,r,at){var f=r.length-1;switch(w){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:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:g}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:g}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,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]},e(m,[2,34]),e(m,[2,35]),e(m,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:g}),{1:[2,3]},e(m,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:g}),{11:23,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:39,13:38,24:W,27:z,29:40,30:41,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:45,15:44,27:U,33:46,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:49,17:48,24:X,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:52,17:51,24:X,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{20:[1,53]},{22:[1,54]},e(l,[2,18]),{1:[2,2]},e(l,[2,8]),e(l,[2,9]),e(L,[2,37],{40:55,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c}),e(L,[2,38]),e(L,[2,39]),e(S,[2,40]),e(S,[2,42]),e(S,[2,43]),e(S,[2,44]),e(S,[2,45]),e(S,[2,46]),e(S,[2,47]),e(S,[2,48]),e(S,[2,49]),e(S,[2,50]),e(S,[2,51]),e(l,[2,10]),e(l,[2,22],{30:41,29:56,24:W,27:z}),e(l,[2,24]),e(l,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},e(l,[2,11]),e(l,[2,30],{33:60,27:U}),e(l,[2,32]),{31:[1,61]},e(l,[2,12]),{17:62,24:X},{25:63,27:R},e(l,[2,14]),{17:65,24:X},e(l,[2,16]),e(l,[2,17]),e(S,[2,41]),e(l,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(l,[2,31]),{27:[1,69]},e(l,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(l,[2,15]),e(l,[2,26]),e(l,[2,27]),{11:59,32:72,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},e(l,[2,33]),e(l,[2,19]),{25:73,27:R},{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(h,u){if(u.recoverable)this.trace(h);else{var x=new Error(h);throw x.hash=u,x}},"parseError"),parse:a(function(h){var u=this,x=[0],d=[],w=[null],r=[],at=this.table,f="",lt=0,It=0,hi=2,Mt=1,li=r.slice.call(arguments,1),T=Object.create(this.lexer),Y={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(Y.yy[dt]=this.yy[dt]);T.setInput(h,Y.yy),Y.yy.lexer=T,Y.yy.parser=this,typeof T.yylloc>"u"&&(T.yylloc={});var ft=T.yylloc;r.push(ft);var ci=T.options&&T.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ui(V){x.length=x.length-2*V,w.length=w.length-V,r.length=r.length-V}a(ui,"popStack");function Vt(){var V;return V=d.pop()||T.lex()||Mt,typeof V!="number"&&(V instanceof Array&&(d=V,V=d.pop()),V=u.symbols_[V]||V),V}a(Vt,"lex");for(var M,H,B,pt,q={},ct,O,Bt,ut;;){if(H=x[x.length-1],this.defaultActions[H]?B=this.defaultActions[H]:((M===null||typeof M>"u")&&(M=Vt()),B=at[H]&&at[H][M]),typeof B>"u"||!B.length||!B[0]){var mt="";ut=[];for(ct in at[H])this.terminals_[ct]&&ct>hi&&ut.push("'"+this.terminals_[ct]+"'");T.showPosition?mt="Parse error on line "+(lt+1)+`:
2
2
  `+T.showPosition()+`
3
3
  Expecting `+ut.join(", ")+", got '"+(this.terminals_[M]||M)+"'":mt="Parse error on line "+(lt+1)+": Unexpected "+(M==Mt?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(mt,{text:T.match,token:this.terminals_[M]||M,line:T.yylineno,loc:ft,expected:ut})}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:x.push(M),w.push(T.yytext),r.push(T.yylloc),x.push(B[1]),M=null,It=T.yyleng,f=T.yytext,lt=T.yylineno,ft=T.yylloc;break;case 2:if(O=this.productions_[B[1]][1],q.$=w[w.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},ci&&(q._$.range=[r[r.length-(O||1)].range[0],r[r.length-1].range[1]]),pt=this.performAction.apply(q,[f,It,lt,Y.yy,B[1],w,r].concat(li)),typeof pt<"u")return pt;O&&(x=x.slice(0,-1*O*2),w=w.slice(0,-1*O),r=r.slice(0,-1*O)),x.push(this.productions_[B[1]][0]),w.push(q.$),r.push(q._$),Bt=at[x[x.length-2]][x[x.length-1]],x.push(Bt);break;case 3:return!0}}return!0},"parse")},Et=function(){var F={EOF:1,parseError:a(function(u,x){if(this.yy.parser)this.yy.parser.parseError(u,x);else throw new Error(u)},"parseError"),setInput:a(function(h,u){return this.yy=u||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var u=h.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:a(function(h){var u=h.length,x=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var 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),x.length-1&&(this.yylineno-=x.length-1);var w=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:x?(x.length===d.length?this.yylloc.first_column:0)+d[d.length-x.length].length-x[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-u]),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(h){this.unput(this.match.slice(h))},"less"),pastInput:a(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var h=this.pastInput(),u=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
package/dist/index.html CHANGED
@@ -12,10 +12,10 @@
12
12
  padding: 0;
13
13
  }
14
14
  </style>
15
- <script type="module" crossorigin src="/assets/index-BKT1JcWk.js"></script>
16
- <link rel="stylesheet" crossorigin href="/assets/index-DfuXfoTh.css">
15
+ <script type="module" crossorigin src="/assets/index-C7NPwb1W.js"></script>
16
+ <link rel="stylesheet" crossorigin href="/assets/index-C2dvtkqk.css">
17
17
  </head>
18
18
  <body>
19
- <div id="root" class="h-screen w-screen"></div>
19
+ <div id="root" class="h-screen w-screen flex"></div>
20
20
  </body>
21
21
  </html>
package/index.html CHANGED
@@ -14,7 +14,7 @@
14
14
  </style>
15
15
  </head>
16
16
  <body>
17
- <div id="root" class="h-screen w-screen"></div>
17
+ <div id="root" class="h-screen w-screen flex"></div>
18
18
  <script type="module" src="./test/main.tsx"></script>
19
19
  </body>
20
20
  </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langgraph-js/ui",
3
- "version": "5.2.0",
3
+ "version": "5.4.0",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",
@@ -12,16 +12,20 @@
12
12
  "main": "./dist/react/src/index.js",
13
13
  "type": "module",
14
14
  "dependencies": {
15
+ "@langchain/core": "^1.0.2",
16
+ "@langchain/langgraph": "^1.0.2",
17
+ "@langchain/openai": "^1.0.0",
15
18
  "@langgraph-js/open-smith": "^2.3.0",
19
+ "@langgraph-js/pro": "^2.0.1",
20
+ "@langgraph-js/pure-graph": "^2.5.1",
16
21
  "@tailwindcss/vite": "^4.1.14",
17
22
  "@vitejs/plugin-basic-ssl": "^2.1.0",
18
- "@vitejs/plugin-react": "^5.0.4",
23
+ "@vitejs/plugin-react": "^5.1.1",
19
24
  "ai-artifacts": "^1.3.1",
25
+ "hono": "^4.10.4",
26
+ "langchain": "^1.1.1",
20
27
  "next-themes": "^0.4.6",
21
28
  "sonner": "^2.0.7",
22
- "@langchain/core": "^1.0.2",
23
- "@langchain/openai": "^1.0.0",
24
- "hono": "^4.10.4",
25
29
  "vite": "^7"
26
30
  },
27
31
  "devDependencies": {
@@ -46,7 +50,7 @@
46
50
  "minisearch": "^7.1.2",
47
51
  "motion": "^12.16.0",
48
52
  "nanostores": "^1.0.1",
49
- "react": "^19",
53
+ "react": "^19.2.0",
50
54
  "react-dom": "^19.2.0",
51
55
  "react-syntax-highlighter": "^15.6.6",
52
56
  "streamdown": "^1.4.0",
@@ -54,7 +58,7 @@
54
58
  "tailwindcss": "^4.1.14",
55
59
  "tw-animate-css": "^1.4.0",
56
60
  "zod": "^4",
57
- "@langgraph-js/sdk": "3.5.2"
61
+ "@langgraph-js/sdk": "3.6.0"
58
62
  },
59
63
  "scripts": {
60
64
  "dev": "vite",
@@ -0,0 +1,42 @@
1
+ import { entrypoint } from "@langchain/langgraph";
2
+ import { z } from "zod";
3
+ import { createEntrypointGraph } from "@langgraph-js/pure-graph";
4
+ import { ChatOpenAI } from "@langchain/openai";
5
+ import { createAgent, humanInTheLoopMiddleware } from "langchain";
6
+ import { AgentState } from "@langgraph-js/pro";
7
+
8
+ const State = AgentState.merge(
9
+ z.object({
10
+ model_name: z.string().default("gpt-4o-mini"),
11
+ api_key: z.string().optional(),
12
+ api_host: z.string().optional(),
13
+ })
14
+ );
15
+
16
+ const workflow = entrypoint({ name: "debug-agent" }, async (state: z.infer<typeof State>) => {
17
+ const model = new ChatOpenAI({
18
+ model: state.model_name,
19
+ useResponsesApi: false,
20
+ apiKey: state.api_key,
21
+ configuration: {
22
+ baseURL: state.api_host,
23
+ },
24
+ });
25
+ const agent = createAgent({
26
+ model,
27
+ systemPrompt: "你是一个消息检查助手,能够使用工具检查用户和 AI 之间的对话",
28
+ tools: [],
29
+ middleware: [
30
+ humanInTheLoopMiddleware({
31
+ interruptOn: {},
32
+ }),
33
+ ],
34
+ stateSchema: State,
35
+ });
36
+ return agent.invoke(state);
37
+ });
38
+
39
+ export const graph = createEntrypointGraph({
40
+ stateSchema: State,
41
+ graph: workflow,
42
+ });
package/server/index.ts CHANGED
@@ -1,7 +1,12 @@
1
- import { Hono } from "hono";
2
1
  import testModelApp from "./test-for-model";
2
+ import { Hono } from "hono";
3
+ import LangGraphApp from "@langgraph-js/pure-graph/dist/adapter/hono/index.js";
4
+ import { registerGraph } from "@langgraph-js/pure-graph";
5
+ import { graph } from "./graph/debugAgent";
3
6
 
4
7
  export default (app: Hono) => {
8
+ registerGraph("graph", graph);
5
9
  app.route("/llm", testModelApp);
10
+ app.route("/graph", LangGraphApp);
6
11
  return app;
7
12
  };
package/src/chat/Chat.tsx CHANGED
@@ -11,7 +11,7 @@ import type { SupportedFileType } from "./components/FileList";
11
11
  import JsonEditorPopup from "./components/JsonEditorPopup";
12
12
  import { GraphPanel } from "../graph/GraphPanel";
13
13
  import { setLocalConfig } from "./store";
14
- import { History, Network, FileJson, Settings, Send, UploadCloudIcon, GitBranch, TestTube, Terminal, Printer, BotIcon } from "lucide-react";
14
+ import { History, Network, FileJson, Settings, Send, UploadCloudIcon, GitBranch, TestTube, Terminal, Printer, BotIcon, Bug } from "lucide-react";
15
15
  import { ArtifactViewer } from "../artifacts/ArtifactViewer";
16
16
  import "github-markdown-css/github-markdown.css";
17
17
 
@@ -19,30 +19,43 @@ import "./index.css";
19
19
  import { show_form } from "./tools/index";
20
20
  import { create_artifacts } from "./tools/create_artifacts";
21
21
  import SettingPanel from "../settings/SettingPanel";
22
- import ModelTesterPopup from "./components/ModelTesterPopup";
23
22
  import { toast } from "sonner";
24
23
  import { Toaster } from "@/components/ui/sonner";
25
24
 
26
25
  import { MonitorProvider, Monitor, useMonitor } from "../monitor";
27
26
  import UploadButton from "./components/UploadButton";
28
27
  import { __default_tool__ } from "./tools/human-in-the-loop";
28
+ import DebugPanel from "../debugPanel/DebugPanel";
29
+ import { useDebugPanel } from "../debugPanel/Context";
29
30
 
30
31
  const ChatMessages: React.FC = () => {
31
32
  const { renderMessages, loading, inChatError, client, collapsedTools, toggleToolCollapse, isFELocking } = useChat();
32
33
  const messagesEndRef = useRef<HTMLDivElement>(null);
33
34
  const MessageContainer = useRef<HTMLDivElement>(null);
34
-
35
+ const { setMessagesContext } = useDebugPanel();
35
36
  const scrollToBottom = () => {
36
37
  messagesEndRef.current?.scrollIntoView({ behavior: "instant" });
37
38
  };
38
39
 
40
+ useEffect(() => {
41
+ const container = MessageContainer.current;
42
+ if (!container) return;
43
+ const observer = new ResizeObserver(() => {
44
+ if (container.scrollHeight - container.scrollTop - container.clientHeight < 100) {
45
+ scrollToBottom();
46
+ }
47
+ });
48
+ observer.observe(container);
49
+ return () => observer.disconnect();
50
+ }, []);
51
+
39
52
  useEffect(() => {
40
53
  if (renderMessages.length > 0 && MessageContainer.current) {
41
- console.log(renderMessages);
42
54
  // 切换消息时,自动滚动到底部
43
55
  if (!loading) {
44
56
  scrollToBottom();
45
57
  }
58
+ setMessagesContext(renderMessages);
46
59
  }
47
60
  }, [renderMessages]);
48
61
 
@@ -77,7 +90,7 @@ const ChatMessages: React.FC = () => {
77
90
  const ChatInput: React.FC = () => {
78
91
  const { userInput, renderMessages, setUserInput, loading, sendMessage, stopGeneration, currentAgent, setCurrentAgent, client, currentChatId } = useChat();
79
92
  const { extraParams } = useExtraParams();
80
- const { openMonitorWithChat } = useMonitor();
93
+ const monitor = useMonitor();
81
94
  const { mediaUrls, isFileTextMode, setIsFileTextMode } = useFileList();
82
95
  const _setCurrentAgent = (agent: string) => {
83
96
  localStorage.setItem("defaultAgent", agent);
@@ -125,25 +138,38 @@ const ChatInput: React.FC = () => {
125
138
  };
126
139
 
127
140
  const [usingSingleMode, setUsingSingleMode] = useState(true);
141
+ const textareaRef = useRef<HTMLTextAreaElement>(null);
142
+
128
143
  useEffect(() => {
129
- if (mediaUrls.length > 0) {
144
+ if (mediaUrls.length > 0 || (userInput && (userInput.length > 50 || userInput.includes("\n")))) {
130
145
  setUsingSingleMode(false);
131
146
  } else {
132
147
  setUsingSingleMode(true);
133
148
  }
134
- }, [renderMessages.length, mediaUrls.length]);
149
+ }, [renderMessages.length, mediaUrls.length, userInput]);
150
+
151
+ useEffect(() => {
152
+ if (textareaRef.current) {
153
+ textareaRef.current.style.height = "auto";
154
+ if (!usingSingleMode) {
155
+ textareaRef.current.style.height = Math.min(textareaRef.current.scrollHeight, 96) + "px";
156
+ }
157
+ }
158
+ }, [userInput, usingSingleMode]);
159
+
135
160
  return (
136
161
  <div className=" pb-8 ">
137
- <div className={"bg-white border border-gray-200 shadow-lg shadow-gray-200 " + (usingSingleMode ? "rounded-full px-3 py-3" : "rounded-4xl px-4 py-3")}>
162
+ <div className={"bg-white border border-gray-200 shadow-lg shadow-gray-200 " + (usingSingleMode ? "rounded-full px-3 py-3" : "rounded-[2rem] px-4 py-3")}>
138
163
  {!usingSingleMode && mediaUrls.length > 0 && (
139
164
  <div className="flex items-center justify-between mb-2 border-b border-gray-200 pb-2">
140
165
  <FileList />
141
166
  </div>
142
167
  )}
143
- <div className={`flex gap-3 items-center`}>
168
+ <div className={`flex gap-3 ${usingSingleMode ? "items-center" : "items-end"}`}>
144
169
  <UploadButton />
145
170
  <textarea
146
- className="flex-1 text-sm resize-none active:outline-none focus:outline-none"
171
+ ref={textareaRef}
172
+ className={`flex-1 text-sm resize-none active:outline-none focus:outline-none ${usingSingleMode ? "" : "py-2"}`}
147
173
  rows={1}
148
174
  value={userInput}
149
175
  onChange={(e) => setUserInput(e.target.value)}
@@ -191,7 +217,7 @@ const ChatInput: React.FC = () => {
191
217
  <UsageMetadata usage_metadata={client?.tokenCounter || {}} />
192
218
  <div className="flex items-center gap-2">
193
219
  {!!currentChatId && (
194
- <span className="cursor-pointer text-xs text-gray-300 dark:text-gray-500" onClick={() => openMonitorWithChat(currentChatId)}>
220
+ <span className="cursor-pointer text-xs text-gray-300 dark:text-gray-500" onClick={() => monitor?.openMonitorWithChat(currentChatId)}>
195
221
  会话 ID: {currentChatId}
196
222
  </span>
197
223
  )}
@@ -204,11 +230,11 @@ const ChatInput: React.FC = () => {
204
230
  const Chat: React.FC = () => {
205
231
  const [isPopupOpen, setIsPopupOpen] = useState(false);
206
232
  const [isSettingsOpen, setIsSettingsOpen] = useState(false);
207
- const [isModelTesterOpen, setIsModelTesterOpen] = useState(false);
208
233
  const { showHistory, toggleHistoryVisible, showGraph, toggleGraphVisible, renderMessages, setTools, client } = useChat();
209
234
  const { extraParams, setExtraParams } = useExtraParams();
210
235
  const { showArtifact, sendMessage } = useChat();
211
- const { openMonitor } = useMonitor();
236
+ const monitor = useMonitor();
237
+ const { toggleDebugPanel, isDebugPanelVisible } = useDebugPanel();
212
238
  useEffect(() => {
213
239
  setTools([show_form, create_artifacts, __default_tool__]);
214
240
  }, []);
@@ -219,7 +245,7 @@ const Chat: React.FC = () => {
219
245
  <HistoryList onClose={() => toggleHistoryVisible()} />
220
246
  </div>
221
247
  )}
222
- <section className="flex-1 flex flex-col overflow-auto items-center ">
248
+ <section className="flex-1 flex flex-col overflow-hidden items-center ">
223
249
  <header className="flex items-center gap-2 px-3 py-2 justify-end h-16 mt-4 max-w-6xl w-full">
224
250
  <button
225
251
  className="px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-200 cursor-pointer rounded-xl hover:bg-gray-100 focus:outline-none transition-colors flex items-center gap-2"
@@ -240,13 +266,7 @@ const Chat: React.FC = () => {
240
266
  <FileJson className="w-4 h-4" />
241
267
  额外参数
242
268
  </button>
243
- <button
244
- onClick={() => setIsModelTesterOpen(true)}
245
- className="px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-200 cursor-pointer rounded-xl hover:bg-gray-100 focus:outline-none transition-colors flex items-center gap-2"
246
- >
247
- <BotIcon className="w-4 h-4" />
248
- 模型测试器
249
- </button>
269
+
250
270
  <button
251
271
  id="setting-button"
252
272
  onClick={() => setIsSettingsOpen(true)}
@@ -265,6 +285,7 @@ const Chat: React.FC = () => {
265
285
  <Printer className="w-4 h-4" />
266
286
  打印 State
267
287
  </button>
288
+
268
289
  {/* <button
269
290
  className="px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-200 cursor-pointer rounded-xl hover:bg-gray-100 focus:outline-none transition-colors flex items-center gap-2"
270
291
  onClick={() => {
@@ -278,14 +299,23 @@ const Chat: React.FC = () => {
278
299
  <button
279
300
  className="px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-200 cursor-pointer rounded-xl hover:bg-gray-100 focus:outline-none transition-colors flex items-center gap-2"
280
301
  onClick={() => {
281
- openMonitor("/api/open-smith/ui/index.html");
302
+ monitor?.openMonitor("/api/open-smith/ui/index.html");
282
303
  }}
283
304
  >
284
305
  <Terminal className="w-4 h-4" />
285
306
  控制台
286
307
  </button>
308
+ <button
309
+ onClick={toggleDebugPanel}
310
+ className={`px-4 py-2 text-sm font-medium cursor-pointer rounded-xl focus:outline-none transition-colors flex items-center gap-2 ${
311
+ isDebugPanelVisible ? "text-blue-700 bg-blue-50 border border-blue-200 hover:bg-blue-100" : "text-gray-700 bg-white border border-gray-200 hover:bg-gray-100"
312
+ }`}
313
+ >
314
+ <Bug className="w-4 h-4" />
315
+ 调试面板
316
+ </button>
287
317
  </header>
288
- <main className="flex-1 overflow-y-auto overflow-x-hidden max-w-6xl w-full h-full flex flex-col">
318
+ <main className="flex-1 overflow-hidden max-w-6xl w-full h-full flex flex-col">
289
319
  <ChatMessages />
290
320
  <FileListProvider>
291
321
  <ChatInput />
@@ -299,7 +329,6 @@ const Chat: React.FC = () => {
299
329
  title="编辑额外参数"
300
330
  description="额外参数用于在发送消息时附加到 LangGraph 的 State 中。"
301
331
  />
302
- <ModelTesterPopup isOpen={isModelTesterOpen} onClose={() => setIsModelTesterOpen(false)} />
303
332
  <SettingPanel isOpen={isSettingsOpen} onClose={() => setIsSettingsOpen(false)} />
304
333
  </section>
305
334
  {(showGraph || showArtifact) && (
@@ -316,7 +345,9 @@ const Chat: React.FC = () => {
316
345
  {
317
346
  type: "text",
318
347
  text: `
319
- error react file: ${errorData.groupId} ${errorData.versionId}
348
+ error react file:
349
+ - filename: ${errorData.groupId}
350
+ - version: ${errorData.versionId}
320
351
 
321
352
  ${errorData.error}`,
322
353
  },