@osovv/vv-opencode 0.12.0 → 0.14.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 +38 -34
- package/dist/commands/agent.js +23 -87
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/config-validate.d.ts +4 -24
- package/dist/commands/config-validate.js +52 -242
- package/dist/commands/config-validate.js.map +1 -1
- package/dist/commands/doctor.js +10 -9
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/guardian.js +6 -13
- package/dist/commands/guardian.js.map +1 -1
- package/dist/commands/init.js +11 -15
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.d.ts +1 -16
- package/dist/commands/install.js +8 -44
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/status.js +9 -9
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts +1 -1
- package/dist/commands/sync.js +8 -10
- package/dist/commands/sync.js.map +1 -1
- package/dist/lib/opencode.d.ts +19 -52
- package/dist/lib/opencode.js +86 -336
- package/dist/lib/opencode.js.map +1 -1
- package/dist/lib/package.d.ts +2 -0
- package/dist/lib/package.js +14 -10
- package/dist/lib/package.js.map +1 -1
- package/dist/lib/vvoc-config.d.ts +209 -0
- package/dist/lib/vvoc-config.js +642 -0
- package/dist/lib/vvoc-config.js.map +1 -0
- package/dist/lib/vvoc-paths.d.ts +2 -0
- package/dist/lib/vvoc-paths.js +9 -3
- package/dist/lib/vvoc-paths.js.map +1 -1
- package/dist/plugins/guardian/index.js +24 -206
- package/dist/plugins/guardian/index.js.map +1 -1
- package/dist/plugins/memory/index.js +1 -1
- package/dist/plugins/memory/index.js.map +1 -1
- package/dist/plugins/memory-store.d.ts +2 -9
- package/dist/plugins/memory-store.js +20 -127
- package/dist/plugins/memory-store.js.map +1 -1
- package/dist/plugins/secrets-redaction/config.d.ts +3 -20
- package/dist/plugins/secrets-redaction/config.js +33 -134
- package/dist/plugins/secrets-redaction/config.js.map +1 -1
- package/dist/plugins/secrets-redaction/engine.js +20 -60
- package/dist/plugins/secrets-redaction/engine.js.map +1 -1
- package/package.json +3 -1
- package/schemas/vvoc/v1.json +94 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// FILE: src/commands/config-validate.ts
|
|
2
|
-
// VERSION: 0.
|
|
2
|
+
// VERSION: 0.5.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
|
-
// PURPOSE: Validate
|
|
5
|
-
// SCOPE:
|
|
6
|
-
// DEPENDS: [citty, src/lib/opencode.js, src/lib/vvoc-
|
|
4
|
+
// PURPOSE: Validate the canonical vvoc.json configuration file with human-readable error reporting.
|
|
5
|
+
// SCOPE: Canonical vvoc config file discovery, strict JSON parse error reporting, JSON Schema validation, and pass/fail terminal output.
|
|
6
|
+
// DEPENDS: [citty, jsonc-parser, src/lib/opencode.js, src/lib/vvoc-config.ts]
|
|
7
7
|
// LINKS: [M-CLI-CONFIG-VALIDATE, M-CLI-CONFIG]
|
|
8
8
|
// ROLE: RUNTIME
|
|
9
9
|
// MAP_MODE: EXPORTS
|
|
@@ -11,288 +11,98 @@
|
|
|
11
11
|
//
|
|
12
12
|
// START_MODULE_MAP
|
|
13
13
|
// default - ConfigValidate command definition for vvoc.
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
14
|
+
// validateVvocConfig - Validate the canonical vvoc.json file for the selected config root.
|
|
15
|
+
// validateVvocConfigContent - Validate vvoc.json content and report schema violations.
|
|
16
|
+
// validateVvocConfigFile - Validate a vvoc.json file path and report schema violations.
|
|
17
|
+
// ConfigValidateResult - Outcome of a canonical vvoc config validation run.
|
|
17
18
|
// END_MODULE_MAP
|
|
18
19
|
//
|
|
19
20
|
// START_CHANGE_SUMMARY
|
|
20
|
-
// LAST_CHANGE: [v0.
|
|
21
|
+
// LAST_CHANGE: [v0.5.0 - Switched config validation to the canonical vvoc.json document and versioned JSON Schema.]
|
|
21
22
|
// END_CHANGE_SUMMARY
|
|
22
23
|
import { defineCommand } from "citty";
|
|
23
24
|
import { parse } from "jsonc-parser";
|
|
25
|
+
import { readFileSync } from "node:fs";
|
|
24
26
|
import { resolvePaths } from "../lib/opencode.js";
|
|
25
|
-
|
|
26
|
-
timeoutMs: "number",
|
|
27
|
-
approvalRiskThreshold: "number",
|
|
28
|
-
};
|
|
29
|
-
const GUARDIAN_OPTIONAL_FIELDS = {
|
|
30
|
-
model: "string",
|
|
31
|
-
variant: "string",
|
|
32
|
-
reviewToastDurationMs: "number",
|
|
33
|
-
};
|
|
34
|
-
const MEMORY_REQUIRED_FIELDS = {
|
|
35
|
-
enabled: "boolean",
|
|
36
|
-
};
|
|
37
|
-
const MEMORY_OPTIONAL_FIELDS = {
|
|
38
|
-
defaultSearchLimit: "number",
|
|
39
|
-
reviewerModel: "string",
|
|
40
|
-
reviewerVariant: "string",
|
|
41
|
-
};
|
|
27
|
+
import { validateVvocConfigDocument } from "../lib/vvoc-config.js";
|
|
42
28
|
export default defineCommand({
|
|
43
29
|
meta: {
|
|
44
30
|
name: "validate",
|
|
45
|
-
description: "Validate
|
|
31
|
+
description: "Validate the canonical vvoc.json configuration file.",
|
|
46
32
|
},
|
|
47
33
|
args: {
|
|
48
|
-
scope: {
|
|
49
|
-
type: "enum",
|
|
50
|
-
options: ["global", "project", "all"],
|
|
51
|
-
default: "all",
|
|
52
|
-
description: "Validate global, project, or all config files.",
|
|
53
|
-
},
|
|
54
34
|
"config-dir": {
|
|
55
35
|
type: "string",
|
|
56
|
-
description: "Override the global config home used for vvoc
|
|
57
|
-
},
|
|
58
|
-
"guardian-only": {
|
|
59
|
-
type: "boolean",
|
|
60
|
-
default: false,
|
|
61
|
-
description: "Only validate guardian.jsonc.",
|
|
62
|
-
},
|
|
63
|
-
"memory-only": {
|
|
64
|
-
type: "boolean",
|
|
65
|
-
default: false,
|
|
66
|
-
description: "Only validate memory.jsonc.",
|
|
36
|
+
description: "Override the global config home used for vvoc/.",
|
|
67
37
|
},
|
|
68
38
|
},
|
|
69
39
|
async run({ args }) {
|
|
70
40
|
// START_BLOCK_RUN_VALIDATE
|
|
71
|
-
const scope = args.scope === "project" ? "project" : args.scope === "global" ? "global" : undefined;
|
|
72
41
|
const configDir = typeof args["config-dir"] === "string" ? args["config-dir"] : undefined;
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
let exitCode = 0;
|
|
77
|
-
if (!guardianOnly && !memoryOnly) {
|
|
78
|
-
if (scope !== undefined) {
|
|
79
|
-
const guardianResult = await validateGuardianConfig(scope, cwd, configDir);
|
|
80
|
-
printResult(guardianResult);
|
|
81
|
-
if (!guardianResult.valid)
|
|
82
|
-
exitCode = 1;
|
|
83
|
-
const memoryResult = await validateMemoryConfig(scope, cwd, configDir);
|
|
84
|
-
printResult(memoryResult);
|
|
85
|
-
if (!memoryResult.valid)
|
|
86
|
-
exitCode = 1;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
const globalGuardian = await validateGuardianConfig("global", cwd, configDir);
|
|
90
|
-
printResult(globalGuardian);
|
|
91
|
-
if (!globalGuardian.valid)
|
|
92
|
-
exitCode = 1;
|
|
93
|
-
const globalMemory = await validateMemoryConfig("global", cwd, configDir);
|
|
94
|
-
printResult(globalMemory);
|
|
95
|
-
if (!globalMemory.valid)
|
|
96
|
-
exitCode = 1;
|
|
97
|
-
const projectGuardian = await validateGuardianConfig("project", cwd, configDir);
|
|
98
|
-
printResult(projectGuardian);
|
|
99
|
-
if (!projectGuardian.valid)
|
|
100
|
-
exitCode = 1;
|
|
101
|
-
const projectMemory = await validateMemoryConfig("project", cwd, configDir);
|
|
102
|
-
printResult(projectMemory);
|
|
103
|
-
if (!projectMemory.valid)
|
|
104
|
-
exitCode = 1;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
if (!guardianOnly) {
|
|
109
|
-
if (scope !== undefined) {
|
|
110
|
-
const guardianResult = await validateGuardianConfig(scope, cwd, configDir);
|
|
111
|
-
printResult(guardianResult);
|
|
112
|
-
if (!guardianResult.valid)
|
|
113
|
-
exitCode = 1;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
const globalGuardian = await validateGuardianConfig("global", cwd, configDir);
|
|
117
|
-
printResult(globalGuardian);
|
|
118
|
-
if (!globalGuardian.valid)
|
|
119
|
-
exitCode = 1;
|
|
120
|
-
const projectGuardian = await validateGuardianConfig("project", cwd, configDir);
|
|
121
|
-
printResult(projectGuardian);
|
|
122
|
-
if (!projectGuardian.valid)
|
|
123
|
-
exitCode = 1;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if (!memoryOnly) {
|
|
127
|
-
if (scope !== undefined) {
|
|
128
|
-
const memoryResult = await validateMemoryConfig(scope, cwd, configDir);
|
|
129
|
-
printResult(memoryResult);
|
|
130
|
-
if (!memoryResult.valid)
|
|
131
|
-
exitCode = 1;
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
const globalMemory = await validateMemoryConfig("global", cwd, configDir);
|
|
135
|
-
printResult(globalMemory);
|
|
136
|
-
if (!globalMemory.valid)
|
|
137
|
-
exitCode = 1;
|
|
138
|
-
const projectMemory = await validateMemoryConfig("project", cwd, configDir);
|
|
139
|
-
printResult(projectMemory);
|
|
140
|
-
if (!projectMemory.valid)
|
|
141
|
-
exitCode = 1;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
process.exitCode = exitCode;
|
|
42
|
+
const result = await validateVvocConfig(process.cwd(), configDir);
|
|
43
|
+
printResult(result);
|
|
44
|
+
process.exitCode = result.valid ? 0 : 1;
|
|
146
45
|
// END_BLOCK_RUN_VALIDATE
|
|
147
46
|
},
|
|
148
47
|
});
|
|
149
|
-
export async function
|
|
150
|
-
const paths = await resolvePaths({ scope, cwd, configDir });
|
|
151
|
-
return
|
|
152
|
-
}
|
|
153
|
-
export async function validateMemoryConfig(scope, cwd, configDir) {
|
|
154
|
-
const paths = await resolvePaths({ scope, cwd, configDir });
|
|
155
|
-
return validateMemoryConfigFile(paths.memoryConfigPath);
|
|
48
|
+
export async function validateVvocConfig(cwd, configDir) {
|
|
49
|
+
const paths = await resolvePaths({ scope: "global", cwd, configDir });
|
|
50
|
+
return validateVvocConfigFile(paths.vvocConfigPath);
|
|
156
51
|
}
|
|
157
|
-
export function
|
|
52
|
+
export function validateVvocConfigContent(content, filePath) {
|
|
158
53
|
const errors = [];
|
|
159
54
|
const parseErrors = [];
|
|
160
55
|
const parsed = parse(content, parseErrors, {
|
|
161
|
-
allowEmptyContent:
|
|
162
|
-
allowTrailingComma:
|
|
163
|
-
disallowComments:
|
|
56
|
+
allowEmptyContent: false,
|
|
57
|
+
allowTrailingComma: false,
|
|
58
|
+
disallowComments: true,
|
|
164
59
|
});
|
|
165
60
|
if (parseErrors.length > 0) {
|
|
166
61
|
for (const err of parseErrors) {
|
|
167
62
|
const lineCol = offsetToLineCol(content, err.offset);
|
|
168
|
-
errors.push(`${filePath}:${lineCol.line}:${lineCol.col} - invalid
|
|
63
|
+
errors.push(`${filePath}:${lineCol.line}:${lineCol.col} - invalid JSON (${err.error})`);
|
|
169
64
|
}
|
|
170
65
|
return { path: filePath, valid: false, errors };
|
|
171
66
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
errors.push(`${filePath} - missing required field "${field}" (expected ${expectedType})`);
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
const actual = typeof parsed[field];
|
|
182
|
-
if (actual !== expectedType) {
|
|
183
|
-
errors.push(`${filePath} - field "${field}" has type "${actual}" but expected "${expectedType}"`);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
for (const [field, expectedType] of Object.entries(GUARDIAN_OPTIONAL_FIELDS)) {
|
|
188
|
-
if (Object.hasOwn(parsed, field)) {
|
|
189
|
-
const actual = typeof parsed[field];
|
|
190
|
-
if (actual !== expectedType) {
|
|
191
|
-
errors.push(`${filePath} - optional field "${field}" has type "${actual}" but expected "${expectedType}"`);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
if (Object.hasOwn(parsed, "timeoutMs")) {
|
|
196
|
-
const val = parsed.timeoutMs;
|
|
197
|
-
if (typeof val === "number" && (val <= 0 || !Number.isFinite(val))) {
|
|
198
|
-
errors.push(`${filePath} - "timeoutMs" must be a positive number`);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (Object.hasOwn(parsed, "approvalRiskThreshold")) {
|
|
202
|
-
const val = parsed.approvalRiskThreshold;
|
|
203
|
-
if (typeof val === "number" && (val < 0 || val > 100 || !Number.isFinite(val))) {
|
|
204
|
-
errors.push(`${filePath} - "approvalRiskThreshold" must be a number between 0 and 100`);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
if (Object.hasOwn(parsed, "reviewToastDurationMs")) {
|
|
208
|
-
const val = parsed.reviewToastDurationMs;
|
|
209
|
-
if (typeof val === "number" && (val <= 0 || !Number.isFinite(val))) {
|
|
210
|
-
errors.push(`${filePath} - "reviewToastDurationMs" must be a positive number`);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
return { path: filePath, valid: errors.length === 0, errors };
|
|
67
|
+
const schemaErrors = validateVvocConfigDocument(parsed).map((message) => `${filePath} - ${message}`);
|
|
68
|
+
return {
|
|
69
|
+
path: filePath,
|
|
70
|
+
valid: schemaErrors.length === 0,
|
|
71
|
+
errors: schemaErrors,
|
|
72
|
+
};
|
|
214
73
|
}
|
|
215
|
-
export function
|
|
216
|
-
return
|
|
217
|
-
}
|
|
218
|
-
export function validateMemoryConfigContent(content, filePath) {
|
|
219
|
-
const errors = [];
|
|
220
|
-
const parseErrors = [];
|
|
221
|
-
const parsed = parse(content, parseErrors, {
|
|
222
|
-
allowEmptyContent: true,
|
|
223
|
-
allowTrailingComma: true,
|
|
224
|
-
disallowComments: false,
|
|
225
|
-
});
|
|
226
|
-
if (parseErrors.length > 0) {
|
|
227
|
-
for (const err of parseErrors) {
|
|
228
|
-
const lineCol = offsetToLineCol(content, err.offset);
|
|
229
|
-
errors.push(`${filePath}:${lineCol.line}:${lineCol.col} - invalid JSONC (${err.error})`);
|
|
230
|
-
}
|
|
231
|
-
return { path: filePath, valid: false, errors };
|
|
232
|
-
}
|
|
233
|
-
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
234
|
-
errors.push(`${filePath} - expected a top-level object`);
|
|
235
|
-
return { path: filePath, valid: false, errors };
|
|
236
|
-
}
|
|
237
|
-
for (const [field, expectedType] of Object.entries(MEMORY_REQUIRED_FIELDS)) {
|
|
238
|
-
if (!Object.hasOwn(parsed, field)) {
|
|
239
|
-
errors.push(`${filePath} - missing required field "${field}" (expected ${expectedType})`);
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
const actual = typeof parsed[field];
|
|
243
|
-
if (actual !== expectedType) {
|
|
244
|
-
errors.push(`${filePath} - field "${field}" has type "${actual}" but expected "${expectedType}"`);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
for (const [field, expectedType] of Object.entries(MEMORY_OPTIONAL_FIELDS)) {
|
|
249
|
-
if (Object.hasOwn(parsed, field)) {
|
|
250
|
-
const actual = typeof parsed[field];
|
|
251
|
-
if (actual !== expectedType) {
|
|
252
|
-
errors.push(`${filePath} - optional field "${field}" has type "${actual}" but expected "${expectedType}"`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
if (Object.hasOwn(parsed, "defaultSearchLimit")) {
|
|
257
|
-
const val = parsed.defaultSearchLimit;
|
|
258
|
-
if (typeof val === "number" && (val <= 0 || !Number.isInteger(val))) {
|
|
259
|
-
errors.push(`${filePath} - "defaultSearchLimit" must be a positive integer`);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
return { path: filePath, valid: errors.length === 0, errors };
|
|
263
|
-
}
|
|
264
|
-
export function validateMemoryConfigFile(filePath) {
|
|
265
|
-
return validateMemoryConfigContent(readFileOrEmpty(filePath), filePath);
|
|
74
|
+
export function validateVvocConfigFile(filePath) {
|
|
75
|
+
return validateVvocConfigContent(readFileOrEmpty(filePath), filePath);
|
|
266
76
|
}
|
|
267
77
|
function printResult(result) {
|
|
268
78
|
if (result.valid) {
|
|
269
|
-
console.log(
|
|
79
|
+
console.log(`OK ${result.path}`);
|
|
80
|
+
return;
|
|
270
81
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
82
|
+
console.error(`INVALID ${result.path}`);
|
|
83
|
+
for (const error of result.errors) {
|
|
84
|
+
console.error(`- ${error}`);
|
|
275
85
|
}
|
|
276
86
|
}
|
|
277
|
-
function
|
|
87
|
+
function offsetToLineCol(text, offset) {
|
|
88
|
+
let line = 1;
|
|
89
|
+
let col = 1;
|
|
90
|
+
for (let index = 0; index < offset && index < text.length; index += 1) {
|
|
91
|
+
if (text[index] === "\n") {
|
|
92
|
+
line += 1;
|
|
93
|
+
col = 1;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
col += 1;
|
|
97
|
+
}
|
|
98
|
+
return { line, col };
|
|
99
|
+
}
|
|
100
|
+
function readFileOrEmpty(filePath) {
|
|
278
101
|
try {
|
|
279
|
-
|
|
280
|
-
return readFileSync(path, "utf8");
|
|
102
|
+
return readFileSync(filePath, "utf8");
|
|
281
103
|
}
|
|
282
104
|
catch {
|
|
283
105
|
return "";
|
|
284
106
|
}
|
|
285
107
|
}
|
|
286
|
-
function offsetToLineCol(content, offset) {
|
|
287
|
-
const lines = content.split("\n");
|
|
288
|
-
let pos = 0;
|
|
289
|
-
for (let i = 0; i < lines.length; i++) {
|
|
290
|
-
const lineLen = lines[i].length + 1;
|
|
291
|
-
if (pos + lineLen > offset) {
|
|
292
|
-
return { line: i + 1, col: offset - pos + 1 };
|
|
293
|
-
}
|
|
294
|
-
pos += lineLen;
|
|
295
|
-
}
|
|
296
|
-
return { line: lines.length, col: 1 };
|
|
297
|
-
}
|
|
298
108
|
//# sourceMappingURL=config-validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validate.js","sourceRoot":"","sources":["../../src/commands/config-validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-validate.js","sourceRoot":"","sources":["../../src/commands/config-validate.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// FILE: src/commands/doctor.ts
|
|
2
|
-
// VERSION: 0.
|
|
2
|
+
// VERSION: 0.3.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Diagnose vv-opencode installation problems and surface actionable failures.
|
|
5
|
-
// SCOPE: Scope parsing, installation inspection, warning/problem reporting, and non-zero exit signaling.
|
|
5
|
+
// SCOPE: Scope parsing, installation inspection, warning/problem reporting, and non-zero exit signaling for OpenCode plus the canonical vvoc.json config.
|
|
6
6
|
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
7
|
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG]
|
|
8
8
|
// ROLE: RUNTIME
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// END_MODULE_MAP
|
|
15
15
|
//
|
|
16
16
|
// START_CHANGE_SUMMARY
|
|
17
|
-
// LAST_CHANGE: [v0.
|
|
17
|
+
// LAST_CHANGE: [v0.3.0 - Updated doctor diagnostics for the canonical vvoc.json config file.]
|
|
18
18
|
// END_CHANGE_SUMMARY
|
|
19
19
|
import { defineCommand } from "citty";
|
|
20
20
|
import { inspectInstallation, resolvePaths } from "../lib/opencode.js";
|
|
@@ -49,12 +49,13 @@ export default defineCommand({
|
|
|
49
49
|
console.log(`OpenCode config: ${inspection.opencode.path}`);
|
|
50
50
|
console.log(`OpenCode config parse: ${inspection.opencode.parseError ? inspection.opencode.parseError : "ok"}`);
|
|
51
51
|
console.log(`Configured plugins: ${inspection.opencode.plugins.length > 0 ? inspection.opencode.plugins.join(", ") : "<none>"}`);
|
|
52
|
-
console.log(`
|
|
53
|
-
console.log(`
|
|
54
|
-
console.log(`
|
|
55
|
-
console.log(`
|
|
56
|
-
console.log(`
|
|
57
|
-
console.log(`Memory
|
|
52
|
+
console.log(`vvoc config: ${inspection.vvoc.path}`);
|
|
53
|
+
console.log(`vvoc config parse: ${inspection.vvoc.parseError ? inspection.vvoc.parseError : inspection.vvoc.exists ? "ok" : "missing"}`);
|
|
54
|
+
console.log(`vvoc schema: ${inspection.vvoc.schema ?? "missing"}`);
|
|
55
|
+
console.log(`vvoc version: ${inspection.vvoc.version ?? "missing"}`);
|
|
56
|
+
console.log(`Guardian model: ${inspection.guardian.config ? (inspection.guardian.config.model ?? "default") : "unknown"}`);
|
|
57
|
+
console.log(`Memory enabled: ${inspection.memory.config ? (inspection.memory.config.enabled ? "yes" : "no") : "unknown"}`);
|
|
58
|
+
console.log(`Secrets Redaction enabled: ${inspection.secretsRedaction.config ? (inspection.secretsRedaction.config.enabled ? "yes" : "no") : "unknown"}`);
|
|
58
59
|
if (inspection.warnings.length > 0) {
|
|
59
60
|
console.log("Warnings:");
|
|
60
61
|
for (const warning of inspection.warnings) {
|
|
@@ -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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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// FILE: src/commands/guardian.ts
|
|
2
|
-
// VERSION: 0.
|
|
2
|
+
// VERSION: 0.3.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
|
-
// PURPOSE: Expose Guardian-specific vvoc CLI helpers.
|
|
5
|
-
// SCOPE: Guardian config command wiring plus CLI argument normalization for
|
|
4
|
+
// PURPOSE: Expose Guardian-specific vvoc CLI helpers backed by the canonical vvoc.json config file.
|
|
5
|
+
// SCOPE: Guardian config command wiring plus CLI argument normalization for guardian section values.
|
|
6
6
|
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
7
|
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG, M-PLUGIN-GUARDIAN]
|
|
8
8
|
// ROLE: RUNTIME
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
// END_MODULE_MAP
|
|
15
15
|
//
|
|
16
16
|
// START_CHANGE_SUMMARY
|
|
17
|
-
// LAST_CHANGE: [v0.
|
|
17
|
+
// LAST_CHANGE: [v0.3.0 - Switched Guardian config writes to the canonical vvoc.json file.]
|
|
18
18
|
// END_CHANGE_SUMMARY
|
|
19
19
|
import { defineCommand } from "citty";
|
|
20
20
|
import { describeWriteResult, renderGuardianConfig, resolvePaths, writeGuardianConfig, } from "../lib/opencode.js";
|
|
21
21
|
const config = defineCommand({
|
|
22
22
|
meta: {
|
|
23
23
|
name: "config",
|
|
24
|
-
description: "Write or print guardian.
|
|
24
|
+
description: "Write or print the guardian section of vvoc.json.",
|
|
25
25
|
},
|
|
26
26
|
args: {
|
|
27
27
|
scope: {
|
|
@@ -34,10 +34,6 @@ const config = defineCommand({
|
|
|
34
34
|
type: "string",
|
|
35
35
|
description: "Override the global config home used for opencode/ and vvoc/.",
|
|
36
36
|
},
|
|
37
|
-
force: {
|
|
38
|
-
type: "boolean",
|
|
39
|
-
description: "Allow overwriting an unmanaged guardian config.",
|
|
40
|
-
},
|
|
41
37
|
print: {
|
|
42
38
|
type: "boolean",
|
|
43
39
|
description: "Print the config instead of writing it.",
|
|
@@ -77,11 +73,8 @@ const config = defineCommand({
|
|
|
77
73
|
cwd: process.cwd(),
|
|
78
74
|
configDir,
|
|
79
75
|
});
|
|
80
|
-
const result = await writeGuardianConfig(paths, overrides
|
|
76
|
+
const result = await writeGuardianConfig(paths, overrides);
|
|
81
77
|
console.log(describeWriteResult(result));
|
|
82
|
-
if (result.action === "skipped") {
|
|
83
|
-
process.exitCode = 1;
|
|
84
|
-
}
|
|
85
78
|
// END_BLOCK_APPLY_GUARDIAN_CONFIG_COMMAND
|
|
86
79
|
},
|
|
87
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardian.js","sourceRoot":"","sources":["../../src/commands/guardian.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,iBAAiB;AACjB,wBAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"guardian.js","sourceRoot":"","sources":["../../src/commands/guardian.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
|
-
// VERSION: 0.
|
|
2
|
+
// VERSION: 0.5.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
|
-
// PURPOSE: Interactive project initialization: registers @osovv/vv-opencode in OpenCode plugin array and scaffolds
|
|
5
|
-
// SCOPE: Scope selection, plugin registration, managed OpenCode agent registration, managed agent prompt scaffolding, config
|
|
4
|
+
// PURPOSE: Interactive project initialization: registers @osovv/vv-opencode in OpenCode plugin array and scaffolds the canonical vvoc.json config plus managed prompts. Uses @clack/prompts for TTY prompts. Interactive mode is the default; --non-interactive flag enables batch mode.
|
|
5
|
+
// SCOPE: Scope selection, plugin registration, managed OpenCode agent registration, managed agent prompt 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,11 +15,11 @@
|
|
|
15
15
|
// END_MODULE_MAP
|
|
16
16
|
//
|
|
17
17
|
// START_CHANGE_SUMMARY
|
|
18
|
-
// LAST_CHANGE: [v0.
|
|
18
|
+
// LAST_CHANGE: [v0.5.0 - Switched init to seed the canonical global vvoc.json config file.]
|
|
19
19
|
// END_CHANGE_SUMMARY
|
|
20
20
|
import { defineCommand } from "citty";
|
|
21
21
|
import * as p from "@clack/prompts";
|
|
22
|
-
import { ensurePackageInstalled,
|
|
22
|
+
import { ensurePackageInstalled, installManagedAgentPrompts, installVvocConfig, inspectInstallation, resolvePaths, syncManagedAgentRegistrations, } from "../lib/opencode.js";
|
|
23
23
|
export default defineCommand({
|
|
24
24
|
meta: {
|
|
25
25
|
name: "init",
|
|
@@ -89,7 +89,7 @@ async function runInit(options) {
|
|
|
89
89
|
selectedScope = scopeAnswer;
|
|
90
90
|
const reloadedPaths = await resolvePaths({ scope: selectedScope, cwd, configDir });
|
|
91
91
|
const inspection = await inspectInstallation(reloadedPaths);
|
|
92
|
-
if (inspection.opencode.pluginConfigured) {
|
|
92
|
+
if (inspection.opencode.pluginConfigured && inspection.vvoc.exists) {
|
|
93
93
|
const overwrite = await p.confirm({
|
|
94
94
|
message: `@osovv/vv-opencode is already configured. Overwrite?`,
|
|
95
95
|
initialValue: false,
|
|
@@ -114,12 +114,9 @@ async function runInit(options) {
|
|
|
114
114
|
for (const result of await installManagedAgentPrompts(finalPaths, { force: true })) {
|
|
115
115
|
p.log.info(result.path + " - " + result.action);
|
|
116
116
|
}
|
|
117
|
-
p.log.step("Scaffolding
|
|
118
|
-
const
|
|
119
|
-
p.log.info(
|
|
120
|
-
p.log.step("Scaffolding Memory config...");
|
|
121
|
-
const memoryResult = await installMemoryConfig(finalPaths, { force: true });
|
|
122
|
-
p.log.info(memoryResult.path + " - " + memoryResult.action);
|
|
117
|
+
p.log.step("Scaffolding canonical vvoc config...");
|
|
118
|
+
const vvocConfigResult = await installVvocConfig(finalPaths);
|
|
119
|
+
p.log.info(vvocConfigResult.path + " - " + vvocConfigResult.action);
|
|
123
120
|
p.outro(`vvoc initialized successfully
|
|
124
121
|
|
|
125
122
|
💡 Highly recommended: Install RTK for 60-90% token savings on git/test/lint commands
|
|
@@ -130,14 +127,13 @@ export async function runInitNonInteractive(options) {
|
|
|
130
127
|
const { scope, cwd, configDir } = options;
|
|
131
128
|
const paths = await resolvePaths({ scope, cwd, configDir });
|
|
132
129
|
const inspection = await inspectInstallation(paths);
|
|
133
|
-
if (inspection.opencode.pluginConfigured) {
|
|
130
|
+
if (inspection.opencode.pluginConfigured && inspection.vvoc.exists) {
|
|
134
131
|
console.log("Already configured. Run `vvoc sync` to update configs.");
|
|
135
132
|
return;
|
|
136
133
|
}
|
|
137
134
|
await ensurePackageInstalled(paths);
|
|
138
135
|
await syncManagedAgentRegistrations(paths);
|
|
139
136
|
await installManagedAgentPrompts(paths, { force: true });
|
|
140
|
-
await
|
|
141
|
-
await installMemoryConfig(paths, { force: true });
|
|
137
|
+
await installVvocConfig(paths);
|
|
142
138
|
}
|
|
143
139
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,iBAAiB;AACjB,wBAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,22 +11,7 @@ declare const _default: import("citty").CommandDef<{
|
|
|
11
11
|
};
|
|
12
12
|
readonly force: {
|
|
13
13
|
readonly type: "boolean";
|
|
14
|
-
readonly description: "Allow overwriting
|
|
15
|
-
};
|
|
16
|
-
readonly "guardian-config": {
|
|
17
|
-
readonly type: "boolean";
|
|
18
|
-
readonly default: true;
|
|
19
|
-
readonly description: "Create guardian.jsonc when missing.";
|
|
20
|
-
};
|
|
21
|
-
readonly "memory-config": {
|
|
22
|
-
readonly type: "boolean";
|
|
23
|
-
readonly default: true;
|
|
24
|
-
readonly description: "Create memory.jsonc when missing.";
|
|
25
|
-
};
|
|
26
|
-
readonly "secrets-redaction-config": {
|
|
27
|
-
readonly type: "boolean";
|
|
28
|
-
readonly default: true;
|
|
29
|
-
readonly description: "Create secrets-redaction.config.json when missing.";
|
|
14
|
+
readonly description: "Allow overwriting managed prompt files when needed.";
|
|
30
15
|
};
|
|
31
16
|
}>;
|
|
32
17
|
export default _default;
|