scoutline 0.10.2 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +72 -44
  2. package/dist/capabilities/vision.d.ts +4 -3
  3. package/dist/capabilities/vision.d.ts.map +1 -1
  4. package/dist/capabilities/vision.js +7 -5
  5. package/dist/capabilities/vision.js.map +1 -1
  6. package/dist/commands/crawl.d.ts.map +1 -1
  7. package/dist/commands/crawl.js +14 -3
  8. package/dist/commands/crawl.js.map +1 -1
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/doctor.js +15 -10
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/map.d.ts.map +1 -1
  13. package/dist/commands/map.js +16 -3
  14. package/dist/commands/map.js.map +1 -1
  15. package/dist/commands/read.d.ts.map +1 -1
  16. package/dist/commands/read.js +9 -3
  17. package/dist/commands/read.js.map +1 -1
  18. package/dist/commands/repo.d.ts.map +1 -1
  19. package/dist/commands/repo.js +5 -3
  20. package/dist/commands/repo.js.map +1 -1
  21. package/dist/commands/research.d.ts +35 -7
  22. package/dist/commands/research.d.ts.map +1 -1
  23. package/dist/commands/research.js +93 -15
  24. package/dist/commands/research.js.map +1 -1
  25. package/dist/commands/vision.d.ts.map +1 -1
  26. package/dist/commands/vision.js +2 -1
  27. package/dist/commands/vision.js.map +1 -1
  28. package/dist/index.d.ts +11 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +338 -250
  31. package/dist/index.js.map +1 -1
  32. package/dist/lib/errors.d.ts +11 -0
  33. package/dist/lib/errors.d.ts.map +1 -1
  34. package/dist/lib/errors.js +14 -0
  35. package/dist/lib/errors.js.map +1 -1
  36. package/dist/lib/execution.d.ts.map +1 -1
  37. package/dist/lib/execution.js +12 -8
  38. package/dist/lib/execution.js.map +1 -1
  39. package/dist/lib/provider-fallback.d.ts +150 -0
  40. package/dist/lib/provider-fallback.d.ts.map +1 -0
  41. package/dist/lib/provider-fallback.js +510 -0
  42. package/dist/lib/provider-fallback.js.map +1 -0
  43. package/dist/providers/brave/adapter.d.ts.map +1 -1
  44. package/dist/providers/brave/adapter.js +2 -0
  45. package/dist/providers/brave/adapter.js.map +1 -1
  46. package/dist/providers/exa/adapter.d.ts.map +1 -1
  47. package/dist/providers/exa/adapter.js +10 -1
  48. package/dist/providers/exa/adapter.js.map +1 -1
  49. package/dist/providers/firecrawl/adapter.d.ts.map +1 -1
  50. package/dist/providers/firecrawl/adapter.js +13 -3
  51. package/dist/providers/firecrawl/adapter.js.map +1 -1
  52. package/dist/providers/minimax/adapter.d.ts.map +1 -1
  53. package/dist/providers/minimax/adapter.js +4 -0
  54. package/dist/providers/minimax/adapter.js.map +1 -1
  55. package/dist/providers/tavily/adapter.d.ts.map +1 -1
  56. package/dist/providers/tavily/adapter.js +2 -0
  57. package/dist/providers/tavily/adapter.js.map +1 -1
  58. package/dist/providers/types.d.ts +28 -0
  59. package/dist/providers/types.d.ts.map +1 -1
  60. package/dist/providers/types.js +8 -0
  61. package/dist/providers/types.js.map +1 -1
  62. package/dist/providers/zai/adapter.d.ts.map +1 -1
  63. package/dist/providers/zai/adapter.js +4 -0
  64. package/dist/providers/zai/adapter.js.map +1 -1
  65. package/package.json +1 -1
@@ -0,0 +1,510 @@
1
+ /**
2
+ * Provider Fallback Executor (Provider Fallback Tech Plan §"Core mechanism").
3
+ *
4
+ * Provider-neutral candidate loop. Imports only the descriptor + error
5
+ * types and the `ProviderContext` injection shape; it never imports a
6
+ * concrete Adapter, transport, UTCP client, or command module. Every
7
+ * shared-capability handler passes a per-provider `attempt` callback
8
+ * (which builds its own Adapter and invokes the appropriate
9
+ * `executeX` primitive) and receives a single {@link FallbackOutcome}.
10
+ *
11
+ * Boundary rules (Provider Fallback Tech Plan §"Core mechanism"):
12
+ * - May import Provider descriptor + error types and the
13
+ * `ProviderContext` injection shape.
14
+ * - Must NOT import a concrete Adapter, a transport, a UTCP client,
15
+ * a command module, a Capability, or `executeX`/shared-execution
16
+ * primitives.
17
+ * - The dispatch layer owns the call site; the handlers own request
18
+ * shape and which `executeX` is invoked. This module owns
19
+ * candidate ordering, preflight, error classification, exhaustion,
20
+ * and notices.
21
+ *
22
+ * Algorithm (Tech Plan §"Algorithm"):
23
+ * 1. Build a candidate plan (an ordered list, not a silent filter):
24
+ * `[effective, ...descriptors]`, deduplicated by id, with each
25
+ * entry tagged `eligible | incapable | unconfigured` from an
26
+ * ordered preflight (capability metadata → `isConfigured` →
27
+ * adapter-handle agreement). Ineligible entries are RETAINED
28
+ * with their reason so skip-notices fire and the effective
29
+ * provider's real error is preserved on exhaustion.
30
+ * 2. Walk the plan. Emit skip-notices for ineligible entries
31
+ * (`⚠ <p> does not support '<cap>' — skipping`,
32
+ * `⚠ <p> is not configured — skipping`).
33
+ * 3. For each eligible candidate, run the adapter-handle agreement
34
+ * step and `await attempt(d)`. On success, return
35
+ * `{ result, provider: d.id, fellBack: d.id !== effective }`. On
36
+ * throw, classify (Tech Plan §"Error classification"): re-throw
37
+ * `ValidationError` (no loop) and unknown errors (fail closed);
38
+ * continue on `UnsupportedCapabilityError`, `UnsupportedOptionError`,
39
+ * and the runtime-error family. Emit a switch notice when
40
+ * continuing to the next candidate.
41
+ * 4. Exhaustion. If no eligible candidate succeeds, re-throw the
42
+ * **effective** provider's own error: the runtime error it
43
+ * produced if it ran, otherwise the typed preflight error
44
+ * (`ConfigurationError` for `unconfigured`, `UnsupportedCapabilityError`
45
+ * for `incapable`). Never synthesize a different error. This
46
+ * preserves the 0.10.x exit codes and is the critique #7 fix.
47
+ *
48
+ * Kill-switch (Tech Plan §"Kill-switch plumbing"). When
49
+ * `fallbackEnabled === false`, the plan is `[effective]` only, and
50
+ * the SAME preflight runs on it. The kill-switch narrows the plan;
51
+ * it does NOT bypass the preflight. So an incapable effective throws
52
+ * `UnsupportedCapabilityError` and an unconfigured effective throws
53
+ * `ConfigurationError` — the exact 0.10.x codes and ordering, with
54
+ * zero adapter work for the unsupported case (FR-023/024). No notices
55
+ * are emitted under the kill-switch.
56
+ *
57
+ * Notices (Tech Plan §"Failure, notice & cache semantics"). Every
58
+ * notice is written via the injected `writeStderr` only; the executor
59
+ * never writes to stdout. The summary line `✓ <cmd> completed via <p>
60
+ * (fallback)` is emitted only when `fellBack === true` (i.e. the
61
+ * winning provider is not the effective). Under the kill-switch,
62
+ * `fellBack` can never be true, so no summary is emitted.
63
+ */
64
+ import { PROVIDER_FALLBACK_CREDENTIAL_MESSAGE } from "../providers/types.js";
65
+ import { ApiError, AuthError, ConfigurationError, NetworkError, QuotaError, ScoutlineError, TimeoutError, UnsupportedCapabilityError, UnsupportedOptionError, ValidationError, } from "./errors.js";
66
+ /**
67
+ * Map a {@link ProviderCapability} id to the Adapter slot the
68
+ * `ProviderAdapter` interface exposes for it. Vision sub-operations
69
+ * (`vision.interpret-image`, `vision.ui-artifact`, ...) all share
70
+ * the same `adapter.vision` slot, distinguished at the Capability
71
+ * layer by `visionCapability.supports(operation)`. Returns
72
+ * `undefined` for unknown capability ids so the preflight can
73
+ * classify them as `incapable`.
74
+ */
75
+ function adapterSlotFor(capabilityId) {
76
+ switch (capabilityId) {
77
+ case "search":
78
+ return "search";
79
+ case "reader":
80
+ return "reader";
81
+ case "crawl":
82
+ return "crawl";
83
+ case "map":
84
+ return "map";
85
+ case "research":
86
+ return "research";
87
+ case "quota":
88
+ return "quota";
89
+ case "diagnostics":
90
+ return "diagnostics";
91
+ case "repository-exploration":
92
+ return "repository";
93
+ default:
94
+ // Every Vision sub-operation is served by the same
95
+ // `adapter.vision` slot, so any `vision.*` capability id maps
96
+ // to that slot. The Capability layer handles operation-level
97
+ // support via `visionCapability.supports`.
98
+ if (capabilityId.startsWith("vision.")) {
99
+ return "vision";
100
+ }
101
+ return undefined;
102
+ }
103
+ }
104
+ /**
105
+ * Run the ordered preflight (capability → configuration → adapter
106
+ * handle) for a single descriptor. The adapter-handle step calls
107
+ * `descriptor.create()`; the resulting adapter is dropped after the
108
+ * slot check so the attempt callback re-creates a fresh one (this is
109
+ * cheap because `create()` is documented as side-effect-free in
110
+ * `ProviderDescriptor`). If `create()` itself throws, the candidate
111
+ * is treated as `unconfigured` so the existing live
112
+ * `ConfigurationError` exit code (3) is preserved — a descriptor that
113
+ * cannot even construct an Adapter behaves indistinguishably from
114
+ * one that is missing a credential.
115
+ *
116
+ * The capability-before-configuration ordering is a hard invariant
117
+ * (FR-023/024): an unsupported Capability must surface as
118
+ * `UnsupportedCapabilityError` (exit 1) BEFORE the configured check
119
+ * runs, so an unsupported Provider with no credential surfaces
120
+ * `UNSUPPORTED_CAPABILITY`, not `CONFIGURATION_ERROR`. The two
121
+ * branches in this function preserve that ordering.
122
+ */
123
+ function preflightDescriptor(descriptor, capabilityId, env) {
124
+ // Step 1 — capability metadata (FR-023).
125
+ if (!descriptor.capabilities().has(capabilityId)) {
126
+ return { kind: "incapable" };
127
+ }
128
+ // Step 2 — configuration (FR-024). Runs only if the capability is
129
+ // supported; an unsupported Provider is incapable, never
130
+ // unconfigured.
131
+ if (!descriptor.isConfigured(env)) {
132
+ return { kind: "unconfigured" };
133
+ }
134
+ // Step 3 — adapter-handle agreement. Construct the Adapter and
135
+ // verify the Capability slot is non-null. `create()` is documented
136
+ // as side-effect-free; if it throws (a programmer/constructor bug),
137
+ // the exception propagates rather than being silently masked as
138
+ // "unconfigured" — fail-closed on unknown errors (review fix).
139
+ const slot = adapterSlotFor(capabilityId);
140
+ if (slot === undefined) {
141
+ return { kind: "incapable" };
142
+ }
143
+ const adapter = descriptor.create({ env });
144
+ // `ProviderAdapter` is an interface with named properties only;
145
+ // cast through `unknown` to access the slot by computed key.
146
+ if (adapter[slot] === undefined) {
147
+ return { kind: "incapable" };
148
+ }
149
+ return { kind: "eligible" };
150
+ }
151
+ /**
152
+ * Build the candidate plan. The plan is a deduplicated ordered list
153
+ * `[effective, ...descriptors]` (registry order) when
154
+ * `fallbackEnabled === true`; a single-element list `[effective]`
155
+ * when `fallbackEnabled === false`. Deduplication keeps the FIRST
156
+ * occurrence of an id, so the effective always wins the first slot
157
+ * even when it also appears in the registry.
158
+ */
159
+ function buildCandidatePlan(effective, descriptors, capabilityId, env, fallbackEnabled) {
160
+ if (!fallbackEnabled) {
161
+ // Kill-switch: plan is `[effective]` only. The same preflight
162
+ // runs on it, so an incapable / unconfigured effective still
163
+ // surfaces its real typed error and ordering invariant. No
164
+ // notices are emitted (see {@link executeWithFallback}).
165
+ return [
166
+ {
167
+ descriptor: effective,
168
+ status: preflightDescriptor(effective, capabilityId, env),
169
+ },
170
+ ];
171
+ }
172
+ const seen = new Set();
173
+ const plan = [];
174
+ for (const descriptor of [effective, ...descriptors]) {
175
+ if (seen.has(descriptor.id))
176
+ continue;
177
+ seen.add(descriptor.id);
178
+ plan.push({
179
+ descriptor,
180
+ status: preflightDescriptor(descriptor, capabilityId, env),
181
+ });
182
+ }
183
+ return plan;
184
+ }
185
+ // ---------------------------------------------------------------------------
186
+ // Error classification (Tech Plan §"Error classification")
187
+ // ---------------------------------------------------------------------------
188
+ /**
189
+ * Classify a thrown error against the Tech Plan decision table.
190
+ *
191
+ * - `ValidationError` — `validation`. The loop must re-throw
192
+ * immediately; user input is bad for every Provider, so iterating
193
+ * is wasted work + extra noise.
194
+ * - `UnsupportedCapabilityError`, `UnsupportedOptionError` — `continue`.
195
+ * The Provider does not support this Capability or option, so the
196
+ * next candidate is meaningful.
197
+ * - `ApiError`, `NetworkError`, `TimeoutError`, `AuthError`,
198
+ * `ConfigurationError`, `QuotaError` — `continue`. Runtime failures
199
+ * fall through to the next candidate under the Tech Plan's
200
+ * accepted-risk path (and per critique #1's revised rule, async
201
+ * cost-bearing ops MAY double-charge on a runtime failure; the
202
+ * kill-switch is the documented safety valve).
203
+ * - Anything else (non-`ScoutlineError` or unrecognised
204
+ * `ScoutlineError` subclass) — `throw`. Fail closed on unknown
205
+ * errors so a programmer mistake cannot be silently masked by a
206
+ * cross-Provider fallback.
207
+ */
208
+ function classifyError(err) {
209
+ if (err instanceof ValidationError)
210
+ return "validation";
211
+ if (err instanceof UnsupportedCapabilityError)
212
+ return "continue";
213
+ if (err instanceof UnsupportedOptionError)
214
+ return "continue";
215
+ if (err instanceof ApiError ||
216
+ err instanceof NetworkError ||
217
+ err instanceof TimeoutError ||
218
+ err instanceof AuthError ||
219
+ err instanceof ConfigurationError ||
220
+ err instanceof QuotaError) {
221
+ return "continue";
222
+ }
223
+ // Some normalized errors are base ScoutlineError instances carrying a
224
+ // code field rather than a concrete subclass (e.g. Z.AI Reader 403 is
225
+ // a base ScoutlineError with code AUTH_ERROR, not a concrete AuthError).
226
+ // Match by code on ScoutlineError instances so they still continue to
227
+ // the next provider, while plain Errors (test doubles, programmer
228
+ // mistakes) stay fail-closed.
229
+ if (err instanceof ScoutlineError) {
230
+ const continueCodes = new Set([
231
+ "AUTH_ERROR",
232
+ "API_ERROR",
233
+ "NETWORK_ERROR",
234
+ "TIMEOUT_ERROR",
235
+ "QUOTA_ERROR",
236
+ "CONFIGURATION_ERROR",
237
+ ]);
238
+ if (continueCodes.has(err.code))
239
+ return "continue";
240
+ }
241
+ return "throw";
242
+ }
243
+ // ---------------------------------------------------------------------------
244
+ // Credential message (Provider Fallback execution-log flag, ticket 02)
245
+ // ---------------------------------------------------------------------------
246
+ /**
247
+ * Build the Provider-specific "missing credential" message for an
248
+ * unconfigured descriptor. Surfaces the env-var name(s) the Provider
249
+ * reads so the user sees the same targeted guidance today's handlers
250
+ * emitted (e.g. "Set Z_AI_API_KEY." instead of the generic "Set the
251
+ * required API key.").
252
+ *
253
+ * Reads the OPTIONAL `credentialEnvVars` field added to
254
+ * `ProviderDescriptor` by Ticket 02. When the field is absent (older
255
+ * test doubles) or empty, falls back to the provider-neutral
256
+ * {@link PROVIDER_FALLBACK_CREDENTIAL_MESSAGE} so the executor never
257
+ * crashes on a Provider that has not been updated yet. This keeps the
258
+ * change strictly backward-compatible per AGENTS.md.
259
+ *
260
+ * Single-var: "Set Z_AI_API_KEY."
261
+ * Multi-var: "Set Z_AI_API_KEY or ZAI_API_KEY."
262
+ */
263
+ function credentialMessageFor(descriptor) {
264
+ const vars = descriptor.credentialEnvVars;
265
+ if (!vars || vars.length === 0) {
266
+ return PROVIDER_FALLBACK_CREDENTIAL_MESSAGE;
267
+ }
268
+ if (vars.length === 1) {
269
+ return `Set ${vars[0]}.`;
270
+ }
271
+ const head = vars.slice(0, -1).join(", ");
272
+ const tail = vars[vars.length - 1];
273
+ return `Set ${head} or ${tail}.`;
274
+ }
275
+ // ---------------------------------------------------------------------------
276
+ // Notice wording
277
+ // ---------------------------------------------------------------------------
278
+ /**
279
+ * Build the per-skip notice for an ineligible plan entry.
280
+ * `incapable` and `unconfigured` have distinct wording so the user
281
+ * can tell why a Provider was skipped.
282
+ */
283
+ function skipNotice(capabilityId, entry) {
284
+ if (entry.status.kind === "unconfigured") {
285
+ return `⚠ ${entry.descriptor.id} is not configured — skipping`;
286
+ }
287
+ return `⚠ ${entry.descriptor.id} does not support '${capabilityId}' — skipping`;
288
+ }
289
+ /**
290
+ * Build the per-switch notice when the executor moves from one
291
+ * candidate to the next. The wording follows the Tech Plan
292
+ * §"Error classification" table exactly:
293
+ *
294
+ * - `UnsupportedCapabilityError` → "does not support '<cap>'"
295
+ * - `UnsupportedOptionError` → "does not support '<option>'" (uses
296
+ * the new structured `option` field)
297
+ * - Other runtime errors → "failed (<code>) for <cmd>"
298
+ */
299
+ function switchNotice(entry, err, capabilityId, commandLabel, nextId) {
300
+ if (err instanceof UnsupportedCapabilityError) {
301
+ return `⚠ ${entry.descriptor.id} does not support '${capabilityId}' — trying ${nextId}`;
302
+ }
303
+ if (err instanceof UnsupportedOptionError) {
304
+ return `⚠ ${entry.descriptor.id} does not support '${err.option}' — trying ${nextId}`;
305
+ }
306
+ // The classification table guarantees `err` is one of the typed
307
+ // runtime-error family here. `code` is read defensively so a
308
+ // custom subclass without a stable `code` still produces a
309
+ // readable notice.
310
+ const code = typeof err === "object" && err !== null && "code" in err
311
+ ? String(err.code)
312
+ : "ERROR";
313
+ return `⚠ ${entry.descriptor.id} failed (${code}) for ${commandLabel} — trying ${nextId}`;
314
+ }
315
+ // ---------------------------------------------------------------------------
316
+ // Public executor
317
+ // ---------------------------------------------------------------------------
318
+ /**
319
+ * Run a per-Provider attempt through the candidate loop.
320
+ *
321
+ * The executor walks the prebuilt plan, emitting skip-notices for
322
+ * ineligible entries and switch-notices between failed candidates.
323
+ * On success it returns the outcome and (if `fellBack === true`)
324
+ * writes the summary notice `✓ <cmd> completed via <p> (fallback)`.
325
+ * On exhaustion it re-throws the EFFECTIVE provider's own error —
326
+ * the runtime error it produced if it actually ran, otherwise the
327
+ * typed preflight error (`ConfigurationError` for `unconfigured`,
328
+ * `UnsupportedCapabilityError` for `incapable`). The executor never
329
+ * synthesizes a different error, so the 0.10.x exit codes are
330
+ * preserved on exhaustion (critique #7 fix).
331
+ *
332
+ * The kill-switch narrows the plan to `[effective]` and suppresses
333
+ * all notices. The same preflight still runs on the effective
334
+ * provider, so an incapable / unconfigured effective surfaces its
335
+ * exact preflight error (FR-023/024 preserved).
336
+ *
337
+ * Throws:
338
+ * - `Error` only if the effective Provider is not present in
339
+ * `descriptors`. This is a programmer error (the handler should
340
+ * have validated the Provider id before calling); surfacing it
341
+ * as a regular `Error` keeps the dispatch try/catch honest.
342
+ * - `ValidationError` re-thrown without looping (no Provider will
343
+ * succeed on bad input).
344
+ * - Any other `ScoutlineError` (or its `UnsupportedCapabilityError` /
345
+ * `UnsupportedOptionError` subclasses) re-thrown from the
346
+ * effective candidate on exhaustion.
347
+ * - Non-`ScoutlineError` values re-thrown unchanged when they leak
348
+ * from an attempt; the classifier treats them as "unknown" and
349
+ * re-throws to fail closed.
350
+ */
351
+ export async function executeWithFallback(opts, attempt) {
352
+ // The handler is expected to validate the Provider id before
353
+ // calling the executor; if it does not, surface a plain Error
354
+ // rather than a typed `ScoutlineError` so the programmer mistake
355
+ // is obvious in the dispatch catch.
356
+ const effective = opts.descriptors.find((d) => d.id === opts.effectiveProvider);
357
+ if (!effective) {
358
+ throw new Error(`executeWithFallback: effective provider "${opts.effectiveProvider}" is not present in the descriptor list`);
359
+ }
360
+ const plan = buildCandidatePlan(effective, opts.descriptors, opts.capabilityId, opts.env, opts.fallbackEnabled);
361
+ // Track the effective's outcome so exhaustion surfaces its real
362
+ // error. We capture the LAST error the effective produced
363
+ // (typically the only one) so a future change that re-runs the
364
+ // effective keeps the most recent failure.
365
+ let effectiveError = undefined;
366
+ let effectiveRan = false;
367
+ let lastAttemptedId = null;
368
+ for (let i = 0; i < plan.length; i += 1) {
369
+ const entry = plan[i];
370
+ // Skip-notices. Emitted only when fallback is enabled; the
371
+ // kill-switch plan has a single entry and the user explicitly
372
+ // opted out of fallback, so no notice is desired. Under the
373
+ // kill-switch an ineligible effective must NEVER have its
374
+ // adapter invoked; the loop must surface the typed
375
+ // preflight error directly, restoring the 0.10.x
376
+ // "zero-adapter-work for the unsupported case" guarantee.
377
+ if (entry.status.kind === "incapable" || entry.status.kind === "unconfigured") {
378
+ if (opts.fallbackEnabled) {
379
+ opts.writeStderr(skipNotice(opts.capabilityId, entry));
380
+ continue;
381
+ }
382
+ // Kill-switch on an ineligible effective: surface the
383
+ // typed preflight error without ever calling `attempt`.
384
+ // (The exhaustion branch below handles this case too, but
385
+ // short-circuiting here keeps the loop shape identical to
386
+ // the success / failure paths.)
387
+ throw entry.status.kind === "unconfigured"
388
+ ? new ConfigurationError(`Provider "${opts.effectiveProvider}" is not configured. ${credentialMessageFor(entry.descriptor)}`)
389
+ : new UnsupportedCapabilityError(opts.effectiveProvider, opts.capabilityId);
390
+ }
391
+ // Eligible. Run the attempt.
392
+ try {
393
+ lastAttemptedId = entry.descriptor.id;
394
+ const result = await attempt(entry.descriptor);
395
+ const fellBack = entry.descriptor.id !== opts.effectiveProvider;
396
+ // The summary notice is the only line emitted on the
397
+ // success path. It is gated on `fellBack` per the Tech
398
+ // Plan: under the kill-switch `fellBack` can never be true
399
+ // (the plan is `[effective]` only), so the explicit
400
+ // `fallbackEnabled` check is redundant but documents the
401
+ // intent and protects future changes that might widen the
402
+ // kill-switch plan.
403
+ if (fellBack && opts.fallbackEnabled) {
404
+ opts.writeStderr(`✓ ${opts.commandLabel} completed via ${entry.descriptor.id} (fallback)`);
405
+ }
406
+ return { result, provider: entry.descriptor.id, fellBack };
407
+ }
408
+ catch (err) {
409
+ // `ValidationError` short-circuits the loop (Tech Plan
410
+ // §"Error classification"). Bad user input fails
411
+ // identically on every Provider; looping is waste + noise.
412
+ if (err instanceof ValidationError) {
413
+ throw err;
414
+ }
415
+ // Unknown errors fail closed. The classification table
416
+ // treats anything outside the typed-error family as
417
+ // "re-throw unchanged" so a programmer mistake is not
418
+ // masked by a cross-Provider fallback.
419
+ const cls = classifyError(err);
420
+ if (cls === "throw") {
421
+ throw err;
422
+ }
423
+ // Continue: remember the effective's own error for
424
+ // exhaustion, then emit a switch notice if there is a
425
+ // next candidate. Notices are stderr-only and only
426
+ // emitted when fallback is enabled.
427
+ if (entry.descriptor.id === opts.effectiveProvider) {
428
+ effectiveError = err;
429
+ effectiveRan = true;
430
+ }
431
+ if (opts.fallbackEnabled && i < plan.length - 1) {
432
+ const next = plan[i + 1].descriptor;
433
+ opts.writeStderr(switchNotice(entry, err, opts.capabilityId, opts.commandLabel, next.id));
434
+ }
435
+ }
436
+ }
437
+ // Exhaustion. Re-throw the effective's OWN error. We never
438
+ // synthesize a different error; the dispatcher relies on the
439
+ // typed error to pick the right exit code (critique #7 fix).
440
+ //
441
+ // Review Fix 5: emit a single terminal stderr notice BEFORE the
442
+ // rethrow so the user sees the final state. Three observable
443
+ // shapes:
444
+ // - Plan was empty of eligible candidates (all rejected at
445
+ // preflight): `no eligible candidates` for the command.
446
+ // - Last eligible candidate ran and failed: `<last> failed
447
+ // (<code>) for <command> — no further candidates`.
448
+ // - Otherwise: silent, because there is nothing new to convey
449
+ // beyond the effective's own error envelope.
450
+ // Strict mode (`fallbackEnabled === false`) stays silent so the
451
+ // JSON error contract for scripting users is unaffected.
452
+ if (opts.fallbackEnabled) {
453
+ const eligibleCount = plan.filter((p) => p.status.kind === "eligible").length;
454
+ const lastRanError = effectiveRan && effectiveError !== undefined ? effectiveError : null;
455
+ if (eligibleCount === 0) {
456
+ // Plan had no eligible entries (every preflight rejected the
457
+ // candidate). Surface a single unambiguous terminal line so
458
+ // the user knows the executor walked the plan and had nothing
459
+ // to attempt.
460
+ opts.writeStderr(`⚠ ${opts.commandLabel}: no eligible candidates`);
461
+ }
462
+ else if (lastRanError !== null) {
463
+ opts.writeStderr(terminalExhaustionNotice(lastAttemptedId ?? opts.effectiveProvider, lastRanError, opts.commandLabel));
464
+ }
465
+ // else: there were eligible candidates and none produced a runtime
466
+ // error path to surface here. The plan was exhausted without an
467
+ // effective-eligible run (e.g. every candidate short-circuited on
468
+ // preflight-rejected neighbours). In that case the typed error
469
+ // from the preferred path carries enough signal; no extra line.
470
+ }
471
+ if (effectiveRan && effectiveError !== undefined) {
472
+ throw effectiveError;
473
+ }
474
+ // The effective was ineligible (preflight rejected it without
475
+ // ever invoking `attempt`). Surface the matching typed error
476
+ // so the dispatcher exit code matches 0.10.x.
477
+ const effectiveStatus = plan[0].status;
478
+ if (effectiveStatus.kind === "unconfigured") {
479
+ throw new ConfigurationError(`Provider "${opts.effectiveProvider}" is not configured. ${credentialMessageFor(plan[0].descriptor)}`);
480
+ }
481
+ // `incapable` — capability metadata or adapter-handle check
482
+ // failed. Configuration was either irrelevant (capability
483
+ // metadata failed first) or passed (adapter-handle failed);
484
+ // either way the 0.10.x exit code is 1 via
485
+ // `UnsupportedCapabilityError`.
486
+ throw new UnsupportedCapabilityError(opts.effectiveProvider, opts.capabilityId);
487
+ }
488
+ /**
489
+ * Build the terminal exhaustion notice for the last eligible
490
+ * candidate that ran and failed. Carries the SAME stable error
491
+ * code the typed error envelope exposes so the user can map
492
+ * stderr text to a JSON error code without parsing. The
493
+ * `<commandLabel>` matches the same label used by the in-loop
494
+ * switch notices so the wording is consistent across a single
495
+ * invocation.
496
+ *
497
+ * The notice format follows the orchestrator's Review Fix 5
498
+ * guidance: `<last> failed (<code>) — no further candidates`.
499
+ */
500
+ function terminalExhaustionNotice(lastId, err, _commandLabel) {
501
+ const code = typeof err === "object" && err !== null && "code" in err
502
+ ? String(err.code)
503
+ : "ERROR";
504
+ // Format mirrors the orchestrator's literal Review-Fix-5 guidance:
505
+ // `<last> failed (<code>) — no further candidates`. The `⚠`
506
+ // icon matches the existing skip / switch notice family for
507
+ // visual consistency across a single invocation.
508
+ return `⚠ ${lastId} failed (${code}) — no further candidates`;
509
+ }
510
+ //# sourceMappingURL=provider-fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-fallback.js","sourceRoot":"","sources":["../../src/lib/provider-fallback.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/brave/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAqBrB,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAIrB;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAweD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,wBAAwB,GAAG,kBAAkB,CAqBjG"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/brave/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAqBrB,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAIrB;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAweD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,wBAAwB,GAAG,kBAAkB,CAuBjG"}
@@ -499,6 +499,8 @@ export function createBraveDescriptor(dependencies) {
499
499
  const quota = createBraveQuotaCapability({ env: context.env, transport });
500
500
  return { id: "brave", search, diagnostics, quota };
501
501
  },
502
+ // Provider-fallback Ticket 02 — see ProviderDescriptor.credentialEnvVars.
503
+ credentialEnvVars: ["BRAVE_SEARCH_API_KEY"],
502
504
  };
503
505
  }
504
506
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/providers/brave/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/providers/brave/adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/exa/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,KAAK,EAIV,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAyBrB,OAAO,KAAK,EAAiB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAmBrF,OAAO,EASL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAGrB;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,wDAAwD;IACxD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CAChD;AAi7BD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,CAAC,EAAE,sBAAsB,GAAG,kBAAkB,CAmC7F"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/exa/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,KAAK,EAIV,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAyBrB,OAAO,KAAK,EAAiB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAmBrF,OAAO,EASL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAGrB;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,wDAAwD;IACxD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CAChD;AAw7BD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,CAAC,EAAE,sBAAsB,GAAG,kBAAkB,CAqC7F"}
@@ -290,10 +290,17 @@ function createExaSearchCapability(options) {
290
290
  throw new ValidationError("Search query must contain at least one non-whitespace character");
291
291
  }
292
292
  // Exa supports domain, recency, contentSize, and topic natively.
293
- // location is Z.AI-specific and rejected before any transport call.
293
+ // location is Z.AI-specific and rejected before any transport
294
+ // call. type is Brave-only (routes to its video endpoint); every
295
+ // other Provider rejects it before any transport call so the
296
+ // option-level fallback contract can continue past Exa to the
297
+ // capable provider (Review Fix 2).
294
298
  if (request.controls?.location !== undefined) {
295
299
  throw new UnsupportedOptionError("exa", "search", "location");
296
300
  }
301
+ if (request.controls?.type !== undefined) {
302
+ throw new UnsupportedOptionError("exa", "search", "type");
303
+ }
297
304
  },
298
305
  cacheIdentity(request) {
299
306
  const apiKey = resolveApiKey(env);
@@ -889,6 +896,8 @@ export function createExaDescriptor(dependencies) {
889
896
  });
890
897
  return { id: "exa", search, reader, research, diagnostics };
891
898
  },
899
+ // Provider-fallback Ticket 02 — see ProviderDescriptor.credentialEnvVars.
900
+ credentialEnvVars: ["EXA_API_KEY"],
892
901
  };
893
902
  }
894
903
  //# sourceMappingURL=adapter.js.map