@morphllm/morphsdk 0.2.68 → 0.2.70

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 (120) hide show
  1. package/dist/{chunk-6RFT7K7F.js → chunk-26QXQFLZ.js} +88 -23
  2. package/dist/chunk-26QXQFLZ.js.map +1 -0
  3. package/dist/{chunk-RTDKF6NS.js → chunk-5QIWYEHJ.js} +2 -2
  4. package/dist/{chunk-BYNVJ4ON.js → chunk-7CJPKJEE.js} +2 -2
  5. package/dist/{chunk-SXE54MIC.js → chunk-AB27WETH.js} +8 -8
  6. package/dist/chunk-B5A4XLSQ.js +10 -0
  7. package/dist/chunk-B5A4XLSQ.js.map +1 -0
  8. package/dist/{chunk-VDJGZIQ5.js → chunk-BGSHC2UK.js} +2 -2
  9. package/dist/{chunk-VLZEBK7S.js → chunk-E4434A4Y.js} +3 -3
  10. package/dist/{chunk-QEGH3CWQ.js → chunk-GZP6HY5W.js} +4 -20
  11. package/dist/{chunk-QEGH3CWQ.js.map → chunk-GZP6HY5W.js.map} +1 -1
  12. package/dist/{chunk-JPGX6WEV.js → chunk-I2GXV3BQ.js} +3 -16
  13. package/dist/{chunk-JPGX6WEV.js.map → chunk-I2GXV3BQ.js.map} +1 -1
  14. package/dist/{chunk-W76ICQKY.js → chunk-IUG2FHNN.js} +2 -2
  15. package/dist/{chunk-K3EHH3C4.js → chunk-PT3DGIUF.js} +3 -15
  16. package/dist/{chunk-K3EHH3C4.js.map → chunk-PT3DGIUF.js.map} +1 -1
  17. package/dist/chunk-PZ5AY32C.js +10 -0
  18. package/dist/{chunk-223ZMZP6.js → chunk-QIG7YPFW.js} +89 -30
  19. package/dist/chunk-QIG7YPFW.js.map +1 -0
  20. package/dist/{chunk-HBWJLKNM.js → chunk-QZNGKOCZ.js} +2 -2
  21. package/dist/{chunk-AAIUUX4Y.js → chunk-X4WPMVCM.js} +2 -2
  22. package/dist/client.cjs +174 -434
  23. package/dist/client.cjs.map +1 -1
  24. package/dist/client.js +11 -12
  25. package/dist/git/client.js +1 -1
  26. package/dist/git/config.js +1 -1
  27. package/dist/git/index.js +1 -1
  28. package/dist/index.cjs +179 -446
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.js +12 -14
  31. package/dist/modelrouter/core.js +1 -1
  32. package/dist/modelrouter/index.js +1 -1
  33. package/dist/tools/browser/anthropic.js +2 -2
  34. package/dist/tools/browser/core.js +1 -1
  35. package/dist/tools/browser/index.js +4 -4
  36. package/dist/tools/browser/live.js +1 -1
  37. package/dist/tools/browser/openai.js +2 -2
  38. package/dist/tools/browser/prompts.js +1 -1
  39. package/dist/tools/browser/vercel.js +2 -2
  40. package/dist/tools/codebase_search/anthropic.js +1 -1
  41. package/dist/tools/codebase_search/core.js +1 -1
  42. package/dist/tools/codebase_search/index.js +1 -1
  43. package/dist/tools/codebase_search/openai.js +1 -1
  44. package/dist/tools/codebase_search/prompts.js +1 -1
  45. package/dist/tools/codebase_search/vercel.js +1 -1
  46. package/dist/tools/fastapply/anthropic.js +2 -2
  47. package/dist/tools/fastapply/core.js +1 -1
  48. package/dist/tools/fastapply/index.js +4 -4
  49. package/dist/tools/fastapply/openai.js +2 -2
  50. package/dist/tools/fastapply/prompts.js +1 -1
  51. package/dist/tools/fastapply/vercel.js +2 -2
  52. package/dist/tools/index.js +4 -4
  53. package/dist/tools/utils/resilience.js +1 -1
  54. package/dist/tools/warp_grep/agent/config.js +1 -1
  55. package/dist/tools/warp_grep/agent/formatter.js +1 -1
  56. package/dist/tools/warp_grep/agent/parser.js +1 -1
  57. package/dist/tools/warp_grep/agent/prompt.js +1 -1
  58. package/dist/tools/warp_grep/agent/runner.js +1 -1
  59. package/dist/tools/warp_grep/anthropic.cjs +174 -434
  60. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  61. package/dist/tools/warp_grep/anthropic.d.ts +78 -3
  62. package/dist/tools/warp_grep/anthropic.js +5 -6
  63. package/dist/tools/warp_grep/client.cjs +174 -434
  64. package/dist/tools/warp_grep/client.cjs.map +1 -1
  65. package/dist/tools/warp_grep/client.js +4 -5
  66. package/dist/tools/warp_grep/gemini.cjs +176 -437
  67. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  68. package/dist/tools/warp_grep/gemini.d.ts +109 -3
  69. package/dist/tools/warp_grep/gemini.js +48 -12
  70. package/dist/tools/warp_grep/gemini.js.map +1 -1
  71. package/dist/tools/warp_grep/harness.cjs +88 -417
  72. package/dist/tools/warp_grep/harness.cjs.map +1 -1
  73. package/dist/tools/warp_grep/harness.js +2 -3
  74. package/dist/tools/warp_grep/harness.js.map +1 -1
  75. package/dist/tools/warp_grep/index.cjs +180 -621
  76. package/dist/tools/warp_grep/index.cjs.map +1 -1
  77. package/dist/tools/warp_grep/index.d.ts +89 -9
  78. package/dist/tools/warp_grep/index.js +7 -21
  79. package/dist/tools/warp_grep/openai.cjs +174 -434
  80. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  81. package/dist/tools/warp_grep/openai.d.ts +78 -3
  82. package/dist/tools/warp_grep/openai.js +5 -6
  83. package/dist/tools/warp_grep/providers/local.cjs +88 -417
  84. package/dist/tools/warp_grep/providers/local.cjs.map +1 -1
  85. package/dist/tools/warp_grep/providers/local.d.ts +0 -6
  86. package/dist/tools/warp_grep/providers/local.js +2 -3
  87. package/dist/tools/warp_grep/providers/remote.cjs +86 -408
  88. package/dist/tools/warp_grep/providers/remote.cjs.map +1 -1
  89. package/dist/tools/warp_grep/providers/remote.d.ts +0 -7
  90. package/dist/tools/warp_grep/providers/remote.js +2 -3
  91. package/dist/tools/warp_grep/utils/files.js +1 -1
  92. package/dist/tools/warp_grep/utils/paths.js +1 -1
  93. package/dist/tools/warp_grep/utils/ripgrep.js +1 -1
  94. package/dist/tools/warp_grep/vercel.cjs +174 -434
  95. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  96. package/dist/tools/warp_grep/vercel.d.ts +56 -3
  97. package/dist/tools/warp_grep/vercel.js +5 -6
  98. package/package.json +1 -1
  99. package/dist/anthropic-BC-AMEIN.d.ts +0 -89
  100. package/dist/chunk-223ZMZP6.js.map +0 -1
  101. package/dist/chunk-6RFT7K7F.js.map +0 -1
  102. package/dist/chunk-FURFQDXF.js +0 -75
  103. package/dist/chunk-FURFQDXF.js.map +0 -1
  104. package/dist/chunk-HKJ2B2AA.js +0 -15
  105. package/dist/chunk-ISWL67SF.js +0 -1
  106. package/dist/chunk-ISWL67SF.js.map +0 -1
  107. package/dist/chunk-S6KU22MU.js +0 -396
  108. package/dist/chunk-S6KU22MU.js.map +0 -1
  109. package/dist/gemini-BIFBiIjY.d.ts +0 -119
  110. package/dist/openai-Beb9escY.d.ts +0 -89
  111. package/dist/vercel-Bo84tpBe.d.ts +0 -66
  112. /package/dist/{chunk-RTDKF6NS.js.map → chunk-5QIWYEHJ.js.map} +0 -0
  113. /package/dist/{chunk-BYNVJ4ON.js.map → chunk-7CJPKJEE.js.map} +0 -0
  114. /package/dist/{chunk-SXE54MIC.js.map → chunk-AB27WETH.js.map} +0 -0
  115. /package/dist/{chunk-VDJGZIQ5.js.map → chunk-BGSHC2UK.js.map} +0 -0
  116. /package/dist/{chunk-VLZEBK7S.js.map → chunk-E4434A4Y.js.map} +0 -0
  117. /package/dist/{chunk-W76ICQKY.js.map → chunk-IUG2FHNN.js.map} +0 -0
  118. /package/dist/{chunk-HKJ2B2AA.js.map → chunk-PZ5AY32C.js.map} +0 -0
  119. /package/dist/{chunk-HBWJLKNM.js.map → chunk-QZNGKOCZ.js.map} +0 -0
  120. /package/dist/{chunk-AAIUUX4Y.js.map → chunk-X4WPMVCM.js.map} +0 -0
@@ -10,9 +10,6 @@ import {
10
10
  import {
11
11
  runRipgrep
12
12
  } from "./chunk-TPP2UGQP.js";
13
- import {
14
- require_ignore
15
- } from "./chunk-S6KU22MU.js";
16
13
  import {
17
14
  AGENT_CONFIG,
18
15
  DEFAULT_EXCLUDES
@@ -21,30 +18,95 @@ import {
21
18
  // tools/warp_grep/providers/local.ts
22
19
  import fs from "fs/promises";
23
20
  import path from "path";
24
- var ignore = require_ignore().default || require_ignore();
21
+ var SKIP_NAMES = /* @__PURE__ */ new Set([
22
+ // Version control
23
+ ".git",
24
+ ".svn",
25
+ ".hg",
26
+ ".bzr",
27
+ // Dependencies
28
+ "node_modules",
29
+ "bower_components",
30
+ ".pnpm",
31
+ ".yarn",
32
+ "vendor",
33
+ "Pods",
34
+ ".bundle",
35
+ // Python
36
+ "__pycache__",
37
+ ".pytest_cache",
38
+ ".mypy_cache",
39
+ ".ruff_cache",
40
+ ".venv",
41
+ "venv",
42
+ ".tox",
43
+ ".nox",
44
+ ".eggs",
45
+ // Build outputs
46
+ "dist",
47
+ "build",
48
+ "out",
49
+ "output",
50
+ "target",
51
+ "_build",
52
+ ".next",
53
+ ".nuxt",
54
+ ".output",
55
+ ".vercel",
56
+ ".netlify",
57
+ // Cache
58
+ ".cache",
59
+ ".parcel-cache",
60
+ ".turbo",
61
+ ".nx",
62
+ ".gradle",
63
+ // IDE
64
+ ".idea",
65
+ ".vscode",
66
+ ".vs",
67
+ // Coverage
68
+ "coverage",
69
+ ".coverage",
70
+ "htmlcov",
71
+ ".nyc_output",
72
+ // Temp
73
+ "tmp",
74
+ "temp",
75
+ ".tmp",
76
+ ".temp",
77
+ // Lock files
78
+ "package-lock.json",
79
+ "yarn.lock",
80
+ "pnpm-lock.yaml",
81
+ "bun.lockb",
82
+ "Cargo.lock",
83
+ "Gemfile.lock",
84
+ "poetry.lock"
85
+ ]);
86
+ var SKIP_EXTENSIONS = /* @__PURE__ */ new Set([
87
+ ".min.js",
88
+ ".min.css",
89
+ ".bundle.js",
90
+ ".wasm",
91
+ ".so",
92
+ ".dll",
93
+ ".pyc",
94
+ ".map",
95
+ ".js.map"
96
+ ]);
97
+ function shouldSkip(name) {
98
+ if (SKIP_NAMES.has(name)) return true;
99
+ if (name.startsWith(".")) return true;
100
+ for (const ext of SKIP_EXTENSIONS) {
101
+ if (name.endsWith(ext)) return true;
102
+ }
103
+ return false;
104
+ }
25
105
  var LocalRipgrepProvider = class {
26
106
  constructor(repoRoot, excludes = DEFAULT_EXCLUDES) {
27
107
  this.repoRoot = repoRoot;
28
108
  this.excludes = excludes;
29
109
  }
30
- ignoreFilter = null;
31
- /**
32
- * Build an ignore filter that combines DEFAULT_EXCLUDES and .gitignore patterns.
33
- * Cached after first call.
34
- */
35
- async getIgnoreFilter() {
36
- if (this.ignoreFilter) return this.ignoreFilter;
37
- const ig = ignore();
38
- ig.add(this.excludes);
39
- try {
40
- const gitignorePath = path.join(this.repoRoot, ".gitignore");
41
- const gitignoreContent = await fs.readFile(gitignorePath, "utf-8");
42
- ig.add(gitignoreContent);
43
- } catch {
44
- }
45
- this.ignoreFilter = ig;
46
- return ig;
47
- }
48
110
  async grep(params) {
49
111
  let abs;
50
112
  try {
@@ -172,11 +234,10 @@ Details: ${res.stderr}` : ""}`
172
234
  const maxResults = params.maxResults ?? AGENT_CONFIG.MAX_OUTPUT_LINES;
173
235
  const maxDepth = params.maxDepth ?? AGENT_CONFIG.MAX_LIST_DEPTH;
174
236
  const regex = params.pattern ? new RegExp(params.pattern) : null;
175
- const ig = await this.getIgnoreFilter();
237
+ const repoRoot = this.repoRoot;
176
238
  const results = [];
177
239
  let timedOut = false;
178
240
  const startTime = Date.now();
179
- const repoRoot = this.repoRoot;
180
241
  async function walk(dir, depth) {
181
242
  if (Date.now() - startTime > AGENT_CONFIG.LIST_TIMEOUT_MS) {
182
243
  timedOut = true;
@@ -186,15 +247,13 @@ Details: ${res.stderr}` : ""}`
186
247
  const entries = await fs.readdir(dir, { withFileTypes: true });
187
248
  for (const entry of entries) {
188
249
  if (timedOut || results.length >= maxResults) break;
250
+ if (shouldSkip(entry.name)) continue;
251
+ if (regex && !regex.test(entry.name)) continue;
189
252
  const full = path.join(dir, entry.name);
190
- const relToRepo = toRepoRelative(repoRoot, full).replace(/^[.][/\\]?/, "");
191
253
  const isDir = entry.isDirectory();
192
- if (ig.ignores(relToRepo) || isDir && ig.ignores(relToRepo + "/")) continue;
193
- if (regex && !regex.test(entry.name)) continue;
194
254
  results.push({
195
255
  name: entry.name,
196
- path: toRepoRelative(path.resolve(""), full),
197
- // relative display
256
+ path: toRepoRelative(repoRoot, full),
198
257
  type: isDir ? "dir" : "file",
199
258
  depth
200
259
  });
@@ -211,4 +270,4 @@ Details: ${res.stderr}` : ""}`
211
270
  export {
212
271
  LocalRipgrepProvider
213
272
  };
214
- //# sourceMappingURL=chunk-223ZMZP6.js.map
273
+ //# sourceMappingURL=chunk-QIG7YPFW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../tools/warp_grep/providers/local.ts"],"sourcesContent":["import fs from 'fs/promises';\nimport fssync from 'fs';\nimport path from 'path';\nimport { runRipgrep } from '../utils/ripgrep.js';\nimport { ensureWithinRepo, resolveUnderRepo, toRepoRelative, isSymlink, isTextualFile } from '../utils/paths.js';\nimport type { WarpGrepProvider, GrepResult, ReadResult, ListDirectoryEntry } from './types.js';\nimport { readAllLines } from '../utils/files.js';\nimport { DEFAULT_EXCLUDES, AGENT_CONFIG } from '../agent/config.js';\n\n/**\n * Directories/files to always skip (exact name match)\n */\nconst SKIP_NAMES = new Set([\n // Version control\n '.git', '.svn', '.hg', '.bzr',\n // Dependencies\n 'node_modules', 'bower_components', '.pnpm', '.yarn',\n 'vendor', 'Pods', '.bundle',\n // Python\n '__pycache__', '.pytest_cache', '.mypy_cache', '.ruff_cache',\n '.venv', 'venv', '.tox', '.nox', '.eggs',\n // Build outputs\n 'dist', 'build', 'out', 'output', 'target', '_build',\n '.next', '.nuxt', '.output', '.vercel', '.netlify',\n // Cache\n '.cache', '.parcel-cache', '.turbo', '.nx', '.gradle',\n // IDE\n '.idea', '.vscode', '.vs',\n // Coverage\n 'coverage', '.coverage', 'htmlcov', '.nyc_output',\n // Temp\n 'tmp', 'temp', '.tmp', '.temp',\n // Lock files\n 'package-lock.json', 'yarn.lock', 'pnpm-lock.yaml', 'bun.lockb',\n 'Cargo.lock', 'Gemfile.lock', 'poetry.lock',\n]);\n\n/**\n * File extensions to skip\n */\nconst SKIP_EXTENSIONS = new Set([\n '.min.js', '.min.css', '.bundle.js',\n '.wasm', '.so', '.dll', '.pyc',\n '.map', '.js.map',\n]);\n\n/**\n * Check if a filename should be skipped\n */\nfunction shouldSkip(name: string): boolean {\n // Skip exact name matches\n if (SKIP_NAMES.has(name)) return true;\n \n // Skip hidden files/directories (start with .)\n if (name.startsWith('.')) return true;\n \n // Skip files with certain extensions\n for (const ext of SKIP_EXTENSIONS) {\n if (name.endsWith(ext)) return true;\n }\n \n return false;\n}\n\nexport class LocalRipgrepProvider implements WarpGrepProvider {\n constructor(private readonly repoRoot: string, private readonly excludes: string[] = DEFAULT_EXCLUDES) {}\n\n async grep(params: { pattern: string; path: string; glob?: string }): Promise<GrepResult> {\n let abs: string;\n try {\n abs = resolveUnderRepo(this.repoRoot, params.path);\n } catch (err) {\n return {\n lines: [],\n error: `[PATH ERROR] ${err instanceof Error ? err.message : String(err)}`,\n };\n }\n const stat = await fs.stat(abs).catch(() => null);\n if (!stat) return { lines: [] };\n const targetArg = abs === path.resolve(this.repoRoot) ? '.' : toRepoRelative(this.repoRoot, abs);\n const args = [\n '--no-config',\n '--no-heading',\n '--with-filename',\n '--line-number',\n '--color=never',\n '--trim',\n '--max-columns=400',\n '-C', '1',\n ...(params.glob ? ['--glob', params.glob] : []),\n ...this.excludes.flatMap((e) => ['-g', `!${e}`]),\n params.pattern,\n targetArg || '.',\n ];\n const res = await runRipgrep(args, { cwd: this.repoRoot });\n \n // Gracefully handle ripgrep not being available\n if (res.exitCode === -1) {\n return {\n lines: [],\n error: `[RIPGREP NOT AVAILABLE] ripgrep (rg) is required but failed to execute. Please install it:\\n` +\n ` • macOS: brew install ripgrep\\n` +\n ` • Ubuntu/Debian: apt install ripgrep\\n` +\n ` • Windows: choco install ripgrep\\n` +\n ` • Or visit: https://github.com/BurntSushi/ripgrep#installation\\n` +\n `Exit code: ${res.exitCode}${res.stderr ? `\\nDetails: ${res.stderr}` : ''}`,\n };\n }\n \n // Handle other ripgrep errors gracefully\n if (res.exitCode !== 0 && res.exitCode !== 1) {\n return {\n lines: [],\n error: `[RIPGREP ERROR] grep failed with exit code ${res.exitCode}${res.stderr ? `: ${res.stderr}` : ''}`,\n };\n }\n \n const lines = (res.stdout || '')\n .trim()\n .split(/\\r?\\n/)\n .filter((l) => l.length > 0);\n if (lines.length > AGENT_CONFIG.MAX_OUTPUT_LINES) {\n return {\n lines: [],\n error: 'query not specific enough, tool tried to return too much context and failed',\n };\n }\n \n return { lines };\n }\n\n async read(params: { path: string; start?: number; end?: number }): Promise<ReadResult> {\n let abs: string;\n try {\n abs = resolveUnderRepo(this.repoRoot, params.path);\n } catch (err) {\n return {\n lines: [],\n error: `[PATH ERROR] ${err instanceof Error ? err.message : String(err)}`,\n };\n }\n const stat = await fs.stat(abs).catch(() => null);\n \n // Gracefully handle file not found / not a file\n if (!stat || !stat.isFile()) {\n return {\n lines: [],\n error: `[FILE NOT FOUND] You tried to read \"${params.path}\" but there is no file at this path. ` +\n `Double-check the path exists and is spelled correctly.`,\n };\n }\n \n // Gracefully handle symlinks\n if (isSymlink(abs)) {\n return {\n lines: [],\n error: `[SYMLINK] You tried to read \"${params.path}\" but this is a symlink. ` +\n `Try reading the actual file it points to instead.`,\n };\n }\n \n // Gracefully handle non-text or too-large files\n if (!isTextualFile(abs)) {\n return {\n lines: [],\n error: `[UNREADABLE FILE] You tried to read \"${params.path}\" but this file is either too large ` +\n `or not a text file, so it cannot be read. Try a different file.`,\n };\n }\n \n let lines: string[];\n try {\n lines = await readAllLines(abs);\n } catch (err) {\n return {\n lines: [],\n error: `[READ ERROR] Failed to read \"${params.path}\": ${err instanceof Error ? err.message : String(err)}`,\n };\n }\n const total = lines.length;\n let s = params.start ?? 1;\n let e = Math.min(params.end ?? total, total);\n if (s > total && total > 0) {\n // Model hallucinated range - fallback to full file\n s = 1;\n e = total;\n }\n const out: string[] = [];\n for (let i = s; i <= e; i += 1) {\n const content = lines[i - 1] ?? '';\n out.push(`${i}|${content}`);\n }\n if (out.length > AGENT_CONFIG.MAX_READ_LINES) {\n const truncated = out.slice(0, AGENT_CONFIG.MAX_READ_LINES);\n truncated.push(`... [truncated: showing ${AGENT_CONFIG.MAX_READ_LINES} of ${out.length} lines]`);\n return { lines: truncated };\n }\n \n return { lines: out };\n }\n\n async listDirectory(params: { path: string; pattern?: string | null; maxResults?: number; maxDepth?: number }): Promise<ListDirectoryEntry[]> {\n let abs: string;\n try {\n abs = resolveUnderRepo(this.repoRoot, params.path);\n } catch {\n // Path outside repo - return empty (graceful failure)\n return [];\n }\n const stat = await fs.stat(abs).catch(() => null);\n if (!stat || !stat.isDirectory()) {\n return [];\n }\n const maxResults = params.maxResults ?? AGENT_CONFIG.MAX_OUTPUT_LINES;\n const maxDepth = params.maxDepth ?? AGENT_CONFIG.MAX_LIST_DEPTH;\n const regex = params.pattern ? new RegExp(params.pattern) : null;\n const repoRoot = this.repoRoot;\n\n const results: ListDirectoryEntry[] = [];\n let timedOut = false;\n const startTime = Date.now();\n \n async function walk(dir: string, depth: number) {\n if (Date.now() - startTime > AGENT_CONFIG.LIST_TIMEOUT_MS) {\n timedOut = true;\n return;\n }\n if (depth > maxDepth || results.length >= maxResults) return;\n const entries = await fs.readdir(dir, { withFileTypes: true });\n for (const entry of entries) {\n if (timedOut || results.length >= maxResults) break;\n \n // Simple name-based filtering - skip junk dirs/files\n if (shouldSkip(entry.name)) continue;\n \n // Apply user-provided pattern filter\n if (regex && !regex.test(entry.name)) continue;\n \n const full = path.join(dir, entry.name);\n const isDir = entry.isDirectory();\n \n results.push({\n name: entry.name,\n path: toRepoRelative(repoRoot, full),\n type: isDir ? 'dir' : 'file',\n depth,\n });\n if (isDir) {\n await walk(full, depth + 1);\n }\n }\n }\n await walk(abs, 0);\n return results;\n }\n}\n\n\n"],"mappings":"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","names":[]}
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-63WE2C5R.js";
8
8
  import {
9
9
  __export
10
- } from "./chunk-HKJ2B2AA.js";
10
+ } from "./chunk-PZ5AY32C.js";
11
11
 
12
12
  // tools/fastapply/vercel.ts
13
13
  var vercel_exports = {};
@@ -86,4 +86,4 @@ export {
86
86
  vercel_default,
87
87
  vercel_exports
88
88
  };
89
- //# sourceMappingURL=chunk-HBWJLKNM.js.map
89
+ //# sourceMappingURL=chunk-QZNGKOCZ.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-MFZP347Z.js";
8
8
  import {
9
9
  __export
10
- } from "./chunk-HKJ2B2AA.js";
10
+ } from "./chunk-PZ5AY32C.js";
11
11
 
12
12
  // tools/browser/anthropic.ts
13
13
  var anthropic_exports = {};
@@ -77,4 +77,4 @@ export {
77
77
  createBrowserTool,
78
78
  anthropic_exports
79
79
  };
80
- //# sourceMappingURL=chunk-AAIUUX4Y.js.map
80
+ //# sourceMappingURL=chunk-X4WPMVCM.js.map