@tryarcanist/cli 0.1.368 → 0.1.370

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 +44 -41
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -7409,7 +7409,7 @@ function isTerminalPhase(phase, _sessionKind) {
7409
7409
  // package.json
7410
7410
  var package_default = {
7411
7411
  name: "@tryarcanist/cli",
7412
- version: "0.1.368",
7412
+ version: "0.1.370",
7413
7413
  description: "Command-line interface for Arcanist: inspect sessions, prepare Zeus environments, and trigger reviews",
7414
7414
  type: "module",
7415
7415
  bin: {
@@ -28155,19 +28155,6 @@ async function environmentRetryCommand(repoArg, options = {}, command) {
28155
28155
  emit(command, options, { repository: state }, ({ repository }) => printState(repository));
28156
28156
  }
28157
28157
 
28158
- // src/commands/hades.ts
28159
- async function hadesCommand(repo, options = {}, command) {
28160
- assertArcanistSessionMutationAllowed("hades");
28161
- const { config: config2 } = resolveBusinessContext(command, options);
28162
- const result = await apiFetch(config2, "/api/hades-runs", {
28163
- method: "POST",
28164
- body: JSON.stringify({ repo })
28165
- });
28166
- emit(command, options, result, (payload) => {
28167
- console.log(`Started Hades run ${payload.runId} (${payload.jobId}).`);
28168
- });
28169
- }
28170
-
28171
28158
  // src/commands/login.ts
28172
28159
  var DEVICE_AUTH_START_PATH = "/api/auth/cli/device";
28173
28160
  var DEVICE_AUTH_TOKEN_PATH = "/api/auth/cli/device/token";
@@ -28266,8 +28253,10 @@ var BACKEND_DESKTOP_IMAGE_FEEDBACK_CONFIGS = {
28266
28253
  [CODEX_AGENT_RUNTIME_BACKEND]: {
28267
28254
  backend: CODEX_AGENT_RUNTIME_BACKEND,
28268
28255
  fixture: "known_image_fixture",
28269
- deliveryPath: "synthetic_image_context",
28270
- verifiedAt: "2026-07-07"
28256
+ // Codex 0.146.1 code mode flattens tool-result images to text, so the bridge steers the image
28257
+ // into the active turn as a user message; DEFAULT_CODEX_IMAGE_FEEDBACK_CAPABILITY mirrors this.
28258
+ deliveryPath: "steer_image_message",
28259
+ verifiedAt: "2026-09-14"
28271
28260
  }
28272
28261
  };
28273
28262
  var MODEL_REGISTRY = [
@@ -30970,10 +30959,12 @@ function noChangeOutcomeCopy(reason) {
30970
30959
  var REVIEW_CALIBRATION_SECTION_HEADING = "## Previously declined findings on this repository (calibration)";
30971
30960
  var REVIEW_EXISTING_BOT_FINDINGS_SECTION_HEADING = "## Findings already reported by other reviewers";
30972
30961
  var REVIEW_STACK_NEIGHBOURS_SECTION_HEADING = "## Graphite stack neighbours";
30962
+ var REVIEW_ONE_SHOT_ADVISORY_SECTION_HEADING = "## Independent review suggestions";
30973
30963
  var REVIEW_PROMPT_ENRICHMENT_SECTION_HEADINGS = [
30974
30964
  REVIEW_CALIBRATION_SECTION_HEADING,
30975
30965
  REVIEW_EXISTING_BOT_FINDINGS_SECTION_HEADING,
30976
- REVIEW_STACK_NEIGHBOURS_SECTION_HEADING
30966
+ REVIEW_STACK_NEIGHBOURS_SECTION_HEADING,
30967
+ REVIEW_ONE_SHOT_ADVISORY_SECTION_HEADING
30977
30968
  ];
30978
30969
 
30979
30970
  // ../../shared/transcript/prompt-display.ts
@@ -31887,7 +31878,10 @@ var SHELL_ENV_KEY_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
31887
31878
  // ../../shared/types/sandbox.ts
31888
31879
  var APP_RUNTIME_ENTRY_TYPE = {
31889
31880
  Compose: "compose",
31890
- Dockerfile: "dockerfile",
31881
+ /**
31882
+ * Contract-only: the control plane synthesizes a command entry from a profile's `bootScript`.
31883
+ * Profiles no longer store command entries (see the App Runtime schema in repo-runtime.ts).
31884
+ */
31891
31885
  Command: "command"
31892
31886
  };
31893
31887
 
@@ -31951,23 +31945,20 @@ var StringRecordSchema = external_exports.record(
31951
31945
  external_exports.string().regex(SHELL_ENV_KEY_PATTERN, "must be a POSIX-style environment variable name"),
31952
31946
  external_exports.string()
31953
31947
  );
31948
+ var ComposeAppRuntimeEntrySchema = external_exports.object({
31949
+ type: external_exports.enum([APP_RUNTIME_ENTRY_TYPE.Compose]),
31950
+ files: external_exports.array(external_exports.string()).optional(),
31951
+ service: external_exports.string().optional(),
31952
+ profiles: external_exports.array(external_exports.string()).optional()
31953
+ }).strict();
31954
31954
  var AppRuntimeProfileConfigSchema = external_exports.object({
31955
31955
  cwd: external_exports.string().optional(),
31956
+ bootScript: external_exports.string().max(65536).describe(
31957
+ "Optional bash bringup script. When set it overrides the entry: arcanist-app start runs it on the sandbox host from cwd with runtimeVariables plus HOST and PORT, and waits on ready.path. The app must listen on url.hostPort. Leave unset to boot from the entry."
31958
+ ).optional(),
31956
31959
  kind: external_exports.string().optional(),
31957
31960
  runner: external_exports.string().optional(),
31958
- entry: external_exports.object({
31959
- type: external_exports.enum([
31960
- APP_RUNTIME_ENTRY_TYPE.Compose,
31961
- APP_RUNTIME_ENTRY_TYPE.Dockerfile,
31962
- APP_RUNTIME_ENTRY_TYPE.Command
31963
- ]),
31964
- files: external_exports.array(external_exports.string()).optional(),
31965
- service: external_exports.string().optional(),
31966
- profiles: external_exports.array(external_exports.string()).optional(),
31967
- context: external_exports.string().optional(),
31968
- dockerfile: external_exports.string().optional(),
31969
- command: external_exports.string().optional()
31970
- }).strict().optional(),
31961
+ entry: ComposeAppRuntimeEntrySchema.optional(),
31971
31962
  url: external_exports.object({ hostPort: external_exports.number().int().optional(), path: external_exports.string().optional() }).strict().optional(),
31972
31963
  portMapping: external_exports.object({ containerPort: external_exports.number().int().optional() }).strict().optional(),
31973
31964
  additionalPorts: external_exports.array(
@@ -32006,9 +31997,25 @@ var AppRuntimeProfileConfigSchema = external_exports.object({
32006
31997
  credentials: external_exports.array(CredentialDeclarationSchema).optional()
32007
31998
  }).strict().optional()
32008
31999
  }).strict();
32000
+ var LEGACY_DOCKERFILE_ENTRY_TYPE = "dockerfile";
32001
+ var LegacyAppRuntimeEntrySchema = external_exports.union([
32002
+ external_exports.object({ type: external_exports.literal(APP_RUNTIME_ENTRY_TYPE.Command), command: external_exports.string().optional() }).passthrough(),
32003
+ external_exports.object({
32004
+ type: external_exports.literal(LEGACY_DOCKERFILE_ENTRY_TYPE),
32005
+ context: external_exports.string().optional(),
32006
+ dockerfile: external_exports.string().optional(),
32007
+ service: external_exports.string().optional()
32008
+ }).passthrough()
32009
+ ]);
32010
+ var AppRuntimeProfileConfigReadSchema = AppRuntimeProfileConfigSchema.extend({
32011
+ entry: external_exports.union([ComposeAppRuntimeEntrySchema, LegacyAppRuntimeEntrySchema]).optional()
32012
+ });
32009
32013
  var EnvironmentProvisioningConfigSchema = external_exports.object({
32010
32014
  sandbox: external_exports.object({ appRuntime: AppRuntimeProfileConfigSchema.optional() }).strict().optional()
32011
32015
  }).strict();
32016
+ var EnvironmentProvisioningConfigReadSchema = external_exports.object({
32017
+ sandbox: external_exports.object({ appRuntime: AppRuntimeProfileConfigReadSchema.optional() }).strict().optional()
32018
+ }).strict();
32012
32019
 
32013
32020
  // src/commands/setup.ts
32014
32021
  var INSTALL_POLL_INTERVAL_MS = 5e3;
@@ -32417,6 +32424,12 @@ Exit codes:
32417
32424
  program.configureOutput({
32418
32425
  writeErr: (str) => process.stderr.write(str)
32419
32426
  });
32427
+ program.on("beforeAllHelp", ({ command }) => {
32428
+ const name = command.args[0];
32429
+ if (command.commands.length > 0 && name && !name.startsWith("-") && !command.commands.some((child) => child.name() === name || child.aliases().includes(name))) {
32430
+ throw new CliError("user", `unknown command '${name}'`);
32431
+ }
32432
+ });
32420
32433
  program.hook("preAction", (_thisCommand, actionCommand) => {
32421
32434
  applyColorEnvironment(getRuntimeOptions(actionCommand));
32422
32435
  });
@@ -32484,16 +32497,6 @@ Zeus always uses the pinned Codex reviewer.
32484
32497
  Zeus review is currently available to Arcanist members only.
32485
32498
  `
32486
32499
  ).action((prUrl, options, command) => reviewCommand(prUrl, options, command));
32487
- program.command("hades <repo>").description("Start an internal Hades run measuring Zeus's review capability on a Try Arcanist repository").addHelpText(
32488
- "after",
32489
- `
32490
- Hades is internal-only. It measures which classes of correctness regression Zeus
32491
- identifies during normal review: it proves a small regression against an oracle in the
32492
- selected tryarcanist repository, and the control plane opens each one as a throwaway
32493
- draft pull request for Zeus to review. The drafts are closed and their branches deleted
32494
- once reviewed.
32495
- `
32496
- ).action((repo, options, command) => hadesCommand(repo, options, command));
32497
32500
  sessions.command("stop").description("Stop the active run for a session").argument("<session-id>", "Session ID").addHelpText(
32498
32501
  "after",
32499
32502
  `
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryarcanist/cli",
3
- "version": "0.1.368",
3
+ "version": "0.1.370",
4
4
  "description": "Command-line interface for Arcanist: inspect sessions, prepare Zeus environments, and trigger reviews",
5
5
  "type": "module",
6
6
  "bin": {