@morphllm/morphsdk 0.2.159 → 0.2.161
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-4E7E7AV4.js → chunk-27VVVW57.js} +2 -2
- package/dist/{chunk-6TYVZRES.js → chunk-2CE4PG2F.js} +2 -2
- package/dist/{chunk-DKXCYF4X.js → chunk-442YHCTX.js} +3 -3
- package/dist/{chunk-MF4I43IU.js → chunk-5GVI7L4O.js} +2 -2
- package/dist/{chunk-PU2VOO2D.js → chunk-5R3QCYHW.js} +2 -2
- package/dist/{chunk-B7IMPNWU.js → chunk-63JAZOI3.js} +2 -2
- package/dist/{chunk-RVOUIKLY.js → chunk-CMRUAJYD.js} +3 -3
- package/dist/{chunk-3EJEE5GO.js → chunk-DKQMGEHV.js} +2 -2
- package/dist/{chunk-XBJAMGI2.js → chunk-F2SBKBBS.js} +2 -2
- package/dist/{chunk-CMSHXALI.js → chunk-FBRNUWEB.js} +3 -2
- package/dist/chunk-FBRNUWEB.js.map +1 -0
- package/dist/{chunk-CNPAYMDN.js → chunk-G3E75GPM.js} +2 -2
- package/dist/{chunk-QWKGNQEW.js → chunk-HDZ4XYUX.js} +2 -2
- package/dist/{chunk-V6I2GG65.js → chunk-IHSLH64T.js} +2 -2
- package/dist/{chunk-ORE44IJ2.js → chunk-JIPYZNK3.js} +2 -2
- package/dist/{chunk-3NNS5IQ7.js → chunk-KCJRKSMG.js} +2 -2
- package/dist/{chunk-V4LGPMZD.js → chunk-KF2AYKGJ.js} +17 -17
- package/dist/{chunk-2SDJIJDR.js → chunk-KP3CAEH5.js} +2 -2
- package/dist/{chunk-BQRDC7EJ.js → chunk-L6WYOSFK.js} +2 -2
- package/dist/{chunk-BQRDC7EJ.js.map → chunk-L6WYOSFK.js.map} +1 -1
- package/dist/{chunk-BTPD2LBP.js → chunk-LGF2WTXG.js} +2 -2
- package/dist/{chunk-YIHCMNNJ.js → chunk-N4EFVT45.js} +2 -2
- package/dist/{chunk-RVFHET5R.js → chunk-NBGHPRU6.js} +8 -3
- package/dist/chunk-NBGHPRU6.js.map +1 -0
- package/dist/{chunk-BD7THL46.js → chunk-PQXJ32G4.js} +2 -2
- package/dist/{chunk-FUWPB6PB.js → chunk-QQBEGCX2.js} +2 -2
- package/dist/{chunk-QJAO6WIG.js → chunk-QR34LBOS.js} +2 -2
- package/dist/{chunk-GGF2ZZ2M.js → chunk-RZS5DQAX.js} +2 -2
- package/dist/{chunk-VZJXOTO6.js → chunk-VM4TVOBU.js} +1 -1
- package/dist/chunk-VM4TVOBU.js.map +1 -0
- package/dist/client.cjs +9 -3
- package/dist/client.cjs.map +1 -1
- package/dist/client.js +23 -23
- package/dist/edge.cjs +7 -2
- package/dist/edge.cjs.map +1 -1
- package/dist/edge.js +4 -4
- package/dist/index.cjs +9 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +23 -23
- package/dist/modelrouter/core.cjs +1 -1
- package/dist/modelrouter/core.cjs.map +1 -1
- package/dist/modelrouter/core.js +3 -3
- package/dist/modelrouter/index.cjs +1 -1
- package/dist/modelrouter/index.cjs.map +1 -1
- package/dist/modelrouter/index.js +3 -3
- package/dist/subagents/anthropic.cjs +3 -2
- package/dist/subagents/anthropic.cjs.map +1 -1
- package/dist/subagents/anthropic.js +5 -5
- package/dist/subagents/vercel.cjs +3 -2
- package/dist/subagents/vercel.cjs.map +1 -1
- package/dist/subagents/vercel.js +5 -5
- package/dist/tools/browser/anthropic.cjs +1 -1
- package/dist/tools/browser/anthropic.cjs.map +1 -1
- package/dist/tools/browser/anthropic.js +5 -5
- package/dist/tools/browser/core.cjs +1 -1
- package/dist/tools/browser/core.cjs.map +1 -1
- package/dist/tools/browser/core.js +4 -4
- package/dist/tools/browser/index.cjs +1 -1
- package/dist/tools/browser/index.cjs.map +1 -1
- package/dist/tools/browser/index.js +7 -7
- package/dist/tools/browser/openai.cjs +1 -1
- package/dist/tools/browser/openai.cjs.map +1 -1
- package/dist/tools/browser/openai.js +5 -5
- package/dist/tools/browser/profiles/core.cjs +1 -1
- package/dist/tools/browser/profiles/core.cjs.map +1 -1
- package/dist/tools/browser/profiles/core.js +3 -3
- package/dist/tools/browser/profiles/index.cjs +1 -1
- package/dist/tools/browser/profiles/index.cjs.map +1 -1
- package/dist/tools/browser/profiles/index.js +3 -3
- package/dist/tools/browser/vercel.cjs +1 -1
- package/dist/tools/browser/vercel.cjs.map +1 -1
- package/dist/tools/browser/vercel.js +5 -5
- package/dist/tools/codebase_search/anthropic.cjs +1 -1
- package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
- package/dist/tools/codebase_search/anthropic.js +4 -4
- package/dist/tools/codebase_search/core.cjs +1 -1
- package/dist/tools/codebase_search/core.cjs.map +1 -1
- package/dist/tools/codebase_search/core.js +3 -3
- package/dist/tools/codebase_search/index.cjs +1 -1
- package/dist/tools/codebase_search/index.cjs.map +1 -1
- package/dist/tools/codebase_search/index.js +6 -6
- package/dist/tools/codebase_search/openai.cjs +1 -1
- package/dist/tools/codebase_search/openai.cjs.map +1 -1
- package/dist/tools/codebase_search/openai.js +4 -4
- package/dist/tools/codebase_search/vercel.cjs +1 -1
- package/dist/tools/codebase_search/vercel.cjs.map +1 -1
- package/dist/tools/codebase_search/vercel.js +4 -4
- package/dist/tools/fastapply/anthropic.cjs +7 -2
- package/dist/tools/fastapply/anthropic.cjs.map +1 -1
- package/dist/tools/fastapply/anthropic.js +4 -4
- package/dist/tools/fastapply/apply.cjs +7 -2
- package/dist/tools/fastapply/apply.cjs.map +1 -1
- package/dist/tools/fastapply/apply.js +2 -2
- package/dist/tools/fastapply/core.cjs +7 -2
- package/dist/tools/fastapply/core.cjs.map +1 -1
- package/dist/tools/fastapply/core.js +3 -3
- package/dist/tools/fastapply/index.cjs +7 -2
- package/dist/tools/fastapply/index.cjs.map +1 -1
- package/dist/tools/fastapply/index.js +6 -6
- package/dist/tools/fastapply/openai.cjs +7 -2
- package/dist/tools/fastapply/openai.cjs.map +1 -1
- package/dist/tools/fastapply/openai.js +4 -4
- package/dist/tools/fastapply/types.cjs.map +1 -1
- package/dist/tools/fastapply/types.d.ts +4 -0
- package/dist/tools/fastapply/vercel.cjs +7 -2
- package/dist/tools/fastapply/vercel.cjs.map +1 -1
- package/dist/tools/fastapply/vercel.js +4 -4
- package/dist/tools/index.cjs +7 -2
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.js +6 -6
- package/dist/tools/utils/resilience.cjs +1 -1
- package/dist/tools/utils/resilience.cjs.map +1 -1
- package/dist/tools/utils/resilience.js +2 -2
- package/dist/tools/warp_grep/agent/parser.cjs +2 -1
- package/dist/tools/warp_grep/agent/parser.cjs.map +1 -1
- package/dist/tools/warp_grep/agent/parser.js +1 -1
- package/dist/tools/warp_grep/agent/runner.cjs +3 -2
- package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
- package/dist/tools/warp_grep/agent/runner.js +3 -3
- package/dist/tools/warp_grep/anthropic.cjs +3 -2
- package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
- package/dist/tools/warp_grep/anthropic.js +5 -5
- package/dist/tools/warp_grep/client.cjs +3 -2
- package/dist/tools/warp_grep/client.cjs.map +1 -1
- package/dist/tools/warp_grep/client.js +4 -4
- package/dist/tools/warp_grep/gemini.cjs +3 -2
- package/dist/tools/warp_grep/gemini.cjs.map +1 -1
- package/dist/tools/warp_grep/gemini.js +4 -4
- package/dist/tools/warp_grep/harness.cjs +2 -1
- package/dist/tools/warp_grep/harness.cjs.map +1 -1
- package/dist/tools/warp_grep/harness.js +1 -1
- package/dist/tools/warp_grep/index.cjs +3 -2
- package/dist/tools/warp_grep/index.cjs.map +1 -1
- package/dist/tools/warp_grep/index.js +4 -4
- package/dist/tools/warp_grep/openai.cjs +3 -2
- package/dist/tools/warp_grep/openai.cjs.map +1 -1
- package/dist/tools/warp_grep/openai.js +5 -5
- package/dist/tools/warp_grep/vercel.cjs +3 -2
- package/dist/tools/warp_grep/vercel.cjs.map +1 -1
- package/dist/tools/warp_grep/vercel.js +5 -5
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-CMSHXALI.js.map +0 -1
- package/dist/chunk-RVFHET5R.js.map +0 -1
- package/dist/chunk-VZJXOTO6.js.map +0 -1
- /package/dist/{chunk-4E7E7AV4.js.map → chunk-27VVVW57.js.map} +0 -0
- /package/dist/{chunk-6TYVZRES.js.map → chunk-2CE4PG2F.js.map} +0 -0
- /package/dist/{chunk-DKXCYF4X.js.map → chunk-442YHCTX.js.map} +0 -0
- /package/dist/{chunk-MF4I43IU.js.map → chunk-5GVI7L4O.js.map} +0 -0
- /package/dist/{chunk-PU2VOO2D.js.map → chunk-5R3QCYHW.js.map} +0 -0
- /package/dist/{chunk-B7IMPNWU.js.map → chunk-63JAZOI3.js.map} +0 -0
- /package/dist/{chunk-RVOUIKLY.js.map → chunk-CMRUAJYD.js.map} +0 -0
- /package/dist/{chunk-3EJEE5GO.js.map → chunk-DKQMGEHV.js.map} +0 -0
- /package/dist/{chunk-XBJAMGI2.js.map → chunk-F2SBKBBS.js.map} +0 -0
- /package/dist/{chunk-CNPAYMDN.js.map → chunk-G3E75GPM.js.map} +0 -0
- /package/dist/{chunk-QWKGNQEW.js.map → chunk-HDZ4XYUX.js.map} +0 -0
- /package/dist/{chunk-V6I2GG65.js.map → chunk-IHSLH64T.js.map} +0 -0
- /package/dist/{chunk-ORE44IJ2.js.map → chunk-JIPYZNK3.js.map} +0 -0
- /package/dist/{chunk-3NNS5IQ7.js.map → chunk-KCJRKSMG.js.map} +0 -0
- /package/dist/{chunk-V4LGPMZD.js.map → chunk-KF2AYKGJ.js.map} +0 -0
- /package/dist/{chunk-2SDJIJDR.js.map → chunk-KP3CAEH5.js.map} +0 -0
- /package/dist/{chunk-BTPD2LBP.js.map → chunk-LGF2WTXG.js.map} +0 -0
- /package/dist/{chunk-YIHCMNNJ.js.map → chunk-N4EFVT45.js.map} +0 -0
- /package/dist/{chunk-BD7THL46.js.map → chunk-PQXJ32G4.js.map} +0 -0
- /package/dist/{chunk-FUWPB6PB.js.map → chunk-QQBEGCX2.js.map} +0 -0
- /package/dist/{chunk-QJAO6WIG.js.map → chunk-QR34LBOS.js.map} +0 -0
- /package/dist/{chunk-GGF2ZZ2M.js.map → chunk-RZS5DQAX.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../tools/fastapply/core.ts"],"sourcesContent":["/**\n * Core implementation of Morph Fast Apply\n *\n * This module provides file-based operations that require Node.js.\n * For edge-compatible code-in/code-out operations, use applyEdit from ./apply.ts\n */\n\nimport { join, resolve, relative } from 'path';\nimport type {\n EditFileInput,\n EditFileResult,\n EditFileConfig,\n} from './types.js';\n\n// Re-export edge-compatible functions\nexport { applyEdit, generateUdiff, countChanges, callMorphAPI } from './apply.js';\n\nconst DEFAULT_CONFIG: Required<Omit<EditFileConfig, 'morphApiKey' | 'systemPrompt' | 'retryConfig' | 'description' | 'fast'>> = {\n morphApiUrl: 'https://api.morphllm.com',\n baseDir: process.cwd(),\n generateUdiff: true,\n autoWrite: true,\n timeout: 30000,\n debug: false,\n};\n\n/**\n * FastApply client for programmatic file editing\n * Note: This client requires Node.js for file operations\n */\nexport class FastApplyClient {\n private config: EditFileConfig;\n\n constructor(config: { apiKey?: string; debug?: boolean; timeout?: number; retryConfig?: any } = {}) {\n this.config = {\n morphApiKey: config.apiKey,\n morphApiUrl: DEFAULT_CONFIG.morphApiUrl,\n debug: config.debug,\n timeout: config.timeout || DEFAULT_CONFIG.timeout,\n retryConfig: config.retryConfig,\n generateUdiff: DEFAULT_CONFIG.generateUdiff,\n autoWrite: DEFAULT_CONFIG.autoWrite,\n };\n }\n\n /**\n * Execute a file edit operation\n *\n * @param input - Edit parameters including filepath, instructions, and code_edit\n * @param overrides - Optional config overrides for this operation\n * @returns Edit result with success status and changes\n */\n async execute(input: EditFileInput, overrides?: Partial<EditFileConfig>): Promise<EditFileResult> {\n return executeEditFile(input, { ...this.config, ...overrides });\n }\n\n /**\n * Apply an edit to code directly without file I/O\n *\n * Useful for sandbox environments or when you manage your own file system.\n * Compatible with the earlier OpenAI client API contract.\n *\n * @param input - Code and edit parameters\n * @param overrides - Optional config overrides for this operation\n * @returns Result with merged code\n *\n * @example\n * ```typescript\n * const result = await client.applyEdit({\n * originalCode: 'function hello() { return \"world\"; }',\n * codeEdit: 'function hello() { return \"universe\"; }',\n * instructions: 'Change return value'\n * });\n * console.log(result.mergedCode);\n * ```\n */\n async applyEdit(input: import('./types.js').ApplyEditInput, overrides?: Partial<import('./types.js').ApplyEditConfig>): Promise<import('./types.js').ApplyEditResult> {\n const { applyEdit } = await import('./apply.js');\n return applyEdit(input, { ...this.config, ...overrides });\n }\n}\n\n/**\n * Execute a file edit using Morph Fast Apply\n * Note: This function requires Node.js for file I/O\n */\nexport async function executeEditFile(\n input: EditFileInput,\n config: EditFileConfig = {}\n): Promise<EditFileResult> {\n const baseDir = config.baseDir || DEFAULT_CONFIG.baseDir;\n const fullPath = resolve(join(baseDir, input.target_filepath));\n const debug = config.debug || false;\n\n // Security: ensure file is within baseDir\n const relativePath = relative(baseDir, fullPath);\n if (relativePath.startsWith('..') || fullPath === baseDir) {\n return {\n success: false,\n filepath: input.target_filepath,\n changes: { linesAdded: 0, linesRemoved: 0, linesModified: 0 },\n error: `Invalid filepath: '${input.target_filepath}' is outside baseDir`,\n };\n }\n\n try {\n if (debug) console.log(`[FastApply] Reading file: ${input.target_filepath}`);\n\n // Dynamic import to avoid loading Node.js fs module at module evaluation time\n const { readFile, writeFile } = await import('fs/promises');\n const { callMorphAPI, generateUdiff, countChanges } = await import('./apply.js');\n\n // Handle both existing and non-existent files\n let originalCode = '';\n try {\n originalCode = await readFile(fullPath, 'utf-8');\n } catch (error: any) {\n if (error.code !== 'ENOENT') {\n throw error; // Re-throw if it's not a \"file not found\" error\n }\n // File doesn't exist, proceed with empty content (will create new file)\n if (debug) console.log(`[FastApply] File doesn't exist, will create new file`);\n }\n\n const instruction = input.instruction ?? input.instructions ?? '';\n const { content: mergedCode, completionId } = await callMorphAPI(originalCode, input.code_edit, instruction, input.target_filepath, config);\n\n const udiff = config.generateUdiff !== false ? generateUdiff(originalCode, mergedCode, input.target_filepath) : undefined;\n\n if (config.autoWrite !== false) {\n await writeFile(fullPath, mergedCode, 'utf-8');\n if (debug) console.log(`[FastApply] Wrote ${mergedCode.length} chars to ${input.target_filepath}`);\n }\n\n const changes = countChanges(originalCode, mergedCode);\n\n return {\n success: true,\n filepath: input.target_filepath,\n udiff,\n changes,\n completionId,\n };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';\n if (debug) console.error(`[FastApply] Error: ${errorMessage}`);\n\n return {\n success: false,\n filepath: input.target_filepath,\n changes: { linesAdded: 0, linesRemoved: 0, linesModified: 0 },\n error: errorMessage,\n };\n }\n}\n"],"mappings":"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","names":["applyEdit","callMorphAPI","generateUdiff","countChanges"]}
|
package/dist/client.cjs
CHANGED
|
@@ -36,7 +36,7 @@ var init_package = __esm({
|
|
|
36
36
|
"package.json"() {
|
|
37
37
|
package_default = {
|
|
38
38
|
name: "@morphllm/morphsdk",
|
|
39
|
-
version: "0.2.
|
|
39
|
+
version: "0.2.161",
|
|
40
40
|
description: "TypeScript SDK and CLI for Morph Fast Apply integration",
|
|
41
41
|
type: "module",
|
|
42
42
|
main: "./dist/index.cjs",
|
|
@@ -323,6 +323,8 @@ function countChanges(original, modified) {
|
|
|
323
323
|
async function callMorphAPI(originalCode, codeEdit, instructions, filepath, config) {
|
|
324
324
|
const apiKey = config.morphApiKey || (typeof process !== "undefined" ? process.env?.MORPH_API_KEY : void 0);
|
|
325
325
|
const apiUrl = config.morphApiUrl || DEFAULT_API_URL;
|
|
326
|
+
const useFast = config.fast ?? (typeof process !== "undefined" && process.env?.MORPH_FAST_APPLY === "true");
|
|
327
|
+
const model = useFast ? "morph-v3-fast" : "morph-v3-large";
|
|
326
328
|
const timeout = config.timeout || DEFAULT_TIMEOUT;
|
|
327
329
|
const debug = config.debug || false;
|
|
328
330
|
if (!apiKey) {
|
|
@@ -346,8 +348,11 @@ async function callMorphAPI(originalCode, codeEdit, instructions, filepath, conf
|
|
|
346
348
|
maxRetries: config.retryConfig?.maxRetries ?? 3,
|
|
347
349
|
defaultHeaders: { "X-Morph-SDK-Version": SDK_VERSION }
|
|
348
350
|
});
|
|
351
|
+
if (debug) {
|
|
352
|
+
console.log(`[FastApply] Using model: ${model}`);
|
|
353
|
+
}
|
|
349
354
|
const completion = await client.chat.completions.create({
|
|
350
|
-
model
|
|
355
|
+
model,
|
|
351
356
|
messages: [{ role: "user", content: message }]
|
|
352
357
|
});
|
|
353
358
|
const content = completion.choices[0]?.message?.content;
|
|
@@ -2557,7 +2562,8 @@ function parseFinishFiles(filesStr) {
|
|
|
2557
2562
|
for (const line of filesStr.trim().split(/\s+/)) {
|
|
2558
2563
|
const trimmed = line.trim();
|
|
2559
2564
|
if (!trimmed) continue;
|
|
2560
|
-
const
|
|
2565
|
+
const searchFrom = /^[A-Za-z]:/.test(trimmed) ? 2 : 0;
|
|
2566
|
+
const colonIdx = trimmed.indexOf(":", searchFrom);
|
|
2561
2567
|
if (colonIdx === -1) {
|
|
2562
2568
|
files.push({ path: trimmed, lines: "*" });
|
|
2563
2569
|
continue;
|