@marktoflow/integrations 2.0.0-alpha.12

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 (181) hide show
  1. package/README.md +1341 -0
  2. package/dist/adapters/claude-agent-hooks.d.ts.map +1 -0
  3. package/dist/adapters/claude-agent-hooks.js +339 -0
  4. package/dist/adapters/claude-agent-hooks.js.map +1 -0
  5. package/dist/adapters/claude-agent-types.d.ts +426 -0
  6. package/dist/adapters/claude-agent-types.d.ts.map +1 -0
  7. package/dist/adapters/claude-agent-types.js +62 -0
  8. package/dist/adapters/claude-agent-types.js.map +1 -0
  9. package/dist/adapters/claude-agent-workflow.d.ts +393 -0
  10. package/dist/adapters/claude-agent-workflow.d.ts.map +1 -0
  11. package/dist/adapters/claude-agent-workflow.js +445 -0
  12. package/dist/adapters/claude-agent-workflow.js.map +1 -0
  13. package/dist/adapters/claude-agent.d.ts +189 -0
  14. package/dist/adapters/claude-agent.d.ts.map +1 -0
  15. package/dist/adapters/claude-agent.js +504 -0
  16. package/dist/adapters/claude-agent.js.map +1 -0
  17. package/dist/adapters/claude-code.d.ts +34 -0
  18. package/dist/adapters/claude-code.d.ts.map +1 -0
  19. package/dist/adapters/claude-code.js +89 -0
  20. package/dist/adapters/claude-code.js.map +1 -0
  21. package/dist/adapters/codex-types.d.ts +463 -0
  22. package/dist/adapters/codex-types.d.ts.map +1 -0
  23. package/dist/adapters/codex-types.js +53 -0
  24. package/dist/adapters/codex-types.js.map +1 -0
  25. package/dist/adapters/codex-workflow.d.ts +414 -0
  26. package/dist/adapters/codex-workflow.d.ts.map +1 -0
  27. package/dist/adapters/codex-workflow.js +470 -0
  28. package/dist/adapters/codex-workflow.js.map +1 -0
  29. package/dist/adapters/codex.d.ts +154 -0
  30. package/dist/adapters/codex.d.ts.map +1 -0
  31. package/dist/adapters/codex.js +416 -0
  32. package/dist/adapters/codex.js.map +1 -0
  33. package/dist/adapters/github-copilot-types.d.ts +1012 -0
  34. package/dist/adapters/github-copilot-types.d.ts.map +1 -0
  35. package/dist/adapters/github-copilot-types.js +80 -0
  36. package/dist/adapters/github-copilot-types.js.map +1 -0
  37. package/dist/adapters/github-copilot-workflow.d.ts +462 -0
  38. package/dist/adapters/github-copilot-workflow.d.ts.map +1 -0
  39. package/dist/adapters/github-copilot-workflow.js +473 -0
  40. package/dist/adapters/github-copilot-workflow.js.map +1 -0
  41. package/dist/adapters/github-copilot.d.ts +280 -0
  42. package/dist/adapters/github-copilot.d.ts.map +1 -0
  43. package/dist/adapters/github-copilot.js +468 -0
  44. package/dist/adapters/github-copilot.js.map +1 -0
  45. package/dist/adapters/ollama.d.ts.map +1 -0
  46. package/dist/adapters/ollama.js +9 -0
  47. package/dist/adapters/ollama.js.map +1 -0
  48. package/dist/adapters/opencode.d.ts +41 -0
  49. package/dist/adapters/opencode.d.ts.map +1 -0
  50. package/dist/adapters/opencode.js +148 -0
  51. package/dist/adapters/opencode.js.map +1 -0
  52. package/dist/index.d.ts +52 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +161 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/services/ai-browser.d.ts +112 -0
  57. package/dist/services/ai-browser.d.ts.map +1 -0
  58. package/dist/services/ai-browser.js +363 -0
  59. package/dist/services/ai-browser.js.map +1 -0
  60. package/dist/services/airtable.d.ts.map +1 -0
  61. package/dist/services/airtable.js +295 -0
  62. package/dist/services/airtable.js.map +1 -0
  63. package/dist/services/asana.d.ts +159 -0
  64. package/dist/services/asana.d.ts.map +1 -0
  65. package/dist/services/asana.js +196 -0
  66. package/dist/services/asana.js.map +1 -0
  67. package/dist/services/aws-s3.d.ts +89 -0
  68. package/dist/services/aws-s3.d.ts.map +1 -0
  69. package/dist/services/aws-s3.js +154 -0
  70. package/dist/services/aws-s3.js.map +1 -0
  71. package/dist/services/confluence.d.ts.map +1 -0
  72. package/dist/services/confluence.js +356 -0
  73. package/dist/services/confluence.js.map +1 -0
  74. package/dist/services/discord.d.ts.map +1 -0
  75. package/dist/services/discord.js +279 -0
  76. package/dist/services/discord.js.map +1 -0
  77. package/dist/services/dropbox.d.ts +134 -0
  78. package/dist/services/dropbox.d.ts.map +1 -0
  79. package/dist/services/dropbox.js +190 -0
  80. package/dist/services/dropbox.js.map +1 -0
  81. package/dist/services/github.d.ts.map +1 -0
  82. package/dist/services/github.js +13 -0
  83. package/dist/services/github.js.map +1 -0
  84. package/dist/services/gmail-trigger.d.ts.map +1 -0
  85. package/dist/services/gmail-trigger.js +172 -0
  86. package/dist/services/gmail-trigger.js.map +1 -0
  87. package/dist/services/gmail.d.ts.map +1 -0
  88. package/dist/services/gmail.js +372 -0
  89. package/dist/services/gmail.js.map +1 -0
  90. package/dist/services/google-calendar.d.ts.map +1 -0
  91. package/dist/services/google-calendar.js +357 -0
  92. package/dist/services/google-calendar.js.map +1 -0
  93. package/dist/services/google-docs.d.ts.map +1 -0
  94. package/dist/services/google-docs.js +332 -0
  95. package/dist/services/google-docs.js.map +1 -0
  96. package/dist/services/google-drive.d.ts.map +1 -0
  97. package/dist/services/google-drive.js +327 -0
  98. package/dist/services/google-drive.js.map +1 -0
  99. package/dist/services/google-sheets.d.ts.map +1 -0
  100. package/dist/services/google-sheets.js +391 -0
  101. package/dist/services/google-sheets.js.map +1 -0
  102. package/dist/services/http.d.ts.map +1 -0
  103. package/dist/services/http.js +284 -0
  104. package/dist/services/http.js.map +1 -0
  105. package/dist/services/jira.d.ts.map +1 -0
  106. package/dist/services/jira.js +35 -0
  107. package/dist/services/jira.js.map +1 -0
  108. package/dist/services/linear.d.ts.map +1 -0
  109. package/dist/services/linear.js +326 -0
  110. package/dist/services/linear.js.map +1 -0
  111. package/dist/services/mailchimp.d.ts +169 -0
  112. package/dist/services/mailchimp.d.ts.map +1 -0
  113. package/dist/services/mailchimp.js +180 -0
  114. package/dist/services/mailchimp.js.map +1 -0
  115. package/dist/services/mysql.d.ts.map +1 -0
  116. package/dist/services/mysql.js +250 -0
  117. package/dist/services/mysql.js.map +1 -0
  118. package/dist/services/notion.d.ts.map +1 -0
  119. package/dist/services/notion.js +358 -0
  120. package/dist/services/notion.js.map +1 -0
  121. package/dist/services/outlook-trigger.d.ts.map +1 -0
  122. package/dist/services/outlook-trigger.js +204 -0
  123. package/dist/services/outlook-trigger.js.map +1 -0
  124. package/dist/services/outlook.d.ts.map +1 -0
  125. package/dist/services/outlook.js +486 -0
  126. package/dist/services/outlook.js.map +1 -0
  127. package/dist/services/playwright.d.ts +678 -0
  128. package/dist/services/playwright.d.ts.map +1 -0
  129. package/dist/services/playwright.js +1141 -0
  130. package/dist/services/playwright.js.map +1 -0
  131. package/dist/services/postgres.d.ts.map +1 -0
  132. package/dist/services/postgres.js +230 -0
  133. package/dist/services/postgres.js.map +1 -0
  134. package/dist/services/sendgrid.d.ts +43 -0
  135. package/dist/services/sendgrid.d.ts.map +1 -0
  136. package/dist/services/sendgrid.js +87 -0
  137. package/dist/services/sendgrid.js.map +1 -0
  138. package/dist/services/shopify.d.ts +160 -0
  139. package/dist/services/shopify.d.ts.map +1 -0
  140. package/dist/services/shopify.js +166 -0
  141. package/dist/services/shopify.js.map +1 -0
  142. package/dist/services/slack-socket.d.ts.map +1 -0
  143. package/dist/services/slack-socket.js +48 -0
  144. package/dist/services/slack-socket.js.map +1 -0
  145. package/dist/services/slack.d.ts.map +1 -0
  146. package/dist/services/slack.js +11 -0
  147. package/dist/services/slack.js.map +1 -0
  148. package/dist/services/stripe.d.ts +275 -0
  149. package/dist/services/stripe.d.ts.map +1 -0
  150. package/dist/services/stripe.js +229 -0
  151. package/dist/services/stripe.js.map +1 -0
  152. package/dist/services/supabase.d.ts.map +1 -0
  153. package/dist/services/supabase.js +328 -0
  154. package/dist/services/supabase.js.map +1 -0
  155. package/dist/services/teams.d.ts +224 -0
  156. package/dist/services/teams.d.ts.map +1 -0
  157. package/dist/services/teams.js +229 -0
  158. package/dist/services/teams.js.map +1 -0
  159. package/dist/services/telegram.d.ts.map +1 -0
  160. package/dist/services/telegram.js +247 -0
  161. package/dist/services/telegram.js.map +1 -0
  162. package/dist/services/trello.d.ts +160 -0
  163. package/dist/services/trello.d.ts.map +1 -0
  164. package/dist/services/trello.js +194 -0
  165. package/dist/services/trello.js.map +1 -0
  166. package/dist/services/twilio.d.ts +126 -0
  167. package/dist/services/twilio.d.ts.map +1 -0
  168. package/dist/services/twilio.js +153 -0
  169. package/dist/services/twilio.js.map +1 -0
  170. package/dist/services/whatsapp.d.ts.map +1 -0
  171. package/dist/services/whatsapp.js +253 -0
  172. package/dist/services/whatsapp.js.map +1 -0
  173. package/dist/services/zendesk.d.ts +134 -0
  174. package/dist/services/zendesk.d.ts.map +1 -0
  175. package/dist/services/zendesk.js +148 -0
  176. package/dist/services/zendesk.js.map +1 -0
  177. package/dist/tools/script.d.ts +21 -0
  178. package/dist/tools/script.d.ts.map +1 -0
  179. package/dist/tools/script.js +136 -0
  180. package/dist/tools/script.js.map +1 -0
  181. package/package.json +98 -0
@@ -0,0 +1,504 @@
1
+ /**
2
+ * Claude Agent SDK Adapter for marktoflow
3
+ *
4
+ * This adapter provides deep integration with the Claude Agent SDK,
5
+ * enabling agentic workflows with built-in tools, MCP support,
6
+ * session management, and streaming capabilities.
7
+ *
8
+ * Unlike the CLI-based claude-code adapter, this uses the SDK directly
9
+ * for lower latency and richer functionality.
10
+ */
11
+ // ============================================================================
12
+ // Claude Agent Client
13
+ // ============================================================================
14
+ /**
15
+ * Client for interacting with Claude via the Agent SDK
16
+ *
17
+ * Provides multiple interfaces for different use cases:
18
+ * - generate(): Simple prompt-response (compatible with old interface)
19
+ * - query(): Full agentic capabilities with streaming
20
+ * - runWithTools(): Execute with specific built-in tools
21
+ * - runWithSubagents(): Delegate to specialized subagents
22
+ */
23
+ export class ClaudeAgentClient {
24
+ sdk = null;
25
+ options;
26
+ currentQuery = null;
27
+ sessionId = null;
28
+ constructor(options = {}) {
29
+ this.options = {
30
+ permissionMode: 'acceptEdits',
31
+ maxTurns: 50,
32
+ ...options,
33
+ };
34
+ }
35
+ /**
36
+ * Initialize the Agent SDK (lazy loading)
37
+ */
38
+ async getSDK() {
39
+ if (!this.sdk) {
40
+ try {
41
+ // Dynamic import of the Agent SDK (optional dependency)
42
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
43
+ const module = await import(/* webpackIgnore: true */ '@anthropic-ai/claude-agent-sdk').catch(() => null);
44
+ if (!module) {
45
+ throw new Error('SDK not installed');
46
+ }
47
+ this.sdk = module;
48
+ }
49
+ catch (error) {
50
+ throw new Error(`Failed to load Claude Agent SDK. Install it with: npm install @anthropic-ai/claude-agent-sdk\n` +
51
+ `Original error: ${error}`);
52
+ }
53
+ }
54
+ return this.sdk;
55
+ }
56
+ // ============================================================================
57
+ // Simple Interface (backwards compatible)
58
+ // ============================================================================
59
+ /**
60
+ * Generate a response from Claude (simple interface)
61
+ *
62
+ * This method is compatible with the old CLI-based interface,
63
+ * but uses the Agent SDK under the hood for better performance.
64
+ *
65
+ * @param inputs - Prompt string or object with prompt and options
66
+ * @returns The generated response text
67
+ */
68
+ async generate(inputs) {
69
+ const prompt = typeof inputs === 'string' ? inputs : inputs.prompt;
70
+ const modelOverride = typeof inputs === 'string' ? undefined : inputs.model;
71
+ const result = await this.run(prompt, {
72
+ ...this.options,
73
+ model: modelOverride || this.options.model,
74
+ // For simple generation, limit tools
75
+ allowedTools: [],
76
+ });
77
+ return result.result || '';
78
+ }
79
+ // ============================================================================
80
+ // Full Agentic Interface
81
+ // ============================================================================
82
+ /**
83
+ * Run an agentic query with full capabilities
84
+ *
85
+ * @param prompt - The task for the agent to perform
86
+ * @param options - Override options for this query
87
+ * @returns Complete result with all messages and metadata
88
+ */
89
+ async run(prompt, options) {
90
+ const messages = [];
91
+ const mergedOptions = { ...this.options, ...options };
92
+ for await (const message of this.query(prompt, mergedOptions)) {
93
+ messages.push(message);
94
+ }
95
+ // Extract result from the last message
96
+ const lastMessage = messages[messages.length - 1];
97
+ if (lastMessage?.type === 'result') {
98
+ const result = lastMessage;
99
+ this.sessionId = result.session_id || null;
100
+ return {
101
+ result: result.result,
102
+ error: result.error,
103
+ durationMs: result.duration_ms || 0,
104
+ costUsd: result.total_cost_usd || 0,
105
+ usage: {
106
+ inputTokens: result.usage?.input_tokens || 0,
107
+ outputTokens: result.usage?.output_tokens || 0,
108
+ cacheCreationTokens: result.usage?.cache_creation_input_tokens,
109
+ cacheReadTokens: result.usage?.cache_read_input_tokens,
110
+ },
111
+ sessionId: result.session_id,
112
+ structuredOutput: result.structured_output,
113
+ messages,
114
+ };
115
+ }
116
+ // No result message, construct from assistant messages
117
+ const assistantMessages = messages.filter((m) => m.type === 'assistant');
118
+ const lastAssistant = assistantMessages[assistantMessages.length - 1];
119
+ let resultText = '';
120
+ if (lastAssistant?.type === 'assistant' && lastAssistant.message) {
121
+ const content = lastAssistant.message.content;
122
+ if (typeof content === 'string') {
123
+ resultText = content;
124
+ }
125
+ else if (Array.isArray(content)) {
126
+ resultText = content
127
+ .filter((c) => c.type === 'text')
128
+ .map((c) => c.text)
129
+ .join('\n');
130
+ }
131
+ }
132
+ return {
133
+ result: resultText,
134
+ durationMs: 0,
135
+ costUsd: 0,
136
+ usage: { inputTokens: 0, outputTokens: 0 },
137
+ messages,
138
+ };
139
+ }
140
+ /**
141
+ * Stream messages from an agentic query
142
+ *
143
+ * @param prompt - The task for the agent to perform
144
+ * @param callback - Called for each message received
145
+ * @param options - Override options for this query
146
+ * @returns Complete result after streaming finishes
147
+ */
148
+ async stream(prompt, callback, options) {
149
+ const messages = [];
150
+ const mergedOptions = { ...this.options, ...options };
151
+ for await (const message of this.query(prompt, mergedOptions)) {
152
+ messages.push(message);
153
+ await callback(message);
154
+ }
155
+ const lastMessage = messages[messages.length - 1];
156
+ if (lastMessage?.type === 'result') {
157
+ const result = lastMessage;
158
+ return {
159
+ result: result.result,
160
+ error: result.error,
161
+ durationMs: result.duration_ms || 0,
162
+ costUsd: result.total_cost_usd || 0,
163
+ usage: {
164
+ inputTokens: result.usage?.input_tokens || 0,
165
+ outputTokens: result.usage?.output_tokens || 0,
166
+ },
167
+ sessionId: result.session_id,
168
+ messages,
169
+ };
170
+ }
171
+ return {
172
+ result: '',
173
+ durationMs: 0,
174
+ costUsd: 0,
175
+ usage: { inputTokens: 0, outputTokens: 0 },
176
+ messages,
177
+ };
178
+ }
179
+ /**
180
+ * Get the async generator for a query
181
+ *
182
+ * Use this for fine-grained control over message processing.
183
+ *
184
+ * @param prompt - The task for the agent to perform
185
+ * @param options - Override options for this query
186
+ * @returns Async generator yielding SDK messages
187
+ */
188
+ async *query(prompt, options) {
189
+ const sdk = await this.getSDK();
190
+ const mergedOptions = { ...this.options, ...options };
191
+ // Convert options to SDK format
192
+ const sdkOptions = this.convertToSDKOptions(mergedOptions);
193
+ // If resuming, add the resume option
194
+ if (mergedOptions.resume) {
195
+ sdkOptions.resume = mergedOptions.resume;
196
+ }
197
+ // Create the query
198
+ this.currentQuery = sdk.query({
199
+ prompt,
200
+ options: sdkOptions,
201
+ });
202
+ try {
203
+ for await (const message of this.currentQuery) {
204
+ yield message;
205
+ }
206
+ }
207
+ finally {
208
+ this.currentQuery = null;
209
+ }
210
+ }
211
+ // ============================================================================
212
+ // Tool-Specific Methods
213
+ // ============================================================================
214
+ /**
215
+ * Run with specific built-in tools enabled
216
+ *
217
+ * @param prompt - The task for the agent to perform
218
+ * @param tools - List of tools to enable
219
+ * @param options - Additional options
220
+ */
221
+ async runWithTools(prompt, tools, options) {
222
+ return this.run(prompt, {
223
+ ...options,
224
+ allowedTools: tools,
225
+ });
226
+ }
227
+ /**
228
+ * Run a code analysis task
229
+ *
230
+ * @param prompt - What to analyze
231
+ * @param options - Additional options
232
+ */
233
+ async analyzeCode(prompt, options) {
234
+ return this.runWithTools(prompt, ['Read', 'Glob', 'Grep'], options);
235
+ }
236
+ /**
237
+ * Run a code modification task
238
+ *
239
+ * @param prompt - What to modify
240
+ * @param options - Additional options
241
+ */
242
+ async modifyCode(prompt, options) {
243
+ return this.runWithTools(prompt, ['Read', 'Write', 'Edit', 'Glob', 'Grep'], options);
244
+ }
245
+ /**
246
+ * Run a bash command task
247
+ *
248
+ * @param prompt - What commands to run
249
+ * @param options - Additional options
250
+ */
251
+ async runCommands(prompt, options) {
252
+ return this.runWithTools(prompt, ['Bash', 'Read', 'Glob'], options);
253
+ }
254
+ /**
255
+ * Run a web research task
256
+ *
257
+ * @param prompt - What to research
258
+ * @param options - Additional options
259
+ */
260
+ async webResearch(prompt, options) {
261
+ return this.runWithTools(prompt, ['WebSearch', 'WebFetch'], options);
262
+ }
263
+ // ============================================================================
264
+ // Subagent Methods
265
+ // ============================================================================
266
+ /**
267
+ * Run with subagents for specialized tasks
268
+ *
269
+ * @param prompt - The main task
270
+ * @param agents - Subagent definitions
271
+ * @param options - Additional options
272
+ */
273
+ async runWithSubagents(prompt, agents, options) {
274
+ return this.run(prompt, {
275
+ ...options,
276
+ agents,
277
+ allowedTools: [...(options?.allowedTools || []), 'Task'],
278
+ });
279
+ }
280
+ /**
281
+ * Run a code review with specialized subagents
282
+ *
283
+ * @param prompt - What to review
284
+ * @param options - Additional options
285
+ */
286
+ async codeReview(prompt, options) {
287
+ return this.runWithSubagents(prompt, {
288
+ 'code-reviewer': {
289
+ description: 'Review code for quality, correctness, and best practices',
290
+ tools: ['Read', 'Glob', 'Grep'],
291
+ prompt: 'You are a senior code reviewer. Focus on code quality, potential bugs, security issues, and performance problems.',
292
+ },
293
+ 'security-auditor': {
294
+ description: 'Audit code for security vulnerabilities',
295
+ tools: ['Read', 'Glob', 'Grep'],
296
+ prompt: 'You are a security expert. Look for OWASP Top 10 vulnerabilities, injection attacks, authentication issues, and data exposure risks.',
297
+ },
298
+ 'test-analyzer': {
299
+ description: 'Analyze test coverage and quality',
300
+ tools: ['Read', 'Glob', 'Grep', 'Bash'],
301
+ prompt: 'You are a testing expert. Analyze test coverage, identify missing tests, and suggest improvements.',
302
+ },
303
+ }, options);
304
+ }
305
+ // ============================================================================
306
+ // Session Management
307
+ // ============================================================================
308
+ /**
309
+ * Resume a previous session
310
+ *
311
+ * @param sessionId - The session ID to resume
312
+ * @param prompt - New prompt to continue with
313
+ * @param options - Additional options
314
+ */
315
+ async resumeSession(sessionId, prompt, options) {
316
+ return this.run(prompt, {
317
+ ...options,
318
+ resume: sessionId,
319
+ continue: true,
320
+ });
321
+ }
322
+ /**
323
+ * Get the last session ID
324
+ */
325
+ getSessionId() {
326
+ return this.sessionId;
327
+ }
328
+ // ============================================================================
329
+ // Control Methods
330
+ // ============================================================================
331
+ /**
332
+ * Interrupt the current query
333
+ */
334
+ async interrupt() {
335
+ if (this.currentQuery) {
336
+ await this.currentQuery.interrupt();
337
+ }
338
+ }
339
+ // ============================================================================
340
+ // Private Methods
341
+ // ============================================================================
342
+ /**
343
+ * Convert marktoflow options to Agent SDK options
344
+ */
345
+ convertToSDKOptions(options) {
346
+ const sdkOptions = {};
347
+ if (options.model)
348
+ sdkOptions.model = options.model;
349
+ if (options.cwd)
350
+ sdkOptions.cwd = options.cwd;
351
+ if (options.additionalDirectories)
352
+ sdkOptions.additionalDirectories = options.additionalDirectories;
353
+ if (options.excludeFiles)
354
+ sdkOptions.excludeFiles = options.excludeFiles;
355
+ if (options.env)
356
+ sdkOptions.env = options.env;
357
+ if (options.allowedTools)
358
+ sdkOptions.allowedTools = options.allowedTools;
359
+ if (options.disallowedTools)
360
+ sdkOptions.disallowedTools = options.disallowedTools;
361
+ if (options.permissionMode)
362
+ sdkOptions.permissionMode = options.permissionMode;
363
+ if (options.canUseTool)
364
+ sdkOptions.canUseTool = options.canUseTool;
365
+ if (options.maxTurns)
366
+ sdkOptions.maxTurns = options.maxTurns;
367
+ if (options.maxBudgetUsd)
368
+ sdkOptions.maxBudgetUsd = options.maxBudgetUsd;
369
+ if (options.maxThinkingTokens)
370
+ sdkOptions.maxThinkingTokens = options.maxThinkingTokens;
371
+ if (options.enableFileCheckpointing)
372
+ sdkOptions.enableFileCheckpointing = options.enableFileCheckpointing;
373
+ if (options.mcpServers)
374
+ sdkOptions.mcpServers = options.mcpServers;
375
+ if (options.agents)
376
+ sdkOptions.agents = options.agents;
377
+ if (options.hooks)
378
+ sdkOptions.hooks = options.hooks;
379
+ if (options.outputFormat)
380
+ sdkOptions.outputFormat = options.outputFormat;
381
+ if (options.systemPrompt)
382
+ sdkOptions.systemPrompt = options.systemPrompt;
383
+ if (options.continue)
384
+ sdkOptions.continue = options.continue;
385
+ return sdkOptions;
386
+ }
387
+ // ============================================================================
388
+ // OpenAI-Compatible Interface
389
+ // ============================================================================
390
+ /**
391
+ * OpenAI-compatible chat interface for workflow compatibility
392
+ */
393
+ chat = {
394
+ completions: async (inputs) => {
395
+ // Combine all messages into a single prompt
396
+ // System messages provide context, user messages are the actual requests
397
+ let combinedPrompt = '';
398
+ for (const msg of inputs.messages) {
399
+ if (msg.role === 'system') {
400
+ combinedPrompt += msg.content + '\n\n';
401
+ }
402
+ else if (msg.role === 'user') {
403
+ combinedPrompt += msg.content;
404
+ }
405
+ }
406
+ // Use the generate method with combined prompt
407
+ const response = await this.generate({
408
+ prompt: combinedPrompt,
409
+ model: inputs.model,
410
+ });
411
+ // Return OpenAI-compatible format
412
+ return {
413
+ choices: [
414
+ {
415
+ message: {
416
+ content: response,
417
+ },
418
+ },
419
+ ],
420
+ };
421
+ },
422
+ };
423
+ }
424
+ // ============================================================================
425
+ // Custom MCP Tool Factory
426
+ // ============================================================================
427
+ /**
428
+ * Create a custom MCP tool for use with the Agent SDK
429
+ *
430
+ * @param name - Tool name
431
+ * @param description - Tool description
432
+ * @param schema - Zod schema for input validation
433
+ * @param handler - Function to execute when tool is called
434
+ */
435
+ export async function createCustomTool(name, description, schema, handler) {
436
+ try {
437
+ // Dynamic import of the Agent SDK (optional dependency)
438
+ const module = (await import(/* webpackIgnore: true */ '@anthropic-ai/claude-agent-sdk').catch(() => null));
439
+ if (!module?.tool) {
440
+ throw new Error('SDK not installed');
441
+ }
442
+ const tool = module.tool;
443
+ return tool(name, description, schema, handler);
444
+ }
445
+ catch (error) {
446
+ throw new Error(`Failed to create custom tool. Install the Agent SDK: npm install @anthropic-ai/claude-agent-sdk\n` +
447
+ `Original error: ${error}`);
448
+ }
449
+ }
450
+ /**
451
+ * Create an in-process MCP server
452
+ *
453
+ * @param name - Server name
454
+ * @param tools - Array of tools created with createCustomTool
455
+ * @param version - Server version
456
+ */
457
+ export async function createMcpServer(name, tools, version = '1.0.0') {
458
+ try {
459
+ // Dynamic import of the Agent SDK (optional dependency)
460
+ const module = (await import(/* webpackIgnore: true */ '@anthropic-ai/claude-agent-sdk').catch(() => null));
461
+ if (!module?.createSdkMcpServer) {
462
+ throw new Error('SDK not installed');
463
+ }
464
+ const createSdkMcpServer = module.createSdkMcpServer;
465
+ return createSdkMcpServer({
466
+ name,
467
+ version,
468
+ tools,
469
+ });
470
+ }
471
+ catch (error) {
472
+ throw new Error(`Failed to create MCP server. Install the Agent SDK: npm install @anthropic-ai/claude-agent-sdk\n` +
473
+ `Original error: ${error}`);
474
+ }
475
+ }
476
+ // ============================================================================
477
+ // SDK Initializer for marktoflow Registry
478
+ // ============================================================================
479
+ /**
480
+ * Initializer for the SDK Registry
481
+ */
482
+ export const ClaudeAgentInitializer = {
483
+ async initialize(_module, config) {
484
+ const options = config.options || {};
485
+ return new ClaudeAgentClient({
486
+ model: options['model'],
487
+ cwd: options['cwd'],
488
+ additionalDirectories: options['additionalDirectories'],
489
+ env: options['env'],
490
+ allowedTools: options['allowedTools'],
491
+ disallowedTools: options['disallowedTools'],
492
+ permissionMode: options['permissionMode'],
493
+ maxTurns: options['maxTurns'],
494
+ maxBudgetUsd: options['maxBudgetUsd'],
495
+ maxThinkingTokens: options['maxThinkingTokens'],
496
+ timeout: options['timeout'],
497
+ enableFileCheckpointing: options['enableFileCheckpointing'],
498
+ mcpServers: options['mcpServers'],
499
+ agents: options['agents'],
500
+ systemPrompt: options['systemPrompt'],
501
+ });
502
+ },
503
+ };
504
+ //# sourceMappingURL=claude-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-agent.js","sourceRoot":"","sources":["../../src/adapters/claude-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { SDKInitializer } from '@marktoflow/core';
2
+ export declare class ClaudeCodeClient {
3
+ private options;
4
+ constructor(options?: {
5
+ cliPath?: string;
6
+ model?: string;
7
+ cwd?: string;
8
+ timeout?: number;
9
+ });
10
+ generate(inputs: {
11
+ prompt: string;
12
+ model?: string;
13
+ } | string): Promise<string>;
14
+ /**
15
+ * OpenAI-compatible chat interface for workflow compatibility
16
+ */
17
+ chat: {
18
+ completions: (inputs: {
19
+ model?: string;
20
+ messages: Array<{
21
+ role: string;
22
+ content: string;
23
+ }>;
24
+ }) => Promise<{
25
+ choices: Array<{
26
+ message: {
27
+ content: string;
28
+ };
29
+ }>;
30
+ }>;
31
+ };
32
+ }
33
+ export declare const ClaudeCodeInitializer: SDKInitializer;
34
+ //# sourceMappingURL=claude-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,qBAAa,gBAAgB;IACf,OAAO,CAAC,OAAO;gBAAP,OAAO,GAAE;QAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KACb;IAEA,QAAQ,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6CpF;;OAEG;IACH,IAAI;8BAC0B;YAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SACpD,KAAG,OAAO,CAAC;YAAE,OAAO,EAAE,KAAK,CAAC;gBAAE,OAAO,EAAE;oBAAE,OAAO,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC;MA8BjE;CACH;AAED,eAAO,MAAM,qBAAqB,EAAE,cAUnC,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { spawn } from 'node:child_process';
2
+ export class ClaudeCodeClient {
3
+ options;
4
+ constructor(options = {}) {
5
+ this.options = options;
6
+ }
7
+ async generate(inputs) {
8
+ const prompt = typeof inputs === 'string' ? inputs : inputs.prompt;
9
+ const modelOverride = typeof inputs === 'string' ? undefined : inputs.model;
10
+ const cliPath = this.options.cliPath || 'claude';
11
+ const cwd = this.options.cwd || process.cwd();
12
+ const timeout = this.options.timeout || 120000;
13
+ const args = ['-p', prompt];
14
+ const model = modelOverride || this.options.model;
15
+ if (model) {
16
+ args.push('--model', model);
17
+ }
18
+ return new Promise((resolve, reject) => {
19
+ const process = spawn(cliPath, args, { cwd });
20
+ let stdout = '';
21
+ let stderr = '';
22
+ process.stdout.on('data', (data) => { stdout += data.toString(); });
23
+ process.stderr.on('data', (data) => { stderr += data.toString(); });
24
+ const timeoutId = setTimeout(() => {
25
+ process.kill();
26
+ reject(new Error(`Claude Code CLI timed out after ${timeout}ms`));
27
+ }, timeout);
28
+ process.on('close', (code) => {
29
+ clearTimeout(timeoutId);
30
+ if (code === 0) {
31
+ resolve(stdout.trim());
32
+ }
33
+ else {
34
+ // Check if stderr contains useful info even if code != 0
35
+ reject(new Error(`Claude Code CLI failed (exit code ${code})\nSTDOUT: ${stdout}\nSTDERR: ${stderr}`));
36
+ }
37
+ });
38
+ process.on('error', (err) => {
39
+ clearTimeout(timeoutId);
40
+ reject(err);
41
+ });
42
+ });
43
+ }
44
+ /**
45
+ * OpenAI-compatible chat interface for workflow compatibility
46
+ */
47
+ chat = {
48
+ completions: async (inputs) => {
49
+ // Combine all messages into a single prompt
50
+ // System messages provide context, user messages are the actual requests
51
+ let combinedPrompt = '';
52
+ for (const msg of inputs.messages) {
53
+ if (msg.role === 'system') {
54
+ combinedPrompt += msg.content + '\n\n';
55
+ }
56
+ else if (msg.role === 'user') {
57
+ combinedPrompt += msg.content;
58
+ }
59
+ }
60
+ // Use the generate method with combined prompt
61
+ const response = await this.generate({
62
+ prompt: combinedPrompt,
63
+ model: inputs.model,
64
+ });
65
+ // Return OpenAI-compatible format
66
+ return {
67
+ choices: [
68
+ {
69
+ message: {
70
+ content: response,
71
+ },
72
+ },
73
+ ],
74
+ };
75
+ },
76
+ };
77
+ }
78
+ export const ClaudeCodeInitializer = {
79
+ async initialize(_module, config) {
80
+ const options = config.options || {};
81
+ return new ClaudeCodeClient({
82
+ cliPath: options['cliPath'],
83
+ model: options['model'],
84
+ cwd: options['cwd'],
85
+ timeout: options['timeout'],
86
+ });
87
+ },
88
+ };
89
+ //# sourceMappingURL=claude-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"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"}