[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-letta-morph-warpgrep":3,"mdc--oojykg-key":31,"related-org-letta-morph-warpgrep":5301,"related-repo-letta-morph-warpgrep":5463},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"morph-warpgrep","search and edit code with WarpGrep","Integration guide for Morph's WarpGrep (fast agentic code search) and Fast Apply (10,500 tok\u002Fs code editing). Use when building coding agents that need fast, accurate code search or need to apply AI-generated edits to code efficiently. Particularly useful for large codebases, deep logic queries, bug tracing, and code path analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"letta","Letta","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fletta.png","letta-ai",[13,17],{"name":14,"slug":15,"type":16},"Search","search","tag",{"name":18,"slug":19,"type":16},"Code Analysis","code-analysis",127,"https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fskills","2026-07-13T06:25:05.088771",null,20,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"A shared repository for skills. Intended to be used with Letta Code, Claude Code, Codex CLI, and other agents that support skills.","https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fskills\u002Ftree\u002FHEAD\u002Ftools\u002Fmorph-warpgrep","---\nname: morph-warpgrep\ndescription: Integration guide for Morph's WarpGrep (fast agentic code search) and Fast Apply (10,500 tok\u002Fs code editing). Use when building coding agents that need fast, accurate code search or need to apply AI-generated edits to code efficiently. Particularly useful for large codebases, deep logic queries, bug tracing, and code path analysis.\n---\n\n# Morph WarpGrep & Fast Apply\n\nMorph provides two tools that significantly improve coding agent performance:\n\n- **WarpGrep**: Agentic code search that's 5x faster than regular search, uses parallel tool calls, achieves 0.73 F1 in ~4 steps\n- **Fast Apply**: Merges AI edits into code at 10,500 tok\u002Fs with 98% accuracy (2x faster than search-replace)\n\n## Prerequisites\n\n1. Get a Morph API key from https:\u002F\u002Fwww.morphllm.com\u002Fdashboard\n2. Set environment variable:\n\n```bash\nexport MORPH_API_KEY=\"your-api-key\"\n```\n\n3. Install the Morph SDK:\n\n```bash\nbun add @morphllm\u002Fmorphsdk\n# or\nnpm install @morphllm\u002Fmorphsdk\n```\n\n4. Ensure `ripgrep` is installed (required for local search):\n\n```bash\n# macOS\nbrew install ripgrep\n\n# Ubuntu\u002FDebian  \nsudo apt install ripgrep\n\n# Verify installation\nrg --version\n```\n\n## Quick Test\n\nAfter setup, run the included test script on any local repository:\n\n```bash\n# Clone a test repo (or use any existing codebase)\ngit clone https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fletta-code.git test-repo\n\n# Install SDK\ncd test-repo\nbun add @morphllm\u002Fmorphsdk\n\n# Run test script\nexport MORPH_API_KEY=\"your-key\"\nbun ..\u002Fscripts\u002Ftest-warpgrep.ts .\n```\n\nExpected output:\n```\n======================================================================\nMORPH WARPGREP TEST\n======================================================================\nRepo: .\nSDK: @morphllm\u002Fmorphsdk\n======================================================================\n\n| Query                              | Result | Time   | Files |\n|------------------------------------|--------|--------|-------|\n| Find the main entry point          | ✅     | 5.2s   | 2     |\n| Find authentication logic          | ✅     | 4.1s   | 4     |\n| Find where configuration is handled | ✅     | 3.8s   | 3     |\n| Find error handling patterns       | ✅     | 4.5s   | 5     |\n\n======================================================================\nResults: 4 passed, 0 failed\n======================================================================\n```\n\n---\n\n## When to Use\n\n### Use WarpGrep When:\n- Searching large codebases (1000+ files)\n- Deep logic queries: bug tracing, code paths, control flow analysis\n- Need to find relevant context without polluting the context window\n- Regular grep returns too many irrelevant results\n\n### Use Fast Apply When:\n- Applying AI-generated code edits to existing files\n- Need reliable edit merging (98% accuracy vs ~70% for search-replace)\n- Working with large files where diff formats fail\n\n### Don't Use When:\n- Simple exact-match searches (regular `grep`\u002F`rg` is free and fast enough)\n- Surface-level queries where semantic search suffices\n- Cost is a major concern (Morph API has usage costs)\n\n---\n\n## Quick Start: WarpGrep\n\n### Basic Usage\n\n```typescript\nimport { MorphClient } from '@morphllm\u002Fmorphsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\n\nconst result = await morph.warpGrep.execute({\n  query: 'Find authentication middleware',\n  repoRoot: '.'\n});\n\nif (result.success) {\n  for (const ctx of result.contexts) {\n    console.log(`File: ${ctx.file}`);\n    console.log(ctx.content);\n  }\n} else {\n  console.error('Search failed');\n}\n```\n\n### Response Format\n\n```typescript\ninterface WarpGrepResult {\n  success: boolean;\n  contexts: Array\u003C{\n    file: string;    \u002F\u002F File path relative to repo root\n    content: string; \u002F\u002F File content with relevant code\n  }>;\n  summary?: string;  \u002F\u002F Human-readable summary\n}\n```\n\n### Using as an Agent Tool\n\n```typescript\nimport { MorphClient } from '@morphllm\u002Fmorphsdk';\nimport Anthropic from '@anthropic-ai\u002Fsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\nconst anthropic = new Anthropic();\n\n\u002F\u002F Define WarpGrep as a tool\nconst tools = [{\n  name: 'warpgrep_search',\n  description: 'Search codebase for relevant code. Use for finding implementations, tracing bugs, or understanding code flow.',\n  input_schema: {\n    type: 'object',\n    properties: {\n      query: { type: 'string', description: 'What to search for' }\n    },\n    required: ['query']\n  }\n}];\n\n\u002F\u002F Handle tool calls\nasync function handleToolCall(name: string, input: { query: string }) {\n  if (name === 'warpgrep_search') {\n    const result = await morph.warpGrep.execute({\n      query: input.query,\n      repoRoot: process.cwd()\n    });\n    \n    if (result.success) {\n      return result.contexts.map(c => `## ${c.file}\\n${c.content}`).join('\\n\\n');\n    }\n    return 'No results found';\n  }\n}\n```\n\n---\n\n## Quick Start: Fast Apply\n\nFast Apply merges AI-generated edits into existing code:\n\n```typescript\nimport { MorphClient } from '@morphllm\u002Fmorphsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\n\nconst result = await morph.fastApply.apply({\n  originalCode: `function divide(a, b) {\n  return a \u002F b;\n}`,\n  editSnippet: `function divide(a, b) {\n  if (b === 0) throw new Error(\"Division by zero\");\n  return a \u002F b;\n}`\n});\n\nconsole.log(result.mergedCode);\n```\n\n### Direct API (Alternative)\n\n```typescript\nconst response = await fetch('https:\u002F\u002Fapi.morphllm.com\u002Fv1\u002Fchat\u002Fcompletions', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application\u002Fjson',\n    'Authorization': `Bearer ${process.env.MORPH_API_KEY}`\n  },\n  body: JSON.stringify({\n    model: 'morph-v3-fast',  \u002F\u002F or 'morph-v3-large' for complex edits\n    messages: [{\n      role: 'user',\n      content: `\u003Cinstruction>Add error handling\u003C\u002Finstruction>\n\u003Ccode>function divide(a, b) { return a \u002F b; }\u003C\u002Fcode>\n\u003Cupdate>function divide(a, b) {\n  if (b === 0) throw new Error(\"Division by zero\");\n  return a \u002F b;\n}\u003C\u002Fupdate>`\n    }],\n    temperature: 0\n  })\n});\n\nconst data = await response.json();\nconst mergedCode = data.choices[0].message.content;\n```\n\n---\n\n## Tested Results\n\nTested on the [letta-code](https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fletta-code) repository (~300 TypeScript files) using SDK v0.2.103:\n\n| Query | Result | Time | Files Found |\n|-------|--------|------|-------------|\n| \"Find authentication logic\" | ✅ | 4.2s | `src\u002Fauth\u002Foauth.ts`, `src\u002Fauth\u002Fsetup.ts`, +2 |\n| \"Find the main CLI entry point\" | ✅ | 5.8s | `src\u002Findex.ts`, `src\u002Fcli\u002FApp.tsx` |\n| \"Find where models are configured\" | ✅ | 3.1s | `src\u002Fagent\u002Fmodel.ts`, `src\u002Fmodels.json`, +1 |\n| \"Find how memory blocks work\" | ✅ | 3.9s | `src\u002Fagent\u002Fmemory.ts`, `src\u002Fagent\u002FmemoryFilesystem.ts`, +1 |\n| \"Find the settings manager\" | ✅ | 2.9s | `src\u002Fsettings-manager.ts`, `src\u002Fsettings.ts` |\n\n**5\u002F5 tests passed**\n\n### Performance Summary\n\n- **Average time**: 4.0 seconds\n- **Token efficiency**: 39% fewer input tokens vs manual search\n- **Accuracy**: Finds relevant code in 2-4 turns\n\n---\n\n## How WarpGrep Works\n\nWarpGrep is an agentic search that runs up to 4 turns:\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  Turn 1: Analyze query, map repo structure, initial search  │\n├─────────────────────────────────────────────────────────────┤\n│  Turn 2-3: Refine search, read specific files               │\n├─────────────────────────────────────────────────────────────┤\n│  Turn 4: Return all relevant code locations                 │\n└─────────────────────────────────────────────────────────────┘\n```\n\nThe SDK handles the multi-turn conversation automatically, executing local tools:\n\n| Tool | Description | Implementation |\n|------|-------------|----------------|\n| `grep` | Regex search across files | Uses ripgrep (`rg`) |\n| `read` | Read file contents | Local filesystem |\n| `list_dir` | Show directory structure | Local filesystem |\n\n---\n\n## Architecture\n\n```\n┌──────────────────────────────────────────────────────────────┐\n│                    Your Code \u002F Agent                         │\n└──────────────────────────┬───────────────────────────────────┘\n                           │\n                           ▼\n┌──────────────────────────────────────────────────────────────┐\n│              @morphllm\u002Fmorphsdk                              │\n│  ┌─────────────────────────────────────────────────────────┐ │\n│  │ 1. Build repo structure                                 │ │\n│  │ 2. Send query to Morph API                              │ │\n│  │ 3. Execute local tools (grep, read, list_dir)           │ │\n│  │ 4. Multi-turn refinement                                │ │\n│  │ 5. Return relevant code contexts                        │ │\n│  └─────────────────────────────────────────────────────────┘ │\n└──────────────────────────┬───────────────────────────────────┘\n                           │\n            ┌──────────────┴──────────────┐\n            ▼                             ▼\n┌───────────────────────┐    ┌───────────────────────┐\n│    Morph API          │    │   Local Filesystem    │\n│  (morph-warp-grep-v1) │    │   (ripgrep, fs)       │\n└───────────────────────┘    └───────────────────────┘\n```\n\n---\n\n## Morph's Benchmarks\n\nFrom Morph's SWE-bench evaluation with Claude 4.5 Opus:\n\n| Metric | Without WarpGrep | With WarpGrep | Improvement |\n|--------|------------------|---------------|-------------|\n| Input Tokens | 14K | 9K | **39% fewer** |\n| Agent Turns | 35.0 | 26.0 | **26% fewer** |\n| Tasks Solved | 74.4% | 81.9% | **10% more** |\n\nSource: [Morph WarpGrep Benchmarks](https:\u002F\u002Fwww.morphllm.com\u002Fbenchmarks\u002Fwarp-grep)\n\n---\n\n## Common Patterns\n\n### Reconnaissance-Then-Action\n\n```typescript\nimport { MorphClient } from '@morphllm\u002Fmorphsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\n\n\u002F\u002F 1. Search for relevant code\nconst result = await morph.warpGrep.execute({\n  query: 'Where is the payment processing logic?',\n  repoRoot: '.'\n});\n\n\u002F\u002F 2. Use found contexts to inform next steps\nif (result.success) {\n  const relevantFiles = result.contexts.map(c => c.file);\n  console.log('Found relevant files:', relevantFiles);\n  \u002F\u002F Now read\u002Fedit these specific files\n}\n```\n\n### Combining WarpGrep + Fast Apply\n\n```typescript\nimport { MorphClient } from '@morphllm\u002Fmorphsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\n\n\u002F\u002F 1. Find the code to modify\nconst search = await morph.warpGrep.execute({\n  query: 'Find the user validation function',\n  repoRoot: '.'\n});\n\nif (search.success && search.contexts.length > 0) {\n  const targetFile = search.contexts[0];\n  \n  \u002F\u002F 2. Apply an edit\n  const result = await morph.fastApply.apply({\n    originalCode: targetFile.content,\n    editSnippet: '\u002F\u002F Add your modified version here'\n  });\n  \n  console.log(result.mergedCode);\n}\n```\n\n---\n\n## MCP Integration\n\nFor personal use with Claude Code, Cursor, or other MCP clients:\n\n```bash\n# Install MCP server\nclaude mcp add morph --scope user -e MORPH_API_KEY=YOUR_API_KEY --npx -y @morphllm\u002Fmorphmcp\n```\n\nThis adds a `warpgrep_codebase_search` tool to your MCP client.\n\n---\n\n## Troubleshooting\n\n### ripgrep Not Found\n\n```bash\n# Install ripgrep\nbrew install ripgrep  # macOS\nsudo apt install ripgrep  # Ubuntu\u002FDebian\n\n# Verify\nrg --version\n```\n\n### API Key Issues\n\n```bash\n# Verify API key works\ncurl -X POST https:\u002F\u002Fapi.morphllm.com\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $MORPH_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"model\":\"morph-v3-fast\",\"messages\":[{\"role\":\"user\",\"content\":\"test\"}]}'\n```\n\n### SDK Version Issues\n\nEnsure you're using the latest SDK:\n\n```bash\nbun add @morphllm\u002Fmorphsdk@latest\n# or\nnpm install @morphllm\u002Fmorphsdk@latest\n```\n\n---\n\n## Cost Considerations\n\n- WarpGrep uses **1-4 API calls** per search (typically 2-3)\n- Fast Apply uses **1 API call** per edit\n- Pricing: $0.80 per 1M tokens (input and output)\n- Monitor usage via [Morph Dashboard](https:\u002F\u002Fwww.morphllm.com\u002Fdashboard)\n- Use regular grep\u002Fripgrep for simple exact-match searches (free)\n\n---\n\n## Resources\n\n- [Morph Documentation](https:\u002F\u002Fdocs.morphllm.com)\n- [WarpGrep Guide](https:\u002F\u002Fdocs.morphllm.com\u002Fsdk\u002Fcomponents\u002Fwarp-grep)\n- [WarpGrep Benchmarks](https:\u002F\u002Fwww.morphllm.com\u002Fbenchmarks\u002Fwarp-grep)\n- [Fast Apply Benchmarks](https:\u002F\u002Fwww.morphllm.com\u002Fbenchmarks\u002Ffast-apply)\n- [Morph Dashboard](https:\u002F\u002Fwww.morphllm.com\u002Fdashboard)\n- [Morph Discord](https:\u002F\u002Fdiscord.gg\u002FAdXta4yxEK)\n",{"data":32,"body":33},{"name":4,"description":6},{"type":34,"children":35},"root",[36,45,51,77,84,106,158,167,220,237,339,345,350,493,498,508,512,518,525,548,554,572,578,611,614,620,626,1174,1180,1340,1346,2325,2328,2334,2339,2666,2672,3230,3233,3239,3253,3463,3471,3477,3510,3513,3519,3524,3533,3538,3635,3638,3644,3653,3656,3662,3667,3777,3789,3792,3798,3804,4227,4233,4789,4792,4798,4803,4874,4887,4890,4896,4902,4988,4994,5113,5119,5124,5169,5172,5178,5226,5229,5235,5295],{"type":37,"tag":38,"props":39,"children":41},"element","h1",{"id":40},"morph-warpgrep-fast-apply",[42],{"type":43,"value":44},"text","Morph WarpGrep & Fast Apply",{"type":37,"tag":46,"props":47,"children":48},"p",{},[49],{"type":43,"value":50},"Morph provides two tools that significantly improve coding agent performance:",{"type":37,"tag":52,"props":53,"children":54},"ul",{},[55,67],{"type":37,"tag":56,"props":57,"children":58},"li",{},[59,65],{"type":37,"tag":60,"props":61,"children":62},"strong",{},[63],{"type":43,"value":64},"WarpGrep",{"type":43,"value":66},": Agentic code search that's 5x faster than regular search, uses parallel tool calls, achieves 0.73 F1 in ~4 steps",{"type":37,"tag":56,"props":68,"children":69},{},[70,75],{"type":37,"tag":60,"props":71,"children":72},{},[73],{"type":43,"value":74},"Fast Apply",{"type":43,"value":76},": Merges AI edits into code at 10,500 tok\u002Fs with 98% accuracy (2x faster than search-replace)",{"type":37,"tag":78,"props":79,"children":81},"h2",{"id":80},"prerequisites",[82],{"type":43,"value":83},"Prerequisites",{"type":37,"tag":85,"props":86,"children":87},"ol",{},[88,101],{"type":37,"tag":56,"props":89,"children":90},{},[91,93],{"type":43,"value":92},"Get a Morph API key from ",{"type":37,"tag":94,"props":95,"children":99},"a",{"href":96,"rel":97},"https:\u002F\u002Fwww.morphllm.com\u002Fdashboard",[98],"nofollow",[100],{"type":43,"value":96},{"type":37,"tag":56,"props":102,"children":103},{},[104],{"type":43,"value":105},"Set environment variable:",{"type":37,"tag":107,"props":108,"children":113},"pre",{"className":109,"code":110,"language":111,"meta":112,"style":112},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export MORPH_API_KEY=\"your-api-key\"\n","bash","",[114],{"type":37,"tag":115,"props":116,"children":117},"code",{"__ignoreMap":112},[118],{"type":37,"tag":119,"props":120,"children":123},"span",{"class":121,"line":122},"line",1,[124,130,136,142,147,153],{"type":37,"tag":119,"props":125,"children":127},{"style":126},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[128],{"type":43,"value":129},"export",{"type":37,"tag":119,"props":131,"children":133},{"style":132},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[134],{"type":43,"value":135}," MORPH_API_KEY",{"type":37,"tag":119,"props":137,"children":139},{"style":138},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[140],{"type":43,"value":141},"=",{"type":37,"tag":119,"props":143,"children":144},{"style":138},[145],{"type":43,"value":146},"\"",{"type":37,"tag":119,"props":148,"children":150},{"style":149},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[151],{"type":43,"value":152},"your-api-key",{"type":37,"tag":119,"props":154,"children":155},{"style":138},[156],{"type":43,"value":157},"\"\n",{"type":37,"tag":85,"props":159,"children":161},{"start":160},3,[162],{"type":37,"tag":56,"props":163,"children":164},{},[165],{"type":43,"value":166},"Install the Morph SDK:",{"type":37,"tag":107,"props":168,"children":170},{"className":109,"code":169,"language":111,"meta":112,"style":112},"bun add @morphllm\u002Fmorphsdk\n# or\nnpm install @morphllm\u002Fmorphsdk\n",[171],{"type":37,"tag":115,"props":172,"children":173},{"__ignoreMap":112},[174,193,203],{"type":37,"tag":119,"props":175,"children":176},{"class":121,"line":122},[177,183,188],{"type":37,"tag":119,"props":178,"children":180},{"style":179},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[181],{"type":43,"value":182},"bun",{"type":37,"tag":119,"props":184,"children":185},{"style":149},[186],{"type":43,"value":187}," add",{"type":37,"tag":119,"props":189,"children":190},{"style":149},[191],{"type":43,"value":192}," @morphllm\u002Fmorphsdk\n",{"type":37,"tag":119,"props":194,"children":196},{"class":121,"line":195},2,[197],{"type":37,"tag":119,"props":198,"children":200},{"style":199},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[201],{"type":43,"value":202},"# or\n",{"type":37,"tag":119,"props":204,"children":205},{"class":121,"line":160},[206,211,216],{"type":37,"tag":119,"props":207,"children":208},{"style":179},[209],{"type":43,"value":210},"npm",{"type":37,"tag":119,"props":212,"children":213},{"style":149},[214],{"type":43,"value":215}," install",{"type":37,"tag":119,"props":217,"children":218},{"style":149},[219],{"type":43,"value":192},{"type":37,"tag":85,"props":221,"children":223},{"start":222},4,[224],{"type":37,"tag":56,"props":225,"children":226},{},[227,229,235],{"type":43,"value":228},"Ensure ",{"type":37,"tag":115,"props":230,"children":232},{"className":231},[],[233],{"type":43,"value":234},"ripgrep",{"type":43,"value":236}," is installed (required for local search):",{"type":37,"tag":107,"props":238,"children":240},{"className":109,"code":239,"language":111,"meta":112,"style":112},"# macOS\nbrew install ripgrep\n\n# Ubuntu\u002FDebian  \nsudo apt install ripgrep\n\n# Verify installation\nrg --version\n",[241],{"type":37,"tag":115,"props":242,"children":243},{"__ignoreMap":112},[244,252,269,278,286,308,316,325],{"type":37,"tag":119,"props":245,"children":246},{"class":121,"line":122},[247],{"type":37,"tag":119,"props":248,"children":249},{"style":199},[250],{"type":43,"value":251},"# macOS\n",{"type":37,"tag":119,"props":253,"children":254},{"class":121,"line":195},[255,260,264],{"type":37,"tag":119,"props":256,"children":257},{"style":179},[258],{"type":43,"value":259},"brew",{"type":37,"tag":119,"props":261,"children":262},{"style":149},[263],{"type":43,"value":215},{"type":37,"tag":119,"props":265,"children":266},{"style":149},[267],{"type":43,"value":268}," ripgrep\n",{"type":37,"tag":119,"props":270,"children":271},{"class":121,"line":160},[272],{"type":37,"tag":119,"props":273,"children":275},{"emptyLinePlaceholder":274},true,[276],{"type":43,"value":277},"\n",{"type":37,"tag":119,"props":279,"children":280},{"class":121,"line":222},[281],{"type":37,"tag":119,"props":282,"children":283},{"style":199},[284],{"type":43,"value":285},"# Ubuntu\u002FDebian  \n",{"type":37,"tag":119,"props":287,"children":289},{"class":121,"line":288},5,[290,295,300,304],{"type":37,"tag":119,"props":291,"children":292},{"style":179},[293],{"type":43,"value":294},"sudo",{"type":37,"tag":119,"props":296,"children":297},{"style":149},[298],{"type":43,"value":299}," apt",{"type":37,"tag":119,"props":301,"children":302},{"style":149},[303],{"type":43,"value":215},{"type":37,"tag":119,"props":305,"children":306},{"style":149},[307],{"type":43,"value":268},{"type":37,"tag":119,"props":309,"children":311},{"class":121,"line":310},6,[312],{"type":37,"tag":119,"props":313,"children":314},{"emptyLinePlaceholder":274},[315],{"type":43,"value":277},{"type":37,"tag":119,"props":317,"children":319},{"class":121,"line":318},7,[320],{"type":37,"tag":119,"props":321,"children":322},{"style":199},[323],{"type":43,"value":324},"# Verify installation\n",{"type":37,"tag":119,"props":326,"children":328},{"class":121,"line":327},8,[329,334],{"type":37,"tag":119,"props":330,"children":331},{"style":179},[332],{"type":43,"value":333},"rg",{"type":37,"tag":119,"props":335,"children":336},{"style":149},[337],{"type":43,"value":338}," --version\n",{"type":37,"tag":78,"props":340,"children":342},{"id":341},"quick-test",[343],{"type":43,"value":344},"Quick Test",{"type":37,"tag":46,"props":346,"children":347},{},[348],{"type":43,"value":349},"After setup, run the included test script on any local repository:",{"type":37,"tag":107,"props":351,"children":353},{"className":109,"code":352,"language":111,"meta":112,"style":112},"# Clone a test repo (or use any existing codebase)\ngit clone https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fletta-code.git test-repo\n\n# Install SDK\ncd test-repo\nbun add @morphllm\u002Fmorphsdk\n\n# Run test script\nexport MORPH_API_KEY=\"your-key\"\nbun ..\u002Fscripts\u002Ftest-warpgrep.ts .\n",[354],{"type":37,"tag":115,"props":355,"children":356},{"__ignoreMap":112},[357,365,388,395,403,416,431,438,446,475],{"type":37,"tag":119,"props":358,"children":359},{"class":121,"line":122},[360],{"type":37,"tag":119,"props":361,"children":362},{"style":199},[363],{"type":43,"value":364},"# Clone a test repo (or use any existing codebase)\n",{"type":37,"tag":119,"props":366,"children":367},{"class":121,"line":195},[368,373,378,383],{"type":37,"tag":119,"props":369,"children":370},{"style":179},[371],{"type":43,"value":372},"git",{"type":37,"tag":119,"props":374,"children":375},{"style":149},[376],{"type":43,"value":377}," clone",{"type":37,"tag":119,"props":379,"children":380},{"style":149},[381],{"type":43,"value":382}," https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fletta-code.git",{"type":37,"tag":119,"props":384,"children":385},{"style":149},[386],{"type":43,"value":387}," test-repo\n",{"type":37,"tag":119,"props":389,"children":390},{"class":121,"line":160},[391],{"type":37,"tag":119,"props":392,"children":393},{"emptyLinePlaceholder":274},[394],{"type":43,"value":277},{"type":37,"tag":119,"props":396,"children":397},{"class":121,"line":222},[398],{"type":37,"tag":119,"props":399,"children":400},{"style":199},[401],{"type":43,"value":402},"# Install SDK\n",{"type":37,"tag":119,"props":404,"children":405},{"class":121,"line":288},[406,412],{"type":37,"tag":119,"props":407,"children":409},{"style":408},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[410],{"type":43,"value":411},"cd",{"type":37,"tag":119,"props":413,"children":414},{"style":149},[415],{"type":43,"value":387},{"type":37,"tag":119,"props":417,"children":418},{"class":121,"line":310},[419,423,427],{"type":37,"tag":119,"props":420,"children":421},{"style":179},[422],{"type":43,"value":182},{"type":37,"tag":119,"props":424,"children":425},{"style":149},[426],{"type":43,"value":187},{"type":37,"tag":119,"props":428,"children":429},{"style":149},[430],{"type":43,"value":192},{"type":37,"tag":119,"props":432,"children":433},{"class":121,"line":318},[434],{"type":37,"tag":119,"props":435,"children":436},{"emptyLinePlaceholder":274},[437],{"type":43,"value":277},{"type":37,"tag":119,"props":439,"children":440},{"class":121,"line":327},[441],{"type":37,"tag":119,"props":442,"children":443},{"style":199},[444],{"type":43,"value":445},"# Run test script\n",{"type":37,"tag":119,"props":447,"children":449},{"class":121,"line":448},9,[450,454,458,462,466,471],{"type":37,"tag":119,"props":451,"children":452},{"style":126},[453],{"type":43,"value":129},{"type":37,"tag":119,"props":455,"children":456},{"style":132},[457],{"type":43,"value":135},{"type":37,"tag":119,"props":459,"children":460},{"style":138},[461],{"type":43,"value":141},{"type":37,"tag":119,"props":463,"children":464},{"style":138},[465],{"type":43,"value":146},{"type":37,"tag":119,"props":467,"children":468},{"style":149},[469],{"type":43,"value":470},"your-key",{"type":37,"tag":119,"props":472,"children":473},{"style":138},[474],{"type":43,"value":157},{"type":37,"tag":119,"props":476,"children":478},{"class":121,"line":477},10,[479,483,488],{"type":37,"tag":119,"props":480,"children":481},{"style":179},[482],{"type":43,"value":182},{"type":37,"tag":119,"props":484,"children":485},{"style":149},[486],{"type":43,"value":487}," ..\u002Fscripts\u002Ftest-warpgrep.ts",{"type":37,"tag":119,"props":489,"children":490},{"style":149},[491],{"type":43,"value":492}," .\n",{"type":37,"tag":46,"props":494,"children":495},{},[496],{"type":43,"value":497},"Expected output:",{"type":37,"tag":107,"props":499,"children":503},{"className":500,"code":502,"language":43},[501],"language-text","======================================================================\nMORPH WARPGREP TEST\n======================================================================\nRepo: .\nSDK: @morphllm\u002Fmorphsdk\n======================================================================\n\n| Query                              | Result | Time   | Files |\n|------------------------------------|--------|--------|-------|\n| Find the main entry point          | ✅     | 5.2s   | 2     |\n| Find authentication logic          | ✅     | 4.1s   | 4     |\n| Find where configuration is handled | ✅     | 3.8s   | 3     |\n| Find error handling patterns       | ✅     | 4.5s   | 5     |\n\n======================================================================\nResults: 4 passed, 0 failed\n======================================================================\n",[504],{"type":37,"tag":115,"props":505,"children":506},{"__ignoreMap":112},[507],{"type":43,"value":502},{"type":37,"tag":509,"props":510,"children":511},"hr",{},[],{"type":37,"tag":78,"props":513,"children":515},{"id":514},"when-to-use",[516],{"type":43,"value":517},"When to Use",{"type":37,"tag":519,"props":520,"children":522},"h3",{"id":521},"use-warpgrep-when",[523],{"type":43,"value":524},"Use WarpGrep When:",{"type":37,"tag":52,"props":526,"children":527},{},[528,533,538,543],{"type":37,"tag":56,"props":529,"children":530},{},[531],{"type":43,"value":532},"Searching large codebases (1000+ files)",{"type":37,"tag":56,"props":534,"children":535},{},[536],{"type":43,"value":537},"Deep logic queries: bug tracing, code paths, control flow analysis",{"type":37,"tag":56,"props":539,"children":540},{},[541],{"type":43,"value":542},"Need to find relevant context without polluting the context window",{"type":37,"tag":56,"props":544,"children":545},{},[546],{"type":43,"value":547},"Regular grep returns too many irrelevant results",{"type":37,"tag":519,"props":549,"children":551},{"id":550},"use-fast-apply-when",[552],{"type":43,"value":553},"Use Fast Apply When:",{"type":37,"tag":52,"props":555,"children":556},{},[557,562,567],{"type":37,"tag":56,"props":558,"children":559},{},[560],{"type":43,"value":561},"Applying AI-generated code edits to existing files",{"type":37,"tag":56,"props":563,"children":564},{},[565],{"type":43,"value":566},"Need reliable edit merging (98% accuracy vs ~70% for search-replace)",{"type":37,"tag":56,"props":568,"children":569},{},[570],{"type":43,"value":571},"Working with large files where diff formats fail",{"type":37,"tag":519,"props":573,"children":575},{"id":574},"dont-use-when",[576],{"type":43,"value":577},"Don't Use When:",{"type":37,"tag":52,"props":579,"children":580},{},[581,601,606],{"type":37,"tag":56,"props":582,"children":583},{},[584,586,592,594,599],{"type":43,"value":585},"Simple exact-match searches (regular ",{"type":37,"tag":115,"props":587,"children":589},{"className":588},[],[590],{"type":43,"value":591},"grep",{"type":43,"value":593},"\u002F",{"type":37,"tag":115,"props":595,"children":597},{"className":596},[],[598],{"type":43,"value":333},{"type":43,"value":600}," is free and fast enough)",{"type":37,"tag":56,"props":602,"children":603},{},[604],{"type":43,"value":605},"Surface-level queries where semantic search suffices",{"type":37,"tag":56,"props":607,"children":608},{},[609],{"type":43,"value":610},"Cost is a major concern (Morph API has usage costs)",{"type":37,"tag":509,"props":612,"children":613},{},[],{"type":37,"tag":78,"props":615,"children":617},{"id":616},"quick-start-warpgrep",[618],{"type":43,"value":619},"Quick Start: WarpGrep",{"type":37,"tag":519,"props":621,"children":623},{"id":622},"basic-usage",[624],{"type":43,"value":625},"Basic Usage",{"type":37,"tag":107,"props":627,"children":631},{"className":628,"code":629,"language":630,"meta":112,"style":112},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { MorphClient } from '@morphllm\u002Fmorphsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\n\nconst result = await morph.warpGrep.execute({\n  query: 'Find authentication middleware',\n  repoRoot: '.'\n});\n\nif (result.success) {\n  for (const ctx of result.contexts) {\n    console.log(`File: ${ctx.file}`);\n    console.log(ctx.content);\n  }\n} else {\n  console.error('Search failed');\n}\n","typescript",[632],{"type":37,"tag":115,"props":633,"children":634},{"__ignoreMap":112},[635,684,691,776,783,836,866,891,906,913,939,990,1054,1095,1104,1122,1165],{"type":37,"tag":119,"props":636,"children":637},{"class":121,"line":122},[638,644,649,654,659,664,669,674,679],{"type":37,"tag":119,"props":639,"children":641},{"style":640},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[642],{"type":43,"value":643},"import",{"type":37,"tag":119,"props":645,"children":646},{"style":138},[647],{"type":43,"value":648}," {",{"type":37,"tag":119,"props":650,"children":651},{"style":132},[652],{"type":43,"value":653}," MorphClient",{"type":37,"tag":119,"props":655,"children":656},{"style":138},[657],{"type":43,"value":658}," }",{"type":37,"tag":119,"props":660,"children":661},{"style":640},[662],{"type":43,"value":663}," from",{"type":37,"tag":119,"props":665,"children":666},{"style":138},[667],{"type":43,"value":668}," '",{"type":37,"tag":119,"props":670,"children":671},{"style":149},[672],{"type":43,"value":673},"@morphllm\u002Fmorphsdk",{"type":37,"tag":119,"props":675,"children":676},{"style":138},[677],{"type":43,"value":678},"'",{"type":37,"tag":119,"props":680,"children":681},{"style":138},[682],{"type":43,"value":683},";\n",{"type":37,"tag":119,"props":685,"children":686},{"class":121,"line":195},[687],{"type":37,"tag":119,"props":688,"children":689},{"emptyLinePlaceholder":274},[690],{"type":43,"value":277},{"type":37,"tag":119,"props":692,"children":693},{"class":121,"line":160},[694,699,704,708,713,717,722,727,733,738,743,748,753,757,762,767,772],{"type":37,"tag":119,"props":695,"children":696},{"style":126},[697],{"type":43,"value":698},"const",{"type":37,"tag":119,"props":700,"children":701},{"style":132},[702],{"type":43,"value":703}," morph ",{"type":37,"tag":119,"props":705,"children":706},{"style":138},[707],{"type":43,"value":141},{"type":37,"tag":119,"props":709,"children":710},{"style":138},[711],{"type":43,"value":712}," new",{"type":37,"tag":119,"props":714,"children":715},{"style":408},[716],{"type":43,"value":653},{"type":37,"tag":119,"props":718,"children":719},{"style":132},[720],{"type":43,"value":721},"(",{"type":37,"tag":119,"props":723,"children":724},{"style":138},[725],{"type":43,"value":726},"{",{"type":37,"tag":119,"props":728,"children":730},{"style":729},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[731],{"type":43,"value":732}," apiKey",{"type":37,"tag":119,"props":734,"children":735},{"style":138},[736],{"type":43,"value":737},":",{"type":37,"tag":119,"props":739,"children":740},{"style":132},[741],{"type":43,"value":742}," process",{"type":37,"tag":119,"props":744,"children":745},{"style":138},[746],{"type":43,"value":747},".",{"type":37,"tag":119,"props":749,"children":750},{"style":132},[751],{"type":43,"value":752},"env",{"type":37,"tag":119,"props":754,"children":755},{"style":138},[756],{"type":43,"value":747},{"type":37,"tag":119,"props":758,"children":759},{"style":132},[760],{"type":43,"value":761},"MORPH_API_KEY ",{"type":37,"tag":119,"props":763,"children":764},{"style":138},[765],{"type":43,"value":766},"}",{"type":37,"tag":119,"props":768,"children":769},{"style":132},[770],{"type":43,"value":771},")",{"type":37,"tag":119,"props":773,"children":774},{"style":138},[775],{"type":43,"value":683},{"type":37,"tag":119,"props":777,"children":778},{"class":121,"line":222},[779],{"type":37,"tag":119,"props":780,"children":781},{"emptyLinePlaceholder":274},[782],{"type":43,"value":277},{"type":37,"tag":119,"props":784,"children":785},{"class":121,"line":288},[786,790,795,799,804,809,813,818,822,827,831],{"type":37,"tag":119,"props":787,"children":788},{"style":126},[789],{"type":43,"value":698},{"type":37,"tag":119,"props":791,"children":792},{"style":132},[793],{"type":43,"value":794}," result ",{"type":37,"tag":119,"props":796,"children":797},{"style":138},[798],{"type":43,"value":141},{"type":37,"tag":119,"props":800,"children":801},{"style":640},[802],{"type":43,"value":803}," await",{"type":37,"tag":119,"props":805,"children":806},{"style":132},[807],{"type":43,"value":808}," morph",{"type":37,"tag":119,"props":810,"children":811},{"style":138},[812],{"type":43,"value":747},{"type":37,"tag":119,"props":814,"children":815},{"style":132},[816],{"type":43,"value":817},"warpGrep",{"type":37,"tag":119,"props":819,"children":820},{"style":138},[821],{"type":43,"value":747},{"type":37,"tag":119,"props":823,"children":824},{"style":408},[825],{"type":43,"value":826},"execute",{"type":37,"tag":119,"props":828,"children":829},{"style":132},[830],{"type":43,"value":721},{"type":37,"tag":119,"props":832,"children":833},{"style":138},[834],{"type":43,"value":835},"{\n",{"type":37,"tag":119,"props":837,"children":838},{"class":121,"line":310},[839,844,848,852,857,861],{"type":37,"tag":119,"props":840,"children":841},{"style":729},[842],{"type":43,"value":843},"  query",{"type":37,"tag":119,"props":845,"children":846},{"style":138},[847],{"type":43,"value":737},{"type":37,"tag":119,"props":849,"children":850},{"style":138},[851],{"type":43,"value":668},{"type":37,"tag":119,"props":853,"children":854},{"style":149},[855],{"type":43,"value":856},"Find authentication middleware",{"type":37,"tag":119,"props":858,"children":859},{"style":138},[860],{"type":43,"value":678},{"type":37,"tag":119,"props":862,"children":863},{"style":138},[864],{"type":43,"value":865},",\n",{"type":37,"tag":119,"props":867,"children":868},{"class":121,"line":318},[869,874,878,882,886],{"type":37,"tag":119,"props":870,"children":871},{"style":729},[872],{"type":43,"value":873},"  repoRoot",{"type":37,"tag":119,"props":875,"children":876},{"style":138},[877],{"type":43,"value":737},{"type":37,"tag":119,"props":879,"children":880},{"style":138},[881],{"type":43,"value":668},{"type":37,"tag":119,"props":883,"children":884},{"style":149},[885],{"type":43,"value":747},{"type":37,"tag":119,"props":887,"children":888},{"style":138},[889],{"type":43,"value":890},"'\n",{"type":37,"tag":119,"props":892,"children":893},{"class":121,"line":327},[894,898,902],{"type":37,"tag":119,"props":895,"children":896},{"style":138},[897],{"type":43,"value":766},{"type":37,"tag":119,"props":899,"children":900},{"style":132},[901],{"type":43,"value":771},{"type":37,"tag":119,"props":903,"children":904},{"style":138},[905],{"type":43,"value":683},{"type":37,"tag":119,"props":907,"children":908},{"class":121,"line":448},[909],{"type":37,"tag":119,"props":910,"children":911},{"emptyLinePlaceholder":274},[912],{"type":43,"value":277},{"type":37,"tag":119,"props":914,"children":915},{"class":121,"line":477},[916,921,926,930,935],{"type":37,"tag":119,"props":917,"children":918},{"style":640},[919],{"type":43,"value":920},"if",{"type":37,"tag":119,"props":922,"children":923},{"style":132},[924],{"type":43,"value":925}," (result",{"type":37,"tag":119,"props":927,"children":928},{"style":138},[929],{"type":43,"value":747},{"type":37,"tag":119,"props":931,"children":932},{"style":132},[933],{"type":43,"value":934},"success) ",{"type":37,"tag":119,"props":936,"children":937},{"style":138},[938],{"type":43,"value":835},{"type":37,"tag":119,"props":940,"children":942},{"class":121,"line":941},11,[943,948,953,957,962,967,972,976,981,986],{"type":37,"tag":119,"props":944,"children":945},{"style":640},[946],{"type":43,"value":947},"  for",{"type":37,"tag":119,"props":949,"children":950},{"style":729},[951],{"type":43,"value":952}," (",{"type":37,"tag":119,"props":954,"children":955},{"style":126},[956],{"type":43,"value":698},{"type":37,"tag":119,"props":958,"children":959},{"style":132},[960],{"type":43,"value":961}," ctx",{"type":37,"tag":119,"props":963,"children":964},{"style":138},[965],{"type":43,"value":966}," of",{"type":37,"tag":119,"props":968,"children":969},{"style":132},[970],{"type":43,"value":971}," result",{"type":37,"tag":119,"props":973,"children":974},{"style":138},[975],{"type":43,"value":747},{"type":37,"tag":119,"props":977,"children":978},{"style":132},[979],{"type":43,"value":980},"contexts",{"type":37,"tag":119,"props":982,"children":983},{"style":729},[984],{"type":43,"value":985},") ",{"type":37,"tag":119,"props":987,"children":988},{"style":138},[989],{"type":43,"value":835},{"type":37,"tag":119,"props":991,"children":993},{"class":121,"line":992},12,[994,999,1003,1008,1012,1017,1022,1027,1032,1036,1041,1046,1050],{"type":37,"tag":119,"props":995,"children":996},{"style":132},[997],{"type":43,"value":998},"    console",{"type":37,"tag":119,"props":1000,"children":1001},{"style":138},[1002],{"type":43,"value":747},{"type":37,"tag":119,"props":1004,"children":1005},{"style":408},[1006],{"type":43,"value":1007},"log",{"type":37,"tag":119,"props":1009,"children":1010},{"style":729},[1011],{"type":43,"value":721},{"type":37,"tag":119,"props":1013,"children":1014},{"style":138},[1015],{"type":43,"value":1016},"`",{"type":37,"tag":119,"props":1018,"children":1019},{"style":149},[1020],{"type":43,"value":1021},"File: ",{"type":37,"tag":119,"props":1023,"children":1024},{"style":138},[1025],{"type":43,"value":1026},"${",{"type":37,"tag":119,"props":1028,"children":1029},{"style":132},[1030],{"type":43,"value":1031},"ctx",{"type":37,"tag":119,"props":1033,"children":1034},{"style":138},[1035],{"type":43,"value":747},{"type":37,"tag":119,"props":1037,"children":1038},{"style":132},[1039],{"type":43,"value":1040},"file",{"type":37,"tag":119,"props":1042,"children":1043},{"style":138},[1044],{"type":43,"value":1045},"}`",{"type":37,"tag":119,"props":1047,"children":1048},{"style":729},[1049],{"type":43,"value":771},{"type":37,"tag":119,"props":1051,"children":1052},{"style":138},[1053],{"type":43,"value":683},{"type":37,"tag":119,"props":1055,"children":1057},{"class":121,"line":1056},13,[1058,1062,1066,1070,1074,1078,1082,1087,1091],{"type":37,"tag":119,"props":1059,"children":1060},{"style":132},[1061],{"type":43,"value":998},{"type":37,"tag":119,"props":1063,"children":1064},{"style":138},[1065],{"type":43,"value":747},{"type":37,"tag":119,"props":1067,"children":1068},{"style":408},[1069],{"type":43,"value":1007},{"type":37,"tag":119,"props":1071,"children":1072},{"style":729},[1073],{"type":43,"value":721},{"type":37,"tag":119,"props":1075,"children":1076},{"style":132},[1077],{"type":43,"value":1031},{"type":37,"tag":119,"props":1079,"children":1080},{"style":138},[1081],{"type":43,"value":747},{"type":37,"tag":119,"props":1083,"children":1084},{"style":132},[1085],{"type":43,"value":1086},"content",{"type":37,"tag":119,"props":1088,"children":1089},{"style":729},[1090],{"type":43,"value":771},{"type":37,"tag":119,"props":1092,"children":1093},{"style":138},[1094],{"type":43,"value":683},{"type":37,"tag":119,"props":1096,"children":1098},{"class":121,"line":1097},14,[1099],{"type":37,"tag":119,"props":1100,"children":1101},{"style":138},[1102],{"type":43,"value":1103},"  }\n",{"type":37,"tag":119,"props":1105,"children":1107},{"class":121,"line":1106},15,[1108,1112,1117],{"type":37,"tag":119,"props":1109,"children":1110},{"style":138},[1111],{"type":43,"value":766},{"type":37,"tag":119,"props":1113,"children":1114},{"style":640},[1115],{"type":43,"value":1116}," else",{"type":37,"tag":119,"props":1118,"children":1119},{"style":138},[1120],{"type":43,"value":1121}," {\n",{"type":37,"tag":119,"props":1123,"children":1125},{"class":121,"line":1124},16,[1126,1131,1135,1140,1144,1148,1153,1157,1161],{"type":37,"tag":119,"props":1127,"children":1128},{"style":132},[1129],{"type":43,"value":1130},"  console",{"type":37,"tag":119,"props":1132,"children":1133},{"style":138},[1134],{"type":43,"value":747},{"type":37,"tag":119,"props":1136,"children":1137},{"style":408},[1138],{"type":43,"value":1139},"error",{"type":37,"tag":119,"props":1141,"children":1142},{"style":729},[1143],{"type":43,"value":721},{"type":37,"tag":119,"props":1145,"children":1146},{"style":138},[1147],{"type":43,"value":678},{"type":37,"tag":119,"props":1149,"children":1150},{"style":149},[1151],{"type":43,"value":1152},"Search failed",{"type":37,"tag":119,"props":1154,"children":1155},{"style":138},[1156],{"type":43,"value":678},{"type":37,"tag":119,"props":1158,"children":1159},{"style":729},[1160],{"type":43,"value":771},{"type":37,"tag":119,"props":1162,"children":1163},{"style":138},[1164],{"type":43,"value":683},{"type":37,"tag":119,"props":1166,"children":1168},{"class":121,"line":1167},17,[1169],{"type":37,"tag":119,"props":1170,"children":1171},{"style":138},[1172],{"type":43,"value":1173},"}\n",{"type":37,"tag":519,"props":1175,"children":1177},{"id":1176},"response-format",[1178],{"type":43,"value":1179},"Response Format",{"type":37,"tag":107,"props":1181,"children":1183},{"className":628,"code":1182,"language":630,"meta":112,"style":112},"interface WarpGrepResult {\n  success: boolean;\n  contexts: Array\u003C{\n    file: string;    \u002F\u002F File path relative to repo root\n    content: string; \u002F\u002F File content with relevant code\n  }>;\n  summary?: string;  \u002F\u002F Human-readable summary\n}\n",[1184],{"type":37,"tag":115,"props":1185,"children":1186},{"__ignoreMap":112},[1187,1204,1225,1247,1274,1299,1307,1333],{"type":37,"tag":119,"props":1188,"children":1189},{"class":121,"line":122},[1190,1195,1200],{"type":37,"tag":119,"props":1191,"children":1192},{"style":126},[1193],{"type":43,"value":1194},"interface",{"type":37,"tag":119,"props":1196,"children":1197},{"style":179},[1198],{"type":43,"value":1199}," WarpGrepResult",{"type":37,"tag":119,"props":1201,"children":1202},{"style":138},[1203],{"type":43,"value":1121},{"type":37,"tag":119,"props":1205,"children":1206},{"class":121,"line":195},[1207,1212,1216,1221],{"type":37,"tag":119,"props":1208,"children":1209},{"style":729},[1210],{"type":43,"value":1211},"  success",{"type":37,"tag":119,"props":1213,"children":1214},{"style":138},[1215],{"type":43,"value":737},{"type":37,"tag":119,"props":1217,"children":1218},{"style":179},[1219],{"type":43,"value":1220}," boolean",{"type":37,"tag":119,"props":1222,"children":1223},{"style":138},[1224],{"type":43,"value":683},{"type":37,"tag":119,"props":1226,"children":1227},{"class":121,"line":160},[1228,1233,1237,1242],{"type":37,"tag":119,"props":1229,"children":1230},{"style":729},[1231],{"type":43,"value":1232},"  contexts",{"type":37,"tag":119,"props":1234,"children":1235},{"style":138},[1236],{"type":43,"value":737},{"type":37,"tag":119,"props":1238,"children":1239},{"style":179},[1240],{"type":43,"value":1241}," Array",{"type":37,"tag":119,"props":1243,"children":1244},{"style":138},[1245],{"type":43,"value":1246},"\u003C{\n",{"type":37,"tag":119,"props":1248,"children":1249},{"class":121,"line":222},[1250,1255,1259,1264,1269],{"type":37,"tag":119,"props":1251,"children":1252},{"style":729},[1253],{"type":43,"value":1254},"    file",{"type":37,"tag":119,"props":1256,"children":1257},{"style":138},[1258],{"type":43,"value":737},{"type":37,"tag":119,"props":1260,"children":1261},{"style":179},[1262],{"type":43,"value":1263}," string",{"type":37,"tag":119,"props":1265,"children":1266},{"style":138},[1267],{"type":43,"value":1268},";",{"type":37,"tag":119,"props":1270,"children":1271},{"style":199},[1272],{"type":43,"value":1273},"    \u002F\u002F File path relative to repo root\n",{"type":37,"tag":119,"props":1275,"children":1276},{"class":121,"line":288},[1277,1282,1286,1290,1294],{"type":37,"tag":119,"props":1278,"children":1279},{"style":729},[1280],{"type":43,"value":1281},"    content",{"type":37,"tag":119,"props":1283,"children":1284},{"style":138},[1285],{"type":43,"value":737},{"type":37,"tag":119,"props":1287,"children":1288},{"style":179},[1289],{"type":43,"value":1263},{"type":37,"tag":119,"props":1291,"children":1292},{"style":138},[1293],{"type":43,"value":1268},{"type":37,"tag":119,"props":1295,"children":1296},{"style":199},[1297],{"type":43,"value":1298}," \u002F\u002F File content with relevant code\n",{"type":37,"tag":119,"props":1300,"children":1301},{"class":121,"line":310},[1302],{"type":37,"tag":119,"props":1303,"children":1304},{"style":138},[1305],{"type":43,"value":1306},"  }>;\n",{"type":37,"tag":119,"props":1308,"children":1309},{"class":121,"line":318},[1310,1315,1320,1324,1328],{"type":37,"tag":119,"props":1311,"children":1312},{"style":729},[1313],{"type":43,"value":1314},"  summary",{"type":37,"tag":119,"props":1316,"children":1317},{"style":138},[1318],{"type":43,"value":1319},"?:",{"type":37,"tag":119,"props":1321,"children":1322},{"style":179},[1323],{"type":43,"value":1263},{"type":37,"tag":119,"props":1325,"children":1326},{"style":138},[1327],{"type":43,"value":1268},{"type":37,"tag":119,"props":1329,"children":1330},{"style":199},[1331],{"type":43,"value":1332},"  \u002F\u002F Human-readable summary\n",{"type":37,"tag":119,"props":1334,"children":1335},{"class":121,"line":327},[1336],{"type":37,"tag":119,"props":1337,"children":1338},{"style":138},[1339],{"type":43,"value":1173},{"type":37,"tag":519,"props":1341,"children":1343},{"id":1342},"using-as-an-agent-tool",[1344],{"type":43,"value":1345},"Using as an Agent Tool",{"type":37,"tag":107,"props":1347,"children":1349},{"className":628,"code":1348,"language":630,"meta":112,"style":112},"import { MorphClient } from '@morphllm\u002Fmorphsdk';\nimport Anthropic from '@anthropic-ai\u002Fsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\nconst anthropic = new Anthropic();\n\n\u002F\u002F Define WarpGrep as a tool\nconst tools = [{\n  name: 'warpgrep_search',\n  description: 'Search codebase for relevant code. Use for finding implementations, tracing bugs, or understanding code flow.',\n  input_schema: {\n    type: 'object',\n    properties: {\n      query: { type: 'string', description: 'What to search for' }\n    },\n    required: ['query']\n  }\n}];\n\n\u002F\u002F Handle tool calls\nasync function handleToolCall(name: string, input: { query: string }) {\n  if (name === 'warpgrep_search') {\n    const result = await morph.warpGrep.execute({\n      query: input.query,\n      repoRoot: process.cwd()\n    });\n    \n    if (result.success) {\n      return result.contexts.map(c => `## ${c.file}\\n${c.content}`).join('\\n\\n');\n    }\n    return 'No results found';\n  }\n}\n",[1350],{"type":37,"tag":115,"props":1351,"children":1352},{"__ignoreMap":112},[1353,1392,1426,1433,1504,1538,1545,1553,1578,1607,1636,1652,1681,1697,1767,1775,1809,1816,1833,1841,1849,1925,1967,2017,2045,2076,2093,2102,2137,2274,2283,2309,2317],{"type":37,"tag":119,"props":1354,"children":1355},{"class":121,"line":122},[1356,1360,1364,1368,1372,1376,1380,1384,1388],{"type":37,"tag":119,"props":1357,"children":1358},{"style":640},[1359],{"type":43,"value":643},{"type":37,"tag":119,"props":1361,"children":1362},{"style":138},[1363],{"type":43,"value":648},{"type":37,"tag":119,"props":1365,"children":1366},{"style":132},[1367],{"type":43,"value":653},{"type":37,"tag":119,"props":1369,"children":1370},{"style":138},[1371],{"type":43,"value":658},{"type":37,"tag":119,"props":1373,"children":1374},{"style":640},[1375],{"type":43,"value":663},{"type":37,"tag":119,"props":1377,"children":1378},{"style":138},[1379],{"type":43,"value":668},{"type":37,"tag":119,"props":1381,"children":1382},{"style":149},[1383],{"type":43,"value":673},{"type":37,"tag":119,"props":1385,"children":1386},{"style":138},[1387],{"type":43,"value":678},{"type":37,"tag":119,"props":1389,"children":1390},{"style":138},[1391],{"type":43,"value":683},{"type":37,"tag":119,"props":1393,"children":1394},{"class":121,"line":195},[1395,1399,1404,1409,1413,1418,1422],{"type":37,"tag":119,"props":1396,"children":1397},{"style":640},[1398],{"type":43,"value":643},{"type":37,"tag":119,"props":1400,"children":1401},{"style":132},[1402],{"type":43,"value":1403}," Anthropic ",{"type":37,"tag":119,"props":1405,"children":1406},{"style":640},[1407],{"type":43,"value":1408},"from",{"type":37,"tag":119,"props":1410,"children":1411},{"style":138},[1412],{"type":43,"value":668},{"type":37,"tag":119,"props":1414,"children":1415},{"style":149},[1416],{"type":43,"value":1417},"@anthropic-ai\u002Fsdk",{"type":37,"tag":119,"props":1419,"children":1420},{"style":138},[1421],{"type":43,"value":678},{"type":37,"tag":119,"props":1423,"children":1424},{"style":138},[1425],{"type":43,"value":683},{"type":37,"tag":119,"props":1427,"children":1428},{"class":121,"line":160},[1429],{"type":37,"tag":119,"props":1430,"children":1431},{"emptyLinePlaceholder":274},[1432],{"type":43,"value":277},{"type":37,"tag":119,"props":1434,"children":1435},{"class":121,"line":222},[1436,1440,1444,1448,1452,1456,1460,1464,1468,1472,1476,1480,1484,1488,1492,1496,1500],{"type":37,"tag":119,"props":1437,"children":1438},{"style":126},[1439],{"type":43,"value":698},{"type":37,"tag":119,"props":1441,"children":1442},{"style":132},[1443],{"type":43,"value":703},{"type":37,"tag":119,"props":1445,"children":1446},{"style":138},[1447],{"type":43,"value":141},{"type":37,"tag":119,"props":1449,"children":1450},{"style":138},[1451],{"type":43,"value":712},{"type":37,"tag":119,"props":1453,"children":1454},{"style":408},[1455],{"type":43,"value":653},{"type":37,"tag":119,"props":1457,"children":1458},{"style":132},[1459],{"type":43,"value":721},{"type":37,"tag":119,"props":1461,"children":1462},{"style":138},[1463],{"type":43,"value":726},{"type":37,"tag":119,"props":1465,"children":1466},{"style":729},[1467],{"type":43,"value":732},{"type":37,"tag":119,"props":1469,"children":1470},{"style":138},[1471],{"type":43,"value":737},{"type":37,"tag":119,"props":1473,"children":1474},{"style":132},[1475],{"type":43,"value":742},{"type":37,"tag":119,"props":1477,"children":1478},{"style":138},[1479],{"type":43,"value":747},{"type":37,"tag":119,"props":1481,"children":1482},{"style":132},[1483],{"type":43,"value":752},{"type":37,"tag":119,"props":1485,"children":1486},{"style":138},[1487],{"type":43,"value":747},{"type":37,"tag":119,"props":1489,"children":1490},{"style":132},[1491],{"type":43,"value":761},{"type":37,"tag":119,"props":1493,"children":1494},{"style":138},[1495],{"type":43,"value":766},{"type":37,"tag":119,"props":1497,"children":1498},{"style":132},[1499],{"type":43,"value":771},{"type":37,"tag":119,"props":1501,"children":1502},{"style":138},[1503],{"type":43,"value":683},{"type":37,"tag":119,"props":1505,"children":1506},{"class":121,"line":288},[1507,1511,1516,1520,1524,1529,1534],{"type":37,"tag":119,"props":1508,"children":1509},{"style":126},[1510],{"type":43,"value":698},{"type":37,"tag":119,"props":1512,"children":1513},{"style":132},[1514],{"type":43,"value":1515}," anthropic ",{"type":37,"tag":119,"props":1517,"children":1518},{"style":138},[1519],{"type":43,"value":141},{"type":37,"tag":119,"props":1521,"children":1522},{"style":138},[1523],{"type":43,"value":712},{"type":37,"tag":119,"props":1525,"children":1526},{"style":408},[1527],{"type":43,"value":1528}," Anthropic",{"type":37,"tag":119,"props":1530,"children":1531},{"style":132},[1532],{"type":43,"value":1533},"()",{"type":37,"tag":119,"props":1535,"children":1536},{"style":138},[1537],{"type":43,"value":683},{"type":37,"tag":119,"props":1539,"children":1540},{"class":121,"line":310},[1541],{"type":37,"tag":119,"props":1542,"children":1543},{"emptyLinePlaceholder":274},[1544],{"type":43,"value":277},{"type":37,"tag":119,"props":1546,"children":1547},{"class":121,"line":318},[1548],{"type":37,"tag":119,"props":1549,"children":1550},{"style":199},[1551],{"type":43,"value":1552},"\u002F\u002F Define WarpGrep as a tool\n",{"type":37,"tag":119,"props":1554,"children":1555},{"class":121,"line":327},[1556,1560,1565,1569,1574],{"type":37,"tag":119,"props":1557,"children":1558},{"style":126},[1559],{"type":43,"value":698},{"type":37,"tag":119,"props":1561,"children":1562},{"style":132},[1563],{"type":43,"value":1564}," tools ",{"type":37,"tag":119,"props":1566,"children":1567},{"style":138},[1568],{"type":43,"value":141},{"type":37,"tag":119,"props":1570,"children":1571},{"style":132},[1572],{"type":43,"value":1573}," [",{"type":37,"tag":119,"props":1575,"children":1576},{"style":138},[1577],{"type":43,"value":835},{"type":37,"tag":119,"props":1579,"children":1580},{"class":121,"line":448},[1581,1586,1590,1594,1599,1603],{"type":37,"tag":119,"props":1582,"children":1583},{"style":729},[1584],{"type":43,"value":1585},"  name",{"type":37,"tag":119,"props":1587,"children":1588},{"style":138},[1589],{"type":43,"value":737},{"type":37,"tag":119,"props":1591,"children":1592},{"style":138},[1593],{"type":43,"value":668},{"type":37,"tag":119,"props":1595,"children":1596},{"style":149},[1597],{"type":43,"value":1598},"warpgrep_search",{"type":37,"tag":119,"props":1600,"children":1601},{"style":138},[1602],{"type":43,"value":678},{"type":37,"tag":119,"props":1604,"children":1605},{"style":138},[1606],{"type":43,"value":865},{"type":37,"tag":119,"props":1608,"children":1609},{"class":121,"line":477},[1610,1615,1619,1623,1628,1632],{"type":37,"tag":119,"props":1611,"children":1612},{"style":729},[1613],{"type":43,"value":1614},"  description",{"type":37,"tag":119,"props":1616,"children":1617},{"style":138},[1618],{"type":43,"value":737},{"type":37,"tag":119,"props":1620,"children":1621},{"style":138},[1622],{"type":43,"value":668},{"type":37,"tag":119,"props":1624,"children":1625},{"style":149},[1626],{"type":43,"value":1627},"Search codebase for relevant code. Use for finding implementations, tracing bugs, or understanding code flow.",{"type":37,"tag":119,"props":1629,"children":1630},{"style":138},[1631],{"type":43,"value":678},{"type":37,"tag":119,"props":1633,"children":1634},{"style":138},[1635],{"type":43,"value":865},{"type":37,"tag":119,"props":1637,"children":1638},{"class":121,"line":941},[1639,1644,1648],{"type":37,"tag":119,"props":1640,"children":1641},{"style":729},[1642],{"type":43,"value":1643},"  input_schema",{"type":37,"tag":119,"props":1645,"children":1646},{"style":138},[1647],{"type":43,"value":737},{"type":37,"tag":119,"props":1649,"children":1650},{"style":138},[1651],{"type":43,"value":1121},{"type":37,"tag":119,"props":1653,"children":1654},{"class":121,"line":992},[1655,1660,1664,1668,1673,1677],{"type":37,"tag":119,"props":1656,"children":1657},{"style":729},[1658],{"type":43,"value":1659},"    type",{"type":37,"tag":119,"props":1661,"children":1662},{"style":138},[1663],{"type":43,"value":737},{"type":37,"tag":119,"props":1665,"children":1666},{"style":138},[1667],{"type":43,"value":668},{"type":37,"tag":119,"props":1669,"children":1670},{"style":149},[1671],{"type":43,"value":1672},"object",{"type":37,"tag":119,"props":1674,"children":1675},{"style":138},[1676],{"type":43,"value":678},{"type":37,"tag":119,"props":1678,"children":1679},{"style":138},[1680],{"type":43,"value":865},{"type":37,"tag":119,"props":1682,"children":1683},{"class":121,"line":1056},[1684,1689,1693],{"type":37,"tag":119,"props":1685,"children":1686},{"style":729},[1687],{"type":43,"value":1688},"    properties",{"type":37,"tag":119,"props":1690,"children":1691},{"style":138},[1692],{"type":43,"value":737},{"type":37,"tag":119,"props":1694,"children":1695},{"style":138},[1696],{"type":43,"value":1121},{"type":37,"tag":119,"props":1698,"children":1699},{"class":121,"line":1097},[1700,1705,1709,1713,1718,1722,1726,1731,1735,1740,1745,1749,1753,1758,1762],{"type":37,"tag":119,"props":1701,"children":1702},{"style":729},[1703],{"type":43,"value":1704},"      query",{"type":37,"tag":119,"props":1706,"children":1707},{"style":138},[1708],{"type":43,"value":737},{"type":37,"tag":119,"props":1710,"children":1711},{"style":138},[1712],{"type":43,"value":648},{"type":37,"tag":119,"props":1714,"children":1715},{"style":729},[1716],{"type":43,"value":1717}," type",{"type":37,"tag":119,"props":1719,"children":1720},{"style":138},[1721],{"type":43,"value":737},{"type":37,"tag":119,"props":1723,"children":1724},{"style":138},[1725],{"type":43,"value":668},{"type":37,"tag":119,"props":1727,"children":1728},{"style":149},[1729],{"type":43,"value":1730},"string",{"type":37,"tag":119,"props":1732,"children":1733},{"style":138},[1734],{"type":43,"value":678},{"type":37,"tag":119,"props":1736,"children":1737},{"style":138},[1738],{"type":43,"value":1739},",",{"type":37,"tag":119,"props":1741,"children":1742},{"style":729},[1743],{"type":43,"value":1744}," description",{"type":37,"tag":119,"props":1746,"children":1747},{"style":138},[1748],{"type":43,"value":737},{"type":37,"tag":119,"props":1750,"children":1751},{"style":138},[1752],{"type":43,"value":668},{"type":37,"tag":119,"props":1754,"children":1755},{"style":149},[1756],{"type":43,"value":1757},"What to search for",{"type":37,"tag":119,"props":1759,"children":1760},{"style":138},[1761],{"type":43,"value":678},{"type":37,"tag":119,"props":1763,"children":1764},{"style":138},[1765],{"type":43,"value":1766}," }\n",{"type":37,"tag":119,"props":1768,"children":1769},{"class":121,"line":1106},[1770],{"type":37,"tag":119,"props":1771,"children":1772},{"style":138},[1773],{"type":43,"value":1774},"    },\n",{"type":37,"tag":119,"props":1776,"children":1777},{"class":121,"line":1124},[1778,1783,1787,1791,1795,1800,1804],{"type":37,"tag":119,"props":1779,"children":1780},{"style":729},[1781],{"type":43,"value":1782},"    required",{"type":37,"tag":119,"props":1784,"children":1785},{"style":138},[1786],{"type":43,"value":737},{"type":37,"tag":119,"props":1788,"children":1789},{"style":132},[1790],{"type":43,"value":1573},{"type":37,"tag":119,"props":1792,"children":1793},{"style":138},[1794],{"type":43,"value":678},{"type":37,"tag":119,"props":1796,"children":1797},{"style":149},[1798],{"type":43,"value":1799},"query",{"type":37,"tag":119,"props":1801,"children":1802},{"style":138},[1803],{"type":43,"value":678},{"type":37,"tag":119,"props":1805,"children":1806},{"style":132},[1807],{"type":43,"value":1808},"]\n",{"type":37,"tag":119,"props":1810,"children":1811},{"class":121,"line":1167},[1812],{"type":37,"tag":119,"props":1813,"children":1814},{"style":138},[1815],{"type":43,"value":1103},{"type":37,"tag":119,"props":1817,"children":1819},{"class":121,"line":1818},18,[1820,1824,1829],{"type":37,"tag":119,"props":1821,"children":1822},{"style":138},[1823],{"type":43,"value":766},{"type":37,"tag":119,"props":1825,"children":1826},{"style":132},[1827],{"type":43,"value":1828},"]",{"type":37,"tag":119,"props":1830,"children":1831},{"style":138},[1832],{"type":43,"value":683},{"type":37,"tag":119,"props":1834,"children":1836},{"class":121,"line":1835},19,[1837],{"type":37,"tag":119,"props":1838,"children":1839},{"emptyLinePlaceholder":274},[1840],{"type":43,"value":277},{"type":37,"tag":119,"props":1842,"children":1843},{"class":121,"line":24},[1844],{"type":37,"tag":119,"props":1845,"children":1846},{"style":199},[1847],{"type":43,"value":1848},"\u002F\u002F Handle tool calls\n",{"type":37,"tag":119,"props":1850,"children":1852},{"class":121,"line":1851},21,[1853,1858,1863,1868,1872,1878,1882,1886,1890,1895,1899,1903,1908,1912,1916,1921],{"type":37,"tag":119,"props":1854,"children":1855},{"style":126},[1856],{"type":43,"value":1857},"async",{"type":37,"tag":119,"props":1859,"children":1860},{"style":126},[1861],{"type":43,"value":1862}," function",{"type":37,"tag":119,"props":1864,"children":1865},{"style":408},[1866],{"type":43,"value":1867}," handleToolCall",{"type":37,"tag":119,"props":1869,"children":1870},{"style":138},[1871],{"type":43,"value":721},{"type":37,"tag":119,"props":1873,"children":1875},{"style":1874},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[1876],{"type":43,"value":1877},"name",{"type":37,"tag":119,"props":1879,"children":1880},{"style":138},[1881],{"type":43,"value":737},{"type":37,"tag":119,"props":1883,"children":1884},{"style":179},[1885],{"type":43,"value":1263},{"type":37,"tag":119,"props":1887,"children":1888},{"style":138},[1889],{"type":43,"value":1739},{"type":37,"tag":119,"props":1891,"children":1892},{"style":1874},[1893],{"type":43,"value":1894}," input",{"type":37,"tag":119,"props":1896,"children":1897},{"style":138},[1898],{"type":43,"value":737},{"type":37,"tag":119,"props":1900,"children":1901},{"style":138},[1902],{"type":43,"value":648},{"type":37,"tag":119,"props":1904,"children":1905},{"style":729},[1906],{"type":43,"value":1907}," query",{"type":37,"tag":119,"props":1909,"children":1910},{"style":138},[1911],{"type":43,"value":737},{"type":37,"tag":119,"props":1913,"children":1914},{"style":179},[1915],{"type":43,"value":1263},{"type":37,"tag":119,"props":1917,"children":1918},{"style":138},[1919],{"type":43,"value":1920}," })",{"type":37,"tag":119,"props":1922,"children":1923},{"style":138},[1924],{"type":43,"value":1121},{"type":37,"tag":119,"props":1926,"children":1928},{"class":121,"line":1927},22,[1929,1934,1938,1942,1947,1951,1955,1959,1963],{"type":37,"tag":119,"props":1930,"children":1931},{"style":640},[1932],{"type":43,"value":1933},"  if",{"type":37,"tag":119,"props":1935,"children":1936},{"style":729},[1937],{"type":43,"value":952},{"type":37,"tag":119,"props":1939,"children":1940},{"style":132},[1941],{"type":43,"value":1877},{"type":37,"tag":119,"props":1943,"children":1944},{"style":138},[1945],{"type":43,"value":1946}," ===",{"type":37,"tag":119,"props":1948,"children":1949},{"style":138},[1950],{"type":43,"value":668},{"type":37,"tag":119,"props":1952,"children":1953},{"style":149},[1954],{"type":43,"value":1598},{"type":37,"tag":119,"props":1956,"children":1957},{"style":138},[1958],{"type":43,"value":678},{"type":37,"tag":119,"props":1960,"children":1961},{"style":729},[1962],{"type":43,"value":985},{"type":37,"tag":119,"props":1964,"children":1965},{"style":138},[1966],{"type":43,"value":835},{"type":37,"tag":119,"props":1968,"children":1970},{"class":121,"line":1969},23,[1971,1976,1980,1985,1989,1993,1997,2001,2005,2009,2013],{"type":37,"tag":119,"props":1972,"children":1973},{"style":126},[1974],{"type":43,"value":1975},"    const",{"type":37,"tag":119,"props":1977,"children":1978},{"style":132},[1979],{"type":43,"value":971},{"type":37,"tag":119,"props":1981,"children":1982},{"style":138},[1983],{"type":43,"value":1984}," =",{"type":37,"tag":119,"props":1986,"children":1987},{"style":640},[1988],{"type":43,"value":803},{"type":37,"tag":119,"props":1990,"children":1991},{"style":132},[1992],{"type":43,"value":808},{"type":37,"tag":119,"props":1994,"children":1995},{"style":138},[1996],{"type":43,"value":747},{"type":37,"tag":119,"props":1998,"children":1999},{"style":132},[2000],{"type":43,"value":817},{"type":37,"tag":119,"props":2002,"children":2003},{"style":138},[2004],{"type":43,"value":747},{"type":37,"tag":119,"props":2006,"children":2007},{"style":408},[2008],{"type":43,"value":826},{"type":37,"tag":119,"props":2010,"children":2011},{"style":729},[2012],{"type":43,"value":721},{"type":37,"tag":119,"props":2014,"children":2015},{"style":138},[2016],{"type":43,"value":835},{"type":37,"tag":119,"props":2018,"children":2020},{"class":121,"line":2019},24,[2021,2025,2029,2033,2037,2041],{"type":37,"tag":119,"props":2022,"children":2023},{"style":729},[2024],{"type":43,"value":1704},{"type":37,"tag":119,"props":2026,"children":2027},{"style":138},[2028],{"type":43,"value":737},{"type":37,"tag":119,"props":2030,"children":2031},{"style":132},[2032],{"type":43,"value":1894},{"type":37,"tag":119,"props":2034,"children":2035},{"style":138},[2036],{"type":43,"value":747},{"type":37,"tag":119,"props":2038,"children":2039},{"style":132},[2040],{"type":43,"value":1799},{"type":37,"tag":119,"props":2042,"children":2043},{"style":138},[2044],{"type":43,"value":865},{"type":37,"tag":119,"props":2046,"children":2048},{"class":121,"line":2047},25,[2049,2054,2058,2062,2066,2071],{"type":37,"tag":119,"props":2050,"children":2051},{"style":729},[2052],{"type":43,"value":2053},"      repoRoot",{"type":37,"tag":119,"props":2055,"children":2056},{"style":138},[2057],{"type":43,"value":737},{"type":37,"tag":119,"props":2059,"children":2060},{"style":132},[2061],{"type":43,"value":742},{"type":37,"tag":119,"props":2063,"children":2064},{"style":138},[2065],{"type":43,"value":747},{"type":37,"tag":119,"props":2067,"children":2068},{"style":408},[2069],{"type":43,"value":2070},"cwd",{"type":37,"tag":119,"props":2072,"children":2073},{"style":729},[2074],{"type":43,"value":2075},"()\n",{"type":37,"tag":119,"props":2077,"children":2079},{"class":121,"line":2078},26,[2080,2085,2089],{"type":37,"tag":119,"props":2081,"children":2082},{"style":138},[2083],{"type":43,"value":2084},"    }",{"type":37,"tag":119,"props":2086,"children":2087},{"style":729},[2088],{"type":43,"value":771},{"type":37,"tag":119,"props":2090,"children":2091},{"style":138},[2092],{"type":43,"value":683},{"type":37,"tag":119,"props":2094,"children":2096},{"class":121,"line":2095},27,[2097],{"type":37,"tag":119,"props":2098,"children":2099},{"style":729},[2100],{"type":43,"value":2101},"    \n",{"type":37,"tag":119,"props":2103,"children":2105},{"class":121,"line":2104},28,[2106,2111,2115,2120,2124,2129,2133],{"type":37,"tag":119,"props":2107,"children":2108},{"style":640},[2109],{"type":43,"value":2110},"    if",{"type":37,"tag":119,"props":2112,"children":2113},{"style":729},[2114],{"type":43,"value":952},{"type":37,"tag":119,"props":2116,"children":2117},{"style":132},[2118],{"type":43,"value":2119},"result",{"type":37,"tag":119,"props":2121,"children":2122},{"style":138},[2123],{"type":43,"value":747},{"type":37,"tag":119,"props":2125,"children":2126},{"style":132},[2127],{"type":43,"value":2128},"success",{"type":37,"tag":119,"props":2130,"children":2131},{"style":729},[2132],{"type":43,"value":985},{"type":37,"tag":119,"props":2134,"children":2135},{"style":138},[2136],{"type":43,"value":835},{"type":37,"tag":119,"props":2138,"children":2140},{"class":121,"line":2139},29,[2141,2146,2150,2154,2158,2162,2167,2171,2176,2181,2186,2191,2195,2199,2203,2207,2211,2216,2220,2224,2228,2232,2236,2240,2244,2249,2253,2257,2262,2266,2270],{"type":37,"tag":119,"props":2142,"children":2143},{"style":640},[2144],{"type":43,"value":2145},"      return",{"type":37,"tag":119,"props":2147,"children":2148},{"style":132},[2149],{"type":43,"value":971},{"type":37,"tag":119,"props":2151,"children":2152},{"style":138},[2153],{"type":43,"value":747},{"type":37,"tag":119,"props":2155,"children":2156},{"style":132},[2157],{"type":43,"value":980},{"type":37,"tag":119,"props":2159,"children":2160},{"style":138},[2161],{"type":43,"value":747},{"type":37,"tag":119,"props":2163,"children":2164},{"style":408},[2165],{"type":43,"value":2166},"map",{"type":37,"tag":119,"props":2168,"children":2169},{"style":729},[2170],{"type":43,"value":721},{"type":37,"tag":119,"props":2172,"children":2173},{"style":1874},[2174],{"type":43,"value":2175},"c",{"type":37,"tag":119,"props":2177,"children":2178},{"style":126},[2179],{"type":43,"value":2180}," =>",{"type":37,"tag":119,"props":2182,"children":2183},{"style":138},[2184],{"type":43,"value":2185}," `",{"type":37,"tag":119,"props":2187,"children":2188},{"style":149},[2189],{"type":43,"value":2190},"## ",{"type":37,"tag":119,"props":2192,"children":2193},{"style":138},[2194],{"type":43,"value":1026},{"type":37,"tag":119,"props":2196,"children":2197},{"style":132},[2198],{"type":43,"value":2175},{"type":37,"tag":119,"props":2200,"children":2201},{"style":138},[2202],{"type":43,"value":747},{"type":37,"tag":119,"props":2204,"children":2205},{"style":132},[2206],{"type":43,"value":1040},{"type":37,"tag":119,"props":2208,"children":2209},{"style":138},[2210],{"type":43,"value":766},{"type":37,"tag":119,"props":2212,"children":2213},{"style":132},[2214],{"type":43,"value":2215},"\\n",{"type":37,"tag":119,"props":2217,"children":2218},{"style":138},[2219],{"type":43,"value":1026},{"type":37,"tag":119,"props":2221,"children":2222},{"style":132},[2223],{"type":43,"value":2175},{"type":37,"tag":119,"props":2225,"children":2226},{"style":138},[2227],{"type":43,"value":747},{"type":37,"tag":119,"props":2229,"children":2230},{"style":132},[2231],{"type":43,"value":1086},{"type":37,"tag":119,"props":2233,"children":2234},{"style":138},[2235],{"type":43,"value":1045},{"type":37,"tag":119,"props":2237,"children":2238},{"style":729},[2239],{"type":43,"value":771},{"type":37,"tag":119,"props":2241,"children":2242},{"style":138},[2243],{"type":43,"value":747},{"type":37,"tag":119,"props":2245,"children":2246},{"style":408},[2247],{"type":43,"value":2248},"join",{"type":37,"tag":119,"props":2250,"children":2251},{"style":729},[2252],{"type":43,"value":721},{"type":37,"tag":119,"props":2254,"children":2255},{"style":138},[2256],{"type":43,"value":678},{"type":37,"tag":119,"props":2258,"children":2259},{"style":132},[2260],{"type":43,"value":2261},"\\n\\n",{"type":37,"tag":119,"props":2263,"children":2264},{"style":138},[2265],{"type":43,"value":678},{"type":37,"tag":119,"props":2267,"children":2268},{"style":729},[2269],{"type":43,"value":771},{"type":37,"tag":119,"props":2271,"children":2272},{"style":138},[2273],{"type":43,"value":683},{"type":37,"tag":119,"props":2275,"children":2277},{"class":121,"line":2276},30,[2278],{"type":37,"tag":119,"props":2279,"children":2280},{"style":138},[2281],{"type":43,"value":2282},"    }\n",{"type":37,"tag":119,"props":2284,"children":2286},{"class":121,"line":2285},31,[2287,2292,2296,2301,2305],{"type":37,"tag":119,"props":2288,"children":2289},{"style":640},[2290],{"type":43,"value":2291},"    return",{"type":37,"tag":119,"props":2293,"children":2294},{"style":138},[2295],{"type":43,"value":668},{"type":37,"tag":119,"props":2297,"children":2298},{"style":149},[2299],{"type":43,"value":2300},"No results found",{"type":37,"tag":119,"props":2302,"children":2303},{"style":138},[2304],{"type":43,"value":678},{"type":37,"tag":119,"props":2306,"children":2307},{"style":138},[2308],{"type":43,"value":683},{"type":37,"tag":119,"props":2310,"children":2312},{"class":121,"line":2311},32,[2313],{"type":37,"tag":119,"props":2314,"children":2315},{"style":138},[2316],{"type":43,"value":1103},{"type":37,"tag":119,"props":2318,"children":2320},{"class":121,"line":2319},33,[2321],{"type":37,"tag":119,"props":2322,"children":2323},{"style":138},[2324],{"type":43,"value":1173},{"type":37,"tag":509,"props":2326,"children":2327},{},[],{"type":37,"tag":78,"props":2329,"children":2331},{"id":2330},"quick-start-fast-apply",[2332],{"type":43,"value":2333},"Quick Start: Fast Apply",{"type":37,"tag":46,"props":2335,"children":2336},{},[2337],{"type":43,"value":2338},"Fast Apply merges AI-generated edits into existing code:",{"type":37,"tag":107,"props":2340,"children":2342},{"className":628,"code":2341,"language":630,"meta":112,"style":112},"import { MorphClient } from '@morphllm\u002Fmorphsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\n\nconst result = await morph.fastApply.apply({\n  originalCode: `function divide(a, b) {\n  return a \u002F b;\n}`,\n  editSnippet: `function divide(a, b) {\n  if (b === 0) throw new Error(\"Division by zero\");\n  return a \u002F b;\n}`\n});\n\nconsole.log(result.mergedCode);\n",[2343],{"type":37,"tag":115,"props":2344,"children":2345},{"__ignoreMap":112},[2346,2385,2392,2463,2470,2519,2540,2548,2563,2583,2591,2598,2610,2625,2632],{"type":37,"tag":119,"props":2347,"children":2348},{"class":121,"line":122},[2349,2353,2357,2361,2365,2369,2373,2377,2381],{"type":37,"tag":119,"props":2350,"children":2351},{"style":640},[2352],{"type":43,"value":643},{"type":37,"tag":119,"props":2354,"children":2355},{"style":138},[2356],{"type":43,"value":648},{"type":37,"tag":119,"props":2358,"children":2359},{"style":132},[2360],{"type":43,"value":653},{"type":37,"tag":119,"props":2362,"children":2363},{"style":138},[2364],{"type":43,"value":658},{"type":37,"tag":119,"props":2366,"children":2367},{"style":640},[2368],{"type":43,"value":663},{"type":37,"tag":119,"props":2370,"children":2371},{"style":138},[2372],{"type":43,"value":668},{"type":37,"tag":119,"props":2374,"children":2375},{"style":149},[2376],{"type":43,"value":673},{"type":37,"tag":119,"props":2378,"children":2379},{"style":138},[2380],{"type":43,"value":678},{"type":37,"tag":119,"props":2382,"children":2383},{"style":138},[2384],{"type":43,"value":683},{"type":37,"tag":119,"props":2386,"children":2387},{"class":121,"line":195},[2388],{"type":37,"tag":119,"props":2389,"children":2390},{"emptyLinePlaceholder":274},[2391],{"type":43,"value":277},{"type":37,"tag":119,"props":2393,"children":2394},{"class":121,"line":160},[2395,2399,2403,2407,2411,2415,2419,2423,2427,2431,2435,2439,2443,2447,2451,2455,2459],{"type":37,"tag":119,"props":2396,"children":2397},{"style":126},[2398],{"type":43,"value":698},{"type":37,"tag":119,"props":2400,"children":2401},{"style":132},[2402],{"type":43,"value":703},{"type":37,"tag":119,"props":2404,"children":2405},{"style":138},[2406],{"type":43,"value":141},{"type":37,"tag":119,"props":2408,"children":2409},{"style":138},[2410],{"type":43,"value":712},{"type":37,"tag":119,"props":2412,"children":2413},{"style":408},[2414],{"type":43,"value":653},{"type":37,"tag":119,"props":2416,"children":2417},{"style":132},[2418],{"type":43,"value":721},{"type":37,"tag":119,"props":2420,"children":2421},{"style":138},[2422],{"type":43,"value":726},{"type":37,"tag":119,"props":2424,"children":2425},{"style":729},[2426],{"type":43,"value":732},{"type":37,"tag":119,"props":2428,"children":2429},{"style":138},[2430],{"type":43,"value":737},{"type":37,"tag":119,"props":2432,"children":2433},{"style":132},[2434],{"type":43,"value":742},{"type":37,"tag":119,"props":2436,"children":2437},{"style":138},[2438],{"type":43,"value":747},{"type":37,"tag":119,"props":2440,"children":2441},{"style":132},[2442],{"type":43,"value":752},{"type":37,"tag":119,"props":2444,"children":2445},{"style":138},[2446],{"type":43,"value":747},{"type":37,"tag":119,"props":2448,"children":2449},{"style":132},[2450],{"type":43,"value":761},{"type":37,"tag":119,"props":2452,"children":2453},{"style":138},[2454],{"type":43,"value":766},{"type":37,"tag":119,"props":2456,"children":2457},{"style":132},[2458],{"type":43,"value":771},{"type":37,"tag":119,"props":2460,"children":2461},{"style":138},[2462],{"type":43,"value":683},{"type":37,"tag":119,"props":2464,"children":2465},{"class":121,"line":222},[2466],{"type":37,"tag":119,"props":2467,"children":2468},{"emptyLinePlaceholder":274},[2469],{"type":43,"value":277},{"type":37,"tag":119,"props":2471,"children":2472},{"class":121,"line":288},[2473,2477,2481,2485,2489,2493,2497,2502,2506,2511,2515],{"type":37,"tag":119,"props":2474,"children":2475},{"style":126},[2476],{"type":43,"value":698},{"type":37,"tag":119,"props":2478,"children":2479},{"style":132},[2480],{"type":43,"value":794},{"type":37,"tag":119,"props":2482,"children":2483},{"style":138},[2484],{"type":43,"value":141},{"type":37,"tag":119,"props":2486,"children":2487},{"style":640},[2488],{"type":43,"value":803},{"type":37,"tag":119,"props":2490,"children":2491},{"style":132},[2492],{"type":43,"value":808},{"type":37,"tag":119,"props":2494,"children":2495},{"style":138},[2496],{"type":43,"value":747},{"type":37,"tag":119,"props":2498,"children":2499},{"style":132},[2500],{"type":43,"value":2501},"fastApply",{"type":37,"tag":119,"props":2503,"children":2504},{"style":138},[2505],{"type":43,"value":747},{"type":37,"tag":119,"props":2507,"children":2508},{"style":408},[2509],{"type":43,"value":2510},"apply",{"type":37,"tag":119,"props":2512,"children":2513},{"style":132},[2514],{"type":43,"value":721},{"type":37,"tag":119,"props":2516,"children":2517},{"style":138},[2518],{"type":43,"value":835},{"type":37,"tag":119,"props":2520,"children":2521},{"class":121,"line":310},[2522,2527,2531,2535],{"type":37,"tag":119,"props":2523,"children":2524},{"style":729},[2525],{"type":43,"value":2526},"  originalCode",{"type":37,"tag":119,"props":2528,"children":2529},{"style":138},[2530],{"type":43,"value":737},{"type":37,"tag":119,"props":2532,"children":2533},{"style":138},[2534],{"type":43,"value":2185},{"type":37,"tag":119,"props":2536,"children":2537},{"style":149},[2538],{"type":43,"value":2539},"function divide(a, b) {\n",{"type":37,"tag":119,"props":2541,"children":2542},{"class":121,"line":318},[2543],{"type":37,"tag":119,"props":2544,"children":2545},{"style":149},[2546],{"type":43,"value":2547},"  return a \u002F b;\n",{"type":37,"tag":119,"props":2549,"children":2550},{"class":121,"line":327},[2551,2555,2559],{"type":37,"tag":119,"props":2552,"children":2553},{"style":149},[2554],{"type":43,"value":766},{"type":37,"tag":119,"props":2556,"children":2557},{"style":138},[2558],{"type":43,"value":1016},{"type":37,"tag":119,"props":2560,"children":2561},{"style":138},[2562],{"type":43,"value":865},{"type":37,"tag":119,"props":2564,"children":2565},{"class":121,"line":448},[2566,2571,2575,2579],{"type":37,"tag":119,"props":2567,"children":2568},{"style":729},[2569],{"type":43,"value":2570},"  editSnippet",{"type":37,"tag":119,"props":2572,"children":2573},{"style":138},[2574],{"type":43,"value":737},{"type":37,"tag":119,"props":2576,"children":2577},{"style":138},[2578],{"type":43,"value":2185},{"type":37,"tag":119,"props":2580,"children":2581},{"style":149},[2582],{"type":43,"value":2539},{"type":37,"tag":119,"props":2584,"children":2585},{"class":121,"line":477},[2586],{"type":37,"tag":119,"props":2587,"children":2588},{"style":149},[2589],{"type":43,"value":2590},"  if (b === 0) throw new Error(\"Division by zero\");\n",{"type":37,"tag":119,"props":2592,"children":2593},{"class":121,"line":941},[2594],{"type":37,"tag":119,"props":2595,"children":2596},{"style":149},[2597],{"type":43,"value":2547},{"type":37,"tag":119,"props":2599,"children":2600},{"class":121,"line":992},[2601,2605],{"type":37,"tag":119,"props":2602,"children":2603},{"style":149},[2604],{"type":43,"value":766},{"type":37,"tag":119,"props":2606,"children":2607},{"style":138},[2608],{"type":43,"value":2609},"`\n",{"type":37,"tag":119,"props":2611,"children":2612},{"class":121,"line":1056},[2613,2617,2621],{"type":37,"tag":119,"props":2614,"children":2615},{"style":138},[2616],{"type":43,"value":766},{"type":37,"tag":119,"props":2618,"children":2619},{"style":132},[2620],{"type":43,"value":771},{"type":37,"tag":119,"props":2622,"children":2623},{"style":138},[2624],{"type":43,"value":683},{"type":37,"tag":119,"props":2626,"children":2627},{"class":121,"line":1097},[2628],{"type":37,"tag":119,"props":2629,"children":2630},{"emptyLinePlaceholder":274},[2631],{"type":43,"value":277},{"type":37,"tag":119,"props":2633,"children":2634},{"class":121,"line":1106},[2635,2640,2644,2648,2653,2657,2662],{"type":37,"tag":119,"props":2636,"children":2637},{"style":132},[2638],{"type":43,"value":2639},"console",{"type":37,"tag":119,"props":2641,"children":2642},{"style":138},[2643],{"type":43,"value":747},{"type":37,"tag":119,"props":2645,"children":2646},{"style":408},[2647],{"type":43,"value":1007},{"type":37,"tag":119,"props":2649,"children":2650},{"style":132},[2651],{"type":43,"value":2652},"(result",{"type":37,"tag":119,"props":2654,"children":2655},{"style":138},[2656],{"type":43,"value":747},{"type":37,"tag":119,"props":2658,"children":2659},{"style":132},[2660],{"type":43,"value":2661},"mergedCode)",{"type":37,"tag":119,"props":2663,"children":2664},{"style":138},[2665],{"type":43,"value":683},{"type":37,"tag":519,"props":2667,"children":2669},{"id":2668},"direct-api-alternative",[2670],{"type":43,"value":2671},"Direct API (Alternative)",{"type":37,"tag":107,"props":2673,"children":2675},{"className":628,"code":2674,"language":630,"meta":112,"style":112},"const response = await fetch('https:\u002F\u002Fapi.morphllm.com\u002Fv1\u002Fchat\u002Fcompletions', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application\u002Fjson',\n    'Authorization': `Bearer ${process.env.MORPH_API_KEY}`\n  },\n  body: JSON.stringify({\n    model: 'morph-v3-fast',  \u002F\u002F or 'morph-v3-large' for complex edits\n    messages: [{\n      role: 'user',\n      content: `\u003Cinstruction>Add error handling\u003C\u002Finstruction>\n\u003Ccode>function divide(a, b) { return a \u002F b; }\u003C\u002Fcode>\n\u003Cupdate>function divide(a, b) {\n  if (b === 0) throw new Error(\"Division by zero\");\n  return a \u002F b;\n}\u003C\u002Fupdate>`\n    }],\n    temperature: 0\n  })\n});\n\nconst data = await response.json();\nconst mergedCode = data.choices[0].message.content;\n",[2676],{"type":37,"tag":115,"props":2677,"children":2678},{"__ignoreMap":112},[2679,2729,2758,2774,2812,2872,2880,2914,2948,2968,2997,3018,3026,3034,3041,3048,3060,3075,3093,3106,3121,3128,3170],{"type":37,"tag":119,"props":2680,"children":2681},{"class":121,"line":122},[2682,2686,2691,2695,2699,2704,2708,2712,2717,2721,2725],{"type":37,"tag":119,"props":2683,"children":2684},{"style":126},[2685],{"type":43,"value":698},{"type":37,"tag":119,"props":2687,"children":2688},{"style":132},[2689],{"type":43,"value":2690}," response ",{"type":37,"tag":119,"props":2692,"children":2693},{"style":138},[2694],{"type":43,"value":141},{"type":37,"tag":119,"props":2696,"children":2697},{"style":640},[2698],{"type":43,"value":803},{"type":37,"tag":119,"props":2700,"children":2701},{"style":408},[2702],{"type":43,"value":2703}," fetch",{"type":37,"tag":119,"props":2705,"children":2706},{"style":132},[2707],{"type":43,"value":721},{"type":37,"tag":119,"props":2709,"children":2710},{"style":138},[2711],{"type":43,"value":678},{"type":37,"tag":119,"props":2713,"children":2714},{"style":149},[2715],{"type":43,"value":2716},"https:\u002F\u002Fapi.morphllm.com\u002Fv1\u002Fchat\u002Fcompletions",{"type":37,"tag":119,"props":2718,"children":2719},{"style":138},[2720],{"type":43,"value":678},{"type":37,"tag":119,"props":2722,"children":2723},{"style":138},[2724],{"type":43,"value":1739},{"type":37,"tag":119,"props":2726,"children":2727},{"style":138},[2728],{"type":43,"value":1121},{"type":37,"tag":119,"props":2730,"children":2731},{"class":121,"line":195},[2732,2737,2741,2745,2750,2754],{"type":37,"tag":119,"props":2733,"children":2734},{"style":729},[2735],{"type":43,"value":2736},"  method",{"type":37,"tag":119,"props":2738,"children":2739},{"style":138},[2740],{"type":43,"value":737},{"type":37,"tag":119,"props":2742,"children":2743},{"style":138},[2744],{"type":43,"value":668},{"type":37,"tag":119,"props":2746,"children":2747},{"style":149},[2748],{"type":43,"value":2749},"POST",{"type":37,"tag":119,"props":2751,"children":2752},{"style":138},[2753],{"type":43,"value":678},{"type":37,"tag":119,"props":2755,"children":2756},{"style":138},[2757],{"type":43,"value":865},{"type":37,"tag":119,"props":2759,"children":2760},{"class":121,"line":160},[2761,2766,2770],{"type":37,"tag":119,"props":2762,"children":2763},{"style":729},[2764],{"type":43,"value":2765},"  headers",{"type":37,"tag":119,"props":2767,"children":2768},{"style":138},[2769],{"type":43,"value":737},{"type":37,"tag":119,"props":2771,"children":2772},{"style":138},[2773],{"type":43,"value":1121},{"type":37,"tag":119,"props":2775,"children":2776},{"class":121,"line":222},[2777,2782,2787,2791,2795,2799,2804,2808],{"type":37,"tag":119,"props":2778,"children":2779},{"style":138},[2780],{"type":43,"value":2781},"    '",{"type":37,"tag":119,"props":2783,"children":2784},{"style":729},[2785],{"type":43,"value":2786},"Content-Type",{"type":37,"tag":119,"props":2788,"children":2789},{"style":138},[2790],{"type":43,"value":678},{"type":37,"tag":119,"props":2792,"children":2793},{"style":138},[2794],{"type":43,"value":737},{"type":37,"tag":119,"props":2796,"children":2797},{"style":138},[2798],{"type":43,"value":668},{"type":37,"tag":119,"props":2800,"children":2801},{"style":149},[2802],{"type":43,"value":2803},"application\u002Fjson",{"type":37,"tag":119,"props":2805,"children":2806},{"style":138},[2807],{"type":43,"value":678},{"type":37,"tag":119,"props":2809,"children":2810},{"style":138},[2811],{"type":43,"value":865},{"type":37,"tag":119,"props":2813,"children":2814},{"class":121,"line":288},[2815,2819,2824,2828,2832,2836,2841,2845,2850,2854,2858,2862,2867],{"type":37,"tag":119,"props":2816,"children":2817},{"style":138},[2818],{"type":43,"value":2781},{"type":37,"tag":119,"props":2820,"children":2821},{"style":729},[2822],{"type":43,"value":2823},"Authorization",{"type":37,"tag":119,"props":2825,"children":2826},{"style":138},[2827],{"type":43,"value":678},{"type":37,"tag":119,"props":2829,"children":2830},{"style":138},[2831],{"type":43,"value":737},{"type":37,"tag":119,"props":2833,"children":2834},{"style":138},[2835],{"type":43,"value":2185},{"type":37,"tag":119,"props":2837,"children":2838},{"style":149},[2839],{"type":43,"value":2840},"Bearer ",{"type":37,"tag":119,"props":2842,"children":2843},{"style":138},[2844],{"type":43,"value":1026},{"type":37,"tag":119,"props":2846,"children":2847},{"style":132},[2848],{"type":43,"value":2849},"process",{"type":37,"tag":119,"props":2851,"children":2852},{"style":138},[2853],{"type":43,"value":747},{"type":37,"tag":119,"props":2855,"children":2856},{"style":132},[2857],{"type":43,"value":752},{"type":37,"tag":119,"props":2859,"children":2860},{"style":138},[2861],{"type":43,"value":747},{"type":37,"tag":119,"props":2863,"children":2864},{"style":132},[2865],{"type":43,"value":2866},"MORPH_API_KEY",{"type":37,"tag":119,"props":2868,"children":2869},{"style":138},[2870],{"type":43,"value":2871},"}`\n",{"type":37,"tag":119,"props":2873,"children":2874},{"class":121,"line":310},[2875],{"type":37,"tag":119,"props":2876,"children":2877},{"style":138},[2878],{"type":43,"value":2879},"  },\n",{"type":37,"tag":119,"props":2881,"children":2882},{"class":121,"line":318},[2883,2888,2892,2897,2901,2906,2910],{"type":37,"tag":119,"props":2884,"children":2885},{"style":729},[2886],{"type":43,"value":2887},"  body",{"type":37,"tag":119,"props":2889,"children":2890},{"style":138},[2891],{"type":43,"value":737},{"type":37,"tag":119,"props":2893,"children":2894},{"style":132},[2895],{"type":43,"value":2896}," JSON",{"type":37,"tag":119,"props":2898,"children":2899},{"style":138},[2900],{"type":43,"value":747},{"type":37,"tag":119,"props":2902,"children":2903},{"style":408},[2904],{"type":43,"value":2905},"stringify",{"type":37,"tag":119,"props":2907,"children":2908},{"style":132},[2909],{"type":43,"value":721},{"type":37,"tag":119,"props":2911,"children":2912},{"style":138},[2913],{"type":43,"value":835},{"type":37,"tag":119,"props":2915,"children":2916},{"class":121,"line":327},[2917,2922,2926,2930,2935,2939,2943],{"type":37,"tag":119,"props":2918,"children":2919},{"style":729},[2920],{"type":43,"value":2921},"    model",{"type":37,"tag":119,"props":2923,"children":2924},{"style":138},[2925],{"type":43,"value":737},{"type":37,"tag":119,"props":2927,"children":2928},{"style":138},[2929],{"type":43,"value":668},{"type":37,"tag":119,"props":2931,"children":2932},{"style":149},[2933],{"type":43,"value":2934},"morph-v3-fast",{"type":37,"tag":119,"props":2936,"children":2937},{"style":138},[2938],{"type":43,"value":678},{"type":37,"tag":119,"props":2940,"children":2941},{"style":138},[2942],{"type":43,"value":1739},{"type":37,"tag":119,"props":2944,"children":2945},{"style":199},[2946],{"type":43,"value":2947},"  \u002F\u002F or 'morph-v3-large' for complex edits\n",{"type":37,"tag":119,"props":2949,"children":2950},{"class":121,"line":448},[2951,2956,2960,2964],{"type":37,"tag":119,"props":2952,"children":2953},{"style":729},[2954],{"type":43,"value":2955},"    messages",{"type":37,"tag":119,"props":2957,"children":2958},{"style":138},[2959],{"type":43,"value":737},{"type":37,"tag":119,"props":2961,"children":2962},{"style":132},[2963],{"type":43,"value":1573},{"type":37,"tag":119,"props":2965,"children":2966},{"style":138},[2967],{"type":43,"value":835},{"type":37,"tag":119,"props":2969,"children":2970},{"class":121,"line":477},[2971,2976,2980,2984,2989,2993],{"type":37,"tag":119,"props":2972,"children":2973},{"style":729},[2974],{"type":43,"value":2975},"      role",{"type":37,"tag":119,"props":2977,"children":2978},{"style":138},[2979],{"type":43,"value":737},{"type":37,"tag":119,"props":2981,"children":2982},{"style":138},[2983],{"type":43,"value":668},{"type":37,"tag":119,"props":2985,"children":2986},{"style":149},[2987],{"type":43,"value":2988},"user",{"type":37,"tag":119,"props":2990,"children":2991},{"style":138},[2992],{"type":43,"value":678},{"type":37,"tag":119,"props":2994,"children":2995},{"style":138},[2996],{"type":43,"value":865},{"type":37,"tag":119,"props":2998,"children":2999},{"class":121,"line":941},[3000,3005,3009,3013],{"type":37,"tag":119,"props":3001,"children":3002},{"style":729},[3003],{"type":43,"value":3004},"      content",{"type":37,"tag":119,"props":3006,"children":3007},{"style":138},[3008],{"type":43,"value":737},{"type":37,"tag":119,"props":3010,"children":3011},{"style":138},[3012],{"type":43,"value":2185},{"type":37,"tag":119,"props":3014,"children":3015},{"style":149},[3016],{"type":43,"value":3017},"\u003Cinstruction>Add error handling\u003C\u002Finstruction>\n",{"type":37,"tag":119,"props":3019,"children":3020},{"class":121,"line":992},[3021],{"type":37,"tag":119,"props":3022,"children":3023},{"style":149},[3024],{"type":43,"value":3025},"\u003Ccode>function divide(a, b) { return a \u002F b; }\u003C\u002Fcode>\n",{"type":37,"tag":119,"props":3027,"children":3028},{"class":121,"line":1056},[3029],{"type":37,"tag":119,"props":3030,"children":3031},{"style":149},[3032],{"type":43,"value":3033},"\u003Cupdate>function divide(a, b) {\n",{"type":37,"tag":119,"props":3035,"children":3036},{"class":121,"line":1097},[3037],{"type":37,"tag":119,"props":3038,"children":3039},{"style":149},[3040],{"type":43,"value":2590},{"type":37,"tag":119,"props":3042,"children":3043},{"class":121,"line":1106},[3044],{"type":37,"tag":119,"props":3045,"children":3046},{"style":149},[3047],{"type":43,"value":2547},{"type":37,"tag":119,"props":3049,"children":3050},{"class":121,"line":1124},[3051,3056],{"type":37,"tag":119,"props":3052,"children":3053},{"style":149},[3054],{"type":43,"value":3055},"}\u003C\u002Fupdate>",{"type":37,"tag":119,"props":3057,"children":3058},{"style":138},[3059],{"type":43,"value":2609},{"type":37,"tag":119,"props":3061,"children":3062},{"class":121,"line":1167},[3063,3067,3071],{"type":37,"tag":119,"props":3064,"children":3065},{"style":138},[3066],{"type":43,"value":2084},{"type":37,"tag":119,"props":3068,"children":3069},{"style":132},[3070],{"type":43,"value":1828},{"type":37,"tag":119,"props":3072,"children":3073},{"style":138},[3074],{"type":43,"value":865},{"type":37,"tag":119,"props":3076,"children":3077},{"class":121,"line":1818},[3078,3083,3087],{"type":37,"tag":119,"props":3079,"children":3080},{"style":729},[3081],{"type":43,"value":3082},"    temperature",{"type":37,"tag":119,"props":3084,"children":3085},{"style":138},[3086],{"type":43,"value":737},{"type":37,"tag":119,"props":3088,"children":3090},{"style":3089},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[3091],{"type":43,"value":3092}," 0\n",{"type":37,"tag":119,"props":3094,"children":3095},{"class":121,"line":1835},[3096,3101],{"type":37,"tag":119,"props":3097,"children":3098},{"style":138},[3099],{"type":43,"value":3100},"  }",{"type":37,"tag":119,"props":3102,"children":3103},{"style":132},[3104],{"type":43,"value":3105},")\n",{"type":37,"tag":119,"props":3107,"children":3108},{"class":121,"line":24},[3109,3113,3117],{"type":37,"tag":119,"props":3110,"children":3111},{"style":138},[3112],{"type":43,"value":766},{"type":37,"tag":119,"props":3114,"children":3115},{"style":132},[3116],{"type":43,"value":771},{"type":37,"tag":119,"props":3118,"children":3119},{"style":138},[3120],{"type":43,"value":683},{"type":37,"tag":119,"props":3122,"children":3123},{"class":121,"line":1851},[3124],{"type":37,"tag":119,"props":3125,"children":3126},{"emptyLinePlaceholder":274},[3127],{"type":43,"value":277},{"type":37,"tag":119,"props":3129,"children":3130},{"class":121,"line":1927},[3131,3135,3140,3144,3148,3153,3157,3162,3166],{"type":37,"tag":119,"props":3132,"children":3133},{"style":126},[3134],{"type":43,"value":698},{"type":37,"tag":119,"props":3136,"children":3137},{"style":132},[3138],{"type":43,"value":3139}," data ",{"type":37,"tag":119,"props":3141,"children":3142},{"style":138},[3143],{"type":43,"value":141},{"type":37,"tag":119,"props":3145,"children":3146},{"style":640},[3147],{"type":43,"value":803},{"type":37,"tag":119,"props":3149,"children":3150},{"style":132},[3151],{"type":43,"value":3152}," response",{"type":37,"tag":119,"props":3154,"children":3155},{"style":138},[3156],{"type":43,"value":747},{"type":37,"tag":119,"props":3158,"children":3159},{"style":408},[3160],{"type":43,"value":3161},"json",{"type":37,"tag":119,"props":3163,"children":3164},{"style":132},[3165],{"type":43,"value":1533},{"type":37,"tag":119,"props":3167,"children":3168},{"style":138},[3169],{"type":43,"value":683},{"type":37,"tag":119,"props":3171,"children":3172},{"class":121,"line":1969},[3173,3177,3182,3186,3191,3195,3200,3205,3209,3213,3218,3222,3226],{"type":37,"tag":119,"props":3174,"children":3175},{"style":126},[3176],{"type":43,"value":698},{"type":37,"tag":119,"props":3178,"children":3179},{"style":132},[3180],{"type":43,"value":3181}," mergedCode ",{"type":37,"tag":119,"props":3183,"children":3184},{"style":138},[3185],{"type":43,"value":141},{"type":37,"tag":119,"props":3187,"children":3188},{"style":132},[3189],{"type":43,"value":3190}," data",{"type":37,"tag":119,"props":3192,"children":3193},{"style":138},[3194],{"type":43,"value":747},{"type":37,"tag":119,"props":3196,"children":3197},{"style":132},[3198],{"type":43,"value":3199},"choices[",{"type":37,"tag":119,"props":3201,"children":3202},{"style":3089},[3203],{"type":43,"value":3204},"0",{"type":37,"tag":119,"props":3206,"children":3207},{"style":132},[3208],{"type":43,"value":1828},{"type":37,"tag":119,"props":3210,"children":3211},{"style":138},[3212],{"type":43,"value":747},{"type":37,"tag":119,"props":3214,"children":3215},{"style":132},[3216],{"type":43,"value":3217},"message",{"type":37,"tag":119,"props":3219,"children":3220},{"style":138},[3221],{"type":43,"value":747},{"type":37,"tag":119,"props":3223,"children":3224},{"style":132},[3225],{"type":43,"value":1086},{"type":37,"tag":119,"props":3227,"children":3228},{"style":138},[3229],{"type":43,"value":683},{"type":37,"tag":509,"props":3231,"children":3232},{},[],{"type":37,"tag":78,"props":3234,"children":3236},{"id":3235},"tested-results",[3237],{"type":43,"value":3238},"Tested Results",{"type":37,"tag":46,"props":3240,"children":3241},{},[3242,3244,3251],{"type":43,"value":3243},"Tested on the ",{"type":37,"tag":94,"props":3245,"children":3248},{"href":3246,"rel":3247},"https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fletta-code",[98],[3249],{"type":43,"value":3250},"letta-code",{"type":43,"value":3252}," repository (~300 TypeScript files) using SDK v0.2.103:",{"type":37,"tag":3254,"props":3255,"children":3256},"table",{},[3257,3286],{"type":37,"tag":3258,"props":3259,"children":3260},"thead",{},[3261],{"type":37,"tag":3262,"props":3263,"children":3264},"tr",{},[3265,3271,3276,3281],{"type":37,"tag":3266,"props":3267,"children":3268},"th",{},[3269],{"type":43,"value":3270},"Query",{"type":37,"tag":3266,"props":3272,"children":3273},{},[3274],{"type":43,"value":3275},"Result",{"type":37,"tag":3266,"props":3277,"children":3278},{},[3279],{"type":43,"value":3280},"Time",{"type":37,"tag":3266,"props":3282,"children":3283},{},[3284],{"type":43,"value":3285},"Files Found",{"type":37,"tag":3287,"props":3288,"children":3289},"tbody",{},[3290,3328,3361,3396,3430],{"type":37,"tag":3262,"props":3291,"children":3292},{},[3293,3299,3304,3309],{"type":37,"tag":3294,"props":3295,"children":3296},"td",{},[3297],{"type":43,"value":3298},"\"Find authentication logic\"",{"type":37,"tag":3294,"props":3300,"children":3301},{},[3302],{"type":43,"value":3303},"✅",{"type":37,"tag":3294,"props":3305,"children":3306},{},[3307],{"type":43,"value":3308},"4.2s",{"type":37,"tag":3294,"props":3310,"children":3311},{},[3312,3318,3320,3326],{"type":37,"tag":115,"props":3313,"children":3315},{"className":3314},[],[3316],{"type":43,"value":3317},"src\u002Fauth\u002Foauth.ts",{"type":43,"value":3319},", ",{"type":37,"tag":115,"props":3321,"children":3323},{"className":3322},[],[3324],{"type":43,"value":3325},"src\u002Fauth\u002Fsetup.ts",{"type":43,"value":3327},", +2",{"type":37,"tag":3262,"props":3329,"children":3330},{},[3331,3336,3340,3345],{"type":37,"tag":3294,"props":3332,"children":3333},{},[3334],{"type":43,"value":3335},"\"Find the main CLI entry point\"",{"type":37,"tag":3294,"props":3337,"children":3338},{},[3339],{"type":43,"value":3303},{"type":37,"tag":3294,"props":3341,"children":3342},{},[3343],{"type":43,"value":3344},"5.8s",{"type":37,"tag":3294,"props":3346,"children":3347},{},[3348,3354,3355],{"type":37,"tag":115,"props":3349,"children":3351},{"className":3350},[],[3352],{"type":43,"value":3353},"src\u002Findex.ts",{"type":43,"value":3319},{"type":37,"tag":115,"props":3356,"children":3358},{"className":3357},[],[3359],{"type":43,"value":3360},"src\u002Fcli\u002FApp.tsx",{"type":37,"tag":3262,"props":3362,"children":3363},{},[3364,3369,3373,3378],{"type":37,"tag":3294,"props":3365,"children":3366},{},[3367],{"type":43,"value":3368},"\"Find where models are configured\"",{"type":37,"tag":3294,"props":3370,"children":3371},{},[3372],{"type":43,"value":3303},{"type":37,"tag":3294,"props":3374,"children":3375},{},[3376],{"type":43,"value":3377},"3.1s",{"type":37,"tag":3294,"props":3379,"children":3380},{},[3381,3387,3388,3394],{"type":37,"tag":115,"props":3382,"children":3384},{"className":3383},[],[3385],{"type":43,"value":3386},"src\u002Fagent\u002Fmodel.ts",{"type":43,"value":3319},{"type":37,"tag":115,"props":3389,"children":3391},{"className":3390},[],[3392],{"type":43,"value":3393},"src\u002Fmodels.json",{"type":43,"value":3395},", +1",{"type":37,"tag":3262,"props":3397,"children":3398},{},[3399,3404,3408,3413],{"type":37,"tag":3294,"props":3400,"children":3401},{},[3402],{"type":43,"value":3403},"\"Find how memory blocks work\"",{"type":37,"tag":3294,"props":3405,"children":3406},{},[3407],{"type":43,"value":3303},{"type":37,"tag":3294,"props":3409,"children":3410},{},[3411],{"type":43,"value":3412},"3.9s",{"type":37,"tag":3294,"props":3414,"children":3415},{},[3416,3422,3423,3429],{"type":37,"tag":115,"props":3417,"children":3419},{"className":3418},[],[3420],{"type":43,"value":3421},"src\u002Fagent\u002Fmemory.ts",{"type":43,"value":3319},{"type":37,"tag":115,"props":3424,"children":3426},{"className":3425},[],[3427],{"type":43,"value":3428},"src\u002Fagent\u002FmemoryFilesystem.ts",{"type":43,"value":3395},{"type":37,"tag":3262,"props":3431,"children":3432},{},[3433,3438,3442,3447],{"type":37,"tag":3294,"props":3434,"children":3435},{},[3436],{"type":43,"value":3437},"\"Find the settings manager\"",{"type":37,"tag":3294,"props":3439,"children":3440},{},[3441],{"type":43,"value":3303},{"type":37,"tag":3294,"props":3443,"children":3444},{},[3445],{"type":43,"value":3446},"2.9s",{"type":37,"tag":3294,"props":3448,"children":3449},{},[3450,3456,3457],{"type":37,"tag":115,"props":3451,"children":3453},{"className":3452},[],[3454],{"type":43,"value":3455},"src\u002Fsettings-manager.ts",{"type":43,"value":3319},{"type":37,"tag":115,"props":3458,"children":3460},{"className":3459},[],[3461],{"type":43,"value":3462},"src\u002Fsettings.ts",{"type":37,"tag":46,"props":3464,"children":3465},{},[3466],{"type":37,"tag":60,"props":3467,"children":3468},{},[3469],{"type":43,"value":3470},"5\u002F5 tests passed",{"type":37,"tag":519,"props":3472,"children":3474},{"id":3473},"performance-summary",[3475],{"type":43,"value":3476},"Performance Summary",{"type":37,"tag":52,"props":3478,"children":3479},{},[3480,3490,3500],{"type":37,"tag":56,"props":3481,"children":3482},{},[3483,3488],{"type":37,"tag":60,"props":3484,"children":3485},{},[3486],{"type":43,"value":3487},"Average time",{"type":43,"value":3489},": 4.0 seconds",{"type":37,"tag":56,"props":3491,"children":3492},{},[3493,3498],{"type":37,"tag":60,"props":3494,"children":3495},{},[3496],{"type":43,"value":3497},"Token efficiency",{"type":43,"value":3499},": 39% fewer input tokens vs manual search",{"type":37,"tag":56,"props":3501,"children":3502},{},[3503,3508],{"type":37,"tag":60,"props":3504,"children":3505},{},[3506],{"type":43,"value":3507},"Accuracy",{"type":43,"value":3509},": Finds relevant code in 2-4 turns",{"type":37,"tag":509,"props":3511,"children":3512},{},[],{"type":37,"tag":78,"props":3514,"children":3516},{"id":3515},"how-warpgrep-works",[3517],{"type":43,"value":3518},"How WarpGrep Works",{"type":37,"tag":46,"props":3520,"children":3521},{},[3522],{"type":43,"value":3523},"WarpGrep is an agentic search that runs up to 4 turns:",{"type":37,"tag":107,"props":3525,"children":3528},{"className":3526,"code":3527,"language":43},[501],"┌─────────────────────────────────────────────────────────────┐\n│  Turn 1: Analyze query, map repo structure, initial search  │\n├─────────────────────────────────────────────────────────────┤\n│  Turn 2-3: Refine search, read specific files               │\n├─────────────────────────────────────────────────────────────┤\n│  Turn 4: Return all relevant code locations                 │\n└─────────────────────────────────────────────────────────────┘\n",[3529],{"type":37,"tag":115,"props":3530,"children":3531},{"__ignoreMap":112},[3532],{"type":43,"value":3527},{"type":37,"tag":46,"props":3534,"children":3535},{},[3536],{"type":43,"value":3537},"The SDK handles the multi-turn conversation automatically, executing local tools:",{"type":37,"tag":3254,"props":3539,"children":3540},{},[3541,3562],{"type":37,"tag":3258,"props":3542,"children":3543},{},[3544],{"type":37,"tag":3262,"props":3545,"children":3546},{},[3547,3552,3557],{"type":37,"tag":3266,"props":3548,"children":3549},{},[3550],{"type":43,"value":3551},"Tool",{"type":37,"tag":3266,"props":3553,"children":3554},{},[3555],{"type":43,"value":3556},"Description",{"type":37,"tag":3266,"props":3558,"children":3559},{},[3560],{"type":43,"value":3561},"Implementation",{"type":37,"tag":3287,"props":3563,"children":3564},{},[3565,3592,3614],{"type":37,"tag":3262,"props":3566,"children":3567},{},[3568,3576,3581],{"type":37,"tag":3294,"props":3569,"children":3570},{},[3571],{"type":37,"tag":115,"props":3572,"children":3574},{"className":3573},[],[3575],{"type":43,"value":591},{"type":37,"tag":3294,"props":3577,"children":3578},{},[3579],{"type":43,"value":3580},"Regex search across files",{"type":37,"tag":3294,"props":3582,"children":3583},{},[3584,3586,3591],{"type":43,"value":3585},"Uses ripgrep (",{"type":37,"tag":115,"props":3587,"children":3589},{"className":3588},[],[3590],{"type":43,"value":333},{"type":43,"value":771},{"type":37,"tag":3262,"props":3593,"children":3594},{},[3595,3604,3609],{"type":37,"tag":3294,"props":3596,"children":3597},{},[3598],{"type":37,"tag":115,"props":3599,"children":3601},{"className":3600},[],[3602],{"type":43,"value":3603},"read",{"type":37,"tag":3294,"props":3605,"children":3606},{},[3607],{"type":43,"value":3608},"Read file contents",{"type":37,"tag":3294,"props":3610,"children":3611},{},[3612],{"type":43,"value":3613},"Local filesystem",{"type":37,"tag":3262,"props":3615,"children":3616},{},[3617,3626,3631],{"type":37,"tag":3294,"props":3618,"children":3619},{},[3620],{"type":37,"tag":115,"props":3621,"children":3623},{"className":3622},[],[3624],{"type":43,"value":3625},"list_dir",{"type":37,"tag":3294,"props":3627,"children":3628},{},[3629],{"type":43,"value":3630},"Show directory structure",{"type":37,"tag":3294,"props":3632,"children":3633},{},[3634],{"type":43,"value":3613},{"type":37,"tag":509,"props":3636,"children":3637},{},[],{"type":37,"tag":78,"props":3639,"children":3641},{"id":3640},"architecture",[3642],{"type":43,"value":3643},"Architecture",{"type":37,"tag":107,"props":3645,"children":3648},{"className":3646,"code":3647,"language":43},[501],"┌──────────────────────────────────────────────────────────────┐\n│                    Your Code \u002F Agent                         │\n└──────────────────────────┬───────────────────────────────────┘\n                           │\n                           ▼\n┌──────────────────────────────────────────────────────────────┐\n│              @morphllm\u002Fmorphsdk                              │\n│  ┌─────────────────────────────────────────────────────────┐ │\n│  │ 1. Build repo structure                                 │ │\n│  │ 2. Send query to Morph API                              │ │\n│  │ 3. Execute local tools (grep, read, list_dir)           │ │\n│  │ 4. Multi-turn refinement                                │ │\n│  │ 5. Return relevant code contexts                        │ │\n│  └─────────────────────────────────────────────────────────┘ │\n└──────────────────────────┬───────────────────────────────────┘\n                           │\n            ┌──────────────┴──────────────┐\n            ▼                             ▼\n┌───────────────────────┐    ┌───────────────────────┐\n│    Morph API          │    │   Local Filesystem    │\n│  (morph-warp-grep-v1) │    │   (ripgrep, fs)       │\n└───────────────────────┘    └───────────────────────┘\n",[3649],{"type":37,"tag":115,"props":3650,"children":3651},{"__ignoreMap":112},[3652],{"type":43,"value":3647},{"type":37,"tag":509,"props":3654,"children":3655},{},[],{"type":37,"tag":78,"props":3657,"children":3659},{"id":3658},"morphs-benchmarks",[3660],{"type":43,"value":3661},"Morph's Benchmarks",{"type":37,"tag":46,"props":3663,"children":3664},{},[3665],{"type":43,"value":3666},"From Morph's SWE-bench evaluation with Claude 4.5 Opus:",{"type":37,"tag":3254,"props":3668,"children":3669},{},[3670,3696],{"type":37,"tag":3258,"props":3671,"children":3672},{},[3673],{"type":37,"tag":3262,"props":3674,"children":3675},{},[3676,3681,3686,3691],{"type":37,"tag":3266,"props":3677,"children":3678},{},[3679],{"type":43,"value":3680},"Metric",{"type":37,"tag":3266,"props":3682,"children":3683},{},[3684],{"type":43,"value":3685},"Without WarpGrep",{"type":37,"tag":3266,"props":3687,"children":3688},{},[3689],{"type":43,"value":3690},"With WarpGrep",{"type":37,"tag":3266,"props":3692,"children":3693},{},[3694],{"type":43,"value":3695},"Improvement",{"type":37,"tag":3287,"props":3697,"children":3698},{},[3699,3725,3751],{"type":37,"tag":3262,"props":3700,"children":3701},{},[3702,3707,3712,3717],{"type":37,"tag":3294,"props":3703,"children":3704},{},[3705],{"type":43,"value":3706},"Input Tokens",{"type":37,"tag":3294,"props":3708,"children":3709},{},[3710],{"type":43,"value":3711},"14K",{"type":37,"tag":3294,"props":3713,"children":3714},{},[3715],{"type":43,"value":3716},"9K",{"type":37,"tag":3294,"props":3718,"children":3719},{},[3720],{"type":37,"tag":60,"props":3721,"children":3722},{},[3723],{"type":43,"value":3724},"39% fewer",{"type":37,"tag":3262,"props":3726,"children":3727},{},[3728,3733,3738,3743],{"type":37,"tag":3294,"props":3729,"children":3730},{},[3731],{"type":43,"value":3732},"Agent Turns",{"type":37,"tag":3294,"props":3734,"children":3735},{},[3736],{"type":43,"value":3737},"35.0",{"type":37,"tag":3294,"props":3739,"children":3740},{},[3741],{"type":43,"value":3742},"26.0",{"type":37,"tag":3294,"props":3744,"children":3745},{},[3746],{"type":37,"tag":60,"props":3747,"children":3748},{},[3749],{"type":43,"value":3750},"26% fewer",{"type":37,"tag":3262,"props":3752,"children":3753},{},[3754,3759,3764,3769],{"type":37,"tag":3294,"props":3755,"children":3756},{},[3757],{"type":43,"value":3758},"Tasks Solved",{"type":37,"tag":3294,"props":3760,"children":3761},{},[3762],{"type":43,"value":3763},"74.4%",{"type":37,"tag":3294,"props":3765,"children":3766},{},[3767],{"type":43,"value":3768},"81.9%",{"type":37,"tag":3294,"props":3770,"children":3771},{},[3772],{"type":37,"tag":60,"props":3773,"children":3774},{},[3775],{"type":43,"value":3776},"10% more",{"type":37,"tag":46,"props":3778,"children":3779},{},[3780,3782],{"type":43,"value":3781},"Source: ",{"type":37,"tag":94,"props":3783,"children":3786},{"href":3784,"rel":3785},"https:\u002F\u002Fwww.morphllm.com\u002Fbenchmarks\u002Fwarp-grep",[98],[3787],{"type":43,"value":3788},"Morph WarpGrep Benchmarks",{"type":37,"tag":509,"props":3790,"children":3791},{},[],{"type":37,"tag":78,"props":3793,"children":3795},{"id":3794},"common-patterns",[3796],{"type":43,"value":3797},"Common Patterns",{"type":37,"tag":519,"props":3799,"children":3801},{"id":3800},"reconnaissance-then-action",[3802],{"type":43,"value":3803},"Reconnaissance-Then-Action",{"type":37,"tag":107,"props":3805,"children":3807},{"className":628,"code":3806,"language":630,"meta":112,"style":112},"import { MorphClient } from '@morphllm\u002Fmorphsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\n\n\u002F\u002F 1. Search for relevant code\nconst result = await morph.warpGrep.execute({\n  query: 'Where is the payment processing logic?',\n  repoRoot: '.'\n});\n\n\u002F\u002F 2. Use found contexts to inform next steps\nif (result.success) {\n  const relevantFiles = result.contexts.map(c => c.file);\n  console.log('Found relevant files:', relevantFiles);\n  \u002F\u002F Now read\u002Fedit these specific files\n}\n",[3808],{"type":37,"tag":115,"props":3809,"children":3810},{"__ignoreMap":112},[3811,3850,3857,3928,3935,3943,3990,4018,4041,4056,4063,4071,4094,4164,4212,4220],{"type":37,"tag":119,"props":3812,"children":3813},{"class":121,"line":122},[3814,3818,3822,3826,3830,3834,3838,3842,3846],{"type":37,"tag":119,"props":3815,"children":3816},{"style":640},[3817],{"type":43,"value":643},{"type":37,"tag":119,"props":3819,"children":3820},{"style":138},[3821],{"type":43,"value":648},{"type":37,"tag":119,"props":3823,"children":3824},{"style":132},[3825],{"type":43,"value":653},{"type":37,"tag":119,"props":3827,"children":3828},{"style":138},[3829],{"type":43,"value":658},{"type":37,"tag":119,"props":3831,"children":3832},{"style":640},[3833],{"type":43,"value":663},{"type":37,"tag":119,"props":3835,"children":3836},{"style":138},[3837],{"type":43,"value":668},{"type":37,"tag":119,"props":3839,"children":3840},{"style":149},[3841],{"type":43,"value":673},{"type":37,"tag":119,"props":3843,"children":3844},{"style":138},[3845],{"type":43,"value":678},{"type":37,"tag":119,"props":3847,"children":3848},{"style":138},[3849],{"type":43,"value":683},{"type":37,"tag":119,"props":3851,"children":3852},{"class":121,"line":195},[3853],{"type":37,"tag":119,"props":3854,"children":3855},{"emptyLinePlaceholder":274},[3856],{"type":43,"value":277},{"type":37,"tag":119,"props":3858,"children":3859},{"class":121,"line":160},[3860,3864,3868,3872,3876,3880,3884,3888,3892,3896,3900,3904,3908,3912,3916,3920,3924],{"type":37,"tag":119,"props":3861,"children":3862},{"style":126},[3863],{"type":43,"value":698},{"type":37,"tag":119,"props":3865,"children":3866},{"style":132},[3867],{"type":43,"value":703},{"type":37,"tag":119,"props":3869,"children":3870},{"style":138},[3871],{"type":43,"value":141},{"type":37,"tag":119,"props":3873,"children":3874},{"style":138},[3875],{"type":43,"value":712},{"type":37,"tag":119,"props":3877,"children":3878},{"style":408},[3879],{"type":43,"value":653},{"type":37,"tag":119,"props":3881,"children":3882},{"style":132},[3883],{"type":43,"value":721},{"type":37,"tag":119,"props":3885,"children":3886},{"style":138},[3887],{"type":43,"value":726},{"type":37,"tag":119,"props":3889,"children":3890},{"style":729},[3891],{"type":43,"value":732},{"type":37,"tag":119,"props":3893,"children":3894},{"style":138},[3895],{"type":43,"value":737},{"type":37,"tag":119,"props":3897,"children":3898},{"style":132},[3899],{"type":43,"value":742},{"type":37,"tag":119,"props":3901,"children":3902},{"style":138},[3903],{"type":43,"value":747},{"type":37,"tag":119,"props":3905,"children":3906},{"style":132},[3907],{"type":43,"value":752},{"type":37,"tag":119,"props":3909,"children":3910},{"style":138},[3911],{"type":43,"value":747},{"type":37,"tag":119,"props":3913,"children":3914},{"style":132},[3915],{"type":43,"value":761},{"type":37,"tag":119,"props":3917,"children":3918},{"style":138},[3919],{"type":43,"value":766},{"type":37,"tag":119,"props":3921,"children":3922},{"style":132},[3923],{"type":43,"value":771},{"type":37,"tag":119,"props":3925,"children":3926},{"style":138},[3927],{"type":43,"value":683},{"type":37,"tag":119,"props":3929,"children":3930},{"class":121,"line":222},[3931],{"type":37,"tag":119,"props":3932,"children":3933},{"emptyLinePlaceholder":274},[3934],{"type":43,"value":277},{"type":37,"tag":119,"props":3936,"children":3937},{"class":121,"line":288},[3938],{"type":37,"tag":119,"props":3939,"children":3940},{"style":199},[3941],{"type":43,"value":3942},"\u002F\u002F 1. Search for relevant code\n",{"type":37,"tag":119,"props":3944,"children":3945},{"class":121,"line":310},[3946,3950,3954,3958,3962,3966,3970,3974,3978,3982,3986],{"type":37,"tag":119,"props":3947,"children":3948},{"style":126},[3949],{"type":43,"value":698},{"type":37,"tag":119,"props":3951,"children":3952},{"style":132},[3953],{"type":43,"value":794},{"type":37,"tag":119,"props":3955,"children":3956},{"style":138},[3957],{"type":43,"value":141},{"type":37,"tag":119,"props":3959,"children":3960},{"style":640},[3961],{"type":43,"value":803},{"type":37,"tag":119,"props":3963,"children":3964},{"style":132},[3965],{"type":43,"value":808},{"type":37,"tag":119,"props":3967,"children":3968},{"style":138},[3969],{"type":43,"value":747},{"type":37,"tag":119,"props":3971,"children":3972},{"style":132},[3973],{"type":43,"value":817},{"type":37,"tag":119,"props":3975,"children":3976},{"style":138},[3977],{"type":43,"value":747},{"type":37,"tag":119,"props":3979,"children":3980},{"style":408},[3981],{"type":43,"value":826},{"type":37,"tag":119,"props":3983,"children":3984},{"style":132},[3985],{"type":43,"value":721},{"type":37,"tag":119,"props":3987,"children":3988},{"style":138},[3989],{"type":43,"value":835},{"type":37,"tag":119,"props":3991,"children":3992},{"class":121,"line":318},[3993,3997,4001,4005,4010,4014],{"type":37,"tag":119,"props":3994,"children":3995},{"style":729},[3996],{"type":43,"value":843},{"type":37,"tag":119,"props":3998,"children":3999},{"style":138},[4000],{"type":43,"value":737},{"type":37,"tag":119,"props":4002,"children":4003},{"style":138},[4004],{"type":43,"value":668},{"type":37,"tag":119,"props":4006,"children":4007},{"style":149},[4008],{"type":43,"value":4009},"Where is the payment processing logic?",{"type":37,"tag":119,"props":4011,"children":4012},{"style":138},[4013],{"type":43,"value":678},{"type":37,"tag":119,"props":4015,"children":4016},{"style":138},[4017],{"type":43,"value":865},{"type":37,"tag":119,"props":4019,"children":4020},{"class":121,"line":327},[4021,4025,4029,4033,4037],{"type":37,"tag":119,"props":4022,"children":4023},{"style":729},[4024],{"type":43,"value":873},{"type":37,"tag":119,"props":4026,"children":4027},{"style":138},[4028],{"type":43,"value":737},{"type":37,"tag":119,"props":4030,"children":4031},{"style":138},[4032],{"type":43,"value":668},{"type":37,"tag":119,"props":4034,"children":4035},{"style":149},[4036],{"type":43,"value":747},{"type":37,"tag":119,"props":4038,"children":4039},{"style":138},[4040],{"type":43,"value":890},{"type":37,"tag":119,"props":4042,"children":4043},{"class":121,"line":448},[4044,4048,4052],{"type":37,"tag":119,"props":4045,"children":4046},{"style":138},[4047],{"type":43,"value":766},{"type":37,"tag":119,"props":4049,"children":4050},{"style":132},[4051],{"type":43,"value":771},{"type":37,"tag":119,"props":4053,"children":4054},{"style":138},[4055],{"type":43,"value":683},{"type":37,"tag":119,"props":4057,"children":4058},{"class":121,"line":477},[4059],{"type":37,"tag":119,"props":4060,"children":4061},{"emptyLinePlaceholder":274},[4062],{"type":43,"value":277},{"type":37,"tag":119,"props":4064,"children":4065},{"class":121,"line":941},[4066],{"type":37,"tag":119,"props":4067,"children":4068},{"style":199},[4069],{"type":43,"value":4070},"\u002F\u002F 2. Use found contexts to inform next steps\n",{"type":37,"tag":119,"props":4072,"children":4073},{"class":121,"line":992},[4074,4078,4082,4086,4090],{"type":37,"tag":119,"props":4075,"children":4076},{"style":640},[4077],{"type":43,"value":920},{"type":37,"tag":119,"props":4079,"children":4080},{"style":132},[4081],{"type":43,"value":925},{"type":37,"tag":119,"props":4083,"children":4084},{"style":138},[4085],{"type":43,"value":747},{"type":37,"tag":119,"props":4087,"children":4088},{"style":132},[4089],{"type":43,"value":934},{"type":37,"tag":119,"props":4091,"children":4092},{"style":138},[4093],{"type":43,"value":835},{"type":37,"tag":119,"props":4095,"children":4096},{"class":121,"line":1056},[4097,4102,4107,4111,4115,4119,4123,4127,4131,4135,4139,4143,4148,4152,4156,4160],{"type":37,"tag":119,"props":4098,"children":4099},{"style":126},[4100],{"type":43,"value":4101},"  const",{"type":37,"tag":119,"props":4103,"children":4104},{"style":132},[4105],{"type":43,"value":4106}," relevantFiles",{"type":37,"tag":119,"props":4108,"children":4109},{"style":138},[4110],{"type":43,"value":1984},{"type":37,"tag":119,"props":4112,"children":4113},{"style":132},[4114],{"type":43,"value":971},{"type":37,"tag":119,"props":4116,"children":4117},{"style":138},[4118],{"type":43,"value":747},{"type":37,"tag":119,"props":4120,"children":4121},{"style":132},[4122],{"type":43,"value":980},{"type":37,"tag":119,"props":4124,"children":4125},{"style":138},[4126],{"type":43,"value":747},{"type":37,"tag":119,"props":4128,"children":4129},{"style":408},[4130],{"type":43,"value":2166},{"type":37,"tag":119,"props":4132,"children":4133},{"style":729},[4134],{"type":43,"value":721},{"type":37,"tag":119,"props":4136,"children":4137},{"style":1874},[4138],{"type":43,"value":2175},{"type":37,"tag":119,"props":4140,"children":4141},{"style":126},[4142],{"type":43,"value":2180},{"type":37,"tag":119,"props":4144,"children":4145},{"style":132},[4146],{"type":43,"value":4147}," c",{"type":37,"tag":119,"props":4149,"children":4150},{"style":138},[4151],{"type":43,"value":747},{"type":37,"tag":119,"props":4153,"children":4154},{"style":132},[4155],{"type":43,"value":1040},{"type":37,"tag":119,"props":4157,"children":4158},{"style":729},[4159],{"type":43,"value":771},{"type":37,"tag":119,"props":4161,"children":4162},{"style":138},[4163],{"type":43,"value":683},{"type":37,"tag":119,"props":4165,"children":4166},{"class":121,"line":1097},[4167,4171,4175,4179,4183,4187,4192,4196,4200,4204,4208],{"type":37,"tag":119,"props":4168,"children":4169},{"style":132},[4170],{"type":43,"value":1130},{"type":37,"tag":119,"props":4172,"children":4173},{"style":138},[4174],{"type":43,"value":747},{"type":37,"tag":119,"props":4176,"children":4177},{"style":408},[4178],{"type":43,"value":1007},{"type":37,"tag":119,"props":4180,"children":4181},{"style":729},[4182],{"type":43,"value":721},{"type":37,"tag":119,"props":4184,"children":4185},{"style":138},[4186],{"type":43,"value":678},{"type":37,"tag":119,"props":4188,"children":4189},{"style":149},[4190],{"type":43,"value":4191},"Found relevant files:",{"type":37,"tag":119,"props":4193,"children":4194},{"style":138},[4195],{"type":43,"value":678},{"type":37,"tag":119,"props":4197,"children":4198},{"style":138},[4199],{"type":43,"value":1739},{"type":37,"tag":119,"props":4201,"children":4202},{"style":132},[4203],{"type":43,"value":4106},{"type":37,"tag":119,"props":4205,"children":4206},{"style":729},[4207],{"type":43,"value":771},{"type":37,"tag":119,"props":4209,"children":4210},{"style":138},[4211],{"type":43,"value":683},{"type":37,"tag":119,"props":4213,"children":4214},{"class":121,"line":1106},[4215],{"type":37,"tag":119,"props":4216,"children":4217},{"style":199},[4218],{"type":43,"value":4219},"  \u002F\u002F Now read\u002Fedit these specific files\n",{"type":37,"tag":119,"props":4221,"children":4222},{"class":121,"line":1124},[4223],{"type":37,"tag":119,"props":4224,"children":4225},{"style":138},[4226],{"type":43,"value":1173},{"type":37,"tag":519,"props":4228,"children":4230},{"id":4229},"combining-warpgrep-fast-apply",[4231],{"type":43,"value":4232},"Combining WarpGrep + Fast Apply",{"type":37,"tag":107,"props":4234,"children":4236},{"className":628,"code":4235,"language":630,"meta":112,"style":112},"import { MorphClient } from '@morphllm\u002Fmorphsdk';\n\nconst morph = new MorphClient({ apiKey: process.env.MORPH_API_KEY });\n\n\u002F\u002F 1. Find the code to modify\nconst search = await morph.warpGrep.execute({\n  query: 'Find the user validation function',\n  repoRoot: '.'\n});\n\nif (search.success && search.contexts.length > 0) {\n  const targetFile = search.contexts[0];\n  \n  \u002F\u002F 2. Apply an edit\n  const result = await morph.fastApply.apply({\n    originalCode: targetFile.content,\n    editSnippet: '\u002F\u002F Add your modified version here'\n  });\n  \n  console.log(result.mergedCode);\n}\n",[4237],{"type":37,"tag":115,"props":4238,"children":4239},{"__ignoreMap":112},[4240,4279,4286,4357,4364,4372,4420,4448,4471,4486,4493,4559,4604,4612,4620,4667,4695,4720,4735,4742,4782],{"type":37,"tag":119,"props":4241,"children":4242},{"class":121,"line":122},[4243,4247,4251,4255,4259,4263,4267,4271,4275],{"type":37,"tag":119,"props":4244,"children":4245},{"style":640},[4246],{"type":43,"value":643},{"type":37,"tag":119,"props":4248,"children":4249},{"style":138},[4250],{"type":43,"value":648},{"type":37,"tag":119,"props":4252,"children":4253},{"style":132},[4254],{"type":43,"value":653},{"type":37,"tag":119,"props":4256,"children":4257},{"style":138},[4258],{"type":43,"value":658},{"type":37,"tag":119,"props":4260,"children":4261},{"style":640},[4262],{"type":43,"value":663},{"type":37,"tag":119,"props":4264,"children":4265},{"style":138},[4266],{"type":43,"value":668},{"type":37,"tag":119,"props":4268,"children":4269},{"style":149},[4270],{"type":43,"value":673},{"type":37,"tag":119,"props":4272,"children":4273},{"style":138},[4274],{"type":43,"value":678},{"type":37,"tag":119,"props":4276,"children":4277},{"style":138},[4278],{"type":43,"value":683},{"type":37,"tag":119,"props":4280,"children":4281},{"class":121,"line":195},[4282],{"type":37,"tag":119,"props":4283,"children":4284},{"emptyLinePlaceholder":274},[4285],{"type":43,"value":277},{"type":37,"tag":119,"props":4287,"children":4288},{"class":121,"line":160},[4289,4293,4297,4301,4305,4309,4313,4317,4321,4325,4329,4333,4337,4341,4345,4349,4353],{"type":37,"tag":119,"props":4290,"children":4291},{"style":126},[4292],{"type":43,"value":698},{"type":37,"tag":119,"props":4294,"children":4295},{"style":132},[4296],{"type":43,"value":703},{"type":37,"tag":119,"props":4298,"children":4299},{"style":138},[4300],{"type":43,"value":141},{"type":37,"tag":119,"props":4302,"children":4303},{"style":138},[4304],{"type":43,"value":712},{"type":37,"tag":119,"props":4306,"children":4307},{"style":408},[4308],{"type":43,"value":653},{"type":37,"tag":119,"props":4310,"children":4311},{"style":132},[4312],{"type":43,"value":721},{"type":37,"tag":119,"props":4314,"children":4315},{"style":138},[4316],{"type":43,"value":726},{"type":37,"tag":119,"props":4318,"children":4319},{"style":729},[4320],{"type":43,"value":732},{"type":37,"tag":119,"props":4322,"children":4323},{"style":138},[4324],{"type":43,"value":737},{"type":37,"tag":119,"props":4326,"children":4327},{"style":132},[4328],{"type":43,"value":742},{"type":37,"tag":119,"props":4330,"children":4331},{"style":138},[4332],{"type":43,"value":747},{"type":37,"tag":119,"props":4334,"children":4335},{"style":132},[4336],{"type":43,"value":752},{"type":37,"tag":119,"props":4338,"children":4339},{"style":138},[4340],{"type":43,"value":747},{"type":37,"tag":119,"props":4342,"children":4343},{"style":132},[4344],{"type":43,"value":761},{"type":37,"tag":119,"props":4346,"children":4347},{"style":138},[4348],{"type":43,"value":766},{"type":37,"tag":119,"props":4350,"children":4351},{"style":132},[4352],{"type":43,"value":771},{"type":37,"tag":119,"props":4354,"children":4355},{"style":138},[4356],{"type":43,"value":683},{"type":37,"tag":119,"props":4358,"children":4359},{"class":121,"line":222},[4360],{"type":37,"tag":119,"props":4361,"children":4362},{"emptyLinePlaceholder":274},[4363],{"type":43,"value":277},{"type":37,"tag":119,"props":4365,"children":4366},{"class":121,"line":288},[4367],{"type":37,"tag":119,"props":4368,"children":4369},{"style":199},[4370],{"type":43,"value":4371},"\u002F\u002F 1. Find the code to modify\n",{"type":37,"tag":119,"props":4373,"children":4374},{"class":121,"line":310},[4375,4379,4384,4388,4392,4396,4400,4404,4408,4412,4416],{"type":37,"tag":119,"props":4376,"children":4377},{"style":126},[4378],{"type":43,"value":698},{"type":37,"tag":119,"props":4380,"children":4381},{"style":132},[4382],{"type":43,"value":4383}," search ",{"type":37,"tag":119,"props":4385,"children":4386},{"style":138},[4387],{"type":43,"value":141},{"type":37,"tag":119,"props":4389,"children":4390},{"style":640},[4391],{"type":43,"value":803},{"type":37,"tag":119,"props":4393,"children":4394},{"style":132},[4395],{"type":43,"value":808},{"type":37,"tag":119,"props":4397,"children":4398},{"style":138},[4399],{"type":43,"value":747},{"type":37,"tag":119,"props":4401,"children":4402},{"style":132},[4403],{"type":43,"value":817},{"type":37,"tag":119,"props":4405,"children":4406},{"style":138},[4407],{"type":43,"value":747},{"type":37,"tag":119,"props":4409,"children":4410},{"style":408},[4411],{"type":43,"value":826},{"type":37,"tag":119,"props":4413,"children":4414},{"style":132},[4415],{"type":43,"value":721},{"type":37,"tag":119,"props":4417,"children":4418},{"style":138},[4419],{"type":43,"value":835},{"type":37,"tag":119,"props":4421,"children":4422},{"class":121,"line":318},[4423,4427,4431,4435,4440,4444],{"type":37,"tag":119,"props":4424,"children":4425},{"style":729},[4426],{"type":43,"value":843},{"type":37,"tag":119,"props":4428,"children":4429},{"style":138},[4430],{"type":43,"value":737},{"type":37,"tag":119,"props":4432,"children":4433},{"style":138},[4434],{"type":43,"value":668},{"type":37,"tag":119,"props":4436,"children":4437},{"style":149},[4438],{"type":43,"value":4439},"Find the user validation function",{"type":37,"tag":119,"props":4441,"children":4442},{"style":138},[4443],{"type":43,"value":678},{"type":37,"tag":119,"props":4445,"children":4446},{"style":138},[4447],{"type":43,"value":865},{"type":37,"tag":119,"props":4449,"children":4450},{"class":121,"line":327},[4451,4455,4459,4463,4467],{"type":37,"tag":119,"props":4452,"children":4453},{"style":729},[4454],{"type":43,"value":873},{"type":37,"tag":119,"props":4456,"children":4457},{"style":138},[4458],{"type":43,"value":737},{"type":37,"tag":119,"props":4460,"children":4461},{"style":138},[4462],{"type":43,"value":668},{"type":37,"tag":119,"props":4464,"children":4465},{"style":149},[4466],{"type":43,"value":747},{"type":37,"tag":119,"props":4468,"children":4469},{"style":138},[4470],{"type":43,"value":890},{"type":37,"tag":119,"props":4472,"children":4473},{"class":121,"line":448},[4474,4478,4482],{"type":37,"tag":119,"props":4475,"children":4476},{"style":138},[4477],{"type":43,"value":766},{"type":37,"tag":119,"props":4479,"children":4480},{"style":132},[4481],{"type":43,"value":771},{"type":37,"tag":119,"props":4483,"children":4484},{"style":138},[4485],{"type":43,"value":683},{"type":37,"tag":119,"props":4487,"children":4488},{"class":121,"line":477},[4489],{"type":37,"tag":119,"props":4490,"children":4491},{"emptyLinePlaceholder":274},[4492],{"type":43,"value":277},{"type":37,"tag":119,"props":4494,"children":4495},{"class":121,"line":941},[4496,4500,4505,4509,4514,4519,4524,4528,4532,4536,4541,4546,4551,4555],{"type":37,"tag":119,"props":4497,"children":4498},{"style":640},[4499],{"type":43,"value":920},{"type":37,"tag":119,"props":4501,"children":4502},{"style":132},[4503],{"type":43,"value":4504}," (search",{"type":37,"tag":119,"props":4506,"children":4507},{"style":138},[4508],{"type":43,"value":747},{"type":37,"tag":119,"props":4510,"children":4511},{"style":132},[4512],{"type":43,"value":4513},"success ",{"type":37,"tag":119,"props":4515,"children":4516},{"style":138},[4517],{"type":43,"value":4518},"&&",{"type":37,"tag":119,"props":4520,"children":4521},{"style":132},[4522],{"type":43,"value":4523}," search",{"type":37,"tag":119,"props":4525,"children":4526},{"style":138},[4527],{"type":43,"value":747},{"type":37,"tag":119,"props":4529,"children":4530},{"style":132},[4531],{"type":43,"value":980},{"type":37,"tag":119,"props":4533,"children":4534},{"style":138},[4535],{"type":43,"value":747},{"type":37,"tag":119,"props":4537,"children":4538},{"style":132},[4539],{"type":43,"value":4540},"length ",{"type":37,"tag":119,"props":4542,"children":4543},{"style":138},[4544],{"type":43,"value":4545},">",{"type":37,"tag":119,"props":4547,"children":4548},{"style":3089},[4549],{"type":43,"value":4550}," 0",{"type":37,"tag":119,"props":4552,"children":4553},{"style":132},[4554],{"type":43,"value":985},{"type":37,"tag":119,"props":4556,"children":4557},{"style":138},[4558],{"type":43,"value":835},{"type":37,"tag":119,"props":4560,"children":4561},{"class":121,"line":992},[4562,4566,4571,4575,4579,4583,4587,4592,4596,4600],{"type":37,"tag":119,"props":4563,"children":4564},{"style":126},[4565],{"type":43,"value":4101},{"type":37,"tag":119,"props":4567,"children":4568},{"style":132},[4569],{"type":43,"value":4570}," targetFile",{"type":37,"tag":119,"props":4572,"children":4573},{"style":138},[4574],{"type":43,"value":1984},{"type":37,"tag":119,"props":4576,"children":4577},{"style":132},[4578],{"type":43,"value":4523},{"type":37,"tag":119,"props":4580,"children":4581},{"style":138},[4582],{"type":43,"value":747},{"type":37,"tag":119,"props":4584,"children":4585},{"style":132},[4586],{"type":43,"value":980},{"type":37,"tag":119,"props":4588,"children":4589},{"style":729},[4590],{"type":43,"value":4591},"[",{"type":37,"tag":119,"props":4593,"children":4594},{"style":3089},[4595],{"type":43,"value":3204},{"type":37,"tag":119,"props":4597,"children":4598},{"style":729},[4599],{"type":43,"value":1828},{"type":37,"tag":119,"props":4601,"children":4602},{"style":138},[4603],{"type":43,"value":683},{"type":37,"tag":119,"props":4605,"children":4606},{"class":121,"line":1056},[4607],{"type":37,"tag":119,"props":4608,"children":4609},{"style":729},[4610],{"type":43,"value":4611},"  \n",{"type":37,"tag":119,"props":4613,"children":4614},{"class":121,"line":1097},[4615],{"type":37,"tag":119,"props":4616,"children":4617},{"style":199},[4618],{"type":43,"value":4619},"  \u002F\u002F 2. Apply an edit\n",{"type":37,"tag":119,"props":4621,"children":4622},{"class":121,"line":1106},[4623,4627,4631,4635,4639,4643,4647,4651,4655,4659,4663],{"type":37,"tag":119,"props":4624,"children":4625},{"style":126},[4626],{"type":43,"value":4101},{"type":37,"tag":119,"props":4628,"children":4629},{"style":132},[4630],{"type":43,"value":971},{"type":37,"tag":119,"props":4632,"children":4633},{"style":138},[4634],{"type":43,"value":1984},{"type":37,"tag":119,"props":4636,"children":4637},{"style":640},[4638],{"type":43,"value":803},{"type":37,"tag":119,"props":4640,"children":4641},{"style":132},[4642],{"type":43,"value":808},{"type":37,"tag":119,"props":4644,"children":4645},{"style":138},[4646],{"type":43,"value":747},{"type":37,"tag":119,"props":4648,"children":4649},{"style":132},[4650],{"type":43,"value":2501},{"type":37,"tag":119,"props":4652,"children":4653},{"style":138},[4654],{"type":43,"value":747},{"type":37,"tag":119,"props":4656,"children":4657},{"style":408},[4658],{"type":43,"value":2510},{"type":37,"tag":119,"props":4660,"children":4661},{"style":729},[4662],{"type":43,"value":721},{"type":37,"tag":119,"props":4664,"children":4665},{"style":138},[4666],{"type":43,"value":835},{"type":37,"tag":119,"props":4668,"children":4669},{"class":121,"line":1124},[4670,4675,4679,4683,4687,4691],{"type":37,"tag":119,"props":4671,"children":4672},{"style":729},[4673],{"type":43,"value":4674},"    originalCode",{"type":37,"tag":119,"props":4676,"children":4677},{"style":138},[4678],{"type":43,"value":737},{"type":37,"tag":119,"props":4680,"children":4681},{"style":132},[4682],{"type":43,"value":4570},{"type":37,"tag":119,"props":4684,"children":4685},{"style":138},[4686],{"type":43,"value":747},{"type":37,"tag":119,"props":4688,"children":4689},{"style":132},[4690],{"type":43,"value":1086},{"type":37,"tag":119,"props":4692,"children":4693},{"style":138},[4694],{"type":43,"value":865},{"type":37,"tag":119,"props":4696,"children":4697},{"class":121,"line":1167},[4698,4703,4707,4711,4716],{"type":37,"tag":119,"props":4699,"children":4700},{"style":729},[4701],{"type":43,"value":4702},"    editSnippet",{"type":37,"tag":119,"props":4704,"children":4705},{"style":138},[4706],{"type":43,"value":737},{"type":37,"tag":119,"props":4708,"children":4709},{"style":138},[4710],{"type":43,"value":668},{"type":37,"tag":119,"props":4712,"children":4713},{"style":149},[4714],{"type":43,"value":4715},"\u002F\u002F Add your modified version here",{"type":37,"tag":119,"props":4717,"children":4718},{"style":138},[4719],{"type":43,"value":890},{"type":37,"tag":119,"props":4721,"children":4722},{"class":121,"line":1818},[4723,4727,4731],{"type":37,"tag":119,"props":4724,"children":4725},{"style":138},[4726],{"type":43,"value":3100},{"type":37,"tag":119,"props":4728,"children":4729},{"style":729},[4730],{"type":43,"value":771},{"type":37,"tag":119,"props":4732,"children":4733},{"style":138},[4734],{"type":43,"value":683},{"type":37,"tag":119,"props":4736,"children":4737},{"class":121,"line":1835},[4738],{"type":37,"tag":119,"props":4739,"children":4740},{"style":729},[4741],{"type":43,"value":4611},{"type":37,"tag":119,"props":4743,"children":4744},{"class":121,"line":24},[4745,4749,4753,4757,4761,4765,4769,4774,4778],{"type":37,"tag":119,"props":4746,"children":4747},{"style":132},[4748],{"type":43,"value":1130},{"type":37,"tag":119,"props":4750,"children":4751},{"style":138},[4752],{"type":43,"value":747},{"type":37,"tag":119,"props":4754,"children":4755},{"style":408},[4756],{"type":43,"value":1007},{"type":37,"tag":119,"props":4758,"children":4759},{"style":729},[4760],{"type":43,"value":721},{"type":37,"tag":119,"props":4762,"children":4763},{"style":132},[4764],{"type":43,"value":2119},{"type":37,"tag":119,"props":4766,"children":4767},{"style":138},[4768],{"type":43,"value":747},{"type":37,"tag":119,"props":4770,"children":4771},{"style":132},[4772],{"type":43,"value":4773},"mergedCode",{"type":37,"tag":119,"props":4775,"children":4776},{"style":729},[4777],{"type":43,"value":771},{"type":37,"tag":119,"props":4779,"children":4780},{"style":138},[4781],{"type":43,"value":683},{"type":37,"tag":119,"props":4783,"children":4784},{"class":121,"line":1851},[4785],{"type":37,"tag":119,"props":4786,"children":4787},{"style":138},[4788],{"type":43,"value":1173},{"type":37,"tag":509,"props":4790,"children":4791},{},[],{"type":37,"tag":78,"props":4793,"children":4795},{"id":4794},"mcp-integration",[4796],{"type":43,"value":4797},"MCP Integration",{"type":37,"tag":46,"props":4799,"children":4800},{},[4801],{"type":43,"value":4802},"For personal use with Claude Code, Cursor, or other MCP clients:",{"type":37,"tag":107,"props":4804,"children":4806},{"className":109,"code":4805,"language":111,"meta":112,"style":112},"# Install MCP server\nclaude mcp add morph --scope user -e MORPH_API_KEY=YOUR_API_KEY --npx -y @morphllm\u002Fmorphmcp\n",[4807],{"type":37,"tag":115,"props":4808,"children":4809},{"__ignoreMap":112},[4810,4818],{"type":37,"tag":119,"props":4811,"children":4812},{"class":121,"line":122},[4813],{"type":37,"tag":119,"props":4814,"children":4815},{"style":199},[4816],{"type":43,"value":4817},"# Install MCP server\n",{"type":37,"tag":119,"props":4819,"children":4820},{"class":121,"line":195},[4821,4826,4831,4835,4839,4844,4849,4854,4859,4864,4869],{"type":37,"tag":119,"props":4822,"children":4823},{"style":179},[4824],{"type":43,"value":4825},"claude",{"type":37,"tag":119,"props":4827,"children":4828},{"style":149},[4829],{"type":43,"value":4830}," mcp",{"type":37,"tag":119,"props":4832,"children":4833},{"style":149},[4834],{"type":43,"value":187},{"type":37,"tag":119,"props":4836,"children":4837},{"style":149},[4838],{"type":43,"value":808},{"type":37,"tag":119,"props":4840,"children":4841},{"style":149},[4842],{"type":43,"value":4843}," --scope",{"type":37,"tag":119,"props":4845,"children":4846},{"style":149},[4847],{"type":43,"value":4848}," user",{"type":37,"tag":119,"props":4850,"children":4851},{"style":149},[4852],{"type":43,"value":4853}," -e",{"type":37,"tag":119,"props":4855,"children":4856},{"style":149},[4857],{"type":43,"value":4858}," MORPH_API_KEY=YOUR_API_KEY",{"type":37,"tag":119,"props":4860,"children":4861},{"style":149},[4862],{"type":43,"value":4863}," --npx",{"type":37,"tag":119,"props":4865,"children":4866},{"style":149},[4867],{"type":43,"value":4868}," -y",{"type":37,"tag":119,"props":4870,"children":4871},{"style":149},[4872],{"type":43,"value":4873}," @morphllm\u002Fmorphmcp\n",{"type":37,"tag":46,"props":4875,"children":4876},{},[4877,4879,4885],{"type":43,"value":4878},"This adds a ",{"type":37,"tag":115,"props":4880,"children":4882},{"className":4881},[],[4883],{"type":43,"value":4884},"warpgrep_codebase_search",{"type":43,"value":4886}," tool to your MCP client.",{"type":37,"tag":509,"props":4888,"children":4889},{},[],{"type":37,"tag":78,"props":4891,"children":4893},{"id":4892},"troubleshooting",[4894],{"type":43,"value":4895},"Troubleshooting",{"type":37,"tag":519,"props":4897,"children":4899},{"id":4898},"ripgrep-not-found",[4900],{"type":43,"value":4901},"ripgrep Not Found",{"type":37,"tag":107,"props":4903,"children":4905},{"className":109,"code":4904,"language":111,"meta":112,"style":112},"# Install ripgrep\nbrew install ripgrep  # macOS\nsudo apt install ripgrep  # Ubuntu\u002FDebian\n\n# Verify\nrg --version\n",[4906],{"type":37,"tag":115,"props":4907,"children":4908},{"__ignoreMap":112},[4909,4917,4938,4962,4969,4977],{"type":37,"tag":119,"props":4910,"children":4911},{"class":121,"line":122},[4912],{"type":37,"tag":119,"props":4913,"children":4914},{"style":199},[4915],{"type":43,"value":4916},"# Install ripgrep\n",{"type":37,"tag":119,"props":4918,"children":4919},{"class":121,"line":195},[4920,4924,4928,4933],{"type":37,"tag":119,"props":4921,"children":4922},{"style":179},[4923],{"type":43,"value":259},{"type":37,"tag":119,"props":4925,"children":4926},{"style":149},[4927],{"type":43,"value":215},{"type":37,"tag":119,"props":4929,"children":4930},{"style":149},[4931],{"type":43,"value":4932}," ripgrep",{"type":37,"tag":119,"props":4934,"children":4935},{"style":199},[4936],{"type":43,"value":4937},"  # macOS\n",{"type":37,"tag":119,"props":4939,"children":4940},{"class":121,"line":160},[4941,4945,4949,4953,4957],{"type":37,"tag":119,"props":4942,"children":4943},{"style":179},[4944],{"type":43,"value":294},{"type":37,"tag":119,"props":4946,"children":4947},{"style":149},[4948],{"type":43,"value":299},{"type":37,"tag":119,"props":4950,"children":4951},{"style":149},[4952],{"type":43,"value":215},{"type":37,"tag":119,"props":4954,"children":4955},{"style":149},[4956],{"type":43,"value":4932},{"type":37,"tag":119,"props":4958,"children":4959},{"style":199},[4960],{"type":43,"value":4961},"  # Ubuntu\u002FDebian\n",{"type":37,"tag":119,"props":4963,"children":4964},{"class":121,"line":222},[4965],{"type":37,"tag":119,"props":4966,"children":4967},{"emptyLinePlaceholder":274},[4968],{"type":43,"value":277},{"type":37,"tag":119,"props":4970,"children":4971},{"class":121,"line":288},[4972],{"type":37,"tag":119,"props":4973,"children":4974},{"style":199},[4975],{"type":43,"value":4976},"# Verify\n",{"type":37,"tag":119,"props":4978,"children":4979},{"class":121,"line":310},[4980,4984],{"type":37,"tag":119,"props":4981,"children":4982},{"style":179},[4983],{"type":43,"value":333},{"type":37,"tag":119,"props":4985,"children":4986},{"style":149},[4987],{"type":43,"value":338},{"type":37,"tag":519,"props":4989,"children":4991},{"id":4990},"api-key-issues",[4992],{"type":43,"value":4993},"API Key Issues",{"type":37,"tag":107,"props":4995,"children":4997},{"className":109,"code":4996,"language":111,"meta":112,"style":112},"# Verify API key works\ncurl -X POST https:\u002F\u002Fapi.morphllm.com\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $MORPH_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"model\":\"morph-v3-fast\",\"messages\":[{\"role\":\"user\",\"content\":\"test\"}]}'\n",[4998],{"type":37,"tag":115,"props":4999,"children":5000},{"__ignoreMap":112},[5001,5009,5037,5068,5092],{"type":37,"tag":119,"props":5002,"children":5003},{"class":121,"line":122},[5004],{"type":37,"tag":119,"props":5005,"children":5006},{"style":199},[5007],{"type":43,"value":5008},"# Verify API key works\n",{"type":37,"tag":119,"props":5010,"children":5011},{"class":121,"line":195},[5012,5017,5022,5027,5032],{"type":37,"tag":119,"props":5013,"children":5014},{"style":179},[5015],{"type":43,"value":5016},"curl",{"type":37,"tag":119,"props":5018,"children":5019},{"style":149},[5020],{"type":43,"value":5021}," -X",{"type":37,"tag":119,"props":5023,"children":5024},{"style":149},[5025],{"type":43,"value":5026}," POST",{"type":37,"tag":119,"props":5028,"children":5029},{"style":149},[5030],{"type":43,"value":5031}," https:\u002F\u002Fapi.morphllm.com\u002Fv1\u002Fchat\u002Fcompletions",{"type":37,"tag":119,"props":5033,"children":5034},{"style":132},[5035],{"type":43,"value":5036}," \\\n",{"type":37,"tag":119,"props":5038,"children":5039},{"class":121,"line":160},[5040,5045,5050,5055,5060,5064],{"type":37,"tag":119,"props":5041,"children":5042},{"style":149},[5043],{"type":43,"value":5044},"  -H",{"type":37,"tag":119,"props":5046,"children":5047},{"style":138},[5048],{"type":43,"value":5049}," \"",{"type":37,"tag":119,"props":5051,"children":5052},{"style":149},[5053],{"type":43,"value":5054},"Authorization: Bearer ",{"type":37,"tag":119,"props":5056,"children":5057},{"style":132},[5058],{"type":43,"value":5059},"$MORPH_API_KEY",{"type":37,"tag":119,"props":5061,"children":5062},{"style":138},[5063],{"type":43,"value":146},{"type":37,"tag":119,"props":5065,"children":5066},{"style":132},[5067],{"type":43,"value":5036},{"type":37,"tag":119,"props":5069,"children":5070},{"class":121,"line":222},[5071,5075,5079,5084,5088],{"type":37,"tag":119,"props":5072,"children":5073},{"style":149},[5074],{"type":43,"value":5044},{"type":37,"tag":119,"props":5076,"children":5077},{"style":138},[5078],{"type":43,"value":5049},{"type":37,"tag":119,"props":5080,"children":5081},{"style":149},[5082],{"type":43,"value":5083},"Content-Type: application\u002Fjson",{"type":37,"tag":119,"props":5085,"children":5086},{"style":138},[5087],{"type":43,"value":146},{"type":37,"tag":119,"props":5089,"children":5090},{"style":132},[5091],{"type":43,"value":5036},{"type":37,"tag":119,"props":5093,"children":5094},{"class":121,"line":288},[5095,5100,5104,5109],{"type":37,"tag":119,"props":5096,"children":5097},{"style":149},[5098],{"type":43,"value":5099},"  -d",{"type":37,"tag":119,"props":5101,"children":5102},{"style":138},[5103],{"type":43,"value":668},{"type":37,"tag":119,"props":5105,"children":5106},{"style":149},[5107],{"type":43,"value":5108},"{\"model\":\"morph-v3-fast\",\"messages\":[{\"role\":\"user\",\"content\":\"test\"}]}",{"type":37,"tag":119,"props":5110,"children":5111},{"style":138},[5112],{"type":43,"value":890},{"type":37,"tag":519,"props":5114,"children":5116},{"id":5115},"sdk-version-issues",[5117],{"type":43,"value":5118},"SDK Version Issues",{"type":37,"tag":46,"props":5120,"children":5121},{},[5122],{"type":43,"value":5123},"Ensure you're using the latest SDK:",{"type":37,"tag":107,"props":5125,"children":5127},{"className":109,"code":5126,"language":111,"meta":112,"style":112},"bun add @morphllm\u002Fmorphsdk@latest\n# or\nnpm install @morphllm\u002Fmorphsdk@latest\n",[5128],{"type":37,"tag":115,"props":5129,"children":5130},{"__ignoreMap":112},[5131,5147,5154],{"type":37,"tag":119,"props":5132,"children":5133},{"class":121,"line":122},[5134,5138,5142],{"type":37,"tag":119,"props":5135,"children":5136},{"style":179},[5137],{"type":43,"value":182},{"type":37,"tag":119,"props":5139,"children":5140},{"style":149},[5141],{"type":43,"value":187},{"type":37,"tag":119,"props":5143,"children":5144},{"style":149},[5145],{"type":43,"value":5146}," @morphllm\u002Fmorphsdk@latest\n",{"type":37,"tag":119,"props":5148,"children":5149},{"class":121,"line":195},[5150],{"type":37,"tag":119,"props":5151,"children":5152},{"style":199},[5153],{"type":43,"value":202},{"type":37,"tag":119,"props":5155,"children":5156},{"class":121,"line":160},[5157,5161,5165],{"type":37,"tag":119,"props":5158,"children":5159},{"style":179},[5160],{"type":43,"value":210},{"type":37,"tag":119,"props":5162,"children":5163},{"style":149},[5164],{"type":43,"value":215},{"type":37,"tag":119,"props":5166,"children":5167},{"style":149},[5168],{"type":43,"value":5146},{"type":37,"tag":509,"props":5170,"children":5171},{},[],{"type":37,"tag":78,"props":5173,"children":5175},{"id":5174},"cost-considerations",[5176],{"type":43,"value":5177},"Cost Considerations",{"type":37,"tag":52,"props":5179,"children":5180},{},[5181,5193,5205,5210,5221],{"type":37,"tag":56,"props":5182,"children":5183},{},[5184,5186,5191],{"type":43,"value":5185},"WarpGrep uses ",{"type":37,"tag":60,"props":5187,"children":5188},{},[5189],{"type":43,"value":5190},"1-4 API calls",{"type":43,"value":5192}," per search (typically 2-3)",{"type":37,"tag":56,"props":5194,"children":5195},{},[5196,5198,5203],{"type":43,"value":5197},"Fast Apply uses ",{"type":37,"tag":60,"props":5199,"children":5200},{},[5201],{"type":43,"value":5202},"1 API call",{"type":43,"value":5204}," per edit",{"type":37,"tag":56,"props":5206,"children":5207},{},[5208],{"type":43,"value":5209},"Pricing: $0.80 per 1M tokens (input and output)",{"type":37,"tag":56,"props":5211,"children":5212},{},[5213,5215],{"type":43,"value":5214},"Monitor usage via ",{"type":37,"tag":94,"props":5216,"children":5218},{"href":96,"rel":5217},[98],[5219],{"type":43,"value":5220},"Morph Dashboard",{"type":37,"tag":56,"props":5222,"children":5223},{},[5224],{"type":43,"value":5225},"Use regular grep\u002Fripgrep for simple exact-match searches (free)",{"type":37,"tag":509,"props":5227,"children":5228},{},[],{"type":37,"tag":78,"props":5230,"children":5232},{"id":5231},"resources",[5233],{"type":43,"value":5234},"Resources",{"type":37,"tag":52,"props":5236,"children":5237},{},[5238,5248,5258,5267,5277,5285],{"type":37,"tag":56,"props":5239,"children":5240},{},[5241],{"type":37,"tag":94,"props":5242,"children":5245},{"href":5243,"rel":5244},"https:\u002F\u002Fdocs.morphllm.com",[98],[5246],{"type":43,"value":5247},"Morph Documentation",{"type":37,"tag":56,"props":5249,"children":5250},{},[5251],{"type":37,"tag":94,"props":5252,"children":5255},{"href":5253,"rel":5254},"https:\u002F\u002Fdocs.morphllm.com\u002Fsdk\u002Fcomponents\u002Fwarp-grep",[98],[5256],{"type":43,"value":5257},"WarpGrep Guide",{"type":37,"tag":56,"props":5259,"children":5260},{},[5261],{"type":37,"tag":94,"props":5262,"children":5264},{"href":3784,"rel":5263},[98],[5265],{"type":43,"value":5266},"WarpGrep Benchmarks",{"type":37,"tag":56,"props":5268,"children":5269},{},[5270],{"type":37,"tag":94,"props":5271,"children":5274},{"href":5272,"rel":5273},"https:\u002F\u002Fwww.morphllm.com\u002Fbenchmarks\u002Ffast-apply",[98],[5275],{"type":43,"value":5276},"Fast Apply Benchmarks",{"type":37,"tag":56,"props":5278,"children":5279},{},[5280],{"type":37,"tag":94,"props":5281,"children":5283},{"href":96,"rel":5282},[98],[5284],{"type":43,"value":5220},{"type":37,"tag":56,"props":5286,"children":5287},{},[5288],{"type":37,"tag":94,"props":5289,"children":5292},{"href":5290,"rel":5291},"https:\u002F\u002Fdiscord.gg\u002FAdXta4yxEK",[98],[5293],{"type":43,"value":5294},"Morph Discord",{"type":37,"tag":5296,"props":5297,"children":5298},"style",{},[5299],{"type":43,"value":5300},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":5302,"total":5462},[5303,5320,5335,5347,5359,5373,5385,5396,5408,5424,5435,5447],{"slug":5304,"name":5304,"fn":5305,"description":5306,"org":5307,"tags":5308,"stars":5318,"repoUrl":3246,"updatedAt":5319},"acquiring-skills","discover and install agent skills","Discover and install skills from Hermes, ClawHub, GitHub, and other registries. Load this skill whenever a user asks for a capability you don't already have — image generation, social media, email, calendar, finance, DevOps, search, browser automation, etc.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5309,5312,5315],{"name":5310,"slug":5311,"type":16},"Agents","agents",{"name":5313,"slug":5314,"type":16},"Automation","automation",{"name":5316,"slug":5317,"type":16},"GitHub","github",2831,"2026-07-13T06:22:58.45767",{"slug":5321,"name":5322,"fn":5323,"description":5324,"org":5325,"tags":5326,"stars":5318,"repoUrl":3246,"updatedAt":5334},"context-doctor","Context Doctor","repair system prompt and memory degradation","Identify and repair degradation in system prompt, external memory, and skills preventing you from following instructions or remembering information as well as you should.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5327,5328,5331],{"name":5310,"slug":5311,"type":16},{"name":5329,"slug":5330,"type":16},"AI Context","ai-context",{"name":5332,"slug":5333,"type":16},"Debugging","debugging","2026-07-13T06:22:50.151002",{"slug":5336,"name":5336,"fn":5337,"description":5338,"org":5339,"tags":5340,"stars":5318,"repoUrl":3246,"updatedAt":5346},"converting-mcps-to-skills","connect MCP servers to create skills","Connect to MCP (Model Context Protocol) servers and create skills for repeated use. Load when a user wants to use an MCP server, connect to external tools via MCP, or when they mention MCP, model context protocol, or specific MCP servers.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5341,5342,5343],{"name":5310,"slug":5311,"type":16},{"name":5313,"slug":5314,"type":16},{"name":5344,"slug":5345,"type":16},"MCP","mcp","2026-07-13T06:23:37.646079",{"slug":5348,"name":5348,"fn":5349,"description":5350,"org":5351,"tags":5352,"stars":5318,"repoUrl":3246,"updatedAt":5358},"creating-mods","create and edit Letta Code mods","Creates and edits trusted local Letta Code mods, including tools, slash commands, local-only model providers, lifecycle\u002Fturn events, scoped conversation helpers, panels, and capability-gated behavior. Use when asked to make a mod, add an agent-callable tool, add a slash command, add a local provider\u002Fmodel adapter, transform turns, react to app events, or add lightweight mod UI outside the dedicated \u002Fstatusline flow.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5353,5354,5355],{"name":5310,"slug":5311,"type":16},{"name":5313,"slug":5314,"type":16},{"name":5356,"slug":5357,"type":16},"Coding","coding","2026-07-23T05:42:38.133565",{"slug":5360,"name":5360,"fn":5361,"description":5362,"org":5363,"tags":5364,"stars":5318,"repoUrl":3246,"updatedAt":5372},"creating-skills","create and update agent skills","Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Letta Code's capabilities with specialized knowledge, workflows, or tool integrations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5365,5366,5369],{"name":5310,"slug":5311,"type":16},{"name":5367,"slug":5368,"type":16},"Documentation","documentation",{"name":5370,"slug":5371,"type":16},"Plugin Development","plugin-development","2026-07-13T06:22:56.998659",{"slug":5374,"name":5374,"fn":5375,"description":5376,"org":5377,"tags":5378,"stars":5318,"repoUrl":3246,"updatedAt":5384},"customizing-commands","create and manage Letta slash commands","Creates, edits, and enables Letta Code mod-provided slash commands. Use when the user asks to add a custom \u002Fcommand, slash command, command shortcut, scoped conversation-backed command, or command-driven panel behavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5379,5380,5381],{"name":5310,"slug":5311,"type":16},{"name":5313,"slug":5314,"type":16},{"name":5382,"slug":5383,"type":16},"CLI","cli","2026-07-13T06:23:18.266798",{"slug":5386,"name":5386,"fn":5387,"description":5388,"org":5389,"tags":5390,"stars":5318,"repoUrl":3246,"updatedAt":5395},"customizing-statusline","customize Letta Code statusline mods","Creates, edits, and migrates Letta Code statusline mods. Use when handling the \u002Fstatusline command or continuing work started by \u002Fstatusline.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5391,5392],{"name":5382,"slug":5383,"type":16},{"name":5393,"slug":5394,"type":16},"Engineering","engineering","2026-07-13T06:23:27.465985",{"slug":5397,"name":5397,"fn":5398,"description":5399,"org":5400,"tags":5401,"stars":5318,"repoUrl":3246,"updatedAt":5407},"dispatching-coding-agents","dispatch stateless coding agents","Dispatch stateless coding agents (Claude Code or Codex) via Bash. Use when you're stuck, need a second opinion, or need parallel research on a hard problem. They have no memory — you must provide all context.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5402,5403,5404],{"name":5310,"slug":5311,"type":16},{"name":5356,"slug":5357,"type":16},{"name":5405,"slug":5406,"type":16},"Multi-Agent","multi-agent","2026-07-26T05:46:56.388845",{"slug":5409,"name":5409,"fn":5410,"description":5411,"org":5412,"tags":5413,"stars":5318,"repoUrl":3246,"updatedAt":5423},"editing-letta-code-desktop-preferences","edit Letta Code Desktop preferences","Edits Letta Code Desktop (LCD) preferences by safely reading and updating ~\u002F.letta\u002Fdesktop_preferences.json. Use only when the user asks to change current Desktop\u002FLCD settings such as theme, default working directory, remote access preference, or remote environment name via the preferences JSON.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5414,5417,5420],{"name":5415,"slug":5416,"type":16},"Configuration","configuration",{"name":5418,"slug":5419,"type":16},"Desktop","desktop",{"name":5421,"slug":5422,"type":16},"Themes","themes","2026-07-13T06:23:41.407811",{"slug":5425,"name":5425,"fn":5426,"description":5427,"org":5428,"tags":5429,"stars":5318,"repoUrl":3246,"updatedAt":5434},"finding-agents","locate and manage agents on server","Find other agents on the same server. Use when the user asks about other agents, wants to migrate memory from another agent, or needs to find an agent by name or tags.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5430,5431],{"name":5310,"slug":5311,"type":16},{"name":5432,"slug":5433,"type":16},"Management","management","2026-07-16T06:02:17.297841",{"slug":5436,"name":5436,"fn":5437,"description":5438,"org":5439,"tags":5440,"stars":5318,"repoUrl":3246,"updatedAt":5446},"generating-mod-envs","generate Letta mod learning environments","Generates and reviews mod learning env JSON files for Letta Code local mods. Use when asked to teach, learn, or optimize a mod behavior; create, draft, validate, improve, or explain envs for `\u002Fmods learn --env`; or design evaluation scenarios, memory fixtures, requiredResultMarkers, requiredTraceMarkers, negative controls, and candidate diversity hints.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5441,5442,5445],{"name":5310,"slug":5311,"type":16},{"name":5443,"slug":5444,"type":16},"AI Infrastructure","ai-infrastructure",{"name":5415,"slug":5416,"type":16},"2026-07-13T06:23:08.838181",{"slug":5448,"name":5448,"fn":5449,"description":5450,"org":5451,"tags":5452,"stars":5318,"repoUrl":3246,"updatedAt":5461},"image-generation","generate images from text prompts","Generate images from text prompts (and optionally edit\u002Fremix input images). Use when the user asks to create, generate, draw, render, or edit an image, illustration, logo, icon, diagram, or photo.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5453,5456,5459],{"name":5454,"slug":5455,"type":16},"Creative","creative",{"name":5457,"slug":5458,"type":16},"Graphics","graphics",{"name":5460,"slug":5448,"type":16},"Image Generation","2026-07-13T06:23:06.189403",69,{"items":5464,"total":5576},[5465,5479,5494,5513,5526,5547,5557],{"slug":5466,"name":5466,"fn":5467,"description":5468,"org":5469,"tags":5470,"stars":20,"repoUrl":21,"updatedAt":5478},"1password","manage secrets with 1Password CLI","Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading\u002Finjecting\u002Frunning secrets via op.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5471,5474,5475],{"name":5472,"slug":5473,"type":16},"Authentication","authentication",{"name":5382,"slug":5383,"type":16},{"name":5476,"slug":5477,"type":16},"Security","security","2026-07-13T06:24:39.504387",{"slug":5480,"name":5480,"fn":5481,"description":5482,"org":5483,"tags":5484,"stars":20,"repoUrl":21,"updatedAt":5493},"agent-slack","automate Slack messaging and workflows","Slack automation CLI — read\u002Fsend\u002Fsearch messages, browse threads and channels, manage channels, download attachments, look up users, and run workflows.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5485,5486,5487,5490],{"name":5313,"slug":5314,"type":16},{"name":5382,"slug":5383,"type":16},{"name":5488,"slug":5489,"type":16},"Messaging","messaging",{"name":5491,"slug":5492,"type":16},"Slack","slack","2026-07-13T06:23:51.908511",{"slug":5495,"name":5495,"fn":5496,"description":5497,"org":5498,"tags":5499,"stars":20,"repoUrl":21,"updatedAt":5512},"ai-news","fetch and summarize AI news","Fetch and summarize recent AI news from curated RSS feeds (Hugging Face, VentureBeat, The Verge, OpenAI, Anthropic, DeepMind, etc.) and YouTube channels (Yannic Kilcher, Two Minute Papers, AI Explained, etc.). Also fetches full transcripts for specific YouTube videos. Use when the user asks about recent AI news, what's happened in AI lately, summaries of AI research or product announcements, or wants a digest of what's going on in the AI space.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5500,5503,5506,5509],{"name":5501,"slug":5502,"type":16},"Communications","communications",{"name":5504,"slug":5505,"type":16},"LLM","llm",{"name":5507,"slug":5508,"type":16},"Research","research",{"name":5510,"slug":5511,"type":16},"Summarization","summarization","2026-07-13T06:24:20.520223",{"slug":5514,"name":5514,"fn":5515,"description":5516,"org":5517,"tags":5518,"stars":20,"repoUrl":21,"updatedAt":5525},"creating-letta-code-channels","build and debug Letta Code channels","Builds and debugs Letta Code channels, including first-party channel adapters and dynamic user channel plugins under ~\u002F.letta\u002Fchannels. Use when adding Telegram, WhatsApp, Bluesky, Slack, Discord, or custom channel support; testing channel routing, pairing, MessageChannel, runtime dependencies, or channel plugin manifests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5519,5520,5523,5524],{"name":5310,"slug":5311,"type":16},{"name":5521,"slug":5522,"type":16},"API Development","api-development",{"name":5488,"slug":5489,"type":16},{"name":5491,"slug":5492,"type":16},"2026-07-13T06:25:55.843495",{"slug":5527,"name":5527,"fn":5528,"description":5529,"org":5530,"tags":5531,"stars":20,"repoUrl":21,"updatedAt":5546},"datadog","query Datadog observability data","Query Datadog observability data (logs, metrics, monitors, dashboards, hosts) via direct API. Use when investigating production issues, checking monitors, searching logs, or accessing Datadog data.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5532,5534,5537,5540,5543],{"name":5533,"slug":5527,"type":16},"Datadog",{"name":5535,"slug":5536,"type":16},"Logs","logs",{"name":5538,"slug":5539,"type":16},"Metrics","metrics",{"name":5541,"slug":5542,"type":16},"Monitoring","monitoring",{"name":5544,"slug":5545,"type":16},"Observability","observability","2026-07-13T06:24:27.990605",{"slug":5548,"name":5548,"fn":5549,"description":5550,"org":5551,"tags":5552,"stars":20,"repoUrl":21,"updatedAt":5556},"discord","automate Discord server and channel tasks","Discord automation CLI — send\u002Fread\u002Fsearch messages, manage channels and servers, react, create threads, pin messages, and look up users.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5553,5554,5555],{"name":5313,"slug":5314,"type":16},{"name":5382,"slug":5383,"type":16},{"name":5488,"slug":5489,"type":16},"2026-07-13T06:24:26.62387",{"slug":5558,"name":5558,"fn":5559,"description":5560,"org":5561,"tags":5562,"stars":20,"repoUrl":21,"updatedAt":5575},"doc","create and edit Word documents","Use when the task involves reading, creating, or editing `.docx` documents, especially when formatting or layout fidelity matters; prefer `python-docx` plus the bundled `scripts\u002Frender_docx.py` for visual checks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5563,5566,5569,5572],{"name":5564,"slug":5565,"type":16},"Documents","documents",{"name":5567,"slug":5568,"type":16},"DOCX","docx",{"name":5570,"slug":5571,"type":16},"Office","office",{"name":5573,"slug":5574,"type":16},"Word","word","2026-07-13T06:23:44.299568",45]