@osovv/vv-opencode 0.13.0 → 0.16.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.
Files changed (47) hide show
  1. package/README.md +42 -35
  2. package/dist/commands/agent.js +23 -87
  3. package/dist/commands/agent.js.map +1 -1
  4. package/dist/commands/config-validate.d.ts +4 -24
  5. package/dist/commands/config-validate.js +52 -242
  6. package/dist/commands/config-validate.js.map +1 -1
  7. package/dist/commands/doctor.js +10 -9
  8. package/dist/commands/doctor.js.map +1 -1
  9. package/dist/commands/guardian.js +6 -13
  10. package/dist/commands/guardian.js.map +1 -1
  11. package/dist/commands/init.js +11 -15
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/commands/install.d.ts +1 -16
  14. package/dist/commands/install.js +8 -44
  15. package/dist/commands/install.js.map +1 -1
  16. package/dist/commands/status.js +9 -9
  17. package/dist/commands/status.js.map +1 -1
  18. package/dist/commands/sync.d.ts +1 -1
  19. package/dist/commands/sync.js +8 -10
  20. package/dist/commands/sync.js.map +1 -1
  21. package/dist/commands/upgrade.d.ts +21 -1
  22. package/dist/commands/upgrade.js +205 -51
  23. package/dist/commands/upgrade.js.map +1 -1
  24. package/dist/lib/opencode.d.ts +19 -52
  25. package/dist/lib/opencode.js +86 -336
  26. package/dist/lib/opencode.js.map +1 -1
  27. package/dist/lib/package.d.ts +2 -0
  28. package/dist/lib/package.js +14 -10
  29. package/dist/lib/package.js.map +1 -1
  30. package/dist/lib/vvoc-config.d.ts +209 -0
  31. package/dist/lib/vvoc-config.js +642 -0
  32. package/dist/lib/vvoc-config.js.map +1 -0
  33. package/dist/lib/vvoc-paths.d.ts +2 -0
  34. package/dist/lib/vvoc-paths.js +9 -3
  35. package/dist/lib/vvoc-paths.js.map +1 -1
  36. package/dist/plugins/guardian/index.js +24 -206
  37. package/dist/plugins/guardian/index.js.map +1 -1
  38. package/dist/plugins/memory/index.js +1 -1
  39. package/dist/plugins/memory/index.js.map +1 -1
  40. package/dist/plugins/memory-store.d.ts +2 -9
  41. package/dist/plugins/memory-store.js +20 -127
  42. package/dist/plugins/memory-store.js.map +1 -1
  43. package/dist/plugins/secrets-redaction/config.d.ts +3 -20
  44. package/dist/plugins/secrets-redaction/config.js +33 -134
  45. package/dist/plugins/secrets-redaction/config.js.map +1 -1
  46. package/package.json +3 -1
  47. package/schemas/vvoc/v1.json +94 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osovv/vv-opencode",
3
- "version": "0.13.0",
3
+ "version": "0.16.0",
4
4
  "description": "Portable OpenCode workflow plugins, explicit memory, and CLI tooling.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,6 +25,7 @@
25
25
  },
26
26
  "files": [
27
27
  "dist",
28
+ "schemas",
28
29
  "templates",
29
30
  "README.md"
30
31
  ],
@@ -65,6 +66,7 @@
65
66
  "@clack/prompts": "^1.2.0",
66
67
  "@opencode-ai/plugin": "1.3.17",
67
68
  "@opencode-ai/sdk": "1.3.17",
69
+ "ajv": "^8.17.1",
68
70
  "citty": "0.2.2",
69
71
  "jsonc-parser": "3.3.1"
70
72
  },
@@ -0,0 +1,94 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cdn.jsdelivr.net/npm/@osovv/vv-opencode@0.16.0/schemas/vvoc/v1.json",
4
+ "title": "vvoc config",
5
+ "description": "Canonical vvoc configuration document.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["$schema", "version", "guardian", "memory", "secretsRedaction"],
9
+ "properties": {
10
+ "$schema": {
11
+ "type": "string",
12
+ "minLength": 1,
13
+ "description": "Hosted JSON Schema URL for vvoc.json."
14
+ },
15
+ "version": {
16
+ "type": "integer",
17
+ "const": 1
18
+ },
19
+ "guardian": {
20
+ "type": "object",
21
+ "additionalProperties": false,
22
+ "required": ["timeoutMs", "approvalRiskThreshold", "reviewToastDurationMs"],
23
+ "properties": {
24
+ "model": { "type": "string", "minLength": 1 },
25
+ "variant": { "type": "string", "minLength": 1 },
26
+ "timeoutMs": { "type": "integer", "minimum": 1 },
27
+ "approvalRiskThreshold": { "type": "integer", "minimum": 0, "maximum": 100 },
28
+ "reviewToastDurationMs": { "type": "integer", "minimum": 1 }
29
+ }
30
+ },
31
+ "memory": {
32
+ "type": "object",
33
+ "additionalProperties": false,
34
+ "required": ["enabled", "defaultSearchLimit"],
35
+ "properties": {
36
+ "enabled": { "type": "boolean" },
37
+ "defaultSearchLimit": { "type": "integer", "minimum": 1 },
38
+ "reviewerModel": { "type": "string", "minLength": 1 },
39
+ "reviewerVariant": { "type": "string", "minLength": 1 }
40
+ }
41
+ },
42
+ "secretsRedaction": {
43
+ "type": "object",
44
+ "additionalProperties": false,
45
+ "required": ["enabled", "secret", "ttlMs", "maxMappings", "patterns", "debug"],
46
+ "properties": {
47
+ "enabled": { "type": "boolean" },
48
+ "secret": { "type": "string", "minLength": 1 },
49
+ "ttlMs": { "type": "integer", "minimum": 0 },
50
+ "maxMappings": { "type": "integer", "minimum": 1 },
51
+ "debug": { "type": "boolean" },
52
+ "patterns": {
53
+ "type": "object",
54
+ "additionalProperties": false,
55
+ "required": ["keywords", "regex", "builtin", "exclude"],
56
+ "properties": {
57
+ "keywords": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "object",
61
+ "additionalProperties": false,
62
+ "required": ["value"],
63
+ "properties": {
64
+ "value": { "type": "string", "minLength": 1 },
65
+ "category": { "type": "string", "minLength": 1 }
66
+ }
67
+ }
68
+ },
69
+ "regex": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "object",
73
+ "additionalProperties": false,
74
+ "required": ["pattern", "category"],
75
+ "properties": {
76
+ "pattern": { "type": "string", "minLength": 1 },
77
+ "category": { "type": "string", "minLength": 1 }
78
+ }
79
+ }
80
+ },
81
+ "builtin": {
82
+ "type": "array",
83
+ "items": { "type": "string", "minLength": 1 }
84
+ },
85
+ "exclude": {
86
+ "type": "array",
87
+ "items": { "type": "string", "minLength": 1 }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }