@osovv/vv-opencode 0.5.4 → 0.6.0
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 +64 -22
- package/dist/commands/agent.js +124 -79
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/completion.js +87 -18
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/init.js +13 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.js +11 -4
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/sync.js +10 -4
- package/dist/commands/sync.js.map +1 -1
- package/dist/lib/managed-agents.d.ts +13 -0
- package/dist/lib/managed-agents.js +83 -0
- package/dist/lib/managed-agents.js.map +1 -0
- package/dist/lib/opencode.d.ts +19 -0
- package/dist/lib/opencode.js +227 -6
- package/dist/lib/opencode.js.map +1 -1
- package/dist/lib/vvoc-paths.d.ts +1 -0
- package/dist/lib/vvoc-paths.js +7 -3
- package/dist/lib/vvoc-paths.js.map +1 -1
- package/dist/plugins/guardian/policy.md +50 -0
- package/dist/plugins/memory/reviewer.md +25 -0
- package/dist/plugins/memory/system-instruction.md +8 -0
- package/package.json +4 -3
- package/templates/agents/code-reviewer.md +8 -0
- package/templates/agents/implementer.md +11 -0
- package/templates/agents/investitagor.md +11 -0
- package/templates/agents/spec-reviewer.md +8 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// FILE: src/commands/completion.ts
|
|
2
|
-
// VERSION: 0.5.
|
|
2
|
+
// VERSION: 0.5.2
|
|
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.2 - Added nested completion support for vvoc-managed agent subcommands.]
|
|
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,20 @@ 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"];
|
|
43
|
+
const VVOC_AGENT_COMMANDS = [
|
|
44
|
+
"guardian",
|
|
45
|
+
"memory-reviewer",
|
|
46
|
+
"implementer",
|
|
47
|
+
"spec-reviewer",
|
|
48
|
+
"code-reviewer",
|
|
49
|
+
"investitagor",
|
|
50
|
+
"list",
|
|
51
|
+
];
|
|
52
|
+
const VVOC_AGENT_ACTION_COMMANDS = ["set", "unset"];
|
|
41
53
|
export default defineCommand({
|
|
42
54
|
meta: {
|
|
43
55
|
name: "completion",
|
|
@@ -112,10 +124,17 @@ async function installZshCompletion() {
|
|
|
112
124
|
const script = generateZshCompletion();
|
|
113
125
|
await writeFile(completionFile, script, "utf8");
|
|
114
126
|
const rcFile = resolve(homedir(), ".zshrc");
|
|
115
|
-
const
|
|
116
|
-
|
|
127
|
+
const sourceBlock = [
|
|
128
|
+
"# vvoc zsh completion",
|
|
129
|
+
"if ! (( $+functions[compdef] )); then",
|
|
130
|
+
" autoload -Uz compinit",
|
|
131
|
+
" compinit",
|
|
132
|
+
"fi",
|
|
133
|
+
`[ -f "${completionFile}" ] && source "${completionFile}"`,
|
|
134
|
+
].join("\n");
|
|
135
|
+
await appendIfMissing(rcFile, sourceBlock);
|
|
117
136
|
console.log(`Zsh completions installed to ${completionFile}`);
|
|
118
|
-
console.log(`Added
|
|
137
|
+
console.log(`Added completion loader block to ~/.zshrc`);
|
|
119
138
|
}
|
|
120
139
|
async function installFishCompletion() {
|
|
121
140
|
const completionsDir = resolve(homedir(), ".config", "fish", "completions");
|
|
@@ -126,51 +145,101 @@ async function installFishCompletion() {
|
|
|
126
145
|
console.log(`Fish completions installed to ${completionFile}`);
|
|
127
146
|
}
|
|
128
147
|
export function generateBashCompletion() {
|
|
129
|
-
const
|
|
148
|
+
const topLevelCommands = VVOC_TOP_LEVEL_COMMANDS.join(" ");
|
|
149
|
+
const configCommands = VVOC_CONFIG_COMMANDS.join(" ");
|
|
150
|
+
const pluginCommands = VVOC_PLUGIN_COMMANDS.join(" ");
|
|
151
|
+
const agentCommands = VVOC_AGENT_COMMANDS.join(" ");
|
|
152
|
+
const agentActionCommands = VVOC_AGENT_ACTION_COMMANDS.join(" ");
|
|
130
153
|
return ("# bash completion for vvoc\n" +
|
|
131
154
|
"_vvoc() {\n" +
|
|
132
155
|
" local cur prev words cword\n" +
|
|
133
156
|
" _init_completion || return\n" +
|
|
134
157
|
"\n" +
|
|
135
|
-
' case "$
|
|
136
|
-
"
|
|
158
|
+
' case "$cword" in\n' +
|
|
159
|
+
" 1)\n" +
|
|
137
160
|
" _vvoc_commands\n" +
|
|
138
161
|
" ;;\n" +
|
|
139
|
-
"
|
|
162
|
+
" 2)\n" +
|
|
163
|
+
' case "${words[1]}" in\n' +
|
|
164
|
+
" agent)\n" +
|
|
165
|
+
" _vvoc_agent_commands\n" +
|
|
166
|
+
" ;;\n" +
|
|
167
|
+
" config)\n" +
|
|
168
|
+
" _vvoc_config_commands\n" +
|
|
169
|
+
" ;;\n" +
|
|
170
|
+
" plugin)\n" +
|
|
171
|
+
" _vvoc_plugin_commands\n" +
|
|
172
|
+
" ;;\n" +
|
|
173
|
+
" esac\n" +
|
|
174
|
+
" ;;\n" +
|
|
175
|
+
" 3)\n" +
|
|
176
|
+
' case "${words[1]}:${words[2]}" in\n' +
|
|
177
|
+
" agent:guardian|agent:memory-reviewer|agent:implementer|agent:spec-reviewer|agent:code-reviewer|agent:investitagor)\n" +
|
|
178
|
+
" _vvoc_agent_action_commands\n" +
|
|
179
|
+
" ;;\n" +
|
|
180
|
+
" esac\n" +
|
|
140
181
|
" ;;\n" +
|
|
141
182
|
" esac\n" +
|
|
142
183
|
"}\n" +
|
|
143
184
|
"\n" +
|
|
144
185
|
"_vvoc_commands() {\n" +
|
|
145
186
|
' local commands="' +
|
|
146
|
-
|
|
187
|
+
topLevelCommands +
|
|
188
|
+
'"\n' +
|
|
189
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
190
|
+
"}\n" +
|
|
191
|
+
"\n" +
|
|
192
|
+
"_vvoc_config_commands() {\n" +
|
|
193
|
+
' local commands="' +
|
|
194
|
+
configCommands +
|
|
195
|
+
'"\n' +
|
|
196
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
197
|
+
"}\n" +
|
|
198
|
+
"\n" +
|
|
199
|
+
"_vvoc_agent_commands() {\n" +
|
|
200
|
+
' local commands="' +
|
|
201
|
+
agentCommands +
|
|
202
|
+
'"\n' +
|
|
203
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
204
|
+
"}\n" +
|
|
205
|
+
"\n" +
|
|
206
|
+
"_vvoc_agent_action_commands() {\n" +
|
|
207
|
+
' local commands="' +
|
|
208
|
+
agentActionCommands +
|
|
209
|
+
'"\n' +
|
|
210
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
211
|
+
"}\n" +
|
|
212
|
+
"\n" +
|
|
213
|
+
"_vvoc_plugin_commands() {\n" +
|
|
214
|
+
' local commands="' +
|
|
215
|
+
pluginCommands +
|
|
147
216
|
'"\n' +
|
|
148
|
-
'
|
|
149
|
-
' COMPREPLY=("${_completions[@]}")\n' +
|
|
217
|
+
' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
|
|
150
218
|
"}\n" +
|
|
151
219
|
"\n" +
|
|
152
220
|
"complete -F _vvoc vvoc\n");
|
|
153
221
|
}
|
|
154
222
|
export function generateZshCompletion() {
|
|
155
223
|
const lines = [
|
|
224
|
+
"#compdef vvoc",
|
|
156
225
|
"# zsh completion for vvoc",
|
|
157
226
|
"",
|
|
158
227
|
"_vvoc() {",
|
|
159
228
|
" local -a commands",
|
|
160
229
|
" commands=(",
|
|
161
230
|
];
|
|
162
|
-
for (const cmd of
|
|
231
|
+
for (const cmd of VVOC_TOP_LEVEL_COMMANDS) {
|
|
163
232
|
lines.push(' "' + cmd + '"');
|
|
164
233
|
}
|
|
165
|
-
lines.push(" )", "", " _arguments -C \\", ' "1: :(' +
|
|
234
|
+
lines.push(" )", "", " _arguments -C \\", ' "1: :(' + VVOC_TOP_LEVEL_COMMANDS.join(" ") + ')" \\', ' "*::arg:->args"', "", " case $line[1] in", " agent)", " _vvoc_agent_cmds", " ;;", " 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_agent_cmds() {", " case $words[2] in", " guardian|memory-reviewer|implementer|spec-reviewer|code-reviewer|investitagor)", ' _arguments "1: :(' + VVOC_AGENT_ACTION_COMMANDS.join(" ") + ')"', " ;;", " *)", ' _arguments "1: :(' + VVOC_AGENT_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");
|
|
166
235
|
return lines.join("\n") + "\n";
|
|
167
236
|
}
|
|
168
237
|
export function generateFishCompletion() {
|
|
169
238
|
const lines = ["# fish completion for vvoc", "", "function __vvoc_commands"];
|
|
170
|
-
for (const cmd of
|
|
239
|
+
for (const cmd of VVOC_TOP_LEVEL_COMMANDS) {
|
|
171
240
|
lines.push(" echo " + cmd);
|
|
172
241
|
}
|
|
173
|
-
lines.push("end", "", "function __vvoc_config_cmds", " echo
|
|
242
|
+
lines.push("end", "", "function __vvoc_config_cmds", " echo " + VVOC_CONFIG_COMMANDS.join(" "), "end", "", "function __vvoc_agent_cmds", " echo " + VVOC_AGENT_COMMANDS.join(" "), "end", "", "function __vvoc_agent_action_cmds", " echo " + VVOC_AGENT_ACTION_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 agent" -f -a "(__vvoc_agent_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from agent; and __fish_seen_subcommand_from guardian memory-reviewer implementer spec-reviewer code-reviewer investitagor" -f -a "(__vvoc_agent_action_cmds)"', '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
243
|
return lines.join("\n") + "\n";
|
|
175
244
|
}
|
|
176
245
|
//# 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":"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,gGAAgG;AAChG,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,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,uBAAuB,GAAG;IAC9B,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1C,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,mBAAmB,GAAG;IAC1B,UAAU;IACV,iBAAiB;IACjB,aAAa;IACb,eAAe;IACf,eAAe;IACf,cAAc;IACd,MAAM;CACP,CAAC;AACF,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEpD,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,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjE,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,kBAAkB;QAClB,kCAAkC;QAClC,gBAAgB;QAChB,mBAAmB;QACnB,mCAAmC;QACnC,gBAAgB;QAChB,mBAAmB;QACnB,mCAAmC;QACnC,gBAAgB;QAChB,cAAc;QACd,YAAY;QACZ,UAAU;QACV,2CAA2C;QAC3C,8HAA8H;QAC9H,yCAAyC;QACzC,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,4BAA4B;QAC5B,oBAAoB;QACpB,aAAa;QACb,KAAK;QACL,qDAAqD;QACrD,KAAK;QACL,IAAI;QACJ,mCAAmC;QACnC,oBAAoB;QACpB,mBAAmB;QACnB,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,oBAAoB,EACpB,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,EAC1D,qBAAqB,EACrB,EAAE,EACF,oBAAoB,EACpB,YAAY,EACZ,wBAAwB,EACxB,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,sBAAsB,EACtB,qBAAqB,EACrB,oFAAoF,EACpF,yBAAyB,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EACvE,UAAU,EACV,QAAQ,EACR,yBAAyB,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAChE,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,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,4BAA4B,EAC5B,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EACzC,KAAK,EACL,EAAE,EACF,mCAAmC,EACnC,SAAS,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,EAChD,KAAK,EACL,EAAE,EACF,6BAA6B,EAC7B,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAC1C,KAAK,EACL,EAAE,EACF,4CAA4C,EAC5C,qFAAqF,EACrF,2MAA2M,EAC3M,uFAAuF,EACvF,uFAAuF,CACxF,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// FILE: src/commands/init.ts
|
|
2
|
-
// VERSION: 0.4.
|
|
2
|
+
// VERSION: 0.4.1
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Interactive project initialization: registers @osovv/vv-opencode in OpenCode plugin array and scaffolds initial vvoc config files. Uses @clack/prompts for TTY prompts. Interactive mode is the default; --non-interactive flag enables batch mode.
|
|
5
|
-
// SCOPE: Scope selection, plugin registration, config file scaffolding, and idempotent re-run handling.
|
|
5
|
+
// SCOPE: Scope selection, plugin registration, managed subagent registration, config file 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,11 +15,11 @@
|
|
|
15
15
|
// END_MODULE_MAP
|
|
16
16
|
//
|
|
17
17
|
// START_CHANGE_SUMMARY
|
|
18
|
-
// LAST_CHANGE: [v0.4.
|
|
18
|
+
// LAST_CHANGE: [v0.4.1 - Added managed subagent registration and prompt scaffolding to init.]
|
|
19
19
|
// END_CHANGE_SUMMARY
|
|
20
20
|
import { defineCommand } from "citty";
|
|
21
21
|
import * as p from "@clack/prompts";
|
|
22
|
-
import { ensurePackageInstalled, installGuardianConfig, installMemoryConfig, inspectInstallation, resolvePaths, } from "../lib/opencode.js";
|
|
22
|
+
import { ensurePackageInstalled, installGuardianConfig, installManagedSubagentPrompts, installMemoryConfig, inspectInstallation, resolvePaths, syncManagedSubagentRegistrations, } from "../lib/opencode.js";
|
|
23
23
|
export default defineCommand({
|
|
24
24
|
meta: {
|
|
25
25
|
name: "init",
|
|
@@ -107,6 +107,13 @@ async function runInit(options) {
|
|
|
107
107
|
p.log.step("Registering plugin in OpenCode config...");
|
|
108
108
|
const pkgResult = await ensurePackageInstalled(finalPaths);
|
|
109
109
|
p.log.info(pkgResult.path + " - " + (pkgResult.changed ? "updated" : "already up to date"));
|
|
110
|
+
p.log.step("Registering managed subagents...");
|
|
111
|
+
const agentRegistration = await syncManagedSubagentRegistrations(finalPaths);
|
|
112
|
+
p.log.info(agentRegistration.path + " - " + (agentRegistration.changed ? "updated" : "already up to date"));
|
|
113
|
+
p.log.step("Scaffolding managed subagent prompts...");
|
|
114
|
+
for (const result of await installManagedSubagentPrompts(finalPaths, { force: true })) {
|
|
115
|
+
p.log.info(result.path + " - " + result.action);
|
|
116
|
+
}
|
|
110
117
|
p.log.step("Scaffolding Guardian config...");
|
|
111
118
|
const guardianResult = await installGuardianConfig(finalPaths, { force: true });
|
|
112
119
|
p.log.info(guardianResult.path + " - " + guardianResult.action);
|
|
@@ -128,6 +135,8 @@ export async function runInitNonInteractive(options) {
|
|
|
128
135
|
return;
|
|
129
136
|
}
|
|
130
137
|
await ensurePackageInstalled(paths);
|
|
138
|
+
await syncManagedSubagentRegistrations(paths);
|
|
139
|
+
await installManagedSubagentPrompts(paths, { force: true });
|
|
131
140
|
await installGuardianConfig(paths, { force: true });
|
|
132
141
|
await installMemoryConfig(paths, { force: true });
|
|
133
142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,iBAAiB;AACjB,wBAAwB;AACxB,iQAAiQ;AACjQ,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/install.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// FILE: src/commands/install.ts
|
|
2
|
-
// VERSION: 0.2.
|
|
2
|
+
// VERSION: 0.2.6
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Install vv-opencode into OpenCode config and bootstrap vvoc-managed config files.
|
|
5
|
-
// SCOPE: Scope parsing, path resolution, pinned plugin registration, and initial Guardian/Memory config creation.
|
|
5
|
+
// SCOPE: Scope parsing, path resolution, pinned plugin registration, managed subagent prompt scaffolding, and initial Guardian/Memory config creation.
|
|
6
6
|
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
7
|
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG]
|
|
8
8
|
// ROLE: RUNTIME
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
// END_MODULE_MAP
|
|
15
15
|
//
|
|
16
16
|
// START_CHANGE_SUMMARY
|
|
17
|
-
// LAST_CHANGE: [v0.2.
|
|
17
|
+
// LAST_CHANGE: [v0.2.6 - Added managed subagent registration and prompt scaffolding to install.]
|
|
18
18
|
// END_CHANGE_SUMMARY
|
|
19
19
|
import { defineCommand } from "citty";
|
|
20
|
-
import { describeWriteResult, ensurePackageInstalled, installGuardianConfig, installMemoryConfig, installSecretsRedactionConfig, resolvePaths, } from "../lib/opencode.js";
|
|
20
|
+
import { describeWriteResult, ensurePackageInstalled, installGuardianConfig, installManagedSubagentPrompts, installMemoryConfig, installSecretsRedactionConfig, resolvePaths, syncManagedSubagentRegistrations, } from "../lib/opencode.js";
|
|
21
21
|
export default defineCommand({
|
|
22
22
|
meta: {
|
|
23
23
|
name: "install",
|
|
@@ -64,7 +64,14 @@ export default defineCommand({
|
|
|
64
64
|
configDir,
|
|
65
65
|
});
|
|
66
66
|
const opencode = await ensurePackageInstalled(paths);
|
|
67
|
+
const managedSubagents = await syncManagedSubagentRegistrations(paths);
|
|
67
68
|
console.log(`${opencode.changed ? "Updated" : "Kept"} ${opencode.path}`);
|
|
69
|
+
console.log(`${managedSubagents.changed ? "Updated" : "Kept"} ${managedSubagents.path} (managed subagents)`);
|
|
70
|
+
for (const result of await installManagedSubagentPrompts(paths, {
|
|
71
|
+
force: Boolean(args.force),
|
|
72
|
+
})) {
|
|
73
|
+
console.log(describeWriteResult(result));
|
|
74
|
+
}
|
|
68
75
|
if (args["guardian-config"] === false) {
|
|
69
76
|
console.log(`Skipped ${paths.guardianConfigPath} (guardian config disabled)`);
|
|
70
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,iBAAiB;AACjB,wBAAwB;AACxB,+FAA+F;AAC/F,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// FILE: src/commands/sync.ts
|
|
2
|
-
// VERSION: 0.2.
|
|
2
|
+
// VERSION: 0.2.6
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Sync managed vvoc config files and keep the OpenCode plugin specifier current.
|
|
5
|
-
// SCOPE: Scope parsing, path resolution, pinned plugin sync, and managed Guardian/Memory config rewrites.
|
|
5
|
+
// SCOPE: Scope parsing, path resolution, pinned plugin sync, managed subagent prompt sync, and managed Guardian/Memory config rewrites.
|
|
6
6
|
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
7
|
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG]
|
|
8
8
|
// ROLE: RUNTIME
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
// END_MODULE_MAP
|
|
15
15
|
//
|
|
16
16
|
// START_CHANGE_SUMMARY
|
|
17
|
-
// LAST_CHANGE: [v0.2.
|
|
17
|
+
// LAST_CHANGE: [v0.2.6 - Added managed subagent registration and prompt syncing to vvoc sync.]
|
|
18
18
|
// END_CHANGE_SUMMARY
|
|
19
19
|
import { defineCommand } from "citty";
|
|
20
|
-
import { describeWriteResult, ensurePackageInstalled, resolvePaths, syncGuardianConfig, syncMemoryConfig, } from "../lib/opencode.js";
|
|
20
|
+
import { describeWriteResult, ensurePackageInstalled, resolvePaths, syncManagedSubagentPrompts, syncManagedSubagentRegistrations, syncGuardianConfig, syncMemoryConfig, } from "../lib/opencode.js";
|
|
21
21
|
export default defineCommand({
|
|
22
22
|
meta: {
|
|
23
23
|
name: "sync",
|
|
@@ -49,9 +49,15 @@ export default defineCommand({
|
|
|
49
49
|
configDir,
|
|
50
50
|
});
|
|
51
51
|
const opencode = await ensurePackageInstalled(paths);
|
|
52
|
+
const managedSubagents = await syncManagedSubagentRegistrations(paths);
|
|
53
|
+
const managedPrompts = await syncManagedSubagentPrompts(paths, { force: Boolean(args.force) });
|
|
52
54
|
const guardian = await syncGuardianConfig(paths, { force: Boolean(args.force) });
|
|
53
55
|
const memory = await syncMemoryConfig(paths, { force: Boolean(args.force) });
|
|
54
56
|
console.log(`${opencode.changed ? "Updated" : "Kept"} ${opencode.path}`);
|
|
57
|
+
console.log(`${managedSubagents.changed ? "Updated" : "Kept"} ${managedSubagents.path} (managed subagents)`);
|
|
58
|
+
for (const result of managedPrompts) {
|
|
59
|
+
console.log(describeWriteResult(result));
|
|
60
|
+
}
|
|
55
61
|
console.log(describeWriteResult(guardian));
|
|
56
62
|
console.log(describeWriteResult(memory));
|
|
57
63
|
// END_BLOCK_APPLY_SYNC_COMMAND
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,iBAAiB;AACjB,wBAAwB;AACxB,4FAA4F;AAC5F,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const MANAGED_SUBAGENT_NAMES: readonly ["implementer", "spec-reviewer", "code-reviewer", "investitagor"];
|
|
2
|
+
export type ManagedSubagentName = (typeof MANAGED_SUBAGENT_NAMES)[number];
|
|
3
|
+
export type ManagedSubagentDefinition = {
|
|
4
|
+
name: ManagedSubagentName;
|
|
5
|
+
description: string;
|
|
6
|
+
promptFileName: `${ManagedSubagentName}.md`;
|
|
7
|
+
steps?: number;
|
|
8
|
+
permission?: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
export declare const MANAGED_SUBAGENTS: readonly ManagedSubagentDefinition[];
|
|
11
|
+
export declare function isManagedSubagentName(value: string): value is ManagedSubagentName;
|
|
12
|
+
export declare function getManagedSubagentDefinition(name: ManagedSubagentName): ManagedSubagentDefinition;
|
|
13
|
+
export declare function loadManagedSubagentTemplate(name: ManagedSubagentName): Promise<string>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// FILE: src/lib/managed-agents.ts
|
|
2
|
+
// VERSION: 0.1.0
|
|
3
|
+
// START_MODULE_CONTRACT
|
|
4
|
+
// PURPOSE: Describe vvoc-managed OpenCode subagents and load their bundled prompt templates.
|
|
5
|
+
// SCOPE: Built-in subagent metadata, name validation, definition lookup, and template file loading from package assets.
|
|
6
|
+
// DEPENDS: [node:fs/promises]
|
|
7
|
+
// LINKS: [M-CLI-CONFIG]
|
|
8
|
+
// ROLE: RUNTIME
|
|
9
|
+
// MAP_MODE: EXPORTS
|
|
10
|
+
// END_MODULE_CONTRACT
|
|
11
|
+
//
|
|
12
|
+
// START_MODULE_MAP
|
|
13
|
+
// ManagedSubagentName - Canonical vvoc-managed subagent names.
|
|
14
|
+
// ManagedSubagentDefinition - Metadata used to register a managed subagent in OpenCode config.
|
|
15
|
+
// MANAGED_SUBAGENT_NAMES - Ordered managed subagent names.
|
|
16
|
+
// MANAGED_SUBAGENTS - Built-in managed subagent definitions.
|
|
17
|
+
// isManagedSubagentName - Checks whether a string is one of the managed subagent names.
|
|
18
|
+
// getManagedSubagentDefinition - Returns metadata for a managed subagent.
|
|
19
|
+
// loadManagedSubagentTemplate - Loads the bundled prompt template for a managed subagent.
|
|
20
|
+
// END_MODULE_MAP
|
|
21
|
+
//
|
|
22
|
+
// START_CHANGE_SUMMARY
|
|
23
|
+
// LAST_CHANGE: [v0.1.0 - Added bundled metadata and asset-backed prompt loading for vvoc-managed subagents.]
|
|
24
|
+
// END_CHANGE_SUMMARY
|
|
25
|
+
import { readFile } from "node:fs/promises";
|
|
26
|
+
export const MANAGED_SUBAGENT_NAMES = [
|
|
27
|
+
"implementer",
|
|
28
|
+
"spec-reviewer",
|
|
29
|
+
"code-reviewer",
|
|
30
|
+
"investitagor",
|
|
31
|
+
];
|
|
32
|
+
export const MANAGED_SUBAGENTS = [
|
|
33
|
+
{
|
|
34
|
+
name: "implementer",
|
|
35
|
+
description: "Implements approved changes with focused verification and a minimal diff.",
|
|
36
|
+
promptFileName: "implementer.md",
|
|
37
|
+
steps: 8,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "spec-reviewer",
|
|
41
|
+
description: "Checks an implementation against the requested spec and flags missing or extra behavior.",
|
|
42
|
+
promptFileName: "spec-reviewer.md",
|
|
43
|
+
steps: 6,
|
|
44
|
+
permission: {
|
|
45
|
+
edit: "deny",
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "code-reviewer",
|
|
50
|
+
description: "Reviews changes for bugs, regressions, maintainability risks, and missing tests.",
|
|
51
|
+
promptFileName: "code-reviewer.md",
|
|
52
|
+
steps: 6,
|
|
53
|
+
permission: {
|
|
54
|
+
edit: "deny",
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "investitagor",
|
|
59
|
+
description: "Investigates bugs and unclear behavior before implementation work begins.",
|
|
60
|
+
promptFileName: "investitagor.md",
|
|
61
|
+
steps: 6,
|
|
62
|
+
permission: {
|
|
63
|
+
edit: "deny",
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
const MANAGED_SUBAGENT_MAP = new Map(MANAGED_SUBAGENTS.map((definition) => [definition.name, definition]));
|
|
68
|
+
export function isManagedSubagentName(value) {
|
|
69
|
+
return MANAGED_SUBAGENT_MAP.has(value);
|
|
70
|
+
}
|
|
71
|
+
export function getManagedSubagentDefinition(name) {
|
|
72
|
+
const definition = MANAGED_SUBAGENT_MAP.get(name);
|
|
73
|
+
if (!definition) {
|
|
74
|
+
throw new Error(`unknown managed subagent: ${name}`);
|
|
75
|
+
}
|
|
76
|
+
return definition;
|
|
77
|
+
}
|
|
78
|
+
export async function loadManagedSubagentTemplate(name) {
|
|
79
|
+
const definition = getManagedSubagentDefinition(name);
|
|
80
|
+
const assetUrl = new URL(`../../templates/agents/${definition.promptFileName}`, import.meta.url);
|
|
81
|
+
return readFile(assetUrl, "utf8");
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=managed-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-agents.js","sourceRoot":"","sources":["../../src/lib/managed-agents.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,iBAAiB;AACjB,wBAAwB;AACxB,+FAA+F;AAC/F,0HAA0H;AAC1H,gCAAgC;AAChC,0BAA0B;AAC1B,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,iEAAiE;AACjE,iGAAiG;AACjG,6DAA6D;AAC7D,+DAA+D;AAC/D,0FAA0F;AAC1F,4EAA4E;AAC5E,4FAA4F;AAC5F,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,+GAA+G;AAC/G,qBAAqB;AAErB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,aAAa;IACb,eAAe;IACf,eAAe;IACf,cAAc;CACN,CAAC;AAYX,MAAM,CAAC,MAAM,iBAAiB,GAAyC;IACrE;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,2EAA2E;QACxF,cAAc,EAAE,gBAAgB;QAChC,KAAK,EAAE,CAAC;KACT;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,0FAA0F;QAC5F,cAAc,EAAE,kBAAkB;QAClC,KAAK,EAAE,CAAC;QACR,UAAU,EAAE;YACV,IAAI,EAAE,MAAM;SACb;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,kFAAkF;QAC/F,cAAc,EAAE,kBAAkB;QAClC,KAAK,EAAE,CAAC;QACR,UAAU,EAAE;YACV,IAAI,EAAE,MAAM;SACb;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,2EAA2E;QACxF,cAAc,EAAE,iBAAiB;QACjC,KAAK,EAAE,CAAC;QACR,UAAU,EAAE;YACV,IAAI,EAAE,MAAM;SACb;KACF;CACF,CAAC;AAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CACrE,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,oBAAoB,CAAC,GAAG,CAAC,KAA4B,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAyB;IACpE,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAyB;IACzE,MAAM,UAAU,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,0BAA0B,UAAU,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjG,OAAO,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC"}
|
package/dist/lib/opencode.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ManagedSubagentName } from "./managed-agents.js";
|
|
1
2
|
import { type MemoryConfigOverrides } from "../plugins/memory-store.js";
|
|
2
3
|
import { PACKAGE_NAME } from "./package.js";
|
|
3
4
|
export declare const CLI_NAME = "vvoc";
|
|
@@ -10,6 +11,7 @@ export type ResolvedPaths = {
|
|
|
10
11
|
configHome: string;
|
|
11
12
|
opencodeBaseDir: string;
|
|
12
13
|
vvocBaseDir: string;
|
|
14
|
+
managedAgentsDirPath: string;
|
|
13
15
|
opencodeConfigPath: string;
|
|
14
16
|
opencodeAlternatePaths: string[];
|
|
15
17
|
guardianConfigPath: string;
|
|
@@ -31,6 +33,7 @@ export type WriteResult = {
|
|
|
31
33
|
path: string;
|
|
32
34
|
reason?: string;
|
|
33
35
|
};
|
|
36
|
+
export type ManagedSubagentModelMap = Record<ManagedSubagentName, string | undefined>;
|
|
34
37
|
export type InstallationInspection = {
|
|
35
38
|
scope: Scope;
|
|
36
39
|
opencode: {
|
|
@@ -73,6 +76,22 @@ export declare function resolvePaths(options: {
|
|
|
73
76
|
configDir?: string;
|
|
74
77
|
}): Promise<ResolvedPaths>;
|
|
75
78
|
export declare function ensurePackageConfigText(text: string | undefined, packageSpecifier?: string): string;
|
|
79
|
+
export declare function ensureManagedSubagentsConfigText(text: string | undefined, paths: Pick<ResolvedPaths, "managedAgentsDirPath" | "opencodeConfigPath">): string;
|
|
80
|
+
export declare function syncManagedSubagentRegistrations(paths: ResolvedPaths): Promise<{
|
|
81
|
+
path: string;
|
|
82
|
+
changed: boolean;
|
|
83
|
+
}>;
|
|
84
|
+
export declare function installManagedSubagentPrompts(paths: ResolvedPaths, options: {
|
|
85
|
+
force: boolean;
|
|
86
|
+
}): Promise<WriteResult[]>;
|
|
87
|
+
export declare function syncManagedSubagentPrompts(paths: ResolvedPaths, options: {
|
|
88
|
+
force: boolean;
|
|
89
|
+
}): Promise<WriteResult[]>;
|
|
90
|
+
export declare function readManagedSubagentModels(paths: Pick<ResolvedPaths, "opencodeConfigPath">): Promise<ManagedSubagentModelMap>;
|
|
91
|
+
export declare function writeManagedSubagentModel(paths: Pick<ResolvedPaths, "managedAgentsDirPath" | "opencodeConfigPath">, agentName: ManagedSubagentName, options: {
|
|
92
|
+
model?: string;
|
|
93
|
+
ensureEntry: boolean;
|
|
94
|
+
}): Promise<WriteResult>;
|
|
76
95
|
export declare function parseGuardianConfigText(text: string, label: string): GuardianConfigOverrides;
|
|
77
96
|
export declare function renderGuardianConfig(overrides?: GuardianConfigOverrides): string;
|
|
78
97
|
export declare function ensurePackageInstalled(paths: ResolvedPaths): Promise<{
|