@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.
- package/dist/encryption.js +13 -0
- package/dist/encryption.js.map +1 -1
- package/dist/http.js +7 -3
- package/dist/http.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/json-worker.d.ts +1 -0
- package/dist/json-worker.js +96 -0
- package/dist/json-worker.js.map +1 -0
- package/dist/message-relay.js +10 -1
- package/dist/message-relay.js.map +1 -1
- package/dist/session-manager.d.ts +2 -0
- package/dist/session-manager.js +30 -9
- package/dist/session-manager.js.map +1 -1
- package/dist/state-persistence.d.ts +9 -0
- package/dist/state-persistence.js +67 -7
- package/dist/state-persistence.js.map +1 -1
- package/dist/worker-pool.d.ts +14 -0
- package/dist/worker-pool.js +137 -0
- package/dist/worker-pool.js.map +1 -0
- package/package.json +2 -2
- package/web/dist/assets/{cssMode-CvtRf8ik.js → cssMode-Bwt3Nikz.js} +1 -1
- package/web/dist/assets/{editor.main-Dxfe1oPc.js → editor.main-D3OeexuM.js} +3 -3
- package/web/dist/assets/{freemarker2-CPtv7jKr.js → freemarker2-BPgG8rPV.js} +1 -1
- package/web/dist/assets/{handlebars-3s5P_czS.js → handlebars-D4KL215f.js} +1 -1
- package/web/dist/assets/{html-ec6iAqLS.js → html-k1jJdiks.js} +1 -1
- package/web/dist/assets/{htmlMode-Cia9jM9v.js → htmlMode-C6mnc_kw.js} +1 -1
- package/web/dist/assets/index-CN-QhK02.css +1 -0
- package/web/dist/assets/{index-C6O7KMd1.js → index-NKpYs0Ew.js} +7 -7
- package/web/dist/assets/{javascript--qohek8p.js → javascript-hG7aYraE.js} +1 -1
- package/web/dist/assets/{jsonMode-BTdfsfFh.js → jsonMode-Czv2JQtz.js} +1 -1
- package/web/dist/assets/{liquid-CzbVBOlg.js → liquid-E6E3rxVj.js} +1 -1
- package/web/dist/assets/{lspLanguageFeatures-B2Cm6wjs.js → lspLanguageFeatures-DPfu7xeZ.js} +1 -1
- package/web/dist/assets/{mdx-Cjr_8xQU.js → mdx-BPSgy9UN.js} +1 -1
- package/web/dist/assets/{python-C9D8YDyf.js → python-CDooYa57.js} +1 -1
- package/web/dist/assets/{razor-CfkGc1YD.js → razor-DcbDdNr2.js} +1 -1
- package/web/dist/assets/{tsMode-BrvXH7K3.js → tsMode-CWkEUZtH.js} +1 -1
- package/web/dist/assets/{typescript-C38sLfTZ.js → typescript-DbqazjVU.js} +1 -1
- package/web/dist/assets/{xml-WukFSM2r.js → xml-CYa24LBB.js} +1 -1
- package/web/dist/assets/{yaml-C1YNeyj8.js → yaml-oI6xmrQo.js} +1 -1
- package/web/dist/icons/default_file.svg +1 -0
- package/web/dist/icons/default_folder.svg +1 -0
- package/web/dist/icons/default_folder_opened.svg +1 -0
- package/web/dist/icons/default_root_folder.svg +1 -0
- package/web/dist/icons/default_root_folder_opened.svg +1 -0
- package/web/dist/icons/file_type_arduino.svg +1 -0
- package/web/dist/icons/file_type_bat.svg +1 -0
- package/web/dist/icons/file_type_browserslist.svg +1 -0
- package/web/dist/icons/file_type_c.svg +1 -0
- package/web/dist/icons/file_type_cheader.svg +1 -0
- package/web/dist/icons/file_type_cpp.svg +1 -0
- package/web/dist/icons/file_type_csharp.svg +1 -0
- package/web/dist/icons/file_type_css.svg +1 -0
- package/web/dist/icons/file_type_dartlang.svg +1 -0
- package/web/dist/icons/file_type_docker.svg +1 -0
- package/web/dist/icons/file_type_editorconfig.svg +1 -0
- package/web/dist/icons/file_type_elixir.svg +1 -0
- package/web/dist/icons/file_type_elm.svg +1 -0
- package/web/dist/icons/file_type_erlang.svg +1 -0
- package/web/dist/icons/file_type_eslint.svg +1 -0
- package/web/dist/icons/file_type_fsharp.svg +1 -0
- package/web/dist/icons/file_type_git.svg +1 -0
- package/web/dist/icons/file_type_go.svg +1 -0
- package/web/dist/icons/file_type_go_package.svg +1 -0
- package/web/dist/icons/file_type_haskell.svg +1 -0
- package/web/dist/icons/file_type_html.svg +1 -0
- package/web/dist/icons/file_type_image.svg +1 -0
- package/web/dist/icons/file_type_java.svg +1 -0
- package/web/dist/icons/file_type_jest.svg +1 -0
- package/web/dist/icons/file_type_jupyter.svg +1 -0
- package/web/dist/icons/file_type_kotlin.svg +1 -0
- package/web/dist/icons/file_type_less.svg +1 -0
- package/web/dist/icons/file_type_light_babel.svg +1 -0
- package/web/dist/icons/file_type_light_config.svg +1 -0
- package/web/dist/icons/file_type_light_ini.svg +1 -0
- package/web/dist/icons/file_type_light_js.svg +1 -0
- package/web/dist/icons/file_type_light_json.svg +1 -0
- package/web/dist/icons/file_type_light_pnpm.svg +1 -0
- package/web/dist/icons/file_type_light_prettier.svg +1 -0
- package/web/dist/icons/file_type_light_prisma.svg +1 -0
- package/web/dist/icons/file_type_light_rust.svg +1 -0
- package/web/dist/icons/file_type_light_toml.svg +1 -0
- package/web/dist/icons/file_type_light_yaml.svg +1 -0
- package/web/dist/icons/file_type_log.svg +1 -0
- package/web/dist/icons/file_type_lua.svg +1 -0
- package/web/dist/icons/file_type_markdown.svg +1 -0
- package/web/dist/icons/file_type_nim.svg +1 -0
- package/web/dist/icons/file_type_npm.svg +1 -0
- package/web/dist/icons/file_type_perl.svg +1 -0
- package/web/dist/icons/file_type_php.svg +1 -0
- package/web/dist/icons/file_type_powershell.svg +1 -0
- package/web/dist/icons/file_type_python.svg +1 -0
- package/web/dist/icons/file_type_r.svg +1 -0
- package/web/dist/icons/file_type_reactjs.svg +1 -0
- package/web/dist/icons/file_type_reactts.svg +1 -0
- package/web/dist/icons/file_type_rollup.svg +1 -0
- package/web/dist/icons/file_type_ruby.svg +1 -0
- package/web/dist/icons/file_type_sass.svg +1 -0
- package/web/dist/icons/file_type_scala.svg +1 -0
- package/web/dist/icons/file_type_scss.svg +1 -0
- package/web/dist/icons/file_type_shell.svg +1 -0
- package/web/dist/icons/file_type_sql.svg +1 -0
- package/web/dist/icons/file_type_svg.svg +1 -0
- package/web/dist/icons/file_type_swift.svg +1 -0
- package/web/dist/icons/file_type_terraform.svg +1 -0
- package/web/dist/icons/file_type_text.svg +1 -0
- package/web/dist/icons/file_type_tsconfig.svg +1 -0
- package/web/dist/icons/file_type_typescript.svg +1 -0
- package/web/dist/icons/file_type_verilog.svg +1 -0
- package/web/dist/icons/file_type_vite.svg +1 -0
- package/web/dist/icons/file_type_vue.svg +1 -0
- package/web/dist/icons/file_type_wasm.svg +1 -0
- package/web/dist/icons/file_type_webpack.svg +1 -0
- package/web/dist/icons/file_type_xml.svg +1 -0
- package/web/dist/icons/file_type_yarn.svg +1 -0
- package/web/dist/icons/file_type_zig.svg +1 -0
- package/web/dist/icons/folder_type_api.svg +1 -0
- package/web/dist/icons/folder_type_api_opened.svg +1 -0
- package/web/dist/icons/folder_type_asset.svg +1 -0
- package/web/dist/icons/folder_type_asset_opened.svg +1 -0
- package/web/dist/icons/folder_type_binary.svg +1 -0
- package/web/dist/icons/folder_type_binary_opened.svg +1 -0
- package/web/dist/icons/folder_type_cli.svg +1 -0
- package/web/dist/icons/folder_type_cli_opened.svg +1 -0
- package/web/dist/icons/folder_type_component.svg +1 -0
- package/web/dist/icons/folder_type_component_opened.svg +1 -0
- package/web/dist/icons/folder_type_config.svg +1 -0
- package/web/dist/icons/folder_type_config_opened.svg +1 -0
- package/web/dist/icons/folder_type_controller.svg +1 -0
- package/web/dist/icons/folder_type_controller_opened.svg +1 -0
- package/web/dist/icons/folder_type_coverage.svg +1 -0
- package/web/dist/icons/folder_type_coverage_opened.svg +1 -0
- package/web/dist/icons/folder_type_css.svg +1 -0
- package/web/dist/icons/folder_type_css_opened.svg +1 -0
- package/web/dist/icons/folder_type_db.svg +1 -0
- package/web/dist/icons/folder_type_db_opened.svg +1 -0
- package/web/dist/icons/folder_type_dist.svg +1 -0
- package/web/dist/icons/folder_type_dist_opened.svg +1 -0
- package/web/dist/icons/folder_type_docs.svg +1 -0
- package/web/dist/icons/folder_type_docs_opened.svg +1 -0
- package/web/dist/icons/folder_type_git.svg +1 -0
- package/web/dist/icons/folder_type_git_opened.svg +1 -0
- package/web/dist/icons/folder_type_github.svg +1 -0
- package/web/dist/icons/folder_type_github_opened.svg +1 -0
- package/web/dist/icons/folder_type_helper.svg +1 -0
- package/web/dist/icons/folder_type_helper_opened.svg +1 -0
- package/web/dist/icons/folder_type_hook.svg +1 -0
- package/web/dist/icons/folder_type_hook_opened.svg +1 -0
- package/web/dist/icons/folder_type_images.svg +1 -0
- package/web/dist/icons/folder_type_images_opened.svg +1 -0
- package/web/dist/icons/folder_type_library.svg +1 -0
- package/web/dist/icons/folder_type_library_opened.svg +1 -0
- package/web/dist/icons/folder_type_light_fonts.svg +1 -0
- package/web/dist/icons/folder_type_light_fonts_opened.svg +1 -0
- package/web/dist/icons/folder_type_light_node.svg +1 -0
- package/web/dist/icons/folder_type_light_node_opened.svg +1 -0
- package/web/dist/icons/folder_type_locale.svg +1 -0
- package/web/dist/icons/folder_type_locale_opened.svg +1 -0
- package/web/dist/icons/folder_type_log.svg +1 -0
- package/web/dist/icons/folder_type_log_opened.svg +1 -0
- package/web/dist/icons/folder_type_middleware.svg +1 -0
- package/web/dist/icons/folder_type_middleware_opened.svg +1 -0
- package/web/dist/icons/folder_type_mock.svg +1 -0
- package/web/dist/icons/folder_type_mock_opened.svg +1 -0
- package/web/dist/icons/folder_type_model.svg +1 -0
- package/web/dist/icons/folder_type_model_opened.svg +1 -0
- package/web/dist/icons/folder_type_module.svg +1 -0
- package/web/dist/icons/folder_type_module_opened.svg +1 -0
- package/web/dist/icons/folder_type_package.svg +1 -0
- package/web/dist/icons/folder_type_package_opened.svg +1 -0
- package/web/dist/icons/folder_type_plugin.svg +1 -0
- package/web/dist/icons/folder_type_plugin_opened.svg +1 -0
- package/web/dist/icons/folder_type_public.svg +1 -0
- package/web/dist/icons/folder_type_public_opened.svg +1 -0
- package/web/dist/icons/folder_type_route.svg +1 -0
- package/web/dist/icons/folder_type_route_opened.svg +1 -0
- package/web/dist/icons/folder_type_script.svg +1 -0
- package/web/dist/icons/folder_type_script_opened.svg +1 -0
- package/web/dist/icons/folder_type_services.svg +1 -0
- package/web/dist/icons/folder_type_services_opened.svg +1 -0
- package/web/dist/icons/folder_type_src.svg +1 -0
- package/web/dist/icons/folder_type_src_opened.svg +1 -0
- package/web/dist/icons/folder_type_style.svg +1 -0
- package/web/dist/icons/folder_type_style_opened.svg +1 -0
- package/web/dist/icons/folder_type_temp.svg +1 -0
- package/web/dist/icons/folder_type_temp_opened.svg +1 -0
- package/web/dist/icons/folder_type_template.svg +1 -0
- package/web/dist/icons/folder_type_template_opened.svg +1 -0
- package/web/dist/icons/folder_type_test.svg +1 -0
- package/web/dist/icons/folder_type_test_opened.svg +1 -0
- package/web/dist/icons/folder_type_tools.svg +1 -0
- package/web/dist/icons/folder_type_tools_opened.svg +1 -0
- package/web/dist/icons/folder_type_view.svg +1 -0
- package/web/dist/icons/folder_type_view_opened.svg +1 -0
- package/web/dist/icons/folder_type_vscode.svg +1 -0
- package/web/dist/icons/folder_type_vscode_opened.svg +1 -0
- package/web/dist/index.html +2 -2
- 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 +1 @@
|
|
|
1
|
-
import{c as e,l as t}from"./editor.main-
|
|
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};
|