@kern0x1b/penstock-cli 26.10.2 → 26.10.3

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 (71) hide show
  1. package/dist/penstock.js +159 -159
  2. package/dist/web/assets/{AgentSettings-Iy9ZaTGR.js → AgentSettings-C-1YBic4.js} +1 -1
  3. package/dist/web/assets/{AgentsDialog-Dt09_TEw.js → AgentsDialog-CSu8pyh7.js} +1 -1
  4. package/dist/web/assets/{BpmnCanvas-CCRBnGIV.js → BpmnCanvas-DnBLxMNQ.js} +1 -1
  5. package/dist/web/assets/{BpmnDocument-D2lXXcnN.js → BpmnDocument-BPpyqTzJ.js} +8 -8
  6. package/dist/web/assets/{ConflictDialog-CaBNoJST.js → ConflictDialog-nygfF7Dn.js} +1 -1
  7. package/dist/web/assets/{DiffDocument-BjLzoDLL.js → DiffDocument-DUrje9io.js} +1 -1
  8. package/dist/web/assets/{DmnDocument-BSGTyR3r.js → DmnDocument-fn7AH7P1.js} +11 -11
  9. package/dist/web/assets/FormDocument-BbyRqjib.js +32 -0
  10. package/dist/web/assets/{FormStepView-BEDXMPef.js → FormStepView-BYRMBW0U.js} +1 -1
  11. package/dist/web/assets/{GraphAwareLayoutService-CZCVRb9X.js → GraphAwareLayoutService-BiLVDmB7.js} +1 -1
  12. package/dist/web/assets/{NewFileDialog-D9nTKDOT.js → NewFileDialog-Ce_cTeOv.js} +1 -1
  13. package/dist/web/assets/{QuickOpen-D3AkwBdF.js → QuickOpen-D-u9hdSt.js} +1 -1
  14. package/dist/web/assets/{ScriptPane-4TG-1RyI.js → ScriptPane-BQorfmyv.js} +2 -2
  15. package/dist/web/assets/{ScriptRunDialog-C2n9cLcf.js → ScriptRunDialog-DjBW0LRD.js} +1 -1
  16. package/dist/web/assets/{SettingsDialog-BUft2ulJ.js → SettingsDialog-DvYUAKpH.js} +1 -1
  17. package/dist/web/assets/{ShortcutsDialog-Naoea994.js → ShortcutsDialog-BQ5BYHj3.js} +1 -1
  18. package/dist/web/assets/{SourceDocument-PMA1dm6T.js → SourceDocument-BfHVXxuk.js} +1 -1
  19. package/dist/web/assets/{TextDocument-D4fl42FV.js → TextDocument-BPepqeGu.js} +1 -1
  20. package/dist/web/assets/UnreadableFileLayer-D5B6nixz.js +1 -0
  21. package/dist/web/assets/{UploadDialog-CEnwtJ3T.js → UploadDialog-BzIvQ1YS.js} +1 -1
  22. package/dist/web/assets/{apply-DwO6xN9h.js → apply-B0vauBJn.js} +1 -1
  23. package/dist/web/assets/{bpmnTheme-iB2hl29R.js → bpmnTheme-Divwrkjy.js} +1 -1
  24. package/dist/web/assets/{bridgeInstance-CJkr34d9.js → bridgeInstance-D0bzpNGz.js} +1 -1
  25. package/dist/web/assets/{commands-BMjdyegc.js → commands-N2yKHjf_.js} +1 -1
  26. package/dist/web/assets/de-izeWpfua.js +1 -0
  27. package/dist/web/assets/{dialog-wo7dFa5A.js → dialog-DSf66Ory.js} +1 -1
  28. package/dist/web/assets/{diff-BmEImmS0.js → diff-DkfgVbKD.js} +1 -1
  29. package/dist/web/assets/documentBridge-DSWBQZRP.js +240 -0
  30. package/dist/web/assets/{documents-BwU2MdUd.js → documents-C4vr2KnQ.js} +1 -1
  31. package/dist/web/assets/{duplicate-rWDlHiZr.js → duplicate-C-AiqE1T.js} +1 -1
  32. package/dist/web/assets/{engines-C3gTrVWJ.js → engines-DG8KgTeX.js} +1 -1
  33. package/dist/web/assets/es-CRMYEYWD.js +1 -0
  34. package/dist/web/assets/{formChecks-DXIRZuhX.js → formChecks-B_ZFz9DR.js} +1 -1
  35. package/dist/web/assets/fr-8pTyPyAI.js +1 -0
  36. package/dist/web/assets/{frontend-By89859W.js → frontend-BLfXy4OQ.js} +1 -1
  37. package/dist/web/assets/{httpHost-_QDw41Ka.js → httpHost-Cll6HteE.js} +1 -1
  38. package/dist/web/assets/{index.es-CVOua_f9.js → index.es-B0wi5_fv.js} +1 -1
  39. package/dist/web/assets/{index.es-DHW5-gbr.js → index.es-DQAdm_u9.js} +1 -1
  40. package/dist/web/assets/{intelligence-BnJILPl7.js → intelligence-glU4hcHy.js} +1 -1
  41. package/dist/web/assets/ja-I1fjeFMy.js +1 -0
  42. package/dist/web/assets/{jspdf.es.min-Yw43YJzU.js → jspdf.es.min-xdeBAA_m.js} +3 -3
  43. package/dist/web/assets/ko-CFd9C-RA.js +1 -0
  44. package/dist/web/assets/{lib-D6xZQFAF.js → lib-DJ1i09sd.js} +1 -1
  45. package/dist/web/assets/platform-BS7bgwr3.js +2 -0
  46. package/dist/web/assets/{preferences-C7SSy7Wf.js → preferences-C_EXTz45.js} +1 -1
  47. package/dist/web/assets/pt-BR-Dl_APu95.js +1 -0
  48. package/dist/web/assets/ru-_vhcOTod.js +1 -0
  49. package/dist/web/assets/{run-Dd_PjDF8.js → run-Df8AD_as.js} +1 -1
  50. package/dist/web/assets/{samples-DfOV2cQu.js → samples-chRLnLcq.js} +1 -1
  51. package/dist/web/assets/{testCaseRuns-6x2pl8U_.js → testCaseRuns-DLEqANBi.js} +1 -1
  52. package/dist/web/assets/translator-CS9eR0My.js +1 -0
  53. package/dist/web/assets/{ui-B2q39Bca.js → ui-AICOEtWR.js} +1 -1
  54. package/dist/web/assets/{useTrace-BbcYW5PF.js → useTrace-B3gDUL0X.js} +1 -1
  55. package/dist/web/assets/{web-D7xTiPek.js → web-BtxFF0jJ.js} +6 -6
  56. package/dist/web/assets/zh-Do_q1RZ2.js +1 -0
  57. package/dist/web/index.html +19 -19
  58. package/package.json +1 -1
  59. package/dist/web/assets/FormDocument-BdCKvI-7.js +0 -32
  60. package/dist/web/assets/UnreadableFileLayer-DuWtY1bx.js +0 -1
  61. package/dist/web/assets/de-BDwOyJ4E.js +0 -1
  62. package/dist/web/assets/documentBridge-uW6vNrY3.js +0 -240
  63. package/dist/web/assets/es-B4wrlqk9.js +0 -1
  64. package/dist/web/assets/fr-BqtYruiB.js +0 -1
  65. package/dist/web/assets/ja-B6eG6Wld.js +0 -1
  66. package/dist/web/assets/ko-Le3hTKqP.js +0 -1
  67. package/dist/web/assets/platform-PXoldsjF.js +0 -2
  68. package/dist/web/assets/pt-BR-aDlgSu84.js +0 -1
  69. package/dist/web/assets/ru-DJl9EFpu.js +0 -1
  70. package/dist/web/assets/translator-CTBxdhz9.js +0 -1
  71. package/dist/web/assets/zh-CaEk-YOk.js +0 -1
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./dist-B163CX7G.js","./rolldown-runtime-B8BYMn-z.js","./dist-CHluRwHI.js","./dist-CsBP6QjA.js","./dist-DvFyMwGd.js","./dist-DUkRqvKl.js"])))=>i.map(i=>d[i]);
2
- import"./rolldown-runtime-B8BYMn-z.js";import{i as e}from"./translator-CTBxdhz9.js";import{t}from"./preload-helper-VRuDKI9K.js";import{ct as n,t as r}from"./bridgeInstance-CJkr34d9.js";import"./platform-PXoldsjF.js";import{n as i,r as a}from"./files-Chpd_QD0.js";import{Ct as o,I as s,L as c,R as l,St as u,Z as d,ht as f,ot as p,q as m,yt as h}from"./dist-CsBP6QjA.js";var g=8,_=5e3,v=`http://www.w3.org/2000/svg`,y=u.define(),b=u.define(),x=o.define({create:()=>new Map,update(e,t){for(let e of t.effects)if(e.is(y))return e.value;return e}});function byLine(e){let t=new Map;for(let n of e){let e=t.get(n.line);e?e.push(n):t.set(n.line,[n])}return t}function kindLabel(t){let n=`app.web.code.uses.kind.${t}`,r=e(n);return r===n?t:r}function whereOf(t){let r=i(t.diagram);return t.elementType?e(`app.web.code.uses.item`,{type:n(t.elementType),diagram:r}):r}function labelOf(t){return e(`app.web.code.uses.open`,{name:t.name,diagram:i(t.diagram)})}function icon(){let e=document.createElementNS(v,`svg`);e.setAttribute(`viewBox`,`0 0 16 16`),e.setAttribute(`width`,`16`),e.setAttribute(`height`,`16`),e.setAttribute(`fill`,`none`),e.setAttribute(`stroke`,`currentColor`),e.setAttribute(`stroke-linecap`,`round`),e.setAttribute(`stroke-linejoin`,`round`),e.setAttribute(`aria-hidden`,`true`);let t=document.createElementNS(v,`rect`);for(let[e,n]of Object.entries({x:`4`,y:`5`,width:`8`,height:`6`,rx:`2`}))t.setAttribute(e,n);let n=document.createElementNS(v,`path`);return n.setAttribute(`d`,`M1.5 8H4M12 8h2.5`),e.append(t,n),e}var S=class UseMarker extends c{uses;options;choose;constructor(e,t,n){super(),this.uses=e,this.options=t,this.choose=n}eq(e){return e instanceof UseMarker&&e.uses.length===this.uses.length&&e.uses.every((e,t)=>e===this.uses[t])}toDOM(){let t=document.createElement(`button`);t.type=`button`,t.className=`cm-penstock-use`;let n=this.uses.length===1?labelOf(this.uses[0]):e(`app.web.code.uses.title`);return t.setAttribute(`aria-label`,n),t.title=this.uses.map(e=>`${kindLabel(e.kind)} ${e.value}: ${e.name} - ${whereOf(e)}`).join(`
2
+ import"./rolldown-runtime-B8BYMn-z.js";import{i as e}from"./translator-CS9eR0My.js";import{t}from"./preload-helper-VRuDKI9K.js";import{ct as n,t as r}from"./bridgeInstance-D0bzpNGz.js";import"./platform-BS7bgwr3.js";import{n as i,r as a}from"./files-Chpd_QD0.js";import{Ct as o,I as s,L as c,R as l,St as u,Z as d,ht as f,ot as p,q as m,yt as h}from"./dist-CsBP6QjA.js";var g=8,_=5e3,v=`http://www.w3.org/2000/svg`,y=u.define(),b=u.define(),x=o.define({create:()=>new Map,update(e,t){for(let e of t.effects)if(e.is(y))return e.value;return e}});function byLine(e){let t=new Map;for(let n of e){let e=t.get(n.line);e?e.push(n):t.set(n.line,[n])}return t}function kindLabel(t){let n=`app.web.code.uses.kind.${t}`,r=e(n);return r===n?t:r}function whereOf(t){let r=i(t.diagram);return t.elementType?e(`app.web.code.uses.item`,{type:n(t.elementType),diagram:r}):r}function labelOf(t){return e(`app.web.code.uses.open`,{name:t.name,diagram:i(t.diagram)})}function icon(){let e=document.createElementNS(v,`svg`);e.setAttribute(`viewBox`,`0 0 16 16`),e.setAttribute(`width`,`16`),e.setAttribute(`height`,`16`),e.setAttribute(`fill`,`none`),e.setAttribute(`stroke`,`currentColor`),e.setAttribute(`stroke-linecap`,`round`),e.setAttribute(`stroke-linejoin`,`round`),e.setAttribute(`aria-hidden`,`true`);let t=document.createElementNS(v,`rect`);for(let[e,n]of Object.entries({x:`4`,y:`5`,width:`8`,height:`6`,rx:`2`}))t.setAttribute(e,n);let n=document.createElementNS(v,`path`);return n.setAttribute(`d`,`M1.5 8H4M12 8h2.5`),e.append(t,n),e}var S=class UseMarker extends c{uses;options;choose;constructor(e,t,n){super(),this.uses=e,this.options=t,this.choose=n}eq(e){return e instanceof UseMarker&&e.uses.length===this.uses.length&&e.uses.every((e,t)=>e===this.uses[t])}toDOM(){let t=document.createElement(`button`);t.type=`button`,t.className=`cm-penstock-use`;let n=this.uses.length===1?labelOf(this.uses[0]):e(`app.web.code.uses.title`);return t.setAttribute(`aria-label`,n),t.title=this.uses.map(e=>`${kindLabel(e.kind)} ${e.value}: ${e.name} - ${whereOf(e)}`).join(`
3
3
  `),t.append(icon()),t.addEventListener(`mousedown`,e=>e.preventDefault()),t.addEventListener(`click`,()=>{this.uses.length===1?this.options.open(this.uses[0]):this.choose(this.uses[0].line)}),t}};function tooltipDom(t,n){let r=document.createElement(`div`);r.className=`cm-penstock-uses`;let i=document.createElement(`div`);i.className=`cm-penstock-uses__title type-section-heading`,i.textContent=e(`app.web.code.uses.title`),r.append(i);let a=new Map;for(let e of t){let t=`${e.kind}\u0000${e.value}`;a.set(t,[...a.get(t)??[],e])}for(let t of a.values()){let i=document.createElement(`div`);i.className=`cm-penstock-uses__subject type-code`,i.textContent=`${kindLabel(t[0].kind)} ${t[0].value}`,r.append(i);for(let e of t.slice(0,g)){let t=document.createElement(`button`);t.type=`button`,t.className=`cm-penstock-uses__item type-body`,t.setAttribute(`aria-label`,labelOf(e));let i=document.createElement(`span`);i.className=`cm-penstock-uses__name type-body`,i.textContent=e.name;let a=document.createElement(`span`);a.className=`cm-penstock-uses__where type-help`,a.textContent=whereOf(e),t.append(i,a),t.addEventListener(`click`,()=>n.open(e)),r.append(t)}if(t.length>g){let n=document.createElement(`div`);n.className=`cm-penstock-uses__more type-help`,n.textContent=e(`app.web.code.uses.more`,{count:t.length-g}),r.append(n)}}return r}function codeUsesExtension(e){let t=o.define({create:()=>null,update(t,n){for(let t of n.effects){if(!t.is(b))continue;let r=t.value,i=r===null||r>n.state.doc.lines?void 0:n.state.field(x).get(r);return r===null||!i?null:{line:r,tip:{pos:n.state.doc.line(r).from,above:!1,strictSide:!0,create:()=>({dom:tooltipDom(i,e)})}}}return n.docChanged?null:t},provide:e=>p.from(e,e=>e?.tip??null)}),markers=n=>{let r=[...n.state.field(x)].filter(([e])=>e>=1&&e<=n.state.doc.lines).sort(([e],[t])=>e-t).map(([r,i])=>new S(i,e,e=>n.dispatch({effects:b.of(n.state.field(t)?.line===e?null:e)})).range(n.state.doc.line(r).from));return h.of(r)};return[x,t,l.fromClass(class{view;loadedAt=0;alive=!0;constructor(e){this.view=e,this.refresh()}async refresh(){this.loadedAt=Date.now();try{let t=await e.load();this.alive&&this.view.dispatch({effects:y.of(byLine(t))})}catch{return}}focused(){Date.now()-this.loadedAt>_&&this.refresh()}destroy(){this.alive=!1}},{eventHandlers:{focus(){this.focused()}}}),m({class:`cm-penstock-uses-gutter`,markers,lineMarkerChange:e=>e.transactions.some(e=>e.effects.some(e=>e.is(y)))}),d((t,n)=>{let r=t.state.doc.lineAt(n),i=t.state.field(x).get(r.number);return i?{pos:r.from,end:r.to,above:!0,create:()=>({dom:tooltipDom(i,e)})}:null},{hoverTime:350}),s.domEventHandlers({keydown(e,n){return e.key===`Escape`&&n.state.field(t)!==null&&n.dispatch({effects:b.of(null)}),!1},mousedown(e,n){let r=e.target;return n.state.field(t)!==null&&!r?.closest(`.cm-penstock-use`)&&n.dispatch({effects:b.of(null)}),!1}})]}var C=/^[A-Za-z]:/;function fileUri(e){let t=e.replace(/\\/g,`/`),n=C.test(t),r=(n?t.slice(2):t).split(`/`).map(e=>encodeURIComponent(e)).join(`/`);return`file://${n?`/${t.slice(0,2)}`:``}${r.startsWith(`/`)?``:`/`}${r}`}function pathOfUri(e){let t=/^file:\/\/([^/]*)(\/[^?#]*)/i.exec(e);if(!t||t[1]!==``&&t[1].toLowerCase()!==`localhost`)return null;let n;try{n=decodeURIComponent(t[2])}catch{return null}return/^\/[A-Za-z]:/.test(n)?n.slice(1):n}function insideProject(e,t){let n=e.replace(/\\/g,`/`).replace(/\/+$/,``),r=t.replace(/\\/g,`/`);if(n===``)return!1;let i=r.startsWith(`${n}/`)?r.slice(n.length+1):null;return i!==null&&i!==``&&!i.split(`/`).includes(`..`)}var w=`http://www.w3.org/1999/xhtml`,T=1,E=3,D=new Set(`a.abbr.b.blockquote.br.caption.cite.code.dd.del.dfn.div.dl.dt.em.h1.h2.h3.h4.h5.h6.hr.i.img.ins.kbd.li.mark.ol.p.pre.q.s.samp.small.span.strong.sub.sup.table.tbody.td.tfoot.th.thead.tr.u.ul.var`.split(`.`)),O={a:[`href`],img:[`src`,`alt`,`width`,`height`],li:[`value`],ol:[`start`,`type`],td:[`align`,`colspan`,`rowspan`],th:[`align`,`colspan`,`rowspan`,`scope`]},k=[`lang`,`title`],A=new Set([`applet`,`base`,`embed`,`frame`,`frameset`,`iframe`,`link`,`math`,`meta`,`noembed`,`noframes`,`noscript`,`object`,`plaintext`,`script`,`select`,`style`,`svg`,`template`,`textarea`,`title`,`xmp`]),j=/^(https?:|mailto:)/i,M=/^https?:/i;function allowedAttribute(e,t){return k.includes(t)||(O[e]??[]).includes(t)}function allowedAddress(e,t){let n=t.replace(/[\u0000- \u007f-\u009f]/g,``);return(e===`img`?M:j).test(n)}function clean(e){for(let t of Array.from(e.childNodes)){if(t.nodeType===E)continue;if(t.nodeType!==T){t.parentNode?.removeChild(t);continue}let e=t,n=e.localName;if(e.namespaceURI!==w||A.has(n))e.remove();else if(clean(e),!D.has(n))e.replaceWith(...Array.from(e.childNodes));else{for(let t of Array.from(e.attributes)){let r=t.name;allowedAttribute(n,r)&&(r!==`href`&&r!==`src`||allowedAddress(n,t.value))||e.removeAttribute(r)}n===`a`&&(e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`))}}}function render(e){let t=new DOMParser().parseFromString(`<body>${e}</body>`,`text/html`);return clean(t.body),t.body.innerHTML}function asText(e){return new DOMParser().parseFromString(`<body>${e}</body>`,`text/html`).body.textContent.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function sanitizeHtml(e){let t=render(e),n=render(t);return t===n?t:asText(n)}var N=3e4,P=2e4,F=1e3,I=1500,L=50;function wait(e){return new Promise(t=>setTimeout(t,e))}function statusOf(e){let t=e,n=t?.response?.status??t?.status;return typeof n==`number`?n:null}var ServerTransport=class{handlers=new Set;tail=Promise.resolve();name;host;failed;constructor(e,t,n){this.name=e,this.host=t,this.failed=n}send(e){let t=JSON.parse(e);this.tail=this.tail.then(()=>this.host.send(this.name,t)).catch(e=>this.failed(statusOf(e)))}subscribe(e){this.handlers.add(e)}unsubscribe(e){this.handlers.delete(e)}deliver(e){for(let t of e){let e=JSON.stringify(t);for(let t of[...this.handlers])t(e)}}},LspSessions=class{host;sessions=new Map;views=new Map;listing=null;pumping=null;root=``;now;pause;constructor(e,t=Date.now,n=wait){this.host=e,this.now=t,this.pause=n}get open(){return this.sessions.size}async serverFor(e){let t=(await this.servers()).filter(t=>t.languages.includes(e)),n=t.find(e=>e.available)??t[0];return n?{id:n.id,label:n.label,available:n.available}:null}servers(){let e=this.host.root();if(!this.listing||this.listing.root!==e||this.now()-this.listing.at>N){let t=this.host.servers().catch(()=>(this.listing=null,[]));this.listing={root:e,at:this.now(),servers:t}}return this.listing.servers}async extension(e,t,n,r){let i=await this.session(e,r).client,a=fileUri(n),o=this.views,s=l.fromClass(class{view;constructor(e){this.view=e,o.set(a,e)}destroy(){o.get(a)===this.view&&o.delete(a)}});return[i.plugin(a,t),s]}close(){this.pumping?.abort(),this.pumping=null;for(let e of this.sessions.values())e.client.then(e=>e.disconnect());this.sessions.clear(),this.views.clear()}session(e,t){let n=this.host.root();this.root!==n&&(this.close(),this.root=n);let r=this.sessions.get(e);if(r)return r;let i=!1,a=new ServerTransport(e,this.host,e=>{i||(i=!0,e===404?t():console.error(`A message to the language server was not delivered`,e))}),o={transport:a,client:this.connect(a,n)};return this.sessions.set(e,o),this.pump(),o}async connect(e,n){let{LSPClient:r,languageServerExtensions:i}=await t(async()=>{let{LSPClient:e,languageServerExtensions:t}=await import(`./dist-B163CX7G.js`);return{LSPClient:e,languageServerExtensions:t}},__vite__mapDeps([0,1,2,3,4,5]),import.meta.url),a=new r({rootUri:fileUri(n),timeout:P,sanitizeHTML:sanitizeHtml,extensions:i()});return a.workspace.displayFile=e=>this.display(e,n),a.connect(e)}async display(e,t){let n=pathOfUri(e);if(!n||!insideProject(t,n))return null;await this.host.openFile(n);for(let t=0;t<I;t+=L){let t=this.views.get(e);if(t)return t;await this.pause(L)}return null}pump(){if(this.pumping)return;let e=new AbortController;this.pumping=e,this.listen(e.signal)}async listen(e){for(;!e.aborted;)try{for(let t of await this.host.messages(e))this.sessions.get(t.serverName)?.transport.deliver([t.message])}catch{if(e.aborted)return;await this.pause(F)}}},R=800,z=/([\w:.-]+)\s*=\s*"([^"<>]*)$/,B=/<([\w:.-]+)(?=[\s/>]|$)[^<>]*$/;function local(e){return e.slice(e.lastIndexOf(`:`)+1)}function wantedAt(e){let t=z.exec(e);if(!t)return null;let n=local(t[1]),r=t[2],i=B.exec(e.slice(0,t.index+t[0].length)),a=i?local(i[1]):``;if(n===`type`&&a===`taskDefinition`)return{kind:`JOB_TYPE`,prefix:r};if(n===`topic`)return{kind:`TOPIC`,prefix:r};if(n===`class`)return{kind:`CLASS`,prefix:r};if(n===`delegateExpression`){let e=r.lastIndexOf("${");return{kind:`BEAN`,prefix:e>=0?r.slice(e+2):r}}return n===`name`&&a===`message`?{kind:`MESSAGE`,prefix:r}:null}function originLabel(t){let n=`app.web.code.names.${t}`,r=e(n);return r===n?t:r}function optionsFor(e,t){let n=t.prefix.toLowerCase();return e.filter(e=>e.kind===t.kind&&e.value.toLowerCase().startsWith(n)&&e.value!==t.prefix).map(e=>({label:e.value,type:`text`,detail:originLabel(e.origin),boost:+(e.origin===`both`)}))}function projectNamesExtension(e){let t=null,n=0,names=()=>((!t||Date.now()-n>5e3)&&(n=Date.now(),t=e().catch(()=>[])),t),source=async e=>{let t=Math.max(0,e.pos-R),n=wantedAt(e.state.sliceDoc(t,e.pos));if(!n||!e.explicit&&n.prefix===``)return null;let r=optionsFor(await names(),n);return r.length===0?null:{from:e.pos-n.prefix.length,options:r,validFor:/^[\w.$-]*$/}};return f.languageData.of(()=>[{autocomplete:source}])}var V=new Set([`java`,`kotlin`,`groovy`,`scala`,`python`,`javascript`,`typescript`,`go`,`csharp`]);function bridge(){return r()}function webHost(){return{root:()=>bridge().projectRoot(),servers:async()=>(await bridge().web.listLanguageServers()).servers,send:(e,t)=>bridge().web.sendLspMessage({serverName:e,body:t}),messages:async e=>(await bridge().web.nextLspMessages({signal:e})).messages,openFile:e=>bridge().openAsText(e)}}var H=null;function lspSessions(){return H??=new LspSessions(webHost()),H}function languageServer(e,t,n){let r=lspSessions();return r.serverFor(t).then(async i=>i?i.available?r.extension(i.id,t,a(e.path),()=>n.noServer(i.label)):(n.noServer(i.label),[]):[])}function usesOfCode(e){let t=a(e.path);return codeUsesExtension({load:async()=>(await bridge().web.findCodeUses({codeUsesRequest:{path:t}})).uses,open:e=>void bridge().revealElement(e.diagram,e.element??void 0)})}function sharedNames(){return projectNamesExtension(async()=>(await bridge().web.listProjectNames()).names)}async function intelligenceFor(e,t,n){let r=[];V.has(t)&&r.push(usesOfCode(e)),e.kind===`template`&&t===`xml`&&r.push(sharedNames());try{r.push(await languageServer(e,t,n))}catch(e){console.error(`The language server could not be connected:`,e)}return r}function attachIntelligence(e,t,n,r,i,a){intelligenceFor(n,r,i).then(n=>{a()&&e.dispatch({effects:t.reconfigure(n)})})}export{attachIntelligence as t};