@kern0x1b/penstock-cli 0.0.0-stage → 26.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +1646 -0
- package/dist/arial-metrics.json +1 -0
- package/dist/grammars/tree-sitter-c-sharp.wasm +0 -0
- package/dist/grammars/tree-sitter-go.wasm +0 -0
- package/dist/grammars/tree-sitter-groovy.wasm +0 -0
- package/dist/grammars/tree-sitter-java.wasm +0 -0
- package/dist/grammars/tree-sitter-javascript.wasm +0 -0
- package/dist/grammars/tree-sitter-kotlin.wasm +0 -0
- package/dist/grammars/tree-sitter-python.wasm +0 -0
- package/dist/grammars/tree-sitter-scala.wasm +0 -0
- package/dist/grammars/tree-sitter-typescript.wasm +0 -0
- package/dist/grammars/web-tree-sitter.wasm +0 -0
- package/dist/licensing.json +17 -0
- package/dist/penstock.js +2102 -0
- package/dist/syntax-worker.js +5 -0
- package/dist/web/assets/AgentSettings-B_c5K0Hd.js +1 -0
- package/dist/web/assets/AgentsDialog-BtgwT_49.js +1 -0
- package/dist/web/assets/BpmnCanvas-BeOwGJEV.js +1905 -0
- package/dist/web/assets/BpmnDocument-DioCJiv7.js +24 -0
- package/dist/web/assets/ConflictDialog-B9V39KUg.js +1 -0
- package/dist/web/assets/DiffDocument-t0gjzCba.js +1 -0
- package/dist/web/assets/DmnDocument-ChFDTt1F.js +41 -0
- package/dist/web/assets/DmnDocument-VhMjHTN6.css +1 -0
- package/dist/web/assets/FormDocument-TEeVD6T7.js +32 -0
- package/dist/web/assets/FormDocument-URLcKn84.css +1 -0
- package/dist/web/assets/FormStepView-DLNQ8jVN.js +1 -0
- package/dist/web/assets/GraphAwareLayoutService-DFtkFUrn.js +21 -0
- package/dist/web/assets/NewFileDialog-BPBljAGC.js +34 -0
- package/dist/web/assets/QuickOpen-DOe23FAR.js +1 -0
- package/dist/web/assets/ScriptPane-DzBYUW23.js +2 -0
- package/dist/web/assets/ScriptRunDialog-BtLkIreU.js +1 -0
- package/dist/web/assets/SettingsDialog-YoMl6NJ1.js +1 -0
- package/dist/web/assets/ShortcutsDialog-D0_aCcNe.js +1 -0
- package/dist/web/assets/SourceDocument-p3iREvQI.js +1 -0
- package/dist/web/assets/TextDocument-DWg1EqKB.js +1 -0
- package/dist/web/assets/UnreadableFileLayer-ep6zQMtt.js +1 -0
- package/dist/web/assets/UploadDialog-ZOy1owan.js +1 -0
- package/dist/web/assets/Viewer-C7pbHtwq.js +4 -0
- package/dist/web/assets/apply-B8eZkNJ6.js +1 -0
- package/dist/web/assets/array-move-Bc4mVEdq.js +1 -0
- package/dist/web/assets/bpmn-0HrGCizt.svg +228 -0
- package/dist/web/assets/bpmn-Cyvp-fAH.eot +0 -0
- package/dist/web/assets/bpmnTheme-CebWk9Ei.js +1683 -0
- package/dist/web/assets/bridgeInstance-DzSjLJAc.js +600 -0
- package/dist/web/assets/clike-DaHM3zHz.js +1 -0
- package/dist/web/assets/colors-dark-C7vOziWz.css +1 -0
- package/dist/web/assets/colors-dracula-CXhMcc1Z.css +1 -0
- package/dist/web/assets/colors-light-CyT40N4M.css +1 -0
- package/dist/web/assets/de-DG3quwSS.js +1 -0
- package/dist/web/assets/dialog-Cn1DzN2I.js +1 -0
- package/dist/web/assets/diff-DMf6xJj1.js +1 -0
- package/dist/web/assets/dist--ADMeFWW.js +57 -0
- package/dist/web/assets/dist--PmHUHDp.js +1 -0
- package/dist/web/assets/dist-2wOiLlcG.js +1 -0
- package/dist/web/assets/dist-BYu4mHLv.js +23 -0
- package/dist/web/assets/dist-BaWEbDAw.js +1 -0
- package/dist/web/assets/dist-BnLLb41E.js +2 -0
- package/dist/web/assets/dist-BqwyxNP3.js +1 -0
- package/dist/web/assets/dist-BxuUJA8B.js +1 -0
- package/dist/web/assets/dist-CHkSydPE.js +1 -0
- package/dist/web/assets/dist-CHluRwHI.js +2 -0
- package/dist/web/assets/dist-CRJyslwo.js +1 -0
- package/dist/web/assets/dist-CxyFqsL2.js +6 -0
- package/dist/web/assets/dist-D0cjZCsW.js +13 -0
- package/dist/web/assets/dist-DBnQKg4d.js +1 -0
- package/dist/web/assets/dist-DIdDTNn9.js +2 -0
- package/dist/web/assets/dist-DXXc07IK.js +1 -0
- package/dist/web/assets/dist-DgvQWhKm.js +6 -0
- package/dist/web/assets/dist-DlbES2QN.js +1 -0
- package/dist/web/assets/dist-Dup2uTdL.js +6 -0
- package/dist/web/assets/dist-TNwbKIWT.js +1 -0
- package/dist/web/assets/dist-f4FXNtig.js +1 -0
- package/dist/web/assets/dist-zHmj1-pd.js +5 -0
- package/dist/web/assets/dmn-2EwrEScy.eot +0 -0
- package/dist/web/assets/dmn-eH1_eUsy.svg +90 -0
- package/dist/web/assets/dockLayout-CxOMo-Nl.js +1 -0
- package/dist/web/assets/documentBridge-BXU6mgKl.js +240 -0
- package/dist/web/assets/documents-XvKodSic.js +1 -0
- package/dist/web/assets/duplicate-CKn70NtG.js +342 -0
- package/dist/web/assets/ed25519-DTYhEcYX.js +1 -0
- package/dist/web/assets/engine-BPUfS3r2.js +1 -0
- package/dist/web/assets/engines-BaW52xZ_.js +5 -0
- package/dist/web/assets/es-PcpRjhXP.js +1 -0
- package/dist/web/assets/files-Chpd_QD0.js +1 -0
- package/dist/web/assets/formChecks-TAsEqw2_.js +1 -0
- package/dist/web/assets/fr-BQIO41QS.js +1 -0
- package/dist/web/assets/frontend-By89859W.js +1 -0
- package/dist/web/assets/go-C1TRUqzB.js +1 -0
- package/dist/web/assets/groovy-C2AgVf_z.js +1 -0
- package/dist/web/assets/html2canvas-DEOnTJc-.js +5 -0
- package/dist/web/assets/httpHost-DPT9cNRG.js +1 -0
- package/dist/web/assets/index.es-DXehkcd9.js +4 -0
- package/dist/web/assets/index.es-fKIKPRSg.js +78 -0
- package/dist/web/assets/index.esm-CTLpq4ik.js +3 -0
- package/dist/web/assets/intelligence-_ijxuAw5.js +3 -0
- package/dist/web/assets/ja-CJkgGd9w.js +1 -0
- package/dist/web/assets/jspdf.es.min-DXxYWA_o.js +79 -0
- package/dist/web/assets/ko-BaifpU2V.js +1 -0
- package/dist/web/assets/lib--h_vArmx.js +1 -0
- package/dist/web/assets/libavoid-BRQRZjmQ.wasm +0 -0
- package/dist/web/assets/libavoid.wasm +0 -0
- package/dist/web/assets/platform-_nC9EyYA.js +2 -0
- package/dist/web/assets/preferences-Cfvg8oqM.js +1 -0
- package/dist/web/assets/preload-helper-VRuDKI9K.js +1 -0
- package/dist/web/assets/properties-C3HzGRE2.js +1 -0
- package/dist/web/assets/pt-BR-DkBw_2Tc.js +1 -0
- package/dist/web/assets/purify.es-CyDa74pG.js +3 -0
- package/dist/web/assets/python-CvnBFxgv.js +1 -0
- package/dist/web/assets/resource/ArchitectsDaughter-OFL.txt +93 -0
- package/dist/web/assets/resource/ArchitectsDaughter-Regular.ttf +0 -0
- package/dist/web/assets/resource/JetBrainsMono-Italic.woff2 +0 -0
- package/dist/web/assets/resource/JetBrainsMono-Medium.woff2 +0 -0
- package/dist/web/assets/resource/JetBrainsMono-OFL.txt +52 -0
- package/dist/web/assets/resource/JetBrainsMono-Regular.woff2 +0 -0
- package/dist/web/assets/resource/JetBrainsMono-SemiBold.woff2 +0 -0
- package/dist/web/assets/rolldown-runtime-B8BYMn-z.js +1 -0
- package/dist/web/assets/ru-DhjXKaLT.js +1 -0
- package/dist/web/assets/run-CgRiIIgd.js +1 -0
- package/dist/web/assets/samples-CeaUa4Fn.js +1 -0
- package/dist/web/assets/shortcut-DONH578b.js +1 -0
- package/dist/web/assets/source-frame-C6KIof5s.js +2 -0
- package/dist/web/assets/stackblur-es-Djj-lnDR.js +2 -0
- package/dist/web/assets/syntax-DBcQvmbn.js +6 -0
- package/dist/web/assets/testCaseRuns-Bw2AfAfR.js +1 -0
- package/dist/web/assets/translator-Dt_jCGPm.js +1 -0
- package/dist/web/assets/typing-CXvbBSPr.js +1 -0
- package/dist/web/assets/ui-DDJuNJWb.js +1 -0
- package/dist/web/assets/useTrace-Rwk8eJY1.js +1 -0
- package/dist/web/assets/vendor-NJP34MHU.js +1 -0
- package/dist/web/assets/web-C3yK7kgI.js +148 -0
- package/dist/web/assets/web-CSZhWpVp.css +1 -0
- package/dist/web/assets/zh-tAs09DKy.js +1 -0
- package/dist/web/icon.svg +9 -0
- package/dist/web/index.html +63 -0
- package/dist/web/manifest.webmanifest +14 -0
- package/dist/wrapper/penstockw +68 -0
- package/dist/wrapper/penstockw.cmd +55 -0
- package/package.json +42 -4
- package/README.md +0 -3
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{parentPort as e,workerData as t}from"node:worker_threads";import{readFile as n}from"node:fs/promises";import{createHash as r}from"node:crypto";function i(e,t){let n=1,r=Math.min(Math.max(t,0),e.length);for(let t=e.indexOf(`
|
|
2
|
+
`);t>=0&&t<r;t=e.indexOf(`
|
|
3
|
+
`,t+1))n+=1;return n}function a(e){let t=[0];for(let n=e.indexOf(`
|
|
4
|
+
`);n>=0;n=e.indexOf(`
|
|
5
|
+
`,n+1))t.push(n+1);return t}const o=/* @__PURE__ */ new Set([`string`,`string_literal`,`interpreted_string_literal`,`raw_string_literal`]),s=/* @__PURE__ */ new Set([`array`,`array_literal`,`list`,`collection_literal`,`element_value_array_initializer`,`array_initializer`]),c=[`"""`,`'''`,`"`,`'`,"`"],ee=/* @__PURE__ */ new Set([`identifier`,`property_identifier`,`field_identifier`,`shorthand_property_identifier`]),te={attribute:`attribute`,selector_expression:`field`,member_access_expression:`name`,field_expression:`field`,member_expression:`property`},l=e=>({from:e.startIndex,to:e.endIndex}),u=(e,t)=>e.children.filter(e=>e.type===t),d=(e,t)=>e.children.find(e=>e.type===t)??null,f=(e,t)=>e.childForFieldName(t),p=e=>e?.text??null,m=e=>e.type.includes(`comment`),h=(e,t)=>t!==null&&e.type===t.type&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex;function g(e){return e.type===`generic_type`||e.type===`generic_name`?e.firstNamedChild?.text??e.text:e.text}function _(e){if(e===null||!o.has(e.type))return null;let t=e.text;for(let e of c)if(t.length>=e.length*2&&t.startsWith(e)&&t.endsWith(e))return t.slice(e.length,-e.length);return null}function ne(e){return s.has(e.type)?e.namedChildren.flatMap(e=>_(e)??[]):null}function re(e){let t=te[e.type];return t===void 0?null:f(e,t)?.text??null}function v(e,t){return{text:e.text,value:_(e),values:ne(e),identifier:ee.has(e.type)?e.text:null,reference:re(e),constructs:t(e),span:l(e)}}function y(e,t,n){return{...v(e,n),name:t,at:e.startIndex}}function b(e,t,n,r){let i=_(e);return{key:i??e.text,quoted:i!==null,at:e.startIndex,object:n.startIndex,value:v(t,r)}}function x(e,t,n,r){return{receiver:t.text,name:n?.text??null,key:_(r),keyAt:_(r)===null?null:r?.startIndex??null,at:e.startIndex,span:l(e)}}function S(e){return e.sort((e,t)=>e.at-t.at)}function ie(e,t){return{name:f(e,`name`)?.text??e.text.replace(/^@/,``),at:e.startIndex,arguments:t(e)}}const ae=/* @__PURE__ */ new WeakMap,oe=/* @__PURE__ */ new WeakMap;function se(e){let t=ae.get(e);if(t===void 0){t=/* @__PURE__ */ new Map;let n=[e.rootNode];for(let e=n.pop();e!==void 0;e=n.pop())for(let r of e.children)t.set(r.id,e),n.push(r);ae.set(e,t)}return t}function C(e){return se(e.tree).get(e.id)??null}function ce(e,t){let n=oe.get(e);n===void 0&&(n=/* @__PURE__ */ new Map,oe.set(e,n));let r=n.get(t);return r===void 0&&(r=/* @__PURE__ */ new Map,n.set(t,r)),r}function le(e,t){let n=ce(e.tree,t),r=se(e.tree),i=[],a=e;for(;a!==null&&!n.has(a.id);)i.push(a),a=r.get(a.id)??null;let o=a,s=a===null?null:n.get(a.id)??null;for(let e=i.length-1;e>=0;--e){let r=o!==null&&t.has(o.type)?o:s;n.set(i[e].id,r),o=i[e],s=r}return n.get(e.id)??null}function w(e,t){let n=le(e,t);return n===null?null:f(n,`name`)?.text??null}function T(e,t){return le(e,t)!==null}const E=/* @__PURE__ */ new Set([`method_declaration`,`local_function_statement`,`constructor_declaration`]),D=/* @__PURE__ */ new Set([`member_access_expression`,`element_access_expression`]),ue=/* @__PURE__ */ new Set([`object_creation_expression`,`implicit_object_creation_expression`]),de={class_declaration:`class`,record_declaration:`record`,struct_declaration:`struct`,enum_declaration:`enum`};function O(e){let t=e.type===`object_creation_expression`?f(e,`type`):null;return t===null?null:g(t)}const fe=e=>e===null?null:v(e,O);function pe(e){return(d(e,`attribute_argument_list`)?.namedChildren??[]).map(e=>{let t=d(e,`name_equals`);return{...v(e.namedChildren.find(e=>e.type!==`name_equals`)??e,O),name:t?.namedChildren[0]?.text??null,at:e.startIndex}})}function k(e){return u(e,`attribute_list`).flatMap(e=>u(e,`attribute`).map(e=>({name:f(e,`name`)?.text??e.text,at:e.startIndex,arguments:pe(e)})))}function A(e){return u(e,`modifier`).map(e=>e.text)}function me(e){let t=f(e,`name`);return t===null?[]:[{kind:`field`,name:t.text,type:f(e,`type`)?.text??null,at:t.startIndex,modifiers:A(e),annotations:k(e),arity:0,tag:null}]}function he(e){let t=d(e,`variable_declaration`);if(t===null)return[];let n=f(t,`type`)?.text??null;return u(t,`variable_declarator`).flatMap(t=>{let r=f(t,`name`);return r===null?[]:[{kind:`field`,name:r.text,type:n,at:r.startIndex,modifiers:A(e),annotations:k(e),arity:0,tag:null}]})}function ge(e){return e.namedChildren.filter(e=>e.type===`parameter`).flatMap(e=>{let t=f(e,`name`);return t===null?[]:[{kind:`parameter`,name:t.text,type:f(e,`type`)?.text??null,at:t.startIndex,modifiers:[],annotations:k(e),arity:0,tag:null}]})}function _e(e){return e.namedChildren.flatMap(e=>e.type===`property_declaration`?me(e):e.type===`field_declaration`?he(e):[])}function ve(e){return(d(e,`base_list`)?.namedChildren??[]).map(e=>({name:g(e),relation:`extends`}))}function ye(e,t){let n=f(e,`name`);if(n===null)return null;let r=f(e,`body`),i=d(e,`parameter_list`),a=[...i===null?[]:ge(i),...r===null||t===`enum`?[]:_e(r)];return{kind:t,name:n.text,at:n.startIndex,span:l(e),modifiers:A(e),annotations:k(e),supertypes:ve(e),generic:d(e,`type_parameter_list`)!==null,members:a,constants:t===`enum`&&r!==null?u(r,`enum_member_declaration`).map(e=>f(e,`name`)?.text??``).filter(e=>e!==``):[]}}function be(e){return e.descendantsOfType(Object.keys(de)).flatMap(e=>ye(e,de[e.type])??[])}const xe=/* @__PURE__ */ new Set([`class_declaration`,`record_declaration`,`struct_declaration`]),Se={method_declaration:`method`,constructor_declaration:`constructor`};function Ce(e){return(e?.namedChildren??[]).filter(e=>e.type===`parameter`).flatMap(e=>{let t=f(e,`name`);return t===null?[]:[{name:t.text,type:p(f(e,`type`)),at:t.startIndex,annotations:k(e)}]})}function we(e){return e.descendantsOfType(Object.keys(Se)).flatMap(e=>{let t=f(e,`name`);return t===null?[]:[{kind:Se[e.type],name:t.text,at:t.startIndex,span:l(e),owner:w(e,xe),annotations:k(e),parameters:Ce(f(e,`parameters`)),returnType:p(f(e,`returns`))}]})}function Te(){return null}function Ee(e){return e.descendantsOfType(`variable_declaration`).filter(e=>C(e)?.type===`local_declaration_statement`&&T(e,E)).flatMap(e=>{let t=f(e,`type`);return u(e,`variable_declarator`).flatMap(e=>{let n=f(e,`name`);if(n===null)return[];let r=e.namedChildren.find(e=>!h(e,n))??null;return[{name:n.text,key:null,type:t===null||t.type===`implicit_type`?null:t.text,at:n.startIndex,initializer:fe(r)}]})})}function De(e){return e.descendantsOfType(`return_statement`).map(e=>({at:e.startIndex,span:l(e),expression:fe(e.namedChildren.find(e=>!m(e))??null)}))}function Oe(e){let t=C(e);return t!==null&&D.has(t.type)&&h(e,f(t,`expression`))}function ke(e){let t=C(e);return t===null?!1:Oe(e)||t.type===`invocation_expression`&&h(e,f(t,`function`))}function Ae(e){let t=f(e,`expression`);if(t===null)return[];if(e.type===`element_access_expression`)return[x(e,t,null,f(e,`subscript`)?.namedChildren[0]?.namedChildren[0]??null)];let n=f(e,`name`);return n===null?[]:[x(e,t,n,null)]}function je(e){return S(e.descendantsOfType([...D]).filter(e=>!ke(e)).flatMap(Ae))}function Me(e){return S(e.descendantsOfType([...D]).filter(Oe).flatMap(Ae))}function Ne(e){let t=C(e);return t!==null&&ue.has(t.type)?t:e}function Pe(e){let t=C(e);if(t===null||t.type!==`initializer_expression`)return[];if(e.type===`initializer_expression`&&e.namedChildren.length===2){let[n,r]=e.namedChildren;return[b(n,r,Ne(t),O)]}let n=f(e,`left`),r=f(e,`right`);return e.type===`assignment_expression`&&n?.type===`identifier`&&r!==null?[b(n,r,Ne(t),O)]:[]}function Fe(e){return S(e.descendantsOfType([`initializer_expression`,`assignment_expression`]).flatMap(Pe))}function Ie(e){return(e?.namedChildren??[]).filter(e=>e.type===`argument`).map(e=>{let t=d(e,`name_colon`);return y(e.namedChildren.find(e=>e.type!==`name_colon`)??e,t?.namedChildren[0]?.text??null,O)})}function Le(e){let t=f(e,`function`);if(t===null)return null;let n=t.type===`member_access_expression`,r=n?f(t,`name`):t,i=r?.type===`generic_name`?r.firstNamedChild:r;return i==null||i.type!==`identifier`?null:{receiver:n?p(f(t,`expression`)):null,name:i.text,arguments:Ie(f(e,`arguments`)),at:i.startIndex,span:l(e),within:w(e,E)}}function Re(e){return e.descendantsOfType(`invocation_expression`).flatMap(e=>Le(e)??[])}function ze(e){return e.descendantsOfType(`object_creation_expression`).flatMap(e=>{let t=f(e,`type`);return t===null?[]:[{type:g(t),arguments:Ie(f(e,`arguments`)),at:t.startIndex,span:l(e),within:w(e,E)}]})}function Be(e){return e.descendantsOfType(`using_directive`).flatMap(e=>{let t=e.namedChildren.filter(e=>e.type===`identifier`||e.type===`qualified_name`).at(-1);return t===void 0?[]:[{name:t.text,at:t.startIndex}]})}function Ve(e){return e.descendantsOfType(`field_declaration`).flatMap(e=>{if(!A(e).includes(`const`))return[];let t=w(e,xe),n=d(e,`variable_declaration`);return n===null?[]:u(n,`variable_declarator`).flatMap(e=>{let n=f(e,`name`),r=_(e.namedChildren.at(-1)??null);return n===null||r===null?[]:[{name:n.text,value:r,owner:t,at:n.startIndex}]})})}const j=/* @__PURE__ */ new Set([`function_declaration`,`method_declaration`,`func_literal`]),He=/* @__PURE__ */ new Set([`selector_expression`,`index_expression`]);function Ue(e){let t=e.type===`unary_expression`?e.namedChildren[0]??null:e;return t?.type===`composite_literal`?p(f(t,`type`)):null}const We=e=>e===null?null:v(e,Ue);function Ge(e){return e===null?null:e.text.slice(1,-1)}function Ke(e){return e.namedChildren.filter(e=>e.type===`field_declaration`).flatMap(e=>{let t=f(e,`type`),n=Ge(f(e,`tag`)),r=u(e,`field_identifier`);return r.length===0?t===null?[]:[{kind:`embedded`,name:t.text,type:t.text,at:t.startIndex,modifiers:[],annotations:[],arity:0,tag:n}]:r.map(e=>({kind:`field`,name:e.text,type:t?.text??null,at:e.startIndex,modifiers:[],annotations:[],arity:0,tag:n}))})}function qe(e){let t=f(e,`name`),n=f(e,`type`);if(t===null||n===null||n.type!==`struct_type`)return null;let r=d(n,`field_declaration_list`);return{kind:`struct`,name:t.text,at:t.startIndex,span:l(e),modifiers:[],annotations:[],supertypes:[],generic:f(e,`type_parameters`)!==null,members:r===null?[]:Ke(r),constants:[]}}function Je(e){return e.descendantsOfType(`type_spec`).flatMap(e=>qe(e)??[])}function Ye(e){let t=f(e,`receiver`)?.namedChildren[0]??null,n=t===null?null:f(t,`type`);return n===null?null:n.text.replace(/^\*/,``)}function Xe(e){return(e?.namedChildren??[]).flatMap(e=>{if(e.type!==`parameter_declaration`&&e.type!==`variadic_parameter_declaration`)return[];let t=p(f(e,`type`));return u(e,`identifier`).map(e=>({name:e.text,type:t,at:e.startIndex,annotations:[]}))})}function Ze(e){return e.descendantsOfType([`function_declaration`,`method_declaration`]).flatMap(e=>{let t=f(e,`name`);if(t===null)return[];let n=e.type===`method_declaration`;return[{kind:n?`method`:`function`,name:t.text,at:t.startIndex,span:l(e),owner:n?Ye(e):null,annotations:[],parameters:Xe(f(e,`parameters`)),returnType:p(f(e,`result`))}]})}function Qe(e){return d(e.namedChildren.find(e=>e.type===`package_clause`)??e,`package_identifier`)?.text??null}function $e(e){let t=[];for(let n of e.descendantsOfType(`short_var_declaration`).filter(e=>T(e,j))){let e=f(n,`right`)?.namedChildren??[];f(n,`left`)?.namedChildren.forEach((n,r)=>{n.type===`identifier`&&t.push({name:n.text,key:null,type:null,at:n.startIndex,initializer:We(e[r]??null)})})}for(let n of e.descendantsOfType(`var_spec`).filter(e=>T(e,j))){let e=f(n,`value`)?.namedChildren??[],r=p(f(n,`type`));u(n,`identifier`).forEach((n,i)=>t.push({name:n.text,key:null,type:r,at:n.startIndex,initializer:We(e[i]??null)}))}return t.sort((e,t)=>e.at-t.at)}function et(e){return e.descendantsOfType(`return_statement`).map(e=>{let t=e.namedChildren[0]??null,n=t?.type===`expression_list`?t.namedChildren.length===1?t.namedChildren[0]:null:t;return{at:e.startIndex,span:l(e),expression:We(n)}})}function tt(e){let t=C(e);return t!==null&&He.has(t.type)&&h(e,f(t,`operand`))}function nt(e){let t=C(e);return t===null?!1:tt(e)||t.type===`call_expression`&&h(e,f(t,`function`))}function rt(e){let t=f(e,`operand`);if(t===null)return[];if(e.type===`index_expression`)return[x(e,t,null,f(e,`index`))];let n=f(e,`field`);return n===null?[]:[x(e,t,n,null)]}function it(e){return S(e.descendantsOfType([...He]).filter(e=>!nt(e)).flatMap(rt))}function at(e){return S(e.descendantsOfType([...He]).filter(tt).flatMap(rt))}function ot(e){let t=C(e)??e,n=C(t);return n?.type===`composite_literal`?n:t}function st(e){return e.descendantsOfType(`keyed_element`).flatMap(e=>{let t=f(e,`key`)?.namedChildren[0]??null,n=f(e,`value`)?.namedChildren[0]??null;return t===null||n===null?[]:[b(t,n,ot(e),Ue)]})}function ct(e){return(e?.namedChildren??[]).filter(e=>!m(e)).map(e=>y(e,null,Ue))}function lt(e){let t=f(e,`function`);if(t===null)return null;let n=t.type===`selector_expression`,r=n?f(t,`field`):t;return r===null||r.type!==`identifier`&&r.type!==`field_identifier`?null:{receiver:n?p(f(t,`operand`)):null,name:r.text,arguments:ct(f(e,`arguments`)),at:r.startIndex,span:l(e),within:w(e,j)}}function ut(e){return e.descendantsOfType(`call_expression`).flatMap(e=>lt(e)??[])}function dt(e){return e.descendantsOfType(`import_spec`).flatMap(e=>{let t=f(e,`path`),n=_(t);return t===null||n===null?[]:[{name:n,at:t.startIndex}]})}function ft(e){return e.descendantsOfType(`const_spec`).flatMap(e=>{let t=f(e,`name`),n=_(f(e,`value`)?.namedChildren.at(0)??null);return t===null||n===null?[]:[{name:t.text,value:n,owner:null,at:t.startIndex}]})}const pt={class_declaration:`class`,record_declaration:`record`,enum_declaration:`enum`,interface_declaration:`interface`},mt=/* @__PURE__ */ new Set([`annotation`,`marker_annotation`]);function M(e){let t=e.type===`object_creation_expression`?f(e,`type`):null;return t===null?null:g(t)}const ht=e=>e===null?null:v(e,M);function gt(e){let t=d(e,`annotation_argument_list`);return t===null?[]:t.namedChildren.map(e=>{if(e.type!==`element_value_pair`)return y(e,null,M);let t=f(e,`value`),n=p(f(e,`key`));return t===null?y(e,n,M):{...v(t,M),name:n,at:t.startIndex}})}function N(e){return e===null?[]:e.namedChildren.filter(e=>mt.has(e.type)).map(e=>ie(e,gt))}function P(e){return e===null?[]:e.children.filter(e=>!e.isNamed).map(e=>e.type)}function _t(e){let t=f(e,`superclass`)?.namedChildren[0],n=[...u(e,`super_interfaces`).flatMap(e=>vt(e,`implements`)),...u(e,`extends_interfaces`).flatMap(e=>vt(e,`extends`))];return[...t?[{name:g(t),relation:`extends`}]:[],...n]}function vt(e,t){return(d(e,`type_list`)?.namedChildren??[]).map(e=>({name:g(e),relation:t}))}function yt(e){let t=p(f(e,`name`));return t===null?null:{kind:`parameter`,name:t,type:p(f(e,`type`)),at:f(e,`name`)?.startIndex??e.startIndex,modifiers:P(d(e,`modifiers`)),annotations:N(d(e,`modifiers`)),arity:0,tag:null}}function bt(e){let t=[];for(let n of e.namedChildren)if(n.type===`field_declaration`){let e=d(n,`modifiers`),r=p(f(n,`type`));for(let i of u(n,`variable_declarator`)){let n=f(i,`name`);n!==null&&t.push({kind:`field`,name:n.text,type:r,at:n.startIndex,modifiers:P(e),annotations:N(e),arity:0,tag:null})}}else if(n.type===`method_declaration`){let e=f(n,`name`);if(e===null)continue;let r=d(n,`modifiers`),i=f(n,`parameters`);t.push({kind:`method`,name:e.text,type:p(f(n,`type`)),at:e.startIndex,modifiers:P(r),annotations:N(r),arity:i?.namedChildren.filter(e=>e.type===`formal_parameter`||e.type===`spread_parameter`).length??0,tag:null})}return t}function xt(e,t){let n=f(e,`name`),r=d(e,`modifiers`),i=f(e,`body`),a=t===`record`?f(e,`parameters`):null,o=[];a!==null&&o.push(...a.namedChildren.filter(e=>e.type===`formal_parameter`).flatMap(e=>yt(e)??[])),i!==null&&o.push(...bt(i));let s=i?.type===`enum_body`?i.namedChildren.filter(e=>e.type===`enum_constant`).map(e=>f(e,`name`)?.text??``):[],c=i?.type===`enum_body`?d(i,`enum_body_declarations`):null;return c!==null&&o.push(...bt(c)),{kind:t,name:n?.text??``,at:n?.startIndex??e.startIndex,span:l(e),modifiers:P(r),annotations:N(r),supertypes:_t(e),generic:f(e,`type_parameters`)!==null,members:o,constants:s.filter(e=>e!==``)}}function St(e){return e.descendantsOfType(Object.keys(pt)).map(e=>xt(e,pt[e.type]))}const F=/* @__PURE__ */ new Set([`method_declaration`,`constructor_declaration`]),Ct={method_declaration:`method`,constructor_declaration:`constructor`},wt=/* @__PURE__ */ new Set([`class_declaration`,`record_declaration`,`enum_declaration`,`interface_declaration`]);function Tt(e){return(e?.namedChildren??[]).filter(e=>e.type===`formal_parameter`||e.type===`spread_parameter`).flatMap(e=>{let t=f(e,`name`)??d(e,`identifier`);return t===null?[]:[{name:t.text,type:p(f(e,`type`)),at:t.startIndex,annotations:N(d(e,`modifiers`))}]})}function Et(e){return e.descendantsOfType([...F]).flatMap(e=>{let t=f(e,`name`);return t===null?[]:[{kind:Ct[e.type],name:t.text,at:t.startIndex,span:l(e),owner:w(e,wt),annotations:N(d(e,`modifiers`)),parameters:Tt(f(e,`parameters`)),returnType:p(f(e,`type`))}]})}function Dt(e){return e.namedChildren.find(e=>e.type===`package_declaration`)?.namedChildren.find(e=>e.type===`scoped_identifier`||e.type===`identifier`)?.text??null}function Ot(e){return e.descendantsOfType(`local_variable_declaration`).filter(e=>T(e,F)).flatMap(e=>{let t=p(f(e,`type`));return u(e,`variable_declarator`).flatMap(e=>{let n=f(e,`name`);return n===null?[]:[{name:n.text,key:null,type:t===`var`?null:t,at:n.startIndex,initializer:ht(f(e,`value`))}]})})}function kt(e){return e.descendantsOfType(`return_statement`).map(e=>{let t=e.namedChildren.find(e=>!m(e))??null;return{at:e.startIndex,span:l(e),expression:ht(t)}})}function At(){return[]}function jt(){return[]}function Mt(){return[]}function Nt(e){return(e?.namedChildren??[]).filter(e=>!m(e)).map(e=>y(e,null,M))}function Pt(e,t){return{receiver:p(f(e,`object`)),name:t.text,arguments:Nt(f(e,`arguments`)),at:t.startIndex,span:l(e),within:w(e,F)}}function Ft(e){return e.descendantsOfType(`method_invocation`).flatMap(e=>{let t=f(e,`name`);return t===null?[]:[Pt(e,t)]})}function It(e){return e.descendantsOfType(`object_creation_expression`).flatMap(e=>{let t=f(e,`type`);return t===null?[]:[{type:g(t),arguments:Nt(f(e,`arguments`)),at:t.startIndex,span:l(e),within:w(e,F)}]})}function Lt(e){return e.descendantsOfType(`import_declaration`).flatMap(e=>{let t=e.namedChildren.find(e=>e.type===`scoped_identifier`||e.type===`identifier`);return t===void 0?[]:[{name:d(e,`asterisk`)===null?t.text:`${t.text}.*`,at:t.startIndex}]})}function Rt(e){return e.descendantsOfType(`field_declaration`).flatMap(e=>{if(!P(d(e,`modifiers`)).includes(`final`))return[];let t=w(e,wt);return u(e,`variable_declarator`).flatMap(e=>{let n=f(e,`name`),r=_(f(e,`value`));return n===null||r===null?[]:[{name:n.text,value:r,owner:t,at:n.startIndex}]})})}const zt=`annotation`,Bt=/* @__PURE__ */ new Set([`val`,`var`]),Vt=/* @__PURE__ */ new Set([`function_declaration`]),Ht=/* @__PURE__ */ new Set([`class_declaration`,`object_declaration`]),I=/* @__PURE__ */ new Set([`navigation_expression`,`index_expression`]);function L(e){let t=e.type===`call_expression`?e.firstNamedChild:null;return t?.type===`identifier`&&/^[A-Z]/.test(t.text)?t.text:null}const Ut=e=>e===null?null:v(e,L);function Wt(e){return e===null?[]:u(e,`value_argument`).map(e=>{let t=e.children.findIndex(e=>e.type===`=`);if(t>0)return y(e.children.slice(t+1).find(e=>e.isNamed)??e,e.children[t-1].text,L);let n=d(e,`value_argument_label`);return y(e.namedChildren.find(e=>e.type!==`value_argument_label`)??e,n?n.text.replace(/\s*=\s*$/,``):null,L)})}function Gt(e){return Wt(e.descendantsOfType(`value_arguments`)[0]??null)}function Kt(e){return e.descendantsOfType(`user_type`)[0]?.text??e.text.replace(/^@/,``)}function R(e){return e===null?[]:e.namedChildren.filter(e=>e.type===zt).map(e=>({name:Kt(e),at:e.startIndex,arguments:Gt(e)}))}function z(e){return e===null?[]:e.namedChildren.filter(e=>e.type!==zt).map(e=>e.text)}function B(e){return p(d(e,`user_type`))}function qt(e){let t=d(e,`modifiers`),n=e.children.find(e=>Bt.has(e.type)),r=d(e,`identifier`);return n===void 0||r===null?null:{kind:`parameter`,name:r.text,type:B(e),at:r.startIndex,modifiers:z(t),annotations:R(t),arity:0,tag:null}}function Jt(e){let t=d(e,`variable_declaration`),n=t?d(t,`identifier`):null;if(t===null||n===null)return null;let r=d(e,`modifiers`);return{kind:`field`,name:n.text,type:B(t),at:n.startIndex,modifiers:z(r),annotations:R(r),arity:0,tag:null}}function Yt(e){let t=f(e,`name`);if(t===null)return null;let n=d(e,`modifiers`),r=d(e,`function_value_parameters`);return{kind:`method`,name:t.text,type:B(e),at:t.startIndex,modifiers:z(n),annotations:R(n),arity:r?u(r,`parameter`).length:0,tag:null}}function Xt(e){let t=d(e,`delegation_specifiers`);return t===null?[]:u(t,`delegation_specifier`).flatMap(e=>{let t=d(e,`constructor_invocation`),n=d(t||e,`user_type`);return n===null?[]:[{name:n.text,relation:t?`extends`:`implements`}]})}function Zt(e){let t=d(e,`modifiers`);return u(t??e,`class_modifier`).some(e=>e.text===`enum`)?`enum`:e.children.some(e=>e.type===`interface`)?`interface`:`class`}function Qt(e){let t=f(e,`name`),n=d(e,`modifiers`),r=Zt(e),i=[],a=d(e,`primary_constructor`),o=a?d(a,`class_parameters`):null;for(let e of o?.namedChildren??[]){if(e.type!==`class_parameter`)continue;let t=qt(e);t&&i.push(t)}let s=d(e,`class_body`);for(let e of s?.namedChildren??[])if(e.type===`property_declaration`){let t=Jt(e);t&&i.push(t)}else if(e.type===`function_declaration`){let t=Yt(e);t&&i.push(t)}let c=d(e,`enum_class_body`)?.namedChildren.filter(e=>e.type===`enum_entry`).map(e=>d(e,`identifier`)?.text??``)??[];return{kind:r,name:t?.text??``,at:t?.startIndex??e.startIndex,span:l(e),modifiers:z(n),annotations:R(n),supertypes:Xt(e),generic:d(e,`type_parameters`)!==null,members:i,constants:c.filter(e=>e!==``)}}function $t(e){return e.descendantsOfType([`class_declaration`,`object_declaration`]).map(Qt)}function en(e){let t=null;return(e?.namedChildren??[]).flatMap(e=>{if(e.type===`parameter_modifiers`)return t=e,[];if(e.type!==`parameter`)return[];let n=t;t=null;let r=d(e,`identifier`);return r===null?[]:[{name:r.text,type:B(e),at:r.startIndex,annotations:R(n)}]})}function tn(e){return e.descendantsOfType(`function_declaration`).flatMap(e=>{let t=f(e,`name`);if(t===null)return[];let n=w(e,Ht);return[{kind:n===null?`function`:`method`,name:t.text,at:t.startIndex,span:l(e),owner:n,annotations:R(d(e,`modifiers`)),parameters:en(d(e,`function_value_parameters`)),returnType:B(e)}]})}function nn(e){let t=e.namedChildren.find(e=>e.type===`package_header`)??null;return t===null?null:p(d(t,`qualified_identifier`))}function rn(e){let t=e.children.findIndex(e=>e.type===`=`);return t<0?null:Ut(e.children.slice(t+1).find(e=>e.isNamed)??null)}function an(e){return e.descendantsOfType(`property_declaration`).filter(e=>T(e,Vt)).flatMap(e=>{let t=d(e,`variable_declaration`),n=t?d(t,`identifier`):null;return t===null||n===null?[]:[{name:n.text,key:null,type:B(t),at:n.startIndex,initializer:rn(e)}]})}function on(e){return e.descendantsOfType(`return_expression`).map(e=>({at:e.startIndex,span:l(e),expression:Ut(e.namedChildren[0]??null)}))}function sn(e){let t=C(e);return t!==null&&I.has(t.type)&&h(e,t.firstNamedChild)}function cn(e){let t=C(e);return t===null?!1:sn(e)||t.type===`call_expression`&&h(e,t.firstNamedChild)}function ln(e){let t=e.firstNamedChild;if(t===null)return[];if(e.type===`index_expression`)return[x(e,t,null,e.namedChildren[1]??null)];let n=e.lastNamedChild;return n===null||n.type!==`identifier`?[]:[x(e,t,n,null)]}function un(e){return S(e.descendantsOfType([...I]).filter(e=>!cn(e)).flatMap(ln))}function dn(e){return S(e.descendantsOfType([...I]).filter(sn).flatMap(ln))}function fn(e){return e.descendantsOfType(`infix_expression`).flatMap(e=>{let[t,n,r]=e.namedChildren;return n?.text===`to`&&r!==void 0?[b(t,r,e,L)]:[]})}function pn(e){let t=e.firstNamedChild;if(t===null)return null;let n=t.type===`navigation_expression`,r=n?t.lastNamedChild:t;return r===null||r.type!==`identifier`?null:{receiver:n?p(t.firstNamedChild):null,name:r.text,arguments:Wt(d(e,`value_arguments`)),at:r.startIndex,span:l(e),within:w(e,Vt)}}function mn(e){return e.descendantsOfType(`call_expression`).flatMap(e=>pn(e)??[])}function hn(e){return e.descendantsOfType(`import`).flatMap(e=>{let t=d(e,`qualified_identifier`);return t===null?[]:[{name:/\*$/.test(e.text)?`${t.text}.*`:t.text,at:t.startIndex}]})}function gn(e){return e.descendantsOfType(`property_declaration`).flatMap(e=>{if(!z(d(e,`modifiers`)).includes(`const`))return[];let t=d(d(e,`variable_declaration`)??e,`identifier`),n=_(e.lastNamedChild);return t===null||n===null?[]:[{name:t.text,value:n,owner:w(e,Ht),at:t.startIndex}]})}const V=/* @__PURE__ */ new Set([`function_definition`]),H=/* @__PURE__ */ new Set([`class_definition`,`object_definition`,`trait_definition`]),U=/* @__PURE__ */ new Set([`field_expression`]);function _n(e){let t=e.charAt(0);return t!==t.toLowerCase()}function W(e){let t=e.type===`call_expression`?f(e,`function`):null;return t?.type===`identifier`&&_n(t.text)?t.text:null}const vn=e=>e===null?null:v(e,W);function yn(e){return e===null?[]:e.namedChildren.map(e=>{if(e.type===`assignment_expression`){let t=f(e,`left`),n=f(e,`right`);if(t!==null&&n!==null)return y(n,t.text,W)}return y(e,null,W)})}function G(e){let t=d(e,`modifiers`);return[...u(e,`annotation`),...t===null?[]:u(t,`annotation`)].map(e=>ie(e,e=>yn(f(e,`arguments`)))).sort((e,t)=>e.at-t.at)}function K(e){let t=d(e,`modifiers`);return t===null?[]:t.children.filter(e=>e.type!==`annotation`).map(e=>e.text)}function bn(e){return(e?.namedChildren??[]).flatMap(e=>{if(e.type!==`parameter`)return[];let t=f(e,`name`);return t===null?[]:[{name:t.text,type:p(f(e,`type`)),at:t.startIndex,annotations:G(e)}]})}function xn(e){if(e.type===`function_definition`){let t=f(e,`name`);return t===null?null:{kind:`method`,name:t.text,type:p(f(e,`return_type`)),at:t.startIndex,modifiers:K(e),annotations:G(e),arity:bn(f(e,`parameters`)).length,tag:null}}if(e.type!==`val_definition`&&e.type!==`var_definition`)return null;let t=f(e,`pattern`);return t===null||t.type!==`identifier`?null:{kind:`field`,name:t.text,type:p(f(e,`type`)),at:t.startIndex,modifiers:K(e),annotations:G(e),arity:0,tag:null}}function Sn(e){let t=e.children.some(e=>e.type===`case`);return(f(e,`class_parameters`)?.namedChildren??[]).flatMap(e=>{let n=f(e,`name`),r=e.children.some(e=>e.type===`val`||e.type===`var`);return n===null||!r&&!t?[]:[{kind:`field`,name:n.text,type:p(f(e,`type`)),at:n.startIndex,modifiers:[],annotations:G(e),arity:0,tag:null}]})}function Cn(e){let t=d(e,`extends_clause`);if(t===null)return[];let n=e.type===`trait_definition`?`implements`:`extends`;return t.childrenForFieldName(`type`).map((e,t)=>({name:e.text,relation:t===0?n:`implements`}))}function wn(e){return e.type===`trait_definition`?`interface`:`class`}function Tn(e){let t=f(e,`name`),n=f(e,`body`),r=[...Sn(e),...(n?.namedChildren??[]).flatMap(e=>xn(e)??[])];return{kind:wn(e),name:t?.text??``,at:t?.startIndex??e.startIndex,span:l(e),modifiers:K(e),annotations:G(e),supertypes:Cn(e),generic:d(e,`type_parameters`)!==null,members:r,constants:[]}}function En(e){let t=d(e,`package_clause`);return p(t===null?null:f(t,`name`))}function Dn(e){return e.descendantsOfType([...H]).map(Tn)}function On(e){return e.descendantsOfType([...V]).flatMap(e=>{let t=f(e,`name`);if(t===null)return[];let n=w(e,H);return[{kind:n===null?`function`:`method`,name:t.text,at:t.startIndex,span:l(e),owner:n,annotations:G(e),parameters:bn(f(e,`parameters`)),returnType:p(f(e,`return_type`))}]})}function kn(e){return e.descendantsOfType([`val_definition`,`var_definition`]).filter(e=>T(e,V)).flatMap(e=>{let t=f(e,`pattern`);return t===null||t.type!==`identifier`?[]:[{name:t.text,key:null,type:p(f(e,`type`)),at:t.startIndex,initializer:vn(f(e,`value`))}]})}function An(e){return e.descendantsOfType(`return_expression`).map(e=>({at:e.startIndex,span:l(e),expression:vn(e.namedChildren[0]??null)}))}function jn(e){let t=C(e);return t!==null&&U.has(t.type)&&h(e,f(t,`value`))}function Mn(e){let t=C(e);return t===null?!1:jn(e)||t.type===`call_expression`&&h(e,f(t,`function`))}function Nn(e){let t=f(e,`value`),n=f(e,`field`);return t===null||n===null?[]:[x(e,t,n,null)]}function Pn(e){return S(e.descendantsOfType([...U]).filter(e=>!Mn(e)).flatMap(Nn))}function Fn(e){return S(e.descendantsOfType([...U]).filter(jn).flatMap(Nn))}function In(e){return e.descendantsOfType(`infix_expression`).flatMap(e=>{let t=f(e,`left`),n=f(e,`right`);return f(e,`operator`)?.text===`->`&&t!==null&&n!==null?[b(t,n,e,W)]:[]})}function Ln(e){let t=f(e,`function`);if(t===null)return null;let n=t.type===`field_expression`,r=n?f(t,`field`):t;return r===null||r.type!==`identifier`?null:{receiver:n?p(f(t,`value`)):null,name:r.text,arguments:yn(f(e,`arguments`)),at:r.startIndex,span:l(e),within:w(e,V)}}function Rn(e){return e.descendantsOfType(`call_expression`).flatMap(e=>Ln(e)??[])}function zn(e){return e.descendantsOfType(`instance_expression`).flatMap(e=>{let t=e.firstNamedChild;return t===null?[]:[{type:t.text,arguments:yn(f(e,`arguments`)),at:t.startIndex,span:l(e),within:w(e,V)}]})}function Bn(e){return e.descendantsOfType(`import_declaration`).flatMap(e=>{let t=e.childrenForFieldName(`path`).filter(e=>e.isNamed).map(e=>e.text).join(`.`),n=d(e,`namespace_selectors`);return n===null?d(e,`namespace_wildcard`)===null?[{name:t,at:e.startIndex}]:[{name:`${t}.*`,at:e.startIndex}]:n.namedChildren.map(n=>({name:`${t}.${n.text}`,at:e.startIndex}))})}function Vn(e){return e.descendantsOfType(`val_definition`).flatMap(e=>{if(!K(e).includes(`final`))return[];let t=f(e,`pattern`),n=_(f(e,`value`));return t===null||t.type!==`identifier`||n===null?[]:[{name:t.text,value:n,owner:w(e,H),at:t.startIndex}]})}const Hn=/* @__PURE__ */ new Set([`identifier`,`attribute`,`subscript`]),Un=/* @__PURE__ */ new Set([`function_definition`]),Wn=/* @__PURE__ */ new Set([`class_definition`]),Gn={attribute:`object`,subscript:`value`};function q(e){let t=e.type===`call`?f(e,`function`):null;return t?.type===`identifier`&&/^[A-Z]/.test(t.text)?t.text:null}const Kn=e=>e===null?null:v(e,q);function qn(e){return(e?.namedChildren??[]).filter(e=>!m(e)).map(e=>e.type===`keyword_argument`?{...v(f(e,`value`)??e,q),name:f(e,`name`)?.text??null,at:e.startIndex}:y(e,null,q))}function Jn(e){return e.type===`call`?{name:f(e,`function`)?.text??e.text,at:e.startIndex,arguments:qn(f(e,`arguments`))}:{name:e.text,at:e.startIndex,arguments:[]}}function Yn(e){return u(e,`decorator`).flatMap(e=>{let t=e.namedChildren[0];return t===void 0?[]:[Jn(t)]})}function Xn(e){return(f(e,`superclasses`)?.namedChildren??[]).flatMap(e=>{if(!Hn.has(e.type)&&e.type!==`subscript`)return[];let t=e.type===`subscript`?f(e,`value`):e;return t===null?[]:[{name:t.text,relation:`extends`}]})}function Zn(e){return e.type===`expression_statement`?d(e,`assignment`):null}function Qn(e){let t=f(e,`left`);if(t===null||t.type!==`identifier`)return[];let n=f(e,`right`),r=f(e,`type`);if(r===null&&t.text===`model_config`)return[{kind:`config`,name:t.text,type:null,at:t.startIndex,modifiers:[],annotations:[],arity:0,tag:null}];if(r===null)return[];let i=n!==null&&n.type===`call`?[Jn(n)]:[];return[{kind:`field`,name:t.text,type:r.text,at:t.startIndex,modifiers:[],annotations:i,arity:0,tag:null}]}function $n(e,t){let n=f(e,`name`);return n===null?[]:e.type===`class_definition`?[{kind:`config`,name:n.text,type:null,at:n.startIndex,modifiers:[],annotations:t,arity:0,tag:null}]:e.type===`function_definition`?[{kind:`method`,name:n.text,type:f(e,`return_type`)?.text??null,at:n.startIndex,modifiers:[],annotations:t,arity:f(e,`parameters`)?.namedChildren.length??0,tag:null}]:[]}function er(e){return e.namedChildren.flatMap(e=>{if(e.type===`decorated_definition`){let t=f(e,`definition`);return t===null?[]:$n(t,Yn(e))}let t=Zn(e);return t===null?$n(e,[]):Qn(t)})}function tr(e){return e.namedChildren.flatMap(e=>{let t=Zn(e);if(t===null||f(t,`type`)!==null)return[];let n=f(t,`left`);return n?.type===`identifier`?[n.text]:[]})}function nr(e){let t=f(e,`name`);if(t===null)return null;let n=f(e,`body`),r=C(e)?.type===`decorated_definition`?C(e):null;return{kind:`class`,name:t.text,at:t.startIndex,span:l(e),modifiers:[],annotations:r===null?[]:Yn(r),supertypes:Xn(e),generic:f(e,`type_parameters`)!==null,members:n===null?[]:er(n),constants:n===null?[]:tr(n)}}function rr(e){return e.descendantsOfType(`class_definition`).flatMap(e=>nr(e)??[])}function ir(e){if(e.type===`identifier`)return{name:e.text,type:null,at:e.startIndex,annotations:[]};let t=e.type===`typed_parameter`?d(e,`identifier`):f(e,`name`);return t===null?null:{name:t.text,type:p(f(e,`type`)),at:t.startIndex,annotations:[]}}function ar(e){return e.descendantsOfType(`function_definition`).flatMap(e=>{let t=f(e,`name`);if(t===null)return[];let n=w(e,Wn),r=C(e)?.type===`decorated_definition`?C(e):null;return[{kind:n===null?`function`:`method`,name:t.text,at:t.startIndex,span:l(e),owner:n,annotations:r===null?[]:Yn(r),parameters:(f(e,`parameters`)?.namedChildren??[]).flatMap(e=>ir(e)??[]),returnType:p(f(e,`return_type`))}]})}function or(){return null}function sr(e){return e.descendantsOfType(`assignment`).filter(e=>C(e)?.type===`expression_statement`&&T(e,Un)).flatMap(e=>{let t=f(e,`left`);return t===null||t.type!==`identifier`?[]:[{name:t.text,key:null,type:p(f(e,`type`)),at:t.startIndex,initializer:Kn(f(e,`right`))}]})}function cr(e){return e.descendantsOfType(`return_statement`).map(e=>({at:e.startIndex,span:l(e),expression:Kn(e.namedChildren.find(e=>!m(e))??null)}))}function lr(e){let t=C(e),n=t===null?void 0:Gn[t.type];return t!==null&&n!==void 0&&h(e,f(t,n))}function ur(e){let t=C(e);return t===null?!1:lr(e)||t.type===`call`&&h(e,f(t,`function`))}function dr(e){let t=f(e,Gn[e.type]);if(t===null)return[];if(e.type===`subscript`)return[x(e,t,null,f(e,`subscript`))];let n=f(e,`attribute`);return n===null?[]:[x(e,t,n,null)]}function fr(e){return S(e.descendantsOfType([`attribute`,`subscript`]).filter(e=>!ur(e)).flatMap(dr))}function pr(e){return S(e.descendantsOfType([`attribute`,`subscript`]).filter(lr).flatMap(dr))}function mr(e){return e.descendantsOfType(`pair`).flatMap(e=>{let t=C(e),n=f(e,`key`),r=f(e,`value`);return t===null||t.type!==`dictionary`||n===null||r===null?[]:[b(n,r,t,q)]})}function hr(e){let t=f(e,`function`);for(;t!==null&&t.type===`call`;)t=f(t,`function`);return t}function gr(e){let t=hr(e);if(t===null)return null;let n=t.type===`attribute`,r=n?f(t,`attribute`):t;return r===null||r.type!==`identifier`?null:{receiver:n?p(f(t,`object`)):null,name:r.text,arguments:qn(f(e,`arguments`)),at:r.startIndex,span:l(e),within:w(e,Un)}}function _r(e){return e.descendantsOfType(`call`).flatMap(e=>gr(e)??[])}function vr(e){return e.descendantsOfType([`import_statement`,`import_from_statement`]).flatMap(e=>{if(e.type===`import_from_statement`){let t=f(e,`module_name`);return t===null?[]:[{name:t.text,at:t.startIndex}]}return e.namedChildren.flatMap(e=>{let t=e.type===`aliased_import`?f(e,`name`):e;return t!==null&&(t.type===`dotted_name`||t.type===`identifier`)?[{name:t.text,at:t.startIndex}]:[]})})}function yr(e){return e.namedChildren.flatMap(e=>{let t=Zn(e);if(t===null||f(t,`type`)!==null)return[];let n=f(t,`left`),r=_(f(t,`right`));return n?.type===`identifier`&&r!==null?[{name:n.text,value:r,owner:null,at:n.startIndex}]:[]})}const br={class_declaration:`class`,abstract_class_declaration:`class`,interface_declaration:`interface`,enum_declaration:`enum`,type_alias_declaration:`alias`},xr=/* @__PURE__ */ new Set([`abstract`,`declare`,`get`,`override`,`private`,`protected`,`public`,`readonly`,`set`,`static`]),Sr=/* @__PURE__ */ new Set([`required_parameter`,`optional_parameter`]),Cr=/* @__PURE__ */ new Set([`required_parameter`,`optional_parameter`,`rest_pattern`]),wr=/* @__PURE__ */ new Set([`public_field_definition`,`field_definition`,`property_signature`]),Tr=/* @__PURE__ */ new Set([`method_signature`,`method_definition`]),J=/* @__PURE__ */ new Set([`function_declaration`,`generator_function_declaration`,`method_definition`]),Er=/* @__PURE__ */ new Set([...J,`arrow_function`,`function_expression`,`function`]),Dr=/* @__PURE__ */ new Set([`class_declaration`,`abstract_class_declaration`]),Or=/* @__PURE__ */ new Set([`member_expression`,`subscript_expression`]),Y=e=>e.type===`string`?e.text.slice(1,-1):e.text;function X(e){return e.type===`new_expression`?p(f(e,`constructor`)):null}const kr=e=>e===null?null:v(e,X);function Z(e){return e.children.filter(e=>xr.has(e.type)||e.type===`accessibility_modifier`).map(e=>e.text)}function Ar(e){return(f(e,`type`)??f(e,`return_type`))?.namedChildren[0]?.text??null}function Q(e,t,n,r=0){return{kind:e,name:Y(n),type:Ar(t),at:n.startIndex,modifiers:Z(t),annotations:[],arity:r,tag:null}}function jr(e){return f(e,`parameters`)?.namedChildren.filter(e=>Cr.has(e.type)).length??0}function Mr(e){return(f(e,`parameters`)?.namedChildren??[]).flatMap(e=>{let t=f(e,`pattern`);return!Sr.has(e.type)||t===null||Z(e).length===0?[]:[Q(`parameter`,e,t)]})}function Nr(e){return e.namedChildren.flatMap(e=>{if(wr.has(e.type)){let t=f(e,`name`)??f(e,`property`);return t===null?[]:[Q(`field`,e,t)]}if(e.type===`index_signature`){let t=f(e,`name`);return t===null?[]:[Q(`index`,e,t)]}if(Tr.has(e.type)){let t=f(e,`name`);if(t===null)return[];let n=Z(e);return n.includes(`get`)||n.includes(`set`)?[Q(`accessor`,e,t)]:t.text===`constructor`?Mr(e):[Q(`method`,e,t,jr(e))]}return[]})}function Pr(e){let t=d(e,`extends_clause`),n=t?f(t,`value`):e.namedChildren.find(e=>e.type===`identifier`||e.type===`member_expression`)??null;return n===null?[]:[{name:g(n),relation:`extends`}]}function Fr(e){let t=u(e,`extends_type_clause`).flatMap(e=>e.namedChildren.map(e=>({name:g(e),relation:`extends`}))),n=d(e,`class_heritage`);if(n===null)return t;let r=(d(n,`implements_clause`)?.namedChildren??[]).map(e=>({name:g(e),relation:`implements`}));return[...Pr(n),...r]}function Ir(e){return e.namedChildren.flatMap(e=>{if(e.type===`enum_assignment`){let t=f(e,`name`);return t===null?[]:[Y(t)]}return e.type===`property_identifier`||e.type===`string`?[Y(e)]:[]})}function Lr(e,t){let n=f(e,`name`);if(n===null)return null;let r=t===`alias`?f(e,`value`):f(e,`body`);return t===`alias`&&r?.type!==`object_type`?null:{kind:t,name:n.text,at:n.startIndex,span:l(e),modifiers:Z(e),annotations:[],supertypes:Fr(e),generic:f(e,`type_parameters`)!==null,members:r===null||t===`enum`?[]:Nr(r),constants:t===`enum`&&r!==null?Ir(r):[]}}function Rr(e){return e.descendantsOfType(Object.keys(br)).flatMap(e=>Lr(e,br[e.type])??[])}function zr(e){return(e?.namedChildren??[]).filter(e=>!m(e)).map(e=>y(e,null,X))}function Br(e){return u(e,`decorator`).flatMap(e=>{let t=e.namedChildren[0];return t===void 0?[]:t.type===`call_expression`?[{name:p(f(t,`function`))??t.text,at:t.startIndex,arguments:zr(f(t,`arguments`))}]:[{name:t.text,at:t.startIndex,arguments:[]}]})}function Vr(e){return(e?.namedChildren??[]).filter(e=>Sr.has(e.type)).flatMap(e=>{let t=f(e,`pattern`);return t===null||t.type!==`identifier`?[]:[{name:t.text,type:p(f(e,`type`)?.namedChildren[0]??null),at:t.startIndex,annotations:[]}]})}function Hr(e){return e.descendantsOfType([...J]).flatMap(e=>{let t=f(e,`name`);if(t===null)return[];let n=w(e,Dr),r=e.type===`method_definition`;return[{kind:t.text===`constructor`?`constructor`:r?`method`:`function`,name:t.text,at:t.startIndex,span:l(e),owner:r?n:null,annotations:Br(e),parameters:Vr(f(e,`parameters`)),returnType:p(f(e,`return_type`)?.namedChildren[0]??null)}]})}function Ur(){return null}function Wr(e){return p(f(e,`type`)?.namedChildren[0]??null)}function Gr(e,t){let n=(e,n)=>({name:n.text,key:e,type:null,at:n.startIndex,initializer:t});return e.namedChildren.flatMap(e=>{if(e.type===`shorthand_property_identifier_pattern`)return[n(e.text,e)];if(e.type===`object_assignment_pattern`){let t=f(e,`left`);return t?.type===`shorthand_property_identifier_pattern`?[n(t.text,t)]:[]}if(e.type!==`pair_pattern`)return[];let t=f(e,`key`),r=f(e,`value`),i=r?.type===`assignment_pattern`?f(r,`left`):r;return t!==null&&i?.type===`identifier`?[n(Y(t),i)]:[]})}function Kr(e){return e.descendantsOfType(`variable_declarator`).filter(e=>T(e,Er)).flatMap(e=>{let t=f(e,`name`),n=kr(f(e,`value`));return t===null?[]:t.type===`object_pattern`?Gr(t,n):t.type===`identifier`?[{name:t.text,key:null,type:Wr(e),at:t.startIndex,initializer:n}]:[]})}function qr(e){return e.descendantsOfType(`return_statement`).map(e=>({at:e.startIndex,span:l(e),expression:kr(e.namedChildren.find(e=>!m(e))??null)}))}function Jr(e){let t=C(e);return t!==null&&Or.has(t.type)&&h(e,f(t,`object`))}function Yr(e){let t=C(e);return t===null?!1:Jr(e)||t.type===`call_expression`&&h(e,f(t,`function`))}function Xr(e){let t=f(e,`object`);if(t===null)return[];if(e.type!==`member_expression`)return[x(e,t,null,f(e,`index`))];let n=f(e,`property`);return n===null?[]:[x(e,t,n,null)]}function Zr(e){return S(e.descendantsOfType([...Or]).filter(e=>!Yr(e)).flatMap(Xr))}function Qr(e){return S(e.descendantsOfType([...Or]).filter(Jr).flatMap(Xr))}function $r(e){return S(e.descendantsOfType([`pair`,`shorthand_property_identifier`]).flatMap(e=>{let t=C(e);if(t===null||t.type!==`object`)return[];if(e.type===`shorthand_property_identifier`)return[b(e,e,t,X)];let n=f(e,`key`),r=f(e,`value`);return n===null||r===null?[]:[b(n,r,t,X)]}))}function ei(e){let t=f(e,`function`);if(t===null)return null;let n=t.type===`member_expression`,r=n?f(t,`property`):t;return r===null||r.type!==`identifier`&&r.type!==`property_identifier`?null:{receiver:n?p(f(t,`object`)):null,name:r.text,arguments:zr(f(e,`arguments`)),at:r.startIndex,span:l(e),within:w(e,J)}}function ti(e){return e.descendantsOfType(`call_expression`).flatMap(e=>ei(e)??[])}const ni=e=>{let t=C(e);return t?.type===`program`||t?.type===`export_statement`&&C(t)?.type===`program`};function ri(e){return e.descendantsOfType(`new_expression`).flatMap(e=>{let t=f(e,`constructor`);return t===null?[]:[{type:t.text,arguments:zr(f(e,`arguments`)),at:t.startIndex,span:l(e),within:w(e,J)}]})}function ii(e){return e.descendantsOfType(`import_statement`).flatMap(e=>{let t=f(e,`source`),n=_(t);return t===null||n===null?[]:[{name:n,at:t.startIndex}]})}function ai(e){return e.descendantsOfType(`lexical_declaration`).flatMap(e=>d(e,`const`)===null||!ni(e)?[]:u(e,`variable_declarator`).flatMap(e=>{let t=f(e,`name`),n=_(f(e,`value`));return t===null||n===null?[]:[{name:t.text,value:n,owner:null,at:t.startIndex}]}))}const oi=()=>[],si={packageOf:Dt,declarations:St,callables:Et,locals:Ot,returns:kt,accesses:At,innerAccesses:jt,pairs:Mt,calls:Ft,constructions:It,imports:Lt,constants:Rt},ci={packageOf:Ur,declarations:Rr,callables:Hr,locals:Kr,returns:qr,accesses:Zr,innerAccesses:Qr,pairs:$r,calls:ti,constructions:ri,imports:ii,constants:ai},li={java:si,kotlin:{packageOf:nn,declarations:$t,callables:tn,locals:an,returns:on,accesses:un,innerAccesses:dn,pairs:fn,calls:mn,constructions:oi,imports:hn,constants:gn},typescript:ci,javascript:ci,python:{packageOf:or,declarations:rr,callables:ar,locals:sr,returns:cr,accesses:fr,innerAccesses:pr,pairs:mr,calls:_r,constructions:oi,imports:vr,constants:yr},go:{packageOf:Qe,declarations:Je,callables:Ze,locals:$e,returns:et,accesses:it,innerAccesses:at,pairs:st,calls:ut,constructions:oi,imports:dt,constants:ft},groovy:si,scala:{packageOf:En,declarations:Dn,callables:On,locals:kn,returns:An,accesses:Pn,innerAccesses:Fn,pairs:In,calls:Rn,constructions:zn,imports:Bn,constants:Vn},csharp:{packageOf:Te,declarations:be,callables:we,locals:Ee,returns:De,accesses:je,innerAccesses:Me,pairs:Fe,calls:Re,constructions:ze,imports:Be,constants:Ve}},ui=/* @__PURE__ */ new Map([[`java`,`java`],[`kt`,`kotlin`],[`kts`,`kotlin`],[`ts`,`typescript`],[`js`,`javascript`],[`mjs`,`javascript`],[`cjs`,`javascript`],[`py`,`python`],[`go`,`go`],[`cs`,`csharp`],[`groovy`,`groovy`],[`scala`,`scala`]]);function di(e){let t=e.lastIndexOf(`.`);return t<0?null:ui.get(e.slice(t+1))??null}const fi=/* @__PURE__ */ new Map;function pi(e,t){let i=`${e.runtimeFile}\0${e.grammarFiles[t]}`,a=fi.get(i);return a===void 0&&(a=Promise.all([n(e.runtimeFile),n(e.grammarFiles[t])]).then(([e,t])=>r(`sha256`).update(e).update(t).digest(`hex`)),fi.set(i,a),a.catch(()=>fi.delete(i))),a}function mi(e){let t=null,r=/* @__PURE__ */ new Map,i=!1,o=()=>(t??=import(`web-tree-sitter`).then(async t=>(await t.Parser.init({locateFile:()=>e.runtimeFile}),t)),t),s=t=>{let i=r.get(t);if(i)return i;let a=(async()=>{let{Language:r,Parser:i}=await o(),a=await r.load(new Uint8Array(await n(e.grammarFiles[t]))),s=new i;return s.setLanguage(a),s})();return r.set(t,a),a.catch(()=>r.delete(t)),a};return{async facts(e){if(i)throw Error(`The syntax port is disposed`);let t=di(e.path);if(t===null)throw Error(`No grammar is registered for ${e.path}`);let n=(await s(t)).parse(e.text),r=a(e.text);if(n===null)return{path:e.path,language:t,package:null,errors:[{offset:0,line:1}],lineStarts:r,declarations:[],callables:[],locals:[],returns:[],accesses:[],innerAccesses:[],pairs:[],calls:[],constructions:[],imports:[],constants:[]};try{let i=li[t],a=n.rootNode;return{path:e.path,language:t,package:i.packageOf(a),errors:hi(a,e.text),lineStarts:r,declarations:i.declarations(a),callables:i.callables(a),locals:i.locals(a),returns:i.returns(a),accesses:i.accesses(a),innerAccesses:i.innerAccesses(a),pairs:i.pairs(a),calls:i.calls(a),constructions:i.constructions(a),imports:i.imports(a),constants:i.constants(a)}}finally{n.delete()}},version:t=>pi(e,t),async dispose(){i=!0;let e=[...r.values()];r.clear();for(let t of e)(await t.catch(()=>null))?.delete()}}}function hi(e,t){let n=[],r=e=>{if(!(n.length>=20||!e.hasError)){if(e.isError||e.isMissing)n.push({offset:e.startIndex,line:i(t,e.startIndex)});else for(let t of e.children)r(t)}};return r(e),n}if(e===null)throw Error(`The syntax worker runs only as a worker thread`);const $=e,gi=mi(t.locations);$.on(`message`,async({id:e,source:t,recycle:n})=>{try{$.postMessage({id:e,facts:await gi.facts(t),recycle:n})}catch(t){$.postMessage({id:e,error:t instanceof Error?t.message:String(t),recycle:n})}});export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./rolldown-runtime-B8BYMn-z.js";import{c as e,h as t,i as n,r,s as i,u as a}from"./vendor-NJP34MHU.js";import{i as o,n as s}from"./translator-Dt_jCGPm.js";import{t as c}from"./bridgeInstance-DzSjLJAc.js";import{n as l,r as u}from"./httpHost-DPT9cNRG.js";import{c as d,n as f}from"./ui-DDJuNJWb.js";import{i as p,r as m}from"./preferences-Cfvg8oqM.js";var h=[`off`,`bottom`,`sidebar`],g=`bottom`;function aiChatPlaceOf(e){return h.find(t=>t===e)??`bottom`}function aiChatSurfaces(e){let t=e!==`off`;return{bottomInput:e===`bottom`,card:e===`bottom`,chatTab:t,chatsList:t,toolbarButton:t,paletteAction:t,agentProcess:t}}var _=null;function registerAgentsOpener(e){return _=e,()=>{_===e&&(_=null)}}async function openAgentsScreen(){if(_)_();else try{await c().agentsHost?.().openSettings()}catch(e){console.error(`The AI agents screen did not open:`,e)}}function normalise(e){return e.replace(/\\/g,`/`).replace(/^\.\//,``).replace(/\/+$/,``)}function pathsMatch(e,t){return normalise(e)===normalise(t)}function baseName(e){return normalise(e).split(`/`).filter(Boolean).pop()??e}var v=1e3,y=15e3,b=2e3,x={status:`loading`,entries:[],queue:[],permission:null,error:null,options:[]},S={text:``,mentions:[],dismissed:[],focus:0};function isLicenceRefusal(e){return e instanceof u&&e.status===402}function newClientId(){return`c${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`}function upsert(e,t){let n=e.findIndex(e=>e.id===t.id);if(n<0){let n=[...e,t];return n.length>b?n.slice(n.length-b):n}let r=e.slice();return r[n]=t,r}function withPlan(e,t){let n=-1;for(let t=e.length-1;t>=0;--t)if(e[t].kind===`plan`){n=t;break}if(n<0)return upsert(e,{kind:`plan`,id:`plan`,items:t});let r=e.slice();return r[n]={kind:`plan`,id:e[n].id,items:t},r}function withApproved(e,t){let n=e.status===`done`&&e.diffs.length===0?t?.get(l(e)):void 0;return n?{...e,diffs:n}:e}function applyToTranscript(e,t,n){switch(t.type){case`entry`:{let r=t.entry.kind===`tool`?{...t.entry,tool:withApproved(t.entry.tool,n)}:t.entry,i=e.entries.find(e=>e.id===r.id);return i&&JSON.stringify(i)===JSON.stringify(r)?e:{...e,entries:upsert(e.entries,r)}}case`tool`:return{...e,entries:upsert(e.entries,{kind:`tool`,id:l(t.tool),tool:withApproved(t.tool,n)})};case`plan`:return{...e,entries:withPlan(e.entries,t.items)};case`queue`:return{...e,queue:t.queue};case`permission`:return{...e,permission:t.permission};case`error`:return{...e,error:t.error};case`options`:return{...e,options:t.options};default:return e}}function sameChats(e,t){return e.length===t.length&&e.every((e,n)=>JSON.stringify(e)===JSON.stringify(t[n]))}var AssistantStore=class{state;listeners=new Set;host;options;client;pending=new Map;approved=new Map;loading=new Map;openings=new Set;expected=null;manage;control=null;started=!1;disposed=!1;failures=0;resyncing=null;constructor(e,t={}){this.host=e,this.options=t,this.client=t.client??newClientId(),this.manage=t.onManageAgents??null;let n=t.place?t.place():g;this.state={enabled:n!==`off`,place:n,loaded:!1,connected:!1,choices:[],chats:[],transcripts:{},active:{},shown:{},folded:{},revealed:{},focused:null,agentId:null,drafts:{},picks:{},canManageAgents:!!t.onManageAgents,failure:null}}snapshot=()=>this.state;subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});commit(e){this.state={...this.state,...e},this.recordOpenings();for(let e of[...this.listeners])try{e()}catch(e){console.error(`An assistant listener failed:`,e)}}recordOpenings(){for(let e of Object.keys(this.state.active))!this.openings.has(e)&&this.settled(e)&&this.openings.add(e)}settled(e){if(!this.state.loaded)return!1;let t=this.activeChat(e);if(t===null)return!0;let n=this.state.transcripts[t.id];return n!==void 0&&n.status!==`loading`}opened(e){return!this.state.enabled||this.openings.has(e)}describe(e){return e instanceof u&&e.failure?e.failure:{key:`app.agent.failed`,detail:e instanceof Error?e.message:String(e)}}wait(e){return this.options.wait?this.options.wait(e):new Promise(t=>setTimeout(t,e))}allowed(){return!this.options.place||this.options.place()!==`off`}setPlace(e){if(e===this.state.place)return;let t=e!==`off`;this.commit({place:e,enabled:t}),t?this.started&&this.begin():this.halt()}start(){return this.disposed?Promise.resolve():(this.started=!0,this.allowed()?(this.state.enabled||this.commit({enabled:!0}),this.control&&!this.control.signal.aborted?Promise.resolve():this.begin()):(this.state.enabled&&this.commit({enabled:!1}),Promise.resolve()))}begin(){let e=new AbortController;this.control=e;let t=this.resync();return this.pump(e),t}halt(){this.control?.abort(),this.control=null,this.commit({connected:!1})}dispose(){this.disposed=!0,this.started=!1,this.halt(),this.listeners.clear()}async pump(e){for(;!e.signal.aborted;)try{let t=await this.host.next(this.client,e.signal);if(e.signal.aborted)return;this.failures>0&&(this.failures=0,this.state.connected||this.commit({connected:!0})),t&&this.receive(t)}catch{if(e.signal.aborted)return;this.failures+=1,this.state.connected&&this.commit({connected:!1});let t=Math.min(this.options.maxRetryMs??y,(this.options.retryMs??v)*2**Math.min(this.failures-1,6));if(await this.wait(t),e.signal.aborted)return;await this.resync()}}resync(){if(this.resyncing)return this.resyncing;let e=(async()=>{try{let[e,t]=await Promise.all([this.host.choices().catch(()=>this.state.choices),this.host.chats()]);this.commit({choices:e,loaded:!0,connected:!0,enabled:t.enabled&&this.allowed(),failure:null}),this.takeChats(t.chats);let n=Object.keys(this.state.transcripts);await Promise.all(n.map(e=>this.fetchChat(e,!0)))}catch(e){this.state.loaded||this.commit({loaded:!0}),this.commit({failure:this.describe(e)})}finally{this.resyncing=null}})();return this.resyncing=e,e}takeChats(e){let t=new Set(e.map(e=>e.id)),n=Object.fromEntries(Object.entries(this.state.active).map(([e,n])=>[e,n!==null&&t.has(n)?n:null])),r=Object.fromEntries(Object.entries(this.state.transcripts).filter(([e])=>t.has(e))),i=this.state.chats,a=!sameChats(i,e),o=Object.entries(n).some(([e,t])=>t!==this.state.active[e])||Object.keys(r).length!==Object.keys(this.state.transcripts).length;if(a||o){for(let t of e){let e=i.find(e=>e.id===t.id);(t.state===`working`||t.state===`waiting`||t.state===`connecting`||t.state===`failed`)&&e?.state!==t.state&&(this.state={...this.state,shown:{...this.state.shown,[t.id]:!0}},t.state===`waiting`&&(this.state={...this.state,folded:{...this.state.folded,[t.id]:!1}}))}this.commit({chats:e,active:n,transcripts:r});for(let t of e){let e=i.find(e=>e.id===t.id);t.state===`waiting`&&e?.state!==`waiting`&&this.revealWaiting(t.id),t.state===`waiting`&&!this.state.transcripts[t.id]&&this.open(t.id)}}}receive(e){switch(e.type){case`sync`:this.resync();return;case`chats`:this.takeChats(e.chats);return;case`enabled`:this.commit({enabled:e.enabled&&this.allowed()});return;default:{let t=e.chatId,n=this.state.transcripts[t];if(!n){this.state.chats.some(e=>e.id===t)&&(this.pending.set(t,[...this.pending.get(t)??[],e]),this.open(t));return}if(n.status===`loading`){this.pending.set(t,[...this.pending.get(t)??[],e]);return}let r=applyToTranscript(n,e,this.approved);if(r===n)return;e.type===`options`&&this.learn(t);let i={transcripts:{...this.state.transcripts,[t]:r}};if(e.type===`permission`&&e.permission&&e.permission.id!==n.permission?.id){i.folded={...this.state.folded,[t]:!1},i.shown={...this.state.shown,[t]:!0},this.commit(i),this.revealWaiting(t);return}this.commit(i)}}}fetchChat(e,t){let n=this.loading.get(e);if(n)return n;let r=this.state.transcripts[e];!t||!r?this.commit({transcripts:{...this.state.transcripts,[e]:{...r??x,status:`loading`}}}):this.commit({transcripts:{...this.state.transcripts,[e]:{...r,status:`loading`}}});let i=(async()=>{try{let t=await this.host.chat(e),n={status:`ready`,entries:t.entries,queue:t.queue,permission:t.permission,error:t.error,options:t.options};for(let t of this.pending.get(e)??[])n=applyToTranscript(n,t,this.approved);this.pending.delete(e),this.state.chats.some(t=>t.id===e)&&this.commit({transcripts:{...this.state.transcripts,[e]:n}}),this.mergeSummary(t)}catch(t){this.pending.delete(e);let n=t instanceof u?t.status:null,r={...this.state.transcripts};n===404?delete r[e]:r[e]={...r[e]??x,status:`failed`},this.commit({transcripts:r})}finally{this.loading.delete(e)}})();return this.loading.set(e,i),i}mergeSummary(e){let t=this.state.chats.findIndex(t=>t.id===e.chat.id);if(t<0||JSON.stringify(this.state.chats[t])===JSON.stringify(e.chat))return;let n=this.state.chats.slice();n[t]=e.chat,this.commit({chats:n})}open(e){let t=this.state.transcripts[e];return t&&t.status!==`failed`&&t.status!==`missing`?this.loading.get(e)??Promise.resolve():this.fetchChat(e,!1)}focus(e){e!==this.state.focused&&this.commit({focused:e})}unfocus(e){this.state.focused===e&&this.commit({focused:null})}activeChat(e){let t=e?this.state.active[e]:null;return t?this.state.chats.find(e=>e.id===t)??null:null}select(e,t){this.commit({active:{...this.state.active,[e]:t}}),t&&this.open(t)}expectChat(e,t){this.expected={chatId:e,file:t}}settle(e,t){if(!this.state.loaded)return;if(this.expected&&t&&pathsMatch(this.expected.file,t)){let{chatId:t}=this.expected;this.expected=null,this.select(e,t);return}if(e in this.state.active)return;let n=(t?this.state.chats.filter(e=>e.files.some(e=>pathsMatch(e,t))):[]).reduce((e,t)=>e===null||t.updated>e.updated?t:e,null);this.select(e,n?.id??null)}get onManageAgents(){return this.manage}setManageAgents(e){return this.manage=e,this.commit({canManageAgents:e!==null}),()=>{this.manage===e&&(this.manage=null,this.commit({canManageAgents:!1}))}}changeAgent(e,t){this.activeChat(e)&&this.select(e,null),this.pickAgent(t)}pickAgent(e){this.commit({agentId:e,picks:{}})}learn(e){let t=this.state.chats.find(t=>t.id===e)?.agentId,n=this.state.choices.find(e=>e.id===t);!n||(n.options??[]).length>0||this.host.choices().then(e=>this.commit({choices:e}),()=>void 0)}async pickOption(e,t,n,r){if(!t){let t=this.agentFor(null);if(!t)return;let i=this.state.picks[e],a=i&&i.agentId===t?i.values:{};this.commit({picks:{...this.state.picks,[e]:{agentId:t,values:{...a,[n.id]:r}}}});return}let i=this.state.transcripts[t.id],chosen=e=>e.map(e=>e.id===n.id?{...e,current:r}:e);i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...i,options:chosen(i.options)}}});try{let e=await this.host.setOption(t.id,n.id,r),i=this.state.transcripts[t.id];i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...i,options:e}}})}catch(e){let n=this.state.transcripts[t.id];n&&i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...n,options:i.options}}}),this.commit({failure:this.describe(e)})}}agentFor(e){return e?e.agentId:this.state.agentId?this.state.agentId:this.state.choices.find(e=>e.available)?.id??null}reveal(e){this.commit({revealed:{...this.state.revealed,[e]:(this.state.revealed[e]??0)+1}})}revealWaiting(e){if(this.state.place===`sidebar`)for(let[t,n]of Object.entries(this.state.active))n===e&&this.reveal(t)}openChat(e){let t=this.state.focused;t&&(this.select(t,e),this.reveal(t))}showCard(e){this.commit({shown:{...this.state.shown,[e]:!0},folded:{...this.state.folded,[e]:!1}})}returnToCard(e){let t=this.activeChat(e);t&&this.state.place===`bottom`&&this.showCard(t.id)}setFolded(e,t){!!this.state.folded[e]!==t&&this.commit({folded:{...this.state.folded,[e]:t}})}dismissCard(e){this.commit({shown:{...this.state.shown,[e]:!1}})}draft(e){return this.state.drafts[e]??S}setDraft(e,t){this.commit({drafts:{...this.state.drafts,[e]:{...this.draft(e),...t}}})}setText(e,t){t!==this.draft(e).text&&this.setDraft(e,{text:t})}mention(e,t){let n=this.draft(e),r=mentionKey(t);n.mentions.some(e=>mentionKey(e)===r)||this.setDraft(e,{mentions:[...n.mentions,t],dismissed:n.dismissed.filter(e=>e!==r)})}unmention(e,t){let n=this.draft(e);this.setDraft(e,{mentions:n.mentions.filter(e=>mentionKey(e)!==t),dismissed:n.dismissed.includes(t)?n.dismissed:[...n.dismissed,t]})}releaseDismissed(e,t){let n=this.draft(e),r=n.dismissed.filter(e=>!e.startsWith(C)||t.includes(e.slice(C.length)));r.length!==n.dismissed.length&&this.setDraft(e,{dismissed:r})}focusInput(e){this.state.place===`sidebar`&&this.reveal(e),this.setDraft(e,{focus:this.draft(e).focus+1})}compose(e,t,n){let r=this.draft(e),i=r.text.trim()&&!r.text.includes(n)?`${r.text.trimEnd()}\n${n}`:n,a=mentionKey(t),o=r.mentions.some(e=>mentionKey(e)===a)?r.mentions:[...r.mentions,t];this.setDraft(e,{text:i,mentions:o,dismissed:r.dismissed.filter(e=>e!==a),focus:r.focus+1})}clearDraft(e){this.setDraft(e,{text:``,mentions:[]})}async create(e,t=null){try{let n=await this.host.create(t??this.agentFor(null));return this.takeChats([n,...this.state.chats.filter(e=>e.id!==n.id)]),this.commit({transcripts:{...this.state.transcripts,[n.id]:{status:`ready`,entries:[],queue:[],permission:null,error:null,options:[]}}}),e&&this.select(e,n.id),n}catch(e){return this.commit({failure:this.describe(e)}),null}}async rename(e,t){let n=t.trim();if(n)try{let t=await this.host.rename(e,n);this.takeChats(this.state.chats.map(e=>e.id===t.id?t:e))}catch(e){this.commit({failure:this.describe(e)})}}async remove(e){try{await this.host.remove(e)}catch(e){if(!(e instanceof u&&e.status===404)){this.commit({failure:this.describe(e)});return}}this.takeChats(this.state.chats.filter(t=>t.id!==e))}async send(e){let t=e.text.trim();if(!t)return`refused`;let n=this.activeChat(e.editor);if(!await e.authorize())return`refused`;let r=n===null;try{if(!n){if(n=await this.create(e.editor),!n)return`failed`;await this.applyPicks(e.editor,n)}let r=n.id;return this.state.place===`sidebar`?(this.reveal(e.editor),this.commit({failure:null})):this.commit({shown:{...this.state.shown,[r]:!0},folded:{...this.state.folded,[r]:!1},failure:null}),(await this.host.prompt(r,t,e.context)).queued?`queued`:`sent`}catch(t){return isLicenceRefusal(t)?(r&&n&&await this.discard(e.editor,n.id),await e.authorize(),`refused`):(this.commit({failure:this.describe(t)}),`failed`)}}async discard(e,t){this.select(e,null),await this.remove(t)}async applyPicks(e,t){let n=this.state.picks[e];if(!n)return;let{[e]:r,...i}=this.state.picks;if(this.commit({picks:i}),n.agentId===t.agentId)for(let[e,r]of Object.entries(n.values))try{let n=await this.host.setOption(t.id,e,r),i=this.state.transcripts[t.id];i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...i,options:n}}})}catch{}}async tryAgain(e,t){let n=[...this.state.transcripts[e]?.entries??[]].reverse().find(e=>e.kind===`user`);if(!n||n.kind!==`user`||!await t())return`refused`;try{return this.commit({shown:{...this.state.shown,[e]:!0},folded:{...this.state.folded,[e]:!1},failure:null}),(await this.host.prompt(e,n.text,null)).queued?`queued`:`sent`}catch(e){return isLicenceRefusal(e)?(await t(),`refused`):(this.commit({failure:this.describe(e)}),`failed`)}}async unqueue(e,t,n){let r=this.state.transcripts[e],i=r?r.queue.findIndex(e=>e.id===t):-1,a=i>=0&&r?r.queue[i]:null;r&&this.commit({transcripts:{...this.state.transcripts,[e]:{...r,queue:r.queue.filter(e=>e.id!==t)}}});try{await this.host.unqueue(e,t)}catch(t){if(t instanceof u&&t.status===404)return;this.commit({failure:this.describe(t)});let n=this.state.transcripts[e];if(a&&n&&!n.queue.some(e=>e.id===a.id)){let t=[...n.queue];t.splice(Math.min(i,t.length),0,a),this.commit({transcripts:{...this.state.transcripts,[e]:{...n,queue:t}}})}return}if(!a)return;let o=this.draft(n),s=o.text.trim()===``?a.text:`${o.text.trimEnd()}\n${a.text}`;this.setDraft(n,{text:s,focus:o.focus+1})}async stop(e){try{await this.host.stop(e)}catch(e){this.commit({failure:this.describe(e)})}}async signIn(e,t){if(await t())try{await this.host.signIn(e)}catch(e){if(isLicenceRefusal(e)){await t();return}this.commit({failure:this.describe(e)})}}async answer(e,t,n){let r=this.state.transcripts[e];if(r?.permission?.id===t){r.permission.options.find(e=>e.id===n)?.kind===`allow`&&r.permission.tool.diffs.length>0&&this.approved.set(l(r.permission.tool),r.permission.tool.diffs),this.commit({transcripts:{...this.state.transcripts,[e]:{...r,permission:null}}});try{await this.host.answer(e,t,n)}catch(t){if(t instanceof u&&t.status===409)return;this.commit({failure:this.describe(t)}),this.fetchChat(e,!0)}}}retry(e,t){return t&&this.select(t,e),this.fetchChat(e,!0)}dismissFailure(){this.state.failure!==null&&this.commit({failure:null})}},C=`element:`;function mentionKey(e){return e.kind===`element`?`${C}${e.id}`:`file:${e.path}`}function optionsFor(e,t,n,r){if(n)return e.transcripts[n.id]?.options??[];let i=e.picks[t],a=i&&i.agentId===r?i.values:{};return(e.choices.find(e=>e.id===r)?.options??[]).map(e=>a[e.id]!==void 0&&e.values.some(t=>t.id===a[e.id])?{...e,current:a[e.id]}:e)}var w=null,T=!1,release=null;function aiChatPlace(){return aiChatPlaceOf(p().aiChat)}function aiChatOn(){return aiChatPlace()!==`off`}function createAssistant(e={}){let t=c().agentHost?.();return t?new AssistantStore(t,{place:aiChatPlace,onManageAgents:()=>void openAgentsScreen(),...e}):null}function setAssistant(e){if(release?.(),release=null,w=e,T=!0,!e)return;let t=m(()=>{e.setPlace(aiChatPlace())}),refocused=()=>{e.snapshot().enabled&&e.resync()},n=typeof window>`u`?null:window;n?.addEventListener(`focus`,refocused),release=()=>{t(),n?.removeEventListener(`focus`,refocused)}}function getAssistant(){if(!T){T=!0;try{setAssistant(createAssistant())}catch{w=null}}return w}function installOpenChat(){let e=globalThis,open=e=>getAssistant()?.openChat(e);if(e.penstockOpenChat=open,e.pendingOpenChat){let t=e.pendingOpenChat;delete e.pendingOpenChat,open(t)}return()=>{e.penstockOpenChat===open&&delete e.penstockOpenChat}}function useTick(t,r,i=Object.is){let[,o]=e(0),s=n(r);s.current=r;let c=n(r()),l=r();return c.current=l,a(()=>t(()=>{let e=s.current();i(c.current,e)||(c.current=e,o(e=>e+1))}),[t]),l}var E=6e4,D=60*E,O=24*D;function ago(e,t=Date.now()){let n=t-e,r;try{r=new Intl.RelativeTimeFormat(s(),{numeric:`auto`,style:`short`})}catch{r=new Intl.RelativeTimeFormat(`en`,{numeric:`auto`,style:`short`})}return!Number.isFinite(n)||n<E?r.format(0,`minute`):n<D?r.format(-Math.floor(n/E),`minute`):n<O?r.format(-Math.floor(n/D),`hour`):r.format(-Math.floor(n/O),`day`)}var k=/(?:fill|stroke)\s*[:=]\s*["']?\s*(#[0-9a-fA-F]{3,8}|rgba?\([^)]*\)|[a-zA-Z]+)/g,A=new Set([`none`,`transparent`,`currentcolor`,`inherit`]),j=2e5,M=new Map;function isSingleColour(e){let t=new Set;for(let n of e.matchAll(k)){let e=n[1].toLowerCase().replace(/\s+/g,``);A.has(e)||t.add(e)}return t.size<=1&&!/<(?:linearGradient|radialGradient|image)\b/i.test(e)}var N=/^data:image\/svg\+xml;base64,([A-Za-z0-9+/=]+)$/,P=/^(?:data:image\/svg\+xml;base64,[A-Za-z0-9+/=]+|https?:\/\/\S+|\/[^\s/]\S*)$/;function loadable(e){return typeof e==`string`&&P.test(e)}function decoded(e){let t=N.exec(e);if(!t)return null;try{return atob(t[1])}catch{return``}}function singleColour(e){let t=decoded(e);if(t!==null)return Promise.resolve(t!==``&&t.length<=j&&isSingleColour(t));let n=M.get(e);return n||(n=fetch(e).then(e=>e.ok?e.text():``).then(t=>t!==``&&t.length<=j&&/\.svg(?:$|\?)/i.test(e)&&isSingleColour(t)).catch(()=>!1),M.set(e,n)),n}function monogramOf(e){return(Array.from(e.trim())[0]??`?`).toLocaleUpperCase()}function AgentLogo({name:t,icon:n,class:i,size:o=16}){let s=loadable(n)?n:null,[c,l]=e(null),[u,d]=e(!1);a(()=>{if(d(!1),l(null),!s)return;let e=!0;return singleColour(s).then(t=>{e&&l(t)}),()=>{e=!1}},[s]);let f=`agent-logo${o===20?` agent-logo--large`:``}${i?` ${i}`:``}`;return!s||u?r(`span`,{class:`${f} agent-logo--monogram type-badge`,"aria-hidden":`true`,children:monogramOf(t)}):c===!0?r(`span`,{class:`${f} agent-logo--mask`,style:{maskImage:`url("${s}")`,WebkitMaskImage:`url("${s}")`},"aria-hidden":`true`}):r(`img`,{class:f,src:s,alt:``,width:o,height:o,onError:()=>d(!0)})}var F=/^default\b/i,I=28,L=4;function settingsOf(e){let first=t=>e.find(e=>e.category===t)??null;return{model:first(`model`),level:first(`thought_level`),mode:first(`mode`)}}function currentOf(e){return e.values.find(t=>t.id===e.current)??null}function isDefaultValue(e){return F.test(e.id)||F.test(e.name)}function standsFor(e){let t=e.description?.trim()??``,n=t.split(/\s+/).length;return t!==``&&t.length<=I&&n<=L&&/^[A-Z0-9]/.test(t)&&!/[.!?]$/.test(t)?t:null}function rowName(e){let t=currentOf(e);return t?e.category===`model`?modelName(e)??t.name:isDefaultValue(t)?standsFor(t)??t.name:t.name:e.current}function modelName(e){let t=currentOf(e);return t?isDefaultValue(t)?standsFor(t):t.name:e.current}function levelName(e){let t=currentOf(e);return t?isDefaultValue(t)?null:t.name:e.current}function modelAndLevel(e){return[e.model?modelName(e.model):null,e.level?levelName(e.level):null].filter(e=>e!==null).join(` `)}function modeSuffix(e){let t=e.mode;if(!t)return null;let n=currentOf(t);return n&&isDefaultValue(n)?null:modeName(t)}function settingsLabel(e){return[modelAndLevel(e),modeSuffix(e)].filter(e=>e!==null&&e!==``).join(` · `)}function modeName(e){return currentOf(e)?.name??e.current}var R=6,z=22,B=2;function groupsOf(e){let t=[];for(let n of e){let e=t[t.length-1];e&&e.name===n.group?e.values.push(n):t.push({name:n.group,values:[n]})}return t}function isSegmented(e){let t=e.values;return t.length<2||t.length>R||!t.every(e=>!e.description&&!e.group)?!1:t.reduce((e,t)=>e+Array.from(t.name).length+B,0)<=z}var V=360,H=72,U=60,W=16,G={kind:`rows`};function Segmented({option:e,onPick:t}){return r(`div`,{class:`assistant-form__segments`,role:`radiogroup`,"aria-label":e.name,children:e.values.map(n=>r(`button`,{type:`button`,role:`radio`,"aria-checked":n.id===e.current,"data-nav":`segment`,class:`assistant-form__segment type-body`,onClick:()=>t(e,n.id),children:n.name},n.id))})}function Select({text:e,logo:t,onOpen:n,label:i,nav:a=`item`}){return r(`button`,{type:`button`,class:`assistant-form__select type-body`,"data-nav":a,"aria-label":`${i}: ${e}`,"aria-haspopup":`listbox`,onClick:n,children:[t,r(`span`,{class:`assistant-form__select-text`,children:e}),r(f,{name:`chevronDown`,class:`assistant-form__select-chevron`})]})}function Row({label:e,children:t}){return r(`div`,{class:`assistant-form__row`,children:[r(`span`,{class:`assistant-form__label type-help`,children:e}),r(`div`,{class:`assistant-form__control`,children:t})]})}function OptionList({option:e,onPick:t}){return r(`div`,{class:`assistant-form__choices`,role:`listbox`,"aria-label":e.name,children:groupsOf(e.values).map((n,i)=>r(`div`,{role:`presentation`,class:`assistant-form__group`,children:[n.name&&r(`div`,{class:`assistant-form__subheading type-help`,role:`presentation`,children:n.name}),n.values.map(n=>{let i=n.id===e.current;return r(`button`,{type:`button`,role:`option`,"aria-selected":i,"data-nav":`item`,"data-current":i?`true`:void 0,class:`assistant-form__item type-body`,onClick:()=>t(e,n.id),children:[r(`span`,{class:`assistant-form__check`,"aria-hidden":`true`,children:i&&r(f,{name:`check`})}),r(`span`,{class:`assistant-form__text`,children:[r(`span`,{class:`assistant-form__name`,children:n.name}),n.description&&r(`span`,{class:`assistant-form__description type-help`,children:n.description})]})]},n.id)})]},`${n.name??``}:${i}`))})}function navigate(e,t){let n=document.activeElement,r=Array.from(e.querySelectorAll(`[data-nav]`)),i=n?r.indexOf(n):-1;if(i<0)return!1;if(n?.dataset.nav===`segment`&&(t===`ArrowRight`||t===`ArrowLeft`)){let e=Array.from(n.parentElement?.querySelectorAll(`[data-nav="segment"]`)??[]);return e[(e.indexOf(n)+(t===`ArrowRight`?1:-1)+e.length)%e.length]?.focus(),!0}return t!==`ArrowDown`&&t!==`ArrowUp`?!1:(r[(i+(t===`ArrowDown`?1:-1)+r.length)%r.length]?.focus(),!0)}function listLimit(e,t){return Math.max(H,Math.min(V,Math.round(e-t-W-U)))}function AgentSettings({store:s,state:c,editor:l,chat:u,agentId:p,options:m,busy:h,started:g}){let _=n(null),v=n(null),y=n(null),[b,x]=e(!1),[S,C]=e(G),[w,T]=e(V),E=settingsOf(m),D=c.choices.find(e=>e.id===p),O=c.choices.filter(e=>e.available),k=D?.name??(p===``?o(`app.assistant.input.noAgent`):p),A=O.length===0&&c.canManageAgents,j=settingsLabel(E),M=[E.model,E.level,E.mode].filter(e=>e!==null),N=S.kind===`option`?M.find(e=>e.id===S.id)??null:null,close=()=>{x(!1),C(G)},back=()=>{C(G)},drill=e=>{y.current=document.activeElement,C(e)},pick=(e,t)=>{t!==e.current&&s.pickOption(l,u,e,t)},pickFromList=(e,t)=>{pick(e,t),back()},chooseAgent=e=>{e!==p&&s.changeAgent(l,e),back()},manage=()=>{close(),s.onManageAgents?.()};i(()=>{if(!b||S.kind===`rows`||!_.current)return;let e=_.current.closest(`.editor-canvas`);T(listLimit(_.current.getBoundingClientRect().top,e?e.getBoundingClientRect().top:0))},[b,S]),a(()=>{if(!b)return;let e=v.current;if(e){if(S.kind===`rows`){let t=y.current&&e.contains(y.current)?y.current:e.querySelector(`[data-nav]`);y.current=null,t?.focus()}else(e.querySelector(`[data-current="true"]`)??e.querySelector(`[data-nav="item"]:not(.assistant-form__back)`))?.focus()}},[b,S]);let P=S.kind===`agent`?o(`app.assistant.form.agent`):N?.name??``;return r(t,{children:[r(`button`,{ref:_,type:`button`,class:`assistant-settings type-body`,title:j===``?k:`${k}: ${j}`,"aria-label":j===``?k:o(`app.assistant.input.settingsLabel`,{agent:k,settings:j}),"aria-haspopup":A?void 0:`dialog`,"aria-expanded":A?void 0:b,onClick:()=>A?s.onManageAgents?.():b?close():x(!0),children:[r(AgentLogo,{name:k,icon:D?.icon}),j!==``&&r(`span`,{class:`assistant-settings__label`,children:j})]}),b&&r(d,{anchor:_.current,label:o(`app.assistant.form.title`),onClose:close,onEscape:()=>S.kind!==`rows`&&(back(),!0),width:320,class:`assistant-form`,children:[r(`div`,{ref:v,class:`assistant-form__body`,"data-view":S.kind,style:{"--assistant-form-list":`${w}px`},onKeyDown:e=>{let t=e.currentTarget;/^Arrow/.test(e.key)&&navigate(t,e.key)&&e.preventDefault()},children:[S.kind===`rows`&&r(t,{children:[r(Row,{label:o(`app.assistant.form.agent`),children:r(Select,{label:o(`app.assistant.form.agent`),text:k,logo:r(AgentLogo,{name:k,icon:D?.icon}),onOpen:()=>drill({kind:`agent`})})}),M.map(e=>{let t=rowName(e);return r(Row,{label:e.name,children:e.category!==`model`&&isSegmented(e)?r(Segmented,{option:e,onPick:pick}):r(Select,{label:e.name,text:t,onOpen:()=>drill({kind:`option`,id:e.id})})},e.id)}),h&&M.length>0&&r(`p`,{class:`assistant-form__note type-help`,children:o(`app.assistant.input.optionNextTurn`)})]}),S.kind!==`rows`&&r(t,{children:[r(`header`,{class:`assistant-form__head`,children:[r(`button`,{type:`button`,class:`assistant-form__back`,"data-nav":`item`,"aria-label":o(`app.assistant.form.back`),title:o(`app.assistant.form.back`),onClick:back,children:r(f,{name:`chevronLeft`})}),r(`h3`,{class:`assistant-form__title type-section-heading`,children:P})]}),r(`div`,{class:`assistant-form__scroll`,children:[S.kind===`agent`&&r(t,{children:[r(`div`,{class:`assistant-form__choices`,role:`listbox`,"aria-label":o(`app.assistant.form.agent`),children:O.map(e=>r(`button`,{type:`button`,role:`option`,"aria-selected":e.id===p,"data-nav":`item`,"data-current":e.id===p?`true`:void 0,class:`assistant-form__item type-body`,onClick:()=>chooseAgent(e.id),children:[r(`span`,{class:`assistant-form__check`,"aria-hidden":`true`,children:e.id===p&&r(f,{name:`check`})}),r(AgentLogo,{name:e.name,icon:e.icon}),r(`span`,{class:`assistant-form__text`,children:r(`span`,{class:`assistant-form__name`,children:e.name})})]},e.id))}),g&&r(`p`,{class:`assistant-form__note type-help`,children:o(`app.assistant.form.agentNew`)})]}),N&&r(OptionList,{option:N,onPick:pickFromList})]})]})]}),c.canManageAgents&&S.kind===`rows`&&r(`div`,{class:`assistant-form__foot`,children:r(`button`,{type:`button`,"data-nav":`item`,class:`assistant-form__manage type-body`,onClick:manage,children:o(`app.assistant.form.manage`)})})]})]})}export{aiChatPlaceOf as _,useTick as a,getAssistant as c,mentionKey as d,optionsFor as f,registerAgentsOpener as g,openAgentsScreen as h,ago as i,installOpenChat as l,pathsMatch as m,OptionList as n,aiChatOn as o,baseName as p,AgentLogo as r,createAssistant as s,AgentSettings as t,setAssistant as u,aiChatSurfaces as v};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./rolldown-runtime-B8BYMn-z.js";import{c as e,h as t,i as n,o as r,r as i,u as a}from"./vendor-NJP34MHU.js";import{i as o}from"./translator-Dt_jCGPm.js";import{t as s}from"./bridgeInstance-DzSjLJAc.js";import{a as c,c as l,i as u,n as d,r as f}from"./AgentSettings-B_c5K0Hd.js";import{c as p,f as m,l as h,n as g,p as _,r as v,s as y}from"./ui-DDJuNJWb.js";var b=`general`,x=700,S=1e4,C=4;function matches(e,t){let n=t.trim().toLowerCase();return n===``||`${e.name} ${e.id} ${e.description}`.toLowerCase().includes(n)}function sections(e){let t=(e.catalog?.agents??[]).filter(t=>matches(t,e.query)),running=e=>e.enabled&&e.installed;return{on:t.filter(running),rest:t.filter(e=>!running(e))}}var AgentsStore=class{state={status:`loading`,failure:null,catalog:null,refreshing:!1,query:``,selected:null,errors:{}};listeners=new Set;host;options;polling=!1;disposed=!1;started=null;constructor(e,t={}){this.host=e,this.options=t}snapshot=()=>this.state;subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});commit(e){this.state={...this.state,...e};for(let e of[...this.listeners])try{e()}catch(e){console.error(`An agents listener failed:`,e)}}describe(e){return this.options.describe?this.options.describe(e):e instanceof Error?e.message:String(e)}start(){return this.started??=this.load(!0),this.started}reload(){return this.load(!1)}async load(e){try{let t=await this.host.catalog();if(this.disposed)return;this.commit({status:`ready`,failure:null,catalog:t,selected:this.state.selected??defaultSelection(t)}),this.watch(t),e&&t.stale&&this.refresh()}catch(e){if(this.disposed)return;this.commit({status:this.state.catalog?`ready`:`failed`,failure:this.describe(e)})}}async refresh(){if(!this.state.refreshing){this.commit({refreshing:!0});try{let e=await this.host.refresh();if(this.disposed)return;this.commit({status:`ready`,failure:null,refreshing:!1,catalog:e,selected:this.state.selected??defaultSelection(e)}),this.watch(e)}catch(e){if(this.disposed)return;this.commit({refreshing:!1,failure:this.describe(e),status:this.state.catalog?`ready`:`failed`})}}}select(e){this.commit({selected:e})}search(e){this.commit({query:e})}setError(e,t){let n={...this.state.errors};t===null?delete n[e]:n[e]=t,this.commit({errors:n})}replace(e){let t=this.state.catalog;if(!t)return;let n=t.agents.map(t=>t.id===e.id?e:t),r={...t,agents:n,busy:t.busy||e.job?.state===`running`};this.commit({catalog:r}),this.watch(r)}async act(e,t){this.setError(e,null);try{this.replace(await t()),this.options.changed?.()}catch(t){if(this.disposed)return;this.setError(e,this.describe(t)),this.load(!1)}}install(e){return this.act(e,()=>this.host.install(e))}uninstall(e){return this.act(e,()=>this.host.uninstall(e))}turn(e,t){return this.act(e,()=>this.host.turn(e,t))}refreshModels(e){return this.act(e,()=>this.host.refreshModels(e))}choose(e,t,n){return this.act(e,()=>this.host.choose(e,t,n))}watch(e){!e.busy||this.polling||this.disposed||(this.polling=!0,(async()=>{let e=0;try{for(;!this.disposed;){let t=Math.min((this.options.pollMs??x)*2**e,S);if(await(this.options.wait?this.options.wait(t):new Promise(e=>setTimeout(e,t))),this.disposed)return;let n;try{n=await this.host.catalog()}catch(t){e=Math.min(e+1,C),this.commit({failure:this.describe(t)});continue}if(this.disposed||(e=0,this.commit({catalog:n,failure:null}),!n.busy))return}}finally{this.polling=!1}})())}dispose(){this.disposed=!0,this.listeners.clear()}};function defaultSelection(e){return e.agents.find(e=>e.enabled&&e.installed)?.id??`general`}var w=280;function ValueSelect({id:r,option:a,chosen:s,onChoose:c}){let l=n(null),[u,f]=e(!1),m=a.values.find(e=>e.id===a.current)?.name??a.current,h=[{id:``,name:o(`app.agents.modelsOwn`,{value:m}),description:null,group:null},...a.values.map(e=>({id:e.id,name:e.name,description:null,group:null}))],_=h.find(e=>e.id===s)?.name??s,v={id:a.id,name:a.name,description:null,category:a.category??a.id,current:s,values:h};return i(t,{children:[i(`button`,{ref:l,id:r,type:`button`,class:`assistant-form__select type-body agents-select`,"aria-haspopup":`listbox`,"aria-expanded":u,onClick:()=>f(e=>!e),children:[i(`span`,{class:`assistant-form__select-text`,children:_}),i(g,{name:`chevronDown`,class:`assistant-form__select-chevron`})]}),u&&i(p,{anchor:l.current,label:a.name,onClose:()=>f(!1),width:320,class:`assistant-form`,children:i(`div`,{class:`assistant-form__scroll`,style:{"--assistant-form-list":`${w}px`},children:i(d,{option:v,onPick:(e,t)=>{f(!1),c(t===``?null:t)}})})})]})}var T=`https://nodejs.org/en/download`,E=`https://docs.astral.sh/uv/getting-started/installation/`,D=[`off`,`bottom`,`sidebar`],O={off:`app.agents.aiChatOff`,bottom:`app.agents.aiChatBottom`,sidebar:`app.agents.aiChatSidebar`},k={off:`app.agents.aiChatOffHelp`,bottom:`app.agents.aiChatBottomHelp`,sidebar:`app.agents.aiChatSidebarHelp`};function openLink(e){s().openExternalLink(e).catch(()=>void 0)}function reasonText(e){let t=o(e.key,e.params);return t===e.key?e.detail===``?o(`app.agents.reason.unknown`):e.detail:e.detail===``?t:`${t} ${e.detail}`}function stateWord(e){if(e.job?.state===`running`){if(e.job.kind===`install`)return e.job.percent===null?o(`app.agents.state.installing`):o(`app.agents.state.installingPercent`,{percent:e.job.percent});if(e.job.kind===`models`)return o(`app.agents.state.reading`)}return e.job?.state===`failed`&&e.job.kind!==`models`?o(`app.agents.state.failed`):e.updateAvailable?o(`app.agents.state.update`):e.enabled&&e.installed?o(`app.agents.state.on`):e.installed?o(`app.agents.state.installed`):``}function Row({agent:e,selected:t,onSelect:n}){let r=stateWord(e);return i(`button`,{type:`button`,role:`option`,"aria-selected":t,tabIndex:t?0:-1,"data-id":e.id,class:`agents-row type-body`,onClick:n,children:[i(f,{icon:e.icon,name:e.name}),i(`span`,{class:`agents-row__name`,children:e.name}),r!==``&&i(`span`,{class:`agents-row__state type-help${e.enabled&&e.installed?` is-on`:``}${e.job?.state===`failed`?` is-failed`:``}`,children:r})]})}function GeneralRow({selected:e,onSelect:t}){return i(`button`,{type:`button`,role:`option`,"aria-selected":e,tabIndex:e?0:-1,"data-id":b,class:`agents-row type-body`,onClick:t,children:[i(`span`,{class:`agents-general-icon`,"aria-hidden":`true`}),i(`span`,{class:`agents-row__name`,children:o(`app.agents.general`)})]})}function General({preferences:e}){let t=c(e.subscribe,e.aiChat);return i(`div`,{class:`agents-general`,children:i(`section`,{class:`agents-group`,"aria-labelledby":`agents-chat`,children:[i(`h3`,{id:`agents-chat`,class:`agents-group__heading type-section-heading`,children:o(`app.agents.aiChat`)}),i(`div`,{role:`radiogroup`,"aria-labelledby":`agents-chat`,class:`agents-group__choices`,children:D.map(n=>i(`div`,{children:[i(`label`,{class:`agents-check type-body`,children:[i(`input`,{type:`radio`,name:`agents-chat`,value:n,checked:t===n,"aria-describedby":`agents-chat-${n}`,onChange:()=>e.setAiChat(n)}),i(`span`,{children:o(O[n])})]}),i(`p`,{id:`agents-chat-${n}`,class:`agents-group__help type-help`,children:o(k[n])})]},n))})]})})}function Blocked({agent:e,node:n,uv:r}){if(e.blocked===null)return null;let a=e.blocked===`node`&&!n?T:e.blocked===`uv`&&!r?E:null;return i(`p`,{class:`agents-note type-help`,children:[o(`app.agents.blocked.${e.blocked}`),a&&i(t,{children:[` `,i(`a`,{class:`agents-link`,href:a,onClick:e=>{e.preventDefault(),openLink(a)},children:o(e.blocked===`node`?`app.agents.blocked.nodeLink`:`app.agents.blocked.uvLink`)})]})]})}function Progress({percent:e}){return i(`div`,{class:`agents-progress`,role:`progressbar`,"aria-label":o(`app.agents.state.installing`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e??void 0,children:i(`span`,{class:`agents-progress__bar${e===null?` is-unknown`:``}`,style:e===null?void 0:{width:`${e}%`}})})}function Models({store:e,agent:n,error:r}){let a=n.job?.kind===`models`&&n.job.state===`running`,s=n.job?.kind===`models`&&n.job.state===`failed`?n.job.error:null,c=n.options,l=c&&c.readAt!==``&&Number.isFinite(Date.parse(c.readAt))?u(Date.parse(c.readAt)):null;return i(`section`,{class:`agents-group`,"aria-labelledby":`agents-models-${n.id}`,children:[i(`div`,{class:`agents-group__head`,children:[i(`h3`,{id:`agents-models-${n.id}`,class:`agents-group__heading type-section-heading`,children:o(`app.agents.models`)}),i(`button`,{type:`button`,class:`ui-button type-button agents-refresh`,disabled:a,onClick:()=>void e.refreshModels(n.id),children:[a&&i(v,{}),i(`span`,{children:o(a?`app.agents.modelsReading`:`app.agents.modelsRefresh`)})]})]}),c===null&&!a&&!s&&i(t,{children:[i(`p`,{class:`agents-note type-body`,children:o(`app.agents.modelsEmpty`)}),i(`p`,{class:`agents-note type-help`,children:o(`app.agents.modelsEmptyHint`)})]}),c?.options.map(t=>{let r=t.category??t.id;return i(h,{label:t.name,children:a=>i(ValueSelect,{id:a.id,option:t,chosen:n.chosen[r]??``,onChoose:t=>void e.choose(n.id,r,t)})},t.id)}),l!==null&&!a&&i(`p`,{class:`agents-note type-help`,children:o(`app.agents.modelsRead`,{time:l})}),s&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:[reasonText(s),s.key===`app.agent.authRequired`&&i(`span`,{class:`agents-note__more type-help`,children:o(`app.agents.signInHint`)})]}),r&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:r})]})}function Detail({store:e,agent:n,state:r}){let a=r.catalog,s=n.job?.kind===`install`&&n.job.state===`running`,c=n.job?.state===`failed`&&n.job.kind!==`models`?n.job.error:null,l=r.errors[n.id]??null,u=!n.installed&&n.how!==`none`&&n.how!==`custom`&&n.blocked===null,d=n.installed&&(n.installedVia===`download`||n.installedVia===`package`);return i(`div`,{class:`agents-detail__page`,children:[i(`header`,{class:`agents-detail__head`,children:[i(f,{icon:n.icon,name:n.name,size:20}),i(`h2`,{class:`agents-detail__name type-dialog-title`,children:n.name}),n.version&&i(`span`,{class:`agents-detail__version type-help`,children:o(`app.agents.version`,{version:n.version})})]}),n.description!==``&&i(`p`,{class:`agents-detail__text type-body`,children:n.description}),i(`dl`,{class:`agents-meta type-help`,children:[n.license&&i(t,{children:[i(`dt`,{children:o(`app.agents.license`)}),i(`dd`,{children:n.license})]}),n.website&&i(t,{children:[i(`dt`,{children:o(`app.agents.website`)}),i(`dd`,{children:i(`a`,{class:`agents-link`,href:n.website,onClick:e=>{e.preventDefault(),openLink(n.website)},children:n.website})})]}),n.repository&&n.repository!==n.website&&i(t,{children:[i(`dt`,{children:o(`app.agents.repository`)}),i(`dd`,{children:i(`a`,{class:`agents-link`,href:n.repository,onClick:e=>{e.preventDefault(),openLink(n.repository)},children:n.repository})})]}),i(`dt`,{children:o(`app.agents.status`)}),i(`dd`,{children:n.installed?`${o(`app.agents.via.${n.installedVia??`path`}`)}${n.installedVersion?` · ${o(`app.agents.version`,{version:n.installedVersion})}`:``}`:n.how===`none`?o(`app.agents.cannotInstall`):o(`app.agents.how.${n.how}`)})]}),i(`div`,{class:`agents-actions`,children:[u&&!s&&i(`button`,{type:`button`,class:`ui-button ui-button--primary type-button`,onClick:()=>void e.install(n.id),children:o(c?`app.agents.tryAgain`:`app.agents.install`)}),s&&i(`button`,{type:`button`,class:`ui-button type-button`,disabled:!0,children:[i(v,{}),i(`span`,{children:o(`app.agents.state.installing`)})]}),n.installed&&!s&&n.updateAvailable&&d&&i(`button`,{type:`button`,class:`ui-button type-button`,onClick:()=>void e.install(n.id),children:o(`app.agents.update`)}),n.installed&&!s&&i(`button`,{type:`button`,class:`ui-button type-button${n.enabled?``:` ui-button--primary`}`,onClick:()=>void e.turn(n.id,!n.enabled),children:n.enabled?o(`app.agents.turnOff`):o(`app.agents.turnOn`)}),d&&!s&&i(`button`,{type:`button`,class:`ui-button ui-button--quiet ui-button--danger type-button`,onClick:()=>void e.uninstall(n.id),children:o(`app.agents.uninstall`)})]}),s&&i(Progress,{percent:n.job?.percent??null}),!n.installed&&a&&i(Blocked,{agent:n,node:a.node,uv:a.uv}),!n.installed&&n.blocked!==null&&n.install&&i(`p`,{class:`agents-note type-help`,children:[o(`app.agents.byHand`),` `,i(`code`,{class:`type-code`,children:n.install})]}),c&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:reasonText(c)}),l&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:l}),n.installed&&i(Models,{store:e,agent:n,error:null})]})}function ListFoot({store:e,state:t}){let n=t.catalog,r=n?.updated&&Number.isFinite(Date.parse(n.updated))?u(Date.parse(n.updated)):null,a=t.failure??(n?.refreshError?reasonText(n.refreshError):null);return i(`footer`,{class:`agents-list__foot`,children:[i(`p`,{class:`agents-list__updated type-help`,role:`status`,children:t.refreshing?o(`app.agents.updating`):r===null?o(`app.agents.neverUpdated`):n?.source===`snapshot`?o(`app.agents.updatedSnapshot`,{time:r}):o(`app.agents.updated`,{time:r})}),a&&!t.refreshing&&i(`p`,{class:`agents-list__problem type-warning-message`,children:a}),i(`button`,{type:`button`,class:`ui-button type-button agents-refresh`,disabled:t.refreshing,onClick:()=>void e.refresh(),children:[t.refreshing&&i(v,{}),i(`span`,{children:o(`app.agents.refresh`)})]})]})}function AgentsScreen({store:t,preferences:r}){let s=c(t.subscribe,t.snapshot),l=n(null),u=n(null),d=n(!1),[f,p]=e(null);a(()=>{t.start()},[t]),a(()=>{if(s.status!==`ready`||d.current)return;d.current=!0;let e=document.activeElement;(!e||e===document.body||e.classList.contains(`ui-dialog__close`)||e.classList.contains(`ui-dialog`))&&u.current?.focus()},[s.status]),a(()=>{f!==null&&(l.current?.querySelector(`[data-id="${CSS.escape(f)}"]`)?.focus(),p(null))},[f]);let{on:m,rest:h}=sections(s),g=[b,...m.map(e=>e.id),...h.map(e=>e.id)],_=s.selected??`general`,x=s.catalog?.agents.find(e=>e.id===_)??null,move=e=>{let n=e.key===`ArrowDown`?1:e.key===`ArrowUp`?-1:0,r=e.key===`Home`?0:e.key===`End`?g.length-1:null;if(n===0&&r===null)return;e.preventDefault();let i=g.indexOf(_),a=r??Math.min(g.length-1,Math.max(0,(i<0?0:i)+n));g[a]!==void 0&&(t.select(g[a]),p(g[a]))};return s.status===`loading`?i(`div`,{class:`agents-screen is-loading`,role:`status`,children:[i(v,{}),i(`span`,{class:`type-help`,children:o(`app.agents.loading`)})]}):s.status===`failed`||!s.catalog?i(`div`,{class:`agents-screen is-empty`,children:i(y,{title:o(`app.agents.failed.title`),hint:s.failure??o(`app.agents.failed.hint`),actions:[{label:o(`app.assistant.tryAgain`),run:()=>void t.reload()}]})}):i(`div`,{class:`agents-screen`,children:[i(`nav`,{class:`agents-list`,"aria-label":o(`app.agents.list`),children:[i(`input`,{ref:u,type:`search`,class:`agents-list__search type-input`,value:s.query,placeholder:o(`app.agents.search`),"aria-label":o(`app.agents.search`),onInput:e=>t.search(e.currentTarget.value)}),i(`div`,{ref:l,class:`agents-list__scroll`,role:`listbox`,"aria-label":o(`app.agents.list`),onKeyDown:move,children:[i(GeneralRow,{selected:_===b,onSelect:()=>t.select(b)}),i(`h3`,{class:`agents-list__heading type-section-heading`,children:o(`app.agents.on`)}),m.length===0&&(s.query===``||h.length===0)&&i(`p`,{class:`agents-list__none type-help`,children:s.query===``?o(`app.agents.noneOn`):o(`app.agents.noMatch`)}),m.map(e=>i(Row,{agent:e,selected:_===e.id,onSelect:()=>t.select(e.id)},e.id)),i(`h3`,{class:`agents-list__heading type-section-heading`,children:o(`app.agents.all`)}),h.length===0&&m.length>0&&i(`p`,{class:`agents-list__none type-help`,children:o(`app.agents.allShown`)}),h.length===0&&m.length===0&&s.query!==``&&i(`p`,{class:`agents-list__none type-help`,children:o(`app.agents.noMatch`)}),h.map(e=>i(Row,{agent:e,selected:_===e.id,onSelect:()=>t.select(e.id)},e.id))]}),i(ListFoot,{store:t,state:s})]}),i(`section`,{class:`agents-detail`,"aria-label":x?.name??o(`app.agents.general`),children:_===`general`||x===null?i(General,{preferences:r}):i(Detail,{store:t,agent:x,state:s})})]})}function AgentsDialog({host:e,preferences:t,onClose:n}){let s=r(()=>new AgentsStore(e,{changed:()=>void l()?.resync()}),[e]);return a(()=>()=>s.dispose(),[s]),i(m,{title:o(`app.agents.title`),size:`large`,body:`split`,class:`agents-dialog`,onClose:n,footer:i(_,{actions:[{id:`done`,label:o(`app.common.done`),role:`primary`,onClick:n}]}),children:i(AgentsScreen,{store:s,preferences:t})})}export{AgentsDialog};
|