@osovv/vv-opencode 0.8.1 → 0.10.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.
@@ -1,8 +1,8 @@
1
1
  // FILE: src/commands/agent.ts
2
- // VERSION: 0.4.2
2
+ // VERSION: 0.4.3
3
3
  // START_MODULE_CONTRACT
4
4
  // PURPOSE: Manage model overrides for vvoc-owned and selected built-in OpenCode agents.
5
- // SCOPE: Guardian and memory-reviewer config writes plus built-in and managed OpenCode subagent model setting, unsetting, and listing via the vvoc agent command tree.
5
+ // SCOPE: Guardian and memory-reviewer config writes plus built-in and managed OpenCode subagent model set/unset/list operations via the vvoc agent command tree.
6
6
  // DEPENDS: [citty, src/lib/managed-agents.ts, src/lib/opencode.ts, src/plugins/memory-store.ts]
7
7
  // LINKS: [M-CLI-COMMANDS]
8
8
  // ROLE: RUNTIME
@@ -14,12 +14,19 @@
14
14
  // END_MODULE_MAP
15
15
  //
16
16
  // START_CHANGE_SUMMARY
17
- // LAST_CHANGE: [v0.4.2 - Added built-in OpenCode general subagent model management alongside explore and vvoc-managed agents.]
17
+ // LAST_CHANGE: [v0.4.3 - Reworked agent CLI shape to `vvoc agent set|unset <agent-id>` while keeping support for guardian, memory-reviewer, built-in, and managed subagents.]
18
18
  // END_CHANGE_SUMMARY
19
19
  import { defineCommand } from "citty";
20
20
  import { MANAGED_SUBAGENTS } from "../lib/managed-agents.js";
21
- import { describeWriteResult, installManagedAgentPrompts, parseGuardianConfigText, readOpenCodeAgentModel, readManagedSubagentModels, renderGuardianConfig, resolvePaths, writeOpenCodeAgentModel, writeManagedSubagentModel, } from "../lib/opencode.js";
22
- import { parseMemoryConfigText, renderMemoryConfig, } from "../plugins/memory-store.js";
21
+ import { describeWriteResult, installManagedAgentPrompts, parseGuardianConfigText, readOpenCodeAgentModel, readManagedSubagentModels, renderGuardianConfig, resolvePaths, writeManagedSubagentModel, writeOpenCodeAgentModel, } from "../lib/opencode.js";
22
+ import { parseMemoryConfigText, renderMemoryConfig } from "../plugins/memory-store.js";
23
+ const SPECIAL_AGENT_NAMES = ["guardian", "memory-reviewer"];
24
+ const CONFIGURABLE_OPENCODE_SUBAGENTS = ["general", "explore"];
25
+ const AGENT_NAME_CHOICES = [
26
+ ...SPECIAL_AGENT_NAMES,
27
+ ...CONFIGURABLE_OPENCODE_SUBAGENTS,
28
+ ...MANAGED_SUBAGENTS.map((definition) => definition.name),
29
+ ].join(", ");
23
30
  const scopeArg = {
24
31
  type: "enum",
25
32
  options: ["global", "project"],
@@ -30,191 +37,89 @@ const configDirArg = {
30
37
  type: "string",
31
38
  description: "Override the global config home.",
32
39
  };
40
+ const agentArg = {
41
+ type: "positional",
42
+ required: true,
43
+ description: `Agent ID (${AGENT_NAME_CHOICES}).`,
44
+ };
33
45
  const modelArg = {
34
46
  type: "positional",
35
47
  required: true,
36
- description: "Model in provider/model-id format.",
48
+ description: "Model in provider/model-id format. Guardian and memory-reviewer also accept provider/model-id[:variant].",
37
49
  };
38
- const CONFIGURABLE_OPENCODE_SUBAGENTS = ["general", "explore"];
39
- const guardianSet = defineCommand({
50
+ const agentSet = defineCommand({
40
51
  meta: {
41
52
  name: "set",
42
- description: "Set the Guardian agent model override.",
53
+ description: "Set an agent model override.",
43
54
  },
44
55
  args: {
45
- model: {
46
- ...modelArg,
47
- description: "Model in provider/model-id[:variant] format.",
48
- },
56
+ agent: agentArg,
57
+ model: modelArg,
49
58
  scope: scopeArg,
50
59
  "config-dir": configDirArg,
51
60
  },
52
61
  async run({ args }) {
53
- const { model, variant } = parseGuardianStyleModelArg(args.model, "set");
62
+ const agentName = parseAgentName(args.agent, "set");
54
63
  const paths = await resolveCommandPaths(args);
55
- const currentText = await Bun.file(paths.guardianConfigPath)
56
- .text()
57
- .catch(() => "");
58
- const current = currentText
59
- ? parseGuardianConfigText(currentText, paths.guardianConfigPath)
60
- : {};
61
- const merged = { ...current, model, variant };
62
- const nextText = renderGuardianConfig(merged);
63
- if (currentText.trim() === nextText.trim()) {
64
- console.log(describeWriteResult({ action: "kept", path: paths.guardianConfigPath }));
64
+ if (agentName === "guardian") {
65
+ await setGuardianModelOverride(paths, args.model);
65
66
  return;
66
67
  }
67
- await Bun.write(paths.guardianConfigPath, nextText);
68
- console.log(describeWriteResult({
69
- action: currentText ? "updated" : "created",
70
- path: paths.guardianConfigPath,
71
- }));
72
- },
73
- });
74
- const guardianUnset = defineCommand({
75
- meta: {
76
- name: "unset",
77
- description: "Remove the Guardian agent model override.",
78
- },
79
- args: {
80
- scope: scopeArg,
81
- "config-dir": configDirArg,
82
- },
83
- async run({ args }) {
84
- const paths = await resolveCommandPaths(args);
85
- const currentText = await Bun.file(paths.guardianConfigPath)
86
- .text()
87
- .catch(() => "");
88
- if (!currentText) {
89
- console.log(describeWriteResult({ action: "kept", path: paths.guardianConfigPath }));
68
+ if (agentName === "memory-reviewer") {
69
+ await setMemoryReviewerModelOverride(paths, args.model);
90
70
  return;
91
71
  }
92
- const current = parseGuardianConfigText(currentText, paths.guardianConfigPath);
93
- const { model: _model, variant: _variant, ...rest } = current;
94
- const nextText = renderGuardianConfig(rest);
95
- if (currentText.trim() === nextText.trim()) {
96
- console.log(describeWriteResult({ action: "kept", path: paths.guardianConfigPath }));
72
+ const model = parseOpenCodeModelArg(args.model, "set");
73
+ if (isConfigurableOpenCodeSubagentName(agentName)) {
74
+ const result = await writeOpenCodeAgentModel(paths, agentName, {
75
+ model,
76
+ ensureEntry: true,
77
+ });
78
+ console.log(describeWriteResult(result));
97
79
  return;
98
80
  }
99
- await Bun.write(paths.guardianConfigPath, nextText);
100
- console.log(describeWriteResult({ action: "updated", path: paths.guardianConfigPath }));
101
- },
102
- });
103
- const guardianCmd = defineCommand({
104
- meta: {
105
- name: "guardian",
106
- description: "Manage the Guardian agent.",
107
- },
108
- subCommands: {
109
- set: guardianSet,
110
- unset: guardianUnset,
81
+ await installManagedAgentPrompts(paths, { force: false });
82
+ const result = await writeManagedSubagentModel(paths, agentName, {
83
+ model,
84
+ ensureEntry: true,
85
+ });
86
+ console.log(describeWriteResult(result));
111
87
  },
112
88
  });
113
- const memoryReviewerSet = defineCommand({
89
+ const agentUnset = defineCommand({
114
90
  meta: {
115
- name: "set",
116
- description: "Set the memory-reviewer agent model override.",
91
+ name: "unset",
92
+ description: "Remove an agent model override.",
117
93
  },
118
94
  args: {
119
- model: {
120
- ...modelArg,
121
- description: "Model in provider/model-id[:variant] format.",
122
- },
95
+ agent: agentArg,
123
96
  scope: scopeArg,
124
97
  "config-dir": configDirArg,
125
98
  },
126
99
  async run({ args }) {
127
- const { model, variant } = parseGuardianStyleModelArg(args.model, "set");
100
+ const agentName = parseAgentName(args.agent, "unset");
128
101
  const paths = await resolveCommandPaths(args);
129
- const currentText = await Bun.file(paths.memoryConfigPath)
130
- .text()
131
- .catch(() => "");
132
- const current = currentText ? parseMemoryConfigText(currentText, paths.memoryConfigPath) : {};
133
- const merged = {
134
- enabled: current.enabled ?? true,
135
- defaultSearchLimit: current.defaultSearchLimit,
136
- reviewerModel: model,
137
- reviewerVariant: variant,
138
- };
139
- const nextText = renderMemoryConfig(merged);
140
- if (currentText.trim() === nextText.trim()) {
141
- console.log(describeWriteResult({ action: "kept", path: paths.memoryConfigPath }));
102
+ if (agentName === "guardian") {
103
+ await unsetGuardianModelOverride(paths);
142
104
  return;
143
105
  }
144
- await Bun.write(paths.memoryConfigPath, nextText);
145
- console.log(describeWriteResult({
146
- action: currentText ? "updated" : "created",
147
- path: paths.memoryConfigPath,
148
- }));
149
- },
150
- });
151
- const memoryReviewerUnset = defineCommand({
152
- meta: {
153
- name: "unset",
154
- description: "Remove the memory-reviewer agent model override.",
155
- },
156
- args: {
157
- scope: scopeArg,
158
- "config-dir": configDirArg,
159
- },
160
- async run({ args }) {
161
- const paths = await resolveCommandPaths(args);
162
- const currentText = await Bun.file(paths.memoryConfigPath)
163
- .text()
164
- .catch(() => "");
165
- if (!currentText) {
166
- console.log(describeWriteResult({ action: "kept", path: paths.memoryConfigPath }));
106
+ if (agentName === "memory-reviewer") {
107
+ await unsetMemoryReviewerModelOverride(paths);
167
108
  return;
168
109
  }
169
- const current = parseMemoryConfigText(currentText, paths.memoryConfigPath);
170
- const nextText = renderMemoryConfig({
171
- enabled: current.enabled ?? true,
172
- defaultSearchLimit: current.defaultSearchLimit,
173
- });
174
- if (currentText.trim() === nextText.trim()) {
175
- console.log(describeWriteResult({ action: "kept", path: paths.memoryConfigPath }));
110
+ if (isConfigurableOpenCodeSubagentName(agentName)) {
111
+ const result = await writeOpenCodeAgentModel(paths, agentName, {
112
+ ensureEntry: false,
113
+ });
114
+ console.log(describeWriteResult(result));
176
115
  return;
177
116
  }
178
- await Bun.write(paths.memoryConfigPath, nextText);
179
- console.log(describeWriteResult({ action: "updated", path: paths.memoryConfigPath }));
180
- },
181
- });
182
- const memoryReviewerCmd = defineCommand({
183
- meta: {
184
- name: "memory-reviewer",
185
- description: "Manage the memory-reviewer agent.",
186
- },
187
- subCommands: {
188
- set: memoryReviewerSet,
189
- unset: memoryReviewerUnset,
117
+ const result = await writeManagedSubagentModel(paths, agentName, {
118
+ ensureEntry: false,
119
+ });
120
+ console.log(describeWriteResult(result));
190
121
  },
191
122
  });
192
- const managedSubagentCommands = Object.fromEntries(MANAGED_SUBAGENTS.map((definition) => [
193
- definition.name,
194
- defineCommand({
195
- meta: {
196
- name: definition.name,
197
- description: `Manage the ${definition.name} agent.`,
198
- },
199
- subCommands: {
200
- set: createManagedSubagentSetCommand(definition.name),
201
- unset: createManagedSubagentUnsetCommand(definition.name),
202
- },
203
- }),
204
- ]));
205
- const configurableOpenCodeSubagentCommands = Object.fromEntries(CONFIGURABLE_OPENCODE_SUBAGENTS.map((agentName) => [
206
- agentName,
207
- defineCommand({
208
- meta: {
209
- name: agentName,
210
- description: `Manage the built-in ${agentName} agent.`,
211
- },
212
- subCommands: {
213
- set: createOpenCodeSubagentSetCommand(agentName),
214
- unset: createOpenCodeSubagentUnsetCommand(agentName),
215
- },
216
- }),
217
- ]));
218
123
  const agentList = defineCommand({
219
124
  meta: {
220
125
  name: "list",
@@ -261,95 +166,87 @@ export default defineCommand({
261
166
  description: "Manage agent model overrides.",
262
167
  },
263
168
  subCommands: {
264
- guardian: guardianCmd,
265
- "memory-reviewer": memoryReviewerCmd,
266
- ...configurableOpenCodeSubagentCommands,
267
- ...managedSubagentCommands,
169
+ set: agentSet,
170
+ unset: agentUnset,
268
171
  list: agentList,
269
172
  },
270
173
  });
271
- function createManagedSubagentSetCommand(agentName) {
272
- return defineCommand({
273
- meta: {
274
- name: "set",
275
- description: `Set the ${agentName} agent model override.`,
276
- },
277
- args: {
278
- model: modelArg,
279
- scope: scopeArg,
280
- "config-dir": configDirArg,
281
- },
282
- async run({ args }) {
283
- const model = parseOpenCodeModelArg(args.model, "set");
284
- const paths = await resolveCommandPaths(args);
285
- await installManagedAgentPrompts(paths, { force: false });
286
- const result = await writeManagedSubagentModel(paths, agentName, {
287
- model,
288
- ensureEntry: true,
289
- });
290
- console.log(describeWriteResult(result));
291
- },
292
- });
174
+ async function setGuardianModelOverride(paths, value) {
175
+ const { model, variant } = parseGuardianStyleModelArg(value, "set");
176
+ const currentText = await Bun.file(paths.guardianConfigPath)
177
+ .text()
178
+ .catch(() => "");
179
+ const current = currentText ? parseGuardianConfigText(currentText, paths.guardianConfigPath) : {};
180
+ const nextText = renderGuardianConfig({ ...current, model, variant });
181
+ if (currentText.trim() === nextText.trim()) {
182
+ console.log(describeWriteResult({ action: "kept", path: paths.guardianConfigPath }));
183
+ return;
184
+ }
185
+ await Bun.write(paths.guardianConfigPath, nextText);
186
+ console.log(describeWriteResult({
187
+ action: currentText ? "updated" : "created",
188
+ path: paths.guardianConfigPath,
189
+ }));
293
190
  }
294
- function createManagedSubagentUnsetCommand(agentName) {
295
- return defineCommand({
296
- meta: {
297
- name: "unset",
298
- description: `Remove the ${agentName} agent model override.`,
299
- },
300
- args: {
301
- scope: scopeArg,
302
- "config-dir": configDirArg,
303
- },
304
- async run({ args }) {
305
- const paths = await resolveCommandPaths(args);
306
- const result = await writeManagedSubagentModel(paths, agentName, {
307
- ensureEntry: false,
308
- });
309
- console.log(describeWriteResult(result));
310
- },
311
- });
191
+ async function unsetGuardianModelOverride(paths) {
192
+ const currentText = await Bun.file(paths.guardianConfigPath)
193
+ .text()
194
+ .catch(() => "");
195
+ if (!currentText) {
196
+ console.log(describeWriteResult({ action: "kept", path: paths.guardianConfigPath }));
197
+ return;
198
+ }
199
+ const current = parseGuardianConfigText(currentText, paths.guardianConfigPath);
200
+ const { model: _model, variant: _variant, ...rest } = current;
201
+ const nextText = renderGuardianConfig(rest);
202
+ if (currentText.trim() === nextText.trim()) {
203
+ console.log(describeWriteResult({ action: "kept", path: paths.guardianConfigPath }));
204
+ return;
205
+ }
206
+ await Bun.write(paths.guardianConfigPath, nextText);
207
+ console.log(describeWriteResult({ action: "updated", path: paths.guardianConfigPath }));
312
208
  }
313
- function createOpenCodeSubagentSetCommand(agentName) {
314
- return defineCommand({
315
- meta: {
316
- name: "set",
317
- description: `Set the ${agentName} agent model override.`,
318
- },
319
- args: {
320
- model: modelArg,
321
- scope: scopeArg,
322
- "config-dir": configDirArg,
323
- },
324
- async run({ args }) {
325
- const model = parseOpenCodeModelArg(args.model, "set");
326
- const paths = await resolveCommandPaths(args);
327
- const result = await writeOpenCodeAgentModel(paths, agentName, {
328
- model,
329
- ensureEntry: true,
330
- });
331
- console.log(describeWriteResult(result));
332
- },
209
+ async function setMemoryReviewerModelOverride(paths, value) {
210
+ const { model, variant } = parseGuardianStyleModelArg(value, "set");
211
+ const currentText = await Bun.file(paths.memoryConfigPath)
212
+ .text()
213
+ .catch(() => "");
214
+ const current = currentText ? parseMemoryConfigText(currentText, paths.memoryConfigPath) : {};
215
+ const nextText = renderMemoryConfig({
216
+ enabled: current.enabled ?? true,
217
+ defaultSearchLimit: current.defaultSearchLimit,
218
+ reviewerModel: model,
219
+ reviewerVariant: variant,
333
220
  });
221
+ if (currentText.trim() === nextText.trim()) {
222
+ console.log(describeWriteResult({ action: "kept", path: paths.memoryConfigPath }));
223
+ return;
224
+ }
225
+ await Bun.write(paths.memoryConfigPath, nextText);
226
+ console.log(describeWriteResult({
227
+ action: currentText ? "updated" : "created",
228
+ path: paths.memoryConfigPath,
229
+ }));
334
230
  }
335
- function createOpenCodeSubagentUnsetCommand(agentName) {
336
- return defineCommand({
337
- meta: {
338
- name: "unset",
339
- description: `Remove the ${agentName} agent model override.`,
340
- },
341
- args: {
342
- scope: scopeArg,
343
- "config-dir": configDirArg,
344
- },
345
- async run({ args }) {
346
- const paths = await resolveCommandPaths(args);
347
- const result = await writeOpenCodeAgentModel(paths, agentName, {
348
- ensureEntry: false,
349
- });
350
- console.log(describeWriteResult(result));
351
- },
231
+ async function unsetMemoryReviewerModelOverride(paths) {
232
+ const currentText = await Bun.file(paths.memoryConfigPath)
233
+ .text()
234
+ .catch(() => "");
235
+ if (!currentText) {
236
+ console.log(describeWriteResult({ action: "kept", path: paths.memoryConfigPath }));
237
+ return;
238
+ }
239
+ const current = parseMemoryConfigText(currentText, paths.memoryConfigPath);
240
+ const nextText = renderMemoryConfig({
241
+ enabled: current.enabled ?? true,
242
+ defaultSearchLimit: current.defaultSearchLimit,
352
243
  });
244
+ if (currentText.trim() === nextText.trim()) {
245
+ console.log(describeWriteResult({ action: "kept", path: paths.memoryConfigPath }));
246
+ return;
247
+ }
248
+ await Bun.write(paths.memoryConfigPath, nextText);
249
+ console.log(describeWriteResult({ action: "updated", path: paths.memoryConfigPath }));
353
250
  }
354
251
  function resolveScope(value) {
355
252
  return value === "project" ? "project" : "global";
@@ -367,6 +264,25 @@ function formatAgentModel(model, variant) {
367
264
  return "default";
368
265
  return variant ? `${model}:${variant}` : model;
369
266
  }
267
+ function parseAgentName(value, operation) {
268
+ if (typeof value !== "string" || !value.trim()) {
269
+ throw new Error(`agent argument required for ${operation}`);
270
+ }
271
+ const trimmed = value.trim();
272
+ if (trimmed === "guardian" || trimmed === "memory-reviewer") {
273
+ return trimmed;
274
+ }
275
+ if (isConfigurableOpenCodeSubagentName(trimmed) || isManagedSubagentName(trimmed)) {
276
+ return trimmed;
277
+ }
278
+ throw new Error(`unsupported agent: ${trimmed}. Expected one of: ${AGENT_NAME_CHOICES}`);
279
+ }
280
+ function isConfigurableOpenCodeSubagentName(value) {
281
+ return CONFIGURABLE_OPENCODE_SUBAGENTS.includes(value);
282
+ }
283
+ function isManagedSubagentName(value) {
284
+ return MANAGED_SUBAGENTS.some((definition) => definition.name === value);
285
+ }
370
286
  function parseGuardianStyleModelArg(value, operation) {
371
287
  if (typeof value !== "string" || !value.trim()) {
372
288
  throw new Error(`model argument required for ${operation}`);
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,iBAAiB;AACjB,wBAAwB;AACxB,0FAA0F;AAC1F,mKAAmK;AACnK,kGAAkG;AAClG,4BAA4B;AAC5B,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,mCAAmC;AACnC,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,gLAAgL;AAChL,qBAAqB;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAA4B,MAAM,0BAA0B,CAAC;AACvF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,YAAY,EAEZ,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEvF,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAU,CAAC;AAGrE,MAAM,+BAA+B,GAAG,CAAC,SAAS,EAAE,SAAS,CAAU,CAAC;AAKxE,MAAM,kBAAkB,GAAG;IACzB,GAAG,mBAAmB;IACtB,GAAG,+BAA+B;IAClC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,MAAe;IACrB,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC9B,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,iCAAiC;CAC/C,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE,QAAiB;IACvB,WAAW,EAAE,kCAAkC;CAChD,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,YAAqB;IAC3B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,aAAa,kBAAkB,IAAI;CACjD,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,YAAqB;IAC3B,QAAQ,EAAE,IAAI;IACd,WAAW,EACT,0GAA0G;CAC7G,CAAC;AAEF,MAAM,QAAQ,GAAG,aAAa,CAAC;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,8BAA8B;KAC5C;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,YAAY,EAAE,YAAY;KAC3B;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,8BAA8B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEvD,IAAI,kCAAkC,CAAC,SAAS,CAAC,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE;gBAC7D,KAAK;gBACL,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,0BAA0B,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE;YAC/D,KAAK;YACL,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,aAAa,CAAC;IAC/B,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,iCAAiC;KAC/C;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,YAAY,EAAE,YAAY;KAC3B;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,0BAA0B,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,gCAAgC,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,IAAI,kCAAkC,CAAC,SAAS,CAAC,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE;gBAC7D,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE;YAC/D,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,aAAa,CAAC;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,+BAA+B;KAC7C;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,GAAG,QAAQ;YACX,WAAW,EAAE,gCAAgC;SAC9C;QACD,YAAY,EAAE,YAAY;KAC3B;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;aAC1D,IAAI,EAAE;aACN,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;aACtD,IAAI,EAAE;aACN,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAEnB,MAAM,cAAc,GAAG,YAAY;YACjC,CAAC,CAAC,uBAAuB,CAAC,YAAY,EAAE,KAAK,CAAC,kBAAkB,CAAC;YACjE,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,YAAY,GAAG,UAAU;YAC7B,CAAC,CAAC,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC;YAC3D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAe,gBAAgB,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CACT,sBAAsB,gBAAgB,CAAC,YAAY,CAAC,aAAa,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE,CACnG,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,+BAA+B,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,KAAK,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,KAAK,gBAAgB,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,+BAA+B;KAC7C;IACD,WAAW,EAAE;QACX,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,SAAS;KAChB;CACF,CAAC,CAAC;AAEH,KAAK,UAAU,wBAAwB,CACrC,KAAsD,EACtD,KAAc;IAEd,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;SACzD,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACnB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,MAAM,QAAQ,GAAG,oBAAoB,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAEtE,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IAED,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CACT,mBAAmB,CAAC;QAClB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC3C,IAAI,EAAE,KAAK,CAAC,kBAAkB;KAC/B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,KAAsD;IAC9F,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;SACzD,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC/E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC9D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IAED,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,KAAsD,EACtD,KAAc;IAEd,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;SACvD,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACnB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,OAAO;KACzB,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CACT,mBAAmB,CAAC;QAClB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC3C,IAAI,EAAE,KAAK,CAAC,gBAAgB;KAC7B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,KAAsD;IAEtD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;SACvD,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;KAC/C,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAA6B;IAC9D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,OAAO,YAAY,CAAC;QAClB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,OAAgB;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,SAAiB;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,kCAAkC,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,sBAAsB,kBAAkB,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,kCAAkC,CACzC,KAAa;IAEb,OAAO,+BAA+B,CAAC,QAAQ,CAAC,KAAyC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAc,EACd,SAAiB;IAEjB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,SAAiB;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  // FILE: src/commands/completion.ts
2
- // VERSION: 0.5.3
2
+ // VERSION: 0.5.5
3
3
  // START_MODULE_CONTRACT
4
4
  // PURPOSE: Auto-detect shell and install vvoc completions idempotently.
5
- // SCOPE: Shell detection, completion file writing, nested command/preset completion generation, and rc file patching.
5
+ // SCOPE: Shell detection, completion file writing, nested command/preset completion generation for config/plugin/path-provider and the `agent set|unset <agent-id>` flow, and rc file patching.
6
6
  // DEPENDS: [citty, node:fs/promises, node:path, node:os]
7
7
  // LINKS: [M-CLI-COMPLETION, M-CLI-COMMANDS]
8
8
  // ROLE: RUNTIME
@@ -18,12 +18,12 @@
18
18
  // END_MODULE_MAP
19
19
  //
20
20
  // START_CHANGE_SUMMARY
21
- // LAST_CHANGE: [v0.5.3 - Added path-provider preset completions for the stepfun-ai provider patch command.]
21
+ // LAST_CHANGE: [v0.5.5 - Reworked agent completions for the new `vvoc agent set|unset <agent-id>` command shape.]
22
22
  // END_CHANGE_SUMMARY
23
23
  import { defineCommand } from "citty";
24
24
  import { appendFile, mkdir, readFile, writeFile } from "node:fs/promises";
25
- import { resolve } from "node:path";
26
25
  import { homedir } from "node:os";
26
+ import { resolve } from "node:path";
27
27
  const VVOC_TOP_LEVEL_COMMANDS = [
28
28
  "agent",
29
29
  "completion",
@@ -42,16 +42,17 @@ const VVOC_TOP_LEVEL_COMMANDS = [
42
42
  const VVOC_CONFIG_COMMANDS = ["validate"];
43
43
  const VVOC_PATH_PROVIDER_PRESETS = ["stepfun-ai"];
44
44
  const VVOC_PLUGIN_COMMANDS = ["list"];
45
- const VVOC_AGENT_COMMANDS = [
45
+ const VVOC_AGENT_COMMANDS = ["set", "unset", "list"];
46
+ const VVOC_AGENT_TARGETS = [
46
47
  "guardian",
47
48
  "memory-reviewer",
49
+ "general",
50
+ "explore",
48
51
  "implementer",
49
52
  "spec-reviewer",
50
53
  "code-reviewer",
51
54
  "investitagor",
52
- "list",
53
55
  ];
54
- const VVOC_AGENT_ACTION_COMMANDS = ["set", "unset"];
55
56
  export default defineCommand({
56
57
  meta: {
57
58
  name: "completion",
@@ -152,7 +153,7 @@ export function generateBashCompletion() {
152
153
  const pathProviderPresets = VVOC_PATH_PROVIDER_PRESETS.join(" ");
153
154
  const pluginCommands = VVOC_PLUGIN_COMMANDS.join(" ");
154
155
  const agentCommands = VVOC_AGENT_COMMANDS.join(" ");
155
- const agentActionCommands = VVOC_AGENT_ACTION_COMMANDS.join(" ");
156
+ const agentTargets = VVOC_AGENT_TARGETS.join(" ");
156
157
  return ("# bash completion for vvoc\n" +
157
158
  "_vvoc() {\n" +
158
159
  " local cur prev words cword\n" +
@@ -180,8 +181,8 @@ export function generateBashCompletion() {
180
181
  " ;;\n" +
181
182
  " 3)\n" +
182
183
  ' case "${words[1]}:${words[2]}" in\n' +
183
- " agent:guardian|agent:memory-reviewer|agent:implementer|agent:spec-reviewer|agent:code-reviewer|agent:investitagor)\n" +
184
- " _vvoc_agent_action_commands\n" +
184
+ " agent:set|agent:unset)\n" +
185
+ " _vvoc_agent_target_commands\n" +
185
186
  " ;;\n" +
186
187
  " esac\n" +
187
188
  " ;;\n" +
@@ -216,9 +217,9 @@ export function generateBashCompletion() {
216
217
  ' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
217
218
  "}\n" +
218
219
  "\n" +
219
- "_vvoc_agent_action_commands() {\n" +
220
+ "_vvoc_agent_target_commands() {\n" +
220
221
  ' local commands="' +
221
- agentActionCommands +
222
+ agentTargets +
222
223
  '"\n' +
223
224
  ' COMPREPLY=($(compgen -W "$commands" -- "$cur"))\n' +
224
225
  "}\n" +
@@ -244,7 +245,7 @@ export function generateZshCompletion() {
244
245
  for (const cmd of VVOC_TOP_LEVEL_COMMANDS) {
245
246
  lines.push(' "' + cmd + '"');
246
247
  }
247
- lines.push(" )", "", " _arguments -C \\", ' "1: :(' + VVOC_TOP_LEVEL_COMMANDS.join(" ") + ')" \\', ' "*::arg:->args"', "", " case $line[1] in", " agent)", " _vvoc_agent_cmds", " ;;", " config)", " _vvoc_config_cmds", " ;;", " path-provider)", " _vvoc_path_provider_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_path_provider_cmds() {", ' _arguments "1: :(' + VVOC_PATH_PROVIDER_PRESETS.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");
248
+ lines.push(" )", "", ' _arguments -C "1: :(' + VVOC_TOP_LEVEL_COMMANDS.join(" ") + ')" "*::arg:->args"', "", " case $line[1] in", " agent)", " _vvoc_agent_cmds", " ;;", " config)", " _vvoc_config_cmds", " ;;", " path-provider)", " _vvoc_path_provider_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_path_provider_cmds() {", ' _arguments "1: :(' + VVOC_PATH_PROVIDER_PRESETS.join(" ") + ')"', "}", "", "_vvoc_agent_cmds() {", " case $words[2] in", " set|unset)", ' _arguments "1: :(' + VVOC_AGENT_TARGETS.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");
248
249
  return lines.join("\n") + "\n";
249
250
  }
250
251
  export function generateFishCompletion() {
@@ -252,7 +253,7 @@ export function generateFishCompletion() {
252
253
  for (const cmd of VVOC_TOP_LEVEL_COMMANDS) {
253
254
  lines.push(" echo " + cmd);
254
255
  }
255
- lines.push("end", "", "function __vvoc_config_cmds", " echo " + VVOC_CONFIG_COMMANDS.join(" "), "end", "", "function __vvoc_path_provider_cmds", " echo " + VVOC_PATH_PROVIDER_PRESETS.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 path-provider" -f -a "(__vvoc_path_provider_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from plugin" -f -a "(__vvoc_plugin_cmds)"');
256
+ lines.push("end", "", "function __vvoc_config_cmds", " echo " + VVOC_CONFIG_COMMANDS.join(" "), "end", "", "function __vvoc_path_provider_cmds", " echo " + VVOC_PATH_PROVIDER_PRESETS.join(" "), "end", "", "function __vvoc_agent_cmds", " echo " + VVOC_AGENT_COMMANDS.join(" "), "end", "", "function __vvoc_agent_target_cmds", " echo " + VVOC_AGENT_TARGETS.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; and not __fish_seen_subcommand_from set unset list" -f -a "(__vvoc_agent_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from agent; and __fish_seen_subcommand_from set unset" -f -a "(__vvoc_agent_target_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from config" -f -a "(__vvoc_config_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from path-provider" -f -a "(__vvoc_path_provider_cmds)"', 'complete -c vvoc -n "__fish_seen_subcommand_from plugin" -f -a "(__vvoc_plugin_cmds)"');
256
257
  return lines.join("\n") + "\n";
257
258
  }
258
259
  //# sourceMappingURL=completion.js.map