@osovv/vv-opencode 0.5.4 → 0.5.5
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/README.md +28 -20
- package/dist/commands/completion.js +51 -18
- package/dist/commands/completion.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,11 +18,17 @@ Current package scope:
|
|
|
18
18
|
- `GuardianPlugin`
|
|
19
19
|
- `MemoryPlugin`
|
|
20
20
|
- CLI commands:
|
|
21
|
+
- `agent`
|
|
22
|
+
- `completion`
|
|
23
|
+
- `config`
|
|
24
|
+
- `init`
|
|
21
25
|
- `install`
|
|
26
|
+
- `plugin`
|
|
22
27
|
- `sync`
|
|
23
28
|
- `status`
|
|
24
29
|
- `doctor`
|
|
25
|
-
- `guardian
|
|
30
|
+
- `guardian`
|
|
31
|
+
- `upgrade`
|
|
26
32
|
- `version`
|
|
27
33
|
|
|
28
34
|
## Installation
|
|
@@ -33,19 +39,13 @@ Install into the current project:
|
|
|
33
39
|
bun add @osovv/vv-opencode
|
|
34
40
|
```
|
|
35
41
|
|
|
36
|
-
|
|
42
|
+
Use the CLI as:
|
|
37
43
|
|
|
38
44
|
```bash
|
|
39
|
-
|
|
45
|
+
vvoc --help
|
|
40
46
|
```
|
|
41
47
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
bun run vvoc --help
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Plain `vvoc` only works when the binary is available in your `PATH`, for example after a global install.
|
|
48
|
+
Examples below use `vvoc` directly and assume the binary is available in your `PATH`.
|
|
49
49
|
|
|
50
50
|
## OpenCode usage
|
|
51
51
|
|
|
@@ -93,19 +93,19 @@ This keeps vvoc state clearly separated from native OpenCode config and avoids f
|
|
|
93
93
|
Show help:
|
|
94
94
|
|
|
95
95
|
```bash
|
|
96
|
-
|
|
96
|
+
vvoc --help
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
Show the installed `vvoc` package version:
|
|
100
100
|
|
|
101
101
|
```bash
|
|
102
|
-
|
|
102
|
+
vvoc version
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
Install package config and bootstrap Guardian + Memory config:
|
|
106
106
|
|
|
107
107
|
```bash
|
|
108
|
-
|
|
108
|
+
vvoc install
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
`install` writes the current installed package version into the OpenCode `plugin` array instead of using an unpinned `latest` reference.
|
|
@@ -114,13 +114,13 @@ It also creates managed `guardian.jsonc` and `memory.jsonc` files when they are
|
|
|
114
114
|
Use project scope instead of global scope:
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
|
-
|
|
117
|
+
vvoc install --scope project
|
|
118
118
|
```
|
|
119
119
|
|
|
120
120
|
Override the global config home used for both `opencode/` and `vvoc/`:
|
|
121
121
|
|
|
122
122
|
```bash
|
|
123
|
-
|
|
123
|
+
vvoc install --config-dir /tmp/vvoc-home
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
This writes:
|
|
@@ -132,21 +132,29 @@ This writes:
|
|
|
132
132
|
Sync managed config files:
|
|
133
133
|
|
|
134
134
|
```bash
|
|
135
|
-
|
|
135
|
+
vvoc sync
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
Inspect current setup:
|
|
139
139
|
|
|
140
140
|
```bash
|
|
141
|
-
|
|
142
|
-
|
|
141
|
+
vvoc status
|
|
142
|
+
vvoc doctor
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
+
Install shell completions for the current shell:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
vvoc completion
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
For `zsh`, `vvoc completion` writes `~/.zsh/completions/_vvoc` and appends a small loader block to `~/.zshrc`.
|
|
152
|
+
|
|
145
153
|
Generate or print `guardian.jsonc`:
|
|
146
154
|
|
|
147
155
|
```bash
|
|
148
|
-
|
|
149
|
-
|
|
156
|
+
vvoc guardian config --print
|
|
157
|
+
vvoc guardian config --model "anthropic/claude-sonnet-4-5" --variant high
|
|
150
158
|
```
|
|
151
159
|
|
|
152
160
|
### Guardian config behavior
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// FILE: src/commands/completion.ts
|
|
2
|
-
// VERSION: 0.5.
|
|
2
|
+
// VERSION: 0.5.1
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Auto-detect shell and install vvoc completions idempotently.
|
|
5
5
|
// SCOPE: Shell detection, completion file writing, and rc file patching.
|
|
@@ -18,14 +18,15 @@
|
|
|
18
18
|
// END_MODULE_MAP
|
|
19
19
|
//
|
|
20
20
|
// START_CHANGE_SUMMARY
|
|
21
|
-
// LAST_CHANGE: [v0.5.
|
|
21
|
+
// LAST_CHANGE: [v0.5.1 - Fixed zsh completion registration, added a resilient zsh loader block, and synced completion commands with the real CLI surface.]
|
|
22
22
|
// END_CHANGE_SUMMARY
|
|
23
23
|
import { defineCommand } from "citty";
|
|
24
24
|
import { appendFile, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
25
25
|
import { resolve } from "node:path";
|
|
26
26
|
import { homedir } from "node:os";
|
|
27
|
-
const
|
|
27
|
+
const VVOC_TOP_LEVEL_COMMANDS = [
|
|
28
28
|
"agent",
|
|
29
|
+
"completion",
|
|
29
30
|
"config",
|
|
30
31
|
"doctor",
|
|
31
32
|
"guardian",
|
|
@@ -35,9 +36,10 @@ const VVOC_COMMANDS = [
|
|
|
35
36
|
"status",
|
|
36
37
|
"sync",
|
|
37
38
|
"upgrade",
|
|
38
|
-
"validate",
|
|
39
39
|
"version",
|
|
40
40
|
];
|
|
41
|
+
const VVOC_CONFIG_COMMANDS = ["validate"];
|
|
42
|
+
const VVOC_PLUGIN_COMMANDS = ["list"];
|
|
41
43
|
export default defineCommand({
|
|
42
44
|
meta: {
|
|
43
45
|
name: "completion",
|
|
@@ -112,10 +114,17 @@ async function installZshCompletion() {
|
|
|
112
114
|
const script = generateZshCompletion();
|
|
113
115
|
await writeFile(completionFile, script, "utf8");
|
|
114
116
|
const rcFile = resolve(homedir(), ".zshrc");
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
+
const sourceBlock = [
|
|
118
|
+
"# vvoc zsh completion",
|
|
119
|
+
"if ! (( $+functions[compdef] )); then",
|
|
120
|
+
" autoload -Uz compinit",
|
|
121
|
+
" compinit",
|
|
122
|
+
"fi",
|
|
123
|
+
`[ -f "${completionFile}" ] && source "${completionFile}"`,
|
|
124
|
+
].join("\n");
|
|
125
|
+
await appendIfMissing(rcFile, sourceBlock);
|
|
117
126
|
console.log(`Zsh completions installed to ${completionFile}`);
|
|
118
|
-
console.log(`Added
|
|
127
|
+
console.log(`Added completion loader block to ~/.zshrc`);
|
|
119
128
|
}
|
|
120
129
|
async function installFishCompletion() {
|
|
121
130
|
const completionsDir = resolve(homedir(), ".config", "fish", "completions");
|
|
@@ -126,51 +135,75 @@ async function installFishCompletion() {
|
|
|
126
135
|
console.log(`Fish completions installed to ${completionFile}`);
|
|
127
136
|
}
|
|
128
137
|
export function generateBashCompletion() {
|
|
129
|
-
const
|
|
138
|
+
const topLevelCommands = VVOC_TOP_LEVEL_COMMANDS.join(" ");
|
|
139
|
+
const configCommands = VVOC_CONFIG_COMMANDS.join(" ");
|
|
140
|
+
const pluginCommands = VVOC_PLUGIN_COMMANDS.join(" ");
|
|
130
141
|
return ("# bash completion for vvoc\n" +
|
|
131
142
|
"_vvoc() {\n" +
|
|
132
143
|
" local cur prev words cword\n" +
|
|
133
144
|
" _init_completion || return\n" +
|
|
134
145
|
"\n" +
|
|
135
|
-
' case "$
|
|
136
|
-
"
|
|
146
|
+
' case "$cword" in\n' +
|
|
147
|
+
" 1)\n" +
|
|
137
148
|
" _vvoc_commands\n" +
|
|
138
149
|
" ;;\n" +
|
|
139
|
-
"
|
|
150
|
+
" 2)\n" +
|
|
151
|
+
' case "${words[1]}" in\n' +
|
|
152
|
+
" config)\n" +
|
|
153
|
+
" _vvoc_config_commands\n" +
|
|
154
|
+
" ;;\n" +
|
|
155
|
+
" plugin)\n" +
|
|
156
|
+
" _vvoc_plugin_commands\n" +
|
|
157
|
+
" ;;\n" +
|
|
158
|
+
" esac\n" +
|
|
140
159
|
" ;;\n" +
|
|
141
160
|
" esac\n" +
|
|
142
161
|
"}\n" +
|
|
143
162
|
"\n" +
|
|
144
163
|
"_vvoc_commands() {\n" +
|
|
145
164
|
' local commands="' +
|
|
146
|
-
|
|
165
|
+
topLevelCommands +
|
|
147
166
|
'"\n' +
|
|
148
|
-
'
|
|
149
|
-
|
|
167
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
168
|
+
"}\n" +
|
|
169
|
+
"\n" +
|
|
170
|
+
"_vvoc_config_commands() {\n" +
|
|
171
|
+
' local commands="' +
|
|
172
|
+
configCommands +
|
|
173
|
+
'"\n' +
|
|
174
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
175
|
+
"}\n" +
|
|
176
|
+
"\n" +
|
|
177
|
+
"_vvoc_plugin_commands() {\n" +
|
|
178
|
+
' local commands="' +
|
|
179
|
+
pluginCommands +
|
|
180
|
+
'"\n' +
|
|
181
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
150
182
|
"}\n" +
|
|
151
183
|
"\n" +
|
|
152
184
|
"complete -F _vvoc vvoc\n");
|
|
153
185
|
}
|
|
154
186
|
export function generateZshCompletion() {
|
|
155
187
|
const lines = [
|
|
188
|
+
"#compdef vvoc",
|
|
156
189
|
"# zsh completion for vvoc",
|
|
157
190
|
"",
|
|
158
191
|
"_vvoc() {",
|
|
159
192
|
" local -a commands",
|
|
160
193
|
" commands=(",
|
|
161
194
|
];
|
|
162
|
-
for (const cmd of
|
|
195
|
+
for (const cmd of VVOC_TOP_LEVEL_COMMANDS) {
|
|
163
196
|
lines.push(' "' + cmd + '"');
|
|
164
197
|
}
|
|
165
|
-
lines.push(" )", "", " _arguments -C \\", ' "1: :(' +
|
|
198
|
+
lines.push(" )", "", " _arguments -C \\", ' "1: :(' + VVOC_TOP_LEVEL_COMMANDS.join(" ") + ')" \\', ' "*::arg:->args"', "", " case $line[1] in", " config)", " _vvoc_config_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_plugin_cmds() {", " local -a plugin_commands", " plugin_commands=(" + VVOC_PLUGIN_COMMANDS.join(" ") + ")", ' _arguments "1: :(' + VVOC_PLUGIN_COMMANDS.join(" ") + ')"', "}", "", "compdef _vvoc vvoc");
|
|
166
199
|
return lines.join("\n") + "\n";
|
|
167
200
|
}
|
|
168
201
|
export function generateFishCompletion() {
|
|
169
202
|
const lines = ["# fish completion for vvoc", "", "function __vvoc_commands"];
|
|
170
|
-
for (const cmd of
|
|
203
|
+
for (const cmd of VVOC_TOP_LEVEL_COMMANDS) {
|
|
171
204
|
lines.push(" echo " + cmd);
|
|
172
205
|
}
|
|
173
|
-
lines.push("end", "", "function __vvoc_config_cmds", " echo
|
|
206
|
+
lines.push("end", "", "function __vvoc_config_cmds", " echo " + VVOC_CONFIG_COMMANDS.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 config" -f -a "(__vvoc_config_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from plugin" -f -a "(__vvoc_plugin_cmds)"');
|
|
174
207
|
return lines.join("\n") + "\n";
|
|
175
208
|
}
|
|
176
209
|
//# sourceMappingURL=completion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,iBAAiB;AACjB,wBAAwB;AACxB,0EAA0E;AAC1E,2EAA2E;AAC3E,2DAA2D;AAC3D,8CAA8C;AAC9C,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,8DAA8D;AAC9D,kEAAkE;AAClE,sDAAsD;AACtD,oDAAoD;AACpD,sDAAsD;AACtD,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|