@robmclarty/volley 0.5.2 → 0.5.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.js CHANGED
@@ -1506,6 +1506,7 @@ function make_builder_step(deps) {
1506
1506
  return model_call({
1507
1507
  engine: deps.engine,
1508
1508
  id: "builder",
1509
+ description: "model call: one agentic session in the build root",
1509
1510
  provider: config.builder_provider,
1510
1511
  model: config.builder_model,
1511
1512
  system: resolve_builder_system(config),
@@ -1747,11 +1748,16 @@ function make_critic_tools_step(deps) {
1747
1748
  return model_call2({
1748
1749
  ...critic_call_config(deps),
1749
1750
  id: "critic_tools",
1751
+ description: "model call with read-only workspace tools",
1750
1752
  ...critic_tool_options(deps.config)
1751
1753
  });
1752
1754
  }
1753
1755
  function make_critic_toolless_step(deps) {
1754
- return model_call2({ ...critic_call_config(deps), id: "critic_toolless" });
1756
+ return model_call2({
1757
+ ...critic_call_config(deps),
1758
+ id: "critic_toolless",
1759
+ description: "model call judging from the check output and a file list"
1760
+ });
1755
1761
  }
1756
1762
  function critic_retryable(config) {
1757
1763
  return (err) => is_retryable_critic_error(config, err);
@@ -2342,14 +2348,18 @@ function build_critic(deps) {
2342
2348
  const retryable = critic_retryable(deps.config);
2343
2349
  return fallback(
2344
2350
  retry(make_critic_tools_step(deps), {
2351
+ description: "one more try after a stream death, local providers only",
2345
2352
  max_attempts: MAX_CRITIC_RETRIES + 1,
2346
2353
  backoff_ms: 0,
2347
2354
  when: retryable,
2348
2355
  project: with_retries
2349
2356
  }),
2350
- pipe(make_critic_toolless_step(deps), as_degraded),
2357
+ pipe(make_critic_toolless_step(deps), as_degraded, {
2358
+ description: "mark the verdict degraded"
2359
+ }),
2351
2360
  {
2352
2361
  name: "critic",
2362
+ description: "judge without tools if a local critic's stream keeps dying",
2353
2363
  when: retryable,
2354
2364
  handoff: (prompt) => toolless_critic_prompt(deps.config, prompt),
2355
2365
  project: with_fallback_cause
@@ -2365,13 +2375,27 @@ function build_flow(deps, resume_from) {
2365
2375
  bash_executor: deps.bash_executor
2366
2376
  });
2367
2377
  const critic = build_critic({ engine: deps.engine, config, on_chunk: renderer.critic_chunk });
2368
- const build = step("build", (s, ctx) => build_phase(deps, builder, s, ctx));
2369
- const skip_verify = step("skip_verify", (s) => skip_verify_phase(deps, s));
2370
- const check = step("check", (s, ctx) => check_phase(deps, s, ctx));
2371
- const critique = step("critique", (s, ctx) => critique_phase(deps, critic, s, ctx));
2372
- const record = step("record", (s) => record_phase(deps, s));
2378
+ const build = step("build", (s, ctx) => build_phase(deps, builder, s, ctx), {
2379
+ description: "open the iteration, run the builder, measure the change",
2380
+ arm: builder
2381
+ });
2382
+ const skip_verify = step("skip_verify", (s) => skip_verify_phase(deps, s), {
2383
+ description: "record the check as skipped and call no critic"
2384
+ });
2385
+ const check = step("check", (s, ctx) => check_phase(deps, s, ctx), {
2386
+ description: "the deterministic gate: checkride, a command, or none"
2387
+ });
2388
+ const critique = step(
2389
+ "critique",
2390
+ (s, ctx) => critique_phase(deps, critic, s, ctx),
2391
+ { description: "the read-only critic's verdict and feedback", arm: critic }
2392
+ );
2393
+ const record = step("record", (s) => record_phase(deps, s), {
2394
+ description: "archive the iteration and rewrite the run summary"
2395
+ });
2373
2396
  const verify = branch({
2374
2397
  name: "verify",
2398
+ description: "did the build alone cross the cost cap?",
2375
2399
  when: (s) => cost_cap_hit(config, s),
2376
2400
  // fascicle names this arm `then`. It holds a Step object, never a function,
2377
2401
  // so nothing can mistake the config for a thenable.
@@ -2384,9 +2408,12 @@ function build_flow(deps, resume_from) {
2384
2408
  });
2385
2409
  return loop({
2386
2410
  name: "volley",
2411
+ description: "one round per iteration, up to max_iterations",
2387
2412
  init: (input) => input.resume_from ?? initial_state(),
2388
2413
  body: iteration,
2389
- guard: step("gate", (s) => gate(config, s)),
2414
+ guard: step("gate", (s) => gate(config, s), {
2415
+ description: "stop on approval over a green check, the cost cap, or a gate edit"
2416
+ }),
2390
2417
  finish: (s, { converged }) => ({ value: s, converged }),
2391
2418
  max_rounds: remaining_iterations(config, resume_from)
2392
2419
  });