@better-agent/plugins 0.1.0-beta.1 → 0.1.0-beta.2

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.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { Plugin, PluginGuardMode } from "@better-agent/core";
1
+ import { Plugin, PluginGuardMode, ToolApprovalConfig } from "@better-agent/core";
2
2
 
3
3
  //#region src/auth/types.d.ts
4
4
  /** Configuration for `authPlugin`. */
@@ -186,5 +186,357 @@ type RateLimitPluginConfig = {
186
186
  */
187
187
  declare const rateLimitPlugin: (config: RateLimitPluginConfig) => Plugin;
188
188
  //#endregion
189
- export { AuthPluginConfig, IpAllowlistPluginConfig, LogEntry, LoggingPluginConfig, RateLimitBucket, RateLimitPluginConfig, RateLimitRequestContext, RateLimitStorageState, authPlugin, ipAllowlistPlugin, loggingPlugin, rateLimitPlugin };
189
+ //#region src/sandbox/types.d.ts
190
+ /** Options for creating a sandbox. */
191
+ interface SandboxCreateParams {
192
+ /** Template, snapshot, or image to create the sandbox from. */
193
+ template?: string;
194
+ /** Timeout in milliseconds. */
195
+ timeoutMs?: number;
196
+ /** Environment variables for the sandbox. */
197
+ envs?: Record<string, string>;
198
+ /** Metadata or labels for the sandbox. */
199
+ metadata?: Record<string, string>;
200
+ }
201
+ /** Sandbox returned after creation. */
202
+ interface SandboxInstance {
203
+ /** Sandbox id. */
204
+ sandboxId: string;
205
+ }
206
+ /** Preview details for an exposed sandbox port. */
207
+ interface SandboxPreviewInfo {
208
+ /** Preview URL. */
209
+ url: string;
210
+ /** Preview token, if required. */
211
+ token?: string;
212
+ }
213
+ /** Capability flags exposed by a sandbox client. */
214
+ interface SandboxCapabilities {
215
+ /** Supports running commands. */
216
+ commands?: true;
217
+ /** Supports filesystem operations. */
218
+ filesystem?: true;
219
+ /** Supports preview URLs. */
220
+ preview?: true;
221
+ /** Supports terminal sessions. */
222
+ pty?: true;
223
+ /** Supports desktop features. */
224
+ desktop?: true;
225
+ /** Supports MCP-style integrations. */
226
+ mcp?: true;
227
+ /** Supports git helpers. */
228
+ git?: true;
229
+ /** Supports snapshots. */
230
+ snapshots?: true;
231
+ /** Supports persistent volumes. */
232
+ volumes?: true;
233
+ /** Supported lifecycle operations. */
234
+ lifecycle?: {
235
+ /** Can start a sandbox. */start?: true; /** Can stop a sandbox. */
236
+ stop?: true; /** Can archive a sandbox. */
237
+ archive?: true; /** Can resume a sandbox. */
238
+ resume?: true;
239
+ };
240
+ }
241
+ /** Parameters for running a command. */
242
+ interface SandboxCommandParams {
243
+ /** Sandbox id to target. */
244
+ sandboxId: string;
245
+ /** Command to run. */
246
+ cmd: string;
247
+ /** Working directory for the command. */
248
+ cwd?: string;
249
+ /** Timeout in milliseconds. */
250
+ timeoutMs?: number;
251
+ /** Environment variables for the command. */
252
+ envs?: Record<string, string>;
253
+ }
254
+ /** Result returned by a command. */
255
+ interface SandboxCommandResult {
256
+ /** Command exit code. */
257
+ exitCode?: number;
258
+ /** Command stdout. */
259
+ stdout?: string;
260
+ /** Command stderr. */
261
+ stderr?: string;
262
+ /** Process id, if available. */
263
+ pid?: number;
264
+ }
265
+ /** Parameters for reading a file. */
266
+ interface SandboxReadFileParams {
267
+ /** Sandbox id to target. */
268
+ sandboxId: string;
269
+ /** Path inside the sandbox. */
270
+ path: string;
271
+ }
272
+ /** Parameters for writing a file. */
273
+ interface SandboxWriteFileParams {
274
+ /** Sandbox id to target. */
275
+ sandboxId: string;
276
+ /** Path inside the sandbox. */
277
+ path: string;
278
+ /** File contents to write. */
279
+ content: string;
280
+ }
281
+ /** Directory entry returned by `listFiles()`. */
282
+ interface SandboxFileEntry {
283
+ /** Entry name. */
284
+ name: string;
285
+ /** Entry path. */
286
+ path: string;
287
+ /** Entry type, if available. */
288
+ type?: string;
289
+ }
290
+ /** Parameters for listing a directory. */
291
+ interface SandboxListFilesParams {
292
+ /** Sandbox id to target. */
293
+ sandboxId: string;
294
+ /** Directory to list. */
295
+ path: string;
296
+ }
297
+ /** Parameters for creating a directory. */
298
+ interface SandboxMakeDirParams {
299
+ /** Sandbox id to target. */
300
+ sandboxId: string;
301
+ /** Directory to create. */
302
+ path: string;
303
+ }
304
+ /** Parameters for removing a file or directory. */
305
+ interface SandboxRemovePathParams {
306
+ /** Sandbox id to target. */
307
+ sandboxId: string;
308
+ /** Path to remove. */
309
+ path: string;
310
+ }
311
+ /** Parameters for exposing a sandbox port. */
312
+ interface SandboxGetHostParams {
313
+ /** Sandbox id to target. */
314
+ sandboxId: string;
315
+ /** Port to expose. */
316
+ port: number;
317
+ }
318
+ /** Parameters for deleting a sandbox. */
319
+ interface SandboxKillParams {
320
+ /** Sandbox id to target. */
321
+ sandboxId: string;
322
+ }
323
+ /** Optional lifecycle methods for richer sandbox providers. */
324
+ interface SandboxLifecycleClient {
325
+ /** Start a stopped sandbox. */
326
+ startSandbox?(params: {
327
+ /** Sandbox id to target. */sandboxId: string; /** Timeout in milliseconds. */
328
+ timeoutMs?: number;
329
+ }): Promise<void>;
330
+ /** Stop a running sandbox. */
331
+ stopSandbox?(params: {
332
+ /** Sandbox id to target. */sandboxId: string; /** Timeout in milliseconds. */
333
+ timeoutMs?: number; /** Force the stop when supported. */
334
+ force?: boolean;
335
+ }): Promise<void>;
336
+ /** Archive a sandbox. */
337
+ archiveSandbox?(params: {
338
+ sandboxId: string;
339
+ }): Promise<void>;
340
+ }
341
+ /** Optional terminal methods for richer sandbox providers. */
342
+ interface SandboxPTYClient {
343
+ /** Create a terminal session. */
344
+ createSession?(params: {
345
+ /** Sandbox id to target. */sandboxId: string; /** Terminal session id. */
346
+ sessionId: string; /** Working directory for the session. */
347
+ cwd?: string; /** Terminal width in columns. */
348
+ cols?: number; /** Terminal height in rows. */
349
+ rows?: number; /** Environment variables for the session. */
350
+ envs?: Record<string, string>; /** Called when terminal output is received. */
351
+ onData?: (data: Uint8Array) => Promise<void> | void;
352
+ }): Promise<{
353
+ /** Session id. */sessionId: string; /** Final exit code, if available. */
354
+ exitCode?: number; /** Error message, if setup fails. */
355
+ error?: string;
356
+ }>;
357
+ }
358
+ /** Optional desktop methods for richer sandbox providers. */
359
+ interface SandboxDesktopClient {
360
+ /** Start a desktop session for one sandbox. */
361
+ startDesktop?(params: {
362
+ sandboxId: string;
363
+ }): Promise<void>;
364
+ /** Stop a desktop session for one sandbox. */
365
+ stopDesktop?(params: {
366
+ sandboxId: string;
367
+ }): Promise<void>;
368
+ /** Capture a screenshot from the active desktop session. */
369
+ screenshot?(params: {
370
+ sandboxId: string;
371
+ }): Promise<{
372
+ /** Screenshot data. */data: string; /** Screenshot mime type, if available. */
373
+ mimeType?: string;
374
+ }>;
375
+ }
376
+ /** Sandbox client used by `sandboxPlugin`. */
377
+ interface SandboxClient {
378
+ /** Provider name. */
379
+ provider?: string;
380
+ /** Capability metadata. */
381
+ capabilities?: SandboxCapabilities;
382
+ /** Create a sandbox. */
383
+ createSandbox(params?: SandboxCreateParams): Promise<SandboxInstance>;
384
+ /** Run a command. */
385
+ runCommand(params: SandboxCommandParams): Promise<SandboxCommandResult>;
386
+ /** Read a file. */
387
+ readFile(params: SandboxReadFileParams): Promise<string>;
388
+ /** Write a file. */
389
+ writeFile(params: SandboxWriteFileParams): Promise<{
390
+ /** Final path. */path: string;
391
+ }>;
392
+ /** List directory entries. */
393
+ listFiles(params: SandboxListFilesParams): Promise<SandboxFileEntry[]>;
394
+ /** Create a directory. */
395
+ makeDir(params: SandboxMakeDirParams): Promise<{
396
+ /** Whether the directory was created. */created: boolean;
397
+ }>;
398
+ /** Remove a file or directory. */
399
+ removePath(params: SandboxRemovePathParams): Promise<void>;
400
+ /** Expose a port as a preview URL. */
401
+ getHost(params: SandboxGetHostParams): Promise<string | SandboxPreviewInfo>;
402
+ /** Delete a sandbox. */
403
+ killSandbox(params: SandboxKillParams): Promise<void>;
404
+ /** Optional lifecycle extensions. */
405
+ lifecycle?: SandboxLifecycleClient;
406
+ /** Optional PTY extensions. */
407
+ pty?: SandboxPTYClient;
408
+ /** Optional desktop extensions. */
409
+ desktop?: SandboxDesktopClient;
410
+ }
411
+ /** Store for reusable sandbox ids. */
412
+ interface SandboxSessionStore {
413
+ /** Read the sandbox id for a session key. */
414
+ get(key: string): Promise<string | null>;
415
+ /** Store a sandbox id for a session key. */
416
+ set(key: string, sandboxId: string): Promise<void>;
417
+ /** Delete the sandbox id for a session key. */
418
+ delete(key: string): Promise<void>;
419
+ }
420
+ /** Context passed to `sessionKey`. */
421
+ interface SandboxSessionKeyContext {
422
+ /** Run id. */
423
+ runId: string;
424
+ /** Agent name. */
425
+ agentName: string;
426
+ /** Conversation id, if available. */
427
+ conversationId?: string;
428
+ /** Tool name, for example `sandbox_exec`. */
429
+ toolName: string;
430
+ }
431
+ /** Approval settings for sandbox tools. */
432
+ interface SandboxToolApprovals {
433
+ /** Approval policy for `*_exec`. */
434
+ exec?: ToolApprovalConfig;
435
+ /** Approval policy for `*_write_file`. */
436
+ writeFile?: ToolApprovalConfig;
437
+ /** Approval policy for `*_remove_path`. */
438
+ removePath?: ToolApprovalConfig;
439
+ /** Approval policy for `*_kill`. */
440
+ killSandbox?: ToolApprovalConfig;
441
+ }
442
+ /** Configuration for `sandboxPlugin`. */
443
+ interface SandboxPluginConfig {
444
+ /** Plugin id. */
445
+ id?: string;
446
+ /** Tool name prefix. Defaults to `"sandbox"`. */
447
+ prefix?: string;
448
+ /** Sandbox client to use. */
449
+ client: SandboxClient;
450
+ /** Store for reusable sandbox ids. */
451
+ store?: SandboxSessionStore;
452
+ /**
453
+ * Controls sandbox reuse for each tool call.
454
+ *
455
+ * When omitted, the plugin reuses one sandbox per `conversationId`.
456
+ * Return a non-empty string to reuse a sandbox under that key.
457
+ * Return `null` or `undefined` to disable reuse for that call.
458
+ */
459
+ sessionKey?: (ctx: SandboxSessionKeyContext) => string | null | undefined;
460
+ /** Default sandbox creation options. */
461
+ defaults?: SandboxCreateParams;
462
+ /** Approval settings for risky sandbox tools. */
463
+ approvals?: SandboxToolApprovals;
464
+ }
465
+ /** Configuration for the built-in E2B sandbox client. */
466
+ interface E2BSandboxClientConfig extends SandboxCreateParams {
467
+ /** API key used to authenticate with E2B. */
468
+ apiKey?: string;
469
+ /** Access token used instead of an API key. */
470
+ accessToken?: string;
471
+ /** Custom E2B domain or API host. */
472
+ domain?: string;
473
+ /** SDK request timeout in milliseconds. */
474
+ requestTimeoutMs?: number;
475
+ }
476
+ /** Configuration for the Daytona sandbox client. */
477
+ interface DaytonaSandboxClientConfig extends SandboxCreateParams {
478
+ /** API key used to authenticate with Daytona. */
479
+ apiKey?: string;
480
+ /** Custom Daytona API base URL. */
481
+ apiUrl?: string;
482
+ /** Daytona target or region. */
483
+ target?: string;
484
+ /** Default language or runtime. */
485
+ language?: string;
486
+ /** Explicit snapshot to create from. */
487
+ snapshot?: string;
488
+ /** Explicit image to create from. */
489
+ image?: string;
490
+ /** Whether previews should be public. */
491
+ public?: boolean;
492
+ /** Auto-stop interval in provider-defined units. */
493
+ autoStopInterval?: number;
494
+ /** Auto-archive interval in provider-defined units. */
495
+ autoArchiveInterval?: number;
496
+ /** Auto-delete interval in provider-defined units. */
497
+ autoDeleteInterval?: number;
498
+ /** For Daytona, whether `template` should be treated as a `snapshot` or `image`. */
499
+ templateKind?: "snapshot" | "image";
500
+ }
501
+ //#endregion
502
+ //#region src/sandbox/daytona.d.ts
503
+ /** Creates a sandbox client backed by the Daytona SDK. */
504
+ declare function createDaytonaSandboxClient(config?: DaytonaSandboxClientConfig): SandboxClient;
505
+ //#endregion
506
+ //#region src/sandbox/e2b.d.ts
507
+ /** Creates a sandbox client backed by the E2B SDK. */
508
+ declare function createE2BSandboxClient(config?: E2BSandboxClientConfig): SandboxClient;
509
+ //#endregion
510
+ //#region src/sandbox/memory-store.d.ts
511
+ /** Creates an in-memory sandbox session store. */
512
+ declare function createMemorySandboxSessionStore(): SandboxSessionStore;
513
+ //#endregion
514
+ //#region src/sandbox/plugin.d.ts
515
+ /**
516
+ * Adds sandbox tools.
517
+ *
518
+ * By default, the plugin reuses one sandbox per `conversationId`.
519
+ * Use `sessionKey` to customize reuse, or return `null`/`undefined`
520
+ * to disable reuse for a specific tool call.
521
+ *
522
+ * Uses an in-memory store by default.
523
+ *
524
+ * @example
525
+ * ```ts
526
+ * import { sandboxPlugin, createE2BSandboxClient } from "@better-agent/plugins";
527
+ *
528
+ * const plugin = sandboxPlugin({
529
+ * client: createE2BSandboxClient({
530
+ * apiKey: process.env.E2B_API_KEY,
531
+ * }),
532
+ * defaults: {
533
+ * template: "base",
534
+ * timeoutMs: 10 * 60_000,
535
+ * },
536
+ * });
537
+ * ```
538
+ */
539
+ declare const sandboxPlugin: (config: SandboxPluginConfig) => Plugin;
540
+ //#endregion
541
+ export { AuthPluginConfig, type DaytonaSandboxClientConfig, type E2BSandboxClientConfig, IpAllowlistPluginConfig, LogEntry, LoggingPluginConfig, RateLimitBucket, RateLimitPluginConfig, RateLimitRequestContext, RateLimitStorageState, type SandboxCapabilities, type SandboxClient, type SandboxCommandParams, type SandboxCommandResult, type SandboxCreateParams, type SandboxDesktopClient, type SandboxFileEntry, type SandboxGetHostParams, type SandboxInstance, type SandboxKillParams, type SandboxLifecycleClient, type SandboxListFilesParams, type SandboxMakeDirParams, type SandboxPTYClient, type SandboxPluginConfig, type SandboxPreviewInfo, type SandboxReadFileParams, type SandboxRemovePathParams, type SandboxSessionKeyContext, type SandboxSessionStore, type SandboxToolApprovals, type SandboxWriteFileParams, authPlugin, createDaytonaSandboxClient, createE2BSandboxClient, createMemorySandboxSessionStore, ipAllowlistPlugin, loggingPlugin, rateLimitPlugin, sandboxPlugin };
190
542
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/auth/types.ts","../src/auth/plugin.ts","../src/ip-allowlist/types.ts","../src/ip-allowlist/plugin.ts","../src/logging/types.ts","../src/logging/plugin.ts","../src/rate-limit/types.ts","../src/rate-limit/plugin.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/auth/types.ts","../src/auth/plugin.ts","../src/ip-allowlist/types.ts","../src/ip-allowlist/plugin.ts","../src/logging/types.ts","../src/logging/plugin.ts","../src/rate-limit/types.ts","../src/rate-limit/plugin.ts","../src/sandbox/types.ts","../src/sandbox/daytona.ts","../src/sandbox/e2b.ts","../src/sandbox/memory-store.ts","../src/sandbox/plugin.ts"],"mappings":"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"}