@declaw/sdk 1.1.5 → 1.1.6
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/CHANGELOG.md +13 -0
- package/dist/index.cjs +31 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +33 -1
- package/dist/index.d.ts +33 -1
- package/dist/index.js +31 -12
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.cts
CHANGED
|
@@ -1113,10 +1113,42 @@ declare class Sandbox {
|
|
|
1113
1113
|
/**
|
|
1114
1114
|
* Kill this sandbox.
|
|
1115
1115
|
*
|
|
1116
|
+
* Returns once the kill has been accepted by the server. The per-VM
|
|
1117
|
+
* teardown (firecracker shutdown + netns + iptables cleanup) runs in
|
|
1118
|
+
* the background. Pass `{ wait: true }` to block until the teardown
|
|
1119
|
+
* has fully completed.
|
|
1120
|
+
*
|
|
1116
1121
|
* @param requestTimeout - Optional per-request timeout in milliseconds.
|
|
1117
|
-
* @returns True if the sandbox was killed
|
|
1122
|
+
* @returns True if the sandbox was killed (or queued); false if the
|
|
1123
|
+
* server reported it was already dead.
|
|
1118
1124
|
*/
|
|
1119
1125
|
kill(requestTimeout?: number): Promise<boolean>;
|
|
1126
|
+
kill(opts?: {
|
|
1127
|
+
requestTimeout?: number;
|
|
1128
|
+
wait?: boolean;
|
|
1129
|
+
}): Promise<boolean>;
|
|
1130
|
+
/**
|
|
1131
|
+
* Kill many sandboxes in a single request. Server fans out internally
|
|
1132
|
+
* with bounded concurrency, eliminating per-id round-trip overhead.
|
|
1133
|
+
*
|
|
1134
|
+
* @param ids - sandbox IDs to kill.
|
|
1135
|
+
* @param opts.wait - If true, wait for each VM's teardown to finish
|
|
1136
|
+
* before returning. Default is false (server returns 202 once the
|
|
1137
|
+
* request is queued).
|
|
1138
|
+
* @param opts.requestTimeout - Per-request timeout in milliseconds.
|
|
1139
|
+
* @returns Map of sandbox-id → outcome. Outcome is `{killed: true}`
|
|
1140
|
+
* (wait=true), `{queued: true}` (default), or `{error: string}` if
|
|
1141
|
+
* the server reported a per-id failure.
|
|
1142
|
+
*/
|
|
1143
|
+
static killMany(ids: string[], opts?: {
|
|
1144
|
+
wait?: boolean;
|
|
1145
|
+
requestTimeout?: number;
|
|
1146
|
+
config?: ConnectionConfig;
|
|
1147
|
+
}): Promise<Record<string, {
|
|
1148
|
+
killed?: boolean;
|
|
1149
|
+
queued?: boolean;
|
|
1150
|
+
error?: string;
|
|
1151
|
+
}>>;
|
|
1120
1152
|
/**
|
|
1121
1153
|
* Check if this sandbox is currently running.
|
|
1122
1154
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -1113,10 +1113,42 @@ declare class Sandbox {
|
|
|
1113
1113
|
/**
|
|
1114
1114
|
* Kill this sandbox.
|
|
1115
1115
|
*
|
|
1116
|
+
* Returns once the kill has been accepted by the server. The per-VM
|
|
1117
|
+
* teardown (firecracker shutdown + netns + iptables cleanup) runs in
|
|
1118
|
+
* the background. Pass `{ wait: true }` to block until the teardown
|
|
1119
|
+
* has fully completed.
|
|
1120
|
+
*
|
|
1116
1121
|
* @param requestTimeout - Optional per-request timeout in milliseconds.
|
|
1117
|
-
* @returns True if the sandbox was killed
|
|
1122
|
+
* @returns True if the sandbox was killed (or queued); false if the
|
|
1123
|
+
* server reported it was already dead.
|
|
1118
1124
|
*/
|
|
1119
1125
|
kill(requestTimeout?: number): Promise<boolean>;
|
|
1126
|
+
kill(opts?: {
|
|
1127
|
+
requestTimeout?: number;
|
|
1128
|
+
wait?: boolean;
|
|
1129
|
+
}): Promise<boolean>;
|
|
1130
|
+
/**
|
|
1131
|
+
* Kill many sandboxes in a single request. Server fans out internally
|
|
1132
|
+
* with bounded concurrency, eliminating per-id round-trip overhead.
|
|
1133
|
+
*
|
|
1134
|
+
* @param ids - sandbox IDs to kill.
|
|
1135
|
+
* @param opts.wait - If true, wait for each VM's teardown to finish
|
|
1136
|
+
* before returning. Default is false (server returns 202 once the
|
|
1137
|
+
* request is queued).
|
|
1138
|
+
* @param opts.requestTimeout - Per-request timeout in milliseconds.
|
|
1139
|
+
* @returns Map of sandbox-id → outcome. Outcome is `{killed: true}`
|
|
1140
|
+
* (wait=true), `{queued: true}` (default), or `{error: string}` if
|
|
1141
|
+
* the server reported a per-id failure.
|
|
1142
|
+
*/
|
|
1143
|
+
static killMany(ids: string[], opts?: {
|
|
1144
|
+
wait?: boolean;
|
|
1145
|
+
requestTimeout?: number;
|
|
1146
|
+
config?: ConnectionConfig;
|
|
1147
|
+
}): Promise<Record<string, {
|
|
1148
|
+
killed?: boolean;
|
|
1149
|
+
queued?: boolean;
|
|
1150
|
+
error?: string;
|
|
1151
|
+
}>>;
|
|
1120
1152
|
/**
|
|
1121
1153
|
* Check if this sandbox is currently running.
|
|
1122
1154
|
*
|
package/dist/index.js
CHANGED
|
@@ -127,11 +127,6 @@ function getDispatcher() {
|
|
|
127
127
|
if (process.env.DECLAW_SDK_DISABLE_DISPATCHER) {
|
|
128
128
|
return void 0;
|
|
129
129
|
}
|
|
130
|
-
const origEmit = process.emitWarning;
|
|
131
|
-
process.emitWarning = ((warning, ...rest) => {
|
|
132
|
-
if (rest[0] === "UNDICI-H2") return;
|
|
133
|
-
return origEmit.call(process, warning, ...rest);
|
|
134
|
-
});
|
|
135
130
|
const undici = await import("undici");
|
|
136
131
|
const connOverride = parseInt(process.env.DECLAW_SDK_CONNECTIONS || "", 10);
|
|
137
132
|
const connections = Number.isFinite(connOverride) && connOverride > 0 ? connOverride : 64;
|
|
@@ -2025,17 +2020,41 @@ var Sandbox = class _Sandbox {
|
|
|
2025
2020
|
nextToken: data.next_token ?? void 0
|
|
2026
2021
|
};
|
|
2027
2022
|
}
|
|
2023
|
+
async kill(arg) {
|
|
2024
|
+
const opts = typeof arg === "number" ? { requestTimeout: arg } : arg ?? {};
|
|
2025
|
+
const wait = opts.wait === true;
|
|
2026
|
+
const path = wait ? `/sandboxes/${this._sandboxId}` : `/sandboxes/${this._sandboxId}?async=true`;
|
|
2027
|
+
const data = await this._client.delete(path, {
|
|
2028
|
+
timeout: opts.requestTimeout
|
|
2029
|
+
});
|
|
2030
|
+
if (!wait) {
|
|
2031
|
+
return data.queued ?? true;
|
|
2032
|
+
}
|
|
2033
|
+
return data.killed ?? false;
|
|
2034
|
+
}
|
|
2028
2035
|
/**
|
|
2029
|
-
* Kill
|
|
2036
|
+
* Kill many sandboxes in a single request. Server fans out internally
|
|
2037
|
+
* with bounded concurrency, eliminating per-id round-trip overhead.
|
|
2030
2038
|
*
|
|
2031
|
-
* @param
|
|
2032
|
-
* @
|
|
2039
|
+
* @param ids - sandbox IDs to kill.
|
|
2040
|
+
* @param opts.wait - If true, wait for each VM's teardown to finish
|
|
2041
|
+
* before returning. Default is false (server returns 202 once the
|
|
2042
|
+
* request is queued).
|
|
2043
|
+
* @param opts.requestTimeout - Per-request timeout in milliseconds.
|
|
2044
|
+
* @returns Map of sandbox-id → outcome. Outcome is `{killed: true}`
|
|
2045
|
+
* (wait=true), `{queued: true}` (default), or `{error: string}` if
|
|
2046
|
+
* the server reported a per-id failure.
|
|
2033
2047
|
*/
|
|
2034
|
-
async
|
|
2035
|
-
|
|
2036
|
-
|
|
2048
|
+
static async killMany(ids, opts) {
|
|
2049
|
+
if (!ids || ids.length === 0) return {};
|
|
2050
|
+
const config = opts?.config ?? new ConnectionConfig();
|
|
2051
|
+
const client = getSharedClient(config);
|
|
2052
|
+
const path = opts?.wait ? "/sandboxes/kill-many" : "/sandboxes/kill-many?async=true";
|
|
2053
|
+
const data = await client.post(path, {
|
|
2054
|
+
json: { sandbox_ids: ids },
|
|
2055
|
+
timeout: opts?.requestTimeout
|
|
2037
2056
|
});
|
|
2038
|
-
return data.
|
|
2057
|
+
return data.results ?? {};
|
|
2039
2058
|
}
|
|
2040
2059
|
/**
|
|
2041
2060
|
* Check if this sandbox is currently running.
|