@osovv/vv-opencode 1.3.6 → 1.3.8

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.8 (2026-09-09)</small>
2
+
3
+ ### Summary
4
+
5
+ Version 1.3.8 fixes a Brave Web Search integration issue where queries returning zero results caused a spurious tool error instead of cleanly reporting no matches. Brave responds to such queries with HTTP 200 and omits the usual results field, which the parser previously rejected as a malformed response. The search adapter now recognizes that zero-result envelope as a legitimate empty result set, so web_search returns an empty result instead of failing, while genuinely unrecognized responses still fail closed to preserve safety. This eliminates confusing errors during legitimate searches that simply have no web results.
6
+
7
+ * fix(web-tools): treat zero-result brave envelopes as empty results ([291b989](https://github.com/osovv/vv-opencode/commit/291b989))
8
+
9
+ ## <small>1.3.7 (2026-09-09)</small>
10
+
11
+ ### Summary
12
+
13
+ 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.
14
+
15
+ * fix(web-tools): resolve ${VAR} env placeholders in web apiKey credentials ([f9ac6ee](https://github.com/osovv/vv-opencode/commit/f9ac6ee))
16
+
1
17
  ## <small>1.3.6 (2026-09-02)</small>
2
18
 
3
19
  ### Summary
package/README.md CHANGED
@@ -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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"}
@@ -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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"}
@@ -1,8 +1,8 @@
1
1
  // FILE: src/plugins/web-tools/providers/brave.ts
2
- // VERSION: 1.0.0
2
+ // VERSION: 1.0.1
3
3
  // START_MODULE_CONTRACT
4
4
  // PURPOSE: Call the Brave Web Search endpoint directly and normalize web results for the web_search tool.
5
- // SCOPE: Brave request construction with X-Subscription-Token auth, count and freshness mapping, moderate safe search, and web result normalization.
5
+ // SCOPE: Brave request construction with X-Subscription-Token auth, count and freshness mapping, moderate safe search, web result normalization, and zero-result 200 envelopes without a web field resolving to empty results.
6
6
  // DEPENDS: [src/plugins/web-tools/http.ts, src/plugins/web-tools/providers/exa.ts]
7
7
  // LINKS: [M-WEB-BRAVE, M-WEB-HTTP, M-WEB-SEARCH-SERVICE]
8
8
  // ROLE: RUNTIME
@@ -14,7 +14,7 @@
14
14
  // END_MODULE_MAP
15
15
  //
16
16
  // START_CHANGE_SUMMARY
17
- // LAST_CHANGE: [v1.0.0 - Initial Brave Web Search adapter.]
17
+ // LAST_CHANGE: [2026-09-09 direct fix - Zero-result Brave 200 envelopes without a web field now resolve to empty results instead of BAD_RESPONSE.]
18
18
  // END_CHANGE_SUMMARY
19
19
  import { DEFAULT_TEXT_MAX_BYTES, requestBounded, } from "../http.js";
20
20
  import { mapHttpErrorToProviderError, WebProviderError, } from "./exa.js";
@@ -54,12 +54,18 @@ function parseBraveResults(bytes) {
54
54
  }
55
55
  const web = isPlainObject(parsed) ? parsed.web : undefined;
56
56
  const results = isPlainObject(web) && Array.isArray(web.results) ? web.results : undefined;
57
- if (!results) {
58
- throw new WebProviderError("brave", "BAD_RESPONSE", "unexpected brave response envelope");
57
+ if (results) {
58
+ return results
59
+ .map(normalizeBraveResult)
60
+ .filter((result) => result !== undefined);
59
61
  }
60
- return results
61
- .map(normalizeBraveResult)
62
- .filter((result) => result !== undefined);
62
+ // Brave answers zero-result queries with HTTP 200 and no `web` field at all
63
+ // (observed 2026-09-09: query.bad_results true, empty mixed). Recognize that
64
+ // envelope as an empty result set instead of a protocol error.
65
+ if (isPlainObject(parsed) && (isPlainObject(parsed.query) || isPlainObject(parsed.mixed))) {
66
+ return [];
67
+ }
68
+ throw new WebProviderError("brave", "BAD_RESPONSE", "unexpected brave response envelope");
63
69
  }
64
70
  // END_BLOCK_HELPERS
65
71
  // START_CONTRACT: searchBrave
@@ -1 +1 @@
1
- {"version":3,"file":"brave.js","sourceRoot":"","sources":["../../../../src/plugins/web-tools/providers/brave.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brave.js","sourceRoot":"","sources":["../../../../src/plugins/web-tools/providers/brave.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",
3
+ "version": "1.3.8",
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/schemas/vvoc/v3.json",
3
+ "$id": "https://cdn.jsdelivr.net/npm/@osovv/vv-opencode@1.3.8/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": [