agentxchain 2.121.0 → 2.123.0

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.
@@ -675,6 +675,7 @@ program
675
675
  .option('--vision <path>', 'Path to VISION.md (project-relative or absolute, default: .planning/VISION.md)')
676
676
  .option('--max-runs <n>', 'Maximum consecutive governed runs in continuous mode (default: 100)', parseInt)
677
677
  .option('--poll-seconds <n>', 'Seconds between idle-detection cycles in continuous mode (default: 30)', parseInt)
678
+ .option('--triage-approval <mode>', 'Triage policy for vision-derived intents: auto or human (default: config or auto)')
678
679
  .option('--max-idle-cycles <n>', 'Stop after N consecutive idle cycles with no derivable work (default: 3)', parseInt)
679
680
  .option('--session-budget <usd>', 'Cumulative session-level budget cap in USD for continuous mode', parseFloat)
680
681
  .action(runCommand);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentxchain",
3
- "version": "2.121.0",
3
+ "version": "2.123.0",
4
4
  "description": "CLI for AgentXchain — governed multi-agent software delivery",
5
5
  "type": "module",
6
6
  "bin": {
@@ -86,6 +86,13 @@ function describeContinuousTerminalStep(step, contOpts) {
86
86
  if (step.status === 'idle_exit') {
87
87
  return `All vision goals appear addressed (${contOpts.maxIdleCycles} consecutive idle cycles). Stopping.`;
88
88
  }
89
+ if (step.status === 'failed') {
90
+ const reason = step.stop_reason || step.action || 'unknown';
91
+ return `Continuous loop failed: ${reason}. Check "agentxchain status" for details.`;
92
+ }
93
+ if (step.status === 'blocked') {
94
+ return 'Continuous loop paused on blocker. Use "agentxchain unblock <id>" to resume.';
95
+ }
89
96
  return null;
90
97
  }
91
98
 
@@ -304,7 +311,7 @@ export function resolveContinuousOptions(opts, config) {
304
311
  maxRuns: opts.maxRuns ?? configCont.max_runs ?? 100,
305
312
  pollSeconds: opts.pollSeconds ?? configCont.poll_seconds ?? 30,
306
313
  maxIdleCycles: opts.maxIdleCycles ?? configCont.max_idle_cycles ?? 3,
307
- triageApproval: configCont.triage_approval ?? 'auto',
314
+ triageApproval: opts.triageApproval ?? configCont.triage_approval ?? 'auto',
308
315
  cooldownSeconds: opts.cooldownSeconds ?? configCont.cooldown_seconds ?? 5,
309
316
  perSessionMaxUsd: opts.sessionBudget ?? configCont.per_session_max_usd ?? null,
310
317
  };
package/src/lib/intake.js CHANGED
@@ -713,7 +713,7 @@ export function startIntent(root, intentId, options = {}) {
713
713
  if (state.status === 'completed' && !allowCompletedRestart) {
714
714
  return {
715
715
  ok: false,
716
- error: 'cannot start: governed run is already completed. S3 does not reopen completed runs.',
716
+ error: 'cannot start: governed run is already completed. Use "agentxchain init --force" to start a new run.',
717
717
  exitCode: 1,
718
718
  };
719
719
  }