@morphllm/morphsdk 0.2.80 → 0.2.81
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-DCIUCDWJ.js → chunk-467MCW5R.js} +38 -10
- package/dist/chunk-467MCW5R.js.map +1 -0
- package/dist/{chunk-HBIDSKIQ.js → chunk-4NI25AKV.js} +14 -6
- package/dist/chunk-4NI25AKV.js.map +1 -0
- package/dist/{chunk-5PGRBWJX.js → chunk-4VMIPD4G.js} +4 -4
- package/dist/{chunk-6OII5QOW.js → chunk-B3UC7UVA.js} +3 -3
- package/dist/{chunk-6OII5QOW.js.map → chunk-B3UC7UVA.js.map} +1 -1
- package/dist/{chunk-QL5SMQ73.js → chunk-NTTQJM6O.js} +2 -2
- package/dist/{chunk-ND7IFSMR.js → chunk-OFMDENAQ.js} +2 -2
- package/dist/{chunk-26QXQFLZ.js → chunk-PHJQ4N3T.js} +8 -3
- package/dist/chunk-PHJQ4N3T.js.map +1 -0
- package/dist/{chunk-LM62QCGS.js → chunk-X6A64F2F.js} +5 -5
- package/dist/{chunk-4R3ALD5C.js → chunk-Z2HDXUH7.js} +2 -2
- package/dist/client.cjs +54 -12
- package/dist/client.cjs.map +1 -1
- package/dist/client.js +9 -9
- package/dist/index.cjs +54 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -9
- package/dist/tools/warp_grep/agent/runner.cjs +34 -5
- package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
- package/dist/tools/warp_grep/agent/runner.js +2 -2
- package/dist/tools/warp_grep/anthropic.cjs +54 -12
- package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
- package/dist/tools/warp_grep/anthropic.js +6 -6
- package/dist/tools/warp_grep/client.cjs +54 -12
- package/dist/tools/warp_grep/client.cjs.map +1 -1
- package/dist/tools/warp_grep/client.js +5 -5
- package/dist/tools/warp_grep/gemini.cjs +54 -12
- package/dist/tools/warp_grep/gemini.cjs.map +1 -1
- package/dist/tools/warp_grep/gemini.js +5 -5
- package/dist/tools/warp_grep/harness.cjs +50 -14
- package/dist/tools/warp_grep/harness.cjs.map +1 -1
- package/dist/tools/warp_grep/harness.js +2 -2
- package/dist/tools/warp_grep/index.cjs +58 -17
- package/dist/tools/warp_grep/index.cjs.map +1 -1
- package/dist/tools/warp_grep/index.js +5 -5
- package/dist/tools/warp_grep/openai.cjs +54 -12
- package/dist/tools/warp_grep/openai.cjs.map +1 -1
- package/dist/tools/warp_grep/openai.js +6 -6
- package/dist/tools/warp_grep/providers/local.cjs +13 -5
- package/dist/tools/warp_grep/providers/local.cjs.map +1 -1
- package/dist/tools/warp_grep/providers/local.js +1 -1
- package/dist/tools/warp_grep/providers/remote.cjs +7 -2
- package/dist/tools/warp_grep/providers/remote.cjs.map +1 -1
- package/dist/tools/warp_grep/providers/remote.js +1 -1
- package/dist/tools/warp_grep/vercel.cjs +54 -12
- package/dist/tools/warp_grep/vercel.cjs.map +1 -1
- package/dist/tools/warp_grep/vercel.js +6 -6
- package/package.json +1 -1
- package/dist/chunk-26QXQFLZ.js.map +0 -1
- package/dist/chunk-DCIUCDWJ.js.map +0 -1
- package/dist/chunk-HBIDSKIQ.js.map +0 -1
- /package/dist/{chunk-5PGRBWJX.js.map → chunk-4VMIPD4G.js.map} +0 -0
- /package/dist/{chunk-QL5SMQ73.js.map → chunk-NTTQJM6O.js.map} +0 -0
- /package/dist/{chunk-ND7IFSMR.js.map → chunk-OFMDENAQ.js.map} +0 -0
- /package/dist/{chunk-LM62QCGS.js.map → chunk-X6A64F2F.js.map} +0 -0
- /package/dist/{chunk-4R3ALD5C.js.map → chunk-Z2HDXUH7.js.map} +0 -0
|
@@ -609,10 +609,25 @@ async function toolGrep(provider, args) {
|
|
|
609
609
|
}
|
|
610
610
|
|
|
611
611
|
// tools/warp_grep/agent/tools/read.ts
|
|
612
|
+
function isValidRange(start, end) {
|
|
613
|
+
return typeof start === "number" && typeof end === "number" && Number.isFinite(start) && Number.isFinite(end) && start > 0 && end >= start;
|
|
614
|
+
}
|
|
612
615
|
async function toolRead(provider, args) {
|
|
613
|
-
if (args.lines && args.lines.length > 0) {
|
|
616
|
+
if (args.lines && Array.isArray(args.lines) && args.lines.length > 0) {
|
|
617
|
+
const validRanges = [];
|
|
618
|
+
for (const range of args.lines) {
|
|
619
|
+
if (Array.isArray(range) && range.length >= 2 && isValidRange(range[0], range[1])) {
|
|
620
|
+
validRanges.push([range[0], range[1]]);
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
if (validRanges.length === 0) {
|
|
624
|
+
const res2 = await provider.read({ path: args.path });
|
|
625
|
+
if (res2.error) return res2.error;
|
|
626
|
+
if (!res2.lines.length) return "(empty file)";
|
|
627
|
+
return res2.lines.join("\n");
|
|
628
|
+
}
|
|
614
629
|
const chunks = [];
|
|
615
|
-
for (const [start, end] of
|
|
630
|
+
for (const [start, end] of validRanges) {
|
|
616
631
|
const res2 = await provider.read({ path: args.path, start, end });
|
|
617
632
|
if (res2.error) return res2.error;
|
|
618
633
|
chunks.push(res2.lines.join("\n"));
|
|
@@ -648,14 +663,28 @@ async function toolListDirectory(provider, args) {
|
|
|
648
663
|
}
|
|
649
664
|
|
|
650
665
|
// tools/warp_grep/agent/tools/finish.ts
|
|
666
|
+
function isValidRange2(range) {
|
|
667
|
+
return Array.isArray(range) && range.length >= 2 && typeof range[0] === "number" && typeof range[1] === "number" && Number.isFinite(range[0]) && Number.isFinite(range[1]) && range[0] > 0 && range[1] >= range[0];
|
|
668
|
+
}
|
|
669
|
+
function extractValidRanges(lines) {
|
|
670
|
+
if (!Array.isArray(lines)) return null;
|
|
671
|
+
const valid = [];
|
|
672
|
+
for (const range of lines) {
|
|
673
|
+
if (isValidRange2(range)) {
|
|
674
|
+
valid.push([range[0], range[1]]);
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
return valid.length > 0 ? valid : null;
|
|
678
|
+
}
|
|
651
679
|
async function readFinishFiles(repoRoot, files, reader) {
|
|
652
680
|
const out = [];
|
|
653
681
|
for (const f of files) {
|
|
654
|
-
|
|
682
|
+
const validRanges = f.lines === "*" ? null : extractValidRanges(f.lines);
|
|
683
|
+
if (f.lines === "*" || !validRanges) {
|
|
655
684
|
const lines = await reader(f.path);
|
|
656
685
|
out.push({ path: f.path, ranges: "*", content: lines.join("\n") });
|
|
657
686
|
} else {
|
|
658
|
-
const ranges = mergeRanges(
|
|
687
|
+
const ranges = mergeRanges(validRanges);
|
|
659
688
|
const chunks = [];
|
|
660
689
|
for (const [s, e] of ranges) {
|
|
661
690
|
const lines = await reader(f.path, s, e);
|
|
@@ -1063,7 +1092,7 @@ async function runWarpGrep(config) {
|
|
|
1063
1092
|
}
|
|
1064
1093
|
const parts = ["Relevant context found:"];
|
|
1065
1094
|
for (const f of finishMeta.files) {
|
|
1066
|
-
const ranges = f.lines === "*" ? "*" : f.lines.map(([s, e]) => `${s}-${e}`).join(", ");
|
|
1095
|
+
const ranges = f.lines === "*" ? "*" : Array.isArray(f.lines) ? f.lines.map(([s, e]) => `${s}-${e}`).join(", ") : "*";
|
|
1067
1096
|
parts.push(`- ${f.path}: ${ranges}`);
|
|
1068
1097
|
}
|
|
1069
1098
|
const payload = parts.join("\n");
|
|
@@ -1423,11 +1452,19 @@ Details: ${res.stderr}` : ""}`
|
|
|
1423
1452
|
};
|
|
1424
1453
|
}
|
|
1425
1454
|
const total = lines.length;
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1455
|
+
const rawStart = params.start;
|
|
1456
|
+
const rawEnd = params.end;
|
|
1457
|
+
let s = 1;
|
|
1458
|
+
let e = total;
|
|
1459
|
+
const startValid = rawStart === void 0 || Number.isFinite(rawStart) && rawStart > 0;
|
|
1460
|
+
const endValid = rawEnd === void 0 || Number.isFinite(rawEnd) && rawEnd > 0;
|
|
1461
|
+
if (startValid && endValid) {
|
|
1462
|
+
s = rawStart ?? 1;
|
|
1463
|
+
e = Math.min(rawEnd ?? total, total);
|
|
1464
|
+
if (s > total && total > 0 || s > e) {
|
|
1465
|
+
s = 1;
|
|
1466
|
+
e = total;
|
|
1467
|
+
}
|
|
1431
1468
|
}
|
|
1432
1469
|
const out = [];
|
|
1433
1470
|
for (let i = s; i <= e; i += 1) {
|
|
@@ -1603,8 +1640,13 @@ var RemoteCommandsProvider = class {
|
|
|
1603
1640
|
* Read file and add line numbers
|
|
1604
1641
|
*/
|
|
1605
1642
|
async read(params) {
|
|
1606
|
-
const
|
|
1607
|
-
const
|
|
1643
|
+
const rawStart = params.start;
|
|
1644
|
+
const rawEnd = params.end;
|
|
1645
|
+
const startValid = rawStart === void 0 || Number.isFinite(rawStart) && rawStart > 0;
|
|
1646
|
+
const endValid = rawEnd === void 0 || Number.isFinite(rawEnd) && rawEnd > 0;
|
|
1647
|
+
const rangeValid = startValid && endValid && (rawStart === void 0 || rawEnd === void 0 || rawStart <= rawEnd);
|
|
1648
|
+
const start = rangeValid && rawStart !== void 0 ? rawStart : 1;
|
|
1649
|
+
const end = rangeValid && rawEnd !== void 0 ? rawEnd : 1e6;
|
|
1608
1650
|
try {
|
|
1609
1651
|
const stdout = await this.commands.read(params.path, start, end);
|
|
1610
1652
|
const contentLines = (stdout || "").split("\n");
|