@morphllm/morphsdk 0.2.76 → 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-XREWLWLA.js → chunk-4VMIPD4G.js} +4 -4
- package/dist/{chunk-RRWN62VU.js → chunk-B3UC7UVA.js} +4 -4
- package/dist/{chunk-RRWN62VU.js.map → chunk-B3UC7UVA.js.map} +1 -1
- package/dist/{chunk-Q5AHGIQO.js → chunk-FMLHRJDF.js} +3 -1
- package/dist/{chunk-Q5AHGIQO.js.map → chunk-FMLHRJDF.js.map} +1 -1
- package/dist/{chunk-G2EJHZSA.js → chunk-NTTQJM6O.js} +3 -3
- package/dist/{chunk-P2LHXSMG.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-KILYNOE4.js → chunk-X6A64F2F.js} +5 -5
- package/dist/{chunk-RK2MR3N2.js → chunk-Z2HDXUH7.js} +3 -3
- package/dist/client.cjs +56 -12
- package/dist/client.cjs.map +1 -1
- package/dist/client.js +10 -10
- package/dist/index.cjs +56 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +10 -10
- package/dist/tools/warp_grep/agent/prompt.cjs +2 -0
- package/dist/tools/warp_grep/agent/prompt.cjs.map +1 -1
- package/dist/tools/warp_grep/agent/prompt.d.ts +1 -1
- package/dist/tools/warp_grep/agent/prompt.js +1 -1
- package/dist/tools/warp_grep/agent/runner.cjs +36 -5
- package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
- package/dist/tools/warp_grep/agent/runner.js +3 -3
- package/dist/tools/warp_grep/anthropic.cjs +56 -12
- package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
- package/dist/tools/warp_grep/anthropic.js +7 -7
- package/dist/tools/warp_grep/client.cjs +56 -12
- package/dist/tools/warp_grep/client.cjs.map +1 -1
- package/dist/tools/warp_grep/client.js +6 -6
- package/dist/tools/warp_grep/gemini.cjs +56 -12
- package/dist/tools/warp_grep/gemini.cjs.map +1 -1
- package/dist/tools/warp_grep/gemini.js +6 -6
- package/dist/tools/warp_grep/harness.cjs +52 -14
- package/dist/tools/warp_grep/harness.cjs.map +1 -1
- package/dist/tools/warp_grep/harness.js +3 -3
- package/dist/tools/warp_grep/index.cjs +60 -17
- package/dist/tools/warp_grep/index.cjs.map +1 -1
- package/dist/tools/warp_grep/index.js +6 -6
- package/dist/tools/warp_grep/openai.cjs +56 -12
- package/dist/tools/warp_grep/openai.cjs.map +1 -1
- package/dist/tools/warp_grep/openai.js +7 -7
- 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 +56 -12
- package/dist/tools/warp_grep/vercel.cjs.map +1 -1
- package/dist/tools/warp_grep/vercel.js +7 -7
- 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-XREWLWLA.js.map → chunk-4VMIPD4G.js.map} +0 -0
- /package/dist/{chunk-G2EJHZSA.js.map → chunk-NTTQJM6O.js.map} +0 -0
- /package/dist/{chunk-P2LHXSMG.js.map → chunk-OFMDENAQ.js.map} +0 -0
- /package/dist/{chunk-KILYNOE4.js.map → chunk-X6A64F2F.js.map} +0 -0
- /package/dist/{chunk-RK2MR3N2.js.map → chunk-Z2HDXUH7.js.map} +0 -0
|
@@ -332,6 +332,8 @@ I think I have a rough idea, but this is my last turn so I must call the finish
|
|
|
332
332
|
No commentary outside \`<think>\`. No explanations after tool calls.
|
|
333
333
|
</output_format>
|
|
334
334
|
|
|
335
|
+
use as all 8 tool calls to be optimal
|
|
336
|
+
|
|
335
337
|
<finishing_requirements>
|
|
336
338
|
When calling \`finish\`:
|
|
337
339
|
- Include the import section (typically lines 1-20) of each file
|
|
@@ -619,10 +621,25 @@ async function toolGrep(provider, args) {
|
|
|
619
621
|
}
|
|
620
622
|
|
|
621
623
|
// tools/warp_grep/agent/tools/read.ts
|
|
624
|
+
function isValidRange(start, end) {
|
|
625
|
+
return typeof start === "number" && typeof end === "number" && Number.isFinite(start) && Number.isFinite(end) && start > 0 && end >= start;
|
|
626
|
+
}
|
|
622
627
|
async function toolRead(provider, args) {
|
|
623
|
-
if (args.lines && args.lines.length > 0) {
|
|
628
|
+
if (args.lines && Array.isArray(args.lines) && args.lines.length > 0) {
|
|
629
|
+
const validRanges = [];
|
|
630
|
+
for (const range of args.lines) {
|
|
631
|
+
if (Array.isArray(range) && range.length >= 2 && isValidRange(range[0], range[1])) {
|
|
632
|
+
validRanges.push([range[0], range[1]]);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
if (validRanges.length === 0) {
|
|
636
|
+
const res2 = await provider.read({ path: args.path });
|
|
637
|
+
if (res2.error) return res2.error;
|
|
638
|
+
if (!res2.lines.length) return "(empty file)";
|
|
639
|
+
return res2.lines.join("\n");
|
|
640
|
+
}
|
|
624
641
|
const chunks = [];
|
|
625
|
-
for (const [start, end] of
|
|
642
|
+
for (const [start, end] of validRanges) {
|
|
626
643
|
const res2 = await provider.read({ path: args.path, start, end });
|
|
627
644
|
if (res2.error) return res2.error;
|
|
628
645
|
chunks.push(res2.lines.join("\n"));
|
|
@@ -658,23 +675,36 @@ async function toolListDirectory(provider, args) {
|
|
|
658
675
|
}
|
|
659
676
|
|
|
660
677
|
// tools/warp_grep/agent/tools/finish.ts
|
|
678
|
+
function isValidRange2(range) {
|
|
679
|
+
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];
|
|
680
|
+
}
|
|
681
|
+
function extractValidRanges(lines) {
|
|
682
|
+
if (!Array.isArray(lines)) return null;
|
|
683
|
+
const valid = [];
|
|
684
|
+
for (const range of lines) {
|
|
685
|
+
if (isValidRange2(range)) {
|
|
686
|
+
valid.push([range[0], range[1]]);
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
return valid.length > 0 ? valid : null;
|
|
690
|
+
}
|
|
661
691
|
function normalizeFinishFiles(files) {
|
|
662
692
|
return files.map((f) => {
|
|
663
|
-
if (f.lines === "*") {
|
|
664
|
-
|
|
665
|
-
}
|
|
666
|
-
|
|
667
|
-
return { path: f.path, lines: merged };
|
|
693
|
+
if (f.lines === "*") return { path: f.path, lines: "*" };
|
|
694
|
+
const validRanges = extractValidRanges(f.lines);
|
|
695
|
+
if (!validRanges) return { path: f.path, lines: "*" };
|
|
696
|
+
return { path: f.path, lines: mergeRanges(validRanges) };
|
|
668
697
|
});
|
|
669
698
|
}
|
|
670
699
|
async function readFinishFiles(repoRoot, files, reader) {
|
|
671
700
|
const out = [];
|
|
672
701
|
for (const f of files) {
|
|
673
|
-
|
|
702
|
+
const validRanges = f.lines === "*" ? null : extractValidRanges(f.lines);
|
|
703
|
+
if (f.lines === "*" || !validRanges) {
|
|
674
704
|
const lines = await reader(f.path);
|
|
675
705
|
out.push({ path: f.path, ranges: "*", content: lines.join("\n") });
|
|
676
706
|
} else {
|
|
677
|
-
const ranges = mergeRanges(
|
|
707
|
+
const ranges = mergeRanges(validRanges);
|
|
678
708
|
const chunks = [];
|
|
679
709
|
for (const [s, e] of ranges) {
|
|
680
710
|
const lines = await reader(f.path, s, e);
|
|
@@ -1082,7 +1112,7 @@ async function runWarpGrep(config) {
|
|
|
1082
1112
|
}
|
|
1083
1113
|
const parts = ["Relevant context found:"];
|
|
1084
1114
|
for (const f of finishMeta.files) {
|
|
1085
|
-
const ranges = f.lines === "*" ? "*" : f.lines.map(([s, e]) => `${s}-${e}`).join(", ");
|
|
1115
|
+
const ranges = f.lines === "*" ? "*" : Array.isArray(f.lines) ? f.lines.map(([s, e]) => `${s}-${e}`).join(", ") : "*";
|
|
1086
1116
|
parts.push(`- ${f.path}: ${ranges}`);
|
|
1087
1117
|
}
|
|
1088
1118
|
const payload = parts.join("\n");
|
|
@@ -1442,11 +1472,19 @@ Details: ${res.stderr}` : ""}`
|
|
|
1442
1472
|
};
|
|
1443
1473
|
}
|
|
1444
1474
|
const total = lines.length;
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1475
|
+
const rawStart = params.start;
|
|
1476
|
+
const rawEnd = params.end;
|
|
1477
|
+
let s = 1;
|
|
1478
|
+
let e = total;
|
|
1479
|
+
const startValid = rawStart === void 0 || Number.isFinite(rawStart) && rawStart > 0;
|
|
1480
|
+
const endValid = rawEnd === void 0 || Number.isFinite(rawEnd) && rawEnd > 0;
|
|
1481
|
+
if (startValid && endValid) {
|
|
1482
|
+
s = rawStart ?? 1;
|
|
1483
|
+
e = Math.min(rawEnd ?? total, total);
|
|
1484
|
+
if (s > total && total > 0 || s > e) {
|
|
1485
|
+
s = 1;
|
|
1486
|
+
e = total;
|
|
1487
|
+
}
|
|
1450
1488
|
}
|
|
1451
1489
|
const out = [];
|
|
1452
1490
|
for (let i = s; i <= e; i += 1) {
|
|
@@ -1622,8 +1660,13 @@ var RemoteCommandsProvider = class {
|
|
|
1622
1660
|
* Read file and add line numbers
|
|
1623
1661
|
*/
|
|
1624
1662
|
async read(params) {
|
|
1625
|
-
const
|
|
1626
|
-
const
|
|
1663
|
+
const rawStart = params.start;
|
|
1664
|
+
const rawEnd = params.end;
|
|
1665
|
+
const startValid = rawStart === void 0 || Number.isFinite(rawStart) && rawStart > 0;
|
|
1666
|
+
const endValid = rawEnd === void 0 || Number.isFinite(rawEnd) && rawEnd > 0;
|
|
1667
|
+
const rangeValid = startValid && endValid && (rawStart === void 0 || rawEnd === void 0 || rawStart <= rawEnd);
|
|
1668
|
+
const start = rangeValid && rawStart !== void 0 ? rawStart : 1;
|
|
1669
|
+
const end = rangeValid && rawEnd !== void 0 ? rawEnd : 1e6;
|
|
1627
1670
|
try {
|
|
1628
1671
|
const stdout = await this.commands.read(params.path, start, end);
|
|
1629
1672
|
const contentLines = (stdout || "").split("\n");
|