@intella/sdk 0.0.2 → 0.0.4

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 (54) hide show
  1. package/README.md +6 -483
  2. package/dist/agent-manager.js +2 -2
  3. package/dist/agent-manager.js.map +1 -1
  4. package/dist/agents/base-agent.d.ts.map +1 -1
  5. package/dist/agents/base-agent.js +12 -3
  6. package/dist/agents/base-agent.js.map +1 -1
  7. package/dist/agents/claude-agent.d.ts +2 -0
  8. package/dist/agents/claude-agent.d.ts.map +1 -1
  9. package/dist/agents/claude-agent.js +34 -18
  10. package/dist/agents/claude-agent.js.map +1 -1
  11. package/dist/agents/codex-agent.js +1 -1
  12. package/dist/agents/codex-agent.js.map +1 -1
  13. package/dist/agents/intella-lite-agent.js +1 -1
  14. package/dist/agents/intella-lite-agent.js.map +1 -1
  15. package/dist/agents/opencode-agent.d.ts.map +1 -1
  16. package/dist/agents/opencode-agent.js +2 -2
  17. package/dist/agents/opencode-agent.js.map +1 -1
  18. package/dist/filesystem/base-provider.js +3 -2
  19. package/dist/filesystem/base-provider.js.map +1 -1
  20. package/dist/filesystem/index.d.ts +0 -1
  21. package/dist/filesystem/index.d.ts.map +1 -1
  22. package/dist/filesystem/index.js +0 -1
  23. package/dist/filesystem/index.js.map +1 -1
  24. package/dist/filesystem/memory-provider.js +3 -3
  25. package/dist/filesystem/memory-provider.js.map +1 -1
  26. package/dist/filesystem-manager.d.ts.map +1 -1
  27. package/dist/filesystem-manager.js +3 -5
  28. package/dist/filesystem-manager.js.map +1 -1
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -2
  32. package/dist/index.js.map +1 -1
  33. package/dist/orchestrator.js +1 -0
  34. package/dist/orchestrator.js.map +1 -1
  35. package/dist/sandbox/base-provider.js +5 -4
  36. package/dist/sandbox/base-provider.js.map +1 -1
  37. package/dist/sandbox/daytona-provider.js +2 -2
  38. package/dist/sandbox/daytona-provider.js.map +1 -1
  39. package/dist/sandbox/e2b-provider.d.ts.map +1 -1
  40. package/dist/sandbox/e2b-provider.js +24 -3
  41. package/dist/sandbox/e2b-provider.js.map +1 -1
  42. package/dist/sandbox/modal-provider.js +18 -18
  43. package/dist/sandbox/modal-provider.js.map +1 -1
  44. package/dist/sandbox-manager.js +3 -3
  45. package/dist/sandbox-manager.js.map +1 -1
  46. package/dist/sdk.js +4 -0
  47. package/dist/sdk.js.map +1 -1
  48. package/dist/types.d.ts +10 -1
  49. package/dist/types.d.ts.map +1 -1
  50. package/package.json +20 -13
  51. package/dist/filesystem/agentfs-provider.d.ts +0 -42
  52. package/dist/filesystem/agentfs-provider.d.ts.map +0 -1
  53. package/dist/filesystem/agentfs-provider.js +0 -308
  54. package/dist/filesystem/agentfs-provider.js.map +0 -1
package/README.md CHANGED
@@ -1,492 +1,15 @@
1
- # Intella SDK
1
+ # intella-sdk
2
2
 
3
- An agent orchestrator SDK for managing tasks across multiple AI agents using AI SDK v6 as a consistent interface.
4
-
5
- ## Features
6
-
7
- - **Unified Interface**: Consistent API for interacting with multiple AI providers
8
- - **Agent Management**: Easy selection and configuration of different agents
9
- - **Multi-Agent Orchestration**: Coordinate multiple agents working on a single task
10
- - **Framework Agnostic**: Works in Node.js, React, and other TypeScript/JavaScript environments
11
- - **Type Safe**: Full TypeScript support with comprehensive type definitions
12
-
13
- ## Supported Agents
14
-
15
- - **Intella Lite**: Default lightweight agent (OpenAI-compatible)
16
- - **Claude Agent**: Powered by Claude Code provider
17
- - **Codex Agent**: Powered by Codex CLI provider
18
- - **OpenCode Agent**: Powered by OpenCode SDK provider
19
-
20
- ## Installation
3
+ To install dependencies:
21
4
 
22
5
  ```bash
23
- npm install @intella/sdk ai
6
+ bun install
24
7
  ```
25
8
 
26
- ### Peer Dependencies
27
-
28
- The SDK requires the following peer dependencies for specific agents:
9
+ To run:
29
10
 
30
11
  ```bash
31
- # For Claude Agent
32
- npm install ai-sdk-provider-claude-code
33
-
34
- # For Codex Agent
35
- npm install ai-sdk-provider-codex-cli
36
-
37
- # For OpenCode Agent
38
- npm install ai-sdk-provider-opencode-sdk
39
-
40
- # For Intella Lite Agent
41
- npm install @ai-sdk/openai
42
- ```
43
-
44
- **Note**: These providers use CLI authentication. Make sure you have the respective CLI tools installed and authenticated:
45
- - Claude Code: `npm install -g @anthropic-ai/claude-code && claude login`
46
- - Codex CLI: Ensure Codex CLI is installed and authenticated
47
- - OpenCode: `npm install -g opencode && opencode login`
48
-
49
- ## Quick Start
50
-
51
- ### Basic Usage
52
-
53
- ```typescript
54
- import { IntellaSDK } from '@intella/sdk';
55
-
56
- const sdk = new IntellaSDK();
57
-
58
- // Configure an agent (Claude Code uses CLI authentication)
59
- sdk.configureAgent('claude', {
60
- model: 'sonnet', // Shortcuts: 'opus', 'sonnet', 'haiku'
61
- // Optional: allowedTools, disallowedTools, mcpServers, permissionMode, etc.
62
- });
63
-
64
- // Execute a task
65
- const response = await sdk.executeTask('Write a summary of AI SDK v6');
66
- console.log(response.text);
67
- ```
68
-
69
- ### Streaming Responses
70
-
71
- ```typescript
72
- // Stream a task execution
73
- for await (const chunk of sdk.streamTask('Explain quantum computing')) {
74
- process.stdout.write(chunk.text);
75
- if (chunk.isDone) {
76
- console.log('\nDone!');
77
- }
78
- }
79
- ```
80
-
81
- ### Multi-Agent Orchestration
82
-
83
- ```typescript
84
- // Sequential orchestration: agents work in sequence
85
- const result = await sdk.orchestrateTask(
86
- 'Analyze this code and generate tests',
87
- ['claude', 'codex'],
88
- 'sequential',
89
- {
90
- passResults: true, // Pass previous results to next agent
91
- }
92
- );
93
-
94
- console.log(result.result);
95
- console.log('Agent responses:', result.agentResponses);
96
-
97
- // Parallel orchestration: agents work simultaneously
98
- const parallelResult = await sdk.orchestrateTask(
99
- 'Write a blog post about AI',
100
- ['claude', 'opencode'],
101
- 'parallel',
102
- {
103
- combineStrategy: 'merge', // Combine all responses
104
- }
105
- );
106
-
107
- // Conditional orchestration: route based on task
108
- const conditionalResult = await sdk.orchestrateTask(
109
- 'Fix this bug',
110
- ['claude', 'codex'],
111
- 'conditional',
112
- {
113
- router: (task) => {
114
- // Custom routing logic
115
- return task.prompt.includes('code') ? 'codex' : 'claude';
116
- },
117
- }
118
- );
119
- ```
120
-
121
- ## API Reference
122
-
123
- ### IntellaSDK
124
-
125
- Main SDK class for orchestrating agents.
126
-
127
- #### Methods
128
-
129
- ##### `configureAgent(agentType, config)`
130
-
131
- Configure an agent with model settings and provider-specific options.
132
-
133
- ```typescript
134
- // Claude Code agent (uses CLI authentication)
135
- sdk.configureAgent('claude', {
136
- model: 'sonnet', // or 'opus', 'haiku', or full model ID
137
- allowedTools: ['Read', 'Write', 'Edit'],
138
- permissionMode: 'default',
139
- });
140
-
141
- // Codex CLI agent (uses CLI auth or OPENAI_API_KEY env var)
142
- sdk.configureAgent('codex', {
143
- model: 'gpt-5.2-codex',
144
- reasoningEffort: 'high',
145
- approvalMode: 'on-failure',
146
- sandboxMode: 'workspace-write',
147
- });
148
-
149
- // OpenCode agent (uses CLI authentication)
150
- sdk.configureAgent('opencode', {
151
- model: 'anthropic/claude-sonnet-4-5-20250929',
152
- });
153
-
154
- // Intella Lite agent (uses OpenAI API key)
155
- sdk.configureAgent('intella-lite', {
156
- apiKey: process.env.OPENAI_API_KEY,
157
- model: 'gpt-4o-mini',
158
- temperature: 0.7,
159
- maxTokens: 1000,
160
- });
161
- ```
162
-
163
- ##### `selectAgent(agentType, config?)`
164
-
165
- Select and configure an agent as the default.
166
-
167
- ```typescript
168
- sdk.selectAgent('claude', { apiKey: 'your-api-key' });
169
- ```
170
-
171
- ##### `executeTask(task, agentType?)`
172
-
173
- Execute a task with the specified agent (or default).
174
-
175
- ```typescript
176
- // Simple string prompt
177
- const response = await sdk.executeTask('Hello, world!');
178
-
179
- // Full task request
180
- const response = await sdk.executeTask({
181
- prompt: 'Write a function',
182
- systemPrompt: 'You are a helpful coding assistant',
183
- temperature: 0.8,
184
- }, 'codex');
185
- ```
186
-
187
- ##### `streamTask(task, agentType?)`
188
-
189
- Stream a task execution.
190
-
191
- ```typescript
192
- for await (const chunk of sdk.streamTask('Explain recursion')) {
193
- console.log(chunk.text);
194
- }
195
- ```
196
-
197
- ##### `orchestrateTask(task, agents, strategy, options?)`
198
-
199
- Orchestrate a task across multiple agents.
200
-
201
- **Strategies:**
202
- - `sequential`: Agents work in sequence, optionally passing results
203
- - `parallel`: Agents work simultaneously, results combined
204
- - `conditional`: Route to agents based on task characteristics
205
-
206
- ```typescript
207
- const result = await sdk.orchestrateTask(
208
- 'Complex task',
209
- ['claude', 'codex'],
210
- 'sequential',
211
- { passResults: true }
212
- );
213
- ```
214
-
215
- ##### `listAgents()`
216
-
217
- List all available agent types.
218
-
219
- ```typescript
220
- const agents = sdk.listAgents();
221
- // ['intella-lite', 'claude', 'codex', 'opencode']
222
- ```
223
-
224
- ##### `getAgentConfig(agentType)`
225
-
226
- Get the current configuration for an agent.
227
-
228
- ```typescript
229
- const config = sdk.getAgentConfig('claude');
230
- ```
231
-
232
- ##### `setDefaultAgent(agentType)`
233
-
234
- Set the default agent type.
235
-
236
- ```typescript
237
- sdk.setDefaultAgent('intella-lite');
12
+ bun run index.ts
238
13
  ```
239
14
 
240
- ## Agent Configuration
241
-
242
- Each agent supports the following configuration options:
243
-
244
- ```typescript
245
- interface AgentConfig {
246
- apiKey?: string; // Provider API key (for Intella Lite)
247
- model?: string; // Model identifier
248
- temperature?: number; // Generation temperature (0-2)
249
- maxTokens?: number; // Maximum tokens to generate
250
- headers?: Record<string, string>; // Custom headers
251
- baseURL?: string; // Custom base URL
252
- [key: string]: unknown; // Provider-specific options
253
- }
254
- ```
255
-
256
- ### Provider-Specific Options
257
-
258
- #### Claude Code Agent
259
- - `model`: Model shortcut ('opus', 'sonnet', 'haiku') or full model ID
260
- - `allowedTools`: Array of allowed tool names
261
- - `disallowedTools`: Array of disallowed tool names
262
- - `mcpServers`: MCP server configurations
263
- - `permissionMode`: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan'
264
- - `maxTurns`: Maximum conversation turns
265
- - `cwd`: Working directory
266
- - `verbose`: Enable debug logging
267
-
268
- See [Claude Code Provider docs](https://ai-sdk.dev/providers/community-providers/claude-code)
269
-
270
- #### Codex CLI Agent
271
- - `model`: Model ID ('gpt-5.2-codex', 'gpt-5.2', 'gpt-5.1-codex-max', etc.)
272
- - `reasoningEffort`: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh'
273
- - `approvalMode`: 'untrusted' | 'on-failure' | 'on-request' | 'never'
274
- - `sandboxMode`: 'read-only' | 'workspace-write' | 'danger-full-access'
275
- - `mcpServers`: MCP server configurations
276
- - `verbose`: Enable verbose logging
277
- - `logger`: Custom logger instance
278
-
279
- See [Codex CLI Provider docs](https://ai-sdk.dev/providers/community-providers/codex-cli)
280
-
281
- #### OpenCode Agent
282
- - `model`: Model ID in format 'provider/model-id' (e.g., 'anthropic/claude-sonnet-4-5-20250929')
283
-
284
- See [OpenCode Provider docs](https://ai-sdk.dev/providers/community-providers/opencode-sdk)
285
-
286
- ### Environment Variables
287
-
288
- - `OPENAI_API_KEY` - For Intella Lite (OpenAI-compatible) and Codex CLI (optional)
289
-
290
- **Note**: Claude Code, Codex CLI, and OpenCode providers primarily use CLI authentication. Make sure you're logged in via their respective CLI tools:
291
- - Claude Code: `npm install -g @anthropic-ai/claude-code && claude login`
292
- - Codex CLI: `npm install -g @openai/codex && codex` (follow interactive setup)
293
- - OpenCode: `npm install -g opencode && opencode login`
294
-
295
- ## Advanced Usage
296
-
297
- ### Direct Agent Access
298
-
299
- ```typescript
300
- import { AgentManager, ClaudeAgent } from '@intella/sdk';
301
-
302
- const manager = new AgentManager();
303
- const claudeAgent = new ClaudeAgent({
304
- apiKey: 'your-key',
305
- model: 'claude-sonnet-4-5-20250929',
306
- });
307
-
308
- manager.registerAgent('claude', claudeAgent);
309
- const agent = manager.getAgent('claude');
310
- const response = await agent.execute({ prompt: 'Hello!' });
311
- ```
312
-
313
- ### Custom Orchestration
314
-
315
- ```typescript
316
- import { Orchestrator, AgentManager } from '@intella/sdk';
317
-
318
- const manager = new AgentManager();
319
- const orchestrator = new Orchestrator(manager);
320
-
321
- const result = await orchestrator.orchestrate({
322
- task: { prompt: 'Complex task' },
323
- agents: ['claude', 'codex'],
324
- strategy: 'parallel',
325
- options: {
326
- combineStrategy: 'merge',
327
- },
328
- });
329
- ```
330
-
331
- ## Sandbox Support
332
-
333
- The SDK supports multiple sandbox providers for executing code in isolated environments.
334
-
335
- ### Supported Sandbox Providers
336
-
337
- - **E2B**: Cloud sandbox environment for code execution
338
- - **Daytona**: Development environment sandboxes
339
- - **Modal**: Serverless sandbox execution
340
-
341
- ### Basic Sandbox Usage
342
-
343
- ```typescript
344
- // Initialize a sandbox
345
- await sdk.initializeSandbox('e2b', {
346
- templateId: 'base',
347
- env: {
348
- NODE_ENV: 'development',
349
- },
350
- });
351
-
352
- // Execute a command
353
- const result = await sdk.executeInSandbox('echo "Hello, World!"');
354
- console.log(result.result.stdout);
355
-
356
- // Get active sandbox and use directly
357
- const sandbox = sdk.getActiveSandbox();
358
- if (sandbox) {
359
- await sandbox.writeFile('/tmp/test.txt', 'Hello!');
360
- const content = await sandbox.readFile('/tmp/test.txt');
361
- }
362
-
363
- // Close sandbox
364
- await sdk.closeSandbox();
365
- ```
366
-
367
- ### Connecting to Existing Sandboxes
368
-
369
- You can connect to an existing sandbox using the `fromSandboxId` config option or by calling `fromSandbox` directly:
370
-
371
- ```typescript
372
- // Option 1: Using fromSandboxId in config (recommended)
373
- await sdk.initializeSandbox('modal', {
374
- fromSandboxId: 'existing-sandbox-id',
375
- });
376
-
377
- // Option 2: Direct fromSandbox call
378
- const sandbox = sdk.getActiveSandbox();
379
- if (sandbox) {
380
- const sandboxInstance = await sandbox.fromSandbox('existing-sandbox-id');
381
- }
382
- ```
383
-
384
- ### Getting Sandbox Information
385
-
386
- The `getInfo` method provides detailed information about a sandbox:
387
-
388
- ```typescript
389
- const sandbox = sdk.getActiveSandbox();
390
- if (sandbox) {
391
- // Get info for active sandbox
392
- const info = await sandbox.getInfo();
393
- console.log(info);
394
- // {
395
- // sandboxId: 'sb-123',
396
- // provider: 'e2b',
397
- // isRunning: true,
398
- // isInitialized: true,
399
- // createdAt: Date,
400
- // metadata: { ... },
401
- // info: { ... } // Raw provider-specific info
402
- // }
403
-
404
- // Get info for a specific sandbox by ID
405
- const otherInfo = await sandbox.getInfo('another-sandbox-id');
406
- }
407
- ```
408
-
409
- ### Sandbox Configuration
410
-
411
- ```typescript
412
- interface SandboxConfig {
413
- fromSandboxId?: string; // Connect to existing sandbox
414
- provider?: SandboxProviderType;
415
- apiKey?: string; // Provider API key
416
- templateId?: string; // Template/workspace ID
417
- baseURL?: string; // Provider base URL
418
- env?: Record<string, string>; // Environment variables
419
- timeout?: number; // Timeout in milliseconds
420
- [key: string]: unknown; // Provider-specific options
421
- }
422
- ```
423
-
424
- ### Provider-Specific Configuration
425
-
426
- #### E2B
427
- - Requires `E2B_API_KEY` environment variable or `apiKey` in config
428
- - Supports `templateId` for selecting sandbox templates
429
- - Use `fromSandboxId` to reconnect to existing sandboxes
430
-
431
- #### Daytona
432
- - Requires `DAYTONA_API_KEY` or `DAYTONA_API_TOKEN` environment variable
433
- - Supports `templateId` for workspace templates
434
- - Optional `baseURL` for custom Daytona server
435
-
436
- #### Modal
437
- - Requires `MODAL_TOKEN_ID` and `MODAL_TOKEN_SECRET` environment variables
438
- - Supports `appName` and `imageName` for custom app/image configuration
439
- - Use `fromSandboxId` to connect to existing sandboxes
440
-
441
- ### Sandbox Operations
442
-
443
- All sandbox providers support:
444
-
445
- - **Command Execution**: `executeCommand(command, options?)`
446
- - **Code Execution**: `runCode(code, options?)`
447
- - **File Operations**: `readFile`, `writeFile`, `uploadFile`, `downloadFile`, `listFiles`, `fileExists`, `deleteFile`
448
- - **Status & Info**: `getStatus()`, `getInfo(sandboxId?)`
449
- - **Management**: `close()`, `getSandboxId()`, `isInitialized()`
450
-
451
- ## Type Definitions
452
-
453
- The SDK exports comprehensive TypeScript types:
454
-
455
- ```typescript
456
- import type {
457
- AgentType,
458
- AgentConfig,
459
- TaskRequest,
460
- TaskResponse,
461
- OrchestrationRequest,
462
- OrchestrationResponse,
463
- IAgent,
464
- SandboxProviderType,
465
- SandboxConfig,
466
- SandboxInfo,
467
- ISandboxProvider,
468
- } from '@intella/sdk';
469
- ```
470
-
471
- ## Error Handling
472
-
473
- The SDK throws descriptive errors for common issues:
474
-
475
- ```typescript
476
- try {
477
- const response = await sdk.executeTask('Hello', 'unknown-agent');
478
- } catch (error) {
479
- if (error.message.includes('not registered')) {
480
- console.error('Agent not found');
481
- }
482
- }
483
- ```
484
-
485
- ## Examples
486
-
487
- See the `/examples` directory for more detailed usage examples.
488
-
489
- ## License
490
-
491
- ISC
492
-
15
+ This project was created using `bun init` in bun v1.1.30. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
@@ -7,9 +7,9 @@ import { OpenCodeAgent } from './agents/opencode-agent.js';
7
7
  * Manages agent instances and configurations
8
8
  */
9
9
  export class AgentManager {
10
+ agents = new Map();
11
+ defaultAgentType = 'intella-lite';
10
12
  constructor() {
11
- this.agents = new Map();
12
- this.defaultAgentType = 'intella-lite';
13
13
  // Initialize default agents
14
14
  this.registerAgent('intella-lite', new IntellaLiteAgent());
15
15
  this.registerAgent('claude', new ClaudeAgent());
@@ -1 +1 @@
1
- {"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../../src/agents/base-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,IAAI,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAkB,MAAM,aAAa,CAAC;AAE1H;;;GAGG;AACH,8BAAsB,SAAU,YAAW,MAAM;IAC/C,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAgB,IAAI,EAAE,SAAS,CAAC;gBAEpB,IAAI,EAAE,SAAS,EAAE,MAAM,GAAE,WAAgB;IAKrD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAE3D;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAqB1D;;OAEG;IACI,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IA6B/D;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIpC;;OAEG;IACH,SAAS,IAAI,WAAW;IAIxB;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,EAAE;CAqC9D"}
1
+ {"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../../src/agents/base-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,IAAI,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAkB,MAAM,aAAa,CAAC;AAE1H;;;GAGG;AACH,8BAAsB,SAAU,YAAW,MAAM;IAC/C,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAgB,IAAI,EAAE,SAAS,CAAC;gBAEpB,IAAI,EAAE,SAAS,EAAE,MAAM,GAAE,WAAgB;IAKrD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAE3D;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAqB1D;;OAEG;IACI,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IAoC/D;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIpC;;OAEG;IACH,SAAS,IAAI,WAAW;IAIxB;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,EAAE;CAqC9D"}
@@ -4,6 +4,8 @@ import { generateText, streamText } from 'ai';
4
4
  * Provides common functionality using AI SDK v6
5
5
  */
6
6
  export class BaseAgent {
7
+ config;
8
+ type;
7
9
  constructor(type, config = {}) {
8
10
  this.type = type;
9
11
  this.config = { ...config };
@@ -42,16 +44,23 @@ export class BaseAgent {
42
44
  maxOutputTokens: request.maxTokens ?? this.config.maxTokens,
43
45
  });
44
46
  let fullText = '';
45
- for await (const chunk of result.textStream) {
46
- fullText += chunk;
47
+ for await (const chunk of result.fullStream) {
48
+ console.log('chunk', chunk);
49
+ let text = '';
50
+ if (chunk.type === 'text-delta' || 'text' in chunk) {
51
+ fullText += chunk.text;
52
+ text = chunk.text;
53
+ }
47
54
  yield {
48
- text: chunk,
55
+ id: `chunk-${Date.now() * 1}`,
56
+ text: text,
49
57
  agentType: this.type,
50
58
  isDone: false,
51
59
  };
52
60
  }
53
61
  // Final chunk to indicate completion
54
62
  yield {
63
+ id: `chunk-${Date.now() * 1}`,
55
64
  text: '',
56
65
  agentType: this.type,
57
66
  isDone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/agents/base-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/agents/base-agent.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export declare class ClaudeAgent extends BaseAgent {
13
13
  *
14
14
  * Supports Claude Code provider options:
15
15
  * - allowedTools, disallowedTools, mcpServers, permissionMode, maxTurns, cwd, verbose
16
+ * - executablePath: explicit path to the claude binary (preferred)
17
+ * - pathToClaudeCodeExecutable: legacy option for explicit path (for backward compatibility)
16
18
  * See: https://ai-sdk.dev/providers/community-providers/claude-code
17
19
  */
18
20
  getModel(): Promise<LanguageModel>;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../src/agents/claude-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAKxC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACxC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,MAAM,GAAE,WAAgB;IAIpC;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IA0CxC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAKrC"}
1
+ {"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../src/agents/claude-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAKxC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACxC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,MAAM,GAAE,WAAgB;IAIpC;;;;;;;;OAQG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IA4DxC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAKrC"}
@@ -5,15 +5,17 @@ import { claudeCode, createClaudeCode } from 'ai-sdk-provider-claude-code';
5
5
  * Powered by Claude Code provider
6
6
  */
7
7
  export class ClaudeAgent extends BaseAgent {
8
+ modelInstance = null;
8
9
  constructor(config = {}) {
9
10
  super('claude', config);
10
- this.modelInstance = null;
11
11
  }
12
12
  /**
13
13
  * Get or create the language model instance
14
14
  *
15
15
  * Supports Claude Code provider options:
16
16
  * - allowedTools, disallowedTools, mcpServers, permissionMode, maxTurns, cwd, verbose
17
+ * - executablePath: explicit path to the claude binary (preferred)
18
+ * - pathToClaudeCodeExecutable: legacy option for explicit path (for backward compatibility)
17
19
  * See: https://ai-sdk.dev/providers/community-providers/claude-code
18
20
  */
19
21
  async getModel() {
@@ -23,26 +25,40 @@ export class ClaudeAgent extends BaseAgent {
23
25
  // Uses CLI authentication (claude login) - API key not needed in code
24
26
  // Model shortcuts: 'opus', 'sonnet', 'haiku'
25
27
  const modelId = this.config.model || 'sonnet';
26
- // Check if custom provider options are provided
27
- const hasCustomOptions = this.config.allowedTools ||
28
- this.config.disallowedTools ||
29
- this.config.mcpServers ||
30
- this.config.permissionMode ||
31
- this.config.maxTurns ||
32
- this.config.cwd !== undefined ||
33
- this.config.verbose !== undefined;
28
+ // Get the binary path
29
+ // Build settings object
30
+ const settings = {};
31
+ if (this.config.executablePath) {
32
+ settings.pathToClaudeCodeExecutable = this.config.executablePath;
33
+ }
34
+ // Add other config options if provided
35
+ if (this.config.allowedTools) {
36
+ settings.allowedTools = this.config.allowedTools;
37
+ }
38
+ if (this.config.disallowedTools) {
39
+ settings.disallowedTools = this.config.disallowedTools;
40
+ }
41
+ if (this.config.mcpServers) {
42
+ settings.mcpServers = this.config.mcpServers;
43
+ }
44
+ if (this.config.permissionMode) {
45
+ settings.permissionMode = this.config.permissionMode;
46
+ }
47
+ if (this.config.maxTurns !== undefined) {
48
+ settings.maxTurns = this.config.maxTurns;
49
+ }
50
+ if (this.config.cwd !== undefined) {
51
+ settings.cwd = this.config.cwd;
52
+ }
53
+ if (this.config.verbose !== undefined) {
54
+ settings.verbose = this.config.verbose;
55
+ }
56
+ // Check if we have any custom options (including binary path)
57
+ const hasCustomOptions = Object.keys(settings).length > 1;
34
58
  if (hasCustomOptions) {
35
59
  // Create custom provider instance with options
36
60
  const customProvider = createClaudeCode({
37
- defaultSettings: {
38
- allowedTools: this.config.allowedTools,
39
- disallowedTools: this.config.disallowedTools,
40
- mcpServers: this.config.mcpServers,
41
- permissionMode: this.config.permissionMode,
42
- maxTurns: this.config.maxTurns,
43
- cwd: this.config.cwd,
44
- verbose: this.config.verbose,
45
- }
61
+ defaultSettings: settings
46
62
  });
47
63
  this.modelInstance = customProvider(modelId);
48
64
  }