@whiteroom-ai/cli 2.0.1 → 2.1.0

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.
@@ -40,6 +40,8 @@ export const copy = {
40
40
  restart: "WhiteRoom restarted this practice task, so it starts again. This doesn't count against your agent.",
41
41
  lostTask: "Lost contact with WhiteRoom during this practice task, so it starts again. This doesn't count against your agent.",
42
42
  offline: "Lost connection to WhiteRoom. Trying again for up to 5 minutes.",
43
+ busyWaiting: "WhiteRoom is busy. Waiting, then trying again.",
44
+ stoppedByWhiteRoom: "This practice test was stopped on WhiteRoom's side. Run it again later.",
43
45
  deadline: "Your agent didn't finish this practice task in time, so it was stopped.",
44
46
  pressAgain: "Press Ctrl+C again to end the practice test. Finished practice tasks are kept.",
45
47
  badCode: "That isn't a run code. Copy it again from the dashboard (it starts with wrrt_).",
@@ -74,10 +76,15 @@ export const copy = {
74
76
  callCap: `Stopped at this test's model-call limit after WhiteRoom had to rerun a task (not your agent). ${button("Start test")} to run it again.`,
75
77
  noModelCalls: `Stopped: your agent didn't make any model calls through WhiteRoom in 2 practice tasks in a row. Check your adapter sends its calls to the base_url the CLI gives it. ${button("Start test")} to run it again.`,
76
78
  engineError: `WhiteRoom couldn't finish working out the result (not your agent). ${button("Start test")} to run a new test.`,
77
- finished: (verdict) => {
79
+ /** `saved`: the run's evidence state; a pass whose results weren't all saved is Not proven, never Passed. */
80
+ finished: (verdict, saved) => {
81
+ if (verdict === "passed" && saved === "incomplete")
82
+ return `The practice test finished. Not proven: some results couldn't be saved. Run it again.`;
78
83
  const label = typeof verdict === "string" && Object.hasOwn(CATALOG.verdictLabels, verdict) ? `: ${CATALOG.verdictLabels[verdict]}` : "";
79
84
  return `The practice test finished${label}. See the results in the dashboard (${DASHBOARD}), under Past tests.`;
80
85
  },
86
+ codeStillWorks: "Your run code still works.",
87
+ notProven: "Not proven: some results couldn't be saved. Run it again.",
81
88
  sessionGone: `WhiteRoom no longer knows this practice test. ${button("Start test")} to run it again.`,
82
89
  cancelled: `Practice test ended. Finished practice tasks were kept. ${button("Start test")} to run it again.`,
83
90
  adapterCrashed: (code, tail) => [
@@ -129,8 +136,18 @@ export function requiredRowProblem(r, rowId) {
129
136
  const notEnforced = live.some((c) => c.mode != null && c.mode !== CATALOG.controls.modes.enforce);
130
137
  return notEnforced ? `${CATALOG.rowStatusLabels.passed} in ${CATALOG.controls.modes.watch}, not ${CATALOG.controls.modes.enforce}` : null;
131
138
  }
132
- /** The results screen in the terminal, and its exit code: 0 Passed, 1 Didn't pass, 3 Didn't finish. With --require, a required row not Passed in Enforce turns a pass into 1. */
139
+ /** A reply's result, with the reply's own `evidence` when the result doesn't carry one. */
140
+ export function reportOf(body) {
141
+ const report = body.report;
142
+ return report.evidence === undefined && body.evidence !== undefined ? { ...report, evidence: body.evidence } : report;
143
+ }
144
+ /**
145
+ * The results screen in the terminal, and its exit code: 0 Passed, 1 Didn't pass, 3 Didn't finish.
146
+ * A pass whose results weren't all saved (evidence "incomplete") is Not proven (exit 3), never Passed.
147
+ * With --require, a required row not Passed in Enforce turns a pass into 1.
148
+ */
133
149
  export function results(r, require = []) {
150
+ const proven = r.evidence !== "incomplete";
134
151
  const required = r.checks.filter((c) => c.required);
135
152
  const runs = plural(r.runs, "run");
136
153
  const failed = required.filter((c) => c.status === "failed");
@@ -138,7 +155,7 @@ export function results(r, require = []) {
138
155
  const scope = r.scope && [...new Set(required.map((c) => c.scenario).filter(Boolean))].join(", ");
139
156
  const lines = [""];
140
157
  let code;
141
- if (r.verdict === "passed") {
158
+ if (r.verdict === "passed" && proven) {
142
159
  code = 0;
143
160
  lines.push(`${CATALOG.verdictLabels.passed} · ${scope ? `${scope} only` : `all ${plural(required.length, "check")}`} · ${runs}`);
144
161
  }
@@ -146,10 +163,16 @@ export function results(r, require = []) {
146
163
  code = 1;
147
164
  lines.push(`${CATALOG.verdictLabels.not_passed} · ${plural(failed.length, "check")} failed`);
148
165
  }
166
+ else if (r.verdict === "passed") {
167
+ code = 3;
168
+ lines.push(copy.notProven);
169
+ }
149
170
  else {
150
171
  code = 3;
151
172
  const ours = open.length > 0 && open.every((c) => c.testProblem);
152
173
  lines.push(`${CATALOG.verdictLabels.incomplete} · ${open.length ? `${plural(open.length, "check")} couldn't run` : "no checks could run"}${ours ? " (not your agent)" : ""}`);
174
+ if (!proven)
175
+ lines.push(copy.notProven);
153
176
  }
154
177
  if (r.sample)
155
178
  lines.push("This was WhiteRoom's sample agent: it checks your controls and this setup, not your own agent.");
@@ -170,7 +193,7 @@ export function results(r, require = []) {
170
193
  for (const c of fixes)
171
194
  lines.push(` ${c.label}: ${c.fix}`);
172
195
  }
173
- const next = code === 1 ? "Rerun failed checks" : code === 3 ? "Rerun checks that didn't run" : !r.sample && r.runs === 1 ? "Run it 3 times" : "Past tests";
196
+ const next = code === 1 ? "Rerun failed checks" : code === 3 && r.verdict === "passed" ? "Start test" : code === 3 ? "Rerun checks that didn't run" : !r.sample && r.runs === 1 ? "Run it 3 times" : "Past tests";
174
197
  const missed = require.map((id) => ({ id, why: requiredRowProblem(r, id) })).filter((x) => x.why);
175
198
  if (missed.length) {
176
199
  lines.push("", "Required checks (--require) that didn't pass");
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/practice/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/practice/text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /** 503 answers that mean "try again in a moment": WhiteRoom refused before doing anything, so the same request can be sent again. */
2
+ export declare const BUSY: Set<string>;
3
+ /** A busy wait this long or longer is announced again. */
4
+ export declare const LONG_WAIT_S = 10;
5
+ export declare const responseCopy: {
6
+ freePaused: string;
7
+ sandboxBusy: (wait: string) => string;
8
+ controlBusy: (wait: string) => string;
9
+ cleanupBusy: (wait: string) => string;
10
+ cantSave: (wait: string) => string;
11
+ dailyLimit: (at: string) => string;
12
+ planFree: string;
13
+ suspended: string;
14
+ unclaimed: string;
15
+ revoked: string;
16
+ notAvailable: string;
17
+ };
18
+ /** The Free tier code a reply carries, if any: a busy or paused 503, or a 402 (or the sample start's 429) refusal. */
19
+ export declare function freeTierCode(status: number, body: any): string | null;
20
+ /**
21
+ * The one Retry-After parser: seconds to wait, at least 1 and at most `max`
22
+ * (60 for a wait the CLI does itself), or null when the header is missing or
23
+ * isn't a number of seconds.
24
+ */
25
+ export declare function retryAfterSeconds(header: string | null | undefined, max?: number): number | null;
26
+ /** "30 seconds", "a minute", "2 minutes": how long Retry-After asks for, in words ("a minute" without one). */
27
+ export declare function waitWords(header: string | null | undefined): string;
28
+ /** Refusals running the same command again won't fix (the day's calls used up, the plan): a setup problem (exit 2), not a retry (3). */
29
+ export declare function rerunWontFix(status: number, body: any): boolean;
30
+ /** The plain message for a Free tier answer, or null when the reply isn't one. */
31
+ export declare function freeTierMessage(r: {
32
+ status: number;
33
+ body: any;
34
+ retryAfter?: string | null;
35
+ }): string | null;
@@ -0,0 +1,92 @@
1
+ // WhiteRoom's Free tier answers, in plain words: a busy WhiteRoom or Sandbox
2
+ // (503, retry after a moment), Free Sandbox work paused (503), the Sandbox's
3
+ // daily calls used up and production refusals (402). Shared by the practice,
4
+ // sandbox and fleet commands. No codes are printed, only what to do.
5
+ const DASHBOARD = "https://app.whiteroom.tech";
6
+ /** 503 answers that mean "try again in a moment": WhiteRoom refused before doing anything, so the same request can be sent again. */
7
+ export const BUSY = new Set(["sandbox_busy", "control_busy", "cleanup_busy", "db_unavailable"]);
8
+ /** A busy wait this long or longer is announced again. */
9
+ export const LONG_WAIT_S = 10;
10
+ export const responseCopy = {
11
+ freePaused: "Sandbox is paused for Free accounts right now. Try again later.",
12
+ sandboxBusy: (wait) => `The Sandbox is busy right now. Try again in ${wait}.`,
13
+ controlBusy: (wait) => `WhiteRoom is busy right now. Try again in ${wait}.`,
14
+ cleanupBusy: (wait) => `WhiteRoom is busy cleaning up Sandboxes. Try again in ${wait}.`,
15
+ cantSave: (wait) => `WhiteRoom can't save Sandbox results right now. Try again in ${wait}.`,
16
+ dailyLimit: (at) => `Your Sandbox has used all its calls for today. They reset at ${at} UTC.`,
17
+ planFree: `The Free plan doesn't include production calls. Pick a plan in the dashboard (${DASHBOARD}) to use this fleet.`,
18
+ suspended: `This fleet has no active plan. Pick a plan in WhiteRoom (${DASHBOARD}) to switch it back on.`,
19
+ unclaimed: `This fleet isn't linked to a WhiteRoom account yet. Sign up or sign in at ${DASHBOARD} to set it up.`,
20
+ revoked: `This fleet is no longer linked to a WhiteRoom account. Link it again in the dashboard (${DASHBOARD}).`,
21
+ notAvailable: `This fleet can't take production calls yet. Sign up or sign in at ${DASHBOARD} to set it up.`,
22
+ };
23
+ /** The reason codes a reply carries: in `whiteroom.reason`, `reason` or `code` (the sample start puts the daily limit in `code`). */
24
+ function codesOf(body) {
25
+ if (!body || typeof body !== "object")
26
+ return [];
27
+ return [body.whiteroom?.reason, body.reason, body.code].filter((x) => typeof x === "string");
28
+ }
29
+ /** The Free tier code a reply carries, if any: a busy or paused 503, or a 402 (or the sample start's 429) refusal. */
30
+ export function freeTierCode(status, body) {
31
+ const codes = codesOf(body);
32
+ if (codes.includes("free_paused"))
33
+ return "free_paused";
34
+ if (codes.includes("sandbox_daily_limit"))
35
+ return "sandbox_daily_limit";
36
+ if (status === 503)
37
+ return codes.find((c) => BUSY.has(c)) ?? null;
38
+ if (status === 402)
39
+ return codes.find((c) => ["plan_free", "suspended", "unclaimed", "revoked", "not_available"].includes(c)) ?? null;
40
+ return null;
41
+ }
42
+ /**
43
+ * The one Retry-After parser: seconds to wait, at least 1 and at most `max`
44
+ * (60 for a wait the CLI does itself), or null when the header is missing or
45
+ * isn't a number of seconds.
46
+ */
47
+ export function retryAfterSeconds(header, max = 60) {
48
+ const n = Number(header);
49
+ return header == null || header.trim() === "" || !Number.isFinite(n) ? null : Math.min(Math.max(Math.ceil(n), 1), max);
50
+ }
51
+ /** "30 seconds", "a minute", "2 minutes": how long Retry-After asks for, in words ("a minute" without one). */
52
+ export function waitWords(header) {
53
+ const n = retryAfterSeconds(header, Infinity);
54
+ if (n === null || n === 60)
55
+ return "a minute";
56
+ if (n < 60)
57
+ return `${n} second${n === 1 ? "" : "s"}`;
58
+ const m = Math.round(n / 60);
59
+ return m <= 1 ? "a minute" : `${m} minutes`;
60
+ }
61
+ /** Refusals running the same command again won't fix (the day's calls used up, the plan): a setup problem (exit 2), not a retry (3). */
62
+ export function rerunWontFix(status, body) {
63
+ const code = freeTierCode(status, body);
64
+ return code !== null && code !== "free_paused" && !BUSY.has(code);
65
+ }
66
+ /** When the daily calls come back, as HH:MM (UTC) from the reply's resetAt; midnight when it has none. */
67
+ function resetTime(body) {
68
+ const at = Date.parse(body?.whiteroom?.resetAt ?? body?.resetAt ?? "");
69
+ if (!Number.isFinite(at))
70
+ return "00:00";
71
+ return new Date(at).toISOString().slice(11, 16);
72
+ }
73
+ /** The plain message for a Free tier answer, or null when the reply isn't one. */
74
+ export function freeTierMessage(r) {
75
+ const code = freeTierCode(r.status, r.body);
76
+ const wait = waitWords(r.retryAfter);
77
+ switch (code) {
78
+ case "free_paused": return responseCopy.freePaused;
79
+ case "sandbox_busy": return responseCopy.sandboxBusy(wait);
80
+ case "control_busy": return responseCopy.controlBusy(wait);
81
+ case "cleanup_busy": return responseCopy.cleanupBusy(wait);
82
+ case "db_unavailable": return responseCopy.cantSave(wait);
83
+ case "sandbox_daily_limit": return responseCopy.dailyLimit(resetTime(r.body));
84
+ case "plan_free": return responseCopy.planFree;
85
+ case "suspended": return responseCopy.suspended;
86
+ case "unclaimed": return responseCopy.unclaimed;
87
+ case "revoked": return responseCopy.revoked;
88
+ case "not_available": return responseCopy.notAvailable;
89
+ default: return null;
90
+ }
91
+ }
92
+ //# sourceMappingURL=responses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const SANDBOX_USAGE = "whiteroom sandbox \u2014 run your agent from the Sandbox page\n\nUsage:\n whiteroom sandbox listen --adapter \"<command>\" [--code-stdin] [--url <https url>]\n\n listen Connects this computer to your Sandbox with the helper code from\n the Sandbox page (Run agent), then runs each task sent from that\n page through your adapter until you press Ctrl+C. Your agent's\n calls go to your Sandbox URL: set its base URL first, for example\n export ANTHROPIC_BASE_URL=<Sandbox URL>.\n\nOptions:\n --adapter \"<command>\" The command that starts your agent's adapter, e.g. \"node wr-adapter.mjs\"\n (the same JSON-lines contract as practice tests: whiteroom practice adapter --lang js)\n --code-stdin Read the helper code from stdin instead of asking for it\n --url <https url> Only for testing WhiteRoom itself (a whiteroom.tech address or localhost)\n\nExit codes: 0 stopped with Ctrl+C, 2 a setup or usage problem, 3 the session ended (get a new code).\n";
1
+ export declare const SANDBOX_USAGE: string;
2
2
  export declare function sandbox(argv: string[]): Promise<number>;
@@ -1,13 +1,23 @@
1
- // `whiteroom sandbox`: the helper behind the Sandbox page's Run agent button.
1
+ // `whiteroom sandbox`: run an agent against the Sandbox once (run), or the
2
+ // helper behind the Sandbox page's Run agent button (listen).
2
3
  // Usage problems exit 2; so does anything unexpected.
3
4
  import { parseArgs } from "node:util";
4
5
  import { listen } from "./listen.js";
6
+ import { run, RUN_PROVIDERS } from "./run.js";
5
7
  import { warn } from "../practice/text.js";
6
8
  export const SANDBOX_USAGE = `whiteroom sandbox — run your agent from the Sandbox page
7
9
 
8
10
  Usage:
11
+ whiteroom sandbox run --provider <provider> -- <your agent command>
9
12
  whiteroom sandbox listen --adapter "<command>" [--code-stdin] [--url <https url>]
10
13
 
14
+ run Runs your agent once with its base URL set to your Sandbox URL,
15
+ which you paste when asked (or set WHITEROOM_SANDBOX_URL).
16
+ Example: whiteroom sandbox run --provider anthropic -- python agent.py
17
+ Providers: ${RUN_PROVIDERS.join(", ")}.
18
+ Exits with your agent's exit code; 2 for a setup or usage problem,
19
+ 130 if you press Ctrl+C before it starts.
20
+
11
21
  listen Connects this computer to your Sandbox with the helper code from
12
22
  the Sandbox page (Run agent), then runs each task sent from that
13
23
  page through your adapter until you press Ctrl+C. Your agent's
@@ -20,7 +30,7 @@ Options:
20
30
  --code-stdin Read the helper code from stdin instead of asking for it
21
31
  --url <https url> Only for testing WhiteRoom itself (a whiteroom.tech address or localhost)
22
32
 
23
- Exit codes: 0 stopped with Ctrl+C, 2 a setup or usage problem, 3 the session ended (get a new code).
33
+ Exit codes (listen): 0 stopped with Ctrl+C, 2 a setup or usage problem (or the Sandbox's calls for today used up), 3 the session ended (get a new code).
24
34
  `;
25
35
  function usage(problem) {
26
36
  if (!problem)
@@ -32,6 +42,8 @@ export async function sandbox(argv) {
32
42
  const [sub, ...rest] = argv;
33
43
  if (!sub || sub === "--help" || sub === "-h" || sub === "help")
34
44
  return usage();
45
+ if (sub === "run")
46
+ return runCommand(rest);
35
47
  if (sub !== "listen")
36
48
  return usage(`Unknown sandbox command: ${sub}`);
37
49
  let values;
@@ -59,4 +71,31 @@ export async function sandbox(argv) {
59
71
  return 2;
60
72
  }
61
73
  }
74
+ /** `sandbox run`: its options before `--`, the agent's command after, as typed. */
75
+ async function runCommand(argv) {
76
+ const at = argv.indexOf("--");
77
+ const own = at < 0 ? argv : argv.slice(0, at);
78
+ const command = at < 0 ? [] : argv.slice(at + 1);
79
+ let values;
80
+ try {
81
+ ({ values } = parseArgs({ args: own, strict: true, allowPositionals: false, options: { provider: { type: "string" }, help: { type: "boolean", short: "h" } } }));
82
+ }
83
+ catch (err) {
84
+ return usage(at < 0 ? "Put -- before your agent's command, e.g. whiteroom sandbox run --provider anthropic -- python agent.py" : err.message);
85
+ }
86
+ if (values.help)
87
+ return usage();
88
+ const provider = values.provider;
89
+ if (!provider || !RUN_PROVIDERS.includes(provider))
90
+ return usage(`--provider needs one of: ${RUN_PROVIDERS.join(", ")}.`);
91
+ if (!command.length || !command[0].trim())
92
+ return usage("Put your agent's command after --, e.g. -- python agent.py");
93
+ try {
94
+ return await run({ provider, command });
95
+ }
96
+ catch (err) {
97
+ warn(`Something went wrong in the CLI: ${err?.message ?? String(err)}`);
98
+ return 2;
99
+ }
100
+ }
62
101
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sDAAsD;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;CAkB5B,CAAC;AAEF,SAAS,KAAK,CAAC,OAAgB;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,GAAG,OAAO,qDAAqD,CAAC,CAAC;IACtE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,KAAK,EAAE,CAAC;IAC/E,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;IACtE,IAAI,MAAkF,CAAC;IACvF,IAAI,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YACtB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,gBAAgB,EAAE,KAAK;YACvB,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;SAC5I,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,KAAK,EAAE,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACnG,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACvG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,yEAAyE;QACzE,IAAI,CAAC,oCAAqC,GAAa,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export declare const sandboxCopy: {
17
17
  keyMismatch: (left: number) => string;
18
18
  notConnected: string;
19
19
  unavailable: string;
20
+ codeStillWorks: string;
21
+ codeUsed: string;
20
22
  unreachable: string;
21
23
  redirected: string;
22
24
  outdated: string;
@@ -10,6 +10,7 @@ import { CATALOG } from "../practice/catalog.js";
10
10
  import { Engine, OFFLINE_MS, REDIRECTED, Stopped, Unreachable } from "../practice/engine.js";
11
11
  import { adapterProblem, chatCompletions, firstLineOfStdin, hiddenPrompt, Interrupted, isProvider, nodeTooOld, targetOrigin } from "../practice/preflight.js";
12
12
  import { clean, hideSecret, say, warn } from "../practice/text.js";
13
+ import { freeTierMessage, rerunWontFix } from "../responses.js";
13
14
  export const HELPER_CODE = /^wrhc_[A-Za-z0-9_-]{43}$/;
14
15
  /** A Sandbox URL as the Sandbox page shows it: WhiteRoom's address, then the Sandbox key. */
15
16
  const SANDBOX_URL = /^(https?:\/\/[^/\s?#@]+)\/(sk-wr-[0-9a-f]{40})(?:[/?#]\S*)?$/;
@@ -42,6 +43,8 @@ export const sandboxCopy = {
42
43
  : `Your agent's Sandbox URL isn't this Sandbox's current one, and this code has no tries left. Copy the Sandbox URL from the Sandbox page, set it again, then get a new code.`,
43
44
  notConnected: "This Sandbox has no key yet. Connect a provider key in the Sandbox page first.",
44
45
  unavailable: "The Sandbox helper isn't available yet. Try again later.",
46
+ codeStillWorks: "Your helper code still works until it expires.",
47
+ codeUsed: `The helper disconnected and this code is used. ${NEW_CODE}`,
45
48
  unreachable: "Couldn't reach WhiteRoom. Check your connection, then start the helper again.",
46
49
  redirected: "WhiteRoom's server tried to send the helper to another address, so it stopped. Nothing was sent anywhere else.",
47
50
  outdated: "WhiteRoom sent something this CLI doesn't understand. Update the CLI, then start the helper again.",
@@ -165,7 +168,8 @@ export async function listen(a) {
165
168
  const engine = new Engine(origin, testMs("WHITEROOM_TEST_OFFLINE_MS", OFFLINE_MS));
166
169
  let claim;
167
170
  try {
168
- claim = await engine.post("/api/sandbox-helper/claim", { code, keyPrefix: sandbox.key.slice(0, 22), host: helperHost() });
171
+ // A claim starts the session: a busy answer is shown, never sent again by itself.
172
+ claim = await engine.post("/api/sandbox-helper/claim", { code, keyPrefix: sandbox.key.slice(0, 22), host: helperHost() }, { retryBusy: false });
169
173
  }
170
174
  catch (err) {
171
175
  // No session yet: a setup problem (2); the code is still unused.
@@ -183,6 +187,9 @@ export async function listen(a) {
183
187
  return fail(2, sandboxCopy.redirected);
184
188
  if (claim.status === 404)
185
189
  return fail(2, sandboxCopy.unavailable);
190
+ const refused = freeTierMessage(claim);
191
+ if (refused)
192
+ return fail(2, claim.status === 503 ? `${refused} ${sandboxCopy.codeStillWorks}` : refused);
186
193
  const { session, proxyUrl, provider } = claim.body ?? {};
187
194
  if (claim.status !== 200 || typeof session !== "string" || !isProvider(provider))
188
195
  return fail(2, sandboxCopy.outdated);
@@ -261,8 +268,14 @@ export async function listen(a) {
261
268
  const next = await engine.post("/api/sandbox-helper/next", {}, { retryNetwork: true });
262
269
  if (ends(next))
263
270
  return endListening(next);
264
- if (next.status !== 200)
265
- return fail(3, sandboxCopy.outdated);
271
+ if (next.status !== 200) {
272
+ const plain = freeTierMessage(next);
273
+ if (!plain)
274
+ return fail(3, sandboxCopy.outdated);
275
+ // Busy for too long, paused or refused: the session ends here, so the Sandbox page doesn't wait for it.
276
+ await engine.once("/api/sandbox-helper/disconnect", {});
277
+ return fail(rerunWontFix(next.status, next.body) ? 2 : 3, `${plain} ${sandboxCopy.codeUsed}`);
278
+ }
266
279
  if (next.body?.idle)
267
280
  continue;
268
281
  const task = next.body?.task;
@@ -1 +1 @@
1
- {"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/sandbox/listen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/sandbox/listen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /** The providers a Sandbox connects, as the dashboard names them. */
2
+ export declare const RUN_PROVIDERS: readonly ["anthropic", "openai", "azure-openai", "foundry", "bedrock-mantle"];
3
+ export type RunProvider = typeof RUN_PROVIDERS[number];
4
+ export declare const runCopy: {
5
+ needUrl: string;
6
+ badUrl: string;
7
+ noTerminal: string;
8
+ notWhiteRoom: string;
9
+ pointsAtWhiteRoom: (vars: string[]) => string;
10
+ gotUrl: (end: string) => string;
11
+ running: (name: string) => string;
12
+ cancelled: string;
13
+ notFound: (cmd: string) => string;
14
+ couldntStart: (cmd: string, why: string) => string;
15
+ };
16
+ /** The setting that points an agent at the Sandbox, as the Sandbox page's .env line has it (dashboard issuedEnvHint). */
17
+ export declare function sandboxSetting(provider: RunProvider, url: string): {
18
+ name: string;
19
+ value: string;
20
+ };
21
+ /** Every setting the agent gets: OpenAI's also under the older OPENAI_API_BASE, which some SDKs still read, so none of them bypasses the Sandbox. */
22
+ export declare function sandboxSettings(provider: RunProvider, url: string): Record<string, string>;
23
+ /** Other base-URL settings in the environment that point at WhiteRoom (whiteroom.tech; a local proxy on localhost is the user's own). */
24
+ export declare function whiteRoomBaseUrls(env: NodeJS.ProcessEnv, except: readonly string[]): string[];
25
+ /**
26
+ * The Sandbox URL, checked: a problem when it isn't one, or isn't on a
27
+ * WhiteRoom address. The Sandbox page's .env line works too
28
+ * (ANTHROPIC_BASE_URL=…, with or without export or quotes).
29
+ */
30
+ export declare function sandboxUrlOf(raw: string, env?: NodeJS.ProcessEnv): {
31
+ url: string;
32
+ } | {
33
+ problem: string;
34
+ };
35
+ export interface RunArgs {
36
+ provider: RunProvider;
37
+ command: string[];
38
+ }
39
+ /** How the Sandbox URL is asked for: a hidden prompt on the terminal (tests pass their own). */
40
+ export interface Asker {
41
+ terminal: boolean;
42
+ ask: (question: string) => Promise<string>;
43
+ }
44
+ export declare function run(a: RunArgs, env?: NodeJS.ProcessEnv, asker?: Asker): Promise<number>;