@superblocksteam/vite-plugin-file-sync 2.0.70-next.8 → 2.0.71-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +1 -1
  2. package/dist/ai-service/agent/subagents/types.d.ts.map +1 -1
  3. package/dist/ai-service/agent/subagents/types.js +1 -0
  4. package/dist/ai-service/agent/subagents/types.js.map +1 -1
  5. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  6. package/dist/ai-service/agent/tool-message-utils.js +5 -0
  7. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  8. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
  9. package/dist/ai-service/agent/tools/apis/build-api-artifact.js +2 -1
  10. package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
  11. package/dist/ai-service/agent/tools/apis/sample-json.d.ts +2 -0
  12. package/dist/ai-service/agent/tools/apis/sample-json.d.ts.map +1 -0
  13. package/dist/ai-service/agent/tools/apis/sample-json.js +16 -0
  14. package/dist/ai-service/agent/tools/apis/sample-json.js.map +1 -0
  15. package/dist/ai-service/agent/tools/apis/test-api.d.ts +4 -4
  16. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  17. package/dist/ai-service/agent/tools/apis/test-api.js +16 -5
  18. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  19. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +35 -0
  20. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  21. package/dist/ai-service/agent/tools/build-capture-screenshot.js +90 -15
  22. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  23. package/dist/ai-service/agent/tools/build-validate-icons.d.ts +3 -18
  24. package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
  25. package/dist/ai-service/agent/tools/build-validate-icons.js +12 -50
  26. package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
  27. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  28. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +1 -1
  29. package/dist/ai-service/agent/tools/shared-helpers.d.ts +0 -35
  30. package/dist/ai-service/agent/tools/shared-helpers.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tools/shared-helpers.js +0 -89
  32. package/dist/ai-service/agent/tools/shared-helpers.js.map +1 -1
  33. package/dist/ai-service/agent/tools2/access-control.d.ts +1 -23
  34. package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
  35. package/dist/ai-service/agent/tools2/access-control.js +3 -68
  36. package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
  37. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  38. package/dist/ai-service/agent/tools2/registry.js +16 -5
  39. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  40. package/dist/ai-service/agent/tools2/tools/bash.d.ts.map +1 -1
  41. package/dist/ai-service/agent/tools2/tools/bash.js +2 -1
  42. package/dist/ai-service/agent/tools2/tools/bash.js.map +1 -1
  43. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  44. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +10 -2
  45. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  46. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
  47. package/dist/ai-service/agent/tools2/tools/grep.js +2 -1
  48. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
  49. package/dist/ai-service/agent/tools2/tools/ls.d.ts.map +1 -1
  50. package/dist/ai-service/agent/tools2/tools/ls.js +3 -1
  51. package/dist/ai-service/agent/tools2/tools/ls.js.map +1 -1
  52. package/dist/ai-service/agent/tools2/types.d.ts +2 -1
  53. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  54. package/dist/ai-service/agent/tools2/types.js +31 -11
  55. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  56. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  57. package/dist/ai-service/agent/utils.js +5 -10
  58. package/dist/ai-service/agent/utils.js.map +1 -1
  59. package/dist/ai-service/clark-provider/clark-chat-settings.d.ts +2 -1
  60. package/dist/ai-service/clark-provider/clark-chat-settings.d.ts.map +1 -1
  61. package/dist/ai-service/clark-provider/clark-chat-settings.js +1 -0
  62. package/dist/ai-service/clark-provider/clark-chat-settings.js.map +1 -1
  63. package/dist/ai-service/index.d.ts.map +1 -1
  64. package/dist/ai-service/index.js +7 -4
  65. package/dist/ai-service/index.js.map +1 -1
  66. package/dist/ai-service/integrations/store.d.ts +1 -0
  67. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  68. package/dist/ai-service/integrations/store.js +1 -0
  69. package/dist/ai-service/integrations/store.js.map +1 -1
  70. package/dist/ai-service/llm/client.d.ts +14 -117
  71. package/dist/ai-service/llm/client.d.ts.map +1 -1
  72. package/dist/ai-service/llm/client.js +57 -149
  73. package/dist/ai-service/llm/client.js.map +1 -1
  74. package/dist/ai-service/llm/error.d.ts +7 -2
  75. package/dist/ai-service/llm/error.d.ts.map +1 -1
  76. package/dist/ai-service/llm/error.js +17 -17
  77. package/dist/ai-service/llm/error.js.map +1 -1
  78. package/dist/ai-service/llm/impl/anthropic.d.ts.map +1 -1
  79. package/dist/ai-service/llm/impl/anthropic.js +2 -1
  80. package/dist/ai-service/llm/impl/anthropic.js.map +1 -1
  81. package/dist/ai-service/llm/impl/clark.d.ts.map +1 -1
  82. package/dist/ai-service/llm/impl/clark.js +2 -1
  83. package/dist/ai-service/llm/impl/clark.js.map +1 -1
  84. package/dist/ai-service/llm/interaction/index.d.ts +0 -64
  85. package/dist/ai-service/llm/interaction/index.d.ts.map +1 -1
  86. package/dist/ai-service/llm/interaction/index.js +0 -65
  87. package/dist/ai-service/llm/interaction/index.js.map +1 -1
  88. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  89. package/dist/ai-service/llm/provider.js +2 -6
  90. package/dist/ai-service/llm/provider.js.map +1 -1
  91. package/dist/ai-service/llm/stream/config.d.ts +56 -0
  92. package/dist/ai-service/llm/stream/config.d.ts.map +1 -0
  93. package/dist/ai-service/llm/stream/config.js +41 -0
  94. package/dist/ai-service/llm/stream/config.js.map +1 -0
  95. package/dist/ai-service/llm/stream/errors.d.ts +16 -0
  96. package/dist/ai-service/llm/stream/errors.d.ts.map +1 -0
  97. package/dist/ai-service/llm/stream/errors.js +68 -0
  98. package/dist/ai-service/llm/stream/errors.js.map +1 -0
  99. package/dist/ai-service/llm/stream/event-bus.d.ts +68 -0
  100. package/dist/ai-service/llm/stream/event-bus.d.ts.map +1 -0
  101. package/dist/ai-service/llm/stream/event-bus.js +51 -0
  102. package/dist/ai-service/llm/stream/event-bus.js.map +1 -0
  103. package/dist/ai-service/llm/stream/index.d.ts +49 -0
  104. package/dist/ai-service/llm/stream/index.d.ts.map +1 -0
  105. package/dist/ai-service/llm/stream/index.js +46 -0
  106. package/dist/ai-service/llm/stream/index.js.map +1 -0
  107. package/dist/ai-service/llm/stream/managed-stream.d.ts +25 -0
  108. package/dist/ai-service/llm/stream/managed-stream.d.ts.map +1 -0
  109. package/dist/ai-service/llm/stream/managed-stream.js +68 -0
  110. package/dist/ai-service/llm/stream/managed-stream.js.map +1 -0
  111. package/dist/ai-service/llm/stream/observer.d.ts +34 -0
  112. package/dist/ai-service/llm/stream/observer.d.ts.map +1 -0
  113. package/dist/ai-service/llm/stream/observer.js +2 -0
  114. package/dist/ai-service/llm/stream/observer.js.map +1 -0
  115. package/dist/ai-service/llm/stream/observers/context.d.ts +40 -0
  116. package/dist/ai-service/llm/stream/observers/context.d.ts.map +1 -0
  117. package/dist/ai-service/llm/stream/observers/context.js +55 -0
  118. package/dist/ai-service/llm/stream/observers/context.js.map +1 -0
  119. package/dist/ai-service/llm/stream/observers/index.d.ts +8 -0
  120. package/dist/ai-service/llm/stream/observers/index.d.ts.map +1 -0
  121. package/dist/ai-service/llm/stream/observers/index.js +8 -0
  122. package/dist/ai-service/llm/stream/observers/index.js.map +1 -0
  123. package/dist/ai-service/llm/stream/observers/llmobs.d.ts +78 -0
  124. package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -0
  125. package/dist/ai-service/llm/stream/observers/llmobs.js +504 -0
  126. package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -0
  127. package/dist/ai-service/llm/stream/observers/logging.d.ts +46 -0
  128. package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -0
  129. package/dist/ai-service/llm/stream/observers/logging.js +296 -0
  130. package/dist/ai-service/llm/stream/observers/logging.js.map +1 -0
  131. package/dist/ai-service/llm/stream/observers/retry-notification.d.ts +17 -0
  132. package/dist/ai-service/llm/stream/observers/retry-notification.d.ts.map +1 -0
  133. package/dist/ai-service/llm/stream/observers/retry-notification.js +36 -0
  134. package/dist/ai-service/llm/stream/observers/retry-notification.js.map +1 -0
  135. package/dist/ai-service/llm/stream/orchestrator.d.ts +73 -0
  136. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -0
  137. package/dist/ai-service/llm/stream/orchestrator.js +285 -0
  138. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -0
  139. package/dist/ai-service/llm/stream/retry-engine.d.ts +58 -0
  140. package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -0
  141. package/dist/ai-service/llm/stream/retry-engine.js +151 -0
  142. package/dist/ai-service/llm/stream/retry-engine.js.map +1 -0
  143. package/dist/ai-service/llm/stream/session.d.ts +58 -0
  144. package/dist/ai-service/llm/stream/session.d.ts.map +1 -0
  145. package/dist/ai-service/llm/stream/session.js +116 -0
  146. package/dist/ai-service/llm/stream/session.js.map +1 -0
  147. package/dist/ai-service/llm/stream/tests/helpers/mock-provider.d.ts +129 -0
  148. package/dist/ai-service/llm/stream/tests/helpers/mock-provider.d.ts.map +1 -0
  149. package/dist/ai-service/llm/stream/tests/helpers/mock-provider.js +508 -0
  150. package/dist/ai-service/llm/stream/tests/helpers/mock-provider.js.map +1 -0
  151. package/dist/ai-service/llm/stream/types.d.ts +15 -0
  152. package/dist/ai-service/llm/stream/types.d.ts.map +1 -0
  153. package/dist/ai-service/llm/stream/types.js +2 -0
  154. package/dist/ai-service/llm/stream/types.js.map +1 -0
  155. package/dist/ai-service/llm/types.d.ts +1 -1
  156. package/dist/ai-service/llm/types.d.ts.map +1 -1
  157. package/dist/ai-service/llmobs/helpers.d.ts +0 -19
  158. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
  159. package/dist/ai-service/llmobs/helpers.js +0 -23
  160. package/dist/ai-service/llmobs/helpers.js.map +1 -1
  161. package/dist/ai-service/llmobs/tracer.d.ts +1 -0
  162. package/dist/ai-service/llmobs/tracer.d.ts.map +1 -1
  163. package/dist/ai-service/llmobs/tracer.js +1 -0
  164. package/dist/ai-service/llmobs/tracer.js.map +1 -1
  165. package/dist/ai-service/llmobs/types.d.ts +2 -0
  166. package/dist/ai-service/llmobs/types.d.ts.map +1 -1
  167. package/dist/ai-service/llmobs/utils.d.ts.map +1 -1
  168. package/dist/ai-service/llmobs/utils.js +8 -0
  169. package/dist/ai-service/llmobs/utils.js.map +1 -1
  170. package/dist/ai-service/mcp/playwright-server.d.ts.map +1 -1
  171. package/dist/ai-service/mcp/playwright-server.js.map +1 -1
  172. package/dist/ai-service/state-machine/clark-fsm.d.ts +1 -3
  173. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  174. package/dist/ai-service/state-machine/clark-fsm.js +6 -28
  175. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  176. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  177. package/dist/ai-service/state-machine/handlers/agent-planning.js +9 -11
  178. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  179. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
  180. package/dist/ai-service/state-machine/handlers/awaiting-user.js +3 -2
  181. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
  182. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  183. package/dist/ai-service/state-machine/handlers/llm-generating.js +18 -4
  184. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  185. package/dist/ai-service/state-machine/traced-fsm.d.ts +5 -4
  186. package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
  187. package/dist/ai-service/state-machine/traced-fsm.js +25 -25
  188. package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
  189. package/dist/ai-service/types.d.ts +3 -3
  190. package/dist/ai-service/types.d.ts.map +1 -1
  191. package/dist/ai-service/types.js +10 -10
  192. package/dist/ai-service/types.js.map +1 -1
  193. package/dist/socket-manager.d.ts.map +1 -1
  194. package/dist/socket-manager.js +10 -3
  195. package/dist/socket-manager.js.map +1 -1
  196. package/dist/source-tracker.d.ts.map +1 -1
  197. package/dist/source-tracker.js +8 -0
  198. package/dist/source-tracker.js.map +1 -1
  199. package/dist/sync-service/index.d.ts +7 -2
  200. package/dist/sync-service/index.d.ts.map +1 -1
  201. package/dist/sync-service/index.js +16 -9
  202. package/dist/sync-service/index.js.map +1 -1
  203. package/package.json +11 -11
  204. package/dist/ai-service/llm/interaction/compose.d.ts +0 -71
  205. package/dist/ai-service/llm/interaction/compose.d.ts.map +0 -1
  206. package/dist/ai-service/llm/interaction/compose.js +0 -88
  207. package/dist/ai-service/llm/interaction/compose.js.map +0 -1
  208. package/dist/ai-service/llm/interaction/middleware.d.ts +0 -52
  209. package/dist/ai-service/llm/interaction/middleware.d.ts.map +0 -1
  210. package/dist/ai-service/llm/interaction/middleware.js +0 -17
  211. package/dist/ai-service/llm/interaction/middleware.js.map +0 -1
  212. package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts +0 -45
  213. package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts.map +0 -1
  214. package/dist/ai-service/llm/interaction/middlewares/llmobs.js +0 -85
  215. package/dist/ai-service/llm/interaction/middlewares/llmobs.js.map +0 -1
  216. package/dist/ai-service/llm/interaction/middlewares/logging.d.ts +0 -88
  217. package/dist/ai-service/llm/interaction/middlewares/logging.d.ts.map +0 -1
  218. package/dist/ai-service/llm/interaction/middlewares/logging.js +0 -238
  219. package/dist/ai-service/llm/interaction/middlewares/logging.js.map +0 -1
  220. package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts +0 -47
  221. package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts.map +0 -1
  222. package/dist/ai-service/llm/interaction/middlewares/profiler.js +0 -183
  223. package/dist/ai-service/llm/interaction/middlewares/profiler.js.map +0 -1
  224. package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts +0 -115
  225. package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts.map +0 -1
  226. package/dist/ai-service/llm/interaction/middlewares/stream-retry.js +0 -231
  227. package/dist/ai-service/llm/interaction/middlewares/stream-retry.js.map +0 -1
  228. package/dist/ai-service/llm/interaction/middlewares/utils/abort.d.ts +0 -41
  229. package/dist/ai-service/llm/interaction/middlewares/utils/abort.d.ts.map +0 -1
  230. package/dist/ai-service/llm/interaction/middlewares/utils/abort.js +0 -74
  231. package/dist/ai-service/llm/interaction/middlewares/utils/abort.js.map +0 -1
  232. package/dist/ai-service/llm/interaction/middlewares/utils/fallback-chain.d.ts +0 -61
  233. package/dist/ai-service/llm/interaction/middlewares/utils/fallback-chain.d.ts.map +0 -1
  234. package/dist/ai-service/llm/interaction/middlewares/utils/fallback-chain.js +0 -116
  235. package/dist/ai-service/llm/interaction/middlewares/utils/fallback-chain.js.map +0 -1
  236. package/dist/ai-service/llm/interaction/middlewares/utils/retries.d.ts +0 -47
  237. package/dist/ai-service/llm/interaction/middlewares/utils/retries.d.ts.map +0 -1
  238. package/dist/ai-service/llm/interaction/middlewares/utils/retries.js +0 -141
  239. package/dist/ai-service/llm/interaction/middlewares/utils/retries.js.map +0 -1
  240. package/dist/ai-service/llm/interaction/middlewares/utils/stall-detector.d.ts +0 -30
  241. package/dist/ai-service/llm/interaction/middlewares/utils/stall-detector.d.ts.map +0 -1
  242. package/dist/ai-service/llm/interaction/middlewares/utils/stall-detector.js +0 -36
  243. package/dist/ai-service/llm/interaction/middlewares/utils/stall-detector.js.map +0 -1
  244. package/dist/ai-service/llm/interaction/middlewares/utils/streams.d.ts +0 -42
  245. package/dist/ai-service/llm/interaction/middlewares/utils/streams.d.ts.map +0 -1
  246. package/dist/ai-service/llm/interaction/middlewares/utils/streams.js +0 -208
  247. package/dist/ai-service/llm/interaction/middlewares/utils/streams.js.map +0 -1
  248. package/dist/ai-service/llmobs/middleware/stream-text.d.ts +0 -56
  249. package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +0 -1
  250. package/dist/ai-service/llmobs/middleware/stream-text.js +0 -597
  251. package/dist/ai-service/llmobs/middleware/stream-text.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"fallback-chain.js","sourceRoot":"","sources":["../../../../../../src/ai-service/llm/interaction/middlewares/utils/fallback-chain.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Shared utilities for retry middleware.
3
- *
4
- * Contains error wrapping, retry eligibility checking, and backoff logic.
5
- */
6
- import { LLMProviderError } from "../../../error.js";
7
- import type { Logger } from "../../../../../util/logger.js";
8
- import type { BackoffStrategy } from "../../../../util/backoff-strategy.js";
9
- /**
10
- * Configuration for retry attempts.
11
- */
12
- export interface RetryConfig {
13
- maxRetries: number;
14
- maxRetriesDisplay: string;
15
- maxTotalRetryTimeMs: number | undefined;
16
- overallStartTime: number;
17
- backoffStrategy: BackoffStrategy;
18
- isRetryable: (error: unknown) => boolean;
19
- onRetry?: (error: unknown, attempt: number, delayMs: number, totalRetryTimeMs: number) => void | Promise<void>;
20
- abortSignal?: AbortSignal;
21
- logger: Logger;
22
- errorContext: string;
23
- }
24
- /**
25
- * Wraps an error in LLMProviderError if it isn't already.
26
- * Also detects NoOutput errors and sets the appropriate type.
27
- */
28
- export declare function wrapError(err: unknown, provider?: string): LLMProviderError;
29
- /**
30
- * Default function to determine if an error is retryable.
31
- * Delegates to LLMProviderError.isRetryable if available.
32
- */
33
- export declare function defaultIsRetryable(error: unknown): boolean;
34
- /**
35
- * Checks if retry is allowed and executes retry logic.
36
- * Returns the delay in milliseconds if a retry should be attempted.
37
- * Throws if no retry is possible.
38
- *
39
- * @param error - The error that triggered the retry
40
- * @param attempt - The current attempt number (1-indexed)
41
- * @param totalRetryTimeMs - Total time spent on retries so far
42
- * @param config - Retry configuration
43
- * @returns The delay before the retry (after waiting)
44
- * @throws If retry is not allowed (non-retryable error, max retries, timeout)
45
- */
46
- export declare function handleRetryAttempt(error: LLMProviderError, attempt: number, totalRetryTimeMs: number, config: RetryConfig): Promise<number>;
47
- //# sourceMappingURL=retries.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retries.d.ts","sourceRoot":"","sources":["../../../../../../src/ai-service/llm/interaction/middlewares/utils/retries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACzC,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,KACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,gBAAgB,CA+B3E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQ1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,CAAC,CAuEjB"}
@@ -1,141 +0,0 @@
1
- /**
2
- * Shared utilities for retry middleware.
3
- *
4
- * Contains error wrapping, retry eligibility checking, and backoff logic.
5
- */
6
- import { InvalidToolInputError } from "ai";
7
- import { getErrorMeta } from "../../../../../util/logger.js";
8
- import { LLMProviderError, isNoOutputError } from "../../../error.js";
9
- /**
10
- * Wraps an error in LLMProviderError if it isn't already.
11
- * Also detects NoOutput errors and sets the appropriate type.
12
- */
13
- export function wrapError(err, provider) {
14
- if (err instanceof LLMProviderError) {
15
- return err;
16
- }
17
- // Check for NoOutput error and wrap with appropriate type
18
- if (isNoOutputError(err)) {
19
- return new LLMProviderError({
20
- provider: provider,
21
- message: err instanceof Error ? err.message : "No output generated by model",
22
- type: "no_output",
23
- isRetryable: true,
24
- cause: err,
25
- });
26
- }
27
- if (InvalidToolInputError.isInstance(err)) {
28
- return new LLMProviderError({
29
- provider: provider,
30
- message: err.message,
31
- type: "invalid_tool_input",
32
- isRetryable: true,
33
- cause: err,
34
- });
35
- }
36
- return new LLMProviderError({
37
- provider: provider,
38
- cause: err,
39
- });
40
- }
41
- /**
42
- * Default function to determine if an error is retryable.
43
- * Delegates to LLMProviderError.isRetryable if available.
44
- */
45
- export function defaultIsRetryable(error) {
46
- if (LLMProviderError.isInstance(error)) {
47
- return error.isRetryable;
48
- }
49
- // For thrown errors or unstructured errors, be permissive and retry
50
- // These might be network issues, timeouts, or other transient problems
51
- return true;
52
- }
53
- /**
54
- * Checks if retry is allowed and executes retry logic.
55
- * Returns the delay in milliseconds if a retry should be attempted.
56
- * Throws if no retry is possible.
57
- *
58
- * @param error - The error that triggered the retry
59
- * @param attempt - The current attempt number (1-indexed)
60
- * @param totalRetryTimeMs - Total time spent on retries so far
61
- * @param config - Retry configuration
62
- * @returns The delay before the retry (after waiting)
63
- * @throws If retry is not allowed (non-retryable error, max retries, timeout)
64
- */
65
- export async function handleRetryAttempt(error, attempt, totalRetryTimeMs, config) {
66
- config.logger.debug(`totalRetryTimeMs: ${totalRetryTimeMs}`);
67
- // Check abort signal
68
- if (config.abortSignal?.aborted) {
69
- const abortError = new LLMProviderError({
70
- provider: error.provider,
71
- message: "Request aborted",
72
- type: "aborted",
73
- isRetryable: false,
74
- });
75
- config.logger.info("Request aborted, stopping retry attempts");
76
- throw abortError;
77
- }
78
- // Check retry conditions
79
- const withinMaxRetries = attempt <= config.maxRetries;
80
- const withinTimeLimit = !config.maxTotalRetryTimeMs ||
81
- totalRetryTimeMs < config.maxTotalRetryTimeMs;
82
- const errorIsRetryable = config.isRetryable(error);
83
- const canRetry = errorIsRetryable && withinMaxRetries && withinTimeLimit;
84
- if (!canRetry) {
85
- if (errorIsRetryable) {
86
- const reason = !withinMaxRetries
87
- ? `after ${config.maxRetriesDisplay} retries`
88
- : `total retry time exceeded ${config.maxTotalRetryTimeMs}ms`;
89
- config.logger.error(`Exceeded retry limits: ${reason}`, getErrorMeta(error));
90
- throw new LLMProviderError({
91
- provider: error.provider,
92
- message: `${config.errorContext} ${reason}`,
93
- type: "retries_exhausted",
94
- isRetryable: false,
95
- cause: error,
96
- });
97
- }
98
- config.logger.error("Non-retryable error encountered", getErrorMeta(error));
99
- throw error;
100
- }
101
- const delay = config.backoffStrategy.getNextDelay(attempt);
102
- config.logger.warn(`${config.errorContext} (type: ${error.type}). Attempt ${attempt}/${config.maxRetriesDisplay}. Retrying in ${delay}ms... Error: ${JSON.stringify(error)}`);
103
- if (config.onRetry) {
104
- await config.onRetry(error, attempt, delay, totalRetryTimeMs);
105
- }
106
- // Wait before retry, but allow immediate cancellation via abort signal
107
- await abortableDelay(delay, config.abortSignal);
108
- // Check if aborted during delay
109
- if (config.abortSignal?.aborted) {
110
- const abortError = new LLMProviderError({
111
- provider: error.provider,
112
- message: "Request aborted during retry delay",
113
- type: "aborted",
114
- isRetryable: false,
115
- });
116
- config.logger.info("Request aborted during retry delay");
117
- throw abortError;
118
- }
119
- return delay;
120
- }
121
- /**
122
- * Returns a promise that resolves after the specified delay,
123
- * but can be interrupted early by an abort signal.
124
- *
125
- * @param delayMs - The delay in milliseconds
126
- * @param abortSignal - Optional abort signal to cancel the delay
127
- */
128
- function abortableDelay(delayMs, abortSignal) {
129
- return new Promise((resolve) => {
130
- if (abortSignal?.aborted) {
131
- resolve();
132
- return;
133
- }
134
- const timeoutId = setTimeout(resolve, delayMs);
135
- abortSignal?.addEventListener("abort", () => {
136
- clearTimeout(timeoutId);
137
- resolve();
138
- }, { once: true });
139
- });
140
- }
141
- //# sourceMappingURL=retries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retries.js","sourceRoot":"","sources":["../../../../../../src/ai-service/llm/interaction/middlewares/utils/retries.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { LLMProviderError } from "../../../error.js";
2
- export interface StallDetectorConfig {
3
- stallTimeoutMs: number;
4
- enabled: boolean;
5
- }
6
- /**
7
- * Result of waiting for the next chunk with stall detection.
8
- */
9
- export type StallDetectorResult<T> = {
10
- type: "chunk";
11
- value: IteratorResult<T>;
12
- } | {
13
- type: "stall";
14
- durationMs: number;
15
- };
16
- /**
17
- * Waits for the next chunk from an iterator with a timeout.
18
- * If the timeout expires before a chunk arrives, returns a stall result.
19
- *
20
- * @param iterator - The async iterator to get the next chunk from
21
- * @param config - Stall detector configuration
22
- * @param lastChunkTime - Timestamp of the last received chunk (for duration calculation)
23
- * @returns Either the chunk result or a stall indication
24
- */
25
- export declare function waitForNextChunkWithStallDetection<T>(iterator: AsyncIterator<T>, config: StallDetectorConfig, lastChunkTime: number): Promise<StallDetectorResult<T>>;
26
- /**
27
- * Creates an LLMProviderError for a stream stall.
28
- */
29
- export declare function createStallError(stallDurationMs: number): LLMProviderError;
30
- //# sourceMappingURL=stall-detector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stall-detector.d.ts","sourceRoot":"","sources":["../../../../../../src/ai-service/llm/interaction/middlewares/utils/stall-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAC7B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C;;;;;;;;GAQG;AACH,wBAAsB,kCAAkC,CAAC,CAAC,EACxD,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,mBAAmB,EAC3B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAmBjC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,gBAAgB,CAO1E"}
@@ -1,36 +0,0 @@
1
- import { LLMProviderError } from "../../../error.js";
2
- /**
3
- * Waits for the next chunk from an iterator with a timeout.
4
- * If the timeout expires before a chunk arrives, returns a stall result.
5
- *
6
- * @param iterator - The async iterator to get the next chunk from
7
- * @param config - Stall detector configuration
8
- * @param lastChunkTime - Timestamp of the last received chunk (for duration calculation)
9
- * @returns Either the chunk result or a stall indication
10
- */
11
- export async function waitForNextChunkWithStallDetection(iterator, config, lastChunkTime) {
12
- if (!config.enabled) {
13
- // Stall detection disabled - just wait for the chunk
14
- const result = await iterator.next();
15
- return { type: "chunk", value: result };
16
- }
17
- const timeoutPromise = new Promise((resolve) => setTimeout(() => resolve("stall"), config.stallTimeoutMs));
18
- const raceResult = await Promise.race([iterator.next(), timeoutPromise]);
19
- if (raceResult === "stall") {
20
- const stallDuration = Date.now() - lastChunkTime;
21
- return { type: "stall", durationMs: stallDuration };
22
- }
23
- return { type: "chunk", value: raceResult };
24
- }
25
- /**
26
- * Creates an LLMProviderError for a stream stall.
27
- */
28
- export function createStallError(stallDurationMs) {
29
- return new LLMProviderError({
30
- provider: "unified",
31
- message: `Stream stalled for ${stallDurationMs}ms`,
32
- type: "stream_stall",
33
- isRetryable: true,
34
- });
35
- }
36
- //# sourceMappingURL=stall-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stall-detector.js","sourceRoot":"","sources":["../../../../../../src/ai-service/llm/interaction/middlewares/utils/stall-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAcrD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,QAA0B,EAC1B,MAA2B,EAC3B,aAAqB;IAErB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,qDAAqD;QACrD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CACtD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAC1D,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAEzE,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IACtD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAA+B,EAAE,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,eAAuB;IACtD,OAAO,IAAI,gBAAgB,CAAC;QAC1B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,sBAAsB,eAAe,IAAI;QAClD,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Retrying async iterable stream for stream retry middleware.
3
- *
4
- * This module creates an AsyncIterableStream that automatically retries
5
- * on consumption errors, with optional stall detection and provider fallback.
6
- */
7
- import type { FallbackState, FallbackConfig } from "./fallback-chain.js";
8
- import type { Logger } from "../../../../../util/logger.js";
9
- import type { BackoffStrategy } from "../../../../util/backoff-strategy.js";
10
- import type { AsyncIterableStream, TextStreamPart } from "ai";
11
- /**
12
- * Configuration for creating a retrying async iterable.
13
- */
14
- export interface RetryingStreamConfig {
15
- maxRetries: number;
16
- maxRetriesDisplay: string;
17
- maxTotalRetryTimeMs: number | undefined;
18
- overallStartTime: number;
19
- backoffStrategy: BackoffStrategy;
20
- isRetryable: (error: unknown) => boolean;
21
- onRetry?: (error: unknown, attempt: number, delayMs: number, totalRetryTimeMs: number) => void | Promise<void>;
22
- abortSignal?: AbortSignal;
23
- logger: Logger;
24
- fallbackState: FallbackState | null;
25
- fallbackConfig: FallbackConfig | undefined;
26
- stallTimeoutMs: number;
27
- retryOnStall: boolean;
28
- /** Called when stream completes successfully (after any retries) */
29
- onStreamComplete?: () => void | Promise<void>;
30
- /** Called when stream fails and all retries are exhausted */
31
- onStreamFailed?: (error: unknown) => void | Promise<void>;
32
- }
33
- /**
34
- * Creates an AsyncIterableStream that retries on consumption errors,
35
- * with optional stall detection for fallback.
36
- *
37
- * @param getStream - Function to get a fresh stream for each attempt
38
- * @param config - Retry and fallback configuration
39
- * @returns An AsyncIterableStream that automatically retries on errors
40
- */
41
- export declare function createRetryingAsyncIterable<T extends string | TextStreamPart<any>>(getStream: (isInitial: boolean, abortSignal?: AbortSignal) => Promise<AsyncIterableStream<T>>, config: RetryingStreamConfig): AsyncIterableStream<T>;
42
- //# sourceMappingURL=streams.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../../../../../src/ai-service/llm/interaction/middlewares/utils/streams.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACzC,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,KACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IAEtB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,6DAA6D;IAC7D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAqCD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,SAAS,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,EAEtC,SAAS,EAAE,CACT,SAAS,EAAE,OAAO,EAClB,WAAW,CAAC,EAAE,WAAW,KACtB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EACpC,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CAAC,CAAC,CAAC,CAiNxB"}
@@ -1,208 +0,0 @@
1
- /**
2
- * Retrying async iterable stream for stream retry middleware.
3
- *
4
- * This module creates an AsyncIterableStream that automatically retries
5
- * on consumption errors, with optional stall detection and provider fallback.
6
- */
7
- import { getErrorMeta } from "../../../../../util/logger.js";
8
- import { LLMProviderError } from "../../../error.js";
9
- import { AttemptAbortManager } from "./abort.js";
10
- import { advanceFallback } from "./fallback-chain.js";
11
- import { wrapError, handleRetryAttempt } from "./retries.js";
12
- import { waitForNextChunkWithStallDetection, createStallError, } from "./stall-detector.js";
13
- /**
14
- * Chunk types that indicate meaningful progress from the LLM.
15
- * These warrant resetting the retry counter because we're making real progress.
16
- *
17
- * Excluded chunk types (don't reset retry):
18
- * - Start markers: text-start, reasoning-start, tool-input-start, start-step, start
19
- * - End markers without content: text-end, reasoning-end, tool-input-end
20
- * - Errors: error, tool-error, abort
21
- * - Unknown: raw
22
- */
23
- const PROGRESS_CHUNK_TYPES = new Set([
24
- "text-delta",
25
- "reasoning-delta",
26
- "tool-input-delta",
27
- "tool-call",
28
- "tool-result",
29
- "source",
30
- "file",
31
- "finish-step",
32
- "finish",
33
- ]);
34
- /**
35
- * Checks if a chunk indicates meaningful progress from the LLM.
36
- * Progress chunks reset the retry counter because they indicate the stream is working.
37
- */
38
- function isProgressChunk(chunk) {
39
- if (typeof chunk === "string") {
40
- return true;
41
- }
42
- return PROGRESS_CHUNK_TYPES.has(chunk.type);
43
- }
44
- /**
45
- * Creates an AsyncIterableStream that retries on consumption errors,
46
- * with optional stall detection for fallback.
47
- *
48
- * @param getStream - Function to get a fresh stream for each attempt
49
- * @param config - Retry and fallback configuration
50
- * @returns An AsyncIterableStream that automatically retries on errors
51
- */
52
- export function createRetryingAsyncIterable(getStream, config) {
53
- const { fallbackState, stallTimeoutMs, retryOnStall, logger, onStreamComplete, onStreamFailed, } = config;
54
- const retryingIterable = {
55
- async *[Symbol.asyncIterator]() {
56
- let consumptionAttempt = 0;
57
- let totalRetryTimeMs = 0;
58
- let isFirstAttempt = true;
59
- // Metrics for logging
60
- let chunkCount = 0;
61
- let totalChunkLatency = 0;
62
- const streamStartTime = Date.now();
63
- const CHUNK_LOG_INTERVAL = 50;
64
- // Manages per-attempt abort controllers
65
- const abortManager = new AttemptAbortManager(config.abortSignal);
66
- while (true) {
67
- // Exit immediately if external abort signal fired - never retry external aborts
68
- if (abortManager.isExternallyAborted()) {
69
- logger.info("[stream] external abort signal triggered, stopping retries");
70
- const abortError = new LLMProviderError({
71
- provider: "unified",
72
- message: "Request aborted",
73
- type: "aborted",
74
- isRetryable: false,
75
- });
76
- await onStreamFailed?.(abortError);
77
- yield {
78
- type: "error",
79
- error: abortError,
80
- };
81
- return;
82
- }
83
- // Start new attempt (aborts previous attempt if any)
84
- const attemptAbortSignal = abortManager.startNewAttempt();
85
- let iterator = null;
86
- try {
87
- iterator = (await getStream(isFirstAttempt, attemptAbortSignal))[Symbol.asyncIterator]();
88
- isFirstAttempt = false;
89
- let lastChunkTime = Date.now();
90
- while (true) {
91
- const chunkStartTime = Date.now();
92
- // Wait for next chunk with optional stall detection
93
- const stallResult = await waitForNextChunkWithStallDetection(iterator, {
94
- enabled: retryOnStall && !!fallbackState,
95
- stallTimeoutMs,
96
- }, lastChunkTime);
97
- if (stallResult.type === "stall") {
98
- logger.warn(`[stream] stall detected: stallDuration=${stallResult.durationMs}ms timeout=${stallTimeoutMs}ms chunkCount=${chunkCount}`);
99
- throw createStallError(stallResult.durationMs);
100
- }
101
- const result = stallResult.value;
102
- if (result.done) {
103
- const totalDuration = Date.now() - streamStartTime;
104
- const avgLatency = chunkCount > 0 ? totalChunkLatency / chunkCount : 0;
105
- logger.info(`[stream] completed: chunks=${chunkCount} totalDuration=${totalDuration}ms avgChunkLatency=${avgLatency.toFixed(1)}ms`);
106
- void onStreamComplete?.();
107
- return;
108
- }
109
- const chunk = result.value;
110
- const chunkLatency = Date.now() - chunkStartTime;
111
- chunkCount++;
112
- totalChunkLatency += chunkLatency;
113
- lastChunkTime = Date.now();
114
- if (chunkCount % CHUNK_LOG_INTERVAL === 0) {
115
- const avgLatency = totalChunkLatency / chunkCount;
116
- logger.debug(`[stream] chunk timing: count=${chunkCount} lastLatency=${chunkLatency}ms avgLatency=${avgLatency.toFixed(1)}ms`);
117
- }
118
- // Check for error chunks
119
- if (typeof chunk !== "string" && chunk.type === "error") {
120
- const errorChunk = chunk;
121
- logger.error(`[stream] error chunk received after ${chunkCount} chunks: ${typeof errorChunk.error === "object" ? JSON.stringify(errorChunk.error) : String(errorChunk.error)}`);
122
- throw wrapError(errorChunk.error);
123
- }
124
- yield chunk;
125
- // Reset consumption attempt on successful progress chunk
126
- if (isProgressChunk(chunk)) {
127
- consumptionAttempt = 0;
128
- totalRetryTimeMs = 0;
129
- }
130
- }
131
- }
132
- catch (err) {
133
- const error = wrapError(err);
134
- // Abort current stream and clean up
135
- abortManager.abortCurrentAttempt();
136
- if (iterator) {
137
- // Fire-and-forget: don't await since abort signal already triggered cancellation.
138
- // Waiting for return() can block on server-side stream termination.
139
- void iterator.return?.().catch(() => { });
140
- }
141
- consumptionAttempt++;
142
- // Advance fallback state on error
143
- if (fallbackState) {
144
- const reason = error.type === "stream_stall"
145
- ? "stall"
146
- : error.type === "no_output"
147
- ? "no_output"
148
- : "error";
149
- advanceFallback(fallbackState, reason, logger);
150
- }
151
- try {
152
- const delay = await handleRetryAttempt(error, consumptionAttempt, totalRetryTimeMs, {
153
- ...config,
154
- errorContext: "Stream error",
155
- });
156
- totalRetryTimeMs += delay;
157
- // Loop continues - will try again with fresh stream
158
- }
159
- catch (finalError) {
160
- logger.error("[stream] failed after all retries", getErrorMeta(finalError));
161
- await onStreamFailed?.(finalError);
162
- yield {
163
- type: "error",
164
- error: finalError,
165
- };
166
- return;
167
- }
168
- }
169
- }
170
- },
171
- };
172
- // Convert AsyncIterable to ReadableStream
173
- let streamClosed = false;
174
- const readableStream = new ReadableStream({
175
- async start(controller) {
176
- try {
177
- for await (const chunk of retryingIterable) {
178
- // Guard against enqueue after stream has been cancelled
179
- if (streamClosed) {
180
- return;
181
- }
182
- controller.enqueue(chunk);
183
- }
184
- if (!streamClosed) {
185
- controller.close();
186
- }
187
- }
188
- catch {
189
- // The error is already yielded as an error chunk by the retry loop,
190
- // so we just close the stream normally rather than erroring it
191
- if (!streamClosed) {
192
- try {
193
- controller.close();
194
- }
195
- catch {
196
- // Controller may already be closed/errored, ignore
197
- }
198
- }
199
- }
200
- },
201
- cancel(reason) {
202
- logger.info(`ReadableStream cancelled: ${reason ?? "no reason"}`);
203
- streamClosed = true;
204
- },
205
- });
206
- return readableStream;
207
- }
208
- //# sourceMappingURL=streams.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streams.js","sourceRoot":"","sources":["../../../../../../src/ai-service/llm/interaction/middlewares/utils/streams.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import { type Logger } from "../../../util/logger.js";
2
- import { LLMObsTracer, type LLMObsSpan } from "../index.js";
3
- import type { Tool } from "../../agent/tools2/types.js";
4
- import type { StepParameters, StreamChunk, FinalResult } from "../../llm/interaction/provider.js";
5
- import type { LanguageModelV2 } from "@ai-sdk/provider";
6
- import type { StepResult, AsyncIterableStream } from "ai";
7
- type StreamSegment = {
8
- type: "text" | "reasoning" | "tool-call" | "tool-result" | "tool-input" | "raw" | "thinking" | "source";
9
- span: LLMObsSpan;
10
- content: string | {
11
- [key: string]: any;
12
- } | undefined;
13
- };
14
- export declare class LLMObsStreamTextMiddleware<TOOLS extends Record<string, Tool>> {
15
- fullSpan?: LLMObsSpan;
16
- stepSpan?: LLMObsSpan;
17
- currentSegment?: StreamSegment;
18
- model: LanguageModelV2;
19
- tools?: TOOLS;
20
- stepResults: StepResult<any>[];
21
- llmobs: LLMObsTracer;
22
- logger: Logger;
23
- private errorLogged;
24
- constructor(model: LanguageModelV2, tools?: TOOLS, llmobs?: LLMObsTracer, logger?: Logger);
25
- /**
26
- * Handles stream errors by logging and finishing spans.
27
- * Public so it can be called from stream wrappers.
28
- */
29
- handleStreamError(error: unknown): void;
30
- wrapTools(tools: TOOLS): TOOLS;
31
- prepareStep(step: StepParameters<TOOLS>, next?: (step: StepParameters<TOOLS>) => Promise<StepParameters<TOOLS>> | StepParameters<TOOLS>): Promise<StepParameters<TOOLS>>;
32
- onChunk(chunk: StreamChunk, next?: (event: {
33
- chunk: StreamChunk;
34
- }) => Promise<void> | void): Promise<void>;
35
- onStepFinish(step: StepResult<TOOLS>, next?: (step: StepResult<TOOLS>) => Promise<void> | void): Promise<void>;
36
- onError(error: Error, next?: (error: Error) => Promise<void> | void): Promise<void>;
37
- onAbort(next?: () => Promise<void> | void): Promise<void>;
38
- onFinish(result: FinalResult<TOOLS>, next?: (result: FinalResult<TOOLS>) => Promise<void> | void): Promise<void>;
39
- onFinally(): Promise<void>;
40
- private handleToolExecuteStart;
41
- private logStreamError;
42
- private ensureSegment;
43
- private appendTextToCurrentSegment;
44
- private appendToolInputDelta;
45
- private isTextualSegment;
46
- private getSegmentType;
47
- private startSegment;
48
- private finishSegment;
49
- private startStepSpan;
50
- private finishStepSpan;
51
- private startFullSpan;
52
- private finishFullSpan;
53
- }
54
- export declare function wrapStream<T>(source: AsyncIterable<T>, onError: (err: unknown) => Promise<void>, onFinally: () => Promise<void>): AsyncIterableStream<T>;
55
- export {};
56
- //# sourceMappingURL=stream-text.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream-text.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llmobs/middleware/stream-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,EACL,YAAY,EAIZ,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,WAAW,EACZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAEV,UAAU,EACV,mBAAmB,EAMpB,MAAM,IAAI,CAAC;AAIZ,KAAK,aAAa,GAAG;IACnB,IAAI,EACA,MAAM,GACN,WAAW,GACX,WAAW,GACX,aAAa,GACb,YAAY,GACZ,KAAK,GACL,UAAU,GACV,QAAQ,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;CACtD,CAAC;AAEF,qBAAa,0BAA0B,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAM;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,WAAW,CAAS;gBAG1B,KAAK,EAAE,eAAe,EACtB,KAAK,CAAC,EAAE,KAAK,EACb,MAAM,GAAE,YAAoC,EAC5C,MAAM,GAAE,MAAoB;IAQ9B;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAUvC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAuCxB,WAAW,CACf,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAC3B,IAAI,CAAC,EAAE,CACL,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,KACxB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAC1D,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAkB3B,OAAO,CACX,KAAK,EAAE,WAAW,EAClB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAC7D,OAAO,CAAC,IAAI,CAAC;IAkCV,YAAY,CAChB,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EACvB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACvD,OAAO,CAAC,IAAI,CAAC;IAoBV,OAAO,CACX,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC;IAWV,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzD,QAAQ,CACZ,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,EAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAC1D,OAAO,CAAC,IAAI,CAAC;IAUV,SAAS;IAIf,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,cAAc;IAsCtB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,cAAc;CA6BvB;AAsOD,wBAAgB,UAAU,CAAC,CAAC,EAC1B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,EACxC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC7B,mBAAmB,CAAC,CAAC,CAAC,CAkCxB"}