@tryarcanist/cli 0.1.312 → 0.1.314

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 (2) hide show
  1. package/dist/index.js +54 -27
  2. package/package.json +3 -2
package/dist/index.js CHANGED
@@ -7365,16 +7365,52 @@ var require_dist = __commonJS({
7365
7365
  });
7366
7366
 
7367
7367
  // src/index.ts
7368
- import { createRequire as createRequire2 } from "module";
7369
7368
  import { Command } from "commander";
7370
7369
 
7370
+ // package.json
7371
+ var package_default = {
7372
+ name: "@tryarcanist/cli",
7373
+ version: "0.1.314",
7374
+ description: "CLI for Arcanist - create and manage coding agent sessions",
7375
+ type: "module",
7376
+ bin: {
7377
+ arcanist: "dist/index.js"
7378
+ },
7379
+ engines: {
7380
+ node: ">=22"
7381
+ },
7382
+ files: [
7383
+ "dist"
7384
+ ],
7385
+ scripts: {
7386
+ build: "tsup",
7387
+ typecheck: "tsc --noEmit",
7388
+ prepublishOnly: "npm run build",
7389
+ "bundle:sandbox": "tsup --config tsup.sandbox.config.ts"
7390
+ },
7391
+ publishConfig: {
7392
+ access: "public"
7393
+ },
7394
+ repository: {
7395
+ type: "git",
7396
+ url: "git+https://github.com/tryarcanist/arcanist.git",
7397
+ directory: "apps/cli"
7398
+ },
7399
+ homepage: "https://www.tryarcanist.com",
7400
+ license: "MIT",
7401
+ dependencies: {
7402
+ commander: "^12.1.0"
7403
+ },
7404
+ devDependencies: {
7405
+ tsup: "^8.0.0",
7406
+ typescript: "^5.9.3"
7407
+ }
7408
+ };
7409
+
7371
7410
  // src/commands/artifacts.ts
7372
7411
  import { existsSync as existsSync2, mkdirSync as mkdirSync2, writeFileSync as writeFileSync2 } from "fs";
7373
7412
  import { basename, join as join2, resolve as resolve2 } from "path";
7374
7413
 
7375
- // src/api.ts
7376
- import { createRequire } from "module";
7377
-
7378
7414
  // ../../shared/utils/errors.ts
7379
7415
  function stringifyError(error51, fallback = "") {
7380
7416
  const message = error51 instanceof Error ? error51.message : String(error51);
@@ -7558,8 +7594,7 @@ function formatJsonError(err) {
7558
7594
  }
7559
7595
 
7560
7596
  // src/api.ts
7561
- var require2 = createRequire(import.meta.url);
7562
- var { version } = require2("../package.json");
7597
+ var { version } = package_default;
7563
7598
  var CLI_USER_AGENT = `arcanist-cli/${version}`;
7564
7599
  var DEFAULT_HTTP_TIMEOUT_MS = 3e4;
7565
7600
  var MIN_HTTP_TIMEOUT_MS = 1e3;
@@ -24002,14 +24037,7 @@ var MAX_ENV_KEY_CHARS = 80;
24002
24037
  var MAX_ENV_VALUE_BYTES = 2 * 1024;
24003
24038
  var MAX_ENV_VARS = 50;
24004
24039
  var SECRET_PATTERN = /\b(secret|token|password|passwd|private_key|private-key|access_key|access-key|client_secret|client-secret)\b|BEGIN PRIVATE KEY/i;
24005
- var FORBIDDEN_PATHS = [
24006
- "/app",
24007
- "/app/start-bridge.sh",
24008
- "/app/bridge",
24009
- "/app/scripts",
24010
- "/workspace",
24011
- "/usr/local/sbin/arcanist-enforce-egress"
24012
- ];
24040
+ var FORBIDDEN_PATHS = ["/app", "/app/start-bridge.sh", "/app/bridge", "/app/scripts", "/workspace"];
24013
24041
  var FORBIDDEN_TARGETING_OPS = /\b(rm|mv|cp|ln|chmod|chown|truncate|tee)\b|\bsed\s+-i\b|\bcat\s*>/;
24014
24042
  var ENV_KEY_RE = /^[A-Z_][A-Z0-9_]{0,79}$/;
24015
24043
  var SandboxLayerValidationError = class extends Error {
@@ -25183,17 +25211,9 @@ function parseOnboardingStageEvent(input) {
25183
25211
  return { stage: record2.stage, status, ...detail ? { detail } : {} };
25184
25212
  }
25185
25213
 
25186
- // ../../shared/transcript/malformed-search.ts
25187
- var MALFORMED_SEARCH_BLOCKED_TRANSCRIPT_PREFIX = "Arcanist blocked this malformed search command before execution.";
25188
- var BASH_UNMATCHED_QUOTE_EOF_RE = /\/bin\/bash:\s+-c:\s+line\s+\d+:\s+unexpected EOF while looking for matching [`'"][`'"]?/i;
25189
- function isMalformedSearchBlockedError(value) {
25190
- return typeof value === "string" && value.includes(MALFORMED_SEARCH_BLOCKED_TRANSCRIPT_PREFIX);
25191
- }
25192
- function containsMalformedSearchBashEof(value) {
25193
- return BASH_UNMATCHED_QUOTE_EOF_RE.test(value);
25194
- }
25195
-
25196
25214
  // ../../shared/transcript/projector.ts
25215
+ var MALFORMED_SEARCH_BLOCKED_TRANSCRIPT_PREFIX = "Arcanist blocked this malformed search command before execution.";
25216
+ var BASH_UNMATCHED_QUOTE_EOF_RE = /\/bin\/bash:\s+-c:\s+line\s+\d+:\s+unexpected EOF while looking for matching [`'\"][`'\"]?/i;
25197
25217
  var DUPLICATE_TEXT_DELTA_MIN_CHARS = 24;
25198
25218
  var RAW_CODEX_NOISE = /* @__PURE__ */ new Set([
25199
25219
  "session.updated",
@@ -25554,6 +25574,12 @@ function createFlattenState() {
25554
25574
  malformedSearchBlockedWithoutPrompt: false
25555
25575
  };
25556
25576
  }
25577
+ function isMalformedSearchBlockedError(value) {
25578
+ return typeof value === "string" && value.includes(MALFORMED_SEARCH_BLOCKED_TRANSCRIPT_PREFIX);
25579
+ }
25580
+ function containsMalformedSearchBashEof(value) {
25581
+ return BASH_UNMATCHED_QUOTE_EOF_RE.test(value);
25582
+ }
25557
25583
  function suppressMalformedSearchSegments(state) {
25558
25584
  if (state.malformedSearchBlockedPromptIds.size === 0 && !state.malformedSearchBlockedWithoutPrompt) {
25559
25585
  return state.merged;
@@ -25694,7 +25720,7 @@ function projectSessionError(data, index) {
25694
25720
  };
25695
25721
  }
25696
25722
  function recordMalformedSearchBlock(data, state) {
25697
- if (!isMalformedSearchBlockedError(data?.error)) return;
25723
+ if (data?.code !== "malformed_search_command" && !isMalformedSearchBlockedError(data?.error)) return;
25698
25724
  const promptId = resolvePromptId(data);
25699
25725
  if (promptId) {
25700
25726
  state.malformedSearchBlockedPromptIds.add(promptId);
@@ -26237,6 +26263,8 @@ var ERROR_CODES = [
26237
26263
  "codex_transport_closed",
26238
26264
  "codex_unrecoverable",
26239
26265
  "question_delivery_failed",
26266
+ // No producer since malformed search commands are ordinary bash failures. Retained because the code is
26267
+ // persisted on historical session rows, which would otherwise render as "unknown".
26240
26268
  "malformed_search_command",
26241
26269
  "unknown"
26242
26270
  ];
@@ -27175,8 +27203,7 @@ function promptIdsForEvents(events) {
27175
27203
  }
27176
27204
 
27177
27205
  // src/index.ts
27178
- var require3 = createRequire2(import.meta.url);
27179
- var { version: version3 } = require3("../package.json");
27206
+ var { version: version3 } = package_default;
27180
27207
  var program = new Command().name("arcanist").description("Arcanist CLI").version(version3).option("--json", "Output machine-readable JSON").option("--quiet", "Suppress non-essential stderr output").option("--api-url <url>", "Override API URL. Prefer ARCANIST_API_URL for persistent use").option(
27181
27208
  "--token <token>",
27182
27209
  "Override API token. Prefer ARCANIST_TOKEN because flags can be visible in shell history and process lists"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryarcanist/cli",
3
- "version": "0.1.312",
3
+ "version": "0.1.314",
4
4
  "description": "CLI for Arcanist - create and manage coding agent sessions",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,7 +15,8 @@
15
15
  "scripts": {
16
16
  "build": "tsup",
17
17
  "typecheck": "tsc --noEmit",
18
- "prepublishOnly": "npm run build"
18
+ "prepublishOnly": "npm run build",
19
+ "bundle:sandbox": "tsup --config tsup.sandbox.config.ts"
19
20
  },
20
21
  "publishConfig": {
21
22
  "access": "public"