withruntime 0.17.1 → 0.17.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/DAYTONA.md +33 -2
- package/compatibility-lock.json +15 -15
- package/dist/billing-cli.d.ts +4 -2
- package/dist/billing-cli.js +27 -1
- package/dist/cli.js +17 -2
- package/dist/daytona/index.d.ts +61 -0
- package/dist/daytona/index.js +57 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/products/apps.d.ts +6 -2
- package/dist/products/browser.d.ts +4 -2
- package/dist/products/browser.js +4 -2
- package/dist/products/limits.d.ts +18 -0
- package/dist/products/observability.d.ts +1 -1
- package/dist/transport.d.ts +1 -1
- package/dist/transport.js +1 -1
- package/dist/wallet.d.ts +12 -0
- package/dist/wallet.js +7 -0
- package/package.json +1 -1
package/DAYTONA.md
CHANGED
|
@@ -17,8 +17,8 @@ from withruntime.daytona import AsyncDaytona # was: from daytona import AsyncDa
|
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
The mapping was written against `@daytona/sdk` 0.220.0 and `daytona` 0.220.0
|
|
20
|
-
on PyPI, and checked against `@daytona/sdk` and `daytona` 0.
|
|
21
|
-
|
|
20
|
+
on PyPI, and checked against `@daytona/sdk` and `daytona` 0.225.0 on
|
|
21
|
+
18 October 2026 (below, "0.225.0"). The exact releases and artifact hashes
|
|
22
22
|
are kept in `compatibility-lock.json`.
|
|
23
23
|
|
|
24
24
|
## Keys
|
|
@@ -126,6 +126,37 @@ Some differences are not refusals:
|
|
|
126
126
|
- `autoArchiveInterval` is recorded only: Runtime has no archive tier.
|
|
127
127
|
- Runtime's stock image is Ubuntu 24.04 with Python 3.12, Node.js 24 and Bun.
|
|
128
128
|
|
|
129
|
+
## 0.225.0, 18 October 2026
|
|
130
|
+
|
|
131
|
+
Reviewed the published npm tarballs for `@daytona/sdk`, `@daytona/api-client`,
|
|
132
|
+
`@daytona/toolbox-api-client` and `@daytona/analytics-api-client` 0.224.1 →
|
|
133
|
+
0.225.0, and the PyPI wheel and sdist for `daytona` 0.224.1 → 0.225.0, each its
|
|
134
|
+
registry's latest when checked. Every pinned file matched the hash already in
|
|
135
|
+
`compatibility-lock.json`, every new file its registry's SHA-512 integrity or
|
|
136
|
+
SHA-256 digest, and the wheel's Python source is byte for byte its sdist's.
|
|
137
|
+
Nothing was installed, imported or run. No declaration of `@daytona/sdk` and no
|
|
138
|
+
Python source of `daytona` changed: only versions and the exact pins on the
|
|
139
|
+
three API clients. The one API change is in `@daytona/api-client` (and its
|
|
140
|
+
PyPI twins): `GpuType` gains `B200`.
|
|
141
|
+
|
|
142
|
+
| Upstream change | Drop-in disposition |
|
|
143
|
+
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
144
|
+
| `GpuType.B200` | Exported, with every other `GpuType`. A create naming any GPU type is refused (`NotSupportedError`, "Runtime runs sandboxes on CPUs") before anything is made. |
|
|
145
|
+
|
|
146
|
+
Two gaps near it are closed with the review. `@daytona/sdk` re-exports
|
|
147
|
+
`GpuType`, `SnapshotState`, `SandboxListSortField`, `SandboxListSortDirection`,
|
|
148
|
+
`SandboxClass`, `ListSecretsPaginatedSortEnum` and
|
|
149
|
+
`ListSecretsPaginatedOrderEnum`, and `daytona` exports `GpuType`,
|
|
150
|
+
`SandboxClass`, `SandboxListSortField` and `SandboxListSortDirection`; the
|
|
151
|
+
drop-ins exported none of them, so code importing one failed. They are exported
|
|
152
|
+
now with upstream's values, and the sort enums drive `list`. Python refused
|
|
153
|
+
`Resources(gpu=...)` but made a CPU sandbox for `Resources(gpu_type=...)`
|
|
154
|
+
alone, which Daytona sends as a GPU request; it is refused now, as in
|
|
155
|
+
TypeScript. `tests/daytona/daytona-0-225-0.test.ts` and
|
|
156
|
+
`sdks/python/tests/test_daytona_0_225_0.py` fail without this change. The
|
|
157
|
+
oracle was not run against the new release, since it executes Daytona's code;
|
|
158
|
+
the provider remains marked `partial`.
|
|
159
|
+
|
|
129
160
|
## 0.224.1, 15 October 2026
|
|
130
161
|
|
|
131
162
|
Reviewed the published npm tarballs for `@daytona/sdk`, `@daytona/api-client`,
|
package/compatibility-lock.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"checkedAt": "2026-10-
|
|
3
|
+
"checkedAt": "2026-10-18",
|
|
4
4
|
"providers": [
|
|
5
5
|
{
|
|
6
6
|
"id": "e2b",
|
|
@@ -49,42 +49,42 @@
|
|
|
49
49
|
{
|
|
50
50
|
"registry": "npm",
|
|
51
51
|
"name": "@daytona/sdk",
|
|
52
|
-
"version": "0.
|
|
52
|
+
"version": "0.225.0",
|
|
53
53
|
"artifacts": {
|
|
54
|
-
"0.
|
|
54
|
+
"0.225.0": "sha512-PeE4INyipIP6HzSNAZTfR+As2u+rwddCAniCk9a/gEjEh4JpvyCyTNASjikpsTcZSn1XvksmxhxKFodv6x0YYQ=="
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"registry": "pypi",
|
|
59
59
|
"name": "daytona",
|
|
60
|
-
"version": "0.
|
|
60
|
+
"version": "0.225.0",
|
|
61
61
|
"artifacts": {
|
|
62
|
-
"daytona-0.
|
|
63
|
-
"daytona-0.
|
|
62
|
+
"daytona-0.225.0-py3-none-any.whl": "sha256-8cdeb78e5d34b08c4818bd9dfa67fb693152c37eb0907067980fc1bd031256e5",
|
|
63
|
+
"daytona-0.225.0.tar.gz": "sha256-7fd2e9422360ca2d3b393af137231f4fd9d9a128c9a4070d231f8c776e446dc8"
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"registry": "npm",
|
|
68
68
|
"name": "@daytona/api-client",
|
|
69
|
-
"version": "0.
|
|
69
|
+
"version": "0.225.0",
|
|
70
70
|
"artifacts": {
|
|
71
|
-
"0.
|
|
71
|
+
"0.225.0": "sha512-P0HJOfLc3LGzeRdRhIogaA2q4+Of84UBCMWCFfnDeJ91pxQ4FExJ2KY5uF631MoNx1F+u2tc7fl0z0JuBNa/Uw=="
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"registry": "npm",
|
|
76
76
|
"name": "@daytona/toolbox-api-client",
|
|
77
|
-
"version": "0.
|
|
77
|
+
"version": "0.225.0",
|
|
78
78
|
"artifacts": {
|
|
79
|
-
"0.
|
|
79
|
+
"0.225.0": "sha512-+LGQtqZTY0SBGMut3bhCPNU/cvfwKQcU1tAoVStZD9mM7EHWPey2TkMF+ZW0Fq2waWPEH2g7JhWWz9YFBUBQeQ=="
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
83
|
"registry": "npm",
|
|
84
84
|
"name": "@daytona/analytics-api-client",
|
|
85
|
-
"version": "0.
|
|
85
|
+
"version": "0.225.0",
|
|
86
86
|
"artifacts": {
|
|
87
|
-
"0.
|
|
87
|
+
"0.225.0": "sha512-zsj9YjBpXmQ2owhJF7+LEpKnekYy9D4wA52U6P7jsB7ng5KeSQ+3+0MFR3Bj3Cy3HIcKNW96e30F6olbiK/q+A=="
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
]
|
|
@@ -248,10 +248,10 @@
|
|
|
248
248
|
{
|
|
249
249
|
"registry": "pypi",
|
|
250
250
|
"name": "prime-sandboxes",
|
|
251
|
-
"version": "0.4.
|
|
251
|
+
"version": "0.4.6",
|
|
252
252
|
"artifacts": {
|
|
253
|
-
"prime_sandboxes-0.4.
|
|
254
|
-
"prime_sandboxes-0.4.
|
|
253
|
+
"prime_sandboxes-0.4.6-py3-none-any.whl": "sha256-e97c6e70c032e0b6d7defdb26d6192a02643ad279af1a4726ebceb35ee89d70c",
|
|
254
|
+
"prime_sandboxes-0.4.6.tar.gz": "sha256-23204a465500e9c20639e3043e92d703712d8c80b94d6434bfeb82c787102915"
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
]
|
package/dist/billing-cli.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Runtime } from "./client.js";
|
|
2
|
-
import type { claimWalletAccount, openWalletAccount } from "./wallet.js";
|
|
2
|
+
import type { claimWalletAccount, openWalletAccount, rekeyWalletAccount } from "./wallet.js";
|
|
3
3
|
type Out = {
|
|
4
4
|
json: boolean;
|
|
5
5
|
write: (text: string) => void;
|
|
@@ -9,11 +9,13 @@ type Args = {
|
|
|
9
9
|
positional: string[];
|
|
10
10
|
flags: Map<string, string[]>;
|
|
11
11
|
};
|
|
12
|
-
export declare const BILLING_HELP = "runtime billing <command>\n\n topup <usd> [--wait] Buy credit with stablecoins (USDC on Base, Solana or Tempo).\n Prints an address per network and the exact amount to send.\n Send exactly that, from any wallet, before the time shown.\n --wait keeps checking until the credit lands.\n status <id> [--wait] Whether a top-up's payment has arrived\n\n auto-top-up Show auto top-up: the card is charged when credit runs low\n auto-top-up on [--below <usd>] [--amount <usd>] [--monthly <usd>]\n Charge <amount> plus tax when credit falls below <below>,\n at most <monthly> a month: $10, $20 and $500 unless given,\n or as last set. At least $10, $20 and $100. 5% more as\n credit each time, and 200 sandboxes at once while on.\n A person saves the card at\n https://withruntime.com/account/billing\n auto-top-up off Turn it off. Running sandboxes are never stopped.\n\n No account yet? An agent can open one with a wallet alone:\n topup <usd> --new-account --accept-terms [--wait]\n Opens an account and its first top-up. Prints a claim code,\n shown once. --wait saves the key here once the money lands.\n claim <code> [--wait] Exchange a paid account's claim code for its key, saved here\n\n $10 to $10,000 a top-up; $500 in an account's first week. By card:\n https://withruntime.com/account/billing\n";
|
|
12
|
+
export declare const BILLING_HELP = "runtime billing <command>\n\n topup <usd> [--wait] Buy credit with stablecoins (USDC on Base, Solana or Tempo).\n Prints an address per network and the exact amount to send.\n Send exactly that, from any wallet, before the time shown.\n --wait keeps checking until the credit lands.\n status <id> [--wait] Whether a top-up's payment has arrived\n\n auto-top-up Show auto top-up: the card is charged when credit runs low\n auto-top-up on [--below <usd>] [--amount <usd>] [--monthly <usd>]\n Charge <amount> plus tax when credit falls below <below>,\n at most <monthly> a month: $10, $20 and $500 unless given,\n or as last set. At least $10, $20 and $100. 5% more as\n credit each time, and 200 sandboxes at once while on.\n A person saves the card at\n https://withruntime.com/account/billing\n auto-top-up off Turn it off. Running sandboxes are never stopped.\n\n No account yet? An agent can open one with a wallet alone:\n topup <usd> --new-account --accept-terms [--wait]\n Opens an account and its first top-up. Prints a claim code,\n shown once. --wait saves the key here once the money lands.\n claim <code> [--wait] Exchange a paid account's claim code for its key, saved here\n claim <code> --new-key Lost the key? Replace it with the claim code. The new key is\n saved here; every other key stops working.\n\n $10 to $10,000 a top-up; $500 in an account's first week. By card:\n https://withruntime.com/account/billing\n";
|
|
13
13
|
/** Wallet-account commands need no key, and the claim saves the one they get. */
|
|
14
14
|
export type WalletDeps = {
|
|
15
15
|
open: typeof openWalletAccount;
|
|
16
16
|
claim: typeof claimWalletAccount;
|
|
17
|
+
/** Replaces a lost key with the claim code. */
|
|
18
|
+
rekey: typeof rekeyWalletAccount;
|
|
17
19
|
/** Saves a claimed key as this machine's connection, as `login --with-key` does. */
|
|
18
20
|
save: (key: string, orgId: string) => Promise<void>;
|
|
19
21
|
};
|
package/dist/billing-cli.js
CHANGED
|
@@ -23,6 +23,8 @@ export const BILLING_HELP = `runtime billing <command>
|
|
|
23
23
|
Opens an account and its first top-up. Prints a claim code,
|
|
24
24
|
shown once. --wait saves the key here once the money lands.
|
|
25
25
|
claim <code> [--wait] Exchange a paid account's claim code for its key, saved here
|
|
26
|
+
claim <code> --new-key Lost the key? Replace it with the claim code. The new key is
|
|
27
|
+
saved here; every other key stops working.
|
|
26
28
|
|
|
27
29
|
$10 to $10,000 a top-up; $500 in an account's first week. By card:
|
|
28
30
|
https://withruntime.com/account/billing
|
|
@@ -53,7 +55,15 @@ function describe(topup) {
|
|
|
53
55
|
lines.push("", ...(topup.payBy ? [`Send before ${topup.payBy}.`] : []), "A different amount, token or network cannot be matched or returned automatically.", `The credit lands a few minutes after the transfer: \`${me} billing status ${topup.purchaseId}\`.`);
|
|
54
56
|
return lines.join("\n");
|
|
55
57
|
}
|
|
56
|
-
const FLAGS = new Set([
|
|
58
|
+
const FLAGS = new Set([
|
|
59
|
+
"wait",
|
|
60
|
+
"new-account",
|
|
61
|
+
"accept-terms",
|
|
62
|
+
"below",
|
|
63
|
+
"amount",
|
|
64
|
+
"monthly",
|
|
65
|
+
"new-key",
|
|
66
|
+
]);
|
|
57
67
|
export async function billingCommand(argv, args, out, client, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), wallet) {
|
|
58
68
|
const [verb, value] = args.positional;
|
|
59
69
|
const has = (name) => args.flags.get(name)?.at(-1) === "true";
|
|
@@ -68,6 +78,11 @@ export async function billingCommand(argv, args, out, client, sleep = (ms) => ne
|
|
|
68
78
|
if ((verb === "topup" && has("new-account")) || verb === "claim") {
|
|
69
79
|
if (!wallet)
|
|
70
80
|
throw usage("Wallet accounts are not available here.");
|
|
81
|
+
if (has("new-key")) {
|
|
82
|
+
if (verb !== "claim")
|
|
83
|
+
throw usage("--new-key is for `billing claim <code> --new-key`.");
|
|
84
|
+
return rekeyCommand(value, out, wallet);
|
|
85
|
+
}
|
|
71
86
|
return walletCommand(verb, value, has("accept-terms"), wait, out, sleep, wallet);
|
|
72
87
|
}
|
|
73
88
|
if (verb === "auto-top-up")
|
|
@@ -177,6 +192,17 @@ function dollarsOf(value) {
|
|
|
177
192
|
throw usage("Say how many dollars of credit to buy, such as `billing topup 20`.");
|
|
178
193
|
return usd;
|
|
179
194
|
}
|
|
195
|
+
/** `claim <code> --new-key`: the key was lost; the claim code makes a new one. */
|
|
196
|
+
async function rekeyCommand(code, out, wallet) {
|
|
197
|
+
if (!code)
|
|
198
|
+
throw usage("Give the claim code.");
|
|
199
|
+
const replaced = await wallet.rekey(code);
|
|
200
|
+
await wallet.save(replaced.apiKey, replaced.orgId);
|
|
201
|
+
out.write(out.json
|
|
202
|
+
? JSON.stringify({ status: "replaced", orgId: replaced.orgId, connected: true })
|
|
203
|
+
: "Replaced. This machine is connected with the new key, saved and not shown. Every other key of this account no longer works.");
|
|
204
|
+
return 0;
|
|
205
|
+
}
|
|
180
206
|
/** `topup <usd> --new-account` and `claim <code>`: an account with no key. */
|
|
181
207
|
async function walletCommand(verb, value, acceptTerms, wait, out, sleep, wallet) {
|
|
182
208
|
const me = named("runtime");
|
package/dist/cli.js
CHANGED
|
@@ -837,6 +837,7 @@ export async function run(argv, env = process.env, out = defaultOut(argv)) {
|
|
|
837
837
|
],
|
|
838
838
|
["used, last 24 hours", usd(l.daily.usedMicros)],
|
|
839
839
|
...(l.daily.remainingMicros === null ? [] : [["left", usd(l.daily.remainingMicros)]]),
|
|
840
|
+
...(l.credit ? [["credit", creditLine(l.credit, usd)]] : []),
|
|
840
841
|
...(l.trial ? [["free time", trialLeft(l.trial)]] : []),
|
|
841
842
|
...(spend?.pilot
|
|
842
843
|
? [
|
|
@@ -845,6 +846,8 @@ export async function run(argv, env = process.env, out = defaultOut(argv)) {
|
|
|
845
846
|
]
|
|
846
847
|
: []),
|
|
847
848
|
]), l);
|
|
849
|
+
if (l.credit?.addedBy === "agent" && !out.json)
|
|
850
|
+
out.write(`No person pays for this account, so add credit yourself: \`${me} billing topup <usd>\`.`);
|
|
848
851
|
return 0;
|
|
849
852
|
}
|
|
850
853
|
if (command === "secrets")
|
|
@@ -929,8 +932,8 @@ export async function run(argv, env = process.env, out = defaultOut(argv)) {
|
|
|
929
932
|
if (command === "billing") {
|
|
930
933
|
product = "billing";
|
|
931
934
|
const origins = connectionOrigins(env);
|
|
932
|
-
const { claimWalletAccount, openWalletAccount } = await import("./wallet.js");
|
|
933
|
-
return billingCommand(rest, parse(rest, ["wait", "new-account", "accept-terms"], ["below", "amount", "monthly"]), out, () => client(env), undefined, {
|
|
935
|
+
const { claimWalletAccount, openWalletAccount, rekeyWalletAccount } = await import("./wallet.js");
|
|
936
|
+
return billingCommand(rest, parse(rest, ["wait", "new-account", "accept-terms", "new-key"], ["below", "amount", "monthly"]), out, () => client(env), undefined, {
|
|
934
937
|
open: (input) => {
|
|
935
938
|
checkBrowserOrigins(origins);
|
|
936
939
|
return openWalletAccount(input, { authUrl: origins.auth });
|
|
@@ -939,6 +942,10 @@ export async function run(argv, env = process.env, out = defaultOut(argv)) {
|
|
|
939
942
|
checkBrowserOrigins(origins);
|
|
940
943
|
return claimWalletAccount(code, { authUrl: origins.auth });
|
|
941
944
|
},
|
|
945
|
+
rekey: (code) => {
|
|
946
|
+
checkBrowserOrigins(origins);
|
|
947
|
+
return rekeyWalletAccount(code, { authUrl: origins.auth });
|
|
948
|
+
},
|
|
942
949
|
save: (key, orgId) => {
|
|
943
950
|
checkBrowserOrigins(origins);
|
|
944
951
|
return connectionStore(env).save({
|
|
@@ -1356,6 +1363,14 @@ export function outOfMemoryLines(memory) {
|
|
|
1356
1363
|
/** Dollars from integer microdollars: cents from a dollar up, four places
|
|
1357
1364
|
* below one, and every place below a hundredth of a cent, so a short trial
|
|
1358
1365
|
* test never reads as $0.0000. */
|
|
1366
|
+
function creditLine(c, usd) {
|
|
1367
|
+
if (c.state === "empty")
|
|
1368
|
+
return "none left: add credit to keep going";
|
|
1369
|
+
const days = c.runwayDays === null
|
|
1370
|
+
? "nothing is being spent"
|
|
1371
|
+
: `lasts about ${Math.max(1, Math.round(c.runwayDays))} ${Math.round(c.runwayDays) <= 1 ? "day" : "days"} at this month's pace`;
|
|
1372
|
+
return `${usd(c.availableMicros)} left, ${days}${c.state === "low" ? " (low)" : ""}`;
|
|
1373
|
+
}
|
|
1359
1374
|
function dollars(micros) {
|
|
1360
1375
|
const value = BigInt(micros);
|
|
1361
1376
|
const sign = value < 0n ? "-" : "";
|
package/dist/daytona/index.d.ts
CHANGED
|
@@ -19,6 +19,67 @@ export declare const SandboxState: {
|
|
|
19
19
|
readonly DESTROYED: "destroyed";
|
|
20
20
|
};
|
|
21
21
|
export type SandboxState = (typeof SandboxState)[keyof typeof SandboxState];
|
|
22
|
+
export declare const GpuType: {
|
|
23
|
+
readonly H100: "H100";
|
|
24
|
+
readonly H200: "H200";
|
|
25
|
+
readonly B200: "B200";
|
|
26
|
+
readonly B300: "B300";
|
|
27
|
+
readonly RTX_PRO_6000: "RTX-PRO-6000";
|
|
28
|
+
readonly RTX_4090: "RTX-4090";
|
|
29
|
+
readonly RTX_5090: "RTX-5090";
|
|
30
|
+
readonly MI355X: "MI355X";
|
|
31
|
+
readonly UNKNOWN_DEFAULT_OPEN_API: "11184809";
|
|
32
|
+
};
|
|
33
|
+
export type GpuType = (typeof GpuType)[keyof typeof GpuType];
|
|
34
|
+
export declare const SnapshotState: {
|
|
35
|
+
readonly BUILDING: "building";
|
|
36
|
+
readonly PENDING: "pending";
|
|
37
|
+
readonly PULLING: "pulling";
|
|
38
|
+
readonly SNAPSHOTTING: "snapshotting";
|
|
39
|
+
readonly ACTIVE: "active";
|
|
40
|
+
readonly INACTIVE: "inactive";
|
|
41
|
+
readonly ERROR: "error";
|
|
42
|
+
readonly BUILD_FAILED: "build_failed";
|
|
43
|
+
readonly REMOVING: "removing";
|
|
44
|
+
readonly UNKNOWN_DEFAULT_OPEN_API: "11184809";
|
|
45
|
+
};
|
|
46
|
+
export type SnapshotState = (typeof SnapshotState)[keyof typeof SnapshotState];
|
|
47
|
+
export declare const SandboxListSortField: {
|
|
48
|
+
readonly NAME: "name";
|
|
49
|
+
readonly CPU: "cpu";
|
|
50
|
+
readonly MEMORY_GIB: "memoryGib";
|
|
51
|
+
readonly DISK_GIB: "diskGib";
|
|
52
|
+
readonly LAST_ACTIVITY_AT: "lastActivityAt";
|
|
53
|
+
readonly CREATED_AT: "createdAt";
|
|
54
|
+
readonly UNKNOWN_DEFAULT_OPEN_API: "11184809";
|
|
55
|
+
};
|
|
56
|
+
export type SandboxListSortField = (typeof SandboxListSortField)[keyof typeof SandboxListSortField];
|
|
57
|
+
export declare const SandboxListSortDirection: {
|
|
58
|
+
readonly ASC: "asc";
|
|
59
|
+
readonly DESC: "desc";
|
|
60
|
+
readonly UNKNOWN_DEFAULT_OPEN_API: "11184809";
|
|
61
|
+
};
|
|
62
|
+
export type SandboxListSortDirection = (typeof SandboxListSortDirection)[keyof typeof SandboxListSortDirection];
|
|
63
|
+
export declare const SandboxClass: {
|
|
64
|
+
readonly LINUX_VM: "linux-vm";
|
|
65
|
+
readonly CONTAINER: "container";
|
|
66
|
+
readonly WINDOWS: "windows";
|
|
67
|
+
readonly UNKNOWN_DEFAULT_OPEN_API: "11184809";
|
|
68
|
+
};
|
|
69
|
+
export type SandboxClass = (typeof SandboxClass)[keyof typeof SandboxClass];
|
|
70
|
+
export declare const ListSecretsPaginatedSortEnum: {
|
|
71
|
+
readonly NAME: "name";
|
|
72
|
+
readonly CREATED_AT: "createdAt";
|
|
73
|
+
readonly UPDATED_AT: "updatedAt";
|
|
74
|
+
readonly UNKNOWN_DEFAULT_OPEN_API: "11184809";
|
|
75
|
+
};
|
|
76
|
+
export type ListSecretsPaginatedSortEnum = (typeof ListSecretsPaginatedSortEnum)[keyof typeof ListSecretsPaginatedSortEnum];
|
|
77
|
+
export declare const ListSecretsPaginatedOrderEnum: {
|
|
78
|
+
readonly ASC: "asc";
|
|
79
|
+
readonly DESC: "desc";
|
|
80
|
+
readonly UNKNOWN_DEFAULT_OPEN_API: "11184809";
|
|
81
|
+
};
|
|
82
|
+
export type ListSecretsPaginatedOrderEnum = (typeof ListSecretsPaginatedOrderEnum)[keyof typeof ListSecretsPaginatedOrderEnum];
|
|
22
83
|
export declare const LspLanguageId: {
|
|
23
84
|
(...args: unknown[]): never;
|
|
24
85
|
new (...args: unknown[]): never;
|
package/dist/daytona/index.js
CHANGED
|
@@ -26,6 +26,63 @@ export const SandboxState = {
|
|
|
26
26
|
DESTROYING: "destroying",
|
|
27
27
|
DESTROYED: "destroyed",
|
|
28
28
|
};
|
|
29
|
+
/* Daytona's other enums, re-exported by @daytona/sdk from its API client, so
|
|
30
|
+
code importing them loads. A GPU type on create is refused (Runtime runs
|
|
31
|
+
sandboxes on CPUs); the sort field and direction drive daytona.list. */
|
|
32
|
+
export const GpuType = {
|
|
33
|
+
H100: "H100",
|
|
34
|
+
H200: "H200",
|
|
35
|
+
B200: "B200",
|
|
36
|
+
B300: "B300",
|
|
37
|
+
RTX_PRO_6000: "RTX-PRO-6000",
|
|
38
|
+
RTX_4090: "RTX-4090",
|
|
39
|
+
RTX_5090: "RTX-5090",
|
|
40
|
+
MI355X: "MI355X",
|
|
41
|
+
UNKNOWN_DEFAULT_OPEN_API: "11184809",
|
|
42
|
+
};
|
|
43
|
+
export const SnapshotState = {
|
|
44
|
+
BUILDING: "building",
|
|
45
|
+
PENDING: "pending",
|
|
46
|
+
PULLING: "pulling",
|
|
47
|
+
SNAPSHOTTING: "snapshotting",
|
|
48
|
+
ACTIVE: "active",
|
|
49
|
+
INACTIVE: "inactive",
|
|
50
|
+
ERROR: "error",
|
|
51
|
+
BUILD_FAILED: "build_failed",
|
|
52
|
+
REMOVING: "removing",
|
|
53
|
+
UNKNOWN_DEFAULT_OPEN_API: "11184809",
|
|
54
|
+
};
|
|
55
|
+
export const SandboxListSortField = {
|
|
56
|
+
NAME: "name",
|
|
57
|
+
CPU: "cpu",
|
|
58
|
+
MEMORY_GIB: "memoryGib",
|
|
59
|
+
DISK_GIB: "diskGib",
|
|
60
|
+
LAST_ACTIVITY_AT: "lastActivityAt",
|
|
61
|
+
CREATED_AT: "createdAt",
|
|
62
|
+
UNKNOWN_DEFAULT_OPEN_API: "11184809",
|
|
63
|
+
};
|
|
64
|
+
export const SandboxListSortDirection = {
|
|
65
|
+
ASC: "asc",
|
|
66
|
+
DESC: "desc",
|
|
67
|
+
UNKNOWN_DEFAULT_OPEN_API: "11184809",
|
|
68
|
+
};
|
|
69
|
+
export const SandboxClass = {
|
|
70
|
+
LINUX_VM: "linux-vm",
|
|
71
|
+
CONTAINER: "container",
|
|
72
|
+
WINDOWS: "windows",
|
|
73
|
+
UNKNOWN_DEFAULT_OPEN_API: "11184809",
|
|
74
|
+
};
|
|
75
|
+
export const ListSecretsPaginatedSortEnum = {
|
|
76
|
+
NAME: "name",
|
|
77
|
+
CREATED_AT: "createdAt",
|
|
78
|
+
UPDATED_AT: "updatedAt",
|
|
79
|
+
UNKNOWN_DEFAULT_OPEN_API: "11184809",
|
|
80
|
+
};
|
|
81
|
+
export const ListSecretsPaginatedOrderEnum = {
|
|
82
|
+
ASC: "asc",
|
|
83
|
+
DESC: "desc",
|
|
84
|
+
UNKNOWN_DEFAULT_OPEN_API: "11184809",
|
|
85
|
+
};
|
|
29
86
|
/** A stand-in for a Daytona export Runtime has no counterpart for. Importing
|
|
30
87
|
* it works; using it throws NotSupportedError naming the alternative. */
|
|
31
88
|
function unsupportedExport(name, alternative) {
|
package/dist/index.d.ts
CHANGED
|
@@ -72,7 +72,7 @@ export declare class Sandbox extends SandboxClass {
|
|
|
72
72
|
}
|
|
73
73
|
export type { RuntimeOptions as ClientOptions };
|
|
74
74
|
export { identityToken, type IdentityToken } from "./identity.js";
|
|
75
|
-
export { openWalletAccount, claimWalletAccount, type OpenedWalletAccount, type WalletClaim, type WalletOptions, } from "./wallet.js";
|
|
75
|
+
export { openWalletAccount, claimWalletAccount, rekeyWalletAccount, type OpenedWalletAccount, type WalletClaim, type WalletRekey, type WalletOptions, } from "./wallet.js";
|
|
76
76
|
export type { Topup } from "./products/billing.js";
|
|
77
77
|
export type { NewKey, LimitedKey, LimitedKeyAction, MadeKey, ListedKey, KeyUsage, } from "./products/api-keys.js";
|
|
78
78
|
export type { SsoConnection, SsoStatus } from "./products/sso.js";
|
package/dist/index.js
CHANGED
|
@@ -47,4 +47,4 @@ export class Sandbox extends SandboxClass {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
export { identityToken } from "./identity.js";
|
|
50
|
-
export { openWalletAccount, claimWalletAccount, } from "./wallet.js";
|
|
50
|
+
export { openWalletAccount, claimWalletAccount, rekeyWalletAccount, } from "./wallet.js";
|
package/dist/products/apps.d.ts
CHANGED
|
@@ -82,6 +82,8 @@ export type AppDeploy = {
|
|
|
82
82
|
lastOutput: string;
|
|
83
83
|
};
|
|
84
84
|
});
|
|
85
|
+
/** `image`: an image of this account (id, name, name:tag or name@version),
|
|
86
|
+
* ready; the version records its id. */
|
|
85
87
|
export type DeployApp = ({
|
|
86
88
|
image: string;
|
|
87
89
|
build?: never;
|
|
@@ -93,8 +95,10 @@ export type DeployApp = ({
|
|
|
93
95
|
/** Carry the last deploy's environment, still sealed. With env, that
|
|
94
96
|
* environment with env's names set: change one value without sending the rest
|
|
95
97
|
* (needs a key that may reveal the App's secrets, secrets_reveal; else 403).
|
|
96
|
-
*
|
|
97
|
-
* environment came with
|
|
98
|
+
* For a build: only one a push to the production branch made, from the
|
|
99
|
+
* repository the environment came with. For an image: only from a key that
|
|
100
|
+
* may reveal the App's secrets, and only an environment named with an image
|
|
101
|
+
* deploy. Otherwise refused with keep_env_refused (409). */
|
|
98
102
|
keepEnv?: boolean;
|
|
99
103
|
port?: number;
|
|
100
104
|
healthPath?: string;
|
|
@@ -37,8 +37,10 @@ export type BrowserStartOptions = {
|
|
|
37
37
|
*
|
|
38
38
|
* Inside the sandbox the same browser is at http://127.0.0.1:9222. */
|
|
39
39
|
export declare function sandboxBrowser(t: Transport, sandbox: Sandbox): {
|
|
40
|
-
/** Starts Chromium and returns its CDP address.
|
|
41
|
-
* sandbox
|
|
40
|
+
/** Starts Chromium and returns its CDP address. A start in a new
|
|
41
|
+
* sandbox takes about 1 to 2 seconds: Chromium comes from the host. A
|
|
42
|
+
* sandbox from a custom image that is not Ubuntu 24.04 x86_64 installs it
|
|
43
|
+
* on the first start, about a minute; this waits for it (up to 10
|
|
42
44
|
* minutes, or the call's timeoutMs). Starting a running browser returns it
|
|
43
45
|
* as it is. */
|
|
44
46
|
start(input?: BrowserStartOptions, options?: RequestOptions): Promise<{
|
package/dist/products/browser.js
CHANGED
|
@@ -8,8 +8,10 @@ import { whileInstalling } from "../wait.js";
|
|
|
8
8
|
export function sandboxBrowser(t, sandbox) {
|
|
9
9
|
const base = () => `/v1/sandboxes/${encodeURIComponent(sandbox.id)}/browser`;
|
|
10
10
|
return {
|
|
11
|
-
/** Starts Chromium and returns its CDP address.
|
|
12
|
-
* sandbox
|
|
11
|
+
/** Starts Chromium and returns its CDP address. A start in a new
|
|
12
|
+
* sandbox takes about 1 to 2 seconds: Chromium comes from the host. A
|
|
13
|
+
* sandbox from a custom image that is not Ubuntu 24.04 x86_64 installs it
|
|
14
|
+
* on the first start, about a minute; this waits for it (up to 10
|
|
13
15
|
* minutes, or the call's timeoutMs). Starting a running browser returns it
|
|
14
16
|
* as it is. */
|
|
15
17
|
async start(input = {}, options) {
|
|
@@ -22,6 +22,24 @@ export type KeyLimits = {
|
|
|
22
22
|
* numbers a create past one is refused `quota_exceeded` by (its
|
|
23
23
|
* `details.limit` names the row). Null when they can't be read. */
|
|
24
24
|
account: AccountLimit[] | null;
|
|
25
|
+
/** The account's prepaid credit and how long it lasts. */
|
|
26
|
+
credit: {
|
|
27
|
+
/** Credit left to spend now, in microdollars. */
|
|
28
|
+
availableMicros: string;
|
|
29
|
+
/** What the account spends in a day at this month's pace, or null when
|
|
30
|
+
* nothing has been spent yet. */
|
|
31
|
+
dailyPaceMicros: string | null;
|
|
32
|
+
/** Days the credit lasts at that pace, or null when nothing is being spent. */
|
|
33
|
+
runwayDays: number | null;
|
|
34
|
+
/** `state` is "low" when the runway is under this many days. */
|
|
35
|
+
lowBelowDays: number;
|
|
36
|
+
/** ok: enough. low: under `lowBelowDays` of runway. empty: none left. */
|
|
37
|
+
state: "ok" | "low" | "empty";
|
|
38
|
+
/** owner: a person pays for this account. agent: it was opened with a
|
|
39
|
+
* wallet and no person pays, so its own agent adds credit with
|
|
40
|
+
* `runtime billing topup <usd>`. */
|
|
41
|
+
addedBy: "owner" | "agent";
|
|
42
|
+
};
|
|
25
43
|
};
|
|
26
44
|
/** One of the account's limits, as https://withruntime.com/account/limits shows it. */
|
|
27
45
|
export type AccountLimit = {
|
|
@@ -35,7 +35,7 @@ export type SandboxMetrics = {
|
|
|
35
35
|
latest: MetricPoint | null;
|
|
36
36
|
points: MetricPoint[];
|
|
37
37
|
};
|
|
38
|
-
export type WebhookEventType = "sandbox.created" | "sandbox.running" | "sandbox.paused" | "sandbox.woken" | "sandbox.stopped" | "sandbox.start_failed" | "sandbox.wake_failed" | "sandbox.host_unreachable" | "sandbox.host_reachable" | "sandbox.recovered" | "sandbox.recovery_failed" | "sandbox.files.changed" | "sandbox.out_of_memory" | "sandbox.secret_not_applied" | "snapshot.ready" | "snapshot.failed" | "snapshot.deleted" | "volume.ready" | "volume.failed" | "volume.deleted" | "volume.recovered" | "egress_secret.created" | "egress_secret.updated" | "egress_secret.deleted" | "upstream_proxy.set" | "upstream_proxy.removed";
|
|
38
|
+
export type WebhookEventType = "sandbox.created" | "sandbox.running" | "sandbox.paused" | "sandbox.woken" | "sandbox.stopped" | "sandbox.start_failed" | "sandbox.wake_failed" | "sandbox.host_unreachable" | "sandbox.host_reachable" | "sandbox.recovered" | "sandbox.recovery_failed" | "sandbox.files.changed" | "sandbox.out_of_memory" | "sandbox.secret_not_applied" | "snapshot.ready" | "snapshot.failed" | "snapshot.deleted" | "volume.ready" | "volume.failed" | "volume.deleted" | "volume.recovered" | "egress_secret.created" | "egress_secret.updated" | "egress_secret.deleted" | "upstream_proxy.set" | "upstream_proxy.removed" | "credit.low" | "credit.empty";
|
|
39
39
|
/** An event as /v1/events lists it and a webhook delivers it. */
|
|
40
40
|
export type RuntimeEvent = {
|
|
41
41
|
id: string;
|
package/dist/transport.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RuntimeError } from "./errors.js";
|
|
2
|
-
export declare const VERSION = "0.17.
|
|
2
|
+
export declare const VERSION = "0.17.2";
|
|
3
3
|
export declare const DEFAULT_BASE_URL = "https://api.withruntime.com";
|
|
4
4
|
/** Runtime's API as code inside a Runtime sandbox reaches it: the sandbox's
|
|
5
5
|
* own host sends each request on to DEFAULT_BASE_URL over HTTPS. The API runs
|
package/dist/transport.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConnectionError, DELIBERATE, errorFor, NOTHING_RAN, RuntimeError, WAITS_FOR_ROOM, } from "./errors.js";
|
|
2
2
|
import { describeRoute, envFetch, openWebSocket } from "./proxy.js";
|
|
3
3
|
import { warningText } from "./product-renames.js";
|
|
4
|
-
export const VERSION = "0.17.
|
|
4
|
+
export const VERSION = "0.17.2";
|
|
5
5
|
export const DEFAULT_BASE_URL = "https://api.withruntime.com";
|
|
6
6
|
/** Runtime's API as code inside a Runtime sandbox reaches it: the sandbox's
|
|
7
7
|
* own host sends each request on to DEFAULT_BASE_URL over HTTPS. The API runs
|
package/dist/wallet.d.ts
CHANGED
|
@@ -20,6 +20,14 @@ export type WalletClaim = {
|
|
|
20
20
|
/** What to do now, such as sending the top-up again when it has no address. */
|
|
21
21
|
next?: string;
|
|
22
22
|
};
|
|
23
|
+
export type WalletRekey = {
|
|
24
|
+
status: "replaced";
|
|
25
|
+
orgId: string;
|
|
26
|
+
/** The new key, shown once. The old one no longer works. */
|
|
27
|
+
apiKey: string;
|
|
28
|
+
/** The id of the key this replaced, or null when there was none to revoke. */
|
|
29
|
+
revokedKeyId: string | null;
|
|
30
|
+
};
|
|
23
31
|
/** Opens an account and a stablecoin top-up of `usd` dollars ($10 to $500,
|
|
24
32
|
* a new account's first week).
|
|
25
33
|
* `acceptTerms` must be true: opening one means agreeing to
|
|
@@ -31,3 +39,7 @@ export declare function openWalletAccount(input: {
|
|
|
31
39
|
/** Exchanges a paid account's claim code for its API key, once. Until the
|
|
32
40
|
* payment arrives it answers the top-up's status instead; call it again. */
|
|
33
41
|
export declare function claimWalletAccount(claimCode: string, options?: WalletOptions): Promise<WalletClaim>;
|
|
42
|
+
/** Replaces a lost API key with a new one, using the account's claim code. The
|
|
43
|
+
* account's every other key stops working. Refused (409) when the first key was never claimed or
|
|
44
|
+
* a person took the account over, and (429) past 3 times in 24 hours. */
|
|
45
|
+
export declare function rekeyWalletAccount(claimCode: string, options?: WalletOptions): Promise<WalletRekey>;
|
package/dist/wallet.js
CHANGED
|
@@ -47,3 +47,10 @@ export async function claimWalletAccount(claimCode, options = {}) {
|
|
|
47
47
|
const [, claim] = await post(options, "/api/wallet/claim", { claimCode });
|
|
48
48
|
return claim;
|
|
49
49
|
}
|
|
50
|
+
/** Replaces a lost API key with a new one, using the account's claim code. The
|
|
51
|
+
* account's every other key stops working. Refused (409) when the first key was never claimed or
|
|
52
|
+
* a person took the account over, and (429) past 3 times in 24 hours. */
|
|
53
|
+
export async function rekeyWalletAccount(claimCode, options = {}) {
|
|
54
|
+
const [, rekey] = await post(options, "/api/wallet/rekey", { claimCode });
|
|
55
|
+
return rekey;
|
|
56
|
+
}
|