@osovv/vv-opencode 0.35.26 → 0.35.28

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 (46) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +9 -3
  3. package/dist/commands/status.js +8 -0
  4. package/dist/commands/status.js.map +1 -1
  5. package/dist/commands/upgrade.js +4 -2
  6. package/dist/commands/upgrade.js.map +1 -1
  7. package/dist/lib/config-layers.d.ts +10 -5
  8. package/dist/lib/config-layers.js +84 -28
  9. package/dist/lib/config-layers.js.map +1 -1
  10. package/dist/lib/opencode.js +11 -134
  11. package/dist/lib/opencode.js.map +1 -1
  12. package/dist/lib/plugin-toggle-config.d.ts +4 -5
  13. package/dist/lib/plugin-toggle-config.js +13 -12
  14. package/dist/lib/plugin-toggle-config.js.map +1 -1
  15. package/dist/lib/vvoc-config.d.ts +0 -1
  16. package/dist/lib/vvoc-config.js +4 -296
  17. package/dist/lib/vvoc-config.js.map +1 -1
  18. package/dist/plugins/guardian/index.js +14 -66
  19. package/dist/plugins/guardian/index.js.map +1 -1
  20. package/dist/plugins/hashline-edit/hash-computation.d.ts +0 -1
  21. package/dist/plugins/hashline-edit/hash-computation.js +3 -6
  22. package/dist/plugins/hashline-edit/hash-computation.js.map +1 -1
  23. package/dist/plugins/hashline-edit/index.js +7 -4
  24. package/dist/plugins/hashline-edit/index.js.map +1 -1
  25. package/dist/plugins/hashline-edit/validation.js +5 -4
  26. package/dist/plugins/hashline-edit/validation.js.map +1 -1
  27. package/dist/plugins/model-roles/index.js +8 -7
  28. package/dist/plugins/model-roles/index.js.map +1 -1
  29. package/dist/plugins/secrets-redaction/config.d.ts +7 -1
  30. package/dist/plugins/secrets-redaction/config.js +13 -9
  31. package/dist/plugins/secrets-redaction/config.js.map +1 -1
  32. package/dist/plugins/secrets-redaction/index.js +9 -6
  33. package/dist/plugins/secrets-redaction/index.js.map +1 -1
  34. package/dist/plugins/system-context-injection/index.js +11 -13
  35. package/dist/plugins/system-context-injection/index.js.map +1 -1
  36. package/dist/plugins/workflow/index.js +6 -3
  37. package/dist/plugins/workflow/index.js.map +1 -1
  38. package/dist/plugins/workflow/persistence.js +5 -4
  39. package/dist/plugins/workflow/persistence.js.map +1 -1
  40. package/dist/plugins/workflow/state.js +12 -0
  41. package/dist/plugins/workflow/state.js.map +1 -1
  42. package/package.json +1 -1
  43. package/schemas/vvoc/v3.json +3 -4
  44. package/dist/commands/agent.d.ts +0 -2
  45. package/dist/commands/agent.js +0 -29
  46. package/dist/commands/agent.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  // FILE: src/lib/vvoc-config.ts
2
- // VERSION: 2.3.4
2
+ // VERSION: 3.0.0
3
3
  // START_MODULE_CONTRACT
4
4
  // PURPOSE: Define the canonical vvoc.json document shape, schema versions, normalization rules, and validation helpers.
5
- // SCOPE: Versioned schema constants, preset-aware default config generation including managed built-in presets, strict and lenient config parsing, section rendering/parsing helpers, and schema plus semantic validation for vvoc-owned configuration including OpenCode alias-model defaults.
5
+ // SCOPE: Versioned schema constants, preset-aware default config generation including managed built-in presets, strict current config parsing, section rendering/parsing helpers, and schema plus semantic validation for vvoc-owned configuration including OpenCode alias-model defaults.
6
6
  // DEPENDS: [ajv/dist/2020, src/lib/agent-models.ts, src/lib/package.ts, src/lib/vvoc-preset-registry.ts]
7
7
  // LINKS: [M-CLI-CONFIG, M-CLI-CONFIG-VALIDATE, M-CLI-PRESET, M-PLUGIN-GUARDIAN, M-PLUGIN-SECRETS-REDACTION-INTERNAL-CONFIG]
8
8
  // ROLE: RUNTIME
@@ -32,13 +32,13 @@
32
32
  // renderGuardianConfig - Renders a guardian section JSON snippet.
33
33
  // parseVersionedVvocConfigText - Strictly parses vvoc.json and returns source version plus config.
34
34
  // parseVvocConfigText - Strictly parses the canonical vvoc config document.
35
- // loadLenientVvocConfigText - Parses vvoc.json leniently for runtime fallback.
36
35
  // renderVvocConfig - Renders canonical vvoc.json.
37
36
  // validateVvocConfigDocument - Validates parsed vvoc config against JSON Schema.
38
37
  // END_MODULE_MAP
39
38
  //
40
39
  //
41
40
  // START_CHANGE_SUMMARY
41
+ // LAST_CHANGE: [v3.0.0 - Removed lenient vvoc config parsing and made plugins a required canonical v3 section.]
42
42
  // LAST_CHANGE: [v2.5.0 - Added reviewer and orchestrator role defaults to createDefaultRoleAssignments.]
43
43
  // LAST_CHANGE: [v2.4.1 - Preserved strict-parsed plugin toggle values instead of resetting them to defaults.]
44
44
  // LAST_CHANGE: [v2.3.4 - Moved built-in vvoc preset definitions and managed-name detection to a shared internal preset registry.]
@@ -157,7 +157,7 @@ export const VVOC_CONFIG_SCHEMA = {
157
157
  description: "Canonical vvoc configuration document.",
158
158
  type: "object",
159
159
  additionalProperties: false,
160
- required: ["$schema", "version", "roles", "guardian", "secretsRedaction", "presets"],
160
+ required: ["$schema", "version", "roles", "guardian", "secretsRedaction", "presets", "plugins"],
161
161
  properties: {
162
162
  $schema: {
163
163
  type: "string",
@@ -291,30 +291,6 @@ export function parseVersionedVvocConfigText(text, label) {
291
291
  export function parseVvocConfigText(text, label) {
292
292
  return parseVersionedVvocConfigText(text, label).config;
293
293
  }
294
- export function loadLenientVvocConfigText(text, label, warnings) {
295
- let value;
296
- try {
297
- value = parseStrictJson(text, label);
298
- }
299
- catch (error) {
300
- warnings.push(error instanceof Error ? error.message : `${label}: invalid JSON`);
301
- return createDefaultVvocConfig();
302
- }
303
- if (!isPlainObject(value)) {
304
- warnings.push(`${label}: expected a top-level object`);
305
- return createDefaultVvocConfig();
306
- }
307
- readLenientSupportedVersion(value.version, `${label}: version`, warnings);
308
- return {
309
- $schema: VVOC_CONFIG_SCHEMA_URL,
310
- version: VVOC_CONFIG_VERSION,
311
- roles: loadLenientRoleAssignments(value.roles, `${label}: roles`, warnings),
312
- guardian: loadLenientGuardianConfig(value.guardian, `${label}: guardian`, warnings),
313
- secretsRedaction: loadLenientSecretsRedactionConfig(value.secretsRedaction, `${label}: secretsRedaction`, warnings),
314
- presets: loadLenientVvocPresets(value.presets, `${label}: presets`, warnings),
315
- plugins: loadLenientPluginToggleConfig(value.plugins, `${label}: plugins`, warnings),
316
- };
317
- }
318
294
  export function renderVvocConfig(config = createDefaultVvocConfig()) {
319
295
  return renderJson({
320
296
  $schema: VVOC_CONFIG_SCHEMA_URL,
@@ -422,274 +398,6 @@ function cloneRegexRules(rules) {
422
398
  function cloneStringArray(values) {
423
399
  return values.slice();
424
400
  }
425
- function loadLenientGuardianConfig(value, label, warnings) {
426
- if (!isPlainObject(value)) {
427
- warnings.push(`${label}: expected an object`);
428
- return createGuardianConfig();
429
- }
430
- const overrides = {};
431
- if (Object.hasOwn(value, "model")) {
432
- const model = readLenientOptionalString(value.model, `${label}.model`, warnings);
433
- if (model !== undefined) {
434
- overrides.model = model;
435
- }
436
- }
437
- if (Object.hasOwn(value, "timeoutMs")) {
438
- const timeoutMs = readLenientPositiveInteger(value.timeoutMs, `${label}.timeoutMs`, warnings);
439
- if (timeoutMs !== undefined) {
440
- overrides.timeoutMs = timeoutMs;
441
- }
442
- }
443
- if (Object.hasOwn(value, "approvalRiskThreshold")) {
444
- const threshold = readLenientThreshold(value.approvalRiskThreshold, `${label}.approvalRiskThreshold`, warnings);
445
- if (threshold !== undefined) {
446
- overrides.approvalRiskThreshold = threshold;
447
- }
448
- }
449
- if (Object.hasOwn(value, "reviewToastDurationMs")) {
450
- const reviewToastDurationMs = readLenientPositiveInteger(value.reviewToastDurationMs, `${label}.reviewToastDurationMs`, warnings);
451
- if (reviewToastDurationMs !== undefined) {
452
- overrides.reviewToastDurationMs = reviewToastDurationMs;
453
- }
454
- }
455
- return createGuardianConfig(overrides);
456
- }
457
- function loadLenientSecretsRedactionConfig(value, label, warnings) {
458
- if (!isPlainObject(value)) {
459
- warnings.push(`${label}: expected an object`);
460
- return createDefaultSecretsRedactionConfig();
461
- }
462
- const defaults = createDefaultSecretsRedactionConfig();
463
- const config = createDefaultSecretsRedactionConfig();
464
- if (Object.hasOwn(value, "secret")) {
465
- const secret = readLenientOptionalString(value.secret, `${label}.secret`, warnings);
466
- if (secret !== undefined) {
467
- config.secret = secret;
468
- }
469
- }
470
- if (Object.hasOwn(value, "ttlMs")) {
471
- const ttlMs = readLenientInteger(value.ttlMs, `${label}.ttlMs`, warnings, 0);
472
- if (ttlMs !== undefined) {
473
- config.ttlMs = ttlMs;
474
- }
475
- }
476
- if (Object.hasOwn(value, "maxMappings")) {
477
- const maxMappings = readLenientPositiveInteger(value.maxMappings, `${label}.maxMappings`, warnings);
478
- if (maxMappings !== undefined) {
479
- config.maxMappings = maxMappings;
480
- }
481
- }
482
- if (Object.hasOwn(value, "debug")) {
483
- if (typeof value.debug === "boolean") {
484
- config.debug = value.debug;
485
- }
486
- else {
487
- warnings.push(`${label}.debug: expected a boolean`);
488
- }
489
- }
490
- const patternsValue = value.patterns;
491
- if (patternsValue !== undefined) {
492
- if (!isPlainObject(patternsValue)) {
493
- warnings.push(`${label}.patterns: expected an object`);
494
- config.patterns = defaults.patterns;
495
- }
496
- else {
497
- config.patterns = {
498
- keywords: loadLenientKeywordRules(patternsValue.keywords, `${label}.patterns.keywords`, warnings),
499
- regex: loadLenientRegexRules(patternsValue.regex, `${label}.patterns.regex`, warnings),
500
- builtin: loadLenientStringArray(patternsValue.builtin, `${label}.patterns.builtin`, warnings, defaults.patterns.builtin),
501
- exclude: loadLenientStringArray(patternsValue.exclude, `${label}.patterns.exclude`, warnings, defaults.patterns.exclude),
502
- };
503
- }
504
- }
505
- return config;
506
- }
507
- function loadLenientKeywordRules(value, label, warnings) {
508
- if (value === undefined) {
509
- return [];
510
- }
511
- if (!Array.isArray(value)) {
512
- warnings.push(`${label}: expected an array`);
513
- return [];
514
- }
515
- const rules = [];
516
- for (const [index, entry] of value.entries()) {
517
- if (!isPlainObject(entry)) {
518
- warnings.push(`${label}[${index}]: expected an object`);
519
- continue;
520
- }
521
- const ruleValue = readLenientOptionalString(entry.value, `${label}[${index}].value`, warnings);
522
- if (!ruleValue) {
523
- continue;
524
- }
525
- const category = Object.hasOwn(entry, "category")
526
- ? readLenientOptionalString(entry.category, `${label}[${index}].category`, warnings)
527
- : undefined;
528
- rules.push(compactObject({ value: ruleValue, category }));
529
- }
530
- return rules;
531
- }
532
- function loadLenientRegexRules(value, label, warnings) {
533
- if (value === undefined) {
534
- return [];
535
- }
536
- if (!Array.isArray(value)) {
537
- warnings.push(`${label}: expected an array`);
538
- return [];
539
- }
540
- const rules = [];
541
- for (const [index, entry] of value.entries()) {
542
- if (!isPlainObject(entry)) {
543
- warnings.push(`${label}[${index}]: expected an object`);
544
- continue;
545
- }
546
- const pattern = readLenientOptionalString(entry.pattern, `${label}[${index}].pattern`, warnings);
547
- const category = readLenientOptionalString(entry.category, `${label}[${index}].category`, warnings);
548
- if (!pattern || !category) {
549
- continue;
550
- }
551
- rules.push({ pattern, category });
552
- }
553
- return rules;
554
- }
555
- function loadLenientStringArray(value, label, warnings, fallback) {
556
- if (value === undefined) {
557
- return cloneStringArray(fallback);
558
- }
559
- if (!Array.isArray(value)) {
560
- warnings.push(`${label}: expected an array`);
561
- return cloneStringArray(fallback);
562
- }
563
- const entries = value
564
- .map((entry, index) => {
565
- const normalized = readLenientOptionalString(entry, `${label}[${index}]`, warnings);
566
- return normalized ?? "";
567
- })
568
- .filter(Boolean);
569
- return entries;
570
- }
571
- function loadLenientVvocPresets(value, label, warnings) {
572
- if (!isPlainObject(value)) {
573
- warnings.push(`${label}: expected an object`);
574
- return createDefaultVvocPresets();
575
- }
576
- const presets = {};
577
- for (const [presetName, presetValue] of Object.entries(value)) {
578
- if (!presetName.trim()) {
579
- warnings.push(`${label}: preset names must be non-empty strings`);
580
- continue;
581
- }
582
- if (isBuiltinVvocPresetName(presetName)) {
583
- continue;
584
- }
585
- if (!isPlainObject(presetValue)) {
586
- warnings.push(`${label}.${presetName}: expected an object`);
587
- continue;
588
- }
589
- const description = Object.hasOwn(presetValue, "description")
590
- ? readLenientOptionalString(presetValue.description, `${label}.${presetName}.description`, warnings)
591
- : undefined;
592
- const agents = loadLenientVvocPresetAgents(presetValue.agents, `${label}.${presetName}.agents`, warnings);
593
- if (Object.keys(agents).length === 0) {
594
- warnings.push(`${label}.${presetName}.agents: expected at least one supported target`);
595
- continue;
596
- }
597
- presets[presetName] = createVvocPreset({ description, agents });
598
- }
599
- return createVvocPresets(presets);
600
- }
601
- function loadLenientPluginToggleConfig(value, label, warnings) {
602
- if (!isPlainObject(value)) {
603
- warnings.push(`${label}: expected an object`);
604
- return createDefaultPluginToggleConfig();
605
- }
606
- const config = createDefaultPluginToggleConfig();
607
- for (const [pluginName, pluginValue] of Object.entries(value)) {
608
- if (typeof pluginValue === "boolean") {
609
- config[pluginName] = pluginValue;
610
- }
611
- }
612
- return config;
613
- }
614
- function loadLenientVvocPresetAgents(value, label, warnings) {
615
- if (!isPlainObject(value)) {
616
- warnings.push(`${label}: expected an object`);
617
- return {};
618
- }
619
- const agents = {};
620
- for (const [roleId, modelValue] of Object.entries(value)) {
621
- let normalizedRoleId;
622
- try {
623
- normalizedRoleId = normalizeRoleId(roleId, `${label}.${roleId}`);
624
- }
625
- catch (error) {
626
- warnings.push(error instanceof Error ? error.message : String(error));
627
- continue;
628
- }
629
- try {
630
- agents[normalizedRoleId] = normalizeRoleModelSelection(modelValue, `${label}.${normalizedRoleId}`);
631
- }
632
- catch (error) {
633
- warnings.push(`${label}.${normalizedRoleId}: ${error instanceof Error ? error.message : String(error)}`);
634
- }
635
- }
636
- return agents;
637
- }
638
- function readLenientSupportedVersion(value, label, warnings) {
639
- if (value === VVOC_CONFIG_VERSION) {
640
- return value;
641
- }
642
- warnings.push(`${label}: expected ${VVOC_CONFIG_VERSION}`);
643
- return VVOC_CONFIG_VERSION;
644
- }
645
- function loadLenientRoleAssignments(value, label, warnings) {
646
- if (!isPlainObject(value)) {
647
- warnings.push(`${label}: expected an object`);
648
- return createDefaultRoleAssignments();
649
- }
650
- const roles = {};
651
- for (const [roleId, modelSelection] of Object.entries(value)) {
652
- let normalizedRoleId;
653
- try {
654
- normalizedRoleId = normalizeRoleId(roleId, `${label}.${roleId}`);
655
- }
656
- catch (error) {
657
- warnings.push(error instanceof Error ? error.message : String(error));
658
- continue;
659
- }
660
- try {
661
- roles[normalizedRoleId] = normalizeRoleModelSelection(modelSelection, `${label}.${normalizedRoleId}`);
662
- }
663
- catch (error) {
664
- warnings.push(error instanceof Error ? error.message : String(error));
665
- }
666
- }
667
- return createDefaultRoleAssignments(roles);
668
- }
669
- function readLenientOptionalString(value, label, warnings) {
670
- if (typeof value !== "string" || !value.trim()) {
671
- warnings.push(`${label}: expected a non-empty string`);
672
- return undefined;
673
- }
674
- return value.trim();
675
- }
676
- function readLenientInteger(value, label, warnings, minimum) {
677
- if (typeof value === "number" && Number.isInteger(value) && value >= minimum) {
678
- return value;
679
- }
680
- warnings.push(`${label}: expected an integer >= ${minimum}`);
681
- return undefined;
682
- }
683
- function readLenientPositiveInteger(value, label, warnings) {
684
- return readLenientInteger(value, label, warnings, 1);
685
- }
686
- function readLenientThreshold(value, label, warnings) {
687
- if (typeof value === "number" && Number.isInteger(value) && value >= 0 && value <= 100) {
688
- return value;
689
- }
690
- warnings.push(`${label}: expected an integer between 0 and 100`);
691
- return undefined;
692
- }
693
401
  function parseStrictJson(text, label) {
694
402
  try {
695
403
  return JSON.parse(text);
@@ -1 +1 @@
1
- {"version":3,"file":"vvoc-config.js","sourceRoot":"","sources":["../../src/lib/vvoc-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vvoc-config.js","sourceRoot":"","sources":["../../src/lib/vvoc-config.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  // VERSION: 0.4.2
3
3
  // START_MODULE_CONTRACT
4
4
  // PURPOSE: Review OpenCode permission requests with a constrained Guardian agent and safe deny behavior.
5
- // SCOPE: Guardian runtime config loading from the effective vvoc config source, managed prompt loading, transcript extraction, risk-assessment prompt construction, permission reply orchestration, and plugin event hooks.
5
+ // SCOPE: Guardian runtime config resolution from the shared startup vvoc config snapshot, managed prompt loading, transcript extraction, risk-assessment prompt construction, permission reply orchestration, and plugin event hooks.
6
6
  // DEPENDS: [@opencode-ai/plugin, @opencode-ai/sdk, node:fs/promises, src/lib/config-layers.ts, src/lib/managed-agents.ts, src/lib/model-roles.ts, src/lib/vvoc-config.ts]
7
7
  // LINKS: [M-PLUGIN-GUARDIAN]
8
8
  // ROLE: RUNTIME
@@ -14,18 +14,20 @@
14
14
  // END_MODULE_MAP
15
15
  //
16
16
  // START_CHANGE_SUMMARY
17
+ // LAST_CHANGE: [v0.7.0 - Removed old SDK permission reply fallback; Guardian now uses current permission.reply or HTTP reply only.]
18
+ // LAST_CHANGE: [v0.6.0 - Used the shared startup vvoc config snapshot for plugin toggles and Guardian runtime config resolution.]
17
19
  // LAST_CHANGE: [v0.5.0 - Loaded Guardian runtime policy and fast-role model from the effective vvoc config source.]
18
20
  // LAST_CHANGE: [v0.4.2 - Corrected module metadata annotations to match file path and active dependency usage.]
19
21
  // LAST_CHANGE: [v0.4.1 - Prioritized roles.fast as Guardian's default runtime model while still honoring non-model guardian policy config and env model overrides.]
20
22
  // LAST_CHANGE: [v0.4.0 - Resolved Guardian runtime model from roles.fast before subagent registration and added explicit guardian failure codes.]
21
23
  // LAST_CHANGE: [v0.3.0 - Switched Guardian runtime config loading to the canonical vvoc.json file.]
22
24
  // END_CHANGE_SUMMARY
23
- import { appendFile, readFile, unlink } from "node:fs/promises";
24
- import { loadEffectiveVvocConfigForRuntime } from "../../lib/config-layers.js";
25
+ import { appendFile, unlink } from "node:fs/promises";
26
+ import { loadVvocConfig } from "../../lib/config-layers.js";
25
27
  import { loadManagedAgentPromptText } from "../../lib/managed-agents.js";
26
28
  import { ROLE_REFERENCE_PREFIX, resolveRoleReference, } from "../../lib/model-roles.js";
27
29
  import { createGuardianConfig } from "../../lib/vvoc-config.js";
28
- import { isPluginEnabled } from "../../lib/plugin-toggle-config.js";
30
+ import { isVvocPluginEnabled } from "../../lib/plugin-toggle-config.js";
29
31
  const GUARDIAN_AGENT = "guardian";
30
32
  const GUARDIAN_DISABLED_ENV = "OPENCODE_GUARDIAN_DISABLED";
31
33
  const GUARDIAN_RUN_DIRECTORY = "/tmp";
@@ -189,15 +191,11 @@ function resolveGuardianRoleSelection(roleMap) {
189
191
  });
190
192
  }
191
193
  }
192
- async function loadGuardianRuntimeConfig(directory) {
193
- const loaded = await loadEffectiveVvocConfigForRuntime({ cwd: directory });
194
+ function resolveGuardianRuntimeConfig(loaded) {
194
195
  const sources = [loaded.source.path ?? loaded.source.kind];
195
196
  const warnings = [...loaded.warnings];
196
197
  const canonicalConfig = loaded.config;
197
- const roleMap = loaded.source.path
198
- ? loadConfiguredRoleMapOrThrow(await readFile(loaded.source.path, "utf8"), loaded.source.path)
199
- : canonicalConfig.roles;
200
- const resolvedRoleSelection = resolveGuardianRoleSelection(roleMap);
198
+ const resolvedRoleSelection = resolveGuardianRoleSelection(canonicalConfig.roles);
201
199
  const baseConfig = canonicalConfig.guardian;
202
200
  const envConfig = readGuardianEnvConfig(sources, warnings);
203
201
  const merged = createGuardianConfig({
@@ -214,37 +212,6 @@ async function loadGuardianRuntimeConfig(directory) {
214
212
  warnings,
215
213
  };
216
214
  }
217
- function loadConfiguredRoleMapOrThrow(configText, configPath) {
218
- let parsed;
219
- try {
220
- parsed = JSON.parse(configText);
221
- }
222
- catch (error) {
223
- throw createGuardianPluginError({
224
- code: "UNKNOWN_ROLE",
225
- message: `UNKNOWN_ROLE: cannot parse ${configPath} to resolve ${GUARDIAN_RUNTIME_ROLE_REF}`,
226
- cause: error,
227
- });
228
- }
229
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
230
- throw createGuardianPluginError({
231
- code: "UNKNOWN_ROLE",
232
- message: `UNKNOWN_ROLE: ${configPath} must contain a top-level object with roles`,
233
- });
234
- }
235
- const roles = parsed.roles;
236
- if (!roles || typeof roles !== "object" || Array.isArray(roles)) {
237
- throw createGuardianPluginError({
238
- code: "UNKNOWN_ROLE",
239
- message: `UNKNOWN_ROLE: ${configPath} must contain a roles object with fast role assignment`,
240
- });
241
- }
242
- const roleMap = {};
243
- for (const [roleId, modelSelection] of Object.entries(roles)) {
244
- roleMap[roleId] = String(modelSelection);
245
- }
246
- return roleMap;
247
- }
248
215
  // END_BLOCK_LOAD_GUARDIAN_RUNTIME_CONFIG
249
216
  // START_BLOCK_RENDER_GUARDIAN_TRANSCRIPT
250
217
  function truncateText(value, limit = MAX_TRANSCRIPT_ENTRY_CHARS) {
@@ -671,7 +638,7 @@ async function showGuardianToast(client, directory, variant, message, title = "G
671
638
  }
672
639
  // END_BLOCK_GUARDIAN_LOGGING_AND_FEEDBACK
673
640
  // START_BLOCK_REPLY_TO_PERMISSION_REQUEST
674
- async function replyToPermission(client, serverUrl, directory, sessionID, requestID, decision, message) {
641
+ async function replyToPermission(client, serverUrl, directory, requestID, decision, message) {
675
642
  const reply = decision === "allow" ? "once" : "reject";
676
643
  const permissionClient = client
677
644
  .permission;
@@ -690,26 +657,6 @@ async function replyToPermission(client, serverUrl, directory, sessionID, reques
690
657
  }
691
658
  return true;
692
659
  }
693
- const legacyClient = client;
694
- if (legacyClient.postSessionIdPermissionsPermissionId) {
695
- const response = await legacyClient.postSessionIdPermissionsPermissionId({
696
- path: {
697
- id: sessionID,
698
- permissionID: requestID,
699
- },
700
- query: directory ? { directory } : undefined,
701
- body: {
702
- response: reply,
703
- },
704
- });
705
- if (response.error) {
706
- throw new Error(`legacy permission respond failed: ${JSON.stringify(response.error)}`);
707
- }
708
- if (response.data !== true) {
709
- throw new Error("legacy permission respond was not acknowledged");
710
- }
711
- return true;
712
- }
713
660
  const url = new URL(`/permission/${encodeURIComponent(requestID)}/reply`, serverUrl);
714
661
  if (directory) {
715
662
  url.searchParams.set("directory", directory);
@@ -811,7 +758,7 @@ async function reviewPermissionRequest(client, serverUrl, directory, guardianPro
811
758
  activeReview.internalReply = true;
812
759
  try {
813
760
  try {
814
- replied = await replyToPermission(client, serverUrl, directory, permissionEvent.sessionID, permissionEvent.id, "allow");
761
+ replied = await replyToPermission(client, serverUrl, directory, permissionEvent.id, "allow");
815
762
  }
816
763
  catch (error) {
817
764
  throw createGuardianPluginError({
@@ -927,12 +874,13 @@ function installGuardianAgent(config, guardianPrompt, guardianConfig) {
927
874
  // END_BLOCK_INSTALL_GUARDIAN_AGENT
928
875
  // START_BLOCK_REGISTER_GUARDIAN_PLUGIN_HOOKS
929
876
  export const GuardianPlugin = async ({ client, directory, serverUrl }) => {
930
- if (!(await isPluginEnabled("guardian")))
877
+ const vvoc = await loadVvocConfig({ cwd: directory });
878
+ if (!isVvocPluginEnabled(vvoc.config, "guardian"))
931
879
  return {};
932
880
  const toolIntentsByCallID = new Map();
933
881
  const latestCommandIntentBySessionID = new Map();
934
882
  const activeReviews = new Map();
935
- const guardianConfig = await loadGuardianRuntimeConfig(directory);
883
+ const guardianConfig = resolveGuardianRuntimeConfig(vvoc);
936
884
  const guardianPrompt = await loadManagedAgentPromptText(directory, GUARDIAN_AGENT);
937
885
  if (process.env[GUARDIAN_DISABLED_ENV] === "1") {
938
886
  return {
@@ -946,7 +894,7 @@ export const GuardianPlugin = async ({ client, directory, serverUrl }) => {
946
894
  const properties = raw.properties;
947
895
  if (!properties?.id)
948
896
  return;
949
- await replyToPermission(client, serverUrl, directory, properties.sessionID, properties.id, "deny", "Guardian nested reviews do not allow additional permissions.").catch(() => false);
897
+ await replyToPermission(client, serverUrl, directory, properties.id, "deny", "Guardian nested reviews do not allow additional permissions.").catch(() => false);
950
898
  },
951
899
  };
952
900
  }