@tryarcanist/cli 0.1.384 → 0.1.386

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.
Files changed (3) hide show
  1. package/README.md +15 -4
  2. package/dist/index.js +99 -82
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -13,7 +13,8 @@ Requires Node.js 22 or newer.
13
13
  ## Quick start
14
14
 
15
15
  ```bash
16
- printf "arc_..." | arcanist auth login --token-stdin
16
+ arcanist auth login # opens the browser; approve once
17
+ printf "arc_..." | arcanist auth login --token-stdin # automation: a token from Settings > CLI
17
18
  arcanist sessions list --json
18
19
  ```
19
20
 
@@ -25,7 +26,9 @@ arcanist sessions events "$SESSION_ID" --follow --json
25
26
 
26
27
  ## Authentication
27
28
 
28
- Mint a token in **Settings > CLI**, then pipe it to the CLI:
29
+ In a terminal, `arcanist auth login` opens the Arcanist app in your browser. Approve once and the CLI saves a new token. Pass `--scope write` for a write-scoped token (default `read`).
30
+
31
+ For automation, mint a token in **Settings > CLI** and pipe it to the CLI:
29
32
 
30
33
  ```bash
31
34
  printf "arc_..." | arcanist auth login --token-stdin
@@ -122,7 +125,7 @@ arcanist help sessions events --json
122
125
 
123
126
  Each node is `{path, description, aliases, arguments, options, notes?, subcommands}`. The node you ask for also has `globalOptions`, the flags it inherits from its parent commands. `arguments` entries are `{name, description, required, variadic}`, `options` entries are `{flags, description, required, defaultValue?}`, and `notes` holds the examples and JSON output shape that `--help` prints below the options.
124
127
 
125
- Commands that need a person at a terminal (`environments login` without `--clear`, `claude login` without `--token-stdin`) fail at once with exit code `1` when stdin or stderr is not a terminal.
128
+ Commands that need a person at a terminal (`auth login` without a token, `environments login` without `--clear`, `claude login` without `--token-stdin`) fail at once with exit code `1` when stdin or stderr is not a terminal.
126
129
 
127
130
  ## Commands
128
131
 
@@ -219,6 +222,14 @@ ARCANIST_TOKEN=arc_... arcanist auth whoami --json
219
222
 
220
223
  JSON mode prints the raw `/api/auth/whoami` API response. Fields currently include `userId`, `email`, `tokenId`, `tokenScope`, and `authMode`.
221
224
 
225
+ ### `arcanist auth browser-session`
226
+
227
+ QA only. Trades a write-scope CLI token for a 24-hour browser session for the same user and prints it as a Playwright storage state (`{"cookies":[...],"origins":[]}`) on stdout. Only GitHub logins listed in the QA worker's `QA_BROWSER_SESSION_LOGINS` may do this; production returns 404. The output holds a live session token, so write it to a private file.
228
+
229
+ ```bash
230
+ ARCANIST_API_URL=https://qa.tryarcanist.com arcanist auth browser-session > storage-state.json
231
+ ```
232
+
222
233
  ### `arcanist codex login`
223
234
 
224
235
  Local development only; deployed workspaces return 403.
@@ -381,7 +392,7 @@ The upload limit is 3 MB. Each delivered review counts toward your plan's review
381
392
 
382
393
  Held-back files are committed, so they ship with your branch; the CLI lists them as `Committed but not uploaded for review (pass --include <path> to upload)`.
383
394
 
384
- Output is the headline (`Arcanist review: Hold off on merging.` when a finding blocks merge, else `Arcanist review: Ready to merge.`), the summary, then each finding as `file:line - title` followed by its full text. A blocking finding's title ends with `(blocks merge)`; a non-blocking finding has no tag. A finding with an agent prompt shows it under `Agent prompt:`, ready to paste into a coding agent in this checkout. Then `✅ Ruled out (N)` lists what the review tried to break and why it held. JSON mode returns `{status, requestId, sessionId, verdict, summary, findings, alsoChecked}`, where each finding is `{file, line, blocksMerge, title, body}`, plus `agentPrompt` when it has one; each Ruled out item is `{title, conclusion}`. `alsoChecked` is left out when empty. `environmentDegradedReason` is added when the review ran without a prepared environment.
395
+ Output is the headline (`Arcanist review: Hold off on merging.` when a finding blocks merge, else `Arcanist review: Ready to merge.`), the summary, then each finding as `file:line - title` followed by its full text. A blocking finding's title ends with `(blocks merge)`; a non-blocking finding has no tag. A finding with an agent prompt shows it under `Agent prompt:`, ready to paste into a coding agent in this checkout. Then `✅ Ruled out (N)` lists what the review tried to break and why it held. JSON mode returns `{status, requestId, sessionId, verdict, summary, findings, alsoChecked}`, where each finding is `{file, line, blocksMerge, title, body}`, plus `agentPrompt` when it has one; each Ruled out item is `{title, conclusion}`. `alsoChecked` is left out when empty. `environmentDegradedReason` is added only for repositories an operator runs without their Environment.
385
396
 
386
397
  Exit codes: `0` when no finding blocks merge, `1` when a finding blocks merge or the review could not start, `4` when another review of yours is still running, `5` when the review is still running (`--no-wait`), `10` when the review failed, `130` when interrupted (Ctrl-C or SIGTERM).
387
398