@evolvingmachines/daytona 0.0.20 → 0.0.21
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.
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var sdk=require('@daytonaio/sdk');var
|
|
2
|
-
exports.DaytonaProvider=
|
|
1
|
+
'use strict';var sdk=require('@daytonaio/sdk');var b={"evolve-all":"evolvingmachines/evolve-all:latest"},w=new Set([".xlsx",".xls",".docx",".doc",".pptx",".ppt",".pdf",".zip",".tar",".gz",".7z",".rar",".png",".jpg",".jpeg",".gif",".webp",".ico",".bmp",".mp3",".wav",".ogg",".flac",".aac",".mp4",".avi",".mov",".mkv",".webm",".woff",".woff2",".ttf",".otf",".eot",".exe",".dll",".so",".dylib",".sqlite",".db",".pickle",".pkl",".parquet"]);function S(r){let e=r.substring(r.lastIndexOf(".")).toLowerCase();return w.has(e)}function h(r){let e=r.lastIndexOf("/");return e>0?r.substring(0,e):"/"}function v(r){let e=r.lastIndexOf("/");return e>=0?r.substring(e+1):r}function x(r,e){return e?`cd '${e.replace(/'/g,"'\\''")}' && ${r}`:r}var f=class{constructor(e){this.sandbox=e;}async run(e,t){let s=t?.timeoutMs?Math.floor(t.timeoutMs/1e3):void 0;if(t?.onStdout||t?.onStderr){let o=`run-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await this.sandbox.process.createSession(o);try{let a=await this.sandbox.process.executeSessionCommand(o,{command:x(e,t?.cwd),runAsync:!1},s),d=a.cmdId;return d&&await this.sandbox.process.getSessionCommandLogs(o,d,t.onStdout||(()=>{}),t.onStderr||(()=>{})),{exitCode:a.exitCode??0,stdout:a.stdout??a.output??"",stderr:a.stderr??""}}finally{try{await this.sandbox.process.deleteSession(o);}catch{}}}let n=await this.sandbox.process.executeCommand(e,t?.cwd,t?.envs,s);return {exitCode:n.exitCode,stdout:n.result||"",stderr:""}}async spawn(e,t){let s=`evolve-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await this.sandbox.process.createSession(s);let n=t?.timeoutMs?Math.floor(t.timeoutMs/1e3):void 0,o=Date.now(),a=t?.timeoutMs,c=(await this.sandbox.process.executeSessionCommand(s,{command:x(e,t?.cwd),runAsync:true},n)).cmdId;c&&(t?.onStdout||t?.onStderr)&&this.sandbox.process.getSessionCommandLogs(s,c,t.onStdout||(()=>{}),t.onStderr||(()=>{})).catch(()=>{});let m=this.sandbox;return {processId:s,wait:async()=>{if(!c)return {exitCode:0,stdout:"",stderr:""};for(;;){if(a&&Date.now()-o>=a){try{await m.process.deleteSession(s);}catch{}return {exitCode:-1,stdout:"",stderr:"operation timed out"}}try{let i=await m.process.getSessionCommand(s,c);if(i.exitCode!==void 0)try{let u=await m.process.getSessionCommandLogs(s,c);return {exitCode:i.exitCode,stdout:u.stdout??u.output??"",stderr:u.stderr??""}}catch{return {exitCode:i.exitCode,stdout:"",stderr:""}}}catch(i){if((i instanceof Error?i.message.toLowerCase():String(i).toLowerCase()).includes("not found"))return {exitCode:-1,stdout:"",stderr:"session terminated"};throw i}await new Promise(i=>setTimeout(i,500));}},kill:async()=>{try{return await m.process.deleteSession(s),!0}catch{return false}}}}async list(){try{return (await this.sandbox.process.listSessions()).map(t=>({processId:t.sessionId||"",cmd:"",args:[],envs:{}}))}catch{return []}}async kill(e){try{return await this.sandbox.process.deleteSession(e),!0}catch{return false}}},g=class{constructor(e){this.sandbox=e;}async read(e){let t=await this.sandbox.fs.downloadFile(e);return S(e)?new Uint8Array(t):t.toString("utf-8")}async write(e,t){let s;if(typeof t=="string")s=Buffer.from(t,"utf-8");else if(Buffer.isBuffer(t))s=t;else if(t instanceof ArrayBuffer)s=Buffer.from(t);else if(t instanceof Uint8Array)s=Buffer.from(t);else throw new Error(`Unsupported content type: ${typeof t}`);await this.sandbox.fs.uploadFile(s,e);}async writeBatch(e){let t=e.map(s=>{let n;if(typeof s.data=="string")n=Buffer.from(s.data,"utf-8");else if(Buffer.isBuffer(s.data))n=s.data;else if(s.data instanceof ArrayBuffer)n=Buffer.from(s.data);else if(s.data instanceof Uint8Array)n=Buffer.from(s.data);else throw new Error(`Unsupported content type: ${typeof s.data}`);return {source:n,destination:s.path}});await this.sandbox.fs.uploadFiles(t);}async makeDir(e){await this.sandbox.fs.createFolder(e,"755");}async exists(e){try{let t=h(e),s=v(e);return (await this.sandbox.fs.listFiles(t)).some(o=>o.name===s)}catch{return false}}async list(e){return (await this.sandbox.fs.listFiles(e)).map(s=>({name:s.name,path:e.endsWith("/")?`${e}${s.name}`:`${e}/${s.name}`,type:s.isDir?"dir":"file"}))}async remove(e){await this.sandbox.fs.deleteFile(e,true);}async rename(e,t){await this.sandbox.fs.moveFiles(e,t);}},l=class{constructor(e){this.sandbox=e;this.commands=new f(e),this.files=new g(e);}commands;files;get sandboxId(){return this.sandbox.id}async getHost(e){return (await this.sandbox.getPreviewLink(e)).url}async isRunning(){return this.sandbox.state==="started"}async getInfo(){return {sandboxId:this.sandbox.id,image:this.sandbox.snapshot||"unknown",name:this.sandbox.name,metadata:this.sandbox.labels||{},startedAt:new Date().toISOString()}}async kill(){await this.sandbox.delete();}async pause(){await this.sandbox.stop();}},p=class{providerType="daytona";name="Daytona";client;defaultTimeoutMs;constructor(e){this.client=new sdk.Daytona({apiKey:e.apiKey,apiUrl:e.apiUrl,target:e.target}),this.defaultTimeoutMs=e.defaultTimeoutMs??36e5;}async create(e){let t=e.timeoutMs??this.defaultTimeoutMs,s=Math.max(1,Math.ceil(t/6e4)),n=e.image||"evolve-all",o;try{let a=await this.client.snapshot.get(n);if(a&&a.state==="active")console.log(`[daytona] Using cached snapshot: ${n}`),o=await this.client.create({snapshot:n,envVars:e.envs,labels:e.metadata,autoStopInterval:s},{timeout:600});else throw new Error("Snapshot not active")}catch{let a=b[n];if(!a)throw new Error(`Unknown image "${n}" and no public fallback available. Available images: ${Object.keys(b).join(", ")}`);console.log(`[daytona] Snapshot "${n}" not found, creating from image: ${a}`),console.log("[daytona] First run may take a few minutes (image will be cached for future runs)..."),o=await this.client.create({image:a,envVars:e.envs,labels:e.metadata,autoStopInterval:s,resources:{cpu:e.resources?.cpu??4,memory:e.resources?.memory??4,disk:e.resources?.disk??10}},{timeout:600,onSnapshotCreateLogs:d=>console.log(`[daytona] ${d}`)});}return e.workingDirectory&&await o.fs.createFolder(e.workingDirectory,"755"),new l(o)}async connect(e,t){let s=await this.client.get(e);return s.state!=="started"&&await s.start(),new l(s)}async list(e){let t=e?.limit??100;return (await this.client.list(e?.metadata,1,t)).items.map(n=>({sandboxId:n.id,image:n.snapshot||"unknown",name:n.name,metadata:n.labels||{},startedAt:new Date().toISOString()}))}};function I(r={}){let e=r.apiKey??process.env.DAYTONA_API_KEY;if(!e)throw new Error("Daytona API key required. Set DAYTONA_API_KEY environment variable or pass apiKey in config. Get your key at https://app.daytona.io/dashboard/keys");return new p({...r,apiKey:e})}
|
|
2
|
+
exports.DaytonaProvider=p;exports.createDaytonaProvider=I;
|
package/dist/index.d.cts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {Daytona}from'@daytonaio/sdk';var
|
|
2
|
-
export{
|
|
1
|
+
import {Daytona}from'@daytonaio/sdk';var b={"evolve-all":"evolvingmachines/evolve-all:latest"},w=new Set([".xlsx",".xls",".docx",".doc",".pptx",".ppt",".pdf",".zip",".tar",".gz",".7z",".rar",".png",".jpg",".jpeg",".gif",".webp",".ico",".bmp",".mp3",".wav",".ogg",".flac",".aac",".mp4",".avi",".mov",".mkv",".webm",".woff",".woff2",".ttf",".otf",".eot",".exe",".dll",".so",".dylib",".sqlite",".db",".pickle",".pkl",".parquet"]);function S(r){let e=r.substring(r.lastIndexOf(".")).toLowerCase();return w.has(e)}function h(r){let e=r.lastIndexOf("/");return e>0?r.substring(0,e):"/"}function v(r){let e=r.lastIndexOf("/");return e>=0?r.substring(e+1):r}function x(r,e){return e?`cd '${e.replace(/'/g,"'\\''")}' && ${r}`:r}var f=class{constructor(e){this.sandbox=e;}async run(e,t){let s=t?.timeoutMs?Math.floor(t.timeoutMs/1e3):void 0;if(t?.onStdout||t?.onStderr){let o=`run-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await this.sandbox.process.createSession(o);try{let a=await this.sandbox.process.executeSessionCommand(o,{command:x(e,t?.cwd),runAsync:!1},s),d=a.cmdId;return d&&await this.sandbox.process.getSessionCommandLogs(o,d,t.onStdout||(()=>{}),t.onStderr||(()=>{})),{exitCode:a.exitCode??0,stdout:a.stdout??a.output??"",stderr:a.stderr??""}}finally{try{await this.sandbox.process.deleteSession(o);}catch{}}}let n=await this.sandbox.process.executeCommand(e,t?.cwd,t?.envs,s);return {exitCode:n.exitCode,stdout:n.result||"",stderr:""}}async spawn(e,t){let s=`evolve-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await this.sandbox.process.createSession(s);let n=t?.timeoutMs?Math.floor(t.timeoutMs/1e3):void 0,o=Date.now(),a=t?.timeoutMs,c=(await this.sandbox.process.executeSessionCommand(s,{command:x(e,t?.cwd),runAsync:true},n)).cmdId;c&&(t?.onStdout||t?.onStderr)&&this.sandbox.process.getSessionCommandLogs(s,c,t.onStdout||(()=>{}),t.onStderr||(()=>{})).catch(()=>{});let m=this.sandbox;return {processId:s,wait:async()=>{if(!c)return {exitCode:0,stdout:"",stderr:""};for(;;){if(a&&Date.now()-o>=a){try{await m.process.deleteSession(s);}catch{}return {exitCode:-1,stdout:"",stderr:"operation timed out"}}try{let i=await m.process.getSessionCommand(s,c);if(i.exitCode!==void 0)try{let u=await m.process.getSessionCommandLogs(s,c);return {exitCode:i.exitCode,stdout:u.stdout??u.output??"",stderr:u.stderr??""}}catch{return {exitCode:i.exitCode,stdout:"",stderr:""}}}catch(i){if((i instanceof Error?i.message.toLowerCase():String(i).toLowerCase()).includes("not found"))return {exitCode:-1,stdout:"",stderr:"session terminated"};throw i}await new Promise(i=>setTimeout(i,500));}},kill:async()=>{try{return await m.process.deleteSession(s),!0}catch{return false}}}}async list(){try{return (await this.sandbox.process.listSessions()).map(t=>({processId:t.sessionId||"",cmd:"",args:[],envs:{}}))}catch{return []}}async kill(e){try{return await this.sandbox.process.deleteSession(e),!0}catch{return false}}},g=class{constructor(e){this.sandbox=e;}async read(e){let t=await this.sandbox.fs.downloadFile(e);return S(e)?new Uint8Array(t):t.toString("utf-8")}async write(e,t){let s;if(typeof t=="string")s=Buffer.from(t,"utf-8");else if(Buffer.isBuffer(t))s=t;else if(t instanceof ArrayBuffer)s=Buffer.from(t);else if(t instanceof Uint8Array)s=Buffer.from(t);else throw new Error(`Unsupported content type: ${typeof t}`);await this.sandbox.fs.uploadFile(s,e);}async writeBatch(e){let t=e.map(s=>{let n;if(typeof s.data=="string")n=Buffer.from(s.data,"utf-8");else if(Buffer.isBuffer(s.data))n=s.data;else if(s.data instanceof ArrayBuffer)n=Buffer.from(s.data);else if(s.data instanceof Uint8Array)n=Buffer.from(s.data);else throw new Error(`Unsupported content type: ${typeof s.data}`);return {source:n,destination:s.path}});await this.sandbox.fs.uploadFiles(t);}async makeDir(e){await this.sandbox.fs.createFolder(e,"755");}async exists(e){try{let t=h(e),s=v(e);return (await this.sandbox.fs.listFiles(t)).some(o=>o.name===s)}catch{return false}}async list(e){return (await this.sandbox.fs.listFiles(e)).map(s=>({name:s.name,path:e.endsWith("/")?`${e}${s.name}`:`${e}/${s.name}`,type:s.isDir?"dir":"file"}))}async remove(e){await this.sandbox.fs.deleteFile(e,true);}async rename(e,t){await this.sandbox.fs.moveFiles(e,t);}},l=class{constructor(e){this.sandbox=e;this.commands=new f(e),this.files=new g(e);}commands;files;get sandboxId(){return this.sandbox.id}async getHost(e){return (await this.sandbox.getPreviewLink(e)).url}async isRunning(){return this.sandbox.state==="started"}async getInfo(){return {sandboxId:this.sandbox.id,image:this.sandbox.snapshot||"unknown",name:this.sandbox.name,metadata:this.sandbox.labels||{},startedAt:new Date().toISOString()}}async kill(){await this.sandbox.delete();}async pause(){await this.sandbox.stop();}},p=class{providerType="daytona";name="Daytona";client;defaultTimeoutMs;constructor(e){this.client=new Daytona({apiKey:e.apiKey,apiUrl:e.apiUrl,target:e.target}),this.defaultTimeoutMs=e.defaultTimeoutMs??36e5;}async create(e){let t=e.timeoutMs??this.defaultTimeoutMs,s=Math.max(1,Math.ceil(t/6e4)),n=e.image||"evolve-all",o;try{let a=await this.client.snapshot.get(n);if(a&&a.state==="active")console.log(`[daytona] Using cached snapshot: ${n}`),o=await this.client.create({snapshot:n,envVars:e.envs,labels:e.metadata,autoStopInterval:s},{timeout:600});else throw new Error("Snapshot not active")}catch{let a=b[n];if(!a)throw new Error(`Unknown image "${n}" and no public fallback available. Available images: ${Object.keys(b).join(", ")}`);console.log(`[daytona] Snapshot "${n}" not found, creating from image: ${a}`),console.log("[daytona] First run may take a few minutes (image will be cached for future runs)..."),o=await this.client.create({image:a,envVars:e.envs,labels:e.metadata,autoStopInterval:s,resources:{cpu:e.resources?.cpu??4,memory:e.resources?.memory??4,disk:e.resources?.disk??10}},{timeout:600,onSnapshotCreateLogs:d=>console.log(`[daytona] ${d}`)});}return e.workingDirectory&&await o.fs.createFolder(e.workingDirectory,"755"),new l(o)}async connect(e,t){let s=await this.client.get(e);return s.state!=="started"&&await s.start(),new l(s)}async list(e){let t=e?.limit??100;return (await this.client.list(e?.metadata,1,t)).items.map(n=>({sandboxId:n.id,image:n.snapshot||"unknown",name:n.name,metadata:n.labels||{},startedAt:new Date().toISOString()}))}};function I(r={}){let e=r.apiKey??process.env.DAYTONA_API_KEY;if(!e)throw new Error("Daytona API key required. Set DAYTONA_API_KEY environment variable or pass apiKey in config. Get your key at https://app.daytona.io/dashboard/keys");return new p({...r,apiKey:e})}
|
|
2
|
+
export{p as DaytonaProvider,I as createDaytonaProvider};
|