@morphllm/morphsdk 0.2.85 → 0.2.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import * as ai from 'ai';
2
+ import { tool } from 'ai';
2
3
  import { d as WarpGrepToolConfig, c as WarpGrepContext, b as WarpGrepResult } from '../../types-BMowL9iZ.js';
3
4
  export { formatResult } from './client.js';
4
5
  export { getSystemPrompt } from './agent/prompt.js';
@@ -6,6 +7,69 @@ import './providers/types.js';
6
7
  import '../utils/resilience.js';
7
8
  import './agent/types.js';
8
9
 
10
+ /**
11
+ * Raw JSON Schema for warp grep input (no Zod dependency).
12
+ * Use this with jsonSchema() from 'ai' if you have Zod version conflicts.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { jsonSchema } from 'ai';
17
+ * import { warpGrepJsonSchema, createWarpGrepToolWithSchema } from '@morphllm/morphsdk/tools/warp-grep/vercel';
18
+ *
19
+ * const grepTool = createWarpGrepToolWithSchema({
20
+ * repoRoot: '.',
21
+ * inputSchema: jsonSchema(warpGrepJsonSchema),
22
+ * });
23
+ * ```
24
+ */
25
+ declare const warpGrepJsonSchema: {
26
+ type: "object";
27
+ properties: {
28
+ query: {
29
+ type: "string";
30
+ description: string;
31
+ };
32
+ };
33
+ required: readonly ["query"];
34
+ additionalProperties: false;
35
+ };
36
+ /** Type for the warp grep input */
37
+ type WarpGrepInput = {
38
+ query: string;
39
+ };
40
+ /**
41
+ * Extended config that accepts a custom inputSchema
42
+ */
43
+ interface WarpGrepVercelConfig extends WarpGrepToolConfig {
44
+ /**
45
+ * Custom Zod schema or AI SDK schema. Use this to provide your own Zod instance
46
+ * to avoid version conflicts between your project and the SDK.
47
+ *
48
+ * @example Using your own Zod
49
+ * ```typescript
50
+ * import { z } from 'zod'; // Your Zod version
51
+ *
52
+ * const grepTool = createWarpGrepTool({
53
+ * repoRoot: '.',
54
+ * inputSchema: z.object({
55
+ * query: z.string().describe('Free-form repository question'),
56
+ * }),
57
+ * });
58
+ * ```
59
+ *
60
+ * @example Using jsonSchema (no Zod needed)
61
+ * ```typescript
62
+ * import { jsonSchema } from 'ai';
63
+ * import { warpGrepJsonSchema } from '@morphllm/morphsdk/tools/warp-grep/vercel';
64
+ *
65
+ * const grepTool = createWarpGrepTool({
66
+ * repoRoot: '.',
67
+ * inputSchema: jsonSchema(warpGrepJsonSchema),
68
+ * });
69
+ * ```
70
+ */
71
+ inputSchema?: Parameters<typeof tool>[0]['inputSchema'];
72
+ }
9
73
  /**
10
74
  * Execute warp grep search
11
75
  *
@@ -23,7 +87,7 @@ declare function execute(input: {
23
87
  * @param config - Configuration options
24
88
  * @returns Vercel AI SDK tool
25
89
  *
26
- * @example Local usage
90
+ * @example Local usage (uses SDK's Zod)
27
91
  * ```typescript
28
92
  * import { generateText } from 'ai';
29
93
  * import { anthropic } from '@ai-sdk/anthropic';
@@ -38,9 +102,33 @@ declare function execute(input: {
38
102
  * });
39
103
  * ```
40
104
  *
105
+ * @example With your own Zod (avoids version conflicts)
106
+ * ```typescript
107
+ * import { z } from 'zod'; // Your project's Zod
108
+ * import { createWarpGrepTool } from '@morphllm/morphsdk/tools/warp-grep/vercel';
109
+ *
110
+ * const grepTool = createWarpGrepTool({
111
+ * repoRoot: '.',
112
+ * inputSchema: z.object({
113
+ * query: z.string().describe('Free-form repository question'),
114
+ * }),
115
+ * });
116
+ * ```
117
+ *
118
+ * @example Without Zod (using jsonSchema)
119
+ * ```typescript
120
+ * import { jsonSchema } from 'ai';
121
+ * import { createWarpGrepTool, warpGrepJsonSchema } from '@morphllm/morphsdk/tools/warp-grep/vercel';
122
+ *
123
+ * const grepTool = createWarpGrepTool({
124
+ * repoRoot: '.',
125
+ * inputSchema: jsonSchema(warpGrepJsonSchema),
126
+ * });
127
+ * ```
128
+ *
41
129
  * @example Remote sandbox (E2B, Modal, etc.)
42
130
  * ```typescript
43
- * const grepTool = createMorphWarpGrepTool({
131
+ * const grepTool = createWarpGrepTool({
44
132
  * repoRoot: '/home/repo',
45
133
  * remoteCommands: {
46
134
  * grep: async (pattern, path) => (await sandbox.run(`rg '${pattern}' '${path}'`)).stdout,
@@ -50,12 +138,10 @@ declare function execute(input: {
50
138
  * });
51
139
  * ```
52
140
  */
53
- declare function createWarpGrepTool(config: WarpGrepToolConfig): ai.Tool<{
54
- query: string;
55
- }, {
141
+ declare function createWarpGrepTool(config: WarpGrepVercelConfig): ai.Tool<WarpGrepInput, {
56
142
  success: boolean;
57
143
  contexts: WarpGrepContext[] | undefined;
58
144
  summary: string | undefined;
59
145
  }>;
60
146
 
61
- export { createWarpGrepTool, createWarpGrepTool as default, execute };
147
+ export { type WarpGrepInput, type WarpGrepVercelConfig, createWarpGrepTool, createWarpGrepTool as default, execute, warpGrepJsonSchema };
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  createWarpGrepTool,
3
3
  execute,
4
- vercel_default
5
- } from "../../chunk-5X7IJXKA.js";
4
+ vercel_default,
5
+ warpGrepJsonSchema
6
+ } from "../../chunk-KJL5RNVA.js";
6
7
  import "../../chunk-KW7OEGZK.js";
7
8
  import {
8
9
  formatResult
@@ -27,6 +28,7 @@ export {
27
28
  vercel_default as default,
28
29
  execute,
29
30
  formatResult,
30
- getSystemPrompt
31
+ getSystemPrompt,
32
+ warpGrepJsonSchema
31
33
  };
32
34
  //# sourceMappingURL=vercel.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morphllm/morphsdk",
3
- "version": "0.2.85",
3
+ "version": "0.2.86",
4
4
  "description": "TypeScript SDK and CLI for Morph Fast Apply integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -152,12 +152,12 @@
152
152
  "license": "MIT",
153
153
  "dependencies": {
154
154
  "@vscode/ripgrep": "^1.17.0",
155
- "ai": "^5.0.90",
156
155
  "diff": "^7.0.0",
157
- "isomorphic-git": "^1.25.10",
158
- "zod": "^3.23.8"
156
+ "isomorphic-git": "^1.25.10"
159
157
  },
160
158
  "devDependencies": {
159
+ "ai": "^5.0.0",
160
+ "zod": "^3.23.8",
161
161
  "@ai-sdk/anthropic": "^1.0.9",
162
162
  "@ai-sdk/openai": "^2.0.35",
163
163
  "@anthropic-ai/sdk": "^0.30.1",
@@ -178,7 +178,9 @@
178
178
  "peerDependencies": {
179
179
  "@anthropic-ai/sdk": ">=0.25.0",
180
180
  "@google/generative-ai": ">=0.21.0",
181
- "openai": ">=4.0.0"
181
+ "openai": ">=4.0.0",
182
+ "ai": ">=5.0.0",
183
+ "zod": ">=3.23.0"
182
184
  },
183
185
  "peerDependenciesMeta": {
184
186
  "@anthropic-ai/sdk": {
@@ -189,6 +191,12 @@
189
191
  },
190
192
  "openai": {
191
193
  "optional": true
194
+ },
195
+ "ai": {
196
+ "optional": true
197
+ },
198
+ "zod": {
199
+ "optional": true
192
200
  }
193
201
  },
194
202
  "publishConfig": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../tools/warp_grep/vercel.ts"],"sourcesContent":["/**\n * Vercel AI SDK adapter for morph-warp-grep tool\n */\n\nimport { tool } from 'ai';\nimport { z } from 'zod';\nimport { executeToolCall, formatResult } from './client.js';\nimport { WARP_GREP_DESCRIPTION, getSystemPrompt } from './prompts.js';\nimport type { WarpGrepToolConfig, WarpGrepResult } from './types.js';\n\n/**\n * Execute warp grep search\n * \n * @param input - Tool input with query\n * @param config - Configuration with repoRoot and optional provider\n * @returns Search results\n */\nexport async function execute(\n input: { query: string },\n config: WarpGrepToolConfig\n): Promise<WarpGrepResult> {\n return executeToolCall(input, config);\n}\n\n// Re-export formatResult and getSystemPrompt for convenience\nexport { formatResult, getSystemPrompt };\n\n/**\n * Create Vercel AI SDK warp grep tool\n * \n * @param config - Configuration options\n * @returns Vercel AI SDK tool\n * \n * @example Local usage\n * ```typescript\n * import { generateText } from 'ai';\n * import { anthropic } from '@ai-sdk/anthropic';\n * import { createWarpGrepTool } from '@morphllm/morphsdk/tools/warp-grep/vercel';\n * \n * const grepTool = createWarpGrepTool({ repoRoot: '.' });\n * \n * const result = await generateText({\n * model: anthropic('claude-sonnet-4-5-20250929'),\n * tools: { grep: grepTool },\n * prompt: 'Find authentication middleware'\n * });\n * ```\n * \n * @example Remote sandbox (E2B, Modal, etc.)\n * ```typescript\n * const grepTool = createMorphWarpGrepTool({\n * repoRoot: '/home/repo',\n * remoteCommands: {\n * grep: async (pattern, path) => (await sandbox.run(`rg '${pattern}' '${path}'`)).stdout,\n * read: async (path, start, end) => (await sandbox.run(`sed -n '${start},${end}p' '${path}'`)).stdout,\n * listDir: async (path, maxDepth) => (await sandbox.run(`find '${path}' -maxdepth ${maxDepth}`)).stdout,\n * },\n * });\n * ```\n */\nexport function createWarpGrepTool(config: WarpGrepToolConfig) {\n const schema = z.object({\n query: z.string().describe('Free-form repository question'),\n });\n\n return tool({\n description: config.description ?? WARP_GREP_DESCRIPTION,\n inputSchema: schema,\n execute: async (params) => {\n const result = await executeToolCall(params, config);\n \n if (!result.success) {\n throw new Error(`Failed to search codebase: ${result.error}`);\n }\n \n return {\n success: true,\n contexts: result.contexts,\n summary: result.summary,\n };\n },\n });\n}\n\n// Default export for convenience\nexport default createWarpGrepTool;\n"],"mappings":";;;;;;;;AAIA,SAAS,YAAY;AACrB,SAAS,SAAS;AAYlB,eAAsB,QACpB,OACA,QACyB;AACzB,SAAO,gBAAgB,OAAO,MAAM;AACtC;AAsCO,SAAS,mBAAmB,QAA4B;AAC7D,QAAM,SAAS,EAAE,OAAO;AAAA,IACtB,OAAO,EAAE,OAAO,EAAE,SAAS,+BAA+B;AAAA,EAC5D,CAAC;AAED,SAAO,KAAK;AAAA,IACV,aAAa,OAAO,eAAe;AAAA,IACnC,aAAa;AAAA,IACb,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,gBAAgB,QAAQ,MAAM;AAEnD,UAAI,CAAC,OAAO,SAAS;AACnB,cAAM,IAAI,MAAM,8BAA8B,OAAO,KAAK,EAAE;AAAA,MAC9D;AAEA,aAAO;AAAA,QACL,SAAS;AAAA,QACT,UAAU,OAAO;AAAA,QACjB,SAAS,OAAO;AAAA,MAClB;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAGA,IAAO,iBAAQ;","names":[]}