scoutline 0.10.2 → 0.12.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 (151) hide show
  1. package/README.md +99 -44
  2. package/dist/capabilities/diagnostics.d.ts +75 -0
  3. package/dist/capabilities/diagnostics.d.ts.map +1 -1
  4. package/dist/capabilities/diagnostics.js.map +1 -1
  5. package/dist/capabilities/quota.d.ts +64 -1
  6. package/dist/capabilities/quota.d.ts.map +1 -1
  7. package/dist/capabilities/quota.js.map +1 -1
  8. package/dist/capabilities/vision.d.ts +4 -3
  9. package/dist/capabilities/vision.d.ts.map +1 -1
  10. package/dist/capabilities/vision.js +7 -5
  11. package/dist/capabilities/vision.js.map +1 -1
  12. package/dist/commands/code.d.ts +9 -1
  13. package/dist/commands/code.d.ts.map +1 -1
  14. package/dist/commands/code.js +4 -4
  15. package/dist/commands/code.js.map +1 -1
  16. package/dist/commands/crawl.d.ts.map +1 -1
  17. package/dist/commands/crawl.js +14 -3
  18. package/dist/commands/crawl.js.map +1 -1
  19. package/dist/commands/doctor.d.ts +71 -1
  20. package/dist/commands/doctor.d.ts.map +1 -1
  21. package/dist/commands/doctor.js +96 -15
  22. package/dist/commands/doctor.js.map +1 -1
  23. package/dist/commands/init.d.ts +186 -0
  24. package/dist/commands/init.d.ts.map +1 -0
  25. package/dist/commands/init.js +1221 -0
  26. package/dist/commands/init.js.map +1 -0
  27. package/dist/commands/map.d.ts.map +1 -1
  28. package/dist/commands/map.js +16 -3
  29. package/dist/commands/map.js.map +1 -1
  30. package/dist/commands/quota.d.ts +32 -0
  31. package/dist/commands/quota.d.ts.map +1 -1
  32. package/dist/commands/quota.js +165 -24
  33. package/dist/commands/quota.js.map +1 -1
  34. package/dist/commands/read.d.ts.map +1 -1
  35. package/dist/commands/read.js +9 -3
  36. package/dist/commands/read.js.map +1 -1
  37. package/dist/commands/repo.d.ts.map +1 -1
  38. package/dist/commands/repo.js +5 -3
  39. package/dist/commands/repo.js.map +1 -1
  40. package/dist/commands/research.d.ts +35 -7
  41. package/dist/commands/research.d.ts.map +1 -1
  42. package/dist/commands/research.js +93 -15
  43. package/dist/commands/research.js.map +1 -1
  44. package/dist/commands/tools.d.ts +8 -0
  45. package/dist/commands/tools.d.ts.map +1 -1
  46. package/dist/commands/tools.js +4 -4
  47. package/dist/commands/tools.js.map +1 -1
  48. package/dist/commands/vision.d.ts +10 -0
  49. package/dist/commands/vision.d.ts.map +1 -1
  50. package/dist/commands/vision.js +25 -2
  51. package/dist/commands/vision.js.map +1 -1
  52. package/dist/index.d.ts +136 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +894 -298
  55. package/dist/index.js.map +1 -1
  56. package/dist/lib/api-client.d.ts +1 -1
  57. package/dist/lib/api-client.d.ts.map +1 -1
  58. package/dist/lib/api-client.js +6 -2
  59. package/dist/lib/api-client.js.map +1 -1
  60. package/dist/lib/cache.d.ts +9 -2
  61. package/dist/lib/cache.d.ts.map +1 -1
  62. package/dist/lib/cache.js +9 -2
  63. package/dist/lib/cache.js.map +1 -1
  64. package/dist/lib/code-mode.d.ts +8 -0
  65. package/dist/lib/code-mode.d.ts.map +1 -1
  66. package/dist/lib/code-mode.js +3 -1
  67. package/dist/lib/code-mode.js.map +1 -1
  68. package/dist/lib/config-store.d.ts +165 -0
  69. package/dist/lib/config-store.d.ts.map +1 -0
  70. package/dist/lib/config-store.js +332 -0
  71. package/dist/lib/config-store.js.map +1 -0
  72. package/dist/lib/config.d.ts +2 -2
  73. package/dist/lib/config.d.ts.map +1 -1
  74. package/dist/lib/config.js +19 -11
  75. package/dist/lib/config.js.map +1 -1
  76. package/dist/lib/consumption.d.ts +144 -0
  77. package/dist/lib/consumption.d.ts.map +1 -0
  78. package/dist/lib/consumption.js +161 -0
  79. package/dist/lib/consumption.js.map +1 -0
  80. package/dist/lib/errors.d.ts +11 -0
  81. package/dist/lib/errors.d.ts.map +1 -1
  82. package/dist/lib/errors.js +14 -0
  83. package/dist/lib/errors.js.map +1 -1
  84. package/dist/lib/execution.d.ts +32 -4
  85. package/dist/lib/execution.d.ts.map +1 -1
  86. package/dist/lib/execution.js +156 -13
  87. package/dist/lib/execution.js.map +1 -1
  88. package/dist/lib/mcp-client.d.ts +12 -0
  89. package/dist/lib/mcp-client.d.ts.map +1 -1
  90. package/dist/lib/mcp-client.js +16 -7
  91. package/dist/lib/mcp-client.js.map +1 -1
  92. package/dist/lib/mcp-config.d.ts +10 -0
  93. package/dist/lib/mcp-config.d.ts.map +1 -1
  94. package/dist/lib/mcp-config.js +13 -7
  95. package/dist/lib/mcp-config.js.map +1 -1
  96. package/dist/lib/monitor-client.d.ts +19 -3
  97. package/dist/lib/monitor-client.d.ts.map +1 -1
  98. package/dist/lib/monitor-client.js +21 -5
  99. package/dist/lib/monitor-client.js.map +1 -1
  100. package/dist/lib/provider-fallback.d.ts +150 -0
  101. package/dist/lib/provider-fallback.d.ts.map +1 -0
  102. package/dist/lib/provider-fallback.js +510 -0
  103. package/dist/lib/provider-fallback.js.map +1 -0
  104. package/dist/lib/quota-mapping.d.ts +402 -0
  105. package/dist/lib/quota-mapping.d.ts.map +1 -0
  106. package/dist/lib/quota-mapping.js +539 -0
  107. package/dist/lib/quota-mapping.js.map +1 -0
  108. package/dist/lib/quota-store.d.ts +271 -0
  109. package/dist/lib/quota-store.d.ts.map +1 -0
  110. package/dist/lib/quota-store.js +540 -0
  111. package/dist/lib/quota-store.js.map +1 -0
  112. package/dist/lib/trigger-detection.d.ts +149 -0
  113. package/dist/lib/trigger-detection.d.ts.map +1 -0
  114. package/dist/lib/trigger-detection.js +149 -0
  115. package/dist/lib/trigger-detection.js.map +1 -0
  116. package/dist/lib/tty.d.ts +8 -1
  117. package/dist/lib/tty.d.ts.map +1 -1
  118. package/dist/lib/tty.js +53 -1
  119. package/dist/lib/tty.js.map +1 -1
  120. package/dist/providers/brave/adapter.d.ts +26 -0
  121. package/dist/providers/brave/adapter.d.ts.map +1 -1
  122. package/dist/providers/brave/adapter.js +66 -4
  123. package/dist/providers/brave/adapter.js.map +1 -1
  124. package/dist/providers/brave/client.d.ts +46 -2
  125. package/dist/providers/brave/client.d.ts.map +1 -1
  126. package/dist/providers/brave/client.js +55 -3
  127. package/dist/providers/brave/client.js.map +1 -1
  128. package/dist/providers/exa/adapter.d.ts.map +1 -1
  129. package/dist/providers/exa/adapter.js +10 -1
  130. package/dist/providers/exa/adapter.js.map +1 -1
  131. package/dist/providers/firecrawl/adapter.d.ts.map +1 -1
  132. package/dist/providers/firecrawl/adapter.js +13 -3
  133. package/dist/providers/firecrawl/adapter.js.map +1 -1
  134. package/dist/providers/minimax/adapter.d.ts.map +1 -1
  135. package/dist/providers/minimax/adapter.js +4 -0
  136. package/dist/providers/minimax/adapter.js.map +1 -1
  137. package/dist/providers/selection.d.ts +114 -1
  138. package/dist/providers/selection.d.ts.map +1 -1
  139. package/dist/providers/selection.js +99 -3
  140. package/dist/providers/selection.js.map +1 -1
  141. package/dist/providers/tavily/adapter.d.ts.map +1 -1
  142. package/dist/providers/tavily/adapter.js +2 -0
  143. package/dist/providers/tavily/adapter.js.map +1 -1
  144. package/dist/providers/types.d.ts +33 -1
  145. package/dist/providers/types.d.ts.map +1 -1
  146. package/dist/providers/types.js +8 -0
  147. package/dist/providers/types.js.map +1 -1
  148. package/dist/providers/zai/adapter.d.ts.map +1 -1
  149. package/dist/providers/zai/adapter.js +18 -5
  150. package/dist/providers/zai/adapter.js.map +1 -1
  151. package/package.json +2 -1
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Consumption event + sink (Plan B — PB-T2).
3
+ *
4
+ * A **typed consumption event** represents one billable Provider
5
+ * transport attempt. Shared execution emits it at the execution seam
6
+ * (`lib/execution.ts`) — after the cache-miss check, around each
7
+ * `operation.invoke()` call — so cache hits emit nothing and a retried
8
+ * operation emits one event per attempt.
9
+ *
10
+ * Boundary rules:
11
+ * - Imports quota-store types (the sink writes to it) and provider
12
+ * identity types. No provider transport, no command presentation.
13
+ * - The sink is **best-effort**: a record failure is converted to a
14
+ * redacted warning and never propagates. A successful Provider
15
+ * result still returns; the retry/fallback classifier is never
16
+ * consulted on accounting state.
17
+ * - The amount is an explicit exact/estimate/unknown discriminated
18
+ * value. There is no `number = 1` default — Research/Vision and
19
+ * other variable-cost capabilities persist `unknown` or an
20
+ * explicit estimate rather than fake-precise consumption.
21
+ *
22
+ * Persistence lifecycle:
23
+ * - The sink's `record()` promise is awaited before the billable
24
+ * invoke returns outward, so the consumption write survives the
25
+ * bin's immediate `process.exit(status)`. A rejection is converted
26
+ * to a stderr warning; the outer promise still resolves.
27
+ *
28
+ * Relation to PB-T1 / PB-T3:
29
+ * - The sink calls PB-T1's `QuotaStore.writeConsumption`, advancing
30
+ * `locallyUpdatedAt` and adjusting the matching category's count
31
+ * set when one is exposed. `observedAt` (ground truth) never moves.
32
+ * - The event carries canonical data (capability ID, category, unit,
33
+ * amount). PB-T3 maps capabilities→categories and PB-T4 ranks;
34
+ * PB-T2 records raw, provider-neutral events and lets later layers
35
+ * interpret them.
36
+ */
37
+ // ---------------------------------------------------------------------------
38
+ // Default amount per capability (honest cost model)
39
+ // ---------------------------------------------------------------------------
40
+ /**
41
+ * Default {@link ConsumptionAmount} for a capability when the wrapper
42
+ * has no response-usage to derive from. Most providers do not return
43
+ * per-call usage, so the default is **unknown** — never a fake-precise
44
+ * "1".
45
+ *
46
+ * Capabilities whose unit-cost is reliably one (Search, Repository,
47
+ * Reader, Map) get `{ kind: "estimate", value: 1 }`. Capabilities
48
+ * with variable cost (Research = 4–250 credits, Vision = variable
49
+ * tokens, Crawl = per-page) default to `unknown`. PB-T3 refines these
50
+ * mappings; PB-T2 records the honest default.
51
+ */
52
+ export function defaultAmountForCapability(capabilityId) {
53
+ switch (capabilityId) {
54
+ case "search":
55
+ case "reader":
56
+ case "repository-exploration":
57
+ case "map":
58
+ // Single-call cost; count-bearing categories get decremented by 1.
59
+ return { kind: "estimate", value: 1 };
60
+ case "vision":
61
+ case "crawl":
62
+ case "research":
63
+ // Variable-cost: vision bills tokens; crawl bills per-page
64
+ // credits; research bills 4–250 credits per request. Without a
65
+ // response-carried usage, persist `unknown` rather than a
66
+ // fake-precise number.
67
+ return { kind: "unknown" };
68
+ default:
69
+ // Unrecognized capability — never guess.
70
+ return { kind: "unknown" };
71
+ }
72
+ }
73
+ function defaultConsumptionWarning(message) {
74
+ process.stderr.write(`scoutline: ${message}\n`);
75
+ }
76
+ /**
77
+ * Build a production {@link ConsumptionSink} that writes through
78
+ * {@link QuotaStore.writeConsumption}. The sink is fail-safe: any
79
+ * internal rejection (disk full, permission, race) is converted to a
80
+ * warning and the recorded promise resolves so shared execution never
81
+ * observes an accounting failure.
82
+ *
83
+ * The store's per-file mutex serializes concurrent writes within the
84
+ * process; cross-process concurrency is last-write-wins (acceptable
85
+ * for an observational heuristic; PB-T1's atomic rename keeps the
86
+ * final state crash-safe).
87
+ */
88
+ export function createQuotaStoreConsumptionSink(options) {
89
+ const store = options.store;
90
+ const now = options.now ?? Date.now;
91
+ const onWarning = options.onWarning ?? defaultConsumptionWarning;
92
+ return {
93
+ async record(event) {
94
+ try {
95
+ await store.writeConsumption(event.provider, {
96
+ ...(event.category !== undefined ? { category: event.category } : {}),
97
+ ...(event.unit !== undefined ? { unit: event.unit } : {}),
98
+ amount: event.amount,
99
+ }, event.at ?? now());
100
+ }
101
+ catch (error) {
102
+ // Redacted: never log event detail (provider, capability) —
103
+ // accounting failure is observational only.
104
+ const reason = error instanceof Error ? error.message : String(error);
105
+ onWarning(`quota consumption recording failed: ${reason}`);
106
+ }
107
+ },
108
+ };
109
+ }
110
+ // ---------------------------------------------------------------------------
111
+ // In-memory sink double (tests)
112
+ // ---------------------------------------------------------------------------
113
+ /**
114
+ * Build an in-memory {@link ConsumptionSink} for hermetic tests. Records
115
+ * every event in `events` (in arrival order); never rejects. Use this
116
+ * to assert exact event sequences for cache-hit suppression, retry
117
+ * emission, and observational-handler silence.
118
+ */
119
+ export function createInMemoryConsumptionSink() {
120
+ const events = [];
121
+ return {
122
+ async record(event) {
123
+ events.push(event);
124
+ },
125
+ get events() {
126
+ return events;
127
+ },
128
+ };
129
+ }
130
+ // ---------------------------------------------------------------------------
131
+ // Emission helper — used by executeProviderOperation
132
+ // ---------------------------------------------------------------------------
133
+ /**
134
+ * Emit one {@link ConsumptionEvent} through `sink`, deriving the event
135
+ * from `context` + `attempt`. The promise ALWAYS resolves: a sink
136
+ * failure has already been converted to a warning inside the sink, and
137
+ * this helper adds a defensive outer try/catch so an exception in the
138
+ * context-derivation path can never escape into the retry classifier.
139
+ *
140
+ * Returns void — shared execution awaits it before the invoke returns
141
+ * outward, but the resolution value carries no information.
142
+ */
143
+ export async function emitConsumption(sink, context, attempt, now) {
144
+ try {
145
+ await sink.record({
146
+ provider: context.provider,
147
+ capabilityId: context.capabilityId,
148
+ ...(context.category !== undefined ? { category: context.category } : {}),
149
+ ...(context.unit !== undefined ? { unit: context.unit } : {}),
150
+ amount: context.amount,
151
+ attempt,
152
+ at: now(),
153
+ });
154
+ }
155
+ catch {
156
+ // Defensive double-wall: the production sink already swallows.
157
+ // If a test sink throws, we still don't let it reach the retry
158
+ // classifier.
159
+ }
160
+ }
161
+ //# sourceMappingURL=consumption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumption.js","sourceRoot":"","sources":["../../src/lib/consumption.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,18 @@ export declare class ValidationError extends ScoutlineError {
50
50
  export declare class UnsupportedCapabilityError extends ScoutlineError {
51
51
  constructor(provider: string, capability: string);
52
52
  }
53
+ /**
54
+ * Provider-specific option unsupported by a Capability. The constructor
55
+ * signature is unchanged so all current throw sites keep compiling without
56
+ * modification; the structured fields expose the same information notices
57
+ * used to extract from the message string. Provider-fallback notices read
58
+ * these fields directly (the message format MUST stay stable — it is
59
+ * checked verbatim by existing adapter tests).
60
+ */
53
61
  export declare class UnsupportedOptionError extends ScoutlineError {
62
+ readonly provider: string;
63
+ readonly capability: string;
64
+ readonly option: string;
54
65
  constructor(provider: string, capability: string, option: string);
55
66
  }
56
67
  export declare class ConfigurationError extends ScoutlineError {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,aAAa,GACb,wBAAwB,GACxB,oBAAoB,GACpB,WAAW,GACX,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,YACE,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,GAAG,MAAM,EACjC,OAAO,GAAE,qBAA0B,EASpC;CACF;AAED;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,cAAc;IAC1C,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAG5E;CACF;AAED,qBAAa,eAAgB,SAAQ,cAAc;IACjD,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAOzC;CACF;AAED,qBAAa,0BAA2B,SAAQ,cAAc;IAC5D,YAAY,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAO/C;CACF;AAED,qBAAa,sBAAuB,SAAQ,cAAc;IACxD,YAAY,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAO/D;CACF;AAED,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAOzC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAW,SAAQ,cAAc;IAC5C,YAAY,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAQ1C;CACF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKxD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKvD;AAOD,qBAAa,SAAU,SAAQ,QAAQ;IAMrC,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAK5C;CACF;AAED,qBAAa,QAAS,SAAQ,QAAQ;IACpC,YAAY,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAE9C;CACF;AAED,qBAAa,YAAa,SAAQ,QAAQ;IACxC,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED,qBAAa,YAAa,SAAQ,QAAQ;IACxC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,YAAY,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAQ3C;CACF;AAED,qBAAa,SAAU,SAAQ,QAAQ;IACrC,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAEzC;CACF;AAiBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAwCxD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,aAAa,GACb,wBAAwB,GACxB,oBAAoB,GACpB,WAAW,GACX,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,YACE,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,GAAG,MAAM,EACjC,OAAO,GAAE,qBAA0B,EASpC;CACF;AAED;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,cAAc;IAC1C,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAG5E;CACF;AAED,qBAAa,eAAgB,SAAQ,cAAc;IACjD,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAOzC;CACF;AAED,qBAAa,0BAA2B,SAAQ,cAAc;IAC5D,YAAY,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAO/C;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,cAAc;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,YAAY,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAU/D;CACF;AAED,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAOzC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAW,SAAQ,cAAc;IAC5C,YAAY,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAQ1C;CACF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKxD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKvD;AAOD,qBAAa,SAAU,SAAQ,QAAQ;IAMrC,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAK5C;CACF;AAED,qBAAa,QAAS,SAAQ,QAAQ;IACpC,YAAY,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAE9C;CACF;AAED,qBAAa,YAAa,SAAQ,QAAQ;IACxC,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED,qBAAa,YAAa,SAAQ,QAAQ;IACxC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,YAAY,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAQ3C;CACF;AAED,qBAAa,SAAU,SAAQ,QAAQ;IACrC,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAEzC;CACF;AAiBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAwCxD"}
@@ -65,10 +65,24 @@ export class UnsupportedCapabilityError extends ScoutlineError {
65
65
  this.name = "UnsupportedCapabilityError";
66
66
  }
67
67
  }
68
+ /**
69
+ * Provider-specific option unsupported by a Capability. The constructor
70
+ * signature is unchanged so all current throw sites keep compiling without
71
+ * modification; the structured fields expose the same information notices
72
+ * used to extract from the message string. Provider-fallback notices read
73
+ * these fields directly (the message format MUST stay stable — it is
74
+ * checked verbatim by existing adapter tests).
75
+ */
68
76
  export class UnsupportedOptionError extends ScoutlineError {
77
+ provider;
78
+ capability;
79
+ option;
69
80
  constructor(provider, capability, option) {
70
81
  super(`Provider "${provider}" does not support option "${option}" for capability "${capability}"`, "UNSUPPORTED_OPTION", { exitCode: 1 });
71
82
  this.name = "UnsupportedOptionError";
83
+ this.provider = provider;
84
+ this.capability = capability;
85
+ this.option = option;
72
86
  }
73
87
  }
74
88
  export class ConfigurationError extends ScoutlineError {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ import type { RepositoryOperation, RepositoryOperationKind } from "../capabiliti
27
27
  import type { ReaderFetchRequest, ReaderFetchResult, ReaderOperation, ReaderOperationKind } from "../capabilities/reader.js";
28
28
  import { type ResponseCache } from "./cache.js";
29
29
  import type { ProviderId } from "../providers/types.js";
30
+ import type { ConsumptionSink, ConsumptionContext } from "./consumption.js";
30
31
  /**
31
32
  * Retry policy for a single Provider operation. Defaults are applied
32
33
  * per-operation from {@link defaultRetryPolicy}.
@@ -40,11 +41,21 @@ export interface RetryPolicy {
40
41
  /**
41
42
  * Dependencies shared execution requires. `sleep` and `random` are
42
43
  * injected so retry backoff is deterministic under test.
44
+ *
45
+ * `consume` (PB-T2) is an OPTIONAL consumption sink. When present and
46
+ * a billable wrapper supplies a {@link ConsumptionContext}, the retry
47
+ * loop emits one event per `invoke()` attempt through this sink. When
48
+ * absent (the default — and what every existing test passes), no event
49
+ * is emitted and behavior is byte-for-byte identical to pre-PB-T2.
50
+ * The sink is awaited; its failure is converted to a warning inside
51
+ * the sink and never reaches the retry classifier.
43
52
  */
44
53
  export interface ExecutionDependencies {
45
- cache: ResponseCache;
46
- sleep(ms: number): Promise<void>;
47
- random(): number;
54
+ readonly cache: ResponseCache;
55
+ readonly sleep: (ms: number) => Promise<void>;
56
+ readonly random: () => number;
57
+ readonly consume?: ConsumptionSink;
58
+ readonly now?: () => number;
48
59
  }
49
60
  /**
50
61
  * Provider operations that share a single retry policy table.
@@ -76,8 +87,25 @@ export declare function defaultRetryPolicy(operation: ProviderOperation): RetryP
76
87
  * caller supplies the invoke thunk and the cache strategy. Each
77
88
  * outward Provider operation has exactly one retry wrapper; Adapter
78
89
  * transport methods perform one attempt and never retry internally.
90
+ *
91
+ * PB-T2 — Consumption emission (the execution seam):
92
+ * - When `dependencies.consume` AND `consumption` are both supplied,
93
+ * one {@link ConsumptionEvent} is emitted **per `invoke()` call**
94
+ * (success or failure), BEFORE the invoke runs. Wrappers that have
95
+ * already returned on a cache hit never reach this loop, so cache
96
+ * hits emit no event. `quota` / `diagnostics` call this function
97
+ * directly with no `consumption` argument, so observational
98
+ * handlers emit nothing.
99
+ * - When either is absent (the default), zero events are emitted
100
+ * and behavior is byte-for-byte identical to pre-PB-T2.
101
+ * - The sink promise is awaited; its rejection is converted to a
102
+ * warning inside the sink and never reaches the retry classifier.
103
+ *
104
+ * The 5th parameter is additive and optional; existing 4-arg callers
105
+ * (Quota, Doctor, and every pre-PB-T2 test) compile and behave
106
+ * unchanged.
79
107
  */
80
- export declare function executeProviderOperation<T>(operation: ProviderOperation, invoke: () => Promise<T>, dependencies: Pick<ExecutionDependencies, "sleep" | "random">, retryPolicy?: RetryPolicy): Promise<T>;
108
+ export declare function executeProviderOperation<T>(operation: ProviderOperation, invoke: () => Promise<T>, dependencies: Pick<ExecutionDependencies, "sleep" | "random" | "consume" | "now">, retryPolicy?: RetryPolicy, consumption?: ConsumptionContext): Promise<T>;
81
109
  /**
82
110
  * Execute a normalized Search through the shared pipeline:
83
111
  * validate → cache identity → new-key read → optional legacy
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/lib/execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/lib/execution.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,43 @@
24
24
  */
25
25
  import { ScoutlineError } from "./errors.js";
26
26
  import { buildProviderCacheKey } from "./cache.js";
27
+ import { emitConsumption, defaultAmountForCapability } from "./consumption.js";
28
+ import { getCapabilityMapping } from "./quota-mapping.js";
29
+ // ---------------------------------------------------------------------------
30
+ // Consumption category resolution (PB-T2 → PB-T3 seam)
31
+ // ---------------------------------------------------------------------------
32
+ /**
33
+ * Resolve the snapshot category name a consumption event should target
34
+ * for `(provider, capability)` by routing through PB-T3's mapping table.
35
+ *
36
+ * The four billable wrappers derive a {@link ConsumptionContext} at the
37
+ * emission site. Pre-W1 they hardcoded the capability id (`"search"`,
38
+ * `"reader"`, ...) as the `category`, which only matched the snapshot
39
+ * category name for Tavily (whose endpoint names coincide with capability
40
+ * ids). Z.AI stores categories as `"requests"`/`"tokens"` and Firecrawl
41
+ * as `"Credits"`, so `writeConsumption`'s name match missed → only
42
+ * `locallyUpdatedAt` advanced, no numeric decrement (W1).
43
+ *
44
+ * This helper uses the first static alias (or the provider-level
45
+ * fallback) from {@link getCapabilityMapping} so the emitted category
46
+ * matches the name the provider's normalizer wrote into the snapshot.
47
+ *
48
+ * For unmapped `(provider, capability)` pairs — observational
49
+ * capabilities (`quota`/`diagnostics`), providers excluded from the
50
+ * mapping table by policy (Brave/Exa), and MiniMax's empty-alias
51
+ * sentinel — the capability id is returned unchanged. It matches no
52
+ * snapshot category, so only `locallyUpdatedAt` advances, which is the
53
+ * correct behavior for observational / non-spend capabilities.
54
+ */
55
+ function resolveConsumptionCategory(provider, capabilityId) {
56
+ const mapping = getCapabilityMapping(provider, capabilityId);
57
+ if (!mapping)
58
+ return capabilityId;
59
+ const alias = mapping.categoryAliases[0];
60
+ if (alias)
61
+ return alias;
62
+ return mapping.providerFallbackCategory ?? capabilityId;
63
+ }
27
64
  const DEFAULT_BASE_DELAY_MS = 500;
28
65
  const DEFAULT_MAX_DELAY_MS = 8000;
29
66
  const DEFAULT_JITTER_MS = 250;
@@ -54,17 +91,21 @@ export function defaultRetryPolicy(operation) {
54
91
  case "repository-read-file":
55
92
  case "repository-list-directory":
56
93
  case "reader-fetch":
57
- case "map":
58
94
  return { ...base, maxRetries: 1 };
59
95
  case "crawl":
60
96
  case "research":
61
- // No retry — double-charge risk. Both are cost-bearing operations
62
- // whose create-POST must not be retried by shared execution (crawl
63
- // is per-page; research is per-request). The Adapter's invoke()
64
- // owns the full create→poll→state-file lifecycle; reclaim-on-miss
65
- // (crawl) / state-file resume recover a lost create-POST on the
66
- // next user invocation rather than an automatic retry (tech-plan
67
- // D2 / §3).
97
+ case "map":
98
+ // No retry — double-charge risk. All three are cost-bearing
99
+ // operations whose create-POST must not be retried by shared
100
+ // execution (crawl is per-page; research is per-request; map
101
+ // charges per batch). The Adapter's invoke() owns the full
102
+ // create→poll→state-file lifecycle; reclaim-on-miss (crawl)
103
+ // / state-file resume (research) recover a lost create-POST on
104
+ // the next user invocation rather than an automatic retry.
105
+ // Map has no server-side state to reclaim, so retry would
106
+ // strictly double-charge; the documented `--no-fallback` cost
107
+ // guarantee of `1/1/1` per command depends on this default
108
+ // (tech-plan D2 / §3; 0.11.0 review Fix 1).
68
109
  return { ...base, maxRetries: 0 };
69
110
  }
70
111
  }
@@ -111,11 +152,37 @@ function isOperationRetryableError(error) {
111
152
  * caller supplies the invoke thunk and the cache strategy. Each
112
153
  * outward Provider operation has exactly one retry wrapper; Adapter
113
154
  * transport methods perform one attempt and never retry internally.
155
+ *
156
+ * PB-T2 — Consumption emission (the execution seam):
157
+ * - When `dependencies.consume` AND `consumption` are both supplied,
158
+ * one {@link ConsumptionEvent} is emitted **per `invoke()` call**
159
+ * (success or failure), BEFORE the invoke runs. Wrappers that have
160
+ * already returned on a cache hit never reach this loop, so cache
161
+ * hits emit no event. `quota` / `diagnostics` call this function
162
+ * directly with no `consumption` argument, so observational
163
+ * handlers emit nothing.
164
+ * - When either is absent (the default), zero events are emitted
165
+ * and behavior is byte-for-byte identical to pre-PB-T2.
166
+ * - The sink promise is awaited; its rejection is converted to a
167
+ * warning inside the sink and never reaches the retry classifier.
168
+ *
169
+ * The 5th parameter is additive and optional; existing 4-arg callers
170
+ * (Quota, Doctor, and every pre-PB-T2 test) compile and behave
171
+ * unchanged.
114
172
  */
115
- export async function executeProviderOperation(operation, invoke, dependencies, retryPolicy) {
173
+ export async function executeProviderOperation(operation, invoke, dependencies, retryPolicy, consumption) {
116
174
  const policy = retryPolicy ?? defaultRetryPolicy(operation);
175
+ const sink = dependencies.consume;
176
+ const now = dependencies.now ?? Date.now;
117
177
  let attempt = 0;
118
178
  for (;;) {
179
+ // PB-T2: emit BEFORE invoke. One event per loop iteration = one
180
+ // event per invoke() call. Cache hits never reach here (wrappers
181
+ // return before invoking). A retrying failure emits once per
182
+ // attempt.
183
+ if (sink && consumption) {
184
+ await emitConsumption(sink, consumption, attempt + 1, now);
185
+ }
119
186
  try {
120
187
  return await invoke();
121
188
  }
@@ -193,7 +260,25 @@ export async function executeSearch(capability, request, options, dependencies)
193
260
  }
194
261
  // 5 + 6. Invoke through executeProviderOperation; retryable failures
195
262
  // are retried with backoff driven by the injected sleep+random.
196
- const result = await executeProviderOperation("search", () => capability.invoke(request), dependencies, options.retryPolicy);
263
+ //
264
+ // PB-T2: when a consumption sink is wired, derive a ConsumptionContext
265
+ // from the cache identity (provider + canonical capability id)
266
+ // and pass it through. The category is routed through PB-T3's
267
+ // mapping table (W1) so it matches the provider-specific snapshot
268
+ // category name (ZAI `"requests"`, Firecrawl `"Credits"`, Tavily
269
+ // endpoint names) rather than the raw capability id. The default
270
+ // amount is the honest per-capability estimate (Search = 1
271
+ // estimated request). Cache hits returned above emit nothing.
272
+ const consumption = dependencies.consume !== undefined
273
+ ? {
274
+ provider: identity.provider,
275
+ capabilityId: "search",
276
+ category: resolveConsumptionCategory(identity.provider, "search"),
277
+ unit: "requests",
278
+ amount: defaultAmountForCapability("search"),
279
+ }
280
+ : undefined;
281
+ const result = await executeProviderOperation("search", () => capability.invoke(request), dependencies, options.retryPolicy, consumption);
197
282
  // 7. Cache the full normalized result before count is applied.
198
283
  if (!options.noCache) {
199
284
  await dependencies.cache.set(newKey, result);
@@ -287,11 +372,27 @@ export async function executeRepositoryOperation(operation, request, options, de
287
372
  // 5. Retry-wrapped invoke. Auth, Validation, Unsupported, and
288
373
  // exhausted Quota failures are terminal; transient timeout,
289
374
  // network, and 5xx/429-equivalent failures get one retry.
375
+ //
376
+ // PB-T2: when a sink is wired, derive a ConsumptionContext from the
377
+ // adapter-owned cache identity. The canonical capability id is
378
+ // the descriptor capability (`repository-exploration`); the
379
+ // category is routed through PB-T3's mapping table (W1) so it
380
+ // matches the provider-specific snapshot category name. Cache
381
+ // hits returned above emit nothing.
382
+ const consumption = dependencies.consume !== undefined
383
+ ? {
384
+ provider: identity.provider,
385
+ capabilityId: "repository-exploration",
386
+ category: resolveConsumptionCategory(identity.provider, "repository-exploration"),
387
+ unit: "requests",
388
+ amount: defaultAmountForCapability("repository-exploration"),
389
+ }
390
+ : undefined;
290
391
  const result = await executeProviderOperation(
291
392
  // `operation.kind` is `RepositoryOperationKind`, which is
292
393
  // composed into `ProviderOperation` directly — no cast needed
293
394
  // and a future kind union change propagates automatically.
294
- operation.kind, () => operation.invoke(request), dependencies, options.retryPolicy);
395
+ operation.kind, () => operation.invoke(request), dependencies, options.retryPolicy, consumption);
295
396
  // 6. Cache the full normalized result before returning.
296
397
  if (!options.noCache) {
297
398
  await dependencies.cache.set(newKey, result);
@@ -383,7 +484,23 @@ export async function executeReaderOperation(operation, request, options, depend
383
484
  // 5. Retry-wrapped invoke. Auth, Validation, Unsupported, and
384
485
  // exhausted Quota failures are terminal; transient timeout,
385
486
  // network, and 5xx/429-equivalent failures get one retry.
386
- const result = await executeProviderOperation(operation.kind, () => operation.invoke(request), dependencies, options.retryPolicy);
487
+ //
488
+ // PB-T2: when a sink is wired, derive a ConsumptionContext from the
489
+ // adapter-owned cache identity. Canonical capability id is
490
+ // `reader`; the category is routed through PB-T3's mapping table
491
+ // (W1) so it matches the provider-specific snapshot category name
492
+ // (ZAI `"requests"`, Tavily `"extract"`, Firecrawl `"Credits"`).
493
+ // Cache hits returned above emit nothing.
494
+ const consumption = dependencies.consume !== undefined
495
+ ? {
496
+ provider: identity.provider,
497
+ capabilityId: "reader",
498
+ category: resolveConsumptionCategory(identity.provider, "reader"),
499
+ unit: "requests",
500
+ amount: defaultAmountForCapability("reader"),
501
+ }
502
+ : undefined;
503
+ const result = await executeProviderOperation(operation.kind, () => operation.invoke(request), dependencies, options.retryPolicy, consumption);
387
504
  // 6. Cache the full normalized result before returning.
388
505
  if (!options.noCache) {
389
506
  await dependencies.cache.set(newKey, result);
@@ -449,7 +566,33 @@ export async function executeCachedOperation(operation, request, options, depend
449
566
  // Unsupported, and exhausted Quota failures are terminal; transient
450
567
  // timeout, network, and 5xx/429-equivalent failures get the
451
568
  // operation-specific retry count.
452
- const result = await executeProviderOperation(identity.capability, () => operation.invoke(request, options.signal), dependencies, options.retryPolicy);
569
+ //
570
+ // PB-T2: when a sink is wired, derive a ConsumptionContext from the
571
+ // adapter-owned cache identity. The category is routed through
572
+ // PB-T3's mapping table (W1) so it matches the provider-specific
573
+ // snapshot category name (Firecrawl `"Credits"`, Tavily endpoint
574
+ // names) rather than the raw capability id. Cost model:
575
+ // - `crawl` → unknown (per-page credits, count varies)
576
+ // - `map` → estimate 1 (single batch cost)
577
+ // - `research` → unknown (4–250 credits, request-dependent)
578
+ // Cache hits returned above emit nothing.
579
+ const capabilityId = identity.capability;
580
+ const consumption = dependencies.consume !== undefined
581
+ ? {
582
+ provider: identity.provider,
583
+ capabilityId,
584
+ category: resolveConsumptionCategory(identity.provider, capabilityId),
585
+ ...(capabilityId === "crawl"
586
+ ? { unit: "credits" }
587
+ : capabilityId === "map"
588
+ ? { unit: "credits" }
589
+ : capabilityId === "research"
590
+ ? { unit: "credits" }
591
+ : {}),
592
+ amount: defaultAmountForCapability(capabilityId),
593
+ }
594
+ : undefined;
595
+ const result = await executeProviderOperation(identity.capability, () => operation.invoke(request, options.signal), dependencies, options.retryPolicy, consumption);
453
596
  // 5. Cache the full normalized result before returning.
454
597
  if (!options.noCache) {
455
598
  await dependencies.cache.set(newKey, result);
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/lib/execution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAWH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAsB,MAAM,YAAY,CAAC;AAmDvE,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA4B;IAC7D,MAAM,IAAI,GAAG;QACX,WAAW,EAAE,qBAAqB;QAClC,UAAU,EAAE,oBAAoB;QAChC,QAAQ,EAAE,iBAAiB;KAC5B,CAAC;IACF,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACpC,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,aAAa,CAAC;QACnB,KAAK,mBAAmB,CAAC;QACzB,KAAK,sBAAsB,CAAC;QAC5B,KAAK,2BAA2B,CAAC;QACjC,KAAK,cAAc,CAAC;QACpB,KAAK,KAAK;YACR,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACpC,KAAK,OAAO,CAAC;QACb,KAAK,UAAU;YACb,kEAAkE;YAClE,mEAAmE;YACnE,gEAAgE;YAChE,kEAAkE;YAClE,gEAAgE;YAChE,iEAAiE;YACjE,YAAY;YACZ,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,yDAAyD;IACzD,IAAI,KAAK,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC;QACd,KAAK,WAAW,EAAE,CAAC;YACjB,kEAAkE;YAClE,iEAAiE;YACjE,iEAAiE;YACjE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;YAChC,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC;QACtF,CAAC;QACD;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,SAA4B,EAC5B,MAAwB,EACxB,YAA6D,EAC7D,WAAyB;IAEzB,MAAM,MAAM,GAAG,WAAW,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,SAAS,CAAC;QACR,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,IAAI,MAAM,CAAC,UAAU;gBAAE,MAAM,KAAK,CAAC;YAC9C,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACvF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnE,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;GAIG;AACH,SAAS,UAAU,CACjB,MAA+B,EAC/B,KAAyB;IAEzB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAA4B,EAC5B,OAAsB,EACtB,OAAyE,EACzE,YAAmC;IAEnC,kCAAkC;IAClC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE7B,sDAAsD;IACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE;QACjD,WAAW,EAAE,OAAO,CAAC,KAAK;KAC3B,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAA0B,MAAM,CAAC,CAAC;QAC7E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,mEAAmE;QACnE,iEAAiE;QACjE,uCAAuC;QACvC,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC9B,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAClD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAU,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjE,IAAI,GAAG,KAAK,IAAI;oBAAE,SAAS;gBAC3B,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC9C,OAAO,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,uEAAuE;IACvE,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAC3C,QAAQ,EACR,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAChC,YAAY,EACZ,OAAO,CAAC,WAAW,CACpB,CAAC;IAEF,+DAA+D;IAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,6BAA6B;IAC7B,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAA+C,EAC/C,OAAgB,EAChB,OAAiC,EACjC,YAAmC;IAEnC,kCAAkC;IAClC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE5B,kEAAkE;IAClE,6DAA6D;IAC7D,6DAA6D;IAC7D,yDAAyD;IACzD,uBAAuB;IACvB,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAElD,qCAAqC;IACrC,EAAE;IACF,kEAAkE;IAClE,gEAAgE;IAChE,gEAAgE;IAChE,mEAAmE;IACnE,mEAAmE;IACnE,qEAAqE;IACrE,6DAA6D;IAC7D,kDAAkD;IAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU,EAAE,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,SAAS,EAAE;QAC1D,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAU,MAAM,CAAC,CAAC;QAC1D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,gEAAgE;QAClE,CAAC;QAED,2DAA2D;QAC3D,4DAA4D;QAC5D,wDAAwD;QACxD,yBAAyB;QACzB,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAU,SAAS,CAAC,GAAG,CAAC,CAAC;YACvE,IAAI,SAAS,KAAK,IAAI;gBAAE,SAAS;YACjC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC9C,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,+DAA+D;IAC/D,6DAA6D;IAC7D,MAAM,MAAM,GAAG,MAAM,wBAAwB;IAC3C,0DAA0D;IAC1D,8DAA8D;IAC9D,2DAA2D;IAC3D,SAAS,CAAC,IAAI,EACd,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAC/B,YAAY,EACZ,OAAO,CAAC,WAAW,CACpB,CAAC;IAEF,wDAAwD;IACxD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAiE,EACjE,OAA2B,EAC3B,OAA6B,EAC7B,YAAmC;IAEnC,kCAAkC;IAClC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE5B,kEAAkE;IAClE,6DAA6D;IAC7D,6DAA6D;IAC7D,yDAAyD;IACzD,uBAAuB;IACvB,MAAM,QAAQ,GACZ,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEnC,qCAAqC;IACrC,EAAE;IACF,oEAAoE;IACpE,oEAAoE;IACpE,mEAAmE;IACnE,8BAA8B;IAC9B,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU,EAAE,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,SAAS,EAAE;QAC1D,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAU,MAAM,CAAC,CAAC;QAC1D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,gEAAgE;QAClE,CAAC;QAED,2DAA2D;QAC3D,4DAA4D;QAC5D,wDAAwD;QACxD,yBAAyB;QACzB,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAU,SAAS,CAAC,GAAG,CAAC,CAAC;YACvE,IAAI,SAAS,KAAK,IAAI;gBAAE,SAAS;YACjC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC9C,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,+DAA+D;IAC/D,6DAA6D;IAC7D,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAC3C,SAAS,CAAC,IAAI,EACd,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAC/B,YAAY,EACZ,OAAO,CAAC,WAAW,CACpB,CAAC;IAEF,wDAAwD;IACxD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAmFD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAA2C,EAC3C,OAAgB,EAChB,OAA6B,EAC7B,YAAmC;IAEnC,kCAAkC;IAClC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE5B,sDAAsD;IACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAElD,0DAA0D;IAC1D,sEAAsE;IACtE,uEAAuE;IACvE,yDAAyD;IACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU,EAAE,GAAG,QAAQ,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,EAAE;QACtD,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAU,MAAM,CAAC,CAAC;QAC1D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,gEAAgE;QAClE,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,sEAAsE;IACtE,4DAA4D;IAC5D,uEAAuE;IACvE,+DAA+D;IAC/D,qCAAqC;IACrC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAC3C,QAAQ,CAAC,UAA+B,EACxC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAC/C,YAAY,EACZ,OAAO,CAAC,WAAW,CACpB,CAAC;IAEF,wDAAwD;IACxD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/lib/execution.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,15 @@ export interface ZaiMcpClientOptions {
41
41
  noCache?: boolean;
42
42
  disableRetry?: boolean;
43
43
  utcpFactory?: () => Promise<UtcpClient>;
44
+ /**
45
+ * T2b — Credential view: the resolved env (injected env + file keys)
46
+ * captured at handler dispatch. When omitted, ambient `process.env`
47
+ * is used so existing direct constructors keep working. When supplied,
48
+ * the credential, mode, base URL, retry knobs, cache fingerprint, and
49
+ * configured-secret scrub set all derive from this view rather than
50
+ * `process.env`.
51
+ */
52
+ env?: NodeJS.ProcessEnv;
44
53
  }
45
54
  /**
46
55
  * Unified MCP client for all Z.AI MCP services
@@ -70,6 +79,9 @@ export declare class ZaiMcpClient {
70
79
  * `tool-cache.ts` needs to compute a stable key). Owned here because
71
80
  * the inputs come from this class's options and the shared config
72
81
  * module; the extracted module stays pure of `loadConfig` / `getMcpEndpoints`.
82
+ *
83
+ * T2b: `loadConfig` consults the captured env so tool-cache identity
84
+ * follows the same invocation credential view as registration.
73
85
  */
74
86
  private getToolCacheConfig;
75
87
  /**