@osovv/vv-opencode 1.3.6-rc.8 → 1.3.7

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/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## <small>1.3.7 (2026-09-09)</small>
2
+
3
+ ### Summary
4
+
5
+ Release 1.3.7 fixes environment variable handling for web provider API credentials. Previously, ${VAR} placeholders in the web.search.apiKey or web.fetch.apiKey config values were passed to providers as literal strings, causing authentication failures even when the referenced environment variable contained a valid key. Configured apiKey values now support ${VAR} substitution resolved from the OpenCode process environment at startup, with canonical variables such as ZAI_API_KEY still taking precedence over config values, and a safe startup warning is emitted whenever a placeholder references an unset or empty variable. The new shared substitution helper also feeds the secrets-redaction plugin, so redaction rules are built from the resolved real key value rather than the placeholder text, meaning the actual credential is protected in provider-bound message flows instead of just the literal placeholder.
6
+
7
+ * fix(web-tools): resolve ${VAR} env placeholders in web apiKey credentials ([f9ac6ee](https://github.com/osovv/vv-opencode/commit/f9ac6ee))
8
+
9
+ ## <small>1.3.6 (2026-09-02)</small>
10
+
11
+ ### Summary
12
+
13
+ This release fixes the peak-hours plugin so its default soft mode no longer injects a cost notice into the system prompt. Previously, requests made during configured peak windows had a soft notice appended to the system prompt to warn about elevated pricing; now soft mode is fully pass-through so the plugin never mutates messages or their system prompts. Users still see the persistent orange TUI banner with the peak window, elevated-pricing warning, and off-peak provider suggestions, and the hard-block behavior that rejects peak-hour requests with a clear error remains unchanged. The result keeps system prompts clean and untouched during peak hours while keeping peak-cost awareness visible in the interface.
14
+
15
+ * fix(peak-hours): stop injecting the soft notice into the system prompt ([d82f99b](https://github.com/osovv/vv-opencode/commit/d82f99b))
16
+
1
17
  ## <small>1.3.6-rc.8 (2026-08-29)</small>
2
18
 
3
19
  ### Summary
package/README.md CHANGED
@@ -513,7 +513,7 @@ Several providers (DeepSeek, Z.AI, Qwen) bill higher rates during daily or weekd
513
513
 
514
514
  Behavior per mode:
515
515
 
516
- - **soft** (default): the message goes through, the model receives a one-line cost notice, and the TUI shows a persistent orange banner in the bottom slot: `⚠ PEAK deepseek until 10:00 UTC · elevated pricing · off-peak now: z-ai, qwen`.
516
+ - **soft** (default): the message goes through and the TUI shows a persistent orange banner in the bottom slot: `⚠ PEAK deepseek until 10:00 UTC · elevated pricing · off-peak now: z-ai, qwen`.
517
517
  - **hard**: the LLM request is rejected with the window end, the wait time, and the connected providers that are currently outside peak (`PEAK_HOURS_BLOCK: provider "deepseek" is in peak hours until 10:00 UTC (about 3 h). … Connected providers outside peak hours right now: z-ai, qwen. …`). The block fires in `chat.params`, after the message is stored: your message stays in the session history and the block renders as a regular error entry, not a dropped message.
518
518
 
519
519
  Nothing already in flight is ever killed:
@@ -603,7 +603,7 @@ Credentials resolve in this order:
603
603
  1. `EXA_API_KEY`, `BRAVE_API_KEY`, `SPIDER_API_KEY`, or `ZAI_API_KEY` for the selected provider
604
604
  2. `web.search.apiKey` or `web.fetch.apiKey` in the effective `vvoc.json`
605
605
 
606
- Environment variables win when both sources exist; config changes take effect after restarting OpenCode. Configured `apiKey` values become exact-match SecretsRedactionPlugin rules for provider-bound message flows, and WebToolsPlugin diagnostics report only the credential source (`env` or `config`), never the value. If a project-layer `.vvoc/vvoc.json` containing an `apiKey` is tracked by Git, startup logs warn with the file name only. Prefer environment variables or the global vvoc layer; do not commit credentials.
606
+ Environment variables win when both sources exist; config changes take effect after restarting OpenCode. Config `apiKey` values may be literal or use `${VAR}` placeholders resolved from the OpenCode process environment at startup, matching `secretsRedaction.secret`; a placeholder referencing an unset or empty variable logs a startup warning naming the config field and the missing variable names, never values. Placeholder-resolved `apiKey` values become exact-match SecretsRedactionPlugin rules for provider-bound message flows, and WebToolsPlugin diagnostics report only the credential source (`env` or `config`), never the value. If a project-layer `.vvoc/vvoc.json` containing an `apiKey` is tracked by Git, startup logs warn with the file name only. Prefer environment variables or the global vvoc layer; do not commit credentials.
607
607
 
608
608
  While `web-tools` is enabled, its runtime config hook denies the built-in `webfetch` and `websearch` permission ids in memory, leaving only `web_fetch` and `web_search` in the normal tool surface. It does not rewrite OpenCode files or remove MCP servers. An explicit user permission entry for `webfetch` or `websearch` is respected and may intentionally keep that built-in visible. Disable the plugin and restart to restore stock behavior:
609
609
 
@@ -0,0 +1,16 @@
1
+ /** Result of placeholder substitution. Missing names never include env values. */
2
+ export type EnvPlaceholderResolution = {
3
+ /** Value with every ${VAR} occurrence replaced; unset or empty variables become empty strings. */
4
+ value: string;
5
+ /** Referenced variable names that are unset or empty, in first-reference order, deduplicated. */
6
+ missing: string[];
7
+ };
8
+ /**
9
+ * Substitute every ${VAR} occurrence in value from env.
10
+ * Variables that are unset or set to an empty string substitute as empty strings and are
11
+ * reported by name so callers can emit credential-safe diagnostics.
12
+ * Strings without placeholders are returned unchanged.
13
+ */
14
+ export declare function resolveEnvPlaceholders(value: string, env: NodeJS.ProcessEnv): EnvPlaceholderResolution;
15
+ /** String-only convenience wrapper around resolveEnvPlaceholders. */
16
+ export declare function substituteEnvVars(value: string, env: NodeJS.ProcessEnv): string;
@@ -0,0 +1,49 @@
1
+ // FILE: src/lib/env-substitution.ts
2
+ // VERSION: 1.0.0
3
+ // START_MODULE_CONTRACT
4
+ // PURPOSE: Substitute ${VAR} environment placeholders inside vvoc config string values.
5
+ // SCOPE: Replace every ${VAR} occurrence with the process environment value and report referenced variables that are unset or empty.
6
+ // DEPENDS: none
7
+ // LINKS: [M-ENV-SUBSTITUTION, M-WEB-CONFIG, M-PLUGIN-SECRETS-REDACTION]
8
+ // ROLE: RUNTIME
9
+ // MAP_MODE: EXPORTS
10
+ // END_MODULE_CONTRACT
11
+ //
12
+ // START_MODULE_MAP
13
+ // EnvPlaceholderResolution - Substituted value plus names of referenced variables that resolve to nothing.
14
+ // resolveEnvPlaceholders - Substitute every ${VAR} occurrence and report unset or empty references.
15
+ // substituteEnvVars - Substitute every ${VAR} occurrence and return only the resulting string.
16
+ // END_MODULE_MAP
17
+ //
18
+ // START_CHANGE_SUMMARY
19
+ // LAST_CHANGE: [direct fix - Extracted the secrets-redaction env placeholder substitution into a shared lib helper with missing-reference reporting for web apiKey resolution.]
20
+ // END_CHANGE_SUMMARY
21
+ // START_BLOCK_PLACEHOLDER_RESOLUTION
22
+ /**
23
+ * Substitute every ${VAR} occurrence in value from env.
24
+ * Variables that are unset or set to an empty string substitute as empty strings and are
25
+ * reported by name so callers can emit credential-safe diagnostics.
26
+ * Strings without placeholders are returned unchanged.
27
+ */
28
+ export function resolveEnvPlaceholders(value, env) {
29
+ const missing = [];
30
+ const seen = new Set();
31
+ const substituted = value.replace(/\$\{([^}]+)\}/g, (_, varName) => {
32
+ const replacement = env[varName];
33
+ if (replacement === undefined || replacement === "") {
34
+ if (!seen.has(varName)) {
35
+ seen.add(varName);
36
+ missing.push(varName);
37
+ }
38
+ return "";
39
+ }
40
+ return replacement;
41
+ });
42
+ return { value: substituted, missing };
43
+ }
44
+ // END_BLOCK_PLACEHOLDER_RESOLUTION
45
+ /** String-only convenience wrapper around resolveEnvPlaceholders. */
46
+ export function substituteEnvVars(value, env) {
47
+ return resolveEnvPlaceholders(value, env).value;
48
+ }
49
+ //# sourceMappingURL=env-substitution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-substitution.js","sourceRoot":"","sources":["../../src/lib/env-substitution.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,iBAAiB;AACjB,wBAAwB;AACxB,0FAA0F;AAC1F,uIAAuI;AACvI,kBAAkB;AAClB,0EAA0E;AAC1E,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,6GAA6G;AAC7G,sGAAsG;AACtG,iGAAiG;AACjG,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,kLAAkL;AAClL,qBAAqB;AAUrB,qCAAqC;AACrC;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,GAAsB;IAEtB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,EAAE;QACzE,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC;AACD,mCAAmC;AAEnC,qEAAqE;AACrE,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,GAAsB;IACrE,OAAO,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AAClD,CAAC"}
@@ -485,6 +485,7 @@ export declare const VVOC_CONFIG_SCHEMA: {
485
485
  apiKey: {
486
486
  type: string;
487
487
  minLength: number;
488
+ description: string;
488
489
  };
489
490
  };
490
491
  allOf: {
@@ -516,6 +517,7 @@ export declare const VVOC_CONFIG_SCHEMA: {
516
517
  apiKey: {
517
518
  type: string;
518
519
  minLength: number;
520
+ description: string;
519
521
  };
520
522
  };
521
523
  allOf: {
@@ -171,6 +171,11 @@ const ZAI_REGION_REQUIREMENT = Object.fromEntries([
171
171
  // oxlint-disable-next-line unicorn/no-thenable -- JSON Schema conditional keyword.
172
172
  ["then", { required: ["region"] }],
173
173
  ]);
174
+ const WEB_API_KEY_SCHEMA = {
175
+ type: "string",
176
+ minLength: 1,
177
+ description: "Provider API key. Either a literal value or ${VAR} placeholders resolved from the OpenCode process environment at startup.",
178
+ };
174
179
  const WEB_CONFIG_SCHEMA = {
175
180
  type: "object",
176
181
  additionalProperties: false,
@@ -181,7 +186,7 @@ const WEB_CONFIG_SCHEMA = {
181
186
  properties: {
182
187
  provider: { type: "string", enum: [...WEB_SEARCH_PROVIDERS] },
183
188
  region: { type: "string", enum: [...WEB_REGIONS] },
184
- apiKey: { type: "string", minLength: 1 },
189
+ apiKey: WEB_API_KEY_SCHEMA,
185
190
  },
186
191
  allOf: [ZAI_REGION_REQUIREMENT],
187
192
  },
@@ -191,7 +196,7 @@ const WEB_CONFIG_SCHEMA = {
191
196
  properties: {
192
197
  provider: { type: "string", enum: [...WEB_FETCH_PROVIDERS] },
193
198
  region: { type: "string", enum: [...WEB_REGIONS] },
194
- apiKey: { type: "string", minLength: 1 },
199
+ apiKey: WEB_API_KEY_SCHEMA,
195
200
  },
196
201
  allOf: [ZAI_REGION_REQUIREMENT],
197
202
  },
@@ -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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"}
@@ -15,18 +15,17 @@ export type PeakHoursPluginDependencies = {
15
15
  log: (level: "info" | "warn", message: string, extra?: Record<string, unknown>) => Promise<void>;
16
16
  };
17
17
  export declare function buildHardBlockMessage(providerID: string, peak: ActivePeak, suggestions: readonly string[]): string;
18
- export declare function buildSoftSystemNote(providerID: string, peak: ActivePeak): string;
19
- export declare function appendSystemNote(existingSystem: string | undefined, note: string): string;
20
18
  /**
21
19
  * Builds the peak-hours OpenCode server plugin.
22
20
  *
23
- * chat.message applies the soft system notice; chat.params enforces the hard
24
- * block by throwing after the user message is persisted, so OpenCode renders
25
- * the block as a standard message error part with dynamic off-peak suggestions
26
- * instead of dropping the message. Internal agents, subagent agents, sessions
27
- * with a parentID, and sessions created before the active window start are
28
- * never hard-blocked. Schedule and lookup failures degrade to soft or no-op
29
- * and never block.
21
+ * Soft mode is pass-through: the server plugin never mutates the message or
22
+ * its system prompt, and peak cost state stays visible only through the TUI
23
+ * banner. chat.params enforces the hard block by throwing after the user
24
+ * message is persisted, so OpenCode renders the block as a standard message
25
+ * error part with dynamic off-peak suggestions instead of dropping the
26
+ * message. Internal agents, subagent agents, sessions with a parentID, and
27
+ * sessions created before the active window start are never hard-blocked.
28
+ * Schedule and lookup failures degrade to soft or no-op and never block.
30
29
  */
31
30
  export declare function createPeakHoursPlugin(dependencies?: Partial<PeakHoursPluginDependencies>): Plugin;
32
31
  export declare const PeakHoursPlugin: Plugin;
@@ -1,8 +1,8 @@
1
1
  // FILE: src/plugins/peak-hours/index.ts
2
2
  // VERSION: 1.0.0
3
3
  // START_MODULE_CONTRACT
4
- // PURPOSE: Warn or block LLM requests whose model provider is in configured peak hours, with dynamic off-peak provider suggestions and session-age plus subagent grace.
5
- // SCOPE: Startup vvoc snapshot resolution and peak-hours entry parsing, internal and subagent-like agent exemptions, persisted-session grace lookup, connected provider enumeration with bounded fallback, soft system-note injection through chat.message, hard blocking through a chat.params error raised after the user message is persisted, and fail-open degradation.
4
+ // PURPOSE: Block LLM requests whose model provider is in configured peak hours in hard mode, with dynamic off-peak provider suggestions and session-age plus subagent grace; soft mode never mutates messages.
5
+ // SCOPE: Startup vvoc snapshot resolution and peak-hours entry parsing, internal and subagent-like agent exemptions, persisted-session grace lookup, connected provider enumeration with bounded fallback, hard blocking through a chat.params error raised after the user message is persisted, soft pass-through without any server-side message mutation, and fail-open degradation.
6
6
  // DEPENDS: [@opencode-ai/plugin, src/lib/config-layers.ts, src/lib/plugin-toggle-config.ts, src/lib/managed-agents.ts, src/lib/peak-hours.ts]
7
7
  // LINKS: [M-PLUGIN-PEAK-HOURS, M-PEAK-HOURS-SCHEDULES, M-PLUGIN-TOGGLE-CONFIG]
8
8
  // ROLE: RUNTIME
@@ -13,14 +13,12 @@
13
13
  // PeakHoursPluginDependencies - Injectable clock, entry, session, provider, and logging dependencies for focused tests.
14
14
  // SessionGraceInfo - Persisted session fields used for grace decisions.
15
15
  // buildHardBlockMessage - Composes the blocking error text with window end, wait, and suggestions.
16
- // buildSoftSystemNote - Composes the bounded model-facing peak notice.
17
- // appendSystemNote - Appends the notice once without duplicating it.
18
16
  // createPeakHoursPlugin - Builds the peak-hours server plugin with injectable dependencies.
19
17
  // PeakHoursPlugin - Default production peak-hours server plugin.
20
18
  // END_MODULE_MAP
21
19
  //
22
20
  // START_CHANGE_SUMMARY
23
- // LAST_CHANGE: [DIRECT-FIX - Moved the hard block to chat.params so blocked messages persist in session history with a proper error part.]
21
+ // LAST_CHANGE: [DIRECT-FIX - Removed the soft-mode chat.message system-note injection so soft mode passes messages through untouched; peak cost state stays visible through the TUI banner only.]
24
22
  // END_CHANGE_SUMMARY
25
23
  import { loadVvocConfig } from "../../lib/config-layers.js";
26
24
  import { MANAGED_SUBAGENT_NAMES } from "../../lib/managed-agents.js";
@@ -32,7 +30,6 @@ const INTERNAL_AGENTS = ["compaction", "title", "summary"];
32
30
  const BUILT_IN_SUBAGENTS = ["general"];
33
31
  const PLUGIN_MANAGED_SUBAGENTS = ["guardian"];
34
32
  const PEAK_HOURS_SERVICE = "peak-hours";
35
- const PEAK_HOURS_NOTE_TAG = "<peak_hours_notice>";
36
33
  const PROVIDER_CACHE_TTL_MS = 10 * 60 * 1_000;
37
34
  const PROVIDER_FETCH_TIMEOUT_MS = 5_000;
38
35
  const MAX_LOG_TEXT_CHARS = 500;
@@ -79,35 +76,6 @@ export function buildHardBlockMessage(providerID, peak, suggestions) {
79
76
  }
80
77
  return lines.join(" ");
81
78
  }
82
- // START_CONTRACT: buildSoftSystemNote
83
- // PURPOSE: Compose the bounded model-facing notice for soft mode.
84
- // INPUTS: { providerID: string - peak provider id; peak: ActivePeak - active window hit }
85
- // OUTPUTS: { string - single-line tagged system notice }
86
- // SIDE_EFFECTS: none
87
- // LINKS: formatPeakEndTime
88
- // END_CONTRACT: buildSoftSystemNote
89
- export function buildSoftSystemNote(providerID, peak) {
90
- const until = formatPeakEndTime(peak.endsAt);
91
- return `${PEAK_HOURS_NOTE_TAG}Provider "${providerID}" is in peak hours until ${until}; pricing is elevated. Keep responses focused and avoid unnecessary verbosity.</${PEAK_HOURS_NOTE_TAG.slice(1)}`;
92
- }
93
- // START_CONTRACT: appendSystemNote
94
- // PURPOSE: Append the peak notice to an existing system prompt exactly once.
95
- // INPUTS: { existingSystem: string | undefined - current system prompt; note: string - composed notice }
96
- // OUTPUTS: { string - system prompt with the notice appended at most once }
97
- // SIDE_EFFECTS: none
98
- // LINKS: buildSoftSystemNote
99
- // END_CONTRACT: appendSystemNote
100
- export function appendSystemNote(existingSystem, note) {
101
- if (typeof existingSystem === "string" && existingSystem.includes(PEAK_HOURS_NOTE_TAG)) {
102
- return existingSystem;
103
- }
104
- const parts = [];
105
- if (typeof existingSystem === "string" && existingSystem.trim()) {
106
- parts.push(existingSystem.trim());
107
- }
108
- parts.push(note);
109
- return parts.join("\n\n");
110
- }
111
79
  // START_BLOCK_DEFAULT_DEPENDENCIES
112
80
  function truncateLogText(value) {
113
81
  return value.length > MAX_LOG_TEXT_CHARS ? `${value.slice(0, MAX_LOG_TEXT_CHARS)}...` : value;
@@ -168,13 +136,14 @@ async function listConnectedProviders(client, serverUrl, directory) {
168
136
  /**
169
137
  * Builds the peak-hours OpenCode server plugin.
170
138
  *
171
- * chat.message applies the soft system notice; chat.params enforces the hard
172
- * block by throwing after the user message is persisted, so OpenCode renders
173
- * the block as a standard message error part with dynamic off-peak suggestions
174
- * instead of dropping the message. Internal agents, subagent agents, sessions
175
- * with a parentID, and sessions created before the active window start are
176
- * never hard-blocked. Schedule and lookup failures degrade to soft or no-op
177
- * and never block.
139
+ * Soft mode is pass-through: the server plugin never mutates the message or
140
+ * its system prompt, and peak cost state stays visible only through the TUI
141
+ * banner. chat.params enforces the hard block by throwing after the user
142
+ * message is persisted, so OpenCode renders the block as a standard message
143
+ * error part with dynamic off-peak suggestions instead of dropping the
144
+ * message. Internal agents, subagent agents, sessions with a parentID, and
145
+ * sessions created before the active window start are never hard-blocked.
146
+ * Schedule and lookup failures degrade to soft or no-op and never block.
178
147
  */
179
148
  export function createPeakHoursPlugin(dependencies = {}) {
180
149
  return async ({ client, directory, serverUrl }) => {
@@ -270,27 +239,6 @@ export function createPeakHoursPlugin(dependencies = {}) {
270
239
  config: async (config) => {
271
240
  syncConfiguredSubagents((config.agent ?? {}), knownSubagents);
272
241
  },
273
- "chat.message": async (input, output) => {
274
- const agent = output.message.agent ?? input.agent;
275
- const providerID = input.model?.providerID ?? output.message.model?.providerID;
276
- if (!providerID)
277
- return;
278
- const decision = await resolvePeakDecision({
279
- agent,
280
- providerID,
281
- sessionID: input.sessionID,
282
- });
283
- // Hard mode blocks later in chat.params, after the message is persisted.
284
- if (!decision || decision.mode !== "soft")
285
- return;
286
- output.message.system = appendSystemNote(output.message.system, buildSoftSystemNote(providerID, decision.peak));
287
- await deps.log("info", "peak-hours soft notice applied", {
288
- providerID,
289
- providerKey: decision.peak.providerKey,
290
- until: formatPeakEndTime(decision.peak.endsAt),
291
- sessionID: input.sessionID,
292
- });
293
- },
294
242
  "chat.params": async (input) => {
295
243
  const providerID = input.model?.providerID;
296
244
  if (!providerID)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/peak-hours/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/peak-hours/index.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,12 @@ import { type VvocConfigSnapshot } from "../../lib/config-layers.js";
2
2
  import { type SecretsRedactionConfig, type VvocConfig } from "../../lib/vvoc-config.js";
3
3
  export type { SecretsRedactionConfig };
4
4
  export declare const DEFAULT_CONFIG: SecretsRedactionConfig;
5
- /** Exact-value keyword rules for configured web apiKey fields. Environment credentials are excluded. */
6
- export declare function webApiKeyKeywordRules(config: VvocConfig): Array<{
5
+ /**
6
+ * Exact-value keyword rules for configured web apiKey fields with ${VAR} placeholders
7
+ * resolved from env. Canonical environment credentials are excluded because they never
8
+ * appear in config. Values that resolve to an empty string are skipped.
9
+ */
10
+ export declare function webApiKeyKeywordRules(config: VvocConfig, env?: NodeJS.ProcessEnv): Array<{
7
11
  value: string;
8
12
  category: "WEB_API_KEY";
9
13
  }>;
@@ -2,16 +2,16 @@
2
2
  // VERSION: 1.4.0
3
3
  // START_MODULE_CONTRACT
4
4
  // PURPOSE: Resolve secrets-redaction settings from the shared startup vvoc config snapshot with environment variable substitution.
5
- // SCOPE: startup vvoc config snapshot consumption, env substitution, fallback defaults, and exact-value web apiKey keyword rules
6
- // DEPENDS: src/lib/config-layers.ts, src/lib/vvoc-config.ts
7
- // LINKS: [M-PLUGIN-SECRETS-REDACTION]
5
+ // SCOPE: startup vvoc config snapshot consumption, env substitution, fallback defaults, and exact-value web apiKey keyword rules built from placeholder-resolved values
6
+ // DEPENDS: src/lib/config-layers.ts, src/lib/vvoc-config.ts, src/lib/env-substitution.ts
7
+ // LINKS: [M-PLUGIN-SECRETS-REDACTION, M-ENV-SUBSTITUTION]
8
8
  // ROLE: RUNTIME
9
9
  // MAP_MODE: EXPORTS
10
10
  // END_MODULE_CONTRACT
11
11
  //
12
12
  // START_MODULE_MAP
13
13
  // DEFAULT_CONFIG - Default secrets-redaction section used when vvoc.json is missing or incomplete
14
- // webApiKeyKeywordRules - returns deduplicated exact-value rules for configured web apiKey fields
14
+ // webApiKeyKeywordRules - returns deduplicated exact-value rules for configured web apiKey fields with ${VAR} placeholders resolved
15
15
  // resolveSecretsRedactionRuntimeConfig - returns normalized config from a loaded vvoc config snapshot
16
16
  // loadConfig - backward-compatible wrapper around loadVvocConfig plus resolveSecretsRedactionRuntimeConfig
17
17
  // getConfigCandidates - returns the effective vvoc.json path candidate when one is selected
@@ -19,18 +19,27 @@
19
19
  // END_MODULE_MAP
20
20
  //
21
21
  // START_CHANGE_SUMMARY
22
- // LAST_CHANGE: [v1.2.0 - Added exact-value redaction rules for configured web apiKey fields.]
22
+ // LAST_CHANGE: [direct fix - Built web apiKey redaction rules from placeholder-resolved values via the shared env substitution helper.]
23
23
  // END_CHANGE_SUMMARY
24
24
  import { loadVvocConfig, resolveVvocConfigSource, } from "../../lib/config-layers.js";
25
+ import { substituteEnvVars } from "../../lib/env-substitution.js";
25
26
  import { createDefaultSecretsRedactionConfig, } from "../../lib/vvoc-config.js";
26
27
  import { generateFallbackSecret } from "./session.js";
27
28
  export const DEFAULT_CONFIG = createDefaultSecretsRedactionConfig();
28
- /** Exact-value keyword rules for configured web apiKey fields. Environment credentials are excluded. */
29
- export function webApiKeyKeywordRules(config) {
29
+ /**
30
+ * Exact-value keyword rules for configured web apiKey fields with ${VAR} placeholders
31
+ * resolved from env. Canonical environment credentials are excluded because they never
32
+ * appear in config. Values that resolve to an empty string are skipped.
33
+ */
34
+ export function webApiKeyKeywordRules(config, env = process.env) {
30
35
  const rules = [];
31
36
  const seen = new Set();
32
- for (const value of [config.web?.search?.apiKey, config.web?.fetch?.apiKey]) {
33
- if (typeof value !== "string" || value.length === 0 || seen.has(value)) {
37
+ for (const rawValue of [config.web?.search?.apiKey, config.web?.fetch?.apiKey]) {
38
+ if (typeof rawValue !== "string" || rawValue.length === 0) {
39
+ continue;
40
+ }
41
+ const value = substituteEnvVars(rawValue, env);
42
+ if (value.length === 0 || seen.has(value)) {
34
43
  continue;
35
44
  }
36
45
  seen.add(value);
@@ -38,11 +47,6 @@ export function webApiKeyKeywordRules(config) {
38
47
  }
39
48
  return rules;
40
49
  }
41
- function substituteEnvVars(value, env) {
42
- return value.replace(/\$\{([^}]+)\}/g, (_, varName) => {
43
- return env[varName] ?? "";
44
- });
45
- }
46
50
  export async function getConfigCandidates(directory) {
47
51
  const source = await resolveVvocConfigSource({
48
52
  scope: "effective",
@@ -56,7 +60,7 @@ export function resolveSecretsRedactionRuntimeConfig(loaded, env = process.env)
56
60
  let finalSecret = substituteEnvVars(loaded.config.secretsRedaction.secret, env);
57
61
  const configured = loaded.config.secretsRedaction;
58
62
  const keywordValues = new Set(configured.patterns.keywords.map((rule) => rule.value));
59
- const webKeywords = webApiKeyKeywordRules(loaded.config).filter((rule) => !keywordValues.has(rule.value));
63
+ const webKeywords = webApiKeyKeywordRules(loaded.config, env).filter((rule) => !keywordValues.has(rule.value));
60
64
  const configWithWebKeys = {
61
65
  ...configured,
62
66
  patterns: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/plugins/secrets-redaction/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/plugins/secrets-redaction/config.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  // VERSION: 1.0.0
3
3
  // START_MODULE_CONTRACT
4
4
  // PURPOSE: Resolve the optional vvoc web section into concrete provider choices, explicit Z.AI regions, and credentials for the web tools plugin.
5
- // SCOPE: Provider defaults, fail-closed Z.AI region resolution, credential resolution with environment precedence over config apiKey fields, credential source reporting, and a best-effort git-tracked project-config warning helper.
6
- // DEPENDS: [src/lib/config-layers.ts, src/lib/vvoc-config.ts, node:path]
7
- // LINKS: [M-WEB-CONFIG, M-PLUGIN-WEB-TOOLS, M-CLI-CONFIG]
5
+ // SCOPE: Provider defaults, fail-closed Z.AI region resolution, credential resolution with environment precedence over config apiKey fields including ${VAR} placeholder substitution with unset-reference warnings, credential source reporting, and a best-effort git-tracked project-config warning helper.
6
+ // DEPENDS: [src/lib/config-layers.ts, src/lib/vvoc-config.ts, src/lib/env-substitution.ts, node:path]
7
+ // LINKS: [M-WEB-CONFIG, M-PLUGIN-WEB-TOOLS, M-CLI-CONFIG, M-ENV-SUBSTITUTION]
8
8
  // ROLE: RUNTIME
9
9
  // MAP_MODE: EXPORTS
10
10
  // END_MODULE_CONTRACT
@@ -20,23 +20,43 @@
20
20
  // END_MODULE_MAP
21
21
  //
22
22
  // START_CHANGE_SUMMARY
23
- // LAST_CHANGE: [C-ZAI-DIRECT-WEB-PROVIDERS - Resolved direct Z.AI search and fetch regions with shared ZAI_API_KEY precedence.]
23
+ // LAST_CHANGE: [direct fix - Resolved ${VAR} env placeholders in web apiKey fields and warned on unset references instead of sending literal placeholder credentials.]
24
24
  // END_CHANGE_SUMMARY
25
25
  import { basename, dirname } from "node:path";
26
+ import { resolveEnvPlaceholders } from "../../lib/env-substitution.js";
26
27
  const SEARCH_ENV_VARS = {
27
28
  exa: "EXA_API_KEY",
28
29
  brave: "BRAVE_API_KEY",
29
30
  zai: "ZAI_API_KEY",
30
31
  };
31
32
  // START_BLOCK_CREDENTIAL_RESOLUTION
32
- function resolveCredential(envValue, configValue) {
33
+ /**
34
+ * Resolve one credential with canonical-env-over-config precedence.
35
+ * Config values support ${VAR} placeholders resolved from env; placeholders referencing
36
+ * unset or empty variables produce a value-free warning naming the config field and the
37
+ * missing variable names. A config value that substitutes to an empty string yields no
38
+ * credential. The warning never contains credential values.
39
+ */
40
+ function resolveCredential(envValue, configValue, env, configField) {
33
41
  if (typeof envValue === "string" && envValue.length > 0) {
34
- return { value: envValue, source: "env" };
42
+ return { credential: { value: envValue, source: "env" } };
35
43
  }
36
- if (typeof configValue === "string" && configValue.length > 0) {
37
- return { value: configValue, source: "config" };
44
+ if (typeof configValue !== "string" || configValue.length === 0) {
45
+ return {};
46
+ }
47
+ const resolved = resolveEnvPlaceholders(configValue, env);
48
+ if (resolved.missing.length > 0) {
49
+ return {
50
+ credential: resolved.value.length > 0 ? { value: resolved.value, source: "config" } : undefined,
51
+ warning: `${configField} references unset or empty environment variable(s): ` +
52
+ `${resolved.missing.join(", ")}; set them in the OpenCode process environment ` +
53
+ "or provide a literal apiKey",
54
+ };
38
55
  }
39
- return undefined;
56
+ if (resolved.value.length === 0) {
57
+ return {};
58
+ }
59
+ return { credential: { value: resolved.value, source: "config" } };
40
60
  }
41
61
  function requireZaiRegion(value, field) {
42
62
  if (value === "international" || value === "china") {
@@ -48,45 +68,56 @@ function requireZaiRegion(value, field) {
48
68
  // START_CONTRACT: resolveWebRuntimeConfig
49
69
  // PURPOSE: Resolve providers and credentials from the startup vvoc snapshot.
50
70
  // INPUTS: { loaded: vvoc snapshot subset with config, source, warnings; env: process environment override }
51
- // OUTPUTS: { ResolvedWebConfig - providers default to exa and native; environment wins over config apiKey }
71
+ // OUTPUTS: { ResolvedWebConfig - providers default to exa and native; environment wins over config apiKey; config apiKey ${VAR} placeholders substitute from env and unset references add value-free warnings }
52
72
  // SIDE_EFFECTS: none; missing credentials are not resolution-time errors
53
- // LINKS: M-PLUGIN-WEB-TOOLS
73
+ // LINKS: M-PLUGIN-WEB-TOOLS, M-ENV-SUBSTITUTION
54
74
  // END_CONTRACT: resolveWebRuntimeConfig
55
75
  export function resolveWebRuntimeConfig(loaded, env = process.env) {
56
76
  const web = loaded.config.web;
57
77
  const searchProvider = web?.search?.provider ?? "exa";
58
78
  const fetchProvider = web?.fetch?.provider ?? "native";
79
+ const warnings = [...loaded.warnings];
80
+ const searchCredential = resolveCredential(env[SEARCH_ENV_VARS[searchProvider]], web?.search?.apiKey, env, "web.search.apiKey");
81
+ if (searchCredential.warning) {
82
+ warnings.push(searchCredential.warning);
83
+ }
59
84
  const search = searchProvider === "zai"
60
85
  ? {
61
86
  provider: "zai",
62
87
  region: requireZaiRegion(web?.search?.region, "web.search.region"),
63
88
  envVar: "ZAI_API_KEY",
64
89
  configField: "web.search.apiKey",
65
- credential: resolveCredential(env.ZAI_API_KEY, web?.search?.apiKey),
90
+ credential: searchCredential.credential,
66
91
  }
67
92
  : {
68
93
  provider: searchProvider,
69
94
  envVar: SEARCH_ENV_VARS[searchProvider],
70
95
  configField: "web.search.apiKey",
71
- credential: resolveCredential(env[SEARCH_ENV_VARS[searchProvider]], web?.search?.apiKey),
96
+ credential: searchCredential.credential,
72
97
  };
98
+ const fetchCredential = fetchProvider === "native"
99
+ ? {}
100
+ : resolveCredential(env[fetchProvider === "zai" ? "ZAI_API_KEY" : "SPIDER_API_KEY"], web?.fetch?.apiKey, env, "web.fetch.apiKey");
101
+ if (fetchCredential.warning) {
102
+ warnings.push(fetchCredential.warning);
103
+ }
73
104
  const fetch = fetchProvider === "zai"
74
105
  ? {
75
106
  provider: "zai",
76
107
  region: requireZaiRegion(web?.fetch?.region, "web.fetch.region"),
77
108
  envVar: "ZAI_API_KEY",
78
109
  configField: "web.fetch.apiKey",
79
- credential: resolveCredential(env.ZAI_API_KEY, web?.fetch?.apiKey),
110
+ credential: fetchCredential.credential,
80
111
  }
81
112
  : fetchProvider === "spider"
82
113
  ? {
83
114
  provider: "spider",
84
115
  envVar: "SPIDER_API_KEY",
85
116
  configField: "web.fetch.apiKey",
86
- credential: resolveCredential(env.SPIDER_API_KEY, web?.fetch?.apiKey),
117
+ credential: fetchCredential.credential,
87
118
  }
88
119
  : { provider: "native" };
89
- return { search, fetch, warnings: [...loaded.warnings] };
120
+ return { search, fetch, warnings };
90
121
  }
91
122
  // START_BLOCK_GIT_TRACKED_WARNING
92
123
  function defaultCommandRunner(cmd, cwd) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/plugins/web-tools/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/plugins/web-tools/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osovv/vv-opencode",
3
- "version": "1.3.6-rc.8",
3
+ "version": "1.3.7",
4
4
  "description": "An opinionated agentic development layer for OpenCode — spec-first when it matters, review-driven execution, portable model roles, safer tools, and long-run safety.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
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.6-rc.8/schemas/vvoc/v3.json",
3
+ "$id": "https://cdn.jsdelivr.net/npm/@osovv/vv-opencode@1.3.7/schemas/vvoc/v3.json",
4
4
  "title": "vvoc config",
5
5
  "description": "Canonical vvoc configuration document.",
6
6
  "type": "object",
@@ -447,7 +447,8 @@
447
447
  },
448
448
  "apiKey": {
449
449
  "type": "string",
450
- "minLength": 1
450
+ "minLength": 1,
451
+ "description": "Provider API key. Either a literal value or ${VAR} placeholders resolved from the OpenCode process environment at startup."
451
452
  }
452
453
  },
453
454
  "allOf": [
@@ -491,7 +492,8 @@
491
492
  },
492
493
  "apiKey": {
493
494
  "type": "string",
494
- "minLength": 1
495
+ "minLength": 1,
496
+ "description": "Provider API key. Either a literal value or ${VAR} placeholders resolved from the OpenCode process environment at startup."
495
497
  }
496
498
  },
497
499
  "allOf": [