@pellux/goodvibes-sdk 0.21.29 → 0.21.33

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 (323) hide show
  1. package/dist/_internal/contracts/zod-schemas/accounts.d.ts +9 -9
  2. package/dist/_internal/contracts/zod-schemas/auth.d.ts +1 -1
  3. package/dist/_internal/daemon/context.d.ts +1 -0
  4. package/dist/_internal/daemon/context.d.ts.map +1 -1
  5. package/dist/_internal/daemon/error-response.js +22 -22
  6. package/dist/_internal/daemon/integration-route-types.d.ts +2 -1
  7. package/dist/_internal/daemon/integration-route-types.d.ts.map +1 -1
  8. package/dist/_internal/daemon/knowledge-routes.js +5 -5
  9. package/dist/_internal/daemon/media-routes.d.ts.map +1 -1
  10. package/dist/_internal/daemon/media-routes.js +4 -3
  11. package/dist/_internal/daemon/operator.d.ts +1 -1
  12. package/dist/_internal/daemon/operator.d.ts.map +1 -1
  13. package/dist/_internal/daemon/operator.js +2 -0
  14. package/dist/_internal/daemon/runtime-route-types.d.ts +2 -1
  15. package/dist/_internal/daemon/runtime-route-types.d.ts.map +1 -1
  16. package/dist/_internal/daemon/runtime-routes.d.ts +1 -1
  17. package/dist/_internal/daemon/runtime-routes.d.ts.map +1 -1
  18. package/dist/_internal/daemon/runtime-routes.js +1 -0
  19. package/dist/_internal/daemon/telemetry-routes.d.ts.map +1 -1
  20. package/dist/_internal/daemon/telemetry-routes.js +13 -12
  21. package/dist/_internal/errors/daemon-error-contract.d.ts +17 -0
  22. package/dist/_internal/errors/daemon-error-contract.d.ts.map +1 -1
  23. package/dist/_internal/errors/daemon-error-contract.js +17 -1
  24. package/dist/_internal/errors/index.d.ts +2 -1
  25. package/dist/_internal/errors/index.d.ts.map +1 -1
  26. package/dist/_internal/errors/index.js +1 -0
  27. package/dist/_internal/platform/artifacts/store.d.ts.map +1 -1
  28. package/dist/_internal/platform/artifacts/store.js +2 -1
  29. package/dist/_internal/platform/automation/scheduler-capacity.d.ts +29 -0
  30. package/dist/_internal/platform/automation/scheduler-capacity.d.ts.map +1 -0
  31. package/dist/_internal/platform/automation/scheduler-capacity.js +31 -0
  32. package/dist/_internal/platform/channels/delivery/shared.d.ts.map +1 -1
  33. package/dist/_internal/platform/channels/delivery/shared.js +3 -2
  34. package/dist/_internal/platform/channels/delivery/strategies-bridge.d.ts.map +1 -1
  35. package/dist/_internal/platform/channels/delivery/strategies-bridge.js +3 -2
  36. package/dist/_internal/platform/channels/delivery/strategies-core.d.ts.map +1 -1
  37. package/dist/_internal/platform/channels/delivery/strategies-core.js +5 -4
  38. package/dist/_internal/platform/channels/delivery/strategies-enterprise.d.ts.map +1 -1
  39. package/dist/_internal/platform/channels/delivery/strategies-enterprise.js +4 -3
  40. package/dist/_internal/platform/companion/companion-chat-rate-limiter.d.ts +7 -0
  41. package/dist/_internal/platform/companion/companion-chat-rate-limiter.d.ts.map +1 -1
  42. package/dist/_internal/platform/companion/companion-chat-rate-limiter.js +16 -0
  43. package/dist/_internal/platform/config/manager.d.ts.map +1 -1
  44. package/dist/_internal/platform/config/manager.js +2 -1
  45. package/dist/_internal/platform/config/schema-domain-runtime.d.ts +6 -0
  46. package/dist/_internal/platform/config/schema-domain-runtime.d.ts.map +1 -1
  47. package/dist/_internal/platform/config/schema-domain-runtime.js +22 -0
  48. package/dist/_internal/platform/config/schema-types.d.ts +16 -2
  49. package/dist/_internal/platform/config/schema-types.d.ts.map +1 -1
  50. package/dist/_internal/platform/config/schema.d.ts.map +1 -1
  51. package/dist/_internal/platform/config/schema.js +1 -0
  52. package/dist/_internal/platform/config/service-registry.d.ts.map +1 -1
  53. package/dist/_internal/platform/config/service-registry.js +2 -1
  54. package/dist/_internal/platform/control-plane/gateway-web-ui.d.ts +0 -1
  55. package/dist/_internal/platform/control-plane/gateway-web-ui.d.ts.map +1 -1
  56. package/dist/_internal/platform/control-plane/gateway-web-ui.js +7 -6
  57. package/dist/_internal/platform/control-plane/gateway.d.ts.map +1 -1
  58. package/dist/_internal/platform/control-plane/gateway.js +7 -0
  59. package/dist/_internal/platform/control-plane/session-broker.d.ts.map +1 -1
  60. package/dist/_internal/platform/control-plane/session-broker.js +38 -5
  61. package/dist/_internal/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
  62. package/dist/_internal/platform/core/orchestrator-tool-runtime.js +6 -6
  63. package/dist/_internal/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
  64. package/dist/_internal/platform/core/orchestrator-turn-loop.js +10 -2
  65. package/dist/_internal/platform/core/orchestrator.d.ts.map +1 -1
  66. package/dist/_internal/platform/core/orchestrator.js +2 -0
  67. package/dist/_internal/platform/daemon/facade-composition.d.ts +4 -131
  68. package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
  69. package/dist/_internal/platform/daemon/facade-composition.js +9 -10
  70. package/dist/_internal/platform/daemon/facade-types.d.ts +141 -0
  71. package/dist/_internal/platform/daemon/facade-types.d.ts.map +1 -0
  72. package/dist/_internal/platform/daemon/facade-types.js +1 -0
  73. package/dist/_internal/platform/daemon/http/rate-limiter.d.ts +23 -0
  74. package/dist/_internal/platform/daemon/http/rate-limiter.d.ts.map +1 -0
  75. package/dist/_internal/platform/daemon/http/rate-limiter.js +71 -0
  76. package/dist/_internal/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
  77. package/dist/_internal/platform/daemon/http/router-route-contexts.js +2 -1
  78. package/dist/_internal/platform/daemon/http/router.d.ts.map +1 -1
  79. package/dist/_internal/platform/daemon/http/router.js +90 -66
  80. package/dist/_internal/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
  81. package/dist/_internal/platform/daemon/http-listener.d.ts +14 -0
  82. package/dist/_internal/platform/daemon/http-listener.d.ts.map +1 -1
  83. package/dist/_internal/platform/daemon/http-listener.js +92 -86
  84. package/dist/_internal/platform/daemon/surface-delivery.d.ts.map +1 -1
  85. package/dist/_internal/platform/daemon/surface-delivery.js +6 -5
  86. package/dist/_internal/platform/discovery/mcp-scanner.d.ts.map +1 -1
  87. package/dist/_internal/platform/discovery/mcp-scanner.js +28 -22
  88. package/dist/_internal/platform/discovery/scanner.d.ts.map +1 -1
  89. package/dist/_internal/platform/discovery/scanner.js +38 -22
  90. package/dist/_internal/platform/export/session-export.d.ts +0 -1
  91. package/dist/_internal/platform/export/session-export.d.ts.map +1 -1
  92. package/dist/_internal/platform/export/session-export.js +1 -33
  93. package/dist/_internal/platform/hooks/runners/http.d.ts.map +1 -1
  94. package/dist/_internal/platform/hooks/runners/http.js +15 -1
  95. package/dist/_internal/platform/hooks/types.d.ts +7 -0
  96. package/dist/_internal/platform/hooks/types.d.ts.map +1 -1
  97. package/dist/_internal/platform/integrations/delivery.d.ts +3 -1
  98. package/dist/_internal/platform/integrations/delivery.d.ts.map +1 -1
  99. package/dist/_internal/platform/integrations/delivery.js +3 -2
  100. package/dist/_internal/platform/integrations/discord.d.ts.map +1 -1
  101. package/dist/_internal/platform/integrations/discord.js +6 -5
  102. package/dist/_internal/platform/integrations/ntfy.d.ts.map +1 -1
  103. package/dist/_internal/platform/integrations/ntfy.js +3 -2
  104. package/dist/_internal/platform/integrations/webhooks.d.ts.map +1 -1
  105. package/dist/_internal/platform/integrations/webhooks.js +12 -1
  106. package/dist/_internal/platform/intelligence/lsp/binary-downloader.d.ts.map +1 -1
  107. package/dist/_internal/platform/intelligence/lsp/binary-downloader.js +4 -3
  108. package/dist/_internal/platform/knowledge/store.d.ts.map +1 -1
  109. package/dist/_internal/platform/knowledge/store.js +50 -25
  110. package/dist/_internal/platform/mcp/client.d.ts.map +1 -1
  111. package/dist/_internal/platform/mcp/client.js +3 -2
  112. package/dist/_internal/platform/media/builtin-generation-providers.d.ts.map +1 -1
  113. package/dist/_internal/platform/media/builtin-generation-providers.js +4 -3
  114. package/dist/_internal/platform/media/builtin-image-understanding.d.ts.map +1 -1
  115. package/dist/_internal/platform/media/builtin-image-understanding.js +5 -4
  116. package/dist/_internal/platform/providers/anthropic-compat.d.ts.map +1 -1
  117. package/dist/_internal/platform/providers/anthropic-compat.js +5 -3
  118. package/dist/_internal/platform/providers/anthropic.d.ts.map +1 -1
  119. package/dist/_internal/platform/providers/anthropic.js +10 -7
  120. package/dist/_internal/platform/providers/builtin-catalog.d.ts.map +1 -1
  121. package/dist/_internal/platform/providers/builtin-catalog.js +3 -2
  122. package/dist/_internal/platform/providers/catalogue.d.ts +56 -0
  123. package/dist/_internal/platform/providers/catalogue.d.ts.map +1 -0
  124. package/dist/_internal/platform/providers/catalogue.js +111 -0
  125. package/dist/_internal/platform/providers/context-discovery.d.ts.map +1 -1
  126. package/dist/_internal/platform/providers/context-discovery.js +2 -1
  127. package/dist/_internal/platform/providers/credentials.d.ts +12 -0
  128. package/dist/_internal/platform/providers/credentials.d.ts.map +1 -0
  129. package/dist/_internal/platform/providers/credentials.js +54 -0
  130. package/dist/_internal/platform/providers/gemini.d.ts.map +1 -1
  131. package/dist/_internal/platform/providers/gemini.js +6 -5
  132. package/dist/_internal/platform/providers/github-copilot.d.ts.map +1 -1
  133. package/dist/_internal/platform/providers/github-copilot.js +2 -1
  134. package/dist/_internal/platform/providers/health.d.ts +15 -0
  135. package/dist/_internal/platform/providers/health.d.ts.map +1 -0
  136. package/dist/_internal/platform/providers/health.js +32 -0
  137. package/dist/_internal/platform/providers/llama-cpp.d.ts.map +1 -1
  138. package/dist/_internal/platform/providers/llama-cpp.js +5 -3
  139. package/dist/_internal/platform/providers/lm-studio.d.ts.map +1 -1
  140. package/dist/_internal/platform/providers/lm-studio.js +5 -3
  141. package/dist/_internal/platform/providers/model-benchmarks.d.ts.map +1 -1
  142. package/dist/_internal/platform/providers/model-benchmarks.js +2 -1
  143. package/dist/_internal/platform/providers/model-catalog-cache.d.ts.map +1 -1
  144. package/dist/_internal/platform/providers/model-catalog-cache.js +2 -1
  145. package/dist/_internal/platform/providers/model-limits.d.ts.map +1 -1
  146. package/dist/_internal/platform/providers/model-limits.js +2 -1
  147. package/dist/_internal/platform/providers/ollama.d.ts.map +1 -1
  148. package/dist/_internal/platform/providers/ollama.js +5 -3
  149. package/dist/_internal/platform/providers/openai-codex.d.ts.map +1 -1
  150. package/dist/_internal/platform/providers/openai-codex.js +4 -2
  151. package/dist/_internal/platform/providers/openai-compat.d.ts.map +1 -1
  152. package/dist/_internal/platform/providers/openai-compat.js +3 -2
  153. package/dist/_internal/platform/providers/provider-not-found-error.d.ts +3 -1
  154. package/dist/_internal/platform/providers/provider-not-found-error.d.ts.map +1 -1
  155. package/dist/_internal/platform/providers/provider-not-found-error.js +3 -4
  156. package/dist/_internal/platform/providers/well-known-endpoints.d.ts +53 -0
  157. package/dist/_internal/platform/providers/well-known-endpoints.d.ts.map +1 -0
  158. package/dist/_internal/platform/providers/well-known-endpoints.js +52 -0
  159. package/dist/_internal/platform/runtime/auth/oauth-core.d.ts.map +1 -1
  160. package/dist/_internal/platform/runtime/auth/oauth-core.js +2 -1
  161. package/dist/_internal/platform/runtime/bootstrap-runtime-events.d.ts.map +1 -1
  162. package/dist/_internal/platform/runtime/bootstrap-runtime-events.js +2 -0
  163. package/dist/_internal/platform/runtime/contracts/index.d.ts.map +1 -1
  164. package/dist/_internal/platform/runtime/contracts/index.js +1 -5
  165. package/dist/_internal/platform/runtime/contracts/migrations/schemas.d.ts +57 -0
  166. package/dist/_internal/platform/runtime/contracts/migrations/schemas.d.ts.map +1 -0
  167. package/dist/_internal/platform/runtime/contracts/migrations/schemas.js +157 -0
  168. package/dist/_internal/platform/runtime/correlation.d.ts +44 -0
  169. package/dist/_internal/platform/runtime/correlation.d.ts.map +1 -0
  170. package/dist/_internal/platform/runtime/correlation.js +40 -0
  171. package/dist/_internal/platform/runtime/emitters/security.d.ts +32 -0
  172. package/dist/_internal/platform/runtime/emitters/security.d.ts.map +1 -1
  173. package/dist/_internal/platform/runtime/emitters/security.js +26 -0
  174. package/dist/_internal/platform/runtime/emitters/tools.d.ts +11 -2
  175. package/dist/_internal/platform/runtime/emitters/tools.d.ts.map +1 -1
  176. package/dist/_internal/platform/runtime/emitters/tools.js +27 -0
  177. package/dist/_internal/platform/runtime/emitters/transport.d.ts +27 -0
  178. package/dist/_internal/platform/runtime/emitters/transport.d.ts.map +1 -1
  179. package/dist/_internal/platform/runtime/emitters/transport.js +19 -0
  180. package/dist/_internal/platform/runtime/emitters/turn.d.ts +22 -1
  181. package/dist/_internal/platform/runtime/emitters/turn.d.ts.map +1 -1
  182. package/dist/_internal/platform/runtime/emitters/turn.js +9 -0
  183. package/dist/_internal/platform/runtime/events/index.d.ts +45 -0
  184. package/dist/_internal/platform/runtime/events/index.d.ts.map +1 -1
  185. package/dist/_internal/platform/runtime/events/index.js +130 -22
  186. package/dist/_internal/platform/runtime/events/ops.d.ts +8 -0
  187. package/dist/_internal/platform/runtime/events/ops.d.ts.map +1 -1
  188. package/dist/_internal/platform/runtime/events/security.d.ts +47 -0
  189. package/dist/_internal/platform/runtime/events/security.d.ts.map +1 -1
  190. package/dist/_internal/platform/runtime/events/tools.d.ts +14 -2
  191. package/dist/_internal/platform/runtime/events/tools.d.ts.map +1 -1
  192. package/dist/_internal/platform/runtime/events/transport.d.ts +31 -0
  193. package/dist/_internal/platform/runtime/events/transport.d.ts.map +1 -1
  194. package/dist/_internal/platform/runtime/events/turn.d.ts +25 -1
  195. package/dist/_internal/platform/runtime/events/turn.d.ts.map +1 -1
  196. package/dist/_internal/platform/runtime/events/workspace.d.ts +16 -0
  197. package/dist/_internal/platform/runtime/events/workspace.d.ts.map +1 -1
  198. package/dist/_internal/platform/runtime/integration/helpers.d.ts.map +1 -1
  199. package/dist/_internal/platform/runtime/integration/helpers.js +5 -0
  200. package/dist/_internal/platform/runtime/llm-observability.d.ts +43 -0
  201. package/dist/_internal/platform/runtime/llm-observability.d.ts.map +1 -0
  202. package/dist/_internal/platform/runtime/llm-observability.js +107 -0
  203. package/dist/_internal/platform/runtime/metrics.d.ts +49 -0
  204. package/dist/_internal/platform/runtime/metrics.d.ts.map +1 -0
  205. package/dist/_internal/platform/runtime/metrics.js +114 -0
  206. package/dist/_internal/platform/runtime/ops/control-plane.d.ts +5 -2
  207. package/dist/_internal/platform/runtime/ops/control-plane.d.ts.map +1 -1
  208. package/dist/_internal/platform/runtime/ops/control-plane.js +5 -4
  209. package/dist/_internal/platform/runtime/perf/slo-collector.d.ts.map +1 -1
  210. package/dist/_internal/platform/runtime/perf/slo-collector.js +2 -0
  211. package/dist/_internal/platform/runtime/permissions/divergence-dashboard.d.ts +3 -1
  212. package/dist/_internal/platform/runtime/permissions/divergence-dashboard.d.ts.map +1 -1
  213. package/dist/_internal/platform/runtime/permissions/divergence-dashboard.js +3 -2
  214. package/dist/_internal/platform/runtime/permissions/policy-loader.d.ts +3 -1
  215. package/dist/_internal/platform/runtime/permissions/policy-loader.d.ts.map +1 -1
  216. package/dist/_internal/platform/runtime/permissions/policy-loader.js +3 -2
  217. package/dist/_internal/platform/runtime/permissions/policy-signer.d.ts.map +1 -1
  218. package/dist/_internal/platform/runtime/permissions/policy-signer.js +7 -2
  219. package/dist/_internal/platform/runtime/permissions/simulation.d.ts +3 -1
  220. package/dist/_internal/platform/runtime/permissions/simulation.d.ts.map +1 -1
  221. package/dist/_internal/platform/runtime/permissions/simulation.js +3 -2
  222. package/dist/_internal/platform/runtime/remote/transport-contract.d.ts +14 -2
  223. package/dist/_internal/platform/runtime/remote/transport-contract.d.ts.map +1 -1
  224. package/dist/_internal/platform/runtime/remote/transport-contract.js +7 -5
  225. package/dist/_internal/platform/runtime/store/helpers/reducers/sync.d.ts.map +1 -1
  226. package/dist/_internal/platform/runtime/store/helpers/reducers/sync.js +12 -1
  227. package/dist/_internal/platform/runtime/tasks/manager.d.ts +7 -3
  228. package/dist/_internal/platform/runtime/tasks/manager.d.ts.map +1 -1
  229. package/dist/_internal/platform/runtime/tasks/manager.js +7 -6
  230. package/dist/_internal/platform/runtime/telemetry/api-helpers.d.ts +14 -0
  231. package/dist/_internal/platform/runtime/telemetry/api-helpers.d.ts.map +1 -1
  232. package/dist/_internal/platform/runtime/telemetry/api-helpers.js +59 -0
  233. package/dist/_internal/platform/runtime/telemetry/api.d.ts.map +1 -1
  234. package/dist/_internal/platform/runtime/telemetry/api.js +19 -4
  235. package/dist/_internal/platform/runtime/telemetry/exporters/otlp.d.ts.map +1 -1
  236. package/dist/_internal/platform/runtime/telemetry/exporters/otlp.js +19 -6
  237. package/dist/_internal/platform/runtime/telemetry/exporters/queue.d.ts.map +1 -1
  238. package/dist/_internal/platform/runtime/telemetry/exporters/queue.js +11 -4
  239. package/dist/_internal/platform/runtime/telemetry/meter.d.ts.map +1 -1
  240. package/dist/_internal/platform/runtime/telemetry/meter.js +7 -3
  241. package/dist/_internal/platform/runtime/telemetry/redaction-config.d.ts +9 -0
  242. package/dist/_internal/platform/runtime/telemetry/redaction-config.d.ts.map +1 -0
  243. package/dist/_internal/platform/runtime/telemetry/redaction-config.js +52 -0
  244. package/dist/_internal/platform/runtime/tools/phases/budget.d.ts.map +1 -1
  245. package/dist/_internal/platform/runtime/tools/phases/budget.js +3 -2
  246. package/dist/_internal/platform/runtime/transports/daemon-http-client.d.ts.map +1 -1
  247. package/dist/_internal/platform/runtime/transports/daemon-http-client.js +138 -17
  248. package/dist/_internal/platform/scheduler/scheduler.d.ts +19 -2
  249. package/dist/_internal/platform/scheduler/scheduler.d.ts.map +1 -1
  250. package/dist/_internal/platform/scheduler/scheduler.js +65 -25
  251. package/dist/_internal/platform/sessions/manager.d.ts.map +1 -1
  252. package/dist/_internal/platform/sessions/manager.js +6 -2
  253. package/dist/_internal/platform/state/memory-embedding-http.d.ts.map +1 -1
  254. package/dist/_internal/platform/state/memory-embedding-http.js +3 -2
  255. package/dist/_internal/platform/state/project-index.d.ts.map +1 -1
  256. package/dist/_internal/platform/state/project-index.js +6 -4
  257. package/dist/_internal/platform/tools/agent/index.d.ts.map +1 -1
  258. package/dist/_internal/platform/tools/agent/index.js +2 -1
  259. package/dist/_internal/platform/tools/analyze/git-modes.d.ts.map +1 -1
  260. package/dist/_internal/platform/tools/analyze/git-modes.js +2 -1
  261. package/dist/_internal/platform/tools/edit/core.d.ts.map +1 -1
  262. package/dist/_internal/platform/tools/edit/core.js +2 -1
  263. package/dist/_internal/platform/tools/exec/runtime.d.ts.map +1 -1
  264. package/dist/_internal/platform/tools/exec/runtime.js +3 -2
  265. package/dist/_internal/platform/tools/fetch/runtime.d.ts.map +1 -1
  266. package/dist/_internal/platform/tools/fetch/runtime.js +4 -2
  267. package/dist/_internal/platform/tools/read/index.d.ts.map +1 -1
  268. package/dist/_internal/platform/tools/read/index.js +2 -1
  269. package/dist/_internal/platform/tools/registry-tool/index.d.ts.map +1 -1
  270. package/dist/_internal/platform/tools/registry-tool/index.js +2 -1
  271. package/dist/_internal/platform/tools/state/index.d.ts.map +1 -1
  272. package/dist/_internal/platform/tools/state/index.js +2 -1
  273. package/dist/_internal/platform/tools/task/index.d.ts.map +1 -1
  274. package/dist/_internal/platform/tools/task/index.js +2 -1
  275. package/dist/_internal/platform/tools/team/index.d.ts.map +1 -1
  276. package/dist/_internal/platform/tools/team/index.js +2 -1
  277. package/dist/_internal/platform/tools/web-search/index.d.ts.map +1 -1
  278. package/dist/_internal/platform/tools/web-search/index.js +2 -1
  279. package/dist/_internal/platform/tools/worklist/index.d.ts.map +1 -1
  280. package/dist/_internal/platform/tools/worklist/index.js +2 -1
  281. package/dist/_internal/platform/types/errors.d.ts +12 -10
  282. package/dist/_internal/platform/types/errors.d.ts.map +1 -1
  283. package/dist/_internal/platform/types/errors.js +21 -20
  284. package/dist/_internal/platform/utils/error-display.d.ts.map +1 -1
  285. package/dist/_internal/platform/utils/error-display.js +6 -4
  286. package/dist/_internal/platform/utils/fetch-with-timeout.d.ts +17 -0
  287. package/dist/_internal/platform/utils/fetch-with-timeout.d.ts.map +1 -1
  288. package/dist/_internal/platform/utils/fetch-with-timeout.js +59 -0
  289. package/dist/_internal/platform/utils/record-coerce.d.ts +11 -0
  290. package/dist/_internal/platform/utils/record-coerce.d.ts.map +1 -0
  291. package/dist/_internal/platform/utils/record-coerce.js +12 -0
  292. package/dist/_internal/platform/utils/redaction.js +1 -1
  293. package/dist/_internal/platform/utils/ring-buffer.d.ts +54 -0
  294. package/dist/_internal/platform/utils/ring-buffer.d.ts.map +1 -0
  295. package/dist/_internal/platform/utils/ring-buffer.js +96 -0
  296. package/dist/_internal/platform/utils/shell-split.d.ts +11 -0
  297. package/dist/_internal/platform/utils/shell-split.d.ts.map +1 -0
  298. package/dist/_internal/platform/utils/shell-split.js +83 -0
  299. package/dist/_internal/platform/version.js +1 -1
  300. package/dist/_internal/platform/voice/providers/deepgram.d.ts.map +1 -1
  301. package/dist/_internal/platform/voice/providers/deepgram.js +2 -1
  302. package/dist/_internal/platform/voice/providers/elevenlabs.d.ts.map +1 -1
  303. package/dist/_internal/platform/voice/providers/elevenlabs.js +5 -4
  304. package/dist/_internal/platform/voice/providers/google.d.ts.map +1 -1
  305. package/dist/_internal/platform/voice/providers/google.js +5 -4
  306. package/dist/_internal/platform/voice/providers/microsoft.d.ts.map +1 -1
  307. package/dist/_internal/platform/voice/providers/microsoft.js +2 -1
  308. package/dist/_internal/platform/voice/providers/openai.d.ts.map +1 -1
  309. package/dist/_internal/platform/voice/providers/openai.js +4 -3
  310. package/dist/_internal/platform/voice/providers/shared.d.ts.map +1 -1
  311. package/dist/_internal/platform/voice/providers/shared.js +2 -1
  312. package/dist/_internal/platform/voice/providers/vydra.d.ts.map +1 -1
  313. package/dist/_internal/platform/voice/providers/vydra.js +3 -2
  314. package/dist/_internal/platform/watchers/registry.d.ts.map +1 -1
  315. package/dist/_internal/platform/watchers/registry.js +3 -2
  316. package/dist/_internal/platform/workflow/trigger-executor.d.ts.map +1 -1
  317. package/dist/_internal/platform/workflow/trigger-executor.js +5 -3
  318. package/dist/_internal/platform/workspace/daemon-home.d.ts.map +1 -1
  319. package/dist/_internal/platform/workspace/daemon-home.js +6 -2
  320. package/dist/_internal/platform/workspace/workspace-swap-manager.d.ts +1 -0
  321. package/dist/_internal/platform/workspace/workspace-swap-manager.d.ts.map +1 -1
  322. package/dist/_internal/platform/workspace/workspace-swap-manager.js +14 -2
  323. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/webhooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,4BAA4B,CAAC;AAM7F;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,aAAa,CAAyB;gBAElC,IAAI,GAAE,MAAM,EAAO;IAI/B;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe;IAQlD,oEAAoE;IACpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQzB,4BAA4B;IAC5B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ/B,gCAAgC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAI7B,iDAAiD;IACjD,OAAO,IAAI,MAAM,EAAE;IAInB,sDAAsD;IACtD,YAAY,IAAI,OAAO;IAQvB;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAsBrE,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IA8B9C,wCAAwC;IACxC,MAAM,IAAI,IAAI;YAWA,OAAO;CAYtB"}
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/webhooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,4BAA4B,CAAC;AAQ7F;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,aAAa,CAAyB;gBAElC,IAAI,GAAE,MAAM,EAAO;IAI/B;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe;IAQlD,oEAAoE;IACpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQzB,4BAA4B;IAC5B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ/B,gCAAgC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAI7B,iDAAiD;IACjD,OAAO,IAAI,MAAM,EAAE;IAInB,sDAAsD;IACtD,YAAY,IAAI,OAAO;IAQvB;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAsBrE,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IA8B9C,wCAAwC;IACxC,MAAM,IAAI,IAAI;YAWA,OAAO;CAsBtB"}
@@ -1,4 +1,6 @@
1
1
  import { logger } from '../utils/logger.js';
2
+ import { classifyHostTrustTier, extractHostname, emitSsrfDeny } from '../tools/fetch/trust-tiers.js';
3
+ import { instrumentedFetch } from '../utils/fetch-with-timeout.js';
2
4
  // ---------------------------------------------------------------------------
3
5
  // WebhookNotifier
4
6
  // ---------------------------------------------------------------------------
@@ -127,7 +129,16 @@ export class WebhookNotifier {
127
129
  // Private helpers
128
130
  // -------------------------------------------------------------------------
129
131
  async postOne(url, text) {
130
- const res = await fetch(url, {
132
+ // SEC-08: SSRF tier filter — block requests to internal/private hosts.
133
+ const hostname = extractHostname(url);
134
+ if (hostname !== null) {
135
+ const trustResult = classifyHostTrustTier(hostname);
136
+ if (trustResult.tier === 'blocked') {
137
+ emitSsrfDeny(hostname, url, trustResult.reason);
138
+ throw new Error(`WebhookNotifier: blocked URL — ${trustResult.reason}`);
139
+ }
140
+ }
141
+ const res = await instrumentedFetch(url, {
131
142
  method: 'POST',
132
143
  headers: { 'Content-Type': 'text/plain' },
133
144
  body: text,
@@ -1 +1 @@
1
- {"version":3,"file":"binary-downloader.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/intelligence/lsp/binary-downloader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyDH;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAsMD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAY1F"}
1
+ {"version":3,"file":"binary-downloader.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/intelligence/lsp/binary-downloader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0DH;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAsMD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAY1F"}
@@ -9,6 +9,7 @@ import { existsSync, mkdirSync, chmodSync, unlinkSync, renameSync } from 'fs';
9
9
  import { join } from 'path';
10
10
  import { logger } from '../../utils/logger.js';
11
11
  import { summarizeError } from '../../utils/error-display.js';
12
+ import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
12
13
  function getPlatformKey() {
13
14
  const platform = process.platform;
14
15
  const arch = process.arch;
@@ -86,7 +87,7 @@ async function downloadBinary(binaryDir, name) {
86
87
  try {
87
88
  // Fetch latest release from GitHub API
88
89
  const releaseUrl = `https://api.github.com/repos/${spec.repo}/releases/latest`;
89
- const releaseRes = await fetch(releaseUrl, {
90
+ const releaseRes = await instrumentedFetch(releaseUrl, {
90
91
  headers: { 'Accept': 'application/vnd.github.v3+json', 'User-Agent': 'goodvibes-sdk' },
91
92
  signal: AbortSignal.timeout(15000),
92
93
  });
@@ -110,7 +111,7 @@ async function downloadBinary(binaryDir, name) {
110
111
  return null;
111
112
  }
112
113
  // Download the asset
113
- const downloadRes = await fetch(asset.browser_download_url, {
114
+ const downloadRes = await instrumentedFetch(asset.browser_download_url, {
114
115
  signal: AbortSignal.timeout(120000), // 2 min for large binaries
115
116
  headers: { 'User-Agent': 'goodvibes-sdk' },
116
117
  });
@@ -123,7 +124,7 @@ async function downloadBinary(binaryDir, name) {
123
124
  // SHA256 verification — rust-analyzer publishes .sha256 sidecar files
124
125
  const sha256Asset = release.assets?.find(a => a.name === assetName + '.sha256');
125
126
  if (sha256Asset) {
126
- const sha256Res = await fetch(sha256Asset.browser_download_url, {
127
+ const sha256Res = await instrumentedFetch(sha256Asset.browser_download_url, {
127
128
  signal: AbortSignal.timeout(10000),
128
129
  headers: { 'User-Agent': 'goodvibes-sdk' },
129
130
  });
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/knowledge/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/knowledge/store.ts"],"names":[],"mappings":"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"}
@@ -142,23 +142,33 @@ export class KnowledgeStore {
142
142
  ? this.getSourceByCanonicalUri(input.canonicalUri)
143
143
  : null;
144
144
  const now = nowMs();
145
+ const _title = stableText(input.title);
146
+ const _sourceUri = stableText(input.sourceUri);
147
+ const _canonicalUri = stableText(input.canonicalUri);
148
+ const _summary = stableText(input.summary);
149
+ const _description = stableText(input.description);
150
+ const _folderPath = stableText(input.folderPath);
151
+ const _artifactId = stableText(input.artifactId);
152
+ const _contentHash = stableText(input.contentHash);
153
+ const _crawlError = stableText(input.crawlError);
154
+ const _sessionId = stableText(input.sessionId);
145
155
  const record = {
146
156
  id: existing?.id ?? input.id ?? `source-${randomUUID().slice(0, 8)}`,
147
157
  connectorId: input.connectorId,
148
158
  sourceType: input.sourceType,
149
- ...(stableText(input.title) ? { title: input.title.trim() } : {}),
150
- ...(stableText(input.sourceUri) ? { sourceUri: input.sourceUri.trim() } : {}),
151
- ...(stableText(input.canonicalUri) ? { canonicalUri: input.canonicalUri.trim() } : {}),
152
- ...(stableText(input.summary) ? { summary: input.summary.trim() } : {}),
153
- ...(stableText(input.description) ? { description: input.description.trim() } : {}),
159
+ ...(_title !== null ? { title: _title } : {}),
160
+ ...(_sourceUri !== null ? { sourceUri: _sourceUri } : {}),
161
+ ...(_canonicalUri !== null ? { canonicalUri: _canonicalUri } : {}),
162
+ ...(_summary !== null ? { summary: _summary } : {}),
163
+ ...(_description !== null ? { description: _description } : {}),
154
164
  tags: uniq(input.tags ?? existing?.tags),
155
- ...(stableText(input.folderPath) ? { folderPath: input.folderPath.trim() } : existing?.folderPath ? { folderPath: existing.folderPath } : {}),
165
+ ...(_folderPath !== null ? { folderPath: _folderPath } : existing?.folderPath ? { folderPath: existing.folderPath } : {}),
156
166
  status: input.status,
157
- ...(stableText(input.artifactId) ? { artifactId: input.artifactId.trim() } : existing?.artifactId ? { artifactId: existing.artifactId } : {}),
158
- ...(stableText(input.contentHash) ? { contentHash: input.contentHash.trim() } : existing?.contentHash ? { contentHash: existing.contentHash } : {}),
167
+ ...(_artifactId !== null ? { artifactId: _artifactId } : existing?.artifactId ? { artifactId: existing.artifactId } : {}),
168
+ ...(_contentHash !== null ? { contentHash: _contentHash } : existing?.contentHash ? { contentHash: existing.contentHash } : {}),
159
169
  ...(typeof input.lastCrawledAt === 'number' ? { lastCrawledAt: input.lastCrawledAt } : existing?.lastCrawledAt ? { lastCrawledAt: existing.lastCrawledAt } : {}),
160
- ...(stableText(input.crawlError) ? { crawlError: input.crawlError.trim() } : existing?.crawlError && input.status !== 'indexed' ? { crawlError: existing.crawlError } : {}),
161
- ...(stableText(input.sessionId) ? { sessionId: input.sessionId.trim() } : existing?.sessionId ? { sessionId: existing.sessionId } : {}),
170
+ ...(_crawlError !== null ? { crawlError: _crawlError } : existing?.crawlError && input.status !== 'indexed' ? { crawlError: existing.crawlError } : {}),
171
+ ...(_sessionId !== null ? { sessionId: _sessionId } : existing?.sessionId ? { sessionId: existing.sessionId } : {}),
162
172
  metadata: {
163
173
  ...(existing?.metadata ?? {}),
164
174
  ...(input.metadata ?? {}),
@@ -203,16 +213,18 @@ export class KnowledgeStore {
203
213
  ? this.nodes.get(input.id)
204
214
  : this.getNodeByKindAndSlug(input.kind, input.slug);
205
215
  const now = nowMs();
216
+ const _summary = stableText(input.summary);
217
+ const _sourceId = stableText(input.sourceId);
206
218
  const record = {
207
219
  id: existing?.id ?? input.id ?? `node-${randomUUID().slice(0, 8)}`,
208
220
  kind: input.kind,
209
221
  slug: input.slug,
210
222
  title: input.title.trim(),
211
- ...(stableText(input.summary) ? { summary: input.summary.trim() } : existing?.summary ? { summary: existing.summary } : {}),
223
+ ...(_summary !== null ? { summary: _summary } : existing?.summary ? { summary: existing.summary } : {}),
212
224
  aliases: uniq(input.aliases ?? existing?.aliases),
213
225
  status: input.status ?? existing?.status ?? 'active',
214
226
  confidence: Math.max(0, Math.min(100, input.confidence ?? existing?.confidence ?? 70)),
215
- ...(stableText(input.sourceId) ? { sourceId: input.sourceId.trim() } : existing?.sourceId ? { sourceId: existing.sourceId } : {}),
227
+ ...(_sourceId !== null ? { sourceId: _sourceId } : existing?.sourceId ? { sourceId: existing.sourceId } : {}),
216
228
  metadata: {
217
229
  ...(existing?.metadata ?? {}),
218
230
  ...(input.metadata ?? {}),
@@ -307,14 +319,16 @@ export class KnowledgeStore {
307
319
  await this.init();
308
320
  const existing = input.id ? this.issues.get(input.id) : null;
309
321
  const now = nowMs();
322
+ const _sourceId = stableText(input.sourceId);
323
+ const _nodeId = stableText(input.nodeId);
310
324
  const record = {
311
325
  id: existing?.id ?? input.id ?? `issue-${randomUUID().slice(0, 8)}`,
312
326
  severity: input.severity,
313
327
  code: input.code,
314
328
  message: input.message.trim(),
315
329
  status: input.status ?? existing?.status ?? 'open',
316
- ...(stableText(input.sourceId) ? { sourceId: input.sourceId.trim() } : {}),
317
- ...(stableText(input.nodeId) ? { nodeId: input.nodeId.trim() } : {}),
330
+ ...(_sourceId !== null ? { sourceId: _sourceId } : {}),
331
+ ...(_nodeId !== null ? { nodeId: _nodeId } : {}),
318
332
  metadata: {
319
333
  ...(existing?.metadata ?? {}),
320
334
  ...(input.metadata ?? {}),
@@ -348,15 +362,19 @@ export class KnowledgeStore {
348
362
  ? this.extractions.get(input.id)
349
363
  : this.getExtractionBySourceId(input.sourceId);
350
364
  const now = nowMs();
365
+ const _artifactId = stableText(input.artifactId);
366
+ const _title = stableText(input.title);
367
+ const _summary = stableText(input.summary);
368
+ const _excerpt = stableText(input.excerpt);
351
369
  const record = {
352
370
  id: existing?.id ?? input.id ?? `extract-${randomUUID().slice(0, 8)}`,
353
371
  sourceId: input.sourceId,
354
- ...(stableText(input.artifactId) ? { artifactId: input.artifactId.trim() } : existing?.artifactId ? { artifactId: existing.artifactId } : {}),
372
+ ...(_artifactId !== null ? { artifactId: _artifactId } : existing?.artifactId ? { artifactId: existing.artifactId } : {}),
355
373
  extractorId: input.extractorId,
356
374
  format: input.format,
357
- ...(stableText(input.title) ? { title: input.title.trim() } : existing?.title ? { title: existing.title } : {}),
358
- ...(stableText(input.summary) ? { summary: input.summary.trim() } : existing?.summary ? { summary: existing.summary } : {}),
359
- ...(stableText(input.excerpt) ? { excerpt: input.excerpt.trim() } : existing?.excerpt ? { excerpt: existing.excerpt } : {}),
375
+ ...(_title !== null ? { title: _title } : existing?.title ? { title: existing.title } : {}),
376
+ ...(_summary !== null ? { summary: _summary } : existing?.summary ? { summary: existing.summary } : {}),
377
+ ...(_excerpt !== null ? { excerpt: _excerpt } : existing?.excerpt ? { excerpt: existing.excerpt } : {}),
360
378
  sections: uniq(input.sections ?? existing?.sections),
361
379
  links: uniq(input.links ?? existing?.links),
362
380
  estimatedTokens: Math.max(0, Number(input.estimatedTokens ?? existing?.estimatedTokens ?? 0)),
@@ -401,6 +419,7 @@ export class KnowledgeStore {
401
419
  await this.init();
402
420
  const existing = input.id ? this.jobRuns.get(input.id) : null;
403
421
  const now = nowMs();
422
+ const _error = stableText(input.error);
404
423
  const record = {
405
424
  id: existing?.id ?? input.id ?? `kjr-${randomUUID().slice(0, 8)}`,
406
425
  jobId: input.jobId,
@@ -409,7 +428,7 @@ export class KnowledgeStore {
409
428
  requestedAt: input.requestedAt ?? existing?.requestedAt ?? now,
410
429
  ...(typeof input.startedAt === 'number' ? { startedAt: input.startedAt } : existing?.startedAt ? { startedAt: existing.startedAt } : {}),
411
430
  ...(typeof input.completedAt === 'number' ? { completedAt: input.completedAt } : existing?.completedAt ? { completedAt: existing.completedAt } : {}),
412
- ...(stableText(input.error) ? { error: input.error.trim() } : existing?.error ? { error: existing.error } : {}),
431
+ ...(_error !== null ? { error: _error } : existing?.error ? { error: existing.error } : {}),
413
432
  result: {
414
433
  ...(existing?.result ?? {}),
415
434
  ...(input.result ?? {}),
@@ -445,13 +464,15 @@ export class KnowledgeStore {
445
464
  }
446
465
  async upsertUsageRecord(input) {
447
466
  await this.init();
467
+ const _task = stableText(input.task);
468
+ const _sessionId = stableText(input.sessionId);
448
469
  const record = {
449
470
  id: input.id ?? `kuse-${randomUUID().slice(0, 8)}`,
450
471
  targetKind: input.targetKind,
451
472
  targetId: input.targetId,
452
473
  usageKind: input.usageKind,
453
- ...(stableText(input.task) ? { task: input.task.trim() } : {}),
454
- ...(stableText(input.sessionId) ? { sessionId: input.sessionId.trim() } : {}),
474
+ ...(_task !== null ? { task: _task } : {}),
475
+ ...(_sessionId !== null ? { sessionId: _sessionId } : {}),
455
476
  ...(typeof input.score === 'number' && Number.isFinite(input.score) ? { score: Number(input.score) } : {}),
456
477
  metadata: { ...(input.metadata ?? {}) },
457
478
  createdAt: nowMs(),
@@ -481,6 +502,10 @@ export class KnowledgeStore {
481
502
  ? this.consolidationCandidates.get(input.id)
482
503
  : this.getConsolidationCandidateBySubject(input.subjectKind, input.subjectId, input.candidateType);
483
504
  const now = nowMs();
505
+ const _summary = stableText(input.summary);
506
+ const _suggestedMemoryClass = stableText(input.suggestedMemoryClass);
507
+ const _suggestedScope = stableText(input.suggestedScope);
508
+ const _decidedBy = stableText(input.decidedBy);
484
509
  const record = {
485
510
  id: existing?.id ?? input.id ?? `kcand-${randomUUID().slice(0, 8)}`,
486
511
  candidateType: input.candidateType,
@@ -488,13 +513,13 @@ export class KnowledgeStore {
488
513
  subjectKind: input.subjectKind,
489
514
  subjectId: input.subjectId,
490
515
  title: input.title.trim(),
491
- ...(stableText(input.summary) ? { summary: input.summary.trim() } : existing?.summary ? { summary: existing.summary } : {}),
516
+ ...(_summary !== null ? { summary: _summary } : existing?.summary ? { summary: existing.summary } : {}),
492
517
  score: Number(input.score),
493
518
  evidence: uniq(input.evidence ?? existing?.evidence),
494
- ...(stableText(input.suggestedMemoryClass) ? { suggestedMemoryClass: input.suggestedMemoryClass.trim() } : existing?.suggestedMemoryClass ? { suggestedMemoryClass: existing.suggestedMemoryClass } : {}),
495
- ...(stableText(input.suggestedScope) ? { suggestedScope: input.suggestedScope.trim() } : existing?.suggestedScope ? { suggestedScope: existing.suggestedScope } : {}),
519
+ ...(_suggestedMemoryClass !== null ? { suggestedMemoryClass: _suggestedMemoryClass } : existing?.suggestedMemoryClass ? { suggestedMemoryClass: existing.suggestedMemoryClass } : {}),
520
+ ...(_suggestedScope !== null ? { suggestedScope: _suggestedScope } : existing?.suggestedScope ? { suggestedScope: existing.suggestedScope } : {}),
496
521
  ...(typeof input.decidedAt === 'number' ? { decidedAt: input.decidedAt } : existing?.decidedAt ? { decidedAt: existing.decidedAt } : {}),
497
- ...(stableText(input.decidedBy) ? { decidedBy: input.decidedBy.trim() } : existing?.decidedBy ? { decidedBy: existing.decidedBy } : {}),
522
+ ...(_decidedBy !== null ? { decidedBy: _decidedBy } : existing?.decidedBy ? { decidedBy: existing.decidedBy } : {}),
498
523
  metadata: {
499
524
  ...(existing?.metadata ?? {}),
500
525
  ...(input.metadata ?? {}),
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/mcp/client.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AA2BD,qBAAa,SAAS;IAgBlB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO,CAAC;IAhBlB,OAAO,CAAC,IAAI,CAA6C;IACzD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAS;IAE5B,0EAA0E;IAC1E,OAAO,CAAC,WAAW,CAAoC;IAEvD,yEAAyE;IACzE,OAAO,CAAC,aAAa,CAA8B;gBAGzC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,cAAc,CAAA;KAAE,YAAA;IAGtE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,OAAO,CAOzB;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAczC;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAyBpE;;;OAGG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAWjF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YA2BnB,aAAa;IAyB3B,wCAAwC;YAC1B,WAAW;IAgBzB,mDAAmD;IACnD,OAAO,CAAC,QAAQ;IAgChB,2DAA2D;IAC3D,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,gBAAgB;IAmBxB;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;CAS/B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/mcp/client.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AA2BD,qBAAa,SAAS;IAgBlB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO,CAAC;IAhBlB,OAAO,CAAC,IAAI,CAA6C;IACzD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAS;IAE5B,0EAA0E;IAC1E,OAAO,CAAC,WAAW,CAAoC;IAEvD,yEAAyE;IACzE,OAAO,CAAC,aAAa,CAA8B;gBAGzC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,cAAc,CAAA;KAAE,YAAA;IAGtE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,OAAO,CAOzB;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAczC;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAyBpE;;;OAGG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAWjF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YA4BnB,aAAa;IAyB3B,wCAAwC;YAC1B,WAAW;IAgBzB,mDAAmD;IACnD,OAAO,CAAC,QAAQ;IAgChB,2DAA2D;IAC3D,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,gBAAgB;IAmBxB;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;CAS/B"}
@@ -123,8 +123,9 @@ export class McpClient {
123
123
  this.proc.kill();
124
124
  await this.proc.exited;
125
125
  }
126
- catch {
127
- // Ignore shutdown errors
126
+ catch (err) {
127
+ // OBS-11: Non-fatal — process may already be gone; log at debug for ops
128
+ logger.debug('[McpClient] error during process shutdown (non-fatal)', { error: String(err) });
128
129
  }
129
130
  finally {
130
131
  this.proc = null;
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-generation-providers.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/media/builtin-generation-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,wBAAwB,CAAC;AA2iBhC,wBAAgB,0BAA0B,IAAI,SAAS,aAAa,EAAE,CAQrE"}
1
+ {"version":3,"file":"builtin-generation-providers.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/media/builtin-generation-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,wBAAwB,CAAC;AA4iBhC,wBAAgB,0BAA0B,IAAI,SAAS,aAAa,EAAE,CAQrE"}
@@ -1,3 +1,4 @@
1
+ import { instrumentedFetch } from '../utils/fetch-with-timeout.js';
1
2
  function readFirstEnv(envVars) {
2
3
  for (const envVar of envVars) {
3
4
  const value = process.env[envVar];
@@ -62,7 +63,7 @@ function resolveReferenceUrl(request) {
62
63
  return artifact ? toDataUrl(artifact) : undefined;
63
64
  }
64
65
  async function fetchJson(url, init, timeoutMs = 120_000) {
65
- const response = await fetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs) });
66
+ const response = await instrumentedFetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs) });
66
67
  if (!response.ok) {
67
68
  const text = await response.text().catch(() => '');
68
69
  throw new Error(`Request failed (${response.status}) ${url}: ${text || response.statusText}`);
@@ -70,7 +71,7 @@ async function fetchJson(url, init, timeoutMs = 120_000) {
70
71
  return response.json();
71
72
  }
72
73
  async function fetchResponse(url, init, timeoutMs = 120_000) {
73
- const response = await fetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs) });
74
+ const response = await instrumentedFetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs) });
74
75
  if (!response.ok) {
75
76
  const text = await response.text().catch(() => '');
76
77
  throw new Error(`Request failed (${response.status}) ${url}: ${text || response.statusText}`);
@@ -86,7 +87,7 @@ function buildArtifactFromRemote(url, mimeType = 'application/octet-stream', fil
86
87
  };
87
88
  }
88
89
  async function maybeInlineArtifact(url, fallbackMimeType, filename, maxInlineBytes = 5_000_000) {
89
- const head = await fetch(url, { method: 'HEAD', signal: AbortSignal.timeout(20_000) }).catch(() => null);
90
+ const head = await instrumentedFetch(url, { method: 'HEAD', signal: AbortSignal.timeout(20_000) }).catch(() => null);
90
91
  const contentLength = Number.parseInt(head?.headers.get('content-length') ?? '', 10);
91
92
  const contentType = head?.headers.get('content-type')?.trim() || fallbackMimeType;
92
93
  if (Number.isFinite(contentLength) && contentLength > maxInlineBytes) {
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-image-understanding.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/media/builtin-image-understanding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAGV,aAAa,EAEd,MAAM,wBAAwB,CAAC;AAgBhC,KAAK,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,aAAa,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC;AAkOvH,wBAAgB,uCAAuC,CACrD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAKf;AAED,wBAAgB,sCAAsC,CACpD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAMf;AAED,wBAAgB,sCAAsC,CACpD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAMf;AAED,wBAAgB,yCAAyC,CACvD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAMf;AAED,wBAAgB,qCAAqC,CACnD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAMf"}
1
+ {"version":3,"file":"builtin-image-understanding.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/media/builtin-image-understanding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAGV,aAAa,EAEd,MAAM,wBAAwB,CAAC;AAiBhC,KAAK,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,aAAa,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC;AAkOvH,wBAAgB,uCAAuC,CACrD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAKf;AAED,wBAAgB,sCAAsC,CACpD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAMf;AAED,wBAAgB,sCAAsC,CACpD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAMf;AAED,wBAAgB,yCAAyC,CACvD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAMf;AAED,wBAAgB,qCAAqC,CACnD,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAChD,aAAa,CAMf"}
@@ -1,4 +1,5 @@
1
1
  import { ArtifactStore } from '../artifacts/index.js';
2
+ import { toRecord } from '../utils/record-coerce.js';
2
3
  function buildAnalysisPrompt(prompt) {
3
4
  const task = prompt?.trim().length
4
5
  ? prompt.trim()
@@ -62,19 +63,19 @@ async function resolveModel(providerRegistry, scope, modelId) {
62
63
  if (!explicit.capabilities.multimodal) {
63
64
  throw new Error(`Model does not support image input: ${explicit.displayName}`);
64
65
  }
65
- if (!await modelMatchesScope(providerRegistry, explicit, scope)) {
66
+ if (!await modelMatchesScope(providerRegistry, toRecord(explicit), scope)) {
66
67
  throw new Error(`Model does not match media provider scope ${scope.label}: ${explicit.displayName}`);
67
68
  }
68
69
  return explicit;
69
70
  }
70
71
  const current = providerRegistry.getCurrentModel();
71
- if (current.capabilities.multimodal && await modelMatchesScope(providerRegistry, current, scope)) {
72
+ if (current.capabilities.multimodal && await modelMatchesScope(providerRegistry, toRecord(current), scope)) {
72
73
  return current;
73
74
  }
74
75
  for (const candidate of models) {
75
76
  if (!candidate.selectable || !candidate.capabilities.multimodal)
76
77
  continue;
77
- if (await modelMatchesScope(providerRegistry, candidate, scope)) {
78
+ if (await modelMatchesScope(providerRegistry, toRecord(candidate), scope)) {
78
79
  return candidate;
79
80
  }
80
81
  }
@@ -170,7 +171,7 @@ function createScopedImageUnderstandingProvider(providerRegistry, scope, artifac
170
171
  for (const model of providerRegistry.listModels()) {
171
172
  if (!model.selectable || !model.capabilities.multimodal)
172
173
  continue;
173
- if (await modelMatchesScope(providerRegistry, model, scope)) {
174
+ if (await modelMatchesScope(providerRegistry, toRecord(model), scope)) {
174
175
  available = true;
175
176
  break;
176
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-compat.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/anthropic-compat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EAEZ,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AA8CxB,MAAM,WAAW,sBAAsB;IACrC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gFAAgF;IAChF,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,gFAAgF;IAChF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,uEAAuE;IACvE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,iGAAiG;IACjG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,cAAc,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IACxC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,YAAW,WAAW;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;gBAE9B,IAAI,EAAE,sBAAsB;IAkBxC,YAAY,IAAI,OAAO;IAIjB,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA4MhD,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA6C3F"}
1
+ {"version":3,"file":"anthropic-compat.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/anthropic-compat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EAEZ,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAgDxB,MAAM,WAAW,sBAAsB;IACrC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gFAAgF;IAChF,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,gFAAgF;IAChF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,uEAAuE;IACvE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,iGAAiG;IACjG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,cAAc,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IACxC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,YAAW,WAAW;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;gBAE9B,IAAI,EAAE,sBAAsB;IAkBxC,YAAY,IAAI,OAAO;IAIjB,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA6MhD,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA6C3F"}
@@ -3,8 +3,10 @@ import { ProviderError } from '../types/errors.js';
3
3
  import { mapAnthropicStopReason } from './stop-reason-maps.js';
4
4
  import { withRetry } from '../utils/retry.js';
5
5
  import { logger } from '../utils/logger.js';
6
+ import { instrumentedLlmCall } from '../runtime/llm-observability.js';
6
7
  import { toAnthropicTools, toAnthropicMessages, fromAnthropicContent, } from './tool-formats.js';
7
8
  import { toProviderError } from '../utils/error-display.js';
9
+ import { instrumentedFetch } from '../utils/fetch-with-timeout.js';
8
10
  const ANTHROPIC_API_VERSION = '2023-06-01';
9
11
  /**
10
12
  * AnthropicCompatProvider — generic provider for endpoints that speak the
@@ -53,7 +55,7 @@ export class AnthropicCompatProvider {
53
55
  }
54
56
  async chat(params) {
55
57
  const { messages, tools, model, maxTokens, signal, systemPrompt, onDelta, reasoningEffort } = params;
56
- return withRetry(async () => {
58
+ return (await instrumentedLlmCall(() => withRetry(async () => {
57
59
  const resolvedModel = model ?? this.defaultModel;
58
60
  const body = {
59
61
  model: resolvedModel,
@@ -95,7 +97,7 @@ export class AnthropicCompatProvider {
95
97
  }
96
98
  let res;
97
99
  try {
98
- res = await fetch(`${this.baseURL}/messages`, {
100
+ res = await instrumentedFetch(`${this.baseURL}/messages`, {
99
101
  method: 'POST',
100
102
  headers,
101
103
  body: JSON.stringify(body),
@@ -247,7 +249,7 @@ export class AnthropicCompatProvider {
247
249
  stopReason: stopReason === 'unknown' && text ? 'completed' : stopReason,
248
250
  ...(rawStopReason !== undefined ? { providerStopReason: rawStopReason } : {}),
249
251
  };
250
- });
252
+ }), { provider: this.name, model: model ?? this.defaultModel })).result;
251
253
  }
252
254
  async describeRuntime(deps) {
253
255
  const { buildStandardProviderAuthRoutes } = await import('./runtime-metadata.js');
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAkB,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAKnJ,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAwEzE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAE/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;gBAGnF,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAA0B;IAMxF,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAsUhD,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAkC3F"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAkB,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAKnJ,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA2EzE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAE/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;gBAGnF,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAA0B;IAMxF,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAsUhD,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAkC3F"}
@@ -5,8 +5,11 @@ import { getDefaultStrategy } from './cache-strategy.js';
5
5
  import { ProviderError } from '../types/errors.js';
6
6
  import { withRetry } from '../utils/retry.js';
7
7
  import { logger } from '../utils/logger.js';
8
+ import { instrumentedLlmCall } from '../runtime/llm-observability.js';
8
9
  import { toAnthropicTools, toAnthropicMessages, fromAnthropicContent, } from './tool-formats.js';
9
10
  import { toProviderError } from '../utils/error-display.js';
11
+ import { instrumentedFetch } from '../utils/fetch-with-timeout.js';
12
+ import { toRecord } from '../utils/record-coerce.js';
10
13
  const ANTHROPIC_API_BASE = 'https://api.anthropic.com/v1';
11
14
  const ANTHROPIC_API_VERSION = '2023-06-01';
12
15
  /** Anthropic model-specific max output token caps. */
@@ -53,7 +56,7 @@ export class AnthropicProvider {
53
56
  }
54
57
  async chat(params) {
55
58
  const { messages, tools, model, maxTokens, signal, systemPrompt, onDelta, reasoningEffort } = params;
56
- return withRetry(async () => {
59
+ return (await instrumentedLlmCall(() => withRetry(async () => {
57
60
  const resolvedModel = normalizeAnthropicModel(model);
58
61
  // Build Anthropic-formatted messages and tools early so we can inject cache_control.
59
62
  const anthropicMessages = toAnthropicMessages(messages);
@@ -89,7 +92,7 @@ export class AnthropicProvider {
89
92
  const bp1 = strategy.breakpoints.find(b => b.position === 'system_and_tools');
90
93
  if (bp1) {
91
94
  if (anthropicTools && anthropicTools.length > 0) {
92
- const lastTool = anthropicTools[anthropicTools.length - 1];
95
+ const lastTool = toRecord(anthropicTools[anthropicTools.length - 1]);
93
96
  lastTool['cache_control'] = bp1.ttl !== '5m'
94
97
  ? { type: 'ephemeral', ttl: bp1.ttl }
95
98
  : { type: 'ephemeral' };
@@ -110,7 +113,7 @@ export class AnthropicProvider {
110
113
  let bp2MessageIdx = -1;
111
114
  if (bp2 && anthropicMessages.length >= 3) {
112
115
  for (let i = anthropicMessages.length - 2; i >= 0; i--) {
113
- const msg = anthropicMessages[i];
116
+ const msg = toRecord(anthropicMessages[i]);
114
117
  if (msg.role === 'assistant') {
115
118
  const content = msg.content;
116
119
  if (content?.length) {
@@ -133,7 +136,7 @@ export class AnthropicProvider {
133
136
  // Skip messages too close to BP2 to avoid proximity waste.
134
137
  if (bp2MessageIdx >= 0 && Math.abs(i - bp2MessageIdx) <= 2)
135
138
  continue;
136
- const msg = anthropicMessages[i];
139
+ const msg = toRecord(anthropicMessages[i]);
137
140
  if (msg.role === 'user') {
138
141
  const content = msg.content;
139
142
  if (content) {
@@ -159,7 +162,7 @@ export class AnthropicProvider {
159
162
  }
160
163
  // Only place BP3 if the tool result is substantial (>500 chars ~ 125 tokens).
161
164
  if (largestIdx >= 0 && largestBlockIdx >= 0 && largestSize > 500) {
162
- const msg = anthropicMessages[largestIdx];
165
+ const msg = toRecord(anthropicMessages[largestIdx]);
163
166
  const content = msg.content;
164
167
  // Target the specific tool_result block, not the last block in the message.
165
168
  content[largestBlockIdx]['cache_control'] = { type: 'ephemeral' };
@@ -199,7 +202,7 @@ export class AnthropicProvider {
199
202
  }
200
203
  let res;
201
204
  try {
202
- res = await fetch(`${ANTHROPIC_API_BASE}/messages`, {
205
+ res = await instrumentedFetch(`${ANTHROPIC_API_BASE}/messages`, {
203
206
  method: 'POST',
204
207
  headers,
205
208
  body: JSON.stringify(body),
@@ -364,7 +367,7 @@ export class AnthropicProvider {
364
367
  hitRate,
365
368
  },
366
369
  };
367
- });
370
+ }), { provider: 'anthropic', model: model })).result;
368
371
  }
369
372
  async describeRuntime(deps) {
370
373
  const { buildStandardProviderAuthRoutes } = await import('./runtime-metadata.js');
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-catalog.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/builtin-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC9E,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAClE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,gCAAiC,SAAQ,yBAAyB;IACjF,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,uBAAuB,GAC/B,6BAA6B,GAC7B,gCAAgC,CAAC;AAErC,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CA+CvE,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAE/E;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS,uBAAuB,EAoOtE,CAAC"}
1
+ {"version":3,"file":"builtin-catalog.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/builtin-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC9E,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAClE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,gCAAiC,SAAQ,yBAAyB;IACjF,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,uBAAuB,GAC/B,6BAA6B,GAC7B,gCAAgC,CAAC;AAErC,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CA+CvE,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAE/E;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS,uBAAuB,EAoOtE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { WELL_KNOWN_LOCAL_ENDPOINTS } from './well-known-endpoints.js';
1
2
  export const BUILTIN_PROVIDER_ENV_KEYS = {
2
3
  openai: ['OPENAI_API_KEY', 'OPENAI_KEY'],
3
4
  anthropic: ['ANTHROPIC_API_KEY', 'CLAUDE_API_KEY'],
@@ -248,7 +249,7 @@ export const BUILTIN_COMPAT_PROVIDERS = [
248
249
  label: 'LiteLLM',
249
250
  envVars: getBuiltinProviderEnvVars('litellm'),
250
251
  serviceNames: ['litellm'],
251
- baseURL: 'http://localhost:4000/v1',
252
+ baseURL: `${WELL_KNOWN_LOCAL_ENDPOINTS.liteLLM}/v1`,
252
253
  defaultModel: 'claude-opus-4-6',
253
254
  models: ['claude-opus-4-6', 'gpt-5.4', 'gemini-3-pro'],
254
255
  allowAnonymous: true,
@@ -261,7 +262,7 @@ export const BUILTIN_COMPAT_PROVIDERS = [
261
262
  label: 'Copilot Proxy',
262
263
  envVars: getBuiltinProviderEnvVars('copilot-proxy'),
263
264
  serviceNames: ['copilot-proxy'],
264
- baseURL: 'http://localhost:3000/v1',
265
+ baseURL: `${WELL_KNOWN_LOCAL_ENDPOINTS.copilotProxy}/v1`,
265
266
  defaultModel: 'gpt-5.2',
266
267
  models: [
267
268
  'gpt-5.2',
@@ -0,0 +1,56 @@
1
+ /**
2
+ * RegistryCatalogue — manages catalog state, synthetic models, and the model registry cache.
3
+ * Extracted from ProviderRegistry to reduce god-object size.
4
+ * Pure delegation target: ProviderRegistry holds an instance and forwards catalog-shaped calls here.
5
+ */
6
+ import { type CatalogModel, type MinimalModelDefinition, type PricingCatalog } from './model-catalog.js';
7
+ import type { ModelDefinition } from './registry-types.js';
8
+ import type { CanonicalModel } from './synthetic.js';
9
+ import type { BenchmarkStore } from './model-benchmarks.js';
10
+ import type { FavoritesStore } from './favorites.js';
11
+ import type { ModelLimitsService } from './model-limits.js';
12
+ export interface RegistryCatalogueOptions {
13
+ readonly persistenceRoot: string;
14
+ readonly benchmarkStore: Pick<BenchmarkStore, 'getTopBenchmarkModelIds' | 'getBenchmarks'>;
15
+ readonly favoritesStore: Pick<FavoritesStore, 'load'>;
16
+ readonly modelLimitsService: ModelLimitsService;
17
+ /**
18
+ * Callbacks to read fresh mutable state from ProviderRegistry on every model-registry
19
+ * build. Using callbacks (not stored references) avoids stale-ref bugs when the
20
+ * registry reassigns its arrays (e.g. customModels = result.models).
21
+ */
22
+ readonly getCustomModels: () => ModelDefinition[];
23
+ readonly getRuntimeModels: () => ModelDefinition[];
24
+ readonly getDiscoveredModels: () => ModelDefinition[];
25
+ readonly getRuntimeCatalogSuppressions: () => Map<string, readonly string[]>;
26
+ }
27
+ export declare class RegistryCatalogue {
28
+ catalogModels: CatalogModel[];
29
+ pricingCatalog: PricingCatalog | null;
30
+ syntheticCanonicalModels: CanonicalModel[];
31
+ private _cachedModelRegistry;
32
+ private _modelRegistryRevision;
33
+ private readonly opts;
34
+ constructor(opts: RegistryCatalogueOptions);
35
+ private getCatalogCachePaths;
36
+ getCatalogBuiltins(): ModelDefinition[];
37
+ getSyntheticBuiltins(): ModelDefinition[];
38
+ updateCatalogState(models: readonly CatalogModel[]): void;
39
+ getSuppressedCatalogModelIds(): Set<string>;
40
+ invalidateModelRegistry(): void;
41
+ get modelRegistryRevision(): number;
42
+ getModelRegistry(): ModelDefinition[];
43
+ getRawCatalogModels(): readonly CatalogModel[];
44
+ getCatalogModelDefinitions(): readonly MinimalModelDefinition[];
45
+ getSyntheticModelDefinitions(): readonly MinimalModelDefinition[];
46
+ getSyntheticCanonicalModels(): readonly CanonicalModel[];
47
+ getSyntheticBackendModelIds(): Set<string>;
48
+ getSyntheticModelInfoFromCatalog(modelId: string): import("./model-catalog-synthetic.js").SyntheticModelInfo | null;
49
+ getCostFromCatalog(modelId: string, modelLimitsService: ModelLimitsService): {
50
+ input: number;
51
+ output: number;
52
+ };
53
+ initCatalog(): void;
54
+ refreshCatalog(): Promise<void>;
55
+ }
56
+ //# sourceMappingURL=catalogue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/catalogue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAcL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,yBAAyB,GAAG,eAAe,CAAC,CAAC;IAC3F,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,eAAe,EAAE,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,eAAe,EAAE,CAAC;IACnD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;IACtD,QAAQ,CAAC,6BAA6B,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CAC9E;AAED,qBAAa,iBAAiB;IAC5B,aAAa,EAAE,YAAY,EAAE,CAAM;IACnC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,wBAAwB,EAAE,cAAc,EAAE,CAAM;IAEhD,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,sBAAsB,CAAK;IAEnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;gBAEpC,IAAI,EAAE,wBAAwB;IAI1C,OAAO,CAAC,oBAAoB;IAO5B,kBAAkB,IAAI,eAAe,EAAE;IAIvC,oBAAoB,IAAI,eAAe,EAAE;IAIzC,kBAAkB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI;IAOzD,4BAA4B,IAAI,GAAG,CAAC,MAAM,CAAC;IAI3C,uBAAuB,IAAI,IAAI;IAK/B,IAAI,qBAAqB,IAAI,MAAM,CAElC;IAED,gBAAgB,IAAI,eAAe,EAAE;IAerC,mBAAmB,IAAI,SAAS,YAAY,EAAE;IAI9C,0BAA0B,IAAI,SAAS,sBAAsB,EAAE;IAI/D,4BAA4B,IAAI,SAAS,sBAAsB,EAAE;IAIjE,2BAA2B,IAAI,SAAS,cAAc,EAAE;IAIxD,2BAA2B,IAAI,GAAG,CAAC,MAAM,CAAC;IAI1C,gCAAgC,CAAC,OAAO,EAAE,MAAM;IAQhD,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAU9G,WAAW,IAAI,IAAI;IAcb,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAmBtC"}