@osovv/vv-opencode 1.3.5 → 1.3.6-rc.1

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,11 +1,19 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://cdn.jsdelivr.net/npm/@osovv/vv-opencode@1.3.5/schemas/vvoc/v3.json",
3
+ "$id": "https://cdn.jsdelivr.net/npm/@osovv/vv-opencode@1.3.6-rc.1/schemas/vvoc/v3.json",
4
4
  "title": "vvoc config",
5
5
  "description": "Canonical vvoc configuration document.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
- "required": ["$schema", "version", "roles", "guardian", "secretsRedaction", "presets", "plugins"],
8
+ "required": [
9
+ "$schema",
10
+ "version",
11
+ "roles",
12
+ "guardian",
13
+ "secretsRedaction",
14
+ "presets",
15
+ "plugins"
16
+ ],
9
17
  "properties": {
10
18
  "$schema": {
11
19
  "type": "string",
@@ -31,48 +39,101 @@
31
39
  "orchestration": {
32
40
  "type": "object",
33
41
  "additionalProperties": false,
34
- "required": ["profile"],
42
+ "required": [
43
+ "profile"
44
+ ],
35
45
  "properties": {
36
46
  "profile": {
37
47
  "type": "string",
38
- "enum": ["single-session", "balanced", "orchestrated"]
48
+ "enum": [
49
+ "single-session",
50
+ "balanced",
51
+ "orchestrated"
52
+ ]
39
53
  }
40
54
  }
41
55
  },
42
56
  "guardian": {
43
57
  "type": "object",
44
58
  "additionalProperties": false,
45
- "required": ["timeoutMs", "approvalRiskThreshold", "reviewToastDurationMs"],
59
+ "required": [
60
+ "timeoutMs",
61
+ "approvalRiskThreshold",
62
+ "reviewToastDurationMs"
63
+ ],
46
64
  "properties": {
47
- "model": { "type": "string", "minLength": 1 },
48
- "timeoutMs": { "type": "integer", "minimum": 1 },
49
- "approvalRiskThreshold": { "type": "integer", "minimum": 0, "maximum": 100 },
50
- "reviewToastDurationMs": { "type": "integer", "minimum": 1 }
65
+ "model": {
66
+ "type": "string",
67
+ "minLength": 1
68
+ },
69
+ "timeoutMs": {
70
+ "type": "integer",
71
+ "minimum": 1
72
+ },
73
+ "approvalRiskThreshold": {
74
+ "type": "integer",
75
+ "minimum": 0,
76
+ "maximum": 100
77
+ },
78
+ "reviewToastDurationMs": {
79
+ "type": "integer",
80
+ "minimum": 1
81
+ }
51
82
  }
52
83
  },
53
84
  "secretsRedaction": {
54
85
  "type": "object",
55
86
  "additionalProperties": false,
56
- "required": ["secret", "ttlMs", "maxMappings", "patterns", "debug"],
87
+ "required": [
88
+ "secret",
89
+ "ttlMs",
90
+ "maxMappings",
91
+ "patterns",
92
+ "debug"
93
+ ],
57
94
  "properties": {
58
- "secret": { "type": "string", "minLength": 1 },
59
- "ttlMs": { "type": "integer", "minimum": 0 },
60
- "maxMappings": { "type": "integer", "minimum": 1 },
61
- "debug": { "type": "boolean" },
95
+ "secret": {
96
+ "type": "string",
97
+ "minLength": 1
98
+ },
99
+ "ttlMs": {
100
+ "type": "integer",
101
+ "minimum": 0
102
+ },
103
+ "maxMappings": {
104
+ "type": "integer",
105
+ "minimum": 1
106
+ },
107
+ "debug": {
108
+ "type": "boolean"
109
+ },
62
110
  "patterns": {
63
111
  "type": "object",
64
112
  "additionalProperties": false,
65
- "required": ["keywords", "regex", "builtin", "exclude"],
113
+ "required": [
114
+ "keywords",
115
+ "regex",
116
+ "builtin",
117
+ "exclude"
118
+ ],
66
119
  "properties": {
67
120
  "keywords": {
68
121
  "type": "array",
69
122
  "items": {
70
123
  "type": "object",
71
124
  "additionalProperties": false,
72
- "required": ["value"],
125
+ "required": [
126
+ "value"
127
+ ],
73
128
  "properties": {
74
- "value": { "type": "string", "minLength": 1 },
75
- "category": { "type": "string", "minLength": 1 }
129
+ "value": {
130
+ "type": "string",
131
+ "minLength": 1
132
+ },
133
+ "category": {
134
+ "type": "string",
135
+ "minLength": 1
136
+ }
76
137
  }
77
138
  }
78
139
  },
@@ -81,20 +142,35 @@
81
142
  "items": {
82
143
  "type": "object",
83
144
  "additionalProperties": false,
84
- "required": ["pattern", "category"],
145
+ "required": [
146
+ "pattern",
147
+ "category"
148
+ ],
85
149
  "properties": {
86
- "pattern": { "type": "string", "minLength": 1 },
87
- "category": { "type": "string", "minLength": 1 }
150
+ "pattern": {
151
+ "type": "string",
152
+ "minLength": 1
153
+ },
154
+ "category": {
155
+ "type": "string",
156
+ "minLength": 1
157
+ }
88
158
  }
89
159
  }
90
160
  },
91
161
  "builtin": {
92
162
  "type": "array",
93
- "items": { "type": "string", "minLength": 1 }
163
+ "items": {
164
+ "type": "string",
165
+ "minLength": 1
166
+ }
94
167
  },
95
168
  "exclude": {
96
169
  "type": "array",
97
- "items": { "type": "string", "minLength": 1 }
170
+ "items": {
171
+ "type": "string",
172
+ "minLength": 1
173
+ }
98
174
  }
99
175
  }
100
176
  }
@@ -102,13 +178,20 @@
102
178
  },
103
179
  "presets": {
104
180
  "type": "object",
105
- "propertyNames": { "minLength": 1 },
181
+ "propertyNames": {
182
+ "minLength": 1
183
+ },
106
184
  "additionalProperties": {
107
185
  "type": "object",
108
186
  "additionalProperties": false,
109
- "required": ["agents"],
187
+ "required": [
188
+ "agents"
189
+ ],
110
190
  "properties": {
111
- "description": { "type": "string", "minLength": 1 },
191
+ "description": {
192
+ "type": "string",
193
+ "minLength": 1
194
+ },
112
195
  "agents": {
113
196
  "type": "object",
114
197
  "propertyNames": {
@@ -116,16 +199,25 @@
116
199
  "pattern": "^[a-z][a-z0-9-]*$"
117
200
  },
118
201
  "minProperties": 1,
119
- "additionalProperties": { "type": "string", "minLength": 1 }
202
+ "additionalProperties": {
203
+ "type": "string",
204
+ "minLength": 1
205
+ }
120
206
  },
121
207
  "orchestration": {
122
208
  "type": "object",
123
209
  "additionalProperties": false,
124
- "required": ["profile"],
210
+ "required": [
211
+ "profile"
212
+ ],
125
213
  "properties": {
126
214
  "profile": {
127
215
  "type": "string",
128
- "enum": ["single-session", "balanced", "orchestrated"]
216
+ "enum": [
217
+ "single-session",
218
+ "balanced",
219
+ "orchestrated"
220
+ ]
129
221
  }
130
222
  }
131
223
  }
@@ -134,29 +226,47 @@
134
226
  },
135
227
  "plugins": {
136
228
  "type": "object",
137
- "propertyNames": { "minLength": 1 },
229
+ "propertyNames": {
230
+ "minLength": 1
231
+ },
138
232
  "additionalProperties": {
139
233
  "anyOf": [
140
- { "type": "boolean" },
234
+ {
235
+ "type": "boolean"
236
+ },
141
237
  {
142
238
  "type": "object",
143
239
  "additionalProperties": false,
144
240
  "properties": {
145
- "enabled": { "type": "boolean" },
241
+ "enabled": {
242
+ "type": "boolean"
243
+ },
146
244
  "routing": {
147
245
  "type": "object",
148
246
  "additionalProperties": false,
149
247
  "properties": {
150
248
  "default": {
151
249
  "type": "string",
152
- "enum": ["hashline", "replace", "str_replace_editor", "passthrough"]
250
+ "enum": [
251
+ "hashline",
252
+ "replace",
253
+ "str_replace_editor",
254
+ "passthrough"
255
+ ]
153
256
  },
154
257
  "rules": {
155
258
  "type": "object",
156
- "propertyNames": { "minLength": 1 },
259
+ "propertyNames": {
260
+ "minLength": 1
261
+ },
157
262
  "additionalProperties": {
158
263
  "type": "string",
159
- "enum": ["hashline", "replace", "str_replace_editor", "passthrough"]
264
+ "enum": [
265
+ "hashline",
266
+ "replace",
267
+ "str_replace_editor",
268
+ "passthrough"
269
+ ]
160
270
  }
161
271
  }
162
272
  }
@@ -167,17 +277,124 @@
167
277
  "type": "object",
168
278
  "additionalProperties": false,
169
279
  "properties": {
170
- "enabled": { "type": "boolean" },
171
- "protectLastCalls": { "type": "integer", "minimum": 0 },
172
- "protectRecentMessages": { "type": "integer", "minimum": 0 },
173
- "savePrunedOutput": { "type": "boolean" },
174
- "minSavingsChars": { "type": "integer", "minimum": 0 },
175
- "outputMaxChars": { "type": "integer", "minimum": 0 },
176
- "headChars": { "type": "integer", "minimum": 0 },
177
- "tailChars": { "type": "integer", "minimum": 0 },
178
- "readSlim": { "type": "boolean" },
179
- "retainTools": { "type": "array", "items": { "type": "string", "minLength": 1 } }
280
+ "enabled": {
281
+ "type": "boolean"
282
+ },
283
+ "protectLastCalls": {
284
+ "type": "integer",
285
+ "minimum": 0
286
+ },
287
+ "protectRecentMessages": {
288
+ "type": "integer",
289
+ "minimum": 0
290
+ },
291
+ "savePrunedOutput": {
292
+ "type": "boolean"
293
+ },
294
+ "minSavingsChars": {
295
+ "type": "integer",
296
+ "minimum": 0
297
+ },
298
+ "outputMaxChars": {
299
+ "type": "integer",
300
+ "minimum": 0
301
+ },
302
+ "headChars": {
303
+ "type": "integer",
304
+ "minimum": 0
305
+ },
306
+ "tailChars": {
307
+ "type": "integer",
308
+ "minimum": 0
309
+ },
310
+ "readSlim": {
311
+ "type": "boolean"
312
+ },
313
+ "retainTools": {
314
+ "type": "array",
315
+ "items": {
316
+ "type": "string",
317
+ "minLength": 1
318
+ }
319
+ }
180
320
  }
321
+ },
322
+ {
323
+ "type": "object",
324
+ "description": "peak-hours plugin entry: enabled, mode, graceActiveSessions, and provider peak-window schedules.",
325
+ "properties": {
326
+ "enabled": {
327
+ "type": "boolean"
328
+ },
329
+ "mode": {
330
+ "type": "string",
331
+ "enum": [
332
+ "soft",
333
+ "hard"
334
+ ]
335
+ },
336
+ "graceActiveSessions": {
337
+ "type": "boolean"
338
+ },
339
+ "schedules": {
340
+ "type": "object",
341
+ "propertyNames": {
342
+ "minLength": 1
343
+ },
344
+ "additionalProperties": {
345
+ "type": "object",
346
+ "properties": {
347
+ "mode": {
348
+ "type": "string",
349
+ "enum": [
350
+ "soft",
351
+ "hard"
352
+ ]
353
+ },
354
+ "windows": {
355
+ "type": "array",
356
+ "minItems": 1,
357
+ "items": {
358
+ "type": "object",
359
+ "properties": {
360
+ "start": {
361
+ "type": "string",
362
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
363
+ },
364
+ "end": {
365
+ "type": "string",
366
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
367
+ },
368
+ "tz": {
369
+ "type": "string",
370
+ "minLength": 1
371
+ },
372
+ "days": {
373
+ "type": "array",
374
+ "minItems": 1,
375
+ "items": {
376
+ "type": "integer",
377
+ "minimum": 0,
378
+ "maximum": 6
379
+ }
380
+ }
381
+ },
382
+ "required": [
383
+ "start",
384
+ "end"
385
+ ],
386
+ "additionalProperties": false
387
+ }
388
+ }
389
+ },
390
+ "required": [
391
+ "windows"
392
+ ],
393
+ "additionalProperties": false
394
+ }
395
+ }
396
+ },
397
+ "additionalProperties": false
181
398
  }
182
399
  ]
183
400
  }
@@ -190,17 +407,43 @@
190
407
  "type": "object",
191
408
  "additionalProperties": false,
192
409
  "properties": {
193
- "provider": { "type": "string", "enum": ["exa", "brave", "zai"] },
194
- "region": { "type": "string", "enum": ["international", "china"] },
195
- "apiKey": { "type": "string", "minLength": 1 }
410
+ "provider": {
411
+ "type": "string",
412
+ "enum": [
413
+ "exa",
414
+ "brave",
415
+ "zai"
416
+ ]
417
+ },
418
+ "region": {
419
+ "type": "string",
420
+ "enum": [
421
+ "international",
422
+ "china"
423
+ ]
424
+ },
425
+ "apiKey": {
426
+ "type": "string",
427
+ "minLength": 1
428
+ }
196
429
  },
197
430
  "allOf": [
198
431
  {
199
432
  "if": {
200
- "properties": { "provider": { "const": "zai" } },
201
- "required": ["provider"]
433
+ "properties": {
434
+ "provider": {
435
+ "const": "zai"
436
+ }
437
+ },
438
+ "required": [
439
+ "provider"
440
+ ]
202
441
  },
203
- "then": { "required": ["region"] }
442
+ "then": {
443
+ "required": [
444
+ "region"
445
+ ]
446
+ }
204
447
  }
205
448
  ]
206
449
  },
@@ -208,17 +451,43 @@
208
451
  "type": "object",
209
452
  "additionalProperties": false,
210
453
  "properties": {
211
- "provider": { "type": "string", "enum": ["native", "spider", "zai"] },
212
- "region": { "type": "string", "enum": ["international", "china"] },
213
- "apiKey": { "type": "string", "minLength": 1 }
454
+ "provider": {
455
+ "type": "string",
456
+ "enum": [
457
+ "native",
458
+ "spider",
459
+ "zai"
460
+ ]
461
+ },
462
+ "region": {
463
+ "type": "string",
464
+ "enum": [
465
+ "international",
466
+ "china"
467
+ ]
468
+ },
469
+ "apiKey": {
470
+ "type": "string",
471
+ "minLength": 1
472
+ }
214
473
  },
215
474
  "allOf": [
216
475
  {
217
476
  "if": {
218
- "properties": { "provider": { "const": "zai" } },
219
- "required": ["provider"]
477
+ "properties": {
478
+ "provider": {
479
+ "const": "zai"
480
+ }
481
+ },
482
+ "required": [
483
+ "provider"
484
+ ]
220
485
  },
221
- "then": { "required": ["region"] }
486
+ "then": {
487
+ "required": [
488
+ "region"
489
+ ]
490
+ }
222
491
  }
223
492
  ]
224
493
  }