@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.
- package/dist/{chunk-5X7IJXKA.js → chunk-KJL5RNVA.js} +14 -2
- package/dist/chunk-KJL5RNVA.js.map +1 -0
- package/dist/{chunk-SQF3OG24.js → chunk-YWS4Y75I.js} +2 -2
- package/dist/{client-Drz3OGq-.d.ts → client-BVeUudyD.d.ts} +2 -3
- package/dist/client.cjs +1 -1
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.ts +3 -1
- package/dist/client.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +2 -2
- package/dist/tools/browser/index.cjs.map +1 -1
- package/dist/tools/browser/index.js.map +1 -1
- package/dist/tools/warp_grep/vercel.cjs +16 -3
- package/dist/tools/warp_grep/vercel.cjs.map +1 -1
- package/dist/tools/warp_grep/vercel.d.ts +92 -6
- package/dist/tools/warp_grep/vercel.js +5 -3
- package/package.json +13 -5
- package/dist/chunk-5X7IJXKA.js.map +0 -1
- /package/dist/{chunk-SQF3OG24.js.map → chunk-YWS4Y75I.js.map} +0 -0
|
@@ -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 =
|
|
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:
|
|
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
|
-
|
|
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.
|
|
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":[]}
|
|
File without changes
|