@agentuity/core 1.0.32 → 1.0.34
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/env-example.d.ts +11 -0
- package/dist/env-example.d.ts.map +1 -0
- package/dist/env-example.js +70 -0
- package/dist/env-example.js.map +1 -0
- package/dist/index.d.ts +6 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -15
- package/dist/index.js.map +1 -1
- package/dist/services/adapter.d.ts +57 -22
- package/dist/services/adapter.d.ts.map +1 -1
- package/dist/services/adapter.js +52 -1
- package/dist/services/adapter.js.map +1 -1
- package/dist/services/api.d.ts +222 -0
- package/dist/services/api.d.ts.map +1 -0
- package/dist/services/api.js +662 -0
- package/dist/services/api.js.map +1 -0
- package/dist/services/apikey/create.d.ts +34 -0
- package/dist/services/apikey/create.d.ts.map +1 -0
- package/dist/services/apikey/create.js +29 -0
- package/dist/services/apikey/create.js.map +1 -0
- package/dist/services/apikey/delete.d.ts +19 -0
- package/dist/services/apikey/delete.d.ts.map +1 -0
- package/dist/services/apikey/delete.js +19 -0
- package/dist/services/apikey/delete.js.map +1 -0
- package/dist/services/apikey/get.d.ts +45 -0
- package/dist/services/apikey/get.d.ts.map +1 -0
- package/dist/services/apikey/get.js +36 -0
- package/dist/services/apikey/get.js.map +1 -0
- package/dist/services/apikey/index.d.ts +6 -0
- package/dist/services/apikey/index.d.ts.map +1 -0
- package/dist/services/apikey/index.js +6 -0
- package/dist/services/apikey/index.js.map +1 -0
- package/dist/services/apikey/list.d.ts +65 -0
- package/dist/services/apikey/list.d.ts.map +1 -0
- package/dist/services/apikey/list.js +50 -0
- package/dist/services/apikey/list.js.map +1 -0
- package/dist/services/apikey/util.d.ts +23 -0
- package/dist/services/apikey/util.d.ts.map +1 -0
- package/dist/services/apikey/util.js +3 -0
- package/dist/services/apikey/util.js.map +1 -0
- package/dist/services/config.d.ts +22 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +55 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/db/index.d.ts +5 -0
- package/dist/services/db/index.d.ts.map +1 -0
- package/dist/services/db/index.js +5 -0
- package/dist/services/db/index.js.map +1 -0
- package/dist/services/db/logs.d.ts +70 -0
- package/dist/services/db/logs.d.ts.map +1 -0
- package/dist/services/db/logs.js +59 -0
- package/dist/services/db/logs.js.map +1 -0
- package/dist/services/db/query.d.ts +40 -0
- package/dist/services/db/query.d.ts.map +1 -0
- package/dist/services/db/query.js +55 -0
- package/dist/services/db/query.js.map +1 -0
- package/dist/services/db/tables.d.ts +50 -0
- package/dist/services/db/tables.d.ts.map +1 -0
- package/dist/services/db/tables.js +64 -0
- package/dist/services/db/tables.js.map +1 -0
- package/dist/services/db/util.d.ts +31 -0
- package/dist/services/db/util.d.ts.map +1 -0
- package/dist/services/db/util.js +4 -0
- package/dist/services/db/util.js.map +1 -0
- package/dist/services/email/index.d.ts +2 -0
- package/dist/services/email/index.d.ts.map +1 -0
- package/dist/services/email/index.js +2 -0
- package/dist/services/email/index.js.map +1 -0
- package/dist/services/{email.d.ts → email/service.d.ts} +137 -296
- package/dist/services/email/service.d.ts.map +1 -0
- package/dist/services/{email.js → email/service.js} +403 -18
- package/dist/services/email/service.js.map +1 -0
- package/dist/services/env.d.ts +5 -0
- package/dist/services/env.d.ts.map +1 -0
- package/dist/services/env.js +10 -0
- package/dist/services/env.js.map +1 -0
- package/dist/services/{evalrun.d.ts → eval/events.d.ts} +1 -1
- package/dist/services/eval/events.d.ts.map +1 -0
- package/dist/services/{evalrun.js → eval/events.js} +1 -1
- package/dist/services/eval/events.js.map +1 -0
- package/dist/services/eval/get.d.ts +36 -0
- package/dist/services/eval/get.d.ts.map +1 -0
- package/dist/services/eval/get.js +23 -0
- package/dist/services/eval/get.js.map +1 -0
- package/dist/services/eval/index.d.ts +6 -0
- package/dist/services/eval/index.d.ts.map +1 -0
- package/dist/services/eval/index.js +6 -0
- package/dist/services/eval/index.js.map +1 -0
- package/dist/services/eval/list.d.ts +50 -0
- package/dist/services/eval/list.d.ts.map +1 -0
- package/dist/services/eval/list.js +32 -0
- package/dist/services/eval/list.js.map +1 -0
- package/dist/services/eval/run-get.d.ts +48 -0
- package/dist/services/eval/run-get.d.ts.map +1 -0
- package/dist/services/eval/run-get.js +29 -0
- package/dist/services/eval/run-get.js.map +1 -0
- package/dist/services/eval/run-list.d.ts +70 -0
- package/dist/services/eval/run-list.d.ts.map +1 -0
- package/dist/services/eval/run-list.js +42 -0
- package/dist/services/eval/run-list.js.map +1 -0
- package/dist/services/exception.d.ts +28 -9
- package/dist/services/exception.d.ts.map +1 -1
- package/dist/services/exception.js +14 -0
- package/dist/services/exception.js.map +1 -1
- package/dist/services/index.d.ts +26 -12
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +26 -11
- package/dist/services/index.js.map +1 -1
- package/dist/services/keyvalue/index.d.ts +2 -0
- package/dist/services/keyvalue/index.d.ts.map +1 -0
- package/dist/services/keyvalue/index.js +2 -0
- package/dist/services/keyvalue/index.js.map +1 -0
- package/dist/services/{keyvalue.d.ts → keyvalue/service.d.ts} +98 -120
- package/dist/services/keyvalue/service.d.ts.map +1 -0
- package/dist/services/{keyvalue.js → keyvalue/service.js} +182 -12
- package/dist/services/keyvalue/service.js.map +1 -0
- package/dist/services/logger.d.ts +7 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +23 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/machine/index.d.ts +3 -0
- package/dist/services/machine/index.d.ts.map +1 -0
- package/dist/services/machine/index.js +3 -0
- package/dist/services/machine/index.js.map +1 -0
- package/dist/services/machine/machine.d.ts +192 -0
- package/dist/services/machine/machine.d.ts.map +1 -0
- package/dist/services/machine/machine.js +177 -0
- package/dist/services/machine/machine.js.map +1 -0
- package/dist/services/machine/util.d.ts +14 -0
- package/dist/services/machine/util.d.ts.map +1 -0
- package/dist/services/machine/util.js +3 -0
- package/dist/services/machine/util.js.map +1 -0
- package/dist/services/org/env-delete.d.ts +23 -0
- package/dist/services/org/env-delete.d.ts.map +1 -0
- package/dist/services/org/env-delete.js +25 -0
- package/dist/services/org/env-delete.js.map +1 -0
- package/dist/services/org/env-get.d.ts +33 -0
- package/dist/services/org/env-get.d.ts.map +1 -0
- package/dist/services/org/env-get.js +33 -0
- package/dist/services/org/env-get.js.map +1 -0
- package/dist/services/org/env-update.d.ts +24 -0
- package/dist/services/org/env-update.d.ts.map +1 -0
- package/dist/services/org/env-update.js +26 -0
- package/dist/services/org/env-update.js.map +1 -0
- package/dist/services/org/index.d.ts +7 -0
- package/dist/services/org/index.d.ts.map +1 -0
- package/dist/services/org/index.js +7 -0
- package/dist/services/org/index.js.map +1 -0
- package/dist/services/org/list.d.ts +27 -0
- package/dist/services/org/list.d.ts.map +1 -0
- package/dist/services/org/list.js +22 -0
- package/dist/services/org/list.js.map +1 -0
- package/dist/services/org/resources.d.ts +150 -0
- package/dist/services/org/resources.d.ts.map +1 -0
- package/dist/services/org/resources.js +111 -0
- package/dist/services/org/resources.js.map +1 -0
- package/dist/services/org/util.d.ts +45 -0
- package/dist/services/org/util.d.ts.map +1 -0
- package/dist/services/org/util.js +4 -0
- package/dist/services/org/util.js.map +1 -0
- package/dist/services/pagination.d.ts +38 -11
- package/dist/services/pagination.d.ts.map +1 -1
- package/dist/services/pagination.js +30 -1
- package/dist/services/pagination.js.map +1 -1
- package/dist/services/project/agent.d.ts +89 -0
- package/dist/services/project/agent.d.ts.map +1 -0
- package/dist/services/project/agent.js +60 -0
- package/dist/services/project/agent.js.map +1 -0
- package/dist/services/project/create.d.ts +37 -0
- package/dist/services/project/create.d.ts.map +1 -0
- package/dist/services/project/create.js +31 -0
- package/dist/services/project/create.js.map +1 -0
- package/dist/services/project/delete.d.ts +15 -0
- package/dist/services/project/delete.d.ts.map +1 -0
- package/dist/services/project/delete.js +15 -0
- package/dist/services/project/delete.js.map +1 -0
- package/dist/services/project/deploy.d.ts +468 -0
- package/dist/services/project/deploy.d.ts.map +1 -0
- package/dist/services/project/deploy.js +313 -0
- package/dist/services/project/deploy.js.map +1 -0
- package/dist/services/project/deployment.d.ts +237 -0
- package/dist/services/project/deployment.d.ts.map +1 -0
- package/dist/services/project/deployment.js +180 -0
- package/dist/services/project/deployment.js.map +1 -0
- package/dist/services/project/env-delete.d.ts +22 -0
- package/dist/services/project/env-delete.d.ts.map +1 -0
- package/dist/services/project/env-delete.js +29 -0
- package/dist/services/project/env-delete.js.map +1 -0
- package/dist/services/project/env-update.d.ts +31 -0
- package/dist/services/project/env-update.d.ts.map +1 -0
- package/dist/services/project/env-update.js +36 -0
- package/dist/services/project/env-update.js.map +1 -0
- package/dist/services/project/exists.d.ts +25 -0
- package/dist/services/project/exists.d.ts.map +1 -0
- package/dist/services/project/exists.js +45 -0
- package/dist/services/project/exists.js.map +1 -0
- package/dist/services/project/get.d.ts +43 -0
- package/dist/services/project/get.d.ts.map +1 -0
- package/dist/services/project/get.js +36 -0
- package/dist/services/project/get.js.map +1 -0
- package/dist/services/project/hostname.d.ts +25 -0
- package/dist/services/project/hostname.d.ts.map +1 -0
- package/dist/services/project/hostname.js +43 -0
- package/dist/services/project/hostname.js.map +1 -0
- package/dist/services/project/index.d.ts +14 -0
- package/dist/services/project/index.d.ts.map +1 -0
- package/dist/services/project/index.js +14 -0
- package/dist/services/project/index.js.map +1 -0
- package/dist/services/project/list.d.ts +48 -0
- package/dist/services/project/list.d.ts.map +1 -0
- package/dist/services/project/list.js +38 -0
- package/dist/services/project/list.js.map +1 -0
- package/dist/services/project/malware.d.ts +71 -0
- package/dist/services/project/malware.d.ts.map +1 -0
- package/dist/services/project/malware.js +57 -0
- package/dist/services/project/malware.js.map +1 -0
- package/dist/services/project/update-region.d.ts +27 -0
- package/dist/services/project/update-region.d.ts.map +1 -0
- package/dist/services/project/update-region.js +25 -0
- package/dist/services/project/update-region.js.map +1 -0
- package/dist/services/project/util.d.ts +62 -0
- package/dist/services/project/util.d.ts.map +1 -0
- package/dist/services/project/util.js +6 -0
- package/dist/services/project/util.js.map +1 -0
- package/dist/services/queue/analytics.d.ts +261 -0
- package/dist/services/queue/analytics.d.ts.map +1 -0
- package/dist/services/queue/analytics.js +254 -0
- package/dist/services/queue/analytics.js.map +1 -0
- package/dist/services/queue/consumers.d.ts +48 -0
- package/dist/services/queue/consumers.d.ts.map +1 -0
- package/dist/services/queue/consumers.js +43 -0
- package/dist/services/queue/consumers.js.map +1 -0
- package/dist/services/queue/destinations.d.ts +269 -0
- package/dist/services/queue/destinations.d.ts.map +1 -0
- package/dist/services/queue/destinations.js +215 -0
- package/dist/services/queue/destinations.js.map +1 -0
- package/dist/services/queue/dlq.d.ts +170 -0
- package/dist/services/queue/dlq.d.ts.map +1 -0
- package/dist/services/queue/dlq.js +166 -0
- package/dist/services/queue/dlq.js.map +1 -0
- package/dist/services/queue/index.d.ts +58 -0
- package/dist/services/queue/index.d.ts.map +1 -0
- package/dist/services/queue/index.js +98 -0
- package/dist/services/queue/index.js.map +1 -0
- package/dist/services/queue/messages.d.ts +511 -0
- package/dist/services/queue/messages.d.ts.map +1 -0
- package/dist/services/queue/messages.js +549 -0
- package/dist/services/queue/messages.js.map +1 -0
- package/dist/services/queue/queues.d.ts +228 -0
- package/dist/services/queue/queues.d.ts.map +1 -0
- package/dist/services/queue/queues.js +321 -0
- package/dist/services/queue/queues.js.map +1 -0
- package/dist/services/{queue.d.ts → queue/service.d.ts} +44 -96
- package/dist/services/queue/service.d.ts.map +1 -0
- package/dist/services/{queue.js → queue/service.js} +154 -6
- package/dist/services/queue/service.js.map +1 -0
- package/dist/services/queue/sources.d.ts +252 -0
- package/dist/services/queue/sources.d.ts.map +1 -0
- package/dist/services/queue/sources.js +249 -0
- package/dist/services/queue/sources.js.map +1 -0
- package/dist/services/queue/types.d.ts +1335 -0
- package/dist/services/queue/types.d.ts.map +1 -0
- package/dist/services/queue/types.js +1376 -0
- package/dist/services/queue/types.js.map +1 -0
- package/dist/services/queue/util.d.ts +278 -0
- package/dist/services/queue/util.d.ts.map +1 -0
- package/dist/services/queue/util.js +233 -0
- package/dist/services/queue/util.js.map +1 -0
- package/dist/services/queue/validation.d.ts +218 -0
- package/dist/services/queue/validation.d.ts.map +1 -0
- package/dist/services/queue/validation.js +498 -0
- package/dist/services/queue/validation.js.map +1 -0
- package/dist/services/queue/websocket.d.ts +154 -0
- package/dist/services/queue/websocket.d.ts.map +1 -0
- package/dist/services/queue/websocket.js +472 -0
- package/dist/services/queue/websocket.js.map +1 -0
- package/dist/services/region/create.d.ts +81 -0
- package/dist/services/region/create.d.ts.map +1 -0
- package/dist/services/region/create.js +177 -0
- package/dist/services/region/create.js.map +1 -0
- package/dist/services/region/delete.d.ts +62 -0
- package/dist/services/region/delete.d.ts.map +1 -0
- package/dist/services/region/delete.js +37 -0
- package/dist/services/region/delete.js.map +1 -0
- package/dist/services/region/index.d.ts +5 -0
- package/dist/services/region/index.d.ts.map +1 -0
- package/dist/services/region/index.js +5 -0
- package/dist/services/region/index.js.map +1 -0
- package/dist/services/region/list.d.ts +27 -0
- package/dist/services/region/list.d.ts.map +1 -0
- package/dist/services/region/list.js +22 -0
- package/dist/services/region/list.js.map +1 -0
- package/dist/services/region/resources.d.ts +71 -0
- package/dist/services/region/resources.d.ts.map +1 -0
- package/dist/services/region/resources.js +53 -0
- package/dist/services/region/resources.js.map +1 -0
- package/dist/services/region/util.d.ts +23 -0
- package/dist/services/region/util.d.ts.map +1 -0
- package/dist/services/region/util.js +3 -0
- package/dist/services/region/util.js.map +1 -0
- package/dist/services/sandbox/cli-list.d.ts +103 -0
- package/dist/services/sandbox/cli-list.d.ts.map +1 -0
- package/dist/services/sandbox/cli-list.js +106 -0
- package/dist/services/sandbox/cli-list.js.map +1 -0
- package/dist/services/sandbox/client.d.ts +173 -0
- package/dist/services/sandbox/client.d.ts.map +1 -0
- package/dist/services/sandbox/client.js +302 -0
- package/dist/services/sandbox/client.js.map +1 -0
- package/dist/services/sandbox/create.d.ts +193 -0
- package/dist/services/sandbox/create.d.ts.map +1 -0
- package/dist/services/sandbox/create.js +215 -0
- package/dist/services/sandbox/create.js.map +1 -0
- package/dist/services/sandbox/destroy.d.ts +23 -0
- package/dist/services/sandbox/destroy.d.ts.map +1 -0
- package/dist/services/sandbox/destroy.js +30 -0
- package/dist/services/sandbox/destroy.js.map +1 -0
- package/dist/services/sandbox/disk-checkpoint.d.ts +108 -0
- package/dist/services/sandbox/disk-checkpoint.d.ts.map +1 -0
- package/dist/services/sandbox/disk-checkpoint.js +124 -0
- package/dist/services/sandbox/disk-checkpoint.js.map +1 -0
- package/dist/services/sandbox/execute.d.ts +96 -0
- package/dist/services/sandbox/execute.d.ts.map +1 -0
- package/dist/services/sandbox/execute.js +109 -0
- package/dist/services/sandbox/execute.js.map +1 -0
- package/dist/services/sandbox/execution.d.ts +145 -0
- package/dist/services/sandbox/execution.d.ts.map +1 -0
- package/dist/services/sandbox/execution.js +113 -0
- package/dist/services/sandbox/execution.js.map +1 -0
- package/dist/services/sandbox/files.d.ts +269 -0
- package/dist/services/sandbox/files.d.ts.map +1 -0
- package/dist/services/sandbox/files.js +454 -0
- package/dist/services/sandbox/files.js.map +1 -0
- package/dist/services/sandbox/get.d.ts +284 -0
- package/dist/services/sandbox/get.d.ts.map +1 -0
- package/dist/services/sandbox/get.js +231 -0
- package/dist/services/sandbox/get.js.map +1 -0
- package/dist/services/sandbox/getStatus.d.ts +20 -0
- package/dist/services/sandbox/getStatus.d.ts.map +1 -0
- package/dist/services/sandbox/getStatus.js +36 -0
- package/dist/services/sandbox/getStatus.js.map +1 -0
- package/dist/services/sandbox/index.d.ts +40 -0
- package/dist/services/sandbox/index.d.ts.map +1 -0
- package/dist/services/sandbox/index.js +21 -0
- package/dist/services/sandbox/index.js.map +1 -0
- package/dist/services/sandbox/list.d.ts +327 -0
- package/dist/services/sandbox/list.d.ts.map +1 -0
- package/dist/services/sandbox/list.js +204 -0
- package/dist/services/sandbox/list.js.map +1 -0
- package/dist/services/sandbox/pause.d.ts +23 -0
- package/dist/services/sandbox/pause.d.ts.map +1 -0
- package/dist/services/sandbox/pause.js +30 -0
- package/dist/services/sandbox/pause.js.map +1 -0
- package/dist/services/sandbox/resolve.d.ts +75 -0
- package/dist/services/sandbox/resolve.d.ts.map +1 -0
- package/dist/services/sandbox/resolve.js +76 -0
- package/dist/services/sandbox/resolve.js.map +1 -0
- package/dist/services/sandbox/resume.d.ts +23 -0
- package/dist/services/sandbox/resume.d.ts.map +1 -0
- package/dist/services/sandbox/resume.js +30 -0
- package/dist/services/sandbox/resume.js.map +1 -0
- package/dist/services/sandbox/run.d.ts +71 -0
- package/dist/services/sandbox/run.d.ts.map +1 -0
- package/dist/services/sandbox/run.js +355 -0
- package/dist/services/sandbox/run.js.map +1 -0
- package/dist/services/sandbox/runtime.d.ts +94 -0
- package/dist/services/sandbox/runtime.d.ts.map +1 -0
- package/dist/services/sandbox/runtime.js +82 -0
- package/dist/services/sandbox/runtime.js.map +1 -0
- package/dist/services/sandbox/snapshot-build.d.ts +48 -0
- package/dist/services/sandbox/snapshot-build.d.ts.map +1 -0
- package/dist/services/sandbox/snapshot-build.js +72 -0
- package/dist/services/sandbox/snapshot-build.js.map +1 -0
- package/dist/services/sandbox/snapshot.d.ts +596 -0
- package/dist/services/sandbox/snapshot.d.ts.map +1 -0
- package/dist/services/sandbox/snapshot.js +612 -0
- package/dist/services/sandbox/snapshot.js.map +1 -0
- package/dist/services/sandbox/types.d.ts +851 -0
- package/dist/services/sandbox/types.d.ts.map +1 -0
- package/dist/services/sandbox/types.js +674 -0
- package/dist/services/sandbox/types.js.map +1 -0
- package/dist/services/sandbox/util.d.ts +295 -0
- package/dist/services/sandbox/util.d.ts.map +1 -0
- package/dist/services/sandbox/util.js +233 -0
- package/dist/services/sandbox/util.js.map +1 -0
- package/dist/services/schedule/index.d.ts +2 -0
- package/dist/services/schedule/index.d.ts.map +1 -0
- package/dist/services/schedule/index.js +2 -0
- package/dist/services/schedule/index.js.map +1 -0
- package/dist/services/{schedule.d.ts → schedule/service.d.ts} +150 -212
- package/dist/services/schedule/service.d.ts.map +1 -0
- package/dist/services/{schedule.js → schedule/service.js} +286 -12
- package/dist/services/schedule/service.js.map +1 -0
- package/dist/services/{session.d.ts → session/events.d.ts} +5 -5
- package/dist/services/session/events.d.ts.map +1 -0
- package/dist/services/{session.js → session/events.js} +1 -1
- package/dist/services/session/events.js.map +1 -0
- package/dist/services/session/get.d.ts +170 -0
- package/dist/services/session/get.d.ts.map +1 -0
- package/dist/services/session/get.js +56 -0
- package/dist/services/session/get.js.map +1 -0
- package/dist/services/session/index.d.ts +5 -0
- package/dist/services/session/index.d.ts.map +1 -0
- package/dist/services/session/index.js +5 -0
- package/dist/services/session/index.js.map +1 -0
- package/dist/services/session/list.d.ts +150 -0
- package/dist/services/session/list.d.ts.map +1 -0
- package/dist/services/session/list.js +117 -0
- package/dist/services/session/list.js.map +1 -0
- package/dist/services/session/logs.d.ts +40 -0
- package/dist/services/session/logs.d.ts.map +1 -0
- package/dist/services/session/logs.js +28 -0
- package/dist/services/session/logs.js.map +1 -0
- package/dist/services/session/util.d.ts +23 -0
- package/dist/services/session/util.d.ts.map +1 -0
- package/dist/services/session/util.js +3 -0
- package/dist/services/session/util.js.map +1 -0
- package/dist/services/stats.d.ts +261 -0
- package/dist/services/stats.d.ts.map +1 -0
- package/dist/services/stats.js +181 -0
- package/dist/services/stats.js.map +1 -0
- package/dist/services/storage/config.d.ts +99 -0
- package/dist/services/storage/config.d.ts.map +1 -0
- package/dist/services/storage/config.js +61 -0
- package/dist/services/storage/config.js.map +1 -0
- package/dist/services/storage/index.d.ts +5 -0
- package/dist/services/storage/index.d.ts.map +1 -0
- package/dist/services/storage/index.js +5 -0
- package/dist/services/storage/index.js.map +1 -0
- package/dist/services/storage/objects.d.ts +158 -0
- package/dist/services/storage/objects.d.ts.map +1 -0
- package/dist/services/storage/objects.js +161 -0
- package/dist/services/storage/objects.js.map +1 -0
- package/dist/services/storage/types.d.ts +161 -0
- package/dist/services/storage/types.d.ts.map +1 -0
- package/dist/services/storage/types.js +141 -0
- package/dist/services/storage/types.js.map +1 -0
- package/dist/services/storage/util.d.ts +45 -0
- package/dist/services/storage/util.d.ts.map +1 -0
- package/dist/services/storage/util.js +4 -0
- package/dist/services/storage/util.js.map +1 -0
- package/dist/services/stream/get.d.ts +58 -0
- package/dist/services/stream/get.d.ts.map +1 -0
- package/dist/services/stream/get.js +40 -0
- package/dist/services/stream/get.js.map +1 -0
- package/dist/services/stream/index.d.ts +5 -0
- package/dist/services/stream/index.d.ts.map +1 -0
- package/dist/services/stream/index.js +5 -0
- package/dist/services/stream/index.js.map +1 -0
- package/dist/services/stream/list.d.ts +96 -0
- package/dist/services/stream/list.d.ts.map +1 -0
- package/dist/services/stream/list.js +92 -0
- package/dist/services/stream/list.js.map +1 -0
- package/dist/services/{stream.d.ts → stream/service.d.ts} +62 -91
- package/dist/services/stream/service.d.ts.map +1 -0
- package/dist/services/{stream.js → stream/service.js} +137 -6
- package/dist/services/stream/service.js.map +1 -0
- package/dist/services/stream/util.d.ts +23 -0
- package/dist/services/stream/util.d.ts.map +1 -0
- package/dist/services/stream/util.js +3 -0
- package/dist/services/stream/util.js.map +1 -0
- package/dist/services/task/index.d.ts +2 -0
- package/dist/services/task/index.d.ts.map +1 -0
- package/dist/services/task/index.js +2 -0
- package/dist/services/task/index.js.map +1 -0
- package/dist/services/{task.d.ts → task/service.d.ts} +591 -437
- package/dist/services/task/service.d.ts.map +1 -0
- package/dist/services/{task.js → task/service.js} +494 -4
- package/dist/services/task/service.js.map +1 -0
- package/dist/services/thread/delete.d.ts +23 -0
- package/dist/services/thread/delete.d.ts.map +1 -0
- package/dist/services/thread/delete.js +21 -0
- package/dist/services/thread/delete.js.map +1 -0
- package/dist/services/thread/get.d.ts +36 -0
- package/dist/services/thread/get.d.ts.map +1 -0
- package/dist/services/thread/get.js +23 -0
- package/dist/services/thread/get.js.map +1 -0
- package/dist/services/thread/index.d.ts +5 -0
- package/dist/services/thread/index.d.ts.map +1 -0
- package/dist/services/thread/index.js +5 -0
- package/dist/services/thread/index.js.map +1 -0
- package/dist/services/thread/list.d.ts +75 -0
- package/dist/services/thread/list.d.ts.map +1 -0
- package/dist/services/thread/list.js +65 -0
- package/dist/services/thread/list.js.map +1 -0
- package/dist/services/thread/util.d.ts +23 -0
- package/dist/services/thread/util.d.ts.map +1 -0
- package/dist/services/thread/util.js +3 -0
- package/dist/services/thread/util.js.map +1 -0
- package/dist/services/user/index.d.ts +2 -0
- package/dist/services/user/index.d.ts.map +1 -0
- package/dist/services/user/index.js +2 -0
- package/dist/services/user/index.js.map +1 -0
- package/dist/services/user/util.d.ts +23 -0
- package/dist/services/user/util.d.ts.map +1 -0
- package/dist/services/user/util.js +3 -0
- package/dist/services/user/util.js.map +1 -0
- package/dist/services/user/whoami.d.ts +39 -0
- package/dist/services/user/whoami.d.ts.map +1 -0
- package/dist/services/user/whoami.js +27 -0
- package/dist/services/user/whoami.js.map +1 -0
- package/dist/services/vector/index.d.ts +2 -0
- package/dist/services/vector/index.d.ts.map +1 -0
- package/dist/services/vector/index.js +2 -0
- package/dist/services/vector/index.js.map +1 -0
- package/dist/services/{vector.d.ts → vector/service.d.ts} +178 -217
- package/dist/services/vector/service.d.ts.map +1 -0
- package/dist/services/{vector.js → vector/service.js} +339 -13
- package/dist/services/vector/service.js.map +1 -0
- package/dist/services/webhook/deliveries.d.ts +94 -0
- package/dist/services/webhook/deliveries.d.ts.map +1 -0
- package/dist/services/webhook/deliveries.js +79 -0
- package/dist/services/webhook/deliveries.js.map +1 -0
- package/dist/services/webhook/destinations.d.ts +136 -0
- package/dist/services/webhook/destinations.d.ts.map +1 -0
- package/dist/services/webhook/destinations.js +137 -0
- package/dist/services/webhook/destinations.js.map +1 -0
- package/dist/services/webhook/index.d.ts +42 -0
- package/dist/services/webhook/index.d.ts.map +1 -0
- package/dist/services/webhook/index.js +60 -0
- package/dist/services/webhook/index.js.map +1 -0
- package/dist/services/webhook/receipts.d.ts +77 -0
- package/dist/services/webhook/receipts.d.ts.map +1 -0
- package/dist/services/webhook/receipts.js +78 -0
- package/dist/services/webhook/receipts.js.map +1 -0
- package/dist/services/{webhook.d.ts → webhook/service.d.ts} +23 -144
- package/dist/services/webhook/service.d.ts.map +1 -0
- package/dist/services/{webhook.js → webhook/service.js} +15 -17
- package/dist/services/webhook/service.js.map +1 -0
- package/dist/services/webhook/types.d.ts +103 -0
- package/dist/services/webhook/types.d.ts.map +1 -0
- package/dist/services/webhook/types.js +126 -0
- package/dist/services/webhook/types.js.map +1 -0
- package/dist/services/webhook/util.d.ts +202 -0
- package/dist/services/webhook/util.d.ts.map +1 -0
- package/dist/services/webhook/util.js +199 -0
- package/dist/services/webhook/util.js.map +1 -0
- package/dist/services/webhook/webhooks.d.ts +146 -0
- package/dist/services/webhook/webhooks.d.ts.map +1 -0
- package/dist/services/webhook/webhooks.js +165 -0
- package/dist/services/webhook/webhooks.js.map +1 -0
- package/package.json +59 -7
- package/src/env-example.ts +90 -0
- package/src/index.ts +12 -250
- package/src/services/adapter.ts +69 -24
- package/src/services/api-example.md +164 -0
- package/src/services/api.ts +951 -0
- package/src/services/apikey/create.ts +48 -0
- package/src/services/apikey/delete.ts +30 -0
- package/src/services/apikey/get.ts +48 -0
- package/src/services/apikey/index.ts +5 -0
- package/src/services/apikey/list.ts +66 -0
- package/src/services/apikey/util.ts +3 -0
- package/src/services/config.ts +65 -0
- package/src/services/db/index.ts +27 -0
- package/src/services/db/logs.ts +75 -0
- package/src/services/db/query.ts +69 -0
- package/src/services/db/tables.ts +94 -0
- package/src/services/db/util.ts +9 -0
- package/src/services/email/index.ts +1 -0
- package/src/services/{email.ts → email/service.ts} +172 -115
- package/src/services/env.ts +9 -0
- package/src/services/eval/get.ts +33 -0
- package/src/services/eval/index.ts +29 -0
- package/src/services/eval/list.ts +49 -0
- package/src/services/eval/run-get.ts +39 -0
- package/src/services/eval/run-list.ts +59 -0
- package/src/services/exception.ts +16 -7
- package/src/services/index.ts +29 -28
- package/src/services/keyvalue/index.ts +1 -0
- package/src/services/{keyvalue.ts → keyvalue/service.ts} +149 -95
- package/src/services/logger.ts +24 -0
- package/src/services/machine/index.ts +2 -0
- package/src/services/machine/machine.ts +228 -0
- package/src/services/machine/util.ts +5 -0
- package/src/services/org/env-delete.ts +37 -0
- package/src/services/org/env-get.ts +48 -0
- package/src/services/org/env-update.ts +38 -0
- package/src/services/org/index.ts +6 -0
- package/src/services/org/list.ts +28 -0
- package/src/services/org/resources.ts +140 -0
- package/src/services/org/util.ts +4 -0
- package/src/services/pagination.ts +40 -11
- package/src/services/project/agent.ts +86 -0
- package/src/services/project/create.ts +47 -0
- package/src/services/project/delete.ts +27 -0
- package/src/services/project/deploy.ts +433 -0
- package/src/services/project/deployment.ts +250 -0
- package/src/services/project/env-delete.ts +45 -0
- package/src/services/project/env-update.ts +55 -0
- package/src/services/project/exists.ts +58 -0
- package/src/services/project/get.ts +49 -0
- package/src/services/project/hostname.ts +79 -0
- package/src/services/project/index.ts +13 -0
- package/src/services/project/list.ts +54 -0
- package/src/services/project/malware.ts +85 -0
- package/src/services/project/update-region.ts +44 -0
- package/src/services/project/util.ts +8 -0
- package/src/services/queue/analytics.ts +343 -0
- package/src/services/queue/consumers.ts +56 -0
- package/src/services/queue/destinations.ts +329 -0
- package/src/services/queue/dlq.ts +243 -0
- package/src/services/queue/index.ts +339 -0
- package/src/services/queue/messages.ts +784 -0
- package/src/services/queue/queues.ts +460 -0
- package/src/services/{queue.ts → queue/service.ts} +71 -43
- package/src/services/queue/sources.ts +364 -0
- package/src/services/queue/types.ts +1656 -0
- package/src/services/queue/util.ts +275 -0
- package/src/services/queue/validation.ts +541 -0
- package/src/services/queue/websocket.ts +554 -0
- package/src/services/region/create.ts +207 -0
- package/src/services/region/delete.ts +57 -0
- package/src/services/region/index.ts +4 -0
- package/src/services/region/list.ts +32 -0
- package/src/services/region/resources.ts +69 -0
- package/src/services/region/util.ts +3 -0
- package/src/services/sandbox/cli-list.ts +117 -0
- package/src/services/sandbox/client.ts +435 -0
- package/src/services/sandbox/create.ts +249 -0
- package/src/services/sandbox/destroy.ts +43 -0
- package/src/services/sandbox/disk-checkpoint.ts +184 -0
- package/src/services/sandbox/execute.ts +134 -0
- package/src/services/sandbox/execution.ts +144 -0
- package/src/services/sandbox/files.ts +608 -0
- package/src/services/sandbox/get.ts +262 -0
- package/src/services/sandbox/getStatus.ts +51 -0
- package/src/services/sandbox/index.ts +230 -0
- package/src/services/sandbox/list.ts +234 -0
- package/src/services/sandbox/pause.ts +41 -0
- package/src/services/sandbox/resolve.ts +96 -0
- package/src/services/sandbox/resume.ts +41 -0
- package/src/services/sandbox/run.ts +441 -0
- package/src/services/sandbox/runtime.ts +106 -0
- package/src/services/sandbox/snapshot-build.ts +94 -0
- package/src/services/sandbox/snapshot.ts +791 -0
- package/src/services/sandbox/types.ts +799 -0
- package/src/services/sandbox/util.ts +279 -0
- package/src/services/schedule/index.ts +1 -0
- package/src/services/{schedule.ts → schedule/service.ts} +120 -80
- package/src/services/session/get.ts +108 -0
- package/src/services/session/index.ts +4 -0
- package/src/services/session/list.ts +143 -0
- package/src/services/session/logs.ts +47 -0
- package/src/services/session/util.ts +3 -0
- package/src/services/stats.ts +232 -0
- package/src/services/storage/config.ts +111 -0
- package/src/services/storage/index.ts +4 -0
- package/src/services/storage/objects.ts +256 -0
- package/src/services/storage/types.ts +174 -0
- package/src/services/storage/util.ts +4 -0
- package/src/services/stream/get.ts +51 -0
- package/src/services/stream/index.ts +14 -0
- package/src/services/stream/list.ts +105 -0
- package/src/services/{stream.ts → stream/service.ts} +78 -35
- package/src/services/stream/util.ts +3 -0
- package/src/services/task/index.ts +1 -0
- package/src/services/{task.ts → task/service.ts} +314 -352
- package/src/services/thread/delete.ts +31 -0
- package/src/services/thread/get.ts +34 -0
- package/src/services/thread/index.ts +4 -0
- package/src/services/thread/list.ts +81 -0
- package/src/services/thread/util.ts +3 -0
- package/src/services/user/index.ts +1 -0
- package/src/services/user/util.ts +3 -0
- package/src/services/user/whoami.ts +32 -0
- package/src/services/vector/index.ts +1 -0
- package/src/services/{vector.ts → vector/service.ts} +266 -146
- package/src/services/webhook/deliveries.ts +129 -0
- package/src/services/webhook/destinations.ts +224 -0
- package/src/services/webhook/index.ts +135 -0
- package/src/services/webhook/receipts.ts +124 -0
- package/src/services/{webhook.ts → webhook/service.ts} +48 -203
- package/src/services/webhook/types.ts +185 -0
- package/src/services/webhook/util.ts +234 -0
- package/src/services/webhook/webhooks.ts +260 -0
- package/dist/services/email.d.ts.map +0 -1
- package/dist/services/email.js.map +0 -1
- package/dist/services/evalrun.d.ts.map +0 -1
- package/dist/services/evalrun.js.map +0 -1
- package/dist/services/keyvalue.d.ts.map +0 -1
- package/dist/services/keyvalue.js.map +0 -1
- package/dist/services/queue.d.ts.map +0 -1
- package/dist/services/queue.js.map +0 -1
- package/dist/services/sandbox.d.ts +0 -1241
- package/dist/services/sandbox.d.ts.map +0 -1
- package/dist/services/sandbox.js +0 -6
- package/dist/services/sandbox.js.map +0 -1
- package/dist/services/schedule.d.ts.map +0 -1
- package/dist/services/schedule.js.map +0 -1
- package/dist/services/session.d.ts.map +0 -1
- package/dist/services/session.js.map +0 -1
- package/dist/services/stream.d.ts.map +0 -1
- package/dist/services/stream.js.map +0 -1
- package/dist/services/task.d.ts.map +0 -1
- package/dist/services/task.js.map +0 -1
- package/dist/services/vector.d.ts.map +0 -1
- package/dist/services/vector.js.map +0 -1
- package/dist/services/webhook.d.ts.map +0 -1
- package/dist/services/webhook.js.map +0 -1
- package/src/services/sandbox.ts +0 -1466
- /package/src/services/{evalrun.ts → eval/events.ts} +0 -0
- /package/src/services/{session.ts → session/events.ts} +0 -0
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ExecuteOptionsSchema as CoreExecuteOptionsSchema,
|
|
3
|
+
type SandboxCreateOptions,
|
|
4
|
+
type SandboxInfo,
|
|
5
|
+
type Execution,
|
|
6
|
+
type FileToWrite,
|
|
7
|
+
type SandboxRunOptions,
|
|
8
|
+
type SandboxRunResult,
|
|
9
|
+
} from './types.ts';
|
|
10
|
+
import type { Logger } from '../../logger.ts';
|
|
11
|
+
import type { Readable, Writable } from 'node:stream';
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { APIClient } from '../api.ts';
|
|
14
|
+
import { getEnv } from '../env.ts';
|
|
15
|
+
import { sandboxCreate, type SandboxCreateResponse } from './create.ts';
|
|
16
|
+
import { sandboxDestroy } from './destroy.ts';
|
|
17
|
+
import { sandboxGet } from './get.ts';
|
|
18
|
+
import { sandboxExecute } from './execute.ts';
|
|
19
|
+
import { sandboxWriteFiles, sandboxReadFile } from './files.ts';
|
|
20
|
+
import { sandboxRun } from './run.ts';
|
|
21
|
+
import { executionGet, type ExecutionInfo } from './execution.ts';
|
|
22
|
+
import { createMinimalLogger } from '../logger.ts';
|
|
23
|
+
import { getServiceUrls } from '../config.ts';
|
|
24
|
+
import { writeAndDrain } from './util.ts';
|
|
25
|
+
|
|
26
|
+
// Server-side long-poll wait duration (max 5 minutes supported by server)
|
|
27
|
+
const EXECUTION_WAIT_DURATION = '5m';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Wait for execution completion using server-side long-polling.
|
|
31
|
+
* This is more efficient than client-side polling and provides immediate
|
|
32
|
+
* error detection if the sandbox is terminated.
|
|
33
|
+
*/
|
|
34
|
+
async function waitForExecution(
|
|
35
|
+
client: APIClient,
|
|
36
|
+
executionId: string,
|
|
37
|
+
orgId?: string,
|
|
38
|
+
signal?: AbortSignal
|
|
39
|
+
): Promise<ExecutionInfo> {
|
|
40
|
+
if (signal?.aborted) {
|
|
41
|
+
throw new DOMException('The operation was aborted.', 'AbortError');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Use server-side long-polling - the server will hold the connection
|
|
45
|
+
// until the execution reaches a terminal state or the wait duration expires
|
|
46
|
+
return executionGet(client, {
|
|
47
|
+
executionId,
|
|
48
|
+
orgId,
|
|
49
|
+
wait: EXECUTION_WAIT_DURATION,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Pipes a remote stream URL to a local writable stream with proper backpressure handling
|
|
55
|
+
*/
|
|
56
|
+
async function pipeStreamToWritable(
|
|
57
|
+
streamUrl: string,
|
|
58
|
+
writable: Writable,
|
|
59
|
+
signal?: AbortSignal
|
|
60
|
+
): Promise<void> {
|
|
61
|
+
const response = await fetch(streamUrl, { signal });
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
throw new Error(`Failed to fetch stream: ${response.status} ${response.statusText}`);
|
|
64
|
+
}
|
|
65
|
+
if (!response.body) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const reader = response.body.getReader();
|
|
70
|
+
try {
|
|
71
|
+
while (true) {
|
|
72
|
+
const { done, value } = await reader.read();
|
|
73
|
+
if (done) break;
|
|
74
|
+
if (value) {
|
|
75
|
+
await writeAndDrain(writable, value);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
} finally {
|
|
79
|
+
try {
|
|
80
|
+
await reader.cancel();
|
|
81
|
+
} catch {
|
|
82
|
+
// Ignore cancel errors - stream may already be closed
|
|
83
|
+
}
|
|
84
|
+
reader.releaseLock();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Extended execute options that support piping output to writable streams
|
|
90
|
+
*/
|
|
91
|
+
export const ExecuteOptionsSchema = CoreExecuteOptionsSchema.extend({
|
|
92
|
+
/** Pipe stdout/stderr to writable streams (e.g., process.stdout) */
|
|
93
|
+
pipe: z
|
|
94
|
+
.object({
|
|
95
|
+
stdout: z.custom<Writable>().optional().describe('stdout writable stream'),
|
|
96
|
+
stderr: z.custom<Writable>().optional().describe('stderr writable stream'),
|
|
97
|
+
})
|
|
98
|
+
.optional()
|
|
99
|
+
.describe('Pipe stdout/stderr to writable streams (e.g., process.stdout)'),
|
|
100
|
+
});
|
|
101
|
+
export type ExecuteOptions = z.infer<typeof ExecuteOptionsSchema>;
|
|
102
|
+
|
|
103
|
+
export const SandboxClientOptionsSchema = z.object({
|
|
104
|
+
/** API key for authentication. Defaults to AGENTUITY_SDK_KEY/AGENTUITY_CLI_KEY */
|
|
105
|
+
apiKey: z.string().optional().describe('API key for authentication'),
|
|
106
|
+
/** Base URL for the sandbox API */
|
|
107
|
+
url: z.string().optional().describe('Base URL for the sandbox API'),
|
|
108
|
+
/** Organization ID for multi-tenant operations */
|
|
109
|
+
orgId: z.string().optional().describe('Organization ID for multi-tenant operations'),
|
|
110
|
+
/** Custom logger instance */
|
|
111
|
+
logger: z.custom<Logger>().optional().describe('Custom logger instance'),
|
|
112
|
+
});
|
|
113
|
+
export type SandboxClientOptions = z.infer<typeof SandboxClientOptionsSchema>;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* I/O options for one-shot sandbox execution via run()
|
|
117
|
+
*/
|
|
118
|
+
export const SandboxClientRunIOSchema = z.object({
|
|
119
|
+
/** AbortSignal to cancel the execution */
|
|
120
|
+
signal: z.custom<AbortSignal>().optional().describe('AbortSignal to cancel the execution'),
|
|
121
|
+
/** Readable stream for stdin input */
|
|
122
|
+
stdin: z.custom<Readable>().optional().describe('Readable stream for stdin input'),
|
|
123
|
+
/** Writable stream for stdout output */
|
|
124
|
+
stdout: z.custom<Writable>().optional().describe('Writable stream for stdout output'),
|
|
125
|
+
/** Writable stream for stderr output */
|
|
126
|
+
stderr: z.custom<Writable>().optional().describe('Writable stream for stderr output'),
|
|
127
|
+
/** Optional logger override for this run */
|
|
128
|
+
logger: z.custom<Logger>().optional().describe('Optional logger override for this run'),
|
|
129
|
+
});
|
|
130
|
+
export type SandboxClientRunIO = z.infer<typeof SandboxClientRunIOSchema>;
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* A sandbox instance returned by SandboxClient.create()
|
|
134
|
+
*/
|
|
135
|
+
export interface SandboxInstance {
|
|
136
|
+
/**
|
|
137
|
+
* Unique sandbox identifier
|
|
138
|
+
*/
|
|
139
|
+
id: string;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Sandbox status at creation time
|
|
143
|
+
*/
|
|
144
|
+
status: SandboxCreateResponse['status'];
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* URL to stream stdout output
|
|
148
|
+
*/
|
|
149
|
+
stdoutStreamUrl?: string;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* URL to stream stderr output
|
|
153
|
+
*/
|
|
154
|
+
stderrStreamUrl?: string;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* URL to stream audit events (eBPF/Tetragon security events)
|
|
158
|
+
*/
|
|
159
|
+
auditStreamUrl?: string;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Execute a command in the sandbox
|
|
163
|
+
*/
|
|
164
|
+
execute(options: ExecuteOptions): Promise<Execution>;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Write files to the sandbox workspace
|
|
168
|
+
*/
|
|
169
|
+
writeFiles(files: FileToWrite[]): Promise<number>;
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Read a file from the sandbox workspace
|
|
173
|
+
*/
|
|
174
|
+
readFile(path: string): Promise<ReadableStream<Uint8Array>>;
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Get current sandbox information
|
|
178
|
+
*/
|
|
179
|
+
get(): Promise<SandboxInfo>;
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Destroy the sandbox and release all resources
|
|
183
|
+
*/
|
|
184
|
+
destroy(): Promise<void>;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Convenience client for sandbox operations.
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```typescript
|
|
192
|
+
* // Interactive sandbox usage
|
|
193
|
+
* const client = new SandboxClient();
|
|
194
|
+
* const sandbox = await client.create();
|
|
195
|
+
* const result = await sandbox.execute({ command: ['echo', 'hello'] });
|
|
196
|
+
* await sandbox.destroy();
|
|
197
|
+
*
|
|
198
|
+
* // One-shot execution with streaming
|
|
199
|
+
* const result = await client.run(
|
|
200
|
+
* { command: { exec: ['bun', 'run', 'script.ts'] } },
|
|
201
|
+
* { stdout: process.stdout, stderr: process.stderr }
|
|
202
|
+
* );
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
export class SandboxClient {
|
|
206
|
+
readonly #client: APIClient;
|
|
207
|
+
readonly #orgId?: string;
|
|
208
|
+
readonly #apiKey?: string;
|
|
209
|
+
readonly #region: string;
|
|
210
|
+
readonly #logger: Logger;
|
|
211
|
+
|
|
212
|
+
constructor(options: SandboxClientOptions = {}) {
|
|
213
|
+
const apiKey = options.apiKey || getEnv('AGENTUITY_SDK_KEY') || getEnv('AGENTUITY_CLI_KEY');
|
|
214
|
+
|
|
215
|
+
const region = getEnv('AGENTUITY_REGION') ?? 'usc';
|
|
216
|
+
const serviceUrls = getServiceUrls(region);
|
|
217
|
+
|
|
218
|
+
const url =
|
|
219
|
+
options.url ||
|
|
220
|
+
getEnv('AGENTUITY_SANDBOX_URL') ||
|
|
221
|
+
getEnv('AGENTUITY_CATALYST_URL') ||
|
|
222
|
+
getEnv('AGENTUITY_TRANSPORT_URL') ||
|
|
223
|
+
serviceUrls.sandbox;
|
|
224
|
+
|
|
225
|
+
const logger = options.logger ?? createMinimalLogger();
|
|
226
|
+
|
|
227
|
+
// Disable retries for sandbox operations - 409 Conflict means sandbox is busy,
|
|
228
|
+
// not a retryable rate limit. Retrying would waste ~360s (4 attempts × 90s timeout).
|
|
229
|
+
this.#client = new APIClient(url, logger, apiKey ?? '', { maxRetries: 0 });
|
|
230
|
+
this.#orgId = options.orgId;
|
|
231
|
+
this.#apiKey = apiKey;
|
|
232
|
+
this.#region = region;
|
|
233
|
+
this.#logger = logger;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Run a one-shot command in a new sandbox (creates, executes, destroys)
|
|
238
|
+
*
|
|
239
|
+
* This is a high-level convenience method that handles the full lifecycle:
|
|
240
|
+
* creating a sandbox, streaming I/O, polling for completion, and cleanup.
|
|
241
|
+
*
|
|
242
|
+
* @param options - Execution options including command and configuration
|
|
243
|
+
* @param io - Optional I/O streams and abort signal
|
|
244
|
+
* @returns The run result including exit code and duration
|
|
245
|
+
* @throws {Error} If stdin is provided without an API key
|
|
246
|
+
*
|
|
247
|
+
* @example
|
|
248
|
+
* ```typescript
|
|
249
|
+
* const client = new SandboxClient();
|
|
250
|
+
* const result = await client.run(
|
|
251
|
+
* { command: { exec: ['bun', 'run', 'script.ts'] } },
|
|
252
|
+
* { stdout: process.stdout, stderr: process.stderr }
|
|
253
|
+
* );
|
|
254
|
+
* console.log('Exit code:', result.exitCode);
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
async run(options: SandboxRunOptions, io: SandboxClientRunIO = {}): Promise<SandboxRunResult> {
|
|
258
|
+
if (io.stdin && !this.#apiKey) {
|
|
259
|
+
throw new Error('SandboxClient.run(): stdin streaming requires an API key');
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return sandboxRun(this.#client, {
|
|
263
|
+
options,
|
|
264
|
+
orgId: this.#orgId,
|
|
265
|
+
region: this.#region,
|
|
266
|
+
apiKey: this.#apiKey,
|
|
267
|
+
signal: io.signal,
|
|
268
|
+
stdin: io.stdin,
|
|
269
|
+
stdout: io.stdout,
|
|
270
|
+
stderr: io.stderr,
|
|
271
|
+
logger: io.logger ?? this.#logger,
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Create a new sandbox instance
|
|
277
|
+
*
|
|
278
|
+
* @param options - Optional sandbox configuration
|
|
279
|
+
* @returns A sandbox instance with execute and destroy methods
|
|
280
|
+
*/
|
|
281
|
+
async create(options?: SandboxCreateOptions): Promise<SandboxInstance> {
|
|
282
|
+
const response = await sandboxCreate(this.#client, {
|
|
283
|
+
options,
|
|
284
|
+
orgId: this.#orgId,
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
const sandboxId = response.sandboxId;
|
|
288
|
+
const client = this.#client;
|
|
289
|
+
const orgId = this.#orgId;
|
|
290
|
+
|
|
291
|
+
return {
|
|
292
|
+
id: sandboxId,
|
|
293
|
+
status: response.status,
|
|
294
|
+
stdoutStreamUrl: response.stdoutStreamUrl,
|
|
295
|
+
stderrStreamUrl: response.stderrStreamUrl,
|
|
296
|
+
auditStreamUrl: response.auditStreamUrl,
|
|
297
|
+
|
|
298
|
+
async execute(executeOptions: ExecuteOptions): Promise<Execution> {
|
|
299
|
+
const { pipe, ...coreOptions } = executeOptions;
|
|
300
|
+
|
|
301
|
+
const initialResult = await sandboxExecute(client, {
|
|
302
|
+
sandboxId,
|
|
303
|
+
options: coreOptions,
|
|
304
|
+
orgId,
|
|
305
|
+
signal: coreOptions.signal,
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
// If pipe options provided, stream the output to the writable streams
|
|
309
|
+
if (pipe) {
|
|
310
|
+
const streamPromises: Promise<void>[] = [];
|
|
311
|
+
|
|
312
|
+
if (pipe.stdout && initialResult.stdoutStreamUrl) {
|
|
313
|
+
streamPromises.push(
|
|
314
|
+
pipeStreamToWritable(
|
|
315
|
+
initialResult.stdoutStreamUrl,
|
|
316
|
+
pipe.stdout,
|
|
317
|
+
coreOptions.signal
|
|
318
|
+
)
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
if (pipe.stderr && initialResult.stderrStreamUrl) {
|
|
322
|
+
streamPromises.push(
|
|
323
|
+
pipeStreamToWritable(
|
|
324
|
+
initialResult.stderrStreamUrl,
|
|
325
|
+
pipe.stderr,
|
|
326
|
+
coreOptions.signal
|
|
327
|
+
)
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
// Wait for all streams to complete
|
|
332
|
+
if (streamPromises.length > 0) {
|
|
333
|
+
await Promise.all(streamPromises);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// Wait for execution to complete and get final result with exit code
|
|
338
|
+
const finalResult = await waitForExecution(
|
|
339
|
+
client,
|
|
340
|
+
initialResult.executionId,
|
|
341
|
+
orgId,
|
|
342
|
+
coreOptions.signal
|
|
343
|
+
);
|
|
344
|
+
|
|
345
|
+
return {
|
|
346
|
+
executionId: finalResult.executionId,
|
|
347
|
+
status: finalResult.status,
|
|
348
|
+
exitCode: finalResult.exitCode,
|
|
349
|
+
durationMs: finalResult.durationMs,
|
|
350
|
+
stdoutStreamUrl: initialResult.stdoutStreamUrl,
|
|
351
|
+
stderrStreamUrl: initialResult.stderrStreamUrl,
|
|
352
|
+
};
|
|
353
|
+
},
|
|
354
|
+
|
|
355
|
+
async writeFiles(files: FileToWrite[]): Promise<number> {
|
|
356
|
+
const result = await sandboxWriteFiles(client, { sandboxId, files, orgId });
|
|
357
|
+
return result.filesWritten;
|
|
358
|
+
},
|
|
359
|
+
|
|
360
|
+
async readFile(path: string): Promise<ReadableStream<Uint8Array>> {
|
|
361
|
+
return sandboxReadFile(client, { sandboxId, path, orgId });
|
|
362
|
+
},
|
|
363
|
+
|
|
364
|
+
async get(): Promise<SandboxInfo> {
|
|
365
|
+
return sandboxGet(client, { sandboxId, orgId });
|
|
366
|
+
},
|
|
367
|
+
|
|
368
|
+
async destroy(): Promise<void> {
|
|
369
|
+
return sandboxDestroy(client, { sandboxId, orgId });
|
|
370
|
+
},
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* Get sandbox information by ID
|
|
376
|
+
*
|
|
377
|
+
* @param sandboxId - The sandbox ID
|
|
378
|
+
* @returns Sandbox information
|
|
379
|
+
*/
|
|
380
|
+
async get(sandboxId: string): Promise<SandboxInfo> {
|
|
381
|
+
return sandboxGet(this.#client, { sandboxId, orgId: this.#orgId });
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Destroy a sandbox by ID
|
|
386
|
+
*
|
|
387
|
+
* @param sandboxId - The sandbox ID to destroy
|
|
388
|
+
*/
|
|
389
|
+
async destroy(sandboxId: string): Promise<void> {
|
|
390
|
+
return sandboxDestroy(this.#client, { sandboxId, orgId: this.#orgId });
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Write files to a sandbox workspace
|
|
395
|
+
*
|
|
396
|
+
* @param sandboxId - The sandbox ID
|
|
397
|
+
* @param files - Array of files to write with path and content
|
|
398
|
+
* @param signal - Optional AbortSignal to cancel the operation
|
|
399
|
+
* @returns The number of files written
|
|
400
|
+
*/
|
|
401
|
+
async writeFiles(
|
|
402
|
+
sandboxId: string,
|
|
403
|
+
files: FileToWrite[],
|
|
404
|
+
signal?: AbortSignal
|
|
405
|
+
): Promise<number> {
|
|
406
|
+
const result = await sandboxWriteFiles(this.#client, {
|
|
407
|
+
sandboxId,
|
|
408
|
+
files,
|
|
409
|
+
orgId: this.#orgId,
|
|
410
|
+
signal,
|
|
411
|
+
});
|
|
412
|
+
return result.filesWritten;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* Read a file from a sandbox workspace
|
|
417
|
+
*
|
|
418
|
+
* @param sandboxId - The sandbox ID
|
|
419
|
+
* @param path - Path to the file relative to the sandbox workspace
|
|
420
|
+
* @param signal - Optional AbortSignal to cancel the operation
|
|
421
|
+
* @returns A ReadableStream of the file contents
|
|
422
|
+
*/
|
|
423
|
+
async readFile(
|
|
424
|
+
sandboxId: string,
|
|
425
|
+
path: string,
|
|
426
|
+
signal?: AbortSignal
|
|
427
|
+
): Promise<ReadableStream<Uint8Array>> {
|
|
428
|
+
return sandboxReadFile(this.#client, {
|
|
429
|
+
sandboxId,
|
|
430
|
+
path,
|
|
431
|
+
orgId: this.#orgId,
|
|
432
|
+
signal,
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import type { SandboxCreateOptions } from './types.ts';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { type APIClient, APIResponseSchema } from '../api.ts';
|
|
4
|
+
import { NPM_PACKAGE_NAME_PATTERN } from './snapshot-build.ts';
|
|
5
|
+
import { throwSandboxError } from './util.ts';
|
|
6
|
+
|
|
7
|
+
export const SandboxCreateRequestSchema = z
|
|
8
|
+
.object({
|
|
9
|
+
projectId: z.string().optional().describe('Project ID to associate the sandbox with'),
|
|
10
|
+
runtime: z.string().optional().describe('Runtime name (e.g., "bun:1", "python:3.14")'),
|
|
11
|
+
runtimeId: z.string().optional().describe('Runtime ID (e.g., "srt_xxx")'),
|
|
12
|
+
name: z.string().optional().describe('Optional sandbox name'),
|
|
13
|
+
description: z.string().optional().describe('Optional sandbox description'),
|
|
14
|
+
resources: z
|
|
15
|
+
.object({
|
|
16
|
+
memory: z.string().optional().describe('Memory limit (e.g., "512Mi", "1Gi")'),
|
|
17
|
+
cpu: z.string().optional().describe('CPU limit (e.g., "0.5", "1")'),
|
|
18
|
+
disk: z.string().optional().describe('Disk size limit (e.g., "1Gi", "10Gi")'),
|
|
19
|
+
})
|
|
20
|
+
.optional()
|
|
21
|
+
.describe('Resource constraints for the sandbox'),
|
|
22
|
+
env: z
|
|
23
|
+
.record(z.string(), z.string())
|
|
24
|
+
.optional()
|
|
25
|
+
.describe('Environment variables to set in the sandbox'),
|
|
26
|
+
network: z
|
|
27
|
+
.object({
|
|
28
|
+
enabled: z.boolean().optional().describe('Whether network access is enabled'),
|
|
29
|
+
port: z
|
|
30
|
+
.number()
|
|
31
|
+
.int()
|
|
32
|
+
.min(1024)
|
|
33
|
+
.max(65535)
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Port to expose from the sandbox (1024-65535)'),
|
|
36
|
+
})
|
|
37
|
+
.optional()
|
|
38
|
+
.describe('Network configuration for the sandbox'),
|
|
39
|
+
stream: z
|
|
40
|
+
.object({
|
|
41
|
+
stdout: z.string().optional().describe('Stream ID for stdout output'),
|
|
42
|
+
stderr: z.string().optional().describe('Stream ID for stderr output'),
|
|
43
|
+
stdin: z.string().optional().describe('Stream ID for stdin input'),
|
|
44
|
+
timestamps: z.boolean().optional().describe('Whether to include timestamps in output'),
|
|
45
|
+
})
|
|
46
|
+
.optional()
|
|
47
|
+
.describe('Stream configuration for I/O redirection'),
|
|
48
|
+
timeout: z
|
|
49
|
+
.object({
|
|
50
|
+
idle: z.string().optional().describe('Idle timeout duration (e.g., "5m", "1h")'),
|
|
51
|
+
execution: z.string().optional().describe('Maximum execution time (e.g., "30m", "2h")'),
|
|
52
|
+
})
|
|
53
|
+
.optional()
|
|
54
|
+
.describe('Timeout settings for the sandbox'),
|
|
55
|
+
command: z
|
|
56
|
+
.object({
|
|
57
|
+
exec: z.array(z.string()).describe('Command and arguments to execute'),
|
|
58
|
+
files: z
|
|
59
|
+
.array(
|
|
60
|
+
z.object({
|
|
61
|
+
path: z
|
|
62
|
+
.string()
|
|
63
|
+
.describe('Path to the file relative to the sandbox workspace'),
|
|
64
|
+
content: z.string().describe('Base64-encoded file content'),
|
|
65
|
+
})
|
|
66
|
+
)
|
|
67
|
+
.optional()
|
|
68
|
+
.describe('Files to write before execution (deprecated: use top-level files)'),
|
|
69
|
+
mode: z
|
|
70
|
+
.enum(['oneshot', 'interactive'])
|
|
71
|
+
.optional()
|
|
72
|
+
.describe('Execution mode: oneshot runs once, interactive keeps running'),
|
|
73
|
+
})
|
|
74
|
+
.optional()
|
|
75
|
+
.describe('Initial command to run in the sandbox'),
|
|
76
|
+
files: z
|
|
77
|
+
.array(
|
|
78
|
+
z.object({
|
|
79
|
+
path: z.string().describe('Path to the file relative to the sandbox workspace'),
|
|
80
|
+
content: z.string().describe('Base64-encoded file content'),
|
|
81
|
+
})
|
|
82
|
+
)
|
|
83
|
+
.optional()
|
|
84
|
+
.describe('Files to write to sandbox on creation'),
|
|
85
|
+
snapshot: z.string().optional().describe('Snapshot ID to restore the sandbox from'),
|
|
86
|
+
dependencies: z
|
|
87
|
+
.array(z.string())
|
|
88
|
+
.optional()
|
|
89
|
+
.describe('Apt packages to install when creating the sandbox'),
|
|
90
|
+
packages: z
|
|
91
|
+
.array(
|
|
92
|
+
z
|
|
93
|
+
.string()
|
|
94
|
+
.regex(
|
|
95
|
+
NPM_PACKAGE_NAME_PATTERN,
|
|
96
|
+
'Invalid npm/bun package specifier: must not contain whitespace, semicolons, backticks, pipes, or dollar signs'
|
|
97
|
+
)
|
|
98
|
+
)
|
|
99
|
+
.optional()
|
|
100
|
+
.describe('npm/bun packages to install globally when creating the sandbox'),
|
|
101
|
+
metadata: z
|
|
102
|
+
.record(z.string(), z.unknown())
|
|
103
|
+
.optional()
|
|
104
|
+
.describe('Optional user-defined metadata to associate with the sandbox'),
|
|
105
|
+
})
|
|
106
|
+
.refine(
|
|
107
|
+
(data) => {
|
|
108
|
+
// If snapshot is provided, runtime and runtimeId must not be provided
|
|
109
|
+
if (data.snapshot) {
|
|
110
|
+
return !data.runtime && !data.runtimeId;
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
message: 'cannot specify both snapshot and runtime; snapshot includes its own runtime',
|
|
116
|
+
path: ['snapshot'],
|
|
117
|
+
}
|
|
118
|
+
)
|
|
119
|
+
.describe('Request body for creating a new sandbox');
|
|
120
|
+
|
|
121
|
+
export const SandboxCreateDataSchema = z
|
|
122
|
+
.object({
|
|
123
|
+
sandboxId: z.string().describe('Unique identifier for the created sandbox'),
|
|
124
|
+
status: z
|
|
125
|
+
.enum([
|
|
126
|
+
'creating',
|
|
127
|
+
'idle',
|
|
128
|
+
'running',
|
|
129
|
+
'paused',
|
|
130
|
+
'stopping',
|
|
131
|
+
'suspended',
|
|
132
|
+
'terminated',
|
|
133
|
+
'failed',
|
|
134
|
+
])
|
|
135
|
+
.describe('Current status of the sandbox'),
|
|
136
|
+
stdoutStreamId: z.string().optional().describe('Stream ID for reading stdout'),
|
|
137
|
+
stdoutStreamUrl: z.string().optional().describe('URL for streaming stdout output'),
|
|
138
|
+
stderrStreamId: z.string().optional().describe('Stream ID for reading stderr'),
|
|
139
|
+
stderrStreamUrl: z.string().optional().describe('URL for streaming stderr output'),
|
|
140
|
+
auditStreamId: z.string().optional().describe('Stream ID for reading audit events'),
|
|
141
|
+
auditStreamUrl: z.string().optional().describe('URL for streaming audit events'),
|
|
142
|
+
})
|
|
143
|
+
.describe('Response data from sandbox creation');
|
|
144
|
+
|
|
145
|
+
export const SandboxCreateResponseSchema = APIResponseSchema(SandboxCreateDataSchema);
|
|
146
|
+
|
|
147
|
+
export type SandboxCreateResponse = z.infer<typeof SandboxCreateDataSchema>;
|
|
148
|
+
|
|
149
|
+
export const SandboxCreateParamsSchema = z.object({
|
|
150
|
+
options: z.custom<SandboxCreateOptions>().optional().describe('Optional sandbox create options'),
|
|
151
|
+
orgId: z.string().optional().describe('Optional org id for CLI auth context'),
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
export type SandboxCreateParams = z.infer<typeof SandboxCreateParamsSchema>;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Creates a new sandbox instance.
|
|
158
|
+
*
|
|
159
|
+
* @param client - The API client to use for the request
|
|
160
|
+
* @param params - Parameters for creating the sandbox
|
|
161
|
+
* @returns The created sandbox response including sandbox ID and stream URLs
|
|
162
|
+
* @throws {SandboxResponseError} If the sandbox creation fails
|
|
163
|
+
*/
|
|
164
|
+
export async function sandboxCreate(
|
|
165
|
+
client: APIClient,
|
|
166
|
+
params: SandboxCreateParams = {}
|
|
167
|
+
): Promise<SandboxCreateResponse> {
|
|
168
|
+
const { options = {}, orgId } = params;
|
|
169
|
+
const body: z.infer<typeof SandboxCreateRequestSchema> = {};
|
|
170
|
+
|
|
171
|
+
if (options.projectId) {
|
|
172
|
+
body.projectId = options.projectId;
|
|
173
|
+
}
|
|
174
|
+
if (options.runtime) {
|
|
175
|
+
body.runtime = options.runtime;
|
|
176
|
+
}
|
|
177
|
+
if (options.runtimeId) {
|
|
178
|
+
body.runtimeId = options.runtimeId;
|
|
179
|
+
}
|
|
180
|
+
if (options.name) {
|
|
181
|
+
body.name = options.name;
|
|
182
|
+
}
|
|
183
|
+
if (options.description) {
|
|
184
|
+
body.description = options.description;
|
|
185
|
+
}
|
|
186
|
+
if (options.resources) {
|
|
187
|
+
body.resources = options.resources;
|
|
188
|
+
}
|
|
189
|
+
if (options.env) {
|
|
190
|
+
body.env = options.env;
|
|
191
|
+
}
|
|
192
|
+
if (options.network) {
|
|
193
|
+
body.network = options.network;
|
|
194
|
+
}
|
|
195
|
+
if (options.stream) {
|
|
196
|
+
body.stream = options.stream;
|
|
197
|
+
}
|
|
198
|
+
if (options.timeout) {
|
|
199
|
+
body.timeout = options.timeout;
|
|
200
|
+
}
|
|
201
|
+
if (options.command) {
|
|
202
|
+
body.command = {
|
|
203
|
+
exec: options.command.exec,
|
|
204
|
+
mode: options.command.mode,
|
|
205
|
+
files: options.command.files?.map((f) => ({
|
|
206
|
+
path: f.path,
|
|
207
|
+
content: f.content.toString('base64'),
|
|
208
|
+
})),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
if (options.files && options.files.length > 0) {
|
|
212
|
+
body.files = options.files.map((f) => ({
|
|
213
|
+
path: f.path,
|
|
214
|
+
content: f.content.toString('base64'),
|
|
215
|
+
}));
|
|
216
|
+
}
|
|
217
|
+
if (options.snapshot) {
|
|
218
|
+
body.snapshot = options.snapshot;
|
|
219
|
+
}
|
|
220
|
+
if (options.dependencies && options.dependencies.length > 0) {
|
|
221
|
+
body.dependencies = options.dependencies;
|
|
222
|
+
}
|
|
223
|
+
if (options.packages && options.packages.length > 0) {
|
|
224
|
+
body.packages = options.packages;
|
|
225
|
+
}
|
|
226
|
+
if (options.metadata) {
|
|
227
|
+
body.metadata = options.metadata;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
const queryParams = new URLSearchParams();
|
|
231
|
+
if (orgId) {
|
|
232
|
+
queryParams.set('orgId', orgId);
|
|
233
|
+
}
|
|
234
|
+
const queryString = queryParams.toString();
|
|
235
|
+
const url = `/sandbox${queryString ? `?${queryString}` : ''}`;
|
|
236
|
+
|
|
237
|
+
const resp = await client.post<z.infer<typeof SandboxCreateResponseSchema>>(
|
|
238
|
+
url,
|
|
239
|
+
body,
|
|
240
|
+
SandboxCreateResponseSchema,
|
|
241
|
+
SandboxCreateRequestSchema
|
|
242
|
+
);
|
|
243
|
+
|
|
244
|
+
if (resp.success) {
|
|
245
|
+
return resp.data;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
throwSandboxError(resp, {});
|
|
249
|
+
}
|