@intella/sdk 0.0.4 → 0.0.5

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.
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Validate that an agent type requires a binary
3
+ */
4
+ export function agentRequiresBinary(agentType) {
5
+ return agentType === 'claude' || agentType === 'codex' || agentType === 'opencode';
6
+ }
7
+ /**
8
+ * Get the npm package name for an agent binary
9
+ */
10
+ export function getAgentBinaryPackage(agentType) {
11
+ switch (agentType) {
12
+ case 'claude':
13
+ return '@anthropic-ai/claude-code';
14
+ case 'codex':
15
+ return '@openai/codex';
16
+ case 'opencode':
17
+ return 'opencode-ai';
18
+ case 'intella-lite':
19
+ return null;
20
+ default:
21
+ return null;
22
+ }
23
+ }
24
+ /**
25
+ * Get the binary command name for an agent
26
+ */
27
+ export function getAgentBinaryCommand(agentType) {
28
+ switch (agentType) {
29
+ case 'claude':
30
+ return 'claude';
31
+ case 'codex':
32
+ return 'codex';
33
+ case 'opencode':
34
+ return 'opencode';
35
+ case 'intella-lite':
36
+ return null;
37
+ default:
38
+ return null;
39
+ }
40
+ }
41
+ /**
42
+ * Get required API keys for an agent type
43
+ */
44
+ export function getRequiredApiKeys(agentType) {
45
+ switch (agentType) {
46
+ case 'claude':
47
+ return ['ANTHROPIC_API_KEY'];
48
+ case 'codex':
49
+ return ['OPENAI_API_KEY', 'AI_GATEWAY_API_KEY']; // Either one works
50
+ case 'opencode':
51
+ return ['OPENAI_API_KEY', 'ANTHROPIC_API_KEY']; // At least one
52
+ case 'intella-lite':
53
+ return ['OPENAI_API_KEY'];
54
+ default:
55
+ return [];
56
+ }
57
+ }
58
+ /**
59
+ * Validate API keys for an agent type
60
+ */
61
+ export function validateApiKeys(agentType, apiKeys) {
62
+ const required = getRequiredApiKeys(agentType);
63
+ const missing = [];
64
+ if (!apiKeys) {
65
+ return { valid: false, missing: required };
66
+ }
67
+ for (const key of required) {
68
+ if (!apiKeys[key]) {
69
+ missing.push(key);
70
+ }
71
+ }
72
+ // Special handling for codex (either OPENAI_API_KEY or AI_GATEWAY_API_KEY)
73
+ if (agentType === 'codex') {
74
+ if (apiKeys.OPENAI_API_KEY || apiKeys.AI_GATEWAY_API_KEY) {
75
+ return { valid: true, missing: [] };
76
+ }
77
+ return { valid: false, missing: ['OPENAI_API_KEY or AI_GATEWAY_API_KEY'] };
78
+ }
79
+ // Special handling for opencode (at least one API key)
80
+ if (agentType === 'opencode') {
81
+ if (apiKeys.OPENAI_API_KEY || apiKeys.ANTHROPIC_API_KEY) {
82
+ return { valid: true, missing: [] };
83
+ }
84
+ return { valid: false, missing: ['OPENAI_API_KEY or ANTHROPIC_API_KEY'] };
85
+ }
86
+ return {
87
+ valid: missing.length === 0,
88
+ missing,
89
+ };
90
+ }
91
+ /**
92
+ * Build installation command for an agent binary
93
+ */
94
+ export function buildInstallCommand(agentType) {
95
+ const packageName = getAgentBinaryPackage(agentType);
96
+ if (!packageName) {
97
+ return null;
98
+ }
99
+ return `npm install -g ${packageName}`;
100
+ }
101
+ /**
102
+ * Normalize MCP server configuration
103
+ */
104
+ export function normalizeMcpServers(servers) {
105
+ if (!servers) {
106
+ return [];
107
+ }
108
+ return servers.map((server) => ({
109
+ ...server,
110
+ name: server.name.toLowerCase().replace(/[^a-z0-9]/g, '-'),
111
+ }));
112
+ }
113
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/sandbox/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { BaseSandboxProvider } from './base-provider.js';
2
+ import type { SandboxConfig, CommandResult, CodeExecutionResult, SandboxInfo } from '../types.js';
3
+ import { Sandbox } from '@vercel/sandbox';
4
+ import 'dotenv/config';
5
+ /**
6
+ * Vercel Sandbox Provider
7
+ * Provides sandbox execution capabilities using Vercel Sandbox SDK
8
+ */
9
+ export declare class VercelSandboxProvider extends BaseSandboxProvider {
10
+ private sandboxInstance;
11
+ protected client: Record<string, any> | null;
12
+ constructor(config?: SandboxConfig);
13
+ getClient(): Record<string, any>;
14
+ /**
15
+ * Initialize/create a Vercel sandbox
16
+ */
17
+ protected initializeSandbox(config?: SandboxConfig): Promise<void>;
18
+ /**
19
+ * Connect to an existing Vercel sandbox by ID
20
+ */
21
+ fromSandbox(sandboxId: string, config?: SandboxConfig): Promise<Sandbox>;
22
+ /**
23
+ * Close/cleanup the Vercel sandbox
24
+ */
25
+ close(): Promise<void>;
26
+ /**
27
+ * Execute a command in the Vercel sandbox
28
+ */
29
+ executeCommand(command: string, options?: {
30
+ cwd?: string;
31
+ env?: Record<string, string>;
32
+ timeout?: number;
33
+ }): Promise<CommandResult>;
34
+ /**
35
+ * Run code (e.g., Python, JavaScript) in the Vercel sandbox
36
+ */
37
+ runCode(code: string, options?: {
38
+ language?: string;
39
+ env?: Record<string, string>;
40
+ timeout?: number;
41
+ onStdout?: (data: string) => void;
42
+ onStderr?: (data: string) => void;
43
+ }): Promise<CodeExecutionResult>;
44
+ /**
45
+ * Upload a file to the Vercel sandbox
46
+ * Uses writeFile to write content
47
+ */
48
+ uploadFile(localPath: string, remotePath: string): Promise<void>;
49
+ /**
50
+ * Download a file from the Vercel sandbox
51
+ * Uses readFile to read content
52
+ */
53
+ downloadFile(remotePath: string, localPath: string): Promise<void>;
54
+ /**
55
+ * Read a file from the Vercel sandbox
56
+ * Uses cat command to read file
57
+ */
58
+ readFile(path: string): Promise<string>;
59
+ /**
60
+ * Write a file to the Vercel sandbox
61
+ * Uses a base64-encoded approach to safely write file content
62
+ */
63
+ writeFile(path: string, content: string): Promise<void>;
64
+ /**
65
+ * List files in a directory
66
+ * Uses ls command
67
+ */
68
+ listFiles(path: string): Promise<string[]>;
69
+ /**
70
+ * Check if a file exists
71
+ * Uses test command
72
+ */
73
+ fileExists(path: string): Promise<boolean>;
74
+ /**
75
+ * Delete a file
76
+ * Uses rm command
77
+ */
78
+ deleteFile(path: string): Promise<void>;
79
+ /**
80
+ * Get sandbox status
81
+ */
82
+ getStatus(): Promise<{
83
+ isRunning: boolean;
84
+ createdAt?: number;
85
+ [key: string]: unknown;
86
+ }>;
87
+ /**
88
+ * Get detailed sandbox information
89
+ */
90
+ getInfo(sandboxId?: string): Promise<SandboxInfo>;
91
+ }
92
+ //# sourceMappingURL=vercel-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-provider.d.ts","sourceRoot":"","sources":["../../src/sandbox/vercel-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,eAAe,CAAC;AAEvB;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,mBAAmB;IAC5D,OAAO,CAAC,eAAe,CAAwB;IAC/C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAQ;gBAExC,MAAM,CAAC,EAAE,aAAa;IAOlC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA4BhC;;OAEG;cACa,iBAAiB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DxE;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB9E;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5B;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,aAAa,CAAC;IA2DzB;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KACnC,GACA,OAAO,CAAC,mBAAmB,CAAC;IA4G/B;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IActE;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxE;;;OAGG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB7C;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB7D;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBhD;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAchD;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IAoBF;;OAEG;IACG,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CA8CxD"}