@functional-systems/srcx 0.1.0-dev.19 → 0.1.0-dev.21

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/chunk.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { fileURLToPath } from "node:url";
1
2
  import { createRequire } from "node:module";
2
3
  import { Parser, Language } from "web-tree-sitter";
3
4
  import { getEncoding } from "js-tiktoken";
@@ -8,9 +9,10 @@ export function tokens(text) {
8
9
  return encoding.encode(text, [], []).length;
9
10
  }
10
11
  export const CHUNKER = {
11
- version: 1,
12
+ version: 2,
12
13
  parser: "web-tree-sitter@0.25.10",
13
14
  grammars: "tree-sitter-wasms@0.1.13",
15
+ sqlGrammar: "tree-sitter-wasm@2.0.2/sql/b77530893b1dd6d1d4814eacf34d25bcbe4a12ec9a25a8c45b320d447265f42b",
14
16
  tokenizer: "js-tiktoken@1.0.21/cl100k_base",
15
17
  targetTokens: 800,
16
18
  maxTokens: 1500,
@@ -25,14 +27,33 @@ async function language(name) {
25
27
  await initialized;
26
28
  let l = languages.get(name);
27
29
  if (!l) {
28
- l = await Language.load(require.resolve(`tree-sitter-wasms/out/tree-sitter-${name}.wasm`));
30
+ l = await Language.load(name === "sql"
31
+ ? fileURLToPath(new URL("../runtime/grammars/tree-sitter-sql.wasm", import.meta.url))
32
+ : require.resolve(`tree-sitter-wasms/out/tree-sitter-${name === "shell" ? "bash" : name}.wasm`));
29
33
  languages.set(name, l);
30
34
  }
31
35
  return l;
32
36
  }
33
37
  export function detectLanguage(path) {
38
+ if (path.endsWith(".C"))
39
+ return "cpp";
34
40
  const ext = path.split(".").at(-1)?.toLowerCase();
35
41
  return ({
42
+ py: "python",
43
+ pyi: "python",
44
+ go: "go",
45
+ rs: "rust",
46
+ c: "c",
47
+ h: "c",
48
+ cc: "cpp",
49
+ cpp: "cpp",
50
+ cxx: "cpp",
51
+ hh: "cpp",
52
+ hpp: "cpp",
53
+ hxx: "cpp",
54
+ sh: "shell",
55
+ bash: "shell",
56
+ sql: "sql",
36
57
  java: "java",
37
58
  ts: "typescript",
38
59
  tsx: "tsx",
@@ -78,6 +99,266 @@ function scopeName(n) {
78
99
  }
79
100
  return names.length ? names.join(".") : undefined;
80
101
  }
102
+ /** Keep complete functions (including decorators) before token-bound splitting. */
103
+ function pythonUnits(root) {
104
+ const units = [];
105
+ function visit(n, scope) {
106
+ const definition = n.childForFieldName("definition") ?? n;
107
+ const body = definition.childForFieldName("body");
108
+ const symbol = definition.childForFieldName("name")?.text.slice(0, 200);
109
+ const unit = {
110
+ start: n.startIndex,
111
+ end: n.endIndex,
112
+ kind: classify(definition.type),
113
+ scope,
114
+ symbol,
115
+ };
116
+ if (definition.type === "class_definition" && body) {
117
+ units.push({ ...unit, end: body.startIndex });
118
+ const nested = [scope, symbol].filter(Boolean).join(".");
119
+ for (const child of body.namedChildren)
120
+ if (child)
121
+ visit(child, nested);
122
+ }
123
+ else {
124
+ if (definition.type === "function_definition" && body)
125
+ unit.signature = definition.text
126
+ .slice(0, body.startIndex - definition.startIndex)
127
+ .trim()
128
+ .slice(0, 240);
129
+ if (definition.type === "expression_statement" &&
130
+ definition.firstNamedChild?.type === "string")
131
+ unit.kind = "documentation";
132
+ units.push(unit);
133
+ }
134
+ }
135
+ for (const n of root.namedChildren)
136
+ if (n)
137
+ visit(n);
138
+ return units;
139
+ }
140
+ function goUnits(root) {
141
+ const units = [];
142
+ for (const n of root.namedChildren) {
143
+ if (!n)
144
+ continue;
145
+ if (n.type === "type_declaration") {
146
+ // Include the type keyword and grouped declaration delimiters in coverage.
147
+ const specs = n.namedChildren.filter((node) => node !== null);
148
+ for (const [i, spec] of specs.entries())
149
+ units.push({
150
+ start: i === 0 ? n.startIndex : spec.startIndex,
151
+ end: i === specs.length - 1 ? n.endIndex : spec.endIndex,
152
+ kind: classify(spec.type),
153
+ symbol: spec.childForFieldName("name")?.text.slice(0, 200),
154
+ });
155
+ continue;
156
+ }
157
+ const unit = {
158
+ start: n.startIndex,
159
+ end: n.endIndex,
160
+ kind: classify(n.type),
161
+ symbol: n.childForFieldName("name")?.text.slice(0, 200),
162
+ };
163
+ let receiver = n
164
+ .childForFieldName("receiver")
165
+ ?.firstNamedChild?.childForFieldName("type");
166
+ if (receiver?.type === "pointer_type")
167
+ receiver = receiver.firstNamedChild;
168
+ if (receiver?.type === "generic_type")
169
+ receiver = receiver.childForFieldName("type");
170
+ if (receiver)
171
+ unit.scope = receiver.text.slice(0, 160);
172
+ const body = n.childForFieldName("body");
173
+ if (unit.kind === "function")
174
+ unit.signature = n.text
175
+ .slice(0, body ? body.startIndex - n.startIndex : undefined)
176
+ .trim()
177
+ .slice(0, 240);
178
+ units.push(unit);
179
+ }
180
+ return units;
181
+ }
182
+ /** Walk declarators rather than parameter/type names (including pointer returns). */
183
+ function declaratorName(n) {
184
+ if (!n)
185
+ return undefined;
186
+ if (/^(identifier|field_identifier|type_identifier|qualified_identifier|destructor_name|operator_name)$/.test(n.type))
187
+ return n.text;
188
+ return declaratorName(n.childForFieldName("declarator") ??
189
+ (n.type === "parenthesized_declarator" ? n.firstNamedChild : null));
190
+ }
191
+ function cUnits(root) {
192
+ const units = [];
193
+ function visit(n, scope, start = n.startIndex) {
194
+ if (n.type === "template_declaration") {
195
+ const declaration = n.namedChildren
196
+ .filter((c) => !!c && c.type !== "template_parameter_list")
197
+ .at(-1);
198
+ if (declaration) {
199
+ visit(declaration, scope, start);
200
+ return;
201
+ }
202
+ }
203
+ const body = n.childForFieldName("body");
204
+ const symbol = n.childForFieldName("name")?.text ??
205
+ declaratorName(n.childForFieldName("declarator"));
206
+ const unit = {
207
+ start,
208
+ end: n.endIndex,
209
+ kind: n.type === "preproc_include" ? "imports" : classify(n.type),
210
+ scope,
211
+ symbol: symbol?.slice(0, 200),
212
+ };
213
+ if (body && /^(declaration_list|field_declaration_list)$/.test(body.type)) {
214
+ const nested = [scope, symbol].filter(Boolean).join("::") || undefined;
215
+ units.push({ ...unit, end: body.startIndex + 1 });
216
+ for (const child of body.namedChildren)
217
+ if (child)
218
+ visit(child, nested);
219
+ units.push({
220
+ start: body.endIndex - 1,
221
+ end: n.endIndex,
222
+ kind: "structural",
223
+ scope: nested,
224
+ });
225
+ }
226
+ else if (/^preproc_(if|ifdef|elif|else|elifdef)$/.test(n.type)) {
227
+ // Preserve directives and both branches without evaluating the build configuration.
228
+ const condition = n.childForFieldName("condition") ?? n.childForFieldName("name");
229
+ const children = n.namedChildren.filter((c) => !!c && c.id !== condition?.id);
230
+ if (!children.length) {
231
+ units.push(unit);
232
+ return;
233
+ }
234
+ units.push({ ...unit, end: children[0].startIndex });
235
+ for (const child of children)
236
+ visit(child, scope);
237
+ const end = children.at(-1).endIndex;
238
+ if (end < n.endIndex)
239
+ units.push({ start: end, end: n.endIndex, kind: "structural", scope });
240
+ }
241
+ else {
242
+ if (n.type === "function_definition")
243
+ unit.signature = n.text
244
+ .slice(0, body ? body.startIndex - n.startIndex : undefined)
245
+ .trim()
246
+ .slice(0, 240);
247
+ units.push(unit);
248
+ }
249
+ }
250
+ for (const n of root.namedChildren)
251
+ if (n)
252
+ visit(n);
253
+ return units;
254
+ }
255
+ function shellUnits(root) {
256
+ return root.namedChildren
257
+ .filter((n) => !!n)
258
+ .map((n) => {
259
+ const body = n.childForFieldName("body");
260
+ return {
261
+ start: n.startIndex,
262
+ end: n.endIndex,
263
+ kind: classify(n.type),
264
+ symbol: n.type === "function_definition"
265
+ ? n.childForFieldName("name")?.text.slice(0, 200)
266
+ : undefined,
267
+ signature: n.type === "function_definition"
268
+ ? n.text
269
+ .slice(0, body ? body.startIndex - n.startIndex : undefined)
270
+ .trim()
271
+ .slice(0, 240)
272
+ : undefined,
273
+ };
274
+ });
275
+ }
276
+ function sqlUnits(root) {
277
+ return root.namedChildren
278
+ .filter((n) => !!n)
279
+ .map((n) => {
280
+ const declaration = n.firstNamedChild;
281
+ // Object names describe DDL declarations, not every table referenced by a query.
282
+ const object = declaration?.type.startsWith("create_")
283
+ ? declaration.namedChildren.find((c) => c?.type === "object_reference")
284
+ : undefined;
285
+ return {
286
+ start: n.startIndex,
287
+ end: n.nextSibling?.type === ";" ? n.nextSibling.endIndex : n.endIndex,
288
+ kind: n.type === "comment" ? "documentation" : "statement",
289
+ symbol: object?.childForFieldName("name")?.text.slice(0, 200),
290
+ scope: object?.childForFieldName("schema")?.text.slice(0, 160),
291
+ };
292
+ });
293
+ }
294
+ function rustUnits(root) {
295
+ const units = [];
296
+ function visit(container, scope) {
297
+ let prefix;
298
+ for (const n of container.namedChildren) {
299
+ if (!n)
300
+ continue;
301
+ // Outer attributes/doc comments belong to the following item, not a chunk
302
+ // containing only cfg/derive metadata. Inner module docs remain separate.
303
+ if (n.type === "attribute_item" ||
304
+ /^(\/\/\/(?!\/)|\/\*\*(?!\*))/.test(n.text)) {
305
+ prefix ??= n.startIndex;
306
+ continue;
307
+ }
308
+ if (prefix !== undefined && n.type.endsWith("comment"))
309
+ continue;
310
+ const body = n.childForFieldName("body");
311
+ const name = n.childForFieldName("name")?.text;
312
+ const type = n.childForFieldName("type")?.text;
313
+ const trait = n.childForFieldName("trait")?.text;
314
+ const unit = {
315
+ start: prefix ?? n.startIndex,
316
+ end: n.endIndex,
317
+ kind: n.type === "use_declaration" || n.type === "extern_crate_declaration"
318
+ ? "imports"
319
+ : classify(n.type),
320
+ scope,
321
+ symbol: (name ??
322
+ (n.type === "impl_item" ? type : n.childForFieldName("macro")?.text))?.slice(0, 200),
323
+ };
324
+ prefix = undefined;
325
+ if (body?.type === "declaration_list") {
326
+ const owner = n.type === "impl_item"
327
+ ? [type, trait].filter(Boolean).join(" as ")
328
+ : name;
329
+ const nested = [scope, owner].filter(Boolean).join("::").slice(0, 160) || undefined;
330
+ units.push({ ...unit, end: body.startIndex + 1 });
331
+ visit(body, nested);
332
+ // Keep closing delimiters with their container, including empty bodies.
333
+ units.push({
334
+ start: body.endIndex - 1,
335
+ end: n.endIndex,
336
+ kind: "structural",
337
+ scope: nested,
338
+ });
339
+ }
340
+ else {
341
+ if (unit.kind === "function")
342
+ unit.signature = n.text
343
+ .slice(0, body ? body.startIndex - n.startIndex : undefined)
344
+ .trim()
345
+ .slice(0, 240);
346
+ units.push(unit);
347
+ }
348
+ }
349
+ if (prefix !== undefined)
350
+ units.push({
351
+ start: prefix,
352
+ end: container.type === "declaration_list"
353
+ ? container.endIndex - 1
354
+ : container.endIndex,
355
+ kind: "documentation",
356
+ scope,
357
+ });
358
+ }
359
+ visit(root);
360
+ return units;
361
+ }
81
362
  /** Bound strings without slicing a surrogate pair; prefer line ends where possible. */
82
363
  function splitUnit(source, path, u, overlap, policy) {
83
364
  const result = [];
@@ -163,7 +444,19 @@ export async function chunk(source, path, mode = "syntax", policy = CHUNKER.enri
163
444
  status = "window-baseline";
164
445
  units = [{ start: 0, end: source.length, kind: "fallback" }];
165
446
  }
166
- else if (["java", "typescript", "tsx", "javascript"].includes(lang)) {
447
+ else if ([
448
+ "java",
449
+ "typescript",
450
+ "tsx",
451
+ "javascript",
452
+ "python",
453
+ "go",
454
+ "rust",
455
+ "c",
456
+ "cpp",
457
+ "shell",
458
+ "sql",
459
+ ].includes(lang)) {
167
460
  const grammar = await language(lang);
168
461
  const parser = new Parser();
169
462
  let tree = null;
@@ -199,7 +492,20 @@ export async function chunk(source, path, mode = "syntax", policy = CHUNKER.enri
199
492
  else if (n.endIndex > n.startIndex)
200
493
  units.push(u);
201
494
  }
202
- visit(tree.rootNode);
495
+ if (lang === "python")
496
+ units = pythonUnits(tree.rootNode);
497
+ else if (lang === "go")
498
+ units = goUnits(tree.rootNode);
499
+ else if (lang === "rust")
500
+ units = rustUnits(tree.rootNode);
501
+ else if (lang === "c" || lang === "cpp")
502
+ units = cUnits(tree.rootNode);
503
+ else if (lang === "shell")
504
+ units = shellUnits(tree.rootNode);
505
+ else if (lang === "sql")
506
+ units = sqlUnits(tree.rootNode);
507
+ else
508
+ visit(tree.rootNode);
203
509
  // Attach every gap (punctuation, BOM, comments, whitespace) without altering source bytes.
204
510
  let cursor = 0;
205
511
  const covered = [];
@@ -241,6 +547,9 @@ export async function chunk(source, path, mode = "syntax", policy = CHUNKER.enri
241
547
  for (const u of units) {
242
548
  const prev = merged.at(-1);
243
549
  if (prev &&
550
+ lang !== "sql" &&
551
+ (!["python", "go", "rust", "c", "cpp", "shell"].includes(lang) ||
552
+ (!prev.symbol && !u.symbol)) &&
244
553
  prev.kind !== "function" &&
245
554
  u.kind === prev.kind &&
246
555
  u.scope === prev.scope &&
package/dist/chunk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../src/chunk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../src/chunk.ts"],"names":[],"mappings":"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"}
package/dist/rerank.js CHANGED
@@ -3,6 +3,14 @@ import { fileURLToPath } from "node:url";
3
3
  import { invariant } from "./common.js";
4
4
  export const QWEN_MODEL = "Qwen/Qwen3-Reranker-0.6B";
5
5
  export const QWEN_REVISION = "e61197ed45024b0ed8a2d74b80b4d909f1255473";
6
+ // Reserved worker exit codes; never interpret or forward library stderr.
7
+ const WORKER_FAILURES = {
8
+ 20: "Qwen Python dependencies are missing or incompatible. Install runtime/requirements.txt with the Python selected by SRCX_RERANK_PYTHON.",
9
+ 21: "Qwen model cache is missing or incomplete. Download the pinned model revision from README and check HF_HUB_CACHE.",
10
+ 22: "Qwen device is invalid or unavailable. Set SRCX_RERANK_DEVICE to auto or cpu, or a supported mps/cuda device.",
11
+ 23: "Qwen query/chunk pair exceeds 8,192 tokens. Shorten the query or use search without --rerank; source is not truncated.",
12
+ 24: "Qwen request exceeds 4 MiB. Reduce --candidates or shorten the query.",
13
+ };
6
14
  export function candidateLimit(limit, options) {
7
15
  invariant(Number.isInteger(limit) && limit >= 1 && limit <= 100, "Limit must be an integer from 1 to 100.");
8
16
  invariant(options.rerank === undefined || options.rerank === "qwen", "Unknown reranker.");
@@ -20,7 +28,7 @@ export async function qwenScores(query, candidates) {
20
28
  candidates.length <= 100 &&
21
29
  new Set(candidates.map((c) => c.id)).size === candidates.length, "Invalid reranker candidates.");
22
30
  const input = JSON.stringify({ query, candidates });
23
- invariant(Buffer.byteLength(input) <= 4 * 1024 * 1024, "Reranker input exceeds 4 MiB.");
31
+ invariant(Buffer.byteLength(input) <= 4 * 1024 * 1024, "Reranker input exceeds 4 MiB. Reduce --candidates or shorten the query; no fallback was applied.");
24
32
  const python = process.env.SRCX_RERANK_PYTHON;
25
33
  invariant(python, "Set SRCX_RERANK_PYTHON to the prepared Python executable.");
26
34
  const start = performance.now();
@@ -37,10 +45,21 @@ export async function qwenScores(query, candidates) {
37
45
  TOKENIZERS_PARALLELISM: "false",
38
46
  },
39
47
  }, (error, output) => {
40
- if (error)
41
- reject(new Error("Qwen reranking failed or exceeded 120 seconds. Check Python dependencies, cached model and SRCX_RERANK_DEVICE; no fallback was applied."));
42
- else
43
- resolve(output);
48
+ if (!error)
49
+ return resolve(output);
50
+ let message = "Qwen reranking failed. Check Python dependencies, cached model and SRCX_RERANK_DEVICE.";
51
+ if (error.code === "ENOENT")
52
+ message =
53
+ "Qwen Python executable was not found. Set SRCX_RERANK_PYTHON to an existing Python executable.";
54
+ else if (error.code === "EACCES")
55
+ message =
56
+ "Qwen Python executable cannot be started. Check execute permissions for SRCX_RERANK_PYTHON.";
57
+ else if (error.killed && error.signal === "SIGKILL" && !error.code)
58
+ message =
59
+ "Qwen reranking exceeded 120 seconds. Reduce --candidates or use an available faster device via SRCX_RERANK_DEVICE.";
60
+ else if (typeof error.code === "number")
61
+ message = WORKER_FAILURES[error.code] ?? message;
62
+ reject(new Error(`${message} No fallback was applied.`));
44
63
  });
45
64
  // An early worker exit can close stdin before Node finishes writing.
46
65
  child.stdin?.on("error", () => { });
@@ -1 +1 @@
1
- {"version":3,"file":"rerank.js","sourceRoot":"","sources":["../src/rerank.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rerank.js","sourceRoot":"","sources":["../src/rerank.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@functional-systems/srcx",
3
- "version": "0.1.0-dev.19",
3
+ "version": "0.1.0-dev.21",
4
4
  "private": false,
5
5
  "description": "Version-aware code search on LambdaDB",
6
6
  "type": "module",
@@ -10,6 +10,7 @@
10
10
  "files": [
11
11
  "dist",
12
12
  "runtime/qwen.py",
13
+ "runtime/grammars",
13
14
  "runtime/requirements.txt",
14
15
  "README.md",
15
16
  "DESIGN.md",
@@ -64,5 +65,5 @@
64
65
  "url": "https://github.com/lambdadb/srcx/issues"
65
66
  },
66
67
  "license": "Apache-2.0",
67
- "gitHead": "cd7dbc9d4682f7713669ff7c7b98e0481b583c11"
68
+ "gitHead": "26e0b14ad293d4f2b48a7aa5987f03b8a9c3bea4"
68
69
  }
@@ -0,0 +1,26 @@
1
+ # Bundled SQL grammar
2
+
3
+ `tree-sitter-sql.wasm` is extracted unchanged from
4
+ [`tree-sitter-wasm@2.0.2`](https://www.npmjs.com/package/tree-sitter-wasm/v/2.0.2),
5
+ path `package/out/sql/tree-sitter-sql.wasm`. Only this grammar is bundled to avoid
6
+ adding the full 120 MB grammar distribution to every installation.
7
+
8
+ - Binary SHA-256: `b77530893b1dd6d1d4814eacf34d25bcbe4a12ec9a25a8c45b320d447265f42b`
9
+ - npm archive integrity: `sha512-zxC/EcugWmdytml6hZoU7vn1olencvNDSluO3BOyYsPWPXkBfbjmvNriJCHght+vXMYsLJZhK9v9e+YBggV4kQ==`
10
+ - Grammar source: <https://github.com/derekstride/tree-sitter-sql>
11
+ - Distributor: <https://github.com/Crysthamus/tree-sitter-wasm>
12
+ - MIT notices: `tree-sitter-sql.LICENSE` and `tree-sitter-wasm.LICENSE`.
13
+
14
+ The distributor declares `@derekstride/tree-sitter-sql@^0.3.11`; srcx pins the
15
+ actual binary above, not that floating source range. The SQL grammar identity and
16
+ checksum are included in `CHUNKER`, hence in preset/build identity. Loading is
17
+ local through `web-tree-sitter`; installation requires no grammar compilation or
18
+ runtime download. Installed-package tests exercise the bundled binary.
19
+
20
+ To reproduce extraction, use `npm pack tree-sitter-wasm@2.0.2 --ignore-scripts`,
21
+ verify the archive against the integrity above, then extract the named member
22
+ and verify its SHA-256. Preserve both license notices when replacing the file.
23
+ Run language and installed-package tests when updating the grammar.
24
+
25
+ Supported syntax is defined by this grammar, not by a database connection or
26
+ server dialect setting. Unsupported/error parses use whole-file text fallback.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Derek Stride
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Crysthamus
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.