@proxysoul/soulforge 2.1.0 → 2.2.0
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/README.md +17 -9
- package/dist/index.js +15047 -4468
- package/dist/workers/intelligence.worker.js +279 -42
- package/package.json +6 -1
|
@@ -16150,7 +16150,7 @@ function toRegExpDetails(pattern, options) {
|
|
|
16150
16150
|
}
|
|
16151
16151
|
return details;
|
|
16152
16152
|
}
|
|
16153
|
-
var cp, r3, envFlags, EsVersion, Target, asciiSpaceChar = "[\t-\r ]", CharsWithoutIgnoreCaseExpansion, defaultWordChar, JsUnicodePropertyMap, LowerToAlternativeLowerCaseMap, LowerToAlternativeUpperCaseMap, LowerToTitleCaseMap, PosixClassMap, UnicodePropertiesWithSpecificCase, FirstPassVisitor, SecondPassVisitor, ThirdPassVisitor, FlagModifierVisitor, generator, BaseEscapeChars, CharClassEscapeChars, CharClassEscapeCharsFlagV, CharCodeEscapeMap, casedRe, EmulatedRegExp;
|
|
16153
|
+
var cp, r3, envFlags, globalRegExp, EsVersion, Target, asciiSpaceChar = "[\t-\r ]", CharsWithoutIgnoreCaseExpansion, defaultWordChar, JsUnicodePropertyMap, LowerToAlternativeLowerCaseMap, LowerToAlternativeUpperCaseMap, LowerToTitleCaseMap, PosixClassMap, UnicodePropertiesWithSpecificCase, FirstPassVisitor, SecondPassVisitor, ThirdPassVisitor, FlagModifierVisitor, generator, BaseEscapeChars, CharClassEscapeChars, CharClassEscapeCharsFlagV, CharCodeEscapeMap, casedRe, EmulatedRegExp;
|
|
16154
16154
|
var init_esm = __esm(() => {
|
|
16155
16155
|
init_parse();
|
|
16156
16156
|
init_parse();
|
|
@@ -16162,33 +16162,33 @@ var init_esm = __esm(() => {
|
|
|
16162
16162
|
init_src2();
|
|
16163
16163
|
cp = String.fromCodePoint;
|
|
16164
16164
|
r3 = String.raw;
|
|
16165
|
-
envFlags = {
|
|
16166
|
-
|
|
16167
|
-
|
|
16168
|
-
|
|
16169
|
-
|
|
16170
|
-
|
|
16171
|
-
|
|
16172
|
-
|
|
16173
|
-
|
|
16174
|
-
|
|
16175
|
-
|
|
16176
|
-
|
|
16177
|
-
|
|
16178
|
-
|
|
16179
|
-
|
|
16180
|
-
|
|
16181
|
-
|
|
16182
|
-
};
|
|
16165
|
+
envFlags = {};
|
|
16166
|
+
globalRegExp = globalThis.RegExp;
|
|
16167
|
+
envFlags.flagGroups = (() => {
|
|
16168
|
+
try {
|
|
16169
|
+
new globalRegExp("(?i:)");
|
|
16170
|
+
} catch {
|
|
16171
|
+
return false;
|
|
16172
|
+
}
|
|
16173
|
+
return true;
|
|
16174
|
+
})();
|
|
16175
|
+
envFlags.unicodeSets = (() => {
|
|
16176
|
+
try {
|
|
16177
|
+
new globalRegExp("[[]]", "v");
|
|
16178
|
+
} catch {
|
|
16179
|
+
return false;
|
|
16180
|
+
}
|
|
16181
|
+
return true;
|
|
16182
|
+
})();
|
|
16183
16183
|
envFlags.bugFlagVLiteralHyphenIsRange = envFlags.unicodeSets ? (() => {
|
|
16184
16184
|
try {
|
|
16185
|
-
new
|
|
16185
|
+
new globalRegExp(r3`[\d\-a]`, "v");
|
|
16186
16186
|
} catch {
|
|
16187
16187
|
return true;
|
|
16188
16188
|
}
|
|
16189
16189
|
return false;
|
|
16190
16190
|
})() : false;
|
|
16191
|
-
envFlags.bugNestedClassIgnoresNegation = envFlags.unicodeSets && new
|
|
16191
|
+
envFlags.bugNestedClassIgnoresNegation = envFlags.unicodeSets && new globalRegExp("[[^a]]", "v").test("a");
|
|
16192
16192
|
EsVersion = {
|
|
16193
16193
|
ES2025: 2025,
|
|
16194
16194
|
ES2024: 2024,
|
|
@@ -29361,6 +29361,16 @@ var init_errors = __esm(() => {
|
|
|
29361
29361
|
})));
|
|
29362
29362
|
});
|
|
29363
29363
|
|
|
29364
|
+
// src/core/process-tracker.ts
|
|
29365
|
+
function trackProcess(proc) {
|
|
29366
|
+
tracked.add(proc);
|
|
29367
|
+
proc.on("exit", () => tracked.delete(proc));
|
|
29368
|
+
}
|
|
29369
|
+
var tracked;
|
|
29370
|
+
var init_process_tracker = __esm(() => {
|
|
29371
|
+
tracked = new Set;
|
|
29372
|
+
});
|
|
29373
|
+
|
|
29364
29374
|
// src/core/intelligence/backends/lsp/standalone-client.ts
|
|
29365
29375
|
import { spawn } from "child_process";
|
|
29366
29376
|
import { readFile as readFile3 } from "fs/promises";
|
|
@@ -29390,6 +29400,7 @@ class StandaloneLspClient {
|
|
|
29390
29400
|
stdio: ["pipe", "pipe", "pipe"],
|
|
29391
29401
|
cwd: this.cwd
|
|
29392
29402
|
});
|
|
29403
|
+
trackProcess(this.process);
|
|
29393
29404
|
this.process.stdout?.on("data", (chunk) => this.onData(chunk));
|
|
29394
29405
|
this.process.on("exit", (code, signal) => {
|
|
29395
29406
|
this.process = null;
|
|
@@ -29928,6 +29939,7 @@ function normalizeLocations(result) {
|
|
|
29928
29939
|
}
|
|
29929
29940
|
var init_standalone_client = __esm(() => {
|
|
29930
29941
|
init_errors();
|
|
29942
|
+
init_process_tracker();
|
|
29931
29943
|
init_protocol();
|
|
29932
29944
|
});
|
|
29933
29945
|
|
|
@@ -200018,7 +200030,7 @@ var require_commonjs2 = __commonJS((exports) => {
|
|
|
200018
200030
|
const x2 = numeric(n[0]);
|
|
200019
200031
|
const y3 = numeric(n[1]);
|
|
200020
200032
|
const width = Math.max(n[0].length, n[1].length);
|
|
200021
|
-
let incr = n.length === 3 && n[2] !== undefined ? Math.abs(numeric(n[2])) : 1;
|
|
200033
|
+
let incr = n.length === 3 && n[2] !== undefined ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
|
|
200022
200034
|
let test = lte;
|
|
200023
200035
|
const reverse = y3 < x2;
|
|
200024
200036
|
if (reverse) {
|
|
@@ -200206,9 +200218,9 @@ var require_unescape = __commonJS((exports) => {
|
|
|
200206
200218
|
exports.unescape = undefined;
|
|
200207
200219
|
var unescape = (s2, { windowsPathsNoEscape = false, magicalBraces = true } = {}) => {
|
|
200208
200220
|
if (magicalBraces) {
|
|
200209
|
-
return windowsPathsNoEscape ? s2.replace(/\[([
|
|
200221
|
+
return windowsPathsNoEscape ? s2.replace(/\[([^/\\])\]/g, "$1") : s2.replace(/((?!\\).|^)\[([^/\\])\]/g, "$1$2").replace(/\\([^/])/g, "$1");
|
|
200210
200222
|
}
|
|
200211
|
-
return windowsPathsNoEscape ? s2.replace(/\[([
|
|
200223
|
+
return windowsPathsNoEscape ? s2.replace(/\[([^/\\{}])\]/g, "$1") : s2.replace(/((?!\\).|^)\[([^/\\{}])\]/g, "$1$2").replace(/\\([^/{}])/g, "$1");
|
|
200212
200224
|
};
|
|
200213
200225
|
exports.unescape = unescape;
|
|
200214
200226
|
});
|
|
@@ -200333,13 +200345,7 @@ var require_ast = __commonJS((exports) => {
|
|
|
200333
200345
|
return this.#hasMagic;
|
|
200334
200346
|
}
|
|
200335
200347
|
toString() {
|
|
200336
|
-
|
|
200337
|
-
return this.#toString;
|
|
200338
|
-
if (!this.type) {
|
|
200339
|
-
return this.#toString = this.#parts.map((p2) => String(p2)).join("");
|
|
200340
|
-
} else {
|
|
200341
|
-
return this.#toString = this.type + "(" + this.#parts.map((p2) => String(p2)).join("|") + ")";
|
|
200342
|
-
}
|
|
200348
|
+
return this.#toString !== undefined ? this.#toString : !this.type ? this.#toString = this.#parts.map((p2) => String(p2)).join("") : this.#toString = this.type + "(" + this.#parts.map((p2) => String(p2)).join("|") + ")";
|
|
200343
200349
|
}
|
|
200344
200350
|
#fillNegs() {
|
|
200345
200351
|
if (this !== this.#root)
|
|
@@ -200818,7 +200824,7 @@ var require_commonjs3 = __commonJS((exports) => {
|
|
|
200818
200824
|
return new Minimatch(pattern, options).match(p2);
|
|
200819
200825
|
};
|
|
200820
200826
|
exports.minimatch = minimatch;
|
|
200821
|
-
var starDotExtRE = /^\*+([
|
|
200827
|
+
var starDotExtRE = /^\*+([^+@!?*[(]*)$/;
|
|
200822
200828
|
var starDotExtTest = (ext2) => (f3) => !f3.startsWith(".") && f3.endsWith(ext2);
|
|
200823
200829
|
var starDotExtTestDot = (ext2) => (f3) => f3.endsWith(ext2);
|
|
200824
200830
|
var starDotExtTestNocase = (ext2) => {
|
|
@@ -200837,7 +200843,7 @@ var require_commonjs3 = __commonJS((exports) => {
|
|
|
200837
200843
|
var starRE = /^\*+$/;
|
|
200838
200844
|
var starTest = (f3) => f3.length !== 0 && !f3.startsWith(".");
|
|
200839
200845
|
var starTestDot = (f3) => f3.length !== 0 && f3 !== "." && f3 !== "..";
|
|
200840
|
-
var qmarksRE = /^\?+([
|
|
200846
|
+
var qmarksRE = /^\?+([^+@!?*[(]*)?$/;
|
|
200841
200847
|
var qmarksTestNocase = ([$0, ext2 = ""]) => {
|
|
200842
200848
|
const noext = qmarksTestNoExt([$0]);
|
|
200843
200849
|
if (!ext2)
|
|
@@ -201054,10 +201060,10 @@ var require_commonjs3 = __commonJS((exports) => {
|
|
|
201054
201060
|
}
|
|
201055
201061
|
preprocess(globParts) {
|
|
201056
201062
|
if (this.options.noglobstar) {
|
|
201057
|
-
for (
|
|
201058
|
-
for (let j2 = 0;j2 <
|
|
201059
|
-
if (
|
|
201060
|
-
|
|
201063
|
+
for (const partset of globParts) {
|
|
201064
|
+
for (let j2 = 0;j2 < partset.length; j2++) {
|
|
201065
|
+
if (partset[j2] === "**") {
|
|
201066
|
+
partset[j2] = "*";
|
|
201061
201067
|
}
|
|
201062
201068
|
}
|
|
201063
201069
|
}
|
|
@@ -201133,7 +201139,7 @@ var require_commonjs3 = __commonJS((exports) => {
|
|
|
201133
201139
|
let dd2 = 0;
|
|
201134
201140
|
while ((dd2 = parts2.indexOf("..", dd2 + 1)) !== -1) {
|
|
201135
201141
|
const p2 = parts2[dd2 - 1];
|
|
201136
|
-
if (p2 && p2 !== "." && p2 !== ".." && p2 !== "**") {
|
|
201142
|
+
if (p2 && p2 !== "." && p2 !== ".." && p2 !== "**" && !(this.isWindows && /^[a-z]:$/i.test(p2))) {
|
|
201137
201143
|
didSomething = true;
|
|
201138
201144
|
parts2.splice(dd2 - 1, 2);
|
|
201139
201145
|
dd2 -= 2;
|
|
@@ -201517,7 +201523,7 @@ var require_commonjs3 = __commonJS((exports) => {
|
|
|
201517
201523
|
re3 = "^(?!" + re3 + ").+$";
|
|
201518
201524
|
try {
|
|
201519
201525
|
this.regexp = new RegExp(re3, [...flags2].join(""));
|
|
201520
|
-
} catch
|
|
201526
|
+
} catch {
|
|
201521
201527
|
this.regexp = false;
|
|
201522
201528
|
}
|
|
201523
201529
|
return this.regexp;
|
|
@@ -201525,7 +201531,7 @@ var require_commonjs3 = __commonJS((exports) => {
|
|
|
201525
201531
|
slashSplit(p2) {
|
|
201526
201532
|
if (this.preserveMultipleSlashes) {
|
|
201527
201533
|
return p2.split("/");
|
|
201528
|
-
} else if (this.isWindows && /^\/\/[
|
|
201534
|
+
} else if (this.isWindows && /^\/\/[^/]+/.test(p2)) {
|
|
201529
201535
|
return ["", ...p2.split(/\/+/)];
|
|
201530
201536
|
} else {
|
|
201531
201537
|
return p2.split(/\/+/);
|
|
@@ -201556,8 +201562,7 @@ var require_commonjs3 = __commonJS((exports) => {
|
|
|
201556
201562
|
filename = ff[i4];
|
|
201557
201563
|
}
|
|
201558
201564
|
}
|
|
201559
|
-
for (
|
|
201560
|
-
const pattern = set[i4];
|
|
201565
|
+
for (const pattern of set) {
|
|
201561
201566
|
let file = ff;
|
|
201562
201567
|
if (options.matchBase && pattern.length === 1) {
|
|
201563
201568
|
file = [filename];
|
|
@@ -202021,6 +202026,7 @@ var require_path_browserify = __commonJS((exports, module2) => {
|
|
|
202021
202026
|
var require_constants = __commonJS((exports, module2) => {
|
|
202022
202027
|
var WIN_SLASH = "\\\\/";
|
|
202023
202028
|
var WIN_NO_SLASH = `[^${WIN_SLASH}]`;
|
|
202029
|
+
var DEFAULT_MAX_EXTGLOB_RECURSION = 0;
|
|
202024
202030
|
var DOT_LITERAL = "\\.";
|
|
202025
202031
|
var PLUS_LITERAL = "\\+";
|
|
202026
202032
|
var QMARK_LITERAL = "\\?";
|
|
@@ -202071,6 +202077,7 @@ var require_constants = __commonJS((exports, module2) => {
|
|
|
202071
202077
|
SEP: "\\"
|
|
202072
202078
|
};
|
|
202073
202079
|
var POSIX_REGEX_SOURCE = {
|
|
202080
|
+
__proto__: null,
|
|
202074
202081
|
alnum: "a-zA-Z0-9",
|
|
202075
202082
|
alpha: "a-zA-Z",
|
|
202076
202083
|
ascii: "\\x00-\\x7F",
|
|
@@ -202087,6 +202094,7 @@ var require_constants = __commonJS((exports, module2) => {
|
|
|
202087
202094
|
xdigit: "A-Fa-f0-9"
|
|
202088
202095
|
};
|
|
202089
202096
|
module2.exports = {
|
|
202097
|
+
DEFAULT_MAX_EXTGLOB_RECURSION,
|
|
202090
202098
|
MAX_LENGTH: 1024 * 64,
|
|
202091
202099
|
POSIX_REGEX_SOURCE,
|
|
202092
202100
|
REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
|
|
@@ -202564,6 +202572,213 @@ var require_parse = __commonJS((exports, module2) => {
|
|
|
202564
202572
|
var syntaxError = (type, char) => {
|
|
202565
202573
|
return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
202566
202574
|
};
|
|
202575
|
+
var splitTopLevel = (input) => {
|
|
202576
|
+
const parts2 = [];
|
|
202577
|
+
let bracket = 0;
|
|
202578
|
+
let paren = 0;
|
|
202579
|
+
let quote = 0;
|
|
202580
|
+
let value = "";
|
|
202581
|
+
let escaped = false;
|
|
202582
|
+
for (const ch of input) {
|
|
202583
|
+
if (escaped === true) {
|
|
202584
|
+
value += ch;
|
|
202585
|
+
escaped = false;
|
|
202586
|
+
continue;
|
|
202587
|
+
}
|
|
202588
|
+
if (ch === "\\") {
|
|
202589
|
+
value += ch;
|
|
202590
|
+
escaped = true;
|
|
202591
|
+
continue;
|
|
202592
|
+
}
|
|
202593
|
+
if (ch === '"') {
|
|
202594
|
+
quote = quote === 1 ? 0 : 1;
|
|
202595
|
+
value += ch;
|
|
202596
|
+
continue;
|
|
202597
|
+
}
|
|
202598
|
+
if (quote === 0) {
|
|
202599
|
+
if (ch === "[") {
|
|
202600
|
+
bracket++;
|
|
202601
|
+
} else if (ch === "]" && bracket > 0) {
|
|
202602
|
+
bracket--;
|
|
202603
|
+
} else if (bracket === 0) {
|
|
202604
|
+
if (ch === "(") {
|
|
202605
|
+
paren++;
|
|
202606
|
+
} else if (ch === ")" && paren > 0) {
|
|
202607
|
+
paren--;
|
|
202608
|
+
} else if (ch === "|" && paren === 0) {
|
|
202609
|
+
parts2.push(value);
|
|
202610
|
+
value = "";
|
|
202611
|
+
continue;
|
|
202612
|
+
}
|
|
202613
|
+
}
|
|
202614
|
+
}
|
|
202615
|
+
value += ch;
|
|
202616
|
+
}
|
|
202617
|
+
parts2.push(value);
|
|
202618
|
+
return parts2;
|
|
202619
|
+
};
|
|
202620
|
+
var isPlainBranch = (branch) => {
|
|
202621
|
+
let escaped = false;
|
|
202622
|
+
for (const ch of branch) {
|
|
202623
|
+
if (escaped === true) {
|
|
202624
|
+
escaped = false;
|
|
202625
|
+
continue;
|
|
202626
|
+
}
|
|
202627
|
+
if (ch === "\\") {
|
|
202628
|
+
escaped = true;
|
|
202629
|
+
continue;
|
|
202630
|
+
}
|
|
202631
|
+
if (/[?*+@!()[\]{}]/.test(ch)) {
|
|
202632
|
+
return false;
|
|
202633
|
+
}
|
|
202634
|
+
}
|
|
202635
|
+
return true;
|
|
202636
|
+
};
|
|
202637
|
+
var normalizeSimpleBranch = (branch) => {
|
|
202638
|
+
let value = branch.trim();
|
|
202639
|
+
let changed = true;
|
|
202640
|
+
while (changed === true) {
|
|
202641
|
+
changed = false;
|
|
202642
|
+
if (/^@\([^\\()[\]{}|]+\)$/.test(value)) {
|
|
202643
|
+
value = value.slice(2, -1);
|
|
202644
|
+
changed = true;
|
|
202645
|
+
}
|
|
202646
|
+
}
|
|
202647
|
+
if (!isPlainBranch(value)) {
|
|
202648
|
+
return;
|
|
202649
|
+
}
|
|
202650
|
+
return value.replace(/\\(.)/g, "$1");
|
|
202651
|
+
};
|
|
202652
|
+
var hasRepeatedCharPrefixOverlap = (branches) => {
|
|
202653
|
+
const values = branches.map(normalizeSimpleBranch).filter(Boolean);
|
|
202654
|
+
for (let i4 = 0;i4 < values.length; i4++) {
|
|
202655
|
+
for (let j2 = i4 + 1;j2 < values.length; j2++) {
|
|
202656
|
+
const a2 = values[i4];
|
|
202657
|
+
const b3 = values[j2];
|
|
202658
|
+
const char = a2[0];
|
|
202659
|
+
if (!char || a2 !== char.repeat(a2.length) || b3 !== char.repeat(b3.length)) {
|
|
202660
|
+
continue;
|
|
202661
|
+
}
|
|
202662
|
+
if (a2 === b3 || a2.startsWith(b3) || b3.startsWith(a2)) {
|
|
202663
|
+
return true;
|
|
202664
|
+
}
|
|
202665
|
+
}
|
|
202666
|
+
}
|
|
202667
|
+
return false;
|
|
202668
|
+
};
|
|
202669
|
+
var parseRepeatedExtglob = (pattern, requireEnd = true) => {
|
|
202670
|
+
if (pattern[0] !== "+" && pattern[0] !== "*" || pattern[1] !== "(") {
|
|
202671
|
+
return;
|
|
202672
|
+
}
|
|
202673
|
+
let bracket = 0;
|
|
202674
|
+
let paren = 0;
|
|
202675
|
+
let quote = 0;
|
|
202676
|
+
let escaped = false;
|
|
202677
|
+
for (let i4 = 1;i4 < pattern.length; i4++) {
|
|
202678
|
+
const ch = pattern[i4];
|
|
202679
|
+
if (escaped === true) {
|
|
202680
|
+
escaped = false;
|
|
202681
|
+
continue;
|
|
202682
|
+
}
|
|
202683
|
+
if (ch === "\\") {
|
|
202684
|
+
escaped = true;
|
|
202685
|
+
continue;
|
|
202686
|
+
}
|
|
202687
|
+
if (ch === '"') {
|
|
202688
|
+
quote = quote === 1 ? 0 : 1;
|
|
202689
|
+
continue;
|
|
202690
|
+
}
|
|
202691
|
+
if (quote === 1) {
|
|
202692
|
+
continue;
|
|
202693
|
+
}
|
|
202694
|
+
if (ch === "[") {
|
|
202695
|
+
bracket++;
|
|
202696
|
+
continue;
|
|
202697
|
+
}
|
|
202698
|
+
if (ch === "]" && bracket > 0) {
|
|
202699
|
+
bracket--;
|
|
202700
|
+
continue;
|
|
202701
|
+
}
|
|
202702
|
+
if (bracket > 0) {
|
|
202703
|
+
continue;
|
|
202704
|
+
}
|
|
202705
|
+
if (ch === "(") {
|
|
202706
|
+
paren++;
|
|
202707
|
+
continue;
|
|
202708
|
+
}
|
|
202709
|
+
if (ch === ")") {
|
|
202710
|
+
paren--;
|
|
202711
|
+
if (paren === 0) {
|
|
202712
|
+
if (requireEnd === true && i4 !== pattern.length - 1) {
|
|
202713
|
+
return;
|
|
202714
|
+
}
|
|
202715
|
+
return {
|
|
202716
|
+
type: pattern[0],
|
|
202717
|
+
body: pattern.slice(2, i4),
|
|
202718
|
+
end: i4
|
|
202719
|
+
};
|
|
202720
|
+
}
|
|
202721
|
+
}
|
|
202722
|
+
}
|
|
202723
|
+
};
|
|
202724
|
+
var getStarExtglobSequenceOutput = (pattern) => {
|
|
202725
|
+
let index = 0;
|
|
202726
|
+
const chars = [];
|
|
202727
|
+
while (index < pattern.length) {
|
|
202728
|
+
const match = parseRepeatedExtglob(pattern.slice(index), false);
|
|
202729
|
+
if (!match || match.type !== "*") {
|
|
202730
|
+
return;
|
|
202731
|
+
}
|
|
202732
|
+
const branches = splitTopLevel(match.body).map((branch2) => branch2.trim());
|
|
202733
|
+
if (branches.length !== 1) {
|
|
202734
|
+
return;
|
|
202735
|
+
}
|
|
202736
|
+
const branch = normalizeSimpleBranch(branches[0]);
|
|
202737
|
+
if (!branch || branch.length !== 1) {
|
|
202738
|
+
return;
|
|
202739
|
+
}
|
|
202740
|
+
chars.push(branch);
|
|
202741
|
+
index += match.end + 1;
|
|
202742
|
+
}
|
|
202743
|
+
if (chars.length < 1) {
|
|
202744
|
+
return;
|
|
202745
|
+
}
|
|
202746
|
+
const source = chars.length === 1 ? utils.escapeRegex(chars[0]) : `[${chars.map((ch) => utils.escapeRegex(ch)).join("")}]`;
|
|
202747
|
+
return `${source}*`;
|
|
202748
|
+
};
|
|
202749
|
+
var repeatedExtglobRecursion = (pattern) => {
|
|
202750
|
+
let depth = 0;
|
|
202751
|
+
let value = pattern.trim();
|
|
202752
|
+
let match = parseRepeatedExtglob(value);
|
|
202753
|
+
while (match) {
|
|
202754
|
+
depth++;
|
|
202755
|
+
value = match.body.trim();
|
|
202756
|
+
match = parseRepeatedExtglob(value);
|
|
202757
|
+
}
|
|
202758
|
+
return depth;
|
|
202759
|
+
};
|
|
202760
|
+
var analyzeRepeatedExtglob = (body4, options) => {
|
|
202761
|
+
if (options.maxExtglobRecursion === false) {
|
|
202762
|
+
return { risky: false };
|
|
202763
|
+
}
|
|
202764
|
+
const max = typeof options.maxExtglobRecursion === "number" ? options.maxExtglobRecursion : constants2.DEFAULT_MAX_EXTGLOB_RECURSION;
|
|
202765
|
+
const branches = splitTopLevel(body4).map((branch) => branch.trim());
|
|
202766
|
+
if (branches.length > 1) {
|
|
202767
|
+
if (branches.some((branch) => branch === "") || branches.some((branch) => /^[*?]+$/.test(branch)) || hasRepeatedCharPrefixOverlap(branches)) {
|
|
202768
|
+
return { risky: true };
|
|
202769
|
+
}
|
|
202770
|
+
}
|
|
202771
|
+
for (const branch of branches) {
|
|
202772
|
+
const safeOutput = getStarExtglobSequenceOutput(branch);
|
|
202773
|
+
if (safeOutput) {
|
|
202774
|
+
return { risky: true, safeOutput };
|
|
202775
|
+
}
|
|
202776
|
+
if (repeatedExtglobRecursion(branch) > max) {
|
|
202777
|
+
return { risky: true };
|
|
202778
|
+
}
|
|
202779
|
+
}
|
|
202780
|
+
return { risky: false };
|
|
202781
|
+
};
|
|
202567
202782
|
var parse = (input, options) => {
|
|
202568
202783
|
if (typeof input !== "string") {
|
|
202569
202784
|
throw new TypeError("Expected a string");
|
|
@@ -202695,6 +202910,8 @@ var require_parse = __commonJS((exports, module2) => {
|
|
|
202695
202910
|
token2.prev = prev;
|
|
202696
202911
|
token2.parens = state.parens;
|
|
202697
202912
|
token2.output = state.output;
|
|
202913
|
+
token2.startIndex = state.index;
|
|
202914
|
+
token2.tokensIndex = tokens.length;
|
|
202698
202915
|
const output = (opts.capture ? "(" : "") + token2.open;
|
|
202699
202916
|
increment2("parens");
|
|
202700
202917
|
push({ type, value: value2, output: state.output ? "" : ONE_CHAR });
|
|
@@ -202702,6 +202919,26 @@ var require_parse = __commonJS((exports, module2) => {
|
|
|
202702
202919
|
extglobs.push(token2);
|
|
202703
202920
|
};
|
|
202704
202921
|
const extglobClose = (token2) => {
|
|
202922
|
+
const literal = input.slice(token2.startIndex, state.index + 1);
|
|
202923
|
+
const body4 = input.slice(token2.startIndex + 2, state.index);
|
|
202924
|
+
const analysis = analyzeRepeatedExtglob(body4, opts);
|
|
202925
|
+
if ((token2.type === "plus" || token2.type === "star") && analysis.risky) {
|
|
202926
|
+
const safeOutput = analysis.safeOutput ? (token2.output ? "" : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput) : undefined;
|
|
202927
|
+
const open = tokens[token2.tokensIndex];
|
|
202928
|
+
open.type = "text";
|
|
202929
|
+
open.value = literal;
|
|
202930
|
+
open.output = safeOutput || utils.escapeRegex(literal);
|
|
202931
|
+
for (let i4 = token2.tokensIndex + 1;i4 < tokens.length; i4++) {
|
|
202932
|
+
tokens[i4].value = "";
|
|
202933
|
+
tokens[i4].output = "";
|
|
202934
|
+
delete tokens[i4].suffix;
|
|
202935
|
+
}
|
|
202936
|
+
state.output = token2.output + open.output;
|
|
202937
|
+
state.backtrack = true;
|
|
202938
|
+
push({ type: "paren", extglob: true, value, output: "" });
|
|
202939
|
+
decrement("parens");
|
|
202940
|
+
return;
|
|
202941
|
+
}
|
|
202705
202942
|
let output = token2.close + (opts.capture ? ")" : "");
|
|
202706
202943
|
let rest;
|
|
202707
202944
|
if (token2.type === "negate") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proxysoul/soulforge",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Graph-powered code intelligence — multi-agent coding with codebase-aware AI",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -61,8 +61,13 @@
|
|
|
61
61
|
"typescript": "6.0.2"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
+
"@ai-sdk/amazon-bedrock": "^4.0.89",
|
|
64
65
|
"@ai-sdk/anthropic": "3.0.66",
|
|
66
|
+
"@ai-sdk/deepseek": "^2.0.27",
|
|
67
|
+
"@ai-sdk/fireworks": "^2.0.43",
|
|
65
68
|
"@ai-sdk/google": "3.0.58",
|
|
69
|
+
"@ai-sdk/groq": "^3.0.33",
|
|
70
|
+
"@ai-sdk/mistral": "^3.0.28",
|
|
66
71
|
"@ai-sdk/openai": "3.0.50",
|
|
67
72
|
"@ai-sdk/xai": "3.0.77",
|
|
68
73
|
"@anthropic-ai/sdk": "0.82.0",
|