@osovv/vv-opencode 1.3.8 → 1.4.1
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/CHANGELOG.md +19 -0
- package/README.md +66 -14
- package/dist/commands/completion.js +10 -2
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/patch-provider.d.ts +148 -1
- package/dist/commands/patch-provider.js +151 -5
- package/dist/commands/patch-provider.js.map +1 -1
- package/dist/lib/orchestration.d.ts +2 -2
- package/dist/lib/orchestration.js +31 -2
- package/dist/lib/orchestration.js.map +1 -1
- package/dist/lib/spec-lint.d.ts +71 -1
- package/dist/lib/spec-lint.js +566 -8
- package/dist/lib/spec-lint.js.map +1 -1
- package/dist/lib/vvoc-config.d.ts +3 -3
- package/dist/lib/vvoc-preset-registry.d.ts +42 -30
- package/dist/lib/vvoc-preset-registry.js +41 -31
- package/dist/lib/vvoc-preset-registry.js.map +1 -1
- package/dist/plugins/hashline-edit/index.js.map +1 -1
- package/dist/plugins/workflow/checkpoint-io.d.ts +33 -0
- package/dist/plugins/workflow/checkpoint-io.js +224 -0
- package/dist/plugins/workflow/checkpoint-io.js.map +1 -0
- package/dist/plugins/workflow/checkpoints.d.ts +182 -0
- package/dist/plugins/workflow/checkpoints.js +1067 -0
- package/dist/plugins/workflow/checkpoints.js.map +1 -0
- package/dist/plugins/workflow/delegated.d.ts +182 -0
- package/dist/plugins/workflow/delegated.js +751 -0
- package/dist/plugins/workflow/delegated.js.map +1 -0
- package/dist/plugins/workflow/index.js +685 -23
- package/dist/plugins/workflow/index.js.map +1 -1
- package/dist/plugins/workflow/persistence.d.ts +32 -3
- package/dist/plugins/workflow/persistence.js +516 -70
- package/dist/plugins/workflow/persistence.js.map +1 -1
- package/dist/plugins/workflow/repair.js +3 -1
- package/dist/plugins/workflow/repair.js.map +1 -1
- package/dist/plugins/workflow/snapshots.d.ts +59 -0
- package/dist/plugins/workflow/snapshots.js +261 -0
- package/dist/plugins/workflow/snapshots.js.map +1 -0
- package/dist/plugins/workflow/state.d.ts +20 -2
- package/dist/plugins/workflow/state.js +127 -12
- package/dist/plugins/workflow/state.js.map +1 -1
- package/dist/plugins/workflow/tooling.d.ts +45 -0
- package/dist/plugins/workflow/tooling.js +344 -12
- package/dist/plugins/workflow/tooling.js.map +1 -1
- package/dist/plugins/workflow/transitions.js +2 -2
- package/dist/plugins/workflow/transitions.js.map +1 -1
- package/dist/tui/context/analyze.js +3 -1
- package/dist/tui/context/analyze.js.map +1 -1
- package/package.json +1 -1
- package/schemas/vvoc/v3.json +5 -3
- package/templates/agents/vv-code-reviewer.md +3 -1
- package/templates/agents/vv-implementer.md +5 -2
- package/templates/agents/vv-spec-reviewer.md +3 -0
- package/templates/skills/vv-execute/SKILL.md +62 -15
- package/templates/skills/vv-plan/SKILL.md +13 -3
- package/templates/skills/vv-plan/references/plan-template.xml +45 -0
- package/templates/skills/vv-review/SKILL.md +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
## <small>1.4.1 (2026-09-11)</small>
|
|
2
|
+
|
|
3
|
+
### Summary
|
|
4
|
+
|
|
5
|
+
Version 1.4.1 corrects the GPT-6 Astra alias limits to the official 1.05M context, 922K input, and 128K output contract, so patched sessions no longer compact roughly 500K tokens earlier than the model actually supports. The built-in preset registry is refreshed with DeepSeek Flash Max and GLM-5.3 Max/Flash Max role assignments, new vv-osovv-ds and vv-osovv-zai presets, and Luna Low in place of the legacy Spark alias, while retired presets, custom presets, and active role or profile settings are preserved across install and sync. Delegated workflow handling now records a confirmed foreground worker launch failure as a distinct failed attempt with bounded evidence, keeping the item retryable against the same two-attempt budget instead of stranding an in-flight attempt until restart. The release also archives the applied delegated-workflow and Astra-presets change bundle and checkpoints foreground failure-recovery work, which remains unfinished pending review fixes.
|
|
6
|
+
|
|
7
|
+
* fix(patch-provider): correct GPT-6 Astra alias limits to official 1.05M/922K/128K contract ([cd2610d](https://github.com/osovv/vv-opencode/commit/cd2610d)), closes [PR#33972](https://github.com/PR/issues/33972)
|
|
8
|
+
* chore(grace): archive C-DELEGATED-WORKFLOW-ASTRA-PRESETS as applied ([5fabfb9](https://github.com/osovv/vv-opencode/commit/5fabfb9))
|
|
9
|
+
* chore(workflow): checkpoint foreground failure recovery ([7a1c29c](https://github.com/osovv/vv-opencode/commit/7a1c29c))
|
|
10
|
+
* feat(presets): refresh role assignments and provider aliases ([2bbfa70](https://github.com/osovv/vv-opencode/commit/2bbfa70))
|
|
11
|
+
|
|
12
|
+
## 1.4.0 (2026-09-11)
|
|
13
|
+
|
|
14
|
+
### Summary
|
|
15
|
+
|
|
16
|
+
Version 1.4.0 introduces a delegated execution workflow alongside two new Astra presets, making it possible to run ordinary implementation work with fewer slow independent-review barriers without weakening acceptance or auditability. A new delegated orchestration profile keeps architecture, important code reading, task contracts, explicit acceptance, and final synthesis in the primary controller session while workers own implementation, tests, formatting, and reviewer-requested fixes through bounded task packets. Delegated work items now carry declared write scopes, host-callID-bound attempts, a two-attempt budget, and explicit accept, request_changes, or checkpoint-authorized rework decisions, so a worker returning DONE parks its item in awaiting_acceptance instead of closing or self-accepting it, while BLOCKED and NEEDS_CONTEXT remain hard stops. Independent review moves to declared plan checkpoints: work_checkpoint register loads and lints an approved plan and its linked spec with content-hash binding, start captures a fresh scope fingerprint and opens exactly the declared reviewer set, and verify derives passed, failed, stale, or stopped outcomes from recorded results and recomputed hashes, with wave barriers, overlapping-write exclusions, and final sealing via complete: true. Spec linting gains delegated execution and review-checkpoint validation (LINT_VERSION 2), workflow state persists as version 2 with conservative version 1 hydration and atomic writes, and the vv-astra-solo and vv-astra-workers presets plus codex Astra max, Spark medium, DeepSeek Flash high, and zai GLM-5.3 high provider aliases make explicit-reasoning setups directly applicable. Documentation, managed skills, and reviewer guidance were updated so the inline, classic, and delegated vocabulary stays consistent, and a deterministic twenty-task scenario with two milestone checkpoints plus a final spec/code checkpoint requires exactly four initial reviewer launches rather than forty.
|
|
17
|
+
|
|
18
|
+
* feat(workflow): add delegated execution, review checkpoints, and astra presets ([709d41b](https://github.com/osovv/vv-opencode/commit/709d41b))
|
|
19
|
+
|
|
1
20
|
## <small>1.3.8 (2026-09-09)</small>
|
|
2
21
|
|
|
3
22
|
### Summary
|
package/README.md
CHANGED
|
@@ -227,7 +227,7 @@ Skills are loaded by OpenCode at session start through `config.skills.paths` (re
|
|
|
227
227
|
| `vvoc plugin list` | List OpenCode plugin entries |
|
|
228
228
|
| `vvoc plugin enable\|disable` | Toggle a vvoc-managed plugin on or off |
|
|
229
229
|
| `vvoc orchestration show\|set` | Show or set the vv-controller orchestration profile |
|
|
230
|
-
| `vvoc patch-provider stepfun-ai\|codex\|deepseek\|kimi\|alibaba\|all` | Patch OpenCode providers; `codex` adds subscription-safe OpenAI aliases (also accepts `openai`), `deepseek`/`kimi`/`alibaba` add vv- reasoning-effort aliases, `all` patches every provider at once |
|
|
230
|
+
| `vvoc patch-provider stepfun-ai\|codex\|deepseek\|kimi\|alibaba\|zai\|all` | Patch OpenCode providers; `codex` adds subscription-safe OpenAI aliases (also accepts `openai`), `deepseek`/`kimi`/`alibaba`/`zai` add vv- reasoning-effort aliases, `all` patches every provider at once |
|
|
231
231
|
| `vvoc completion` | Install shell completions |
|
|
232
232
|
| `vvoc upgrade` | Upgrade the global package and run follow-up sync; sync failure is reported as a partial upgrade |
|
|
233
233
|
| `vvoc analytics cache-hit-rate` | Aggregate persisted cache hit rate by day, week, month, session, model, provider, project, vvoc version, or OpenCode version |
|
|
@@ -354,10 +354,10 @@ vvoc role list
|
|
|
354
354
|
vvoc role list --scope effective
|
|
355
355
|
|
|
356
356
|
# Assign models to roles
|
|
357
|
-
vvoc role set default deepseek/deepseek-
|
|
358
|
-
vvoc role set smart
|
|
357
|
+
vvoc role set default deepseek/vv-deepseek-flash-max
|
|
358
|
+
vvoc role set smart zai-coding-plan/vv-glm-5.3-max
|
|
359
359
|
vvoc role set fast openai/vv-codex-gpt-5.6-luna-low
|
|
360
|
-
vvoc role set reviewer zai-coding-plan/glm-5.
|
|
360
|
+
vvoc role set reviewer zai-coding-plan/vv-glm-5.3-max --scope project
|
|
361
361
|
|
|
362
362
|
# Switch provider presets
|
|
363
363
|
vvoc preset vv-codex
|
|
@@ -365,21 +365,48 @@ vvoc preset vv-zai
|
|
|
365
365
|
vvoc preset vv-deepseek
|
|
366
366
|
vvoc preset vv-kimi
|
|
367
367
|
vvoc preset vv-alibaba
|
|
368
|
-
vvoc preset vv-osovv-
|
|
369
|
-
vvoc preset vv-osovv-
|
|
370
|
-
vvoc preset vv-osovv-kimi
|
|
368
|
+
vvoc preset vv-osovv-ds
|
|
369
|
+
vvoc preset vv-osovv-zai
|
|
371
370
|
vvoc preset vv-osovv-qwen
|
|
371
|
+
vvoc preset vv-astra-solo
|
|
372
|
+
vvoc preset vv-astra-workers
|
|
373
|
+
|
|
374
|
+
# Install the explicit-reasoning provider aliases
|
|
375
|
+
vvoc patch-provider codex # vv-codex-gpt-6-astra-max (+ vv-codex-gpt-5.3-codex-spark-medium legacy alias + existing aliases)
|
|
376
|
+
vvoc patch-provider deepseek # vv-deepseek-flash-max (+ vv-deepseek-v4-flash-max, vv-deepseek-flash-high)
|
|
377
|
+
vvoc patch-provider zai # vv-glm-5.3-max + vv-glm-5.3-flash-max (+ vv-glm-5.3-high)
|
|
378
|
+
vvoc patch-provider all # every patch above in one run
|
|
372
379
|
```
|
|
373
380
|
|
|
374
|
-
Built-in role IDs: `default`, `smart`, `fast`, `reviewer`, plus any custom lowercase-hyphenated IDs. Presets are partial — applying one only changes the roles it defines. Managed built-in presets (`vv-*`) are refreshed
|
|
381
|
+
Built-in role IDs: `default`, `smart`, `fast`, `reviewer`, plus any custom lowercase-hyphenated IDs. Presets are partial — applying one only changes the roles it defines. Managed built-in presets (`vv-*`) are refreshed from the shipped registry as part of the other work `vvoc install` and `vvoc sync` already do; neither command activates a preset or writes the active roles or orchestration profile on its own — that only happens when you run `vvoc preset <name>`.
|
|
382
|
+
|
|
383
|
+
Every shipped preset declares an explicit role matrix and orchestration profile:
|
|
384
|
+
|
|
385
|
+
| Preset | default | fast | smart | reviewer | Profile |
|
|
386
|
+
|---|---|---|---|---|---|
|
|
387
|
+
| `vv-codex` | `openai/vv-codex-gpt-5.6-terra-high` | `openai/vv-codex-gpt-5.6-luna-low` | `openai/vv-codex-gpt-5.6-sol-xhigh` | `openai/vv-codex-gpt-5.6-sol-xhigh` | single-session |
|
|
388
|
+
| `vv-zai` | `zai-coding-plan/vv-glm-5.3-flash-max` | `zai-coding-plan/vv-glm-5.3-flash-max` | `zai-coding-plan/vv-glm-5.3-max` | `zai-coding-plan/vv-glm-5.3-max` | balanced |
|
|
389
|
+
| `vv-deepseek` | `deepseek/vv-deepseek-flash-max` | `deepseek/vv-deepseek-flash-max` | `deepseek/vv-deepseek-flash-max` | `deepseek/vv-deepseek-flash-max` | balanced |
|
|
390
|
+
| `vv-kimi` | `kimi-for-coding/k3` | `kimi-for-coding/kimi-for-coding-highspeed` | `kimi-for-coding/vv-kimi-k3-max` | `kimi-for-coding/kimi-for-coding` | single-session |
|
|
391
|
+
| `vv-alibaba` | `alibaba-token-plan/qwen3.8-max` | `alibaba-token-plan/deepseek-v4-flash` | `alibaba-token-plan/vv-qwen3.8-max-xhigh` | `alibaba-token-plan/glm-5.2` | single-session |
|
|
392
|
+
| `vv-osovv-ds` | `deepseek/vv-deepseek-flash-max` | `openai/vv-codex-gpt-5.6-luna-low` | `deepseek/vv-deepseek-flash-max` | `zai-coding-plan/vv-glm-5.3-max` | single-session |
|
|
393
|
+
| `vv-osovv-zai` | `deepseek/vv-deepseek-flash-max` | `openai/vv-codex-gpt-5.6-luna-low` | `zai-coding-plan/vv-glm-5.3-max` | `zai-coding-plan/vv-glm-5.3-max` | single-session |
|
|
394
|
+
| `vv-osovv-qwen` | `deepseek/vv-deepseek-flash-max` | `openai/vv-codex-gpt-5.6-luna-low` | `alibaba-token-plan/vv-qwen3.8-max-xhigh` | `zai-coding-plan/vv-glm-5.3-max` | delegated |
|
|
395
|
+
| `vv-astra-solo` | `openai/vv-codex-gpt-6-astra-max` | `openai/vv-codex-gpt-5.6-luna-low` | `openai/vv-codex-gpt-6-astra-max` | `zai-coding-plan/vv-glm-5.3-high` | single-session |
|
|
396
|
+
| `vv-astra-workers` | `deepseek/vv-deepseek-flash-high` | `openai/vv-codex-gpt-5.6-luna-low` | `openai/vv-codex-gpt-6-astra-max` | `zai-coding-plan/vv-glm-5.3-high` | delegated |
|
|
397
|
+
|
|
398
|
+
`vv-osovv-ds` replaces the former `vv-osovv-flash` offering and `vv-osovv-zai` is new; `vv-osovv-sol`, `vv-osovv-flash`, and `vv-osovv-kimi` are no longer shipped. A retired preset definition already present in a saved `vvoc.json` is preserved in place rather than migrated or removed across `vvoc install`/`vvoc sync`; delete it manually if you no longer want it. No automatic provider migration or legacy-name cleanup runs, and applying a preset changes only the roles and profile it declares.
|
|
399
|
+
|
|
400
|
+
The explicit-reasoning aliases bind API model IDs to fixed efforts in the patched OpenCode provider entries. `deepseek-flash` is available as `vv-deepseek-flash-max` (effort `max`, image input) and the older `vv-deepseek-flash-high` (`high`, text-only); `vv-deepseek-v4-flash-max` remains text-only. On `zai-coding-plan`, `glm-5.3` is available as `vv-glm-5.3-high` and `vv-glm-5.3-max` (both text-only) and `glm-5.3-flash` as `vv-glm-5.3-flash-max` (text, image, video, and PDF input). The codex aliases keep the established OpenAI reasoning-summary and encrypted-reasoning options. `vv-codex-gpt-5.3-codex-spark-medium` is retained only for backward compatibility with manual configurations that already reference it: it is legacy/manual compatibility, keeps its disabled inherited effort variants, and is advertised conservatively as text-only, and no shipped preset selects it. The shared `fast` role also serves `explore`, Guardian, and `small_model` — availability for those consumers is not verified until you use it. Real model access, review quality, latency, and Astra-token savings are unmeasured: metadata here describes provider capability and pricing boundaries, not benchmarked behavior, and credentialed smoke runs would require separate authorization.
|
|
375
401
|
|
|
376
402
|
### Orchestration profiles
|
|
377
403
|
|
|
378
|
-
|
|
404
|
+
Four concrete policies control how vv-controller delegates work at runtime:
|
|
379
405
|
|
|
380
406
|
- `single-session` — vv-controller performs exploration, investigation, planning, implementation, and verification directly. Independent reviewer subagents remain available when the user explicitly requests review or when a materially risky completed change benefits from independent cross-model evaluation.
|
|
381
407
|
- `balanced` — vv-controller keeps architecture, critical reading, and final synthesis in the primary session and may selectively delegate bounded search, investigation, mechanical implementation, or review when that is the lightest safe route. Delegation is optional, not mechanically mandatory.
|
|
382
408
|
- `orchestrated` — vv-controller uses the full tracked implementer/reviewer workflow with explicit work items, required reviewers, bounded rounds, and hard stops.
|
|
409
|
+
- `delegated` — implementation is delegated to workers while the primary session keeps architecture, important code reading, task contracts, explicit acceptance, and final synthesis. Source edits, tests, config changes, formatting, lint fixes, and reviewer-requested fixes — including small mechanical ones — go to workers through bounded task packets. Independent review happens at declared plan checkpoints instead of after every task; `BLOCKED` and `NEEDS_CONTEXT` remain hard stops.
|
|
383
410
|
|
|
384
411
|
Pick a profile explicitly or let a built-in preset select one:
|
|
385
412
|
|
|
@@ -395,16 +422,17 @@ Built-in presets declare an orchestration mapping:
|
|
|
395
422
|
| `vv-codex` | single-session |
|
|
396
423
|
| `vv-kimi` | single-session |
|
|
397
424
|
| `vv-alibaba` | single-session |
|
|
398
|
-
| `vv-osovv-
|
|
399
|
-
| `vv-osovv-
|
|
400
|
-
| `vv-
|
|
401
|
-
| `vv-
|
|
425
|
+
| `vv-osovv-ds` | single-session |
|
|
426
|
+
| `vv-osovv-zai` | single-session |
|
|
427
|
+
| `vv-astra-solo` | single-session |
|
|
428
|
+
| `vv-astra-workers` | delegated |
|
|
429
|
+
| `vv-osovv-qwen` | delegated |
|
|
402
430
|
| `vv-zai` | balanced |
|
|
403
431
|
| `vv-deepseek` | balanced |
|
|
404
432
|
|
|
405
433
|
Applying a built-in preset changes both model roles and the root orchestration profile atomically. A custom user-defined preset without an orchestration section preserves the current root profile. `vvoc status` reports the profile resolved from the selected vvoc source; effective status with no config files reports `balanced`.
|
|
406
434
|
|
|
407
|
-
Profiles are enforced through the concrete policy injected into vv-controller at startup — the model only receives its active work instructions and never sees inactive profile alternatives. The
|
|
435
|
+
Profiles are enforced through the concrete policy injected into vv-controller at startup — the model only receives its active work instructions and never sees inactive profile alternatives. The policy is behavioral, not a filesystem sandbox: the delegated profile instructs the controller not to write source files (and not to bypass that via shell rewrites), while runtime authorization genuinely enforces acceptance and checkpoint operations. Asynchronous vv-execute classic mode remains available through that skill's explicit inline/classic/delegated selection. Profile changes take effect after an OpenCode restart, like all vvoc config changes.
|
|
408
436
|
|
|
409
437
|
### Workflow work items
|
|
410
438
|
|
|
@@ -425,6 +453,30 @@ Workflow work items are opened with explicit intent. For implementation loops, c
|
|
|
425
453
|
|
|
426
454
|
For review-only reports, use `"mode": "review_only"`. In review-only mode, reviewer `FAIL` is a completed finding result: required reviewers are collected independently, parallel `spec` and `code` reviewers may both return `FAIL`, and the item does not route to `vv-implementer` unless the user explicitly requests fixes.
|
|
427
455
|
|
|
456
|
+
#### Delegated execution and review checkpoints
|
|
457
|
+
|
|
458
|
+
Under the `delegated` profile the workflow plugin also registers two control tools — `work_item_decide` and `work_checkpoint` — for the primary vv-controller session only (child sessions, untrusted workspaces, and unverifiable session identity are denied).
|
|
459
|
+
|
|
460
|
+
Delegated tasks are opened with `"mode": "delegated"`, an explicitly empty `requiredReviewers` array, and a declared `writeScope` of workspace-relative files. One worker (`vv-implementer`) is launched per task with a bounded packet; attempts are bound to the host call identity, so stale or duplicate callbacks fail without side effects. A `DONE` worker parks the item in `awaiting_acceptance` — it never closes the item and the worker never accepts its own result. The controller explicitly decides with `work_item_decide`:
|
|
461
|
+
|
|
462
|
+
- `accept` (with rationale and evidence references) records controller acceptance and reaches `ready_to_close`. Acceptance is recorded distinctly from an independent reviewer `PASS`.
|
|
463
|
+
- `request_changes` returns the task to the implementation path. Controller-directed retries are bounded to an initial attempt plus one correction; re-deciding or reopening never resets that budget. `DONE_WITH_CONCERNS` requires an explicit `concernsDisposition`.
|
|
464
|
+
- `rework` reopens an accepted task only when a failed checkpoint from the same registered run covers it, preserving acceptance history and granting exactly one additional attempt.
|
|
465
|
+
|
|
466
|
+
A worker can fail to launch at all: the host task wrapper rejects the call before the worker runs (for example, an unknown provider or model). The host skips the `tool.execute.after` hook on a thrown execution, so the plugin consumes the failure as a distinct **failed attempt** from the live call binding instead of leaving `inFlightAttempt` stranded until a restart. The supported case is deliberately narrow — a fresh ordinary foreground `vv-implementer` task launch (no `background`, no `task_id` resume, no command/subtask path) whose host call errors with the exact `Subagent failed (task_id: <child>): ` wrapper, where the event metadata independently binds the same parent session and child session. When it applies, the attempt is marked `failed` with the bounded host error as evidence and a completion time, the item stays `awaiting_implementer`, and the attempt is charged against the same two-attempt budget. The controller can then explicitly retry with a new call; two failed attempts exhaust the normal budget exactly like two completed ones. A failed attempt never counts as `DONE`, cannot be accepted or decided as a successful completion, and persists across restart. Because a worker may have applied partial edits before failing, inspect the diff before retrying or closing.
|
|
467
|
+
|
|
468
|
+
This is not universal automatic error recovery. Background or promoted launches, resumed/shared/re-prompted children, cancellation or interruption, any task that entered the `tool.execute.after` hook (including a protocol/repair failure there), missing or mismatched parent/child metadata, and unknown or non-wrapper host errors all remain fail-closed: the in-flight block is preserved and no retry is authorized from the event alone. The plugin never hydrates workflow state, infers a work item from error text, or resets a whole session because of an error event, and it does not reclassify legacy-mode or checkpoint-reviewer launches.
|
|
469
|
+
|
|
470
|
+
Independent review happens at checkpoints declared in the plan. An approved delegated plan carries an `<execution><mode>delegated</mode>` section with `<review_checkpoints>` (`CHECKPOINT-R-NNN` identities, each with kind, wave barrier, covered tasks, reviewed scope files, reviewer set, acceptance criteria, and verification commands) and per-task `<write_scope>` lists. `work_checkpoint` handles three actions:
|
|
471
|
+
|
|
472
|
+
- `register` — loads an approved active plan plus its linked approved spec, fully lints them, and binds the run to their content hashes and the canonical workspace root. Re-registering identical inputs is idempotent; changed approved inputs are explicit plan drift, never a progress reset.
|
|
473
|
+
- `start` — after every covered task is accepted, captures a SHA-256 fingerprint over the checkpoint scope (file contents, existence, mode bits, and covered accepted attempts) and opens exactly the declared reviewer set as an ordinary `review_only` item. Writes overlapping an in-flight checkpoint scope are refused.
|
|
474
|
+
- `verify` — derives `passed`, `failed`, `stale`, or `stopped` from the recorded reviewer results plus freshly recomputed fingerprints and approval hashes. A checkpoint passes only when every declared reviewer passes for the pinned snapshot; a closed review-only `FAIL` report is findings, not approval; edits during review make the generation stale. The final checkpoint seals the run only via `verify` with `complete: true` after every task is accepted, every earlier checkpoint passed, and the complete declared write scope is covered with fresh verification.
|
|
475
|
+
|
|
476
|
+
Passed milestones stay historical: later planned edits are covered by later checkpoints or the final gate, not by an old approval. Hard stops (`BLOCKED`, `NEEDS_CONTEXT`) are never reset or bypassed by acceptance or checkpoint handling. Checkpoint state persists per session and survives restarts; a persisted `PASS` is not fresh evidence until `verify` recomputes current hashes.
|
|
477
|
+
|
|
478
|
+
Plans without an `<execution>` section keep their legacy meaning; executing them with different acceptance or review obligations requires an explicit agreed plan amendment, and archived plans are never rewritten. In a deterministic dispatch-count scenario, a twenty-task plan with two intermediate code-review checkpoints and one final spec+code checkpoint needs exactly four initial reviewer launches instead of forty — that is a property of the declared checkpoint policy, not a wall-clock or model-quality benchmark.
|
|
479
|
+
|
|
428
480
|
### Edit format routing
|
|
429
481
|
|
|
430
482
|
`HashlineEditPlugin` resolves an edit mode per session model and exposes exactly one native edit tool to that model — either a host-owned tool or one of the plugin profiles:
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
// END_MODULE_MAP
|
|
19
19
|
//
|
|
20
20
|
// START_CHANGE_SUMMARY
|
|
21
|
-
// LAST_CHANGE: [
|
|
21
|
+
// LAST_CHANGE: [C-DELEGATED-WORKFLOW-ASTRA-PRESETS - Added the zai patch preset to patch-provider completions.]
|
|
22
22
|
// END_CHANGE_SUMMARY
|
|
23
23
|
import { defineCommand } from "citty";
|
|
24
24
|
import { appendFile, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
@@ -48,7 +48,15 @@ const VVOC_TOP_LEVEL_COMMANDS = [
|
|
|
48
48
|
const VVOC_CONFIG_COMMANDS = ["validate"];
|
|
49
49
|
const VVOC_ORCHESTRATION_COMMANDS = ["show", "set"];
|
|
50
50
|
const VVOC_ORCHESTRATION_PROFILES = [...ORCHESTRATION_PROFILE_NAMES];
|
|
51
|
-
const VVOC_PATCH_PROVIDER_PRESETS = [
|
|
51
|
+
const VVOC_PATCH_PROVIDER_PRESETS = [
|
|
52
|
+
"stepfun-ai",
|
|
53
|
+
"codex",
|
|
54
|
+
"deepseek",
|
|
55
|
+
"kimi",
|
|
56
|
+
"alibaba",
|
|
57
|
+
"zai",
|
|
58
|
+
"all",
|
|
59
|
+
];
|
|
52
60
|
const VVOC_PRESET_COMMANDS = ["list", "show"];
|
|
53
61
|
const VVOC_PLUGIN_COMMANDS = ["list"];
|
|
54
62
|
const VVOC_ROLE_COMMANDS = ["set", "unset", "list"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,kBAAkB;AAClB,wBAAwB;AACxB,0EAA0E;AAC1E,8JAA8J;AAC9J,8IAA8I;AAC9I,2FAA2F;AAC3F,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,8DAA8D;AAC9D,kEAAkE;AAClE,+DAA+D;AAC/D,6DAA6D;AAC7D,+DAA+D;AAC/D,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -122,6 +122,59 @@ declare const PATCH_PROVIDER_PRESETS: {
|
|
|
122
122
|
readonly include: readonly ["reasoning.encrypted_content"];
|
|
123
123
|
};
|
|
124
124
|
};
|
|
125
|
+
readonly "vv-codex-gpt-6-astra-max": {
|
|
126
|
+
readonly name: "VV Codex GPT-6 Astra Max";
|
|
127
|
+
readonly id: "gpt-6-astra";
|
|
128
|
+
readonly variants: {};
|
|
129
|
+
readonly limit: {
|
|
130
|
+
readonly context: 1050000;
|
|
131
|
+
readonly input: 922000;
|
|
132
|
+
readonly output: 128000;
|
|
133
|
+
};
|
|
134
|
+
readonly modalities: {
|
|
135
|
+
readonly input: readonly ["text", "image", "pdf"];
|
|
136
|
+
readonly output: readonly ["text"];
|
|
137
|
+
};
|
|
138
|
+
readonly reasoning: true;
|
|
139
|
+
readonly options: {
|
|
140
|
+
readonly reasoningEffort: "max";
|
|
141
|
+
readonly reasoningSummary: "auto";
|
|
142
|
+
readonly include: readonly ["reasoning.encrypted_content"];
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
readonly "vv-codex-gpt-5.3-codex-spark-medium": {
|
|
146
|
+
readonly name: "VV Codex GPT-5.3 Codex Spark Medium";
|
|
147
|
+
readonly id: "gpt-5.3-codex-spark";
|
|
148
|
+
readonly variants: {
|
|
149
|
+
readonly none: {
|
|
150
|
+
readonly disabled: true;
|
|
151
|
+
};
|
|
152
|
+
readonly low: {
|
|
153
|
+
readonly disabled: true;
|
|
154
|
+
};
|
|
155
|
+
readonly high: {
|
|
156
|
+
readonly disabled: true;
|
|
157
|
+
};
|
|
158
|
+
readonly max: {
|
|
159
|
+
readonly disabled: true;
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
readonly limit: {
|
|
163
|
+
readonly context: 128000;
|
|
164
|
+
readonly input: 100000;
|
|
165
|
+
readonly output: 32000;
|
|
166
|
+
};
|
|
167
|
+
readonly modalities: {
|
|
168
|
+
readonly input: readonly ["text"];
|
|
169
|
+
readonly output: readonly ["text"];
|
|
170
|
+
};
|
|
171
|
+
readonly reasoning: true;
|
|
172
|
+
readonly options: {
|
|
173
|
+
readonly reasoningEffort: "medium";
|
|
174
|
+
readonly reasoningSummary: "auto";
|
|
175
|
+
readonly include: readonly ["reasoning.encrypted_content"];
|
|
176
|
+
};
|
|
177
|
+
};
|
|
125
178
|
};
|
|
126
179
|
};
|
|
127
180
|
readonly summary: "provider.openai.models vv-codex-gpt-5.5/5.6 aliases patched";
|
|
@@ -148,9 +201,43 @@ declare const PATCH_PROVIDER_PRESETS: {
|
|
|
148
201
|
readonly reasoningEffort: "max";
|
|
149
202
|
};
|
|
150
203
|
};
|
|
204
|
+
readonly "vv-deepseek-flash-max": {
|
|
205
|
+
readonly name: "VV DeepSeek Flash Max";
|
|
206
|
+
readonly id: "deepseek-flash";
|
|
207
|
+
readonly variants: {};
|
|
208
|
+
readonly limit: {
|
|
209
|
+
readonly context: 1000000;
|
|
210
|
+
readonly output: 384000;
|
|
211
|
+
};
|
|
212
|
+
readonly modalities: {
|
|
213
|
+
readonly input: readonly ["text", "image"];
|
|
214
|
+
readonly output: readonly ["text"];
|
|
215
|
+
};
|
|
216
|
+
readonly reasoning: true;
|
|
217
|
+
readonly options: {
|
|
218
|
+
readonly reasoningEffort: "max";
|
|
219
|
+
};
|
|
220
|
+
};
|
|
221
|
+
readonly "vv-deepseek-flash-high": {
|
|
222
|
+
readonly name: "VV DeepSeek Flash High";
|
|
223
|
+
readonly id: "deepseek-flash";
|
|
224
|
+
readonly variants: {};
|
|
225
|
+
readonly limit: {
|
|
226
|
+
readonly context: 1000000;
|
|
227
|
+
readonly output: 384000;
|
|
228
|
+
};
|
|
229
|
+
readonly modalities: {
|
|
230
|
+
readonly input: readonly ["text"];
|
|
231
|
+
readonly output: readonly ["text"];
|
|
232
|
+
};
|
|
233
|
+
readonly reasoning: true;
|
|
234
|
+
readonly options: {
|
|
235
|
+
readonly reasoningEffort: "high";
|
|
236
|
+
};
|
|
237
|
+
};
|
|
151
238
|
};
|
|
152
239
|
};
|
|
153
|
-
readonly summary: "provider.deepseek.models.vv-deepseek
|
|
240
|
+
readonly summary: "provider.deepseek.models.vv-deepseek flash aliases patched";
|
|
154
241
|
};
|
|
155
242
|
readonly kimi: {
|
|
156
243
|
readonly kind: "provider-object";
|
|
@@ -204,6 +291,66 @@ declare const PATCH_PROVIDER_PRESETS: {
|
|
|
204
291
|
};
|
|
205
292
|
readonly summary: "provider.alibaba-token-plan.models.vv-qwen3.8-max-xhigh patched";
|
|
206
293
|
};
|
|
294
|
+
readonly zai: {
|
|
295
|
+
readonly kind: "provider-object";
|
|
296
|
+
readonly providerID: "zai-coding-plan";
|
|
297
|
+
readonly value: {
|
|
298
|
+
readonly models: {
|
|
299
|
+
readonly "vv-glm-5.3-high": {
|
|
300
|
+
readonly name: "VV GLM-5.3 High";
|
|
301
|
+
readonly id: "glm-5.3";
|
|
302
|
+
readonly variants: {};
|
|
303
|
+
readonly limit: {
|
|
304
|
+
readonly context: 1000000;
|
|
305
|
+
readonly output: 131072;
|
|
306
|
+
};
|
|
307
|
+
readonly modalities: {
|
|
308
|
+
readonly input: readonly ["text"];
|
|
309
|
+
readonly output: readonly ["text"];
|
|
310
|
+
};
|
|
311
|
+
readonly reasoning: true;
|
|
312
|
+
readonly options: {
|
|
313
|
+
readonly reasoningEffort: "high";
|
|
314
|
+
};
|
|
315
|
+
};
|
|
316
|
+
readonly "vv-glm-5.3-max": {
|
|
317
|
+
readonly name: "VV GLM-5.3 Max";
|
|
318
|
+
readonly id: "glm-5.3";
|
|
319
|
+
readonly variants: {};
|
|
320
|
+
readonly limit: {
|
|
321
|
+
readonly context: 1000000;
|
|
322
|
+
readonly output: 131072;
|
|
323
|
+
};
|
|
324
|
+
readonly modalities: {
|
|
325
|
+
readonly input: readonly ["text"];
|
|
326
|
+
readonly output: readonly ["text"];
|
|
327
|
+
};
|
|
328
|
+
readonly reasoning: true;
|
|
329
|
+
readonly options: {
|
|
330
|
+
readonly reasoningEffort: "max";
|
|
331
|
+
};
|
|
332
|
+
};
|
|
333
|
+
readonly "vv-glm-5.3-flash-max": {
|
|
334
|
+
readonly name: "VV GLM-5.3 Flash Max";
|
|
335
|
+
readonly id: "glm-5.3-flash";
|
|
336
|
+
readonly variants: {};
|
|
337
|
+
readonly limit: {
|
|
338
|
+
readonly context: 1000000;
|
|
339
|
+
readonly output: 131072;
|
|
340
|
+
};
|
|
341
|
+
readonly modalities: {
|
|
342
|
+
readonly input: readonly ["text", "image", "video", "pdf"];
|
|
343
|
+
readonly output: readonly ["text"];
|
|
344
|
+
};
|
|
345
|
+
readonly reasoning: true;
|
|
346
|
+
readonly options: {
|
|
347
|
+
readonly reasoningEffort: "max";
|
|
348
|
+
};
|
|
349
|
+
};
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
readonly summary: "provider.zai-coding-plan.models vv-glm-5.3 high/max/flash-max aliases patched";
|
|
353
|
+
};
|
|
207
354
|
};
|
|
208
355
|
/** Special preset name that applies every registered patch preset in sequence. */
|
|
209
356
|
export declare const PATCH_ALL_PRESET = "all";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// FILE: src/commands/patch-provider.ts
|
|
2
|
-
// VERSION: 0.
|
|
2
|
+
// VERSION: 0.10.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Apply OpenCode patch presets to global or project OpenCode config layers.
|
|
5
|
-
// SCOPE: Patch preset validation, scoped OpenCode config path resolution, provider/baseURL patch writes, provider-specific object patch writes under `provider
|
|
5
|
+
// SCOPE: Patch preset validation, scoped OpenCode config path resolution, provider/baseURL patch writes, provider-specific object patch writes under `provider` (codex, deepseek, kimi, alibaba, zai), and CLI output.
|
|
6
6
|
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
|
-
// LINKS: M-CLI-PATCH-PROVIDER, M-CLI-CONFIG
|
|
7
|
+
// LINKS: M-CLI-PATCH-PROVIDER, M-CLI-COMPLETION, M-CLI-CONFIG
|
|
8
8
|
// ROLE: RUNTIME
|
|
9
9
|
// MAP_MODE: EXPORTS
|
|
10
10
|
// END_MODULE_CONTRACT
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
// END_MODULE_MAP
|
|
20
20
|
//
|
|
21
21
|
// START_CHANGE_SUMMARY
|
|
22
|
-
// LAST_CHANGE: [
|
|
22
|
+
// LAST_CHANGE: [direct fix - Corrected vv-codex-gpt-6-astra-max limits to the official GPT-6 Astra contract (context 1050000, input 922000, output 128000) instead of the GPT-5.6-family 400000/272000 values that only apply post-PR#33972.]
|
|
23
23
|
// END_CHANGE_SUMMARY
|
|
24
24
|
import { defineCommand } from "citty";
|
|
25
25
|
import { describeWriteResult, resolvePaths, writeOpenCodeProviderObject, writeProviderBaseUrl, } from "../lib/opencode.js";
|
|
@@ -124,6 +124,57 @@ const OPENAI_PATCH = {
|
|
|
124
124
|
include: ["reasoning.encrypted_content"],
|
|
125
125
|
},
|
|
126
126
|
},
|
|
127
|
+
"vv-codex-gpt-6-astra-max": {
|
|
128
|
+
name: "VV Codex GPT-6 Astra Max",
|
|
129
|
+
id: "gpt-6-astra",
|
|
130
|
+
variants: {},
|
|
131
|
+
// GPT-6 Astra keeps its own official contract (1.05M context / 922K
|
|
132
|
+
// input / 128K output per OpenAI model docs, Sept 2026); only the
|
|
133
|
+
// GPT-5.6 family was capped to 272K input by Codex PR#33972.
|
|
134
|
+
limit: {
|
|
135
|
+
context: 1050000,
|
|
136
|
+
input: 922000,
|
|
137
|
+
output: 128000,
|
|
138
|
+
},
|
|
139
|
+
modalities: {
|
|
140
|
+
input: ["text", "image", "pdf"],
|
|
141
|
+
output: ["text"],
|
|
142
|
+
},
|
|
143
|
+
reasoning: true,
|
|
144
|
+
options: {
|
|
145
|
+
reasoningEffort: "max",
|
|
146
|
+
reasoningSummary: "auto",
|
|
147
|
+
include: ["reasoning.encrypted_content"],
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
"vv-codex-gpt-5.3-codex-spark-medium": {
|
|
151
|
+
name: "VV Codex GPT-5.3 Codex Spark Medium",
|
|
152
|
+
id: "gpt-5.3-codex-spark",
|
|
153
|
+
// The catalog auto-generates effort variants for this base model; the
|
|
154
|
+
// cited public description supports medium only, so inherited efforts are
|
|
155
|
+
// explicitly disabled instead of relying on variants: {} suppression.
|
|
156
|
+
variants: {
|
|
157
|
+
none: { disabled: true },
|
|
158
|
+
low: { disabled: true },
|
|
159
|
+
high: { disabled: true },
|
|
160
|
+
max: { disabled: true },
|
|
161
|
+
},
|
|
162
|
+
limit: {
|
|
163
|
+
context: 128000,
|
|
164
|
+
input: 100000,
|
|
165
|
+
output: 32000,
|
|
166
|
+
},
|
|
167
|
+
modalities: {
|
|
168
|
+
input: ["text"],
|
|
169
|
+
output: ["text"],
|
|
170
|
+
},
|
|
171
|
+
reasoning: true,
|
|
172
|
+
options: {
|
|
173
|
+
reasoningEffort: "medium",
|
|
174
|
+
reasoningSummary: "auto",
|
|
175
|
+
include: ["reasoning.encrypted_content"],
|
|
176
|
+
},
|
|
177
|
+
},
|
|
127
178
|
},
|
|
128
179
|
};
|
|
129
180
|
const KIMI_PATCH = {
|
|
@@ -187,6 +238,95 @@ const DEEPSEEK_PATCH = {
|
|
|
187
238
|
reasoningEffort: "max",
|
|
188
239
|
},
|
|
189
240
|
},
|
|
241
|
+
"vv-deepseek-flash-max": {
|
|
242
|
+
name: "VV DeepSeek Flash Max",
|
|
243
|
+
id: "deepseek-flash",
|
|
244
|
+
variants: {},
|
|
245
|
+
limit: {
|
|
246
|
+
context: 1000000,
|
|
247
|
+
output: 384000,
|
|
248
|
+
},
|
|
249
|
+
modalities: {
|
|
250
|
+
input: ["text", "image"],
|
|
251
|
+
output: ["text"],
|
|
252
|
+
},
|
|
253
|
+
reasoning: true,
|
|
254
|
+
options: {
|
|
255
|
+
reasoningEffort: "max",
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
"vv-deepseek-flash-high": {
|
|
259
|
+
name: "VV DeepSeek Flash High",
|
|
260
|
+
id: "deepseek-flash",
|
|
261
|
+
variants: {},
|
|
262
|
+
limit: {
|
|
263
|
+
context: 1000000,
|
|
264
|
+
output: 384000,
|
|
265
|
+
},
|
|
266
|
+
modalities: {
|
|
267
|
+
input: ["text"],
|
|
268
|
+
output: ["text"],
|
|
269
|
+
},
|
|
270
|
+
reasoning: true,
|
|
271
|
+
options: {
|
|
272
|
+
reasoningEffort: "high",
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
},
|
|
276
|
+
};
|
|
277
|
+
const ZAI_PATCH = {
|
|
278
|
+
models: {
|
|
279
|
+
"vv-glm-5.3-high": {
|
|
280
|
+
name: "VV GLM-5.3 High",
|
|
281
|
+
id: "glm-5.3",
|
|
282
|
+
variants: {},
|
|
283
|
+
limit: {
|
|
284
|
+
context: 1000000,
|
|
285
|
+
output: 131072,
|
|
286
|
+
},
|
|
287
|
+
modalities: {
|
|
288
|
+
input: ["text"],
|
|
289
|
+
output: ["text"],
|
|
290
|
+
},
|
|
291
|
+
reasoning: true,
|
|
292
|
+
options: {
|
|
293
|
+
reasoningEffort: "high",
|
|
294
|
+
},
|
|
295
|
+
},
|
|
296
|
+
"vv-glm-5.3-max": {
|
|
297
|
+
name: "VV GLM-5.3 Max",
|
|
298
|
+
id: "glm-5.3",
|
|
299
|
+
variants: {},
|
|
300
|
+
limit: {
|
|
301
|
+
context: 1000000,
|
|
302
|
+
output: 131072,
|
|
303
|
+
},
|
|
304
|
+
modalities: {
|
|
305
|
+
input: ["text"],
|
|
306
|
+
output: ["text"],
|
|
307
|
+
},
|
|
308
|
+
reasoning: true,
|
|
309
|
+
options: {
|
|
310
|
+
reasoningEffort: "max",
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
"vv-glm-5.3-flash-max": {
|
|
314
|
+
name: "VV GLM-5.3 Flash Max",
|
|
315
|
+
id: "glm-5.3-flash",
|
|
316
|
+
variants: {},
|
|
317
|
+
limit: {
|
|
318
|
+
context: 1000000,
|
|
319
|
+
output: 131072,
|
|
320
|
+
},
|
|
321
|
+
modalities: {
|
|
322
|
+
input: ["text", "image", "video", "pdf"],
|
|
323
|
+
output: ["text"],
|
|
324
|
+
},
|
|
325
|
+
reasoning: true,
|
|
326
|
+
options: {
|
|
327
|
+
reasoningEffort: "max",
|
|
328
|
+
},
|
|
329
|
+
},
|
|
190
330
|
},
|
|
191
331
|
};
|
|
192
332
|
const PATCH_PROVIDER_PRESETS = {
|
|
@@ -206,7 +346,7 @@ const PATCH_PROVIDER_PRESETS = {
|
|
|
206
346
|
kind: "provider-object",
|
|
207
347
|
providerID: "deepseek",
|
|
208
348
|
value: DEEPSEEK_PATCH,
|
|
209
|
-
summary: "provider.deepseek.models.vv-deepseek
|
|
349
|
+
summary: "provider.deepseek.models.vv-deepseek flash aliases patched",
|
|
210
350
|
},
|
|
211
351
|
kimi: {
|
|
212
352
|
kind: "provider-object",
|
|
@@ -220,6 +360,12 @@ const PATCH_PROVIDER_PRESETS = {
|
|
|
220
360
|
value: ALIBABA_PATCH,
|
|
221
361
|
summary: "provider.alibaba-token-plan.models.vv-qwen3.8-max-xhigh patched",
|
|
222
362
|
},
|
|
363
|
+
zai: {
|
|
364
|
+
kind: "provider-object",
|
|
365
|
+
providerID: "zai-coding-plan",
|
|
366
|
+
value: ZAI_PATCH,
|
|
367
|
+
summary: "provider.zai-coding-plan.models vv-glm-5.3 high/max/flash-max aliases patched",
|
|
368
|
+
},
|
|
223
369
|
};
|
|
224
370
|
/** Special preset name that applies every registered patch preset in sequence. */
|
|
225
371
|
export const PATCH_ALL_PRESET = "all";
|