@intella/sdk 0.0.5 → 0.0.7

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/dist/agents/base-agent.d.ts.map +1 -1
  2. package/dist/agents/base-agent.js +7 -2
  3. package/dist/agents/base-agent.js.map +1 -1
  4. package/dist/agents/claude-agent.d.ts.map +1 -1
  5. package/dist/agents/claude-agent.js +1 -1
  6. package/dist/agents/claude-agent.js.map +1 -1
  7. package/dist/agents/codex-agent.d.ts.map +1 -1
  8. package/dist/agents/codex-agent.js +10 -1
  9. package/dist/agents/codex-agent.js.map +1 -1
  10. package/dist/agents/opencode-agent.d.ts.map +1 -1
  11. package/dist/agents/opencode-agent.js +7 -1
  12. package/dist/agents/opencode-agent.js.map +1 -1
  13. package/dist/index.d.ts +6 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +7 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/sandbox/daytona-provider.d.ts.map +1 -1
  18. package/dist/sandbox/daytona-provider.js +2 -1
  19. package/dist/sandbox/daytona-provider.js.map +1 -1
  20. package/dist/sandbox/e2b-provider.js +2 -1
  21. package/dist/sandbox/e2b-provider.js.map +1 -1
  22. package/dist/sandbox/local-provider.d.ts +52 -0
  23. package/dist/sandbox/local-provider.d.ts.map +1 -0
  24. package/dist/sandbox/local-provider.js +305 -0
  25. package/dist/sandbox/local-provider.js.map +1 -0
  26. package/dist/sandbox/modal-provider.js +2 -1
  27. package/dist/sandbox/modal-provider.js.map +1 -1
  28. package/dist/sandbox/vercel-provider.js +2 -1
  29. package/dist/sandbox/vercel-provider.js.map +1 -1
  30. package/dist/sandbox-manager.d.ts +2 -1
  31. package/dist/sandbox-manager.d.ts.map +1 -1
  32. package/dist/sandbox-manager.js +7 -4
  33. package/dist/sandbox-manager.js.map +1 -1
  34. package/dist/sdk.d.ts +4 -11
  35. package/dist/sdk.d.ts.map +1 -1
  36. package/dist/sdk.js +2 -1
  37. package/dist/sdk.js.map +1 -1
  38. package/dist/types.d.ts +19 -2
  39. package/dist/types.d.ts.map +1 -1
  40. package/dist/types.js +11 -1
  41. package/dist/types.js.map +1 -1
  42. package/dist/utils/cli-daemon.d.ts +25 -0
  43. package/dist/utils/cli-daemon.d.ts.map +1 -0
  44. package/dist/utils/cli-daemon.js +82 -0
  45. package/dist/utils/cli-daemon.js.map +1 -0
  46. package/dist/utils/id.util.d.ts +53 -0
  47. package/dist/utils/id.util.d.ts.map +1 -0
  48. package/dist/utils/id.util.js +71 -0
  49. package/dist/utils/id.util.js.map +1 -0
  50. package/dist/utils/redis-stream.d.ts +163 -0
  51. package/dist/utils/redis-stream.d.ts.map +1 -0
  52. package/dist/utils/redis-stream.js +464 -0
  53. package/dist/utils/redis-stream.js.map +1 -0
  54. package/package.json +7 -2
@@ -0,0 +1,464 @@
1
+ /**
2
+ * Redis Stream utilities for sandbox command execution
3
+ * Provides reusable methods for publishing commands, chunks, and waiting for results
4
+ */
5
+ import { createClient } from 'redis';
6
+ export let client = null;
7
+ /**
8
+ * Generate a unique command ID
9
+ */
10
+ function generateCommandId() {
11
+ const timestamp = Date.now().toString(36);
12
+ const random = Math.random().toString(36).substring(2, 9);
13
+ return `cmd_${timestamp}_${random}`;
14
+ }
15
+ /**
16
+ * Get Redis client from URL
17
+ */
18
+ export async function getRedisClient(redisUrl) {
19
+ const url = redisUrl || process.env.REDIS_URL;
20
+ if (!url) {
21
+ throw new Error('Redis URL not provided and REDIS_URL environment variable is not set');
22
+ }
23
+ if (!client) {
24
+ client = createClient({ url });
25
+ }
26
+ if (!client.isOpen) {
27
+ await client.connect();
28
+ }
29
+ return client;
30
+ }
31
+ /**
32
+ * Ensure consumer group exists for a stream
33
+ */
34
+ async function ensureConsumerGroup(client, streamKey, groupName) {
35
+ try {
36
+ await client.xGroupCreate(streamKey, groupName, '0', {
37
+ MKSTREAM: true,
38
+ });
39
+ }
40
+ catch (error) {
41
+ // If group already exists (BUSYGROUP), that's fine - ignore the error
42
+ if (error?.message && !error.message.includes('BUSYGROUP')) {
43
+ throw error;
44
+ }
45
+ }
46
+ }
47
+ /**
48
+ * Publish a command to sandbox-specific Redis stream
49
+ * @param sandboxId - Sandbox ID
50
+ * @param command - Command to publish
51
+ * @param redisUrl - Optional Redis URL (defaults to REDIS_URL env var)
52
+ */
53
+ export async function publishCommand(sandboxId, command, redisUrl) {
54
+ const client = await getRedisClient(redisUrl);
55
+ const commandId = command.id || generateCommandId();
56
+ try {
57
+ const streamKey = `sandbox:${sandboxId}:stream`;
58
+ // Prepare command data for Redis stream
59
+ const commandData = {
60
+ id: commandId,
61
+ type: command.type,
62
+ timestamp: String(Date.now()),
63
+ };
64
+ if (command.sessionId) {
65
+ commandData.sessionId = command.sessionId;
66
+ }
67
+ if (command.agentType) {
68
+ commandData.agentType = String(command.agentType);
69
+ }
70
+ if (command.prompt) {
71
+ commandData.prompt = command.prompt;
72
+ }
73
+ if (command.model) {
74
+ commandData.model = command.model;
75
+ }
76
+ if (command.apiKeys) {
77
+ commandData.apiKeys = JSON.stringify(command.apiKeys);
78
+ }
79
+ if (command.taskRequest) {
80
+ commandData.taskRequest = JSON.stringify(command.taskRequest);
81
+ }
82
+ if (command.history) {
83
+ commandData.history = JSON.stringify(command.history);
84
+ }
85
+ if (command.metadata) {
86
+ commandData.metadata = JSON.stringify(command.metadata);
87
+ }
88
+ if (command.streamAgentResult) {
89
+ commandData.streamAgentResult = command.streamAgentResult ? 'true' : 'false';
90
+ }
91
+ for (const [key, value] of Object.entries(command)) {
92
+ if (key !== 'id' && key !== 'type' && key !== 'timestamp' && key !== 'sessionId' && key !== 'agentType' && key !== 'prompt' && key !== 'model' && key !== 'apiKeys' && key !== 'taskRequest' && key !== 'history' && key !== 'metadata' && key !== 'streamAgentResult') {
93
+ commandData[key] = JSON.stringify(value);
94
+ }
95
+ }
96
+ // Use XADD to add command to stream
97
+ await client.xAdd(streamKey, '*', commandData);
98
+ return commandId;
99
+ }
100
+ finally {
101
+ await client.quit();
102
+ }
103
+ }
104
+ /**
105
+ * Publish a chunk to sandbox-specific Redis stream
106
+ * @param sandboxId - Sandbox ID
107
+ * @param chunk - Chunk data to publish
108
+ * @param redisUrl - Optional Redis URL (defaults to REDIS_URL env var)
109
+ */
110
+ export async function publishChunk(sandboxId, chunk, redisUrl) {
111
+ const client = await getRedisClient(redisUrl);
112
+ try {
113
+ const streamKey = `sandbox:${sandboxId}:stream`;
114
+ const chunkId = chunk.chunkId || generateCommandId();
115
+ // Use XADD to add message to stream
116
+ await client.xAdd(streamKey, '*', {
117
+ chunkId: chunkId,
118
+ chunk: chunk.chunk || '',
119
+ segmentId: chunk.segmentId || '',
120
+ isDone: chunk.isDone ? 'true' : 'false',
121
+ type: chunk.type || 'text-delta',
122
+ senderType: chunk.senderType || '',
123
+ timestamp: String(chunk.timestamp || Date.now()),
124
+ data: chunk.data ? JSON.stringify(chunk.data) : '',
125
+ });
126
+ }
127
+ finally {
128
+ await client.quit();
129
+ }
130
+ }
131
+ /**
132
+ * Publish a chunk to session-specific Redis stream
133
+ * @param sessionId - Session ID
134
+ * @param chunk - Chunk data to publish
135
+ * @param redisUrl - Optional Redis URL (defaults to REDIS_URL env var)
136
+ */
137
+ export async function publishChunkToSession(sessionId, chunk, redisUrl) {
138
+ const client = await getRedisClient(redisUrl);
139
+ try {
140
+ const streamKey = `session:${sessionId}:stream`;
141
+ const chunkId = chunk.chunkId || generateCommandId();
142
+ // Use XADD to add message to stream
143
+ await client.xAdd(streamKey, '*', {
144
+ chunkId: chunkId,
145
+ chunk: chunk.chunk || '',
146
+ segmentId: chunk.segmentId || '',
147
+ parentSegmentId: chunk.parentSegmentId || '',
148
+ isDone: chunk.isDone ? 'true' : 'false',
149
+ type: chunk.type || 'text-delta',
150
+ senderType: chunk.senderType || '',
151
+ timestamp: String(chunk.timestamp || Date.now()),
152
+ data: chunk.data ? JSON.stringify(chunk.data) : '',
153
+ });
154
+ }
155
+ finally {
156
+ await client.quit();
157
+ }
158
+ }
159
+ /**
160
+ * Generic function to read from any Redis stream (async generator)
161
+ * @param streamKey - Redis stream key
162
+ * @param options - Configuration options
163
+ */
164
+ export async function* readFromStream(streamKey, options = {}) {
165
+ const { redisUrl, timeout = 10 * 60 * 1000, groupName, consumerName, commandId, filter, transform, stopOnDone = true, blockTime = 1000, count = 100, } = options;
166
+ const client = await getRedisClient(redisUrl);
167
+ const finalGroupName = groupName || `stream-${streamKey.replace(/:/g, '-')}-consumers`;
168
+ const finalConsumerName = consumerName || `consumer-${Date.now()}-${Math.random().toString(36).substring(7)}`;
169
+ try {
170
+ // Ensure consumer group exists
171
+ await ensureConsumerGroup(client, streamKey, finalGroupName);
172
+ const maxWaitTime = timeout;
173
+ const startTime = Date.now();
174
+ while (Date.now() - startTime < maxWaitTime) {
175
+ try {
176
+ // Always use '>' with consumer groups to read new messages that haven't been delivered to this consumer
177
+ const messages = await client.xReadGroup(finalGroupName, finalConsumerName, [
178
+ {
179
+ key: streamKey,
180
+ id: '>', // Always read new messages for this consumer
181
+ },
182
+ ], {
183
+ COUNT: count,
184
+ BLOCK: blockTime,
185
+ });
186
+ if (messages && Array.isArray(messages) && messages.length > 0) {
187
+ const streamData = messages[0];
188
+ if (streamData.messages && streamData.messages.length > 0) {
189
+ for (const message of streamData.messages) {
190
+ // Parse message
191
+ const msg = message.message;
192
+ // Apply filter if provided
193
+ if (filter && !filter(msg)) {
194
+ // ACK and skip
195
+ await client.xAck(streamKey, finalGroupName, message.id);
196
+ continue;
197
+ }
198
+ // Default filter: For sandbox streams, filter by commandId if provided
199
+ if (commandId) {
200
+ // Only process result messages (those with 'commandId' field)
201
+ if (!msg.commandId) {
202
+ // This is a command message, not a result - ACK and skip
203
+ await client.xAck(streamKey, finalGroupName, message.id);
204
+ continue;
205
+ }
206
+ // Filter by commandId - only process results for our specific command
207
+ if (msg.commandId !== commandId) {
208
+ // ACK and skip messages not for this command
209
+ await client.xAck(streamKey, finalGroupName, message.id);
210
+ continue;
211
+ }
212
+ }
213
+ // Transform message to result type
214
+ let result;
215
+ if (transform) {
216
+ result = transform(msg);
217
+ }
218
+ else if (commandId) {
219
+ // Default transform for sandbox results
220
+ result = {
221
+ commandId: msg.commandId,
222
+ type: (msg.type || 'success'),
223
+ sessionId: msg.sessionId,
224
+ data: msg.data ? JSON.parse(msg.data) : undefined,
225
+ error: msg.error,
226
+ timestamp: parseInt(msg.timestamp || String(Date.now()), 10),
227
+ };
228
+ }
229
+ else {
230
+ // Default: return message as-is
231
+ result = msg;
232
+ }
233
+ yield result;
234
+ // ACK the message
235
+ await client.xAck(streamKey, finalGroupName, message.id);
236
+ // If stopOnDone is true and result has type 'done' or 'error', stop listening
237
+ if (stopOnDone && result && typeof result === 'object' && 'type' in result) {
238
+ const resultType = result.type;
239
+ if (resultType === 'done' || resultType === 'error') {
240
+ return;
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }
246
+ }
247
+ catch (error) {
248
+ console.error(`Error reading from stream ${streamKey}:`, error);
249
+ await new Promise(resolve => setTimeout(resolve, 1000));
250
+ }
251
+ }
252
+ }
253
+ finally {
254
+ await client.quit();
255
+ }
256
+ }
257
+ /**
258
+ * Read results from sandbox stream (convenience function)
259
+ * @param sandboxId - Sandbox ID
260
+ * @param commandId - Command ID to filter by
261
+ * @param options - Additional options
262
+ */
263
+ export async function* readFromSandbox(sandboxId, commandId, options = {}) {
264
+ const streamKey = `sandbox:${sandboxId}:stream`;
265
+ const groupName = options.groupName || `sandbox-${sandboxId}-results`;
266
+ yield* readFromStream(streamKey, {
267
+ ...options,
268
+ commandId,
269
+ groupName,
270
+ transform: (msg) => ({
271
+ commandId: msg.commandId,
272
+ type: (msg.type || 'success'),
273
+ sessionId: msg.sessionId,
274
+ data: msg.data ? JSON.parse(msg.data) : undefined,
275
+ error: msg.error,
276
+ timestamp: parseInt(msg.timestamp || String(Date.now()), 10),
277
+ }),
278
+ });
279
+ }
280
+ /**
281
+ * Read chunks from session stream (convenience function)
282
+ * @param sessionId - Session ID
283
+ * @param options - Additional options
284
+ */
285
+ export async function* readFromSession(sessionId, options = {}) {
286
+ const streamKey = `session:${sessionId}:stream`;
287
+ const groupName = options.groupName || 'sse-consumers';
288
+ yield* readFromStream(streamKey, {
289
+ ...options,
290
+ groupName,
291
+ stopOnDone: false, // Session streams don't stop on done - they continue for new messages
292
+ transform: (msg) => ({
293
+ chunkId: msg.chunkId || undefined,
294
+ chunk: msg.chunk || '',
295
+ segmentId: msg.segmentId || null,
296
+ parentSegmentId: msg.parentSegmentId || null,
297
+ isDone: msg.isDone === 'true',
298
+ type: msg.type || 'text-delta',
299
+ senderType: msg.senderType || undefined,
300
+ timestamp: msg.timestamp ? parseInt(msg.timestamp, 10) : Date.now(),
301
+ data: msg.data ? (() => {
302
+ try {
303
+ return JSON.parse(msg.data);
304
+ }
305
+ catch {
306
+ return msg.data;
307
+ }
308
+ })() : undefined,
309
+ }),
310
+ });
311
+ }
312
+ /**
313
+ * Wait for a success result for a specific command
314
+ * @param sandboxId - Sandbox ID
315
+ * @param commandId - Command ID to wait for
316
+ * @param redisUrl - Optional Redis URL (defaults to REDIS_URL env var)
317
+ * @param timeout - Timeout in milliseconds (default: 10 minutes)
318
+ * @returns Promise that resolves when success is received
319
+ * @throws Error if timeout or error result is received
320
+ */
321
+ export async function waitForSuccess(sandboxId, commandId, redisUrl, timeout = 10 * 60 * 1000) {
322
+ const client = await getRedisClient(redisUrl);
323
+ const streamKey = `sandbox:${sandboxId}:stream`;
324
+ const groupName = `sandbox-${sandboxId}-wait`;
325
+ const consumerName = `consumer-${Date.now()}`;
326
+ try {
327
+ await ensureConsumerGroup(client, streamKey, groupName);
328
+ const deadline = Date.now() + timeout;
329
+ while (Date.now() < deadline) {
330
+ const raw = await client.xReadGroup(groupName, consumerName, [{ key: streamKey, id: '>' }], { COUNT: 10, BLOCK: 1000 });
331
+ const replies = Array.isArray(raw) ? raw : [];
332
+ if (replies.length === 0)
333
+ continue;
334
+ for (const reply of replies) {
335
+ const messages = reply
336
+ .messages;
337
+ if (!messages)
338
+ continue;
339
+ for (const { id: msgId, message: msg } of messages) {
340
+ await client.xAck(streamKey, groupName, msgId);
341
+ // Only process results for our command
342
+ if (msg.commandId === commandId) {
343
+ if (msg.type === 'success') {
344
+ return {
345
+ commandId: msg.commandId,
346
+ type: 'success',
347
+ sessionId: msg.sessionId,
348
+ data: msg.data ? JSON.parse(msg.data) : undefined,
349
+ timestamp: parseInt(msg.timestamp || String(Date.now()), 10),
350
+ };
351
+ }
352
+ if (msg.type === 'error') {
353
+ throw new Error(`Command failed: ${msg.error || 'unknown error'}`);
354
+ }
355
+ }
356
+ }
357
+ }
358
+ }
359
+ throw new Error(`Timeout waiting for success for command ${commandId}`);
360
+ }
361
+ finally {
362
+ await client.quit();
363
+ }
364
+ }
365
+ /**
366
+ * Wait for an error result for a specific command
367
+ * @param sandboxId - Sandbox ID
368
+ * @param commandId - Command ID to wait for
369
+ * @param redisUrl - Optional Redis URL (defaults to REDIS_URL env var)
370
+ * @param timeout - Timeout in milliseconds (default: 10 minutes)
371
+ * @returns Promise that resolves with error result
372
+ * @throws Error if timeout
373
+ */
374
+ export async function waitForError(sandboxId, commandId, redisUrl, timeout = 10 * 60 * 1000) {
375
+ const client = await getRedisClient(redisUrl);
376
+ const streamKey = `sandbox:${sandboxId}:stream`;
377
+ const groupName = `sandbox-${sandboxId}-wait`;
378
+ const consumerName = `consumer-${Date.now()}`;
379
+ try {
380
+ await ensureConsumerGroup(client, streamKey, groupName);
381
+ const deadline = Date.now() + timeout;
382
+ while (Date.now() < deadline) {
383
+ const raw = await client.xReadGroup(groupName, consumerName, [{ key: streamKey, id: '>' }], { COUNT: 10, BLOCK: 1000 });
384
+ const replies = Array.isArray(raw) ? raw : [];
385
+ if (replies.length === 0)
386
+ continue;
387
+ for (const reply of replies) {
388
+ const messages = reply
389
+ .messages;
390
+ if (!messages)
391
+ continue;
392
+ for (const { id: msgId, message: msg } of messages) {
393
+ await client.xAck(streamKey, groupName, msgId);
394
+ // Only process results for our command
395
+ if (msg.commandId === commandId && msg.type === 'error') {
396
+ return {
397
+ commandId: msg.commandId,
398
+ type: 'error',
399
+ sessionId: msg.sessionId,
400
+ error: msg.error,
401
+ timestamp: parseInt(msg.timestamp || String(Date.now()), 10),
402
+ };
403
+ }
404
+ }
405
+ }
406
+ }
407
+ throw new Error(`Timeout waiting for error for command ${commandId}`);
408
+ }
409
+ finally {
410
+ await client.quit();
411
+ }
412
+ }
413
+ /**
414
+ * Wait for a done or error result for a specific command (returns full result data)
415
+ * @param sandboxId - Sandbox ID
416
+ * @param commandId - Command ID to wait for
417
+ * @param redisUrl - Optional Redis URL (defaults to REDIS_URL env var)
418
+ * @param timeout - Timeout in milliseconds (default: 10 minutes)
419
+ * @returns Promise that resolves with done or error result
420
+ * @throws Error if timeout
421
+ */
422
+ export async function waitForResult(sandboxId, commandId, redisUrl, timeout = 10 * 60 * 1000) {
423
+ const client = await getRedisClient(redisUrl);
424
+ const streamKey = `sandbox:${sandboxId}:stream`;
425
+ const groupName = `sandbox-${sandboxId}-wait`;
426
+ const consumerName = `consumer-${Date.now()}`;
427
+ try {
428
+ await ensureConsumerGroup(client, streamKey, groupName);
429
+ const deadline = Date.now() + timeout;
430
+ while (Date.now() < deadline) {
431
+ const raw = await client.xReadGroup(groupName, consumerName, [{ key: streamKey, id: '>' }], { COUNT: 10, BLOCK: 1000 });
432
+ const replies = Array.isArray(raw) ? raw : [];
433
+ if (replies.length === 0)
434
+ continue;
435
+ for (const reply of replies) {
436
+ const messages = reply
437
+ .messages;
438
+ if (!messages)
439
+ continue;
440
+ for (const { id: msgId, message: msg } of messages) {
441
+ await client.xAck(streamKey, groupName, msgId);
442
+ // Only process results for our command
443
+ if (msg.commandId === commandId) {
444
+ if (msg.type === 'done' || msg.type === 'error') {
445
+ return {
446
+ commandId: msg.commandId,
447
+ type: msg.type,
448
+ sessionId: msg.sessionId,
449
+ data: msg.data ? JSON.parse(msg.data) : undefined,
450
+ error: msg.error,
451
+ timestamp: parseInt(msg.timestamp || String(Date.now()), 10),
452
+ };
453
+ }
454
+ }
455
+ }
456
+ }
457
+ }
458
+ throw new Error(`Timeout waiting for result for command ${commandId}`);
459
+ }
460
+ finally {
461
+ await client.quit();
462
+ }
463
+ }
464
+ //# sourceMappingURL=redis-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-stream.js","sourceRoot":"","sources":["../../src/utils/redis-stream.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intella/sdk",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "description": "Agent orchestrator SDK for managing tasks across multiple AI agents using AI SDK v6",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -29,6 +29,9 @@
29
29
  "example:integrated-task": "tsx examples/integrated-task/integrated-usage.ts",
30
30
  "example:simple-example": "tsx examples/integrated-task/simple-example.ts",
31
31
  "example:sandbox": "tsx examples/sandbox/basic-usage.ts",
32
+ "example:local-sandbox": "tsx examples/local-sandbox/local-sandbox-usage.ts",
33
+ "example:local-sandbox-commands": "tsx examples/local-sandbox/command-and-code-execution.ts",
34
+ "example:local-sandbox-agent": "tsx examples/local-sandbox/agent-execution.ts",
32
35
  "example:e2b-template": "tsx examples/e2b-template/use-template.ts",
33
36
  "example:e2b-cli-agent": "tsx examples/e2b-cli-agent/agent-execution.ts",
34
37
  "template:build:dev": "tsx templates/e2b-intella/build.dev.ts",
@@ -55,7 +58,9 @@
55
58
  "e2b": "^2.9.0",
56
59
  "modal": "^0.6.0",
57
60
  "ts-node": "^10.9.2",
58
- "tsx": "^4.21.0"
61
+ "tsx": "^4.21.0",
62
+ "ulid": "^3.0.2",
63
+ "ulid-uuid-converter": "^1.0.4"
59
64
  },
60
65
  "peerDependencies": {
61
66
  "@ai-sdk/openai": "*"