@intella/sdk 0.0.8 → 0.0.9

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 (163) hide show
  1. package/README.md +70 -6
  2. package/dist/agent-manager.d.ts +4 -4
  3. package/dist/agent-manager.d.ts.map +1 -1
  4. package/dist/agent-manager.js +12 -7
  5. package/dist/agent-manager.js.map +1 -1
  6. package/dist/agents/base-agent.d.ts +35 -2
  7. package/dist/agents/base-agent.d.ts.map +1 -1
  8. package/dist/agents/base-agent.js +280 -24
  9. package/dist/agents/base-agent.js.map +1 -1
  10. package/dist/agents/claude-agent.d.ts +1 -1
  11. package/dist/agents/claude-agent.d.ts.map +1 -1
  12. package/dist/agents/claude-agent.js +2 -1
  13. package/dist/agents/claude-agent.js.map +1 -1
  14. package/dist/agents/codex-agent.d.ts +1 -1
  15. package/dist/agents/codex-agent.d.ts.map +1 -1
  16. package/dist/agents/codex-agent.js +2 -1
  17. package/dist/agents/codex-agent.js.map +1 -1
  18. package/dist/agents/intella-lite-agent.d.ts +1 -1
  19. package/dist/agents/intella-lite-agent.d.ts.map +1 -1
  20. package/dist/agents/intella-lite-agent.js +2 -1
  21. package/dist/agents/intella-lite-agent.js.map +1 -1
  22. package/dist/agents/opencode-agent.d.ts +1 -1
  23. package/dist/agents/opencode-agent.d.ts.map +1 -1
  24. package/dist/agents/opencode-agent.js +2 -3
  25. package/dist/agents/opencode-agent.js.map +1 -1
  26. package/dist/index.d.ts +22 -12
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +31 -11
  29. package/dist/index.js.map +1 -1
  30. package/dist/sandbox/{agent-installers.d.ts → agents/agent-installers.d.ts} +1 -1
  31. package/dist/sandbox/agents/agent-installers.d.ts.map +1 -0
  32. package/dist/sandbox/{agent-installers.js → agents/agent-installers.js} +5 -4
  33. package/dist/sandbox/agents/agent-installers.js.map +1 -0
  34. package/dist/sandbox/{agent-setup.d.ts → agents/agent-setup.d.ts} +1 -1
  35. package/dist/sandbox/agents/agent-setup.d.ts.map +1 -0
  36. package/dist/sandbox/{agent-setup.js → agents/agent-setup.js} +3 -2
  37. package/dist/sandbox/agents/agent-setup.js.map +1 -0
  38. package/dist/sandbox/agents/agents.d.ts +49 -0
  39. package/dist/sandbox/agents/agents.d.ts.map +1 -0
  40. package/dist/sandbox/agents/agents.js +71 -0
  41. package/dist/sandbox/agents/agents.js.map +1 -0
  42. package/dist/sandbox/config.d.ts +1 -1
  43. package/dist/sandbox/config.d.ts.map +1 -1
  44. package/dist/sandbox/config.js +26 -18
  45. package/dist/sandbox/config.js.map +1 -1
  46. package/dist/sandbox/file-utils.d.ts +20 -0
  47. package/dist/sandbox/file-utils.d.ts.map +1 -0
  48. package/dist/sandbox/file-utils.js +101 -0
  49. package/dist/sandbox/file-utils.js.map +1 -0
  50. package/dist/sandbox/operations/code-operations.d.ts +68 -0
  51. package/dist/sandbox/operations/code-operations.d.ts.map +1 -0
  52. package/dist/sandbox/operations/code-operations.js +208 -0
  53. package/dist/sandbox/operations/code-operations.js.map +1 -0
  54. package/dist/sandbox/operations/git-operations.d.ts +27 -0
  55. package/dist/sandbox/operations/git-operations.d.ts.map +1 -0
  56. package/dist/sandbox/operations/git-operations.js +235 -0
  57. package/dist/sandbox/operations/git-operations.js.map +1 -0
  58. package/dist/sandbox/providers/base-provider.d.ts +283 -0
  59. package/dist/sandbox/providers/base-provider.d.ts.map +1 -0
  60. package/dist/sandbox/providers/base-provider.js +816 -0
  61. package/dist/sandbox/providers/base-provider.js.map +1 -0
  62. package/dist/sandbox/{daytona-provider.d.ts → providers/daytona-provider.d.ts} +19 -16
  63. package/dist/sandbox/providers/daytona-provider.d.ts.map +1 -0
  64. package/dist/sandbox/{daytona-provider.js → providers/daytona-provider.js} +96 -27
  65. package/dist/sandbox/providers/daytona-provider.js.map +1 -0
  66. package/dist/sandbox/{e2b-provider.d.ts → providers/e2b-provider.d.ts} +16 -10
  67. package/dist/sandbox/providers/e2b-provider.d.ts.map +1 -0
  68. package/dist/sandbox/{e2b-provider.js → providers/e2b-provider.js} +51 -29
  69. package/dist/sandbox/providers/e2b-provider.js.map +1 -0
  70. package/dist/sandbox/{local-provider.d.ts → providers/local-provider.d.ts} +12 -6
  71. package/dist/sandbox/providers/local-provider.d.ts.map +1 -0
  72. package/dist/sandbox/{local-provider.js → providers/local-provider.js} +24 -21
  73. package/dist/sandbox/providers/local-provider.js.map +1 -0
  74. package/dist/sandbox/{modal-provider.d.ts → providers/modal-provider.d.ts} +18 -12
  75. package/dist/sandbox/providers/modal-provider.d.ts.map +1 -0
  76. package/dist/sandbox/{modal-provider.js → providers/modal-provider.js} +49 -29
  77. package/dist/sandbox/providers/modal-provider.js.map +1 -0
  78. package/dist/sandbox/{vercel-provider.d.ts → providers/vercel-provider.d.ts} +19 -14
  79. package/dist/sandbox/providers/vercel-provider.d.ts.map +1 -0
  80. package/dist/sandbox/{vercel-provider.js → providers/vercel-provider.js} +41 -42
  81. package/dist/sandbox/providers/vercel-provider.js.map +1 -0
  82. package/dist/sandbox/utils/detector.d.ts +28 -0
  83. package/dist/sandbox/utils/detector.d.ts.map +1 -0
  84. package/dist/sandbox/utils/detector.js +243 -0
  85. package/dist/sandbox/utils/detector.js.map +1 -0
  86. package/dist/sandbox-manager.js +5 -5
  87. package/dist/sandbox-manager.js.map +1 -1
  88. package/dist/sdk.d.ts +4 -3
  89. package/dist/sdk.d.ts.map +1 -1
  90. package/dist/sdk.js +7 -3
  91. package/dist/sdk.js.map +1 -1
  92. package/dist/session/execution-store.d.ts +71 -0
  93. package/dist/session/execution-store.d.ts.map +1 -0
  94. package/dist/session/execution-store.js +156 -0
  95. package/dist/session/execution-store.js.map +1 -0
  96. package/dist/session/index.d.ts +14 -0
  97. package/dist/session/index.d.ts.map +1 -0
  98. package/dist/session/index.js +20 -0
  99. package/dist/session/index.js.map +1 -0
  100. package/dist/session/manager.d.ts +164 -0
  101. package/dist/session/manager.d.ts.map +1 -0
  102. package/dist/session/manager.js +493 -0
  103. package/dist/session/manager.js.map +1 -0
  104. package/dist/session/store.d.ts +20 -0
  105. package/dist/session/store.d.ts.map +1 -0
  106. package/dist/session/store.js +69 -0
  107. package/dist/session/store.js.map +1 -0
  108. package/dist/session/types.d.ts +57 -0
  109. package/dist/session/types.d.ts.map +1 -0
  110. package/dist/session/types.js +2 -0
  111. package/dist/session/types.js.map +1 -0
  112. package/dist/types.d.ts +622 -19
  113. package/dist/types.d.ts.map +1 -1
  114. package/dist/types.js +35 -0
  115. package/dist/types.js.map +1 -1
  116. package/dist/utils/cli-daemon.d.ts.map +1 -1
  117. package/dist/utils/cli-daemon.js +1 -3
  118. package/dist/utils/cli-daemon.js.map +1 -1
  119. package/dist/utils/machine-id.d.ts +8 -0
  120. package/dist/utils/machine-id.d.ts.map +1 -0
  121. package/dist/utils/machine-id.js +19 -0
  122. package/dist/utils/machine-id.js.map +1 -0
  123. package/dist/utils/redis/client.d.ts +18 -0
  124. package/dist/utils/redis/client.d.ts.map +1 -0
  125. package/dist/utils/redis/client.js +52 -0
  126. package/dist/utils/redis/client.js.map +1 -0
  127. package/dist/utils/redis/index.d.ts +2 -0
  128. package/dist/utils/redis/index.d.ts.map +1 -0
  129. package/dist/utils/redis/index.js +2 -0
  130. package/dist/utils/redis/index.js.map +1 -0
  131. package/dist/utils/{redis-stream.d.ts → redis/stream.d.ts} +41 -74
  132. package/dist/utils/redis/stream.d.ts.map +1 -0
  133. package/dist/utils/{redis-stream.js → redis/stream.js} +133 -69
  134. package/dist/utils/redis/stream.js.map +1 -0
  135. package/dist/utils/repo-context.d.ts +16 -0
  136. package/dist/utils/repo-context.d.ts.map +1 -0
  137. package/dist/utils/repo-context.js +65 -0
  138. package/dist/utils/repo-context.js.map +1 -0
  139. package/dist/utils/tool-response.d.ts +20 -0
  140. package/dist/utils/tool-response.d.ts.map +1 -0
  141. package/dist/utils/tool-response.js +68 -0
  142. package/dist/utils/tool-response.js.map +1 -0
  143. package/package.json +22 -7
  144. package/dist/sandbox/agent-installers.d.ts.map +0 -1
  145. package/dist/sandbox/agent-installers.js.map +0 -1
  146. package/dist/sandbox/agent-setup.d.ts.map +0 -1
  147. package/dist/sandbox/agent-setup.js.map +0 -1
  148. package/dist/sandbox/base-provider.d.ts +0 -106
  149. package/dist/sandbox/base-provider.d.ts.map +0 -1
  150. package/dist/sandbox/base-provider.js +0 -74
  151. package/dist/sandbox/base-provider.js.map +0 -1
  152. package/dist/sandbox/daytona-provider.d.ts.map +0 -1
  153. package/dist/sandbox/daytona-provider.js.map +0 -1
  154. package/dist/sandbox/e2b-provider.d.ts.map +0 -1
  155. package/dist/sandbox/e2b-provider.js.map +0 -1
  156. package/dist/sandbox/local-provider.d.ts.map +0 -1
  157. package/dist/sandbox/local-provider.js.map +0 -1
  158. package/dist/sandbox/modal-provider.d.ts.map +0 -1
  159. package/dist/sandbox/modal-provider.js.map +0 -1
  160. package/dist/sandbox/vercel-provider.d.ts.map +0 -1
  161. package/dist/sandbox/vercel-provider.js.map +0 -1
  162. package/dist/utils/redis-stream.d.ts.map +0 -1
  163. package/dist/utils/redis-stream.js.map +0 -1
package/README.md CHANGED
@@ -1,15 +1,79 @@
1
1
  # intella-sdk
2
2
 
3
- To install dependencies:
3
+ Agent orchestrator SDK for managing tasks across multiple AI agents and sandbox execution (E2B, Daytona, Modal, Vercel, Local).
4
+
5
+ ## Install
4
6
 
5
7
  ```bash
6
- bun install
8
+ bun install @intella/sdk
9
+ # or
10
+ npm install @intella/sdk
11
+ # or
12
+ yarn add @intella/sdk
7
13
  ```
8
14
 
9
- To run:
15
+ ## Sandbox Setup Configuration
10
16
 
11
- ```bash
12
- bun run index.ts
17
+ Initialize sandboxes with automatic setup - install packages, clone repos, and run commands:
18
+
19
+ ```typescript
20
+ import { IntellaSDK, SandboxProviderType } from '@intella/sdk';
21
+
22
+ const sdk = new IntellaSDK();
23
+
24
+ await sdk.initializeSandbox(SandboxProviderType.E2B, {
25
+ // Clone and auto-install a repository
26
+ gitClone: [{
27
+ url: 'https://github.com/user/project.git',
28
+ options: { path: '/home/user/project', autoInstall: true },
29
+ }],
30
+
31
+ // Install system packages
32
+ aptInstall: [{ packages: ['git', 'curl'] }],
33
+
34
+ // Install npm packages globally
35
+ npmInstall: [{ packages: ['typescript'], options: { g: true } }],
36
+
37
+ // Install Python packages with venv
38
+ pipInstall: [{ packages: [], options: { venv: true, path: '/home/user/project' } }],
39
+
40
+ // Run commands (can run in background)
41
+ runCmd: [{ command: 'npm run build', options: { background: true } }],
42
+ });
13
43
  ```
14
44
 
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.
45
+ **Setup Options**:
46
+ - `run: 'creation' | 'resume' | 'default'` - When to run (default = both)
47
+ - `background: boolean` - Fire-and-forget execution
48
+ - `timeout: number` - Timeout in milliseconds
49
+ - `path: string` - Working directory
50
+ - `detach: boolean` - Run with nohup, output to `{command}.log`
51
+
52
+ ## Sandbox File Operations
53
+
54
+ Sandbox providers support flexible file APIs:
55
+
56
+ - **readFile(path, opts?)** – `opts.format`: `'text'` (default), `'bytes'`, `'blob'`, `'stream'`
57
+ - **writeFile(path, content)** or **writeFile(entries)** – content: string, ArrayBuffer, Blob, ReadableStream, Uint8Array, Buffer
58
+ - **uploadFile(source, remotePath)** or **uploadFile(entries)** – source: local path or `http(s)://` / `file://` URL
59
+ - **createDirectory(path, opts?)** – `opts.recursive` defaults to true
60
+
61
+ ## Code Operations
62
+
63
+ Auto-detect and install codebases:
64
+
65
+ ```typescript
66
+ import { detectCodebase, autoInstallCodebase } from '@intella/sdk';
67
+
68
+ const detection = await detectCodebase(sandbox, '/path/to/project');
69
+ // detection.primary: 'npm' | 'yarn' | 'pnpm' | 'bun' | 'pip' | 'poetry' | 'none'
70
+
71
+ await autoInstallCodebase(sandbox, '/path/to/project', { useVenv: true });
72
+ ```
73
+
74
+ ## Examples
75
+
76
+ - **Agents** (Claude, Codex, OpenCode): [examples/agents/](./examples/agents/README.md) — one example per agent.
77
+ - **Sandboxes** (E2B, Daytona, Modal, Vercel, Local): [examples/sandbox/](./examples/sandbox/README.md) — one example per provider (`e2b-usage.ts`, `daytona-usage.ts`, `modal-usage.ts`, `vercel-usage.ts`, `local-usage.ts`).
78
+
79
+ See [CLAUDE.md](./CLAUDE.md) for full API and examples.
@@ -1,4 +1,4 @@
1
- import type { AgentType, AgentConfig, IAgent } from './types.js';
1
+ import { AgentType, type AgentConfig, type IAgent } from './types.js';
2
2
  /**
3
3
  * Agent Manager
4
4
  * Manages agent instances and configurations
@@ -10,11 +10,11 @@ export declare class AgentManager {
10
10
  /**
11
11
  * Register or update an agent instance
12
12
  */
13
- registerAgent(type: AgentType, agent: IAgent): void;
13
+ registerAgent(type: AgentType | string, agent: IAgent): void;
14
14
  /**
15
15
  * Get an agent instance
16
16
  */
17
- getAgent(type?: AgentType): IAgent;
17
+ getAgent(type?: AgentType | string): IAgent;
18
18
  /**
19
19
  * List all available agents
20
20
  */
@@ -22,7 +22,7 @@ export declare class AgentManager {
22
22
  /**
23
23
  * Check if an agent is registered
24
24
  */
25
- hasAgent(type: AgentType): boolean;
25
+ hasAgent(type: AgentType | string): boolean;
26
26
  /**
27
27
  * Update agent configuration
28
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMjE;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,gBAAgB,CAA6B;;IAUrD;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOnD;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAWlC;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE;IAIzB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAIlC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAKxD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW;IAKvC;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAOtC;;OAEG;IACH,mBAAmB,IAAI,SAAS;IAIhC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CAMnC"}
1
+ {"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAOtE;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,gBAAgB,CAA+B;;IAUvD;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ5D;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM;IAY3C;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE;IAIzB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO;IAK3C;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAKxD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW;IAKvC;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAOtC;;OAEG;IACH,mBAAmB,IAAI,SAAS;IAIhC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CAMnC"}
@@ -1,25 +1,28 @@
1
+ import { AgentType } from './types.js';
1
2
  import { IntellaLiteAgent } from './agents/intella-lite-agent.js';
2
3
  import { ClaudeAgent } from './agents/claude-agent.js';
3
4
  import { CodexAgent } from './agents/codex-agent.js';
4
5
  import { OpenCodeAgent } from './agents/opencode-agent.js';
6
+ import { parseAgentType } from './types.js';
5
7
  /**
6
8
  * Agent Manager
7
9
  * Manages agent instances and configurations
8
10
  */
9
11
  export class AgentManager {
10
12
  agents = new Map();
11
- defaultAgentType = 'intella-lite';
13
+ defaultAgentType = AgentType.CLAUDE;
12
14
  constructor() {
13
15
  // Initialize default agents
14
- this.registerAgent('intella-lite', new IntellaLiteAgent());
15
- this.registerAgent('claude', new ClaudeAgent());
16
- this.registerAgent('codex', new CodexAgent());
17
- this.registerAgent('opencode', new OpenCodeAgent());
16
+ this.registerAgent(AgentType.INTELLA_LITE, new IntellaLiteAgent());
17
+ this.registerAgent(AgentType.CLAUDE, new ClaudeAgent());
18
+ this.registerAgent(AgentType.CODEX, new CodexAgent());
19
+ this.registerAgent(AgentType.OPENCODE, new OpenCodeAgent());
18
20
  }
19
21
  /**
20
22
  * Register or update an agent instance
21
23
  */
22
24
  registerAgent(type, agent) {
25
+ type = parseAgentType(type);
23
26
  if (agent.type !== type) {
24
27
  throw new Error(`Agent type mismatch: expected ${type}, got ${agent.type}`);
25
28
  }
@@ -29,7 +32,8 @@ export class AgentManager {
29
32
  * Get an agent instance
30
33
  */
31
34
  getAgent(type) {
32
- const agentType = type || this.defaultAgentType;
35
+ const _type = parseAgentType(type);
36
+ const agentType = _type || this.defaultAgentType;
33
37
  const agent = this.agents.get(agentType);
34
38
  if (!agent) {
35
39
  throw new Error(`Agent ${agentType} is not registered`);
@@ -46,7 +50,8 @@ export class AgentManager {
46
50
  * Check if an agent is registered
47
51
  */
48
52
  hasAgent(type) {
49
- return this.agents.has(type);
53
+ const _type = parseAgentType(type);
54
+ return this.agents.has(_type);
50
55
  }
51
56
  /**
52
57
  * Update agent configuration
@@ -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":"AAAA,OAAO,EAAE,SAAS,EAAiC,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,GAA2B,IAAI,GAAG,EAAE,CAAC;IAC3C,gBAAgB,GAAc,SAAS,CAAC,MAAM,CAAC;IAEvD;QACE,4BAA4B;QAC5B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAwB,EAAE,KAAa;QACnD,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAyB;QAChC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,oBAAoB,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAwB;QAC/B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAAe,EAAE,MAAmB;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAe;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAe;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,oBAAoB,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAe;QACzB,IAAI,IAAI,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -1,5 +1,11 @@
1
- import { type LanguageModel, type ModelMessage } from 'ai';
1
+ import { type LanguageModel, type ModelMessage as BaseModelMessage } from 'ai';
2
2
  import type { AgentType, AgentConfig, TaskRequest, TaskResponse, StreamChunk, IAgent } from '../types.js';
3
+ /** Path template for session attachments */
4
+ export declare const ATTACHMENTS_PATH_TEMPLATE = ".intella/{sessionId}/workspace/attachments";
5
+ /** File path template for individual attachments */
6
+ export declare const ATTACHMENTS_FILE_PATH_TEMPLATE = ".intella/{sessionId}/workspace/attachments/{filename}";
7
+ /** Maximum file size for inline content (1MB) */
8
+ export declare const FILE_MAX_INLINE_SIZE: number;
3
9
  /**
4
10
  * Abstract base class for all agents
5
11
  * Provides common functionality using AI SDK v6
@@ -31,11 +37,38 @@ export declare abstract class BaseAgent implements IAgent {
31
37
  getConfig(): AgentConfig;
32
38
  /**
33
39
  * Convert TaskRequest content to AI SDK ModelMessage content format
40
+ * Handles text, file, image, and data-annotation parts
41
+ * @param content The message content to convert
42
+ * @param sessionId Optional session ID for formatting paths in annotations
34
43
  */
35
44
  private convertContent;
45
+ /**
46
+ * Process a file or image part - check size and decide inline vs reference
47
+ * @param part The file or image part to process
48
+ * @param sessionId Optional session ID for file paths
49
+ * @param sandbox Optional sandbox instance for file operations
50
+ */
51
+ private processFilePart;
52
+ /**
53
+ * Write a file part to the session workspace
54
+ * @param sessionId Session ID for file paths
55
+ * @param part The file or image part to write
56
+ * @param sandbox Optional sandbox instance for file operations
57
+ * @returns The relative file path where the file was written
58
+ */
59
+ private writeFileToWorkspace;
60
+ /**
61
+ * Format a data annotation as a text block for the model
62
+ * @param annotation The annotation to format
63
+ * @param sessionId Optional session ID for formatting paths
64
+ * @param sandbox Optional sandbox instance for file operations
65
+ */
66
+ private formatDataAnnotation;
36
67
  /**
37
68
  * Build messages array from request
69
+ * Includes attachments path context when there are actual attachments
70
+ * Handles async file operations for large content
38
71
  */
39
- protected buildMessages(request: TaskRequest): ModelMessage[];
72
+ buildMessages(request: TaskRequest): Promise<BaseModelMessage[]>;
40
73
  }
41
74
  //# sourceMappingURL=base-agent.d.ts.map
@@ -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;IA0C/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;CAsC9D"}
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,IAAI,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAEzG,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAiF,MAAM,aAAa,CAAC;AASzL,4CAA4C;AAC5C,eAAO,MAAM,yBAAyB,+CAA+C,CAAC;AAEtF,oDAAoD;AACpD,eAAO,MAAM,8BAA8B,0DAA0D,CAAC;AAEtG,iDAAiD;AACjD,eAAO,MAAM,oBAAoB,QAAkB,CAAC;AAEpD;;;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;IA0C/D;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIpC;;OAEG;IACH,SAAS,IAAI,WAAW;IAIxB;;;;;OAKG;YACW,cAAc;IA0D5B;;;;;OAKG;YACW,eAAe;IAsC7B;;;;;;OAMG;YACW,oBAAoB;IAuDlC;;;;;OAKG;YACW,oBAAoB;IAuIlC;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CA4CvE"}
@@ -1,4 +1,16 @@
1
1
  import { generateText, streamText } from 'ai';
2
+ import { buildRepoContextPrompt } from '../utils/repo-context.js';
3
+ import { TOOL_RESPONSE_MAX_INLINE_LENGTH, formatToolResponseMarkdown } from '../utils/tool-response.js';
4
+ import { LocalSandboxProvider } from '../sandbox/providers/local-provider.js';
5
+ // =============================================================================
6
+ // Constants for attachments and file handling
7
+ // =============================================================================
8
+ /** Path template for session attachments */
9
+ export const ATTACHMENTS_PATH_TEMPLATE = '.intella/{sessionId}/workspace/attachments';
10
+ /** File path template for individual attachments */
11
+ export const ATTACHMENTS_FILE_PATH_TEMPLATE = '.intella/{sessionId}/workspace/attachments/{filename}';
12
+ /** Maximum file size for inline content (1MB) */
13
+ export const FILE_MAX_INLINE_SIZE = 1 * 1024 * 1024;
2
14
  /**
3
15
  * Abstract base class for all agents
4
16
  * Provides common functionality using AI SDK v6
@@ -15,7 +27,7 @@ export class BaseAgent {
15
27
  */
16
28
  async execute(request) {
17
29
  const model = await Promise.resolve(this.getModel());
18
- const messages = this.buildMessages(request);
30
+ const messages = await this.buildMessages(request);
19
31
  const result = await generateText({
20
32
  model,
21
33
  messages,
@@ -36,7 +48,7 @@ export class BaseAgent {
36
48
  */
37
49
  async *stream(request) {
38
50
  const model = await Promise.resolve(this.getModel());
39
- const messages = this.buildMessages(request);
51
+ const messages = await this.buildMessages(request);
40
52
  const result = streamText({
41
53
  model,
42
54
  messages,
@@ -85,45 +97,287 @@ export class BaseAgent {
85
97
  }
86
98
  /**
87
99
  * Convert TaskRequest content to AI SDK ModelMessage content format
100
+ * Handles text, file, image, and data-annotation parts
101
+ * @param content The message content to convert
102
+ * @param sessionId Optional session ID for formatting paths in annotations
88
103
  */
89
- convertContent(content) {
104
+ async convertContent(content, sessionId) {
90
105
  // If content is a string, return as-is
91
106
  if (typeof content === 'string') {
92
107
  return content;
93
108
  }
94
109
  // If content is an array, convert to AI SDK format
95
- return content.map(part => {
96
- if (part.type === 'text') {
97
- return {
110
+ const result = [];
111
+ for (const part of content) {
112
+ // Type guard to check if part is an object with a type property
113
+ if (typeof part !== 'object' || part === null || !('type' in part)) {
114
+ result.push({
98
115
  type: 'text',
99
- text: part.text,
100
- };
116
+ text: String(part),
117
+ });
118
+ continue;
119
+ }
120
+ const partType = part.type;
121
+ if (partType === 'text') {
122
+ const textPart = part;
123
+ result.push({
124
+ type: 'text',
125
+ text: textPart.text,
126
+ });
127
+ }
128
+ else if (partType === 'file' || partType === 'image') {
129
+ // Handle file/image parts - check size and decide inline vs reference
130
+ const filePart = part;
131
+ const processedPart = await this.processFilePart(filePart, sessionId);
132
+ result.push(processedPart);
133
+ }
134
+ else if (partType === 'data-annotation') {
135
+ // Convert data annotation to a text block for the model
136
+ // This makes the annotation visible to the agent as context
137
+ const annotationPart = part;
138
+ const annotationText = await this.formatDataAnnotation(annotationPart.annotation, sessionId);
139
+ if (annotationText) {
140
+ result.push({
141
+ type: 'text',
142
+ text: annotationText,
143
+ });
144
+ }
101
145
  }
102
- else if (part.type === 'file') {
103
- return {
104
- type: 'file',
105
- data: part.data,
106
- filename: part.filename,
107
- mediaType: part.mediaType,
108
- };
146
+ else {
147
+ // Fallback for unknown types
148
+ result.push({
149
+ type: 'text',
150
+ text: String(part),
151
+ });
109
152
  }
110
- // Fallback for unknown types
153
+ }
154
+ return result;
155
+ }
156
+ /**
157
+ * Process a file or image part - check size and decide inline vs reference
158
+ * @param part The file or image part to process
159
+ * @param sessionId Optional session ID for file paths
160
+ * @param sandbox Optional sandbox instance for file operations
161
+ */
162
+ async processFilePart(part, sessionId) {
163
+ const size = part.size || 0;
164
+ // FilePart has filename, ImagePart may not
165
+ const filename = 'filename' in part ? (part.filename || 'unnamed') : 'image';
166
+ // Get data from either FilePart.data or ImagePart.image
167
+ const data = 'data' in part ? part.data : ('image' in part ? part.image : undefined);
168
+ const mediaType = 'mediaType' in part ? part.mediaType : 'application/octet-stream';
169
+ // Check if file is too large for inline content
170
+ if (size > FILE_MAX_INLINE_SIZE && sessionId) {
171
+ // Write file to workspace and return text reference
172
+ const filePath = await this.writeFileToWorkspace(sessionId, part);
111
173
  return {
112
174
  type: 'text',
113
- text: String(part),
175
+ text: `[Attachment: ${filename} (${mediaType})]\nFile saved at: ${filePath}\nEnsure you read the file to access the content.`,
114
176
  };
115
- });
177
+ }
178
+ // Pass through to model for inline content
179
+ if (data) {
180
+ return {
181
+ type: 'file',
182
+ data: data,
183
+ filename: filename,
184
+ mediaType: mediaType || 'application/octet-stream',
185
+ };
186
+ }
187
+ // Fallback if no data found
188
+ return {
189
+ type: 'text',
190
+ text: `[Attachment: ${filename}] (data not available)`,
191
+ };
192
+ }
193
+ /**
194
+ * Write a file part to the session workspace
195
+ * @param sessionId Session ID for file paths
196
+ * @param part The file or image part to write
197
+ * @param sandbox Optional sandbox instance for file operations
198
+ * @returns The relative file path where the file was written
199
+ */
200
+ async writeFileToWorkspace(sessionId, part, dir = 'attachments') {
201
+ // Get filename - FilePart has it, ImagePart may not
202
+ const filename = ('filename' in part && part.filename) ? part.filename : `file-${Date.now()}`;
203
+ // Get data from either FilePart.data or ImagePart.image
204
+ const partData = 'data' in part ? part.data : ('image' in part ? part.image : undefined);
205
+ // Convert data to appropriate format for writing
206
+ let content;
207
+ if (!partData) {
208
+ content = '';
209
+ }
210
+ else if (typeof partData === 'string') {
211
+ // Try to decode as base64, but fallback to plain string if that fails
212
+ try {
213
+ // Check if it's likely base64 (simple heuristic: only base64 characters, length is multiple of 4, not obviously plain text)
214
+ if (/^[A-Za-z0-9+/=]+$/.test(partData) && partData.length % 4 === 0) {
215
+ content = Buffer.from(partData, 'base64');
216
+ }
217
+ else {
218
+ content = partData;
219
+ }
220
+ }
221
+ catch {
222
+ content = partData;
223
+ }
224
+ }
225
+ else if (partData instanceof Uint8Array) {
226
+ content = partData;
227
+ }
228
+ else if (partData instanceof ArrayBuffer) {
229
+ content = new Uint8Array(partData);
230
+ }
231
+ else if (Buffer.isBuffer(partData)) {
232
+ content = partData;
233
+ }
234
+ else {
235
+ // URL or other - convert to string representation
236
+ content = String(partData);
237
+ }
238
+ const cwd = `.intella/sessions/${sessionId}/workspace`;
239
+ const attachmentsPath = `${cwd}/${dir}`;
240
+ const filePath = `${attachmentsPath}/${filename}`;
241
+ const sandbox = new LocalSandboxProvider();
242
+ await sandbox.initialize();
243
+ await sandbox.createDirectory(attachmentsPath, { recursive: true });
244
+ await sandbox.writeFile(filePath, content);
245
+ return filePath;
246
+ }
247
+ /**
248
+ * Format a data annotation as a text block for the model
249
+ * @param annotation The annotation to format
250
+ * @param sessionId Optional session ID for formatting paths
251
+ * @param sandbox Optional sandbox instance for file operations
252
+ */
253
+ async formatDataAnnotation(annotation, sessionId) {
254
+ const { type, provider, data } = annotation;
255
+ switch (type) {
256
+ case 'repo': {
257
+ const repoData = data;
258
+ return buildRepoContextPrompt(repoData);
259
+ }
260
+ case 'tool_response': {
261
+ const toolData = data;
262
+ const lines = [];
263
+ const toolName = toolData.toolName || 'Unknown Tool';
264
+ // Header with tool name and status
265
+ const statusStr = toolData.status === 'failed' ? ' [FAILED]' : '[SUCCESS]';
266
+ lines.push(`[Tool Response: ${toolName}${statusStr}]`);
267
+ // Add tool call ID if present
268
+ if (toolData.toolCallId) {
269
+ lines.push(`Tool Call ID: ${toolData.toolCallId}`);
270
+ }
271
+ // Add input if present
272
+ if (toolData.input) {
273
+ const inputStr = typeof toolData.input === 'string'
274
+ ? toolData.input
275
+ : JSON.stringify(toolData.input, null, 2);
276
+ lines.push(`Input: ${inputStr}`);
277
+ }
278
+ // Handle output - check size and write to file if too large
279
+ if (toolData.output) {
280
+ if (toolData.output.length <= TOOL_RESPONSE_MAX_INLINE_LENGTH) {
281
+ // Small output - include inline
282
+ lines.push(`Output:\n${toolData.output}`);
283
+ }
284
+ else if (sessionId && toolData.id) {
285
+ // Large output - write to file and show reference
286
+ const fileName = `tool-response-${toolData.id}.md`;
287
+ const mdContent = formatToolResponseMarkdown(toolData);
288
+ const filePart = {
289
+ type: 'file',
290
+ filename: fileName,
291
+ data: mdContent,
292
+ mediaType: 'text/markdown',
293
+ };
294
+ const filePath = await this.writeFileToWorkspace(sessionId, filePart);
295
+ lines.push(`Full output at: ${filePath}`);
296
+ lines.push('Read the file to retrieve the full output.');
297
+ // Add summary (first 200 chars)
298
+ lines.push(`Summary: ${toolData.output.substring(0, 200)}...`);
299
+ }
300
+ else {
301
+ // Large output but no sessionId/id - truncate with warning
302
+ lines.push(`Output (truncated - too large):\n${toolData.output.substring(0, TOOL_RESPONSE_MAX_INLINE_LENGTH)}...`);
303
+ }
304
+ }
305
+ else if (toolData.id) {
306
+ // No sessionId but have id - show generic message
307
+ lines.push(`Output stored with ID: ${toolData.id}`);
308
+ if (toolData.summary) {
309
+ lines.push(`Summary: ${toolData.summary}`);
310
+ }
311
+ }
312
+ // Add error if present
313
+ if (toolData.status === 'failed' && toolData.error) {
314
+ lines.push(`Error: ${toolData.error}`);
315
+ }
316
+ return lines.join('\n');
317
+ }
318
+ case 'context': {
319
+ const contextData = data;
320
+ if (contextData.content) {
321
+ const source = contextData.source ? ` (source: ${contextData.source})` : '';
322
+ return `[Context${source}]\n${contextData.content}`;
323
+ }
324
+ return '';
325
+ }
326
+ case 'integration': {
327
+ const integrationData = data;
328
+ if (integrationData.connections && integrationData.connections.length > 0) {
329
+ const tools = integrationData.connections
330
+ .map(c => c.toolkitName || c.toolkitId)
331
+ .filter(Boolean)
332
+ .join(', ');
333
+ return `[Available Integrations: ${tools}]`;
334
+ }
335
+ return '';
336
+ }
337
+ case 'tabs': {
338
+ const tabsData = data;
339
+ if (Array.isArray(tabsData) && tabsData.length > 0) {
340
+ const tabsList = tabsData
341
+ .map(t => `- ${t.title || 'Untitled'}: ${t.url || 'no url'}`)
342
+ .join('\n');
343
+ return `[Browser Tabs]\n${tabsList}`;
344
+ }
345
+ return '';
346
+ }
347
+ case 'notes': {
348
+ const notesData = data;
349
+ if (notesData.content) {
350
+ const title = notesData.title ? ` - ${notesData.title}` : '';
351
+ return `[Notes${title}]\n${notesData.content}`;
352
+ }
353
+ return '';
354
+ }
355
+ default:
356
+ // For unknown types, try to stringify the data
357
+ try {
358
+ const typeLabel = provider ? `${type}/${provider}` : type;
359
+ return `[${typeLabel}]\n${JSON.stringify(data, null, 2)}`;
360
+ }
361
+ catch {
362
+ return '';
363
+ }
364
+ }
116
365
  }
117
366
  /**
118
367
  * Build messages array from request
368
+ * Includes attachments path context when there are actual attachments
369
+ * Handles async file operations for large content
119
370
  */
120
- buildMessages(request) {
371
+ async buildMessages(request) {
121
372
  const messages = [];
122
- // Add system prompt if provided
123
- if (request.systemPrompt) {
373
+ const sessionId = request.sessionId;
374
+ // Build system prompt with optional attachments path
375
+ let systemPromptContent = request.systemPrompt || '';
376
+ // Add system prompt if we have content
377
+ if (systemPromptContent) {
124
378
  messages.push({
125
379
  role: 'system',
126
- content: request.systemPrompt,
380
+ content: systemPromptContent,
127
381
  });
128
382
  }
129
383
  // Add previous messages if provided
@@ -133,9 +387,11 @@ export class BaseAgent {
133
387
  if (msg.role === 'system') {
134
388
  continue;
135
389
  }
136
- const convertedContent = this.convertContent(msg.content);
390
+ const convertedContent = await this.convertContent(msg.content, sessionId);
391
+ // Cast role to the expected type (we've already filtered out 'system')
392
+ const role = msg.role;
137
393
  messages.push({
138
- role: msg.role,
394
+ role,
139
395
  content: convertedContent,
140
396
  });
141
397
  }
@@ -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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"}
@@ -1,5 +1,5 @@
1
1
  import { BaseAgent } from './base-agent.js';
2
- import type { AgentConfig } from '../types.js';
2
+ import { type AgentConfig } from '../types.js';
3
3
  import type { LanguageModel } from 'ai';
4
4
  /**
5
5
  * Claude Agent
@@ -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;;;;;;;;OAQG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IA8DxC;;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,EAAa,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,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;IA8DxC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAKrC"}