@tanstack/ai 0.42.0 → 0.43.1

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 (273) hide show
  1. package/README.md +15 -1
  2. package/dist/esm/activities/chat/adapter.js +23 -16
  3. package/dist/esm/activities/chat/adapter.js.map +1 -1
  4. package/dist/esm/activities/chat/agent-loop-strategies.d.ts +5 -36
  5. package/dist/esm/activities/chat/agent-loop-strategies.js +75 -21
  6. package/dist/esm/activities/chat/agent-loop-strategies.js.map +1 -1
  7. package/dist/esm/activities/chat/cancel.d.ts +40 -0
  8. package/dist/esm/activities/chat/cancel.js +54 -0
  9. package/dist/esm/activities/chat/cancel.js.map +1 -0
  10. package/dist/esm/activities/chat/index.d.ts +28 -21
  11. package/dist/esm/activities/chat/index.js +2100 -1813
  12. package/dist/esm/activities/chat/index.js.map +1 -1
  13. package/dist/esm/activities/chat/mcp/manager.d.ts +2 -2
  14. package/dist/esm/activities/chat/mcp/manager.js +90 -77
  15. package/dist/esm/activities/chat/mcp/manager.js.map +1 -1
  16. package/dist/esm/activities/chat/mcp/types.d.ts +2 -2
  17. package/dist/esm/activities/chat/messages.js +397 -346
  18. package/dist/esm/activities/chat/messages.js.map +1 -1
  19. package/dist/esm/activities/chat/middleware/builder.js +17 -15
  20. package/dist/esm/activities/chat/middleware/builder.js.map +1 -1
  21. package/dist/esm/activities/chat/middleware/capabilities.js +78 -43
  22. package/dist/esm/activities/chat/middleware/capabilities.js.map +1 -1
  23. package/dist/esm/activities/chat/middleware/compose.d.ts +94 -1
  24. package/dist/esm/activities/chat/middleware/compose.js +623 -531
  25. package/dist/esm/activities/chat/middleware/compose.js.map +1 -1
  26. package/dist/esm/activities/chat/middleware/define.js +12 -5
  27. package/dist/esm/activities/chat/middleware/define.js.map +1 -1
  28. package/dist/esm/activities/chat/middleware/index.d.ts +5 -1
  29. package/dist/esm/activities/chat/middleware/locks.d.ts +50 -0
  30. package/dist/esm/activities/chat/middleware/locks.js +71 -0
  31. package/dist/esm/activities/chat/middleware/locks.js.map +1 -0
  32. package/dist/esm/activities/chat/middleware/pending-turn.d.ts +15 -0
  33. package/dist/esm/activities/chat/middleware/pending-turn.js +35 -0
  34. package/dist/esm/activities/chat/middleware/pending-turn.js.map +1 -0
  35. package/dist/esm/activities/chat/middleware/run-disconnect.d.ts +23 -0
  36. package/dist/esm/activities/chat/middleware/run-disconnect.js +42 -0
  37. package/dist/esm/activities/chat/middleware/run-disconnect.js.map +1 -0
  38. package/dist/esm/activities/chat/middleware/run-store.d.ts +283 -0
  39. package/dist/esm/activities/chat/middleware/run-store.js +176 -0
  40. package/dist/esm/activities/chat/middleware/run-store.js.map +1 -0
  41. package/dist/esm/activities/chat/middleware/sandbox-runtime.js +14 -8
  42. package/dist/esm/activities/chat/middleware/sandbox-runtime.js.map +1 -1
  43. package/dist/esm/activities/chat/middleware/tool-cache-middleware.js +79 -70
  44. package/dist/esm/activities/chat/middleware/tool-cache-middleware.js.map +1 -1
  45. package/dist/esm/activities/chat/middleware/types.d.ts +59 -2
  46. package/dist/esm/activities/chat/middleware/validate.js +23 -28
  47. package/dist/esm/activities/chat/middleware/validate.js.map +1 -1
  48. package/dist/esm/activities/chat/stream/json-parser.js +39 -25
  49. package/dist/esm/activities/chat/stream/json-parser.js.map +1 -1
  50. package/dist/esm/activities/chat/stream/message-updaters.js +275 -234
  51. package/dist/esm/activities/chat/stream/message-updaters.js.map +1 -1
  52. package/dist/esm/activities/chat/stream/processor.d.ts +24 -4
  53. package/dist/esm/activities/chat/stream/processor.js +1341 -1542
  54. package/dist/esm/activities/chat/stream/processor.js.map +1 -1
  55. package/dist/esm/activities/chat/stream/strategies.js +69 -53
  56. package/dist/esm/activities/chat/stream/strategies.js.map +1 -1
  57. package/dist/esm/activities/chat/tools/approval-schema.d.ts +19 -0
  58. package/dist/esm/activities/chat/tools/approval-schema.js +117 -0
  59. package/dist/esm/activities/chat/tools/approval-schema.js.map +1 -0
  60. package/dist/esm/activities/chat/tools/lazy-tool-manager.js +164 -191
  61. package/dist/esm/activities/chat/tools/lazy-tool-manager.js.map +1 -1
  62. package/dist/esm/activities/chat/tools/lazy-tools.js +24 -12
  63. package/dist/esm/activities/chat/tools/lazy-tools.js.map +1 -1
  64. package/dist/esm/activities/chat/tools/schema-converter.js +293 -146
  65. package/dist/esm/activities/chat/tools/schema-converter.js.map +1 -1
  66. package/dist/esm/activities/chat/tools/tool-calls.d.ts +18 -2
  67. package/dist/esm/activities/chat/tools/tool-calls.js +522 -531
  68. package/dist/esm/activities/chat/tools/tool-calls.js.map +1 -1
  69. package/dist/esm/activities/chat/tools/tool-definition.d.ts +75 -16
  70. package/dist/esm/activities/chat/tools/tool-definition.js +95 -23
  71. package/dist/esm/activities/chat/tools/tool-definition.js.map +1 -1
  72. package/dist/esm/activities/error-payload.js +85 -47
  73. package/dist/esm/activities/error-payload.js.map +1 -1
  74. package/dist/esm/activities/generateAudio/adapter.js +22 -15
  75. package/dist/esm/activities/generateAudio/adapter.js.map +1 -1
  76. package/dist/esm/activities/generateAudio/index.d.ts +4 -0
  77. package/dist/esm/activities/generateAudio/index.js +141 -105
  78. package/dist/esm/activities/generateAudio/index.js.map +1 -1
  79. package/dist/esm/activities/generateImage/adapter.js +22 -15
  80. package/dist/esm/activities/generateImage/adapter.js.map +1 -1
  81. package/dist/esm/activities/generateImage/index.d.ts +4 -0
  82. package/dist/esm/activities/generateImage/index.js +155 -111
  83. package/dist/esm/activities/generateImage/index.js.map +1 -1
  84. package/dist/esm/activities/generateSpeech/adapter.js +22 -15
  85. package/dist/esm/activities/generateSpeech/adapter.js.map +1 -1
  86. package/dist/esm/activities/generateSpeech/index.d.ts +4 -0
  87. package/dist/esm/activities/generateSpeech/index.js +159 -110
  88. package/dist/esm/activities/generateSpeech/index.js.map +1 -1
  89. package/dist/esm/activities/generateTranscription/adapter.js +22 -15
  90. package/dist/esm/activities/generateTranscription/adapter.js.map +1 -1
  91. package/dist/esm/activities/generateTranscription/index.d.ts +4 -0
  92. package/dist/esm/activities/generateTranscription/index.js +159 -100
  93. package/dist/esm/activities/generateTranscription/index.js.map +1 -1
  94. package/dist/esm/activities/generateVideo/adapter.js +36 -29
  95. package/dist/esm/activities/generateVideo/adapter.js.map +1 -1
  96. package/dist/esm/activities/generateVideo/index.d.ts +143 -19
  97. package/dist/esm/activities/generateVideo/index.js +456 -279
  98. package/dist/esm/activities/generateVideo/index.js.map +1 -1
  99. package/dist/esm/activities/generateVideo/snap.js +60 -48
  100. package/dist/esm/activities/generateVideo/snap.js.map +1 -1
  101. package/dist/esm/activities/index.js +8 -34
  102. package/dist/esm/activities/middleware/index.d.ts +1 -1
  103. package/dist/esm/activities/middleware/run.d.ts +10 -0
  104. package/dist/esm/activities/middleware/run.js +53 -29
  105. package/dist/esm/activities/middleware/run.js.map +1 -1
  106. package/dist/esm/activities/middleware/types.d.ts +44 -6
  107. package/dist/esm/activities/stream-generation-result.d.ts +4 -1
  108. package/dist/esm/activities/stream-generation-result.js +79 -44
  109. package/dist/esm/activities/stream-generation-result.js.map +1 -1
  110. package/dist/esm/activities/summarize/adapter.js +22 -15
  111. package/dist/esm/activities/summarize/adapter.js.map +1 -1
  112. package/dist/esm/activities/summarize/chat-stream-summarize.js +252 -202
  113. package/dist/esm/activities/summarize/chat-stream-summarize.js.map +1 -1
  114. package/dist/esm/activities/summarize/index.d.ts +27 -0
  115. package/dist/esm/activities/summarize/index.js +268 -102
  116. package/dist/esm/activities/summarize/index.js.map +1 -1
  117. package/dist/esm/adapter-internals.d.ts +2 -1
  118. package/dist/esm/adapter-internals.js +4 -11
  119. package/dist/esm/client.d.ts +25 -3
  120. package/dist/esm/client.js +131 -64
  121. package/dist/esm/client.js.map +1 -1
  122. package/dist/esm/custom-events.d.ts +76 -0
  123. package/dist/esm/custom-events.js +37 -0
  124. package/dist/esm/custom-events.js.map +1 -0
  125. package/dist/esm/delivery-detach.d.ts +50 -0
  126. package/dist/esm/delivery-detach.js +71 -0
  127. package/dist/esm/delivery-detach.js.map +1 -0
  128. package/dist/esm/delivery-disconnect.d.ts +62 -0
  129. package/dist/esm/delivery-disconnect.js +81 -0
  130. package/dist/esm/delivery-disconnect.js.map +1 -0
  131. package/dist/esm/extend-adapter.js +19 -17
  132. package/dist/esm/extend-adapter.js.map +1 -1
  133. package/dist/esm/index.d.ts +24 -6
  134. package/dist/esm/index.js +30 -98
  135. package/dist/esm/interrupt-resume.d.ts +71 -0
  136. package/dist/esm/interrupt-resume.js +438 -0
  137. package/dist/esm/interrupt-resume.js.map +1 -0
  138. package/dist/esm/interrupt-serialization.d.ts +12 -0
  139. package/dist/esm/interrupt-serialization.js +178 -0
  140. package/dist/esm/interrupt-serialization.js.map +1 -0
  141. package/dist/esm/interrupts.d.ts +84 -0
  142. package/dist/esm/interrupts.js +31 -0
  143. package/dist/esm/interrupts.js.map +1 -0
  144. package/dist/esm/locks.d.ts +10 -0
  145. package/dist/esm/locks.js +2 -0
  146. package/dist/esm/logger/console-logger.js +101 -78
  147. package/dist/esm/logger/console-logger.js.map +1 -1
  148. package/dist/esm/logger/internal-logger.js +104 -89
  149. package/dist/esm/logger/internal-logger.js.map +1 -1
  150. package/dist/esm/logger/resolve.js +54 -49
  151. package/dist/esm/logger/resolve.js.map +1 -1
  152. package/dist/esm/logger/types.d.ts +1 -1
  153. package/dist/esm/middlewares/content-guard.js +142 -148
  154. package/dist/esm/middlewares/content-guard.js.map +1 -1
  155. package/dist/esm/middlewares/index.js +2 -6
  156. package/dist/esm/middlewares/otel.d.ts +3 -1
  157. package/dist/esm/middlewares/otel.js +599 -732
  158. package/dist/esm/middlewares/otel.js.map +1 -1
  159. package/dist/esm/middlewares/usage-attributes.js +47 -40
  160. package/dist/esm/middlewares/usage-attributes.js.map +1 -1
  161. package/dist/esm/realtime/event-emitter.js +24 -25
  162. package/dist/esm/realtime/event-emitter.js.map +1 -1
  163. package/dist/esm/realtime/index.d.ts +5 -9
  164. package/dist/esm/realtime/index.js +29 -6
  165. package/dist/esm/realtime/index.js.map +1 -1
  166. package/dist/esm/scope.d.ts +47 -0
  167. package/dist/esm/stream-durability.d.ts +171 -0
  168. package/dist/esm/stream-durability.js +295 -0
  169. package/dist/esm/stream-durability.js.map +1 -0
  170. package/dist/esm/stream-to-response.d.ts +178 -13
  171. package/dist/esm/stream-to-response.js +663 -115
  172. package/dist/esm/stream-to-response.js.map +1 -1
  173. package/dist/esm/strip-to-spec-middleware.js +30 -16
  174. package/dist/esm/strip-to-spec-middleware.js.map +1 -1
  175. package/dist/esm/system-prompts.js +27 -21
  176. package/dist/esm/system-prompts.js.map +1 -1
  177. package/dist/esm/tool-registry.js +72 -45
  178. package/dist/esm/tool-registry.js.map +1 -1
  179. package/dist/esm/tools/provider-tool.js +14 -5
  180. package/dist/esm/tools/provider-tool.js.map +1 -1
  181. package/dist/esm/types.d.ts +321 -42
  182. package/dist/esm/types.js +2 -0
  183. package/dist/esm/utilities/ag-ui-wire.js +79 -93
  184. package/dist/esm/utilities/ag-ui-wire.js.map +1 -1
  185. package/dist/esm/utilities/chat-params.d.ts +26 -4
  186. package/dist/esm/utilities/chat-params.js +218 -92
  187. package/dist/esm/utilities/chat-params.js.map +1 -1
  188. package/dist/esm/utilities/errors.js +28 -18
  189. package/dist/esm/utilities/errors.js.map +1 -1
  190. package/dist/esm/utilities/media-prompt.js +46 -41
  191. package/dist/esm/utilities/media-prompt.js.map +1 -1
  192. package/dist/esm/utilities/numbers.js +13 -10
  193. package/dist/esm/utilities/numbers.js.map +1 -1
  194. package/dist/esm/utilities/provider-executed.js +20 -11
  195. package/dist/esm/utilities/provider-executed.js.map +1 -1
  196. package/dist/esm/utilities/sampling-keys.js +31 -19
  197. package/dist/esm/utilities/sampling-keys.js.map +1 -1
  198. package/dist/esm/utilities/tool-result.js +42 -30
  199. package/dist/esm/utilities/tool-result.js.map +1 -1
  200. package/dist/esm/utilities/usage.js +27 -9
  201. package/dist/esm/utilities/usage.js.map +1 -1
  202. package/dist/esm/utils.js +26 -18
  203. package/dist/esm/utils.js.map +1 -1
  204. package/package.json +10 -6
  205. package/skills/ai-core/SKILL.md +69 -18
  206. package/skills/ai-core/adapter-configuration/SKILL.md +44 -21
  207. package/skills/ai-core/adapter-configuration/references/anthropic-adapter.md +1 -3
  208. package/skills/ai-core/adapter-configuration/references/byteplus-adapter.md +148 -0
  209. package/skills/ai-core/adapter-configuration/references/gemini-adapter.md +2 -6
  210. package/skills/ai-core/adapter-configuration/references/groq-adapter.md +2 -6
  211. package/skills/ai-core/adapter-configuration/references/openai-adapter.md +1 -3
  212. package/skills/ai-core/ag-ui-protocol/SKILL.md +1 -1
  213. package/skills/ai-core/chat-experience/SKILL.md +98 -11
  214. package/skills/ai-core/client-persistence/SKILL.md +277 -0
  215. package/skills/ai-core/custom-backend-integration/SKILL.md +1 -1
  216. package/skills/ai-core/debug-logging/SKILL.md +1 -1
  217. package/skills/ai-core/locks/SKILL.md +143 -0
  218. package/skills/ai-core/media-generation/SKILL.md +144 -12
  219. package/skills/ai-core/middleware/SKILL.md +258 -33
  220. package/skills/ai-core/structured-outputs/SKILL.md +1 -1
  221. package/skills/ai-core/tool-calling/SKILL.md +54 -61
  222. package/src/activities/chat/agent-loop-strategies.ts +5 -39
  223. package/src/activities/chat/cancel.ts +81 -0
  224. package/src/activities/chat/index.ts +1091 -200
  225. package/src/activities/chat/mcp/manager.ts +4 -4
  226. package/src/activities/chat/mcp/types.ts +2 -2
  227. package/src/activities/chat/messages.ts +5 -3
  228. package/src/activities/chat/middleware/builder.ts +1 -1
  229. package/src/activities/chat/middleware/compose.ts +186 -9
  230. package/src/activities/chat/middleware/index.ts +26 -0
  231. package/src/activities/chat/middleware/locks.ts +102 -0
  232. package/src/activities/chat/middleware/pending-turn.ts +47 -0
  233. package/src/activities/chat/middleware/run-disconnect.ts +62 -0
  234. package/src/activities/chat/middleware/run-store.ts +412 -0
  235. package/src/activities/chat/middleware/types.ts +62 -1
  236. package/src/activities/chat/stream/processor.ts +189 -5
  237. package/src/activities/chat/tools/approval-schema.ts +205 -0
  238. package/src/activities/chat/tools/tool-calls.ts +106 -13
  239. package/src/activities/chat/tools/tool-definition.ts +210 -39
  240. package/src/activities/generateAudio/index.ts +20 -3
  241. package/src/activities/generateImage/index.ts +20 -3
  242. package/src/activities/generateSpeech/index.ts +25 -3
  243. package/src/activities/generateTranscription/index.ts +26 -3
  244. package/src/activities/generateVideo/index.ts +345 -82
  245. package/src/activities/middleware/index.ts +2 -0
  246. package/src/activities/middleware/run.ts +31 -0
  247. package/src/activities/middleware/types.ts +49 -5
  248. package/src/activities/stream-generation-result.ts +30 -2
  249. package/src/activities/summarize/chat-stream-summarize.ts +5 -0
  250. package/src/activities/summarize/index.ts +200 -10
  251. package/src/adapter-internals.ts +10 -1
  252. package/src/client.ts +244 -0
  253. package/src/custom-events.ts +107 -0
  254. package/src/delivery-detach.ts +72 -0
  255. package/src/delivery-disconnect.ts +84 -0
  256. package/src/index.ts +138 -1
  257. package/src/interrupt-resume.ts +824 -0
  258. package/src/interrupt-serialization.ts +183 -0
  259. package/src/interrupts.ts +146 -0
  260. package/src/locks.ts +17 -0
  261. package/src/logger/types.ts +1 -1
  262. package/src/middlewares/otel.ts +23 -5
  263. package/src/realtime/index.ts +5 -9
  264. package/src/scope.ts +47 -0
  265. package/src/stream-durability.ts +598 -0
  266. package/src/stream-to-response.ts +1051 -95
  267. package/src/strip-to-spec-middleware.ts +3 -3
  268. package/src/types.ts +405 -45
  269. package/src/utilities/chat-params.ts +245 -55
  270. package/dist/esm/activities/index.js.map +0 -1
  271. package/dist/esm/adapter-internals.js.map +0 -1
  272. package/dist/esm/index.js.map +0 -1
  273. package/dist/esm/middlewares/index.js.map +0 -1
@@ -1,91 +1,106 @@
1
- const CATEGORY_EMOJI = {
2
- request: "📤",
3
- provider: "📥",
4
- output: "📨",
5
- middleware: "🧩",
6
- tools: "🔧",
7
- agentLoop: "🔁",
8
- config: "⚙️",
9
- errors: "❌",
10
- sandbox: "📦"
1
+ //#region src/logger/internal-logger.ts
2
+ /**
3
+ * Package-internal logger wrapper used by every activity and adapter in
4
+ * `@tanstack/ai`. Wraps a user-supplied (or default `ConsoleLogger`) `Logger`
5
+ * plus a fully-resolved per-category map. Each category has a dedicated
6
+ * method that no-ops when its flag is `false`, or prepends a
7
+ * `[tanstack-ai:<category>] ` prefix and calls the underlying logger's
8
+ * `error` (for the `errors` category) or `debug` (for everything else).
9
+ *
10
+ * Not exported from the package root. Adapter packages consume it via the
11
+ * `@tanstack/ai/adapter-internals` subpath export.
12
+ */
13
+ /**
14
+ * Emoji marker per category — bracketing the `[tanstack-ai:<cat>]` tag on
15
+ * both sides makes it trivial to visually pick out a category when scanning
16
+ * dense streaming logs.
17
+ */
18
+ var CATEGORY_EMOJI = {
19
+ request: "📤",
20
+ provider: "📥",
21
+ output: "📨",
22
+ middleware: "🧩",
23
+ tools: "🔧",
24
+ agentLoop: "🔁",
25
+ config: "⚙️",
26
+ errors: "❌",
27
+ sandbox: "📦"
11
28
  };
12
- class InternalLogger {
13
- constructor(logger, categories) {
14
- this.logger = logger;
15
- this.categories = categories;
16
- }
17
- logger;
18
- categories;
19
- /** Whether a category is enabled. Cheap, safe to call on hot paths. */
20
- isEnabled(category) {
21
- return this.categories[category];
22
- }
23
- emit(level, category, message, meta) {
24
- if (!this.categories[category]) return;
25
- const emoji = CATEGORY_EMOJI[category];
26
- const prefixed = `${emoji} [tanstack-ai:${category}] ${emoji} ${message}`;
27
- try {
28
- if (level === "error") this.logger.error(prefixed, meta);
29
- else this.logger.debug(prefixed, meta);
30
- } catch {
31
- }
32
- }
33
- /** Log a raw chunk/frame received from a provider SDK. */
34
- provider(message, meta) {
35
- this.emit("debug", "provider", message, meta);
36
- }
37
- /** Log a chunk/result yielded to the consumer after middleware. */
38
- output(message, meta) {
39
- this.emit("debug", "output", message, meta);
40
- }
41
- /** Log inputs/outputs around a middleware hook invocation. Chat-only. */
42
- middleware(message, meta) {
43
- this.emit("debug", "middleware", message, meta);
44
- }
45
- /** Log before/after a tool-call execution. Chat-only. */
46
- tools(message, meta) {
47
- this.emit("debug", "tools", message, meta);
48
- }
49
- /** Log sandbox internals (watcher, file events, hook dispatch). Chat-only. */
50
- sandbox(message, meta) {
51
- this.emit("debug", "sandbox", message, meta);
52
- }
53
- /** Log an agent-loop iteration marker or phase transition. Chat-only. */
54
- agentLoop(message, meta) {
55
- this.emit("debug", "agentLoop", message, meta);
56
- }
57
- /** Log a config transform returned by a middleware `onConfig` hook. Chat-only. */
58
- config(message, meta) {
59
- this.emit("debug", "config", message, meta);
60
- }
61
- /**
62
- * Log a caught error. Defaults to on even when `debug` is unspecified.
63
- * Uses the underlying logger's `error` level.
64
- */
65
- errors(message, meta) {
66
- this.emit("error", "errors", message, meta);
67
- }
68
- /** Log outgoing request metadata before an adapter SDK call. */
69
- request(message, meta) {
70
- this.emit("debug", "request", message, meta);
71
- }
72
- /**
73
- * Log a non-fatal misconfiguration or recoverable anomaly. Gated by the
74
- * `errors` category — on by default (and when `debug` is unspecified), so
75
- * silent-drop conditions surface, but still silenced by `debug: false`,
76
- * which honors the "disable everything including errors" contract. Routes to
77
- * the underlying logger's `warn` level.
78
- */
79
- warn(message, meta) {
80
- if (!this.categories.errors) return;
81
- const prefixed = `⚠️ [tanstack-ai:warn] ⚠️ ${message}`;
82
- try {
83
- this.logger.warn(prefixed, meta);
84
- } catch {
85
- }
86
- }
87
- }
88
- export {
89
- InternalLogger
29
+ var InternalLogger = class {
30
+ logger;
31
+ categories;
32
+ constructor(logger, categories) {
33
+ this.logger = logger;
34
+ this.categories = categories;
35
+ }
36
+ /** Whether a category is enabled. Cheap, safe to call on hot paths. */
37
+ isEnabled(category) {
38
+ return this.categories[category];
39
+ }
40
+ emit(level, category, message, meta) {
41
+ if (!this.categories[category]) return;
42
+ const emoji = CATEGORY_EMOJI[category];
43
+ const prefixed = `${emoji} [tanstack-ai:${category}] ${emoji} ${message}`;
44
+ try {
45
+ if (level === "error") this.logger.error(prefixed, meta);
46
+ else this.logger.debug(prefixed, meta);
47
+ } catch {}
48
+ }
49
+ /** Log a raw chunk/frame received from a provider SDK. */
50
+ provider(message, meta) {
51
+ this.emit("debug", "provider", message, meta);
52
+ }
53
+ /** Log a chunk/result yielded to the consumer after middleware. */
54
+ output(message, meta) {
55
+ this.emit("debug", "output", message, meta);
56
+ }
57
+ /** Log inputs/outputs around a middleware hook invocation. Chat-only. */
58
+ middleware(message, meta) {
59
+ this.emit("debug", "middleware", message, meta);
60
+ }
61
+ /** Log before/after a tool-call execution. Chat-only. */
62
+ tools(message, meta) {
63
+ this.emit("debug", "tools", message, meta);
64
+ }
65
+ /** Log sandbox internals (watcher, file events, hook dispatch). Chat-only. */
66
+ sandbox(message, meta) {
67
+ this.emit("debug", "sandbox", message, meta);
68
+ }
69
+ /** Log an agent-loop iteration marker or phase transition. Chat-only. */
70
+ agentLoop(message, meta) {
71
+ this.emit("debug", "agentLoop", message, meta);
72
+ }
73
+ /** Log a config transform returned by a middleware `onConfig` hook. Chat-only. */
74
+ config(message, meta) {
75
+ this.emit("debug", "config", message, meta);
76
+ }
77
+ /**
78
+ * Log a caught error. Defaults to on even when `debug` is unspecified.
79
+ * Uses the underlying logger's `error` level.
80
+ */
81
+ errors(message, meta) {
82
+ this.emit("error", "errors", message, meta);
83
+ }
84
+ /** Log outgoing request metadata before an adapter SDK call. */
85
+ request(message, meta) {
86
+ this.emit("debug", "request", message, meta);
87
+ }
88
+ /**
89
+ * Log a non-fatal misconfiguration or recoverable anomaly. Gated by the
90
+ * `errors` category — on by default (and when `debug` is unspecified), so
91
+ * silent-drop conditions surface, but still silenced by `debug: false`,
92
+ * which honors the "disable everything including errors" contract. Routes to
93
+ * the underlying logger's `warn` level.
94
+ */
95
+ warn(message, meta) {
96
+ if (!this.categories.errors) return;
97
+ const prefixed = `⚠️ [tanstack-ai:warn] ⚠️ ${message}`;
98
+ try {
99
+ this.logger.warn(prefixed, meta);
100
+ } catch {}
101
+ }
90
102
  };
91
- //# sourceMappingURL=internal-logger.js.map
103
+ //#endregion
104
+ export { InternalLogger };
105
+
106
+ //# sourceMappingURL=internal-logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal-logger.js","sources":["../../../src/logger/internal-logger.ts"],"sourcesContent":["import type { DebugCategories, Logger } from './types'\n\n/**\n * Fully-resolved categories map. Every flag is a definite boolean (never\n * undefined), produced by `resolveDebugOption` from a `DebugOption`.\n */\nexport type ResolvedCategories = Required<DebugCategories>\n\n/**\n * Package-internal logger wrapper used by every activity and adapter in\n * `@tanstack/ai`. Wraps a user-supplied (or default `ConsoleLogger`) `Logger`\n * plus a fully-resolved per-category map. Each category has a dedicated\n * method that no-ops when its flag is `false`, or prepends a\n * `[tanstack-ai:<category>] ` prefix and calls the underlying logger's\n * `error` (for the `errors` category) or `debug` (for everything else).\n *\n * Not exported from the package root. Adapter packages consume it via the\n * `@tanstack/ai/adapter-internals` subpath export.\n */\n/**\n * Emoji marker per category — bracketing the `[tanstack-ai:<cat>]` tag on\n * both sides makes it trivial to visually pick out a category when scanning\n * dense streaming logs.\n */\nconst CATEGORY_EMOJI: Record<keyof ResolvedCategories, string> = {\n request: '📤',\n provider: '📥',\n output: '📨',\n middleware: '🧩',\n tools: '🔧',\n agentLoop: '🔁',\n config: '⚙️',\n errors: '❌',\n sandbox: '📦',\n}\n\nexport class InternalLogger {\n constructor(\n private readonly logger: Logger,\n private readonly categories: ResolvedCategories,\n ) {}\n\n /** Whether a category is enabled. Cheap, safe to call on hot paths. */\n isEnabled(category: keyof ResolvedCategories): boolean {\n return this.categories[category]\n }\n\n private emit(\n level: 'debug' | 'error',\n category: keyof ResolvedCategories,\n message: string,\n meta?: Record<string, unknown>,\n ): void {\n if (!this.categories[category]) return\n const emoji = CATEGORY_EMOJI[category]\n const prefixed = `${emoji} [tanstack-ai:${category}] ${emoji} ${message}`\n try {\n if (level === 'error') this.logger.error(prefixed, meta)\n else this.logger.debug(prefixed, meta)\n } catch {\n // User-supplied logger threw; swallow so we never mask the original\n // error that triggered this log call.\n }\n }\n\n /** Log a raw chunk/frame received from a provider SDK. */\n provider(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'provider', message, meta)\n }\n\n /** Log a chunk/result yielded to the consumer after middleware. */\n output(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'output', message, meta)\n }\n\n /** Log inputs/outputs around a middleware hook invocation. Chat-only. */\n middleware(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'middleware', message, meta)\n }\n\n /** Log before/after a tool-call execution. Chat-only. */\n tools(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'tools', message, meta)\n }\n\n /** Log sandbox internals (watcher, file events, hook dispatch). Chat-only. */\n sandbox(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'sandbox', message, meta)\n }\n\n /** Log an agent-loop iteration marker or phase transition. Chat-only. */\n agentLoop(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'agentLoop', message, meta)\n }\n\n /** Log a config transform returned by a middleware `onConfig` hook. Chat-only. */\n config(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'config', message, meta)\n }\n\n /**\n * Log a caught error. Defaults to on even when `debug` is unspecified.\n * Uses the underlying logger's `error` level.\n */\n errors(message: string, meta?: Record<string, unknown>): void {\n this.emit('error', 'errors', message, meta)\n }\n\n /** Log outgoing request metadata before an adapter SDK call. */\n request(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'request', message, meta)\n }\n\n /**\n * Log a non-fatal misconfiguration or recoverable anomaly. Gated by the\n * `errors` category — on by default (and when `debug` is unspecified), so\n * silent-drop conditions surface, but still silenced by `debug: false`,\n * which honors the \"disable everything including errors\" contract. Routes to\n * the underlying logger's `warn` level.\n */\n warn(message: string, meta?: Record<string, unknown>): void {\n if (!this.categories.errors) return\n const prefixed = `⚠️ [tanstack-ai:warn] ⚠️ ${message}`\n try {\n this.logger.warn(prefixed, meta)\n } catch {\n // User-supplied logger threw; swallow so a broken logger never masks the\n // condition we were trying to surface.\n }\n }\n}\n"],"names":[],"mappings":"AAwBA,MAAM,iBAA2D;AAAA,EAC/D,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,MAAM,eAAe;AAAA,EAC1B,YACmB,QACA,YACjB;AAFiB,SAAA,SAAA;AACA,SAAA,aAAA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA,EAInB,UAAU,UAA6C;AACrD,WAAO,KAAK,WAAW,QAAQ;AAAA,EACjC;AAAA,EAEQ,KACN,OACA,UACA,SACA,MACM;AACN,QAAI,CAAC,KAAK,WAAW,QAAQ,EAAG;AAChC,UAAM,QAAQ,eAAe,QAAQ;AACrC,UAAM,WAAW,GAAG,KAAK,iBAAiB,QAAQ,KAAK,KAAK,IAAI,OAAO;AACvE,QAAI;AACF,UAAI,UAAU,QAAS,MAAK,OAAO,MAAM,UAAU,IAAI;AAAA,UAClD,MAAK,OAAO,MAAM,UAAU,IAAI;AAAA,IACvC,QAAQ;AAAA,IAGR;AAAA,EACF;AAAA;AAAA,EAGA,SAAS,SAAiB,MAAsC;AAC9D,SAAK,KAAK,SAAS,YAAY,SAAS,IAAI;AAAA,EAC9C;AAAA;AAAA,EAGA,OAAO,SAAiB,MAAsC;AAC5D,SAAK,KAAK,SAAS,UAAU,SAAS,IAAI;AAAA,EAC5C;AAAA;AAAA,EAGA,WAAW,SAAiB,MAAsC;AAChE,SAAK,KAAK,SAAS,cAAc,SAAS,IAAI;AAAA,EAChD;AAAA;AAAA,EAGA,MAAM,SAAiB,MAAsC;AAC3D,SAAK,KAAK,SAAS,SAAS,SAAS,IAAI;AAAA,EAC3C;AAAA;AAAA,EAGA,QAAQ,SAAiB,MAAsC;AAC7D,SAAK,KAAK,SAAS,WAAW,SAAS,IAAI;AAAA,EAC7C;AAAA;AAAA,EAGA,UAAU,SAAiB,MAAsC;AAC/D,SAAK,KAAK,SAAS,aAAa,SAAS,IAAI;AAAA,EAC/C;AAAA;AAAA,EAGA,OAAO,SAAiB,MAAsC;AAC5D,SAAK,KAAK,SAAS,UAAU,SAAS,IAAI;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,SAAiB,MAAsC;AAC5D,SAAK,KAAK,SAAS,UAAU,SAAS,IAAI;AAAA,EAC5C;AAAA;AAAA,EAGA,QAAQ,SAAiB,MAAsC;AAC7D,SAAK,KAAK,SAAS,WAAW,SAAS,IAAI;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAK,SAAiB,MAAsC;AAC1D,QAAI,CAAC,KAAK,WAAW,OAAQ;AAC7B,UAAM,WAAW,4BAA4B,OAAO;AACpD,QAAI;AACF,WAAK,OAAO,KAAK,UAAU,IAAI;AAAA,IACjC,QAAQ;AAAA,IAGR;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"internal-logger.js","names":[],"sources":["../../../src/logger/internal-logger.ts"],"sourcesContent":["import type { DebugCategories, Logger } from './types'\n\n/**\n * Fully-resolved categories map. Every flag is a definite boolean (never\n * undefined), produced by `resolveDebugOption` from a `DebugOption`.\n */\nexport type ResolvedCategories = Required<DebugCategories>\n\n/**\n * Package-internal logger wrapper used by every activity and adapter in\n * `@tanstack/ai`. Wraps a user-supplied (or default `ConsoleLogger`) `Logger`\n * plus a fully-resolved per-category map. Each category has a dedicated\n * method that no-ops when its flag is `false`, or prepends a\n * `[tanstack-ai:<category>] ` prefix and calls the underlying logger's\n * `error` (for the `errors` category) or `debug` (for everything else).\n *\n * Not exported from the package root. Adapter packages consume it via the\n * `@tanstack/ai/adapter-internals` subpath export.\n */\n/**\n * Emoji marker per category — bracketing the `[tanstack-ai:<cat>]` tag on\n * both sides makes it trivial to visually pick out a category when scanning\n * dense streaming logs.\n */\nconst CATEGORY_EMOJI: Record<keyof ResolvedCategories, string> = {\n request: '📤',\n provider: '📥',\n output: '📨',\n middleware: '🧩',\n tools: '🔧',\n agentLoop: '🔁',\n config: '⚙️',\n errors: '❌',\n sandbox: '📦',\n}\n\nexport class InternalLogger {\n constructor(\n private readonly logger: Logger,\n private readonly categories: ResolvedCategories,\n ) {}\n\n /** Whether a category is enabled. Cheap, safe to call on hot paths. */\n isEnabled(category: keyof ResolvedCategories): boolean {\n return this.categories[category]\n }\n\n private emit(\n level: 'debug' | 'error',\n category: keyof ResolvedCategories,\n message: string,\n meta?: Record<string, unknown>,\n ): void {\n if (!this.categories[category]) return\n const emoji = CATEGORY_EMOJI[category]\n const prefixed = `${emoji} [tanstack-ai:${category}] ${emoji} ${message}`\n try {\n if (level === 'error') this.logger.error(prefixed, meta)\n else this.logger.debug(prefixed, meta)\n } catch {\n // User-supplied logger threw; swallow so we never mask the original\n // error that triggered this log call.\n }\n }\n\n /** Log a raw chunk/frame received from a provider SDK. */\n provider(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'provider', message, meta)\n }\n\n /** Log a chunk/result yielded to the consumer after middleware. */\n output(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'output', message, meta)\n }\n\n /** Log inputs/outputs around a middleware hook invocation. Chat-only. */\n middleware(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'middleware', message, meta)\n }\n\n /** Log before/after a tool-call execution. Chat-only. */\n tools(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'tools', message, meta)\n }\n\n /** Log sandbox internals (watcher, file events, hook dispatch). Chat-only. */\n sandbox(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'sandbox', message, meta)\n }\n\n /** Log an agent-loop iteration marker or phase transition. Chat-only. */\n agentLoop(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'agentLoop', message, meta)\n }\n\n /** Log a config transform returned by a middleware `onConfig` hook. Chat-only. */\n config(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'config', message, meta)\n }\n\n /**\n * Log a caught error. Defaults to on even when `debug` is unspecified.\n * Uses the underlying logger's `error` level.\n */\n errors(message: string, meta?: Record<string, unknown>): void {\n this.emit('error', 'errors', message, meta)\n }\n\n /** Log outgoing request metadata before an adapter SDK call. */\n request(message: string, meta?: Record<string, unknown>): void {\n this.emit('debug', 'request', message, meta)\n }\n\n /**\n * Log a non-fatal misconfiguration or recoverable anomaly. Gated by the\n * `errors` category — on by default (and when `debug` is unspecified), so\n * silent-drop conditions surface, but still silenced by `debug: false`,\n * which honors the \"disable everything including errors\" contract. Routes to\n * the underlying logger's `warn` level.\n */\n warn(message: string, meta?: Record<string, unknown>): void {\n if (!this.categories.errors) return\n const prefixed = `⚠️ [tanstack-ai:warn] ⚠️ ${message}`\n try {\n this.logger.warn(prefixed, meta)\n } catch {\n // User-supplied logger threw; swallow so a broken logger never masks the\n // condition we were trying to surface.\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAwBA,IAAM,iBAA2D;CAC/D,SAAS;CACT,UAAU;CACV,QAAQ;CACR,YAAY;CACZ,OAAO;CACP,WAAW;CACX,QAAQ;CACR,QAAQ;CACR,SAAS;AACX;AAEA,IAAa,iBAAb,MAA4B;CAEP;CACA;CAFnB,YACE,QACA,YACA;EAFiB,KAAA,SAAA;EACA,KAAA,aAAA;CAChB;;CAGH,UAAU,UAA6C;EACrD,OAAO,KAAK,WAAW;CACzB;CAEA,KACE,OACA,UACA,SACA,MACM;EACN,IAAI,CAAC,KAAK,WAAW,WAAW;EAChC,MAAM,QAAQ,eAAe;EAC7B,MAAM,WAAW,GAAG,MAAM,gBAAgB,SAAS,IAAI,MAAM,GAAG;EAChE,IAAI;GACF,IAAI,UAAU,SAAS,KAAK,OAAO,MAAM,UAAU,IAAI;QAClD,KAAK,OAAO,MAAM,UAAU,IAAI;EACvC,QAAQ,CAGR;CACF;;CAGA,SAAS,SAAiB,MAAsC;EAC9D,KAAK,KAAK,SAAS,YAAY,SAAS,IAAI;CAC9C;;CAGA,OAAO,SAAiB,MAAsC;EAC5D,KAAK,KAAK,SAAS,UAAU,SAAS,IAAI;CAC5C;;CAGA,WAAW,SAAiB,MAAsC;EAChE,KAAK,KAAK,SAAS,cAAc,SAAS,IAAI;CAChD;;CAGA,MAAM,SAAiB,MAAsC;EAC3D,KAAK,KAAK,SAAS,SAAS,SAAS,IAAI;CAC3C;;CAGA,QAAQ,SAAiB,MAAsC;EAC7D,KAAK,KAAK,SAAS,WAAW,SAAS,IAAI;CAC7C;;CAGA,UAAU,SAAiB,MAAsC;EAC/D,KAAK,KAAK,SAAS,aAAa,SAAS,IAAI;CAC/C;;CAGA,OAAO,SAAiB,MAAsC;EAC5D,KAAK,KAAK,SAAS,UAAU,SAAS,IAAI;CAC5C;;;;;CAMA,OAAO,SAAiB,MAAsC;EAC5D,KAAK,KAAK,SAAS,UAAU,SAAS,IAAI;CAC5C;;CAGA,QAAQ,SAAiB,MAAsC;EAC7D,KAAK,KAAK,SAAS,WAAW,SAAS,IAAI;CAC7C;;;;;;;;CASA,KAAK,SAAiB,MAAsC;EAC1D,IAAI,CAAC,KAAK,WAAW,QAAQ;EAC7B,MAAM,WAAW,4BAA4B;EAC7C,IAAI;GACF,KAAK,OAAO,KAAK,UAAU,IAAI;EACjC,QAAQ,CAGR;CACF;AACF"}
@@ -1,57 +1,62 @@
1
1
  import { ConsoleLogger } from "./console-logger.js";
2
2
  import { InternalLogger } from "./internal-logger.js";
3
- const ALL_OFF = {
4
- provider: false,
5
- output: false,
6
- middleware: false,
7
- tools: false,
8
- agentLoop: false,
9
- config: false,
10
- errors: false,
11
- request: false,
12
- sandbox: false
3
+ //#region src/logger/resolve.ts
4
+ var ALL_OFF = {
5
+ provider: false,
6
+ output: false,
7
+ middleware: false,
8
+ tools: false,
9
+ agentLoop: false,
10
+ config: false,
11
+ errors: false,
12
+ request: false,
13
+ sandbox: false
13
14
  };
14
- const ALL_ON = {
15
- provider: true,
16
- output: true,
17
- middleware: true,
18
- tools: true,
19
- agentLoop: true,
20
- config: true,
21
- errors: true,
22
- request: true,
23
- sandbox: true
15
+ var ALL_ON = {
16
+ provider: true,
17
+ output: true,
18
+ middleware: true,
19
+ tools: true,
20
+ agentLoop: true,
21
+ config: true,
22
+ errors: true,
23
+ request: true,
24
+ sandbox: true
24
25
  };
25
- const errorsOnlyCategories = () => ({
26
- ...ALL_OFF,
27
- errors: true
26
+ var errorsOnlyCategories = () => ({
27
+ ...ALL_OFF,
28
+ errors: true
28
29
  });
29
- const resolveCategoriesFromPartial = (partial) => ({
30
- provider: partial.provider ?? true,
31
- output: partial.output ?? true,
32
- middleware: partial.middleware ?? true,
33
- tools: partial.tools ?? true,
34
- agentLoop: partial.agentLoop ?? true,
35
- config: partial.config ?? true,
36
- errors: partial.errors ?? true,
37
- request: partial.request ?? true,
38
- sandbox: partial.sandbox ?? true
30
+ var resolveCategoriesFromPartial = (partial) => ({
31
+ provider: partial.provider ?? true,
32
+ output: partial.output ?? true,
33
+ middleware: partial.middleware ?? true,
34
+ tools: partial.tools ?? true,
35
+ agentLoop: partial.agentLoop ?? true,
36
+ config: partial.config ?? true,
37
+ errors: partial.errors ?? true,
38
+ request: partial.request ?? true,
39
+ sandbox: partial.sandbox ?? true
39
40
  });
41
+ /**
42
+ * Normalize a `DebugOption` into an `InternalLogger` ready to be threaded
43
+ * through the library's activities and adapters. See the `DebugOption`
44
+ * resolution table in the spec for the complete rules.
45
+ *
46
+ * - `undefined`: only the `errors` category is enabled; default `ConsoleLogger`.
47
+ * - `true`: all categories enabled; default `ConsoleLogger`.
48
+ * - `false`: all categories disabled (including `errors`); default `ConsoleLogger`.
49
+ * - `DebugConfig`: each unspecified category defaults to `true`; an optional
50
+ * `logger` replaces the default `ConsoleLogger`.
51
+ */
40
52
  function resolveDebugOption(debug) {
41
- if (debug === void 0) {
42
- return new InternalLogger(new ConsoleLogger(), errorsOnlyCategories());
43
- }
44
- if (debug === true) {
45
- return new InternalLogger(new ConsoleLogger(), ALL_ON);
46
- }
47
- if (debug === false) {
48
- return new InternalLogger(new ConsoleLogger(), ALL_OFF);
49
- }
50
- const { logger, ...cats } = debug;
51
- const userLogger = logger ?? new ConsoleLogger();
52
- return new InternalLogger(userLogger, resolveCategoriesFromPartial(cats));
53
+ if (debug === void 0) return new InternalLogger(new ConsoleLogger(), errorsOnlyCategories());
54
+ if (debug === true) return new InternalLogger(new ConsoleLogger(), ALL_ON);
55
+ if (debug === false) return new InternalLogger(new ConsoleLogger(), ALL_OFF);
56
+ const { logger, ...cats } = debug;
57
+ return new InternalLogger(logger ?? new ConsoleLogger(), resolveCategoriesFromPartial(cats));
53
58
  }
54
- export {
55
- resolveDebugOption
56
- };
57
- //# sourceMappingURL=resolve.js.map
59
+ //#endregion
60
+ export { resolveDebugOption };
61
+
62
+ //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sources":["../../../src/logger/resolve.ts"],"sourcesContent":["import { ConsoleLogger } from './console-logger'\nimport { InternalLogger } from './internal-logger'\nimport type { ResolvedCategories } from './internal-logger'\nimport type { DebugCategories, DebugConfig, DebugOption, Logger } from './types'\n\nconst ALL_OFF: ResolvedCategories = {\n provider: false,\n output: false,\n middleware: false,\n tools: false,\n agentLoop: false,\n config: false,\n errors: false,\n request: false,\n sandbox: false,\n}\n\nconst ALL_ON: ResolvedCategories = {\n provider: true,\n output: true,\n middleware: true,\n tools: true,\n agentLoop: true,\n config: true,\n errors: true,\n request: true,\n sandbox: true,\n}\n\nconst errorsOnlyCategories = (): ResolvedCategories => ({\n ...ALL_OFF,\n errors: true,\n})\n\nconst resolveCategoriesFromPartial = (\n partial: DebugCategories,\n): ResolvedCategories => ({\n provider: partial.provider ?? true,\n output: partial.output ?? true,\n middleware: partial.middleware ?? true,\n tools: partial.tools ?? true,\n agentLoop: partial.agentLoop ?? true,\n config: partial.config ?? true,\n errors: partial.errors ?? true,\n request: partial.request ?? true,\n sandbox: partial.sandbox ?? true,\n})\n\n/**\n * Normalize a `DebugOption` into an `InternalLogger` ready to be threaded\n * through the library's activities and adapters. See the `DebugOption`\n * resolution table in the spec for the complete rules.\n *\n * - `undefined`: only the `errors` category is enabled; default `ConsoleLogger`.\n * - `true`: all categories enabled; default `ConsoleLogger`.\n * - `false`: all categories disabled (including `errors`); default `ConsoleLogger`.\n * - `DebugConfig`: each unspecified category defaults to `true`; an optional\n * `logger` replaces the default `ConsoleLogger`.\n */\nexport function resolveDebugOption(\n debug: DebugOption | undefined,\n): InternalLogger {\n if (debug === undefined) {\n return new InternalLogger(new ConsoleLogger(), errorsOnlyCategories())\n }\n if (debug === true) {\n return new InternalLogger(new ConsoleLogger(), ALL_ON)\n }\n if (debug === false) {\n return new InternalLogger(new ConsoleLogger(), ALL_OFF)\n }\n const { logger, ...cats }: DebugConfig = debug\n const userLogger: Logger = logger ?? new ConsoleLogger()\n return new InternalLogger(userLogger, resolveCategoriesFromPartial(cats))\n}\n"],"names":[],"mappings":";;AAKA,MAAM,UAA8B;AAAA,EAClC,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AACX;AAEA,MAAM,SAA6B;AAAA,EACjC,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AACX;AAEA,MAAM,uBAAuB,OAA2B;AAAA,EACtD,GAAG;AAAA,EACH,QAAQ;AACV;AAEA,MAAM,+BAA+B,CACnC,aACwB;AAAA,EACxB,UAAU,QAAQ,YAAY;AAAA,EAC9B,QAAQ,QAAQ,UAAU;AAAA,EAC1B,YAAY,QAAQ,cAAc;AAAA,EAClC,OAAO,QAAQ,SAAS;AAAA,EACxB,WAAW,QAAQ,aAAa;AAAA,EAChC,QAAQ,QAAQ,UAAU;AAAA,EAC1B,QAAQ,QAAQ,UAAU;AAAA,EAC1B,SAAS,QAAQ,WAAW;AAAA,EAC5B,SAAS,QAAQ,WAAW;AAC9B;AAaO,SAAS,mBACd,OACgB;AAChB,MAAI,UAAU,QAAW;AACvB,WAAO,IAAI,eAAe,IAAI,cAAA,GAAiB,sBAAsB;AAAA,EACvE;AACA,MAAI,UAAU,MAAM;AAClB,WAAO,IAAI,eAAe,IAAI,cAAA,GAAiB,MAAM;AAAA,EACvD;AACA,MAAI,UAAU,OAAO;AACnB,WAAO,IAAI,eAAe,IAAI,cAAA,GAAiB,OAAO;AAAA,EACxD;AACA,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAsB;AACzC,QAAM,aAAqB,UAAU,IAAI,cAAA;AACzC,SAAO,IAAI,eAAe,YAAY,6BAA6B,IAAI,CAAC;AAC1E;"}
1
+ {"version":3,"file":"resolve.js","names":[],"sources":["../../../src/logger/resolve.ts"],"sourcesContent":["import { ConsoleLogger } from './console-logger'\nimport { InternalLogger } from './internal-logger'\nimport type { ResolvedCategories } from './internal-logger'\nimport type { DebugCategories, DebugConfig, DebugOption, Logger } from './types'\n\nconst ALL_OFF: ResolvedCategories = {\n provider: false,\n output: false,\n middleware: false,\n tools: false,\n agentLoop: false,\n config: false,\n errors: false,\n request: false,\n sandbox: false,\n}\n\nconst ALL_ON: ResolvedCategories = {\n provider: true,\n output: true,\n middleware: true,\n tools: true,\n agentLoop: true,\n config: true,\n errors: true,\n request: true,\n sandbox: true,\n}\n\nconst errorsOnlyCategories = (): ResolvedCategories => ({\n ...ALL_OFF,\n errors: true,\n})\n\nconst resolveCategoriesFromPartial = (\n partial: DebugCategories,\n): ResolvedCategories => ({\n provider: partial.provider ?? true,\n output: partial.output ?? true,\n middleware: partial.middleware ?? true,\n tools: partial.tools ?? true,\n agentLoop: partial.agentLoop ?? true,\n config: partial.config ?? true,\n errors: partial.errors ?? true,\n request: partial.request ?? true,\n sandbox: partial.sandbox ?? true,\n})\n\n/**\n * Normalize a `DebugOption` into an `InternalLogger` ready to be threaded\n * through the library's activities and adapters. See the `DebugOption`\n * resolution table in the spec for the complete rules.\n *\n * - `undefined`: only the `errors` category is enabled; default `ConsoleLogger`.\n * - `true`: all categories enabled; default `ConsoleLogger`.\n * - `false`: all categories disabled (including `errors`); default `ConsoleLogger`.\n * - `DebugConfig`: each unspecified category defaults to `true`; an optional\n * `logger` replaces the default `ConsoleLogger`.\n */\nexport function resolveDebugOption(\n debug: DebugOption | undefined,\n): InternalLogger {\n if (debug === undefined) {\n return new InternalLogger(new ConsoleLogger(), errorsOnlyCategories())\n }\n if (debug === true) {\n return new InternalLogger(new ConsoleLogger(), ALL_ON)\n }\n if (debug === false) {\n return new InternalLogger(new ConsoleLogger(), ALL_OFF)\n }\n const { logger, ...cats }: DebugConfig = debug\n const userLogger: Logger = logger ?? new ConsoleLogger()\n return new InternalLogger(userLogger, resolveCategoriesFromPartial(cats))\n}\n"],"mappings":";;;AAKA,IAAM,UAA8B;CAClC,UAAU;CACV,QAAQ;CACR,YAAY;CACZ,OAAO;CACP,WAAW;CACX,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,SAAS;AACX;AAEA,IAAM,SAA6B;CACjC,UAAU;CACV,QAAQ;CACR,YAAY;CACZ,OAAO;CACP,WAAW;CACX,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,SAAS;AACX;AAEA,IAAM,8BAAkD;CACtD,GAAG;CACH,QAAQ;AACV;AAEA,IAAM,gCACJ,aACwB;CACxB,UAAU,QAAQ,YAAY;CAC9B,QAAQ,QAAQ,UAAU;CAC1B,YAAY,QAAQ,cAAc;CAClC,OAAO,QAAQ,SAAS;CACxB,WAAW,QAAQ,aAAa;CAChC,QAAQ,QAAQ,UAAU;CAC1B,QAAQ,QAAQ,UAAU;CAC1B,SAAS,QAAQ,WAAW;CAC5B,SAAS,QAAQ,WAAW;AAC9B;;;;;;;;;;;;AAaA,SAAgB,mBACd,OACgB;CAChB,IAAI,UAAU,KAAA,GACZ,OAAO,IAAI,eAAe,IAAI,cAAc,GAAG,qBAAqB,CAAC;CAEvE,IAAI,UAAU,MACZ,OAAO,IAAI,eAAe,IAAI,cAAc,GAAG,MAAM;CAEvD,IAAI,UAAU,OACZ,OAAO,IAAI,eAAe,IAAI,cAAc,GAAG,OAAO;CAExD,MAAM,EAAE,QAAQ,GAAG,SAAsB;CAEzC,OAAO,IAAI,eADgB,UAAU,IAAI,cAAc,GACjB,6BAA6B,IAAI,CAAC;AAC1E"}
@@ -28,7 +28,7 @@ export interface Logger {
28
28
  */
29
29
  export interface DebugCategories {
30
30
  /**
31
- * Raw chunks/frames received from a provider SDK (OpenAI, Anthropic, Gemini, Ollama, Grok, Groq, OpenRouter, fal, ElevenLabs). Emitted inside every streaming adapter's chunk loop.
31
+ * Raw chunks/frames received from a provider SDK (OpenAI, Anthropic, Gemini, Ollama, Grok, Groq, OpenRouter, fal, ElevenLabs, BytePlus). Emitted inside every streaming adapter's chunk loop.
32
32
  */
33
33
  provider?: boolean;
34
34
  /**