@morphllm/morphsdk 0.2.119 → 0.2.121

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/{chunk-ZRLEAPZV.js → chunk-266SWRHK.js} +2 -2
  2. package/dist/{chunk-4VWJFZVS.js → chunk-3HBZXN6E.js} +6 -1
  3. package/dist/chunk-3HBZXN6E.js.map +1 -0
  4. package/dist/{chunk-3T4BGWCV.js → chunk-7IZUNRPZ.js} +37 -23
  5. package/dist/{chunk-3T4BGWCV.js.map → chunk-7IZUNRPZ.js.map} +1 -1
  6. package/dist/{chunk-FXBT4UDY.js → chunk-7QZFNYOH.js} +7 -2
  7. package/dist/chunk-7QZFNYOH.js.map +1 -0
  8. package/dist/{chunk-M5DR2WOZ.js → chunk-AI3ZCOCT.js} +1 -1
  9. package/dist/{chunk-UNHHRMU7.js → chunk-BDKXYMU2.js} +4 -4
  10. package/dist/{chunk-G7RSAZIK.js → chunk-C3BQUIFE.js} +5 -5
  11. package/dist/{chunk-WM77HRKO.js → chunk-CIFPLFBQ.js} +2 -2
  12. package/dist/{chunk-WVTX3QS6.js → chunk-CXP63PHW.js} +2 -2
  13. package/dist/{chunk-5IVVJMMX.js → chunk-DL3Y3R6A.js} +2 -2
  14. package/dist/{chunk-HMQSMEN2.js → chunk-EF7ZYLA2.js} +4 -4
  15. package/dist/chunk-EJYFE73S.js +230 -0
  16. package/dist/chunk-EJYFE73S.js.map +1 -0
  17. package/dist/{chunk-EAT5W3SH.js → chunk-EZFXR52Q.js} +2 -2
  18. package/dist/{chunk-HMAX2FEE.js → chunk-FV3R3JGV.js} +4 -4
  19. package/dist/{chunk-OUEJ6XEO.js → chunk-GNRMDXJA.js} +2 -2
  20. package/dist/chunk-J267T54M.js +76 -0
  21. package/dist/chunk-J267T54M.js.map +1 -0
  22. package/dist/{chunk-SI2CKRKJ.js → chunk-JBIFS33U.js} +2 -2
  23. package/dist/{chunk-EMMSRY32.js → chunk-L4PK4VC7.js} +2 -2
  24. package/dist/{chunk-PR44LEQQ.js → chunk-MAAULSSQ.js} +2 -2
  25. package/dist/{chunk-QL7MV3GT.js → chunk-QDGB6FLI.js} +12 -8
  26. package/dist/chunk-QDGB6FLI.js.map +1 -0
  27. package/dist/{chunk-K4EO7S2O.js → chunk-U5UDFQXK.js} +2 -2
  28. package/dist/{chunk-O5DA5V5S.js → chunk-W37KJB25.js} +2 -2
  29. package/dist/{chunk-ZYPLV3HP.js → chunk-WEBUKGPK.js} +3 -3
  30. package/dist/{chunk-OOCSNAA5.js → chunk-XERAWJ3H.js} +2 -2
  31. package/dist/{chunk-Y5BB7JFH.js → chunk-YMOTJ6ZP.js} +4 -4
  32. package/dist/{client-D7iO2TbA.d.ts → client-Bp3MRcJc.d.ts} +6 -1
  33. package/dist/client.cjs +329 -2
  34. package/dist/client.cjs.map +1 -1
  35. package/dist/client.d.ts +4 -1
  36. package/dist/client.js +24 -22
  37. package/dist/edge.cjs +305 -1
  38. package/dist/edge.cjs.map +1 -1
  39. package/dist/edge.d.ts +4 -0
  40. package/dist/edge.js +15 -7
  41. package/dist/index.cjs +334 -2
  42. package/dist/index.cjs.map +1 -1
  43. package/dist/index.d.ts +5 -1
  44. package/dist/index.js +38 -30
  45. package/dist/modelrouter/core.cjs +227 -0
  46. package/dist/modelrouter/core.cjs.map +1 -1
  47. package/dist/modelrouter/core.js +3 -2
  48. package/dist/modelrouter/index.cjs +227 -0
  49. package/dist/modelrouter/index.cjs.map +1 -1
  50. package/dist/modelrouter/index.js +3 -2
  51. package/dist/tools/browser/anthropic.cjs +227 -0
  52. package/dist/tools/browser/anthropic.cjs.map +1 -1
  53. package/dist/tools/browser/anthropic.js +6 -5
  54. package/dist/tools/browser/core.cjs +227 -0
  55. package/dist/tools/browser/core.cjs.map +1 -1
  56. package/dist/tools/browser/core.js +5 -4
  57. package/dist/tools/browser/index.cjs +227 -0
  58. package/dist/tools/browser/index.cjs.map +1 -1
  59. package/dist/tools/browser/index.js +13 -12
  60. package/dist/tools/browser/index.js.map +1 -1
  61. package/dist/tools/browser/openai.cjs +227 -0
  62. package/dist/tools/browser/openai.cjs.map +1 -1
  63. package/dist/tools/browser/openai.js +6 -5
  64. package/dist/tools/browser/profiles/core.cjs +227 -0
  65. package/dist/tools/browser/profiles/core.cjs.map +1 -1
  66. package/dist/tools/browser/profiles/core.js +3 -2
  67. package/dist/tools/browser/profiles/index.cjs +227 -0
  68. package/dist/tools/browser/profiles/index.cjs.map +1 -1
  69. package/dist/tools/browser/profiles/index.js +3 -2
  70. package/dist/tools/browser/vercel.cjs +227 -0
  71. package/dist/tools/browser/vercel.cjs.map +1 -1
  72. package/dist/tools/browser/vercel.js +6 -5
  73. package/dist/tools/codebase_search/anthropic.cjs +227 -0
  74. package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
  75. package/dist/tools/codebase_search/anthropic.js +4 -3
  76. package/dist/tools/codebase_search/core.cjs +227 -0
  77. package/dist/tools/codebase_search/core.cjs.map +1 -1
  78. package/dist/tools/codebase_search/core.js +3 -2
  79. package/dist/tools/codebase_search/index.cjs +227 -0
  80. package/dist/tools/codebase_search/index.cjs.map +1 -1
  81. package/dist/tools/codebase_search/index.js +8 -7
  82. package/dist/tools/codebase_search/openai.cjs +227 -0
  83. package/dist/tools/codebase_search/openai.cjs.map +1 -1
  84. package/dist/tools/codebase_search/openai.js +4 -3
  85. package/dist/tools/codebase_search/vercel.cjs +227 -0
  86. package/dist/tools/codebase_search/vercel.cjs.map +1 -1
  87. package/dist/tools/codebase_search/vercel.js +4 -3
  88. package/dist/tools/compact/core.cjs +110 -0
  89. package/dist/tools/compact/core.cjs.map +1 -0
  90. package/dist/tools/compact/core.d.ts +37 -0
  91. package/dist/tools/compact/core.js +8 -0
  92. package/dist/tools/compact/core.js.map +1 -0
  93. package/dist/tools/compact/index.cjs +112 -0
  94. package/dist/tools/compact/index.cjs.map +1 -0
  95. package/dist/tools/compact/index.d.ts +4 -0
  96. package/dist/tools/compact/index.js +8 -0
  97. package/dist/tools/compact/index.js.map +1 -0
  98. package/dist/tools/compact/types.cjs +19 -0
  99. package/dist/tools/compact/types.cjs.map +1 -0
  100. package/dist/tools/compact/types.d.ts +60 -0
  101. package/dist/tools/compact/types.js +1 -0
  102. package/dist/tools/compact/types.js.map +1 -0
  103. package/dist/tools/fastapply/anthropic.cjs +241 -1
  104. package/dist/tools/fastapply/anthropic.cjs.map +1 -1
  105. package/dist/tools/fastapply/anthropic.js +4 -3
  106. package/dist/tools/fastapply/apply.cjs +230 -1
  107. package/dist/tools/fastapply/apply.cjs.map +1 -1
  108. package/dist/tools/fastapply/apply.js +2 -1
  109. package/dist/tools/fastapply/core.cjs +241 -1
  110. package/dist/tools/fastapply/core.cjs.map +1 -1
  111. package/dist/tools/fastapply/core.js +3 -2
  112. package/dist/tools/fastapply/index.cjs +241 -1
  113. package/dist/tools/fastapply/index.cjs.map +1 -1
  114. package/dist/tools/fastapply/index.d.ts +1 -1
  115. package/dist/tools/fastapply/index.js +9 -8
  116. package/dist/tools/fastapply/openai.cjs +241 -1
  117. package/dist/tools/fastapply/openai.cjs.map +1 -1
  118. package/dist/tools/fastapply/openai.js +4 -3
  119. package/dist/tools/fastapply/vercel.cjs +241 -1
  120. package/dist/tools/fastapply/vercel.cjs.map +1 -1
  121. package/dist/tools/fastapply/vercel.d.ts +1 -1
  122. package/dist/tools/fastapply/vercel.js +4 -3
  123. package/dist/tools/index.cjs +241 -1
  124. package/dist/tools/index.cjs.map +1 -1
  125. package/dist/tools/index.d.ts +1 -1
  126. package/dist/tools/index.js +9 -8
  127. package/dist/tools/utils/resilience.cjs +229 -0
  128. package/dist/tools/utils/resilience.cjs.map +1 -1
  129. package/dist/tools/utils/resilience.js +2 -1
  130. package/dist/tools/warp_grep/agent/runner.cjs +230 -1
  131. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  132. package/dist/tools/warp_grep/agent/runner.js +4 -3
  133. package/dist/tools/warp_grep/anthropic.cjs +230 -1
  134. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  135. package/dist/tools/warp_grep/anthropic.js +6 -5
  136. package/dist/tools/warp_grep/client.cjs +230 -1
  137. package/dist/tools/warp_grep/client.cjs.map +1 -1
  138. package/dist/tools/warp_grep/client.js +5 -4
  139. package/dist/tools/warp_grep/gemini.cjs +230 -1
  140. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  141. package/dist/tools/warp_grep/gemini.js +5 -4
  142. package/dist/tools/warp_grep/gemini.js.map +1 -1
  143. package/dist/tools/warp_grep/harness.js +9 -9
  144. package/dist/tools/warp_grep/index.cjs +230 -1
  145. package/dist/tools/warp_grep/index.cjs.map +1 -1
  146. package/dist/tools/warp_grep/index.js +10 -9
  147. package/dist/tools/warp_grep/openai.cjs +230 -1
  148. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  149. package/dist/tools/warp_grep/openai.js +6 -5
  150. package/dist/tools/warp_grep/providers/local.js +2 -2
  151. package/dist/tools/warp_grep/vercel.cjs +230 -1
  152. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  153. package/dist/tools/warp_grep/vercel.js +6 -5
  154. package/dist/version.cjs +256 -0
  155. package/dist/version.cjs.map +1 -0
  156. package/dist/version.d.ts +3 -0
  157. package/dist/version.js +8 -0
  158. package/dist/version.js.map +1 -0
  159. package/package.json +7 -2
  160. package/dist/chunk-4VWJFZVS.js.map +0 -1
  161. package/dist/chunk-FXBT4UDY.js.map +0 -1
  162. package/dist/chunk-QL7MV3GT.js.map +0 -1
  163. package/dist/{chunk-ZRLEAPZV.js.map → chunk-266SWRHK.js.map} +0 -0
  164. package/dist/{chunk-M5DR2WOZ.js.map → chunk-AI3ZCOCT.js.map} +0 -0
  165. package/dist/{chunk-UNHHRMU7.js.map → chunk-BDKXYMU2.js.map} +0 -0
  166. package/dist/{chunk-G7RSAZIK.js.map → chunk-C3BQUIFE.js.map} +0 -0
  167. package/dist/{chunk-WM77HRKO.js.map → chunk-CIFPLFBQ.js.map} +0 -0
  168. package/dist/{chunk-WVTX3QS6.js.map → chunk-CXP63PHW.js.map} +0 -0
  169. package/dist/{chunk-5IVVJMMX.js.map → chunk-DL3Y3R6A.js.map} +0 -0
  170. package/dist/{chunk-HMQSMEN2.js.map → chunk-EF7ZYLA2.js.map} +0 -0
  171. package/dist/{chunk-EAT5W3SH.js.map → chunk-EZFXR52Q.js.map} +0 -0
  172. package/dist/{chunk-HMAX2FEE.js.map → chunk-FV3R3JGV.js.map} +0 -0
  173. package/dist/{chunk-OUEJ6XEO.js.map → chunk-GNRMDXJA.js.map} +0 -0
  174. package/dist/{chunk-SI2CKRKJ.js.map → chunk-JBIFS33U.js.map} +0 -0
  175. package/dist/{chunk-EMMSRY32.js.map → chunk-L4PK4VC7.js.map} +0 -0
  176. package/dist/{chunk-PR44LEQQ.js.map → chunk-MAAULSSQ.js.map} +0 -0
  177. package/dist/{chunk-K4EO7S2O.js.map → chunk-U5UDFQXK.js.map} +0 -0
  178. package/dist/{chunk-O5DA5V5S.js.map → chunk-W37KJB25.js.map} +0 -0
  179. package/dist/{chunk-ZYPLV3HP.js.map → chunk-WEBUKGPK.js.map} +0 -0
  180. package/dist/{chunk-OOCSNAA5.js.map → chunk-XERAWJ3H.js.map} +0 -0
  181. package/dist/{chunk-Y5BB7JFH.js.map → chunk-YMOTJ6ZP.js.map} +0 -0
  182. package/dist/{vercel-B1GZ_g9N.d.ts → vercel-BTSPdTA-.d.ts} +2 -2
@@ -1,10 +1,10 @@
1
+ import {
2
+ executeEditFile
3
+ } from "./chunk-AI3ZCOCT.js";
1
4
  import {
2
5
  EDIT_FILE_SYSTEM_PROMPT,
3
6
  EDIT_FILE_TOOL_DESCRIPTION
4
7
  } from "./chunk-63WE2C5R.js";
5
- import {
6
- executeEditFile
7
- } from "./chunk-M5DR2WOZ.js";
8
8
  import {
9
9
  __export
10
10
  } from "./chunk-PZ5AY32C.js";
@@ -79,4 +79,4 @@ export {
79
79
  getSystemPrompt,
80
80
  anthropic_exports
81
81
  };
82
- //# sourceMappingURL=chunk-Y5BB7JFH.js.map
82
+ //# sourceMappingURL=chunk-YMOTJ6ZP.js.map
@@ -4,6 +4,7 @@ import { CodebaseSearchClient } from './tools/codebase_search/core.js';
4
4
  import { BrowserClient } from './tools/browser/core.js';
5
5
  import { WarpGrepClient } from './tools/warp_grep/client.js';
6
6
  import { MorphGit } from './git/client.js';
7
+ import { CompactClient } from './tools/compact/core.js';
7
8
  import { OpenAIRouter, AnthropicRouter, GeminiRouter, RawRouter } from './modelrouter/core.js';
8
9
  import { EditFileConfig, EditFileInput, EditFileResult, EditChanges } from './tools/fastapply/types.js';
9
10
  import { CodebaseSearchConfig, CodebaseSearchInput, CodebaseSearchResult } from './tools/codebase_search/types.js';
@@ -800,8 +801,8 @@ declare class VercelToolFactory {
800
801
  * @returns Vercel AI SDK tool
801
802
  */
802
803
  createEditFileTool(toolConfig?: Omit<EditFileConfig, 'morphApiKey'>): ai.Tool<{
803
- target_filepath: string;
804
804
  instructions: string;
805
+ target_filepath: string;
805
806
  code_edit: string;
806
807
  }, {
807
808
  success: boolean;
@@ -903,6 +904,10 @@ declare class MorphClient {
903
904
  anthropic: AnthropicToolFactory;
904
905
  /** Vercel AI SDK tool factories */
905
906
  vercel: VercelToolFactory;
907
+ /** Responses API with compact tool */
908
+ responses: {
909
+ compact: CompactClient['compact'];
910
+ };
906
911
  /**
907
912
  * Create a new Morph SDK client
908
913
  *
package/dist/client.cjs CHANGED
@@ -30,6 +30,244 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
30
  ));
31
31
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
32
 
33
+ // package.json
34
+ var package_default;
35
+ var init_package = __esm({
36
+ "package.json"() {
37
+ package_default = {
38
+ name: "@morphllm/morphsdk",
39
+ version: "0.2.121",
40
+ description: "TypeScript SDK and CLI for Morph Fast Apply integration",
41
+ type: "module",
42
+ main: "./dist/index.cjs",
43
+ module: "./dist/index.js",
44
+ types: "./dist/index.d.ts",
45
+ exports: {
46
+ ".": {
47
+ types: "./dist/index.d.ts",
48
+ import: "./dist/index.js",
49
+ require: "./dist/index.cjs"
50
+ },
51
+ "./edge": {
52
+ types: "./dist/edge.d.ts",
53
+ import: "./dist/edge.js",
54
+ require: "./dist/edge.cjs"
55
+ },
56
+ "./tools/warp-grep": {
57
+ types: "./dist/tools/warp_grep/index.d.ts",
58
+ import: "./dist/tools/warp_grep/index.js",
59
+ require: "./dist/tools/warp_grep/index.cjs"
60
+ },
61
+ "./tools/warp-grep/openai": {
62
+ types: "./dist/tools/warp_grep/openai.d.ts",
63
+ import: "./dist/tools/warp_grep/openai.js",
64
+ require: "./dist/tools/warp_grep/openai.cjs"
65
+ },
66
+ "./tools/warp-grep/anthropic": {
67
+ types: "./dist/tools/warp_grep/anthropic.d.ts",
68
+ import: "./dist/tools/warp_grep/anthropic.js",
69
+ require: "./dist/tools/warp_grep/anthropic.cjs"
70
+ },
71
+ "./tools/warp-grep/vercel": {
72
+ types: "./dist/tools/warp_grep/vercel.d.ts",
73
+ import: "./dist/tools/warp_grep/vercel.js",
74
+ require: "./dist/tools/warp_grep/vercel.cjs"
75
+ },
76
+ "./tools/warp-grep/client": {
77
+ types: "./dist/tools/warp_grep/client.d.ts",
78
+ import: "./dist/tools/warp_grep/client.js",
79
+ require: "./dist/tools/warp_grep/client.cjs"
80
+ },
81
+ "./tools/warp-grep/gemini": {
82
+ types: "./dist/tools/warp_grep/gemini.d.ts",
83
+ import: "./dist/tools/warp_grep/gemini.js",
84
+ require: "./dist/tools/warp_grep/gemini.cjs"
85
+ },
86
+ "./tools/warp-grep/harness": {
87
+ types: "./dist/tools/warp_grep/harness.d.ts",
88
+ import: "./dist/tools/warp_grep/harness.js",
89
+ require: "./dist/tools/warp_grep/harness.cjs"
90
+ },
91
+ "./tools/fastapply": {
92
+ types: "./dist/tools/fastapply/index.d.ts",
93
+ import: "./dist/tools/fastapply/index.js",
94
+ require: "./dist/tools/fastapply/index.cjs"
95
+ },
96
+ "./tools/fastapply/anthropic": {
97
+ types: "./dist/tools/fastapply/anthropic.d.ts",
98
+ import: "./dist/tools/fastapply/anthropic.js",
99
+ require: "./dist/tools/fastapply/anthropic.cjs"
100
+ },
101
+ "./tools/fastapply/openai": {
102
+ types: "./dist/tools/fastapply/openai.d.ts",
103
+ import: "./dist/tools/fastapply/openai.js",
104
+ require: "./dist/tools/fastapply/openai.cjs"
105
+ },
106
+ "./tools/fastapply/vercel": {
107
+ types: "./dist/tools/fastapply/vercel.d.ts",
108
+ import: "./dist/tools/fastapply/vercel.js",
109
+ require: "./dist/tools/fastapply/vercel.cjs"
110
+ },
111
+ "./tools/codebase-search": {
112
+ types: "./dist/tools/codebase_search/index.d.ts",
113
+ import: "./dist/tools/codebase_search/index.js",
114
+ require: "./dist/tools/codebase_search/index.cjs"
115
+ },
116
+ "./tools/codebase-search/anthropic": {
117
+ types: "./dist/tools/codebase_search/anthropic.d.ts",
118
+ import: "./dist/tools/codebase_search/anthropic.js",
119
+ require: "./dist/tools/codebase_search/anthropic.cjs"
120
+ },
121
+ "./tools/codebase-search/openai": {
122
+ types: "./dist/tools/codebase_search/openai.d.ts",
123
+ import: "./dist/tools/codebase_search/openai.js",
124
+ require: "./dist/tools/codebase_search/openai.cjs"
125
+ },
126
+ "./tools/codebase-search/vercel": {
127
+ types: "./dist/tools/codebase_search/vercel.d.ts",
128
+ import: "./dist/tools/codebase_search/vercel.js",
129
+ require: "./dist/tools/codebase_search/vercel.cjs"
130
+ },
131
+ "./tools/git": {
132
+ types: "./dist/git/index.d.ts",
133
+ import: "./dist/git/index.js",
134
+ require: "./dist/git/index.cjs"
135
+ },
136
+ "./tools/browser": {
137
+ types: "./dist/tools/browser/index.d.ts",
138
+ import: "./dist/tools/browser/index.js",
139
+ require: "./dist/tools/browser/index.cjs"
140
+ },
141
+ "./tools/browser/anthropic": {
142
+ types: "./dist/tools/browser/anthropic.d.ts",
143
+ import: "./dist/tools/browser/anthropic.js",
144
+ require: "./dist/tools/browser/anthropic.cjs"
145
+ },
146
+ "./tools/browser/openai": {
147
+ types: "./dist/tools/browser/openai.d.ts",
148
+ import: "./dist/tools/browser/openai.js",
149
+ require: "./dist/tools/browser/openai.cjs"
150
+ },
151
+ "./tools/browser/vercel": {
152
+ types: "./dist/tools/browser/vercel.d.ts",
153
+ import: "./dist/tools/browser/vercel.js",
154
+ require: "./dist/tools/browser/vercel.cjs"
155
+ },
156
+ "./tools/browser/profiles": {
157
+ types: "./dist/tools/browser/profiles/index.d.ts",
158
+ import: "./dist/tools/browser/profiles/index.js",
159
+ require: "./dist/tools/browser/profiles/index.cjs"
160
+ },
161
+ "./modelrouter": {
162
+ types: "./dist/modelrouter/index.d.ts",
163
+ import: "./dist/modelrouter/index.js",
164
+ require: "./dist/modelrouter/index.cjs"
165
+ },
166
+ "./tools/compact": {
167
+ types: "./dist/tools/compact/index.d.ts",
168
+ import: "./dist/tools/compact/index.js",
169
+ require: "./dist/tools/compact/index.cjs"
170
+ }
171
+ },
172
+ files: [
173
+ "dist/**/*.js",
174
+ "dist/**/*.cjs",
175
+ "dist/**/*.d.ts",
176
+ "dist/**/*.map",
177
+ "!dist/**/__tests__/**",
178
+ "!dist/**/*.test.*"
179
+ ],
180
+ scripts: {
181
+ build: "tsup version.ts index.ts edge.ts client.ts tools/index.ts tools/fastapply/index.ts tools/fastapply/core.ts tools/fastapply/apply.ts tools/fastapply/types.ts tools/fastapply/prompts.ts tools/fastapply/anthropic.ts tools/fastapply/openai.ts tools/fastapply/vercel.ts tools/codebase_search/index.ts tools/codebase_search/core.ts tools/codebase_search/types.ts tools/codebase_search/prompts.ts tools/codebase_search/anthropic.ts tools/codebase_search/openai.ts tools/codebase_search/vercel.ts tools/warp_grep/index.ts tools/warp_grep/client.ts tools/warp_grep/openai.ts tools/warp_grep/anthropic.ts tools/warp_grep/vercel.ts tools/warp_grep/gemini.ts tools/warp_grep/harness.ts tools/warp_grep/agent/config.ts tools/warp_grep/agent/prompt.ts tools/warp_grep/agent/parser.ts tools/warp_grep/agent/runner.ts tools/warp_grep/agent/types.ts tools/warp_grep/agent/formatter.ts tools/warp_grep/providers/types.ts tools/warp_grep/providers/local.ts tools/warp_grep/providers/remote.ts tools/warp_grep/tools/grep.ts tools/warp_grep/tools/analyse.ts tools/warp_grep/tools/read.ts tools/warp_grep/tools/finish.ts tools/warp_grep/utils/paths.ts tools/warp_grep/utils/ripgrep.ts tools/warp_grep/utils/format.ts tools/warp_grep/utils/files.ts git/index.ts git/client.ts git/config.ts git/types.ts tools/browser/index.ts tools/browser/core.ts tools/browser/types.ts tools/browser/prompts.ts tools/browser/anthropic.ts tools/browser/openai.ts tools/browser/vercel.ts tools/browser/live.ts tools/browser/errors.ts tools/browser/profiles/index.ts tools/browser/profiles/core.ts tools/browser/profiles/types.ts modelrouter/index.ts modelrouter/core.ts modelrouter/types.ts tools/compact/index.ts tools/compact/core.ts tools/compact/types.ts tools/utils/resilience.ts --format esm,cjs --sourcemap --clean --dts --dts-resolve",
182
+ prepare: "npm run build",
183
+ typecheck: "tsc --noEmit",
184
+ lint: "eslint .",
185
+ test: "vitest run",
186
+ "test:watch": "vitest watch",
187
+ "test:anthropic": "vitest run anthropic",
188
+ "test:openai": "vitest run openai",
189
+ "test:vercel": "vitest run vercel",
190
+ "test:git": "vitest run git",
191
+ "test:browser": "vitest run browser",
192
+ "test:agent": "npx tsx tests/fullAgentTest.ts",
193
+ "test:integration": "npx tsx tests/fullIntegrationTest.ts",
194
+ "release:patch": "npm version patch && npm publish",
195
+ "release:minor": "npm version minor && npm publish",
196
+ "release:major": "npm version major && npm publish"
197
+ },
198
+ keywords: [
199
+ "morph",
200
+ "fast-apply",
201
+ "cli",
202
+ "sdk",
203
+ "edit-file"
204
+ ],
205
+ engines: {
206
+ node: ">=18"
207
+ },
208
+ license: "MIT",
209
+ dependencies: {
210
+ "@vscode/ripgrep": "^1.17.0",
211
+ ai: "^5.0.0",
212
+ diff: "^7.0.0",
213
+ "isomorphic-git": "^1.25.10",
214
+ openai: "^4.52.7",
215
+ zod: "^3.23.8"
216
+ },
217
+ devDependencies: {
218
+ "@ai-sdk/anthropic": "^1.0.9",
219
+ "@ai-sdk/openai": "^2.0.35",
220
+ "@anthropic-ai/sdk": "^0.30.1",
221
+ "@google/generative-ai": "^0.24.1",
222
+ "@types/diff": "^7.0.2",
223
+ "@types/node": "^20.14.10",
224
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
225
+ "@typescript-eslint/parser": "^7.18.0",
226
+ dotenv: "^16.4.5",
227
+ eslint: "^8.57.0",
228
+ shx: "^0.3.4",
229
+ tsup: "^8.5.0",
230
+ tsx: "^4.16.2",
231
+ typescript: "^5.5.4",
232
+ vitest: "^2.1.6"
233
+ },
234
+ peerDependencies: {
235
+ "@anthropic-ai/sdk": ">=0.25.0",
236
+ "@google/generative-ai": ">=0.21.0",
237
+ ai: ">=5.0.0",
238
+ zod: ">=3.23.0"
239
+ },
240
+ peerDependenciesMeta: {
241
+ "@anthropic-ai/sdk": {
242
+ optional: true
243
+ },
244
+ "@google/generative-ai": {
245
+ optional: true
246
+ },
247
+ ai: {
248
+ optional: true
249
+ },
250
+ zod: {
251
+ optional: true
252
+ }
253
+ },
254
+ publishConfig: {
255
+ access: "public"
256
+ }
257
+ };
258
+ }
259
+ });
260
+
261
+ // version.ts
262
+ var SDK_VERSION;
263
+ var init_version = __esm({
264
+ "version.ts"() {
265
+ "use strict";
266
+ init_package();
267
+ SDK_VERSION = package_default.version;
268
+ }
269
+ });
270
+
33
271
  // tools/fastapply/apply.ts
34
272
  var apply_exports = {};
35
273
  __export(apply_exports, {
@@ -90,7 +328,8 @@ async function callMorphAPI(originalCode, codeEdit, instructions, filepath, conf
90
328
  apiKey,
91
329
  baseURL: `${apiUrl}/v1`,
92
330
  timeout,
93
- maxRetries: config.retryConfig?.maxRetries ?? 3
331
+ maxRetries: config.retryConfig?.maxRetries ?? 3,
332
+ defaultHeaders: { "X-Morph-SDK-Version": SDK_VERSION }
94
333
  });
95
334
  const completion = await client.chat.completions.create({
96
335
  model: "morph-v3-fast",
@@ -145,6 +384,7 @@ var init_apply = __esm({
145
384
  "use strict";
146
385
  import_diff = require("diff");
147
386
  import_openai = __toESM(require("openai"), 1);
387
+ init_version();
148
388
  DEFAULT_API_URL = "https://api.morphllm.com";
149
389
  DEFAULT_TIMEOUT = 3e4;
150
390
  }
@@ -808,6 +1048,7 @@ async function executeEditFile(input, config = {}) {
808
1048
  }
809
1049
 
810
1050
  // tools/utils/resilience.ts
1051
+ init_version();
811
1052
  var DEFAULT_RETRY_CONFIG = {
812
1053
  maxRetries: 3,
813
1054
  initialDelay: 1e3,
@@ -826,6 +1067,7 @@ async function fetchWithRetry(url, options, retryConfig = {}) {
826
1067
  } = retryConfig;
827
1068
  let lastError = null;
828
1069
  let delay = initialDelay;
1070
+ options = { ...options, headers: { "X-Morph-SDK-Version": SDK_VERSION, ...options.headers } };
829
1071
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
830
1072
  try {
831
1073
  const response = await fetch(url, options);
@@ -3018,6 +3260,7 @@ function enforceContextLimit(messages, maxChars = AGENT_CONFIG.MAX_CONTEXT_CHARS
3018
3260
 
3019
3261
  // tools/warp_grep/agent/runner.ts
3020
3262
  var import_openai2 = __toESM(require("openai"), 1);
3263
+ init_version();
3021
3264
  var import_path3 = __toESM(require("path"), 1);
3022
3265
  var parser = new LLMResponseParser();
3023
3266
  var DEFAULT_API_URL3 = "https://api.morphllm.com";
@@ -3029,7 +3272,8 @@ async function callModel(messages, model, options = {}) {
3029
3272
  apiKey,
3030
3273
  baseURL: `${baseUrl}/v1`,
3031
3274
  maxRetries: options.retryConfig?.maxRetries,
3032
- timeout: timeoutMs
3275
+ timeout: timeoutMs,
3276
+ defaultHeaders: { "X-Morph-SDK-Version": SDK_VERSION }
3033
3277
  });
3034
3278
  const MAX_EMPTY_RETRIES = 1;
3035
3279
  for (let attempt = 0; attempt <= MAX_EMPTY_RETRIES; attempt++) {
@@ -4595,6 +4839,78 @@ var MorphGit = class {
4595
4839
  var import_isomorphic_git2 = __toESM(require("isomorphic-git"), 1);
4596
4840
  var import_node2 = __toESM(require("isomorphic-git/http/node"), 1);
4597
4841
 
4842
+ // tools/compact/core.ts
4843
+ var import_openai3 = __toESM(require("openai"), 1);
4844
+ var DEFAULT_API_URL4 = "https://api.morphllm.com";
4845
+ var DEFAULT_TIMEOUT3 = 12e4;
4846
+ var CompactClient = class {
4847
+ config;
4848
+ constructor(config = {}) {
4849
+ this.config = {
4850
+ morphApiUrl: DEFAULT_API_URL4,
4851
+ timeout: DEFAULT_TIMEOUT3,
4852
+ ...config
4853
+ };
4854
+ }
4855
+ /**
4856
+ * Compact conversation context using Morph compactor
4857
+ *
4858
+ * @param input - Compact parameters including input content and optional prompt
4859
+ * @returns Compact result with compacted output and usage stats
4860
+ *
4861
+ * @example
4862
+ * ```typescript
4863
+ * const client = new CompactClient({ morphApiKey: 'sk-...' });
4864
+ * const result = await client.compact({
4865
+ * input: 'Long conversation context to compact...',
4866
+ * prompt: 'Focus on the code review feedback',
4867
+ * });
4868
+ * console.log(result.output);
4869
+ * ```
4870
+ */
4871
+ async compact(input) {
4872
+ const apiKey = this.config.morphApiKey || (typeof process !== "undefined" ? process.env?.MORPH_API_KEY : void 0);
4873
+ const debug = this.config.debug || false;
4874
+ if (!apiKey) {
4875
+ throw new Error(
4876
+ "Morph API key not found. Set MORPH_API_KEY environment variable or pass morphApiKey in config."
4877
+ );
4878
+ }
4879
+ const client = new import_openai3.default({
4880
+ apiKey,
4881
+ baseURL: `${this.config.morphApiUrl}/v1`,
4882
+ timeout: this.config.timeout,
4883
+ maxRetries: this.config.retryConfig?.maxRetries ?? 3
4884
+ });
4885
+ const instructions = input.prompt ? `The user's next message will be: "${input.prompt}"
4886
+ Prioritize keeping context relevant to this query.` : void 0;
4887
+ if (debug) {
4888
+ console.log(`[Compact] Calling ${this.config.morphApiUrl}/v1/responses`);
4889
+ console.log(`[Compact] Model: ${input.model || "morph-compactor"}`);
4890
+ }
4891
+ const startTime = Date.now();
4892
+ const response = await client.responses.create({
4893
+ model: input.model || "morph-compactor",
4894
+ input: input.input,
4895
+ ...instructions && { instructions },
4896
+ ...input.temperature != null && { temperature: input.temperature },
4897
+ ...input.max_output_tokens != null && { max_output_tokens: input.max_output_tokens },
4898
+ stream: false
4899
+ });
4900
+ const elapsed = Date.now() - startTime;
4901
+ if (debug) {
4902
+ console.log(`[Compact] Success in ${elapsed}ms`);
4903
+ }
4904
+ return {
4905
+ id: response.id,
4906
+ output: response.output,
4907
+ usage: response.usage,
4908
+ status: response.status ?? "completed",
4909
+ model: response.model
4910
+ };
4911
+ }
4912
+ };
4913
+
4598
4914
  // modelrouter/core.ts
4599
4915
  var DEFAULT_CONFIG3 = {
4600
4916
  apiUrl: "https://api.morphllm.com",
@@ -5466,6 +5782,8 @@ var MorphClient = class {
5466
5782
  anthropic;
5467
5783
  /** Vercel AI SDK tool factories */
5468
5784
  vercel;
5785
+ /** Responses API with compact tool */
5786
+ responses;
5469
5787
  /**
5470
5788
  * Create a new Morph SDK client
5471
5789
  *
@@ -5542,6 +5860,15 @@ var MorphClient = class {
5542
5860
  retryConfig: config.retryConfig
5543
5861
  })
5544
5862
  };
5863
+ const compactClient = new CompactClient({
5864
+ morphApiKey: config.apiKey,
5865
+ timeout: config.timeout,
5866
+ retryConfig: config.retryConfig,
5867
+ debug: config.debug
5868
+ });
5869
+ this.responses = {
5870
+ compact: compactClient.compact.bind(compactClient)
5871
+ };
5545
5872
  this.openai = new OpenAIToolFactory(config);
5546
5873
  this.anthropic = new AnthropicToolFactory(config);
5547
5874
  this.vercel = new VercelToolFactory(config);