@agent-link/server 0.1.354 → 0.1.356

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/dist/encryption.js +13 -0
  2. package/dist/encryption.js.map +1 -1
  3. package/dist/http.js +7 -3
  4. package/dist/http.js.map +1 -1
  5. package/dist/index.js +2 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/json-worker.d.ts +1 -0
  8. package/dist/json-worker.js +96 -0
  9. package/dist/json-worker.js.map +1 -0
  10. package/dist/message-relay.js +10 -1
  11. package/dist/message-relay.js.map +1 -1
  12. package/dist/session-manager.d.ts +2 -0
  13. package/dist/session-manager.js +30 -9
  14. package/dist/session-manager.js.map +1 -1
  15. package/dist/state-persistence.d.ts +9 -0
  16. package/dist/state-persistence.js +67 -7
  17. package/dist/state-persistence.js.map +1 -1
  18. package/dist/worker-pool.d.ts +14 -0
  19. package/dist/worker-pool.js +137 -0
  20. package/dist/worker-pool.js.map +1 -0
  21. package/package.json +2 -2
  22. package/web/dist/assets/{cssMode-CvtRf8ik.js → cssMode-Bwt3Nikz.js} +1 -1
  23. package/web/dist/assets/{editor.main-Dxfe1oPc.js → editor.main-D3OeexuM.js} +3 -3
  24. package/web/dist/assets/{freemarker2-CPtv7jKr.js → freemarker2-BPgG8rPV.js} +1 -1
  25. package/web/dist/assets/{handlebars-3s5P_czS.js → handlebars-D4KL215f.js} +1 -1
  26. package/web/dist/assets/{html-ec6iAqLS.js → html-k1jJdiks.js} +1 -1
  27. package/web/dist/assets/{htmlMode-Cia9jM9v.js → htmlMode-C6mnc_kw.js} +1 -1
  28. package/web/dist/assets/index-CN-QhK02.css +1 -0
  29. package/web/dist/assets/{index-C6O7KMd1.js → index-NKpYs0Ew.js} +7 -7
  30. package/web/dist/assets/{javascript--qohek8p.js → javascript-hG7aYraE.js} +1 -1
  31. package/web/dist/assets/{jsonMode-BTdfsfFh.js → jsonMode-Czv2JQtz.js} +1 -1
  32. package/web/dist/assets/{liquid-CzbVBOlg.js → liquid-E6E3rxVj.js} +1 -1
  33. package/web/dist/assets/{lspLanguageFeatures-B2Cm6wjs.js → lspLanguageFeatures-DPfu7xeZ.js} +1 -1
  34. package/web/dist/assets/{mdx-Cjr_8xQU.js → mdx-BPSgy9UN.js} +1 -1
  35. package/web/dist/assets/{python-C9D8YDyf.js → python-CDooYa57.js} +1 -1
  36. package/web/dist/assets/{razor-CfkGc1YD.js → razor-DcbDdNr2.js} +1 -1
  37. package/web/dist/assets/{tsMode-BrvXH7K3.js → tsMode-CWkEUZtH.js} +1 -1
  38. package/web/dist/assets/{typescript-C38sLfTZ.js → typescript-DbqazjVU.js} +1 -1
  39. package/web/dist/assets/{xml-WukFSM2r.js → xml-CYa24LBB.js} +1 -1
  40. package/web/dist/assets/{yaml-C1YNeyj8.js → yaml-oI6xmrQo.js} +1 -1
  41. package/web/dist/icons/default_file.svg +1 -0
  42. package/web/dist/icons/default_folder.svg +1 -0
  43. package/web/dist/icons/default_folder_opened.svg +1 -0
  44. package/web/dist/icons/default_root_folder.svg +1 -0
  45. package/web/dist/icons/default_root_folder_opened.svg +1 -0
  46. package/web/dist/icons/file_type_arduino.svg +1 -0
  47. package/web/dist/icons/file_type_bat.svg +1 -0
  48. package/web/dist/icons/file_type_browserslist.svg +1 -0
  49. package/web/dist/icons/file_type_c.svg +1 -0
  50. package/web/dist/icons/file_type_cheader.svg +1 -0
  51. package/web/dist/icons/file_type_cpp.svg +1 -0
  52. package/web/dist/icons/file_type_csharp.svg +1 -0
  53. package/web/dist/icons/file_type_css.svg +1 -0
  54. package/web/dist/icons/file_type_dartlang.svg +1 -0
  55. package/web/dist/icons/file_type_docker.svg +1 -0
  56. package/web/dist/icons/file_type_editorconfig.svg +1 -0
  57. package/web/dist/icons/file_type_elixir.svg +1 -0
  58. package/web/dist/icons/file_type_elm.svg +1 -0
  59. package/web/dist/icons/file_type_erlang.svg +1 -0
  60. package/web/dist/icons/file_type_eslint.svg +1 -0
  61. package/web/dist/icons/file_type_fsharp.svg +1 -0
  62. package/web/dist/icons/file_type_git.svg +1 -0
  63. package/web/dist/icons/file_type_go.svg +1 -0
  64. package/web/dist/icons/file_type_go_package.svg +1 -0
  65. package/web/dist/icons/file_type_haskell.svg +1 -0
  66. package/web/dist/icons/file_type_html.svg +1 -0
  67. package/web/dist/icons/file_type_image.svg +1 -0
  68. package/web/dist/icons/file_type_java.svg +1 -0
  69. package/web/dist/icons/file_type_jest.svg +1 -0
  70. package/web/dist/icons/file_type_jupyter.svg +1 -0
  71. package/web/dist/icons/file_type_kotlin.svg +1 -0
  72. package/web/dist/icons/file_type_less.svg +1 -0
  73. package/web/dist/icons/file_type_light_babel.svg +1 -0
  74. package/web/dist/icons/file_type_light_config.svg +1 -0
  75. package/web/dist/icons/file_type_light_ini.svg +1 -0
  76. package/web/dist/icons/file_type_light_js.svg +1 -0
  77. package/web/dist/icons/file_type_light_json.svg +1 -0
  78. package/web/dist/icons/file_type_light_pnpm.svg +1 -0
  79. package/web/dist/icons/file_type_light_prettier.svg +1 -0
  80. package/web/dist/icons/file_type_light_prisma.svg +1 -0
  81. package/web/dist/icons/file_type_light_rust.svg +1 -0
  82. package/web/dist/icons/file_type_light_toml.svg +1 -0
  83. package/web/dist/icons/file_type_light_yaml.svg +1 -0
  84. package/web/dist/icons/file_type_log.svg +1 -0
  85. package/web/dist/icons/file_type_lua.svg +1 -0
  86. package/web/dist/icons/file_type_markdown.svg +1 -0
  87. package/web/dist/icons/file_type_nim.svg +1 -0
  88. package/web/dist/icons/file_type_npm.svg +1 -0
  89. package/web/dist/icons/file_type_perl.svg +1 -0
  90. package/web/dist/icons/file_type_php.svg +1 -0
  91. package/web/dist/icons/file_type_powershell.svg +1 -0
  92. package/web/dist/icons/file_type_python.svg +1 -0
  93. package/web/dist/icons/file_type_r.svg +1 -0
  94. package/web/dist/icons/file_type_reactjs.svg +1 -0
  95. package/web/dist/icons/file_type_reactts.svg +1 -0
  96. package/web/dist/icons/file_type_rollup.svg +1 -0
  97. package/web/dist/icons/file_type_ruby.svg +1 -0
  98. package/web/dist/icons/file_type_sass.svg +1 -0
  99. package/web/dist/icons/file_type_scala.svg +1 -0
  100. package/web/dist/icons/file_type_scss.svg +1 -0
  101. package/web/dist/icons/file_type_shell.svg +1 -0
  102. package/web/dist/icons/file_type_sql.svg +1 -0
  103. package/web/dist/icons/file_type_svg.svg +1 -0
  104. package/web/dist/icons/file_type_swift.svg +1 -0
  105. package/web/dist/icons/file_type_terraform.svg +1 -0
  106. package/web/dist/icons/file_type_text.svg +1 -0
  107. package/web/dist/icons/file_type_tsconfig.svg +1 -0
  108. package/web/dist/icons/file_type_typescript.svg +1 -0
  109. package/web/dist/icons/file_type_verilog.svg +1 -0
  110. package/web/dist/icons/file_type_vite.svg +1 -0
  111. package/web/dist/icons/file_type_vue.svg +1 -0
  112. package/web/dist/icons/file_type_wasm.svg +1 -0
  113. package/web/dist/icons/file_type_webpack.svg +1 -0
  114. package/web/dist/icons/file_type_xml.svg +1 -0
  115. package/web/dist/icons/file_type_yarn.svg +1 -0
  116. package/web/dist/icons/file_type_zig.svg +1 -0
  117. package/web/dist/icons/folder_type_api.svg +1 -0
  118. package/web/dist/icons/folder_type_api_opened.svg +1 -0
  119. package/web/dist/icons/folder_type_asset.svg +1 -0
  120. package/web/dist/icons/folder_type_asset_opened.svg +1 -0
  121. package/web/dist/icons/folder_type_binary.svg +1 -0
  122. package/web/dist/icons/folder_type_binary_opened.svg +1 -0
  123. package/web/dist/icons/folder_type_cli.svg +1 -0
  124. package/web/dist/icons/folder_type_cli_opened.svg +1 -0
  125. package/web/dist/icons/folder_type_component.svg +1 -0
  126. package/web/dist/icons/folder_type_component_opened.svg +1 -0
  127. package/web/dist/icons/folder_type_config.svg +1 -0
  128. package/web/dist/icons/folder_type_config_opened.svg +1 -0
  129. package/web/dist/icons/folder_type_controller.svg +1 -0
  130. package/web/dist/icons/folder_type_controller_opened.svg +1 -0
  131. package/web/dist/icons/folder_type_coverage.svg +1 -0
  132. package/web/dist/icons/folder_type_coverage_opened.svg +1 -0
  133. package/web/dist/icons/folder_type_css.svg +1 -0
  134. package/web/dist/icons/folder_type_css_opened.svg +1 -0
  135. package/web/dist/icons/folder_type_db.svg +1 -0
  136. package/web/dist/icons/folder_type_db_opened.svg +1 -0
  137. package/web/dist/icons/folder_type_dist.svg +1 -0
  138. package/web/dist/icons/folder_type_dist_opened.svg +1 -0
  139. package/web/dist/icons/folder_type_docs.svg +1 -0
  140. package/web/dist/icons/folder_type_docs_opened.svg +1 -0
  141. package/web/dist/icons/folder_type_git.svg +1 -0
  142. package/web/dist/icons/folder_type_git_opened.svg +1 -0
  143. package/web/dist/icons/folder_type_github.svg +1 -0
  144. package/web/dist/icons/folder_type_github_opened.svg +1 -0
  145. package/web/dist/icons/folder_type_helper.svg +1 -0
  146. package/web/dist/icons/folder_type_helper_opened.svg +1 -0
  147. package/web/dist/icons/folder_type_hook.svg +1 -0
  148. package/web/dist/icons/folder_type_hook_opened.svg +1 -0
  149. package/web/dist/icons/folder_type_images.svg +1 -0
  150. package/web/dist/icons/folder_type_images_opened.svg +1 -0
  151. package/web/dist/icons/folder_type_library.svg +1 -0
  152. package/web/dist/icons/folder_type_library_opened.svg +1 -0
  153. package/web/dist/icons/folder_type_light_fonts.svg +1 -0
  154. package/web/dist/icons/folder_type_light_fonts_opened.svg +1 -0
  155. package/web/dist/icons/folder_type_light_node.svg +1 -0
  156. package/web/dist/icons/folder_type_light_node_opened.svg +1 -0
  157. package/web/dist/icons/folder_type_locale.svg +1 -0
  158. package/web/dist/icons/folder_type_locale_opened.svg +1 -0
  159. package/web/dist/icons/folder_type_log.svg +1 -0
  160. package/web/dist/icons/folder_type_log_opened.svg +1 -0
  161. package/web/dist/icons/folder_type_middleware.svg +1 -0
  162. package/web/dist/icons/folder_type_middleware_opened.svg +1 -0
  163. package/web/dist/icons/folder_type_mock.svg +1 -0
  164. package/web/dist/icons/folder_type_mock_opened.svg +1 -0
  165. package/web/dist/icons/folder_type_model.svg +1 -0
  166. package/web/dist/icons/folder_type_model_opened.svg +1 -0
  167. package/web/dist/icons/folder_type_module.svg +1 -0
  168. package/web/dist/icons/folder_type_module_opened.svg +1 -0
  169. package/web/dist/icons/folder_type_package.svg +1 -0
  170. package/web/dist/icons/folder_type_package_opened.svg +1 -0
  171. package/web/dist/icons/folder_type_plugin.svg +1 -0
  172. package/web/dist/icons/folder_type_plugin_opened.svg +1 -0
  173. package/web/dist/icons/folder_type_public.svg +1 -0
  174. package/web/dist/icons/folder_type_public_opened.svg +1 -0
  175. package/web/dist/icons/folder_type_route.svg +1 -0
  176. package/web/dist/icons/folder_type_route_opened.svg +1 -0
  177. package/web/dist/icons/folder_type_script.svg +1 -0
  178. package/web/dist/icons/folder_type_script_opened.svg +1 -0
  179. package/web/dist/icons/folder_type_services.svg +1 -0
  180. package/web/dist/icons/folder_type_services_opened.svg +1 -0
  181. package/web/dist/icons/folder_type_src.svg +1 -0
  182. package/web/dist/icons/folder_type_src_opened.svg +1 -0
  183. package/web/dist/icons/folder_type_style.svg +1 -0
  184. package/web/dist/icons/folder_type_style_opened.svg +1 -0
  185. package/web/dist/icons/folder_type_temp.svg +1 -0
  186. package/web/dist/icons/folder_type_temp_opened.svg +1 -0
  187. package/web/dist/icons/folder_type_template.svg +1 -0
  188. package/web/dist/icons/folder_type_template_opened.svg +1 -0
  189. package/web/dist/icons/folder_type_test.svg +1 -0
  190. package/web/dist/icons/folder_type_test_opened.svg +1 -0
  191. package/web/dist/icons/folder_type_tools.svg +1 -0
  192. package/web/dist/icons/folder_type_tools_opened.svg +1 -0
  193. package/web/dist/icons/folder_type_view.svg +1 -0
  194. package/web/dist/icons/folder_type_view_opened.svg +1 -0
  195. package/web/dist/icons/folder_type_vscode.svg +1 -0
  196. package/web/dist/icons/folder_type_vscode_opened.svg +1 -0
  197. package/web/dist/index.html +2 -2
  198. package/web/dist/assets/index-DZznXrlM.css +0 -1
@@ -0,0 +1,137 @@
1
+ // Worker pool for offloading large message JSON parse/stringify + encryption.
2
+ // Pre-spawns a small number of Workers and dispatches tasks round-robin.
3
+ import { Worker } from 'worker_threads';
4
+ import { fileURLToPath } from 'url';
5
+ import { dirname, join } from 'path';
6
+ import tweetnaclUtil from 'tweetnacl-util';
7
+ const { encodeBase64 } = tweetnaclUtil;
8
+ const POOL_SIZE = 2;
9
+ const LARGE_MESSAGE_THRESHOLD = 1_000_000; // 1MB
10
+ let pool = null;
11
+ let nextId = 0;
12
+ let nextWorkerIdx = 0;
13
+ function getWorkerPath() {
14
+ const thisFile = fileURLToPath(import.meta.url);
15
+ const thisDir = dirname(thisFile);
16
+ // In dev/test, import.meta.url points to src/*.ts — resolve to dist/*.js
17
+ if (thisFile.endsWith('.ts')) {
18
+ return join(thisDir, '..', 'dist', 'json-worker.js');
19
+ }
20
+ return join(thisDir, 'json-worker.js');
21
+ }
22
+ function ensurePool() {
23
+ if (pool)
24
+ return pool;
25
+ pool = [];
26
+ const workerPath = getWorkerPath();
27
+ for (let i = 0; i < POOL_SIZE; i++) {
28
+ const worker = new Worker(workerPath);
29
+ const pw = { worker, pending: new Map(), busy: 0 };
30
+ worker.on('message', (msg) => {
31
+ const task = pw.pending.get(msg.id);
32
+ if (!task)
33
+ return;
34
+ pw.pending.delete(msg.id);
35
+ pw.busy--;
36
+ if (msg.error) {
37
+ task.reject(new Error(msg.error));
38
+ }
39
+ else {
40
+ task.resolve(msg.result);
41
+ }
42
+ });
43
+ worker.on('error', (err) => {
44
+ // Reject all pending tasks
45
+ for (const [, task] of pw.pending) {
46
+ task.reject(err instanceof Error ? err : new Error(String(err)));
47
+ }
48
+ pw.pending.clear();
49
+ pw.busy = 0;
50
+ });
51
+ pool.push(pw);
52
+ }
53
+ return pool;
54
+ }
55
+ function pickWorker() {
56
+ const workers = ensurePool();
57
+ // Round-robin, skip if too many pending (>10)
58
+ for (let i = 0; i < workers.length; i++) {
59
+ const idx = (nextWorkerIdx + i) % workers.length;
60
+ if (workers[idx].busy < 10) {
61
+ nextWorkerIdx = (idx + 1) % workers.length;
62
+ return workers[idx];
63
+ }
64
+ }
65
+ return null; // All workers busy — caller should fall back to inline
66
+ }
67
+ function dispatch(op, data, key) {
68
+ const pw = pickWorker();
69
+ if (!pw)
70
+ return Promise.reject(new Error('All workers busy'));
71
+ const id = nextId++;
72
+ const keyStr = key ? encodeBase64(key) : null;
73
+ return new Promise((resolve, reject) => {
74
+ pw.pending.set(id, { resolve, reject });
75
+ pw.busy++;
76
+ pw.worker.postMessage({ id, op, data, key: keyStr });
77
+ });
78
+ }
79
+ /** Check if a raw inbound message is large enough to offload to Worker. */
80
+ export function isLargeMessage(raw) {
81
+ return raw.length > LARGE_MESSAGE_THRESHOLD;
82
+ }
83
+ /** Check if an outbound message object is large enough to offload.
84
+ * Avoids JSON.stringify by checking known large-payload shapes (file attachments). */
85
+ export function isLargeOutbound(msg) {
86
+ if (!msg || typeof msg !== 'object')
87
+ return false;
88
+ const m = msg;
89
+ // Chat messages with file attachments
90
+ if (Array.isArray(m.files)) {
91
+ for (const f of m.files) {
92
+ if (f && typeof f === 'object' && typeof f.data === 'string') {
93
+ if (f.data.length > LARGE_MESSAGE_THRESHOLD)
94
+ return true;
95
+ }
96
+ }
97
+ }
98
+ // Generic large data/content fields
99
+ if (typeof m.data === 'string' && m.data.length > LARGE_MESSAGE_THRESHOLD)
100
+ return true;
101
+ if (typeof m.content === 'string' && m.content.length > LARGE_MESSAGE_THRESHOLD)
102
+ return true;
103
+ return false;
104
+ }
105
+ /** Parse a large message in a Worker thread. Falls back to inline on failure. */
106
+ export async function workerParseMessage(raw, sessionKey) {
107
+ try {
108
+ return await dispatch('parse', raw, sessionKey);
109
+ }
110
+ catch {
111
+ // Fallback: parse inline
112
+ return null;
113
+ }
114
+ }
115
+ /** Serialize+encrypt a large message in a Worker thread, then send via ws. */
116
+ export async function workerEncryptAndSend(ws, msg, sessionKey) {
117
+ try {
118
+ const serialized = await dispatch('serialize', msg, sessionKey);
119
+ if (ws.readyState === 1) {
120
+ ws.send(serialized);
121
+ }
122
+ }
123
+ catch (err) {
124
+ console.error('[workerEncryptAndSend] Worker failed, falling back to inline:', err.message);
125
+ // Fallback: do it inline
126
+ const { encryptAndSend } = await import('./encryption.js');
127
+ await encryptAndSend(ws, msg, sessionKey);
128
+ }
129
+ }
130
+ /** Shut down all workers. Call on server shutdown. */
131
+ export async function terminateWorkerPool() {
132
+ if (!pool)
133
+ return;
134
+ await Promise.all(pool.map(pw => pw.worker.terminate()));
135
+ pool = null;
136
+ }
137
+ //# sourceMappingURL=worker-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../src/worker-pool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agent-link/server",
3
- "version": "0.1.354",
4
- "latestAgentVersion": "0.1.172",
3
+ "version": "0.1.356",
4
+ "latestAgentVersion": "0.1.158",
5
5
  "description": "AgentLink relay server",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -1 +1 @@
1
- import{c as e,l as t}from"./editor.main-Dxfe1oPc.js";import{C as s,H as r,D as i,a as n,R as o,b as a,c as h,d as g,F as l,e as u,S as d,f as c,g as p}from"./lspLanguageFeatures-B2Cm6wjs.js";import{h as m,i as _,j as w,t as f,k}from"./lspLanguageFeatures-B2Cm6wjs.js";import"./index-C6O7KMd1.js";class v{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>12e4&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=e({moduleId:"vs/language/css/cssWorker",createWorker:()=>new Worker(new URL(""+new URL("css.worker-CqmadvsI.js",import.meta.url).href,import.meta.url),{type:"module"}),label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}}function I(e){const m=[],_=[],w=new v(e);m.push(w);const f=(...e)=>w.getLanguageServiceWorker(...e);return function(){const{languageId:m,modeConfiguration:w}=e;R(_),w.completionItems&&_.push(t.registerCompletionItemProvider(m,new s(f,["/","-",":"]))),w.hovers&&_.push(t.registerHoverProvider(m,new r(f))),w.documentHighlights&&_.push(t.registerDocumentHighlightProvider(m,new i(f))),w.definitions&&_.push(t.registerDefinitionProvider(m,new n(f))),w.references&&_.push(t.registerReferenceProvider(m,new o(f))),w.documentSymbols&&_.push(t.registerDocumentSymbolProvider(m,new a(f))),w.rename&&_.push(t.registerRenameProvider(m,new h(f))),w.colors&&_.push(t.registerColorProvider(m,new g(f))),w.foldingRanges&&_.push(t.registerFoldingRangeProvider(m,new l(f))),w.diagnostics&&_.push(new u(m,f,e.onDidChange)),w.selectionRanges&&_.push(t.registerSelectionRangeProvider(m,new d(f))),w.documentFormattingEdits&&_.push(t.registerDocumentFormattingEditProvider(m,new c(f))),w.documentRangeFormattingEdits&&_.push(t.registerDocumentRangeFormattingEditProvider(m,new p(f)))}(),m.push(P(_)),P(m)}function P(e){return{dispose:()=>R(e)}}function R(e){for(;e.length;)e.pop().dispose()}export{s as CompletionAdapter,n as DefinitionAdapter,u as DiagnosticsAdapter,g as DocumentColorAdapter,c as DocumentFormattingEditProvider,i as DocumentHighlightAdapter,m as DocumentLinkAdapter,p as DocumentRangeFormattingEditProvider,a as DocumentSymbolAdapter,l as FoldingRangeAdapter,r as HoverAdapter,o as ReferenceAdapter,h as RenameAdapter,d as SelectionRangeAdapter,v as WorkerManager,_ as fromPosition,w as fromRange,I as setupMode,f as toRange,k as toTextEdit};
1
+ import{c as e,l as t}from"./editor.main-D3OeexuM.js";import{C as s,H as r,D as i,a as n,R as o,b as a,c as h,d as g,F as l,e as u,S as d,f as c,g as p}from"./lspLanguageFeatures-DPfu7xeZ.js";import{h as m,i as _,j as w,t as f,k}from"./lspLanguageFeatures-DPfu7xeZ.js";import"./index-NKpYs0Ew.js";class v{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>12e4&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=e({moduleId:"vs/language/css/cssWorker",createWorker:()=>new Worker(new URL(""+new URL("css.worker-CqmadvsI.js",import.meta.url).href,import.meta.url),{type:"module"}),label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}}function I(e){const m=[],_=[],w=new v(e);m.push(w);const f=(...e)=>w.getLanguageServiceWorker(...e);return function(){const{languageId:m,modeConfiguration:w}=e;R(_),w.completionItems&&_.push(t.registerCompletionItemProvider(m,new s(f,["/","-",":"]))),w.hovers&&_.push(t.registerHoverProvider(m,new r(f))),w.documentHighlights&&_.push(t.registerDocumentHighlightProvider(m,new i(f))),w.definitions&&_.push(t.registerDefinitionProvider(m,new n(f))),w.references&&_.push(t.registerReferenceProvider(m,new o(f))),w.documentSymbols&&_.push(t.registerDocumentSymbolProvider(m,new a(f))),w.rename&&_.push(t.registerRenameProvider(m,new h(f))),w.colors&&_.push(t.registerColorProvider(m,new g(f))),w.foldingRanges&&_.push(t.registerFoldingRangeProvider(m,new l(f))),w.diagnostics&&_.push(new u(m,f,e.onDidChange)),w.selectionRanges&&_.push(t.registerSelectionRangeProvider(m,new d(f))),w.documentFormattingEdits&&_.push(t.registerDocumentFormattingEditProvider(m,new c(f))),w.documentRangeFormattingEdits&&_.push(t.registerDocumentRangeFormattingEditProvider(m,new p(f)))}(),m.push(P(_)),P(m)}function P(e){return{dispose:()=>R(e)}}function R(e){for(;e.length;)e.pop().dispose()}export{s as CompletionAdapter,n as DefinitionAdapter,u as DiagnosticsAdapter,g as DocumentColorAdapter,c as DocumentFormattingEditProvider,i as DocumentHighlightAdapter,m as DocumentLinkAdapter,p as DocumentRangeFormattingEditProvider,a as DocumentSymbolAdapter,l as FoldingRangeAdapter,r as HoverAdapter,o as ReferenceAdapter,h as RenameAdapter,d as SelectionRangeAdapter,v as WorkerManager,_ as fromPosition,w as fromRange,I as setupMode,f as toRange,k as toTextEdit};