@rallycry/conveyor-agent 10.7.2 → 10.7.4

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/dist/index.d.ts CHANGED
@@ -400,6 +400,13 @@ interface SessionRunnerCallbacks {
400
400
  onStatusChange: (status: AgentRunnerStatus) => void | Promise<void>;
401
401
  onEvent: (event: Record<string, unknown>) => void | Promise<void>;
402
402
  }
403
+ interface SessionRunnerPortDiscovery {
404
+ start(): Promise<void>;
405
+ stop(): void;
406
+ }
407
+ interface SessionRunnerDependencies {
408
+ portDiscovery?: SessionRunnerPortDiscovery;
409
+ }
403
410
  declare class SessionRunner {
404
411
  readonly connection: AgentConnection;
405
412
  readonly mode: ModeController;
@@ -431,10 +438,10 @@ declare class SessionRunner {
431
438
  /** Max consecutive gate-deferred ticks (~2 min each) before flushing anyway. */
432
439
  private static readonly MAX_GATE_SKIPS;
433
440
  /** Runtime preview-port poller (v3 dynamic port discovery). */
434
- private portDiscovery;
441
+ private readonly portDiscovery;
435
442
  /** Main event-loop lag measurement, shared with the heartbeat worker. */
436
443
  private readonly loopLag;
437
- constructor(config: SessionRunnerConfig, callbacks: SessionRunnerCallbacks);
444
+ constructor(config: SessionRunnerConfig, callbacks: SessionRunnerCallbacks, deps?: SessionRunnerDependencies);
438
445
  get state(): AgentRunnerStatus;
439
446
  get sessionId(): string;
440
447
  get isStopped(): boolean;
@@ -443,7 +450,7 @@ declare class SessionRunner {
443
450
  * Call this before run() when you need to send events (e.g. setup/start
444
451
  * command output) before the main agent lifecycle begins.
445
452
  */
446
- connect(): Promise<void>;
453
+ connect(): Promise<boolean>;
447
454
  /**
448
455
  * Run the main agent lifecycle: fetch context, resolve mode, execute, loop.
449
456
  * Requires connect() to have been called first.
@@ -686,7 +693,7 @@ declare function loadForwardPorts(workspaceDir: string): Promise<ForwardPortsRes
686
693
  /** Load config from env vars (project-level settings injected via bootstrap). */
687
694
  declare function loadConveyorConfig(): ConveyorConfig | null;
688
695
 
689
- declare function runSetupCommand(cmd: string, cwd: string, onOutput: (stream: "stdout" | "stderr", data: string) => void): Promise<void>;
696
+ declare function runSetupCommand(cmd: string, cwd: string, onOutput: (stream: "stdout" | "stderr", data: string) => void, signal?: AbortSignal): Promise<void>;
690
697
  declare function runAuthTokenCommand(cmd: string, userEmail: string, cwd: string): string | null;
691
698
  declare function runStartCommand(cmd: string, cwd: string, onOutput: (stream: "stdout" | "stderr", data: string) => void): ChildProcess;
692
699
 
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ import {
20
20
  unshallowRepo,
21
21
  updateRemoteToken,
22
22
  uploadSnapshotToGcs
23
- } from "./chunk-DDDLYATP.js";
23
+ } from "./chunk-WJWMLZKR.js";
24
24
  import "./chunk-7TQO4ZF4.js";
25
25
 
26
26
  // src/runner/worktree.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rallycry/conveyor-agent",
3
- "version": "10.7.2",
3
+ "version": "10.7.4",
4
4
  "description": "Conveyor Agent Runner v10 - PTY harness for the task chat (SDK harness for audit/project-chat). Agent-as-User architecture with BaseService patterns. Works locally too.",
5
5
  "keywords": [
6
6
  "agent",
@@ -308,12 +308,19 @@ export CONVEYOR_USER_ID
308
308
  seed_claude_json() {
309
309
  SEED_TARGET="$1"
310
310
  SEED_GATES='{"hasCompletedOnboarding":true,"bypassPermissionsModeAccepted":true,"projects":{"/workspaces/repo":{"hasTrustDialogAccepted":true}}}'
311
+ # Fable is entitlement-gated in the CLI's /model picker via
312
+ # additionalModelOptionsCache, normally populated by a bootstrap fetch the
313
+ # pods' synthesized credentials don't satisfy — without this row the picker
314
+ # never offers Fable in a pod. Appended only when no fable-valued entry
315
+ # exists, so a CLI-written entitlement cache is never clobbered.
316
+ SEED_FABLE_OPTION='{"value":"claude-fable-5[1m]","label":"Fable","description":"Fable 5 - most capable for your hardest and longest-running tasks"}'
317
+ SEED_FABLE_FILTER='if ([.additionalModelOptionsCache[]? | .value? | strings | ascii_downcase | select(contains("fable"))] | length) > 0 then . else .additionalModelOptionsCache = ((.additionalModelOptionsCache // []) + [$fable]) end'
311
318
  if [ -f "${SEED_TARGET}" ] && jq -e . "${SEED_TARGET}" >/dev/null 2>&1; then
312
- if SEED_MERGED="$(jq -c --argjson gates "${SEED_GATES}" '. * $gates' "${SEED_TARGET}" 2>/dev/null)" && [ -n "${SEED_MERGED}" ]; then
319
+ if SEED_MERGED="$(jq -c --argjson gates "${SEED_GATES}" --argjson fable "${SEED_FABLE_OPTION}" ". * \$gates | ${SEED_FABLE_FILTER}" "${SEED_TARGET}" 2>/dev/null)" && [ -n "${SEED_MERGED}" ]; then
313
320
  printf '%s' "${SEED_MERGED}" > "${SEED_TARGET}" 2>/dev/null || true
314
321
  fi
315
322
  else
316
- printf '%s' "${SEED_GATES}" | jq -c '. + {theme:"dark"}' > "${SEED_TARGET}" 2>/dev/null || true
323
+ printf '%s' "${SEED_GATES}" | jq -c --argjson fable "${SEED_FABLE_OPTION}" '. + {theme:"dark", additionalModelOptionsCache: [$fable]}' > "${SEED_TARGET}" 2>/dev/null || true
317
324
  fi
318
325
  }
319
326