@aituber-onair/chat 0.58.0 → 0.59.0

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 (43) hide show
  1. package/README.ja.md +66 -9
  2. package/README.md +63 -8
  3. package/dist/cjs/backend.d.ts.map +1 -1
  4. package/dist/cjs/backend.js +1 -0
  5. package/dist/cjs/backend.js.map +1 -1
  6. package/dist/cjs/services/providers/agent/CursorSDKChatService.d.ts +70 -0
  7. package/dist/cjs/services/providers/agent/CursorSDKChatService.d.ts.map +1 -0
  8. package/dist/cjs/services/providers/agent/CursorSDKChatService.js +141 -0
  9. package/dist/cjs/services/providers/agent/CursorSDKChatService.js.map +1 -0
  10. package/dist/cjs/services/providers/agent/CursorSDKChatServiceProvider.d.ts +15 -0
  11. package/dist/cjs/services/providers/agent/CursorSDKChatServiceProvider.d.ts.map +1 -0
  12. package/dist/cjs/services/providers/agent/CursorSDKChatServiceProvider.js +34 -0
  13. package/dist/cjs/services/providers/agent/CursorSDKChatServiceProvider.js.map +1 -0
  14. package/dist/cjs/services/providers/agent/index.d.ts +6 -1
  15. package/dist/cjs/services/providers/agent/index.d.ts.map +1 -1
  16. package/dist/cjs/services/providers/agent/index.js +8 -1
  17. package/dist/cjs/services/providers/agent/index.js.map +1 -1
  18. package/dist/cjs/services/providers/agent/shared.d.ts +3 -1
  19. package/dist/cjs/services/providers/agent/shared.d.ts.map +1 -1
  20. package/dist/cjs/services/providers/agent/shared.js +7 -2
  21. package/dist/cjs/services/providers/agent/shared.js.map +1 -1
  22. package/dist/esm/backend.d.ts.map +1 -1
  23. package/dist/esm/backend.js +1 -0
  24. package/dist/esm/backend.js.map +1 -1
  25. package/dist/esm/services/providers/agent/CursorSDKChatService.d.ts +70 -0
  26. package/dist/esm/services/providers/agent/CursorSDKChatService.d.ts.map +1 -0
  27. package/dist/esm/services/providers/agent/CursorSDKChatService.js +137 -0
  28. package/dist/esm/services/providers/agent/CursorSDKChatService.js.map +1 -0
  29. package/dist/esm/services/providers/agent/CursorSDKChatServiceProvider.d.ts +15 -0
  30. package/dist/esm/services/providers/agent/CursorSDKChatServiceProvider.d.ts.map +1 -0
  31. package/dist/esm/services/providers/agent/CursorSDKChatServiceProvider.js +30 -0
  32. package/dist/esm/services/providers/agent/CursorSDKChatServiceProvider.js.map +1 -0
  33. package/dist/esm/services/providers/agent/index.d.ts +6 -1
  34. package/dist/esm/services/providers/agent/index.d.ts.map +1 -1
  35. package/dist/esm/services/providers/agent/index.js +4 -0
  36. package/dist/esm/services/providers/agent/index.js.map +1 -1
  37. package/dist/esm/services/providers/agent/shared.d.ts +3 -1
  38. package/dist/esm/services/providers/agent/shared.d.ts.map +1 -1
  39. package/dist/esm/services/providers/agent/shared.js +7 -2
  40. package/dist/esm/services/providers/agent/shared.js.map +1 -1
  41. package/dist/umd/aituber-onair-chat.js +1 -0
  42. package/dist/umd/aituber-onair-chat.min.js +1 -1
  43. package/package.json +1 -1
package/README.ja.md CHANGED
@@ -91,8 +91,9 @@ async function testChat() {
91
91
 
92
92
  ## Agent SDKプロバイダー
93
93
 
94
- Codex SDK、Claude Agent SDK、Copilot SDK のようなエージェントSDKを使う場合は、
95
- 専用の `@aituber-onair/chat/agent` エントリを使用します。
94
+ Codex SDK、Claude Agent SDK、Copilot SDK、Cursor SDK のような
95
+ エージェントSDKを使う場合は、専用の `@aituber-onair/chat/agent` エントリを
96
+ 使用します。
96
97
 
97
98
  ```typescript
98
99
  import { createAgentChatService } from '@aituber-onair/chat/agent';
@@ -107,6 +108,8 @@ npm install @aituber-onair/chat @openai/codex-sdk
107
108
  npm install @aituber-onair/chat @anthropic-ai/claude-agent-sdk
108
109
  # または
109
110
  npm install @aituber-onair/chat @github/copilot-sdk
111
+ # または(Node.js 22.13以上が必要)
112
+ npm install @aituber-onair/chat @cursor/sdk
110
113
  ```
111
114
 
112
115
  Codex SDK を使う最短例:
@@ -212,6 +215,32 @@ const chatService = createAgentChatService('copilot-sdk', {
212
215
  });
213
216
  ```
214
217
 
218
+ Cursor SDK を使う場合は、Node.js 22.13以上が必要です。
219
+
220
+ ```typescript
221
+ import { createAgentChatService } from '@aituber-onair/chat/agent';
222
+
223
+ const chatService = createAgentChatService('cursor-sdk', {
224
+ apiKey: process.env.CURSOR_API_KEY,
225
+ workingDirectory: process.cwd(),
226
+ });
227
+
228
+ const response = await chatService.chatOnce(
229
+ [{ role: 'user', content: '一文で挨拶して。' }],
230
+ false,
231
+ );
232
+
233
+ console.log(response);
234
+ ```
235
+
236
+ 認証には、セットアップ時に `Cursor.auth.login()` を一度実行する方法、
237
+ `CURSOR_API_KEY` を設定する方法、`apiKey` を渡す方法があります。Cursor CLI の
238
+ `agent login` では SDK の認証情報は作成されません。利用分は Cursor プランに
239
+ 請求されます。このプロバイダーは `tools: []` と `settingSources: []` を指定し、
240
+ tools、vision、MCP は使用しません。既定のモデルIDは、
241
+ `Cursor.models.list()` で Cursor の Auto として返される `default` です。
242
+ 別のモデルを使う場合は、`Cursor.models.list()` が返すIDを `model` に指定します。
243
+
215
244
  利用前に、各 SDK のローカル認証を済ませておく必要があります。SDK パッケージが
216
245
  未インストール、または認証が未完了の場合は、実行時に元の SDK エラー詳細を含む
217
246
  エラーを投げます。
@@ -305,9 +334,10 @@ const localCompatibleService = ChatServiceFactory.createChatService(
305
334
 
306
335
  #### Agent SDKプロバイダー
307
336
 
308
- `@aituber-onair/chat/agent` は、Codex SDK、Claude Agent SDK、Copilot SDK のような
309
- エージェントSDK向けの実験的なプロバイダーを公開します。ブラウザ/GAS向けUMDエントリには
310
- 含まれず、APIキーも使用しません。
337
+ `@aituber-onair/chat/agent` は、Codex SDK、Claude Agent SDK、Copilot SDK、
338
+ Cursor SDK のようなエージェントSDK向けの実験的なプロバイダーを公開します。
339
+ ブラウザ/GAS向けUMDエントリには含まれません。Cursor SDK では任意で APIキーを
340
+ 指定でき、ほかの Agent SDK プロバイダーは各 SDK のローカル認証を使用します。
311
341
 
312
342
  利用するエージェントSDKパッケージだけを、利用側の JavaScript ランタイムアプリに追加してください。
313
343
 
@@ -317,12 +347,14 @@ npm install @aituber-onair/chat @openai/codex-sdk
317
347
  npm install @aituber-onair/chat @anthropic-ai/claude-agent-sdk
318
348
  # または
319
349
  npm install @aituber-onair/chat @github/copilot-sdk
350
+ # または(Node.js 22.13以上が必要)
351
+ npm install @aituber-onair/chat @cursor/sdk
320
352
  ```
321
353
 
322
- `@openai/codex-sdk`、`@anthropic-ai/claude-agent-sdk`、`@github/copilot-sdk` は
323
- `@aituber-onair/chat` の依存関係には含めていません。SDK は動的に読み込むため、通常の API
324
- プロバイダーだけを使うユーザーはこれらのエージェントSDKパッケージをインストールする
325
- 必要がありません。
354
+ `@openai/codex-sdk`、`@anthropic-ai/claude-agent-sdk`、
355
+ `@github/copilot-sdk`、`@cursor/sdk` は `@aituber-onair/chat` の依存関係には
356
+ 含めていません。SDK は動的に読み込むため、通常の API プロバイダーだけを使う
357
+ ユーザーはこれらのエージェントSDKパッケージをインストールする必要がありません。
326
358
 
327
359
  ```typescript
328
360
  import { createAgentChatService } from '@aituber-onair/chat/agent';
@@ -424,10 +456,35 @@ const copilotService = createAgentChatService('copilot-sdk', {
424
456
  });
425
457
  ```
426
458
 
459
+ Cursor SDK を使う場合は `cursor-sdk` を指定します。Node.js 22.13以上が必要です。
460
+
461
+ ```typescript
462
+ import { createAgentChatService } from '@aituber-onair/chat/agent';
463
+
464
+ const cursorService = createAgentChatService('cursor-sdk', {
465
+ apiKey: process.env.CURSOR_API_KEY,
466
+ workingDirectory: process.cwd(),
467
+ });
468
+
469
+ const result = await cursorService.chatOnce(messages, false, (text) =>
470
+ process.stdout.write(text),
471
+ );
472
+ ```
473
+
474
+ 認証には、セットアップ時に `Cursor.auth.login()` を一度実行する方法、
475
+ `CURSOR_API_KEY` を設定する方法、`apiKey` を渡す方法があります。Cursor CLI の
476
+ `agent login` では SDK の認証情報は作成されません。利用分は Cursor プランに
477
+ 請求されます。このプロバイダーはローカルエージェントに `tools: []` と
478
+ `settingSources: []` を渡すため、tools、vision、MCP は使用できません。
479
+ `DEFAULT_CURSOR_SDK_MODEL` は `default` です。`Cursor.models.list()` では
480
+ Cursor の Auto として返されます。別のモデルを使う場合は、
481
+ `Cursor.models.list()` が返すIDを `model` に指定します。
482
+
427
483
  利用可能なプロバイダー:
428
484
  - `codex-sdk`: `@openai/codex-sdk` と Codex 認証が必要です。
429
485
  - `claude-agent-sdk`: `@anthropic-ai/claude-agent-sdk` と Claude Agent SDK 認証が必要です。
430
486
  - `copilot-sdk`: `@github/copilot-sdk` と GitHub Copilot 認証が必要です。
487
+ - `cursor-sdk`: `@cursor/sdk`、Node.js 22.13以上、Cursor SDK の認証またはAPIキーが必要です。
431
488
 
432
489
  現時点の制限:
433
490
  - テキストチャットのみ対応します。
package/README.md CHANGED
@@ -91,8 +91,8 @@ Notes:
91
91
 
92
92
  ## Agent SDK Providers
93
93
 
94
- For agent SDKs such as Codex SDK, Claude Agent SDK, and Copilot SDK, use the
95
- separate `@aituber-onair/chat/agent` entry point:
94
+ For agent SDKs such as Codex SDK, Claude Agent SDK, Copilot SDK, and Cursor SDK,
95
+ use the separate `@aituber-onair/chat/agent` entry point:
96
96
 
97
97
  ```typescript
98
98
  import { createAgentChatService } from '@aituber-onair/chat/agent';
@@ -107,6 +107,8 @@ npm install @aituber-onair/chat @openai/codex-sdk
107
107
  npm install @aituber-onair/chat @anthropic-ai/claude-agent-sdk
108
108
  # or
109
109
  npm install @aituber-onair/chat @github/copilot-sdk
110
+ # or (requires Node.js 22.13+)
111
+ npm install @aituber-onair/chat @cursor/sdk
110
112
  ```
111
113
 
112
114
  Minimal Codex SDK example:
@@ -220,6 +222,32 @@ const chatService = createAgentChatService('copilot-sdk', {
220
222
  });
221
223
  ```
222
224
 
225
+ For Cursor SDK (Node.js 22.13+):
226
+
227
+ ```typescript
228
+ import { createAgentChatService } from '@aituber-onair/chat/agent';
229
+
230
+ const chatService = createAgentChatService('cursor-sdk', {
231
+ apiKey: process.env.CURSOR_API_KEY,
232
+ workingDirectory: process.cwd(),
233
+ });
234
+
235
+ const response = await chatService.chatOnce(
236
+ [{ role: 'user', content: 'Say hello in one sentence.' }],
237
+ false,
238
+ );
239
+
240
+ console.log(response);
241
+ ```
242
+
243
+ Authenticate once during setup with `Cursor.auth.login()`, set
244
+ `CURSOR_API_KEY`, or pass `apiKey` as shown above. Cursor CLI `agent login` does
245
+ not populate the SDK authentication store. Cursor SDK usage is billed to the
246
+ Cursor plan. This provider passes `tools: []` and `settingSources: []`, and does
247
+ not support tools, vision, or MCP. The default model id is `default`, which
248
+ `Cursor.models.list()` returns as Cursor's Auto option. To use another model,
249
+ set `model` to an id returned by `Cursor.models.list()`.
250
+
223
251
  Authenticate the corresponding SDK locally before using these providers. If the
224
252
  SDK package is missing or authentication is not ready, the provider throws an
225
253
  error at runtime with the original SDK error details.
@@ -314,8 +342,9 @@ Notes:
314
342
  #### Agent SDK Providers
315
343
 
316
344
  `@aituber-onair/chat/agent` exposes experimental providers for agent SDKs such
317
- as Codex SDK, Claude Agent SDK, and Copilot SDK. These providers are not
318
- included in the browser/GAS UMD entry point and do not use API keys.
345
+ as Codex SDK, Claude Agent SDK, Copilot SDK, and Cursor SDK. These providers are
346
+ not included in the browser/GAS UMD entry point. Cursor SDK accepts an optional
347
+ API key; the other agent providers use their local authentication flows.
319
348
 
320
349
  Install only the agent SDK package you actually use in your JavaScript runtime application:
321
350
 
@@ -325,12 +354,14 @@ npm install @aituber-onair/chat @openai/codex-sdk
325
354
  npm install @aituber-onair/chat @anthropic-ai/claude-agent-sdk
326
355
  # or
327
356
  npm install @aituber-onair/chat @github/copilot-sdk
357
+ # or (requires Node.js 22.13+)
358
+ npm install @aituber-onair/chat @cursor/sdk
328
359
  ```
329
360
 
330
- `@openai/codex-sdk`, `@anthropic-ai/claude-agent-sdk`, and
331
- `@github/copilot-sdk` are not dependencies of `@aituber-onair/chat`. They are
332
- loaded dynamically, so users who only use the normal API providers do not
333
- install these agent SDK packages.
361
+ The packages `@openai/codex-sdk`, `@anthropic-ai/claude-agent-sdk`,
362
+ `@github/copilot-sdk`, and `@cursor/sdk` are not dependencies of
363
+ `@aituber-onair/chat`. They are loaded dynamically, so users who only use the
364
+ normal API providers do not install these agent SDK packages.
334
365
 
335
366
  ```typescript
336
367
  import { createAgentChatService } from '@aituber-onair/chat/agent';
@@ -442,10 +473,34 @@ const copilotService = createAgentChatService('copilot-sdk', {
442
473
  });
443
474
  ```
444
475
 
476
+ For Cursor SDK, use `cursor-sdk` on Node.js 22.13 or later.
477
+
478
+ ```typescript
479
+ import { createAgentChatService } from '@aituber-onair/chat/agent';
480
+
481
+ const cursorService = createAgentChatService('cursor-sdk', {
482
+ apiKey: process.env.CURSOR_API_KEY,
483
+ workingDirectory: process.cwd(),
484
+ });
485
+
486
+ const result = await cursorService.chatOnce(messages, false, (text) =>
487
+ process.stdout.write(text),
488
+ );
489
+ ```
490
+
491
+ Authenticate once during setup with `Cursor.auth.login()`, set
492
+ `CURSOR_API_KEY`, or pass `apiKey`. Cursor CLI `agent login` does not populate
493
+ the SDK authentication store. Usage is billed to the Cursor plan. This provider
494
+ uses a local agent with `tools: []` and `settingSources: []`; tools, vision, and
495
+ MCP are unavailable. `DEFAULT_CURSOR_SDK_MODEL` is `default`, which
496
+ `Cursor.models.list()` returns as Cursor's Auto option. To use another model,
497
+ set `model` to an id returned by `Cursor.models.list()`.
498
+
445
499
  Available providers:
446
500
  - `codex-sdk`: requires `@openai/codex-sdk` and Codex authentication.
447
501
  - `claude-agent-sdk`: requires `@anthropic-ai/claude-agent-sdk` and Claude Agent SDK authentication.
448
502
  - `copilot-sdk`: requires `@github/copilot-sdk` and GitHub Copilot authentication.
503
+ - `cursor-sdk`: requires `@cursor/sdk`, Node.js 22.13+, and Cursor SDK authentication or an API key.
449
504
 
450
505
  Current limitations:
451
506
  - Text chat only.
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAsCjB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,6EAA6E;AAC7E,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,MAAM,GACf,+BAA+B,GAAG,SAAS,CAO7C;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,QAAQ,CAAC,CAAC;IAC9E,QAAQ,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,GACxC,OAAO,EAAE,CAkBX"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAuCjB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,6EAA6E;AAC7E,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,MAAM,GACf,+BAA+B,GAAG,SAAS,CAO7C;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,QAAQ,CAAC,CAAC;IAC9E,QAAQ,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,GACxC,OAAO,EAAE,CAkBX"}
@@ -7,6 +7,7 @@ const KNOWN_CHAT_PROVIDERS = new Set([
7
7
  'claude-agent-sdk',
8
8
  'codex-sdk',
9
9
  'copilot-sdk',
10
+ 'cursor-sdk',
10
11
  'deepseek',
11
12
  'gemini',
12
13
  'gemini-nano',
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { ChatResponseLength } from '../../../constants';
2
+ import { AgentTextChatService } from './shared';
3
+ /** Default model identifier passed to the Cursor SDK. */
4
+ export declare const DEFAULT_CURSOR_SDK_MODEL = "default";
5
+ type CursorSDKModule = {
6
+ Agent: {
7
+ create(options: CursorAgentCreateOptions): Promise<CursorAgent>;
8
+ };
9
+ };
10
+ type CursorAgentCreateOptions = {
11
+ apiKey?: string;
12
+ model: {
13
+ id: string;
14
+ };
15
+ tools: [];
16
+ local: {
17
+ cwd: string;
18
+ settingSources: [];
19
+ };
20
+ };
21
+ type CursorAgent = {
22
+ send(prompt: string, options: {
23
+ onDelta(event: CursorDeltaEvent): void;
24
+ }): Promise<CursorRun>;
25
+ close?(): Promise<void> | void;
26
+ [key: symbol]: unknown;
27
+ };
28
+ type CursorDeltaEvent = {
29
+ update: {
30
+ type: 'text-delta';
31
+ text: unknown;
32
+ } | {
33
+ type: string;
34
+ [key: string]: unknown;
35
+ };
36
+ };
37
+ type CursorRun = {
38
+ wait(): Promise<CursorRunResult>;
39
+ };
40
+ type CursorRunResult = {
41
+ status: 'finished';
42
+ result?: unknown;
43
+ } | {
44
+ status: 'error';
45
+ error?: {
46
+ message?: unknown;
47
+ code?: unknown;
48
+ };
49
+ } | {
50
+ status: 'cancelled';
51
+ };
52
+ /** Loads the optional Cursor SDK at runtime. */
53
+ export type CursorSDKLoader = () => Promise<CursorSDKModule>;
54
+ /** Options for the text-only Cursor SDK chat provider. */
55
+ export type CursorSDKChatServiceOptions = {
56
+ /** Optional explicit key. Cursor SDK authentication is used when omitted. */
57
+ apiKey?: string;
58
+ /** Cursor model identifier. Defaults to DEFAULT_CURSOR_SDK_MODEL. */
59
+ model?: string;
60
+ /** Soft response length instruction included in the generated prompt. */
61
+ responseLength?: ChatResponseLength;
62
+ /** Local agent working directory. Defaults to process.cwd(). */
63
+ workingDirectory?: string;
64
+ };
65
+ /** Text-only ChatService backed by a local Cursor SDK agent. */
66
+ export declare class CursorSDKChatService extends AgentTextChatService {
67
+ constructor(options?: CursorSDKChatServiceOptions, loadSDK?: CursorSDKLoader);
68
+ }
69
+ export {};
70
+ //# sourceMappingURL=CursorSDKChatService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorSDKChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/agent/CursorSDKChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAA0B,MAAM,UAAU,CAAC;AAExE,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAElD,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE;QACL,MAAM,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;KACjE,CAAC;CACH,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtB,KAAK,EAAE,EAAE,CAAC;IACV,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,cAAc,EAAE,EAAE,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,IAAI,CACF,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;KACxC,GACA,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,EACF;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GACrC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAC9C,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;CAClC,CAAC;AAEF,KAAK,eAAe,GAChB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACxC;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/C,GACD;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAM5B,gDAAgD;AAChD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;AAE7D,0DAA0D;AAC1D,MAAM,MAAM,2BAA2B,GAAG;IACxC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,gEAAgE;AAChE,qBAAa,oBAAqB,SAAQ,oBAAoB;gBAE1D,OAAO,GAAE,2BAAgC,EACzC,OAAO,GAAE,eAA+B;CA6B3C"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CursorSDKChatService = exports.DEFAULT_CURSOR_SDK_MODEL = void 0;
4
+ const shared_1 = require("./shared");
5
+ /** Default model identifier passed to the Cursor SDK. */
6
+ exports.DEFAULT_CURSOR_SDK_MODEL = 'default';
7
+ /** Text-only ChatService backed by a local Cursor SDK agent. */
8
+ class CursorSDKChatService extends shared_1.AgentTextChatService {
9
+ constructor(options = {}, loadSDK = loadCursorSDK) {
10
+ const model = options.model ?? exports.DEFAULT_CURSOR_SDK_MODEL;
11
+ super({
12
+ provider: 'cursor-sdk',
13
+ model,
14
+ defaultModel: exports.DEFAULT_CURSOR_SDK_MODEL,
15
+ responseLength: options.responseLength,
16
+ getResponse: async (prompt, stream, onPartialResponse) => {
17
+ try {
18
+ return await runCursorPrompt(loadSDK, model, options.workingDirectory, options.apiKey, prompt, stream, onPartialResponse);
19
+ }
20
+ catch (error) {
21
+ throw redactSecret((0, shared_1.wrapAgentProviderError)('cursor-sdk', error), options.apiKey);
22
+ }
23
+ },
24
+ });
25
+ }
26
+ }
27
+ exports.CursorSDKChatService = CursorSDKChatService;
28
+ async function runCursorPrompt(loadSDK, model, workingDirectory, apiKey, prompt, stream, onPartialResponse) {
29
+ const { Agent } = await loadCursorSDKModule(loadSDK);
30
+ const agent = await Agent.create({
31
+ ...(apiKey !== undefined ? { apiKey } : {}),
32
+ model: { id: model },
33
+ tools: [],
34
+ local: {
35
+ cwd: workingDirectory ?? process.cwd(),
36
+ settingSources: [],
37
+ },
38
+ });
39
+ let outcome;
40
+ try {
41
+ outcome = {
42
+ ok: true,
43
+ text: await executeCursorRun(agent, prompt, stream, onPartialResponse),
44
+ };
45
+ }
46
+ catch (error) {
47
+ outcome = { ok: false, error };
48
+ }
49
+ try {
50
+ await disposeCursorAgent(agent);
51
+ }
52
+ catch (error) {
53
+ if (outcome.ok) {
54
+ throw error;
55
+ }
56
+ }
57
+ if (!outcome.ok) {
58
+ throw outcome.error;
59
+ }
60
+ return outcome.text;
61
+ }
62
+ async function executeCursorRun(agent, prompt, stream, onPartialResponse) {
63
+ let deltaText = '';
64
+ const run = await agent.send(prompt, {
65
+ onDelta: ({ update }) => {
66
+ if (update.type === 'text-delta' &&
67
+ typeof update.text === 'string' &&
68
+ update.text) {
69
+ deltaText += update.text;
70
+ if (stream) {
71
+ onPartialResponse(update.text);
72
+ }
73
+ }
74
+ },
75
+ });
76
+ const result = await run.wait();
77
+ if (result.status === 'finished') {
78
+ const finalText = typeof result.result === 'string' && result.result
79
+ ? result.result
80
+ : deltaText;
81
+ if (!finalText) {
82
+ throw new Error('cursor-sdk provider received an empty response.');
83
+ }
84
+ if (stream && !deltaText) {
85
+ onPartialResponse(finalText);
86
+ }
87
+ return finalText;
88
+ }
89
+ if (result.status === 'error') {
90
+ throw new Error(formatCursorRunError(result.error));
91
+ }
92
+ throw new Error('cursor-sdk run was cancelled.');
93
+ }
94
+ async function disposeCursorAgent(agent) {
95
+ const asyncDisposeSymbol = Symbol
96
+ .asyncDispose;
97
+ const asyncDispose = asyncDisposeSymbol
98
+ ? agent[asyncDisposeSymbol]
99
+ : undefined;
100
+ if (typeof asyncDispose === 'function') {
101
+ await asyncDispose.call(agent);
102
+ return;
103
+ }
104
+ await agent.close?.();
105
+ }
106
+ function formatCursorRunError(error) {
107
+ const message = typeof error?.message === 'string'
108
+ ? error.message
109
+ : 'Cursor SDK run failed.';
110
+ const code = typeof error?.code === 'string' || typeof error?.code === 'number'
111
+ ? String(error.code)
112
+ : undefined;
113
+ return code ? `${message} (${code})` : message;
114
+ }
115
+ async function loadCursorSDKModule(loadSDK) {
116
+ try {
117
+ return await loadSDK();
118
+ }
119
+ catch (error) {
120
+ const message = 'cursor-sdk provider requires @cursor/sdk. ' +
121
+ 'Install it in your Node.js 22.13+ project and authenticate with Cursor.auth.login() or CURSOR_API_KEY.';
122
+ const wrappedError = new Error(message);
123
+ wrappedError.cause = error;
124
+ throw wrappedError;
125
+ }
126
+ }
127
+ function redactSecret(error, secret) {
128
+ if (!secret) {
129
+ return error;
130
+ }
131
+ error.message = error.message.split(secret).join('[REDACTED]');
132
+ if (error.stack) {
133
+ error.stack = error.stack.split(secret).join('[REDACTED]');
134
+ }
135
+ return error;
136
+ }
137
+ async function loadCursorSDK() {
138
+ return (await dynamicImport('@cursor/sdk'));
139
+ }
140
+ const dynamicImport = new Function('specifier', 'return import(specifier)');
141
+ //# sourceMappingURL=CursorSDKChatService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorSDKChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/agent/CursorSDKChatService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { ChatService } from '../../ChatService';
2
+ import { ChatServiceProvider, VisionSupportLevel } from '../ChatServiceProvider';
3
+ import { CursorSDKChatServiceOptions, CursorSDKLoader } from './CursorSDKChatService';
4
+ /** Creates text-only Cursor SDK chat services. */
5
+ export declare class CursorSDKChatServiceProvider implements ChatServiceProvider<CursorSDKChatServiceOptions> {
6
+ private loadSDK?;
7
+ constructor(loadSDK?: CursorSDKLoader | undefined);
8
+ createChatService(options: CursorSDKChatServiceOptions): ChatService;
9
+ getProviderName(): string;
10
+ getSupportedModels(): string[];
11
+ getDefaultModel(): string;
12
+ supportsVision(): boolean;
13
+ getVisionSupportLevel(): VisionSupportLevel;
14
+ }
15
+ //# sourceMappingURL=CursorSDKChatServiceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorSDKChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/agent/CursorSDKChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,2BAA2B,EAC3B,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAGhC,kDAAkD;AAClD,qBAAa,4BACX,YAAW,mBAAmB,CAAC,2BAA2B,CAAC;IAE/C,OAAO,CAAC,OAAO,CAAC;gBAAR,OAAO,CAAC,EAAE,eAAe,YAAA;IAE7C,iBAAiB,CAAC,OAAO,EAAE,2BAA2B,GAAG,WAAW;IAOpE,eAAe,IAAI,MAAM;IAIzB,kBAAkB,IAAI,MAAM,EAAE;IAI9B,eAAe,IAAI,MAAM;IAIzB,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;CAG5C"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CursorSDKChatServiceProvider = void 0;
4
+ const CursorSDKChatService_1 = require("./CursorSDKChatService");
5
+ const shared_1 = require("./shared");
6
+ /** Creates text-only Cursor SDK chat services. */
7
+ class CursorSDKChatServiceProvider {
8
+ constructor(loadSDK) {
9
+ this.loadSDK = loadSDK;
10
+ }
11
+ createChatService(options) {
12
+ (0, shared_1.rejectUnsupportedAgentOptions)(this.getProviderName(), options, {
13
+ allowApiKey: true,
14
+ });
15
+ return new CursorSDKChatService_1.CursorSDKChatService(options, this.loadSDK);
16
+ }
17
+ getProviderName() {
18
+ return 'cursor-sdk';
19
+ }
20
+ getSupportedModels() {
21
+ return [CursorSDKChatService_1.DEFAULT_CURSOR_SDK_MODEL];
22
+ }
23
+ getDefaultModel() {
24
+ return CursorSDKChatService_1.DEFAULT_CURSOR_SDK_MODEL;
25
+ }
26
+ supportsVision() {
27
+ return false;
28
+ }
29
+ getVisionSupportLevel() {
30
+ return 'unsupported';
31
+ }
32
+ }
33
+ exports.CursorSDKChatServiceProvider = CursorSDKChatServiceProvider;
34
+ //# sourceMappingURL=CursorSDKChatServiceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorSDKChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/agent/CursorSDKChatServiceProvider.ts"],"names":[],"mappings":";;;AAKA,iEAKgC;AAChC,qCAAyD;AAEzD,kDAAkD;AAClD,MAAa,4BAA4B;IAGvC,YAAoB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAEjD,iBAAiB,CAAC,OAAoC;QACpD,IAAA,sCAA6B,EAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE;YAC7D,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,2CAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,eAAe;QACb,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,+CAAwB,CAAC,CAAC;IACpC,CAAC;IAED,eAAe;QACb,OAAO,+CAAwB,CAAC;IAClC,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;QACnB,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AA/BD,oEA+BC"}
@@ -2,22 +2,27 @@ import { ChatService } from '../../ChatService';
2
2
  import { ClaudeAgentSDKChatServiceOptions, ClaudeAgentSDKLoader } from './ClaudeAgentSDKChatService';
3
3
  import { CodexSDKChatServiceOptions, CodexSDKLoader } from './CodexSDKChatService';
4
4
  import { CopilotSDKChatServiceOptions, CopilotSDKLoader } from './CopilotSDKChatService';
5
+ import { CursorSDKChatServiceOptions, CursorSDKLoader } from './CursorSDKChatService';
5
6
  export { ClaudeAgentSDKChatService, DEFAULT_CLAUDE_AGENT_SDK_MODEL, type ClaudeAgentSDKChatServiceOptions, type ClaudeAgentSDKLoader, } from './ClaudeAgentSDKChatService';
6
7
  export { ClaudeAgentSDKChatServiceProvider } from './ClaudeAgentSDKChatServiceProvider';
7
8
  export { CodexSDKChatService, DEFAULT_CODEX_SDK_MODEL, type CodexSDKChatServiceOptions, type CodexSDKLoader, } from './CodexSDKChatService';
8
9
  export { CodexSDKChatServiceProvider } from './CodexSDKChatServiceProvider';
9
10
  export { CopilotSDKChatService, DEFAULT_COPILOT_SDK_MODEL, type CopilotSDKChatServiceOptions, type CopilotSDKLoader, } from './CopilotSDKChatService';
10
11
  export { CopilotSDKChatServiceProvider } from './CopilotSDKChatServiceProvider';
11
- export type AgentChatProviderName = 'codex-sdk' | 'claude-agent-sdk' | 'copilot-sdk';
12
+ export { CursorSDKChatService, DEFAULT_CURSOR_SDK_MODEL, type CursorSDKChatServiceOptions, type CursorSDKLoader, } from './CursorSDKChatService';
13
+ export { CursorSDKChatServiceProvider } from './CursorSDKChatServiceProvider';
14
+ export type AgentChatProviderName = 'codex-sdk' | 'claude-agent-sdk' | 'copilot-sdk' | 'cursor-sdk';
12
15
  export type AgentChatServiceOptionsByProvider = {
13
16
  'codex-sdk': CodexSDKChatServiceOptions;
14
17
  'claude-agent-sdk': ClaudeAgentSDKChatServiceOptions;
15
18
  'copilot-sdk': CopilotSDKChatServiceOptions;
19
+ 'cursor-sdk': CursorSDKChatServiceOptions;
16
20
  };
17
21
  export type RegisterAgentChatProvidersOptions = {
18
22
  codexSDKLoader?: CodexSDKLoader;
19
23
  claudeAgentSDKLoader?: ClaudeAgentSDKLoader;
20
24
  copilotSDKLoader?: CopilotSDKLoader;
25
+ cursorSDKLoader?: CursorSDKLoader;
21
26
  };
22
27
  export declare function registerAgentChatProviders(options?: RegisterAgentChatProvidersOptions): void;
23
28
  export declare function createAgentChatService<TProvider extends AgentChatProviderName>(providerName: TProvider, options: AgentChatServiceOptionsByProvider[TProvider]): ChatService;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,KAAK,gCAAgC,EACrC,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,MAAM,iCAAiC,GAAG;IAC9C,WAAW,EAAE,0BAA0B,CAAC;IACxC,kBAAkB,EAAE,gCAAgC,CAAC;IACrD,aAAa,EAAE,4BAA4B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,IAAI,CAUN;AAED,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,qBAAqB,EAC5E,YAAY,EAAE,SAAS,EACvB,OAAO,EAAE,iCAAiC,CAAC,SAAS,CAAC,GACpD,WAAW,CAKb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,KAAK,gCAAgC,EACrC,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,2BAA2B,EAChC,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,YAAY,CAAC;AAEjB,MAAM,MAAM,iCAAiC,GAAG;IAC9C,WAAW,EAAE,0BAA0B,CAAC;IACxC,kBAAkB,EAAE,gCAAgC,CAAC;IACrD,aAAa,EAAE,4BAA4B,CAAC;IAC5C,YAAY,EAAE,2BAA2B,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,IAAI,CAaN;AAED,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,qBAAqB,EAC5E,YAAY,EAAE,SAAS,EACvB,OAAO,EAAE,iCAAiC,CAAC,SAAS,CAAC,GACpD,WAAW,CAKb"}
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CopilotSDKChatServiceProvider = exports.DEFAULT_COPILOT_SDK_MODEL = exports.CopilotSDKChatService = exports.CodexSDKChatServiceProvider = exports.DEFAULT_CODEX_SDK_MODEL = exports.CodexSDKChatService = exports.ClaudeAgentSDKChatServiceProvider = exports.DEFAULT_CLAUDE_AGENT_SDK_MODEL = exports.ClaudeAgentSDKChatService = void 0;
3
+ exports.CursorSDKChatServiceProvider = exports.DEFAULT_CURSOR_SDK_MODEL = exports.CursorSDKChatService = exports.CopilotSDKChatServiceProvider = exports.DEFAULT_COPILOT_SDK_MODEL = exports.CopilotSDKChatService = exports.CodexSDKChatServiceProvider = exports.DEFAULT_CODEX_SDK_MODEL = exports.CodexSDKChatService = exports.ClaudeAgentSDKChatServiceProvider = exports.DEFAULT_CLAUDE_AGENT_SDK_MODEL = exports.ClaudeAgentSDKChatService = void 0;
4
4
  exports.registerAgentChatProviders = registerAgentChatProviders;
5
5
  exports.createAgentChatService = createAgentChatService;
6
6
  const ChatServiceFactory_1 = require("../../ChatServiceFactory");
7
7
  const ClaudeAgentSDKChatServiceProvider_1 = require("./ClaudeAgentSDKChatServiceProvider");
8
8
  const CodexSDKChatServiceProvider_1 = require("./CodexSDKChatServiceProvider");
9
9
  const CopilotSDKChatServiceProvider_1 = require("./CopilotSDKChatServiceProvider");
10
+ const CursorSDKChatServiceProvider_1 = require("./CursorSDKChatServiceProvider");
10
11
  var ClaudeAgentSDKChatService_1 = require("./ClaudeAgentSDKChatService");
11
12
  Object.defineProperty(exports, "ClaudeAgentSDKChatService", { enumerable: true, get: function () { return ClaudeAgentSDKChatService_1.ClaudeAgentSDKChatService; } });
12
13
  Object.defineProperty(exports, "DEFAULT_CLAUDE_AGENT_SDK_MODEL", { enumerable: true, get: function () { return ClaudeAgentSDKChatService_1.DEFAULT_CLAUDE_AGENT_SDK_MODEL; } });
@@ -22,10 +23,16 @@ Object.defineProperty(exports, "CopilotSDKChatService", { enumerable: true, get:
22
23
  Object.defineProperty(exports, "DEFAULT_COPILOT_SDK_MODEL", { enumerable: true, get: function () { return CopilotSDKChatService_1.DEFAULT_COPILOT_SDK_MODEL; } });
23
24
  var CopilotSDKChatServiceProvider_2 = require("./CopilotSDKChatServiceProvider");
24
25
  Object.defineProperty(exports, "CopilotSDKChatServiceProvider", { enumerable: true, get: function () { return CopilotSDKChatServiceProvider_2.CopilotSDKChatServiceProvider; } });
26
+ var CursorSDKChatService_1 = require("./CursorSDKChatService");
27
+ Object.defineProperty(exports, "CursorSDKChatService", { enumerable: true, get: function () { return CursorSDKChatService_1.CursorSDKChatService; } });
28
+ Object.defineProperty(exports, "DEFAULT_CURSOR_SDK_MODEL", { enumerable: true, get: function () { return CursorSDKChatService_1.DEFAULT_CURSOR_SDK_MODEL; } });
29
+ var CursorSDKChatServiceProvider_2 = require("./CursorSDKChatServiceProvider");
30
+ Object.defineProperty(exports, "CursorSDKChatServiceProvider", { enumerable: true, get: function () { return CursorSDKChatServiceProvider_2.CursorSDKChatServiceProvider; } });
25
31
  function registerAgentChatProviders(options = {}) {
26
32
  ChatServiceFactory_1.ChatServiceFactory.registerProvider(new CodexSDKChatServiceProvider_1.CodexSDKChatServiceProvider(options.codexSDKLoader));
27
33
  ChatServiceFactory_1.ChatServiceFactory.registerProvider(new ClaudeAgentSDKChatServiceProvider_1.ClaudeAgentSDKChatServiceProvider(options.claudeAgentSDKLoader));
28
34
  ChatServiceFactory_1.ChatServiceFactory.registerProvider(new CopilotSDKChatServiceProvider_1.CopilotSDKChatServiceProvider(options.copilotSDKLoader));
35
+ ChatServiceFactory_1.ChatServiceFactory.registerProvider(new CursorSDKChatServiceProvider_1.CursorSDKChatServiceProvider(options.cursorSDKLoader));
29
36
  }
30
37
  function createAgentChatService(providerName, options) {
31
38
  return ChatServiceFactory_1.ChatServiceFactory.createChatService(providerName, options);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/providers/agent/index.ts"],"names":[],"mappings":";;;AAyDA,gEAYC;AAED,wDAQC;AA9ED,iEAA8D;AAC9D,2FAAwF;AACxF,+EAA4E;AAC5E,mFAAgF;AAchF,yEAKqC;AAJnC,sIAAA,yBAAyB,OAAA;AACzB,2IAAA,8BAA8B,OAAA;AAIhC,yFAAwF;AAA/E,sJAAA,iCAAiC,OAAA;AAC1C,6DAK+B;AAJ7B,0HAAA,mBAAmB,OAAA;AACnB,8HAAA,uBAAuB,OAAA;AAIzB,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,iEAKiC;AAJ/B,8HAAA,qBAAqB,OAAA;AACrB,kIAAA,yBAAyB,OAAA;AAI3B,iFAAgF;AAAvE,8IAAA,6BAA6B,OAAA;AAmBtC,SAAgB,0BAA0B,CACxC,UAA6C,EAAE;IAE/C,uCAAkB,CAAC,gBAAgB,CACjC,IAAI,yDAA2B,CAAC,OAAO,CAAC,cAAc,CAAC,CACxD,CAAC;IACF,uCAAkB,CAAC,gBAAgB,CACjC,IAAI,qEAAiC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CACpE,CAAC;IACF,uCAAkB,CAAC,gBAAgB,CACjC,IAAI,6DAA6B,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CACpC,YAAuB,EACvB,OAAqD;IAErD,OAAO,uCAAkB,CAAC,iBAAiB,CACzC,YAAmB,EACnB,OAAyC,CAC1C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/providers/agent/index.ts"],"names":[],"mappings":";;;AAwEA,gEAeC;AAED,wDAQC;AAhGD,iEAA8D;AAC9D,2FAAwF;AACxF,+EAA4E;AAC5E,mFAAgF;AAChF,iFAA8E;AAkB9E,yEAKqC;AAJnC,sIAAA,yBAAyB,OAAA;AACzB,2IAAA,8BAA8B,OAAA;AAIhC,yFAAwF;AAA/E,sJAAA,iCAAiC,OAAA;AAC1C,6DAK+B;AAJ7B,0HAAA,mBAAmB,OAAA;AACnB,8HAAA,uBAAuB,OAAA;AAIzB,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,iEAKiC;AAJ/B,8HAAA,qBAAqB,OAAA;AACrB,kIAAA,yBAAyB,OAAA;AAI3B,iFAAgF;AAAvE,8IAAA,6BAA6B,OAAA;AACtC,+DAKgC;AAJ9B,4HAAA,oBAAoB,OAAA;AACpB,gIAAA,wBAAwB,OAAA;AAI1B,+EAA8E;AAArE,4IAAA,4BAA4B,OAAA;AAsBrC,SAAgB,0BAA0B,CACxC,UAA6C,EAAE;IAE/C,uCAAkB,CAAC,gBAAgB,CACjC,IAAI,yDAA2B,CAAC,OAAO,CAAC,cAAc,CAAC,CACxD,CAAC;IACF,uCAAkB,CAAC,gBAAgB,CACjC,IAAI,qEAAiC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CACpE,CAAC;IACF,uCAAkB,CAAC,gBAAgB,CACjC,IAAI,6DAA6B,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAC5D,CAAC;IACF,uCAAkB,CAAC,gBAAgB,CACjC,IAAI,2DAA4B,CAAC,OAAO,CAAC,eAAe,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CACpC,YAAuB,EACvB,OAAqD;IAErD,OAAO,uCAAkB,CAAC,iBAAiB,CACzC,YAAmB,EACnB,OAAyC,CAC1C,CAAC;AACJ,CAAC"}