@whiteroom-ai/cli 2.0.2 → 2.1.1

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/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @whiteroom-ai/cli
2
2
 
3
+ Before you start: sign up at app.whiteroom.tech and open Sandbox.
4
+
3
5
  The `whiteroom` command: practice tests for your agent, plus fleet commands.
4
6
 
5
7
  ## Practice tests
@@ -24,7 +26,7 @@ Set the one variable for your agent's provider. For Azure OpenAI, Claude on Azur
24
26
  | Claude on Azure (Foundry) | `ANTHROPIC_FOUNDRY_API_KEY` |
25
27
  | AWS Bedrock (a long-term Bedrock API key) | `AWS_BEARER_TOKEN_BEDROCK` |
26
28
 
27
- The CLI asks for the run code from the dashboard (or reads it from stdin with `--code-stdin`), and asks for the key if none of these is set. If more than one is set, it stops and asks you to unset the others. Keep the terminal open until it prints the result. Exit codes: `0` passed, `1` didn't pass, `2` a setup or usage problem, `3` didn't finish (safe to run again). With `--require`, `1` also when a required check isn't Passed in Enforce. macOS and Linux only for now.
29
+ The CLI asks for the run code from the dashboard (or reads it from stdin with `--code-stdin`), and asks for the key if none of these is set. If more than one is set, it stops and asks you to unset the others. Keep the terminal open until it prints the result. Exit codes: `0` passed, `1` didn't pass, `2` a setup or usage problem, or a refusal running it again won't fix (the Sandbox's calls for today are used up, or the plan doesn't allow it), `3` didn't finish, WhiteRoom was busy or paused, or not proven (safe to run again). When WhiteRoom couldn't save every result of a passing test, it says Not proven and exits `3`, never Passed. With `--require`, `1` also when a required check isn't Passed in Enforce. macOS and Linux only for now.
28
30
 
29
31
  ### Requiring checks in CI
30
32
 
@@ -58,7 +60,7 @@ The CLI starts the adapter once per practice task and talks to it in JSON lines:
58
60
 
59
61
  - Send model calls to `base_url` with every header in `headers`. For OpenAI SDKs (Azure OpenAI's too) `base_url` already ends in `/v1`. The adapter's environment has the key in the provider's variable from the table above, and no other provider's.
60
62
  - Send the key as that provider's SDK does: `x-api-key` for Anthropic and Foundry, `Authorization: Bearer` for OpenAI and Bedrock, `api-key` for Azure OpenAI. Azure OpenAI and OpenAI take chat completions (on Azure, `model` is your deployment name); Anthropic, Foundry and Bedrock take Anthropic's Messages API. The starters do this.
61
- - When WhiteRoom answers 429 or 503 with a `whiteroom` field, wait a moment and send the same call again. Let model calls run up to 180 seconds.
63
+ - When WhiteRoom answers 429 or 503 with a `whiteroom` field, wait as `Retry-After` says (or a moment) and send the same call again. Two answers mean stop instead: a 503 whose `whiteroom.reason` is `free_paused` (Sandbox is paused for Free accounts) and a 402 (for example `sandbox_daily_limit`: the Sandbox's calls for today are used up until `whiteroom.resetAt`). The starters do this. Let model calls run up to 180 seconds.
62
64
  - `model` is the model chosen for the practice test in the dashboard, or `null` when none was chosen: then use your agent's own model. The starters do this.
63
65
  - Write logs to stderr. Lines on stdout that aren't JSON are shown in your terminal and never sent to WhiteRoom.
64
66
  - Limits: lines up to 1 MiB, tool calls up to 64 KiB, 200 tool calls per practice task. The adapter is stopped (its whole process group) at the task's deadline.
package/dist/index.js CHANGED
@@ -45,8 +45,17 @@ async function main() {
45
45
  process.exit(0);
46
46
  }
47
47
  const { WhiteRoomClient, WhiteRoomError } = await import("@whiteroom-ai/sdk");
48
+ // The SDK's errors carry no headers: keep the last reply's Retry-After, so a busy answer says how long to wait.
49
+ let retryAfter = null;
50
+ const sdkFetch = globalThis.fetch;
51
+ globalThis.fetch = async (...a) => {
52
+ const res = await sdkFetch(...a);
53
+ retryAfter = res.headers.get("retry-after");
54
+ return res;
55
+ };
56
+ const baseUrl = flags.url ?? process.env.WHITEROOM_URL ?? "http://localhost:3000";
48
57
  const client = new WhiteRoomClient({
49
- baseUrl: flags.url ?? process.env.WHITEROOM_URL ?? "http://localhost:3000",
58
+ baseUrl,
50
59
  apiKey: flags.key ?? process.env.WHITEROOM_API_KEY,
51
60
  });
52
61
  try {
@@ -110,7 +119,8 @@ async function main() {
110
119
  }
111
120
  catch (e) {
112
121
  if (e instanceof WhiteRoomError) {
113
- console.error(`Error ${e.status}: ${e.message}`);
122
+ const { freeTierMessage } = await import("./responses.js");
123
+ console.error(freeTierMessage({ status: e.status, body: e.body, retryAfter }, baseUrl) ?? `Error ${e.status}: ${e.message}`);
114
124
  process.exit(1);
115
125
  }
116
126
  throw e;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBb,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,mEAAmE;IACnE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;QACtD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACzD,OAAO,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,yCAAyC;IACzC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACvD,OAAO,CAAC,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC9E,gHAAgH;IAChH,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;IAClC,UAAU,CAAC,KAAK,GAAG,KAAK,EAAE,GAAG,CAA2B,EAAE,EAAE;QAC1D,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,uBAAuB,CAAC;IAClF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,OAAO;QACP,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;KACnD,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACX,KAAK,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7B,MAAM;YAER,KAAK,UAAU;gBACb,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvF,MAAM;YAER,KAAK,MAAM;gBACT,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC/B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC/B,KAAK,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9D,MAAM;YAER,KAAK,WAAW;gBACd,KAAK,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,MAAM;YAER,KAAK,OAAO;gBACV,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrD,MAAM;YAER,KAAK,MAAM;gBACT,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBACjC,KAAK,CACH,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC1C,OAAO,EAAE,KAAK,CAAC,KAAK;oBACpB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC/D,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC5D,CAAC,CACH,CAAC;gBACF,MAAM;YAER,KAAK,OAAO;gBACV,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrD,MAAM;YAER,KAAK,UAAU;gBACb,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;gBAClC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACjF,MAAM;YAER,KAAK,OAAO;gBACV,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpD,MAAM;YAER,KAAK,QAAQ;gBACX,KAAK,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,MAAM;YAER,KAAK,QAAQ;gBACX,KAAK,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBACjC,MAAM;YAER,KAAK,OAAO;gBACV,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBACnC,KAAK,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM;YAER;gBACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,cAAc,EAAE,CAAC;YAChC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB,EAAE,IAAY;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,IAAI,GAAG,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,IAAa;IAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -8,6 +8,8 @@ export interface Reply {
8
8
  status: number;
9
9
  /** The route's JSON, read field by field by the caller. */
10
10
  body: any;
11
+ /** The Retry-After header, for a busy answer the command stops on. */
12
+ retryAfter?: string | null;
11
13
  }
12
14
  /**
13
15
  * A reply that tried to send the CLI somewhere else. Requests that carry the
@@ -45,8 +47,14 @@ export declare class Engine {
45
47
  * retried as Retry-After says. `retryNetwork`: also retry a network error or
46
48
  * another 5xx, for requests that are safe to repeat; otherwise those throw
47
49
  * Unreachable. A redirect is returned as status REDIRECTED, never followed.
50
+ * Free tier answers: a pause or a 402 is returned at once. A busy answer
51
+ * (refused before WhiteRoom did anything) is waited out as Retry-After says,
52
+ * for up to the same offline budget, then returned; `retryBusy: false` (a
53
+ * claim, which starts a run) returns it at once, so a start is never sent
54
+ * again by itself.
48
55
  */
49
56
  post(path: string, body: unknown, o?: {
50
57
  retryNetwork?: boolean;
58
+ retryBusy?: boolean;
51
59
  }): Promise<Reply>;
52
60
  }
@@ -2,6 +2,7 @@
2
2
  // plain fetch, paced to 60 a minute (§4 Run), with WhiteRoom's own waits
3
3
  // (an IP-limit 429, a 503 while it switches servers) retried.
4
4
  import { copy, warn } from "./text.js";
5
+ import { BUSY, freeTierCode, LONG_WAIT_S, retryAfterSeconds } from "../responses.js";
5
6
  /** The CLI's own requests stay at or under this many a minute; WhiteRoom allows 120 per IP. */
6
7
  const PER_MINUTE = 60;
7
8
  /** How long the CLI keeps retrying while WhiteRoom can't be reached or asks it to wait. */
@@ -103,10 +104,16 @@ export class Engine {
103
104
  * retried as Retry-After says. `retryNetwork`: also retry a network error or
104
105
  * another 5xx, for requests that are safe to repeat; otherwise those throw
105
106
  * Unreachable. A redirect is returned as status REDIRECTED, never followed.
107
+ * Free tier answers: a pause or a 402 is returned at once. A busy answer
108
+ * (refused before WhiteRoom did anything) is waited out as Retry-After says,
109
+ * for up to the same offline budget, then returned; `retryBusy: false` (a
110
+ * claim, which starts a run) returns it at once, so a start is never sent
111
+ * again by itself.
106
112
  */
107
113
  async post(path, body, o = {}) {
108
114
  const started = Date.now();
109
115
  let warned = false;
116
+ let busyWarned = false;
110
117
  for (;;) {
111
118
  await pace();
112
119
  if (this.signal?.aborted)
@@ -129,6 +136,18 @@ export class Engine {
129
136
  continue;
130
137
  }
131
138
  const { json } = res;
139
+ const freeTier = freeTierCode(res.status, json);
140
+ if (freeTier) {
141
+ const reply = { status: res.status, body: json, retryAfter: res.retryAfter };
142
+ if (!BUSY.has(freeTier) || o.retryBusy === false || Date.now() - started > this.offlineMs)
143
+ return reply;
144
+ const wait = retryAfterSeconds(res.retryAfter) ?? 5;
145
+ if (!busyWarned || wait >= LONG_WAIT_S)
146
+ warn(copy.busyWaiting);
147
+ busyWarned = true;
148
+ await sleep(Math.min(wait * 1000, this.offlineMs), this.signal ?? undefined);
149
+ continue;
150
+ }
132
151
  if (res.status >= 500 && res.status !== 503) {
133
152
  // It may have been handled: only a request that is safe to repeat is sent again.
134
153
  if (!o.retryNetwork || Date.now() - started > this.offlineMs)
@@ -140,8 +159,7 @@ export class Engine {
140
159
  if (wait) {
141
160
  if (Date.now() - started > this.offlineMs)
142
161
  throw new Unreachable();
143
- const after = res.retryAfter;
144
- await sleep(after === null ? 5_000 : Math.min(Math.max(Number(after) || 0, 1), 60) * 1000, this.signal ?? undefined);
162
+ await sleep((retryAfterSeconds(res.retryAfter) ?? 5) * 1000, this.signal ?? undefined);
145
163
  continue;
146
164
  }
147
165
  return { status: res.status, body: json };
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/practice/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/practice/engine.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,yEAAyE;AACzE,8DAA8D;AAE9D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAErF,+FAA+F;AAC/F,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,2FAA2F;AAC3F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC;AACrC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,IAAI,GAAa,EAAE,CAAC;AAC1B,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,MAAoB,EAAE,EAAE,CACxD,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;IAC5B,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,YAAY,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IACF,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEL,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,SAAS,CAAC;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,MAAM;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5D,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACzD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAWD;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAE,GAAwC,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;AAE3I,qFAAqF;AACrF,MAAM,OAAO,WAAY,SAAQ,KAAK;CAAG;AACzC,6EAA6E;AAC7E,MAAM,OAAO,OAAQ,SAAQ,KAAK;CAAG;AAErC,oDAAoD;AACpD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;AAElF,MAAM,OAAO,MAAM;IAKI,MAAM;IAA2B,SAAS;IAAgC,SAAS;IAJxG,OAAO,GAAkB,IAAI,CAAC;IAC9B,2DAA2D;IAC3D,MAAM,GAAuB,IAAI,CAAC;IAClC,4GAA4G;IAC5G,YAAqB,MAAc,EAAmB,SAAS,GAAG,UAAU,EAAmB,SAAS,GAAG,kBAAkB;sBAAxG,MAAM;yBAA2B,SAAS;yBAAgC,SAAS;IAAwB,CAAC;IAEjI,2HAA2H;IACnH,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAAa,EAAE,SAAiB,EAAE,MAA0B;QAC3F,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3C,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;gBAC1C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;gBACjH,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,EAAE,CAAC,MAAM;aAClB,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,GAAQ,IAAI,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,0CAA0C;YAC5C,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;QAClF,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,8HAA8H;IAC9H,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAAa,EAAE,SAAS,GAAG,KAAK;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9G,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAAa,EAAE,CAAC,GAAoD,EAAE;QAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,SAAS,CAAC;YACR,MAAM,IAAI,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;gBAAE,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9C,IAAI,GAAwC,CAAC;YAC7C,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;oBAAE,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC9C,IAAI,eAAe,CAAC,GAAG,CAAC;oBAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;gBACxF,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,WAAW,EAAE,CAAC;gBACtF,IAAI,CAAC,MAAM;oBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;gBACvE,SAAS;YACX,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;YACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;gBAC7E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS;oBAAE,OAAO,KAAK,CAAC;gBACxG,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpD,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,WAAW;oBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC/D,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;gBAC7E,SAAS;YACX,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5C,iFAAiF;gBACjF,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,WAAW,EAAE,CAAC;gBACtF,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;gBACvE,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1F,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,WAAW,EAAE,CAAC;gBACnE,MAAM,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;gBACvF,SAAS;YACX,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;CACF"}
@@ -7,7 +7,8 @@ import { childEnv, runAdapter } from "./adapter.js";
7
7
  import { Engine, pace, REDIRECTED, sleep, Stopped, Unreachable } from "./engine.js";
8
8
  import { CATALOG } from "./catalog.js";
9
9
  import { adapterLabel, adapterProblem, chatCompletions, firstLineOfStdin, hiddenPrompt, Interrupted, isKeyVar, isProvider, isShortTermBedrockKey, keyFromEnv, keyHeader, keyShapeProblem, keyVarOf, nodeTooOld, providerByShape, RUN_CODE, targetOrigin, } from "./preflight.js";
10
- import { copy, ending, hideSecret, results, say, warn } from "./text.js";
10
+ import { copy, ending, hideSecret, reportOf, results, say, warn } from "./text.js";
11
+ import { freeTierMessage, rerunWontFix } from "../responses.js";
11
12
  const HEARTBEAT_MS = 30_000;
12
13
  /** A practice task WhiteRoom dropped (a restart, a failed capture): ask for it again, it doesn't count (§2 rule 4). */
13
14
  const RESTART = new Set(["attempt_discarded", "not_found"]);
@@ -24,6 +25,8 @@ const SAMPLE_AGENT = fileURLToPath(new URL("wr-adapter.mjs", STARTERS_DIR));
24
25
  const VERSION = JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf8")).version;
25
26
  /** This run's --require rows, for wherever its result is printed. */
26
27
  let required = [];
28
+ /** The WhiteRoom address this run talks to (its region names the dashboard links in refusals). */
29
+ let engineOrigin = null;
27
30
  /**
28
31
  * Any refusal after a good claim ends the test with exit 3 (§8, §10 "Post-claim 409s").
29
32
  * 5xx and network errors never get here: Engine.post retries them or throws Unreachable.
@@ -32,9 +35,16 @@ function sessionEnding(r) {
32
35
  const reason = r.body?.reason;
33
36
  // The run already finished (WhiteRoom finished it meanwhile): its result, not a refusal. Without one, tasks/next replays it.
34
37
  if (r.body?.done || reason === "finished")
35
- return r.body?.report ? results(r.body.report, required) : { ...ending(3, copy.finished(r.body?.verdict)), result: true, replay: true };
38
+ return r.body?.report ? results(reportOf(r.body), required) : { ...ending(3, copy.finished(r.body?.verdict, r.body?.evidence)), result: true, replay: true };
36
39
  if (r.status === REDIRECTED)
37
40
  return ending(3, copy.redirected);
41
+ // Free tier answers: busy or paused (try again: 3), or a limit or plan a rerun won't fix (2).
42
+ const plain = freeTierMessage(r, engineOrigin);
43
+ if (plain)
44
+ return ending(rerunWontFix(r.status, r.body) ? 2 : 3, plain);
45
+ // Cancelled on WhiteRoom's side without a reason this CLI can name: never guessed.
46
+ if (reason === "engine_update" && r.body?.lifecycle === "cancelled")
47
+ return ending(3, copy.stoppedByWhiteRoom);
38
48
  if (reason === "engine_update")
39
49
  return ending(3, copy.engineUpdate(Number(r.body.tasksFinished) || 0));
40
50
  if (reason === "ended_by_owner")
@@ -77,6 +87,7 @@ export async function practiceRun(a) {
77
87
  const origin = targetOrigin(a.url);
78
88
  if (!origin)
79
89
  return fail(ending(2, copy.badUrl));
90
+ engineOrigin = origin;
80
91
  if (a.adapter !== undefined) {
81
92
  const why = adapterProblem(a.adapter);
82
93
  if (why)
@@ -136,9 +147,10 @@ export async function practiceRun(a) {
136
147
  const engine = new Engine(origin);
137
148
  let claim;
138
149
  try {
150
+ // A claim starts the run: a busy answer is shown, never sent again by itself.
139
151
  claim = await engine.post("/api/readiness/claim", {
140
152
  code, key, cli: { version: VERSION, adapter: a.adapter === undefined ? "sample agent" : adapterLabel(a.adapter) },
141
- });
153
+ }, { retryBusy: false });
142
154
  }
143
155
  catch (err) {
144
156
  if (err instanceof Unreachable)
@@ -163,6 +175,9 @@ export async function practiceRun(a) {
163
175
  return fail(ending(2, copy.shortTermKey));
164
176
  if (claim.status === REDIRECTED)
165
177
  return fail(ending(2, copy.redirected));
178
+ const refused = freeTierMessage(claim, origin);
179
+ if (refused)
180
+ return fail(ending(rerunWontFix(claim.status, claim.body) ? 2 : 3, claim.status === 503 ? `${refused} ${copy.codeStillWorks}` : refused));
166
181
  if (claim.status === 410)
167
182
  return fail(ending(2, copy.codeInvalid));
168
183
  if (claim.status === 429)
@@ -339,7 +354,7 @@ export async function practiceRun(a) {
339
354
  engine.signal = null;
340
355
  const r = await engine.post("/api/readiness/tasks/next", { key }).catch(() => null);
341
356
  if (r?.status === 200 && r.body?.done && r.body.report)
342
- return print(results(r.body.report, required));
357
+ return print(results(reportOf(r.body), required));
343
358
  }
344
359
  return fail(e);
345
360
  };
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/practice/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/practice/run.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export declare const copy: {
25
25
  restart: string;
26
26
  lostTask: string;
27
27
  offline: string;
28
+ busyWaiting: string;
29
+ stoppedByWhiteRoom: string;
28
30
  deadline: string;
29
31
  pressAgain: string;
30
32
  badCode: string;
@@ -59,7 +61,10 @@ export declare const copy: {
59
61
  callCap: string;
60
62
  noModelCalls: string;
61
63
  engineError: string;
62
- finished: (verdict: unknown) => string;
64
+ /** `saved`: the run's evidence state; a pass whose results weren't all saved is Not proven, never Passed. */
65
+ finished: (verdict: unknown, saved?: unknown) => string;
66
+ codeStillWorks: string;
67
+ notProven: string;
63
68
  sessionGone: string;
64
69
  cancelled: string;
65
70
  adapterCrashed: (code: string, tail: string[]) => string[];
@@ -87,6 +92,8 @@ export interface Check {
87
92
  }
88
93
  export interface Report {
89
94
  verdict: "passed" | "not_passed" | "incomplete";
95
+ /** Whether every result was saved: "incomplete" means some weren't, so a pass isn't proven. Missing (an older WhiteRoom) keeps the verdict as it is. */
96
+ evidence?: "pending" | "incomplete" | "complete";
90
97
  runs: number;
91
98
  sample: boolean;
92
99
  scope: string[] | null;
@@ -103,5 +110,11 @@ export declare function parseRequire(value: string): string[] | {
103
110
  * that counted (Watch, Not checked and Not set up all fail, D6).
104
111
  */
105
112
  export declare function requiredRowProblem(r: Report, rowId: string): string | null;
106
- /** 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. */
113
+ /** A reply's result, with the reply's own `evidence` when the result doesn't carry one. */
114
+ export declare function reportOf(body: any): Report;
115
+ /**
116
+ * The results screen in the terminal, and its exit code: 0 Passed, 1 Didn't pass, 3 Didn't finish.
117
+ * A pass whose results weren't all saved (evidence "incomplete") is Not proven (exit 3), never Passed.
118
+ * With --require, a required row not Passed in Enforce turns a pass into 1.
119
+ */
107
120
  export declare function results(r: Report, require?: readonly string[]): Ending;
@@ -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":"AAAA,2EAA2E;AAC3E,wEAAwE;AACxE,4EAA4E;AAC5E,gDAAgD;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,SAAS,GAAG,oCAAoC,CAAC;AAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,4GAA4G;AAC5G,MAAM,MAAM,GAAG,wFAAwF,CAAC;AACxG,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;AAClC,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACnG,oBAAoB;AACpB,MAAM,IAAI,GAAG,CAAC,EAAY,EAAE,GAAG,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACxI,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,qBAAqB,SAAS,YAAY,IAAI,EAAE,CAAC;AAWlF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAoB,EAAE,GAAG,KAAe,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,WAAW,EAAE,iEAAiE;IAC9E,QAAQ,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE,CAAC,oBAAoB,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;IACtF,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,uBAAuB,IAAI,8BAA8B;IACjF,kGAAkG;IAClG,OAAO,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,QAAiB,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,QAAQ,IAAI,0BAA0B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClI,OAAO,0BAA0B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,oDAAoD,CAAC;IACpI,CAAC;IACD,OAAO,EAAE,oGAAoG;IAC7G,QAAQ,EAAE,mHAAmH;IAC7H,OAAO,EAAE,iEAAiE;IAC1E,WAAW,EAAE,gDAAgD;IAC7D,kBAAkB,EAAE,yEAAyE;IAC7F,QAAQ,EAAE,yEAAyE;IACnF,UAAU,EAAE,gFAAgF;IAE5F,OAAO,EAAE,iFAAiF;IAC1F,QAAQ,EAAE,yDAAyD;IACnE,OAAO,EAAE,gEAAgE;IACzE,QAAQ,EAAE,CAAC,IAAc,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,2EAA2E,IAAI,CAAC,CAAC,CAAC,kDAAkD;IACvP,KAAK,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,gCAAgC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,gCAAgC;IAC1H,SAAS,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,gDAAgD,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;IAC5G,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,cAAc;IAChD,QAAQ,EAAE,CAAC,IAAmB,EAAE,MAAc,EAAE,EAAE,CAChD,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,wBAAwB,MAAM,2FAA2F;IACrK,SAAS,EAAE,CAAC,IAAmB,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,qFAAqF;IACnK,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,oCAAoC,CAAC,IAAI;IAC9D,OAAO,EAAE,kFAAkF;IAC3F,MAAM,EAAE,qGAAqG;IAC7G,cAAc,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAC3C,gCAAgC,GAAG,OAAO,GAAG,+DAA+D;IAE9G,WAAW,EAAE,CAAC,CAAS,EAAE,IAAY,EAAE,KAAK,GAAkB,IAAI,EAAE,EAAE,CACpE,+CAA+C,KAAK,IAAI,YAAY,yDAAyD,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,qDAAqD;IACrO,sHAAsH;IACtH,mBAAmB,EAAE,CAAC,IAAmB,EAAE,GAAW,EAAE,QAAgB,EAAE,IAAmB,EAAE,EAAE,CAC/F,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,oBAAoB,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,QAAQ,0BAA0B,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,wIAAwI;IAC1S,OAAO,EAAE,iFAAiF,MAAM,CAAC,oBAAoB,CAAC,qDAAqD;IAC3K,WAAW,EAAE,wEAAwE,MAAM,CAAC,oBAAoB,CAAC,+BAA+B;IAChJ,IAAI,EAAE,2FAA2F;IACjG,WAAW,EAAE,uDAAuD;IACpE,WAAW,EAAE,8EAA8E;IAC3F,WAAW,EAAE,gGAAgG;IAC7G,UAAU,EAAE,+IAA+I;IAC3J,OAAO,EAAE,wCAAwC,MAAM,CAAC,YAAY,CAAC,mBAAmB;IACxF,SAAS,EAAE,8FAA8F;IAEzG,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,mEAAmE,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,mBAAmB;IAC3M,YAAY,EAAE,sFAAsF,MAAM,CAAC,YAAY,CAAC,iBAAiB;IACzI,gBAAgB,EAAE,qEAAqE,MAAM,CAAC,YAAY,CAAC,iBAAiB;IAC5H,OAAO,EAAE,wFAAwF,MAAM,CAAC,YAAY,CAAC,mBAAmB;IACxI,OAAO,EAAE,iGAAiG,MAAM,CAAC,YAAY,CAAC,mBAAmB;IACjJ,YAAY,EAAE,wKAAwK,MAAM,CAAC,YAAY,CAAC,mBAAmB;IAC7N,WAAW,EAAE,sEAAsE,MAAM,CAAC,YAAY,CAAC,qBAAqB;IAC5H,6GAA6G;IAC7G,QAAQ,EAAE,CAAC,OAAgB,EAAE,KAAe,EAAE,EAAE;QAC9C,IAAI,OAAO,KAAK,QAAQ,IAAI,KAAK,KAAK,YAAY;YAAE,OAAO,uFAAuF,CAAC;QACnJ,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,OAA4B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7J,OAAO,6BAA6B,KAAK,uCAAuC,SAAS,sBAAsB,CAAC;IAClH,CAAC;IACD,cAAc,EAAE,4BAA4B;IAC5C,SAAS,EAAE,2DAA2D;IACtE,WAAW,EAAE,iDAAiD,MAAM,CAAC,YAAY,CAAC,mBAAmB;IACrG,SAAS,EAAE,2DAA2D,MAAM,CAAC,YAAY,CAAC,mBAAmB;IAC7G,cAAc,EAAE,CAAC,IAAY,EAAE,IAAc,EAAE,EAAE,CAAC;QAChD,8DAA8D,IAAI,IAAI;QACtE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,wCAAwC;KACzC;IACD,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,gBAAgB,GAAG,sBAAsB;IACxE,WAAW,EAAE,uGAAuG,SAAS,sBAAsB;IACnJ,eAAe,EAAE,0GAA0G,SAAS,IAAI;IACxI,YAAY,EAAE,uDAAuD;IACrE,OAAO,EAAE,4CAA4C;IACrD,UAAU,EAAE,uFAAuF;IACnG,YAAY,EAAE,2CAA2C;CAC1D,CAAC;AA4BF,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;AAEpC,4EAA4E;AAE5E,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE9C,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,gCAAgC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,qCAAqC,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7K,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/I,MAAM,KAAK,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAS,EAAE,KAAa;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAE,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;IACtF,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,qFAAqF;QACrF,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,YAAY,CAAC;QAC5G,OAAO,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC;IAC7G,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC;IAC1F,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClG,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5I,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,QAAQ,CAAC,IAAS;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;IACrC,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACxH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,OAAO,GAAsB,EAAE;IAChE,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC;IAC3C,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClG,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,IAAoB,CAAC;IACzB,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IACnI,CAAC;SAAM,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,CAAC,CAAC;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9K,IAAI,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;SACtH,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IACvI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACzD,4FAA4F;QAC5F,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;;YAC9E,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnH,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClF,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACrE,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;IAClN,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,8CAA8C,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAE,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnG,IAAI,IAAI,KAAK,CAAC;YAAE,IAAI,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,yCAAyC,SAAS,sBAAsB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1J,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,52 @@
1
+ /** The dashboard for the WhiteRoom address the CLI was pointed at: EU for eu.proxy.whiteroom.tech, else the US one. */
2
+ export declare function dashboardFor(engineUrl?: string | null): string;
3
+ /** 503 answers that mean "try again in a moment": WhiteRoom refused before doing anything, so the same request can be sent again. */
4
+ export declare const BUSY: Set<string>;
5
+ /** A busy wait this long or longer is announced again. */
6
+ export declare const LONG_WAIT_S = 10;
7
+ /** One text per answer. `app` is the region's dashboard, `at` the reset time (HH:MM, UTC), `wait` how long to wait. */
8
+ export declare const responseCopy: {
9
+ freePaused: string;
10
+ sandboxBusy: (wait: string) => string;
11
+ controlBusy: (wait: string) => string;
12
+ dbUnavailable: (wait: string) => string;
13
+ /** Without WhiteRoom's words the cap isn't known, so no number. */
14
+ callsToday: (at: string) => string;
15
+ sampleRunsToday: (at: string) => string;
16
+ practiceRunsToday: (at: string) => string;
17
+ sampleBudgetExhausted: string;
18
+ planFree: (app: string) => string;
19
+ suspended: (app: string) => string;
20
+ unclaimed: (app: string) => string;
21
+ revoked: (app: string) => string;
22
+ };
23
+ /**
24
+ * The Free tier code a reply carries, if any: a busy or paused 503, a 402
25
+ * refusal, or a day's limit (402 calls; 429 sample or practice runs). Older
26
+ * WhiteRoom answers name the sample limits only by reason (limit_fleet,
27
+ * limit_global): they map to the same codes.
28
+ */
29
+ export declare function freeTierCode(status: number, body: any): string | null;
30
+ /**
31
+ * The one Retry-After parser: seconds to wait, at least 1 and at most `max`
32
+ * (60 for a wait the CLI does itself), or null when the header is missing or
33
+ * isn't a number of seconds.
34
+ */
35
+ export declare function retryAfterSeconds(header: string | null | undefined, max?: number): number | null;
36
+ /** "a moment", "30 seconds", "a minute", "2 minutes": how long Retry-After asks for, in words ("a moment" for a short or missing one). */
37
+ export declare function waitWords(header: string | null | undefined): string;
38
+ /** Refusals running the same command again won't fix (the day's limits, the plan): a setup problem (exit 2), not a retry (3). */
39
+ export declare function rerunWontFix(status: number, body: any): boolean;
40
+ /** The words WhiteRoom's reply carries (`error`, or `error.message`), safe to print; null when there are none. */
41
+ export declare function replyWords(body: any): string | null;
42
+ /**
43
+ * The plain message for a Free tier answer, or null when the reply isn't one:
44
+ * WhiteRoom's own words when the reply carries them, else this CLI's text.
45
+ * The production refusals (402) always use this CLI's text: it links to the
46
+ * dashboard of the region `engineUrl` is in, which an older reply may not.
47
+ */
48
+ export declare function freeTierMessage(r: {
49
+ status: number;
50
+ body: any;
51
+ retryAfter?: string | null;
52
+ }, engineUrl?: string | null): string | null;
@@ -0,0 +1,151 @@
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 day's
3
+ // Sandbox calls or runs used up, and production refusals (402). Shared by the
4
+ // practice, sandbox and fleet commands. No codes are printed, only what to do.
5
+ //
6
+ // WhiteRoom's reply already says it in words: those are printed as sent. The
7
+ // texts below are the same words, for a reply that carries none.
8
+ const US_DASHBOARD = "https://app.whiteroom.tech";
9
+ const EU_DASHBOARD = "https://eu.app.whiteroom.tech";
10
+ /** The dashboard for the WhiteRoom address the CLI was pointed at: EU for eu.proxy.whiteroom.tech, else the US one. */
11
+ export function dashboardFor(engineUrl) {
12
+ let host = "";
13
+ try {
14
+ host = new URL(engineUrl ?? "").hostname.toLowerCase();
15
+ }
16
+ catch {
17
+ // Not a URL: the US dashboard.
18
+ }
19
+ return host.startsWith("eu.proxy.") && host.endsWith(".whiteroom.tech") ? EU_DASHBOARD : US_DASHBOARD;
20
+ }
21
+ /** 503 answers that mean "try again in a moment": WhiteRoom refused before doing anything, so the same request can be sent again. */
22
+ export const BUSY = new Set(["sandbox_busy", "control_busy", "cleanup_busy", "db_unavailable"]);
23
+ /** A busy wait this long or longer is announced again. */
24
+ export const LONG_WAIT_S = 10;
25
+ /** One text per answer. `app` is the region's dashboard, `at` the reset time (HH:MM, UTC), `wait` how long to wait. */
26
+ export const responseCopy = {
27
+ freePaused: "Sandbox isn't taking new runs right now. Nothing you set up is lost. Try again later.",
28
+ sandboxBusy: (wait) => `Sandbox is busy. Try again in ${wait}.`,
29
+ controlBusy: (wait) => `WhiteRoom is busy. Try again in ${wait}.`,
30
+ dbUnavailable: (wait) => `Sandbox can't take calls right now. Try again in ${wait}.`,
31
+ /** Without WhiteRoom's words the cap isn't known, so no number. */
32
+ callsToday: (at) => `Your Sandbox hit today's call limit. It takes calls again at ${at} UTC.`,
33
+ sampleRunsToday: (at) => `You've used today's sample runs. More at ${at} UTC, or use your own key now.`,
34
+ practiceRunsToday: (at) => `You've used today's practice runs. You can start more at ${at} UTC.`,
35
+ sampleBudgetExhausted: "Our sample agent is done for today. You can still use your own key.",
36
+ planFree: (app) => `Free accounts can't make live calls. Click Go live at ${app} to start your 30 free days.`,
37
+ suspended: (app) => `Your plan has ended, so your agents' live calls are refused. Choose a plan to switch them back on. Nothing is lost.\n${app}/settings#plan`,
38
+ unclaimed: (app) => `This line isn't set up yet. Sign in at ${app} and copy your line from the Fleet key page.`,
39
+ revoked: (app) => `This key no longer works. Get your current line from the Fleet key page at ${app}.`,
40
+ };
41
+ /** The reason codes a reply carries: in `whiteroom.reason`, `reason` or `code` (the sample start puts the daily limit in `code`). */
42
+ function codesOf(body) {
43
+ if (!body || typeof body !== "object")
44
+ return [];
45
+ return [body.whiteroom?.reason, body.reason, body.code].filter((x) => typeof x === "string");
46
+ }
47
+ const GATE = ["plan_free", "suspended", "unclaimed", "revoked", "not_available"];
48
+ /**
49
+ * The Free tier code a reply carries, if any: a busy or paused 503, a 402
50
+ * refusal, or a day's limit (402 calls; 429 sample or practice runs). Older
51
+ * WhiteRoom answers name the sample limits only by reason (limit_fleet,
52
+ * limit_global): they map to the same codes.
53
+ */
54
+ export function freeTierCode(status, body) {
55
+ const codes = codesOf(body);
56
+ if (codes.includes("free_paused"))
57
+ return "free_paused";
58
+ if (codes.includes("sandbox_daily_limit"))
59
+ return "sandbox_daily_limit";
60
+ if (codes.includes("sample_budget_exhausted"))
61
+ return "sample_budget_exhausted";
62
+ if (status === 503)
63
+ return codes.find((c) => BUSY.has(c)) ?? null;
64
+ if (status === 402)
65
+ return codes.find((c) => GATE.includes(c)) ?? null;
66
+ if (status === 429) {
67
+ if (codes.includes("limit_fleet"))
68
+ return "sandbox_daily_limit";
69
+ if (codes.includes("limit_global"))
70
+ return "sample_budget_exhausted";
71
+ if (codes.includes("starts_today"))
72
+ return "starts_today";
73
+ }
74
+ return null;
75
+ }
76
+ /**
77
+ * The one Retry-After parser: seconds to wait, at least 1 and at most `max`
78
+ * (60 for a wait the CLI does itself), or null when the header is missing or
79
+ * isn't a number of seconds.
80
+ */
81
+ export function retryAfterSeconds(header, max = 60) {
82
+ const n = Number(header);
83
+ return header == null || header.trim() === "" || !Number.isFinite(n) ? null : Math.min(Math.max(Math.ceil(n), 1), max);
84
+ }
85
+ /** "a moment", "30 seconds", "a minute", "2 minutes": how long Retry-After asks for, in words ("a moment" for a short or missing one). */
86
+ export function waitWords(header) {
87
+ const n = retryAfterSeconds(header, Infinity);
88
+ if (n === null || n < LONG_WAIT_S)
89
+ return "a moment";
90
+ if (n < 60)
91
+ return `${n} seconds`;
92
+ const m = Math.round(n / 60);
93
+ return m <= 1 ? "a minute" : `${m} minutes`;
94
+ }
95
+ /** Refusals running the same command again won't fix (the day's limits, the plan): a setup problem (exit 2), not a retry (3). */
96
+ export function rerunWontFix(status, body) {
97
+ const code = freeTierCode(status, body);
98
+ return code !== null && code !== "free_paused" && !BUSY.has(code);
99
+ }
100
+ /** When the day's limit resets, as HH:MM (UTC) from the reply's resetAt; midnight when it has none. */
101
+ function resetTime(body) {
102
+ const at = Date.parse(body?.whiteroom?.resetAt ?? body?.resetAt ?? "");
103
+ if (!Number.isFinite(at))
104
+ return "00:00";
105
+ return new Date(at).toISOString().slice(11, 16);
106
+ }
107
+ const MAX_WORDS = 600;
108
+ /** Unicode control, format (zero-width, bidi, tag), private-use and unassigned characters and the line/paragraph separators, never printed (a plain line break is kept). As the starters strip. */
109
+ const UNPRINTABLE = /[^\P{C}\n]|[\u2028\u2029]/gu;
110
+ /** The words WhiteRoom's reply carries (`error`, or `error.message`), safe to print; null when there are none. */
111
+ export function replyWords(body) {
112
+ const raw = typeof body?.error === "string" ? body.error : typeof body?.error?.message === "string" ? body.error.message : null;
113
+ if (raw === null)
114
+ return null;
115
+ const words = raw.replace(/\r\n?/g, "\n").replace(UNPRINTABLE, "").trim();
116
+ return words && words.length <= MAX_WORDS ? words : null;
117
+ }
118
+ /** This CLI's own text for a Free tier code, for a reply without words. */
119
+ function ownText(code, r, app) {
120
+ const wait = waitWords(r.retryAfter);
121
+ switch (code) {
122
+ case "free_paused": return responseCopy.freePaused;
123
+ case "sandbox_busy":
124
+ case "cleanup_busy": return responseCopy.sandboxBusy(wait);
125
+ case "control_busy": return responseCopy.controlBusy(wait);
126
+ case "db_unavailable": return responseCopy.dbUnavailable(wait);
127
+ case "sandbox_daily_limit": return r.status === 429 ? responseCopy.sampleRunsToday(resetTime(r.body)) : responseCopy.callsToday(resetTime(r.body));
128
+ case "starts_today": return responseCopy.practiceRunsToday(resetTime(r.body));
129
+ case "sample_budget_exhausted": return responseCopy.sampleBudgetExhausted;
130
+ case "plan_free": return responseCopy.planFree(app);
131
+ case "suspended": return responseCopy.suspended(app);
132
+ case "unclaimed":
133
+ case "not_available": return responseCopy.unclaimed(app);
134
+ case "revoked": return responseCopy.revoked(app);
135
+ default: return null;
136
+ }
137
+ }
138
+ /**
139
+ * The plain message for a Free tier answer, or null when the reply isn't one:
140
+ * WhiteRoom's own words when the reply carries them, else this CLI's text.
141
+ * The production refusals (402) always use this CLI's text: it links to the
142
+ * dashboard of the region `engineUrl` is in, which an older reply may not.
143
+ */
144
+ export function freeTierMessage(r, engineUrl) {
145
+ const code = freeTierCode(r.status, r.body);
146
+ if (code === null)
147
+ return null;
148
+ const own = () => ownText(code, r, dashboardFor(engineUrl));
149
+ return GATE.includes(code) ? own() : replyWords(r.body) ?? own();
150
+ }
151
+ //# sourceMappingURL=responses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ Options:
30
30
  --code-stdin Read the helper code from stdin instead of asking for it
31
31
  --url <https url> Only for testing WhiteRoom itself (a whiteroom.tech address or localhost)
32
32
 
33
- Exit codes (listen): 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).
34
34
  `;
35
35
  function usage(problem) {
36
36
  if (!problem)
@@ -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, origin);
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, origin);
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whiteroom-ai/cli",
3
- "version": "2.0.2",
3
+ "version": "2.1.1",
4
4
  "description": "CLI for WhiteRoom — manage AI agent fleets from the terminal",
5
5
  "type": "module",
6
6
  "bin": {
@@ -34,6 +34,10 @@ const anthropic = !["OPENAI_API_KEY", "AZURE_OPENAI_API_KEY"].includes(KEY_VAR);
34
34
  const DEFAULT_MODEL = anthropic ? "claude-haiku-4-5" : "gpt-4o-mini";
35
35
  const BLOCKED = "Stopped: one of my WhiteRoom controls blocked the model call.";
36
36
  const GONE = "Stopped: WhiteRoom closed this practice task.";
37
+ // WhiteRoom asks for the same call again shortly: it was refused before anything was sent on.
38
+ // This list, the pause and daily-limit messages and the UTC reset time match the CLI's own
39
+ // (src/responses.ts); test/free-tier.test.ts checks they stay the same.
40
+ const BUSY = ["sandbox_busy", "control_busy", "cleanup_busy", "db_unavailable"];
37
41
 
38
42
  // One model call through WhiteRoom; a final answer (text) if WhiteRoom stopped it.
39
43
  // Never follows a redirect, so the key only goes to WhiteRoom.
@@ -47,8 +51,18 @@ async function model(base_url, headers, body) {
47
51
  const res = await fetch(url, { method: "POST", headers: { "content-type": "application/json", ...headers, ...auth },
48
52
  body: JSON.stringify(body), redirect: "error", signal: AbortSignal.timeout(180_000) });
49
53
  if (res.ok) return res.json();
50
- const wr = (await res.json().catch(() => null))?.whiteroom;
51
- const wait = res.status === 503 && wr ? ["WhiteRoom is switching servers. Waiting, then trying again.", Number(res.headers.get("retry-after") || 1)]
54
+ const reply = await res.json().catch(() => null);
55
+ const wr = reply?.whiteroom;
56
+ // WhiteRoom's own words when it sends them (without characters a terminal would act on), else the same words from here.
57
+ let words = typeof reply?.error === "string" ? reply.error.replace(/[^\P{C}\n]|[\u2028\u2029]/gu, "").trim() : "";
58
+ if (words.length > 600) words = "";
59
+ if (wr?.reason === "free_paused") throw new Error(words || "Sandbox isn't taking new runs right now. Nothing you set up is lost. Try again later.");
60
+ if (wr?.reason === "sandbox_daily_limit") {
61
+ const at = Number.isFinite(Date.parse(wr.resetAt)) ? new Date(wr.resetAt).toISOString().slice(11, 16) : "00:00";
62
+ throw new Error(words || `Your Sandbox hit today's call limit. It takes calls again at ${at} UTC.`);
63
+ }
64
+ const wait = res.status === 503 && BUSY.includes(wr?.reason) ? ["WhiteRoom is busy right now. Waiting, then trying again.", Number(res.headers.get("retry-after") || 1)]
65
+ : res.status === 503 && wr ? ["WhiteRoom is switching servers. Waiting, then trying again.", Number(res.headers.get("retry-after") || 1)]
52
66
  : res.status === 429 && wr ? ["WhiteRoom is saving a summary of your agent's memory. Waiting until it's saved.", 2]
53
67
  : res.status === 403 && wr?.retryable ? ["One of your WhiteRoom controls is limiting calls. Waiting, then trying again.", 10]
54
68
  : [429, 500, 502, 503, 529].includes(res.status) && !wr && tries < 5 ? ["Your model provider is busy. Waiting, then trying again.", 5 * tries] : null;
@@ -4,7 +4,8 @@
4
4
  # {"type":"tool_call",...} lines (each gets a {"type":"tool_result",...} line
5
5
  # back) and finish with one {"type":"final","output":"..."} line. Print your
6
6
  # own logs to stderr: stdout is only for these JSON lines.
7
- import json, os, sys, time, urllib.error, urllib.request
7
+ import json, os, sys, time, unicodedata, urllib.error, urllib.request
8
+ from datetime import datetime, timezone
8
9
 
9
10
  # The CLI sets only the variable of the provider the practice test uses.
10
11
  # It decides the API: chat completions for OpenAI and Azure OpenAI (where the
@@ -23,6 +24,10 @@ ANTHROPIC = KEY_VAR not in ("OPENAI_API_KEY", "AZURE_OPENAI_API_KEY")
23
24
  DEFAULT_MODEL = "claude-haiku-4-5" if ANTHROPIC else "gpt-4o-mini"
24
25
  BLOCKED = "Stopped: one of my WhiteRoom controls blocked the model call."
25
26
  GONE = "Stopped: WhiteRoom closed this practice task."
27
+ # WhiteRoom asks for the same call again shortly: it was refused before anything was sent on.
28
+ # This list, the pause and daily-limit messages and the UTC reset time match the CLI's own
29
+ # (src/responses.ts); test/free-tier.test.ts checks they stay the same.
30
+ BUSY = ("sandbox_busy", "control_busy", "cleanup_busy", "db_unavailable")
26
31
  calls = 0
27
32
 
28
33
 
@@ -68,10 +73,27 @@ def model(base_url, headers, body):
68
73
  return json.load(res)
69
74
  except urllib.error.HTTPError as err:
70
75
  try:
71
- wr = json.load(err).get("whiteroom")
76
+ reply = json.load(err)
72
77
  except Exception:
73
- wr = None
74
- if err.code == 503 and wr:
78
+ reply = None
79
+ reply = reply if isinstance(reply, dict) else {}
80
+ wr = reply.get("whiteroom")
81
+ reason = wr.get("reason") if isinstance(wr, dict) else None
82
+ # WhiteRoom's own words when it sends them (without characters a terminal would act on), else the same words from here.
83
+ words = reply.get("error") if isinstance(reply.get("error"), str) else ""
84
+ words = "".join(ch for ch in words if ch == "\n" or (unicodedata.category(ch)[0] != "C" and ch not in "\u2028\u2029")).strip()
85
+ words = words if len(words) <= 600 else ""
86
+ if reason == "free_paused":
87
+ raise RuntimeError(words or "Sandbox isn't taking new runs right now. Nothing you set up is lost. Try again later.") from None
88
+ if reason == "sandbox_daily_limit":
89
+ try:
90
+ at = datetime.fromisoformat(str(wr.get("resetAt")).replace("Z", "+00:00")).astimezone(timezone.utc).strftime("%H:%M")
91
+ except ValueError:
92
+ at = "00:00"
93
+ raise RuntimeError(words or f"Your Sandbox hit today's call limit. It takes calls again at {at} UTC.") from None
94
+ if err.code == 503 and reason in BUSY:
95
+ wait = ("WhiteRoom is busy right now. Waiting, then trying again.", float(err.headers.get("retry-after") or 1))
96
+ elif err.code == 503 and wr:
75
97
  wait = ("WhiteRoom is switching servers. Waiting, then trying again.", float(err.headers.get("retry-after") or 1))
76
98
  elif err.code == 429 and wr:
77
99
  wait = ("WhiteRoom is saving a summary of your agent's memory. Waiting until it's saved.", 2)