@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.
Files changed (64) hide show
  1. package/dist/{chunk-DCIUCDWJ.js → chunk-467MCW5R.js} +38 -10
  2. package/dist/chunk-467MCW5R.js.map +1 -0
  3. package/dist/{chunk-HBIDSKIQ.js → chunk-4NI25AKV.js} +14 -6
  4. package/dist/chunk-4NI25AKV.js.map +1 -0
  5. package/dist/{chunk-XREWLWLA.js → chunk-4VMIPD4G.js} +4 -4
  6. package/dist/{chunk-RRWN62VU.js → chunk-B3UC7UVA.js} +4 -4
  7. package/dist/{chunk-RRWN62VU.js.map → chunk-B3UC7UVA.js.map} +1 -1
  8. package/dist/{chunk-Q5AHGIQO.js → chunk-FMLHRJDF.js} +3 -1
  9. package/dist/{chunk-Q5AHGIQO.js.map → chunk-FMLHRJDF.js.map} +1 -1
  10. package/dist/{chunk-G2EJHZSA.js → chunk-NTTQJM6O.js} +3 -3
  11. package/dist/{chunk-P2LHXSMG.js → chunk-OFMDENAQ.js} +2 -2
  12. package/dist/{chunk-26QXQFLZ.js → chunk-PHJQ4N3T.js} +8 -3
  13. package/dist/chunk-PHJQ4N3T.js.map +1 -0
  14. package/dist/{chunk-KILYNOE4.js → chunk-X6A64F2F.js} +5 -5
  15. package/dist/{chunk-RK2MR3N2.js → chunk-Z2HDXUH7.js} +3 -3
  16. package/dist/client.cjs +56 -12
  17. package/dist/client.cjs.map +1 -1
  18. package/dist/client.js +10 -10
  19. package/dist/index.cjs +56 -12
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.js +10 -10
  22. package/dist/tools/warp_grep/agent/prompt.cjs +2 -0
  23. package/dist/tools/warp_grep/agent/prompt.cjs.map +1 -1
  24. package/dist/tools/warp_grep/agent/prompt.d.ts +1 -1
  25. package/dist/tools/warp_grep/agent/prompt.js +1 -1
  26. package/dist/tools/warp_grep/agent/runner.cjs +36 -5
  27. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  28. package/dist/tools/warp_grep/agent/runner.js +3 -3
  29. package/dist/tools/warp_grep/anthropic.cjs +56 -12
  30. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  31. package/dist/tools/warp_grep/anthropic.js +7 -7
  32. package/dist/tools/warp_grep/client.cjs +56 -12
  33. package/dist/tools/warp_grep/client.cjs.map +1 -1
  34. package/dist/tools/warp_grep/client.js +6 -6
  35. package/dist/tools/warp_grep/gemini.cjs +56 -12
  36. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  37. package/dist/tools/warp_grep/gemini.js +6 -6
  38. package/dist/tools/warp_grep/harness.cjs +52 -14
  39. package/dist/tools/warp_grep/harness.cjs.map +1 -1
  40. package/dist/tools/warp_grep/harness.js +3 -3
  41. package/dist/tools/warp_grep/index.cjs +60 -17
  42. package/dist/tools/warp_grep/index.cjs.map +1 -1
  43. package/dist/tools/warp_grep/index.js +6 -6
  44. package/dist/tools/warp_grep/openai.cjs +56 -12
  45. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  46. package/dist/tools/warp_grep/openai.js +7 -7
  47. package/dist/tools/warp_grep/providers/local.cjs +13 -5
  48. package/dist/tools/warp_grep/providers/local.cjs.map +1 -1
  49. package/dist/tools/warp_grep/providers/local.js +1 -1
  50. package/dist/tools/warp_grep/providers/remote.cjs +7 -2
  51. package/dist/tools/warp_grep/providers/remote.cjs.map +1 -1
  52. package/dist/tools/warp_grep/providers/remote.js +1 -1
  53. package/dist/tools/warp_grep/vercel.cjs +56 -12
  54. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  55. package/dist/tools/warp_grep/vercel.js +7 -7
  56. package/package.json +1 -1
  57. package/dist/chunk-26QXQFLZ.js.map +0 -1
  58. package/dist/chunk-DCIUCDWJ.js.map +0 -1
  59. package/dist/chunk-HBIDSKIQ.js.map +0 -1
  60. /package/dist/{chunk-XREWLWLA.js.map → chunk-4VMIPD4G.js.map} +0 -0
  61. /package/dist/{chunk-G2EJHZSA.js.map → chunk-NTTQJM6O.js.map} +0 -0
  62. /package/dist/{chunk-P2LHXSMG.js.map → chunk-OFMDENAQ.js.map} +0 -0
  63. /package/dist/{chunk-KILYNOE4.js.map → chunk-X6A64F2F.js.map} +0 -0
  64. /package/dist/{chunk-RK2MR3N2.js.map → chunk-Z2HDXUH7.js.map} +0 -0
@@ -10,29 +10,29 @@ import {
10
10
  executeToolCall,
11
11
  executeWarpGrep,
12
12
  formatResult
13
- } from "../../chunk-XREWLWLA.js";
13
+ } from "../../chunk-4VMIPD4G.js";
14
14
  import {
15
15
  runWarpGrep
16
- } from "../../chunk-RRWN62VU.js";
16
+ } from "../../chunk-B3UC7UVA.js";
17
17
  import {
18
18
  RemoteCommandsProvider
19
- } from "../../chunk-26QXQFLZ.js";
19
+ } from "../../chunk-PHJQ4N3T.js";
20
20
  import {
21
21
  normalizeFinishFiles,
22
22
  readFinishFiles,
23
23
  toolGrep,
24
24
  toolListDirectory,
25
25
  toolRead
26
- } from "../../chunk-DCIUCDWJ.js";
26
+ } from "../../chunk-467MCW5R.js";
27
27
  import "../../chunk-APP75CBN.js";
28
28
  import "../../chunk-5QRN3JNB.js";
29
29
  import {
30
30
  SYSTEM_PROMPT,
31
31
  getSystemPrompt
32
- } from "../../chunk-Q5AHGIQO.js";
32
+ } from "../../chunk-FMLHRJDF.js";
33
33
  import {
34
34
  LocalRipgrepProvider
35
- } from "../../chunk-HBIDSKIQ.js";
35
+ } from "../../chunk-4NI25AKV.js";
36
36
  import "../../chunk-G2RSY56Q.js";
37
37
  import {
38
38
  fixPathRepetition
@@ -319,6 +319,8 @@ I think I have a rough idea, but this is my last turn so I must call the finish
319
319
  No commentary outside \`<think>\`. No explanations after tool calls.
320
320
  </output_format>
321
321
 
322
+ use as all 8 tool calls to be optimal
323
+
322
324
  <finishing_requirements>
323
325
  When calling \`finish\`:
324
326
  - Include the import section (typically lines 1-20) of each file
@@ -606,10 +608,25 @@ async function toolGrep(provider, args) {
606
608
  }
607
609
 
608
610
  // tools/warp_grep/agent/tools/read.ts
611
+ function isValidRange(start, end) {
612
+ return typeof start === "number" && typeof end === "number" && Number.isFinite(start) && Number.isFinite(end) && start > 0 && end >= start;
613
+ }
609
614
  async function toolRead(provider, args) {
610
- if (args.lines && args.lines.length > 0) {
615
+ if (args.lines && Array.isArray(args.lines) && args.lines.length > 0) {
616
+ const validRanges = [];
617
+ for (const range of args.lines) {
618
+ if (Array.isArray(range) && range.length >= 2 && isValidRange(range[0], range[1])) {
619
+ validRanges.push([range[0], range[1]]);
620
+ }
621
+ }
622
+ if (validRanges.length === 0) {
623
+ const res2 = await provider.read({ path: args.path });
624
+ if (res2.error) return res2.error;
625
+ if (!res2.lines.length) return "(empty file)";
626
+ return res2.lines.join("\n");
627
+ }
611
628
  const chunks = [];
612
- for (const [start, end] of args.lines) {
629
+ for (const [start, end] of validRanges) {
613
630
  const res2 = await provider.read({ path: args.path, start, end });
614
631
  if (res2.error) return res2.error;
615
632
  chunks.push(res2.lines.join("\n"));
@@ -645,14 +662,28 @@ async function toolListDirectory(provider, args) {
645
662
  }
646
663
 
647
664
  // tools/warp_grep/agent/tools/finish.ts
665
+ function isValidRange2(range) {
666
+ 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];
667
+ }
668
+ function extractValidRanges(lines) {
669
+ if (!Array.isArray(lines)) return null;
670
+ const valid = [];
671
+ for (const range of lines) {
672
+ if (isValidRange2(range)) {
673
+ valid.push([range[0], range[1]]);
674
+ }
675
+ }
676
+ return valid.length > 0 ? valid : null;
677
+ }
648
678
  async function readFinishFiles(repoRoot, files, reader) {
649
679
  const out = [];
650
680
  for (const f of files) {
651
- if (f.lines === "*") {
681
+ const validRanges = f.lines === "*" ? null : extractValidRanges(f.lines);
682
+ if (f.lines === "*" || !validRanges) {
652
683
  const lines = await reader(f.path);
653
684
  out.push({ path: f.path, ranges: "*", content: lines.join("\n") });
654
685
  } else {
655
- const ranges = mergeRanges(f.lines);
686
+ const ranges = mergeRanges(validRanges);
656
687
  const chunks = [];
657
688
  for (const [s, e] of ranges) {
658
689
  const lines = await reader(f.path, s, e);
@@ -1060,7 +1091,7 @@ async function runWarpGrep(config) {
1060
1091
  }
1061
1092
  const parts = ["Relevant context found:"];
1062
1093
  for (const f of finishMeta.files) {
1063
- const ranges = f.lines === "*" ? "*" : f.lines.map(([s, e]) => `${s}-${e}`).join(", ");
1094
+ const ranges = f.lines === "*" ? "*" : Array.isArray(f.lines) ? f.lines.map(([s, e]) => `${s}-${e}`).join(", ") : "*";
1064
1095
  parts.push(`- ${f.path}: ${ranges}`);
1065
1096
  }
1066
1097
  const payload = parts.join("\n");
@@ -1420,11 +1451,19 @@ Details: ${res.stderr}` : ""}`
1420
1451
  };
1421
1452
  }
1422
1453
  const total = lines.length;
1423
- let s = params.start ?? 1;
1424
- let e = Math.min(params.end ?? total, total);
1425
- if (s > total && total > 0) {
1426
- s = 1;
1427
- e = total;
1454
+ const rawStart = params.start;
1455
+ const rawEnd = params.end;
1456
+ let s = 1;
1457
+ let e = total;
1458
+ const startValid = rawStart === void 0 || Number.isFinite(rawStart) && rawStart > 0;
1459
+ const endValid = rawEnd === void 0 || Number.isFinite(rawEnd) && rawEnd > 0;
1460
+ if (startValid && endValid) {
1461
+ s = rawStart ?? 1;
1462
+ e = Math.min(rawEnd ?? total, total);
1463
+ if (s > total && total > 0 || s > e) {
1464
+ s = 1;
1465
+ e = total;
1466
+ }
1428
1467
  }
1429
1468
  const out = [];
1430
1469
  for (let i = s; i <= e; i += 1) {
@@ -1600,8 +1639,13 @@ var RemoteCommandsProvider = class {
1600
1639
  * Read file and add line numbers
1601
1640
  */
1602
1641
  async read(params) {
1603
- const start = params.start ?? 1;
1604
- const end = params.end ?? 1e6;
1642
+ const rawStart = params.start;
1643
+ const rawEnd = params.end;
1644
+ const startValid = rawStart === void 0 || Number.isFinite(rawStart) && rawStart > 0;
1645
+ const endValid = rawEnd === void 0 || Number.isFinite(rawEnd) && rawEnd > 0;
1646
+ const rangeValid = startValid && endValid && (rawStart === void 0 || rawEnd === void 0 || rawStart <= rawEnd);
1647
+ const start = rangeValid && rawStart !== void 0 ? rawStart : 1;
1648
+ const end = rangeValid && rawEnd !== void 0 ? rawEnd : 1e6;
1605
1649
  try {
1606
1650
  const stdout = await this.commands.read(params.path, start, end);
1607
1651
  const contentLines = (stdout || "").split("\n");