@osovv/vv-opencode 0.35.19 → 0.35.21
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 +20 -0
- package/README.md +67 -24
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/completion.js +2 -0
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/config-validate.d.ts +8 -1
- package/dist/commands/config-validate.js +31 -8
- package/dist/commands/config-validate.js.map +1 -1
- package/dist/commands/doctor.d.ts +3 -3
- package/dist/commands/doctor.js +14 -13
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +10 -12
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.js +6 -6
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/launch.d.ts +35 -0
- package/dist/commands/launch.js +123 -0
- package/dist/commands/launch.js.map +1 -0
- package/dist/commands/patch-provider.d.ts +8 -0
- package/dist/commands/patch-provider.js +13 -4
- package/dist/commands/patch-provider.js.map +1 -1
- package/dist/commands/plugin-list.d.ts +6 -6
- package/dist/commands/plugin-list.js +30 -24
- package/dist/commands/plugin-list.js.map +1 -1
- package/dist/commands/plugin-toggle.js +5 -3
- package/dist/commands/plugin-toggle.js.map +1 -1
- package/dist/commands/preset.d.ts +7 -0
- package/dist/commands/preset.js +37 -9
- package/dist/commands/preset.js.map +1 -1
- package/dist/commands/role.d.ts +3 -0
- package/dist/commands/role.js +45 -11
- package/dist/commands/role.js.map +1 -1
- package/dist/commands/status.d.ts +3 -3
- package/dist/commands/status.js +14 -13
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.js +6 -7
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/upgrade.js +4 -3
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/lib/config-layers.d.ts +56 -0
- package/dist/lib/config-layers.js +256 -0
- package/dist/lib/config-layers.js.map +1 -0
- package/dist/lib/opencode.d.ts +13 -5
- package/dist/lib/opencode.js +105 -39
- package/dist/lib/opencode.js.map +1 -1
- package/dist/lib/plugin-toggle-config.d.ts +5 -1
- package/dist/lib/plugin-toggle-config.js +20 -33
- package/dist/lib/plugin-toggle-config.js.map +1 -1
- package/dist/lib/vvoc-config.js +14 -1
- package/dist/lib/vvoc-config.js.map +1 -1
- package/dist/lib/vvoc-paths.d.ts +2 -2
- package/dist/lib/vvoc-paths.js +12 -9
- package/dist/lib/vvoc-paths.js.map +1 -1
- package/dist/plugins/guardian/index.js +30 -37
- package/dist/plugins/guardian/index.js.map +1 -1
- package/dist/plugins/model-roles/index.js +11 -27
- package/dist/plugins/model-roles/index.js.map +1 -1
- package/dist/plugins/secrets-redaction/config.d.ts +1 -1
- package/dist/plugins/secrets-redaction/config.js +28 -39
- package/dist/plugins/secrets-redaction/config.js.map +1 -1
- package/dist/plugins/system-context-injection/index.js +19 -7
- package/dist/plugins/system-context-injection/index.js.map +1 -1
- package/package.json +1 -1
- package/schemas/vvoc/v3.json +1 -1
- package/templates/agents/vv-controller.md +9 -8
- package/templates/skills/vv-execute/SKILL.md +8 -8
- package/templates/skills/vv-plan/SKILL.md +11 -6
- package/templates/skills/vv-plan/references/plan-template.xml +1 -0
- package/templates/skills/vv-spec/SKILL.md +29 -3
- package/templates/skills/vv-spec/references/design-context-template.xml +62 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
## <small>0.35.21 (2026-06-16)</small>
|
|
2
|
+
|
|
3
|
+
### Summary
|
|
4
|
+
|
|
5
|
+
This maintenance release removes the dead `.vvoc/plans/` directory path and stale `vv-analyst` and `vv-architect` agent references, as planning artifacts now live exclusively under the `.vvoc/specs/<id>/` layout. The GRACE documentation (development plan, verification plan, knowledge graph, and requirements) has been updated to reflect the current architecture, and several module contracts, maps, and change summaries have been corrected or added. These changes reduce code surface, eliminate confusion from outdated references, and ensure that project documentation accurately describes the managed skills and spec-driven planning flow.
|
|
6
|
+
|
|
7
|
+
* chore: refresh GRACE artifacts after full integrity scan ([e0df404](https://github.com/osovv/vv-opencode/commit/e0df404))
|
|
8
|
+
* refactor: remove dead .vvoc/plans/ code path and stale vv-analyst/vv-architect references ([f4076e1](https://github.com/osovv/vv-opencode/commit/f4076e1))
|
|
9
|
+
|
|
10
|
+
## <small>0.35.20 (2026-06-16)</small>
|
|
11
|
+
|
|
12
|
+
### Summary
|
|
13
|
+
|
|
14
|
+
This release introduces layered project-scope configuration, allowing users to isolate vv-opencode setup to individual projects with `vvoc install --scope project`, while the new `vvoc launch` command launches OpenCode with deterministic config sources for sandboxed testing. Complex spec sessions now support an optional `design-context.xml` companion that preserves decision rationale and rejected alternatives for planners and reviewers without expanding the normative spec, and the skill sync system gains config-safety rules that prevent silent overwrites of user-owned reference files. Documentation and templates have been cleaned up by removing stale references to legacy sub-agents and folder layouts, consolidating the spec package directory as the canonical organizational unit and making the user-facing workflow documentation more accurate.
|
|
15
|
+
|
|
16
|
+
* docs: remove legacy folder references from docs and templates ([10879d4](https://github.com/osovv/vv-opencode/commit/10879d4))
|
|
17
|
+
* docs: remove stale vv-analyst/vv-architect references ([30e9bab](https://github.com/osovv/vv-opencode/commit/30e9bab))
|
|
18
|
+
* feat(config): support layered project scope ([beaaa4b](https://github.com/osovv/vv-opencode/commit/beaaa4b))
|
|
19
|
+
* feat(skills): add spec package design context ([5181cdf](https://github.com/osovv/vv-opencode/commit/5181cdf))
|
|
20
|
+
|
|
1
21
|
## <small>0.35.19 (2026-06-15)</small>
|
|
2
22
|
|
|
3
23
|
### Summary
|
package/README.md
CHANGED
|
@@ -26,32 +26,38 @@ To scope everything to the current project instead of the global OpenCode config
|
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
28
|
vvoc install --scope project
|
|
29
|
+
vvoc launch --scope project
|
|
29
30
|
```
|
|
30
31
|
|
|
32
|
+
Project scope writes only to `./.opencode/` and `./.vvoc/`. A normal `opencode` launch may still apply OpenCode's native config discovery and merge behavior; `vvoc launch --scope project` is the hard sandbox path and starts OpenCode with `OPENCODE_CONFIG` and `VVOC_CONFIG` pinned to those local files, so you can smoke-test vv-opencode in one repository without mutating your primary global setup.
|
|
33
|
+
|
|
31
34
|
> **Already installed?** Run `vvoc sync` anytime to refresh plugins, prompts, skills, and presets.
|
|
32
35
|
|
|
33
36
|
---
|
|
34
37
|
|
|
35
38
|
## Spec-to-Code Pipeline
|
|
36
39
|
|
|
37
|
-
The core workflow is a three-stage pipeline with independent review gates at each level:
|
|
40
|
+
The core workflow is a three-stage pipeline with independent review gates at each level. All artifacts for one feature live in a single spec package directory:
|
|
38
41
|
|
|
39
42
|
```
|
|
40
43
|
User request
|
|
41
44
|
│
|
|
42
45
|
▼ auto-trigger
|
|
43
|
-
vv-spec ───────────────────────────────────────→ .vvoc/specs
|
|
46
|
+
vv-spec ───────────────────────────────────────→ .vvoc/specs/<id>/spec.xml
|
|
44
47
|
│ Grill-me interview (one question at a time)
|
|
45
48
|
│ Decision tree with recommended answers
|
|
46
|
-
│
|
|
49
|
+
│ Deep synthesis by expensive model (no sub-agent delegation)
|
|
50
|
+
│ Optionally creates .vvoc/specs/<id>/design-context.xml
|
|
51
|
+
│ for complex sessions (design memory, not requirements)
|
|
47
52
|
│
|
|
48
53
|
├── ① Spec review: requirements correct, complete, unambiguous?
|
|
49
54
|
│
|
|
50
55
|
▼ auto-trigger (after approval)
|
|
51
|
-
vv-plan ───────────────────────────────────────→ .vvoc/
|
|
56
|
+
vv-plan ───────────────────────────────────────→ .vvoc/specs/<id>/plan.xml
|
|
57
|
+
│ Reads sibling design-context.xml when present (explanatory only)
|
|
52
58
|
│ Interface contracts with JSDoc behavior descriptions
|
|
53
|
-
│ Acceptance criteria per task (grep: `<criterion
|
|
54
|
-
│ Dependency ordering (grep: `<
|
|
59
|
+
│ Acceptance criteria per task (grep: `<criterion>`)
|
|
60
|
+
│ Dependency ordering (grep: `<task_id>`)
|
|
55
61
|
│ Three-layer review model: spec → plan → code
|
|
56
62
|
│
|
|
57
63
|
├── ② Plan review: every spec requirement → task? Contracts match spec?
|
|
@@ -68,7 +74,7 @@ vv-implementer → vv-spec-reviewer → vv-code-reviewer
|
|
|
68
74
|
Done
|
|
69
75
|
```
|
|
70
76
|
|
|
71
|
-
Specs and plans use a top-level lifecycle status: `draft` while being written, `approved` after explicit user approval, and `applied` after successful execution. `vv-execute` archives applied
|
|
77
|
+
Specs and plans use a top-level lifecycle status: `draft` while being written, `approved` after explicit user approval, and `applied` after successful execution. `vv-execute` archives applied artifact packages by moving the entire spec package directory `.vvoc/specs/<id>/` to `.vvoc/specs/archive/<id>-<timestamp>/`.
|
|
72
78
|
|
|
73
79
|
### XML grep
|
|
74
80
|
|
|
@@ -76,19 +82,19 @@ Plans and specs are XML documents, making every element grep-able:
|
|
|
76
82
|
|
|
77
83
|
```bash
|
|
78
84
|
# Extract tasks from plan
|
|
79
|
-
grep '<
|
|
85
|
+
grep '<id>T-' .vvoc/specs/*/plan.xml
|
|
80
86
|
|
|
81
87
|
# Extract all acceptance criteria
|
|
82
|
-
grep '<criterion
|
|
88
|
+
grep '<criterion>' .vvoc/specs/*/plan.xml
|
|
83
89
|
|
|
84
90
|
# Extract dependency graph
|
|
85
|
-
grep '<
|
|
91
|
+
grep '<task_id>' .vvoc/specs/*/plan.xml
|
|
86
92
|
|
|
87
93
|
# Extract method signatures
|
|
88
|
-
grep '/\*\*' .vvoc/
|
|
94
|
+
grep '/\*\*' .vvoc/specs/*/plan.xml
|
|
89
95
|
|
|
90
|
-
# Extract all
|
|
91
|
-
grep '<
|
|
96
|
+
# Extract all modules from architecture
|
|
97
|
+
grep '<name>' .vvoc/specs/*/plan.xml
|
|
92
98
|
```
|
|
93
99
|
|
|
94
100
|
Managed skills are installed by `vvoc`. `vv-controller` explicitly routes `vv-spec`, `vv-plan`, and `vv-review`; `vv-execute` and `vv-reflect` are available as managed skills for plan execution and durable session memory.
|
|
@@ -118,7 +124,7 @@ Setting up OpenCode for serious daily work means juggling config files, agent pr
|
|
|
118
124
|
| **Skills** | `vv-spec` interviews you and writes an XML spec; `vv-plan` maps the spec to interface contracts and acceptance criteria; `vv-execute` runs approved plans; `vv-review` runs a review-only workflow; `vv-reflect` preserves reusable session findings as repository memory |
|
|
119
125
|
| **Spec-to-Code Pipeline** | `vv-spec` → spec review → `vv-plan` → plan review → `vv-implementer` → code review. Three independent review gates cover requirements, contracts, and implementation |
|
|
120
126
|
| **One-Click Setup** | `vvoc install` or `vvoc sync` bootstraps everything — config, agents, skills, prompts, presets |
|
|
121
|
-
| **CLI Tooling** |
|
|
127
|
+
| **CLI Tooling** | 16+ commands: install, sync, launch, status, doctor, role management, presets, guardian config, shell completion, upgrade |
|
|
122
128
|
| **Security** | GuardianPlugin reviews shell-permission requests; SecretsRedactionPlugin strips tokens before LLM requests; both configurable via `vvoc.json` |
|
|
123
129
|
| **Model Roles** | Assign provider/model/variant to roles (`default`, `smart`, `fast`, `vision`, custom); switch between `vv-openai`, `vv-zai`, `vv-deepseek`, `vv-minimax` presets |
|
|
124
130
|
| **Workflow Tracking** | Work items with open/list/close for tracked implementation-to-review pipelines |
|
|
@@ -145,6 +151,7 @@ Setting up OpenCode for serious daily work means juggling config files, agent pr
|
|
|
145
151
|
| `vvoc init` | Interactive bootstrap flow |
|
|
146
152
|
| `vvoc install` | Non-interactive setup and scaffolding |
|
|
147
153
|
| `vvoc sync` | Refresh plugin entry, agents, prompts, skills, config |
|
|
154
|
+
| `vvoc launch` | Launch OpenCode with deterministic `OPENCODE_CONFIG` and `VVOC_CONFIG` sources |
|
|
148
155
|
| `vvoc status` | Show current installation state |
|
|
149
156
|
| `vvoc doctor` | Diagnose setup problems (exits non-zero on issues) |
|
|
150
157
|
| `vvoc config validate` | Validate canonical `vvoc.json` |
|
|
@@ -153,7 +160,7 @@ Setting up OpenCode for serious daily work means juggling config files, agent pr
|
|
|
153
160
|
| `vvoc guardian config` | Print or write guardian section |
|
|
154
161
|
| `vvoc plugin list` | List OpenCode plugin entries |
|
|
155
162
|
| `vvoc plugin enable\|disable` | Toggle a vvoc-managed plugin on or off |
|
|
156
|
-
| `vvoc patch-provider stepfun-ai\|zai\|openai` | Patch
|
|
163
|
+
| `vvoc patch-provider stepfun-ai\|zai\|openai` | Patch an OpenCode provider preset in global or project scope |
|
|
157
164
|
| `vvoc completion` | Install shell completions |
|
|
158
165
|
| `vvoc upgrade` | Upgrade global package and run follow-up sync |
|
|
159
166
|
| `vvoc version` | Print installed version |
|
|
@@ -165,9 +172,11 @@ Setting up OpenCode for serious daily work means juggling config files, agent pr
|
|
|
165
172
|
```bash
|
|
166
173
|
# View current assignments
|
|
167
174
|
vvoc role list
|
|
175
|
+
vvoc role list --scope effective
|
|
168
176
|
|
|
169
177
|
# Assign models to roles
|
|
170
178
|
vvoc role set default openai/gpt-5.4
|
|
179
|
+
vvoc role set team-review anthropic/claude-sonnet-4-5 --scope project
|
|
171
180
|
vvoc role set smart openai/vv-gpt-5.5-xhigh
|
|
172
181
|
vvoc role set fast openai/gpt-5.4-mini
|
|
173
182
|
|
|
@@ -187,15 +196,39 @@ Presets are partial — applying one only changes the roles it defines. Managed
|
|
|
187
196
|
|
|
188
197
|
## Config & Data Layout
|
|
189
198
|
|
|
199
|
+
Mutating commands default to global for backward compatibility. Add `--scope project` to write a project-local layer. Read/diagnostic commands accept `--scope global|project|effective`, where `effective` resolves in this order:
|
|
200
|
+
|
|
201
|
+
1. explicit env override (`VVOC_CONFIG` / `OPENCODE_CONFIG`)
|
|
202
|
+
2. nearest project layer
|
|
203
|
+
3. global layer
|
|
204
|
+
4. built-in defaults when the command/runtime permits defaults
|
|
205
|
+
|
|
206
|
+
Canonical project-local paths:
|
|
207
|
+
|
|
208
|
+
```text
|
|
209
|
+
OpenCode config → ./.opencode/opencode.json(c)
|
|
210
|
+
vvoc config → ./.vvoc/vvoc.json
|
|
211
|
+
Managed agent prompts → ./.vvoc/agents/*.md
|
|
212
|
+
Managed skills → ./.vvoc/skills/*/SKILL.md
|
|
213
|
+
Spec package directory → ./.vvoc/specs/<id>/
|
|
214
|
+
spec.xml # normative spec document (required)
|
|
215
|
+
design-context.xml # curated design memory (optional)
|
|
216
|
+
plan.xml # implementation plan (created by vv-plan)
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Legacy root-level `./opencode.json` and `./opencode.jsonc` are intentionally not used as vvoc project layers.
|
|
221
|
+
|
|
190
222
|
```
|
|
191
|
-
OpenCode config
|
|
192
|
-
vvoc
|
|
223
|
+
Global OpenCode config → $XDG_CONFIG_HOME/opencode/opencode.json
|
|
224
|
+
Global vvoc config → $XDG_CONFIG_HOME/vvoc/vvoc.json
|
|
193
225
|
Managed agent prompts → $XDG_CONFIG_HOME/vvoc/agents/*.md (global)
|
|
194
226
|
./.vvoc/agents/*.md (project)
|
|
195
227
|
Managed skills → $XDG_CONFIG_HOME/vvoc/skills/*/SKILL.md (global)
|
|
196
228
|
./.vvoc/skills/*/SKILL.md (project)
|
|
197
|
-
Spec documents → ./.vvoc/specs
|
|
198
|
-
|
|
229
|
+
Spec documents → ./.vvoc/specs/<id>/spec.xml
|
|
230
|
+
Optional design context → ./.vvoc/specs/<id>/design-context.xml
|
|
231
|
+
Implementation plans → ./.vvoc/specs/<id>/plan.xml
|
|
199
232
|
Persisted data → $XDG_DATA_HOME/vvoc/
|
|
200
233
|
Repository memory → ./.vvoc/lessons/*.xml (lazy vv-reflect fallback)
|
|
201
234
|
./.vvoc/runbooks/*.xml (lazy vv-reflect fallback)
|
|
@@ -203,6 +236,17 @@ Repository memory → ./.vvoc/lessons/*.xml (lazy vv-reflect
|
|
|
203
236
|
|
|
204
237
|
Schema is versioned and published with the package — source of truth at `schemas/vvoc/v3.json`.
|
|
205
238
|
|
|
239
|
+
### Deterministic local launch
|
|
240
|
+
|
|
241
|
+
Use `vvoc launch` when you want the vvoc-selected config files to be the only files OpenCode sees for this run:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
vvoc install --scope project
|
|
245
|
+
vvoc launch --scope project -- run "hello"
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
`vvoc launch --scope project` is strict and non-mutating: if `.opencode/opencode.json` or `.vvoc/vvoc.json` is missing, it fails with a hint to run `vvoc install --scope project`. `--scope effective` follows the layered lookup order, and `--scope global` uses the global config paths.
|
|
249
|
+
|
|
206
250
|
---
|
|
207
251
|
|
|
208
252
|
## Managed Agents
|
|
@@ -213,8 +257,6 @@ All prompt files are scaffolded by `vvoc install` / `vvoc sync`:
|
|
|
213
257
|
|---|---|
|
|
214
258
|
| `vv-controller` | Default primary agent — routes work to the right subagent |
|
|
215
259
|
| `enhancer` | Prompt enhancement |
|
|
216
|
-
| `vv-analyst` | Requirements analysis for large features |
|
|
217
|
-
| `vv-architect` | Module/contract/wave design |
|
|
218
260
|
| `vv-implementer` | Focused implementation with verification |
|
|
219
261
|
| `vv-spec-reviewer` | Checks implementation against spec |
|
|
220
262
|
| `vv-code-reviewer` | Engineering review for bugs and maintainability |
|
|
@@ -225,12 +267,13 @@ All prompt files are scaffolded by `vvoc install` / `vvoc sync`:
|
|
|
225
267
|
|
|
226
268
|
## Managed Skills
|
|
227
269
|
|
|
228
|
-
|
|
270
|
+
Five workflow skills are scaffolded alongside agents:
|
|
229
271
|
|
|
230
272
|
| Skill | Trigger | Output | Grep-able |
|
|
231
273
|
|---|---|---|---|
|
|
232
|
-
| `vv-spec` | Creative/feature request, no spec exists | `.vvoc/specs
|
|
233
|
-
| `vv-plan` | Approved spec exists | `.vvoc/
|
|
274
|
+
| `vv-spec` | Creative/feature request, no spec exists | `.vvoc/specs/<id>/spec.xml` + optional `design-context.xml` | `<goal>`, `<architecture>`, `<component>` |
|
|
275
|
+
| `vv-plan` | Approved spec exists | `.vvoc/specs/<id>/plan.xml` | `<id>T-`, `<criterion>`, `<task_id>`, `/**` JSDoc |
|
|
276
|
+
| `vv-execute` | Approved plan exists | Applies and archives spec/plan artifacts | `<status>`, `<task>`, `<acceptance>` |
|
|
234
277
|
| `vv-review` | Review request | Findings report | — |
|
|
235
278
|
| `vv-reflect` | End of a long development, debugging, bugfix, ops, or investigation session | Existing repo docs or `.vvoc/lessons/*.xml` / `.vvoc/runbooks/*.xml` | XML fallback indexes and entry tags |
|
|
236
279
|
|
package/dist/cli.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// START_MODULE_CONTRACT
|
|
5
5
|
// PURPOSE: Assemble and run the vvoc CLI entrypoint.
|
|
6
6
|
// SCOPE: Package version lookup, top-level command registration, and main command execution.
|
|
7
|
-
// DEPENDS: [citty, src/commands/completion.ts, src/commands/config.ts, src/commands/doctor.ts, src/commands/guardian.ts, src/commands/init.ts, src/commands/install.ts, src/commands/patch-provider.ts, src/commands/preset.ts, src/commands/plugin.ts, src/commands/role.ts, src/commands/status.ts, src/commands/sync.ts, src/commands/upgrade.ts, src/commands/version.ts, src/lib/package.ts]
|
|
7
|
+
// DEPENDS: [citty, src/commands/completion.ts, src/commands/config.ts, src/commands/doctor.ts, src/commands/guardian.ts, src/commands/init.ts, src/commands/install.ts, src/commands/launch.ts, src/commands/patch-provider.ts, src/commands/preset.ts, src/commands/plugin.ts, src/commands/role.ts, src/commands/status.ts, src/commands/sync.ts, src/commands/upgrade.ts, src/commands/version.ts, src/lib/package.ts]
|
|
8
8
|
// LINKS: [M-CLI-COMMANDS]
|
|
9
9
|
// ROLE: SCRIPT
|
|
10
10
|
// MAP_MODE: LOCALS
|
|
@@ -25,6 +25,7 @@ import doctor from "./commands/doctor.js";
|
|
|
25
25
|
import guardian from "./commands/guardian.js";
|
|
26
26
|
import init from "./commands/init.js";
|
|
27
27
|
import install from "./commands/install.js";
|
|
28
|
+
import launch from "./commands/launch.js";
|
|
28
29
|
import patchProvider from "./commands/patch-provider.js";
|
|
29
30
|
import preset from "./commands/preset.js";
|
|
30
31
|
import plugin from "./commands/plugin.js";
|
|
@@ -49,6 +50,7 @@ const main = defineCommand({
|
|
|
49
50
|
guardian,
|
|
50
51
|
init,
|
|
51
52
|
install,
|
|
53
|
+
launch,
|
|
52
54
|
"patch-provider": patchProvider,
|
|
53
55
|
preset,
|
|
54
56
|
plugin,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,mBAAmB;AACnB,kBAAkB;AAClB,wBAAwB;AACxB,uDAAuD;AACvD,+FAA+F;AAC/F,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,mBAAmB;AACnB,kBAAkB;AAClB,wBAAwB;AACxB,uDAAuD;AACvD,+FAA+F;AAC/F,4ZAA4Z;AAC5Z,4BAA4B;AAC5B,iBAAiB;AACjB,qBAAqB;AACrB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,oEAAoE;AACpE,wCAAwC;AACxC,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,4HAA4H;AAC5H,qBAAqB;AAErB,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,iCAAiC;AACjC,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;AAEjD,MAAM,IAAI,GAAG,aAAa,CAAC;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,cAAc;QACvB,WAAW,EACT,+HAA+H;KAClI;IACD,WAAW,EAAE;QACX,UAAU;QACV,MAAM;QACN,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,MAAM;QACN,gBAAgB,EAAE,aAAa;QAC/B,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;KACR;CACF,CAAC,CAAC;AACH,+BAA+B;AAE/B,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
// END_MODULE_MAP
|
|
19
19
|
//
|
|
20
20
|
// START_CHANGE_SUMMARY
|
|
21
|
+
// LAST_CHANGE: [v0.6.0 - Added launch to top-level completion output.]
|
|
21
22
|
// LAST_CHANGE: [v0.5.15 - Switched built-in preset completions to the shared internal preset registry so managed names stay in sync.]
|
|
22
23
|
// LAST_CHANGE: [v0.5.14 - Restricted unset-role completions so shell suggestions no longer imply built-in roles are unsettable.]
|
|
23
24
|
// END_CHANGE_SUMMARY
|
|
@@ -34,6 +35,7 @@ const VVOC_TOP_LEVEL_COMMANDS = [
|
|
|
34
35
|
"guardian",
|
|
35
36
|
"init",
|
|
36
37
|
"install",
|
|
38
|
+
"launch",
|
|
37
39
|
"patch-provider",
|
|
38
40
|
"preset",
|
|
39
41
|
"plugin",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ConfigReadScope } from "../lib/config-layers.js";
|
|
1
2
|
type ConfigValidateResult = {
|
|
2
3
|
path: string;
|
|
3
4
|
valid: boolean;
|
|
@@ -5,12 +6,18 @@ type ConfigValidateResult = {
|
|
|
5
6
|
};
|
|
6
7
|
export type { ConfigValidateResult };
|
|
7
8
|
declare const _default: import("citty").CommandDef<{
|
|
9
|
+
readonly scope: {
|
|
10
|
+
readonly type: "enum";
|
|
11
|
+
readonly options: ["global", "project", "effective"];
|
|
12
|
+
readonly default: "effective";
|
|
13
|
+
readonly description: "Validate global, project-local, or effective layered config.";
|
|
14
|
+
};
|
|
8
15
|
readonly "config-dir": {
|
|
9
16
|
readonly type: "string";
|
|
10
17
|
readonly description: "Override the global config home used for vvoc/.";
|
|
11
18
|
};
|
|
12
19
|
}>;
|
|
13
20
|
export default _default;
|
|
14
|
-
export declare function validateVvocConfig(cwd: string, configDir?: string): Promise<ConfigValidateResult>;
|
|
21
|
+
export declare function validateVvocConfig(cwd: string, configDir?: string, scope?: ConfigReadScope): Promise<ConfigValidateResult>;
|
|
15
22
|
export declare function validateVvocConfigContent(content: string, filePath: string): ConfigValidateResult;
|
|
16
23
|
export declare function validateVvocConfigFile(filePath: string): ConfigValidateResult;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// FILE: src/commands/config-validate.ts
|
|
2
2
|
// VERSION: 0.6.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
|
-
// PURPOSE: Validate
|
|
5
|
-
// SCOPE:
|
|
6
|
-
// DEPENDS: [citty, jsonc-parser, src/lib/
|
|
4
|
+
// PURPOSE: Validate a selected vvoc.json configuration file with human-readable error reporting.
|
|
5
|
+
// SCOPE: Layered vvoc config file discovery, strict JSON parse error reporting, JSON Schema validation, and pass/fail terminal output without creating files.
|
|
6
|
+
// DEPENDS: [citty, jsonc-parser, src/lib/config-layers.ts, src/lib/model-roles.ts, src/lib/vvoc-config.ts]
|
|
7
7
|
// LINKS: [M-CLI-CONFIG-VALIDATE, M-CLI-CONFIG]
|
|
8
8
|
// ROLE: RUNTIME
|
|
9
9
|
// MAP_MODE: EXPORTS
|
|
@@ -18,12 +18,13 @@
|
|
|
18
18
|
// END_MODULE_MAP
|
|
19
19
|
//
|
|
20
20
|
// START_CHANGE_SUMMARY
|
|
21
|
+
// LAST_CHANGE: [v0.7.0 - Added global/project/effective validation scopes without creating missing configs.]
|
|
21
22
|
// LAST_CHANGE: [v0.6.0 - Added explicit unsupported-version reporting and path-aware semantic role assignment validation for roles/presets.]
|
|
22
23
|
// END_CHANGE_SUMMARY
|
|
23
24
|
import { defineCommand } from "citty";
|
|
24
25
|
import { parse } from "jsonc-parser";
|
|
25
26
|
import { readFileSync } from "node:fs";
|
|
26
|
-
import {
|
|
27
|
+
import { resolveVvocConfigSource } from "../lib/config-layers.js";
|
|
27
28
|
import { parseModelSelection } from "../lib/model-roles.js";
|
|
28
29
|
import { VVOC_CONFIG_VERSION, validateVvocConfigDocument } from "../lib/vvoc-config.js";
|
|
29
30
|
export default defineCommand({
|
|
@@ -32,6 +33,12 @@ export default defineCommand({
|
|
|
32
33
|
description: "Validate the canonical vvoc.json configuration file.",
|
|
33
34
|
},
|
|
34
35
|
args: {
|
|
36
|
+
scope: {
|
|
37
|
+
type: "enum",
|
|
38
|
+
options: ["global", "project", "effective"],
|
|
39
|
+
default: "effective",
|
|
40
|
+
description: "Validate global, project-local, or effective layered config.",
|
|
41
|
+
},
|
|
35
42
|
"config-dir": {
|
|
36
43
|
type: "string",
|
|
37
44
|
description: "Override the global config home used for vvoc/.",
|
|
@@ -40,15 +47,28 @@ export default defineCommand({
|
|
|
40
47
|
async run({ args }) {
|
|
41
48
|
// START_BLOCK_RUN_VALIDATE
|
|
42
49
|
const configDir = typeof args["config-dir"] === "string" ? args["config-dir"] : undefined;
|
|
43
|
-
const result = await validateVvocConfig(process.cwd(), configDir);
|
|
50
|
+
const result = await validateVvocConfig(process.cwd(), configDir, resolveReadScope(args.scope));
|
|
44
51
|
printResult(result);
|
|
45
52
|
process.exitCode = result.valid ? 0 : 1;
|
|
46
53
|
// END_BLOCK_RUN_VALIDATE
|
|
47
54
|
},
|
|
48
55
|
});
|
|
49
|
-
export async function validateVvocConfig(cwd, configDir) {
|
|
50
|
-
const
|
|
51
|
-
|
|
56
|
+
export async function validateVvocConfig(cwd, configDir, scope = "effective") {
|
|
57
|
+
const source = await resolveVvocConfigSource({
|
|
58
|
+
scope,
|
|
59
|
+
cwd,
|
|
60
|
+
configDir,
|
|
61
|
+
allowDefault: false,
|
|
62
|
+
});
|
|
63
|
+
if (source.kind === "missing" || !source.path) {
|
|
64
|
+
const label = source.path ?? `${scope} vvoc config`;
|
|
65
|
+
return {
|
|
66
|
+
path: label,
|
|
67
|
+
valid: false,
|
|
68
|
+
errors: [`${label} - ${source.reason ?? "vvoc config missing"}`],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return validateVvocConfigFile(source.path);
|
|
52
72
|
}
|
|
53
73
|
export function validateVvocConfigContent(content, filePath) {
|
|
54
74
|
const errors = [];
|
|
@@ -158,4 +178,7 @@ function collectRoleAssignmentMapErrors(value, basePath, errors) {
|
|
|
158
178
|
function isObjectRecord(value) {
|
|
159
179
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
160
180
|
}
|
|
181
|
+
function resolveReadScope(value) {
|
|
182
|
+
return value === "global" || value === "project" ? value : "effective";
|
|
183
|
+
}
|
|
161
184
|
//# sourceMappingURL=config-validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validate.js","sourceRoot":"","sources":["../../src/commands/config-validate.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,iBAAiB;AACjB,wBAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"config-validate.js","sourceRoot":"","sources":["../../src/commands/config-validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
declare const _default: import("citty").CommandDef<{
|
|
2
2
|
readonly scope: {
|
|
3
3
|
readonly type: "enum";
|
|
4
|
-
readonly options: ["global", "project"];
|
|
5
|
-
readonly default: "
|
|
6
|
-
readonly description: "Inspect global or
|
|
4
|
+
readonly options: ["global", "project", "effective"];
|
|
5
|
+
readonly default: "effective";
|
|
6
|
+
readonly description: "Inspect global, project-local, or effective layered config.";
|
|
7
7
|
};
|
|
8
8
|
readonly "config-dir": {
|
|
9
9
|
readonly type: "string";
|
package/dist/commands/doctor.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// VERSION: 0.4.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Diagnose vv-opencode installation problems and surface actionable failures.
|
|
5
|
-
// SCOPE:
|
|
6
|
-
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
5
|
+
// SCOPE: Read-scope parsing, layered source-aware installation inspection, warning/problem reporting, and non-zero exit signaling for OpenCode plus vvoc config.
|
|
6
|
+
// DEPENDS: [citty, src/lib/config-layers.ts, src/lib/opencode.ts]
|
|
7
7
|
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG]
|
|
8
8
|
// ROLE: RUNTIME
|
|
9
9
|
// MAP_MODE: EXPORTS
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
// END_MODULE_MAP
|
|
15
15
|
//
|
|
16
16
|
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [v0.5.0 - Added global/project/effective diagnostic scopes with selected source reporting.]
|
|
17
18
|
// LAST_CHANGE: [v0.4.0 - Added canonical role inventory output while keeping unresolved role-reference failures in Problems diagnostics.]
|
|
18
19
|
// END_CHANGE_SUMMARY
|
|
19
20
|
import { defineCommand } from "citty";
|
|
20
|
-
import {
|
|
21
|
+
import { inspectInstallationForScope } from "../lib/opencode.js";
|
|
21
22
|
export default defineCommand({
|
|
22
23
|
meta: {
|
|
23
24
|
name: "doctor",
|
|
@@ -26,9 +27,9 @@ export default defineCommand({
|
|
|
26
27
|
args: {
|
|
27
28
|
scope: {
|
|
28
29
|
type: "enum",
|
|
29
|
-
options: ["global", "project"],
|
|
30
|
-
default: "
|
|
31
|
-
description: "Inspect global or
|
|
30
|
+
options: ["global", "project", "effective"],
|
|
31
|
+
default: "effective",
|
|
32
|
+
description: "Inspect global, project-local, or effective layered config.",
|
|
32
33
|
},
|
|
33
34
|
"config-dir": {
|
|
34
35
|
type: "string",
|
|
@@ -37,15 +38,12 @@ export default defineCommand({
|
|
|
37
38
|
},
|
|
38
39
|
async run({ args }) {
|
|
39
40
|
// START_BLOCK_PRINT_DIAGNOSTIC_REPORT
|
|
40
|
-
const scope = args.scope
|
|
41
|
+
const scope = resolveReadScope(args.scope);
|
|
41
42
|
const configDir = typeof args["config-dir"] === "string" ? args["config-dir"] : undefined;
|
|
42
|
-
const
|
|
43
|
-
scope: scope,
|
|
44
|
-
cwd: process.cwd(),
|
|
45
|
-
configDir,
|
|
46
|
-
});
|
|
47
|
-
const inspection = await inspectInstallation(paths);
|
|
43
|
+
const inspection = await inspectInstallationForScope({ scope, cwd: process.cwd(), configDir });
|
|
48
44
|
console.log(`Scope: ${inspection.scope}`);
|
|
45
|
+
console.log(`OpenCode source: ${inspection.opencodeSource.kind}${inspection.opencodeSource.path ? ` ${inspection.opencodeSource.path}` : ""}`);
|
|
46
|
+
console.log(`vvoc source: ${inspection.vvocSource.kind}${inspection.vvocSource.path ? ` ${inspection.vvocSource.path}` : ""}`);
|
|
49
47
|
console.log(`OpenCode config: ${inspection.opencode.path}`);
|
|
50
48
|
console.log(`OpenCode config parse: ${inspection.opencode.parseError ? inspection.opencode.parseError : "ok"}`);
|
|
51
49
|
console.log(`Configured plugins: ${inspection.opencode.plugins.length > 0 ? inspection.opencode.plugins.join(", ") : "<none>"}`);
|
|
@@ -82,4 +80,7 @@ export default defineCommand({
|
|
|
82
80
|
// END_BLOCK_PRINT_DIAGNOSTIC_REPORT
|
|
83
81
|
},
|
|
84
82
|
});
|
|
83
|
+
function resolveReadScope(value) {
|
|
84
|
+
return value === "global" || value === "project" ? value : "effective";
|
|
85
|
+
}
|
|
85
86
|
//# sourceMappingURL=doctor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,iBAAiB;AACjB,wBAAwB;AACxB,yFAAyF;AACzF,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -15,13 +15,14 @@
|
|
|
15
15
|
// END_MODULE_MAP
|
|
16
16
|
//
|
|
17
17
|
// START_CHANGE_SUMMARY
|
|
18
|
+
// LAST_CHANGE: [v0.8.0 - Skipped global managed skill symlink creation for project-scope init.]
|
|
18
19
|
// LAST_CHANGE: [v0.7.1 - Added managed skill file scaffolding during vvoc init.]
|
|
19
20
|
// LAST_CHANGE: [v0.7.0 - Ensured the project-local managed planning artifact directory exists during project-scope init.]
|
|
20
21
|
// LAST_CHANGE: [v0.6.1 - Exported runInit as the command helper and kept the non-interactive path internal so the module map matches the public surface.]
|
|
21
22
|
// END_CHANGE_SUMMARY
|
|
22
23
|
import { defineCommand } from "citty";
|
|
23
24
|
import * as p from "@clack/prompts";
|
|
24
|
-
import {
|
|
25
|
+
import { ensureManagedSkillSymlink, ensurePackageInstalled, installManagedAgentPrompts, installVvocConfig, installManagedSkillFiles, inspectInstallation, resolvePaths, syncManagedAgentRegistrations, } from "../lib/opencode.js";
|
|
25
26
|
export default defineCommand({
|
|
26
27
|
meta: {
|
|
27
28
|
name: "init",
|
|
@@ -122,16 +123,14 @@ export async function runInit(options) {
|
|
|
122
123
|
for (const result of await installManagedSkillFiles(finalPaths, { force: true })) {
|
|
123
124
|
p.log.info(result.path + " - " + result.action);
|
|
124
125
|
}
|
|
125
|
-
if (finalPaths.scope === "project") {
|
|
126
|
-
const planDirectoryResult = await ensureManagedPlanDirectory(finalPaths);
|
|
127
|
-
p.log.info(planDirectoryResult.path + " - " + planDirectoryResult.action);
|
|
128
|
-
}
|
|
129
126
|
p.log.step("Scaffolding canonical vvoc config...");
|
|
130
127
|
const vvocConfigResult = await installVvocConfig(finalPaths);
|
|
131
128
|
p.log.info(vvocConfigResult.path + " - " + vvocConfigResult.action);
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
129
|
+
if (finalPaths.scope === "global") {
|
|
130
|
+
p.log.step("Creating skill symlink...");
|
|
131
|
+
const symlinkResult = await ensureManagedSkillSymlink(configDir);
|
|
132
|
+
p.log.info(symlinkResult.path + " - " + symlinkResult.action);
|
|
133
|
+
}
|
|
135
134
|
p.outro(`vvoc initialized successfully
|
|
136
135
|
|
|
137
136
|
💡 Highly recommended: Install RTK for 60-90% token savings on git/test/lint commands
|
|
@@ -150,10 +149,9 @@ async function runInitNonInteractive(options) {
|
|
|
150
149
|
await syncManagedAgentRegistrations(paths);
|
|
151
150
|
await installManagedAgentPrompts(paths, { force: true });
|
|
152
151
|
await installManagedSkillFiles(paths, { force: true });
|
|
153
|
-
if (paths.scope === "project") {
|
|
154
|
-
await ensureManagedPlanDirectory(paths);
|
|
155
|
-
}
|
|
156
152
|
await installVvocConfig(paths);
|
|
157
|
-
|
|
153
|
+
if (paths.scope === "global") {
|
|
154
|
+
await ensureManagedSkillSymlink(configDir);
|
|
155
|
+
}
|
|
158
156
|
}
|
|
159
157
|
//# sourceMappingURL=init.js.map
|