oh-my-opencode 0.1.7 → 0.1.9

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/index.js CHANGED
@@ -1,16 +1,2905 @@
1
1
  // @bun
2
+ var __create = Object.create;
3
+ var __getProtoOf = Object.getPrototypeOf;
2
4
  var __defProp = Object.defineProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __toESM = (mod, isNodeMode, target) => {
8
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
9
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
+ for (let key of __getOwnPropNames(mod))
11
+ if (!__hasOwnProp.call(to, key))
12
+ __defProp(to, key, {
13
+ get: () => mod[key],
14
+ enumerable: true
15
+ });
16
+ return to;
17
+ };
18
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
3
19
  var __export = (target, all) => {
4
- for (var name in all)
5
- __defProp(target, name, {
6
- get: all[name],
20
+ for (var name2 in all)
21
+ __defProp(target, name2, {
22
+ get: all[name2],
7
23
  enumerable: true,
8
24
  configurable: true,
9
- set: (newValue) => all[name] = () => newValue
25
+ set: (newValue) => all[name2] = () => newValue
10
26
  });
11
27
  };
12
28
  var __require = import.meta.require;
13
29
 
30
+ // node_modules/web-tree-sitter/tree-sitter.js
31
+ var require_tree_sitter = __commonJS((exports, module2) => {
32
+ var __dirname = "/home/runner/work/oh-my-opencode/oh-my-opencode/node_modules/web-tree-sitter";
33
+ var Module = typeof Module != "undefined" ? Module : {};
34
+ var ENVIRONMENT_IS_WEB = typeof window == "object";
35
+ var ENVIRONMENT_IS_WORKER = typeof importScripts == "function";
36
+ var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string";
37
+ if (ENVIRONMENT_IS_NODE) {}
38
+ var TreeSitter = function() {
39
+ var initPromise;
40
+ var document = typeof window == "object" ? {
41
+ currentScript: window.document.currentScript
42
+ } : null;
43
+
44
+ class Parser {
45
+ constructor() {
46
+ this.initialize();
47
+ }
48
+ initialize() {
49
+ throw new Error("cannot construct a Parser before calling `init()`");
50
+ }
51
+ static init(moduleOptions) {
52
+ if (initPromise)
53
+ return initPromise;
54
+ Module = Object.assign({}, Module, moduleOptions);
55
+ return initPromise = new Promise((resolveInitPromise) => {
56
+ var moduleOverrides = Object.assign({}, Module);
57
+ var arguments_ = [];
58
+ var thisProgram = "./this.program";
59
+ var quit_ = (status, toThrow) => {
60
+ throw toThrow;
61
+ };
62
+ var scriptDirectory = "";
63
+ function locateFile(path) {
64
+ if (Module["locateFile"]) {
65
+ return Module["locateFile"](path, scriptDirectory);
66
+ }
67
+ return scriptDirectory + path;
68
+ }
69
+ var readAsync, readBinary;
70
+ if (ENVIRONMENT_IS_NODE) {
71
+ var fs = __require("fs");
72
+ var nodePath = __require("path");
73
+ scriptDirectory = __dirname + "/";
74
+ readBinary = (filename) => {
75
+ filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);
76
+ var ret = fs.readFileSync(filename);
77
+ return ret;
78
+ };
79
+ readAsync = (filename, binary2 = true) => {
80
+ filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);
81
+ return new Promise((resolve, reject) => {
82
+ fs.readFile(filename, binary2 ? undefined : "utf8", (err2, data) => {
83
+ if (err2)
84
+ reject(err2);
85
+ else
86
+ resolve(binary2 ? data.buffer : data);
87
+ });
88
+ });
89
+ };
90
+ if (!Module["thisProgram"] && process.argv.length > 1) {
91
+ thisProgram = process.argv[1].replace(/\\/g, "/");
92
+ }
93
+ arguments_ = process.argv.slice(2);
94
+ if (typeof module2 != "undefined") {
95
+ module2["exports"] = Module;
96
+ }
97
+ quit_ = (status, toThrow) => {
98
+ process.exitCode = status;
99
+ throw toThrow;
100
+ };
101
+ } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
102
+ if (ENVIRONMENT_IS_WORKER) {
103
+ scriptDirectory = self.location.href;
104
+ } else if (typeof document != "undefined" && document.currentScript) {
105
+ scriptDirectory = document.currentScript.src;
106
+ }
107
+ if (scriptDirectory.startsWith("blob:")) {
108
+ scriptDirectory = "";
109
+ } else {
110
+ scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
111
+ }
112
+ {
113
+ if (ENVIRONMENT_IS_WORKER) {
114
+ readBinary = (url) => {
115
+ var xhr = new XMLHttpRequest;
116
+ xhr.open("GET", url, false);
117
+ xhr.responseType = "arraybuffer";
118
+ xhr.send(null);
119
+ return new Uint8Array(xhr.response);
120
+ };
121
+ }
122
+ readAsync = (url) => {
123
+ if (isFileURI(url)) {
124
+ return new Promise((reject, resolve) => {
125
+ var xhr = new XMLHttpRequest;
126
+ xhr.open("GET", url, true);
127
+ xhr.responseType = "arraybuffer";
128
+ xhr.onload = () => {
129
+ if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
130
+ resolve(xhr.response);
131
+ }
132
+ reject(xhr.status);
133
+ };
134
+ xhr.onerror = reject;
135
+ xhr.send(null);
136
+ });
137
+ }
138
+ return fetch(url, {
139
+ credentials: "same-origin"
140
+ }).then((response) => {
141
+ if (response.ok) {
142
+ return response.arrayBuffer();
143
+ }
144
+ return Promise.reject(new Error(response.status + " : " + response.url));
145
+ });
146
+ };
147
+ }
148
+ } else {}
149
+ var out = Module["print"] || console.log.bind(console);
150
+ var err = Module["printErr"] || console.error.bind(console);
151
+ Object.assign(Module, moduleOverrides);
152
+ moduleOverrides = null;
153
+ if (Module["arguments"])
154
+ arguments_ = Module["arguments"];
155
+ if (Module["thisProgram"])
156
+ thisProgram = Module["thisProgram"];
157
+ if (Module["quit"])
158
+ quit_ = Module["quit"];
159
+ var dynamicLibraries = Module["dynamicLibraries"] || [];
160
+ var wasmBinary;
161
+ if (Module["wasmBinary"])
162
+ wasmBinary = Module["wasmBinary"];
163
+ var wasmMemory;
164
+ var ABORT = false;
165
+ var EXITSTATUS;
166
+ var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
167
+ var HEAP_DATA_VIEW;
168
+ function updateMemoryViews() {
169
+ var b = wasmMemory.buffer;
170
+ Module["HEAP_DATA_VIEW"] = HEAP_DATA_VIEW = new DataView(b);
171
+ Module["HEAP8"] = HEAP8 = new Int8Array(b);
172
+ Module["HEAP16"] = HEAP16 = new Int16Array(b);
173
+ Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
174
+ Module["HEAPU16"] = HEAPU16 = new Uint16Array(b);
175
+ Module["HEAP32"] = HEAP32 = new Int32Array(b);
176
+ Module["HEAPU32"] = HEAPU32 = new Uint32Array(b);
177
+ Module["HEAPF32"] = HEAPF32 = new Float32Array(b);
178
+ Module["HEAPF64"] = HEAPF64 = new Float64Array(b);
179
+ }
180
+ if (Module["wasmMemory"]) {
181
+ wasmMemory = Module["wasmMemory"];
182
+ } else {
183
+ var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 33554432;
184
+ wasmMemory = new WebAssembly.Memory({
185
+ initial: INITIAL_MEMORY / 65536,
186
+ maximum: 2147483648 / 65536
187
+ });
188
+ }
189
+ updateMemoryViews();
190
+ var __ATPRERUN__ = [];
191
+ var __ATINIT__ = [];
192
+ var __ATMAIN__ = [];
193
+ var __ATPOSTRUN__ = [];
194
+ var __RELOC_FUNCS__ = [];
195
+ var runtimeInitialized = false;
196
+ function preRun() {
197
+ if (Module["preRun"]) {
198
+ if (typeof Module["preRun"] == "function")
199
+ Module["preRun"] = [Module["preRun"]];
200
+ while (Module["preRun"].length) {
201
+ addOnPreRun(Module["preRun"].shift());
202
+ }
203
+ }
204
+ callRuntimeCallbacks(__ATPRERUN__);
205
+ }
206
+ function initRuntime() {
207
+ runtimeInitialized = true;
208
+ callRuntimeCallbacks(__RELOC_FUNCS__);
209
+ callRuntimeCallbacks(__ATINIT__);
210
+ }
211
+ function preMain() {
212
+ callRuntimeCallbacks(__ATMAIN__);
213
+ }
214
+ function postRun() {
215
+ if (Module["postRun"]) {
216
+ if (typeof Module["postRun"] == "function")
217
+ Module["postRun"] = [Module["postRun"]];
218
+ while (Module["postRun"].length) {
219
+ addOnPostRun(Module["postRun"].shift());
220
+ }
221
+ }
222
+ callRuntimeCallbacks(__ATPOSTRUN__);
223
+ }
224
+ function addOnPreRun(cb) {
225
+ __ATPRERUN__.unshift(cb);
226
+ }
227
+ function addOnInit(cb) {
228
+ __ATINIT__.unshift(cb);
229
+ }
230
+ function addOnPostRun(cb) {
231
+ __ATPOSTRUN__.unshift(cb);
232
+ }
233
+ var runDependencies = 0;
234
+ var runDependencyWatcher = null;
235
+ var dependenciesFulfilled = null;
236
+ function getUniqueRunDependency(id) {
237
+ return id;
238
+ }
239
+ function addRunDependency(id) {
240
+ runDependencies++;
241
+ Module["monitorRunDependencies"]?.(runDependencies);
242
+ }
243
+ function removeRunDependency(id) {
244
+ runDependencies--;
245
+ Module["monitorRunDependencies"]?.(runDependencies);
246
+ if (runDependencies == 0) {
247
+ if (runDependencyWatcher !== null) {
248
+ clearInterval(runDependencyWatcher);
249
+ runDependencyWatcher = null;
250
+ }
251
+ if (dependenciesFulfilled) {
252
+ var callback = dependenciesFulfilled;
253
+ dependenciesFulfilled = null;
254
+ callback();
255
+ }
256
+ }
257
+ }
258
+ function abort(what) {
259
+ Module["onAbort"]?.(what);
260
+ what = "Aborted(" + what + ")";
261
+ err(what);
262
+ ABORT = true;
263
+ EXITSTATUS = 1;
264
+ what += ". Build with -sASSERTIONS for more info.";
265
+ var e = new WebAssembly.RuntimeError(what);
266
+ throw e;
267
+ }
268
+ var dataURIPrefix = "data:application/octet-stream;base64,";
269
+ var isDataURI = (filename) => filename.startsWith(dataURIPrefix);
270
+ var isFileURI = (filename) => filename.startsWith("file://");
271
+ function findWasmBinary() {
272
+ var f = "tree-sitter.wasm";
273
+ if (!isDataURI(f)) {
274
+ return locateFile(f);
275
+ }
276
+ return f;
277
+ }
278
+ var wasmBinaryFile;
279
+ function getBinarySync(file) {
280
+ if (file == wasmBinaryFile && wasmBinary) {
281
+ return new Uint8Array(wasmBinary);
282
+ }
283
+ if (readBinary) {
284
+ return readBinary(file);
285
+ }
286
+ throw "both async and sync fetching of the wasm failed";
287
+ }
288
+ function getBinaryPromise(binaryFile) {
289
+ if (!wasmBinary) {
290
+ return readAsync(binaryFile).then((response) => new Uint8Array(response), () => getBinarySync(binaryFile));
291
+ }
292
+ return Promise.resolve().then(() => getBinarySync(binaryFile));
293
+ }
294
+ function instantiateArrayBuffer(binaryFile, imports, receiver) {
295
+ return getBinaryPromise(binaryFile).then((binary2) => WebAssembly.instantiate(binary2, imports)).then(receiver, (reason) => {
296
+ err(`failed to asynchronously prepare wasm: ${reason}`);
297
+ abort(reason);
298
+ });
299
+ }
300
+ function instantiateAsync(binary2, binaryFile, imports, callback) {
301
+ if (!binary2 && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && !isFileURI(binaryFile) && !ENVIRONMENT_IS_NODE && typeof fetch == "function") {
302
+ return fetch(binaryFile, {
303
+ credentials: "same-origin"
304
+ }).then((response) => {
305
+ var result = WebAssembly.instantiateStreaming(response, imports);
306
+ return result.then(callback, function(reason) {
307
+ err(`wasm streaming compile failed: ${reason}`);
308
+ err("falling back to ArrayBuffer instantiation");
309
+ return instantiateArrayBuffer(binaryFile, imports, callback);
310
+ });
311
+ });
312
+ }
313
+ return instantiateArrayBuffer(binaryFile, imports, callback);
314
+ }
315
+ function getWasmImports() {
316
+ return {
317
+ env: wasmImports,
318
+ wasi_snapshot_preview1: wasmImports,
319
+ "GOT.mem": new Proxy(wasmImports, GOTHandler),
320
+ "GOT.func": new Proxy(wasmImports, GOTHandler)
321
+ };
322
+ }
323
+ function createWasm() {
324
+ var info2 = getWasmImports();
325
+ function receiveInstance(instance2, module3) {
326
+ wasmExports = instance2.exports;
327
+ wasmExports = relocateExports(wasmExports, 1024);
328
+ var metadata2 = getDylinkMetadata(module3);
329
+ if (metadata2.neededDynlibs) {
330
+ dynamicLibraries = metadata2.neededDynlibs.concat(dynamicLibraries);
331
+ }
332
+ mergeLibSymbols(wasmExports, "main");
333
+ LDSO.init();
334
+ loadDylibs();
335
+ addOnInit(wasmExports["__wasm_call_ctors"]);
336
+ __RELOC_FUNCS__.push(wasmExports["__wasm_apply_data_relocs"]);
337
+ removeRunDependency("wasm-instantiate");
338
+ return wasmExports;
339
+ }
340
+ addRunDependency("wasm-instantiate");
341
+ function receiveInstantiationResult(result) {
342
+ receiveInstance(result["instance"], result["module"]);
343
+ }
344
+ if (Module["instantiateWasm"]) {
345
+ try {
346
+ return Module["instantiateWasm"](info2, receiveInstance);
347
+ } catch (e) {
348
+ err(`Module.instantiateWasm callback failed with error: ${e}`);
349
+ return false;
350
+ }
351
+ }
352
+ if (!wasmBinaryFile)
353
+ wasmBinaryFile = findWasmBinary();
354
+ instantiateAsync(wasmBinary, wasmBinaryFile, info2, receiveInstantiationResult);
355
+ return {};
356
+ }
357
+ var ASM_CONSTS = {};
358
+ function ExitStatus(status) {
359
+ this.name = "ExitStatus";
360
+ this.message = `Program terminated with exit(${status})`;
361
+ this.status = status;
362
+ }
363
+ var GOT = {};
364
+ var currentModuleWeakSymbols = new Set([]);
365
+ var GOTHandler = {
366
+ get(obj, symName) {
367
+ var rtn = GOT[symName];
368
+ if (!rtn) {
369
+ rtn = GOT[symName] = new WebAssembly.Global({
370
+ value: "i32",
371
+ mutable: true
372
+ });
373
+ }
374
+ if (!currentModuleWeakSymbols.has(symName)) {
375
+ rtn.required = true;
376
+ }
377
+ return rtn;
378
+ }
379
+ };
380
+ var LE_HEAP_LOAD_F32 = (byteOffset) => HEAP_DATA_VIEW.getFloat32(byteOffset, true);
381
+ var LE_HEAP_LOAD_F64 = (byteOffset) => HEAP_DATA_VIEW.getFloat64(byteOffset, true);
382
+ var LE_HEAP_LOAD_I16 = (byteOffset) => HEAP_DATA_VIEW.getInt16(byteOffset, true);
383
+ var LE_HEAP_LOAD_I32 = (byteOffset) => HEAP_DATA_VIEW.getInt32(byteOffset, true);
384
+ var LE_HEAP_LOAD_U32 = (byteOffset) => HEAP_DATA_VIEW.getUint32(byteOffset, true);
385
+ var LE_HEAP_STORE_F32 = (byteOffset, value) => HEAP_DATA_VIEW.setFloat32(byteOffset, value, true);
386
+ var LE_HEAP_STORE_F64 = (byteOffset, value) => HEAP_DATA_VIEW.setFloat64(byteOffset, value, true);
387
+ var LE_HEAP_STORE_I16 = (byteOffset, value) => HEAP_DATA_VIEW.setInt16(byteOffset, value, true);
388
+ var LE_HEAP_STORE_I32 = (byteOffset, value) => HEAP_DATA_VIEW.setInt32(byteOffset, value, true);
389
+ var LE_HEAP_STORE_U32 = (byteOffset, value) => HEAP_DATA_VIEW.setUint32(byteOffset, value, true);
390
+ var callRuntimeCallbacks = (callbacks) => {
391
+ while (callbacks.length > 0) {
392
+ callbacks.shift()(Module);
393
+ }
394
+ };
395
+ var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder : undefined;
396
+ var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
397
+ var endIdx = idx + maxBytesToRead;
398
+ var endPtr = idx;
399
+ while (heapOrArray[endPtr] && !(endPtr >= endIdx))
400
+ ++endPtr;
401
+ if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
402
+ return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
403
+ }
404
+ var str = "";
405
+ while (idx < endPtr) {
406
+ var u0 = heapOrArray[idx++];
407
+ if (!(u0 & 128)) {
408
+ str += String.fromCharCode(u0);
409
+ continue;
410
+ }
411
+ var u1 = heapOrArray[idx++] & 63;
412
+ if ((u0 & 224) == 192) {
413
+ str += String.fromCharCode((u0 & 31) << 6 | u1);
414
+ continue;
415
+ }
416
+ var u2 = heapOrArray[idx++] & 63;
417
+ if ((u0 & 240) == 224) {
418
+ u0 = (u0 & 15) << 12 | u1 << 6 | u2;
419
+ } else {
420
+ u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
421
+ }
422
+ if (u0 < 65536) {
423
+ str += String.fromCharCode(u0);
424
+ } else {
425
+ var ch = u0 - 65536;
426
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
427
+ }
428
+ }
429
+ return str;
430
+ };
431
+ var getDylinkMetadata = (binary2) => {
432
+ var offset = 0;
433
+ var end = 0;
434
+ function getU8() {
435
+ return binary2[offset++];
436
+ }
437
+ function getLEB() {
438
+ var ret = 0;
439
+ var mul = 1;
440
+ while (true) {
441
+ var byte = binary2[offset++];
442
+ ret += (byte & 127) * mul;
443
+ mul *= 128;
444
+ if (!(byte & 128))
445
+ break;
446
+ }
447
+ return ret;
448
+ }
449
+ function getString() {
450
+ var len = getLEB();
451
+ offset += len;
452
+ return UTF8ArrayToString(binary2, offset - len, len);
453
+ }
454
+ function failIf(condition, message) {
455
+ if (condition)
456
+ throw new Error(message);
457
+ }
458
+ var name2 = "dylink.0";
459
+ if (binary2 instanceof WebAssembly.Module) {
460
+ var dylinkSection = WebAssembly.Module.customSections(binary2, name2);
461
+ if (dylinkSection.length === 0) {
462
+ name2 = "dylink";
463
+ dylinkSection = WebAssembly.Module.customSections(binary2, name2);
464
+ }
465
+ failIf(dylinkSection.length === 0, "need dylink section");
466
+ binary2 = new Uint8Array(dylinkSection[0]);
467
+ end = binary2.length;
468
+ } else {
469
+ var int32View = new Uint32Array(new Uint8Array(binary2.subarray(0, 24)).buffer);
470
+ var magicNumberFound = int32View[0] == 1836278016 || int32View[0] == 6386541;
471
+ failIf(!magicNumberFound, "need to see wasm magic number");
472
+ failIf(binary2[8] !== 0, "need the dylink section to be first");
473
+ offset = 9;
474
+ var section_size = getLEB();
475
+ end = offset + section_size;
476
+ name2 = getString();
477
+ }
478
+ var customSection = {
479
+ neededDynlibs: [],
480
+ tlsExports: new Set,
481
+ weakImports: new Set
482
+ };
483
+ if (name2 == "dylink") {
484
+ customSection.memorySize = getLEB();
485
+ customSection.memoryAlign = getLEB();
486
+ customSection.tableSize = getLEB();
487
+ customSection.tableAlign = getLEB();
488
+ var neededDynlibsCount = getLEB();
489
+ for (var i2 = 0;i2 < neededDynlibsCount; ++i2) {
490
+ var libname = getString();
491
+ customSection.neededDynlibs.push(libname);
492
+ }
493
+ } else {
494
+ failIf(name2 !== "dylink.0");
495
+ var WASM_DYLINK_MEM_INFO = 1;
496
+ var WASM_DYLINK_NEEDED = 2;
497
+ var WASM_DYLINK_EXPORT_INFO = 3;
498
+ var WASM_DYLINK_IMPORT_INFO = 4;
499
+ var WASM_SYMBOL_TLS = 256;
500
+ var WASM_SYMBOL_BINDING_MASK = 3;
501
+ var WASM_SYMBOL_BINDING_WEAK = 1;
502
+ while (offset < end) {
503
+ var subsectionType = getU8();
504
+ var subsectionSize = getLEB();
505
+ if (subsectionType === WASM_DYLINK_MEM_INFO) {
506
+ customSection.memorySize = getLEB();
507
+ customSection.memoryAlign = getLEB();
508
+ customSection.tableSize = getLEB();
509
+ customSection.tableAlign = getLEB();
510
+ } else if (subsectionType === WASM_DYLINK_NEEDED) {
511
+ var neededDynlibsCount = getLEB();
512
+ for (var i2 = 0;i2 < neededDynlibsCount; ++i2) {
513
+ libname = getString();
514
+ customSection.neededDynlibs.push(libname);
515
+ }
516
+ } else if (subsectionType === WASM_DYLINK_EXPORT_INFO) {
517
+ var count = getLEB();
518
+ while (count--) {
519
+ var symname = getString();
520
+ var flags2 = getLEB();
521
+ if (flags2 & WASM_SYMBOL_TLS) {
522
+ customSection.tlsExports.add(symname);
523
+ }
524
+ }
525
+ } else if (subsectionType === WASM_DYLINK_IMPORT_INFO) {
526
+ var count = getLEB();
527
+ while (count--) {
528
+ var modname = getString();
529
+ var symname = getString();
530
+ var flags2 = getLEB();
531
+ if ((flags2 & WASM_SYMBOL_BINDING_MASK) == WASM_SYMBOL_BINDING_WEAK) {
532
+ customSection.weakImports.add(symname);
533
+ }
534
+ }
535
+ } else {
536
+ offset += subsectionSize;
537
+ }
538
+ }
539
+ }
540
+ return customSection;
541
+ };
542
+ function getValue(ptr, type = "i8") {
543
+ if (type.endsWith("*"))
544
+ type = "*";
545
+ switch (type) {
546
+ case "i1":
547
+ return HEAP8[ptr];
548
+ case "i8":
549
+ return HEAP8[ptr];
550
+ case "i16":
551
+ return LE_HEAP_LOAD_I16((ptr >> 1) * 2);
552
+ case "i32":
553
+ return LE_HEAP_LOAD_I32((ptr >> 2) * 4);
554
+ case "i64":
555
+ abort("to do getValue(i64) use WASM_BIGINT");
556
+ case "float":
557
+ return LE_HEAP_LOAD_F32((ptr >> 2) * 4);
558
+ case "double":
559
+ return LE_HEAP_LOAD_F64((ptr >> 3) * 8);
560
+ case "*":
561
+ return LE_HEAP_LOAD_U32((ptr >> 2) * 4);
562
+ default:
563
+ abort(`invalid type for getValue: ${type}`);
564
+ }
565
+ }
566
+ var newDSO = (name2, handle2, syms) => {
567
+ var dso = {
568
+ refcount: Infinity,
569
+ name: name2,
570
+ exports: syms,
571
+ global: true
572
+ };
573
+ LDSO.loadedLibsByName[name2] = dso;
574
+ if (handle2 != null) {
575
+ LDSO.loadedLibsByHandle[handle2] = dso;
576
+ }
577
+ return dso;
578
+ };
579
+ var LDSO = {
580
+ loadedLibsByName: {},
581
+ loadedLibsByHandle: {},
582
+ init() {
583
+ newDSO("__main__", 0, wasmImports);
584
+ }
585
+ };
586
+ var ___heap_base = 78112;
587
+ var zeroMemory = (address, size) => {
588
+ HEAPU8.fill(0, address, address + size);
589
+ return address;
590
+ };
591
+ var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
592
+ var getMemory = (size) => {
593
+ if (runtimeInitialized) {
594
+ return zeroMemory(_malloc(size), size);
595
+ }
596
+ var ret = ___heap_base;
597
+ var end = ret + alignMemory(size, 16);
598
+ ___heap_base = end;
599
+ GOT["__heap_base"].value = end;
600
+ return ret;
601
+ };
602
+ var isInternalSym = (symName) => ["__cpp_exception", "__c_longjmp", "__wasm_apply_data_relocs", "__dso_handle", "__tls_size", "__tls_align", "__set_stack_limits", "_emscripten_tls_init", "__wasm_init_tls", "__wasm_call_ctors", "__start_em_asm", "__stop_em_asm", "__start_em_js", "__stop_em_js"].includes(symName) || symName.startsWith("__em_js__");
603
+ var uleb128Encode = (n, target) => {
604
+ if (n < 128) {
605
+ target.push(n);
606
+ } else {
607
+ target.push(n % 128 | 128, n >> 7);
608
+ }
609
+ };
610
+ var sigToWasmTypes = (sig) => {
611
+ var typeNames = {
612
+ i: "i32",
613
+ j: "i64",
614
+ f: "f32",
615
+ d: "f64",
616
+ e: "externref",
617
+ p: "i32"
618
+ };
619
+ var type = {
620
+ parameters: [],
621
+ results: sig[0] == "v" ? [] : [typeNames[sig[0]]]
622
+ };
623
+ for (var i2 = 1;i2 < sig.length; ++i2) {
624
+ type.parameters.push(typeNames[sig[i2]]);
625
+ }
626
+ return type;
627
+ };
628
+ var generateFuncType = (sig, target) => {
629
+ var sigRet = sig.slice(0, 1);
630
+ var sigParam = sig.slice(1);
631
+ var typeCodes = {
632
+ i: 127,
633
+ p: 127,
634
+ j: 126,
635
+ f: 125,
636
+ d: 124,
637
+ e: 111
638
+ };
639
+ target.push(96);
640
+ uleb128Encode(sigParam.length, target);
641
+ for (var i2 = 0;i2 < sigParam.length; ++i2) {
642
+ target.push(typeCodes[sigParam[i2]]);
643
+ }
644
+ if (sigRet == "v") {
645
+ target.push(0);
646
+ } else {
647
+ target.push(1, typeCodes[sigRet]);
648
+ }
649
+ };
650
+ var convertJsFunctionToWasm = (func2, sig) => {
651
+ if (typeof WebAssembly.Function == "function") {
652
+ return new WebAssembly.Function(sigToWasmTypes(sig), func2);
653
+ }
654
+ var typeSectionBody = [1];
655
+ generateFuncType(sig, typeSectionBody);
656
+ var bytes = [
657
+ 0,
658
+ 97,
659
+ 115,
660
+ 109,
661
+ 1,
662
+ 0,
663
+ 0,
664
+ 0,
665
+ 1
666
+ ];
667
+ uleb128Encode(typeSectionBody.length, bytes);
668
+ bytes.push(...typeSectionBody);
669
+ bytes.push(2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0);
670
+ var module3 = new WebAssembly.Module(new Uint8Array(bytes));
671
+ var instance2 = new WebAssembly.Instance(module3, {
672
+ e: {
673
+ f: func2
674
+ }
675
+ });
676
+ var wrappedFunc = instance2.exports["f"];
677
+ return wrappedFunc;
678
+ };
679
+ var wasmTableMirror = [];
680
+ var wasmTable = new WebAssembly.Table({
681
+ initial: 28,
682
+ element: "anyfunc"
683
+ });
684
+ var getWasmTableEntry = (funcPtr) => {
685
+ var func2 = wasmTableMirror[funcPtr];
686
+ if (!func2) {
687
+ if (funcPtr >= wasmTableMirror.length)
688
+ wasmTableMirror.length = funcPtr + 1;
689
+ wasmTableMirror[funcPtr] = func2 = wasmTable.get(funcPtr);
690
+ }
691
+ return func2;
692
+ };
693
+ var updateTableMap = (offset, count) => {
694
+ if (functionsInTableMap) {
695
+ for (var i2 = offset;i2 < offset + count; i2++) {
696
+ var item = getWasmTableEntry(i2);
697
+ if (item) {
698
+ functionsInTableMap.set(item, i2);
699
+ }
700
+ }
701
+ }
702
+ };
703
+ var functionsInTableMap;
704
+ var getFunctionAddress = (func2) => {
705
+ if (!functionsInTableMap) {
706
+ functionsInTableMap = new WeakMap;
707
+ updateTableMap(0, wasmTable.length);
708
+ }
709
+ return functionsInTableMap.get(func2) || 0;
710
+ };
711
+ var freeTableIndexes = [];
712
+ var getEmptyTableSlot = () => {
713
+ if (freeTableIndexes.length) {
714
+ return freeTableIndexes.pop();
715
+ }
716
+ try {
717
+ wasmTable.grow(1);
718
+ } catch (err2) {
719
+ if (!(err2 instanceof RangeError)) {
720
+ throw err2;
721
+ }
722
+ throw "Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";
723
+ }
724
+ return wasmTable.length - 1;
725
+ };
726
+ var setWasmTableEntry = (idx, func2) => {
727
+ wasmTable.set(idx, func2);
728
+ wasmTableMirror[idx] = wasmTable.get(idx);
729
+ };
730
+ var addFunction = (func2, sig) => {
731
+ var rtn = getFunctionAddress(func2);
732
+ if (rtn) {
733
+ return rtn;
734
+ }
735
+ var ret = getEmptyTableSlot();
736
+ try {
737
+ setWasmTableEntry(ret, func2);
738
+ } catch (err2) {
739
+ if (!(err2 instanceof TypeError)) {
740
+ throw err2;
741
+ }
742
+ var wrapped = convertJsFunctionToWasm(func2, sig);
743
+ setWasmTableEntry(ret, wrapped);
744
+ }
745
+ functionsInTableMap.set(func2, ret);
746
+ return ret;
747
+ };
748
+ var updateGOT = (exports2, replace) => {
749
+ for (var symName in exports2) {
750
+ if (isInternalSym(symName)) {
751
+ continue;
752
+ }
753
+ var value = exports2[symName];
754
+ if (symName.startsWith("orig$")) {
755
+ symName = symName.split("$")[1];
756
+ replace = true;
757
+ }
758
+ GOT[symName] ||= new WebAssembly.Global({
759
+ value: "i32",
760
+ mutable: true
761
+ });
762
+ if (replace || GOT[symName].value == 0) {
763
+ if (typeof value == "function") {
764
+ GOT[symName].value = addFunction(value);
765
+ } else if (typeof value == "number") {
766
+ GOT[symName].value = value;
767
+ } else {
768
+ err(`unhandled export type for '${symName}': ${typeof value}`);
769
+ }
770
+ }
771
+ }
772
+ };
773
+ var relocateExports = (exports2, memoryBase2, replace) => {
774
+ var relocated = {};
775
+ for (var e in exports2) {
776
+ var value = exports2[e];
777
+ if (typeof value == "object") {
778
+ value = value.value;
779
+ }
780
+ if (typeof value == "number") {
781
+ value += memoryBase2;
782
+ }
783
+ relocated[e] = value;
784
+ }
785
+ updateGOT(relocated, replace);
786
+ return relocated;
787
+ };
788
+ var isSymbolDefined = (symName) => {
789
+ var existing = wasmImports[symName];
790
+ if (!existing || existing.stub) {
791
+ return false;
792
+ }
793
+ return true;
794
+ };
795
+ var dynCallLegacy = (sig, ptr, args2) => {
796
+ sig = sig.replace(/p/g, "i");
797
+ var f = Module["dynCall_" + sig];
798
+ return f(ptr, ...args2);
799
+ };
800
+ var dynCall = (sig, ptr, args2 = []) => {
801
+ if (sig.includes("j")) {
802
+ return dynCallLegacy(sig, ptr, args2);
803
+ }
804
+ var rtn = getWasmTableEntry(ptr)(...args2);
805
+ return rtn;
806
+ };
807
+ var stackSave = () => _emscripten_stack_get_current();
808
+ var stackRestore = (val) => __emscripten_stack_restore(val);
809
+ var createInvokeFunction = (sig) => (ptr, ...args2) => {
810
+ var sp = stackSave();
811
+ try {
812
+ return dynCall(sig, ptr, args2);
813
+ } catch (e) {
814
+ stackRestore(sp);
815
+ if (e !== e + 0)
816
+ throw e;
817
+ _setThrew(1, 0);
818
+ }
819
+ };
820
+ var resolveGlobalSymbol = (symName, direct = false) => {
821
+ var sym;
822
+ if (direct && "orig$" + symName in wasmImports) {
823
+ symName = "orig$" + symName;
824
+ }
825
+ if (isSymbolDefined(symName)) {
826
+ sym = wasmImports[symName];
827
+ } else if (symName.startsWith("invoke_")) {
828
+ sym = wasmImports[symName] = createInvokeFunction(symName.split("_")[1]);
829
+ }
830
+ return {
831
+ sym,
832
+ name: symName
833
+ };
834
+ };
835
+ var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
836
+ var loadWebAssemblyModule = (binary, flags, libName, localScope, handle) => {
837
+ var metadata = getDylinkMetadata(binary);
838
+ currentModuleWeakSymbols = metadata.weakImports;
839
+ function loadModule() {
840
+ var firstLoad = !handle || !HEAP8[handle + 8];
841
+ if (firstLoad) {
842
+ var memAlign = Math.pow(2, metadata.memoryAlign);
843
+ var memoryBase = metadata.memorySize ? alignMemory(getMemory(metadata.memorySize + memAlign), memAlign) : 0;
844
+ var tableBase = metadata.tableSize ? wasmTable.length : 0;
845
+ if (handle) {
846
+ HEAP8[handle + 8] = 1;
847
+ LE_HEAP_STORE_U32((handle + 12 >> 2) * 4, memoryBase);
848
+ LE_HEAP_STORE_I32((handle + 16 >> 2) * 4, metadata.memorySize);
849
+ LE_HEAP_STORE_U32((handle + 20 >> 2) * 4, tableBase);
850
+ LE_HEAP_STORE_I32((handle + 24 >> 2) * 4, metadata.tableSize);
851
+ }
852
+ } else {
853
+ memoryBase = LE_HEAP_LOAD_U32((handle + 12 >> 2) * 4);
854
+ tableBase = LE_HEAP_LOAD_U32((handle + 20 >> 2) * 4);
855
+ }
856
+ var tableGrowthNeeded = tableBase + metadata.tableSize - wasmTable.length;
857
+ if (tableGrowthNeeded > 0) {
858
+ wasmTable.grow(tableGrowthNeeded);
859
+ }
860
+ var moduleExports;
861
+ function resolveSymbol(sym) {
862
+ var resolved = resolveGlobalSymbol(sym).sym;
863
+ if (!resolved && localScope) {
864
+ resolved = localScope[sym];
865
+ }
866
+ if (!resolved) {
867
+ resolved = moduleExports[sym];
868
+ }
869
+ return resolved;
870
+ }
871
+ var proxyHandler = {
872
+ get(stubs, prop) {
873
+ switch (prop) {
874
+ case "__memory_base":
875
+ return memoryBase;
876
+ case "__table_base":
877
+ return tableBase;
878
+ }
879
+ if (prop in wasmImports && !wasmImports[prop].stub) {
880
+ return wasmImports[prop];
881
+ }
882
+ if (!(prop in stubs)) {
883
+ var resolved;
884
+ stubs[prop] = (...args2) => {
885
+ resolved ||= resolveSymbol(prop);
886
+ return resolved(...args2);
887
+ };
888
+ }
889
+ return stubs[prop];
890
+ }
891
+ };
892
+ var proxy = new Proxy({}, proxyHandler);
893
+ var info = {
894
+ "GOT.mem": new Proxy({}, GOTHandler),
895
+ "GOT.func": new Proxy({}, GOTHandler),
896
+ env: proxy,
897
+ wasi_snapshot_preview1: proxy
898
+ };
899
+ function postInstantiation(module, instance) {
900
+ updateTableMap(tableBase, metadata.tableSize);
901
+ moduleExports = relocateExports(instance.exports, memoryBase);
902
+ if (!flags.allowUndefined) {
903
+ reportUndefinedSymbols();
904
+ }
905
+ function addEmAsm(addr, body) {
906
+ var args = [];
907
+ var arity = 0;
908
+ for (;arity < 16; arity++) {
909
+ if (body.indexOf("$" + arity) != -1) {
910
+ args.push("$" + arity);
911
+ } else {
912
+ break;
913
+ }
914
+ }
915
+ args = args.join(",");
916
+ var func = `(${args}) => { ${body} };`;
917
+ ASM_CONSTS[start] = eval(func);
918
+ }
919
+ if ("__start_em_asm" in moduleExports) {
920
+ var start = moduleExports["__start_em_asm"];
921
+ var stop = moduleExports["__stop_em_asm"];
922
+ while (start < stop) {
923
+ var jsString = UTF8ToString(start);
924
+ addEmAsm(start, jsString);
925
+ start = HEAPU8.indexOf(0, start) + 1;
926
+ }
927
+ }
928
+ function addEmJs(name, cSig, body) {
929
+ var jsArgs = [];
930
+ cSig = cSig.slice(1, -1);
931
+ if (cSig != "void") {
932
+ cSig = cSig.split(",");
933
+ for (var i in cSig) {
934
+ var jsArg = cSig[i].split(" ").pop();
935
+ jsArgs.push(jsArg.replace("*", ""));
936
+ }
937
+ }
938
+ var func = `(${jsArgs}) => ${body};`;
939
+ moduleExports[name] = eval(func);
940
+ }
941
+ for (var name in moduleExports) {
942
+ if (name.startsWith("__em_js__")) {
943
+ var start = moduleExports[name];
944
+ var jsString = UTF8ToString(start);
945
+ var parts = jsString.split("<::>");
946
+ addEmJs(name.replace("__em_js__", ""), parts[0], parts[1]);
947
+ delete moduleExports[name];
948
+ }
949
+ }
950
+ var applyRelocs = moduleExports["__wasm_apply_data_relocs"];
951
+ if (applyRelocs) {
952
+ if (runtimeInitialized) {
953
+ applyRelocs();
954
+ } else {
955
+ __RELOC_FUNCS__.push(applyRelocs);
956
+ }
957
+ }
958
+ var init = moduleExports["__wasm_call_ctors"];
959
+ if (init) {
960
+ if (runtimeInitialized) {
961
+ init();
962
+ } else {
963
+ __ATINIT__.push(init);
964
+ }
965
+ }
966
+ return moduleExports;
967
+ }
968
+ if (flags.loadAsync) {
969
+ if (binary instanceof WebAssembly.Module) {
970
+ var instance = new WebAssembly.Instance(binary, info);
971
+ return Promise.resolve(postInstantiation(binary, instance));
972
+ }
973
+ return WebAssembly.instantiate(binary, info).then((result) => postInstantiation(result.module, result.instance));
974
+ }
975
+ var module = binary instanceof WebAssembly.Module ? binary : new WebAssembly.Module(binary);
976
+ var instance = new WebAssembly.Instance(module, info);
977
+ return postInstantiation(module, instance);
978
+ }
979
+ if (flags.loadAsync) {
980
+ return metadata.neededDynlibs.reduce((chain, dynNeeded) => chain.then(() => loadDynamicLibrary(dynNeeded, flags, localScope)), Promise.resolve()).then(loadModule);
981
+ }
982
+ metadata.neededDynlibs.forEach((needed) => loadDynamicLibrary(needed, flags, localScope));
983
+ return loadModule();
984
+ };
985
+ var mergeLibSymbols = (exports2, libName2) => {
986
+ for (var [sym, exp] of Object.entries(exports2)) {
987
+ const setImport = (target) => {
988
+ if (!isSymbolDefined(target)) {
989
+ wasmImports[target] = exp;
990
+ }
991
+ };
992
+ setImport(sym);
993
+ const main_alias = "__main_argc_argv";
994
+ if (sym == "main") {
995
+ setImport(main_alias);
996
+ }
997
+ if (sym == main_alias) {
998
+ setImport("main");
999
+ }
1000
+ if (sym.startsWith("dynCall_") && !Module.hasOwnProperty(sym)) {
1001
+ Module[sym] = exp;
1002
+ }
1003
+ }
1004
+ };
1005
+ var asyncLoad = (url, onload, onerror, noRunDep) => {
1006
+ var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : "";
1007
+ readAsync(url).then((arrayBuffer) => {
1008
+ onload(new Uint8Array(arrayBuffer));
1009
+ if (dep)
1010
+ removeRunDependency(dep);
1011
+ }, (err2) => {
1012
+ if (onerror) {
1013
+ onerror();
1014
+ } else {
1015
+ throw `Loading data file "${url}" failed.`;
1016
+ }
1017
+ });
1018
+ if (dep)
1019
+ addRunDependency(dep);
1020
+ };
1021
+ function loadDynamicLibrary(libName2, flags2 = {
1022
+ global: true,
1023
+ nodelete: true
1024
+ }, localScope2, handle2) {
1025
+ var dso = LDSO.loadedLibsByName[libName2];
1026
+ if (dso) {
1027
+ if (!flags2.global) {
1028
+ if (localScope2) {
1029
+ Object.assign(localScope2, dso.exports);
1030
+ }
1031
+ } else if (!dso.global) {
1032
+ dso.global = true;
1033
+ mergeLibSymbols(dso.exports, libName2);
1034
+ }
1035
+ if (flags2.nodelete && dso.refcount !== Infinity) {
1036
+ dso.refcount = Infinity;
1037
+ }
1038
+ dso.refcount++;
1039
+ if (handle2) {
1040
+ LDSO.loadedLibsByHandle[handle2] = dso;
1041
+ }
1042
+ return flags2.loadAsync ? Promise.resolve(true) : true;
1043
+ }
1044
+ dso = newDSO(libName2, handle2, "loading");
1045
+ dso.refcount = flags2.nodelete ? Infinity : 1;
1046
+ dso.global = flags2.global;
1047
+ function loadLibData() {
1048
+ if (handle2) {
1049
+ var data = LE_HEAP_LOAD_U32((handle2 + 28 >> 2) * 4);
1050
+ var dataSize = LE_HEAP_LOAD_U32((handle2 + 32 >> 2) * 4);
1051
+ if (data && dataSize) {
1052
+ var libData = HEAP8.slice(data, data + dataSize);
1053
+ return flags2.loadAsync ? Promise.resolve(libData) : libData;
1054
+ }
1055
+ }
1056
+ var libFile = locateFile(libName2);
1057
+ if (flags2.loadAsync) {
1058
+ return new Promise(function(resolve, reject) {
1059
+ asyncLoad(libFile, resolve, reject);
1060
+ });
1061
+ }
1062
+ if (!readBinary) {
1063
+ throw new Error(`${libFile}: file not found, and synchronous loading of external files is not available`);
1064
+ }
1065
+ return readBinary(libFile);
1066
+ }
1067
+ function getExports() {
1068
+ if (flags2.loadAsync) {
1069
+ return loadLibData().then((libData) => loadWebAssemblyModule(libData, flags2, libName2, localScope2, handle2));
1070
+ }
1071
+ return loadWebAssemblyModule(loadLibData(), flags2, libName2, localScope2, handle2);
1072
+ }
1073
+ function moduleLoaded(exports2) {
1074
+ if (dso.global) {
1075
+ mergeLibSymbols(exports2, libName2);
1076
+ } else if (localScope2) {
1077
+ Object.assign(localScope2, exports2);
1078
+ }
1079
+ dso.exports = exports2;
1080
+ }
1081
+ if (flags2.loadAsync) {
1082
+ return getExports().then((exports2) => {
1083
+ moduleLoaded(exports2);
1084
+ return true;
1085
+ });
1086
+ }
1087
+ moduleLoaded(getExports());
1088
+ return true;
1089
+ }
1090
+ var reportUndefinedSymbols = () => {
1091
+ for (var [symName, entry] of Object.entries(GOT)) {
1092
+ if (entry.value == 0) {
1093
+ var value = resolveGlobalSymbol(symName, true).sym;
1094
+ if (!value && !entry.required) {
1095
+ continue;
1096
+ }
1097
+ if (typeof value == "function") {
1098
+ entry.value = addFunction(value, value.sig);
1099
+ } else if (typeof value == "number") {
1100
+ entry.value = value;
1101
+ } else {
1102
+ throw new Error(`bad export type for '${symName}': ${typeof value}`);
1103
+ }
1104
+ }
1105
+ }
1106
+ };
1107
+ var loadDylibs = () => {
1108
+ if (!dynamicLibraries.length) {
1109
+ reportUndefinedSymbols();
1110
+ return;
1111
+ }
1112
+ addRunDependency("loadDylibs");
1113
+ dynamicLibraries.reduce((chain, lib) => chain.then(() => loadDynamicLibrary(lib, {
1114
+ loadAsync: true,
1115
+ global: true,
1116
+ nodelete: true,
1117
+ allowUndefined: true
1118
+ })), Promise.resolve()).then(() => {
1119
+ reportUndefinedSymbols();
1120
+ removeRunDependency("loadDylibs");
1121
+ });
1122
+ };
1123
+ var noExitRuntime = Module["noExitRuntime"] || true;
1124
+ function setValue(ptr, value, type = "i8") {
1125
+ if (type.endsWith("*"))
1126
+ type = "*";
1127
+ switch (type) {
1128
+ case "i1":
1129
+ HEAP8[ptr] = value;
1130
+ break;
1131
+ case "i8":
1132
+ HEAP8[ptr] = value;
1133
+ break;
1134
+ case "i16":
1135
+ LE_HEAP_STORE_I16((ptr >> 1) * 2, value);
1136
+ break;
1137
+ case "i32":
1138
+ LE_HEAP_STORE_I32((ptr >> 2) * 4, value);
1139
+ break;
1140
+ case "i64":
1141
+ abort("to do setValue(i64) use WASM_BIGINT");
1142
+ case "float":
1143
+ LE_HEAP_STORE_F32((ptr >> 2) * 4, value);
1144
+ break;
1145
+ case "double":
1146
+ LE_HEAP_STORE_F64((ptr >> 3) * 8, value);
1147
+ break;
1148
+ case "*":
1149
+ LE_HEAP_STORE_U32((ptr >> 2) * 4, value);
1150
+ break;
1151
+ default:
1152
+ abort(`invalid type for setValue: ${type}`);
1153
+ }
1154
+ }
1155
+ var ___memory_base = new WebAssembly.Global({
1156
+ value: "i32",
1157
+ mutable: false
1158
+ }, 1024);
1159
+ var ___stack_pointer = new WebAssembly.Global({
1160
+ value: "i32",
1161
+ mutable: true
1162
+ }, 78112);
1163
+ var ___table_base = new WebAssembly.Global({
1164
+ value: "i32",
1165
+ mutable: false
1166
+ }, 1);
1167
+ var __abort_js = () => {
1168
+ abort("");
1169
+ };
1170
+ __abort_js.sig = "v";
1171
+ var nowIsMonotonic = 1;
1172
+ var __emscripten_get_now_is_monotonic = () => nowIsMonotonic;
1173
+ __emscripten_get_now_is_monotonic.sig = "i";
1174
+ var __emscripten_memcpy_js = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num);
1175
+ __emscripten_memcpy_js.sig = "vppp";
1176
+ var _emscripten_date_now = () => Date.now();
1177
+ _emscripten_date_now.sig = "d";
1178
+ var _emscripten_get_now;
1179
+ _emscripten_get_now = () => performance.now();
1180
+ _emscripten_get_now.sig = "d";
1181
+ var getHeapMax = () => 2147483648;
1182
+ var growMemory = (size) => {
1183
+ var b = wasmMemory.buffer;
1184
+ var pages = (size - b.byteLength + 65535) / 65536;
1185
+ try {
1186
+ wasmMemory.grow(pages);
1187
+ updateMemoryViews();
1188
+ return 1;
1189
+ } catch (e) {}
1190
+ };
1191
+ var _emscripten_resize_heap = (requestedSize) => {
1192
+ var oldSize = HEAPU8.length;
1193
+ requestedSize >>>= 0;
1194
+ var maxHeapSize = getHeapMax();
1195
+ if (requestedSize > maxHeapSize) {
1196
+ return false;
1197
+ }
1198
+ var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;
1199
+ for (var cutDown = 1;cutDown <= 4; cutDown *= 2) {
1200
+ var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
1201
+ overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
1202
+ var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
1203
+ var replacement = growMemory(newSize);
1204
+ if (replacement) {
1205
+ return true;
1206
+ }
1207
+ }
1208
+ return false;
1209
+ };
1210
+ _emscripten_resize_heap.sig = "ip";
1211
+ var _fd_close = (fd) => 52;
1212
+ _fd_close.sig = "ii";
1213
+ var convertI32PairToI53Checked = (lo, hi) => hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN;
1214
+ function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
1215
+ var offset = convertI32PairToI53Checked(offset_low, offset_high);
1216
+ return 70;
1217
+ }
1218
+ _fd_seek.sig = "iiiiip";
1219
+ var printCharBuffers = [null, [], []];
1220
+ var printChar = (stream, curr) => {
1221
+ var buffer = printCharBuffers[stream];
1222
+ if (curr === 0 || curr === 10) {
1223
+ (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
1224
+ buffer.length = 0;
1225
+ } else {
1226
+ buffer.push(curr);
1227
+ }
1228
+ };
1229
+ var _fd_write = (fd, iov, iovcnt, pnum) => {
1230
+ var num = 0;
1231
+ for (var i2 = 0;i2 < iovcnt; i2++) {
1232
+ var ptr = LE_HEAP_LOAD_U32((iov >> 2) * 4);
1233
+ var len = LE_HEAP_LOAD_U32((iov + 4 >> 2) * 4);
1234
+ iov += 8;
1235
+ for (var j = 0;j < len; j++) {
1236
+ printChar(fd, HEAPU8[ptr + j]);
1237
+ }
1238
+ num += len;
1239
+ }
1240
+ LE_HEAP_STORE_U32((pnum >> 2) * 4, num);
1241
+ return 0;
1242
+ };
1243
+ _fd_write.sig = "iippp";
1244
+ function _tree_sitter_log_callback(isLexMessage, messageAddress) {
1245
+ if (currentLogCallback) {
1246
+ const message = UTF8ToString(messageAddress);
1247
+ currentLogCallback(message, isLexMessage !== 0);
1248
+ }
1249
+ }
1250
+ function _tree_sitter_parse_callback(inputBufferAddress, index, row, column, lengthAddress) {
1251
+ const INPUT_BUFFER_SIZE = 10 * 1024;
1252
+ const string = currentParseCallback(index, {
1253
+ row,
1254
+ column
1255
+ });
1256
+ if (typeof string === "string") {
1257
+ setValue(lengthAddress, string.length, "i32");
1258
+ stringToUTF16(string, inputBufferAddress, INPUT_BUFFER_SIZE);
1259
+ } else {
1260
+ setValue(lengthAddress, 0, "i32");
1261
+ }
1262
+ }
1263
+ var runtimeKeepaliveCounter = 0;
1264
+ var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;
1265
+ var _proc_exit = (code) => {
1266
+ EXITSTATUS = code;
1267
+ if (!keepRuntimeAlive()) {
1268
+ Module["onExit"]?.(code);
1269
+ ABORT = true;
1270
+ }
1271
+ quit_(code, new ExitStatus(code));
1272
+ };
1273
+ _proc_exit.sig = "vi";
1274
+ var exitJS = (status, implicit) => {
1275
+ EXITSTATUS = status;
1276
+ _proc_exit(status);
1277
+ };
1278
+ var handleException = (e) => {
1279
+ if (e instanceof ExitStatus || e == "unwind") {
1280
+ return EXITSTATUS;
1281
+ }
1282
+ quit_(1, e);
1283
+ };
1284
+ var lengthBytesUTF8 = (str) => {
1285
+ var len = 0;
1286
+ for (var i2 = 0;i2 < str.length; ++i2) {
1287
+ var c = str.charCodeAt(i2);
1288
+ if (c <= 127) {
1289
+ len++;
1290
+ } else if (c <= 2047) {
1291
+ len += 2;
1292
+ } else if (c >= 55296 && c <= 57343) {
1293
+ len += 4;
1294
+ ++i2;
1295
+ } else {
1296
+ len += 3;
1297
+ }
1298
+ }
1299
+ return len;
1300
+ };
1301
+ var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
1302
+ if (!(maxBytesToWrite > 0))
1303
+ return 0;
1304
+ var startIdx = outIdx;
1305
+ var endIdx = outIdx + maxBytesToWrite - 1;
1306
+ for (var i2 = 0;i2 < str.length; ++i2) {
1307
+ var u = str.charCodeAt(i2);
1308
+ if (u >= 55296 && u <= 57343) {
1309
+ var u1 = str.charCodeAt(++i2);
1310
+ u = 65536 + ((u & 1023) << 10) | u1 & 1023;
1311
+ }
1312
+ if (u <= 127) {
1313
+ if (outIdx >= endIdx)
1314
+ break;
1315
+ heap[outIdx++] = u;
1316
+ } else if (u <= 2047) {
1317
+ if (outIdx + 1 >= endIdx)
1318
+ break;
1319
+ heap[outIdx++] = 192 | u >> 6;
1320
+ heap[outIdx++] = 128 | u & 63;
1321
+ } else if (u <= 65535) {
1322
+ if (outIdx + 2 >= endIdx)
1323
+ break;
1324
+ heap[outIdx++] = 224 | u >> 12;
1325
+ heap[outIdx++] = 128 | u >> 6 & 63;
1326
+ heap[outIdx++] = 128 | u & 63;
1327
+ } else {
1328
+ if (outIdx + 3 >= endIdx)
1329
+ break;
1330
+ heap[outIdx++] = 240 | u >> 18;
1331
+ heap[outIdx++] = 128 | u >> 12 & 63;
1332
+ heap[outIdx++] = 128 | u >> 6 & 63;
1333
+ heap[outIdx++] = 128 | u & 63;
1334
+ }
1335
+ }
1336
+ heap[outIdx] = 0;
1337
+ return outIdx - startIdx;
1338
+ };
1339
+ var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
1340
+ var stackAlloc = (sz) => __emscripten_stack_alloc(sz);
1341
+ var stringToUTF8OnStack = (str) => {
1342
+ var size = lengthBytesUTF8(str) + 1;
1343
+ var ret = stackAlloc(size);
1344
+ stringToUTF8(str, ret, size);
1345
+ return ret;
1346
+ };
1347
+ var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {
1348
+ maxBytesToWrite ??= 2147483647;
1349
+ if (maxBytesToWrite < 2)
1350
+ return 0;
1351
+ maxBytesToWrite -= 2;
1352
+ var startPtr = outPtr;
1353
+ var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
1354
+ for (var i2 = 0;i2 < numCharsToWrite; ++i2) {
1355
+ var codeUnit = str.charCodeAt(i2);
1356
+ LE_HEAP_STORE_I16((outPtr >> 1) * 2, codeUnit);
1357
+ outPtr += 2;
1358
+ }
1359
+ LE_HEAP_STORE_I16((outPtr >> 1) * 2, 0);
1360
+ return outPtr - startPtr;
1361
+ };
1362
+ var AsciiToString = (ptr) => {
1363
+ var str = "";
1364
+ while (true) {
1365
+ var ch = HEAPU8[ptr++];
1366
+ if (!ch)
1367
+ return str;
1368
+ str += String.fromCharCode(ch);
1369
+ }
1370
+ };
1371
+ var wasmImports = {
1372
+ __heap_base: ___heap_base,
1373
+ __indirect_function_table: wasmTable,
1374
+ __memory_base: ___memory_base,
1375
+ __stack_pointer: ___stack_pointer,
1376
+ __table_base: ___table_base,
1377
+ _abort_js: __abort_js,
1378
+ _emscripten_get_now_is_monotonic: __emscripten_get_now_is_monotonic,
1379
+ _emscripten_memcpy_js: __emscripten_memcpy_js,
1380
+ emscripten_get_now: _emscripten_get_now,
1381
+ emscripten_resize_heap: _emscripten_resize_heap,
1382
+ fd_close: _fd_close,
1383
+ fd_seek: _fd_seek,
1384
+ fd_write: _fd_write,
1385
+ memory: wasmMemory,
1386
+ tree_sitter_log_callback: _tree_sitter_log_callback,
1387
+ tree_sitter_parse_callback: _tree_sitter_parse_callback
1388
+ };
1389
+ var wasmExports = createWasm();
1390
+ var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["__wasm_call_ctors"])();
1391
+ var ___wasm_apply_data_relocs = () => (___wasm_apply_data_relocs = wasmExports["__wasm_apply_data_relocs"])();
1392
+ var _malloc = Module["_malloc"] = (a0) => (_malloc = Module["_malloc"] = wasmExports["malloc"])(a0);
1393
+ var _calloc = Module["_calloc"] = (a0, a1) => (_calloc = Module["_calloc"] = wasmExports["calloc"])(a0, a1);
1394
+ var _realloc = Module["_realloc"] = (a0, a1) => (_realloc = Module["_realloc"] = wasmExports["realloc"])(a0, a1);
1395
+ var _free = Module["_free"] = (a0) => (_free = Module["_free"] = wasmExports["free"])(a0);
1396
+ var _ts_language_symbol_count = Module["_ts_language_symbol_count"] = (a0) => (_ts_language_symbol_count = Module["_ts_language_symbol_count"] = wasmExports["ts_language_symbol_count"])(a0);
1397
+ var _ts_language_state_count = Module["_ts_language_state_count"] = (a0) => (_ts_language_state_count = Module["_ts_language_state_count"] = wasmExports["ts_language_state_count"])(a0);
1398
+ var _ts_language_version = Module["_ts_language_version"] = (a0) => (_ts_language_version = Module["_ts_language_version"] = wasmExports["ts_language_version"])(a0);
1399
+ var _ts_language_field_count = Module["_ts_language_field_count"] = (a0) => (_ts_language_field_count = Module["_ts_language_field_count"] = wasmExports["ts_language_field_count"])(a0);
1400
+ var _ts_language_next_state = Module["_ts_language_next_state"] = (a0, a1, a2) => (_ts_language_next_state = Module["_ts_language_next_state"] = wasmExports["ts_language_next_state"])(a0, a1, a2);
1401
+ var _ts_language_symbol_name = Module["_ts_language_symbol_name"] = (a0, a1) => (_ts_language_symbol_name = Module["_ts_language_symbol_name"] = wasmExports["ts_language_symbol_name"])(a0, a1);
1402
+ var _ts_language_symbol_for_name = Module["_ts_language_symbol_for_name"] = (a0, a1, a2, a3) => (_ts_language_symbol_for_name = Module["_ts_language_symbol_for_name"] = wasmExports["ts_language_symbol_for_name"])(a0, a1, a2, a3);
1403
+ var _strncmp = Module["_strncmp"] = (a0, a1, a2) => (_strncmp = Module["_strncmp"] = wasmExports["strncmp"])(a0, a1, a2);
1404
+ var _ts_language_symbol_type = Module["_ts_language_symbol_type"] = (a0, a1) => (_ts_language_symbol_type = Module["_ts_language_symbol_type"] = wasmExports["ts_language_symbol_type"])(a0, a1);
1405
+ var _ts_language_field_name_for_id = Module["_ts_language_field_name_for_id"] = (a0, a1) => (_ts_language_field_name_for_id = Module["_ts_language_field_name_for_id"] = wasmExports["ts_language_field_name_for_id"])(a0, a1);
1406
+ var _ts_lookahead_iterator_new = Module["_ts_lookahead_iterator_new"] = (a0, a1) => (_ts_lookahead_iterator_new = Module["_ts_lookahead_iterator_new"] = wasmExports["ts_lookahead_iterator_new"])(a0, a1);
1407
+ var _ts_lookahead_iterator_delete = Module["_ts_lookahead_iterator_delete"] = (a0) => (_ts_lookahead_iterator_delete = Module["_ts_lookahead_iterator_delete"] = wasmExports["ts_lookahead_iterator_delete"])(a0);
1408
+ var _ts_lookahead_iterator_reset_state = Module["_ts_lookahead_iterator_reset_state"] = (a0, a1) => (_ts_lookahead_iterator_reset_state = Module["_ts_lookahead_iterator_reset_state"] = wasmExports["ts_lookahead_iterator_reset_state"])(a0, a1);
1409
+ var _ts_lookahead_iterator_reset = Module["_ts_lookahead_iterator_reset"] = (a0, a1, a2) => (_ts_lookahead_iterator_reset = Module["_ts_lookahead_iterator_reset"] = wasmExports["ts_lookahead_iterator_reset"])(a0, a1, a2);
1410
+ var _ts_lookahead_iterator_next = Module["_ts_lookahead_iterator_next"] = (a0) => (_ts_lookahead_iterator_next = Module["_ts_lookahead_iterator_next"] = wasmExports["ts_lookahead_iterator_next"])(a0);
1411
+ var _ts_lookahead_iterator_current_symbol = Module["_ts_lookahead_iterator_current_symbol"] = (a0) => (_ts_lookahead_iterator_current_symbol = Module["_ts_lookahead_iterator_current_symbol"] = wasmExports["ts_lookahead_iterator_current_symbol"])(a0);
1412
+ var _memset = Module["_memset"] = (a0, a1, a2) => (_memset = Module["_memset"] = wasmExports["memset"])(a0, a1, a2);
1413
+ var _memcpy = Module["_memcpy"] = (a0, a1, a2) => (_memcpy = Module["_memcpy"] = wasmExports["memcpy"])(a0, a1, a2);
1414
+ var _ts_parser_delete = Module["_ts_parser_delete"] = (a0) => (_ts_parser_delete = Module["_ts_parser_delete"] = wasmExports["ts_parser_delete"])(a0);
1415
+ var _ts_parser_reset = Module["_ts_parser_reset"] = (a0) => (_ts_parser_reset = Module["_ts_parser_reset"] = wasmExports["ts_parser_reset"])(a0);
1416
+ var _ts_parser_set_language = Module["_ts_parser_set_language"] = (a0, a1) => (_ts_parser_set_language = Module["_ts_parser_set_language"] = wasmExports["ts_parser_set_language"])(a0, a1);
1417
+ var _ts_parser_timeout_micros = Module["_ts_parser_timeout_micros"] = (a0) => (_ts_parser_timeout_micros = Module["_ts_parser_timeout_micros"] = wasmExports["ts_parser_timeout_micros"])(a0);
1418
+ var _ts_parser_set_timeout_micros = Module["_ts_parser_set_timeout_micros"] = (a0, a1, a2) => (_ts_parser_set_timeout_micros = Module["_ts_parser_set_timeout_micros"] = wasmExports["ts_parser_set_timeout_micros"])(a0, a1, a2);
1419
+ var _ts_parser_set_included_ranges = Module["_ts_parser_set_included_ranges"] = (a0, a1, a2) => (_ts_parser_set_included_ranges = Module["_ts_parser_set_included_ranges"] = wasmExports["ts_parser_set_included_ranges"])(a0, a1, a2);
1420
+ var _memmove = Module["_memmove"] = (a0, a1, a2) => (_memmove = Module["_memmove"] = wasmExports["memmove"])(a0, a1, a2);
1421
+ var _memcmp = Module["_memcmp"] = (a0, a1, a2) => (_memcmp = Module["_memcmp"] = wasmExports["memcmp"])(a0, a1, a2);
1422
+ var _ts_query_new = Module["_ts_query_new"] = (a0, a1, a2, a3, a4) => (_ts_query_new = Module["_ts_query_new"] = wasmExports["ts_query_new"])(a0, a1, a2, a3, a4);
1423
+ var _ts_query_delete = Module["_ts_query_delete"] = (a0) => (_ts_query_delete = Module["_ts_query_delete"] = wasmExports["ts_query_delete"])(a0);
1424
+ var _iswspace = Module["_iswspace"] = (a0) => (_iswspace = Module["_iswspace"] = wasmExports["iswspace"])(a0);
1425
+ var _iswalnum = Module["_iswalnum"] = (a0) => (_iswalnum = Module["_iswalnum"] = wasmExports["iswalnum"])(a0);
1426
+ var _ts_query_pattern_count = Module["_ts_query_pattern_count"] = (a0) => (_ts_query_pattern_count = Module["_ts_query_pattern_count"] = wasmExports["ts_query_pattern_count"])(a0);
1427
+ var _ts_query_capture_count = Module["_ts_query_capture_count"] = (a0) => (_ts_query_capture_count = Module["_ts_query_capture_count"] = wasmExports["ts_query_capture_count"])(a0);
1428
+ var _ts_query_string_count = Module["_ts_query_string_count"] = (a0) => (_ts_query_string_count = Module["_ts_query_string_count"] = wasmExports["ts_query_string_count"])(a0);
1429
+ var _ts_query_capture_name_for_id = Module["_ts_query_capture_name_for_id"] = (a0, a1, a2) => (_ts_query_capture_name_for_id = Module["_ts_query_capture_name_for_id"] = wasmExports["ts_query_capture_name_for_id"])(a0, a1, a2);
1430
+ var _ts_query_string_value_for_id = Module["_ts_query_string_value_for_id"] = (a0, a1, a2) => (_ts_query_string_value_for_id = Module["_ts_query_string_value_for_id"] = wasmExports["ts_query_string_value_for_id"])(a0, a1, a2);
1431
+ var _ts_query_predicates_for_pattern = Module["_ts_query_predicates_for_pattern"] = (a0, a1, a2) => (_ts_query_predicates_for_pattern = Module["_ts_query_predicates_for_pattern"] = wasmExports["ts_query_predicates_for_pattern"])(a0, a1, a2);
1432
+ var _ts_query_disable_capture = Module["_ts_query_disable_capture"] = (a0, a1, a2) => (_ts_query_disable_capture = Module["_ts_query_disable_capture"] = wasmExports["ts_query_disable_capture"])(a0, a1, a2);
1433
+ var _ts_tree_copy = Module["_ts_tree_copy"] = (a0) => (_ts_tree_copy = Module["_ts_tree_copy"] = wasmExports["ts_tree_copy"])(a0);
1434
+ var _ts_tree_delete = Module["_ts_tree_delete"] = (a0) => (_ts_tree_delete = Module["_ts_tree_delete"] = wasmExports["ts_tree_delete"])(a0);
1435
+ var _ts_init = Module["_ts_init"] = () => (_ts_init = Module["_ts_init"] = wasmExports["ts_init"])();
1436
+ var _ts_parser_new_wasm = Module["_ts_parser_new_wasm"] = () => (_ts_parser_new_wasm = Module["_ts_parser_new_wasm"] = wasmExports["ts_parser_new_wasm"])();
1437
+ var _ts_parser_enable_logger_wasm = Module["_ts_parser_enable_logger_wasm"] = (a0, a1) => (_ts_parser_enable_logger_wasm = Module["_ts_parser_enable_logger_wasm"] = wasmExports["ts_parser_enable_logger_wasm"])(a0, a1);
1438
+ var _ts_parser_parse_wasm = Module["_ts_parser_parse_wasm"] = (a0, a1, a2, a3, a4) => (_ts_parser_parse_wasm = Module["_ts_parser_parse_wasm"] = wasmExports["ts_parser_parse_wasm"])(a0, a1, a2, a3, a4);
1439
+ var _ts_parser_included_ranges_wasm = Module["_ts_parser_included_ranges_wasm"] = (a0) => (_ts_parser_included_ranges_wasm = Module["_ts_parser_included_ranges_wasm"] = wasmExports["ts_parser_included_ranges_wasm"])(a0);
1440
+ var _ts_language_type_is_named_wasm = Module["_ts_language_type_is_named_wasm"] = (a0, a1) => (_ts_language_type_is_named_wasm = Module["_ts_language_type_is_named_wasm"] = wasmExports["ts_language_type_is_named_wasm"])(a0, a1);
1441
+ var _ts_language_type_is_visible_wasm = Module["_ts_language_type_is_visible_wasm"] = (a0, a1) => (_ts_language_type_is_visible_wasm = Module["_ts_language_type_is_visible_wasm"] = wasmExports["ts_language_type_is_visible_wasm"])(a0, a1);
1442
+ var _ts_tree_root_node_wasm = Module["_ts_tree_root_node_wasm"] = (a0) => (_ts_tree_root_node_wasm = Module["_ts_tree_root_node_wasm"] = wasmExports["ts_tree_root_node_wasm"])(a0);
1443
+ var _ts_tree_root_node_with_offset_wasm = Module["_ts_tree_root_node_with_offset_wasm"] = (a0) => (_ts_tree_root_node_with_offset_wasm = Module["_ts_tree_root_node_with_offset_wasm"] = wasmExports["ts_tree_root_node_with_offset_wasm"])(a0);
1444
+ var _ts_tree_edit_wasm = Module["_ts_tree_edit_wasm"] = (a0) => (_ts_tree_edit_wasm = Module["_ts_tree_edit_wasm"] = wasmExports["ts_tree_edit_wasm"])(a0);
1445
+ var _ts_tree_included_ranges_wasm = Module["_ts_tree_included_ranges_wasm"] = (a0) => (_ts_tree_included_ranges_wasm = Module["_ts_tree_included_ranges_wasm"] = wasmExports["ts_tree_included_ranges_wasm"])(a0);
1446
+ var _ts_tree_get_changed_ranges_wasm = Module["_ts_tree_get_changed_ranges_wasm"] = (a0, a1) => (_ts_tree_get_changed_ranges_wasm = Module["_ts_tree_get_changed_ranges_wasm"] = wasmExports["ts_tree_get_changed_ranges_wasm"])(a0, a1);
1447
+ var _ts_tree_cursor_new_wasm = Module["_ts_tree_cursor_new_wasm"] = (a0) => (_ts_tree_cursor_new_wasm = Module["_ts_tree_cursor_new_wasm"] = wasmExports["ts_tree_cursor_new_wasm"])(a0);
1448
+ var _ts_tree_cursor_delete_wasm = Module["_ts_tree_cursor_delete_wasm"] = (a0) => (_ts_tree_cursor_delete_wasm = Module["_ts_tree_cursor_delete_wasm"] = wasmExports["ts_tree_cursor_delete_wasm"])(a0);
1449
+ var _ts_tree_cursor_reset_wasm = Module["_ts_tree_cursor_reset_wasm"] = (a0) => (_ts_tree_cursor_reset_wasm = Module["_ts_tree_cursor_reset_wasm"] = wasmExports["ts_tree_cursor_reset_wasm"])(a0);
1450
+ var _ts_tree_cursor_reset_to_wasm = Module["_ts_tree_cursor_reset_to_wasm"] = (a0, a1) => (_ts_tree_cursor_reset_to_wasm = Module["_ts_tree_cursor_reset_to_wasm"] = wasmExports["ts_tree_cursor_reset_to_wasm"])(a0, a1);
1451
+ var _ts_tree_cursor_goto_first_child_wasm = Module["_ts_tree_cursor_goto_first_child_wasm"] = (a0) => (_ts_tree_cursor_goto_first_child_wasm = Module["_ts_tree_cursor_goto_first_child_wasm"] = wasmExports["ts_tree_cursor_goto_first_child_wasm"])(a0);
1452
+ var _ts_tree_cursor_goto_last_child_wasm = Module["_ts_tree_cursor_goto_last_child_wasm"] = (a0) => (_ts_tree_cursor_goto_last_child_wasm = Module["_ts_tree_cursor_goto_last_child_wasm"] = wasmExports["ts_tree_cursor_goto_last_child_wasm"])(a0);
1453
+ var _ts_tree_cursor_goto_first_child_for_index_wasm = Module["_ts_tree_cursor_goto_first_child_for_index_wasm"] = (a0) => (_ts_tree_cursor_goto_first_child_for_index_wasm = Module["_ts_tree_cursor_goto_first_child_for_index_wasm"] = wasmExports["ts_tree_cursor_goto_first_child_for_index_wasm"])(a0);
1454
+ var _ts_tree_cursor_goto_first_child_for_position_wasm = Module["_ts_tree_cursor_goto_first_child_for_position_wasm"] = (a0) => (_ts_tree_cursor_goto_first_child_for_position_wasm = Module["_ts_tree_cursor_goto_first_child_for_position_wasm"] = wasmExports["ts_tree_cursor_goto_first_child_for_position_wasm"])(a0);
1455
+ var _ts_tree_cursor_goto_next_sibling_wasm = Module["_ts_tree_cursor_goto_next_sibling_wasm"] = (a0) => (_ts_tree_cursor_goto_next_sibling_wasm = Module["_ts_tree_cursor_goto_next_sibling_wasm"] = wasmExports["ts_tree_cursor_goto_next_sibling_wasm"])(a0);
1456
+ var _ts_tree_cursor_goto_previous_sibling_wasm = Module["_ts_tree_cursor_goto_previous_sibling_wasm"] = (a0) => (_ts_tree_cursor_goto_previous_sibling_wasm = Module["_ts_tree_cursor_goto_previous_sibling_wasm"] = wasmExports["ts_tree_cursor_goto_previous_sibling_wasm"])(a0);
1457
+ var _ts_tree_cursor_goto_descendant_wasm = Module["_ts_tree_cursor_goto_descendant_wasm"] = (a0, a1) => (_ts_tree_cursor_goto_descendant_wasm = Module["_ts_tree_cursor_goto_descendant_wasm"] = wasmExports["ts_tree_cursor_goto_descendant_wasm"])(a0, a1);
1458
+ var _ts_tree_cursor_goto_parent_wasm = Module["_ts_tree_cursor_goto_parent_wasm"] = (a0) => (_ts_tree_cursor_goto_parent_wasm = Module["_ts_tree_cursor_goto_parent_wasm"] = wasmExports["ts_tree_cursor_goto_parent_wasm"])(a0);
1459
+ var _ts_tree_cursor_current_node_type_id_wasm = Module["_ts_tree_cursor_current_node_type_id_wasm"] = (a0) => (_ts_tree_cursor_current_node_type_id_wasm = Module["_ts_tree_cursor_current_node_type_id_wasm"] = wasmExports["ts_tree_cursor_current_node_type_id_wasm"])(a0);
1460
+ var _ts_tree_cursor_current_node_state_id_wasm = Module["_ts_tree_cursor_current_node_state_id_wasm"] = (a0) => (_ts_tree_cursor_current_node_state_id_wasm = Module["_ts_tree_cursor_current_node_state_id_wasm"] = wasmExports["ts_tree_cursor_current_node_state_id_wasm"])(a0);
1461
+ var _ts_tree_cursor_current_node_is_named_wasm = Module["_ts_tree_cursor_current_node_is_named_wasm"] = (a0) => (_ts_tree_cursor_current_node_is_named_wasm = Module["_ts_tree_cursor_current_node_is_named_wasm"] = wasmExports["ts_tree_cursor_current_node_is_named_wasm"])(a0);
1462
+ var _ts_tree_cursor_current_node_is_missing_wasm = Module["_ts_tree_cursor_current_node_is_missing_wasm"] = (a0) => (_ts_tree_cursor_current_node_is_missing_wasm = Module["_ts_tree_cursor_current_node_is_missing_wasm"] = wasmExports["ts_tree_cursor_current_node_is_missing_wasm"])(a0);
1463
+ var _ts_tree_cursor_current_node_id_wasm = Module["_ts_tree_cursor_current_node_id_wasm"] = (a0) => (_ts_tree_cursor_current_node_id_wasm = Module["_ts_tree_cursor_current_node_id_wasm"] = wasmExports["ts_tree_cursor_current_node_id_wasm"])(a0);
1464
+ var _ts_tree_cursor_start_position_wasm = Module["_ts_tree_cursor_start_position_wasm"] = (a0) => (_ts_tree_cursor_start_position_wasm = Module["_ts_tree_cursor_start_position_wasm"] = wasmExports["ts_tree_cursor_start_position_wasm"])(a0);
1465
+ var _ts_tree_cursor_end_position_wasm = Module["_ts_tree_cursor_end_position_wasm"] = (a0) => (_ts_tree_cursor_end_position_wasm = Module["_ts_tree_cursor_end_position_wasm"] = wasmExports["ts_tree_cursor_end_position_wasm"])(a0);
1466
+ var _ts_tree_cursor_start_index_wasm = Module["_ts_tree_cursor_start_index_wasm"] = (a0) => (_ts_tree_cursor_start_index_wasm = Module["_ts_tree_cursor_start_index_wasm"] = wasmExports["ts_tree_cursor_start_index_wasm"])(a0);
1467
+ var _ts_tree_cursor_end_index_wasm = Module["_ts_tree_cursor_end_index_wasm"] = (a0) => (_ts_tree_cursor_end_index_wasm = Module["_ts_tree_cursor_end_index_wasm"] = wasmExports["ts_tree_cursor_end_index_wasm"])(a0);
1468
+ var _ts_tree_cursor_current_field_id_wasm = Module["_ts_tree_cursor_current_field_id_wasm"] = (a0) => (_ts_tree_cursor_current_field_id_wasm = Module["_ts_tree_cursor_current_field_id_wasm"] = wasmExports["ts_tree_cursor_current_field_id_wasm"])(a0);
1469
+ var _ts_tree_cursor_current_depth_wasm = Module["_ts_tree_cursor_current_depth_wasm"] = (a0) => (_ts_tree_cursor_current_depth_wasm = Module["_ts_tree_cursor_current_depth_wasm"] = wasmExports["ts_tree_cursor_current_depth_wasm"])(a0);
1470
+ var _ts_tree_cursor_current_descendant_index_wasm = Module["_ts_tree_cursor_current_descendant_index_wasm"] = (a0) => (_ts_tree_cursor_current_descendant_index_wasm = Module["_ts_tree_cursor_current_descendant_index_wasm"] = wasmExports["ts_tree_cursor_current_descendant_index_wasm"])(a0);
1471
+ var _ts_tree_cursor_current_node_wasm = Module["_ts_tree_cursor_current_node_wasm"] = (a0) => (_ts_tree_cursor_current_node_wasm = Module["_ts_tree_cursor_current_node_wasm"] = wasmExports["ts_tree_cursor_current_node_wasm"])(a0);
1472
+ var _ts_node_symbol_wasm = Module["_ts_node_symbol_wasm"] = (a0) => (_ts_node_symbol_wasm = Module["_ts_node_symbol_wasm"] = wasmExports["ts_node_symbol_wasm"])(a0);
1473
+ var _ts_node_field_name_for_child_wasm = Module["_ts_node_field_name_for_child_wasm"] = (a0, a1) => (_ts_node_field_name_for_child_wasm = Module["_ts_node_field_name_for_child_wasm"] = wasmExports["ts_node_field_name_for_child_wasm"])(a0, a1);
1474
+ var _ts_node_children_by_field_id_wasm = Module["_ts_node_children_by_field_id_wasm"] = (a0, a1) => (_ts_node_children_by_field_id_wasm = Module["_ts_node_children_by_field_id_wasm"] = wasmExports["ts_node_children_by_field_id_wasm"])(a0, a1);
1475
+ var _ts_node_first_child_for_byte_wasm = Module["_ts_node_first_child_for_byte_wasm"] = (a0) => (_ts_node_first_child_for_byte_wasm = Module["_ts_node_first_child_for_byte_wasm"] = wasmExports["ts_node_first_child_for_byte_wasm"])(a0);
1476
+ var _ts_node_first_named_child_for_byte_wasm = Module["_ts_node_first_named_child_for_byte_wasm"] = (a0) => (_ts_node_first_named_child_for_byte_wasm = Module["_ts_node_first_named_child_for_byte_wasm"] = wasmExports["ts_node_first_named_child_for_byte_wasm"])(a0);
1477
+ var _ts_node_grammar_symbol_wasm = Module["_ts_node_grammar_symbol_wasm"] = (a0) => (_ts_node_grammar_symbol_wasm = Module["_ts_node_grammar_symbol_wasm"] = wasmExports["ts_node_grammar_symbol_wasm"])(a0);
1478
+ var _ts_node_child_count_wasm = Module["_ts_node_child_count_wasm"] = (a0) => (_ts_node_child_count_wasm = Module["_ts_node_child_count_wasm"] = wasmExports["ts_node_child_count_wasm"])(a0);
1479
+ var _ts_node_named_child_count_wasm = Module["_ts_node_named_child_count_wasm"] = (a0) => (_ts_node_named_child_count_wasm = Module["_ts_node_named_child_count_wasm"] = wasmExports["ts_node_named_child_count_wasm"])(a0);
1480
+ var _ts_node_child_wasm = Module["_ts_node_child_wasm"] = (a0, a1) => (_ts_node_child_wasm = Module["_ts_node_child_wasm"] = wasmExports["ts_node_child_wasm"])(a0, a1);
1481
+ var _ts_node_named_child_wasm = Module["_ts_node_named_child_wasm"] = (a0, a1) => (_ts_node_named_child_wasm = Module["_ts_node_named_child_wasm"] = wasmExports["ts_node_named_child_wasm"])(a0, a1);
1482
+ var _ts_node_child_by_field_id_wasm = Module["_ts_node_child_by_field_id_wasm"] = (a0, a1) => (_ts_node_child_by_field_id_wasm = Module["_ts_node_child_by_field_id_wasm"] = wasmExports["ts_node_child_by_field_id_wasm"])(a0, a1);
1483
+ var _ts_node_next_sibling_wasm = Module["_ts_node_next_sibling_wasm"] = (a0) => (_ts_node_next_sibling_wasm = Module["_ts_node_next_sibling_wasm"] = wasmExports["ts_node_next_sibling_wasm"])(a0);
1484
+ var _ts_node_prev_sibling_wasm = Module["_ts_node_prev_sibling_wasm"] = (a0) => (_ts_node_prev_sibling_wasm = Module["_ts_node_prev_sibling_wasm"] = wasmExports["ts_node_prev_sibling_wasm"])(a0);
1485
+ var _ts_node_next_named_sibling_wasm = Module["_ts_node_next_named_sibling_wasm"] = (a0) => (_ts_node_next_named_sibling_wasm = Module["_ts_node_next_named_sibling_wasm"] = wasmExports["ts_node_next_named_sibling_wasm"])(a0);
1486
+ var _ts_node_prev_named_sibling_wasm = Module["_ts_node_prev_named_sibling_wasm"] = (a0) => (_ts_node_prev_named_sibling_wasm = Module["_ts_node_prev_named_sibling_wasm"] = wasmExports["ts_node_prev_named_sibling_wasm"])(a0);
1487
+ var _ts_node_descendant_count_wasm = Module["_ts_node_descendant_count_wasm"] = (a0) => (_ts_node_descendant_count_wasm = Module["_ts_node_descendant_count_wasm"] = wasmExports["ts_node_descendant_count_wasm"])(a0);
1488
+ var _ts_node_parent_wasm = Module["_ts_node_parent_wasm"] = (a0) => (_ts_node_parent_wasm = Module["_ts_node_parent_wasm"] = wasmExports["ts_node_parent_wasm"])(a0);
1489
+ var _ts_node_descendant_for_index_wasm = Module["_ts_node_descendant_for_index_wasm"] = (a0) => (_ts_node_descendant_for_index_wasm = Module["_ts_node_descendant_for_index_wasm"] = wasmExports["ts_node_descendant_for_index_wasm"])(a0);
1490
+ var _ts_node_named_descendant_for_index_wasm = Module["_ts_node_named_descendant_for_index_wasm"] = (a0) => (_ts_node_named_descendant_for_index_wasm = Module["_ts_node_named_descendant_for_index_wasm"] = wasmExports["ts_node_named_descendant_for_index_wasm"])(a0);
1491
+ var _ts_node_descendant_for_position_wasm = Module["_ts_node_descendant_for_position_wasm"] = (a0) => (_ts_node_descendant_for_position_wasm = Module["_ts_node_descendant_for_position_wasm"] = wasmExports["ts_node_descendant_for_position_wasm"])(a0);
1492
+ var _ts_node_named_descendant_for_position_wasm = Module["_ts_node_named_descendant_for_position_wasm"] = (a0) => (_ts_node_named_descendant_for_position_wasm = Module["_ts_node_named_descendant_for_position_wasm"] = wasmExports["ts_node_named_descendant_for_position_wasm"])(a0);
1493
+ var _ts_node_start_point_wasm = Module["_ts_node_start_point_wasm"] = (a0) => (_ts_node_start_point_wasm = Module["_ts_node_start_point_wasm"] = wasmExports["ts_node_start_point_wasm"])(a0);
1494
+ var _ts_node_end_point_wasm = Module["_ts_node_end_point_wasm"] = (a0) => (_ts_node_end_point_wasm = Module["_ts_node_end_point_wasm"] = wasmExports["ts_node_end_point_wasm"])(a0);
1495
+ var _ts_node_start_index_wasm = Module["_ts_node_start_index_wasm"] = (a0) => (_ts_node_start_index_wasm = Module["_ts_node_start_index_wasm"] = wasmExports["ts_node_start_index_wasm"])(a0);
1496
+ var _ts_node_end_index_wasm = Module["_ts_node_end_index_wasm"] = (a0) => (_ts_node_end_index_wasm = Module["_ts_node_end_index_wasm"] = wasmExports["ts_node_end_index_wasm"])(a0);
1497
+ var _ts_node_to_string_wasm = Module["_ts_node_to_string_wasm"] = (a0) => (_ts_node_to_string_wasm = Module["_ts_node_to_string_wasm"] = wasmExports["ts_node_to_string_wasm"])(a0);
1498
+ var _ts_node_children_wasm = Module["_ts_node_children_wasm"] = (a0) => (_ts_node_children_wasm = Module["_ts_node_children_wasm"] = wasmExports["ts_node_children_wasm"])(a0);
1499
+ var _ts_node_named_children_wasm = Module["_ts_node_named_children_wasm"] = (a0) => (_ts_node_named_children_wasm = Module["_ts_node_named_children_wasm"] = wasmExports["ts_node_named_children_wasm"])(a0);
1500
+ var _ts_node_descendants_of_type_wasm = Module["_ts_node_descendants_of_type_wasm"] = (a0, a1, a2, a3, a4, a5, a6) => (_ts_node_descendants_of_type_wasm = Module["_ts_node_descendants_of_type_wasm"] = wasmExports["ts_node_descendants_of_type_wasm"])(a0, a1, a2, a3, a4, a5, a6);
1501
+ var _ts_node_is_named_wasm = Module["_ts_node_is_named_wasm"] = (a0) => (_ts_node_is_named_wasm = Module["_ts_node_is_named_wasm"] = wasmExports["ts_node_is_named_wasm"])(a0);
1502
+ var _ts_node_has_changes_wasm = Module["_ts_node_has_changes_wasm"] = (a0) => (_ts_node_has_changes_wasm = Module["_ts_node_has_changes_wasm"] = wasmExports["ts_node_has_changes_wasm"])(a0);
1503
+ var _ts_node_has_error_wasm = Module["_ts_node_has_error_wasm"] = (a0) => (_ts_node_has_error_wasm = Module["_ts_node_has_error_wasm"] = wasmExports["ts_node_has_error_wasm"])(a0);
1504
+ var _ts_node_is_error_wasm = Module["_ts_node_is_error_wasm"] = (a0) => (_ts_node_is_error_wasm = Module["_ts_node_is_error_wasm"] = wasmExports["ts_node_is_error_wasm"])(a0);
1505
+ var _ts_node_is_missing_wasm = Module["_ts_node_is_missing_wasm"] = (a0) => (_ts_node_is_missing_wasm = Module["_ts_node_is_missing_wasm"] = wasmExports["ts_node_is_missing_wasm"])(a0);
1506
+ var _ts_node_is_extra_wasm = Module["_ts_node_is_extra_wasm"] = (a0) => (_ts_node_is_extra_wasm = Module["_ts_node_is_extra_wasm"] = wasmExports["ts_node_is_extra_wasm"])(a0);
1507
+ var _ts_node_parse_state_wasm = Module["_ts_node_parse_state_wasm"] = (a0) => (_ts_node_parse_state_wasm = Module["_ts_node_parse_state_wasm"] = wasmExports["ts_node_parse_state_wasm"])(a0);
1508
+ var _ts_node_next_parse_state_wasm = Module["_ts_node_next_parse_state_wasm"] = (a0) => (_ts_node_next_parse_state_wasm = Module["_ts_node_next_parse_state_wasm"] = wasmExports["ts_node_next_parse_state_wasm"])(a0);
1509
+ var _ts_query_matches_wasm = Module["_ts_query_matches_wasm"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) => (_ts_query_matches_wasm = Module["_ts_query_matches_wasm"] = wasmExports["ts_query_matches_wasm"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
1510
+ var _ts_query_captures_wasm = Module["_ts_query_captures_wasm"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) => (_ts_query_captures_wasm = Module["_ts_query_captures_wasm"] = wasmExports["ts_query_captures_wasm"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
1511
+ var _iswalpha = Module["_iswalpha"] = (a0) => (_iswalpha = Module["_iswalpha"] = wasmExports["iswalpha"])(a0);
1512
+ var _iswblank = Module["_iswblank"] = (a0) => (_iswblank = Module["_iswblank"] = wasmExports["iswblank"])(a0);
1513
+ var _iswdigit = Module["_iswdigit"] = (a0) => (_iswdigit = Module["_iswdigit"] = wasmExports["iswdigit"])(a0);
1514
+ var _iswlower = Module["_iswlower"] = (a0) => (_iswlower = Module["_iswlower"] = wasmExports["iswlower"])(a0);
1515
+ var _iswupper = Module["_iswupper"] = (a0) => (_iswupper = Module["_iswupper"] = wasmExports["iswupper"])(a0);
1516
+ var _iswxdigit = Module["_iswxdigit"] = (a0) => (_iswxdigit = Module["_iswxdigit"] = wasmExports["iswxdigit"])(a0);
1517
+ var _memchr = Module["_memchr"] = (a0, a1, a2) => (_memchr = Module["_memchr"] = wasmExports["memchr"])(a0, a1, a2);
1518
+ var _strlen = Module["_strlen"] = (a0) => (_strlen = Module["_strlen"] = wasmExports["strlen"])(a0);
1519
+ var _strcmp = Module["_strcmp"] = (a0, a1) => (_strcmp = Module["_strcmp"] = wasmExports["strcmp"])(a0, a1);
1520
+ var _strncat = Module["_strncat"] = (a0, a1, a2) => (_strncat = Module["_strncat"] = wasmExports["strncat"])(a0, a1, a2);
1521
+ var _strncpy = Module["_strncpy"] = (a0, a1, a2) => (_strncpy = Module["_strncpy"] = wasmExports["strncpy"])(a0, a1, a2);
1522
+ var _towlower = Module["_towlower"] = (a0) => (_towlower = Module["_towlower"] = wasmExports["towlower"])(a0);
1523
+ var _towupper = Module["_towupper"] = (a0) => (_towupper = Module["_towupper"] = wasmExports["towupper"])(a0);
1524
+ var _setThrew = (a0, a1) => (_setThrew = wasmExports["setThrew"])(a0, a1);
1525
+ var __emscripten_stack_restore = (a0) => (__emscripten_stack_restore = wasmExports["_emscripten_stack_restore"])(a0);
1526
+ var __emscripten_stack_alloc = (a0) => (__emscripten_stack_alloc = wasmExports["_emscripten_stack_alloc"])(a0);
1527
+ var _emscripten_stack_get_current = () => (_emscripten_stack_get_current = wasmExports["emscripten_stack_get_current"])();
1528
+ var dynCall_jiji = Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["dynCall_jiji"])(a0, a1, a2, a3, a4);
1529
+ var _orig$ts_parser_timeout_micros = Module["_orig$ts_parser_timeout_micros"] = (a0) => (_orig$ts_parser_timeout_micros = Module["_orig$ts_parser_timeout_micros"] = wasmExports["orig$ts_parser_timeout_micros"])(a0);
1530
+ var _orig$ts_parser_set_timeout_micros = Module["_orig$ts_parser_set_timeout_micros"] = (a0, a1) => (_orig$ts_parser_set_timeout_micros = Module["_orig$ts_parser_set_timeout_micros"] = wasmExports["orig$ts_parser_set_timeout_micros"])(a0, a1);
1531
+ Module["AsciiToString"] = AsciiToString;
1532
+ Module["stringToUTF16"] = stringToUTF16;
1533
+ var calledRun;
1534
+ dependenciesFulfilled = function runCaller() {
1535
+ if (!calledRun)
1536
+ run();
1537
+ if (!calledRun)
1538
+ dependenciesFulfilled = runCaller;
1539
+ };
1540
+ function callMain(args2 = []) {
1541
+ var entryFunction = resolveGlobalSymbol("main").sym;
1542
+ if (!entryFunction)
1543
+ return;
1544
+ args2.unshift(thisProgram);
1545
+ var argc = args2.length;
1546
+ var argv = stackAlloc((argc + 1) * 4);
1547
+ var argv_ptr = argv;
1548
+ args2.forEach((arg) => {
1549
+ LE_HEAP_STORE_U32((argv_ptr >> 2) * 4, stringToUTF8OnStack(arg));
1550
+ argv_ptr += 4;
1551
+ });
1552
+ LE_HEAP_STORE_U32((argv_ptr >> 2) * 4, 0);
1553
+ try {
1554
+ var ret = entryFunction(argc, argv);
1555
+ exitJS(ret, true);
1556
+ return ret;
1557
+ } catch (e) {
1558
+ return handleException(e);
1559
+ }
1560
+ }
1561
+ function run(args2 = arguments_) {
1562
+ if (runDependencies > 0) {
1563
+ return;
1564
+ }
1565
+ preRun();
1566
+ if (runDependencies > 0) {
1567
+ return;
1568
+ }
1569
+ function doRun() {
1570
+ if (calledRun)
1571
+ return;
1572
+ calledRun = true;
1573
+ Module["calledRun"] = true;
1574
+ if (ABORT)
1575
+ return;
1576
+ initRuntime();
1577
+ preMain();
1578
+ Module["onRuntimeInitialized"]?.();
1579
+ if (shouldRunNow)
1580
+ callMain(args2);
1581
+ postRun();
1582
+ }
1583
+ if (Module["setStatus"]) {
1584
+ Module["setStatus"]("Running...");
1585
+ setTimeout(function() {
1586
+ setTimeout(function() {
1587
+ Module["setStatus"]("");
1588
+ }, 1);
1589
+ doRun();
1590
+ }, 1);
1591
+ } else {
1592
+ doRun();
1593
+ }
1594
+ }
1595
+ if (Module["preInit"]) {
1596
+ if (typeof Module["preInit"] == "function")
1597
+ Module["preInit"] = [Module["preInit"]];
1598
+ while (Module["preInit"].length > 0) {
1599
+ Module["preInit"].pop()();
1600
+ }
1601
+ }
1602
+ var shouldRunNow = true;
1603
+ if (Module["noInitialRun"])
1604
+ shouldRunNow = false;
1605
+ run();
1606
+ const C = Module;
1607
+ const INTERNAL = {};
1608
+ const SIZE_OF_INT = 4;
1609
+ const SIZE_OF_CURSOR = 4 * SIZE_OF_INT;
1610
+ const SIZE_OF_NODE = 5 * SIZE_OF_INT;
1611
+ const SIZE_OF_POINT = 2 * SIZE_OF_INT;
1612
+ const SIZE_OF_RANGE = 2 * SIZE_OF_INT + 2 * SIZE_OF_POINT;
1613
+ const ZERO_POINT = {
1614
+ row: 0,
1615
+ column: 0
1616
+ };
1617
+ const QUERY_WORD_REGEX = /[\w-.]*/g;
1618
+ const PREDICATE_STEP_TYPE_CAPTURE = 1;
1619
+ const PREDICATE_STEP_TYPE_STRING = 2;
1620
+ const LANGUAGE_FUNCTION_REGEX = /^_?tree_sitter_\w+/;
1621
+ let VERSION;
1622
+ let MIN_COMPATIBLE_VERSION;
1623
+ let TRANSFER_BUFFER;
1624
+ let currentParseCallback;
1625
+ let currentLogCallback;
1626
+
1627
+ class ParserImpl {
1628
+ static init() {
1629
+ TRANSFER_BUFFER = C._ts_init();
1630
+ VERSION = getValue(TRANSFER_BUFFER, "i32");
1631
+ MIN_COMPATIBLE_VERSION = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
1632
+ }
1633
+ initialize() {
1634
+ C._ts_parser_new_wasm();
1635
+ this[0] = getValue(TRANSFER_BUFFER, "i32");
1636
+ this[1] = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
1637
+ }
1638
+ delete() {
1639
+ C._ts_parser_delete(this[0]);
1640
+ C._free(this[1]);
1641
+ this[0] = 0;
1642
+ this[1] = 0;
1643
+ }
1644
+ setLanguage(language) {
1645
+ let address;
1646
+ if (!language) {
1647
+ address = 0;
1648
+ language = null;
1649
+ } else if (language.constructor === Language) {
1650
+ address = language[0];
1651
+ const version = C._ts_language_version(address);
1652
+ if (version < MIN_COMPATIBLE_VERSION || VERSION < version) {
1653
+ throw new Error(`Incompatible language version ${version}. ` + `Compatibility range ${MIN_COMPATIBLE_VERSION} through ${VERSION}.`);
1654
+ }
1655
+ } else {
1656
+ throw new Error("Argument must be a Language");
1657
+ }
1658
+ this.language = language;
1659
+ C._ts_parser_set_language(this[0], address);
1660
+ return this;
1661
+ }
1662
+ getLanguage() {
1663
+ return this.language;
1664
+ }
1665
+ parse(callback, oldTree, options) {
1666
+ if (typeof callback === "string") {
1667
+ currentParseCallback = (index, _) => callback.slice(index);
1668
+ } else if (typeof callback === "function") {
1669
+ currentParseCallback = callback;
1670
+ } else {
1671
+ throw new Error("Argument must be a string or a function");
1672
+ }
1673
+ if (this.logCallback) {
1674
+ currentLogCallback = this.logCallback;
1675
+ C._ts_parser_enable_logger_wasm(this[0], 1);
1676
+ } else {
1677
+ currentLogCallback = null;
1678
+ C._ts_parser_enable_logger_wasm(this[0], 0);
1679
+ }
1680
+ let rangeCount = 0;
1681
+ let rangeAddress = 0;
1682
+ if (options?.includedRanges) {
1683
+ rangeCount = options.includedRanges.length;
1684
+ rangeAddress = C._calloc(rangeCount, SIZE_OF_RANGE);
1685
+ let address = rangeAddress;
1686
+ for (let i2 = 0;i2 < rangeCount; i2++) {
1687
+ marshalRange(address, options.includedRanges[i2]);
1688
+ address += SIZE_OF_RANGE;
1689
+ }
1690
+ }
1691
+ const treeAddress = C._ts_parser_parse_wasm(this[0], this[1], oldTree ? oldTree[0] : 0, rangeAddress, rangeCount);
1692
+ if (!treeAddress) {
1693
+ currentParseCallback = null;
1694
+ currentLogCallback = null;
1695
+ throw new Error("Parsing failed");
1696
+ }
1697
+ const result = new Tree(INTERNAL, treeAddress, this.language, currentParseCallback);
1698
+ currentParseCallback = null;
1699
+ currentLogCallback = null;
1700
+ return result;
1701
+ }
1702
+ reset() {
1703
+ C._ts_parser_reset(this[0]);
1704
+ }
1705
+ getIncludedRanges() {
1706
+ C._ts_parser_included_ranges_wasm(this[0]);
1707
+ const count = getValue(TRANSFER_BUFFER, "i32");
1708
+ const buffer = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
1709
+ const result = new Array(count);
1710
+ if (count > 0) {
1711
+ let address = buffer;
1712
+ for (let i2 = 0;i2 < count; i2++) {
1713
+ result[i2] = unmarshalRange(address);
1714
+ address += SIZE_OF_RANGE;
1715
+ }
1716
+ C._free(buffer);
1717
+ }
1718
+ return result;
1719
+ }
1720
+ getTimeoutMicros() {
1721
+ return C._ts_parser_timeout_micros(this[0]);
1722
+ }
1723
+ setTimeoutMicros(timeout) {
1724
+ C._ts_parser_set_timeout_micros(this[0], timeout);
1725
+ }
1726
+ setLogger(callback) {
1727
+ if (!callback) {
1728
+ callback = null;
1729
+ } else if (typeof callback !== "function") {
1730
+ throw new Error("Logger callback must be a function");
1731
+ }
1732
+ this.logCallback = callback;
1733
+ return this;
1734
+ }
1735
+ getLogger() {
1736
+ return this.logCallback;
1737
+ }
1738
+ }
1739
+
1740
+ class Tree {
1741
+ constructor(internal, address, language, textCallback) {
1742
+ assertInternal(internal);
1743
+ this[0] = address;
1744
+ this.language = language;
1745
+ this.textCallback = textCallback;
1746
+ }
1747
+ copy() {
1748
+ const address = C._ts_tree_copy(this[0]);
1749
+ return new Tree(INTERNAL, address, this.language, this.textCallback);
1750
+ }
1751
+ delete() {
1752
+ C._ts_tree_delete(this[0]);
1753
+ this[0] = 0;
1754
+ }
1755
+ edit(edit) {
1756
+ marshalEdit(edit);
1757
+ C._ts_tree_edit_wasm(this[0]);
1758
+ }
1759
+ get rootNode() {
1760
+ C._ts_tree_root_node_wasm(this[0]);
1761
+ return unmarshalNode(this);
1762
+ }
1763
+ rootNodeWithOffset(offsetBytes, offsetExtent) {
1764
+ const address = TRANSFER_BUFFER + SIZE_OF_NODE;
1765
+ setValue(address, offsetBytes, "i32");
1766
+ marshalPoint(address + SIZE_OF_INT, offsetExtent);
1767
+ C._ts_tree_root_node_with_offset_wasm(this[0]);
1768
+ return unmarshalNode(this);
1769
+ }
1770
+ getLanguage() {
1771
+ return this.language;
1772
+ }
1773
+ walk() {
1774
+ return this.rootNode.walk();
1775
+ }
1776
+ getChangedRanges(other) {
1777
+ if (other.constructor !== Tree) {
1778
+ throw new TypeError("Argument must be a Tree");
1779
+ }
1780
+ C._ts_tree_get_changed_ranges_wasm(this[0], other[0]);
1781
+ const count = getValue(TRANSFER_BUFFER, "i32");
1782
+ const buffer = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
1783
+ const result = new Array(count);
1784
+ if (count > 0) {
1785
+ let address = buffer;
1786
+ for (let i2 = 0;i2 < count; i2++) {
1787
+ result[i2] = unmarshalRange(address);
1788
+ address += SIZE_OF_RANGE;
1789
+ }
1790
+ C._free(buffer);
1791
+ }
1792
+ return result;
1793
+ }
1794
+ getIncludedRanges() {
1795
+ C._ts_tree_included_ranges_wasm(this[0]);
1796
+ const count = getValue(TRANSFER_BUFFER, "i32");
1797
+ const buffer = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
1798
+ const result = new Array(count);
1799
+ if (count > 0) {
1800
+ let address = buffer;
1801
+ for (let i2 = 0;i2 < count; i2++) {
1802
+ result[i2] = unmarshalRange(address);
1803
+ address += SIZE_OF_RANGE;
1804
+ }
1805
+ C._free(buffer);
1806
+ }
1807
+ return result;
1808
+ }
1809
+ }
1810
+
1811
+ class Node {
1812
+ constructor(internal, tree) {
1813
+ assertInternal(internal);
1814
+ this.tree = tree;
1815
+ }
1816
+ get typeId() {
1817
+ marshalNode(this);
1818
+ return C._ts_node_symbol_wasm(this.tree[0]);
1819
+ }
1820
+ get grammarId() {
1821
+ marshalNode(this);
1822
+ return C._ts_node_grammar_symbol_wasm(this.tree[0]);
1823
+ }
1824
+ get type() {
1825
+ return this.tree.language.types[this.typeId] || "ERROR";
1826
+ }
1827
+ get grammarType() {
1828
+ return this.tree.language.types[this.grammarId] || "ERROR";
1829
+ }
1830
+ get endPosition() {
1831
+ marshalNode(this);
1832
+ C._ts_node_end_point_wasm(this.tree[0]);
1833
+ return unmarshalPoint(TRANSFER_BUFFER);
1834
+ }
1835
+ get endIndex() {
1836
+ marshalNode(this);
1837
+ return C._ts_node_end_index_wasm(this.tree[0]);
1838
+ }
1839
+ get text() {
1840
+ return getText(this.tree, this.startIndex, this.endIndex);
1841
+ }
1842
+ get parseState() {
1843
+ marshalNode(this);
1844
+ return C._ts_node_parse_state_wasm(this.tree[0]);
1845
+ }
1846
+ get nextParseState() {
1847
+ marshalNode(this);
1848
+ return C._ts_node_next_parse_state_wasm(this.tree[0]);
1849
+ }
1850
+ get isNamed() {
1851
+ marshalNode(this);
1852
+ return C._ts_node_is_named_wasm(this.tree[0]) === 1;
1853
+ }
1854
+ get hasError() {
1855
+ marshalNode(this);
1856
+ return C._ts_node_has_error_wasm(this.tree[0]) === 1;
1857
+ }
1858
+ get hasChanges() {
1859
+ marshalNode(this);
1860
+ return C._ts_node_has_changes_wasm(this.tree[0]) === 1;
1861
+ }
1862
+ get isError() {
1863
+ marshalNode(this);
1864
+ return C._ts_node_is_error_wasm(this.tree[0]) === 1;
1865
+ }
1866
+ get isMissing() {
1867
+ marshalNode(this);
1868
+ return C._ts_node_is_missing_wasm(this.tree[0]) === 1;
1869
+ }
1870
+ get isExtra() {
1871
+ marshalNode(this);
1872
+ return C._ts_node_is_extra_wasm(this.tree[0]) === 1;
1873
+ }
1874
+ equals(other) {
1875
+ return this.id === other.id;
1876
+ }
1877
+ child(index) {
1878
+ marshalNode(this);
1879
+ C._ts_node_child_wasm(this.tree[0], index);
1880
+ return unmarshalNode(this.tree);
1881
+ }
1882
+ namedChild(index) {
1883
+ marshalNode(this);
1884
+ C._ts_node_named_child_wasm(this.tree[0], index);
1885
+ return unmarshalNode(this.tree);
1886
+ }
1887
+ childForFieldId(fieldId) {
1888
+ marshalNode(this);
1889
+ C._ts_node_child_by_field_id_wasm(this.tree[0], fieldId);
1890
+ return unmarshalNode(this.tree);
1891
+ }
1892
+ childForFieldName(fieldName) {
1893
+ const fieldId = this.tree.language.fields.indexOf(fieldName);
1894
+ if (fieldId !== -1)
1895
+ return this.childForFieldId(fieldId);
1896
+ return null;
1897
+ }
1898
+ fieldNameForChild(index) {
1899
+ marshalNode(this);
1900
+ const address = C._ts_node_field_name_for_child_wasm(this.tree[0], index);
1901
+ if (!address) {
1902
+ return null;
1903
+ }
1904
+ const result = AsciiToString(address);
1905
+ return result;
1906
+ }
1907
+ childrenForFieldName(fieldName) {
1908
+ const fieldId = this.tree.language.fields.indexOf(fieldName);
1909
+ if (fieldId !== -1 && fieldId !== 0)
1910
+ return this.childrenForFieldId(fieldId);
1911
+ return [];
1912
+ }
1913
+ childrenForFieldId(fieldId) {
1914
+ marshalNode(this);
1915
+ C._ts_node_children_by_field_id_wasm(this.tree[0], fieldId);
1916
+ const count = getValue(TRANSFER_BUFFER, "i32");
1917
+ const buffer = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
1918
+ const result = new Array(count);
1919
+ if (count > 0) {
1920
+ let address = buffer;
1921
+ for (let i2 = 0;i2 < count; i2++) {
1922
+ result[i2] = unmarshalNode(this.tree, address);
1923
+ address += SIZE_OF_NODE;
1924
+ }
1925
+ C._free(buffer);
1926
+ }
1927
+ return result;
1928
+ }
1929
+ firstChildForIndex(index) {
1930
+ marshalNode(this);
1931
+ const address = TRANSFER_BUFFER + SIZE_OF_NODE;
1932
+ setValue(address, index, "i32");
1933
+ C._ts_node_first_child_for_byte_wasm(this.tree[0]);
1934
+ return unmarshalNode(this.tree);
1935
+ }
1936
+ firstNamedChildForIndex(index) {
1937
+ marshalNode(this);
1938
+ const address = TRANSFER_BUFFER + SIZE_OF_NODE;
1939
+ setValue(address, index, "i32");
1940
+ C._ts_node_first_named_child_for_byte_wasm(this.tree[0]);
1941
+ return unmarshalNode(this.tree);
1942
+ }
1943
+ get childCount() {
1944
+ marshalNode(this);
1945
+ return C._ts_node_child_count_wasm(this.tree[0]);
1946
+ }
1947
+ get namedChildCount() {
1948
+ marshalNode(this);
1949
+ return C._ts_node_named_child_count_wasm(this.tree[0]);
1950
+ }
1951
+ get firstChild() {
1952
+ return this.child(0);
1953
+ }
1954
+ get firstNamedChild() {
1955
+ return this.namedChild(0);
1956
+ }
1957
+ get lastChild() {
1958
+ return this.child(this.childCount - 1);
1959
+ }
1960
+ get lastNamedChild() {
1961
+ return this.namedChild(this.namedChildCount - 1);
1962
+ }
1963
+ get children() {
1964
+ if (!this._children) {
1965
+ marshalNode(this);
1966
+ C._ts_node_children_wasm(this.tree[0]);
1967
+ const count = getValue(TRANSFER_BUFFER, "i32");
1968
+ const buffer = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
1969
+ this._children = new Array(count);
1970
+ if (count > 0) {
1971
+ let address = buffer;
1972
+ for (let i2 = 0;i2 < count; i2++) {
1973
+ this._children[i2] = unmarshalNode(this.tree, address);
1974
+ address += SIZE_OF_NODE;
1975
+ }
1976
+ C._free(buffer);
1977
+ }
1978
+ }
1979
+ return this._children;
1980
+ }
1981
+ get namedChildren() {
1982
+ if (!this._namedChildren) {
1983
+ marshalNode(this);
1984
+ C._ts_node_named_children_wasm(this.tree[0]);
1985
+ const count = getValue(TRANSFER_BUFFER, "i32");
1986
+ const buffer = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
1987
+ this._namedChildren = new Array(count);
1988
+ if (count > 0) {
1989
+ let address = buffer;
1990
+ for (let i2 = 0;i2 < count; i2++) {
1991
+ this._namedChildren[i2] = unmarshalNode(this.tree, address);
1992
+ address += SIZE_OF_NODE;
1993
+ }
1994
+ C._free(buffer);
1995
+ }
1996
+ }
1997
+ return this._namedChildren;
1998
+ }
1999
+ descendantsOfType(types2, startPosition, endPosition) {
2000
+ if (!Array.isArray(types2))
2001
+ types2 = [types2];
2002
+ if (!startPosition)
2003
+ startPosition = ZERO_POINT;
2004
+ if (!endPosition)
2005
+ endPosition = ZERO_POINT;
2006
+ const symbols = [];
2007
+ const typesBySymbol = this.tree.language.types;
2008
+ for (let i2 = 0, n = typesBySymbol.length;i2 < n; i2++) {
2009
+ if (types2.includes(typesBySymbol[i2])) {
2010
+ symbols.push(i2);
2011
+ }
2012
+ }
2013
+ const symbolsAddress = C._malloc(SIZE_OF_INT * symbols.length);
2014
+ for (let i2 = 0, n = symbols.length;i2 < n; i2++) {
2015
+ setValue(symbolsAddress + i2 * SIZE_OF_INT, symbols[i2], "i32");
2016
+ }
2017
+ marshalNode(this);
2018
+ C._ts_node_descendants_of_type_wasm(this.tree[0], symbolsAddress, symbols.length, startPosition.row, startPosition.column, endPosition.row, endPosition.column);
2019
+ const descendantCount = getValue(TRANSFER_BUFFER, "i32");
2020
+ const descendantAddress = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
2021
+ const result = new Array(descendantCount);
2022
+ if (descendantCount > 0) {
2023
+ let address = descendantAddress;
2024
+ for (let i2 = 0;i2 < descendantCount; i2++) {
2025
+ result[i2] = unmarshalNode(this.tree, address);
2026
+ address += SIZE_OF_NODE;
2027
+ }
2028
+ }
2029
+ C._free(descendantAddress);
2030
+ C._free(symbolsAddress);
2031
+ return result;
2032
+ }
2033
+ get nextSibling() {
2034
+ marshalNode(this);
2035
+ C._ts_node_next_sibling_wasm(this.tree[0]);
2036
+ return unmarshalNode(this.tree);
2037
+ }
2038
+ get previousSibling() {
2039
+ marshalNode(this);
2040
+ C._ts_node_prev_sibling_wasm(this.tree[0]);
2041
+ return unmarshalNode(this.tree);
2042
+ }
2043
+ get nextNamedSibling() {
2044
+ marshalNode(this);
2045
+ C._ts_node_next_named_sibling_wasm(this.tree[0]);
2046
+ return unmarshalNode(this.tree);
2047
+ }
2048
+ get previousNamedSibling() {
2049
+ marshalNode(this);
2050
+ C._ts_node_prev_named_sibling_wasm(this.tree[0]);
2051
+ return unmarshalNode(this.tree);
2052
+ }
2053
+ get descendantCount() {
2054
+ marshalNode(this);
2055
+ return C._ts_node_descendant_count_wasm(this.tree[0]);
2056
+ }
2057
+ get parent() {
2058
+ marshalNode(this);
2059
+ C._ts_node_parent_wasm(this.tree[0]);
2060
+ return unmarshalNode(this.tree);
2061
+ }
2062
+ descendantForIndex(start2, end = start2) {
2063
+ if (typeof start2 !== "number" || typeof end !== "number") {
2064
+ throw new Error("Arguments must be numbers");
2065
+ }
2066
+ marshalNode(this);
2067
+ const address = TRANSFER_BUFFER + SIZE_OF_NODE;
2068
+ setValue(address, start2, "i32");
2069
+ setValue(address + SIZE_OF_INT, end, "i32");
2070
+ C._ts_node_descendant_for_index_wasm(this.tree[0]);
2071
+ return unmarshalNode(this.tree);
2072
+ }
2073
+ namedDescendantForIndex(start2, end = start2) {
2074
+ if (typeof start2 !== "number" || typeof end !== "number") {
2075
+ throw new Error("Arguments must be numbers");
2076
+ }
2077
+ marshalNode(this);
2078
+ const address = TRANSFER_BUFFER + SIZE_OF_NODE;
2079
+ setValue(address, start2, "i32");
2080
+ setValue(address + SIZE_OF_INT, end, "i32");
2081
+ C._ts_node_named_descendant_for_index_wasm(this.tree[0]);
2082
+ return unmarshalNode(this.tree);
2083
+ }
2084
+ descendantForPosition(start2, end = start2) {
2085
+ if (!isPoint(start2) || !isPoint(end)) {
2086
+ throw new Error("Arguments must be {row, column} objects");
2087
+ }
2088
+ marshalNode(this);
2089
+ const address = TRANSFER_BUFFER + SIZE_OF_NODE;
2090
+ marshalPoint(address, start2);
2091
+ marshalPoint(address + SIZE_OF_POINT, end);
2092
+ C._ts_node_descendant_for_position_wasm(this.tree[0]);
2093
+ return unmarshalNode(this.tree);
2094
+ }
2095
+ namedDescendantForPosition(start2, end = start2) {
2096
+ if (!isPoint(start2) || !isPoint(end)) {
2097
+ throw new Error("Arguments must be {row, column} objects");
2098
+ }
2099
+ marshalNode(this);
2100
+ const address = TRANSFER_BUFFER + SIZE_OF_NODE;
2101
+ marshalPoint(address, start2);
2102
+ marshalPoint(address + SIZE_OF_POINT, end);
2103
+ C._ts_node_named_descendant_for_position_wasm(this.tree[0]);
2104
+ return unmarshalNode(this.tree);
2105
+ }
2106
+ walk() {
2107
+ marshalNode(this);
2108
+ C._ts_tree_cursor_new_wasm(this.tree[0]);
2109
+ return new TreeCursor(INTERNAL, this.tree);
2110
+ }
2111
+ toString() {
2112
+ marshalNode(this);
2113
+ const address = C._ts_node_to_string_wasm(this.tree[0]);
2114
+ const result = AsciiToString(address);
2115
+ C._free(address);
2116
+ return result;
2117
+ }
2118
+ }
2119
+
2120
+ class TreeCursor {
2121
+ constructor(internal, tree) {
2122
+ assertInternal(internal);
2123
+ this.tree = tree;
2124
+ unmarshalTreeCursor(this);
2125
+ }
2126
+ delete() {
2127
+ marshalTreeCursor(this);
2128
+ C._ts_tree_cursor_delete_wasm(this.tree[0]);
2129
+ this[0] = this[1] = this[2] = 0;
2130
+ }
2131
+ reset(node) {
2132
+ marshalNode(node);
2133
+ marshalTreeCursor(this, TRANSFER_BUFFER + SIZE_OF_NODE);
2134
+ C._ts_tree_cursor_reset_wasm(this.tree[0]);
2135
+ unmarshalTreeCursor(this);
2136
+ }
2137
+ resetTo(cursor) {
2138
+ marshalTreeCursor(this, TRANSFER_BUFFER);
2139
+ marshalTreeCursor(cursor, TRANSFER_BUFFER + SIZE_OF_CURSOR);
2140
+ C._ts_tree_cursor_reset_to_wasm(this.tree[0], cursor.tree[0]);
2141
+ unmarshalTreeCursor(this);
2142
+ }
2143
+ get nodeType() {
2144
+ return this.tree.language.types[this.nodeTypeId] || "ERROR";
2145
+ }
2146
+ get nodeTypeId() {
2147
+ marshalTreeCursor(this);
2148
+ return C._ts_tree_cursor_current_node_type_id_wasm(this.tree[0]);
2149
+ }
2150
+ get nodeStateId() {
2151
+ marshalTreeCursor(this);
2152
+ return C._ts_tree_cursor_current_node_state_id_wasm(this.tree[0]);
2153
+ }
2154
+ get nodeId() {
2155
+ marshalTreeCursor(this);
2156
+ return C._ts_tree_cursor_current_node_id_wasm(this.tree[0]);
2157
+ }
2158
+ get nodeIsNamed() {
2159
+ marshalTreeCursor(this);
2160
+ return C._ts_tree_cursor_current_node_is_named_wasm(this.tree[0]) === 1;
2161
+ }
2162
+ get nodeIsMissing() {
2163
+ marshalTreeCursor(this);
2164
+ return C._ts_tree_cursor_current_node_is_missing_wasm(this.tree[0]) === 1;
2165
+ }
2166
+ get nodeText() {
2167
+ marshalTreeCursor(this);
2168
+ const startIndex = C._ts_tree_cursor_start_index_wasm(this.tree[0]);
2169
+ const endIndex = C._ts_tree_cursor_end_index_wasm(this.tree[0]);
2170
+ return getText(this.tree, startIndex, endIndex);
2171
+ }
2172
+ get startPosition() {
2173
+ marshalTreeCursor(this);
2174
+ C._ts_tree_cursor_start_position_wasm(this.tree[0]);
2175
+ return unmarshalPoint(TRANSFER_BUFFER);
2176
+ }
2177
+ get endPosition() {
2178
+ marshalTreeCursor(this);
2179
+ C._ts_tree_cursor_end_position_wasm(this.tree[0]);
2180
+ return unmarshalPoint(TRANSFER_BUFFER);
2181
+ }
2182
+ get startIndex() {
2183
+ marshalTreeCursor(this);
2184
+ return C._ts_tree_cursor_start_index_wasm(this.tree[0]);
2185
+ }
2186
+ get endIndex() {
2187
+ marshalTreeCursor(this);
2188
+ return C._ts_tree_cursor_end_index_wasm(this.tree[0]);
2189
+ }
2190
+ get currentNode() {
2191
+ marshalTreeCursor(this);
2192
+ C._ts_tree_cursor_current_node_wasm(this.tree[0]);
2193
+ return unmarshalNode(this.tree);
2194
+ }
2195
+ get currentFieldId() {
2196
+ marshalTreeCursor(this);
2197
+ return C._ts_tree_cursor_current_field_id_wasm(this.tree[0]);
2198
+ }
2199
+ get currentFieldName() {
2200
+ return this.tree.language.fields[this.currentFieldId];
2201
+ }
2202
+ get currentDepth() {
2203
+ marshalTreeCursor(this);
2204
+ return C._ts_tree_cursor_current_depth_wasm(this.tree[0]);
2205
+ }
2206
+ get currentDescendantIndex() {
2207
+ marshalTreeCursor(this);
2208
+ return C._ts_tree_cursor_current_descendant_index_wasm(this.tree[0]);
2209
+ }
2210
+ gotoFirstChild() {
2211
+ marshalTreeCursor(this);
2212
+ const result = C._ts_tree_cursor_goto_first_child_wasm(this.tree[0]);
2213
+ unmarshalTreeCursor(this);
2214
+ return result === 1;
2215
+ }
2216
+ gotoLastChild() {
2217
+ marshalTreeCursor(this);
2218
+ const result = C._ts_tree_cursor_goto_last_child_wasm(this.tree[0]);
2219
+ unmarshalTreeCursor(this);
2220
+ return result === 1;
2221
+ }
2222
+ gotoFirstChildForIndex(goalIndex) {
2223
+ marshalTreeCursor(this);
2224
+ setValue(TRANSFER_BUFFER + SIZE_OF_CURSOR, goalIndex, "i32");
2225
+ const result = C._ts_tree_cursor_goto_first_child_for_index_wasm(this.tree[0]);
2226
+ unmarshalTreeCursor(this);
2227
+ return result === 1;
2228
+ }
2229
+ gotoFirstChildForPosition(goalPosition) {
2230
+ marshalTreeCursor(this);
2231
+ marshalPoint(TRANSFER_BUFFER + SIZE_OF_CURSOR, goalPosition);
2232
+ const result = C._ts_tree_cursor_goto_first_child_for_position_wasm(this.tree[0]);
2233
+ unmarshalTreeCursor(this);
2234
+ return result === 1;
2235
+ }
2236
+ gotoNextSibling() {
2237
+ marshalTreeCursor(this);
2238
+ const result = C._ts_tree_cursor_goto_next_sibling_wasm(this.tree[0]);
2239
+ unmarshalTreeCursor(this);
2240
+ return result === 1;
2241
+ }
2242
+ gotoPreviousSibling() {
2243
+ marshalTreeCursor(this);
2244
+ const result = C._ts_tree_cursor_goto_previous_sibling_wasm(this.tree[0]);
2245
+ unmarshalTreeCursor(this);
2246
+ return result === 1;
2247
+ }
2248
+ gotoDescendant(goalDescendantindex) {
2249
+ marshalTreeCursor(this);
2250
+ C._ts_tree_cursor_goto_descendant_wasm(this.tree[0], goalDescendantindex);
2251
+ unmarshalTreeCursor(this);
2252
+ }
2253
+ gotoParent() {
2254
+ marshalTreeCursor(this);
2255
+ const result = C._ts_tree_cursor_goto_parent_wasm(this.tree[0]);
2256
+ unmarshalTreeCursor(this);
2257
+ return result === 1;
2258
+ }
2259
+ }
2260
+
2261
+ class Language {
2262
+ constructor(internal, address) {
2263
+ assertInternal(internal);
2264
+ this[0] = address;
2265
+ this.types = new Array(C._ts_language_symbol_count(this[0]));
2266
+ for (let i2 = 0, n = this.types.length;i2 < n; i2++) {
2267
+ if (C._ts_language_symbol_type(this[0], i2) < 2) {
2268
+ this.types[i2] = UTF8ToString(C._ts_language_symbol_name(this[0], i2));
2269
+ }
2270
+ }
2271
+ this.fields = new Array(C._ts_language_field_count(this[0]) + 1);
2272
+ for (let i2 = 0, n = this.fields.length;i2 < n; i2++) {
2273
+ const fieldName = C._ts_language_field_name_for_id(this[0], i2);
2274
+ if (fieldName !== 0) {
2275
+ this.fields[i2] = UTF8ToString(fieldName);
2276
+ } else {
2277
+ this.fields[i2] = null;
2278
+ }
2279
+ }
2280
+ }
2281
+ get version() {
2282
+ return C._ts_language_version(this[0]);
2283
+ }
2284
+ get fieldCount() {
2285
+ return this.fields.length - 1;
2286
+ }
2287
+ get stateCount() {
2288
+ return C._ts_language_state_count(this[0]);
2289
+ }
2290
+ fieldIdForName(fieldName) {
2291
+ const result = this.fields.indexOf(fieldName);
2292
+ if (result !== -1) {
2293
+ return result;
2294
+ } else {
2295
+ return null;
2296
+ }
2297
+ }
2298
+ fieldNameForId(fieldId) {
2299
+ return this.fields[fieldId] || null;
2300
+ }
2301
+ idForNodeType(type, named) {
2302
+ const typeLength = lengthBytesUTF8(type);
2303
+ const typeAddress = C._malloc(typeLength + 1);
2304
+ stringToUTF8(type, typeAddress, typeLength + 1);
2305
+ const result = C._ts_language_symbol_for_name(this[0], typeAddress, typeLength, named);
2306
+ C._free(typeAddress);
2307
+ return result || null;
2308
+ }
2309
+ get nodeTypeCount() {
2310
+ return C._ts_language_symbol_count(this[0]);
2311
+ }
2312
+ nodeTypeForId(typeId) {
2313
+ const name2 = C._ts_language_symbol_name(this[0], typeId);
2314
+ return name2 ? UTF8ToString(name2) : null;
2315
+ }
2316
+ nodeTypeIsNamed(typeId) {
2317
+ return C._ts_language_type_is_named_wasm(this[0], typeId) ? true : false;
2318
+ }
2319
+ nodeTypeIsVisible(typeId) {
2320
+ return C._ts_language_type_is_visible_wasm(this[0], typeId) ? true : false;
2321
+ }
2322
+ nextState(stateId, typeId) {
2323
+ return C._ts_language_next_state(this[0], stateId, typeId);
2324
+ }
2325
+ lookaheadIterator(stateId) {
2326
+ const address = C._ts_lookahead_iterator_new(this[0], stateId);
2327
+ if (address)
2328
+ return new LookaheadIterable(INTERNAL, address, this);
2329
+ return null;
2330
+ }
2331
+ query(source) {
2332
+ const sourceLength = lengthBytesUTF8(source);
2333
+ const sourceAddress = C._malloc(sourceLength + 1);
2334
+ stringToUTF8(source, sourceAddress, sourceLength + 1);
2335
+ const address = C._ts_query_new(this[0], sourceAddress, sourceLength, TRANSFER_BUFFER, TRANSFER_BUFFER + SIZE_OF_INT);
2336
+ if (!address) {
2337
+ const errorId = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
2338
+ const errorByte = getValue(TRANSFER_BUFFER, "i32");
2339
+ const errorIndex = UTF8ToString(sourceAddress, errorByte).length;
2340
+ const suffix = source.substr(errorIndex, 100).split(`
2341
+ `)[0];
2342
+ let word = suffix.match(QUERY_WORD_REGEX)[0];
2343
+ let error;
2344
+ switch (errorId) {
2345
+ case 2:
2346
+ error = new RangeError(`Bad node name '${word}'`);
2347
+ break;
2348
+ case 3:
2349
+ error = new RangeError(`Bad field name '${word}'`);
2350
+ break;
2351
+ case 4:
2352
+ error = new RangeError(`Bad capture name @${word}`);
2353
+ break;
2354
+ case 5:
2355
+ error = new TypeError(`Bad pattern structure at offset ${errorIndex}: '${suffix}'...`);
2356
+ word = "";
2357
+ break;
2358
+ default:
2359
+ error = new SyntaxError(`Bad syntax at offset ${errorIndex}: '${suffix}'...`);
2360
+ word = "";
2361
+ break;
2362
+ }
2363
+ error.index = errorIndex;
2364
+ error.length = word.length;
2365
+ C._free(sourceAddress);
2366
+ throw error;
2367
+ }
2368
+ const stringCount = C._ts_query_string_count(address);
2369
+ const captureCount = C._ts_query_capture_count(address);
2370
+ const patternCount = C._ts_query_pattern_count(address);
2371
+ const captureNames = new Array(captureCount);
2372
+ const stringValues = new Array(stringCount);
2373
+ for (let i2 = 0;i2 < captureCount; i2++) {
2374
+ const nameAddress = C._ts_query_capture_name_for_id(address, i2, TRANSFER_BUFFER);
2375
+ const nameLength = getValue(TRANSFER_BUFFER, "i32");
2376
+ captureNames[i2] = UTF8ToString(nameAddress, nameLength);
2377
+ }
2378
+ for (let i2 = 0;i2 < stringCount; i2++) {
2379
+ const valueAddress = C._ts_query_string_value_for_id(address, i2, TRANSFER_BUFFER);
2380
+ const nameLength = getValue(TRANSFER_BUFFER, "i32");
2381
+ stringValues[i2] = UTF8ToString(valueAddress, nameLength);
2382
+ }
2383
+ const setProperties = new Array(patternCount);
2384
+ const assertedProperties = new Array(patternCount);
2385
+ const refutedProperties = new Array(patternCount);
2386
+ const predicates = new Array(patternCount);
2387
+ const textPredicates = new Array(patternCount);
2388
+ for (let i2 = 0;i2 < patternCount; i2++) {
2389
+ const predicatesAddress = C._ts_query_predicates_for_pattern(address, i2, TRANSFER_BUFFER);
2390
+ const stepCount = getValue(TRANSFER_BUFFER, "i32");
2391
+ predicates[i2] = [];
2392
+ textPredicates[i2] = [];
2393
+ const steps = [];
2394
+ let stepAddress = predicatesAddress;
2395
+ for (let j = 0;j < stepCount; j++) {
2396
+ const stepType = getValue(stepAddress, "i32");
2397
+ stepAddress += SIZE_OF_INT;
2398
+ const stepValueId = getValue(stepAddress, "i32");
2399
+ stepAddress += SIZE_OF_INT;
2400
+ if (stepType === PREDICATE_STEP_TYPE_CAPTURE) {
2401
+ steps.push({
2402
+ type: "capture",
2403
+ name: captureNames[stepValueId]
2404
+ });
2405
+ } else if (stepType === PREDICATE_STEP_TYPE_STRING) {
2406
+ steps.push({
2407
+ type: "string",
2408
+ value: stringValues[stepValueId]
2409
+ });
2410
+ } else if (steps.length > 0) {
2411
+ if (steps[0].type !== "string") {
2412
+ throw new Error("Predicates must begin with a literal value");
2413
+ }
2414
+ const operator = steps[0].value;
2415
+ let isPositive = true;
2416
+ let matchAll = true;
2417
+ let captureName;
2418
+ switch (operator) {
2419
+ case "any-not-eq?":
2420
+ case "not-eq?":
2421
+ isPositive = false;
2422
+ case "any-eq?":
2423
+ case "eq?":
2424
+ if (steps.length !== 3) {
2425
+ throw new Error(`Wrong number of arguments to \`#${operator}\` predicate. Expected 2, got ${steps.length - 1}`);
2426
+ }
2427
+ if (steps[1].type !== "capture") {
2428
+ throw new Error(`First argument of \`#${operator}\` predicate must be a capture. Got "${steps[1].value}"`);
2429
+ }
2430
+ matchAll = !operator.startsWith("any-");
2431
+ if (steps[2].type === "capture") {
2432
+ const captureName1 = steps[1].name;
2433
+ const captureName2 = steps[2].name;
2434
+ textPredicates[i2].push((captures) => {
2435
+ const nodes1 = [];
2436
+ const nodes2 = [];
2437
+ for (const c of captures) {
2438
+ if (c.name === captureName1)
2439
+ nodes1.push(c.node);
2440
+ if (c.name === captureName2)
2441
+ nodes2.push(c.node);
2442
+ }
2443
+ const compare = (n1, n2, positive) => positive ? n1.text === n2.text : n1.text !== n2.text;
2444
+ return matchAll ? nodes1.every((n1) => nodes2.some((n2) => compare(n1, n2, isPositive))) : nodes1.some((n1) => nodes2.some((n2) => compare(n1, n2, isPositive)));
2445
+ });
2446
+ } else {
2447
+ captureName = steps[1].name;
2448
+ const stringValue = steps[2].value;
2449
+ const matches = (n) => n.text === stringValue;
2450
+ const doesNotMatch = (n) => n.text !== stringValue;
2451
+ textPredicates[i2].push((captures) => {
2452
+ const nodes = [];
2453
+ for (const c of captures) {
2454
+ if (c.name === captureName)
2455
+ nodes.push(c.node);
2456
+ }
2457
+ const test = isPositive ? matches : doesNotMatch;
2458
+ return matchAll ? nodes.every(test) : nodes.some(test);
2459
+ });
2460
+ }
2461
+ break;
2462
+ case "any-not-match?":
2463
+ case "not-match?":
2464
+ isPositive = false;
2465
+ case "any-match?":
2466
+ case "match?":
2467
+ if (steps.length !== 3) {
2468
+ throw new Error(`Wrong number of arguments to \`#${operator}\` predicate. Expected 2, got ${steps.length - 1}.`);
2469
+ }
2470
+ if (steps[1].type !== "capture") {
2471
+ throw new Error(`First argument of \`#${operator}\` predicate must be a capture. Got "${steps[1].value}".`);
2472
+ }
2473
+ if (steps[2].type !== "string") {
2474
+ throw new Error(`Second argument of \`#${operator}\` predicate must be a string. Got @${steps[2].value}.`);
2475
+ }
2476
+ captureName = steps[1].name;
2477
+ const regex = new RegExp(steps[2].value);
2478
+ matchAll = !operator.startsWith("any-");
2479
+ textPredicates[i2].push((captures) => {
2480
+ const nodes = [];
2481
+ for (const c of captures) {
2482
+ if (c.name === captureName)
2483
+ nodes.push(c.node.text);
2484
+ }
2485
+ const test = (text, positive) => positive ? regex.test(text) : !regex.test(text);
2486
+ if (nodes.length === 0)
2487
+ return !isPositive;
2488
+ return matchAll ? nodes.every((text) => test(text, isPositive)) : nodes.some((text) => test(text, isPositive));
2489
+ });
2490
+ break;
2491
+ case "set!":
2492
+ if (steps.length < 2 || steps.length > 3) {
2493
+ throw new Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${steps.length - 1}.`);
2494
+ }
2495
+ if (steps.some((s) => s.type !== "string")) {
2496
+ throw new Error(`Arguments to \`#set!\` predicate must be a strings.".`);
2497
+ }
2498
+ if (!setProperties[i2])
2499
+ setProperties[i2] = {};
2500
+ setProperties[i2][steps[1].value] = steps[2] ? steps[2].value : null;
2501
+ break;
2502
+ case "is?":
2503
+ case "is-not?":
2504
+ if (steps.length < 2 || steps.length > 3) {
2505
+ throw new Error(`Wrong number of arguments to \`#${operator}\` predicate. Expected 1 or 2. Got ${steps.length - 1}.`);
2506
+ }
2507
+ if (steps.some((s) => s.type !== "string")) {
2508
+ throw new Error(`Arguments to \`#${operator}\` predicate must be a strings.".`);
2509
+ }
2510
+ const properties = operator === "is?" ? assertedProperties : refutedProperties;
2511
+ if (!properties[i2])
2512
+ properties[i2] = {};
2513
+ properties[i2][steps[1].value] = steps[2] ? steps[2].value : null;
2514
+ break;
2515
+ case "not-any-of?":
2516
+ isPositive = false;
2517
+ case "any-of?":
2518
+ if (steps.length < 2) {
2519
+ throw new Error(`Wrong number of arguments to \`#${operator}\` predicate. Expected at least 1. Got ${steps.length - 1}.`);
2520
+ }
2521
+ if (steps[1].type !== "capture") {
2522
+ throw new Error(`First argument of \`#${operator}\` predicate must be a capture. Got "${steps[1].value}".`);
2523
+ }
2524
+ for (let i3 = 2;i3 < steps.length; i3++) {
2525
+ if (steps[i3].type !== "string") {
2526
+ throw new Error(`Arguments to \`#${operator}\` predicate must be a strings.".`);
2527
+ }
2528
+ }
2529
+ captureName = steps[1].name;
2530
+ const values = steps.slice(2).map((s) => s.value);
2531
+ textPredicates[i2].push((captures) => {
2532
+ const nodes = [];
2533
+ for (const c of captures) {
2534
+ if (c.name === captureName)
2535
+ nodes.push(c.node.text);
2536
+ }
2537
+ if (nodes.length === 0)
2538
+ return !isPositive;
2539
+ return nodes.every((text) => values.includes(text)) === isPositive;
2540
+ });
2541
+ break;
2542
+ default:
2543
+ predicates[i2].push({
2544
+ operator,
2545
+ operands: steps.slice(1)
2546
+ });
2547
+ }
2548
+ steps.length = 0;
2549
+ }
2550
+ }
2551
+ Object.freeze(setProperties[i2]);
2552
+ Object.freeze(assertedProperties[i2]);
2553
+ Object.freeze(refutedProperties[i2]);
2554
+ }
2555
+ C._free(sourceAddress);
2556
+ return new Query(INTERNAL, address, captureNames, textPredicates, predicates, Object.freeze(setProperties), Object.freeze(assertedProperties), Object.freeze(refutedProperties));
2557
+ }
2558
+ static load(input) {
2559
+ let bytes;
2560
+ if (input instanceof Uint8Array) {
2561
+ bytes = Promise.resolve(input);
2562
+ } else {
2563
+ const url = input;
2564
+ if (typeof process !== "undefined" && process.versions && process.versions.node) {
2565
+ const fs2 = __require("fs");
2566
+ bytes = Promise.resolve(fs2.readFileSync(url));
2567
+ } else {
2568
+ bytes = fetch(url).then((response) => response.arrayBuffer().then((buffer) => {
2569
+ if (response.ok) {
2570
+ return new Uint8Array(buffer);
2571
+ } else {
2572
+ const body2 = new TextDecoder("utf-8").decode(buffer);
2573
+ throw new Error(`Language.load failed with status ${response.status}.
2574
+
2575
+ ${body2}`);
2576
+ }
2577
+ }));
2578
+ }
2579
+ }
2580
+ return bytes.then((bytes2) => loadWebAssemblyModule(bytes2, {
2581
+ loadAsync: true
2582
+ })).then((mod) => {
2583
+ const symbolNames = Object.keys(mod);
2584
+ const functionName = symbolNames.find((key) => LANGUAGE_FUNCTION_REGEX.test(key) && !key.includes("external_scanner_"));
2585
+ if (!functionName) {
2586
+ console.log(`Couldn't find language function in WASM file. Symbols:
2587
+ ${JSON.stringify(symbolNames, null, 2)}`);
2588
+ }
2589
+ const languageAddress = mod[functionName]();
2590
+ return new Language(INTERNAL, languageAddress);
2591
+ });
2592
+ }
2593
+ }
2594
+
2595
+ class LookaheadIterable {
2596
+ constructor(internal, address, language) {
2597
+ assertInternal(internal);
2598
+ this[0] = address;
2599
+ this.language = language;
2600
+ }
2601
+ get currentTypeId() {
2602
+ return C._ts_lookahead_iterator_current_symbol(this[0]);
2603
+ }
2604
+ get currentType() {
2605
+ return this.language.types[this.currentTypeId] || "ERROR";
2606
+ }
2607
+ delete() {
2608
+ C._ts_lookahead_iterator_delete(this[0]);
2609
+ this[0] = 0;
2610
+ }
2611
+ resetState(stateId) {
2612
+ return C._ts_lookahead_iterator_reset_state(this[0], stateId);
2613
+ }
2614
+ reset(language, stateId) {
2615
+ if (C._ts_lookahead_iterator_reset(this[0], language[0], stateId)) {
2616
+ this.language = language;
2617
+ return true;
2618
+ }
2619
+ return false;
2620
+ }
2621
+ [Symbol.iterator]() {
2622
+ const self2 = this;
2623
+ return {
2624
+ next() {
2625
+ if (C._ts_lookahead_iterator_next(self2[0])) {
2626
+ return {
2627
+ done: false,
2628
+ value: self2.currentType
2629
+ };
2630
+ }
2631
+ return {
2632
+ done: true,
2633
+ value: ""
2634
+ };
2635
+ }
2636
+ };
2637
+ }
2638
+ }
2639
+
2640
+ class Query {
2641
+ constructor(internal, address, captureNames, textPredicates, predicates, setProperties, assertedProperties, refutedProperties) {
2642
+ assertInternal(internal);
2643
+ this[0] = address;
2644
+ this.captureNames = captureNames;
2645
+ this.textPredicates = textPredicates;
2646
+ this.predicates = predicates;
2647
+ this.setProperties = setProperties;
2648
+ this.assertedProperties = assertedProperties;
2649
+ this.refutedProperties = refutedProperties;
2650
+ this.exceededMatchLimit = false;
2651
+ }
2652
+ delete() {
2653
+ C._ts_query_delete(this[0]);
2654
+ this[0] = 0;
2655
+ }
2656
+ matches(node, { startPosition = ZERO_POINT, endPosition = ZERO_POINT, startIndex = 0, endIndex = 0, matchLimit = 4294967295, maxStartDepth = 4294967295, timeoutMicros = 0 } = {}) {
2657
+ if (typeof matchLimit !== "number") {
2658
+ throw new Error("Arguments must be numbers");
2659
+ }
2660
+ marshalNode(node);
2661
+ C._ts_query_matches_wasm(this[0], node.tree[0], startPosition.row, startPosition.column, endPosition.row, endPosition.column, startIndex, endIndex, matchLimit, maxStartDepth, timeoutMicros);
2662
+ const rawCount = getValue(TRANSFER_BUFFER, "i32");
2663
+ const startAddress = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
2664
+ const didExceedMatchLimit = getValue(TRANSFER_BUFFER + 2 * SIZE_OF_INT, "i32");
2665
+ const result = new Array(rawCount);
2666
+ this.exceededMatchLimit = Boolean(didExceedMatchLimit);
2667
+ let filteredCount = 0;
2668
+ let address = startAddress;
2669
+ for (let i2 = 0;i2 < rawCount; i2++) {
2670
+ const pattern = getValue(address, "i32");
2671
+ address += SIZE_OF_INT;
2672
+ const captureCount = getValue(address, "i32");
2673
+ address += SIZE_OF_INT;
2674
+ const captures = new Array(captureCount);
2675
+ address = unmarshalCaptures(this, node.tree, address, captures);
2676
+ if (this.textPredicates[pattern].every((p) => p(captures))) {
2677
+ result[filteredCount] = {
2678
+ pattern,
2679
+ captures
2680
+ };
2681
+ const setProperties = this.setProperties[pattern];
2682
+ if (setProperties)
2683
+ result[filteredCount].setProperties = setProperties;
2684
+ const assertedProperties = this.assertedProperties[pattern];
2685
+ if (assertedProperties)
2686
+ result[filteredCount].assertedProperties = assertedProperties;
2687
+ const refutedProperties = this.refutedProperties[pattern];
2688
+ if (refutedProperties)
2689
+ result[filteredCount].refutedProperties = refutedProperties;
2690
+ filteredCount++;
2691
+ }
2692
+ }
2693
+ result.length = filteredCount;
2694
+ C._free(startAddress);
2695
+ return result;
2696
+ }
2697
+ captures(node, { startPosition = ZERO_POINT, endPosition = ZERO_POINT, startIndex = 0, endIndex = 0, matchLimit = 4294967295, maxStartDepth = 4294967295, timeoutMicros = 0 } = {}) {
2698
+ if (typeof matchLimit !== "number") {
2699
+ throw new Error("Arguments must be numbers");
2700
+ }
2701
+ marshalNode(node);
2702
+ C._ts_query_captures_wasm(this[0], node.tree[0], startPosition.row, startPosition.column, endPosition.row, endPosition.column, startIndex, endIndex, matchLimit, maxStartDepth, timeoutMicros);
2703
+ const count = getValue(TRANSFER_BUFFER, "i32");
2704
+ const startAddress = getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32");
2705
+ const didExceedMatchLimit = getValue(TRANSFER_BUFFER + 2 * SIZE_OF_INT, "i32");
2706
+ const result = [];
2707
+ this.exceededMatchLimit = Boolean(didExceedMatchLimit);
2708
+ const captures = [];
2709
+ let address = startAddress;
2710
+ for (let i2 = 0;i2 < count; i2++) {
2711
+ const pattern = getValue(address, "i32");
2712
+ address += SIZE_OF_INT;
2713
+ const captureCount = getValue(address, "i32");
2714
+ address += SIZE_OF_INT;
2715
+ const captureIndex = getValue(address, "i32");
2716
+ address += SIZE_OF_INT;
2717
+ captures.length = captureCount;
2718
+ address = unmarshalCaptures(this, node.tree, address, captures);
2719
+ if (this.textPredicates[pattern].every((p) => p(captures))) {
2720
+ const capture = captures[captureIndex];
2721
+ const setProperties = this.setProperties[pattern];
2722
+ if (setProperties)
2723
+ capture.setProperties = setProperties;
2724
+ const assertedProperties = this.assertedProperties[pattern];
2725
+ if (assertedProperties)
2726
+ capture.assertedProperties = assertedProperties;
2727
+ const refutedProperties = this.refutedProperties[pattern];
2728
+ if (refutedProperties)
2729
+ capture.refutedProperties = refutedProperties;
2730
+ result.push(capture);
2731
+ }
2732
+ }
2733
+ C._free(startAddress);
2734
+ return result;
2735
+ }
2736
+ predicatesForPattern(patternIndex) {
2737
+ return this.predicates[patternIndex];
2738
+ }
2739
+ disableCapture(captureName) {
2740
+ const captureNameLength = lengthBytesUTF8(captureName);
2741
+ const captureNameAddress = C._malloc(captureNameLength + 1);
2742
+ stringToUTF8(captureName, captureNameAddress, captureNameLength + 1);
2743
+ C._ts_query_disable_capture(this[0], captureNameAddress, captureNameLength);
2744
+ C._free(captureNameAddress);
2745
+ }
2746
+ didExceedMatchLimit() {
2747
+ return this.exceededMatchLimit;
2748
+ }
2749
+ }
2750
+ function getText(tree, startIndex, endIndex) {
2751
+ const length = endIndex - startIndex;
2752
+ let result = tree.textCallback(startIndex, null, endIndex);
2753
+ startIndex += result.length;
2754
+ while (startIndex < endIndex) {
2755
+ const string = tree.textCallback(startIndex, null, endIndex);
2756
+ if (string && string.length > 0) {
2757
+ startIndex += string.length;
2758
+ result += string;
2759
+ } else {
2760
+ break;
2761
+ }
2762
+ }
2763
+ if (startIndex > endIndex) {
2764
+ result = result.slice(0, length);
2765
+ }
2766
+ return result;
2767
+ }
2768
+ function unmarshalCaptures(query, tree, address, result) {
2769
+ for (let i2 = 0, n = result.length;i2 < n; i2++) {
2770
+ const captureIndex = getValue(address, "i32");
2771
+ address += SIZE_OF_INT;
2772
+ const node = unmarshalNode(tree, address);
2773
+ address += SIZE_OF_NODE;
2774
+ result[i2] = {
2775
+ name: query.captureNames[captureIndex],
2776
+ node
2777
+ };
2778
+ }
2779
+ return address;
2780
+ }
2781
+ function assertInternal(x) {
2782
+ if (x !== INTERNAL)
2783
+ throw new Error("Illegal constructor");
2784
+ }
2785
+ function isPoint(point) {
2786
+ return point && typeof point.row === "number" && typeof point.column === "number";
2787
+ }
2788
+ function marshalNode(node) {
2789
+ let address = TRANSFER_BUFFER;
2790
+ setValue(address, node.id, "i32");
2791
+ address += SIZE_OF_INT;
2792
+ setValue(address, node.startIndex, "i32");
2793
+ address += SIZE_OF_INT;
2794
+ setValue(address, node.startPosition.row, "i32");
2795
+ address += SIZE_OF_INT;
2796
+ setValue(address, node.startPosition.column, "i32");
2797
+ address += SIZE_OF_INT;
2798
+ setValue(address, node[0], "i32");
2799
+ }
2800
+ function unmarshalNode(tree, address = TRANSFER_BUFFER) {
2801
+ const id = getValue(address, "i32");
2802
+ address += SIZE_OF_INT;
2803
+ if (id === 0)
2804
+ return null;
2805
+ const index = getValue(address, "i32");
2806
+ address += SIZE_OF_INT;
2807
+ const row = getValue(address, "i32");
2808
+ address += SIZE_OF_INT;
2809
+ const column = getValue(address, "i32");
2810
+ address += SIZE_OF_INT;
2811
+ const other = getValue(address, "i32");
2812
+ const result = new Node(INTERNAL, tree);
2813
+ result.id = id;
2814
+ result.startIndex = index;
2815
+ result.startPosition = {
2816
+ row,
2817
+ column
2818
+ };
2819
+ result[0] = other;
2820
+ return result;
2821
+ }
2822
+ function marshalTreeCursor(cursor, address = TRANSFER_BUFFER) {
2823
+ setValue(address + 0 * SIZE_OF_INT, cursor[0], "i32");
2824
+ setValue(address + 1 * SIZE_OF_INT, cursor[1], "i32");
2825
+ setValue(address + 2 * SIZE_OF_INT, cursor[2], "i32");
2826
+ setValue(address + 3 * SIZE_OF_INT, cursor[3], "i32");
2827
+ }
2828
+ function unmarshalTreeCursor(cursor) {
2829
+ cursor[0] = getValue(TRANSFER_BUFFER + 0 * SIZE_OF_INT, "i32");
2830
+ cursor[1] = getValue(TRANSFER_BUFFER + 1 * SIZE_OF_INT, "i32");
2831
+ cursor[2] = getValue(TRANSFER_BUFFER + 2 * SIZE_OF_INT, "i32");
2832
+ cursor[3] = getValue(TRANSFER_BUFFER + 3 * SIZE_OF_INT, "i32");
2833
+ }
2834
+ function marshalPoint(address, point) {
2835
+ setValue(address, point.row, "i32");
2836
+ setValue(address + SIZE_OF_INT, point.column, "i32");
2837
+ }
2838
+ function unmarshalPoint(address) {
2839
+ const result = {
2840
+ row: getValue(address, "i32") >>> 0,
2841
+ column: getValue(address + SIZE_OF_INT, "i32") >>> 0
2842
+ };
2843
+ return result;
2844
+ }
2845
+ function marshalRange(address, range) {
2846
+ marshalPoint(address, range.startPosition);
2847
+ address += SIZE_OF_POINT;
2848
+ marshalPoint(address, range.endPosition);
2849
+ address += SIZE_OF_POINT;
2850
+ setValue(address, range.startIndex, "i32");
2851
+ address += SIZE_OF_INT;
2852
+ setValue(address, range.endIndex, "i32");
2853
+ address += SIZE_OF_INT;
2854
+ }
2855
+ function unmarshalRange(address) {
2856
+ const result = {};
2857
+ result.startPosition = unmarshalPoint(address);
2858
+ address += SIZE_OF_POINT;
2859
+ result.endPosition = unmarshalPoint(address);
2860
+ address += SIZE_OF_POINT;
2861
+ result.startIndex = getValue(address, "i32") >>> 0;
2862
+ address += SIZE_OF_INT;
2863
+ result.endIndex = getValue(address, "i32") >>> 0;
2864
+ return result;
2865
+ }
2866
+ function marshalEdit(edit) {
2867
+ let address = TRANSFER_BUFFER;
2868
+ marshalPoint(address, edit.startPosition);
2869
+ address += SIZE_OF_POINT;
2870
+ marshalPoint(address, edit.oldEndPosition);
2871
+ address += SIZE_OF_POINT;
2872
+ marshalPoint(address, edit.newEndPosition);
2873
+ address += SIZE_OF_POINT;
2874
+ setValue(address, edit.startIndex, "i32");
2875
+ address += SIZE_OF_INT;
2876
+ setValue(address, edit.oldEndIndex, "i32");
2877
+ address += SIZE_OF_INT;
2878
+ setValue(address, edit.newEndIndex, "i32");
2879
+ address += SIZE_OF_INT;
2880
+ }
2881
+ for (const name2 of Object.getOwnPropertyNames(ParserImpl.prototype)) {
2882
+ Object.defineProperty(Parser.prototype, name2, {
2883
+ value: ParserImpl.prototype[name2],
2884
+ enumerable: false,
2885
+ writable: false
2886
+ });
2887
+ }
2888
+ Parser.Language = Language;
2889
+ Module.onRuntimeInitialized = () => {
2890
+ ParserImpl.init();
2891
+ resolveInitPromise();
2892
+ };
2893
+ });
2894
+ }
2895
+ }
2896
+ return Parser;
2897
+ }();
2898
+ if (typeof exports === "object") {
2899
+ module2.exports = TreeSitter;
2900
+ }
2901
+ });
2902
+
14
2903
  // src/agents/oracle.ts
15
2904
  var oracleAgent = {
16
2905
  description: "Expert AI advisor with advanced reasoning capabilities for high-quality technical guidance, code reviews, architectural advice, and strategic planning.",
@@ -587,16 +3476,16 @@ function mergeAgentConfig(base, override) {
587
3476
  }
588
3477
  function createBuiltinAgents(disabledAgents = [], agentOverrides = {}) {
589
3478
  const result = {};
590
- for (const [name, config] of Object.entries(allBuiltinAgents)) {
591
- const agentName = name;
3479
+ for (const [name2, config] of Object.entries(allBuiltinAgents)) {
3480
+ const agentName = name2;
592
3481
  if (disabledAgents.includes(agentName)) {
593
3482
  continue;
594
3483
  }
595
3484
  const override = agentOverrides[agentName];
596
3485
  if (override) {
597
- result[name] = mergeAgentConfig(config, override);
3486
+ result[name2] = mergeAgentConfig(config, override);
598
3487
  } else {
599
- result[name] = config;
3488
+ result[name2] = config;
600
3489
  }
601
3490
  }
602
3491
  return result;
@@ -619,11 +3508,11 @@ function detectInterrupt(error) {
619
3508
  return false;
620
3509
  if (typeof error === "object") {
621
3510
  const errObj = error;
622
- const name = errObj.name;
3511
+ const name2 = errObj.name;
623
3512
  const message = errObj.message?.toLowerCase() ?? "";
624
- if (name === "MessageAbortedError" || name === "AbortError")
3513
+ if (name2 === "MessageAbortedError" || name2 === "AbortError")
625
3514
  return true;
626
- if (name === "DOMException" && message.includes("abort"))
3515
+ if (name2 === "DOMException" && message.includes("abort"))
627
3516
  return true;
628
3517
  if (message.includes("aborted") || message.includes("cancelled") || message.includes("interrupted"))
629
3518
  return true;
@@ -705,9 +3594,9 @@ function createTodoContinuationEnforcer(ctx) {
705
3594
  }
706
3595
  }
707
3596
  if (event.type === "message.updated") {
708
- const info = props?.info;
709
- const sessionID = info?.sessionID;
710
- if (sessionID && info?.role === "user") {
3597
+ const info2 = props?.info;
3598
+ const sessionID = info2?.sessionID;
3599
+ if (sessionID && info2?.role === "user") {
711
3600
  remindedSessions.delete(sessionID);
712
3601
  }
713
3602
  }
@@ -814,12 +3703,12 @@ function detectErrorType(error) {
814
3703
  }
815
3704
  return null;
816
3705
  }
817
- function extractToolUseIds(parts) {
818
- return parts.filter((p) => p.type === "tool_use" && !!p.id).map((p) => p.id);
3706
+ function extractToolUseIds(parts2) {
3707
+ return parts2.filter((p) => p.type === "tool_use" && !!p.id).map((p) => p.id);
819
3708
  }
820
3709
  async function recoverToolResultMissing(client, sessionID, failedAssistantMsg) {
821
- const parts = failedAssistantMsg.parts || [];
822
- const toolUseIds = extractToolUseIds(parts);
3710
+ const parts2 = failedAssistantMsg.parts || [];
3711
+ const toolUseIds = extractToolUseIds(parts2);
823
3712
  if (toolUseIds.length === 0) {
824
3713
  return false;
825
3714
  }
@@ -926,9 +3815,9 @@ async function fallbackRevertStrategy(client, sessionID, failedAssistantMsg, dir
926
3815
  targetUserMsg = msgs.find((m) => m.info?.id === parentMsgID) ?? null;
927
3816
  }
928
3817
  if (!targetUserMsg) {
929
- for (let i = msgs.length - 1;i >= 0; i--) {
930
- if (msgs[i].info?.role === "user") {
931
- targetUserMsg = msgs[i];
3818
+ for (let i2 = msgs.length - 1;i2 >= 0; i2--) {
3819
+ if (msgs[i2].info?.role === "user") {
3820
+ targetUserMsg = msgs[i2];
932
3821
  break;
933
3822
  }
934
3823
  }
@@ -961,14 +3850,14 @@ function createSessionRecoveryHook(ctx) {
961
3850
  const isRecoverableError = (error) => {
962
3851
  return detectErrorType(error) !== null;
963
3852
  };
964
- const handleSessionRecovery = async (info) => {
965
- if (!info || info.role !== "assistant" || !info.error)
3853
+ const handleSessionRecovery = async (info2) => {
3854
+ if (!info2 || info2.role !== "assistant" || !info2.error)
966
3855
  return false;
967
- const errorType = detectErrorType(info.error);
3856
+ const errorType = detectErrorType(info2.error);
968
3857
  if (!errorType)
969
3858
  return false;
970
- const sessionID = info.sessionID;
971
- const assistantMsgID = info.id;
3859
+ const sessionID = info2.sessionID;
3860
+ const assistantMsgID = info2.id;
972
3861
  if (!sessionID || !assistantMsgID)
973
3862
  return false;
974
3863
  if (processingErrors.has(assistantMsgID))
@@ -1034,6 +3923,115 @@ function createSessionRecoveryHook(ctx) {
1034
3923
  };
1035
3924
  }
1036
3925
  // src/hooks/comment-checker/constants.ts
3926
+ var EXTENSION_TO_LANGUAGE = {
3927
+ py: "python",
3928
+ js: "javascript",
3929
+ jsx: "javascript",
3930
+ ts: "typescript",
3931
+ tsx: "tsx",
3932
+ go: "golang",
3933
+ java: "java",
3934
+ kt: "kotlin",
3935
+ scala: "scala",
3936
+ c: "c",
3937
+ h: "c",
3938
+ cpp: "cpp",
3939
+ cc: "cpp",
3940
+ cxx: "cpp",
3941
+ hpp: "cpp",
3942
+ rs: "rust",
3943
+ rb: "ruby",
3944
+ sh: "bash",
3945
+ bash: "bash",
3946
+ cs: "csharp",
3947
+ swift: "swift",
3948
+ ex: "elixir",
3949
+ exs: "elixir",
3950
+ lua: "lua",
3951
+ php: "php",
3952
+ ml: "ocaml",
3953
+ mli: "ocaml",
3954
+ sql: "sql",
3955
+ html: "html",
3956
+ htm: "html",
3957
+ css: "css",
3958
+ yaml: "yaml",
3959
+ yml: "yaml",
3960
+ toml: "toml",
3961
+ hcl: "hcl",
3962
+ tf: "hcl",
3963
+ dockerfile: "dockerfile",
3964
+ proto: "protobuf",
3965
+ svelte: "svelte",
3966
+ elm: "elm",
3967
+ groovy: "groovy",
3968
+ cue: "cue"
3969
+ };
3970
+ var QUERY_TEMPLATES = {
3971
+ python: "(comment) @comment",
3972
+ javascript: "(comment) @comment",
3973
+ typescript: "(comment) @comment",
3974
+ tsx: "(comment) @comment",
3975
+ golang: "(comment) @comment",
3976
+ rust: `
3977
+ (line_comment) @comment
3978
+ (block_comment) @comment
3979
+ `,
3980
+ kotlin: `
3981
+ (line_comment) @comment
3982
+ (multiline_comment) @comment
3983
+ `,
3984
+ java: `
3985
+ (line_comment) @comment
3986
+ (block_comment) @comment
3987
+ `,
3988
+ c: "(comment) @comment",
3989
+ cpp: "(comment) @comment",
3990
+ csharp: "(comment) @comment",
3991
+ ruby: "(comment) @comment",
3992
+ bash: "(comment) @comment",
3993
+ swift: "(comment) @comment",
3994
+ elixir: "(comment) @comment",
3995
+ lua: "(comment) @comment",
3996
+ php: "(comment) @comment",
3997
+ ocaml: "(comment) @comment",
3998
+ sql: "(comment) @comment",
3999
+ html: "(comment) @comment",
4000
+ css: "(comment) @comment",
4001
+ yaml: "(comment) @comment",
4002
+ toml: "(comment) @comment",
4003
+ hcl: "(comment) @comment",
4004
+ dockerfile: "(comment) @comment",
4005
+ protobuf: "(comment) @comment",
4006
+ svelte: "(comment) @comment",
4007
+ elm: "(comment) @comment",
4008
+ groovy: "(comment) @comment",
4009
+ cue: "(comment) @comment",
4010
+ scala: "(comment) @comment"
4011
+ };
4012
+ var DOCSTRING_QUERIES = {
4013
+ python: `
4014
+ (module . (expression_statement (string) @docstring))
4015
+ (class_definition body: (block . (expression_statement (string) @docstring)))
4016
+ (function_definition body: (block . (expression_statement (string) @docstring)))
4017
+ `,
4018
+ javascript: `
4019
+ (comment) @jsdoc
4020
+ (#match? @jsdoc "^/\\\\*\\\\*")
4021
+ `,
4022
+ typescript: `
4023
+ (comment) @jsdoc
4024
+ (#match? @jsdoc "^/\\\\*\\\\*")
4025
+ `,
4026
+ tsx: `
4027
+ (comment) @jsdoc
4028
+ (#match? @jsdoc "^/\\\\*\\\\*")
4029
+ `,
4030
+ java: `
4031
+ (comment) @javadoc
4032
+ (#match? @javadoc "^/\\\\*\\\\*")
4033
+ `
4034
+ };
1037
4035
  var BDD_KEYWORDS = new Set([
1038
4036
  "given",
1039
4037
  "when",
@@ -1044,6 +4042,306 @@ var BDD_KEYWORDS = new Set([
1044
4042
  "when & then",
1045
4043
  "when&then"
1046
4044
  ]);
4045
+ var TYPE_CHECKER_PREFIXES = [
4046
+ "type:",
4047
+ "noqa",
4048
+ "pyright:",
4049
+ "ruff:",
4050
+ "mypy:",
4051
+ "pylint:",
4052
+ "flake8:",
4053
+ "pyre:",
4054
+ "pytype:",
4055
+ "eslint-disable",
4056
+ "eslint-enable",
4057
+ "eslint-ignore",
4058
+ "prettier-ignore",
4059
+ "ts-ignore",
4060
+ "ts-expect-error",
4061
+ "ts-nocheck",
4062
+ "clippy::",
4063
+ "allow(",
4064
+ "deny(",
4065
+ "warn(",
4066
+ "forbid(",
4067
+ "nolint",
4068
+ "go:generate",
4069
+ "go:build",
4070
+ "go:embed",
4071
+ "coverage:",
4072
+ "c8 ignore",
4073
+ "biome-ignore",
4074
+ "region",
4075
+ "endregion"
4076
+ ];
4077
+ var HOOK_MESSAGE_HEADER = `COMMENT/DOCSTRING DETECTED - IMMEDIATE ACTION REQUIRED
4078
+
4079
+ Your recent changes contain comments or docstrings, which triggered this hook.
4080
+ You need to take immediate action. You must follow the conditions below.
4081
+ (Listed in priority order - you must always act according to this priority order)
4082
+
4083
+ CRITICAL WARNING: This hook message MUST NEVER be ignored, even if you receive it multiple times.
4084
+ You MUST provide corresponding explanation or action for EACH occurrence of this message.
4085
+ Ignoring this message or failing to respond appropriately is strictly prohibited.
4086
+
4087
+ PRIORITY-BASED ACTION GUIDELINES:
4088
+
4089
+ 1. This is a comment/docstring that already existed before
4090
+ -> Explain to the user that this is an existing comment/docstring and proceed (justify it)
4091
+
4092
+ 2. This is a newly written comment: but it's in given, when, then format
4093
+ -> Tell the user it's a BDD comment and proceed (justify it)
4094
+ -> Note: This applies to comments only, not docstrings
4095
+
4096
+ 3. This is a newly written comment/docstring: but it's a necessary comment/docstring
4097
+ -> Tell the user why this comment/docstring is absolutely necessary and proceed (justify it)
4098
+ -> Examples of necessary comments: complex algorithms, security-related, performance optimization, regex, mathematical formulas
4099
+ -> Examples of necessary docstrings: public API documentation, complex module/class interfaces
4100
+ -> IMPORTANT: Most docstrings are unnecessary if the code is self-explanatory. Only keep truly essential ones.
4101
+
4102
+ 4. This is a newly written comment/docstring: but it's an unnecessary comment/docstring
4103
+ -> Apologize to the user and remove the comment/docstring.
4104
+ -> Make the code itself clearer so it can be understood without comments/docstrings.
4105
+ -> For verbose docstrings: refactor code to be self-documenting instead of adding lengthy explanations.
4106
+
4107
+ MANDATORY REQUIREMENT: You must acknowledge this hook message and take one of the above actions.
4108
+ Review in the above priority order and take the corresponding action EVERY TIME this appears.
4109
+
4110
+ Detected comments/docstrings:
4111
+ `;
4112
+ function getLanguageByExtension(filePath) {
4113
+ const lastDot = filePath.lastIndexOf(".");
4114
+ if (lastDot === -1) {
4115
+ const baseName = filePath.split("/").pop()?.toLowerCase();
4116
+ if (baseName === "dockerfile")
4117
+ return "dockerfile";
4118
+ return null;
4119
+ }
4120
+ const ext = filePath.slice(lastDot + 1).toLowerCase();
4121
+ return EXTENSION_TO_LANGUAGE[ext] ?? null;
4122
+ }
4123
+
4124
+ // src/hooks/comment-checker/detector.ts
4125
+ function isSupportedFile(filePath) {
4126
+ return getLanguageByExtension(filePath) !== null;
4127
+ }
4128
+ function determineCommentType(text, nodeType) {
4129
+ const stripped = text.trim();
4130
+ if (nodeType === "line_comment") {
4131
+ return "line";
4132
+ }
4133
+ if (nodeType === "block_comment" || nodeType === "multiline_comment") {
4134
+ return "block";
4135
+ }
4136
+ if (stripped.startsWith('"""') || stripped.startsWith("'''")) {
4137
+ return "docstring";
4138
+ }
4139
+ if (stripped.startsWith("//") || stripped.startsWith("#")) {
4140
+ return "line";
4141
+ }
4142
+ if (stripped.startsWith("/*") || stripped.startsWith("<!--") || stripped.startsWith("--")) {
4143
+ return "block";
4144
+ }
4145
+ return "line";
4146
+ }
4147
+ async function detectComments(filePath, content, includeDocstrings = true) {
4148
+ const langName = getLanguageByExtension(filePath);
4149
+ if (!langName) {
4150
+ return [];
4151
+ }
4152
+ const queryPattern = QUERY_TEMPLATES[langName];
4153
+ if (!queryPattern) {
4154
+ return [];
4155
+ }
4156
+ try {
4157
+ const Parser2 = (await Promise.resolve().then(() => __toESM(require_tree_sitter(), 1))).default;
4158
+ const treeSitterWasmPath = __require.resolve("/home/runner/work/oh-my-opencode/oh-my-opencode/node_modules/web-tree-sitter/tree-sitter.wasm");
4159
+ await Parser2.init({
4160
+ locateFile: () => treeSitterWasmPath
4161
+ });
4162
+ const parser = new Parser2;
4163
+ let wasmPath;
4164
+ try {
4165
+ const wasmModule = await import(`tree-sitter-wasms/out/tree-sitter-${langName}.wasm`);
4166
+ wasmPath = wasmModule.default;
4167
+ } catch {
4168
+ const languageMap = {
4169
+ golang: "go",
4170
+ csharp: "c_sharp",
4171
+ cpp: "cpp"
4172
+ };
4173
+ const mappedLang = languageMap[langName] || langName;
4174
+ try {
4175
+ const wasmModule = await import(`tree-sitter-wasms/out/tree-sitter-${mappedLang}.wasm`);
4176
+ wasmPath = wasmModule.default;
4177
+ } catch {
4178
+ return [];
4179
+ }
4180
+ }
4181
+ const language = await Parser2.Language.load(wasmPath);
4182
+ parser.setLanguage(language);
4183
+ const tree = parser.parse(content);
4184
+ const comments = [];
4185
+ const query = language.query(queryPattern);
4186
+ const matches = query.matches(tree.rootNode);
4187
+ for (const match of matches) {
4188
+ for (const capture of match.captures) {
4189
+ const node = capture.node;
4190
+ const text = node.text;
4191
+ const lineNumber = node.startPosition.row + 1;
4192
+ const commentType = determineCommentType(text, node.type);
4193
+ const isDocstring = commentType === "docstring";
4194
+ if (isDocstring && !includeDocstrings) {
4195
+ continue;
4196
+ }
4197
+ comments.push({
4198
+ text,
4199
+ lineNumber,
4200
+ filePath,
4201
+ commentType,
4202
+ isDocstring
4203
+ });
4204
+ }
4205
+ }
4206
+ if (includeDocstrings) {
4207
+ const docQuery = DOCSTRING_QUERIES[langName];
4208
+ if (docQuery) {
4209
+ try {
4210
+ const docQueryObj = language.query(docQuery);
4211
+ const docMatches = docQueryObj.matches(tree.rootNode);
4212
+ for (const match of docMatches) {
4213
+ for (const capture of match.captures) {
4214
+ const node = capture.node;
4215
+ const text = node.text;
4216
+ const lineNumber = node.startPosition.row + 1;
4217
+ const alreadyAdded = comments.some((c) => c.lineNumber === lineNumber && c.text === text);
4218
+ if (!alreadyAdded) {
4219
+ comments.push({
4220
+ text,
4221
+ lineNumber,
4222
+ filePath,
4223
+ commentType: "docstring",
4224
+ isDocstring: true
4225
+ });
4226
+ }
4227
+ }
4228
+ }
4229
+ } catch {}
4230
+ }
4231
+ }
4232
+ comments.sort((a, b) => a.lineNumber - b.lineNumber);
4233
+ return comments;
4234
+ } catch {
4235
+ return [];
4236
+ }
4237
+ }
4238
+
4239
+ // src/hooks/comment-checker/filters/bdd.ts
4240
+ function stripCommentPrefix(text) {
4241
+ let stripped = text.trim().toLowerCase();
4242
+ const prefixes = ["#", "//", "--", "/*", "*/"];
4243
+ for (const prefix of prefixes) {
4244
+ if (stripped.startsWith(prefix)) {
4245
+ stripped = stripped.slice(prefix.length).trim();
4246
+ }
4247
+ }
4248
+ return stripped;
4249
+ }
4250
+ function filterBddComments(comment) {
4251
+ const normalized = stripCommentPrefix(comment.text);
4252
+ if (BDD_KEYWORDS.has(normalized)) {
4253
+ return { shouldSkip: true, reason: `BDD keyword: ${normalized}` };
4254
+ }
4255
+ return { shouldSkip: false };
4256
+ }
4257
+
4258
+ // src/hooks/comment-checker/filters/directive.ts
4259
+ function stripCommentPrefix2(text) {
4260
+ let stripped = text.trim().toLowerCase();
4261
+ const prefixes = ["#", "//", "/*", "--"];
4262
+ for (const prefix of prefixes) {
4263
+ if (stripped.startsWith(prefix)) {
4264
+ stripped = stripped.slice(prefix.length).trim();
4265
+ }
4266
+ }
4267
+ stripped = stripped.replace(/^@/, "");
4268
+ return stripped;
4269
+ }
4270
+ function filterDirectiveComments(comment) {
4271
+ const normalized = stripCommentPrefix2(comment.text);
4272
+ for (const prefix of TYPE_CHECKER_PREFIXES) {
4273
+ if (normalized.startsWith(prefix.toLowerCase())) {
4274
+ return { shouldSkip: true, reason: `Directive: ${prefix}` };
4275
+ }
4276
+ }
4277
+ return { shouldSkip: false };
4278
+ }
4279
+
4280
+ // src/hooks/comment-checker/filters/docstring.ts
4281
+ function filterDocstringComments(comment) {
4282
+ if (comment.isDocstring) {
4283
+ return { shouldSkip: true, reason: "Docstring" };
4284
+ }
4285
+ const trimmed = comment.text.trimStart();
4286
+ if (trimmed.startsWith("/**")) {
4287
+ return { shouldSkip: true, reason: "JSDoc/PHPDoc" };
4288
+ }
4289
+ return { shouldSkip: false };
4290
+ }
4291
+
4292
+ // src/hooks/comment-checker/filters/shebang.ts
4293
+ function filterShebangComments(comment) {
4294
+ const trimmed = comment.text.trimStart();
4295
+ if (trimmed.startsWith("#!")) {
4296
+ return { shouldSkip: true, reason: "Shebang" };
4297
+ }
4298
+ return { shouldSkip: false };
4299
+ }
4300
+
4301
+ // src/hooks/comment-checker/filters/index.ts
4302
+ var ALL_FILTERS = [
4303
+ filterShebangComments,
4304
+ filterBddComments,
4305
+ filterDirectiveComments,
4306
+ filterDocstringComments
4307
+ ];
4308
+ function applyFilters(comments) {
4309
+ return comments.filter((comment) => {
4310
+ for (const filter of ALL_FILTERS) {
4311
+ const result = filter(comment);
4312
+ if (result.shouldSkip) {
4313
+ return false;
4314
+ }
4315
+ }
4316
+ return true;
4317
+ });
4318
+ }
4319
+
4320
+ // src/hooks/comment-checker/output/xml-builder.ts
4321
+ function escapeXml(text) {
4322
+ return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
4323
+ }
4324
+ function buildCommentsXml(fileCommentsList) {
4325
+ const lines = [];
4326
+ for (const fc of fileCommentsList) {
4327
+ lines.push(`<comments file="${escapeXml(fc.filePath)}">`);
4328
+ for (const comment of fc.comments) {
4329
+ lines.push(` <comment line-number="${comment.lineNumber}">${escapeXml(comment.text)}</comment>`);
4330
+ }
4331
+ lines.push(`</comments>`);
4332
+ }
4333
+ return lines.join(`
4334
+ `);
4335
+ }
4336
+ // src/hooks/comment-checker/output/formatter.ts
4337
+ function formatHookMessage(fileCommentsList) {
4338
+ if (fileCommentsList.length === 0) {
4339
+ return "";
4340
+ }
4341
+ const xml = buildCommentsXml(fileCommentsList);
4342
+ return `${HOOK_MESSAGE_HEADER}${xml}
4343
+ `;
4344
+ }
1047
4345
  // src/hooks/comment-checker/index.ts
1048
4346
  var pendingCalls = new Map;
1049
4347
  var PENDING_CALL_TTL = 60000;
@@ -1056,6 +4354,65 @@ function cleanupOldPendingCalls() {
1056
4354
  }
1057
4355
  }
1058
4356
  setInterval(cleanupOldPendingCalls, 1e4);
4357
+ function createCommentCheckerHooks() {
4358
+ return {
4359
+ "tool.execute.before": async (input, output) => {
4360
+ const toolLower = input.tool.toLowerCase();
4361
+ if (toolLower !== "write" && toolLower !== "edit" && toolLower !== "multiedit") {
4362
+ return;
4363
+ }
4364
+ const filePath = output.args.filePath ?? output.args.file_path;
4365
+ const content = output.args.content;
4366
+ if (!filePath) {
4367
+ return;
4368
+ }
4369
+ if (!isSupportedFile(filePath)) {
4370
+ return;
4371
+ }
4372
+ pendingCalls.set(input.callID, {
4373
+ filePath,
4374
+ content,
4375
+ tool: toolLower,
4376
+ sessionID: input.sessionID,
4377
+ timestamp: Date.now()
4378
+ });
4379
+ },
4380
+ "tool.execute.after": async (input, output) => {
4381
+ const pendingCall = pendingCalls.get(input.callID);
4382
+ if (!pendingCall) {
4383
+ return;
4384
+ }
4385
+ pendingCalls.delete(input.callID);
4386
+ if (output.output.toLowerCase().includes("error")) {
4387
+ return;
4388
+ }
4389
+ try {
4390
+ let content;
4391
+ if (pendingCall.content) {
4392
+ content = pendingCall.content;
4393
+ } else {
4394
+ const file = Bun.file(pendingCall.filePath);
4395
+ content = await file.text();
4396
+ }
4397
+ const rawComments = await detectComments(pendingCall.filePath, content);
4398
+ const filteredComments = applyFilters(rawComments);
4399
+ if (filteredComments.length === 0) {
4400
+ return;
4401
+ }
4402
+ const fileComments = [
4403
+ {
4404
+ filePath: pendingCall.filePath,
4405
+ comments: filteredComments
4406
+ }
4407
+ ];
4408
+ const message = formatHookMessage(fileComments);
4409
+ output.output += `
4410
+
4411
+ ${message}`;
4412
+ } catch {}
4413
+ }
4414
+ };
4415
+ }
1059
4416
  // src/features/terminal/title.ts
1060
4417
  var STATUS_ICONS = {
1061
4418
  ready: "",
@@ -1074,11 +4431,11 @@ function truncate(str, maxLen) {
1074
4431
  function formatTerminalTitle(ctx) {
1075
4432
  const title = ctx.sessionTitle || DEFAULT_TITLE;
1076
4433
  const truncatedTitle = truncate(title, MAX_TITLE_LENGTH);
1077
- const parts = ["[OpenCode]", truncatedTitle];
4434
+ const parts2 = ["[OpenCode]", truncatedTitle];
1078
4435
  if (ctx.status) {
1079
- parts.push(STATUS_ICONS[ctx.status]);
4436
+ parts2.push(STATUS_ICONS[ctx.status]);
1080
4437
  }
1081
- return parts.join(" ");
4438
+ return parts2.join(" ");
1082
4439
  }
1083
4440
  function isTmuxEnvironment() {
1084
4441
  return !!process.env.TMUX || process.env.TERM_PROGRAM === "tmux";
@@ -1475,7 +4832,7 @@ class LSPServerManager {
1475
4832
  this.clients.delete(key);
1476
4833
  }
1477
4834
  const client = new LSPClient(root, server);
1478
- const initPromise = (async () => {
4835
+ const initPromise2 = (async () => {
1479
4836
  await client.start();
1480
4837
  await client.initialize();
1481
4838
  })();
@@ -1483,10 +4840,10 @@ class LSPServerManager {
1483
4840
  client,
1484
4841
  lastUsedAt: Date.now(),
1485
4842
  refCount: 1,
1486
- initPromise,
4843
+ initPromise: initPromise2,
1487
4844
  isInitializing: true
1488
4845
  });
1489
- await initPromise;
4846
+ await initPromise2;
1490
4847
  const m = this.clients.get(key);
1491
4848
  if (m) {
1492
4849
  m.initPromise = undefined;
@@ -1499,7 +4856,7 @@ class LSPServerManager {
1499
4856
  if (this.clients.has(key))
1500
4857
  return;
1501
4858
  const client = new LSPClient(root, server);
1502
- const initPromise = (async () => {
4859
+ const initPromise2 = (async () => {
1503
4860
  await client.start();
1504
4861
  await client.initialize();
1505
4862
  })();
@@ -1507,10 +4864,10 @@ class LSPServerManager {
1507
4864
  client,
1508
4865
  lastUsedAt: Date.now(),
1509
4866
  refCount: 0,
1510
- initPromise,
4867
+ initPromise: initPromise2,
1511
4868
  isInitializing: true
1512
4869
  });
1513
- initPromise.then(() => {
4870
+ initPromise2.then(() => {
1514
4871
  const m = this.clients.get(key);
1515
4872
  if (m) {
1516
4873
  m.initPromise = undefined;
@@ -1601,9 +4958,9 @@ stderr: ${stderr}` : ""));
1601
4958
  this.buffer = newBuf;
1602
4959
  this.processBuffer();
1603
4960
  }
1604
- } catch (err) {
4961
+ } catch (err2) {
1605
4962
  this.processExited = true;
1606
- this.rejectAllPending(`LSP stdout read error: ${err}`);
4963
+ this.rejectAllPending(`LSP stdout read error: ${err2}`);
1607
4964
  }
1608
4965
  };
1609
4966
  read();
@@ -1637,12 +4994,12 @@ stderr: ${stderr}` : ""));
1637
4994
  }
1638
4995
  findSequence(haystack, needle) {
1639
4996
  outer:
1640
- for (let i = 0;i <= haystack.length - needle.length; i++) {
4997
+ for (let i2 = 0;i2 <= haystack.length - needle.length; i2++) {
1641
4998
  for (let j = 0;j < needle.length; j++) {
1642
- if (haystack[i + j] !== needle[j])
4999
+ if (haystack[i2 + j] !== needle[j])
1643
5000
  continue outer;
1644
5001
  }
1645
- return i;
5002
+ return i2;
1646
5003
  }
1647
5004
  return -1;
1648
5005
  }
@@ -1670,11 +5027,11 @@ stderr: ${stderr}` : ""));
1670
5027
  if (!match)
1671
5028
  break;
1672
5029
  const len = parseInt(match[1], 10);
1673
- const start = headerEnd + sepLen;
1674
- const end = start + len;
5030
+ const start2 = headerEnd + sepLen;
5031
+ const end = start2 + len;
1675
5032
  if (this.buffer.length < end)
1676
5033
  break;
1677
- const content = decoder.decode(this.buffer.slice(start, end));
5034
+ const content = decoder.decode(this.buffer.slice(start2, end));
1678
5035
  this.buffer = this.buffer.slice(end);
1679
5036
  try {
1680
5037
  const msg = JSON.parse(content);
@@ -2062,12 +5419,12 @@ function formatCodeActions(actions) {
2062
5419
  if (!actions || actions.length === 0)
2063
5420
  return "No code actions available";
2064
5421
  const lines = [];
2065
- for (let i = 0;i < actions.length; i++) {
2066
- const action = actions[i];
5422
+ for (let i2 = 0;i2 < actions.length; i2++) {
5423
+ const action = actions[i2];
2067
5424
  if ("command" in action && typeof action.command === "string" && !("kind" in action)) {
2068
- lines.push(`${i + 1}. [command] ${action.title}`);
5425
+ lines.push(`${i2 + 1}. [command] ${action.title}`);
2069
5426
  } else {
2070
- lines.push(`${i + 1}. ${formatCodeAction(action)}`);
5427
+ lines.push(`${i2 + 1}. ${formatCodeAction(action)}`);
2071
5428
  }
2072
5429
  }
2073
5430
  return lines.join(`
@@ -2103,8 +5460,8 @@ function applyTextEditsToFile(filePath, edits) {
2103
5460
  writeFileSync(filePath, lines.join(`
2104
5461
  `), "utf-8");
2105
5462
  return { success: true, editCount: edits.length };
2106
- } catch (err) {
2107
- return { success: false, editCount: 0, error: err instanceof Error ? err.message : String(err) };
5463
+ } catch (err2) {
5464
+ return { success: false, editCount: 0, error: err2 instanceof Error ? err2.message : String(err2) };
2108
5465
  }
2109
5466
  }
2110
5467
  function applyWorkspaceEdit(edit) {
@@ -2133,9 +5490,9 @@ function applyWorkspaceEdit(edit) {
2133
5490
  const filePath = change.uri.replace("file://", "");
2134
5491
  writeFileSync(filePath, "", "utf-8");
2135
5492
  result.filesModified.push(filePath);
2136
- } catch (err) {
5493
+ } catch (err2) {
2137
5494
  result.success = false;
2138
- result.errors.push(`Create ${change.uri}: ${err}`);
5495
+ result.errors.push(`Create ${change.uri}: ${err2}`);
2139
5496
  }
2140
5497
  } else if (change.kind === "rename") {
2141
5498
  try {
@@ -2145,18 +5502,18 @@ function applyWorkspaceEdit(edit) {
2145
5502
  writeFileSync(newPath, content, "utf-8");
2146
5503
  __require("fs").unlinkSync(oldPath);
2147
5504
  result.filesModified.push(newPath);
2148
- } catch (err) {
5505
+ } catch (err2) {
2149
5506
  result.success = false;
2150
- result.errors.push(`Rename ${change.oldUri}: ${err}`);
5507
+ result.errors.push(`Rename ${change.oldUri}: ${err2}`);
2151
5508
  }
2152
5509
  } else if (change.kind === "delete") {
2153
5510
  try {
2154
5511
  const filePath = change.uri.replace("file://", "");
2155
5512
  __require("fs").unlinkSync(filePath);
2156
5513
  result.filesModified.push(filePath);
2157
- } catch (err) {
5514
+ } catch (err2) {
2158
5515
  result.success = false;
2159
- result.errors.push(`Delete ${change.uri}: ${err}`);
5516
+ result.errors.push(`Delete ${change.uri}: ${err2}`);
2160
5517
  }
2161
5518
  }
2162
5519
  } else {
@@ -2183,8 +5540,8 @@ function formatApplyResult(result) {
2183
5540
  }
2184
5541
  } else {
2185
5542
  lines.push("Failed to apply some changes:");
2186
- for (const err of result.errors) {
2187
- lines.push(` Error: ${err}`);
5543
+ for (const err2 of result.errors) {
5544
+ lines.push(` Error: ${err2}`);
2188
5545
  }
2189
5546
  if (result.filesModified.length > 0) {
2190
5547
  lines.push(`Successfully modified: ${result.filesModified.join(", ")}`);
@@ -2691,15 +6048,15 @@ __export(exports_core2, {
2691
6048
  var NEVER = Object.freeze({
2692
6049
  status: "aborted"
2693
6050
  });
2694
- function $constructor(name, initializer, params) {
2695
- function init(inst, def) {
6051
+ function $constructor(name2, initializer, params) {
6052
+ function init2(inst, def) {
2696
6053
  var _a;
2697
6054
  Object.defineProperty(inst, "_zod", {
2698
6055
  value: inst._zod ?? {},
2699
6056
  enumerable: false
2700
6057
  });
2701
6058
  (_a = inst._zod).traits ?? (_a.traits = new Set);
2702
- inst._zod.traits.add(name);
6059
+ inst._zod.traits.add(name2);
2703
6060
  initializer(inst, def);
2704
6061
  for (const k in _.prototype) {
2705
6062
  if (!(k in inst))
@@ -2712,26 +6069,26 @@ function $constructor(name, initializer, params) {
2712
6069
 
2713
6070
  class Definition extends Parent {
2714
6071
  }
2715
- Object.defineProperty(Definition, "name", { value: name });
6072
+ Object.defineProperty(Definition, "name", { value: name2 });
2716
6073
  function _(def) {
2717
6074
  var _a;
2718
6075
  const inst = params?.Parent ? new Definition : this;
2719
- init(inst, def);
6076
+ init2(inst, def);
2720
6077
  (_a = inst._zod).deferred ?? (_a.deferred = []);
2721
6078
  for (const fn of inst._zod.deferred) {
2722
6079
  fn();
2723
6080
  }
2724
6081
  return inst;
2725
6082
  }
2726
- Object.defineProperty(_, "init", { value: init });
6083
+ Object.defineProperty(_, "init", { value: init2 });
2727
6084
  Object.defineProperty(_, Symbol.hasInstance, {
2728
6085
  value: (inst) => {
2729
6086
  if (params?.Parent && inst instanceof params.Parent)
2730
6087
  return true;
2731
- return inst?._zod?.traits?.has(name);
6088
+ return inst?._zod?.traits?.has(name2);
2732
6089
  }
2733
6090
  });
2734
- Object.defineProperty(_, "name", { value: name });
6091
+ Object.defineProperty(_, "name", { value: name2 });
2735
6092
  return _;
2736
6093
  }
2737
6094
  var $brand = Symbol("zod_brand");
@@ -2743,8 +6100,8 @@ class $ZodAsyncError extends Error {
2743
6100
  }
2744
6101
 
2745
6102
  class $ZodEncodeError extends Error {
2746
- constructor(name) {
2747
- super(`Encountered unidirectional transform during encode: ${name}`);
6103
+ constructor(name2) {
6104
+ super(`Encountered unidirectional transform during encode: ${name2}`);
2748
6105
  this.name = "ZodEncodeError";
2749
6106
  }
2750
6107
  }
@@ -2859,9 +6216,9 @@ function nullish(input) {
2859
6216
  return input === null || input === undefined;
2860
6217
  }
2861
6218
  function cleanRegex(source) {
2862
- const start = source.startsWith("^") ? 1 : 0;
6219
+ const start2 = source.startsWith("^") ? 1 : 0;
2863
6220
  const end = source.endsWith("$") ? source.length - 1 : source.length;
2864
- return source.slice(start, end);
6221
+ return source.slice(start2, end);
2865
6222
  }
2866
6223
  function floatSafeRemainder(val, step) {
2867
6224
  const valDecCount = (val.toString().split(".")[1] || "").length;
@@ -2932,8 +6289,8 @@ function promiseAllObject(promisesObj) {
2932
6289
  const promises = keys.map((key) => promisesObj[key]);
2933
6290
  return Promise.all(promises).then((results) => {
2934
6291
  const resolvedObj = {};
2935
- for (let i = 0;i < keys.length; i++) {
2936
- resolvedObj[keys[i]] = results[i];
6292
+ for (let i2 = 0;i2 < keys.length; i2++) {
6293
+ resolvedObj[keys[i2]] = results[i2];
2937
6294
  }
2938
6295
  return resolvedObj;
2939
6296
  });
@@ -2941,7 +6298,7 @@ function promiseAllObject(promisesObj) {
2941
6298
  function randomString(length = 10) {
2942
6299
  const chars = "abcdefghijklmnopqrstuvwxyz";
2943
6300
  let str = "";
2944
- for (let i = 0;i < length; i++) {
6301
+ for (let i2 = 0;i2 < length; i2++) {
2945
6302
  str += chars[Math.floor(Math.random() * chars.length)];
2946
6303
  }
2947
6304
  return str;
@@ -3277,8 +6634,8 @@ function required(Class, schema, mask) {
3277
6634
  function aborted(x, startIndex = 0) {
3278
6635
  if (x.aborted === true)
3279
6636
  return true;
3280
- for (let i = startIndex;i < x.issues.length; i++) {
3281
- if (x.issues[i]?.continue !== true) {
6637
+ for (let i2 = startIndex;i2 < x.issues.length; i2++) {
6638
+ if (x.issues[i2]?.continue !== true) {
3282
6639
  return true;
3283
6640
  }
3284
6641
  }
@@ -3324,8 +6681,8 @@ function getLengthableOrigin(input) {
3324
6681
  return "string";
3325
6682
  return "unknown";
3326
6683
  }
3327
- function issue(...args) {
3328
- const [iss, input, inst] = args;
6684
+ function issue(...args2) {
6685
+ const [iss, input, inst] = args2;
3329
6686
  if (typeof iss === "string") {
3330
6687
  return {
3331
6688
  message: iss,
@@ -3344,15 +6701,15 @@ function cleanEnum(obj) {
3344
6701
  function base64ToUint8Array(base64) {
3345
6702
  const binaryString = atob(base64);
3346
6703
  const bytes = new Uint8Array(binaryString.length);
3347
- for (let i = 0;i < binaryString.length; i++) {
3348
- bytes[i] = binaryString.charCodeAt(i);
6704
+ for (let i2 = 0;i2 < binaryString.length; i2++) {
6705
+ bytes[i2] = binaryString.charCodeAt(i2);
3349
6706
  }
3350
6707
  return bytes;
3351
6708
  }
3352
6709
  function uint8ArrayToBase64(bytes) {
3353
6710
  let binaryString = "";
3354
- for (let i = 0;i < bytes.length; i++) {
3355
- binaryString += String.fromCharCode(bytes[i]);
6711
+ for (let i2 = 0;i2 < bytes.length; i2++) {
6712
+ binaryString += String.fromCharCode(bytes[i2]);
3356
6713
  }
3357
6714
  return btoa(binaryString);
3358
6715
  }
@@ -3370,8 +6727,8 @@ function hexToUint8Array(hex) {
3370
6727
  throw new Error("Invalid hex string length");
3371
6728
  }
3372
6729
  const bytes = new Uint8Array(cleanHex.length / 2);
3373
- for (let i = 0;i < cleanHex.length; i += 2) {
3374
- bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);
6730
+ for (let i2 = 0;i2 < cleanHex.length; i2 += 2) {
6731
+ bytes[i2 / 2] = Number.parseInt(cleanHex.slice(i2, i2 + 2), 16);
3375
6732
  }
3376
6733
  return bytes;
3377
6734
  }
@@ -3432,10 +6789,10 @@ function formatError(error, _mapper) {
3432
6789
  fieldErrors._errors.push(mapper(issue2));
3433
6790
  } else {
3434
6791
  let curr = fieldErrors;
3435
- let i = 0;
3436
- while (i < issue2.path.length) {
3437
- const el = issue2.path[i];
3438
- const terminal = i === issue2.path.length - 1;
6792
+ let i2 = 0;
6793
+ while (i2 < issue2.path.length) {
6794
+ const el = issue2.path[i2];
6795
+ const terminal = i2 === issue2.path.length - 1;
3439
6796
  if (!terminal) {
3440
6797
  curr[el] = curr[el] || { _errors: [] };
3441
6798
  } else {
@@ -3443,7 +6800,7 @@ function formatError(error, _mapper) {
3443
6800
  curr[el]._errors.push(mapper(issue2));
3444
6801
  }
3445
6802
  curr = curr[el];
3446
- i++;
6803
+ i2++;
3447
6804
  }
3448
6805
  }
3449
6806
  }
@@ -3472,10 +6829,10 @@ function treeifyError(error, _mapper) {
3472
6829
  continue;
3473
6830
  }
3474
6831
  let curr = result;
3475
- let i = 0;
3476
- while (i < fullpath.length) {
3477
- const el = fullpath[i];
3478
- const terminal = i === fullpath.length - 1;
6832
+ let i2 = 0;
6833
+ while (i2 < fullpath.length) {
6834
+ const el = fullpath[i2];
6835
+ const terminal = i2 === fullpath.length - 1;
3479
6836
  if (typeof el === "string") {
3480
6837
  curr.properties ?? (curr.properties = {});
3481
6838
  (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });
@@ -3488,7 +6845,7 @@ function treeifyError(error, _mapper) {
3488
6845
  if (terminal) {
3489
6846
  curr.errors.push(mapper(issue2));
3490
6847
  }
3491
- i++;
6848
+ i2++;
3492
6849
  }
3493
6850
  }
3494
6851
  }
@@ -3712,20 +7069,20 @@ var domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/;
3712
7069
  var e164 = /^\+(?:[0-9]){6,14}[0-9]$/;
3713
7070
  var dateSource = `(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;
3714
7071
  var date = /* @__PURE__ */ new RegExp(`^${dateSource}$`);
3715
- function timeSource(args) {
7072
+ function timeSource(args2) {
3716
7073
  const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`;
3717
- const regex = typeof args.precision === "number" ? args.precision === -1 ? `${hhmm}` : args.precision === 0 ? `${hhmm}:[0-5]\\d` : `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}` : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`;
7074
+ const regex = typeof args2.precision === "number" ? args2.precision === -1 ? `${hhmm}` : args2.precision === 0 ? `${hhmm}:[0-5]\\d` : `${hhmm}:[0-5]\\d\\.\\d{${args2.precision}}` : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`;
3718
7075
  return regex;
3719
7076
  }
3720
- function time(args) {
3721
- return new RegExp(`^${timeSource(args)}$`);
7077
+ function time(args2) {
7078
+ return new RegExp(`^${timeSource(args2)}$`);
3722
7079
  }
3723
- function datetime(args) {
3724
- const time2 = timeSource({ precision: args.precision });
7080
+ function datetime(args2) {
7081
+ const time2 = timeSource({ precision: args2.precision });
3725
7082
  const opts = ["Z"];
3726
- if (args.local)
7083
+ if (args2.local)
3727
7084
  opts.push("");
3728
- if (args.offset)
7085
+ if (args2.offset)
3729
7086
  opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);
3730
7087
  const timeRegex = `${time2}(?:${opts.join("|")})`;
3731
7088
  return new RegExp(`^${dateSource}T(?:${timeRegex})$`);
@@ -4308,11 +7665,11 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
4308
7665
 
4309
7666
  // node_modules/zod/v4/core/doc.js
4310
7667
  class Doc {
4311
- constructor(args = []) {
7668
+ constructor(args2 = []) {
4312
7669
  this.content = [];
4313
7670
  this.indent = 0;
4314
7671
  if (this)
4315
- this.args = args;
7672
+ this.args = args2;
4316
7673
  }
4317
7674
  indented(fn) {
4318
7675
  this.indent += 1;
@@ -4336,10 +7693,10 @@ class Doc {
4336
7693
  }
4337
7694
  compile() {
4338
7695
  const F = Function;
4339
- const args = this?.args;
7696
+ const args2 = this?.args;
4340
7697
  const content = this?.content ?? [``];
4341
7698
  const lines = [...content.map((x) => ` ${x}`)];
4342
- return new F(...args, lines.join(`
7699
+ return new F(...args2, lines.join(`
4343
7700
  `));
4344
7701
  }
4345
7702
  }
@@ -4644,11 +8001,11 @@ var $ZodCIDRv6 = /* @__PURE__ */ $constructor("$ZodCIDRv6", (inst, def) => {
4644
8001
  def.pattern ?? (def.pattern = cidrv6);
4645
8002
  $ZodStringFormat.init(inst, def);
4646
8003
  inst._zod.check = (payload) => {
4647
- const parts = payload.value.split("/");
8004
+ const parts2 = payload.value.split("/");
4648
8005
  try {
4649
- if (parts.length !== 2)
8006
+ if (parts2.length !== 2)
4650
8007
  throw new Error;
4651
- const [address, prefix] = parts;
8008
+ const [address, prefix] = parts2;
4652
8009
  if (!prefix)
4653
8010
  throw new Error;
4654
8011
  const prefixNum = Number(prefix);
@@ -4975,16 +8332,16 @@ var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => {
4975
8332
  }
4976
8333
  payload.value = Array(input.length);
4977
8334
  const proms = [];
4978
- for (let i = 0;i < input.length; i++) {
4979
- const item = input[i];
8335
+ for (let i2 = 0;i2 < input.length; i2++) {
8336
+ const item = input[i2];
4980
8337
  const result = def.element._zod.run({
4981
8338
  value: item,
4982
8339
  issues: []
4983
8340
  }, ctx);
4984
8341
  if (result instanceof Promise) {
4985
- proms.push(result.then((result2) => handleArrayResult(result2, payload, i)));
8342
+ proms.push(result.then((result2) => handleArrayResult(result2, payload, i2)));
4986
8343
  } else {
4987
- handleArrayResult(result, payload, i);
8344
+ handleArrayResult(result, payload, i2);
4988
8345
  }
4989
8346
  }
4990
8347
  if (proms.length) {
@@ -5415,35 +8772,35 @@ var $ZodTuple = /* @__PURE__ */ $constructor("$ZodTuple", (inst, def) => {
5415
8772
  return payload;
5416
8773
  }
5417
8774
  }
5418
- let i = -1;
8775
+ let i2 = -1;
5419
8776
  for (const item of items) {
5420
- i++;
5421
- if (i >= input.length) {
5422
- if (i >= optStart)
8777
+ i2++;
8778
+ if (i2 >= input.length) {
8779
+ if (i2 >= optStart)
5423
8780
  continue;
5424
8781
  }
5425
8782
  const result = item._zod.run({
5426
- value: input[i],
8783
+ value: input[i2],
5427
8784
  issues: []
5428
8785
  }, ctx);
5429
8786
  if (result instanceof Promise) {
5430
- proms.push(result.then((result2) => handleTupleResult(result2, payload, i)));
8787
+ proms.push(result.then((result2) => handleTupleResult(result2, payload, i2)));
5431
8788
  } else {
5432
- handleTupleResult(result, payload, i);
8789
+ handleTupleResult(result, payload, i2);
5433
8790
  }
5434
8791
  }
5435
8792
  if (def.rest) {
5436
8793
  const rest = input.slice(items.length);
5437
8794
  for (const el of rest) {
5438
- i++;
8795
+ i2++;
5439
8796
  const result = def.rest._zod.run({
5440
8797
  value: el,
5441
8798
  issues: []
5442
8799
  }, ctx);
5443
8800
  if (result instanceof Promise) {
5444
- proms.push(result.then((result2) => handleTupleResult(result2, payload, i)));
8801
+ proms.push(result.then((result2) => handleTupleResult(result2, payload, i2)));
5445
8802
  } else {
5446
- handleTupleResult(result, payload, i);
8803
+ handleTupleResult(result, payload, i2);
5447
8804
  }
5448
8805
  }
5449
8806
  }
@@ -6015,9 +9372,9 @@ var $ZodTemplateLiteral = /* @__PURE__ */ $constructor("$ZodTemplateLiteral", (i
6015
9372
  const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;
6016
9373
  if (!source)
6017
9374
  throw new Error(`Invalid template literal part: ${part._zod.traits}`);
6018
- const start = source.startsWith("^") ? 1 : 0;
9375
+ const start2 = source.startsWith("^") ? 1 : 0;
6019
9376
  const end = source.endsWith("$") ? source.length - 1 : source.length;
6020
- regexParts.push(source.slice(start, end));
9377
+ regexParts.push(source.slice(start2, end));
6021
9378
  } else if (part === null || primitiveTypes.has(typeof part)) {
6022
9379
  regexParts.push(escapeRegex(`${part}`));
6023
9380
  } else {
@@ -6053,26 +9410,26 @@ var $ZodFunction = /* @__PURE__ */ $constructor("$ZodFunction", (inst, def) => {
6053
9410
  $ZodType.init(inst, def);
6054
9411
  inst._def = def;
6055
9412
  inst._zod.def = def;
6056
- inst.implement = (func) => {
6057
- if (typeof func !== "function") {
9413
+ inst.implement = (func2) => {
9414
+ if (typeof func2 !== "function") {
6058
9415
  throw new Error("implement() must be called with a function");
6059
9416
  }
6060
- return function(...args) {
6061
- const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;
6062
- const result = Reflect.apply(func, this, parsedArgs);
9417
+ return function(...args2) {
9418
+ const parsedArgs = inst._def.input ? parse(inst._def.input, args2) : args2;
9419
+ const result = Reflect.apply(func2, this, parsedArgs);
6063
9420
  if (inst._def.output) {
6064
9421
  return parse(inst._def.output, result);
6065
9422
  }
6066
9423
  return result;
6067
9424
  };
6068
9425
  };
6069
- inst.implementAsync = (func) => {
6070
- if (typeof func !== "function") {
9426
+ inst.implementAsync = (func2) => {
9427
+ if (typeof func2 !== "function") {
6071
9428
  throw new Error("implementAsync() must be called with a function");
6072
9429
  }
6073
- return async function(...args) {
6074
- const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;
6075
- const result = await Reflect.apply(func, this, parsedArgs);
9430
+ return async function(...args2) {
9431
+ const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args2) : args2;
9432
+ const result = await Reflect.apply(func2, this, parsedArgs);
6076
9433
  if (inst._def.output) {
6077
9434
  return await parseAsync(inst._def.output, result);
6078
9435
  }
@@ -6097,22 +9454,22 @@ var $ZodFunction = /* @__PURE__ */ $constructor("$ZodFunction", (inst, def) => {
6097
9454
  }
6098
9455
  return payload;
6099
9456
  };
6100
- inst.input = (...args) => {
9457
+ inst.input = (...args2) => {
6101
9458
  const F = inst.constructor;
6102
- if (Array.isArray(args[0])) {
9459
+ if (Array.isArray(args2[0])) {
6103
9460
  return new F({
6104
9461
  type: "function",
6105
9462
  input: new $ZodTuple({
6106
9463
  type: "tuple",
6107
- items: args[0],
6108
- rest: args[1]
9464
+ items: args2[0],
9465
+ rest: args2[1]
6109
9466
  }),
6110
9467
  output: inst._def.output
6111
9468
  });
6112
9469
  }
6113
9470
  return new F({
6114
9471
  type: "function",
6115
- input: args[0],
9472
+ input: args2[0],
6116
9473
  output: inst._def.output
6117
9474
  });
6118
9475
  };
@@ -12440,11 +15797,11 @@ function _catch(Class2, innerType, catchValue) {
12440
15797
  catchValue: typeof catchValue === "function" ? catchValue : () => catchValue
12441
15798
  });
12442
15799
  }
12443
- function _pipe(Class2, in_, out) {
15800
+ function _pipe(Class2, in_, out2) {
12444
15801
  return new Class2({
12445
15802
  type: "pipe",
12446
15803
  in: in_,
12447
- out
15804
+ out: out2
12448
15805
  });
12449
15806
  }
12450
15807
  function _readonly(Class2, innerType) {
@@ -12453,10 +15810,10 @@ function _readonly(Class2, innerType) {
12453
15810
  innerType
12454
15811
  });
12455
15812
  }
12456
- function _templateLiteral(Class2, parts, params) {
15813
+ function _templateLiteral(Class2, parts2, params) {
12457
15814
  return new Class2({
12458
15815
  type: "template_literal",
12459
- parts,
15816
+ parts: parts2,
12460
15817
  ...normalizeParams(params)
12461
15818
  });
12462
15819
  }
@@ -12813,9 +16170,9 @@ class JSONSchemaGenerator {
12813
16170
  }
12814
16171
  case "union": {
12815
16172
  const json = _json;
12816
- const options = def.options.map((x, i) => this.process(x, {
16173
+ const options = def.options.map((x, i2) => this.process(x, {
12817
16174
  ...params,
12818
- path: [...params.path, "anyOf", i]
16175
+ path: [...params.path, "anyOf", i2]
12819
16176
  }));
12820
16177
  json.anyOf = options;
12821
16178
  break;
@@ -12843,9 +16200,9 @@ class JSONSchemaGenerator {
12843
16200
  json.type = "array";
12844
16201
  const prefixPath = this.target === "draft-2020-12" ? "prefixItems" : "items";
12845
16202
  const restPath = this.target === "draft-2020-12" ? "items" : this.target === "openapi-3.0" ? "items" : "additionalItems";
12846
- const prefixItems = def.items.map((x, i) => this.process(x, {
16203
+ const prefixItems = def.items.map((x, i2) => this.process(x, {
12847
16204
  ...params,
12848
- path: [...params.path, prefixPath, i]
16205
+ path: [...params.path, prefixPath, i2]
12849
16206
  }));
12850
16207
  const rest = def.rest ? this.process(def.rest, {
12851
16208
  ...params,
@@ -13543,12 +16900,12 @@ var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
13543
16900
  },
13544
16901
  configurable: true
13545
16902
  });
13546
- inst.meta = (...args) => {
13547
- if (args.length === 0) {
16903
+ inst.meta = (...args2) => {
16904
+ if (args2.length === 0) {
13548
16905
  return globalRegistry.get(inst);
13549
16906
  }
13550
16907
  const cl = inst.clone();
13551
- globalRegistry.add(cl, args[0]);
16908
+ globalRegistry.add(cl, args2[0]);
13552
16909
  return cl;
13553
16910
  };
13554
16911
  inst.isOptional = () => inst.safeParse(undefined).success;
@@ -13562,18 +16919,18 @@ var _ZodString = /* @__PURE__ */ $constructor("_ZodString", (inst, def) => {
13562
16919
  inst.format = bag.format ?? null;
13563
16920
  inst.minLength = bag.minimum ?? null;
13564
16921
  inst.maxLength = bag.maximum ?? null;
13565
- inst.regex = (...args) => inst.check(_regex(...args));
13566
- inst.includes = (...args) => inst.check(_includes(...args));
13567
- inst.startsWith = (...args) => inst.check(_startsWith(...args));
13568
- inst.endsWith = (...args) => inst.check(_endsWith(...args));
13569
- inst.min = (...args) => inst.check(_minLength(...args));
13570
- inst.max = (...args) => inst.check(_maxLength(...args));
13571
- inst.length = (...args) => inst.check(_length(...args));
13572
- inst.nonempty = (...args) => inst.check(_minLength(1, ...args));
16922
+ inst.regex = (...args2) => inst.check(_regex(...args2));
16923
+ inst.includes = (...args2) => inst.check(_includes(...args2));
16924
+ inst.startsWith = (...args2) => inst.check(_startsWith(...args2));
16925
+ inst.endsWith = (...args2) => inst.check(_endsWith(...args2));
16926
+ inst.min = (...args2) => inst.check(_minLength(...args2));
16927
+ inst.max = (...args2) => inst.check(_maxLength(...args2));
16928
+ inst.length = (...args2) => inst.check(_length(...args2));
16929
+ inst.nonempty = (...args2) => inst.check(_minLength(1, ...args2));
13573
16930
  inst.lowercase = (params) => inst.check(_lowercase(params));
13574
16931
  inst.uppercase = (params) => inst.check(_uppercase(params));
13575
16932
  inst.trim = () => inst.check(_trim());
13576
- inst.normalize = (...args) => inst.check(_normalize(...args));
16933
+ inst.normalize = (...args2) => inst.check(_normalize(...args2));
13577
16934
  inst.toLowerCase = () => inst.check(_toLowerCase());
13578
16935
  inst.toUpperCase = () => inst.check(_toUpperCase());
13579
16936
  });
@@ -13970,8 +17327,8 @@ var ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => {
13970
17327
  inst.merge = (other) => exports_util.merge(inst, other);
13971
17328
  inst.pick = (mask) => exports_util.pick(inst, mask);
13972
17329
  inst.omit = (mask) => exports_util.omit(inst, mask);
13973
- inst.partial = (...args) => exports_util.partial(ZodOptional, inst, args[0]);
13974
- inst.required = (...args) => exports_util.required(ZodNonOptional, inst, args[0]);
17330
+ inst.partial = (...args2) => exports_util.partial(ZodOptional, inst, args2[0]);
17331
+ inst.required = (...args2) => exports_util.required(ZodNonOptional, inst, args2[0]);
13975
17332
  });
13976
17333
  function object(shape, params) {
13977
17334
  const def = {
@@ -14101,10 +17458,10 @@ function map(keyType, valueType, params) {
14101
17458
  var ZodSet = /* @__PURE__ */ $constructor("ZodSet", (inst, def) => {
14102
17459
  $ZodSet.init(inst, def);
14103
17460
  ZodType.init(inst, def);
14104
- inst.min = (...args) => inst.check(_minSize(...args));
17461
+ inst.min = (...args2) => inst.check(_minSize(...args2));
14105
17462
  inst.nonempty = (params) => inst.check(_minSize(1, params));
14106
- inst.max = (...args) => inst.check(_maxSize(...args));
14107
- inst.size = (...args) => inst.check(_size(...args));
17463
+ inst.max = (...args2) => inst.check(_maxSize(...args2));
17464
+ inst.size = (...args2) => inst.check(_size(...args2));
14108
17465
  });
14109
17466
  function set(valueType, params) {
14110
17467
  return new ZodSet({
@@ -14335,22 +17692,22 @@ var ZodPipe = /* @__PURE__ */ $constructor("ZodPipe", (inst, def) => {
14335
17692
  inst.in = def.in;
14336
17693
  inst.out = def.out;
14337
17694
  });
14338
- function pipe(in_, out) {
17695
+ function pipe(in_, out2) {
14339
17696
  return new ZodPipe({
14340
17697
  type: "pipe",
14341
17698
  in: in_,
14342
- out
17699
+ out: out2
14343
17700
  });
14344
17701
  }
14345
17702
  var ZodCodec = /* @__PURE__ */ $constructor("ZodCodec", (inst, def) => {
14346
17703
  ZodPipe.init(inst, def);
14347
17704
  $ZodCodec.init(inst, def);
14348
17705
  });
14349
- function codec(in_, out, params) {
17706
+ function codec(in_, out2, params) {
14350
17707
  return new ZodCodec({
14351
17708
  type: "pipe",
14352
17709
  in: in_,
14353
- out,
17710
+ out: out2,
14354
17711
  transform: params.decode,
14355
17712
  reverseTransform: params.encode
14356
17713
  });
@@ -14370,10 +17727,10 @@ var ZodTemplateLiteral = /* @__PURE__ */ $constructor("ZodTemplateLiteral", (ins
14370
17727
  $ZodTemplateLiteral.init(inst, def);
14371
17728
  ZodType.init(inst, def);
14372
17729
  });
14373
- function templateLiteral(parts, params) {
17730
+ function templateLiteral(parts2, params) {
14374
17731
  return new ZodTemplateLiteral({
14375
17732
  type: "template_literal",
14376
- parts,
17733
+ parts: parts2,
14377
17734
  ...exports_util.normalizeParams(params)
14378
17735
  });
14379
17736
  }
@@ -14443,11 +17800,11 @@ function _instanceof(cls, params = {
14443
17800
  inst._zod.bag.Class = cls;
14444
17801
  return inst;
14445
17802
  }
14446
- var stringbool = (...args) => _stringbool({
17803
+ var stringbool = (...args2) => _stringbool({
14447
17804
  Codec: ZodCodec,
14448
17805
  Boolean: ZodBoolean,
14449
17806
  String: ZodString
14450
- }, ...args);
17807
+ }, ...args2);
14451
17808
  function json(params) {
14452
17809
  const jsonSchema = lazy(() => {
14453
17810
  return union([string2(params), number2(), boolean2(), _null3(), array(jsonSchema), record(string2(), jsonSchema)]);
@@ -14522,10 +17879,10 @@ var lsp_hover = tool({
14522
17879
  line: tool.schema.number().min(1).describe("Line number (1-based)"),
14523
17880
  character: tool.schema.number().min(0).describe("Character position (0-based)")
14524
17881
  },
14525
- execute: async (args, context) => {
17882
+ execute: async (args2, context) => {
14526
17883
  try {
14527
- const result = await withLspClient(args.filePath, async (client) => {
14528
- return await client.hover(args.filePath, args.line, args.character);
17884
+ const result = await withLspClient(args2.filePath, async (client) => {
17885
+ return await client.hover(args2.filePath, args2.line, args2.character);
14529
17886
  });
14530
17887
  const output = formatHoverResult(result);
14531
17888
  return output;
@@ -14542,10 +17899,10 @@ var lsp_goto_definition = tool({
14542
17899
  line: tool.schema.number().min(1).describe("Line number (1-based)"),
14543
17900
  character: tool.schema.number().min(0).describe("Character position (0-based)")
14544
17901
  },
14545
- execute: async (args, context) => {
17902
+ execute: async (args2, context) => {
14546
17903
  try {
14547
- const result = await withLspClient(args.filePath, async (client) => {
14548
- return await client.definition(args.filePath, args.line, args.character);
17904
+ const result = await withLspClient(args2.filePath, async (client) => {
17905
+ return await client.definition(args2.filePath, args2.line, args2.character);
14549
17906
  });
14550
17907
  if (!result) {
14551
17908
  const output2 = "No definition found";
@@ -14573,10 +17930,10 @@ var lsp_find_references = tool({
14573
17930
  character: tool.schema.number().min(0).describe("Character position (0-based)"),
14574
17931
  includeDeclaration: tool.schema.boolean().optional().describe("Include the declaration itself")
14575
17932
  },
14576
- execute: async (args, context) => {
17933
+ execute: async (args2, context) => {
14577
17934
  try {
14578
- const result = await withLspClient(args.filePath, async (client) => {
14579
- return await client.references(args.filePath, args.line, args.character, args.includeDeclaration ?? true);
17935
+ const result = await withLspClient(args2.filePath, async (client) => {
17936
+ return await client.references(args2.filePath, args2.line, args2.character, args2.includeDeclaration ?? true);
14580
17937
  });
14581
17938
  if (!result || result.length === 0) {
14582
17939
  const output2 = "No references found";
@@ -14596,10 +17953,10 @@ var lsp_document_symbols = tool({
14596
17953
  args: {
14597
17954
  filePath: tool.schema.string().describe("The absolute path to the file")
14598
17955
  },
14599
- execute: async (args, context) => {
17956
+ execute: async (args2, context) => {
14600
17957
  try {
14601
- const result = await withLspClient(args.filePath, async (client) => {
14602
- return await client.documentSymbols(args.filePath);
17958
+ const result = await withLspClient(args2.filePath, async (client) => {
17959
+ return await client.documentSymbols(args2.filePath);
14603
17960
  });
14604
17961
  if (!result || result.length === 0) {
14605
17962
  const output2 = "No symbols found";
@@ -14627,16 +17984,16 @@ var lsp_workspace_symbols = tool({
14627
17984
  query: tool.schema.string().describe("The symbol name to search for (supports fuzzy matching)"),
14628
17985
  limit: tool.schema.number().optional().describe("Maximum number of results to return")
14629
17986
  },
14630
- execute: async (args, context) => {
17987
+ execute: async (args2, context) => {
14631
17988
  try {
14632
- const result = await withLspClient(args.filePath, async (client) => {
14633
- return await client.workspaceSymbols(args.query);
17989
+ const result = await withLspClient(args2.filePath, async (client) => {
17990
+ return await client.workspaceSymbols(args2.query);
14634
17991
  });
14635
17992
  if (!result || result.length === 0) {
14636
17993
  const output2 = "No symbols found";
14637
17994
  return output2;
14638
17995
  }
14639
- const limited = args.limit ? result.slice(0, args.limit) : result;
17996
+ const limited = args2.limit ? result.slice(0, args2.limit) : result;
14640
17997
  const output = limited.map(formatSymbolInfo).join(`
14641
17998
  `);
14642
17999
  return output;
@@ -14652,10 +18009,10 @@ var lsp_diagnostics = tool({
14652
18009
  filePath: tool.schema.string().describe("The absolute path to the file"),
14653
18010
  severity: tool.schema.enum(["error", "warning", "information", "hint", "all"]).optional().describe("Filter by severity level")
14654
18011
  },
14655
- execute: async (args, context) => {
18012
+ execute: async (args2, context) => {
14656
18013
  try {
14657
- const result = await withLspClient(args.filePath, async (client) => {
14658
- return await client.diagnostics(args.filePath);
18014
+ const result = await withLspClient(args2.filePath, async (client) => {
18015
+ return await client.diagnostics(args2.filePath);
14659
18016
  });
14660
18017
  let diagnostics = [];
14661
18018
  if (result) {
@@ -14665,7 +18022,7 @@ var lsp_diagnostics = tool({
14665
18022
  diagnostics = result.items;
14666
18023
  }
14667
18024
  }
14668
- diagnostics = filterDiagnosticsBySeverity(diagnostics, args.severity);
18025
+ diagnostics = filterDiagnosticsBySeverity(diagnostics, args2.severity);
14669
18026
  if (diagnostics.length === 0) {
14670
18027
  const output2 = "No diagnostics found";
14671
18028
  return output2;
@@ -14708,10 +18065,10 @@ var lsp_prepare_rename = tool({
14708
18065
  line: tool.schema.number().min(1).describe("Line number (1-based)"),
14709
18066
  character: tool.schema.number().min(0).describe("Character position (0-based)")
14710
18067
  },
14711
- execute: async (args, context) => {
18068
+ execute: async (args2, context) => {
14712
18069
  try {
14713
- const result = await withLspClient(args.filePath, async (client) => {
14714
- return await client.prepareRename(args.filePath, args.line, args.character);
18070
+ const result = await withLspClient(args2.filePath, async (client) => {
18071
+ return await client.prepareRename(args2.filePath, args2.line, args2.character);
14715
18072
  });
14716
18073
  const output = formatPrepareRenameResult(result);
14717
18074
  return output;
@@ -14729,10 +18086,10 @@ var lsp_rename = tool({
14729
18086
  character: tool.schema.number().min(0).describe("Character position (0-based)"),
14730
18087
  newName: tool.schema.string().describe("The new name for the symbol")
14731
18088
  },
14732
- execute: async (args, context) => {
18089
+ execute: async (args2, context) => {
14733
18090
  try {
14734
- const edit = await withLspClient(args.filePath, async (client) => {
14735
- return await client.rename(args.filePath, args.line, args.character, args.newName);
18091
+ const edit = await withLspClient(args2.filePath, async (client) => {
18092
+ return await client.rename(args2.filePath, args2.line, args2.character, args2.newName);
14736
18093
  });
14737
18094
  const result = applyWorkspaceEdit(edit);
14738
18095
  const output = formatApplyResult(result);
@@ -14762,11 +18119,11 @@ var lsp_code_actions = tool({
14762
18119
  "source.fixAll"
14763
18120
  ]).optional().describe("Filter by code action kind")
14764
18121
  },
14765
- execute: async (args, context) => {
18122
+ execute: async (args2, context) => {
14766
18123
  try {
14767
- const only = args.kind ? [args.kind] : undefined;
14768
- const result = await withLspClient(args.filePath, async (client) => {
14769
- return await client.codeAction(args.filePath, args.startLine, args.startCharacter, args.endLine, args.endCharacter, only);
18124
+ const only = args2.kind ? [args2.kind] : undefined;
18125
+ const result = await withLspClient(args2.filePath, async (client) => {
18126
+ return await client.codeAction(args2.filePath, args2.startLine, args2.startCharacter, args2.endLine, args2.endCharacter, only);
14770
18127
  });
14771
18128
  const output = formatCodeActions(result);
14772
18129
  return output;
@@ -14782,10 +18139,10 @@ var lsp_code_action_resolve = tool({
14782
18139
  filePath: tool.schema.string().describe("The absolute path to a file in the workspace (used to find the LSP server)"),
14783
18140
  codeAction: tool.schema.string().describe("The code action JSON object as returned by lsp_code_actions (stringified)")
14784
18141
  },
14785
- execute: async (args, context) => {
18142
+ execute: async (args2, context) => {
14786
18143
  try {
14787
- const codeAction = JSON.parse(args.codeAction);
14788
- const resolved = await withLspClient(args.filePath, async (client) => {
18144
+ const codeAction = JSON.parse(args2.codeAction);
18145
+ const resolved = await withLspClient(args2.filePath, async (client) => {
14789
18146
  return await client.codeActionResolve(codeAction);
14790
18147
  });
14791
18148
  if (!resolved) {
@@ -14917,24 +18274,24 @@ var LANG_EXTENSIONS = {
14917
18274
  // src/tools/ast-grep/cli.ts
14918
18275
  var {spawn: spawn2 } = globalThis.Bun;
14919
18276
  async function runSg(options) {
14920
- const args = ["run", "-p", options.pattern, "--lang", options.lang, "--json=compact"];
18277
+ const args2 = ["run", "-p", options.pattern, "--lang", options.lang, "--json=compact"];
14921
18278
  if (options.rewrite) {
14922
- args.push("-r", options.rewrite);
18279
+ args2.push("-r", options.rewrite);
14923
18280
  if (options.updateAll) {
14924
- args.push("--update-all");
18281
+ args2.push("--update-all");
14925
18282
  }
14926
18283
  }
14927
18284
  if (options.context && options.context > 0) {
14928
- args.push("-C", String(options.context));
18285
+ args2.push("-C", String(options.context));
14929
18286
  }
14930
18287
  if (options.globs) {
14931
18288
  for (const glob of options.globs) {
14932
- args.push("--globs", glob);
18289
+ args2.push("--globs", glob);
14933
18290
  }
14934
18291
  }
14935
18292
  const paths = options.paths && options.paths.length > 0 ? options.paths : ["."];
14936
- args.push(...paths);
14937
- const proc = spawn2([SG_CLI_PATH, ...args], {
18293
+ args2.push(...paths);
18294
+ const proc = spawn2([SG_CLI_PATH, ...args2], {
14938
18295
  stdout: "pipe",
14939
18296
  stderr: "pipe"
14940
18297
  });
@@ -14989,11 +18346,11 @@ function extractMetaVariablesFromPattern(pattern) {
14989
18346
  function extractMetaVariables(node, pattern) {
14990
18347
  const varNames = extractMetaVariablesFromPattern(pattern);
14991
18348
  const result = [];
14992
- for (const name of varNames) {
14993
- const match = node.getMatch(name);
18349
+ for (const name2 of varNames) {
18350
+ const match = node.getMatch(name2);
14994
18351
  if (match) {
14995
18352
  result.push({
14996
- name,
18353
+ name: name2,
14997
18354
  text: match.text(),
14998
18355
  kind: String(match.kind())
14999
18356
  });
@@ -15117,14 +18474,14 @@ var ast_grep_search = tool({
15117
18474
  globs: tool.schema.array(tool.schema.string()).optional().describe("Include/exclude globs (prefix ! to exclude)"),
15118
18475
  context: tool.schema.number().optional().describe("Context lines around match")
15119
18476
  },
15120
- execute: async (args, context) => {
18477
+ execute: async (args2, context) => {
15121
18478
  try {
15122
18479
  const matches = await runSg({
15123
- pattern: args.pattern,
15124
- lang: args.lang,
15125
- paths: args.paths,
15126
- globs: args.globs,
15127
- context: args.context
18480
+ pattern: args2.pattern,
18481
+ lang: args2.lang,
18482
+ paths: args2.paths,
18483
+ globs: args2.globs,
18484
+ context: args2.context
15128
18485
  });
15129
18486
  const output = formatSearchResult(matches);
15130
18487
  showOutputToUser(context, output);
@@ -15146,17 +18503,17 @@ var ast_grep_replace = tool({
15146
18503
  globs: tool.schema.array(tool.schema.string()).optional().describe("Include/exclude globs"),
15147
18504
  dryRun: tool.schema.boolean().optional().describe("Preview changes without applying (default: true)")
15148
18505
  },
15149
- execute: async (args, context) => {
18506
+ execute: async (args2, context) => {
15150
18507
  try {
15151
18508
  const matches = await runSg({
15152
- pattern: args.pattern,
15153
- rewrite: args.rewrite,
15154
- lang: args.lang,
15155
- paths: args.paths,
15156
- globs: args.globs,
15157
- updateAll: args.dryRun === false
18509
+ pattern: args2.pattern,
18510
+ rewrite: args2.rewrite,
18511
+ lang: args2.lang,
18512
+ paths: args2.paths,
18513
+ globs: args2.globs,
18514
+ updateAll: args2.dryRun === false
15158
18515
  });
15159
- const output = formatReplaceResult(matches, args.dryRun !== false);
18516
+ const output = formatReplaceResult(matches, args2.dryRun !== false);
15160
18517
  showOutputToUser(context, output);
15161
18518
  return output;
15162
18519
  } catch (e) {
@@ -15191,17 +18548,17 @@ var ast_grep_analyze = tool({
15191
18548
  pattern: tool.schema.string().optional().describe("Pattern to find (omit for root structure)"),
15192
18549
  extractMetaVars: tool.schema.boolean().optional().describe("Extract meta-variable bindings (default: true)")
15193
18550
  },
15194
- execute: async (args, context) => {
18551
+ execute: async (args2, context) => {
15195
18552
  try {
15196
- if (!args.pattern) {
15197
- const info = getRootInfo(args.code, args.lang);
15198
- const output2 = `Root kind: ${info.kind}
15199
- Children: ${info.childCount}`;
18553
+ if (!args2.pattern) {
18554
+ const info2 = getRootInfo(args2.code, args2.lang);
18555
+ const output2 = `Root kind: ${info2.kind}
18556
+ Children: ${info2.childCount}`;
15200
18557
  showOutputToUser(context, output2);
15201
18558
  return output2;
15202
18559
  }
15203
- const results = analyzeCode(args.code, args.lang, args.pattern, args.extractMetaVars !== false);
15204
- const output = formatAnalyzeResult(results, args.extractMetaVars !== false);
18560
+ const results = analyzeCode(args2.code, args2.lang, args2.pattern, args2.extractMetaVars !== false);
18561
+ const output = formatAnalyzeResult(results, args2.extractMetaVars !== false);
15205
18562
  showOutputToUser(context, output);
15206
18563
  return output;
15207
18564
  } catch (e) {
@@ -15219,10 +18576,10 @@ var ast_grep_transform = tool({
15219
18576
  pattern: tool.schema.string().describe("Pattern to match"),
15220
18577
  rewrite: tool.schema.string().describe("Replacement (can use $VAR from pattern)")
15221
18578
  },
15222
- execute: async (args, context) => {
18579
+ execute: async (args2, context) => {
15223
18580
  try {
15224
- const { transformed, editCount } = transformCode(args.code, args.lang, args.pattern, args.rewrite);
15225
- const output = formatTransformResult(args.code, transformed, editCount);
18581
+ const { transformed, editCount } = transformCode(args2.code, args2.lang, args2.pattern, args2.rewrite);
18582
+ const output = formatTransformResult(args2.code, transformed, editCount);
15226
18583
  showOutputToUser(context, output);
15227
18584
  return output;
15228
18585
  } catch (e) {
@@ -15241,11 +18598,11 @@ import { existsSync as existsSync4 } from "fs";
15241
18598
  import { join as join3, dirname as dirname2 } from "path";
15242
18599
  import { spawnSync } from "child_process";
15243
18600
  var cachedCli = null;
15244
- function findExecutable(name) {
18601
+ function findExecutable(name2) {
15245
18602
  const isWindows = process.platform === "win32";
15246
18603
  const cmd = isWindows ? "where" : "which";
15247
18604
  try {
15248
- const result = spawnSync(cmd, [name], { encoding: "utf-8", timeout: 5000 });
18605
+ const result = spawnSync(cmd, [name2], { encoding: "utf-8", timeout: 5000 });
15249
18606
  if (result.status === 0 && result.stdout.trim()) {
15250
18607
  return result.stdout.trim().split(`
15251
18608
  `)[0];
@@ -15309,7 +18666,7 @@ var GREP_SAFETY_FLAGS = ["-n", "-H", "--color=never"];
15309
18666
 
15310
18667
  // src/tools/safe-grep/cli.ts
15311
18668
  function buildRgArgs(options) {
15312
- const args = [
18669
+ const args2 = [
15313
18670
  ...RG_SAFETY_FLAGS,
15314
18671
  `--max-depth=${Math.min(options.maxDepth ?? DEFAULT_MAX_DEPTH, DEFAULT_MAX_DEPTH)}`,
15315
18672
  `--max-filesize=${options.maxFilesize ?? DEFAULT_MAX_FILESIZE}`,
@@ -15317,60 +18674,60 @@ function buildRgArgs(options) {
15317
18674
  `--max-columns=${Math.min(options.maxColumns ?? DEFAULT_MAX_COLUMNS, DEFAULT_MAX_COLUMNS)}`
15318
18675
  ];
15319
18676
  if (options.context !== undefined && options.context > 0) {
15320
- args.push(`-C${Math.min(options.context, 10)}`);
18677
+ args2.push(`-C${Math.min(options.context, 10)}`);
15321
18678
  }
15322
18679
  if (options.caseSensitive)
15323
- args.push("--case-sensitive");
18680
+ args2.push("--case-sensitive");
15324
18681
  if (options.wholeWord)
15325
- args.push("-w");
18682
+ args2.push("-w");
15326
18683
  if (options.fixedStrings)
15327
- args.push("-F");
18684
+ args2.push("-F");
15328
18685
  if (options.multiline)
15329
- args.push("-U");
18686
+ args2.push("-U");
15330
18687
  if (options.hidden)
15331
- args.push("--hidden");
18688
+ args2.push("--hidden");
15332
18689
  if (options.noIgnore)
15333
- args.push("--no-ignore");
18690
+ args2.push("--no-ignore");
15334
18691
  if (options.fileType?.length) {
15335
18692
  for (const type of options.fileType) {
15336
- args.push(`--type=${type}`);
18693
+ args2.push(`--type=${type}`);
15337
18694
  }
15338
18695
  }
15339
18696
  if (options.globs) {
15340
18697
  for (const glob of options.globs) {
15341
- args.push(`--glob=${glob}`);
18698
+ args2.push(`--glob=${glob}`);
15342
18699
  }
15343
18700
  }
15344
18701
  if (options.excludeGlobs) {
15345
18702
  for (const glob of options.excludeGlobs) {
15346
- args.push(`--glob=!${glob}`);
18703
+ args2.push(`--glob=!${glob}`);
15347
18704
  }
15348
18705
  }
15349
- return args;
18706
+ return args2;
15350
18707
  }
15351
18708
  function buildGrepArgs(options) {
15352
- const args = [...GREP_SAFETY_FLAGS, "-r"];
18709
+ const args2 = [...GREP_SAFETY_FLAGS, "-r"];
15353
18710
  if (options.context !== undefined && options.context > 0) {
15354
- args.push(`-C${Math.min(options.context, 10)}`);
18711
+ args2.push(`-C${Math.min(options.context, 10)}`);
15355
18712
  }
15356
18713
  if (!options.caseSensitive)
15357
- args.push("-i");
18714
+ args2.push("-i");
15358
18715
  if (options.wholeWord)
15359
- args.push("-w");
18716
+ args2.push("-w");
15360
18717
  if (options.fixedStrings)
15361
- args.push("-F");
18718
+ args2.push("-F");
15362
18719
  if (options.globs?.length) {
15363
18720
  for (const glob of options.globs) {
15364
- args.push(`--include=${glob}`);
18721
+ args2.push(`--include=${glob}`);
15365
18722
  }
15366
18723
  }
15367
18724
  if (options.excludeGlobs?.length) {
15368
18725
  for (const glob of options.excludeGlobs) {
15369
- args.push(`--exclude=${glob}`);
18726
+ args2.push(`--exclude=${glob}`);
15370
18727
  }
15371
18728
  }
15372
- args.push("--exclude-dir=.git", "--exclude-dir=node_modules");
15373
- return args;
18729
+ args2.push("--exclude-dir=.git", "--exclude-dir=node_modules");
18730
+ return args2;
15374
18731
  }
15375
18732
  function buildArgs(options, backend) {
15376
18733
  return backend === "rg" ? buildRgArgs(options) : buildGrepArgs(options);
@@ -15397,16 +18754,16 @@ function parseOutput(output) {
15397
18754
  }
15398
18755
  async function runRg(options) {
15399
18756
  const cli = resolveGrepCli();
15400
- const args = buildArgs(options, cli.backend);
18757
+ const args2 = buildArgs(options, cli.backend);
15401
18758
  const timeout = Math.min(options.timeout ?? DEFAULT_TIMEOUT_MS, DEFAULT_TIMEOUT_MS);
15402
18759
  if (cli.backend === "rg") {
15403
- args.push("--", options.pattern);
18760
+ args2.push("--", options.pattern);
15404
18761
  } else {
15405
- args.push("-e", options.pattern);
18762
+ args2.push("-e", options.pattern);
15406
18763
  }
15407
18764
  const paths = options.paths?.length ? options.paths : ["."];
15408
- args.push(...paths);
15409
- const proc = spawn3([cli.path, ...args], {
18765
+ args2.push(...paths);
18766
+ const proc = spawn3([cli.path, ...args2], {
15410
18767
  stdout: "pipe",
15411
18768
  stderr: "pipe"
15412
18769
  });
@@ -15490,12 +18847,12 @@ var safe_grep = tool({
15490
18847
  include: tool.schema.string().optional().describe('File pattern to include in the search (e.g. "*.js", "*.{ts,tsx}")'),
15491
18848
  path: tool.schema.string().optional().describe("The directory to search in. Defaults to the current working directory.")
15492
18849
  },
15493
- execute: async (args) => {
18850
+ execute: async (args2) => {
15494
18851
  try {
15495
- const globs = args.include ? [args.include] : undefined;
15496
- const paths = args.path ? [args.path] : undefined;
18852
+ const globs = args2.include ? [args2.include] : undefined;
18853
+ const paths = args2.path ? [args2.path] : undefined;
15497
18854
  const result = await runRg({
15498
- pattern: args.pattern,
18855
+ pattern: args2.pattern,
15499
18856
  paths,
15500
18857
  globs,
15501
18858
  context: 0
@@ -15549,9 +18906,9 @@ var allBuiltinMcps = {
15549
18906
  };
15550
18907
  function createBuiltinMcps(disabledMcps = []) {
15551
18908
  const mcps = {};
15552
- for (const [name, config3] of Object.entries(allBuiltinMcps)) {
15553
- if (!disabledMcps.includes(name)) {
15554
- mcps[name] = config3;
18909
+ for (const [name2, config3] of Object.entries(allBuiltinMcps)) {
18910
+ if (!disabledMcps.includes(name2)) {
18911
+ mcps[name2] = config3;
15555
18912
  }
15556
18913
  }
15557
18914
  return mcps;
@@ -15597,7 +18954,7 @@ var OhMyOpenCodeConfigSchema = exports_external.object({
15597
18954
  agents: AgentOverridesSchema.optional()
15598
18955
  });
15599
18956
  // src/index.ts
15600
- import * as fs from "fs";
18957
+ import * as fs2 from "fs";
15601
18958
  import * as path from "path";
15602
18959
  function loadPluginConfig(directory) {
15603
18960
  const configPaths = [
@@ -15606,8 +18963,8 @@ function loadPluginConfig(directory) {
15606
18963
  ];
15607
18964
  for (const configPath of configPaths) {
15608
18965
  try {
15609
- if (fs.existsSync(configPath)) {
15610
- const content = fs.readFileSync(configPath, "utf-8");
18966
+ if (fs2.existsSync(configPath)) {
18967
+ const content = fs2.readFileSync(configPath, "utf-8");
15611
18968
  const rawConfig = JSON.parse(content);
15612
18969
  const result = OhMyOpenCodeConfigSchema.safeParse(rawConfig);
15613
18970
  if (!result.success) {
@@ -15627,6 +18984,7 @@ var OhMyOpenCodePlugin = async (ctx) => {
15627
18984
  const todoContinuationEnforcer = createTodoContinuationEnforcer(ctx);
15628
18985
  const contextWindowMonitor = createContextWindowMonitorHook(ctx);
15629
18986
  const sessionRecovery = createSessionRecoveryHook(ctx);
18987
+ const commentChecker = createCommentCheckerHooks();
15630
18988
  updateTerminalTitle({ sessionId: "main" });
15631
18989
  const pluginConfig = loadPluginConfig(ctx.directory);
15632
18990
  let mainSessionID;
@@ -15726,7 +19084,8 @@ var OhMyOpenCodePlugin = async (ctx) => {
15726
19084
  }
15727
19085
  }
15728
19086
  },
15729
- "tool.execute.before": async (input, _output) => {
19087
+ "tool.execute.before": async (input, output) => {
19088
+ await commentChecker["tool.execute.before"](input, output);
15730
19089
  if (input.sessionID === mainSessionID) {
15731
19090
  updateTerminalTitle({
15732
19091
  sessionId: input.sessionID,
@@ -15739,6 +19098,7 @@ var OhMyOpenCodePlugin = async (ctx) => {
15739
19098
  },
15740
19099
  "tool.execute.after": async (input, output) => {
15741
19100
  await contextWindowMonitor["tool.execute.after"](input, output);
19101
+ await commentChecker["tool.execute.after"](input, output);
15742
19102
  if (input.sessionID === mainSessionID) {
15743
19103
  updateTerminalTitle({
15744
19104
  sessionId: input.sessionID,