@tryarcanist/cli 0.1.259 → 0.1.261

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
@@ -184,7 +184,6 @@ Creates a new session and sends the initial prompt.
184
184
  ```bash
185
185
  arcanist sessions create https://github.com/your-org/your-repo "fix the login bug"
186
186
  arcanist sessions create your-org/your-repo "continue this work" --start-branch wip/resume-me
187
- arcanist sessions create your-org/your-repo "finish this PR" --continue-pr https://github.com/your-org/your-repo/pull/123
188
187
  printf "add tests" | arcanist sessions create your-org/your-repo --prompt-stdin --json
189
188
  printf "add tests" | arcanist sessions create your-org/your-repo --prompt-stdin --wait
190
189
  arcanist sessions create your-org/your-repo - --model gpt-5.5
@@ -208,8 +207,6 @@ Use `--base-branch <branch>` to target a non-default base branch. The CLI only v
208
207
 
209
208
  Use `--start-branch <branch>` to resume an existing branch with its history instead of forking a fresh branch off base; the control plane verifies the branch exists on the remote and fails closed if it does not.
210
209
 
211
- Use `--continue-pr <url>` to continue an open same-repo pull request. The control plane checks out the PR head branch before the prompt runs. `--continue-mode update-pr` updates the referenced PR; `--continue-mode new-pr` starts from that PR head but leaves publish free to open a fresh PR. `auto` is the default and currently resolves to same-PR update for supported open same-repo PRs.
212
-
213
210
  Repeatable `--uploaded-file <path>` flags attach local UTF-8 text files to the prompt. Uploaded file names come from the local basename; directory components are not sent.
214
211
 
215
212
  Sessions always start from a fresh sandbox (the warm sandbox pool was removed).
@@ -217,9 +214,7 @@ Sessions always start from a fresh sandbox (the warm sandbox pool was removed).
217
214
  `--idempotency-key <uuid>` is for manually retrying a create request that may have reached the server.
218
215
  The CLI derives separate session and prompt idempotency keys from the provided value.
219
216
 
220
- `--onboarding` creates an onboarding session: the agent authors the repo's `.arcanist.json` (`appRuntime` runtime contract plus optional legacy `verify` metadata), a root `REVIEW.md` with repo-specific review checks (skipped only when the repo yields none), `.arcanist/` runtime files as needed, and `ARCANIST.md` only when the repo has no usable project doc, proves what it can inside its sandbox, and opens the setup PR ready for review. Zeus discovers and observes review commands itself; the live server-side `repo_review_config.verify_config_json` surface supplies test-coverage lens overrides. The onboarding behavior is driven by the bridge's canonical onboarding playbook, not the prompt, so `--onboarding` needs no prompt: `arcanist sessions create <repo> --onboarding --wait`. Any prompt supplied alongside `--onboarding` is ignored. Team use; not part of the external API surface.
221
-
222
- JSON mode returns `{sessionId, sessionUrl?, repoUrl, model?, reasoningEffort?, autoVerify?, baseBranch?, startBranch?, continuePrUrl?, continueMode?, onboarding?, promptId?}`. With `--wait`, JSON mode also includes best-effort result fields when available: `prUrl?`, `publishedBranch?`, and `lastBranch?`.
217
+ JSON mode returns `{sessionId, sessionUrl?, repoUrl, model?, reasoningEffort?, autoVerify?, baseBranch?, startBranch?, promptId?}`. With `--wait`, JSON mode also includes best-effort result fields when available: `prUrl?`, `publishedBranch?`, and `lastBranch?`.
223
218
 
224
219
  ### `arcanist sessions send <session-id> [prompt]`
225
220
 
package/dist/index.js CHANGED
@@ -8845,7 +8845,6 @@ function isNonContentInterstitial(event) {
8845
8845
  switch (event.type) {
8846
8846
  case "agent_progress":
8847
8847
  case "retry_status":
8848
- case "memory_usage":
8849
8848
  case "memory_recall_usage":
8850
8849
  case "agent_timeline":
8851
8850
  return true;
@@ -9038,18 +9037,6 @@ function projectPromptRetrying(data, index) {
9038
9037
  ...typeof data?.reason === "string" ? { reason: data.reason } : {}
9039
9038
  };
9040
9039
  }
9041
- function projectMemoryUsage(data, index) {
9042
- const activeMemoryIds = Array.isArray(data?.activeMemoryIds) ? data.activeMemoryIds.filter((id) => typeof id === "string" && id.trim().length > 0) : [];
9043
- const activeMemories = mergeMemoryRefs(activeMemoryIds, data?.activeMemories);
9044
- return {
9045
- type: "memory_usage",
9046
- id: `mem-${data?.timestamp ?? index}`,
9047
- activeMemoryIds,
9048
- activeMemories,
9049
- usageSource: data?.usageSource === "company_bootstrap" ? "company_bootstrap" : "prompt_start",
9050
- ...resolvePromptId(data) ? { promptId: resolvePromptId(data) } : {}
9051
- };
9052
- }
9053
9040
  function projectMemoryRecallUsage(data, index) {
9054
9041
  const requestedMemoryIds = Array.isArray(data?.requestedMemoryIds) ? data.requestedMemoryIds.filter((id) => typeof id === "string" && id.trim().length > 0) : [];
9055
9042
  const returnedMemoryIds = Array.isArray(data?.returnedMemoryIds) ? data.returnedMemoryIds.filter((id) => typeof id === "string" && id.trim().length > 0) : [];
@@ -9324,9 +9311,6 @@ function flattenSessionEvents(raw) {
9324
9311
  case "prompt_retrying":
9325
9312
  pushEvent(state, projectPromptRetrying(data, state.merged.length));
9326
9313
  break;
9327
- case "memory_usage":
9328
- pushEvent(state, projectMemoryUsage(data, state.merged.length));
9329
- break;
9330
9314
  case "memory_recall_usage":
9331
9315
  pushEvent(state, projectMemoryRecallUsage(data, state.merged.length));
9332
9316
  break;
@@ -9520,8 +9504,7 @@ var SCAFFOLDING_MARKERS = [
9520
9504
  /^Previous Slack message\b/im,
9521
9505
  /^Current Slack message author:/im,
9522
9506
  /^Current Slack channel:/im,
9523
- /^Repository:\s+\S+$/im,
9524
- /^\[arcanist:review-loop\b/im
9507
+ /^Repository:\s+\S+$/im
9525
9508
  ];
9526
9509
  var REVIEW_PROMPT_FIRST_LINE_RE = /^Review pull request \S+ at its current head\./;
9527
9510
  function stripReviewPromptEnrichment(text) {
@@ -9551,11 +9534,6 @@ function stripPromptScaffolding(text) {
9551
9534
  return kept.join("\n").replace(/\n{3,}/g, "\n\n").trim();
9552
9535
  }
9553
9536
  function derivePromptDisplayText(prompt) {
9554
- if (prompt.prompt.trimStart().startsWith("[arcanist:review-loop")) {
9555
- const reply2 = prompt.replyToText?.trim();
9556
- if (reply2 && reply2 !== prompt.prompt.trim() && !promptContainsScaffolding(reply2)) return reply2;
9557
- return prompt.prompt.trim();
9558
- }
9559
9537
  const reply = prompt.replyToText?.trim();
9560
9538
  if (reply && !promptContainsScaffolding(reply)) return reply;
9561
9539
  if (REVIEW_PROMPT_FIRST_LINE_RE.test(prompt.prompt.trimStart())) {
@@ -9582,6 +9560,8 @@ var ERROR_CODES = [
9582
9560
  "model_overloaded",
9583
9561
  "config_error",
9584
9562
  "failed_edits",
9563
+ // No producer since the memory subsystem was removed. Retained because the code is
9564
+ // persisted on historical session rows, which would otherwise render as "unknown".
9585
9565
  "memory_enforcement_failed",
9586
9566
  "failure_loop_suspected",
9587
9567
  "empty_completion",
@@ -9721,10 +9701,6 @@ ${event.answer ? `**Answer:** ${event.answer}
9721
9701
  }
9722
9702
  return `*[${event.tool} output truncated]*
9723
9703
  `;
9724
- // Historical sessions may still carry `memory_usage`. Memory subsystem is
9725
- // gone; keep the case for ActivityEvent exhaustiveness and render nothing.
9726
- case "memory_usage":
9727
- return "";
9728
9704
  // Despite the name, `memory_recall_usage` is Zeus's telemetry transport for
9729
9705
  // some events and still appears in projected transcripts. Keep handling.
9730
9706
  case "memory_recall_usage":
@@ -10659,7 +10635,6 @@ function validateRepoUrl(url) {
10659
10635
  var PROMPT_TERMINAL_STATUSES = /* @__PURE__ */ new Set(["completed", "failed"]);
10660
10636
  var RESULT_FETCH_ATTEMPTS = 5;
10661
10637
  var SESSION_CREATE_PROMPT_PREVIEW_MAX_CHARS = 4e3;
10662
- var ONBOARDING_PROMPT = "Onboard this repository onto Arcanist.";
10663
10638
  function selectCreatedPrompt(prompts, promptId) {
10664
10639
  if (prompts.length === 0) return null;
10665
10640
  if (promptId) {
@@ -10747,7 +10722,7 @@ async function createCommand(repoUrl, promptArg, options, command) {
10747
10722
  assertArcanistSessionMutationAllowed("create");
10748
10723
  const config = requireConfig(runtime);
10749
10724
  resolveModelAndBackend(options);
10750
- const prompt = options.onboarding ? ONBOARDING_PROMPT : await resolvePromptInput(promptArg, options);
10725
+ const prompt = await resolvePromptInput(promptArg, options);
10751
10726
  const waitPollIntervalMs = options.wait ? parsePollInterval(options.pollInterval) : null;
10752
10727
  const repoError = validateRepoUrl(repoUrl);
10753
10728
  if (repoError) {
@@ -10761,14 +10736,6 @@ async function createCommand(repoUrl, promptArg, options, command) {
10761
10736
  if (options.startBranch !== void 0 && !startBranch) {
10762
10737
  throw new CliError("user", "--start-branch must not be empty.");
10763
10738
  }
10764
- const continuePr = options.continuePr?.trim();
10765
- if (options.continuePr !== void 0 && !continuePr) {
10766
- throw new CliError("user", "--continue-pr must not be empty.");
10767
- }
10768
- const continueMode = options.continueMode?.trim();
10769
- if (options.continueMode !== void 0 && !continueMode) {
10770
- throw new CliError("user", "--continue-mode must not be empty.");
10771
- }
10772
10739
  const uploadedFiles = await resolveUploadedFileOptions(options.uploadedFile);
10773
10740
  const idempotencyKey = options.idempotencyKey ?? randomIdempotencyKey();
10774
10741
  const sessionIdempotencyKey = `${idempotencyKey}:session`;
@@ -10781,9 +10748,6 @@ async function createCommand(repoUrl, promptArg, options, command) {
10781
10748
  if (promptPreview) body.prompt = promptPreview;
10782
10749
  if (baseBranch) body.baseBranch = baseBranch;
10783
10750
  if (startBranch) body.startBranch = startBranch;
10784
- if (continuePr) body.continuePrUrl = continuePr;
10785
- if (continueMode) body.continueMode = continueMode;
10786
- if (options.onboarding) body.onboarding = true;
10787
10751
  const browserIdentity = options.browserIdentity?.trim();
10788
10752
  if (options.browserIdentity !== void 0 && !browserIdentity) {
10789
10753
  throw new CliError("user", "--browser-identity must be an identity ID or 'none'.");
@@ -10855,9 +10819,6 @@ async function createCommand(repoUrl, promptArg, options, command) {
10855
10819
  if (options.autoVerify) output.autoVerify = true;
10856
10820
  if (baseBranch) output.baseBranch = baseBranch;
10857
10821
  if (startBranch) output.startBranch = startBranch;
10858
- if (continuePr) output.continuePrUrl = continuePr;
10859
- if (continueMode) output.continueMode = continueMode;
10860
- if (options.onboarding) output.onboarding = true;
10861
10822
  if (promptId) output.promptId = promptId;
10862
10823
  Object.assign(output, waitResultFields);
10863
10824
  writeJson(output);
@@ -12755,7 +12716,7 @@ function addCreateOptions(cmd) {
12755
12716
  return cmd.argument("<repo-url>", "Repository URL").argument("[prompt]", "Prompt to send, or '-' to read stdin").option("--model <model>", "Model to use").option("--reasoning-effort <effort>", "Reasoning effort to use for models that support it").option("--auto-verify", "Opt this session into automatic QA verification after PR creation").option("--base-branch <branch>", "Base branch to create the session against (defaults to the repo default branch)").option(
12756
12717
  "--start-branch <branch>",
12757
12718
  "Resume an existing branch with its history instead of forking a new one off base"
12758
- ).option("--continue-pr <url>", "Continue from an existing same-repo pull request").option("--continue-mode <mode>", "Continuation mode: auto (default), update-pr, or new-pr").option("--browser-identity <id|none>", "Attach a business browser identity, or explicitly attach none").option("--prompt-stdin", "Read prompt from stdin").option(
12719
+ ).option("--browser-identity <id|none>", "Attach a business browser identity, or explicitly attach none").option("--prompt-stdin", "Read prompt from stdin").option(
12759
12720
  "--uploaded-file <path>",
12760
12721
  "Attach a local text file to the prompt as uploadedFiles; repeat for multiple files",
12761
12722
  collectUploadedFileOption
@@ -12763,19 +12724,18 @@ function addCreateOptions(cmd) {
12763
12724
  "--poll-interval <ms>",
12764
12725
  "Polling interval in milliseconds while waiting",
12765
12726
  String(DEFAULT_WATCH_POLL_INTERVAL_MS)
12766
- ).option("--idempotency-key <uuid>", "Request idempotency key for safe manual retries").option("--onboarding", "Create an onboarding session that authors the repo's Arcanist configuration").addHelpText(
12727
+ ).option("--idempotency-key <uuid>", "Request idempotency key for safe manual retries").addHelpText(
12767
12728
  "after",
12768
12729
  `
12769
12730
  Examples:
12770
12731
  arcanist sessions create https://github.com/org/repo "fix bug"
12771
- arcanist sessions create https://github.com/org/repo "finish this PR" --continue-pr https://github.com/org/repo/pull/123
12772
12732
  arcanist sessions create https://github.com/org/repo "review this trace" --uploaded-file trace.txt
12773
12733
  printf "fix bug" | arcanist sessions create https://github.com/org/repo --prompt-stdin --json
12774
12734
  printf "fix bug" | arcanist sessions create https://github.com/org/repo --prompt-stdin --wait
12775
12735
  arcanist sessions create https://github.com/org/repo - --json | jq -r .sessionId | xargs -I{} arcanist sessions events {} --follow --json
12776
12736
 
12777
12737
  JSON:
12778
- JSON mode returns {sessionId, sessionUrl?, repoUrl, model?, reasoningEffort?, autoVerify?, baseBranch?, startBranch?, continuePrUrl?, continueMode?, onboarding?, promptId?}
12738
+ JSON mode returns {sessionId, sessionUrl?, repoUrl, model?, reasoningEffort?, autoVerify?, baseBranch?, startBranch?, promptId?}
12779
12739
  --wait --json also includes best-effort result fields when available: prUrl?, publishedBranch?, lastBranch?
12780
12740
  Follow async progress with: arcanist sessions events <session-id> --follow --json
12781
12741
  `
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryarcanist/cli",
3
- "version": "0.1.259",
3
+ "version": "0.1.261",
4
4
  "description": "CLI for Arcanist — create and manage coding agent sessions",
5
5
  "type": "module",
6
6
  "bin": {