@osovv/vv-opencode 0.2.4 → 0.3.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 +37 -19
- package/dist/cli.js +21 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.js +20 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/guardian.js +22 -0
- package/dist/commands/guardian.js.map +1 -1
- package/dist/commands/install.js +20 -0
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/status.js +20 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.js +20 -0
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/version.js +18 -0
- package/dist/commands/version.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/opencode.js +53 -0
- package/dist/lib/opencode.js.map +1 -1
- package/dist/lib/package.js +22 -0
- package/dist/lib/package.js.map +1 -1
- package/dist/lib/vvoc-paths.js +26 -0
- package/dist/lib/vvoc-paths.js.map +1 -1
- package/dist/plugins/guardian.js +42 -0
- package/dist/plugins/guardian.js.map +1 -1
- package/dist/plugins/memory-store.d.ts +2 -1
- package/dist/plugins/memory-store.js +78 -7
- package/dist/plugins/memory-store.js.map +1 -1
- package/dist/plugins/memory.js +43 -5
- package/dist/plugins/memory.js.map +1 -1
- package/dist/plugins/secrets-redaction/config.d.ts +26 -0
- package/dist/plugins/secrets-redaction/config.js +158 -0
- package/dist/plugins/secrets-redaction/config.js.map +1 -0
- package/dist/plugins/secrets-redaction/deep.d.ts +4 -0
- package/dist/plugins/secrets-redaction/deep.js +78 -0
- package/dist/plugins/secrets-redaction/deep.js.map +1 -0
- package/dist/plugins/secrets-redaction/engine.d.ts +14 -0
- package/dist/plugins/secrets-redaction/engine.js +113 -0
- package/dist/plugins/secrets-redaction/engine.js.map +1 -0
- package/dist/plugins/secrets-redaction/index.d.ts +2 -0
- package/dist/plugins/secrets-redaction/index.js +124 -0
- package/dist/plugins/secrets-redaction/index.js.map +1 -0
- package/dist/plugins/secrets-redaction/patterns.d.ts +26 -0
- package/dist/plugins/secrets-redaction/patterns.js +85 -0
- package/dist/plugins/secrets-redaction/patterns.js.map +1 -0
- package/dist/plugins/secrets-redaction/restore.d.ts +2 -0
- package/dist/plugins/secrets-redaction/restore.js +25 -0
- package/dist/plugins/secrets-redaction/restore.js.map +1 -0
- package/dist/plugins/secrets-redaction/session.d.ts +30 -0
- package/dist/plugins/secrets-redaction/session.js +113 -0
- package/dist/plugins/secrets-redaction/session.js.map +1 -0
- package/dist/plugins/secrets-redaction.d.ts +1 -0
- package/dist/plugins/secrets-redaction.js +16 -0
- package/dist/plugins/secrets-redaction.js.map +1 -0
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@ Current package scope:
|
|
|
6
6
|
|
|
7
7
|
- `GuardianPlugin` for permission review
|
|
8
8
|
- `MemoryPlugin` for explicit persistent memory
|
|
9
|
+
- built-in `memory-reviewer` subagent for report-only memory audits
|
|
9
10
|
- `vvoc` CLI for bootstrap, sync, and diagnostics
|
|
10
11
|
- vvoc-managed config kept separate from OpenCode config
|
|
11
12
|
|
|
@@ -48,27 +49,18 @@ Plain `vvoc` only works when the binary is available in your `PATH`, for example
|
|
|
48
49
|
|
|
49
50
|
## OpenCode usage
|
|
50
51
|
|
|
51
|
-
Add the package to your OpenCode config:
|
|
52
|
+
Add the package to your OpenCode config with a pinned version:
|
|
52
53
|
|
|
53
54
|
```json
|
|
54
55
|
{
|
|
55
56
|
"$schema": "https://opencode.ai/config.json",
|
|
56
|
-
"plugin": ["@osovv/vv-opencode"]
|
|
57
|
+
"plugin": ["@osovv/vv-opencode@<installed-version>"]
|
|
57
58
|
}
|
|
58
59
|
```
|
|
59
60
|
|
|
60
61
|
OpenCode loads all exported plugin functions from the package, so this enables both `GuardianPlugin` and `MemoryPlugin`.
|
|
61
62
|
|
|
62
|
-
`vvoc install` writes
|
|
63
|
-
|
|
64
|
-
```json
|
|
65
|
-
{
|
|
66
|
-
"$schema": "https://opencode.ai/config.json",
|
|
67
|
-
"plugin": ["@osovv/vv-opencode@<installed-version>"]
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
This avoids stale `latest` plugin cache behavior inside OpenCode.
|
|
63
|
+
`vvoc install` writes this pinned package specifier automatically and avoids stale `latest` plugin cache behavior inside OpenCode.
|
|
72
64
|
|
|
73
65
|
## Config layout
|
|
74
66
|
|
|
@@ -90,7 +82,8 @@ Examples:
|
|
|
90
82
|
|
|
91
83
|
- global Guardian config: `~/.config/vvoc/guardian.jsonc`
|
|
92
84
|
- project Guardian config: `./.vvoc/guardian.jsonc`
|
|
93
|
-
-
|
|
85
|
+
- project-local memory data: `~/.local/share/vvoc/projects/<project-id>/memory/`
|
|
86
|
+
- global shared memory data: `~/.local/share/vvoc/memory/shared/<namespace>/`
|
|
94
87
|
- project memory settings: `./.vvoc/memory.jsonc`
|
|
95
88
|
|
|
96
89
|
This keeps vvoc state clearly separated from native OpenCode config and avoids future clashes if OpenCode adds its own memory features.
|
|
@@ -109,13 +102,14 @@ Show the installed `vvoc` package version:
|
|
|
109
102
|
bun x vvoc version
|
|
110
103
|
```
|
|
111
104
|
|
|
112
|
-
Install package config and bootstrap Guardian config:
|
|
105
|
+
Install package config and bootstrap Guardian + Memory config:
|
|
113
106
|
|
|
114
107
|
```bash
|
|
115
108
|
bun x vvoc install
|
|
116
109
|
```
|
|
117
110
|
|
|
118
111
|
`install` writes the current installed package version into the OpenCode `plugin` array instead of using an unpinned `latest` reference.
|
|
112
|
+
It also creates managed `guardian.jsonc` and `memory.jsonc` files when they are missing.
|
|
119
113
|
|
|
120
114
|
Use project scope instead of global scope:
|
|
121
115
|
|
|
@@ -164,6 +158,21 @@ bun x vvoc guardian config --model "anthropic/claude-sonnet-4-5" --variant high
|
|
|
164
158
|
- Guardian now reads vvoc-managed config from `.vvoc/` or `$XDG_CONFIG_HOME/vvoc/`
|
|
165
159
|
- `vvoc install` also creates `memory.jsonc` when it is missing
|
|
166
160
|
|
|
161
|
+
### Memory config behavior
|
|
162
|
+
|
|
163
|
+
`vvoc` also manages `memory.jsonc`.
|
|
164
|
+
|
|
165
|
+
Current supported settings:
|
|
166
|
+
|
|
167
|
+
```jsonc
|
|
168
|
+
{
|
|
169
|
+
"enabled": true,
|
|
170
|
+
"defaultSearchLimit": 8
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Project config overrides global config.
|
|
175
|
+
|
|
167
176
|
## Memory plugin
|
|
168
177
|
|
|
169
178
|
`MemoryPlugin` adds explicit memory tools to OpenCode.
|
|
@@ -182,15 +191,23 @@ Memory is explicit-only:
|
|
|
182
191
|
- stored entries are never injected into the prompt automatically
|
|
183
192
|
- the agent must call memory tools directly when it needs durable context
|
|
184
193
|
- memory settings live in `./.vvoc/memory.jsonc` or `$XDG_CONFIG_HOME/vvoc/memory.jsonc`
|
|
185
|
-
- memory data
|
|
194
|
+
- session, branch, and project memory data live under `$XDG_DATA_HOME/vvoc/projects/<project-id>/memory/`
|
|
195
|
+
- shared memory data lives under `$XDG_DATA_HOME/vvoc/memory/shared/<namespace>/`
|
|
186
196
|
- the plugin adds a short system instruction that reminds the agent to consider memory tools proactively when durable context may help
|
|
187
197
|
|
|
188
198
|
Supported scopes:
|
|
189
199
|
|
|
190
|
-
- `session`
|
|
191
|
-
- `branch`
|
|
192
|
-
- `project`
|
|
193
|
-
- `shared`
|
|
200
|
+
- `session` - local to the current session in the current project
|
|
201
|
+
- `branch` - local to the current git branch in the current project
|
|
202
|
+
- `project` - local to the current project
|
|
203
|
+
- `shared` - global across projects
|
|
204
|
+
|
|
205
|
+
In practice:
|
|
206
|
+
|
|
207
|
+
- use `shared` for reusable personal preferences, reusable docs locations, and cross-project habits
|
|
208
|
+
- use `project` for repository-specific facts and workflows
|
|
209
|
+
- use `branch` for work that only matters on one branch
|
|
210
|
+
- use `session` for temporary context you want to keep only for the current session
|
|
194
211
|
|
|
195
212
|
### Memory review
|
|
196
213
|
|
|
@@ -266,6 +283,7 @@ Typical release flow:
|
|
|
266
283
|
```bash
|
|
267
284
|
bun run check
|
|
268
285
|
bun run build
|
|
286
|
+
bun run pack:check
|
|
269
287
|
npm publish
|
|
270
288
|
```
|
|
271
289
|
|
package/dist/cli.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
+
// FILE: src/cli.ts
|
|
3
|
+
// VERSION: 0.2.5
|
|
4
|
+
// START_MODULE_CONTRACT
|
|
5
|
+
// PURPOSE: Assemble and run the vvoc CLI entrypoint.
|
|
6
|
+
// SCOPE: Package version lookup, top-level command registration, and main command execution.
|
|
7
|
+
// DEPENDS: [citty, src/commands/install.ts, src/commands/sync.ts, src/commands/status.ts, src/commands/doctor.ts, src/commands/guardian.ts, src/commands/version.ts, src/lib/package.ts]
|
|
8
|
+
// LINKS: [M-CLI-COMMANDS]
|
|
9
|
+
// ROLE: SCRIPT
|
|
10
|
+
// MAP_MODE: LOCALS
|
|
11
|
+
// END_MODULE_CONTRACT
|
|
12
|
+
//
|
|
13
|
+
// START_MODULE_MAP
|
|
14
|
+
// packageVersion - Resolved package version used in CLI metadata.
|
|
15
|
+
// main - Top-level vvoc command tree.
|
|
16
|
+
// END_MODULE_MAP
|
|
17
|
+
//
|
|
18
|
+
// START_CHANGE_SUMMARY
|
|
19
|
+
// LAST_CHANGE: [v0.2.5 - Added GRACE script markup so the vvoc entrypoint and command tree can be navigated quickly.]
|
|
20
|
+
// END_CHANGE_SUMMARY
|
|
2
21
|
import { defineCommand, runMain } from "citty";
|
|
3
22
|
import doctor from "./commands/doctor.js";
|
|
4
23
|
import guardian from "./commands/guardian.js";
|
|
@@ -7,6 +26,7 @@ import status from "./commands/status.js";
|
|
|
7
26
|
import sync from "./commands/sync.js";
|
|
8
27
|
import version from "./commands/version.js";
|
|
9
28
|
import { getPackageVersion } from "./lib/package.js";
|
|
29
|
+
// START_BLOCK_BUILD_CLI_METADATA
|
|
10
30
|
const packageVersion = await getPackageVersion();
|
|
11
31
|
const main = defineCommand({
|
|
12
32
|
meta: {
|
|
@@ -23,5 +43,6 @@ const main = defineCommand({
|
|
|
23
43
|
version,
|
|
24
44
|
},
|
|
25
45
|
});
|
|
46
|
+
// END_BLOCK_BUILD_CLI_METADATA
|
|
26
47
|
await runMain(main);
|
|
27
48
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;AAEjD,MAAM,IAAI,GAAG,aAAa,CAAC;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,oDAAoD;KAClE;IACD,WAAW,EAAE;QACX,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;KACR;CACF,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,mBAAmB;AACnB,iBAAiB;AACjB,wBAAwB;AACxB,uDAAuD;AACvD,+FAA+F;AAC/F,2LAA2L;AAC3L,4BAA4B;AAC5B,iBAAiB;AACjB,qBAAqB;AACrB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,oEAAoE;AACpE,wCAAwC;AACxC,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,wHAAwH;AACxH,qBAAqB;AAErB,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,iCAAiC;AACjC,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;AAEjD,MAAM,IAAI,GAAG,aAAa,CAAC;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,oDAAoD;KAClE;IACD,WAAW,EAAE;QACX,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;KACR;CACF,CAAC,CAAC;AACH,+BAA+B;AAE/B,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
// FILE: src/commands/doctor.ts
|
|
2
|
+
// VERSION: 0.2.5
|
|
3
|
+
// START_MODULE_CONTRACT
|
|
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.
|
|
6
|
+
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
|
+
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG]
|
|
8
|
+
// ROLE: RUNTIME
|
|
9
|
+
// MAP_MODE: EXPORTS
|
|
10
|
+
// END_MODULE_CONTRACT
|
|
11
|
+
//
|
|
12
|
+
// START_MODULE_MAP
|
|
13
|
+
// default - Doctor command definition for vvoc installation diagnostics.
|
|
14
|
+
// END_MODULE_MAP
|
|
15
|
+
//
|
|
16
|
+
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [v0.2.5 - Added GRACE command markup around doctor diagnostics for deterministic troubleshooting navigation.]
|
|
18
|
+
// END_CHANGE_SUMMARY
|
|
1
19
|
import { defineCommand } from "citty";
|
|
2
20
|
import { inspectInstallation, resolvePaths } from "../lib/opencode.js";
|
|
3
21
|
export default defineCommand({
|
|
@@ -18,6 +36,7 @@ export default defineCommand({
|
|
|
18
36
|
},
|
|
19
37
|
},
|
|
20
38
|
async run({ args }) {
|
|
39
|
+
// START_BLOCK_PRINT_DIAGNOSTIC_REPORT
|
|
21
40
|
const scope = args.scope === "project" ? "project" : "global";
|
|
22
41
|
const configDir = typeof args["config-dir"] === "string" ? args["config-dir"] : undefined;
|
|
23
42
|
const paths = await resolvePaths({
|
|
@@ -51,6 +70,7 @@ export default defineCommand({
|
|
|
51
70
|
return;
|
|
52
71
|
}
|
|
53
72
|
console.log("Doctor: ok");
|
|
73
|
+
// END_BLOCK_PRINT_DIAGNOSTIC_REPORT
|
|
54
74
|
},
|
|
55
75
|
});
|
|
56
76
|
//# sourceMappingURL=doctor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
// FILE: src/commands/guardian.ts
|
|
2
|
+
// VERSION: 0.2.5
|
|
3
|
+
// START_MODULE_CONTRACT
|
|
4
|
+
// PURPOSE: Expose Guardian-specific vvoc CLI helpers.
|
|
5
|
+
// SCOPE: Guardian config command wiring plus CLI argument normalization for Guardian config values.
|
|
6
|
+
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
|
+
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG, M-PLUGIN-GUARDIAN]
|
|
8
|
+
// ROLE: RUNTIME
|
|
9
|
+
// MAP_MODE: EXPORTS
|
|
10
|
+
// END_MODULE_CONTRACT
|
|
11
|
+
//
|
|
12
|
+
// START_MODULE_MAP
|
|
13
|
+
// default - Guardian command group.
|
|
14
|
+
// END_MODULE_MAP
|
|
15
|
+
//
|
|
16
|
+
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [v0.2.5 - Added GRACE command markup around Guardian CLI helpers and argument normalization.]
|
|
18
|
+
// END_CHANGE_SUMMARY
|
|
1
19
|
import { defineCommand } from "citty";
|
|
2
20
|
import { describeWriteResult, renderGuardianConfig, resolvePaths, writeGuardianConfig, } from "../lib/opencode.js";
|
|
3
21
|
const config = defineCommand({
|
|
@@ -46,6 +64,7 @@ const config = defineCommand({
|
|
|
46
64
|
},
|
|
47
65
|
},
|
|
48
66
|
async run({ args }) {
|
|
67
|
+
// START_BLOCK_APPLY_GUARDIAN_CONFIG_COMMAND
|
|
49
68
|
const overrides = readGuardianOverridesFromArgs(args);
|
|
50
69
|
if (args.print) {
|
|
51
70
|
process.stdout.write(renderGuardianConfig(overrides));
|
|
@@ -63,6 +82,7 @@ const config = defineCommand({
|
|
|
63
82
|
if (result.action === "skipped") {
|
|
64
83
|
process.exitCode = 1;
|
|
65
84
|
}
|
|
85
|
+
// END_BLOCK_APPLY_GUARDIAN_CONFIG_COMMAND
|
|
66
86
|
},
|
|
67
87
|
});
|
|
68
88
|
export default defineCommand({
|
|
@@ -75,6 +95,7 @@ export default defineCommand({
|
|
|
75
95
|
},
|
|
76
96
|
});
|
|
77
97
|
function readGuardianOverridesFromArgs(args) {
|
|
98
|
+
// START_BLOCK_NORMALIZE_GUARDIAN_ARG_OVERRIDES
|
|
78
99
|
const overrides = {};
|
|
79
100
|
if (typeof args.model === "string" && args.model.trim()) {
|
|
80
101
|
overrides.model = args.model.trim();
|
|
@@ -94,6 +115,7 @@ function readGuardianOverridesFromArgs(args) {
|
|
|
94
115
|
if (reviewToastDurationMs !== undefined) {
|
|
95
116
|
overrides.reviewToastDurationMs = reviewToastDurationMs;
|
|
96
117
|
}
|
|
118
|
+
// END_BLOCK_NORMALIZE_GUARDIAN_ARG_OVERRIDES
|
|
97
119
|
return overrides;
|
|
98
120
|
}
|
|
99
121
|
function parsePositiveIntegerArg(value, label) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardian.js","sourceRoot":"","sources":["../../src/commands/guardian.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GAGpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,GAAG,aAAa,CAAC;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,gCAAgC;KAC9C;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC9B,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,0CAA0C;SACxD;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+DAA+D;SAC7E;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,iDAAiD;SAC/D;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,yCAAyC;SACvD;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8BAA8B;SAC5C;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gCAAgC;SAC9C;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0BAA0B;SACxC;QACD,yBAAyB,EAAE;YACzB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,mCAAmC;SACjD;QACD,0BAA0B,EAAE;YAC1B,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iCAAiC;SAC/C;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,SAAS,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;YAC/B,KAAK,EAAE,KAAc;YACrB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,SAAS;SACV,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE3F,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"guardian.js","sourceRoot":"","sources":["../../src/commands/guardian.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/install.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
// FILE: src/commands/install.ts
|
|
2
|
+
// VERSION: 0.2.5
|
|
3
|
+
// START_MODULE_CONTRACT
|
|
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.
|
|
6
|
+
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
|
+
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG]
|
|
8
|
+
// ROLE: RUNTIME
|
|
9
|
+
// MAP_MODE: EXPORTS
|
|
10
|
+
// END_MODULE_CONTRACT
|
|
11
|
+
//
|
|
12
|
+
// START_MODULE_MAP
|
|
13
|
+
// default - Install command definition for plugin registration and vvoc config bootstrap.
|
|
14
|
+
// END_MODULE_MAP
|
|
15
|
+
//
|
|
16
|
+
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [v0.2.5 - Added GRACE command markup around install flow so vvoc bootstrap behavior is easier to inspect.]
|
|
18
|
+
// END_CHANGE_SUMMARY
|
|
1
19
|
import { defineCommand } from "citty";
|
|
2
20
|
import { describeWriteResult, ensurePackageInstalled, installGuardianConfig, installMemoryConfig, resolvePaths, } from "../lib/opencode.js";
|
|
3
21
|
export default defineCommand({
|
|
@@ -32,6 +50,7 @@ export default defineCommand({
|
|
|
32
50
|
},
|
|
33
51
|
},
|
|
34
52
|
async run({ args }) {
|
|
53
|
+
// START_BLOCK_APPLY_INSTALL_COMMAND
|
|
35
54
|
const scope = args.scope === "project" ? "project" : "global";
|
|
36
55
|
const configDir = typeof args["config-dir"] === "string" ? args["config-dir"] : undefined;
|
|
37
56
|
const paths = await resolvePaths({
|
|
@@ -54,6 +73,7 @@ export default defineCommand({
|
|
|
54
73
|
}
|
|
55
74
|
const memory = await installMemoryConfig(paths, { force: Boolean(args.force) });
|
|
56
75
|
console.log(describeWriteResult(memory));
|
|
76
|
+
// END_BLOCK_APPLY_INSTALL_COMMAND
|
|
57
77
|
},
|
|
58
78
|
});
|
|
59
79
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,GAEb,MAAM,oBAAoB,CAAC;AAE5B,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,2CAA2C;KACzD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC9B,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,oCAAoC;SAClD;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+DAA+D;SAC7E;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,4DAA4D;SAC1E;QACD,iBAAiB,EAAE;YACjB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,qCAAqC;SACnD;QACD,eAAe,EAAE;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,mCAAmC;SACjD;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;YAC/B,KAAK,EAAE,KAAc;YACrB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,SAAS;SACV,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAErD,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzE,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,KAAK,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,kBAAkB,6BAA6B,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,gBAAgB,2BAA2B,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
// FILE: src/commands/status.ts
|
|
2
|
+
// VERSION: 0.2.5
|
|
3
|
+
// START_MODULE_CONTRACT
|
|
4
|
+
// PURPOSE: Show the current vv-opencode installation status.
|
|
5
|
+
// SCOPE: Scope parsing, inspection lookup, and human-readable status output for OpenCode, Guardian, and Memory config.
|
|
6
|
+
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
|
+
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG]
|
|
8
|
+
// ROLE: RUNTIME
|
|
9
|
+
// MAP_MODE: EXPORTS
|
|
10
|
+
// END_MODULE_CONTRACT
|
|
11
|
+
//
|
|
12
|
+
// START_MODULE_MAP
|
|
13
|
+
// default - Status command definition for vvoc installation reporting.
|
|
14
|
+
// END_MODULE_MAP
|
|
15
|
+
//
|
|
16
|
+
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [v0.2.5 - Added GRACE command markup around status reporting for easier operational inspection.]
|
|
18
|
+
// END_CHANGE_SUMMARY
|
|
1
19
|
import { defineCommand } from "citty";
|
|
2
20
|
import { inspectInstallation, resolvePaths } from "../lib/opencode.js";
|
|
3
21
|
export default defineCommand({
|
|
@@ -18,6 +36,7 @@ export default defineCommand({
|
|
|
18
36
|
},
|
|
19
37
|
},
|
|
20
38
|
async run({ args }) {
|
|
39
|
+
// START_BLOCK_PRINT_STATUS_REPORT
|
|
21
40
|
const scope = args.scope === "project" ? "project" : "global";
|
|
22
41
|
const configDir = typeof args["config-dir"] === "string" ? args["config-dir"] : undefined;
|
|
23
42
|
const paths = await resolvePaths({
|
|
@@ -42,6 +61,7 @@ export default defineCommand({
|
|
|
42
61
|
console.log(`- ${warning}`);
|
|
43
62
|
}
|
|
44
63
|
}
|
|
64
|
+
// END_BLOCK_PRINT_STATUS_REPORT
|
|
45
65
|
},
|
|
46
66
|
});
|
|
47
67
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAc,MAAM,oBAAoB,CAAC;AAEnF,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uCAAuC;KACrD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC9B,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,mCAAmC;SACjD;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+DAA+D;SAC7E;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;YAC/B,KAAK,EAAE,KAAc;YACrB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,SAAS;SACV,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,UAAU,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,oCAAoC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,yBAAyB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1F,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
// FILE: src/commands/sync.ts
|
|
2
|
+
// VERSION: 0.2.5
|
|
3
|
+
// START_MODULE_CONTRACT
|
|
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.
|
|
6
|
+
// DEPENDS: [citty, src/lib/opencode.ts]
|
|
7
|
+
// LINKS: [M-CLI-COMMANDS, M-CLI-CONFIG]
|
|
8
|
+
// ROLE: RUNTIME
|
|
9
|
+
// MAP_MODE: EXPORTS
|
|
10
|
+
// END_MODULE_CONTRACT
|
|
11
|
+
//
|
|
12
|
+
// START_MODULE_MAP
|
|
13
|
+
// default - Sync command definition for vvoc-managed config files.
|
|
14
|
+
// END_MODULE_MAP
|
|
15
|
+
//
|
|
16
|
+
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [v0.2.5 - Added GRACE command markup around sync flow for deterministic config maintenance navigation.]
|
|
18
|
+
// END_CHANGE_SUMMARY
|
|
1
19
|
import { defineCommand } from "citty";
|
|
2
20
|
import { describeWriteResult, ensurePackageInstalled, resolvePaths, syncGuardianConfig, syncMemoryConfig, } from "../lib/opencode.js";
|
|
3
21
|
export default defineCommand({
|
|
@@ -22,6 +40,7 @@ export default defineCommand({
|
|
|
22
40
|
},
|
|
23
41
|
},
|
|
24
42
|
async run({ args }) {
|
|
43
|
+
// START_BLOCK_APPLY_SYNC_COMMAND
|
|
25
44
|
const scope = args.scope === "project" ? "project" : "global";
|
|
26
45
|
const configDir = typeof args["config-dir"] === "string" ? args["config-dir"] : undefined;
|
|
27
46
|
const paths = await resolvePaths({
|
|
@@ -35,6 +54,7 @@ export default defineCommand({
|
|
|
35
54
|
console.log(`${opencode.changed ? "Updated" : "Kept"} ${opencode.path}`);
|
|
36
55
|
console.log(describeWriteResult(guardian));
|
|
37
56
|
console.log(describeWriteResult(memory));
|
|
57
|
+
// END_BLOCK_APPLY_SYNC_COMMAND
|
|
38
58
|
},
|
|
39
59
|
});
|
|
40
60
|
//# sourceMappingURL=sync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,wCAAwC;KACtD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC9B,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,gCAAgC;SAC9C;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+DAA+D;SAC7E;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,8CAA8C;SAC5D;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;YAC/B,KAAK,EAAE,KAAc;YACrB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,SAAS;SACV,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE7E,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,iBAAiB;AACjB,wBAAwB;AACxB,4FAA4F;AAC5F,4GAA4G;AAC5G,0CAA0C;AAC1C,0CAA0C;AAC1C,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,qEAAqE;AACrE,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,yHAAyH;AACzH,qBAAqB;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,wCAAwC;KACtD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC9B,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,gCAAgC;SAC9C;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+DAA+D;SAC7E;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,8CAA8C;SAC5D;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,iCAAiC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;YAC/B,KAAK,EAAE,KAAc;YACrB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,SAAS;SACV,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE7E,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,+BAA+B;IACjC,CAAC;CACF,CAAC,CAAC"}
|
package/dist/commands/version.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
// FILE: src/commands/version.ts
|
|
2
|
+
// VERSION: 0.2.5
|
|
3
|
+
// START_MODULE_CONTRACT
|
|
4
|
+
// PURPOSE: Print the current vv-opencode package version.
|
|
5
|
+
// SCOPE: Package identity lookup and CLI version output.
|
|
6
|
+
// DEPENDS: [citty, src/lib/package.ts]
|
|
7
|
+
// LINKS: [M-CLI-COMMANDS]
|
|
8
|
+
// ROLE: RUNTIME
|
|
9
|
+
// MAP_MODE: EXPORTS
|
|
10
|
+
// END_MODULE_CONTRACT
|
|
11
|
+
//
|
|
12
|
+
// START_MODULE_MAP
|
|
13
|
+
// default - Version command definition.
|
|
14
|
+
// END_MODULE_MAP
|
|
15
|
+
//
|
|
16
|
+
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [v0.2.5 - Added GRACE command markup around version reporting.]
|
|
18
|
+
// END_CHANGE_SUMMARY
|
|
1
19
|
import { defineCommand } from "citty";
|
|
2
20
|
import { getPackageVersion, PACKAGE_NAME } from "../lib/package.js";
|
|
3
21
|
export default defineCommand({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,4BAA4B;KAC1C;IACD,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,MAAM,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,iBAAiB;AACjB,wBAAwB;AACxB,4DAA4D;AAC5D,2DAA2D;AAC3D,yCAAyC;AACzC,4BAA4B;AAC5B,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,0CAA0C;AAC1C,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,iFAAiF;AACjF,qBAAqB;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,4BAA4B;KAC1C;IACD,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,MAAM,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
// FILE: src/index.ts
|
|
2
|
+
// VERSION: 0.3.0
|
|
3
|
+
// START_MODULE_CONTRACT
|
|
4
|
+
// PURPOSE: Re-export the public vv-opencode plugin entrypoints from the package root.
|
|
5
|
+
// SCOPE: Package-root exports for GuardianPlugin, MemoryPlugin, and SecretsRedactionPlugin.
|
|
6
|
+
// DEPENDS: [src/plugins/guardian.ts, src/plugins/memory.ts, src/plugins/secrets-redaction.ts]
|
|
7
|
+
// LINKS: [M-PLUGIN-GUARDIAN, M-PLUGIN-MEMORY, M-PLUGIN-SECRETS-REDACTION]
|
|
8
|
+
// ROLE: BARREL
|
|
9
|
+
// MAP_MODE: SUMMARY
|
|
10
|
+
// END_MODULE_CONTRACT
|
|
11
|
+
//
|
|
12
|
+
// START_MODULE_MAP
|
|
13
|
+
// GuardianPlugin, MemoryPlugin, SecretsRedactionPlugin - Public plugin exports available from @osovv/vv-opencode.
|
|
14
|
+
// END_MODULE_MAP
|
|
15
|
+
//
|
|
16
|
+
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [v0.3.0 - Added SecretsRedactionPlugin for secret redaction in LLM requests.]
|
|
18
|
+
// END_CHANGE_SUMMARY
|
|
1
19
|
export { GuardianPlugin } from "./plugins/guardian.js";
|
|
2
20
|
export { MemoryPlugin } from "./plugins/memory.js";
|
|
21
|
+
export { SecretsRedactionPlugin } from "./plugins/secrets-redaction.js";
|
|
3
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,iBAAiB;AACjB,wBAAwB;AACxB,wFAAwF;AACxF,8FAA8F;AAC9F,gGAAgG;AAChG,4EAA4E;AAC5E,iBAAiB;AACjB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,oHAAoH;AACpH,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,+FAA+F;AAC/F,qBAAqB;AAErB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
|
package/dist/lib/opencode.js
CHANGED
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
// FILE: src/lib/opencode.ts
|
|
2
|
+
// VERSION: 0.2.5
|
|
3
|
+
// START_MODULE_CONTRACT
|
|
4
|
+
// PURPOSE: Manage OpenCode plugin registration and vvoc-owned config files.
|
|
5
|
+
// SCOPE: Scope-aware path resolution, pinned plugin writes, Guardian/Memory config rendering and sync, and installation inspection.
|
|
6
|
+
// DEPENDS: [jsonc-parser, node:fs/promises, node:path, src/lib/package.ts, src/lib/vvoc-paths.ts, src/plugins/memory-store.ts]
|
|
7
|
+
// LINKS: [M-CLI-CONFIG]
|
|
8
|
+
// ROLE: RUNTIME
|
|
9
|
+
// MAP_MODE: EXPORTS
|
|
10
|
+
// END_MODULE_CONTRACT
|
|
11
|
+
//
|
|
12
|
+
// START_MODULE_MAP
|
|
13
|
+
// CLI_NAME - Canonical vvoc CLI binary name.
|
|
14
|
+
// PACKAGE_NAME - Canonical vvoc npm package name.
|
|
15
|
+
// OPENCODE_SCHEMA_URL - OpenCode config schema URL.
|
|
16
|
+
// Scope - Supported installation scopes for vvoc config writes.
|
|
17
|
+
// ResolvedPaths - Scope-aware path bundle for OpenCode and vvoc config locations.
|
|
18
|
+
// GuardianConfigOverrides - Guardian config override shape parsed from managed JSONC.
|
|
19
|
+
// WriteResult - Result shape returned by managed config write operations.
|
|
20
|
+
// InstallationInspection - Current OpenCode and vvoc installation status snapshot.
|
|
21
|
+
// resolvePaths - Resolves OpenCode and vvoc config paths for global/project scopes.
|
|
22
|
+
// ensurePackageConfigText - Ensures OpenCode config contains the pinned vvoc plugin specifier.
|
|
23
|
+
// parseGuardianConfigText - Parses Guardian config JSONC into typed overrides.
|
|
24
|
+
// renderGuardianConfig - Renders managed Guardian config JSONC.
|
|
25
|
+
// ensurePackageInstalled - Writes the pinned vvoc plugin specifier into OpenCode config.
|
|
26
|
+
// installGuardianConfig - Creates or preserves managed Guardian config.
|
|
27
|
+
// syncGuardianConfig - Rewrites managed Guardian config while preserving current values.
|
|
28
|
+
// writeGuardianConfig - Writes explicit Guardian overrides to managed config.
|
|
29
|
+
// installMemoryConfig - Creates or preserves managed Memory config.
|
|
30
|
+
// syncMemoryConfig - Rewrites managed Memory config while preserving current values.
|
|
31
|
+
// inspectInstallation - Reads current OpenCode/vvoc installation state for status and doctor commands.
|
|
32
|
+
// describeWriteResult - Formats config write outcomes for CLI output.
|
|
33
|
+
// END_MODULE_MAP
|
|
34
|
+
//
|
|
35
|
+
// START_CHANGE_SUMMARY
|
|
36
|
+
// LAST_CHANGE: [v0.2.5 - Added GRACE runtime markup and symbol-accurate export mapping for OpenCode/vvoc config helpers.]
|
|
37
|
+
// END_CHANGE_SUMMARY
|
|
1
38
|
import { applyEdits, format, modify, parse } from "jsonc-parser";
|
|
2
39
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
3
40
|
import { dirname, join } from "node:path";
|
|
@@ -18,6 +55,7 @@ const JSON_FORMAT = {
|
|
|
18
55
|
tabSize: 2,
|
|
19
56
|
eol: "\n",
|
|
20
57
|
};
|
|
58
|
+
// START_BLOCK_RESOLVE_CONFIG_PATHS
|
|
21
59
|
export async function resolvePaths(options) {
|
|
22
60
|
const configHome = getConfigHome(options.configDir);
|
|
23
61
|
const opencodeBaseDir = options.scope === "global" ? getGlobalOpencodeDir(options.configDir) : options.cwd;
|
|
@@ -41,6 +79,8 @@ export async function resolvePaths(options) {
|
|
|
41
79
|
memoryConfigAlternates: memorySelection.alternates,
|
|
42
80
|
};
|
|
43
81
|
}
|
|
82
|
+
// END_BLOCK_RESOLVE_CONFIG_PATHS
|
|
83
|
+
// START_BLOCK_ENSURE_OPENCODE_PLUGIN_CONFIG
|
|
44
84
|
export function ensurePackageConfigText(text, packageSpecifier = PACKAGE_NAME) {
|
|
45
85
|
if (!text?.trim()) {
|
|
46
86
|
return renderJson({
|
|
@@ -65,9 +105,11 @@ export function ensurePackageConfigText(text, packageSpecifier = PACKAGE_NAME) {
|
|
|
65
105
|
}
|
|
66
106
|
return ensureTrailingNewline(applyEdits(nextText, format(nextText, undefined, JSON_FORMAT)));
|
|
67
107
|
}
|
|
108
|
+
// END_BLOCK_ENSURE_OPENCODE_PLUGIN_CONFIG
|
|
68
109
|
export function parseGuardianConfigText(text, label) {
|
|
69
110
|
return normalizeGuardianOverrides(parseObjectDocument(text, label), label);
|
|
70
111
|
}
|
|
112
|
+
// START_BLOCK_RENDER_GUARDIAN_CONFIG
|
|
71
113
|
export function renderGuardianConfig(overrides = {}) {
|
|
72
114
|
const timeoutMs = overrides.timeoutMs ?? DEFAULT_GUARDIAN_TIMEOUT_MS;
|
|
73
115
|
const approvalRiskThreshold = overrides.approvalRiskThreshold ?? DEFAULT_GUARDIAN_APPROVAL_RISK_THRESHOLD;
|
|
@@ -99,6 +141,8 @@ export function renderGuardianConfig(overrides = {}) {
|
|
|
99
141
|
lines.push("}");
|
|
100
142
|
return `${lines.join("\n")}\n`;
|
|
101
143
|
}
|
|
144
|
+
// END_BLOCK_RENDER_GUARDIAN_CONFIG
|
|
145
|
+
// START_BLOCK_INSTALL_PACKAGE_AND_GUARDIAN_CONFIG
|
|
102
146
|
export async function ensurePackageInstalled(paths) {
|
|
103
147
|
const currentText = await readOptionalText(paths.opencodeConfigPath);
|
|
104
148
|
const nextText = ensurePackageConfigText(currentText, await getPinnedPackageSpecifier());
|
|
@@ -165,6 +209,8 @@ export async function writeGuardianConfig(paths, overrides, options) {
|
|
|
165
209
|
path: paths.guardianConfigPath,
|
|
166
210
|
};
|
|
167
211
|
}
|
|
212
|
+
// END_BLOCK_INSTALL_PACKAGE_AND_GUARDIAN_CONFIG
|
|
213
|
+
// START_BLOCK_INSTALL_MEMORY_CONFIG
|
|
168
214
|
export async function installMemoryConfig(paths, options) {
|
|
169
215
|
const currentText = await readOptionalText(paths.memoryConfigPath);
|
|
170
216
|
if (!currentText) {
|
|
@@ -203,6 +249,8 @@ export async function syncMemoryConfig(paths, options) {
|
|
|
203
249
|
await writeText(paths.memoryConfigPath, nextText);
|
|
204
250
|
return { action: "updated", path: paths.memoryConfigPath };
|
|
205
251
|
}
|
|
252
|
+
// END_BLOCK_INSTALL_MEMORY_CONFIG
|
|
253
|
+
// START_BLOCK_INSPECT_INSTALLATION_STATE
|
|
206
254
|
export async function inspectInstallation(paths) {
|
|
207
255
|
const warnings = [];
|
|
208
256
|
const problems = [];
|
|
@@ -289,6 +337,7 @@ export async function inspectInstallation(paths) {
|
|
|
289
337
|
problems,
|
|
290
338
|
};
|
|
291
339
|
}
|
|
340
|
+
// END_BLOCK_INSPECT_INSTALLATION_STATE
|
|
292
341
|
export function describeWriteResult(result) {
|
|
293
342
|
let message = "";
|
|
294
343
|
switch (result.action) {
|
|
@@ -307,6 +356,7 @@ export function describeWriteResult(result) {
|
|
|
307
356
|
}
|
|
308
357
|
return result.reason ? `${message} (${result.reason})` : message;
|
|
309
358
|
}
|
|
359
|
+
// START_BLOCK_PARSE_AND_NORMALIZE_CONFIG_VALUES
|
|
310
360
|
function parseObjectDocument(text, label) {
|
|
311
361
|
const errors = [];
|
|
312
362
|
const value = parse(text, errors, {
|
|
@@ -400,6 +450,8 @@ function readThreshold(value, label) {
|
|
|
400
450
|
}
|
|
401
451
|
throw new Error(`${label}: expected a number between 0 and 100`);
|
|
402
452
|
}
|
|
453
|
+
// END_BLOCK_PARSE_AND_NORMALIZE_CONFIG_VALUES
|
|
454
|
+
// START_BLOCK_FILESYSTEM_HELPERS
|
|
403
455
|
function isManagedFile(text) {
|
|
404
456
|
return text.includes(MANAGED_MARKER);
|
|
405
457
|
}
|
|
@@ -436,4 +488,5 @@ async function selectPrimaryPath(candidates) {
|
|
|
436
488
|
alternates: existing.slice(1),
|
|
437
489
|
};
|
|
438
490
|
}
|
|
491
|
+
// END_BLOCK_FILESYSTEM_HELPERS
|
|
439
492
|
//# sourceMappingURL=opencode.js.map
|