@osovv/vv-opencode 1.0.2 → 1.1.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 +32 -0
- package/README.md +87 -19
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/completion.js +34 -6
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/doctor.js +7 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +14 -5
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.js +6 -3
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/launch.d.ts +1 -0
- package/dist/commands/launch.js +20 -8
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/orchestration.d.ts +25 -0
- package/dist/commands/orchestration.js +185 -0
- package/dist/commands/orchestration.js.map +1 -0
- package/dist/commands/patch-provider.d.ts +18 -29
- package/dist/commands/patch-provider.js +28 -31
- package/dist/commands/patch-provider.js.map +1 -1
- package/dist/commands/preset.d.ts +8 -1
- package/dist/commands/preset.js +49 -18
- package/dist/commands/preset.js.map +1 -1
- package/dist/commands/status.js +11 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.js +6 -3
- package/dist/commands/sync.js.map +1 -1
- package/dist/lib/config-layers.d.ts +6 -0
- package/dist/lib/config-layers.js +65 -3
- package/dist/lib/config-layers.js.map +1 -1
- package/dist/lib/opencode.d.ts +20 -0
- package/dist/lib/opencode.js +157 -11
- package/dist/lib/opencode.js.map +1 -1
- package/dist/lib/orchestration.d.ts +21 -0
- package/dist/lib/orchestration.js +118 -0
- package/dist/lib/orchestration.js.map +1 -0
- package/dist/lib/plugin-toggle-config.d.ts +1 -1
- package/dist/lib/plugin-toggle-config.js +2 -0
- package/dist/lib/plugin-toggle-config.js.map +1 -1
- package/dist/lib/vvoc-config.d.ts +25 -0
- package/dist/lib/vvoc-config.js +24 -7
- package/dist/lib/vvoc-config.js.map +1 -1
- package/dist/lib/vvoc-preset-registry.d.ts +26 -8
- package/dist/lib/vvoc-preset-registry.js +18 -10
- package/dist/lib/vvoc-preset-registry.js.map +1 -1
- package/dist/plugins/system-context-injection/index.js +17 -38
- package/dist/plugins/system-context-injection/index.js.map +1 -1
- package/dist/plugins/workflow/index.js +42 -6
- package/dist/plugins/workflow/index.js.map +1 -1
- package/dist/tui/context/analyze.d.ts +4 -0
- package/dist/tui/context/analyze.js +256 -0
- package/dist/tui/context/analyze.js.map +1 -0
- package/dist/tui/context/collect.d.ts +3 -0
- package/dist/tui/context/collect.js +94 -0
- package/dist/tui/context/collect.js.map +1 -0
- package/dist/tui/context/estimate.d.ts +2 -0
- package/dist/tui/context/estimate.js +49 -0
- package/dist/tui/context/estimate.js.map +1 -0
- package/dist/tui/context/plugin.d.ts +10 -0
- package/dist/tui/context/plugin.js +91 -0
- package/dist/tui/context/plugin.js.map +1 -0
- package/dist/tui/context/types.d.ts +61 -0
- package/dist/tui/context/types.js +25 -0
- package/dist/tui/context/types.js.map +1 -0
- package/dist/tui/context/view.d.ts +3 -0
- package/dist/tui/context/view.js +45 -0
- package/dist/tui/context/view.js.map +1 -0
- package/dist/tui.d.ts +7 -0
- package/dist/tui.js +27 -0
- package/dist/tui.js.map +1 -0
- package/package.json +16 -4
- package/schemas/vvoc/v3.json +23 -1
- package/templates/agents/vv-controller.md +77 -111
- package/templates/skills/vv-execute/SKILL.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
## <small>1.1.1 (2026-07-16)</small>
|
|
2
|
+
|
|
3
|
+
### Summary
|
|
4
|
+
|
|
5
|
+
This release introduces a new `/context` TUI command that gives users real-time visibility into their OpenCode session's context usage directly within the editor interface. The feature displays the latest provider-reported token consumption alongside a clearly labeled, approximate breakdown of observable context contributors—such as system instructions, loaded skills, tool schemas, conversation messages, files, and compaction summaries—without claiming exact provider attribution. It also surfaces MCP server statuses and reports estimation drift when visible estimates exceed measured usage. The plugin is enabled by default and can be toggled via `vvoc plugin`. The installation, sync, launch, status, and doctor commands now also manage a dedicated TUI configuration file (`tui.json` / `tui.jsonc`) conservatively, preserving unrelated settings and existing plugin entries. Package dependencies have been updated to OpenCode 1.18.2 and OpenTUI 0.4.3 to support the modern TUI plugin API, and a new `@osovv/vv-opencode/tui` package subpath is published for consumers.
|
|
6
|
+
|
|
7
|
+
* feat(tui): add context usage inspector ([328ed9f](https://github.com/osovv/vv-opencode/commit/328ed9f))
|
|
8
|
+
|
|
9
|
+
## 1.1.0 (2026-07-11)
|
|
10
|
+
|
|
11
|
+
### Summary
|
|
12
|
+
|
|
13
|
+
This release introduces orchestration profiles—single-session, balanced, and orchestrated—that let users control how vv-controller delegates work at runtime, with built-in presets automatically selecting a sensible default, a new `vvoc orchestration show|set` CLI command for explicit profile management, and status diagnostics that report the effective profile from the selected config source; alongside this, the managed OpenAI preset has been renamed to vv-codex with explicit Codex subscription-safe token limits to prevent compaction failures, the managed controller prompt and skill templates have been made profile-neutral to eliminate context pollution, and the repository agent guide has been rewritten for clarity.
|
|
14
|
+
|
|
15
|
+
* chore: archive applied orchestration profiles change ([09228ac](https://github.com/osovv/vv-opencode/commit/09228ac))
|
|
16
|
+
* chore(grace): archive applied Codex preset change ([5d7157c](https://github.com/osovv/vv-opencode/commit/5d7157c))
|
|
17
|
+
* docs: document orchestration profiles ([01b5786](https://github.com/osovv/vv-opencode/commit/01b5786))
|
|
18
|
+
* docs(grace): improve repository agent guide ([f5e9e3b](https://github.com/osovv/vv-opencode/commit/f5e9e3b))
|
|
19
|
+
* docs(grace): project orchestration modules and flows ([e66875c](https://github.com/osovv/vv-opencode/commit/e66875c))
|
|
20
|
+
* feat(cli): add scoped orchestration command ([c5bb612](https://github.com/osovv/vv-opencode/commit/c5bb612))
|
|
21
|
+
* feat(cli): register orchestration completions ([ec26cfc](https://github.com/osovv/vv-opencode/commit/ec26cfc))
|
|
22
|
+
* feat(config): add orchestration profiles to schema v3 ([6c920c3](https://github.com/osovv/vv-opencode/commit/6c920c3))
|
|
23
|
+
* feat(context): inject concrete controller policy ([1941c34](https://github.com/osovv/vv-opencode/commit/1941c34))
|
|
24
|
+
* feat(grace): plan preset orchestration profiles ([997a1ea](https://github.com/osovv/vv-opencode/commit/997a1ea))
|
|
25
|
+
* feat(orchestration): add profile policy domain ([6de8219](https://github.com/osovv/vv-opencode/commit/6de8219))
|
|
26
|
+
* feat(preset): apply orchestration profiles atomically ([161d7ff](https://github.com/osovv/vv-opencode/commit/161d7ff))
|
|
27
|
+
* feat(status): report effective orchestration profile ([473d92e](https://github.com/osovv/vv-opencode/commit/473d92e))
|
|
28
|
+
* feat(workflow): select profile-compatible guidance ([b664d4b](https://github.com/osovv/vv-opencode/commit/b664d4b))
|
|
29
|
+
* test(skills): protect workflow discovery metadata ([be76244](https://github.com/osovv/vv-opencode/commit/be76244))
|
|
30
|
+
* refactor(controller): keep managed prompt profile neutral ([092b995](https://github.com/osovv/vv-opencode/commit/092b995))
|
|
31
|
+
* fix(codex): rename managed presets and set safe limits ([ae77c7c](https://github.com/osovv/vv-opencode/commit/ae77c7c))
|
|
32
|
+
|
|
1
33
|
## <small>1.0.2 (2026-07-10)</small>
|
|
2
34
|
|
|
3
35
|
### Summary
|
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ bun add -g @osovv/vv-opencode
|
|
|
20
20
|
vvoc install
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
That's it. `vvoc install` pins the
|
|
23
|
+
That's it. `vvoc install` pins the server plugin, registers the `/context` TUI plugin, scaffolds managed agents and skills, writes canonical config, and sets `vv-controller` as your default OpenCode agent with auto-triggered spec, planning, review, reflection, and handoff skills. The TUI integration requires OpenCode `1.18.2` or newer.
|
|
24
24
|
|
|
25
25
|
To scope everything to the current project instead of the global OpenCode config:
|
|
26
26
|
|
|
@@ -29,7 +29,7 @@ vvoc install --scope project
|
|
|
29
29
|
vvoc launch --scope project
|
|
30
30
|
```
|
|
31
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
|
|
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`, `OPENCODE_TUI_CONFIG`, and `VVOC_CONFIG` pinned to the selected local files, so you can smoke-test vv-opencode in one repository without mutating your primary global setup.
|
|
33
33
|
|
|
34
34
|
> **Already installed?** Run `vvoc sync` anytime to refresh plugins, prompts, skills, and presets.
|
|
35
35
|
|
|
@@ -154,18 +154,20 @@ OpenCode is a strong, flexible base for agentic coding, but it intentionally lea
|
|
|
154
154
|
| Area | What you get |
|
|
155
155
|
|---|---|
|
|
156
156
|
| **Plugins** | A curated set of OpenCode plugins that make agentic work more structured, portable, and safer without hand-wiring each piece yourself |
|
|
157
|
-
| **Agent System** | A default controller that
|
|
157
|
+
| **Agent System** | A default controller (vv-controller) that follows the concrete work policy selected by the orchestration profile |
|
|
158
158
|
| **Skills** | Guided workflows for turning ideas into specs, specs into plans, plans into execution, reviews into findings, and long sessions into reusable memory |
|
|
159
159
|
| **Spec-to-Code Pipeline** | A repeatable path from request → spec → plan → implementation → review, so agents do not silently skip requirements or acceptance criteria |
|
|
160
160
|
| **One-Click Setup** | Recreate the same opinionated workflow on a new machine or project with `vvoc install` / `vvoc sync` |
|
|
161
|
-
| **CLI Tooling** | Operate and diagnose the setup from one CLI: install, sync, launch, status, doctor, roles, presets, plugin toggles, completion, and upgrade |
|
|
161
|
+
| **CLI Tooling** | Operate and diagnose the setup from one CLI: install, sync, launch, status, doctor, roles, presets, orchestration profiles, plugin toggles, completion, and upgrade |
|
|
162
162
|
| **Long-Run Safety** | Guardian keeps safe long/AFK runs moving by auto-approving routine low-risk permissions, while risky actions stay in OpenCode's manual approval flow; secrets redaction reduces accidental leakage |
|
|
163
163
|
| **Model Roles** | Put roles like `vv-role:smart` or `vv-role:fast` in shared agents and skills instead of hardcoded model IDs, then choose provider/model mappings per environment |
|
|
164
|
+
| **Orchestration Profiles** | Select a concrete work policy — single-session, balanced, or orchestrated — to control how vv-controller delegates. Built-in presets pick a sensible default and status reports the effective profile. |
|
|
164
165
|
| **Workflow Tracking** | Replace free-form multi-agent chaos with explicit work items, bounded review rounds, reviewer result collection, and hard stops when more context is needed |
|
|
166
|
+
| **Context Inspector** | Run `/context` in an active OpenCode TUI session to see provider-reported usage, remaining capacity, approximate observable categories, compaction state, and MCP statuses |
|
|
165
167
|
|
|
166
168
|
---
|
|
167
169
|
|
|
168
|
-
## The
|
|
170
|
+
## The Seven Plugins
|
|
169
171
|
|
|
170
172
|
| Plugin | What it helps you do |
|
|
171
173
|
|---|---|
|
|
@@ -173,8 +175,9 @@ OpenCode is a strong, flexible base for agentic coding, but it intentionally lea
|
|
|
173
175
|
| **ModelRolesPlugin** | Use semantic model roles instead of hardcoded model IDs in OpenCode agents, subagents, and command configs — e.g. `vv-role:smart`, `vv-role:fast` — then map those roles per machine or project. |
|
|
174
176
|
| **GuardianPlugin** | Keep long or AFK agent runs moving by auto-approving routine low-risk permission requests. If something looks risky, Guardian does not auto-approve it and leaves the decision to OpenCode's normal manual approval flow. |
|
|
175
177
|
| **HashlineEditPlugin** | Make agent edits safer by tying changes to fresh `read` output, reducing wrong-line and stale-context edits. |
|
|
176
|
-
| **SystemContextInjectionPlugin** |
|
|
178
|
+
| **SystemContextInjectionPlugin** | Inject universal primary guidance plus one startup-resolved orchestration policy into vv-controller, with skill discovery and subagent-only explore worker prompts. |
|
|
177
179
|
| **SecretsRedactionPlugin** | Reduce accidental secret leakage by redacting tokens, keys, emails, and other sensitive values before messages are sent to the model. |
|
|
180
|
+
| **ContextTuiPlugin** | Add a native `/context` dialog that reports measured provider usage and a clearly labeled approximate breakdown of observable context contributors. |
|
|
178
181
|
|
|
179
182
|
Workflow work items are opened with explicit intent. For implementation loops, controllers use:
|
|
180
183
|
|
|
@@ -193,6 +196,14 @@ Workflow work items are opened with explicit intent. For implementation loops, c
|
|
|
193
196
|
|
|
194
197
|
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.
|
|
195
198
|
|
|
199
|
+
### `/context` accuracy
|
|
200
|
+
|
|
201
|
+
Run `/context` inside an active session. The top-line used/remaining values come from the latest assistant turn's provider-reported input, cache-read, and output token counts when OpenCode exposes them. Category rows are estimates derived from observable TUI/SDK state: system instructions, skill catalog, loaded skills, tool schemas, user and assistant messages, tool results, files, and the latest compaction summary.
|
|
202
|
+
|
|
203
|
+
The plugin does **not** claim to reconstruct the exact final provider request. Hidden provider transformations, plugin-added data, or otherwise unattributable content appears as `Unknown/provider-only`; when visible estimates exceed provider usage, the dialog reports estimation drift instead of forcing the totals to match. MCP servers are shown by name and status, while schemas without source metadata are grouped as external/plugin/MCP rather than guessed per server.
|
|
204
|
+
|
|
205
|
+
The `context` vvoc plugin toggle defaults to enabled. Disable it with `vvoc plugin disable context`, then restart OpenCode.
|
|
206
|
+
|
|
196
207
|
---
|
|
197
208
|
|
|
198
209
|
## CLI at a Glance
|
|
@@ -201,22 +212,75 @@ For review-only reports, use `"mode": "review_only"`. In review-only mode, revie
|
|
|
201
212
|
|---|---|
|
|
202
213
|
| `vvoc init` | Interactive bootstrap flow |
|
|
203
214
|
| `vvoc install` | Non-interactive setup and scaffolding |
|
|
204
|
-
| `vvoc sync` | Refresh plugin
|
|
205
|
-
| `vvoc launch` | Launch OpenCode with deterministic
|
|
206
|
-
| `vvoc status` | Show current installation state |
|
|
207
|
-
| `vvoc doctor` | Diagnose setup problems (exits non-zero on issues) |
|
|
215
|
+
| `vvoc sync` | Refresh runtime/TUI plugin entries, agents, prompts, skills, config |
|
|
216
|
+
| `vvoc launch` | Launch OpenCode with deterministic runtime, TUI, and vvoc config sources |
|
|
217
|
+
| `vvoc status` | Show current installation state, including TUI config registration |
|
|
218
|
+
| `vvoc doctor` | Diagnose runtime/TUI/vvoc setup problems (exits non-zero on issues) |
|
|
208
219
|
| `vvoc config validate` | Validate canonical `vvoc.json` |
|
|
209
220
|
| `vvoc role list\|set\|unset` | Manage model role assignments |
|
|
210
221
|
| `vvoc preset list\|show\|<name>` | Inspect or apply named presets |
|
|
211
222
|
| `vvoc guardian config` | Print or write guardian section |
|
|
212
223
|
| `vvoc plugin list` | List OpenCode plugin entries |
|
|
213
224
|
| `vvoc plugin enable\|disable` | Toggle a vvoc-managed plugin on or off |
|
|
214
|
-
| `vvoc
|
|
225
|
+
| `vvoc orchestration show\|set` | Show or set the vv-controller orchestration profile |
|
|
226
|
+
| `vvoc patch-provider stepfun-ai\|zai\|codex` | Patch an OpenCode provider; `codex` adds subscription-safe OpenAI aliases and also accepts `openai` for compatibility |
|
|
215
227
|
| `vvoc completion` | Install shell completions |
|
|
216
228
|
| `vvoc upgrade` | Upgrade global package and run follow-up sync; sync failure is reported as a partial upgrade |
|
|
217
229
|
| `vvoc version` | Print installed version |
|
|
218
230
|
|
|
219
231
|
---
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Orchestration Profiles
|
|
235
|
+
|
|
236
|
+
Three concrete policies control how vv-controller delegates work at runtime:
|
|
237
|
+
|
|
238
|
+
- `single-session`: vv-controller performs exploration, investigation, planning, implementation,
|
|
239
|
+
and verification directly. Independent reviewer subagents remain available when the user
|
|
240
|
+
explicitly requests review or when a materially risky completed change benefits from independent
|
|
241
|
+
cross-model evaluation.
|
|
242
|
+
- `balanced`: vv-controller keeps architecture, critical reading, and final synthesis in the
|
|
243
|
+
primary session and may selectively delegate bounded search, investigation, mechanical
|
|
244
|
+
implementation, or review when that is the lightest safe route. Delegation is optional, not
|
|
245
|
+
mechanically mandatory.
|
|
246
|
+
- `orchestrated`: vv-controller uses the full tracked implementer/reviewer workflow with
|
|
247
|
+
explicit work items, required reviewers, bounded rounds, and hard stops.
|
|
248
|
+
|
|
249
|
+
Pick a profile explicitly or let a built-in preset select one:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
vvoc orchestration show --scope effective
|
|
253
|
+
vvoc orchestration set single-session --scope project
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Built-in presets declare an orchestration mapping:
|
|
257
|
+
|
|
258
|
+
| Preset | Profile |
|
|
259
|
+
|---|---|
|
|
260
|
+
| `vv-codex` | single-session |
|
|
261
|
+
| `vv-osovv` | single-session |
|
|
262
|
+
| `vv-osovv-cheap` | single-session |
|
|
263
|
+
| `vv-zai` | balanced |
|
|
264
|
+
| `vv-minimax` | balanced |
|
|
265
|
+
| `vv-deepseek` | balanced |
|
|
266
|
+
|
|
267
|
+
Applying a built-in preset changes both model roles and the root orchestration profile
|
|
268
|
+
atomically. A custom user-defined preset without an orchestration section preserves the current
|
|
269
|
+
root profile. `vvoc status` reports the profile resolved from the selected vvoc source; effective
|
|
270
|
+
status with no config files reports `balanced`.
|
|
271
|
+
|
|
272
|
+
### Prompt-only first version
|
|
273
|
+
|
|
274
|
+
Profiles are enforced through the concrete policy injected into vv-controller at startup —
|
|
275
|
+
the model only receives its active work instructions and does not see inactive profile alternatives.
|
|
276
|
+
The first version does not disable tools, change permissions, or block subagent types; the policy
|
|
277
|
+
is prompt-driven and asynchronous vv-execute classic mode remains available through that skill's
|
|
278
|
+
explicit inline/classic selection.
|
|
279
|
+
|
|
280
|
+
### Restart requirement
|
|
281
|
+
|
|
282
|
+
Config changes to the orchestration profile take effect after an OpenCode restart. Runtime plugins
|
|
283
|
+
resolve the profile once from the startup vvoc config snapshot and do not live-reload.
|
|
220
284
|
|
|
221
285
|
## Model Roles & Presets
|
|
222
286
|
|
|
@@ -228,11 +292,11 @@ vvoc role list --scope effective
|
|
|
228
292
|
# Assign models to roles
|
|
229
293
|
vvoc role set default openai/gpt-5.4
|
|
230
294
|
vvoc role set team-review anthropic/claude-sonnet-4-5 --scope project
|
|
231
|
-
vvoc role set smart openai/vv-gpt-5.5-xhigh
|
|
295
|
+
vvoc role set smart openai/vv-codex-gpt-5.5-xhigh
|
|
232
296
|
vvoc role set fast openai/gpt-5.4-mini
|
|
233
297
|
|
|
234
298
|
# Switch provider presets
|
|
235
|
-
vvoc preset vv-
|
|
299
|
+
vvoc preset vv-codex
|
|
236
300
|
vvoc preset vv-zai
|
|
237
301
|
vvoc preset vv-deepseek
|
|
238
302
|
vvoc preset vv-minimax
|
|
@@ -250,7 +314,7 @@ Presets are partial — applying one only changes the roles it defines. Managed
|
|
|
250
314
|
|
|
251
315
|
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:
|
|
252
316
|
|
|
253
|
-
1. explicit env override (`VVOC_CONFIG` / `OPENCODE_CONFIG`)
|
|
317
|
+
1. explicit env override (`VVOC_CONFIG` / `OPENCODE_CONFIG` / `OPENCODE_TUI_CONFIG`)
|
|
254
318
|
2. nearest project layer
|
|
255
319
|
3. global layer
|
|
256
320
|
4. built-in defaults when the command/runtime permits defaults
|
|
@@ -259,6 +323,7 @@ Canonical project-local paths:
|
|
|
259
323
|
|
|
260
324
|
```text
|
|
261
325
|
OpenCode config → ./.opencode/opencode.json(c)
|
|
326
|
+
OpenCode TUI config → ./.opencode/tui.json(c)
|
|
262
327
|
vvoc config → ./.vvoc/vvoc.json
|
|
263
328
|
Managed agent prompts → ./.vvoc/agents/*.md
|
|
264
329
|
Managed skills → ./.vvoc/skills/*/SKILL.md
|
|
@@ -274,6 +339,7 @@ Legacy root-level `./opencode.json` and `./opencode.jsonc` are intentionally not
|
|
|
274
339
|
|
|
275
340
|
```
|
|
276
341
|
Global OpenCode config → $XDG_CONFIG_HOME/opencode/opencode.json
|
|
342
|
+
Global OpenCode TUI → $XDG_CONFIG_HOME/opencode/tui.json(c)
|
|
277
343
|
Global vvoc config → $XDG_CONFIG_HOME/vvoc/vvoc.json
|
|
278
344
|
Managed agent prompts → $XDG_CONFIG_HOME/vvoc/agents/*.md (global)
|
|
279
345
|
./.vvoc/agents/*.md (project)
|
|
@@ -290,11 +356,13 @@ Session handoff notes → ./.vvoc/handoff/YYYY-MM-DD-<session-slug>/handoff.xm
|
|
|
290
356
|
|
|
291
357
|
Schema is versioned and published with the package — source of truth at `schemas/vvoc/v3.json`. The current config contract is strict: `vvoc.json` must be canonical version 3 and include required sections such as `plugins`. Existing v1/v2/pre-role, incomplete, malformed, or otherwise invalid config files fail instead of being migrated or repaired. `vvoc install` and `vvoc sync` may create a fresh canonical config when no config exists, but they refuse to rewrite an invalid existing `vvoc.json`; fix the file manually and rerun `vvoc sync`.
|
|
292
358
|
|
|
293
|
-
`vvoc
|
|
359
|
+
`vvoc install`, `vvoc init`, and `vvoc sync` conservatively add `@osovv/vv-opencode/tui` to dedicated `tui.json(c)`. Existing comments, unrelated settings, unrelated plugin entries, and `[specifier, options]` tuples are preserved; malformed plugin entries fail without rewrite.
|
|
360
|
+
|
|
361
|
+
`vvoc status` and `vvoc doctor` are diagnostic exceptions: they report the selected runtime, TUI, and vvoc config paths and validation problems without normalizing or rewriting the files. `vvoc upgrade` can still finish the package installation when the follow-up `vvoc sync` fails; in that case it reports a partial upgrade, leaves config unchanged, and tells you to fix the invalid config manually before rerunning `vvoc sync`.
|
|
294
362
|
|
|
295
363
|
Runtime compatibility is current-only. Guardian permission replies use the current OpenCode permission reply path (with the current HTTP reply fallback), Hashline edit refs must use current hash/context anchors, and sync writes current managed agents without deleting old pre-rename user or command entries.
|
|
296
364
|
|
|
297
|
-
Runtime plugins load the effective `vvoc.json` once during OpenCode startup and share the same immutable config snapshot for the lifetime of the process. There is no live reload; restart OpenCode after changing `vvoc.json`.
|
|
365
|
+
Runtime plugins load the effective `vvoc.json` once during OpenCode startup and share the same immutable config snapshot for the lifetime of the process. There is no live reload; restart OpenCode after changing `vvoc.json` or `tui.json(c)`.
|
|
298
366
|
|
|
299
367
|
### Deterministic local launch
|
|
300
368
|
|
|
@@ -305,7 +373,7 @@ vvoc install --scope project
|
|
|
305
373
|
vvoc launch --scope project -- run "hello"
|
|
306
374
|
```
|
|
307
375
|
|
|
308
|
-
`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.
|
|
376
|
+
`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`. When the selected `.opencode/tui.json(c)` exists, launch also sets `OPENCODE_TUI_CONFIG`; a missing TUI file is not synthesized during launch. `--scope effective` follows the layered lookup order, and `--scope global` uses the global config paths.
|
|
309
377
|
|
|
310
378
|
---
|
|
311
379
|
|
|
@@ -315,7 +383,7 @@ All prompt files are scaffolded by `vvoc install` / `vvoc sync`:
|
|
|
315
383
|
|
|
316
384
|
| Agent | When it helps |
|
|
317
385
|
|---|---|
|
|
318
|
-
| `vv-controller` |
|
|
386
|
+
| `vv-controller` | Primary agent that follows the concrete work policy selected for the session by the orchestration profile |
|
|
319
387
|
| `enhancer` | Improves rough requests before execution when a clearer prompt would help |
|
|
320
388
|
| `vv-implementer` | Applies a focused approved change and verifies it before reporting completion |
|
|
321
389
|
| `vv-spec-reviewer` | Checks whether implementation matches the requested spec and acceptance criteria |
|
|
@@ -333,7 +401,7 @@ Six workflow skills are scaffolded alongside agents:
|
|
|
333
401
|
|---|---|---|
|
|
334
402
|
| `vv-spec` | You have a feature or creative request and no agreed contract yet | A guided interview, recommended options, and a saved spec in `.vvoc/specs/YYYY-MM-DD-<slug>/spec.xml` |
|
|
335
403
|
| `vv-plan` | A spec is approved and ready to implement | A task-level implementation plan with file targets, contracts, dependencies, and acceptance criteria |
|
|
336
|
-
| `vv-execute` | A plan is approved and you want it applied step by step | Ordered execution with verification and applied spec/plan archival |
|
|
404
|
+
| `vv-execute` | A plan is approved and you want it applied step by step | Ordered execution with verification, explicit inline-or-classic mode choice, and applied spec/plan archival |
|
|
337
405
|
| `vv-review` | You want findings, not fixes | A review-only workflow that reports spec/code issues and stops before implementation |
|
|
338
406
|
| `vv-reflect` | A long development, debugging, ops, or investigation session produced reusable knowledge | Durable notes in existing docs or `.vvoc/lessons` / `.vvoc/runbooks` for future agents |
|
|
339
407
|
| `vv-handoff` | You are ending a session and want the visible context preserved for a future session | A redacted XML note at `.vvoc/handoff/YYYY-MM-DD-<session-slug>/handoff.xml`, without running new checks or collecting fresh context |
|
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/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]
|
|
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/orchestration.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
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
//
|
|
18
18
|
// START_CHANGE_SUMMARY
|
|
19
19
|
// LAST_CHANGE: [v0.2.11 - Aligned meta description with package.json, README, and GitHub repo; license and badge polish.]
|
|
20
|
+
// LAST_CHANGE: [C-PRESET-ORCHESTRATION-PROFILES - Registered the top-level orchestration command.]
|
|
20
21
|
// END_CHANGE_SUMMARY
|
|
21
22
|
import { defineCommand, runMain } from "citty";
|
|
22
23
|
import completion from "./commands/completion.js";
|
|
@@ -26,6 +27,7 @@ import guardian from "./commands/guardian.js";
|
|
|
26
27
|
import init from "./commands/init.js";
|
|
27
28
|
import install from "./commands/install.js";
|
|
28
29
|
import launch from "./commands/launch.js";
|
|
30
|
+
import orchestration from "./commands/orchestration.js";
|
|
29
31
|
import patchProvider from "./commands/patch-provider.js";
|
|
30
32
|
import preset from "./commands/preset.js";
|
|
31
33
|
import plugin from "./commands/plugin.js";
|
|
@@ -51,6 +53,7 @@ const main = defineCommand({
|
|
|
51
53
|
init,
|
|
52
54
|
install,
|
|
53
55
|
launch,
|
|
56
|
+
orchestration,
|
|
54
57
|
"patch-provider": patchProvider,
|
|
55
58
|
preset,
|
|
56
59
|
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,2bAA2b;AAC3b,4BAA4B;AAC5B,iBAAiB;AACjB,qBAAqB;AACrB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,oEAAoE;AACpE,wCAAwC;AACxC,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,4HAA4H;AAC5H,qGAAqG;AACrG,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,6BAA6B,CAAC;AACxD,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,aAAa;QACb,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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// VERSION: 0.5.15
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Auto-detect shell and install vvoc completions idempotently.
|
|
5
|
-
// SCOPE: Shell detection, completion file writing, nested
|
|
6
|
-
// DEPENDS: [citty, node:fs/promises, node:path, node:os, src/lib/model-roles.ts, src/lib/vvoc-preset-registry.ts]
|
|
7
|
-
// LINKS: [M-CLI-COMPLETION, M-CLI-COMMANDS]
|
|
5
|
+
// SCOPE: Shell detection, completion file writing, nested orchestration/config/plugin/patch-provider/preset and role flow generation, and rc file patching.
|
|
6
|
+
// DEPENDS: [citty, node:fs/promises, node:path, node:os, src/lib/model-roles.ts, src/lib/orchestration.ts, src/lib/vvoc-preset-registry.ts]
|
|
7
|
+
// LINKS: [M-CLI-COMPLETION, M-CLI-COMMANDS, M-CLI-ORCHESTRATION, M-ORCHESTRATION-PROFILES]
|
|
8
8
|
// ROLE: RUNTIME
|
|
9
9
|
// MAP_MODE: EXPORTS
|
|
10
10
|
// END_MODULE_CONTRACT
|
|
@@ -21,12 +21,15 @@
|
|
|
21
21
|
// LAST_CHANGE: [v0.6.0 - Added launch to top-level completion output.]
|
|
22
22
|
// LAST_CHANGE: [v0.5.15 - Switched built-in preset completions to the shared internal preset registry so managed names stay in sync.]
|
|
23
23
|
// LAST_CHANGE: [v0.5.14 - Restricted unset-role completions so shell suggestions no longer imply built-in roles are unsettable.]
|
|
24
|
+
// LAST_CHANGE: [C-CODEX-PRESET-LIMITS - Replaced the canonical openai patch-provider completion with codex while retaining openai as a resolver-only compatibility alias.]
|
|
25
|
+
// LAST_CHANGE: [C-PRESET-ORCHESTRATION-PROFILES - Added orchestration show/set and profile-value completions across bash, zsh, and fish.]
|
|
24
26
|
// END_CHANGE_SUMMARY
|
|
25
27
|
import { defineCommand } from "citty";
|
|
26
28
|
import { appendFile, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
27
29
|
import { homedir } from "node:os";
|
|
28
30
|
import { resolve } from "node:path";
|
|
29
31
|
import { BUILTIN_ROLE_NAMES } from "../lib/model-roles.js";
|
|
32
|
+
import { ORCHESTRATION_PROFILE_NAMES } from "../lib/orchestration.js";
|
|
30
33
|
import { BUILTIN_VVOC_PRESET_NAMES } from "../lib/vvoc-preset-registry.js";
|
|
31
34
|
const VVOC_TOP_LEVEL_COMMANDS = [
|
|
32
35
|
"completion",
|
|
@@ -36,6 +39,7 @@ const VVOC_TOP_LEVEL_COMMANDS = [
|
|
|
36
39
|
"init",
|
|
37
40
|
"install",
|
|
38
41
|
"launch",
|
|
42
|
+
"orchestration",
|
|
39
43
|
"patch-provider",
|
|
40
44
|
"preset",
|
|
41
45
|
"plugin",
|
|
@@ -46,7 +50,9 @@ const VVOC_TOP_LEVEL_COMMANDS = [
|
|
|
46
50
|
"version",
|
|
47
51
|
];
|
|
48
52
|
const VVOC_CONFIG_COMMANDS = ["validate"];
|
|
49
|
-
const
|
|
53
|
+
const VVOC_ORCHESTRATION_COMMANDS = ["show", "set"];
|
|
54
|
+
const VVOC_ORCHESTRATION_PROFILES = [...ORCHESTRATION_PROFILE_NAMES];
|
|
55
|
+
const VVOC_PATCH_PROVIDER_PRESETS = ["stepfun-ai", "zai", "codex"];
|
|
50
56
|
const VVOC_PRESET_COMMANDS = ["list", "show"];
|
|
51
57
|
const VVOC_PLUGIN_COMMANDS = ["list"];
|
|
52
58
|
const VVOC_ROLE_COMMANDS = ["set", "unset", "list"];
|
|
@@ -148,6 +154,8 @@ async function installFishCompletion() {
|
|
|
148
154
|
export function generateBashCompletion() {
|
|
149
155
|
const topLevelCommands = VVOC_TOP_LEVEL_COMMANDS.join(" ");
|
|
150
156
|
const configCommands = VVOC_CONFIG_COMMANDS.join(" ");
|
|
157
|
+
const orchestrationCommands = VVOC_ORCHESTRATION_COMMANDS.join(" ");
|
|
158
|
+
const orchestrationProfiles = VVOC_ORCHESTRATION_PROFILES.join(" ");
|
|
151
159
|
const patchProviderPresets = VVOC_PATCH_PROVIDER_PRESETS.join(" ");
|
|
152
160
|
const presetCommands = [...VVOC_PRESET_COMMANDS, ...BUILTIN_VVOC_PRESET_NAMES].join(" ");
|
|
153
161
|
const presetNames = BUILTIN_VVOC_PRESET_NAMES.join(" ");
|
|
@@ -171,6 +179,9 @@ export function generateBashCompletion() {
|
|
|
171
179
|
" config)\n" +
|
|
172
180
|
" _vvoc_config_commands\n" +
|
|
173
181
|
" ;;\n" +
|
|
182
|
+
" orchestration)\n" +
|
|
183
|
+
" _vvoc_orchestration_commands\n" +
|
|
184
|
+
" ;;\n" +
|
|
174
185
|
" patch-provider)\n" +
|
|
175
186
|
" _vvoc_patch_provider_presets\n" +
|
|
176
187
|
" ;;\n" +
|
|
@@ -187,6 +198,9 @@ export function generateBashCompletion() {
|
|
|
187
198
|
" role:set)\n" +
|
|
188
199
|
" _vvoc_role_ids\n" +
|
|
189
200
|
" ;;\n" +
|
|
201
|
+
" orchestration:set)\n" +
|
|
202
|
+
" _vvoc_orchestration_profiles\n" +
|
|
203
|
+
" ;;\n" +
|
|
190
204
|
" preset:show)\n" +
|
|
191
205
|
" _vvoc_preset_names\n" +
|
|
192
206
|
" ;;\n" +
|
|
@@ -209,6 +223,20 @@ export function generateBashCompletion() {
|
|
|
209
223
|
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
210
224
|
"}\n" +
|
|
211
225
|
"\n" +
|
|
226
|
+
"_vvoc_orchestration_commands() {\n" +
|
|
227
|
+
' local commands="' +
|
|
228
|
+
orchestrationCommands +
|
|
229
|
+
'"\n' +
|
|
230
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
231
|
+
"}\n" +
|
|
232
|
+
"\n" +
|
|
233
|
+
"_vvoc_orchestration_profiles() {\n" +
|
|
234
|
+
' local commands="' +
|
|
235
|
+
orchestrationProfiles +
|
|
236
|
+
'"\n' +
|
|
237
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
238
|
+
"}\n" +
|
|
239
|
+
"\n" +
|
|
212
240
|
"_vvoc_patch_provider_presets() {\n" +
|
|
213
241
|
' local commands="' +
|
|
214
242
|
patchProviderPresets +
|
|
@@ -265,7 +293,7 @@ export function generateZshCompletion() {
|
|
|
265
293
|
for (const cmd of VVOC_TOP_LEVEL_COMMANDS) {
|
|
266
294
|
lines.push(' "' + cmd + '"');
|
|
267
295
|
}
|
|
268
|
-
lines.push(" )", "", ' _arguments -C "1: :(' + VVOC_TOP_LEVEL_COMMANDS.join(" ") + ')" "*::arg:->args"', "", " case $line[1] in", " role)", " _vvoc_role_cmds", " ;;", " config)", " _vvoc_config_cmds", " ;;", " patch-provider)", " _vvoc_patch_provider_cmds", " ;;", " preset)", " _vvoc_preset_cmds", " ;;", " plugin)", " _vvoc_plugin_cmds", " ;;", " esac", "}", "", "_vvoc_config_cmds() {", " local -a config_commands", " config_commands=(" + VVOC_CONFIG_COMMANDS.join(" ") + ")", ' _arguments "1: :(' + VVOC_CONFIG_COMMANDS.join(" ") + ')"', "}", "", "_vvoc_patch_provider_cmds() {", ' _arguments "1: :(' + VVOC_PATCH_PROVIDER_PRESETS.join(" ") + ')"', "}", "", "_vvoc_preset_cmds() {", " case $words[2] in", " show)", ' _arguments "1: :(' + BUILTIN_VVOC_PRESET_NAMES.join(" ") + ')"', " ;;", " *)", ' _arguments "1: :(' +
|
|
296
|
+
lines.push(" )", "", ' _arguments -C "1: :(' + VVOC_TOP_LEVEL_COMMANDS.join(" ") + ')" "*::arg:->args"', "", " case $line[1] in", " role)", " _vvoc_role_cmds", " ;;", " config)", " _vvoc_config_cmds", " ;;", " orchestration)", " _vvoc_orchestration_cmds", " ;;", " patch-provider)", " _vvoc_patch_provider_cmds", " ;;", " preset)", " _vvoc_preset_cmds", " ;;", " plugin)", " _vvoc_plugin_cmds", " ;;", " esac", "}", "", "_vvoc_config_cmds() {", " local -a config_commands", " config_commands=(" + VVOC_CONFIG_COMMANDS.join(" ") + ")", ' _arguments "1: :(' + VVOC_CONFIG_COMMANDS.join(" ") + ')"', "}", "", "_vvoc_orchestration_cmds() {", " case $words[2] in", " set)", ' _arguments "1: :(' + VVOC_ORCHESTRATION_PROFILES.join(" ") + ')"', " ;;", " *)", ' _arguments "1: :(' + VVOC_ORCHESTRATION_COMMANDS.join(" ") + ')"', " ;;", " esac", "}", "", "_vvoc_patch_provider_cmds() {", ' _arguments "1: :(' + VVOC_PATCH_PROVIDER_PRESETS.join(" ") + ')"', "}", "", "_vvoc_preset_cmds() {", " case $words[2] in", " show)", ' _arguments "1: :(' + BUILTIN_VVOC_PRESET_NAMES.join(" ") + ')"', " ;;", " *)", ' _arguments "1: :(' +
|
|
269
297
|
[...VVOC_PRESET_COMMANDS, ...BUILTIN_VVOC_PRESET_NAMES].join(" ") +
|
|
270
298
|
')"', " ;;", " esac", "}", "", "_vvoc_role_cmds() {", " case $words[2] in", " set)", ' _arguments "1: :(' + VVOC_ROLE_IDS.join(" ") + ')"', " ;;", " unset)", ' _arguments "1: :<custom-role-id>"', " ;;", " *)", ' _arguments "1: :(' + VVOC_ROLE_COMMANDS.join(" ") + ')"', " ;;", " esac", "}", "", "_vvoc_plugin_cmds() {", " local -a plugin_commands", " plugin_commands=(" + VVOC_PLUGIN_COMMANDS.join(" ") + ")", ' _arguments "1: :(' + VVOC_PLUGIN_COMMANDS.join(" ") + ')"', "}", "", "compdef _vvoc vvoc");
|
|
271
299
|
return lines.join("\n") + "\n";
|
|
@@ -276,7 +304,7 @@ export function generateFishCompletion() {
|
|
|
276
304
|
for (const cmd of VVOC_TOP_LEVEL_COMMANDS) {
|
|
277
305
|
lines.push(" echo " + cmd);
|
|
278
306
|
}
|
|
279
|
-
lines.push("end", "", "function __vvoc_config_cmds", " echo " + VVOC_CONFIG_COMMANDS.join(" "), "end", "", "function __vvoc_patch_provider_cmds", " echo " + VVOC_PATCH_PROVIDER_PRESETS.join(" "), "end", "", "function __vvoc_preset_cmds", " echo " + presetCommands, "end", "", "function __vvoc_preset_names", " echo " + BUILTIN_VVOC_PRESET_NAMES.join(" "), "end", "", "function __vvoc_role_cmds", " echo " + VVOC_ROLE_COMMANDS.join(" "), "end", "", "function __vvoc_role_ids", " echo " + VVOC_ROLE_IDS.join(" "), "end", "", "function __vvoc_plugin_cmds", " echo " + VVOC_PLUGIN_COMMANDS.join(" "), "end", "", 'complete -c vvoc -f -a "(__vvoc_commands)"', 'complete -c vvoc -n "__fish_seen_subcommand_from role; and not __fish_seen_subcommand_from set unset list" -f -a "(__vvoc_role_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from role; and __fish_seen_subcommand_from set" -f -a "(__vvoc_role_ids)"', 'complete -c vvoc -n "__fish_seen_subcommand_from config" -f -a "(__vvoc_config_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from patch-provider" -f -a "(__vvoc_patch_provider_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from preset; and not __fish_seen_subcommand_from ' +
|
|
307
|
+
lines.push("end", "", "function __vvoc_config_cmds", " echo " + VVOC_CONFIG_COMMANDS.join(" "), "end", "", "function __vvoc_orchestration_cmds", " echo " + VVOC_ORCHESTRATION_COMMANDS.join(" "), "end", "", "function __vvoc_orchestration_profiles", " echo " + VVOC_ORCHESTRATION_PROFILES.join(" "), "end", "", "function __vvoc_patch_provider_cmds", " echo " + VVOC_PATCH_PROVIDER_PRESETS.join(" "), "end", "", "function __vvoc_preset_cmds", " echo " + presetCommands, "end", "", "function __vvoc_preset_names", " echo " + BUILTIN_VVOC_PRESET_NAMES.join(" "), "end", "", "function __vvoc_role_cmds", " echo " + VVOC_ROLE_COMMANDS.join(" "), "end", "", "function __vvoc_role_ids", " echo " + VVOC_ROLE_IDS.join(" "), "end", "", "function __vvoc_plugin_cmds", " echo " + VVOC_PLUGIN_COMMANDS.join(" "), "end", "", 'complete -c vvoc -f -a "(__vvoc_commands)"', 'complete -c vvoc -n "__fish_seen_subcommand_from role; and not __fish_seen_subcommand_from set unset list" -f -a "(__vvoc_role_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from role; and __fish_seen_subcommand_from set" -f -a "(__vvoc_role_ids)"', 'complete -c vvoc -n "__fish_seen_subcommand_from config" -f -a "(__vvoc_config_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from orchestration; and not __fish_seen_subcommand_from show set" -f -a "(__vvoc_orchestration_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from orchestration; and __fish_seen_subcommand_from set" -f -a "(__vvoc_orchestration_profiles)"', 'complete -c vvoc -n "__fish_seen_subcommand_from patch-provider" -f -a "(__vvoc_patch_provider_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from preset; and not __fish_seen_subcommand_from ' +
|
|
280
308
|
presetCommands +
|
|
281
309
|
'" -f -a "(__vvoc_preset_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from preset; and __fish_seen_subcommand_from show" -f -a "(__vvoc_preset_names)"', 'complete -c vvoc -n "__fish_seen_subcommand_from plugin" -f -a "(__vvoc_plugin_cmds)"');
|
|
282
310
|
return lines.join("\n") + "\n";
|
|
@@ -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,
|
|
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,6FAA6F;AAC7F,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,yEAAyE;AACzE,wIAAwI;AACxI,mIAAmI;AACnI,6KAA6K;AAC7K,4IAA4I;AAC5I,qBAAqB;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,uBAAuB,GAAG;IAC9B,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;IACN,SAAS;IACT,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1C,MAAM,2BAA2B,GAAG,CAAC,MAAM,EAAE,KAAK,CAAU,CAAC;AAC7D,MAAM,2BAA2B,GAAG,CAAC,GAAG,2BAA2B,CAAC,CAAC;AACrE,MAAM,2BAA2B,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACnE,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACpD,MAAM,aAAa,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;AAE9C,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,qCAAqC;KACnD;IACD,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,MAAM;gBACT,MAAM,qBAAqB,EAAE,CAAC;gBAC9B,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,oBAAoB,EAAE,CAAC;gBAC7B,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,qBAAqB,EAAE,CAAC;gBAC9B,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,WAAW;IACzB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAChF,OAAO,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,QAAgB,EAAE,IAAY;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,IAAY;IAC3D,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,MAAM,cAAc,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACrD,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,SAAS,cAAc,kBAAkB,cAAc,GAAG,CAAC;IAC9E,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,iCAAiC,cAAc,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACjE,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;IAEhC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;IACvC,MAAM,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG;QAClB,uBAAuB;QACvB,uCAAuC;QACvC,yBAAyB;QACzB,YAAY;QACZ,IAAI;QACJ,SAAS,cAAc,kBAAkB,cAAc,GAAG;KAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,gCAAgC,cAAc,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5E,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;IAEhC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,iCAAiC,cAAc,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,qBAAqB,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,MAAM,qBAAqB,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,CAAC,GAAG,oBAAoB,EAAE,GAAG,yBAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAExC,OAAO,CACL,8BAA8B;QAC9B,aAAa;QACb,gCAAgC;QAChC,gCAAgC;QAChC,IAAI;QACJ,sBAAsB;QACtB,UAAU;QACV,wBAAwB;QACxB,YAAY;QACZ,UAAU;QACV,+BAA+B;QAC/B,iBAAiB;QACjB,iCAAiC;QACjC,gBAAgB;QAChB,mBAAmB;QACnB,mCAAmC;QACnC,gBAAgB;QAChB,0BAA0B;QAC1B,0CAA0C;QAC1C,gBAAgB;QAChB,2BAA2B;QAC3B,0CAA0C;QAC1C,gBAAgB;QAChB,mBAAmB;QACnB,mCAAmC;QACnC,gBAAgB;QAChB,mBAAmB;QACnB,mCAAmC;QACnC,gBAAgB;QAChB,cAAc;QACd,YAAY;QACZ,UAAU;QACV,2CAA2C;QAC3C,qBAAqB;QACrB,4BAA4B;QAC5B,gBAAgB;QAChB,8BAA8B;QAC9B,0CAA0C;QAC1C,gBAAgB;QAChB,wBAAwB;QACxB,gCAAgC;QAChC,gBAAgB;QAChB,cAAc;QACd,YAAY;QACZ,UAAU;QACV,KAAK;QACL,IAAI;QACJ,sBAAsB;QACtB,oBAAoB;QACpB,gBAAgB;QAChB,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,6BAA6B;QAC7B,oBAAoB;QACpB,cAAc;QACd,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,oCAAoC;QACpC,oBAAoB;QACpB,qBAAqB;QACrB,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,oCAAoC;QACpC,oBAAoB;QACpB,qBAAqB;QACrB,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,oCAAoC;QACpC,oBAAoB;QACpB,oBAAoB;QACpB,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,6BAA6B;QAC7B,oBAAoB;QACpB,cAAc;QACd,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,0BAA0B;QAC1B,oBAAoB;QACpB,WAAW;QACX,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,2BAA2B;QAC3B,oBAAoB;QACpB,YAAY;QACZ,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,sBAAsB;QACtB,oBAAoB;QACpB,OAAO;QACP,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,6BAA6B;QAC7B,oBAAoB;QACpB,cAAc;QACd,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,0BAA0B,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAa;QACtB,eAAe;QACf,2BAA2B;QAC3B,EAAE;QACF,WAAW;QACX,qBAAqB;QACrB,cAAc;KACf,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,KAAK,EACL,EAAE,EACF,wBAAwB,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,oBAAoB,EACnF,EAAE,EACF,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,oBAAoB,EACpB,gCAAgC,EAChC,UAAU,EACV,qBAAqB,EACrB,iCAAiC,EACjC,UAAU,EACV,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,QAAQ,EACR,GAAG,EACH,EAAE,EACF,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAC5D,qBAAqB,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAC7D,GAAG,EACH,EAAE,EACF,8BAA8B,EAC9B,qBAAqB,EACrB,UAAU,EACV,yBAAyB,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EACxE,UAAU,EACV,QAAQ,EACR,yBAAyB,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EACxE,UAAU,EACV,QAAQ,EACR,GAAG,EACH,EAAE,EACF,+BAA+B,EAC/B,qBAAqB,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EACpE,GAAG,EACH,EAAE,EACF,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,EACX,yBAAyB,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EACtE,UAAU,EACV,QAAQ,EACR,yBAAyB;QACvB,CAAC,GAAG,oBAAoB,EAAE,GAAG,yBAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACjE,IAAI,EACN,UAAU,EACV,QAAQ,EACR,GAAG,EACH,EAAE,EACF,qBAAqB,EACrB,qBAAqB,EACrB,UAAU,EACV,yBAAyB,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAC1D,UAAU,EACV,YAAY,EACZ,yCAAyC,EACzC,UAAU,EACV,QAAQ,EACR,yBAAyB,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAC/D,UAAU,EACV,QAAQ,EACR,GAAG,EACH,EAAE,EACF,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAC5D,qBAAqB,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAC7D,GAAG,EACH,EAAE,EACF,oBAAoB,CACrB,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,cAAc,GAAG,CAAC,GAAG,oBAAoB,EAAE,GAAG,yBAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzF,MAAM,KAAK,GAAa,CAAC,4BAA4B,EAAE,EAAE,EAAE,0BAA0B,CAAC,CAAC;IAEvF,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI,CACR,KAAK,EACL,EAAE,EACF,6BAA6B,EAC7B,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAC1C,KAAK,EACL,EAAE,EACF,oCAAoC,EACpC,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,EACjD,KAAK,EACL,EAAE,EACF,wCAAwC,EACxC,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,EACjD,KAAK,EACL,EAAE,EACF,qCAAqC,EACrC,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,EACjD,KAAK,EACL,EAAE,EACF,6BAA6B,EAC7B,SAAS,GAAG,cAAc,EAC1B,KAAK,EACL,EAAE,EACF,8BAA8B,EAC9B,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAC/C,KAAK,EACL,EAAE,EACF,2BAA2B,EAC3B,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EACxC,KAAK,EACL,EAAE,EACF,0BAA0B,EAC1B,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EACnC,KAAK,EACL,EAAE,EACF,6BAA6B,EAC7B,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAC1C,KAAK,EACL,EAAE,EACF,4CAA4C,EAC5C,uIAAuI,EACvI,uHAAuH,EACvH,uFAAuF,EACvF,mJAAmJ,EACnJ,8IAA8I,EAC9I,uGAAuG,EACvG,+FAA+F;QAC7F,cAAc;QACd,gCAAgC,EAClC,8HAA8H,EAC9H,uFAAuF,CACxF,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
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: Read-scope parsing, layered source-aware installation inspection, warning/problem reporting, and non-zero exit signaling for OpenCode plus vvoc config.
|
|
5
|
+
// SCOPE: Read-scope parsing, layered source-aware installation inspection, warning/problem reporting, and non-zero exit signaling for OpenCode runtime/TUI plus vvoc config.
|
|
6
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
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
// END_MODULE_MAP
|
|
15
15
|
//
|
|
16
16
|
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [C-CONTEXT-TUI-PLUGIN - Added TUI source, parse, plugin inventory, and registration diagnostics.]
|
|
17
18
|
// LAST_CHANGE: [v0.5.0 - Added global/project/effective diagnostic scopes with selected source reporting.]
|
|
18
19
|
// LAST_CHANGE: [v0.4.0 - Added canonical role inventory output while keeping unresolved role-reference failures in Problems diagnostics.]
|
|
19
20
|
// END_CHANGE_SUMMARY
|
|
@@ -43,10 +44,15 @@ export default defineCommand({
|
|
|
43
44
|
const inspection = await inspectInstallationForScope({ scope, cwd: process.cwd(), configDir });
|
|
44
45
|
console.log(`Scope: ${inspection.scope}`);
|
|
45
46
|
console.log(`OpenCode source: ${inspection.opencodeSource.kind}${inspection.opencodeSource.path ? ` ${inspection.opencodeSource.path}` : ""}`);
|
|
47
|
+
console.log(`OpenCode TUI source: ${inspection.opencodeTuiSource.kind}${inspection.opencodeTuiSource.path ? ` ${inspection.opencodeTuiSource.path}` : ""}`);
|
|
46
48
|
console.log(`vvoc source: ${inspection.vvocSource.kind}${inspection.vvocSource.path ? ` ${inspection.vvocSource.path}` : ""}`);
|
|
47
49
|
console.log(`OpenCode config: ${inspection.opencode.path}`);
|
|
48
50
|
console.log(`OpenCode config parse: ${inspection.opencode.parseError ? inspection.opencode.parseError : "ok"}`);
|
|
49
51
|
console.log(`Configured plugins: ${inspection.opencode.plugins.length > 0 ? inspection.opencode.plugins.join(", ") : "<none>"}`);
|
|
52
|
+
console.log(`OpenCode TUI config: ${inspection.tui.path}`);
|
|
53
|
+
console.log(`OpenCode TUI config parse: ${inspection.tui.parseError ? inspection.tui.parseError : inspection.tui.exists ? "ok" : "missing"}`);
|
|
54
|
+
console.log(`Configured TUI plugins: ${inspection.tui.plugins.length > 0 ? inspection.tui.plugins.map((entry) => (typeof entry === "string" ? entry : entry[0])).join(", ") : "<none>"}`);
|
|
55
|
+
console.log(`TUI package configured: ${inspection.tui.pluginConfigured ? "yes" : "no"}`);
|
|
50
56
|
console.log(`vvoc config: ${inspection.vvoc.path}`);
|
|
51
57
|
console.log(`vvoc config parse: ${inspection.vvoc.parseError ? inspection.vvoc.parseError : inspection.vvoc.exists ? "ok" : "missing"}`);
|
|
52
58
|
console.log(`vvoc schema: ${inspection.vvoc.schema ?? "missing"}`);
|
|
@@ -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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// FILE: src/commands/init.ts
|
|
2
2
|
// VERSION: 0.7.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
|
-
// PURPOSE: Interactive project initialization: registers @osovv/vv-opencode
|
|
5
|
-
// SCOPE: Scope selection, plugin registration, managed OpenCode agent registration, managed agent prompt and plan directory scaffolding, canonical config scaffolding, and idempotent re-run handling.
|
|
4
|
+
// PURPOSE: Interactive project initialization: registers @osovv/vv-opencode runtime/TUI entries and scaffolds the canonical vvoc.json config plus managed prompts/plans. Uses @clack/prompts for TTY prompts. Interactive mode is the default; --non-interactive flag enables batch mode.
|
|
5
|
+
// SCOPE: Scope selection, runtime/TUI plugin registration, managed OpenCode agent registration, managed agent prompt and plan directory scaffolding, canonical config scaffolding, and idempotent re-run handling.
|
|
6
6
|
// DEPENDS: [citty, @clack/prompts, src/lib/opencode.js]
|
|
7
7
|
// LINKS: [M-CLI-INIT, M-CLI-CONFIG]
|
|
8
8
|
// ROLE: RUNTIME
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
// END_MODULE_MAP
|
|
16
16
|
//
|
|
17
17
|
// START_CHANGE_SUMMARY
|
|
18
|
+
// LAST_CHANGE: [C-CONTEXT-TUI-PLUGIN - Registered and inspected the dedicated TUI plugin config during init.]
|
|
18
19
|
// LAST_CHANGE: [v0.8.1 - Removed the harmful RTK token-saving recommendation from the init outro; RTK distorts proxied command output and confuses LLM sessions.]
|
|
19
20
|
// LAST_CHANGE: [v0.8.0 - Skipped global managed skill symlink creation for project-scope init.]
|
|
20
21
|
// LAST_CHANGE: [v0.7.1 - Added managed skill file scaffolding during vvoc init.]
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
// END_CHANGE_SUMMARY
|
|
24
25
|
import { defineCommand } from "citty";
|
|
25
26
|
import * as p from "@clack/prompts";
|
|
26
|
-
import { ensureManagedSkillSymlink, ensurePackageInstalled, installManagedAgentPrompts, installVvocConfig, installManagedSkillFiles, inspectInstallation, resolvePaths, syncManagedAgentRegistrations, } from "../lib/opencode.js";
|
|
27
|
+
import { ensureManagedSkillSymlink, ensurePackageInstalled, ensureTuiPackageInstalled, installManagedAgentPrompts, installVvocConfig, installManagedSkillFiles, inspectInstallation, resolvePaths, syncManagedAgentRegistrations, } from "../lib/opencode.js";
|
|
27
28
|
export default defineCommand({
|
|
28
29
|
meta: {
|
|
29
30
|
name: "init",
|
|
@@ -96,7 +97,9 @@ export async function runInit(options) {
|
|
|
96
97
|
selectedScope = scopeAnswer;
|
|
97
98
|
const reloadedPaths = await resolvePaths({ scope: selectedScope, cwd, configDir });
|
|
98
99
|
const inspection = await inspectInstallation(reloadedPaths);
|
|
99
|
-
if (inspection.opencode.pluginConfigured &&
|
|
100
|
+
if (inspection.opencode.pluginConfigured &&
|
|
101
|
+
inspection.tui.pluginConfigured &&
|
|
102
|
+
inspection.vvoc.exists) {
|
|
100
103
|
const overwrite = await p.confirm({
|
|
101
104
|
message: `@osovv/vv-opencode is already configured. Overwrite?`,
|
|
102
105
|
initialValue: false,
|
|
@@ -113,6 +116,9 @@ export async function runInit(options) {
|
|
|
113
116
|
p.log.step("Registering plugin in OpenCode config...");
|
|
114
117
|
const pkgResult = await ensurePackageInstalled(finalPaths);
|
|
115
118
|
p.log.info(pkgResult.path + " - " + (pkgResult.changed ? "updated" : "already up to date"));
|
|
119
|
+
p.log.step("Registering TUI plugin...");
|
|
120
|
+
const tuiResult = await ensureTuiPackageInstalled(finalPaths);
|
|
121
|
+
p.log.info(tuiResult.path + " - " + tuiResult.action);
|
|
116
122
|
p.log.step("Registering managed agents...");
|
|
117
123
|
const agentRegistration = await syncManagedAgentRegistrations(finalPaths);
|
|
118
124
|
p.log.info(agentRegistration.path + " - " + (agentRegistration.changed ? "updated" : "already up to date"));
|
|
@@ -138,11 +144,14 @@ async function runInitNonInteractive(options) {
|
|
|
138
144
|
const { scope, cwd, configDir } = options;
|
|
139
145
|
const paths = await resolvePaths({ scope, cwd, configDir });
|
|
140
146
|
const inspection = await inspectInstallation(paths);
|
|
141
|
-
if (inspection.opencode.pluginConfigured &&
|
|
147
|
+
if (inspection.opencode.pluginConfigured &&
|
|
148
|
+
inspection.tui.pluginConfigured &&
|
|
149
|
+
inspection.vvoc.exists) {
|
|
142
150
|
console.log("Already configured. Run `vvoc sync` to update configs.");
|
|
143
151
|
return;
|
|
144
152
|
}
|
|
145
153
|
await ensurePackageInstalled(paths);
|
|
154
|
+
await ensureTuiPackageInstalled(paths);
|
|
146
155
|
await syncManagedAgentRegistrations(paths);
|
|
147
156
|
await installManagedAgentPrompts(paths, { force: true });
|
|
148
157
|
await installManagedSkillFiles(paths, { force: true });
|