@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":"errors.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/types/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/types/errors.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { GoodVibesSdkError } from '../../errors/index.js';
1
2
  /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
3
  /** HTTP status codes that indicate transient failures eligible for retry. Single source of truth. */
3
4
  export const RETRYABLE_STATUS_CODES = [429, 500, 503];
@@ -78,39 +79,39 @@ function inferRetryAfterMs(message, statusCode, explicitRetryAfterMs) {
78
79
  return parseInt(match[1], 10) * 1000;
79
80
  }
80
81
  /** Base class for all application errors. Provides a machine-readable code and recoverability hint. */
81
- export class AppError extends Error {
82
+ export class AppError extends GoodVibesSdkError {
82
83
  code;
83
84
  recoverable;
85
+ /** HTTP status code (backward-compat alias for `status`). */
84
86
  statusCode;
85
- category;
87
+ /** Human-readable guidance (backward-compat alias for `hint`). */
86
88
  guidance;
89
+ /** Additional detail string not present on GoodVibesSdkError. */
87
90
  detail;
88
- source;
89
- provider;
90
- operation;
91
- phase;
92
- requestId;
93
- providerCode;
94
- providerType;
95
- retryAfterMs;
91
+ /** Raw provider message before normalisation. */
96
92
  rawMessage;
97
93
  constructor(message, code, recoverable, options = {}) {
98
- super(message);
94
+ super(message, {
95
+ code,
96
+ recoverable,
97
+ category: options.category,
98
+ source: options.source,
99
+ status: options.statusCode,
100
+ hint: options.guidance,
101
+ provider: options.provider,
102
+ operation: options.operation,
103
+ phase: options.phase,
104
+ requestId: options.requestId,
105
+ providerCode: options.providerCode,
106
+ providerType: options.providerType,
107
+ retryAfterMs: options.retryAfterMs,
108
+ });
99
109
  this.code = code;
100
110
  this.recoverable = recoverable;
101
111
  this.name = this.constructor.name;
102
112
  this.statusCode = options.statusCode;
103
- this.category = options.category;
104
113
  this.guidance = options.guidance;
105
114
  this.detail = options.detail;
106
- this.source = options.source;
107
- this.provider = options.provider;
108
- this.operation = options.operation;
109
- this.phase = options.phase;
110
- this.requestId = options.requestId;
111
- this.providerCode = options.providerCode;
112
- this.providerType = options.providerType;
113
- this.retryAfterMs = options.retryAfterMs;
114
115
  this.rawMessage = options.rawMessage;
115
116
  }
116
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error-display.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/utils/error-display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9H,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAsBnF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,iCAAkC,SAAQ,oBAAoB;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAmJD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,eAAe,CA4CvG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,MAAM,CAE9F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,MAAM,CAU3F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,yBAAyB,CAkBzH;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iCAAsC,GAAG,aAAa,CA0D9G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnF"}
1
+ {"version":3,"file":"error-display.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/utils/error-display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9H,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAuBnF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,iCAAkC,SAAQ,oBAAoB;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAmJD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,eAAe,CA6CvG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,MAAM,CAE9F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,MAAM,CAU3F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,yBAAyB,CAkBzH;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iCAAsC,GAAG,aAAa,CA0D9G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnF"}
@@ -1,4 +1,5 @@
1
1
  import { AppError, ProviderError } from '../types/errors.js';
2
+ import { redactSensitiveData } from './redaction.js';
2
3
  const MAX_ERROR_LENGTH = 240;
3
4
  const NETWORK_ERROR_PATTERNS = [
4
5
  {
@@ -177,7 +178,8 @@ function extractErrorMessage(error) {
177
178
  return String(error);
178
179
  }
179
180
  export function normalizeError(error, options = {}) {
180
- const rawMessage = extractErrorMessage(error);
181
+ // OBS-24: Redact Bearer tokens and API keys before any further processing.
182
+ const rawMessage = redactSensitiveData(extractErrorMessage(error));
181
183
  const statusCode = error instanceof AppError
182
184
  ? error.statusCode
183
185
  : error && typeof error === 'object' && 'statusCode' in error && typeof error.statusCode === 'number'
@@ -188,9 +190,9 @@ export function normalizeError(error, options = {}) {
188
190
  const provider = options.provider ?? (error instanceof AppError ? error.provider : undefined);
189
191
  const cleanedMessage = cleanMessage(rawMessage, options.fallbackMessage);
190
192
  const network = getNetworkErrorMessage(rawMessage, provider);
191
- const category = error instanceof AppError && error.category
193
+ const category = (error instanceof AppError && error.category
192
194
  ? error.category
193
- : network?.category ?? inferCategory(cleanedMessage, statusCode);
195
+ : network?.category ?? inferCategory(cleanedMessage, statusCode));
194
196
  const source = inferSource(error, options.source);
195
197
  const summary = buildSummary(network?.summary ?? cleanedMessage, {
196
198
  requestId: error instanceof AppError ? error.requestId : undefined,
@@ -256,7 +258,7 @@ export function toProviderError(error, options = {}) {
256
258
  if (error instanceof ProviderError) {
257
259
  return new ProviderError(error.message, {
258
260
  statusCode: error.statusCode ?? options.statusCode,
259
- category: error.category ?? options.category,
261
+ category: (error.category ?? options.category),
260
262
  guidance: error.guidance ?? options.guidance,
261
263
  detail: error.detail ?? options.detail,
262
264
  source: 'provider',
@@ -1,3 +1,20 @@
1
+ /**
2
+ * Sanitize a URL for logging: strip query params that might contain secrets.
3
+ * @internal Exported for testing only.
4
+ */
5
+ export declare function sanitizeUrlForLog(url: string | URL | Request): string;
6
+ /**
7
+ * instrumentedFetch — wraps the global fetch with structured OUTBOUND_HTTP logging.
8
+ *
9
+ * Use this in place of bare `fetch()` for non-streaming outbound HTTP calls where
10
+ * observability is required. For streaming calls (SSE/chat completions) where the
11
+ * caller already manages an AbortController, use fetch() directly — those streams
12
+ * manage their own lifecycle and do not benefit from this wrapper.
13
+ *
14
+ * @param url - The URL or Request to fetch.
15
+ * @param init - Standard RequestInit (optional).
16
+ */
17
+ export declare function instrumentedFetch(url: string | URL | Request, init?: RequestInit): Promise<Response>;
1
18
  /**
2
19
  * fetchWithTimeout — wraps the global fetch with an AbortController timeout.
3
20
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-with-timeout.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/utils/fetch-with-timeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,SAAS,SAAS,GACjB,OAAO,CAAC,QAAQ,CAAC,CAkBnB"}
1
+ {"version":3,"file":"fetch-with-timeout.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/utils/fetch-with-timeout.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,MAAM,CAarE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC3B,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAkBnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,SAAS,SAAS,GACjB,OAAO,CAAC,QAAQ,CAAC,CAkBnB"}
@@ -1,3 +1,62 @@
1
+ import { logger } from './logger.js';
2
+ /**
3
+ * Sensitive query-parameter keys to strip from logged URLs.
4
+ * Values are replaced with "[redacted]" in OUTBOUND_HTTP log entries.
5
+ */
6
+ const SENSITIVE_PARAMS = new Set([
7
+ 'key', 'api_key', 'apikey', 'token', 'secret',
8
+ 'access_token', 'apiToken', 'api-key',
9
+ ]);
10
+ /**
11
+ * Sanitize a URL for logging: strip query params that might contain secrets.
12
+ * @internal Exported for testing only.
13
+ */
14
+ export function sanitizeUrlForLog(url) {
15
+ try {
16
+ const raw = url instanceof Request ? url.url : String(url);
17
+ const parsed = new URL(raw);
18
+ for (const key of parsed.searchParams.keys()) {
19
+ if (SENSITIVE_PARAMS.has(key.toLowerCase())) {
20
+ parsed.searchParams.set(key, '[redacted]');
21
+ }
22
+ }
23
+ return `${parsed.origin}${parsed.pathname}${parsed.search ? parsed.search : ''}`;
24
+ }
25
+ catch {
26
+ return '[unparseable-url]';
27
+ }
28
+ }
29
+ /**
30
+ * instrumentedFetch — wraps the global fetch with structured OUTBOUND_HTTP logging.
31
+ *
32
+ * Use this in place of bare `fetch()` for non-streaming outbound HTTP calls where
33
+ * observability is required. For streaming calls (SSE/chat completions) where the
34
+ * caller already manages an AbortController, use fetch() directly — those streams
35
+ * manage their own lifecycle and do not benefit from this wrapper.
36
+ *
37
+ * @param url - The URL or Request to fetch.
38
+ * @param init - Standard RequestInit (optional).
39
+ */
40
+ export async function instrumentedFetch(url, init) {
41
+ const startMs = Date.now();
42
+ const method = init?.method ?? 'GET';
43
+ const safeUrl = sanitizeUrlForLog(url);
44
+ let status = -1;
45
+ try {
46
+ const res = await fetch(url, init);
47
+ status = res.status;
48
+ return res;
49
+ }
50
+ finally {
51
+ logger.info('OUTBOUND_HTTP', {
52
+ type: 'OUTBOUND_HTTP',
53
+ method,
54
+ url: safeUrl,
55
+ status,
56
+ latencyMs: Date.now() - startMs,
57
+ });
58
+ }
59
+ }
1
60
  /**
2
61
  * fetchWithTimeout — wraps the global fetch with an AbortController timeout.
3
62
  *
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Widen an arbitrary value to a plain Record<string, unknown> for generic dispatch.
3
+ *
4
+ * Use this helper in place of the verbose double-cast idiom
5
+ * `value as unknown as Record<string, unknown>`. It is intentionally
6
+ * a thin cast — no runtime validation — because the call sites all operate on
7
+ * values that are structurally objects at runtime; the cast is only needed to
8
+ * satisfy TypeScript's type system at the generic-dispatch boundary.
9
+ */
10
+ export declare function toRecord(value: unknown): Record<string, unknown>;
11
+ //# sourceMappingURL=record-coerce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-coerce.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/utils/record-coerce.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhE"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Widen an arbitrary value to a plain Record<string, unknown> for generic dispatch.
3
+ *
4
+ * Use this helper in place of the verbose double-cast idiom
5
+ * `value as unknown as Record<string, unknown>`. It is intentionally
6
+ * a thin cast — no runtime validation — because the call sites all operate on
7
+ * values that are structurally objects at runtime; the cast is only needed to
8
+ * satisfy TypeScript's type system at the generic-dispatch boundary.
9
+ */
10
+ export function toRecord(value) {
11
+ return value;
12
+ }
@@ -15,7 +15,7 @@ const REDACT_PATTERNS = [
15
15
  { pattern: /[A-Za-z]:\\Users\\[A-Za-z0-9_.-]+/g, replacement: 'C:\\Users\\[REDACTED]' },
16
16
  ];
17
17
  const SECRET_KEY_PATTERN = /(^|[_-])(authorization|token|secret|password|passwd|cookie|credential|api[_-]?key|access[_-]?token|refresh[_-]?token|session[_-]?(id|token)?)([_-]|$)/i;
18
- const CONTENT_KEY_PATTERN = /(^|[_-])(prompt|response|content|body|text|stdout|stderr|output|input|reasoning|transcript|command|arguments|query|detail|summary|message)([_-]|$)/i;
18
+ const CONTENT_KEY_PATTERN = /(^|[_-])(prompt|response|content|accumulated|body|text|stdout|stderr|output|input|reasoning|transcript|command|arguments|query|detail|summary|message)([_-]|$)/i;
19
19
  function redactTextValue(value, key) {
20
20
  if (key && SECRET_KEY_PATTERN.test(key))
21
21
  return '[REDACTED]';
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Generic fixed-capacity ring buffer (circular buffer).
3
+ *
4
+ * All writes are O(1). When the buffer is full the oldest entry is silently
5
+ * evicted (FIFO). Reading all entries is O(n) where n ≤ capacity.
6
+ *
7
+ * This is the canonical ring-buffer utility for the SDK. Prefer this over
8
+ * ad-hoc implementations when bounded-memory queues are needed.
9
+ */
10
+ /**
11
+ * A generic ring buffer with a fixed capacity.
12
+ *
13
+ * Entries are stored in insertion order. When the buffer is full the oldest
14
+ * entry is overwritten (FIFO eviction). All push operations are O(1).
15
+ */
16
+ export declare class RingBuffer<T> {
17
+ private readonly _buf;
18
+ private _head;
19
+ private _count;
20
+ readonly capacity: number;
21
+ constructor(capacity: number);
22
+ /** Number of entries currently stored (≤ capacity). */
23
+ get size(): number;
24
+ /** True when the buffer holds at least one entry. */
25
+ get isEmpty(): boolean;
26
+ /**
27
+ * Push an entry into the buffer.
28
+ *
29
+ * If the buffer is full the oldest entry is evicted to make room.
30
+ * Always O(1).
31
+ */
32
+ push(item: T): void;
33
+ /**
34
+ * Return all entries in insertion order (oldest → newest).
35
+ *
36
+ * Allocates a new array of length `size` per call.
37
+ */
38
+ toArray(): T[];
39
+ /**
40
+ * Return the N most recent entries in insertion order (oldest → newest).
41
+ *
42
+ * If `n >= size` returns the same result as `toArray()`.
43
+ */
44
+ takeLast(n: number): T[];
45
+ /**
46
+ * Return the N most recent entries in reverse insertion order (newest → oldest).
47
+ *
48
+ * Useful for "latest first" display without an extra `.reverse()` call.
49
+ */
50
+ takeLastReversed(n: number): T[];
51
+ /** Remove all entries and reset internal state. Capacity is preserved. */
52
+ clear(): void;
53
+ }
54
+ //# sourceMappingURL=ring-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ring-buffer.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/utils/ring-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,qBAAa,UAAU,CAAC,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM;IAM5B,uDAAuD;IACvD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,qDAAqD;IACrD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAMnB;;;;OAIG;IACH,OAAO,IAAI,CAAC,EAAE;IAUd;;;;OAIG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAMxB;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAYhC,0EAA0E;IAC1E,KAAK,IAAI,IAAI;CAKd"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Generic fixed-capacity ring buffer (circular buffer).
3
+ *
4
+ * All writes are O(1). When the buffer is full the oldest entry is silently
5
+ * evicted (FIFO). Reading all entries is O(n) where n ≤ capacity.
6
+ *
7
+ * This is the canonical ring-buffer utility for the SDK. Prefer this over
8
+ * ad-hoc implementations when bounded-memory queues are needed.
9
+ */
10
+ /**
11
+ * A generic ring buffer with a fixed capacity.
12
+ *
13
+ * Entries are stored in insertion order. When the buffer is full the oldest
14
+ * entry is overwritten (FIFO eviction). All push operations are O(1).
15
+ */
16
+ export class RingBuffer {
17
+ _buf;
18
+ _head = 0; // next-write slot
19
+ _count = 0; // current occupancy (≤ capacity)
20
+ capacity;
21
+ constructor(capacity) {
22
+ if (capacity < 1)
23
+ throw new RangeError(`RingBuffer capacity must be >= 1, got ${capacity}`);
24
+ this.capacity = capacity;
25
+ this._buf = new Array(capacity).fill(undefined);
26
+ }
27
+ /** Number of entries currently stored (≤ capacity). */
28
+ get size() {
29
+ return this._count;
30
+ }
31
+ /** True when the buffer holds at least one entry. */
32
+ get isEmpty() {
33
+ return this._count === 0;
34
+ }
35
+ /**
36
+ * Push an entry into the buffer.
37
+ *
38
+ * If the buffer is full the oldest entry is evicted to make room.
39
+ * Always O(1).
40
+ */
41
+ push(item) {
42
+ this._buf[this._head] = item;
43
+ this._head = (this._head + 1) % this.capacity;
44
+ if (this._count < this.capacity)
45
+ this._count++;
46
+ }
47
+ /**
48
+ * Return all entries in insertion order (oldest → newest).
49
+ *
50
+ * Allocates a new array of length `size` per call.
51
+ */
52
+ toArray() {
53
+ if (this._count === 0)
54
+ return [];
55
+ const result = new Array(this._count);
56
+ const oldest = this._count < this.capacity ? 0 : this._head;
57
+ for (let i = 0; i < this._count; i++) {
58
+ result[i] = this._buf[(oldest + i) % this.capacity];
59
+ }
60
+ return result;
61
+ }
62
+ /**
63
+ * Return the N most recent entries in insertion order (oldest → newest).
64
+ *
65
+ * If `n >= size` returns the same result as `toArray()`.
66
+ */
67
+ takeLast(n) {
68
+ if (n <= 0)
69
+ return [];
70
+ const all = this.toArray();
71
+ return n >= all.length ? all : all.slice(all.length - n);
72
+ }
73
+ /**
74
+ * Return the N most recent entries in reverse insertion order (newest → oldest).
75
+ *
76
+ * Useful for "latest first" display without an extra `.reverse()` call.
77
+ */
78
+ takeLastReversed(n) {
79
+ if (n <= 0)
80
+ return [];
81
+ const count = Math.min(n, this._count);
82
+ const result = new Array(count);
83
+ for (let i = 0; i < count; i++) {
84
+ // Walk backwards from head-1 (most recent write)
85
+ const idx = (this._head - 1 - i + this.capacity) % this.capacity;
86
+ result[i] = this._buf[idx];
87
+ }
88
+ return result;
89
+ }
90
+ /** Remove all entries and reset internal state. Capacity is preserved. */
91
+ clear() {
92
+ this._buf.fill(undefined);
93
+ this._head = 0;
94
+ this._count = 0;
95
+ }
96
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Split a shell command string into an argument array.
3
+ * Handles double-quoted strings, single-quoted strings, and backslash escapes.
4
+ *
5
+ * @example
6
+ * shellSplit('echo hello world') // ['echo', 'hello', 'world']
7
+ * shellSplit('echo "hello world"') // ['echo', 'hello world']
8
+ * shellSplit('path/with\\ space') // ['path/with space']
9
+ */
10
+ export declare function shellSplit(input: string): string[];
11
+ //# sourceMappingURL=shell-split.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-split.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/utils/shell-split.ts"],"names":[],"mappings":"AAaA;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA8DlD"}
@@ -0,0 +1,83 @@
1
+ // ---------------------------------------------------------------------------
2
+ // shellSplit — POSIX-compatible word tokenizer
3
+ // ---------------------------------------------------------------------------
4
+ // Splits a shell command string into tokens, respecting:
5
+ // - Double-quoted strings: preserve spaces, process \\ and \" escapes
6
+ // - Single-quoted strings: preserve spaces, no escape processing
7
+ // - Backslash escapes outside quotes
8
+ // - Whitespace separation
9
+ //
10
+ // Does NOT support: subshell expansion, glob expansion, variable substitution.
11
+ // Intended for splitting trigger action strings into argv arrays for Bun.spawn.
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * Split a shell command string into an argument array.
15
+ * Handles double-quoted strings, single-quoted strings, and backslash escapes.
16
+ *
17
+ * @example
18
+ * shellSplit('echo hello world') // ['echo', 'hello', 'world']
19
+ * shellSplit('echo "hello world"') // ['echo', 'hello world']
20
+ * shellSplit('path/with\\ space') // ['path/with space']
21
+ */
22
+ export function shellSplit(input) {
23
+ const tokens = [];
24
+ let i = 0;
25
+ const len = input.length;
26
+ while (i < len) {
27
+ // Skip leading whitespace between tokens
28
+ if (/\s/.test(input[i])) {
29
+ i++;
30
+ continue;
31
+ }
32
+ // Accumulate one token
33
+ let token = '';
34
+ while (i < len && !/\s/.test(input[i])) {
35
+ const ch = input[i];
36
+ if (ch === '"') {
37
+ // Double-quoted region: process \\ and \" escapes
38
+ i++;
39
+ while (i < len && input[i] !== '"') {
40
+ if (input[i] === '\\' && i + 1 < len) {
41
+ const next = input[i + 1];
42
+ // Only process recognised escapes inside double quotes
43
+ if (next === '"' || next === '\\') {
44
+ token += next;
45
+ i += 2;
46
+ }
47
+ else {
48
+ token += input[i];
49
+ i++;
50
+ }
51
+ }
52
+ else {
53
+ token += input[i];
54
+ i++;
55
+ }
56
+ }
57
+ i++; // consume closing "
58
+ }
59
+ else if (ch === "'") {
60
+ // Single-quoted region: no escape processing
61
+ i++;
62
+ while (i < len && input[i] !== "'") {
63
+ token += input[i];
64
+ i++;
65
+ }
66
+ i++; // consume closing '
67
+ }
68
+ else if (ch === '\\' && i + 1 < len) {
69
+ // Backslash escape outside quotes
70
+ token += input[i + 1];
71
+ i += 2;
72
+ }
73
+ else {
74
+ token += ch;
75
+ i++;
76
+ }
77
+ }
78
+ if (token.length > 0) {
79
+ tokens.push(token);
80
+ }
81
+ }
82
+ return tokens;
83
+ }
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- let version = '0.21.29';
3
+ let version = '0.21.31';
4
4
  try {
5
5
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
6
6
  version = pkg.version ?? version;
@@ -1 +1 @@
1
- {"version":3,"file":"deepgram.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/deepgram.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAkBjD,wBAAgB,sBAAsB,IAAI,aAAa,CAwDtD"}
1
+ {"version":3,"file":"deepgram.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/deepgram.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAmBjD,wBAAgB,sBAAsB,IAAI,aAAa,CAwDtD"}
@@ -1,4 +1,5 @@
1
1
  import { buildStatus, normalizeBaseUrl, readFirstEnv, resolveAudioInput, } from './shared.js';
2
+ import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
2
3
  export function createDeepgramProvider() {
3
4
  const envVars = ['DEEPGRAM_API_KEY'];
4
5
  const baseUrlEnvVars = ['DEEPGRAM_BASE_URL', 'DEEPGRAM_API_BASE'];
@@ -25,7 +26,7 @@ export function createDeepgramProvider() {
25
26
  if (request.language?.trim())
26
27
  url.searchParams.set('language', request.language.trim());
27
28
  url.searchParams.set('smart_format', 'true');
28
- const response = await fetch(url, {
29
+ const response = await instrumentedFetch(url, {
29
30
  method: 'POST',
30
31
  headers: {
31
32
  Authorization: `Token ${apiKey}`,
@@ -1 +1 @@
1
- {"version":3,"file":"elevenlabs.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/elevenlabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,aAAa,CAAC;AAqGrB,wBAAgB,wBAAwB,IAAI,aAAa,CAkSxD"}
1
+ {"version":3,"file":"elevenlabs.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/elevenlabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,aAAa,CAAC;AAsGrB,wBAAgB,wBAAwB,IAAI,aAAa,CAkSxD"}
@@ -1,4 +1,5 @@
1
1
  import { asRecord, buildStatus, estimateConfidenceFromAvgLogprob, inferFilename, normalizeBaseUrl, readFirstEnv, resolveAudioInput, trimToUndefined, } from './shared.js';
2
+ import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
2
3
  const DEFAULT_ELEVENLABS_STT_MODEL = 'scribe_v2';
3
4
  const DEFAULT_ELEVENLABS_REALTIME_MODEL = 'scribe_v2_realtime';
4
5
  const ELEVENLABS_SINGLE_USE_TOKEN_TTL_MS = 15 * 60 * 1000;
@@ -75,7 +76,7 @@ export function createElevenLabsProvider() {
75
76
  if (!apiKey)
76
77
  return [];
77
78
  const baseUrl = normalizeBaseUrl(readFirstEnv(baseUrlEnvVars), 'https://api.elevenlabs.io');
78
- const response = await fetch(`${baseUrl}/v1/voices`, {
79
+ const response = await instrumentedFetch(`${baseUrl}/v1/voices`, {
79
80
  headers: { 'xi-api-key': apiKey },
80
81
  });
81
82
  if (!response.ok)
@@ -98,7 +99,7 @@ export function createElevenLabsProvider() {
98
99
  throw new Error('ElevenLabs API key missing');
99
100
  const baseUrl = normalizeBaseUrl(readFirstEnv(baseUrlEnvVars), 'https://api.elevenlabs.io');
100
101
  const voiceId = request.voiceId?.trim() || 'pMsXgVXv3BLzUgSXRplE';
101
- const response = await fetch(`${baseUrl}/v1/text-to-speech/${voiceId}`, {
102
+ const response = await instrumentedFetch(`${baseUrl}/v1/text-to-speech/${voiceId}`, {
102
103
  method: 'POST',
103
104
  headers: {
104
105
  'xi-api-key': apiKey,
@@ -222,7 +223,7 @@ export function createElevenLabsProvider() {
222
223
  if (metadata?.['webhookMetadata'] !== undefined) {
223
224
  form.append('webhook_metadata', JSON.stringify(metadata['webhookMetadata']));
224
225
  }
225
- const response = await fetch(url, {
226
+ const response = await instrumentedFetch(url, {
226
227
  method: 'POST',
227
228
  headers: {
228
229
  'xi-api-key': apiKey,
@@ -298,7 +299,7 @@ export function createElevenLabsProvider() {
298
299
  if (value)
299
300
  websocketUrl.searchParams.set('enable_logging', value);
300
301
  }
301
- const tokenResponse = await fetch(`${baseUrl}/v1/single-use-token/realtime_scribe`, {
302
+ const tokenResponse = await instrumentedFetch(`${baseUrl}/v1/single-use-token/realtime_scribe`, {
302
303
  method: 'POST',
303
304
  headers: {
304
305
  'xi-api-key': apiKey,
@@ -1 +1 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA4HjD,wBAAgB,oBAAoB,IAAI,aAAa,CAiGpD"}
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA6HjD,wBAAgB,oBAAoB,IAAI,aAAa,CAiGpD"}
@@ -1,4 +1,5 @@
1
1
  import { asRecord, buildStatus, inferFilename, normalizeBaseUrl, readFirstEnv, resolveAudioInput, trimToUndefined, } from './shared.js';
2
+ import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
2
3
  const GEMINI_API_BASE_URL = 'https://generativelanguage.googleapis.com/v1beta';
3
4
  const DEFAULT_GOOGLE_STT_MODEL = 'gemini-2.5-flash';
4
5
  const GOOGLE_INLINE_AUDIO_LIMIT_BYTES = 20 * 1024 * 1024;
@@ -26,7 +27,7 @@ function parseGoogleFileRecord(payload) {
26
27
  }
27
28
  async function uploadGoogleFile(baseUrl, apiKey, buffer, mimeType, displayName) {
28
29
  const uploadBaseUrl = baseUrl.replace(/\/v1beta$/, '');
29
- const startResponse = await fetch(`${uploadBaseUrl}/upload/v1beta/files`, {
30
+ const startResponse = await instrumentedFetch(`${uploadBaseUrl}/upload/v1beta/files`, {
30
31
  method: 'POST',
31
32
  headers: {
32
33
  'Content-Type': 'application/json',
@@ -49,7 +50,7 @@ async function uploadGoogleFile(baseUrl, apiKey, buffer, mimeType, displayName)
49
50
  if (!uploadUrl) {
50
51
  throw new Error('Google file upload start response missing upload URL');
51
52
  }
52
- const uploadResponse = await fetch(uploadUrl, {
53
+ const uploadResponse = await instrumentedFetch(uploadUrl, {
53
54
  method: 'POST',
54
55
  headers: {
55
56
  'Content-Length': String(buffer.byteLength),
@@ -66,7 +67,7 @@ async function uploadGoogleFile(baseUrl, apiKey, buffer, mimeType, displayName)
66
67
  }
67
68
  async function deleteGoogleFile(baseUrl, apiKey, name) {
68
69
  try {
69
- await fetch(`${baseUrl}/${name}`, {
70
+ await instrumentedFetch(`${baseUrl}/${name}`, {
70
71
  method: 'DELETE',
71
72
  headers: {
72
73
  'x-goog-api-key': apiKey,
@@ -110,7 +111,7 @@ export function createGoogleProvider() {
110
111
  if (useFilesApi) {
111
112
  uploadedFile = await uploadGoogleFile(baseUrl, apiKey, buffer, effectiveMimeType, inferFilename(request.audio, '.wav'));
112
113
  }
113
- const response = await fetch(`${baseUrl}/models/${encodeURIComponent(model)}:generateContent`, {
114
+ const response = await instrumentedFetch(`${baseUrl}/models/${encodeURIComponent(model)}:generateContent`, {
114
115
  method: 'POST',
115
116
  headers: {
116
117
  'Content-Type': 'application/json',
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/microsoft.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAqDlE,wBAAgB,uBAAuB,IAAI,aAAa,CAoDvD"}
1
+ {"version":3,"file":"microsoft.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/microsoft.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAsDlE,wBAAgB,uBAAuB,IAAI,aAAa,CAoDvD"}