@jamesmurdza/opencode-daytona 0.1.10 → 0.1.12

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 (29) hide show
  1. package/.opencode/plugin/daytona/index.d.ts +25 -0
  2. package/.opencode/plugin/daytona/index.d.ts.map +1 -0
  3. package/.opencode/plugin/daytona/index.js +36 -0
  4. package/.opencode/plugin/daytona/index.js.map +1 -0
  5. package/.opencode/plugin/daytona/logger.d.ts +13 -0
  6. package/.opencode/plugin/daytona/logger.d.ts.map +1 -0
  7. package/.opencode/plugin/daytona/logger.js +26 -0
  8. package/.opencode/plugin/daytona/logger.js.map +1 -0
  9. package/.opencode/plugin/daytona/plugins.d.ts +22 -0
  10. package/.opencode/plugin/daytona/plugins.d.ts.map +1 -0
  11. package/.opencode/plugin/daytona/plugins.js +60 -0
  12. package/.opencode/plugin/daytona/plugins.js.map +1 -0
  13. package/.opencode/plugin/daytona/session-manager.d.ts +47 -0
  14. package/.opencode/plugin/daytona/session-manager.d.ts.map +1 -0
  15. package/.opencode/plugin/daytona/session-manager.js +171 -0
  16. package/.opencode/plugin/daytona/session-manager.js.map +1 -0
  17. package/.opencode/plugin/daytona/tools.d.ts +185 -0
  18. package/.opencode/plugin/daytona/tools.d.ts.map +1 -0
  19. package/.opencode/plugin/daytona/tools.js +232 -0
  20. package/.opencode/plugin/daytona/tools.js.map +1 -0
  21. package/.opencode/plugin/daytona/types.d.ts +32 -0
  22. package/.opencode/plugin/daytona/types.d.ts.map +1 -0
  23. package/.opencode/plugin/daytona/types.js +10 -0
  24. package/.opencode/plugin/daytona/types.js.map +1 -0
  25. package/.opencode/plugin/index.d.ts +3 -23
  26. package/.opencode/plugin/index.d.ts.map +1 -1
  27. package/.opencode/plugin/index.js +3 -402
  28. package/.opencode/plugin/index.js.map +1 -1
  29. package/package.json +2 -1
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Tool implementations for Daytona sandbox integration
3
+ */
4
+ import { z } from "zod";
5
+ export function createDaytonaTools(sessionManager, projectId, worktree) {
6
+ return {
7
+ /**
8
+ * Executes a shell command in the Daytona sandbox and returns the output
9
+ * @param command - Shell command to execute
10
+ * @param background - Whether to run the command in the background
11
+ */
12
+ bash: {
13
+ description: "Executes shell commands in a Daytona sandbox",
14
+ args: {
15
+ command: z.string(),
16
+ background: z.boolean().optional(),
17
+ },
18
+ async execute(args, ctx) {
19
+ const sessionId = ctx.sessionID;
20
+ const sandbox = await sessionManager.getSandbox(sessionId, projectId, worktree);
21
+ if (args.background) {
22
+ // Run command in background using session-based execution
23
+ const execSessionId = `exec-session-${sessionId}`;
24
+ // Create session if it doesn't exist
25
+ try {
26
+ await sandbox.process.getSession(execSessionId);
27
+ }
28
+ catch {
29
+ await sandbox.process.createSession(execSessionId);
30
+ }
31
+ // Execute command asynchronously in the session
32
+ const result = await sandbox.process.executeSessionCommand(execSessionId, {
33
+ command: args.command,
34
+ runAsync: true,
35
+ });
36
+ return `Command started in background (cmdId: ${result.cmdId})`;
37
+ }
38
+ else {
39
+ const result = await sandbox.process.executeCommand(args.command);
40
+ return `Exit code: ${result.exitCode}\n${result.result}`;
41
+ }
42
+ },
43
+ },
44
+ /**
45
+ * Reads and returns the contents of a file from the sandbox
46
+ * @param filePath - Path to the file to read
47
+ */
48
+ read: {
49
+ description: "Reads file from Daytona sandbox",
50
+ args: {
51
+ filePath: z.string(),
52
+ },
53
+ async execute(args, ctx) {
54
+ const sandbox = await sessionManager.getSandbox(ctx.sessionID, projectId, worktree);
55
+ const buffer = await sandbox.fs.downloadFile(args.filePath);
56
+ const decoder = new TextDecoder();
57
+ return decoder.decode(buffer);
58
+ },
59
+ },
60
+ /**
61
+ * Writes content to a file in the sandbox, creating it if it doesn't exist
62
+ * @param filePath - Path to the file to write
63
+ * @param content - Content to write to the file
64
+ */
65
+ write: {
66
+ description: "Writes content to file in Daytona sandbox",
67
+ args: {
68
+ filePath: z.string(),
69
+ content: z.string(),
70
+ },
71
+ async execute(args, ctx) {
72
+ const sandbox = await sessionManager.getSandbox(ctx.sessionID, projectId, worktree);
73
+ await sandbox.fs.uploadFile(Buffer.from(args.content), args.filePath);
74
+ return `Written ${args.content.length} bytes to ${args.filePath}`;
75
+ },
76
+ },
77
+ /**
78
+ * Replaces the first occurrence of a text pattern in a file
79
+ * @param filePath - Path to the file to edit
80
+ * @param oldString - Text to search for
81
+ * @param newString - Text to replace with
82
+ */
83
+ edit: {
84
+ description: "Replaces text in a file in Daytona sandbox",
85
+ args: {
86
+ filePath: z.string(),
87
+ oldString: z.string(),
88
+ newString: z.string(),
89
+ },
90
+ async execute(args, ctx) {
91
+ const sandbox = await sessionManager.getSandbox(ctx.sessionID, projectId, worktree);
92
+ const buffer = await sandbox.fs.downloadFile(args.filePath);
93
+ const decoder = new TextDecoder();
94
+ const content = decoder.decode(buffer);
95
+ const newContent = content.replace(args.oldString, args.newString);
96
+ await sandbox.fs.uploadFile(Buffer.from(newContent), args.filePath);
97
+ return `Edited ${args.filePath}`;
98
+ },
99
+ },
100
+ /**
101
+ * Applies multiple text replacements to a file atomically
102
+ * @param filePath - Path to the file to edit
103
+ * @param edits - Array of {oldString, newString} pairs to apply
104
+ */
105
+ multiedit: {
106
+ description: "Applies multiple edits to a file in Daytona sandbox atomically",
107
+ args: {
108
+ filePath: z.string(),
109
+ edits: z.array(z.object({
110
+ oldString: z.string(),
111
+ newString: z.string(),
112
+ })),
113
+ },
114
+ async execute(args, ctx) {
115
+ const sandbox = await sessionManager.getSandbox(ctx.sessionID, projectId, worktree);
116
+ const buffer = await sandbox.fs.downloadFile(args.filePath);
117
+ const decoder = new TextDecoder();
118
+ let content = decoder.decode(buffer);
119
+ for (const edit of args.edits) {
120
+ content = content.replace(edit.oldString, edit.newString);
121
+ }
122
+ await sandbox.fs.uploadFile(Buffer.from(content), args.filePath);
123
+ return `Applied ${args.edits.length} edits to ${args.filePath}`;
124
+ },
125
+ },
126
+ /**
127
+ * Patches a file by replacing a code snippet with a new one
128
+ * @param filePath - Path to the file to patch
129
+ * @param oldSnippet - Code snippet to search for
130
+ * @param newSnippet - Code snippet to replace with
131
+ */
132
+ patch: {
133
+ description: "Patches a file with a code snippet in Daytona sandbox",
134
+ args: {
135
+ filePath: z.string(),
136
+ oldSnippet: z.string(),
137
+ newSnippet: z.string(),
138
+ },
139
+ async execute(args, ctx) {
140
+ const sandbox = await sessionManager.getSandbox(ctx.sessionID, projectId, worktree);
141
+ const buffer = await sandbox.fs.downloadFile(args.filePath);
142
+ const decoder = new TextDecoder();
143
+ const content = decoder.decode(buffer);
144
+ const newContent = content.replace(args.oldSnippet, args.newSnippet);
145
+ await sandbox.fs.uploadFile(Buffer.from(newContent), args.filePath);
146
+ return `Patched ${args.filePath}`;
147
+ },
148
+ },
149
+ /**
150
+ * Lists files and directories in the specified path (or working directory)
151
+ * @param dirPath - Optional directory path to list (defaults to working directory)
152
+ */
153
+ ls: {
154
+ description: "Lists files in a directory in Daytona sandbox",
155
+ args: {
156
+ dirPath: z.string().optional(),
157
+ },
158
+ async execute(args, ctx) {
159
+ const sandbox = await sessionManager.getSandbox(ctx.sessionID, projectId, worktree);
160
+ const workDir = await sandbox.getWorkDir();
161
+ const path = args.dirPath || workDir;
162
+ const files = await sandbox.fs.listFiles(path);
163
+ return files.map((f) => f.name).join('\n');
164
+ },
165
+ },
166
+ /**
167
+ * Searches for files matching a glob pattern in the sandbox
168
+ * @param pattern - Glob pattern to match files (e.g., "**\/*.ts")
169
+ */
170
+ glob: {
171
+ description: "Searches for files matching a pattern in Daytona sandbox",
172
+ args: {
173
+ pattern: z.string(),
174
+ },
175
+ async execute(args, ctx) {
176
+ const sandbox = await sessionManager.getSandbox(ctx.sessionID, projectId, worktree);
177
+ const workDir = await sandbox.getWorkDir();
178
+ const result = await sandbox.fs.searchFiles(workDir, args.pattern);
179
+ return result.files.join('\n');
180
+ },
181
+ },
182
+ /**
183
+ * Searches for text patterns in files and returns matching lines
184
+ * @param pattern - Text pattern to search for
185
+ */
186
+ grep: {
187
+ description: "Searches for text pattern in files in Daytona sandbox",
188
+ args: {
189
+ pattern: z.string(),
190
+ },
191
+ async execute(args, ctx) {
192
+ const sandbox = await sessionManager.getSandbox(ctx.sessionID, projectId, worktree);
193
+ const workDir = await sandbox.getWorkDir();
194
+ const matches = await sandbox.fs.findFiles(workDir, args.pattern);
195
+ return matches.map((m) => `${m.file}:${m.line}: ${m.content}`).join('\n');
196
+ },
197
+ },
198
+ /**
199
+ * Performs LSP (Language Server Protocol) operations for code intelligence (not yet implemented)
200
+ * @param op - LSP operation to perform
201
+ * @param filePath - Path to the file
202
+ * @param line - Line number
203
+ */
204
+ lsp: {
205
+ description: "LSP operation in Daytona sandbox (code intelligence)",
206
+ args: {
207
+ op: z.string(),
208
+ filePath: z.string(),
209
+ line: z.number(),
210
+ },
211
+ async execute(args, ctx) {
212
+ return `LSP operations are not yet implemented in the Daytona plugin.`;
213
+ },
214
+ },
215
+ /**
216
+ * Gets a preview URL for the Daytona sandbox
217
+ * @param port - Port number to preview
218
+ */
219
+ getPreviewURL: {
220
+ description: "Gets a preview URL for the Daytona sandbox",
221
+ args: {
222
+ port: z.number(),
223
+ },
224
+ async execute(args, ctx) {
225
+ const sandbox = await sessionManager.getSandbox(ctx.sessionID, projectId, worktree);
226
+ const previewLink = await sandbox.getPreviewLink(args.port);
227
+ return `Sandbox Preview URL: ${previewLink.url}`;
228
+ },
229
+ },
230
+ };
231
+ }
232
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../.opencode/plugin/daytona/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Type definitions and constants for the Daytona OpenCode plugin
3
+ */
4
+ import type { Sandbox } from "@daytonaio/sdk";
5
+ export type EventSessionDeleted = {
6
+ type: "session.deleted";
7
+ properties: {
8
+ info: {
9
+ id: string;
10
+ };
11
+ };
12
+ };
13
+ export declare const EVENT_TYPE_SESSION_DELETED = "session.deleted";
14
+ export type LogLevel = 'INFO' | 'ERROR' | 'WARN';
15
+ export type SandboxInfo = {
16
+ id: string;
17
+ };
18
+ export type SessionInfo = {
19
+ sandboxId: string;
20
+ created: number;
21
+ lastAccessed: number;
22
+ };
23
+ export type ProjectSessionData = {
24
+ projectId: string;
25
+ worktree: string;
26
+ sessions: Record<string, SessionInfo>;
27
+ };
28
+ export type SessionSandboxMap = Map<string, Sandbox | SandboxInfo>;
29
+ export declare const LOG_LEVEL_INFO: LogLevel;
30
+ export declare const LOG_LEVEL_ERROR: LogLevel;
31
+ export declare const LOG_LEVEL_WARN: LogLevel;
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../.opencode/plugin/daytona/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAI9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE;QACV,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;KACtB,CAAC;CACH,CAAC;AAIF,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAI5D,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;AAInE,eAAO,MAAM,cAAc,EAAE,QAAiB,CAAC;AAC/C,eAAO,MAAM,eAAe,EAAE,QAAkB,CAAC;AACjD,eAAO,MAAM,cAAc,EAAE,QAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Type definitions and constants for the Daytona OpenCode plugin
3
+ */
4
+ // OpenCode constants
5
+ export const EVENT_TYPE_SESSION_DELETED = 'session.deleted';
6
+ // Daytona plugin constants
7
+ export const LOG_LEVEL_INFO = 'INFO';
8
+ export const LOG_LEVEL_ERROR = 'ERROR';
9
+ export const LOG_LEVEL_WARN = 'WARN';
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../.opencode/plugin/daytona/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,qBAAqB;AAErB,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAwB5D,2BAA2B;AAE3B,MAAM,CAAC,MAAM,cAAc,GAAa,MAAM,CAAC;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAa,OAAO,CAAC;AACjD,MAAM,CAAC,MAAM,cAAc,GAAa,MAAM,CAAC"}
@@ -1,26 +1,6 @@
1
1
  /**
2
- * OpenCode Plugin: Daytona Sandbox Integration
3
- *
4
- * OpenCode plugins extend the AI coding assistant by adding custom tools, handling events,
5
- * and modifying behavior. Plugins are TypeScript/JavaScript modules that export functions
6
- * which return hooks for various lifecycle events.
7
- *
8
- * This plugin integrates Daytona sandboxes with OpenCode, providing isolated development
9
- * environments for each session. It adds custom tools for file operations, command execution,
10
- * and search within sandboxes, and automatically cleans up resources when sessions end.
11
- *
12
- * Learn more: https://opencode.ai/docs/plugins/
2
+ * Main entry point for the OpenCode Daytona plugin
3
+ * Re-exports all plugin components from the daytona module
13
4
  */
14
- import { type Plugin } from "@opencode-ai/plugin";
15
- export type EventSessionDeleted = {
16
- type: "session.deleted";
17
- properties: {
18
- info: {
19
- id: string;
20
- };
21
- };
22
- };
23
- export declare const CustomToolsPlugin: Plugin;
24
- export declare const DaytonaSessionCleanupPlugin: Plugin;
25
- export declare const SystemTransformPlugin: Plugin;
5
+ export * from './daytona/index.js';
26
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../.opencode/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,MAAM,EAAsC,MAAM,qBAAqB,CAAA;AASrF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE;QACR,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;KACxB,CAAC;CACL,CAAC;AAoKF,eAAO,MAAM,iBAAiB,EAAE,MA+O/B,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,MAYzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAanC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../.opencode/plugin/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,oBAAoB,CAAC"}