@code-yeongyu/senpi 2026.8.24 → 2026.8.26-2

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 (1610) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/dist/cli/args.d.ts.map +1 -1
  3. package/dist/cli/args.js +24 -9
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/file-processor.d.ts.map +1 -1
  6. package/dist/cli/file-processor.js +2 -1
  7. package/dist/cli/file-processor.js.map +1 -1
  8. package/dist/config.d.ts +6 -3
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +24 -14
  11. package/dist/config.js.map +1 -1
  12. package/dist/core/agent-abort-provenance.d.ts.map +1 -1
  13. package/dist/core/agent-abort-provenance.js +5 -1
  14. package/dist/core/agent-abort-provenance.js.map +1 -1
  15. package/dist/core/agent-session.d.ts +11 -0
  16. package/dist/core/agent-session.d.ts.map +1 -1
  17. package/dist/core/agent-session.js +164 -30
  18. package/dist/core/agent-session.js.map +1 -1
  19. package/dist/core/auth-storage.d.ts +4 -0
  20. package/dist/core/auth-storage.d.ts.map +1 -1
  21. package/dist/core/auth-storage.js +35 -8
  22. package/dist/core/auth-storage.js.map +1 -1
  23. package/dist/core/brand.d.ts +2 -0
  24. package/dist/core/brand.d.ts.map +1 -1
  25. package/dist/core/brand.js +1 -0
  26. package/dist/core/brand.js.map +1 -1
  27. package/dist/core/compaction/compaction.d.ts +1 -0
  28. package/dist/core/compaction/compaction.d.ts.map +1 -1
  29. package/dist/core/compaction/compaction.js +24 -8
  30. package/dist/core/compaction/compaction.js.map +1 -1
  31. package/dist/core/defaults.d.ts +1 -0
  32. package/dist/core/defaults.d.ts.map +1 -1
  33. package/dist/core/defaults.js +9 -0
  34. package/dist/core/defaults.js.map +1 -1
  35. package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
  36. package/dist/core/extensions/builtin/compaction/index.js +67 -0
  37. package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
  38. package/dist/core/extensions/builtin/compaction/log.d.ts +1 -1
  39. package/dist/core/extensions/builtin/compaction/log.d.ts.map +1 -1
  40. package/dist/core/extensions/builtin/compaction/log.js +1 -0
  41. package/dist/core/extensions/builtin/compaction/log.js.map +1 -1
  42. package/dist/core/extensions/builtin/compaction/per-turn-cap.d.ts +5 -9
  43. package/dist/core/extensions/builtin/compaction/per-turn-cap.d.ts.map +1 -1
  44. package/dist/core/extensions/builtin/compaction/per-turn-cap.js +5 -11
  45. package/dist/core/extensions/builtin/compaction/per-turn-cap.js.map +1 -1
  46. package/dist/core/extensions/builtin/compaction/todo-bridge.d.ts +2 -3
  47. package/dist/core/extensions/builtin/compaction/todo-bridge.d.ts.map +1 -1
  48. package/dist/core/extensions/builtin/compaction/todo-bridge.js +53 -14
  49. package/dist/core/extensions/builtin/compaction/todo-bridge.js.map +1 -1
  50. package/dist/core/extensions/builtin/config-reload/index.js +14 -22
  51. package/dist/core/extensions/builtin/config-reload/index.js.map +1 -1
  52. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
  53. package/dist/core/extensions/builtin/goal/monitor-continuation.js +29 -6
  54. package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
  55. package/dist/core/extensions/builtin/goal/terminal-provider-error.js +1 -1
  56. package/dist/core/extensions/builtin/goal/terminal-provider-error.js.map +1 -1
  57. package/dist/core/extensions/builtin/loop-guard/notice.d.ts.map +1 -1
  58. package/dist/core/extensions/builtin/loop-guard/notice.js +5 -1
  59. package/dist/core/extensions/builtin/loop-guard/notice.js.map +1 -1
  60. package/dist/core/extensions/builtin/mcp/config-schema.d.ts +2 -2
  61. package/dist/core/extensions/builtin/ttsr/index.d.ts.map +1 -1
  62. package/dist/core/extensions/builtin/ttsr/index.js +6 -6
  63. package/dist/core/extensions/builtin/ttsr/index.js.map +1 -1
  64. package/dist/core/extensions/builtin/ttsr/message-update.d.ts +10 -0
  65. package/dist/core/extensions/builtin/ttsr/message-update.d.ts.map +1 -0
  66. package/dist/core/extensions/builtin/ttsr/message-update.js +38 -0
  67. package/dist/core/extensions/builtin/ttsr/message-update.js.map +1 -0
  68. package/dist/core/extensions/builtin/ttsr/remediation.d.ts +5 -10
  69. package/dist/core/extensions/builtin/ttsr/remediation.d.ts.map +1 -1
  70. package/dist/core/extensions/builtin/ttsr/remediation.js +19 -3
  71. package/dist/core/extensions/builtin/ttsr/remediation.js.map +1 -1
  72. package/dist/core/extensions/builtin/ttsr/stream-remediation.d.ts +1 -1
  73. package/dist/core/extensions/builtin/ttsr/stream-remediation.d.ts.map +1 -1
  74. package/dist/core/extensions/builtin/ttsr/stream-remediation.js.map +1 -1
  75. package/dist/core/extensions/builtin/ttsr/types.d.ts +1 -1
  76. package/dist/core/extensions/builtin/ttsr/types.d.ts.map +1 -1
  77. package/dist/core/extensions/builtin/ttsr/types.js.map +1 -1
  78. package/dist/core/extensions/builtin/ttsr/watch.d.ts +1 -1
  79. package/dist/core/extensions/builtin/ttsr/watch.d.ts.map +1 -1
  80. package/dist/core/extensions/builtin/ttsr/watch.js +2 -2
  81. package/dist/core/extensions/builtin/ttsr/watch.js.map +1 -1
  82. package/dist/core/extensions/index.d.ts +2 -2
  83. package/dist/core/extensions/index.d.ts.map +1 -1
  84. package/dist/core/extensions/index.js +1 -1
  85. package/dist/core/extensions/index.js.map +1 -1
  86. package/dist/core/extensions/loader.d.ts.map +1 -1
  87. package/dist/core/extensions/loader.js +107 -45
  88. package/dist/core/extensions/loader.js.map +1 -1
  89. package/dist/core/extensions/types.d.ts +17 -6
  90. package/dist/core/extensions/types.d.ts.map +1 -1
  91. package/dist/core/extensions/types.js +3 -0
  92. package/dist/core/extensions/types.js.map +1 -1
  93. package/dist/core/footer-data-provider.d.ts +1 -1
  94. package/dist/core/footer-data-provider.js +1 -1
  95. package/dist/core/footer-data-provider.js.map +1 -1
  96. package/dist/core/hidden-stdout-log.d.ts +10 -0
  97. package/dist/core/hidden-stdout-log.d.ts.map +1 -1
  98. package/dist/core/hidden-stdout-log.js +36 -5
  99. package/dist/core/hidden-stdout-log.js.map +1 -1
  100. package/dist/core/keybindings.d.ts +20 -19
  101. package/dist/core/keybindings.d.ts.map +1 -1
  102. package/dist/core/keybindings.js +26 -5
  103. package/dist/core/keybindings.js.map +1 -1
  104. package/dist/core/model-config-schema.d.ts +17 -5
  105. package/dist/core/model-config-schema.d.ts.map +1 -1
  106. package/dist/core/model-config-schema.js +1 -1
  107. package/dist/core/model-config-schema.js.map +1 -1
  108. package/dist/core/model-config.d.ts.map +1 -1
  109. package/dist/core/model-config.js +7 -5
  110. package/dist/core/model-config.js.map +1 -1
  111. package/dist/core/model-resolver.d.ts +3 -2
  112. package/dist/core/model-resolver.d.ts.map +1 -1
  113. package/dist/core/model-resolver.js +3 -2
  114. package/dist/core/model-resolver.js.map +1 -1
  115. package/dist/core/model-runtime.d.ts +0 -1
  116. package/dist/core/model-runtime.d.ts.map +1 -1
  117. package/dist/core/model-runtime.js +0 -18
  118. package/dist/core/model-runtime.js.map +1 -1
  119. package/dist/core/models-store.d.ts.map +1 -1
  120. package/dist/core/models-store.js +2 -1
  121. package/dist/core/models-store.js.map +1 -1
  122. package/dist/core/package-manager.d.ts.map +1 -1
  123. package/dist/core/package-manager.js +14 -10
  124. package/dist/core/package-manager.js.map +1 -1
  125. package/dist/core/pi-manifest.d.ts.map +1 -1
  126. package/dist/core/pi-manifest.js +2 -1
  127. package/dist/core/pi-manifest.js.map +1 -1
  128. package/dist/core/provider-composer.d.ts +2 -0
  129. package/dist/core/provider-composer.d.ts.map +1 -1
  130. package/dist/core/provider-composer.js +3 -6
  131. package/dist/core/provider-composer.js.map +1 -1
  132. package/dist/core/provider-display-names.d.ts.map +1 -1
  133. package/dist/core/provider-display-names.js +0 -1
  134. package/dist/core/provider-display-names.js.map +1 -1
  135. package/dist/core/provider-timeout-retry.d.ts.map +1 -1
  136. package/dist/core/provider-timeout-retry.js +8 -12
  137. package/dist/core/provider-timeout-retry.js.map +1 -1
  138. package/dist/core/resource-loader.d.ts.map +1 -1
  139. package/dist/core/resource-loader.js +3 -2
  140. package/dist/core/resource-loader.js.map +1 -1
  141. package/dist/core/retry-fallback/profile-override.d.ts +24 -0
  142. package/dist/core/retry-fallback/profile-override.d.ts.map +1 -0
  143. package/dist/core/retry-fallback/profile-override.js +138 -0
  144. package/dist/core/retry-fallback/profile-override.js.map +1 -0
  145. package/dist/core/retry-fallback/settings.d.ts +1 -0
  146. package/dist/core/retry-fallback/settings.d.ts.map +1 -1
  147. package/dist/core/retry-fallback/settings.js.map +1 -1
  148. package/dist/core/sdk.d.ts +2 -2
  149. package/dist/core/sdk.d.ts.map +1 -1
  150. package/dist/core/sdk.js +20 -5
  151. package/dist/core/sdk.js.map +1 -1
  152. package/dist/core/session-export.d.ts +4 -0
  153. package/dist/core/session-export.d.ts.map +1 -0
  154. package/dist/core/session-export.js +32 -0
  155. package/dist/core/session-export.js.map +1 -0
  156. package/dist/core/session-manager.d.ts.map +1 -1
  157. package/dist/core/session-manager.js +2 -1
  158. package/dist/core/session-manager.js.map +1 -1
  159. package/dist/core/settings-diagnostics.d.ts +9 -0
  160. package/dist/core/settings-diagnostics.d.ts.map +1 -0
  161. package/dist/core/settings-diagnostics.js +21 -0
  162. package/dist/core/settings-diagnostics.js.map +1 -0
  163. package/dist/core/settings-manager.d.ts +18 -0
  164. package/dist/core/settings-manager.d.ts.map +1 -1
  165. package/dist/core/settings-manager.js +88 -7
  166. package/dist/core/settings-manager.js.map +1 -1
  167. package/dist/core/slash-commands.d.ts.map +1 -1
  168. package/dist/core/slash-commands.js +2 -1
  169. package/dist/core/slash-commands.js.map +1 -1
  170. package/dist/core/system-prompt.d.ts.map +1 -1
  171. package/dist/core/system-prompt.js +11 -2
  172. package/dist/core/system-prompt.js.map +1 -1
  173. package/dist/core/tools/bash.d.ts +14 -1
  174. package/dist/core/tools/bash.d.ts.map +1 -1
  175. package/dist/core/tools/bash.js +35 -19
  176. package/dist/core/tools/bash.js.map +1 -1
  177. package/dist/core/tools/edit-diff.d.ts +0 -5
  178. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  179. package/dist/core/tools/edit-diff.js +2 -5
  180. package/dist/core/tools/edit-diff.js.map +1 -1
  181. package/dist/core/tools/edit.d.ts.map +1 -1
  182. package/dist/core/tools/edit.js +3 -2
  183. package/dist/core/tools/edit.js.map +1 -1
  184. package/dist/core/tools/index.d.ts +4 -1
  185. package/dist/core/tools/index.d.ts.map +1 -1
  186. package/dist/core/tools/index.js +13 -1
  187. package/dist/core/tools/index.js.map +1 -1
  188. package/dist/core/tools/powershell.d.ts +16 -0
  189. package/dist/core/tools/powershell.d.ts.map +1 -0
  190. package/dist/core/tools/powershell.js +39 -0
  191. package/dist/core/tools/powershell.js.map +1 -0
  192. package/dist/core/trust-manager.d.ts.map +1 -1
  193. package/dist/core/trust-manager.js +2 -1
  194. package/dist/core/trust-manager.js.map +1 -1
  195. package/dist/extensions/llama/client.d.ts +6 -0
  196. package/dist/extensions/llama/client.d.ts.map +1 -1
  197. package/dist/extensions/llama/client.js +7 -0
  198. package/dist/extensions/llama/client.js.map +1 -1
  199. package/dist/extensions/llama/provider.d.ts +3 -1
  200. package/dist/extensions/llama/provider.d.ts.map +1 -1
  201. package/dist/extensions/llama/provider.js +27 -6
  202. package/dist/extensions/llama/provider.js.map +1 -1
  203. package/dist/index.d.ts +5 -4
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.js +4 -3
  206. package/dist/index.js.map +1 -1
  207. package/dist/main.d.ts.map +1 -1
  208. package/dist/main.js +13 -2
  209. package/dist/main.js.map +1 -1
  210. package/dist/migrations.d.ts.map +1 -1
  211. package/dist/migrations.js +4 -3
  212. package/dist/migrations.js.map +1 -1
  213. package/dist/modes/app-server/daemon/probe.js +1 -1
  214. package/dist/modes/app-server/daemon/probe.js.map +1 -1
  215. package/dist/modes/app-server/daemon.js +13 -2
  216. package/dist/modes/app-server/daemon.js.map +1 -1
  217. package/dist/modes/app-server/transports/websocket-connection-handler.d.ts.map +1 -1
  218. package/dist/modes/app-server/transports/websocket-connection-handler.js +4 -0
  219. package/dist/modes/app-server/transports/websocket-connection-handler.js.map +1 -1
  220. package/dist/modes/interactive/aborted-error-label.d.ts +2 -0
  221. package/dist/modes/interactive/aborted-error-label.d.ts.map +1 -1
  222. package/dist/modes/interactive/aborted-error-label.js +7 -0
  223. package/dist/modes/interactive/aborted-error-label.js.map +1 -1
  224. package/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
  225. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  226. package/dist/modes/interactive/components/thinking-selector.js +68 -17
  227. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  228. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  229. package/dist/modes/interactive/external-editor.js +2 -1
  230. package/dist/modes/interactive/external-editor.js.map +1 -1
  231. package/dist/modes/interactive/interactive-mode.d.ts +6 -0
  232. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  233. package/dist/modes/interactive/interactive-mode.js +65 -20
  234. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  235. package/dist/modes/json-event.d.ts +16 -13
  236. package/dist/modes/json-event.d.ts.map +1 -1
  237. package/dist/modes/json-event.js +20 -6
  238. package/dist/modes/json-event.js.map +1 -1
  239. package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
  240. package/dist/modes/rpc/connection-handler.js +3 -0
  241. package/dist/modes/rpc/connection-handler.js.map +1 -1
  242. package/dist/modes/rpc/rpc-client.d.ts +7 -0
  243. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  244. package/dist/modes/rpc/rpc-client.js +7 -0
  245. package/dist/modes/rpc/rpc-client.js.map +1 -1
  246. package/dist/modes/rpc/rpc-types.d.ts +12 -0
  247. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  248. package/dist/modes/rpc/rpc-types.js.map +1 -1
  249. package/dist/package-manager-cli.d.ts +1 -0
  250. package/dist/package-manager-cli.d.ts.map +1 -1
  251. package/dist/package-manager-cli.js +186 -2
  252. package/dist/package-manager-cli.js.map +1 -1
  253. package/dist/utils/frontmatter.d.ts.map +1 -1
  254. package/dist/utils/frontmatter.js +2 -1
  255. package/dist/utils/frontmatter.js.map +1 -1
  256. package/dist/utils/shell.d.ts +3 -0
  257. package/dist/utils/shell.d.ts.map +1 -1
  258. package/dist/utils/shell.js +17 -5
  259. package/dist/utils/shell.js.map +1 -1
  260. package/dist/utils/syntax-highlight.d.ts +1 -0
  261. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  262. package/dist/utils/syntax-highlight.js +60 -1
  263. package/dist/utils/syntax-highlight.js.map +1 -1
  264. package/dist/utils/text.d.ts +8 -0
  265. package/dist/utils/text.d.ts.map +1 -0
  266. package/dist/utils/text.js +9 -0
  267. package/dist/utils/text.js.map +1 -0
  268. package/docs/compaction.md +0 -2
  269. package/docs/custom-provider.md +6 -6
  270. package/docs/environment-variables.md +8 -8
  271. package/docs/extensions.md +6 -5
  272. package/docs/json.md +7 -2
  273. package/docs/keybindings.md +1 -1
  274. package/docs/packages.md +2 -2
  275. package/docs/rpc.md +32 -3
  276. package/docs/sdk.md +7 -2
  277. package/docs/settings.md +9 -1
  278. package/docs/terminal-setup.md +11 -9
  279. package/docs/usage.md +4 -1
  280. package/docs/windows.md +24 -2
  281. package/examples/extensions/custom-provider-anthropic/package-lock.json +28 -5
  282. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  283. package/node_modules/@anthropic-ai/sdk/CHANGELOG.md +558 -0
  284. package/node_modules/@anthropic-ai/sdk/README.md +16 -1
  285. package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.d.mts.map +1 -1
  286. package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.d.ts.map +1 -1
  287. package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.js +14 -2
  288. package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.js.map +1 -1
  289. package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.mjs +14 -2
  290. package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.mjs.map +1 -1
  291. package/node_modules/@anthropic-ai/sdk/api-promise.d.mts +1 -0
  292. package/node_modules/@anthropic-ai/sdk/api-promise.d.mts.map +1 -1
  293. package/node_modules/@anthropic-ai/sdk/api-promise.d.ts +1 -0
  294. package/node_modules/@anthropic-ai/sdk/api-promise.d.ts.map +1 -1
  295. package/node_modules/@anthropic-ai/sdk/api-promise.mjs +1 -0
  296. package/node_modules/@anthropic-ai/sdk/api-promise.mjs.map +1 -1
  297. package/node_modules/@anthropic-ai/sdk/bin/migration-config.json +481 -0
  298. package/node_modules/@anthropic-ai/sdk/client.d.mts +165 -11
  299. package/node_modules/@anthropic-ai/sdk/client.d.mts.map +1 -1
  300. package/node_modules/@anthropic-ai/sdk/client.d.ts +165 -11
  301. package/node_modules/@anthropic-ai/sdk/client.d.ts.map +1 -1
  302. package/node_modules/@anthropic-ai/sdk/client.js +415 -38
  303. package/node_modules/@anthropic-ai/sdk/client.js.map +1 -1
  304. package/node_modules/@anthropic-ai/sdk/client.mjs +414 -37
  305. package/node_modules/@anthropic-ai/sdk/client.mjs.map +1 -1
  306. package/node_modules/@anthropic-ai/sdk/core/api-promise.d.mts +1 -0
  307. package/node_modules/@anthropic-ai/sdk/core/api-promise.d.mts.map +1 -1
  308. package/node_modules/@anthropic-ai/sdk/core/api-promise.d.ts +1 -0
  309. package/node_modules/@anthropic-ai/sdk/core/api-promise.d.ts.map +1 -1
  310. package/node_modules/@anthropic-ai/sdk/core/api-promise.js +7 -2
  311. package/node_modules/@anthropic-ai/sdk/core/api-promise.js.map +1 -1
  312. package/node_modules/@anthropic-ai/sdk/core/api-promise.mjs +8 -3
  313. package/node_modules/@anthropic-ai/sdk/core/api-promise.mjs.map +1 -1
  314. package/node_modules/@anthropic-ai/sdk/core/api.d.mts +11 -0
  315. package/node_modules/@anthropic-ai/sdk/core/api.d.mts.map +1 -0
  316. package/node_modules/@anthropic-ai/sdk/core/api.d.ts +11 -0
  317. package/node_modules/@anthropic-ai/sdk/core/api.d.ts.map +1 -0
  318. package/node_modules/@anthropic-ai/sdk/core/api.js +3 -0
  319. package/node_modules/@anthropic-ai/sdk/core/api.js.map +1 -0
  320. package/node_modules/@anthropic-ai/sdk/core/api.mjs +2 -0
  321. package/node_modules/@anthropic-ai/sdk/core/api.mjs.map +1 -0
  322. package/node_modules/@anthropic-ai/sdk/core/credentials.d.mts +131 -0
  323. package/node_modules/@anthropic-ai/sdk/core/credentials.d.mts.map +1 -0
  324. package/node_modules/@anthropic-ai/sdk/core/credentials.d.ts +131 -0
  325. package/node_modules/@anthropic-ai/sdk/core/credentials.d.ts.map +1 -0
  326. package/node_modules/@anthropic-ai/sdk/core/credentials.js +317 -0
  327. package/node_modules/@anthropic-ai/sdk/core/credentials.js.map +1 -0
  328. package/node_modules/@anthropic-ai/sdk/core/credentials.mjs +277 -0
  329. package/node_modules/@anthropic-ai/sdk/core/credentials.mjs.map +1 -0
  330. package/node_modules/@anthropic-ai/sdk/core/error.d.mts +12 -0
  331. package/node_modules/@anthropic-ai/sdk/core/error.d.mts.map +1 -1
  332. package/node_modules/@anthropic-ai/sdk/core/error.d.ts +12 -0
  333. package/node_modules/@anthropic-ai/sdk/core/error.d.ts.map +1 -1
  334. package/node_modules/@anthropic-ai/sdk/core/error.js +18 -1
  335. package/node_modules/@anthropic-ai/sdk/core/error.js.map +1 -1
  336. package/node_modules/@anthropic-ai/sdk/core/error.mjs +16 -0
  337. package/node_modules/@anthropic-ai/sdk/core/error.mjs.map +1 -1
  338. package/node_modules/@anthropic-ai/sdk/core/middleware.d.mts +154 -0
  339. package/node_modules/@anthropic-ai/sdk/core/middleware.d.mts.map +1 -0
  340. package/node_modules/@anthropic-ai/sdk/core/middleware.d.ts +154 -0
  341. package/node_modules/@anthropic-ai/sdk/core/middleware.d.ts.map +1 -0
  342. package/node_modules/@anthropic-ai/sdk/core/middleware.js +174 -0
  343. package/node_modules/@anthropic-ai/sdk/core/middleware.js.map +1 -0
  344. package/node_modules/@anthropic-ai/sdk/core/middleware.mjs +168 -0
  345. package/node_modules/@anthropic-ai/sdk/core/middleware.mjs.map +1 -0
  346. package/node_modules/@anthropic-ai/sdk/core/pagination.d.mts +20 -0
  347. package/node_modules/@anthropic-ai/sdk/core/pagination.d.mts.map +1 -1
  348. package/node_modules/@anthropic-ai/sdk/core/pagination.d.ts +20 -0
  349. package/node_modules/@anthropic-ai/sdk/core/pagination.d.ts.map +1 -1
  350. package/node_modules/@anthropic-ai/sdk/core/pagination.js +26 -1
  351. package/node_modules/@anthropic-ai/sdk/core/pagination.js.map +1 -1
  352. package/node_modules/@anthropic-ai/sdk/core/pagination.mjs +24 -0
  353. package/node_modules/@anthropic-ai/sdk/core/pagination.mjs.map +1 -1
  354. package/node_modules/@anthropic-ai/sdk/core/resource.d.mts.map +1 -1
  355. package/node_modules/@anthropic-ai/sdk/core/resource.d.ts.map +1 -1
  356. package/node_modules/@anthropic-ai/sdk/core/streaming.d.mts +9 -0
  357. package/node_modules/@anthropic-ai/sdk/core/streaming.d.mts.map +1 -1
  358. package/node_modules/@anthropic-ai/sdk/core/streaming.d.ts +9 -0
  359. package/node_modules/@anthropic-ai/sdk/core/streaming.d.ts.map +1 -1
  360. package/node_modules/@anthropic-ai/sdk/core/streaming.js +34 -1
  361. package/node_modules/@anthropic-ai/sdk/core/streaming.js.map +1 -1
  362. package/node_modules/@anthropic-ai/sdk/core/streaming.mjs +34 -1
  363. package/node_modules/@anthropic-ai/sdk/core/streaming.mjs.map +1 -1
  364. package/node_modules/@anthropic-ai/sdk/core/uploads.d.mts.map +1 -1
  365. package/node_modules/@anthropic-ai/sdk/core/uploads.d.ts.map +1 -1
  366. package/node_modules/@anthropic-ai/sdk/core/uploads.mjs.map +1 -1
  367. package/node_modules/@anthropic-ai/sdk/error.d.mts +1 -0
  368. package/node_modules/@anthropic-ai/sdk/error.d.mts.map +1 -1
  369. package/node_modules/@anthropic-ai/sdk/error.d.ts +1 -0
  370. package/node_modules/@anthropic-ai/sdk/error.d.ts.map +1 -1
  371. package/node_modules/@anthropic-ai/sdk/error.mjs +1 -0
  372. package/node_modules/@anthropic-ai/sdk/error.mjs.map +1 -1
  373. package/node_modules/@anthropic-ai/sdk/helpers/beta/environments.d.mts +23 -0
  374. package/node_modules/@anthropic-ai/sdk/helpers/beta/environments.d.mts.map +1 -0
  375. package/node_modules/@anthropic-ai/sdk/helpers/beta/environments.d.ts +23 -0
  376. package/node_modules/@anthropic-ai/sdk/helpers/beta/environments.d.ts.map +1 -0
  377. package/node_modules/@anthropic-ai/sdk/helpers/beta/environments.js +31 -0
  378. package/node_modules/@anthropic-ai/sdk/helpers/beta/environments.js.map +1 -0
  379. package/node_modules/@anthropic-ai/sdk/helpers/beta/environments.mjs +23 -0
  380. package/node_modules/@anthropic-ai/sdk/helpers/beta/environments.mjs.map +1 -0
  381. package/node_modules/@anthropic-ai/sdk/helpers/beta/json-schema.d.mts +6 -0
  382. package/node_modules/@anthropic-ai/sdk/helpers/beta/json-schema.d.mts.map +1 -1
  383. package/node_modules/@anthropic-ai/sdk/helpers/beta/json-schema.d.ts +6 -0
  384. package/node_modules/@anthropic-ai/sdk/helpers/beta/json-schema.d.ts.map +1 -1
  385. package/node_modules/@anthropic-ai/sdk/helpers/beta/json-schema.js +1 -0
  386. package/node_modules/@anthropic-ai/sdk/helpers/beta/json-schema.js.map +1 -1
  387. package/node_modules/@anthropic-ai/sdk/helpers/beta/json-schema.mjs +1 -0
  388. package/node_modules/@anthropic-ai/sdk/helpers/beta/json-schema.mjs.map +1 -1
  389. package/node_modules/@anthropic-ai/sdk/helpers/beta/mcp.d.mts +1 -1
  390. package/node_modules/@anthropic-ai/sdk/helpers/beta/mcp.d.mts.map +1 -1
  391. package/node_modules/@anthropic-ai/sdk/helpers/beta/mcp.d.ts +1 -1
  392. package/node_modules/@anthropic-ai/sdk/helpers/beta/mcp.d.ts.map +1 -1
  393. package/node_modules/@anthropic-ai/sdk/helpers/beta/mcp.js +1 -1
  394. package/node_modules/@anthropic-ai/sdk/helpers/beta/mcp.js.map +1 -1
  395. package/node_modules/@anthropic-ai/sdk/helpers/beta/mcp.mjs +1 -1
  396. package/node_modules/@anthropic-ai/sdk/helpers/beta/mcp.mjs.map +1 -1
  397. package/node_modules/@anthropic-ai/sdk/helpers/beta/memory.d.mts.map +1 -1
  398. package/node_modules/@anthropic-ai/sdk/helpers/beta/memory.d.ts.map +1 -1
  399. package/node_modules/@anthropic-ai/sdk/helpers/beta/zod.d.mts +11 -5
  400. package/node_modules/@anthropic-ai/sdk/helpers/beta/zod.d.mts.map +1 -1
  401. package/node_modules/@anthropic-ai/sdk/helpers/beta/zod.d.ts +11 -5
  402. package/node_modules/@anthropic-ai/sdk/helpers/beta/zod.d.ts.map +1 -1
  403. package/node_modules/@anthropic-ai/sdk/helpers/beta/zod.js +2 -2
  404. package/node_modules/@anthropic-ai/sdk/helpers/beta/zod.js.map +1 -1
  405. package/node_modules/@anthropic-ai/sdk/helpers/beta/zod.mjs +2 -2
  406. package/node_modules/@anthropic-ai/sdk/helpers/beta/zod.mjs.map +1 -1
  407. package/node_modules/@anthropic-ai/sdk/helpers/index.d.mts.map +1 -1
  408. package/node_modules/@anthropic-ai/sdk/helpers/index.d.ts.map +1 -1
  409. package/node_modules/@anthropic-ai/sdk/helpers/index.mjs.map +1 -1
  410. package/node_modules/@anthropic-ai/sdk/helpers/json-schema.d.mts.map +1 -1
  411. package/node_modules/@anthropic-ai/sdk/helpers/json-schema.d.ts.map +1 -1
  412. package/node_modules/@anthropic-ai/sdk/helpers/json-schema.mjs.map +1 -1
  413. package/node_modules/@anthropic-ai/sdk/helpers/zod.d.mts +2 -2
  414. package/node_modules/@anthropic-ai/sdk/helpers/zod.d.mts.map +1 -1
  415. package/node_modules/@anthropic-ai/sdk/helpers/zod.d.ts +2 -2
  416. package/node_modules/@anthropic-ai/sdk/helpers/zod.d.ts.map +1 -1
  417. package/node_modules/@anthropic-ai/sdk/helpers/zod.js +1 -2
  418. package/node_modules/@anthropic-ai/sdk/helpers/zod.js.map +1 -1
  419. package/node_modules/@anthropic-ai/sdk/helpers/zod.mjs +1 -2
  420. package/node_modules/@anthropic-ai/sdk/helpers/zod.mjs.map +1 -1
  421. package/node_modules/@anthropic-ai/sdk/index.d.mts +4 -2
  422. package/node_modules/@anthropic-ai/sdk/index.d.mts.map +1 -1
  423. package/node_modules/@anthropic-ai/sdk/index.d.ts +4 -2
  424. package/node_modules/@anthropic-ai/sdk/index.d.ts.map +1 -1
  425. package/node_modules/@anthropic-ai/sdk/index.js +5 -1
  426. package/node_modules/@anthropic-ai/sdk/index.js.map +1 -1
  427. package/node_modules/@anthropic-ai/sdk/index.mjs +3 -2
  428. package/node_modules/@anthropic-ai/sdk/index.mjs.map +1 -1
  429. package/node_modules/@anthropic-ai/sdk/internal/constants.d.mts.map +1 -1
  430. package/node_modules/@anthropic-ai/sdk/internal/constants.d.ts.map +1 -1
  431. package/node_modules/@anthropic-ai/sdk/internal/constants.js +0 -5
  432. package/node_modules/@anthropic-ai/sdk/internal/constants.js.map +1 -1
  433. package/node_modules/@anthropic-ai/sdk/internal/constants.mjs +0 -5
  434. package/node_modules/@anthropic-ai/sdk/internal/constants.mjs.map +1 -1
  435. package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.d.mts.map +1 -1
  436. package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.d.ts.map +1 -1
  437. package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.mjs.map +1 -1
  438. package/node_modules/@anthropic-ai/sdk/internal/decoders/line.mjs.map +1 -1
  439. package/node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs.map +1 -1
  440. package/node_modules/@anthropic-ai/sdk/internal/file-store.d.mts +136 -0
  441. package/node_modules/@anthropic-ai/sdk/internal/file-store.d.mts.map +1 -0
  442. package/node_modules/@anthropic-ai/sdk/internal/file-store.d.ts +136 -0
  443. package/node_modules/@anthropic-ai/sdk/internal/file-store.d.ts.map +1 -0
  444. package/node_modules/@anthropic-ai/sdk/internal/file-store.js +531 -0
  445. package/node_modules/@anthropic-ai/sdk/internal/file-store.js.map +1 -0
  446. package/node_modules/@anthropic-ai/sdk/internal/file-store.mjs +523 -0
  447. package/node_modules/@anthropic-ai/sdk/internal/file-store.mjs.map +1 -0
  448. package/node_modules/@anthropic-ai/sdk/internal/headers.d.mts +7 -0
  449. package/node_modules/@anthropic-ai/sdk/internal/headers.d.mts.map +1 -1
  450. package/node_modules/@anthropic-ai/sdk/internal/headers.d.ts +7 -0
  451. package/node_modules/@anthropic-ai/sdk/internal/headers.d.ts.map +1 -1
  452. package/node_modules/@anthropic-ai/sdk/internal/headers.js +45 -4
  453. package/node_modules/@anthropic-ai/sdk/internal/headers.js.map +1 -1
  454. package/node_modules/@anthropic-ai/sdk/internal/headers.mjs +43 -3
  455. package/node_modules/@anthropic-ai/sdk/internal/headers.mjs.map +1 -1
  456. package/node_modules/@anthropic-ai/sdk/internal/message-stream-utils.d.mts +10 -0
  457. package/node_modules/@anthropic-ai/sdk/internal/message-stream-utils.d.mts.map +1 -0
  458. package/node_modules/@anthropic-ai/sdk/internal/message-stream-utils.d.ts +10 -0
  459. package/node_modules/@anthropic-ai/sdk/internal/message-stream-utils.d.ts.map +1 -0
  460. package/node_modules/@anthropic-ai/sdk/internal/message-stream-utils.js +34 -0
  461. package/node_modules/@anthropic-ai/sdk/internal/message-stream-utils.js.map +1 -0
  462. package/node_modules/@anthropic-ai/sdk/internal/message-stream-utils.mjs +30 -0
  463. package/node_modules/@anthropic-ai/sdk/internal/message-stream-utils.mjs.map +1 -0
  464. package/node_modules/@anthropic-ai/sdk/internal/parse.d.mts +2 -1
  465. package/node_modules/@anthropic-ai/sdk/internal/parse.d.mts.map +1 -1
  466. package/node_modules/@anthropic-ai/sdk/internal/parse.d.ts +2 -1
  467. package/node_modules/@anthropic-ai/sdk/internal/parse.d.ts.map +1 -1
  468. package/node_modules/@anthropic-ai/sdk/internal/parse.js +16 -10
  469. package/node_modules/@anthropic-ai/sdk/internal/parse.js.map +1 -1
  470. package/node_modules/@anthropic-ai/sdk/internal/parse.mjs +15 -9
  471. package/node_modules/@anthropic-ai/sdk/internal/parse.mjs.map +1 -1
  472. package/node_modules/@anthropic-ai/sdk/internal/qs/formats.d.mts +7 -0
  473. package/node_modules/@anthropic-ai/sdk/internal/qs/formats.d.mts.map +1 -0
  474. package/node_modules/@anthropic-ai/sdk/internal/qs/formats.d.ts +7 -0
  475. package/node_modules/@anthropic-ai/sdk/internal/qs/formats.d.ts.map +1 -0
  476. package/node_modules/@anthropic-ai/sdk/internal/qs/formats.js +13 -0
  477. package/node_modules/@anthropic-ai/sdk/internal/qs/formats.js.map +1 -0
  478. package/node_modules/@anthropic-ai/sdk/internal/qs/formats.mjs +9 -0
  479. package/node_modules/@anthropic-ai/sdk/internal/qs/formats.mjs.map +1 -0
  480. package/node_modules/@anthropic-ai/sdk/internal/qs/index.d.mts +10 -0
  481. package/node_modules/@anthropic-ai/sdk/internal/qs/index.d.mts.map +1 -0
  482. package/node_modules/@anthropic-ai/sdk/internal/qs/index.d.ts +10 -0
  483. package/node_modules/@anthropic-ai/sdk/internal/qs/index.d.ts.map +1 -0
  484. package/node_modules/@anthropic-ai/sdk/internal/qs/index.js +14 -0
  485. package/node_modules/@anthropic-ai/sdk/internal/qs/index.js.map +1 -0
  486. package/node_modules/@anthropic-ai/sdk/internal/qs/index.mjs +10 -0
  487. package/node_modules/@anthropic-ai/sdk/internal/qs/index.mjs.map +1 -0
  488. package/node_modules/@anthropic-ai/sdk/internal/qs/stringify.d.mts +3 -0
  489. package/node_modules/@anthropic-ai/sdk/internal/qs/stringify.d.mts.map +1 -0
  490. package/node_modules/@anthropic-ai/sdk/internal/qs/stringify.d.ts +3 -0
  491. package/node_modules/@anthropic-ai/sdk/internal/qs/stringify.d.ts.map +1 -0
  492. package/node_modules/@anthropic-ai/sdk/internal/qs/stringify.js +277 -0
  493. package/node_modules/@anthropic-ai/sdk/internal/qs/stringify.js.map +1 -0
  494. package/node_modules/@anthropic-ai/sdk/internal/qs/stringify.mjs +274 -0
  495. package/node_modules/@anthropic-ai/sdk/internal/qs/stringify.mjs.map +1 -0
  496. package/node_modules/@anthropic-ai/sdk/internal/qs/types.d.mts +57 -0
  497. package/node_modules/@anthropic-ai/sdk/internal/qs/types.d.mts.map +1 -0
  498. package/node_modules/@anthropic-ai/sdk/internal/qs/types.d.ts +57 -0
  499. package/node_modules/@anthropic-ai/sdk/internal/qs/types.d.ts.map +1 -0
  500. package/node_modules/@anthropic-ai/sdk/internal/qs/types.js +3 -0
  501. package/node_modules/@anthropic-ai/sdk/internal/qs/types.js.map +1 -0
  502. package/node_modules/@anthropic-ai/sdk/internal/qs/types.mjs +2 -0
  503. package/node_modules/@anthropic-ai/sdk/internal/qs/types.mjs.map +1 -0
  504. package/node_modules/@anthropic-ai/sdk/internal/qs/utils.d.mts +15 -0
  505. package/node_modules/@anthropic-ai/sdk/internal/qs/utils.d.mts.map +1 -0
  506. package/node_modules/@anthropic-ai/sdk/internal/qs/utils.d.ts +15 -0
  507. package/node_modules/@anthropic-ai/sdk/internal/qs/utils.d.ts.map +1 -0
  508. package/node_modules/@anthropic-ai/sdk/internal/qs/utils.js +230 -0
  509. package/node_modules/@anthropic-ai/sdk/internal/qs/utils.js.map +1 -0
  510. package/node_modules/@anthropic-ai/sdk/internal/qs/utils.mjs +217 -0
  511. package/node_modules/@anthropic-ai/sdk/internal/qs/utils.mjs.map +1 -0
  512. package/node_modules/@anthropic-ai/sdk/internal/request-options.d.mts +52 -2
  513. package/node_modules/@anthropic-ai/sdk/internal/request-options.d.mts.map +1 -1
  514. package/node_modules/@anthropic-ai/sdk/internal/request-options.d.ts +52 -2
  515. package/node_modules/@anthropic-ai/sdk/internal/request-options.d.ts.map +1 -1
  516. package/node_modules/@anthropic-ai/sdk/internal/request-options.js +12 -1
  517. package/node_modules/@anthropic-ai/sdk/internal/request-options.js.map +1 -1
  518. package/node_modules/@anthropic-ai/sdk/internal/request-options.mjs +10 -0
  519. package/node_modules/@anthropic-ai/sdk/internal/request-options.mjs.map +1 -1
  520. package/node_modules/@anthropic-ai/sdk/internal/request-signal.d.mts +4 -0
  521. package/node_modules/@anthropic-ai/sdk/internal/request-signal.d.mts.map +1 -0
  522. package/node_modules/@anthropic-ai/sdk/internal/request-signal.d.ts +4 -0
  523. package/node_modules/@anthropic-ai/sdk/internal/request-signal.d.ts.map +1 -0
  524. package/node_modules/@anthropic-ai/sdk/internal/request-signal.js +50 -0
  525. package/node_modules/@anthropic-ai/sdk/internal/request-signal.js.map +1 -0
  526. package/node_modules/@anthropic-ai/sdk/internal/request-signal.mjs +45 -0
  527. package/node_modules/@anthropic-ai/sdk/internal/request-signal.mjs.map +1 -0
  528. package/node_modules/@anthropic-ai/sdk/internal/shims.d.mts +6 -0
  529. package/node_modules/@anthropic-ai/sdk/internal/shims.d.mts.map +1 -1
  530. package/node_modules/@anthropic-ai/sdk/internal/shims.d.ts +6 -0
  531. package/node_modules/@anthropic-ai/sdk/internal/shims.d.ts.map +1 -1
  532. package/node_modules/@anthropic-ai/sdk/internal/stainless-helper-header.d.mts +60 -0
  533. package/node_modules/@anthropic-ai/sdk/internal/stainless-helper-header.d.mts.map +1 -0
  534. package/node_modules/@anthropic-ai/sdk/internal/stainless-helper-header.d.ts +60 -0
  535. package/node_modules/@anthropic-ai/sdk/internal/stainless-helper-header.d.ts.map +1 -0
  536. package/node_modules/@anthropic-ai/sdk/{lib → internal}/stainless-helper-header.js +27 -6
  537. package/node_modules/@anthropic-ai/sdk/internal/stainless-helper-header.js.map +1 -0
  538. package/node_modules/@anthropic-ai/sdk/{lib → internal}/stainless-helper-header.mjs +25 -5
  539. package/node_modules/@anthropic-ai/sdk/internal/stainless-helper-header.mjs.map +1 -0
  540. package/node_modules/@anthropic-ai/sdk/internal/to-file.d.mts.map +1 -1
  541. package/node_modules/@anthropic-ai/sdk/internal/to-file.d.ts.map +1 -1
  542. package/node_modules/@anthropic-ai/sdk/internal/to-file.mjs.map +1 -1
  543. package/node_modules/@anthropic-ai/sdk/internal/types.d.mts +12 -6
  544. package/node_modules/@anthropic-ai/sdk/internal/types.d.mts.map +1 -1
  545. package/node_modules/@anthropic-ai/sdk/internal/types.d.ts +12 -6
  546. package/node_modules/@anthropic-ai/sdk/internal/types.d.ts.map +1 -1
  547. package/node_modules/@anthropic-ai/sdk/internal/uploads.d.mts.map +1 -1
  548. package/node_modules/@anthropic-ai/sdk/internal/uploads.d.ts.map +1 -1
  549. package/node_modules/@anthropic-ai/sdk/internal/uploads.mjs.map +1 -1
  550. package/node_modules/@anthropic-ai/sdk/internal/utils/abort.d.mts +13 -0
  551. package/node_modules/@anthropic-ai/sdk/internal/utils/abort.d.mts.map +1 -0
  552. package/node_modules/@anthropic-ai/sdk/internal/utils/abort.d.ts +13 -0
  553. package/node_modules/@anthropic-ai/sdk/internal/utils/abort.d.ts.map +1 -0
  554. package/node_modules/@anthropic-ai/sdk/internal/utils/abort.js +26 -0
  555. package/node_modules/@anthropic-ai/sdk/internal/utils/abort.js.map +1 -0
  556. package/node_modules/@anthropic-ai/sdk/internal/utils/abort.mjs +23 -0
  557. package/node_modules/@anthropic-ai/sdk/internal/utils/abort.mjs.map +1 -0
  558. package/node_modules/@anthropic-ai/sdk/internal/utils/async-queue.d.mts +31 -0
  559. package/node_modules/@anthropic-ai/sdk/internal/utils/async-queue.d.mts.map +1 -0
  560. package/node_modules/@anthropic-ai/sdk/internal/utils/async-queue.d.ts +31 -0
  561. package/node_modules/@anthropic-ai/sdk/internal/utils/async-queue.d.ts.map +1 -0
  562. package/node_modules/@anthropic-ai/sdk/internal/utils/async-queue.js +75 -0
  563. package/node_modules/@anthropic-ai/sdk/internal/utils/async-queue.js.map +1 -0
  564. package/node_modules/@anthropic-ai/sdk/internal/utils/async-queue.mjs +71 -0
  565. package/node_modules/@anthropic-ai/sdk/internal/utils/async-queue.mjs.map +1 -0
  566. package/node_modules/@anthropic-ai/sdk/internal/utils/backoff.d.mts +23 -0
  567. package/node_modules/@anthropic-ai/sdk/internal/utils/backoff.d.mts.map +1 -0
  568. package/node_modules/@anthropic-ai/sdk/internal/utils/backoff.d.ts +23 -0
  569. package/node_modules/@anthropic-ai/sdk/internal/utils/backoff.d.ts.map +1 -0
  570. package/node_modules/@anthropic-ai/sdk/internal/utils/backoff.js +44 -0
  571. package/node_modules/@anthropic-ai/sdk/internal/utils/backoff.js.map +1 -0
  572. package/node_modules/@anthropic-ai/sdk/internal/utils/backoff.mjs +36 -0
  573. package/node_modules/@anthropic-ai/sdk/internal/utils/backoff.mjs.map +1 -0
  574. package/node_modules/@anthropic-ai/sdk/internal/utils/base64.mjs.map +1 -1
  575. package/node_modules/@anthropic-ai/sdk/internal/utils/log.d.mts +11 -1
  576. package/node_modules/@anthropic-ai/sdk/internal/utils/log.d.mts.map +1 -1
  577. package/node_modules/@anthropic-ai/sdk/internal/utils/log.d.ts +11 -1
  578. package/node_modules/@anthropic-ai/sdk/internal/utils/log.d.ts.map +1 -1
  579. package/node_modules/@anthropic-ai/sdk/internal/utils/log.js +37 -11
  580. package/node_modules/@anthropic-ai/sdk/internal/utils/log.js.map +1 -1
  581. package/node_modules/@anthropic-ai/sdk/internal/utils/log.mjs +35 -10
  582. package/node_modules/@anthropic-ai/sdk/internal/utils/log.mjs.map +1 -1
  583. package/node_modules/@anthropic-ai/sdk/internal/utils/path.mjs.map +1 -1
  584. package/node_modules/@anthropic-ai/sdk/internal/utils/promise.d.mts +11 -0
  585. package/node_modules/@anthropic-ai/sdk/internal/utils/promise.d.mts.map +1 -0
  586. package/node_modules/@anthropic-ai/sdk/internal/utils/promise.d.ts +11 -0
  587. package/node_modules/@anthropic-ai/sdk/internal/utils/promise.d.ts.map +1 -0
  588. package/node_modules/@anthropic-ai/sdk/internal/utils/promise.js +18 -0
  589. package/node_modules/@anthropic-ai/sdk/internal/utils/promise.js.map +1 -0
  590. package/node_modules/@anthropic-ai/sdk/internal/utils/promise.mjs +15 -0
  591. package/node_modules/@anthropic-ai/sdk/internal/utils/promise.mjs.map +1 -0
  592. package/node_modules/@anthropic-ai/sdk/internal/utils/query.d.mts +0 -3
  593. package/node_modules/@anthropic-ai/sdk/internal/utils/query.d.mts.map +1 -1
  594. package/node_modules/@anthropic-ai/sdk/internal/utils/query.d.ts +0 -3
  595. package/node_modules/@anthropic-ai/sdk/internal/utils/query.d.ts.map +1 -1
  596. package/node_modules/@anthropic-ai/sdk/internal/utils/query.js +3 -16
  597. package/node_modules/@anthropic-ai/sdk/internal/utils/query.js.map +1 -1
  598. package/node_modules/@anthropic-ai/sdk/internal/utils/query.mjs +2 -16
  599. package/node_modules/@anthropic-ai/sdk/internal/utils/query.mjs.map +1 -1
  600. package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.d.mts +9 -1
  601. package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.d.mts.map +1 -1
  602. package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.d.ts +9 -1
  603. package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.d.ts.map +1 -1
  604. package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.js +23 -2
  605. package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.js.map +1 -1
  606. package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs +23 -2
  607. package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs.map +1 -1
  608. package/node_modules/@anthropic-ai/sdk/internal/utils/time.d.mts +3 -0
  609. package/node_modules/@anthropic-ai/sdk/internal/utils/time.d.mts.map +1 -0
  610. package/node_modules/@anthropic-ai/sdk/internal/utils/time.d.ts +3 -0
  611. package/node_modules/@anthropic-ai/sdk/internal/utils/time.d.ts.map +1 -0
  612. package/node_modules/@anthropic-ai/sdk/internal/utils/time.js +8 -0
  613. package/node_modules/@anthropic-ai/sdk/internal/utils/time.js.map +1 -0
  614. package/node_modules/@anthropic-ai/sdk/internal/utils/time.mjs +5 -0
  615. package/node_modules/@anthropic-ai/sdk/internal/utils/time.mjs.map +1 -0
  616. package/node_modules/@anthropic-ai/sdk/internal/utils/values.mjs.map +1 -1
  617. package/node_modules/@anthropic-ai/sdk/internal/utils.d.mts.map +1 -1
  618. package/node_modules/@anthropic-ai/sdk/internal/utils.d.ts.map +1 -1
  619. package/node_modules/@anthropic-ai/sdk/internal/utils.mjs.map +1 -1
  620. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.mts +2 -0
  621. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.mts.map +1 -1
  622. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.ts +2 -0
  623. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.ts.map +1 -1
  624. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.js +66 -31
  625. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.js.map +1 -1
  626. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.mjs +66 -31
  627. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.mjs.map +1 -1
  628. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.mts +2 -0
  629. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.mts.map +1 -1
  630. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.ts +2 -0
  631. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.ts.map +1 -1
  632. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.js +37 -26
  633. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.js.map +1 -1
  634. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.mjs +34 -23
  635. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.mjs.map +1 -1
  636. package/node_modules/@anthropic-ai/sdk/lib/beta-parser.d.mts.map +1 -1
  637. package/node_modules/@anthropic-ai/sdk/lib/beta-parser.d.ts.map +1 -1
  638. package/node_modules/@anthropic-ai/sdk/lib/beta-parser.mjs.map +1 -1
  639. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.d.mts +39 -0
  640. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.d.mts.map +1 -0
  641. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.d.ts +39 -0
  642. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.d.ts.map +1 -0
  643. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.js +245 -0
  644. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.js.map +1 -0
  645. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.mjs +208 -0
  646. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.mjs.map +1 -0
  647. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.d.mts +11 -0
  648. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.d.mts.map +1 -0
  649. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.d.ts +11 -0
  650. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.d.ts.map +1 -0
  651. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.js +72 -0
  652. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.js.map +1 -0
  653. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.mjs +35 -0
  654. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.mjs.map +1 -0
  655. package/node_modules/@anthropic-ai/sdk/lib/credentials/oidc-federation.d.mts +40 -0
  656. package/node_modules/@anthropic-ai/sdk/lib/credentials/oidc-federation.d.mts.map +1 -0
  657. package/node_modules/@anthropic-ai/sdk/lib/credentials/oidc-federation.d.ts +40 -0
  658. package/node_modules/@anthropic-ai/sdk/lib/credentials/oidc-federation.d.ts.map +1 -0
  659. package/node_modules/@anthropic-ai/sdk/lib/credentials/oidc-federation.js +82 -0
  660. package/node_modules/@anthropic-ai/sdk/lib/credentials/oidc-federation.js.map +1 -0
  661. package/node_modules/@anthropic-ai/sdk/lib/credentials/oidc-federation.mjs +79 -0
  662. package/node_modules/@anthropic-ai/sdk/lib/credentials/oidc-federation.mjs.map +1 -0
  663. package/node_modules/@anthropic-ai/sdk/lib/credentials/token-cache.d.mts +54 -0
  664. package/node_modules/@anthropic-ai/sdk/lib/credentials/token-cache.d.mts.map +1 -0
  665. package/node_modules/@anthropic-ai/sdk/lib/credentials/token-cache.d.ts +54 -0
  666. package/node_modules/@anthropic-ai/sdk/lib/credentials/token-cache.d.ts.map +1 -0
  667. package/node_modules/@anthropic-ai/sdk/lib/credentials/token-cache.js +112 -0
  668. package/node_modules/@anthropic-ai/sdk/lib/credentials/token-cache.js.map +1 -0
  669. package/node_modules/@anthropic-ai/sdk/lib/credentials/token-cache.mjs +108 -0
  670. package/node_modules/@anthropic-ai/sdk/lib/credentials/token-cache.mjs.map +1 -0
  671. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.d.mts +96 -0
  672. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.d.mts.map +1 -0
  673. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.d.ts +96 -0
  674. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.d.ts.map +1 -0
  675. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.js +266 -0
  676. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.js.map +1 -0
  677. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.mjs +224 -0
  678. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.mjs.map +1 -0
  679. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.d.mts +21 -0
  680. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.d.mts.map +1 -0
  681. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.d.ts +21 -0
  682. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.d.ts.map +1 -0
  683. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.js +130 -0
  684. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.js.map +1 -0
  685. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.mjs +94 -0
  686. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.mjs.map +1 -0
  687. package/node_modules/@anthropic-ai/sdk/lib/credentials.d.mts +4 -0
  688. package/node_modules/@anthropic-ai/sdk/lib/credentials.d.mts.map +1 -0
  689. package/node_modules/@anthropic-ai/sdk/lib/credentials.d.ts +4 -0
  690. package/node_modules/@anthropic-ai/sdk/lib/credentials.d.ts.map +1 -0
  691. package/node_modules/@anthropic-ai/sdk/lib/credentials.js +8 -0
  692. package/node_modules/@anthropic-ai/sdk/lib/credentials.js.map +1 -0
  693. package/node_modules/@anthropic-ai/sdk/lib/credentials.mjs +3 -0
  694. package/node_modules/@anthropic-ai/sdk/lib/credentials.mjs.map +1 -0
  695. package/node_modules/@anthropic-ai/sdk/lib/environments/index.d.mts +4 -0
  696. package/node_modules/@anthropic-ai/sdk/lib/environments/index.d.mts.map +1 -0
  697. package/node_modules/@anthropic-ai/sdk/lib/environments/index.d.ts +4 -0
  698. package/node_modules/@anthropic-ai/sdk/lib/environments/index.d.ts.map +1 -0
  699. package/node_modules/@anthropic-ai/sdk/lib/environments/index.js +18 -0
  700. package/node_modules/@anthropic-ai/sdk/lib/environments/index.js.map +1 -0
  701. package/node_modules/@anthropic-ai/sdk/lib/environments/index.mjs +4 -0
  702. package/node_modules/@anthropic-ai/sdk/lib/environments/index.mjs.map +1 -0
  703. package/node_modules/@anthropic-ai/sdk/lib/environments/poller.d.mts +95 -0
  704. package/node_modules/@anthropic-ai/sdk/lib/environments/poller.d.mts.map +1 -0
  705. package/node_modules/@anthropic-ai/sdk/lib/environments/poller.d.ts +95 -0
  706. package/node_modules/@anthropic-ai/sdk/lib/environments/poller.d.ts.map +1 -0
  707. package/node_modules/@anthropic-ai/sdk/lib/environments/poller.js +226 -0
  708. package/node_modules/@anthropic-ai/sdk/lib/environments/poller.js.map +1 -0
  709. package/node_modules/@anthropic-ai/sdk/lib/environments/poller.mjs +217 -0
  710. package/node_modules/@anthropic-ai/sdk/lib/environments/poller.mjs.map +1 -0
  711. package/node_modules/@anthropic-ai/sdk/lib/environments/worker.d.mts +227 -0
  712. package/node_modules/@anthropic-ai/sdk/lib/environments/worker.d.mts.map +1 -0
  713. package/node_modules/@anthropic-ai/sdk/lib/environments/worker.d.ts +227 -0
  714. package/node_modules/@anthropic-ai/sdk/lib/environments/worker.d.ts.map +1 -0
  715. package/node_modules/@anthropic-ai/sdk/lib/environments/worker.js +569 -0
  716. package/node_modules/@anthropic-ai/sdk/lib/environments/worker.js.map +1 -0
  717. package/node_modules/@anthropic-ai/sdk/lib/environments/worker.mjs +564 -0
  718. package/node_modules/@anthropic-ai/sdk/lib/environments/worker.mjs.map +1 -0
  719. package/node_modules/@anthropic-ai/sdk/lib/helper-client.d.mts +31 -0
  720. package/node_modules/@anthropic-ai/sdk/lib/helper-client.d.mts.map +1 -0
  721. package/node_modules/@anthropic-ai/sdk/lib/helper-client.d.ts +31 -0
  722. package/node_modules/@anthropic-ai/sdk/lib/helper-client.d.ts.map +1 -0
  723. package/node_modules/@anthropic-ai/sdk/lib/helper-client.js +58 -0
  724. package/node_modules/@anthropic-ai/sdk/lib/helper-client.js.map +1 -0
  725. package/node_modules/@anthropic-ai/sdk/lib/helper-client.mjs +55 -0
  726. package/node_modules/@anthropic-ai/sdk/lib/helper-client.mjs.map +1 -0
  727. package/node_modules/@anthropic-ai/sdk/lib/middleware.d.mts +98 -0
  728. package/node_modules/@anthropic-ai/sdk/lib/middleware.d.mts.map +1 -0
  729. package/node_modules/@anthropic-ai/sdk/lib/middleware.d.ts +98 -0
  730. package/node_modules/@anthropic-ai/sdk/lib/middleware.d.ts.map +1 -0
  731. package/node_modules/@anthropic-ai/sdk/lib/middleware.js +754 -0
  732. package/node_modules/@anthropic-ai/sdk/lib/middleware.js.map +1 -0
  733. package/node_modules/@anthropic-ai/sdk/lib/middleware.mjs +749 -0
  734. package/node_modules/@anthropic-ai/sdk/lib/middleware.mjs.map +1 -0
  735. package/node_modules/@anthropic-ai/sdk/lib/parser.d.mts.map +1 -1
  736. package/node_modules/@anthropic-ai/sdk/lib/parser.d.ts.map +1 -1
  737. package/node_modules/@anthropic-ai/sdk/lib/parser.mjs.map +1 -1
  738. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.d.mts +22 -0
  739. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.d.mts.map +1 -0
  740. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.d.ts +22 -0
  741. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.d.ts.map +1 -0
  742. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.js +88 -0
  743. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.js.map +1 -0
  744. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.mjs +85 -0
  745. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.mjs.map +1 -0
  746. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaRunnableTool.d.mts +38 -5
  747. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaRunnableTool.d.mts.map +1 -1
  748. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaRunnableTool.d.ts +38 -5
  749. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaRunnableTool.d.ts.map +1 -1
  750. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaRunnableTool.js +28 -0
  751. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaRunnableTool.js.map +1 -1
  752. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaRunnableTool.mjs +25 -1
  753. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaRunnableTool.mjs.map +1 -1
  754. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.d.mts +1 -1
  755. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.d.mts.map +1 -1
  756. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.d.ts +1 -1
  757. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.d.ts.map +1 -1
  758. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.js +107 -29
  759. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.js.map +1 -1
  760. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.mjs +105 -27
  761. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.mjs.map +1 -1
  762. package/node_modules/@anthropic-ai/sdk/lib/tools/CompactionControl.d.mts.map +1 -1
  763. package/node_modules/@anthropic-ai/sdk/lib/tools/CompactionControl.d.ts.map +1 -1
  764. package/node_modules/@anthropic-ai/sdk/lib/tools/SessionToolRunner.d.mts +179 -0
  765. package/node_modules/@anthropic-ai/sdk/lib/tools/SessionToolRunner.d.mts.map +1 -0
  766. package/node_modules/@anthropic-ai/sdk/lib/tools/SessionToolRunner.d.ts +179 -0
  767. package/node_modules/@anthropic-ai/sdk/lib/tools/SessionToolRunner.d.ts.map +1 -0
  768. package/node_modules/@anthropic-ai/sdk/lib/tools/SessionToolRunner.js +728 -0
  769. package/node_modules/@anthropic-ai/sdk/lib/tools/SessionToolRunner.js.map +1 -0
  770. package/node_modules/@anthropic-ai/sdk/lib/tools/SessionToolRunner.mjs +724 -0
  771. package/node_modules/@anthropic-ai/sdk/lib/tools/SessionToolRunner.mjs.map +1 -0
  772. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolError.d.mts.map +1 -1
  773. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolError.d.ts.map +1 -1
  774. package/node_modules/@anthropic-ai/sdk/lib/transform-json-schema.mjs.map +1 -1
  775. package/node_modules/@anthropic-ai/sdk/package.json +32 -15
  776. package/node_modules/@anthropic-ai/sdk/pagination.d.mts +1 -0
  777. package/node_modules/@anthropic-ai/sdk/pagination.d.mts.map +1 -1
  778. package/node_modules/@anthropic-ai/sdk/pagination.d.ts +1 -0
  779. package/node_modules/@anthropic-ai/sdk/pagination.d.ts.map +1 -1
  780. package/node_modules/@anthropic-ai/sdk/pagination.mjs +1 -0
  781. package/node_modules/@anthropic-ai/sdk/pagination.mjs.map +1 -1
  782. package/node_modules/@anthropic-ai/sdk/resource.d.mts +1 -0
  783. package/node_modules/@anthropic-ai/sdk/resource.d.mts.map +1 -1
  784. package/node_modules/@anthropic-ai/sdk/resource.d.ts +1 -0
  785. package/node_modules/@anthropic-ai/sdk/resource.d.ts.map +1 -1
  786. package/node_modules/@anthropic-ai/sdk/resource.mjs +1 -0
  787. package/node_modules/@anthropic-ai/sdk/resource.mjs.map +1 -1
  788. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.d.mts +608 -68
  789. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.d.mts.map +1 -1
  790. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.d.ts +608 -68
  791. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.d.ts.map +1 -1
  792. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.js +2 -2
  793. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.js.map +1 -1
  794. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.mjs +2 -2
  795. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.mjs.map +1 -1
  796. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/index.d.mts +1 -1
  797. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/index.d.mts.map +1 -1
  798. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/index.d.ts +1 -1
  799. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/index.d.ts.map +1 -1
  800. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/index.js.map +1 -1
  801. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/index.mjs.map +1 -1
  802. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/versions.d.mts.map +1 -1
  803. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/versions.d.ts.map +1 -1
  804. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/versions.mjs.map +1 -1
  805. package/node_modules/@anthropic-ai/sdk/resources/beta/agents.d.mts.map +1 -1
  806. package/node_modules/@anthropic-ai/sdk/resources/beta/agents.d.ts.map +1 -1
  807. package/node_modules/@anthropic-ai/sdk/resources/beta/agents.mjs.map +1 -1
  808. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.mts +51 -13
  809. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.mts.map +1 -1
  810. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.ts +51 -13
  811. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.ts.map +1 -1
  812. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.js +22 -2
  813. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.js.map +1 -1
  814. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.mjs +22 -2
  815. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.mjs.map +1 -1
  816. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.d.mts +306 -0
  817. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.d.mts.map +1 -0
  818. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.d.ts +306 -0
  819. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.d.ts.map +1 -0
  820. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.js +55 -0
  821. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.js.map +1 -0
  822. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.mjs +51 -0
  823. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.mjs.map +1 -0
  824. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.d.mts +698 -0
  825. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.d.mts.map +1 -0
  826. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.d.ts +698 -0
  827. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.d.ts.map +1 -0
  828. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.js +196 -0
  829. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.js.map +1 -0
  830. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.mjs +192 -0
  831. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.mjs.map +1 -0
  832. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.d.mts +309 -0
  833. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.d.mts.map +1 -0
  834. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.d.ts +309 -0
  835. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.d.ts.map +1 -0
  836. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.js +116 -0
  837. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.js.map +1 -0
  838. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.mjs +112 -0
  839. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.mjs.map +1 -0
  840. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.d.mts +426 -0
  841. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.d.mts.map +1 -0
  842. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.d.ts +426 -0
  843. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.d.ts.map +1 -0
  844. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.js +150 -0
  845. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.js.map +1 -0
  846. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.mjs +145 -0
  847. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.mjs.map +1 -0
  848. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/index.d.mts +3 -0
  849. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/index.d.mts.map +1 -0
  850. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/index.d.ts +3 -0
  851. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/index.d.ts.map +1 -0
  852. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/index.js +9 -0
  853. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/index.js.map +1 -0
  854. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/index.mjs +4 -0
  855. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/index.mjs.map +1 -0
  856. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/work.d.mts +501 -0
  857. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/work.d.mts.map +1 -0
  858. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/work.d.ts +501 -0
  859. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/work.d.ts.map +1 -0
  860. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/work.js +257 -0
  861. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/work.js.map +1 -0
  862. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/work.mjs +251 -0
  863. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/work.mjs.map +1 -0
  864. package/node_modules/@anthropic-ai/sdk/resources/beta/environments.d.mts +1 -388
  865. package/node_modules/@anthropic-ai/sdk/resources/beta/environments.d.mts.map +1 -1
  866. package/node_modules/@anthropic-ai/sdk/resources/beta/environments.d.ts +1 -388
  867. package/node_modules/@anthropic-ai/sdk/resources/beta/environments.d.ts.map +1 -1
  868. package/node_modules/@anthropic-ai/sdk/resources/beta/environments.js +2 -138
  869. package/node_modules/@anthropic-ai/sdk/resources/beta/environments.js.map +1 -1
  870. package/node_modules/@anthropic-ai/sdk/resources/beta/environments.mjs +1 -136
  871. package/node_modules/@anthropic-ai/sdk/resources/beta/environments.mjs.map +1 -1
  872. package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.mts +22 -22
  873. package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.mts.map +1 -1
  874. package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.ts +22 -22
  875. package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.ts.map +1 -1
  876. package/node_modules/@anthropic-ai/sdk/resources/beta/files.js +5 -5
  877. package/node_modules/@anthropic-ai/sdk/resources/beta/files.js.map +1 -1
  878. package/node_modules/@anthropic-ai/sdk/resources/beta/files.mjs +5 -5
  879. package/node_modules/@anthropic-ai/sdk/resources/beta/files.mjs.map +1 -1
  880. package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.mts +11 -6
  881. package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.mts.map +1 -1
  882. package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.ts +11 -6
  883. package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.ts.map +1 -1
  884. package/node_modules/@anthropic-ai/sdk/resources/beta/index.js +23 -13
  885. package/node_modules/@anthropic-ai/sdk/resources/beta/index.js.map +1 -1
  886. package/node_modules/@anthropic-ai/sdk/resources/beta/index.mjs +6 -1
  887. package/node_modules/@anthropic-ai/sdk/resources/beta/index.mjs.map +1 -1
  888. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/index.d.mts +1 -1
  889. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/index.d.mts.map +1 -1
  890. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/index.d.ts +1 -1
  891. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/index.d.ts.map +1 -1
  892. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/index.js.map +1 -1
  893. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/index.mjs.map +1 -1
  894. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.d.mts +136 -24
  895. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.d.mts.map +1 -1
  896. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.d.ts +136 -24
  897. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.d.ts.map +1 -1
  898. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.js +10 -10
  899. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.js.map +1 -1
  900. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.mjs +10 -10
  901. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.mjs.map +1 -1
  902. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.d.mts +60 -16
  903. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.d.mts.map +1 -1
  904. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.d.ts +60 -16
  905. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.d.ts.map +1 -1
  906. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.js +12 -12
  907. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.js.map +1 -1
  908. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.mjs +12 -12
  909. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.mjs.map +1 -1
  910. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.d.mts +105 -7
  911. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.d.mts.map +1 -1
  912. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.d.ts +105 -7
  913. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.d.ts.map +1 -1
  914. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.js +6 -6
  915. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.js.map +1 -1
  916. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.mjs +6 -6
  917. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.mjs.map +1 -1
  918. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores.d.mts.map +1 -1
  919. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores.d.ts.map +1 -1
  920. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores.mjs.map +1 -1
  921. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.d.mts +81 -30
  922. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.d.mts.map +1 -1
  923. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.d.ts +81 -30
  924. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.d.ts.map +1 -1
  925. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.js +12 -9
  926. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.js.map +1 -1
  927. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.mjs +12 -9
  928. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.mjs.map +1 -1
  929. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.mts +1 -1
  930. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.mts.map +1 -1
  931. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.ts +1 -1
  932. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.ts.map +1 -1
  933. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.js.map +1 -1
  934. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.mjs.map +1 -1
  935. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.mts +2453 -380
  936. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.mts.map +1 -1
  937. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.ts +2453 -380
  938. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.ts.map +1 -1
  939. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.js +16 -22
  940. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.js.map +1 -1
  941. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.mjs +16 -22
  942. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.mjs.map +1 -1
  943. package/node_modules/@anthropic-ai/sdk/resources/beta/messages.d.mts.map +1 -1
  944. package/node_modules/@anthropic-ai/sdk/resources/beta/messages.d.ts.map +1 -1
  945. package/node_modules/@anthropic-ai/sdk/resources/beta/messages.mjs.map +1 -1
  946. package/node_modules/@anthropic-ai/sdk/resources/beta/models.d.mts +6 -0
  947. package/node_modules/@anthropic-ai/sdk/resources/beta/models.d.mts.map +1 -1
  948. package/node_modules/@anthropic-ai/sdk/resources/beta/models.d.ts +6 -0
  949. package/node_modules/@anthropic-ai/sdk/resources/beta/models.d.ts.map +1 -1
  950. package/node_modules/@anthropic-ai/sdk/resources/beta/models.mjs.map +1 -1
  951. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.d.mts +643 -19
  952. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.d.mts.map +1 -1
  953. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.d.ts +643 -19
  954. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.d.ts.map +1 -1
  955. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.js +29 -2
  956. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.js.map +1 -1
  957. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.mjs +27 -1
  958. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.mjs.map +1 -1
  959. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/index.d.mts +3 -2
  960. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/index.d.mts.map +1 -1
  961. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/index.d.ts +3 -2
  962. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/index.d.ts.map +1 -1
  963. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/index.js +3 -1
  964. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/index.js.map +1 -1
  965. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/index.mjs +1 -0
  966. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/index.mjs.map +1 -1
  967. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/resources.d.mts.map +1 -1
  968. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/resources.d.ts.map +1 -1
  969. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/resources.mjs.map +1 -1
  970. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.d.mts +455 -8
  971. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.d.mts.map +1 -1
  972. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.d.ts +455 -8
  973. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.d.ts.map +1 -1
  974. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.js +5 -1
  975. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.js.map +1 -1
  976. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.mjs +6 -2
  977. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.mjs.map +1 -1
  978. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/events.d.mts +78 -0
  979. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/events.d.mts.map +1 -0
  980. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/events.d.ts +78 -0
  981. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/events.d.ts.map +1 -0
  982. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/events.js +61 -0
  983. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/events.js.map +1 -0
  984. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/events.mjs +57 -0
  985. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/events.mjs.map +1 -0
  986. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/index.d.mts +3 -0
  987. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/index.d.mts.map +1 -0
  988. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/index.d.ts +3 -0
  989. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/index.d.ts.map +1 -0
  990. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/index.js +9 -0
  991. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/index.js.map +1 -0
  992. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/index.mjs +4 -0
  993. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/index.mjs.map +1 -0
  994. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.d.mts +195 -0
  995. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.d.mts.map +1 -0
  996. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.d.ts +195 -0
  997. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.d.ts.map +1 -0
  998. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.js +88 -0
  999. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.js.map +1 -0
  1000. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.mjs +83 -0
  1001. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.mjs.map +1 -0
  1002. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads.d.mts +2 -0
  1003. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads.d.mts.map +1 -0
  1004. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads.d.ts +2 -0
  1005. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads.d.ts.map +1 -0
  1006. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads.js +6 -0
  1007. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads.js.map +1 -0
  1008. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads.mjs +3 -0
  1009. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads.mjs.map +1 -0
  1010. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions.d.mts.map +1 -1
  1011. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions.d.ts.map +1 -1
  1012. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions.mjs.map +1 -1
  1013. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.d.mts +1 -1
  1014. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.d.mts.map +1 -1
  1015. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.d.ts +1 -1
  1016. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.d.ts.map +1 -1
  1017. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.js.map +1 -1
  1018. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.mjs.map +1 -1
  1019. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.d.mts +13 -11
  1020. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.d.mts.map +1 -1
  1021. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.d.ts +13 -11
  1022. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.d.ts.map +1 -1
  1023. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.js +5 -3
  1024. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.js.map +1 -1
  1025. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.mjs +5 -3
  1026. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.mjs.map +1 -1
  1027. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.d.mts +31 -3
  1028. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.d.mts.map +1 -1
  1029. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.d.ts +31 -3
  1030. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.d.ts.map +1 -1
  1031. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.js +32 -3
  1032. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.js.map +1 -1
  1033. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.mjs +32 -3
  1034. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.mjs.map +1 -1
  1035. package/node_modules/@anthropic-ai/sdk/resources/beta/skills.d.mts.map +1 -1
  1036. package/node_modules/@anthropic-ai/sdk/resources/beta/skills.d.ts.map +1 -1
  1037. package/node_modules/@anthropic-ai/sdk/resources/beta/skills.mjs.map +1 -1
  1038. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/certificates.d.mts +163 -0
  1039. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/certificates.d.mts.map +1 -0
  1040. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/certificates.d.ts +163 -0
  1041. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/certificates.d.ts.map +1 -0
  1042. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/certificates.js +129 -0
  1043. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/certificates.js.map +1 -0
  1044. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/certificates.mjs +125 -0
  1045. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/certificates.mjs.map +1 -0
  1046. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/index.d.mts +3 -0
  1047. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/index.d.mts.map +1 -0
  1048. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/index.d.ts +3 -0
  1049. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/index.d.ts.map +1 -0
  1050. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/index.js +9 -0
  1051. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/index.js.map +1 -0
  1052. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/index.mjs +4 -0
  1053. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/index.mjs.map +1 -0
  1054. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/tunnels.d.mts +212 -0
  1055. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/tunnels.d.mts.map +1 -0
  1056. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/tunnels.d.ts +212 -0
  1057. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/tunnels.d.ts.map +1 -0
  1058. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/tunnels.js +181 -0
  1059. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/tunnels.js.map +1 -0
  1060. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/tunnels.mjs +176 -0
  1061. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels/tunnels.mjs.map +1 -0
  1062. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels.d.mts +2 -0
  1063. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels.d.mts.map +1 -0
  1064. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels.d.ts +2 -0
  1065. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels.d.ts.map +1 -0
  1066. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels.js +6 -0
  1067. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels.js.map +1 -0
  1068. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels.mjs +3 -0
  1069. package/node_modules/@anthropic-ai/sdk/resources/beta/tunnels.mjs.map +1 -0
  1070. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.d.mts +62 -0
  1071. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.d.mts.map +1 -1
  1072. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.d.ts +62 -0
  1073. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.d.ts.map +1 -1
  1074. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.js +5 -5
  1075. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.mjs +5 -5
  1076. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.mjs.map +1 -1
  1077. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.d.mts +256 -4
  1078. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.d.mts.map +1 -1
  1079. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.d.ts +256 -4
  1080. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.d.ts.map +1 -1
  1081. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.js +22 -0
  1082. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.js.map +1 -1
  1083. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.mjs +22 -0
  1084. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.mjs.map +1 -1
  1085. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/index.d.mts +1 -1
  1086. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/index.d.mts.map +1 -1
  1087. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/index.d.ts +1 -1
  1088. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/index.d.ts.map +1 -1
  1089. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/index.js.map +1 -1
  1090. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/index.mjs.map +1 -1
  1091. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/vaults.d.mts +2 -2
  1092. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/vaults.d.mts.map +1 -1
  1093. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/vaults.d.ts +2 -2
  1094. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/vaults.d.ts.map +1 -1
  1095. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/vaults.js.map +1 -1
  1096. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults/vaults.mjs.map +1 -1
  1097. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults.d.mts.map +1 -1
  1098. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults.d.ts.map +1 -1
  1099. package/node_modules/@anthropic-ai/sdk/resources/beta/vaults.mjs.map +1 -1
  1100. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.d.mts +466 -0
  1101. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.d.mts.map +1 -0
  1102. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.d.ts +466 -0
  1103. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.d.ts.map +1 -0
  1104. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.js +20 -0
  1105. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.js.map +1 -0
  1106. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.mjs +16 -0
  1107. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.mjs.map +1 -0
  1108. package/node_modules/@anthropic-ai/sdk/resources/beta.d.mts.map +1 -1
  1109. package/node_modules/@anthropic-ai/sdk/resources/beta.d.ts.map +1 -1
  1110. package/node_modules/@anthropic-ai/sdk/resources/beta.mjs.map +1 -1
  1111. package/node_modules/@anthropic-ai/sdk/resources/completions.d.mts +18 -11
  1112. package/node_modules/@anthropic-ai/sdk/resources/completions.d.mts.map +1 -1
  1113. package/node_modules/@anthropic-ai/sdk/resources/completions.d.ts +18 -11
  1114. package/node_modules/@anthropic-ai/sdk/resources/completions.d.ts.map +1 -1
  1115. package/node_modules/@anthropic-ai/sdk/resources/completions.mjs.map +1 -1
  1116. package/node_modules/@anthropic-ai/sdk/resources/files.d.mts +105 -0
  1117. package/node_modules/@anthropic-ai/sdk/resources/files.d.mts.map +1 -0
  1118. package/node_modules/@anthropic-ai/sdk/resources/files.d.ts +105 -0
  1119. package/node_modules/@anthropic-ai/sdk/resources/files.d.ts.map +1 -0
  1120. package/node_modules/@anthropic-ai/sdk/resources/files.js +52 -0
  1121. package/node_modules/@anthropic-ai/sdk/resources/files.js.map +1 -0
  1122. package/node_modules/@anthropic-ai/sdk/resources/files.mjs +48 -0
  1123. package/node_modules/@anthropic-ai/sdk/resources/files.mjs.map +1 -0
  1124. package/node_modules/@anthropic-ai/sdk/resources/index.d.mts +4 -2
  1125. package/node_modules/@anthropic-ai/sdk/resources/index.d.mts.map +1 -1
  1126. package/node_modules/@anthropic-ai/sdk/resources/index.d.ts +4 -2
  1127. package/node_modules/@anthropic-ai/sdk/resources/index.d.ts.map +1 -1
  1128. package/node_modules/@anthropic-ai/sdk/resources/index.js +5 -1
  1129. package/node_modules/@anthropic-ai/sdk/resources/index.js.map +1 -1
  1130. package/node_modules/@anthropic-ai/sdk/resources/index.mjs +2 -0
  1131. package/node_modules/@anthropic-ai/sdk/resources/index.mjs.map +1 -1
  1132. package/node_modules/@anthropic-ai/sdk/resources/messages/batches.d.mts +20 -11
  1133. package/node_modules/@anthropic-ai/sdk/resources/messages/batches.d.mts.map +1 -1
  1134. package/node_modules/@anthropic-ai/sdk/resources/messages/batches.d.ts +20 -11
  1135. package/node_modules/@anthropic-ai/sdk/resources/messages/batches.d.ts.map +1 -1
  1136. package/node_modules/@anthropic-ai/sdk/resources/messages/batches.js +17 -9
  1137. package/node_modules/@anthropic-ai/sdk/resources/messages/batches.js.map +1 -1
  1138. package/node_modules/@anthropic-ai/sdk/resources/messages/batches.mjs +17 -9
  1139. package/node_modules/@anthropic-ai/sdk/resources/messages/batches.mjs.map +1 -1
  1140. package/node_modules/@anthropic-ai/sdk/resources/messages/index.d.mts +1 -1
  1141. package/node_modules/@anthropic-ai/sdk/resources/messages/index.d.mts.map +1 -1
  1142. package/node_modules/@anthropic-ai/sdk/resources/messages/index.d.ts +1 -1
  1143. package/node_modules/@anthropic-ai/sdk/resources/messages/index.d.ts.map +1 -1
  1144. package/node_modules/@anthropic-ai/sdk/resources/messages/index.js.map +1 -1
  1145. package/node_modules/@anthropic-ai/sdk/resources/messages/index.mjs.map +1 -1
  1146. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.mts +1782 -162
  1147. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.mts.map +1 -1
  1148. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.ts +1782 -162
  1149. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.ts.map +1 -1
  1150. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.js +23 -28
  1151. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.js.map +1 -1
  1152. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.mjs +23 -28
  1153. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.mjs.map +1 -1
  1154. package/node_modules/@anthropic-ai/sdk/resources/messages.d.mts.map +1 -1
  1155. package/node_modules/@anthropic-ai/sdk/resources/messages.d.ts.map +1 -1
  1156. package/node_modules/@anthropic-ai/sdk/resources/messages.mjs.map +1 -1
  1157. package/node_modules/@anthropic-ai/sdk/resources/models.d.mts.map +1 -1
  1158. package/node_modules/@anthropic-ai/sdk/resources/models.d.ts.map +1 -1
  1159. package/node_modules/@anthropic-ai/sdk/resources/models.mjs.map +1 -1
  1160. package/node_modules/@anthropic-ai/sdk/resources/skills/index.d.mts +3 -0
  1161. package/node_modules/@anthropic-ai/sdk/resources/skills/index.d.mts.map +1 -0
  1162. package/node_modules/@anthropic-ai/sdk/resources/skills/index.d.ts +3 -0
  1163. package/node_modules/@anthropic-ai/sdk/resources/skills/index.d.ts.map +1 -0
  1164. package/node_modules/@anthropic-ai/sdk/resources/skills/index.js +9 -0
  1165. package/node_modules/@anthropic-ai/sdk/resources/skills/index.js.map +1 -0
  1166. package/node_modules/@anthropic-ai/sdk/resources/skills/index.mjs +4 -0
  1167. package/node_modules/@anthropic-ai/sdk/resources/skills/index.mjs.map +1 -0
  1168. package/node_modules/@anthropic-ai/sdk/resources/skills/skills.d.mts +129 -0
  1169. package/node_modules/@anthropic-ai/sdk/resources/skills/skills.d.mts.map +1 -0
  1170. package/node_modules/@anthropic-ai/sdk/resources/skills/skills.d.ts +129 -0
  1171. package/node_modules/@anthropic-ai/sdk/resources/skills/skills.d.ts.map +1 -0
  1172. package/node_modules/@anthropic-ai/sdk/resources/skills/skills.js +44 -0
  1173. package/node_modules/@anthropic-ai/sdk/resources/skills/skills.js.map +1 -0
  1174. package/node_modules/@anthropic-ai/sdk/resources/skills/skills.mjs +39 -0
  1175. package/node_modules/@anthropic-ai/sdk/resources/skills/skills.mjs.map +1 -0
  1176. package/node_modules/@anthropic-ai/sdk/resources/skills/versions.d.mts +104 -0
  1177. package/node_modules/@anthropic-ai/sdk/resources/skills/versions.d.mts.map +1 -0
  1178. package/node_modules/@anthropic-ai/sdk/resources/skills/versions.d.ts +104 -0
  1179. package/node_modules/@anthropic-ai/sdk/resources/skills/versions.d.ts.map +1 -0
  1180. package/node_modules/@anthropic-ai/sdk/resources/skills/versions.js +41 -0
  1181. package/node_modules/@anthropic-ai/sdk/resources/skills/versions.js.map +1 -0
  1182. package/node_modules/@anthropic-ai/sdk/resources/skills/versions.mjs +37 -0
  1183. package/node_modules/@anthropic-ai/sdk/resources/skills/versions.mjs.map +1 -0
  1184. package/node_modules/@anthropic-ai/sdk/resources/skills.d.mts +2 -0
  1185. package/node_modules/@anthropic-ai/sdk/resources/skills.d.mts.map +1 -0
  1186. package/node_modules/@anthropic-ai/sdk/resources/skills.d.ts +2 -0
  1187. package/node_modules/@anthropic-ai/sdk/resources/skills.d.ts.map +1 -0
  1188. package/node_modules/@anthropic-ai/sdk/resources/skills.js +6 -0
  1189. package/node_modules/@anthropic-ai/sdk/resources/skills.js.map +1 -0
  1190. package/node_modules/@anthropic-ai/sdk/resources/skills.mjs +3 -0
  1191. package/node_modules/@anthropic-ai/sdk/resources/skills.mjs.map +1 -0
  1192. package/node_modules/@anthropic-ai/sdk/resources.d.mts.map +1 -1
  1193. package/node_modules/@anthropic-ai/sdk/resources.d.ts.map +1 -1
  1194. package/node_modules/@anthropic-ai/sdk/resources.mjs.map +1 -1
  1195. package/node_modules/@anthropic-ai/sdk/src/_vendor/partial-json-parser/parser.ts +18 -2
  1196. package/node_modules/@anthropic-ai/sdk/src/client.ts +749 -42
  1197. package/node_modules/@anthropic-ai/sdk/src/core/api-promise.ts +14 -4
  1198. package/node_modules/@anthropic-ai/sdk/src/core/api.ts +11 -0
  1199. package/node_modules/@anthropic-ai/sdk/src/core/credentials.ts +379 -0
  1200. package/node_modules/@anthropic-ai/sdk/src/core/error.ts +17 -0
  1201. package/node_modules/@anthropic-ai/sdk/src/core/middleware.ts +339 -0
  1202. package/node_modules/@anthropic-ai/sdk/src/core/pagination.ts +60 -0
  1203. package/node_modules/@anthropic-ai/sdk/src/core/streaming.ts +38 -1
  1204. package/node_modules/@anthropic-ai/sdk/src/helpers/beta/environments.ts +34 -0
  1205. package/node_modules/@anthropic-ai/sdk/src/helpers/beta/json-schema.ts +7 -0
  1206. package/node_modules/@anthropic-ai/sdk/src/helpers/beta/mcp.ts +1 -1
  1207. package/node_modules/@anthropic-ai/sdk/src/helpers/beta/zod.ts +14 -10
  1208. package/node_modules/@anthropic-ai/sdk/src/helpers/zod.ts +3 -6
  1209. package/node_modules/@anthropic-ai/sdk/src/index.ts +16 -1
  1210. package/node_modules/@anthropic-ai/sdk/src/internal/constants.ts +0 -5
  1211. package/node_modules/@anthropic-ai/sdk/src/internal/file-store.ts +550 -0
  1212. package/node_modules/@anthropic-ai/sdk/src/internal/headers.ts +47 -4
  1213. package/node_modules/@anthropic-ai/sdk/src/internal/message-stream-utils.ts +30 -0
  1214. package/node_modules/@anthropic-ai/sdk/src/internal/parse.ts +16 -11
  1215. package/node_modules/@anthropic-ai/sdk/src/internal/qs/LICENSE.md +13 -0
  1216. package/node_modules/@anthropic-ai/sdk/src/internal/qs/README.md +3 -0
  1217. package/node_modules/@anthropic-ai/sdk/src/internal/qs/formats.ts +10 -0
  1218. package/node_modules/@anthropic-ai/sdk/src/internal/qs/index.ts +13 -0
  1219. package/node_modules/@anthropic-ai/sdk/src/internal/qs/stringify.ts +385 -0
  1220. package/node_modules/@anthropic-ai/sdk/src/internal/qs/types.ts +71 -0
  1221. package/node_modules/@anthropic-ai/sdk/src/internal/qs/utils.ts +265 -0
  1222. package/node_modules/@anthropic-ai/sdk/src/internal/request-options.ts +55 -2
  1223. package/node_modules/@anthropic-ai/sdk/src/internal/request-signal.ts +68 -0
  1224. package/node_modules/@anthropic-ai/sdk/src/internal/stainless-helper-header.ts +122 -0
  1225. package/node_modules/@anthropic-ai/sdk/src/internal/utils/abort.ts +21 -0
  1226. package/node_modules/@anthropic-ai/sdk/src/internal/utils/async-queue.ts +66 -0
  1227. package/node_modules/@anthropic-ai/sdk/src/internal/utils/backoff.ts +41 -0
  1228. package/node_modules/@anthropic-ai/sdk/src/internal/utils/log.ts +41 -10
  1229. package/node_modules/@anthropic-ai/sdk/src/internal/utils/promise.ts +18 -0
  1230. package/node_modules/@anthropic-ai/sdk/src/internal/utils/query.ts +2 -18
  1231. package/node_modules/@anthropic-ai/sdk/src/internal/utils/sleep.ts +25 -2
  1232. package/node_modules/@anthropic-ai/sdk/src/internal/utils/time.ts +4 -0
  1233. package/node_modules/@anthropic-ai/sdk/src/lib/BetaMessageStream.ts +72 -33
  1234. package/node_modules/@anthropic-ai/sdk/src/lib/MessageStream.ts +36 -24
  1235. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/credential-chain.ts +292 -0
  1236. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/identity-token.ts +37 -0
  1237. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/oidc-federation.ts +140 -0
  1238. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/token-cache.ts +130 -0
  1239. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/types.ts +295 -0
  1240. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/user-oauth.ts +144 -0
  1241. package/node_modules/@anthropic-ai/sdk/src/lib/credentials.ts +3 -0
  1242. package/node_modules/@anthropic-ai/sdk/src/lib/environments/index.ts +23 -0
  1243. package/node_modules/@anthropic-ai/sdk/src/lib/environments/poller.ts +299 -0
  1244. package/node_modules/@anthropic-ai/sdk/src/lib/environments/worker.ts +779 -0
  1245. package/node_modules/@anthropic-ai/sdk/src/lib/helper-client.ts +86 -0
  1246. package/node_modules/@anthropic-ai/sdk/src/lib/middleware.ts +994 -0
  1247. package/node_modules/@anthropic-ai/sdk/src/lib/sessions/accumulate.ts +130 -0
  1248. package/node_modules/@anthropic-ai/sdk/src/lib/tools/BetaRunnableTool.ts +71 -7
  1249. package/node_modules/@anthropic-ai/sdk/src/lib/tools/BetaToolRunner.ts +135 -35
  1250. package/node_modules/@anthropic-ai/sdk/src/lib/tools/SessionToolRunner.ts +885 -0
  1251. package/node_modules/@anthropic-ai/sdk/src/resources/beta/agents/agents.ts +806 -69
  1252. package/node_modules/@anthropic-ai/sdk/src/resources/beta/agents/index.ts +34 -0
  1253. package/node_modules/@anthropic-ai/sdk/src/resources/beta/beta.ts +690 -28
  1254. package/node_modules/@anthropic-ai/sdk/src/resources/beta/deployment-runs.ts +441 -0
  1255. package/node_modules/@anthropic-ai/sdk/src/resources/beta/deployments.ts +996 -0
  1256. package/node_modules/@anthropic-ai/sdk/src/resources/beta/dreams.ts +453 -0
  1257. package/node_modules/@anthropic-ai/sdk/src/resources/beta/environments/environments.ts +626 -0
  1258. package/node_modules/@anthropic-ai/sdk/src/resources/beta/environments/index.ts +42 -0
  1259. package/node_modules/@anthropic-ai/sdk/src/resources/beta/environments/work.ts +705 -0
  1260. package/node_modules/@anthropic-ai/sdk/src/resources/beta/environments.ts +1 -540
  1261. package/node_modules/@anthropic-ai/sdk/src/resources/beta/files.ts +28 -28
  1262. package/node_modules/@anthropic-ai/sdk/src/resources/beta/index.ts +312 -5
  1263. package/node_modules/@anthropic-ai/sdk/src/resources/beta/memory-stores/index.ts +1 -0
  1264. package/node_modules/@anthropic-ai/sdk/src/resources/beta/memory-stores/memories.ts +141 -31
  1265. package/node_modules/@anthropic-ai/sdk/src/resources/beta/memory-stores/memory-stores.ts +66 -20
  1266. package/node_modules/@anthropic-ai/sdk/src/resources/beta/memory-stores/memory-versions.ts +112 -9
  1267. package/node_modules/@anthropic-ai/sdk/src/resources/beta/messages/batches.ts +90 -33
  1268. package/node_modules/@anthropic-ai/sdk/src/resources/beta/messages/index.ts +90 -0
  1269. package/node_modules/@anthropic-ai/sdk/src/resources/beta/messages/messages.ts +2755 -211
  1270. package/node_modules/@anthropic-ai/sdk/src/resources/beta/models.ts +7 -0
  1271. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/events.ts +888 -18
  1272. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/index.ts +60 -1
  1273. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/sessions.ts +669 -14
  1274. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/threads/events.ts +123 -0
  1275. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/threads/index.ts +15 -0
  1276. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/threads/threads.ts +330 -0
  1277. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/threads.ts +3 -0
  1278. package/node_modules/@anthropic-ai/sdk/src/resources/beta/skills/index.ts +1 -0
  1279. package/node_modules/@anthropic-ai/sdk/src/resources/beta/skills/skills.ts +15 -14
  1280. package/node_modules/@anthropic-ai/sdk/src/resources/beta/skills/versions.ts +49 -3
  1281. package/node_modules/@anthropic-ai/sdk/src/resources/beta/tunnels/certificates.ts +252 -0
  1282. package/node_modules/@anthropic-ai/sdk/src/resources/beta/tunnels/index.ts +23 -0
  1283. package/node_modules/@anthropic-ai/sdk/src/resources/beta/tunnels/tunnels.ts +347 -0
  1284. package/node_modules/@anthropic-ai/sdk/src/resources/beta/tunnels.ts +3 -0
  1285. package/node_modules/@anthropic-ai/sdk/src/resources/beta/user-profiles.ts +76 -5
  1286. package/node_modules/@anthropic-ai/sdk/src/resources/beta/vaults/credentials.ts +347 -3
  1287. package/node_modules/@anthropic-ai/sdk/src/resources/beta/vaults/index.ts +17 -0
  1288. package/node_modules/@anthropic-ai/sdk/src/resources/beta/vaults/vaults.ts +34 -0
  1289. package/node_modules/@anthropic-ai/sdk/src/resources/beta/webhooks.ts +762 -0
  1290. package/node_modules/@anthropic-ai/sdk/src/resources/completions.ts +18 -11
  1291. package/node_modules/@anthropic-ai/sdk/src/resources/files.ts +163 -0
  1292. package/node_modules/@anthropic-ai/sdk/src/resources/index.ts +89 -0
  1293. package/node_modules/@anthropic-ai/sdk/src/resources/messages/batches.ts +30 -12
  1294. package/node_modules/@anthropic-ai/sdk/src/resources/messages/index.ts +70 -0
  1295. package/node_modules/@anthropic-ai/sdk/src/resources/messages/messages.ts +2202 -226
  1296. package/node_modules/@anthropic-ai/sdk/src/resources/skills/index.ts +21 -0
  1297. package/node_modules/@anthropic-ai/sdk/src/resources/skills/skills.ts +194 -0
  1298. package/node_modules/@anthropic-ai/sdk/src/resources/skills/versions.ts +160 -0
  1299. package/node_modules/@anthropic-ai/sdk/src/resources/skills.ts +3 -0
  1300. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/fs-util.ts +190 -0
  1301. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/memories.ts +1017 -0
  1302. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/node.browser.ts +172 -0
  1303. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/node.ts +914 -0
  1304. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/skills.ts +372 -0
  1305. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/sync-interval.ts +30 -0
  1306. package/node_modules/@anthropic-ai/sdk/src/tools/memory/node.browser.ts +64 -0
  1307. package/node_modules/@anthropic-ai/sdk/src/version.ts +1 -1
  1308. package/node_modules/@anthropic-ai/sdk/streaming.d.mts +1 -0
  1309. package/node_modules/@anthropic-ai/sdk/streaming.d.mts.map +1 -1
  1310. package/node_modules/@anthropic-ai/sdk/streaming.d.ts +1 -0
  1311. package/node_modules/@anthropic-ai/sdk/streaming.d.ts.map +1 -1
  1312. package/node_modules/@anthropic-ai/sdk/streaming.mjs +1 -0
  1313. package/node_modules/@anthropic-ai/sdk/streaming.mjs.map +1 -1
  1314. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.d.mts +75 -0
  1315. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.d.mts.map +1 -0
  1316. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.d.ts +75 -0
  1317. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.d.ts.map +1 -0
  1318. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.js +196 -0
  1319. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.js.map +1 -0
  1320. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.mjs +185 -0
  1321. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.mjs.map +1 -0
  1322. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.d.mts +173 -0
  1323. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.d.mts.map +1 -0
  1324. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.d.ts +173 -0
  1325. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.d.ts.map +1 -0
  1326. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.js +902 -0
  1327. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.js.map +1 -0
  1328. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.mjs +895 -0
  1329. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.mjs.map +1 -0
  1330. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.d.mts +82 -0
  1331. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.d.mts.map +1 -0
  1332. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.d.ts +82 -0
  1333. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.d.ts.map +1 -0
  1334. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.js +151 -0
  1335. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.js.map +1 -0
  1336. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.mjs +131 -0
  1337. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.mjs.map +1 -0
  1338. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.d.mts +190 -0
  1339. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.d.mts.map +1 -0
  1340. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.d.ts +190 -0
  1341. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.d.ts.map +1 -0
  1342. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.js +819 -0
  1343. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.js.map +1 -0
  1344. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.mjs +797 -0
  1345. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.mjs.map +1 -0
  1346. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.d.mts +82 -0
  1347. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.d.mts.map +1 -0
  1348. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.d.ts +82 -0
  1349. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.d.ts.map +1 -0
  1350. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.js +352 -0
  1351. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.js.map +1 -0
  1352. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.mjs +344 -0
  1353. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.mjs.map +1 -0
  1354. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/sync-interval.d.mts +19 -0
  1355. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/sync-interval.d.mts.map +1 -0
  1356. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/sync-interval.d.ts +19 -0
  1357. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/sync-interval.d.ts.map +1 -0
  1358. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/sync-interval.js +29 -0
  1359. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/sync-interval.js.map +1 -0
  1360. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/sync-interval.mjs +25 -0
  1361. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/sync-interval.mjs.map +1 -0
  1362. package/node_modules/@anthropic-ai/sdk/tools/memory/node.browser.d.mts +27 -0
  1363. package/node_modules/@anthropic-ai/sdk/tools/memory/node.browser.d.mts.map +1 -0
  1364. package/node_modules/@anthropic-ai/sdk/tools/memory/node.browser.d.ts +27 -0
  1365. package/node_modules/@anthropic-ai/sdk/tools/memory/node.browser.d.ts.map +1 -0
  1366. package/node_modules/@anthropic-ai/sdk/tools/memory/node.browser.js +49 -0
  1367. package/node_modules/@anthropic-ai/sdk/tools/memory/node.browser.js.map +1 -0
  1368. package/node_modules/@anthropic-ai/sdk/tools/memory/node.browser.mjs +44 -0
  1369. package/node_modules/@anthropic-ai/sdk/tools/memory/node.browser.mjs.map +1 -0
  1370. package/node_modules/@anthropic-ai/sdk/tools/memory/node.d.mts.map +1 -1
  1371. package/node_modules/@anthropic-ai/sdk/tools/memory/node.d.ts.map +1 -1
  1372. package/node_modules/@anthropic-ai/sdk/tools/memory/node.mjs.map +1 -1
  1373. package/node_modules/@anthropic-ai/sdk/uploads.d.mts +1 -0
  1374. package/node_modules/@anthropic-ai/sdk/uploads.d.mts.map +1 -1
  1375. package/node_modules/@anthropic-ai/sdk/uploads.d.ts +1 -0
  1376. package/node_modules/@anthropic-ai/sdk/uploads.d.ts.map +1 -1
  1377. package/node_modules/@anthropic-ai/sdk/uploads.mjs +1 -0
  1378. package/node_modules/@anthropic-ai/sdk/uploads.mjs.map +1 -1
  1379. package/node_modules/@anthropic-ai/sdk/version.d.mts +1 -1
  1380. package/node_modules/@anthropic-ai/sdk/version.d.mts.map +1 -1
  1381. package/node_modules/@anthropic-ai/sdk/version.d.ts +1 -1
  1382. package/node_modules/@anthropic-ai/sdk/version.d.ts.map +1 -1
  1383. package/node_modules/@anthropic-ai/sdk/version.js +1 -1
  1384. package/node_modules/@anthropic-ai/sdk/version.js.map +1 -1
  1385. package/node_modules/@anthropic-ai/sdk/version.mjs +1 -1
  1386. package/node_modules/@anthropic-ai/sdk/version.mjs.map +1 -1
  1387. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +36 -0
  1388. package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
  1389. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/session-manager-proxy.ts +39 -5
  1390. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  1391. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +7 -4
  1392. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  1393. package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +2 -3
  1394. package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
  1395. package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +7 -6
  1396. package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
  1397. package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.d.ts +4 -0
  1398. package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.d.ts.map +1 -1
  1399. package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.js +8 -0
  1400. package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.js.map +1 -1
  1401. package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +1 -0
  1402. package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
  1403. package/node_modules/@earendil-works/pi-agent-core/dist/index.js +1 -0
  1404. package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
  1405. package/node_modules/@earendil-works/pi-agent-core/package.json +5 -5
  1406. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts +1 -5
  1407. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  1408. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +25 -13
  1409. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  1410. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts.map +1 -1
  1411. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +2 -1
  1412. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
  1413. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  1414. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +91 -5
  1415. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -1
  1416. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts.map +1 -1
  1417. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +4 -2
  1418. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -1
  1419. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts.map +1 -1
  1420. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +4 -2
  1421. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -1
  1422. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.d.ts.map +1 -1
  1423. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +2 -0
  1424. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js.map +1 -1
  1425. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  1426. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +93 -54
  1427. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  1428. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +2 -5
  1429. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
  1430. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js +1 -1
  1431. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js.map +1 -1
  1432. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.d.ts.map +1 -1
  1433. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.js +97 -46
  1434. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.js.map +1 -1
  1435. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.d.ts.map +1 -1
  1436. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.js +1 -14
  1437. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.js.map +1 -1
  1438. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.d.ts +50 -0
  1439. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.d.ts.map +1 -0
  1440. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.js +129 -0
  1441. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.js.map +1 -0
  1442. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts.map +1 -1
  1443. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +3 -1
  1444. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js.map +1 -1
  1445. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +30 -0
  1446. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
  1447. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +30 -0
  1448. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
  1449. package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +8 -1
  1450. package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
  1451. package/node_modules/@earendil-works/pi-ai/dist/models.js +16 -3
  1452. package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
  1453. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.d.ts +3 -1
  1454. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -1
  1455. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js +10 -1
  1456. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js.map +1 -1
  1457. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  1458. package/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json +1 -1
  1459. package/node_modules/@earendil-works/pi-ai/dist/providers/data/azure-openai-responses.json +1 -1
  1460. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  1461. package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
  1462. package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
  1463. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -1
  1464. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  1465. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  1466. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opengateway.json +1 -1
  1467. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  1468. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  1469. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -1
  1470. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -1
  1471. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts +1 -0
  1472. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts.map +1 -1
  1473. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +1 -0
  1474. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
  1475. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.d.ts.map +1 -1
  1476. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js +4 -0
  1477. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js.map +1 -1
  1478. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +8 -1
  1479. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  1480. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  1481. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +16 -0
  1482. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
  1483. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +21 -1
  1484. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
  1485. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/backoff.d.ts +14 -0
  1486. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/backoff.d.ts.map +1 -0
  1487. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/backoff.js +24 -0
  1488. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/backoff.js.map +1 -0
  1489. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/classifiers.d.ts +36 -0
  1490. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/classifiers.d.ts.map +1 -0
  1491. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/classifiers.js +109 -0
  1492. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/classifiers.js.map +1 -0
  1493. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/failure.d.ts +12 -0
  1494. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/failure.d.ts.map +1 -0
  1495. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/failure.js +109 -0
  1496. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/failure.js.map +1 -0
  1497. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/index.d.ts +9 -0
  1498. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/index.d.ts.map +1 -0
  1499. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/index.js +6 -0
  1500. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/index.js.map +1 -0
  1501. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/planner.d.ts +46 -0
  1502. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/planner.d.ts.map +1 -0
  1503. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/planner.js +41 -0
  1504. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/planner.js.map +1 -0
  1505. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/profiles.d.ts +4 -0
  1506. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/profiles.d.ts.map +1 -0
  1507. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/profiles.js +93 -0
  1508. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/profiles.js.map +1 -0
  1509. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/types.d.ts +121 -0
  1510. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/types.d.ts.map +1 -0
  1511. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/types.js +11 -0
  1512. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/types.js.map +1 -0
  1513. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts +12 -0
  1514. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
  1515. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +25 -5
  1516. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
  1517. package/node_modules/@earendil-works/pi-ai/dist/utils/sleep.d.ts +2 -0
  1518. package/node_modules/@earendil-works/pi-ai/dist/utils/sleep.d.ts.map +1 -0
  1519. package/node_modules/@earendil-works/pi-ai/dist/utils/sleep.js +15 -0
  1520. package/node_modules/@earendil-works/pi-ai/dist/utils/sleep.js.map +1 -0
  1521. package/node_modules/@earendil-works/pi-ai/package.json +21 -17
  1522. package/node_modules/@earendil-works/pi-pty/dist/index.d.ts +1 -0
  1523. package/node_modules/@earendil-works/pi-pty/dist/index.d.ts.map +1 -1
  1524. package/node_modules/@earendil-works/pi-pty/dist/index.js +1 -0
  1525. package/node_modules/@earendil-works/pi-pty/dist/index.js.map +1 -1
  1526. package/node_modules/@earendil-works/pi-pty/dist/session-bun.d.ts +30 -0
  1527. package/node_modules/@earendil-works/pi-pty/dist/session-bun.d.ts.map +1 -0
  1528. package/node_modules/@earendil-works/pi-pty/dist/session-bun.js +76 -0
  1529. package/node_modules/@earendil-works/pi-pty/dist/session-bun.js.map +1 -0
  1530. package/node_modules/@earendil-works/pi-pty/dist/session-types.d.ts +3 -1
  1531. package/node_modules/@earendil-works/pi-pty/dist/session-types.d.ts.map +1 -1
  1532. package/node_modules/@earendil-works/pi-pty/dist/session-types.js.map +1 -1
  1533. package/node_modules/@earendil-works/pi-pty/dist/session.d.ts +2 -0
  1534. package/node_modules/@earendil-works/pi-pty/dist/session.d.ts.map +1 -1
  1535. package/node_modules/@earendil-works/pi-pty/dist/session.js +19 -9
  1536. package/node_modules/@earendil-works/pi-pty/dist/session.js.map +1 -1
  1537. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  1538. package/node_modules/@earendil-works/pi-telemetry/package.json +3 -3
  1539. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
  1540. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +9 -4
  1541. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
  1542. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts +8 -2
  1543. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts.map +1 -1
  1544. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js +24 -4
  1545. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +1 -1
  1546. package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +2 -2
  1547. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js +2 -2
  1548. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +1 -1
  1549. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts.map +1 -1
  1550. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +2 -8
  1551. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js.map +1 -1
  1552. package/node_modules/@earendil-works/pi-tui/dist/native-module-path.d.ts +7 -0
  1553. package/node_modules/@earendil-works/pi-tui/dist/native-module-path.d.ts.map +1 -0
  1554. package/node_modules/@earendil-works/pi-tui/dist/native-module-path.js +19 -0
  1555. package/node_modules/@earendil-works/pi-tui/dist/native-module-path.js.map +1 -0
  1556. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +5 -0
  1557. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  1558. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +94 -11
  1559. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  1560. package/node_modules/@earendil-works/pi-tui/package.json +5 -5
  1561. package/node_modules/@stablelib/base64/LICENSE +21 -0
  1562. package/node_modules/@stablelib/base64/base64.bench.ts +25 -0
  1563. package/node_modules/@stablelib/base64/base64.test.ts +85 -0
  1564. package/node_modules/@stablelib/base64/base64.ts +283 -0
  1565. package/node_modules/@stablelib/base64/lib/base64.bench.d.ts +1 -0
  1566. package/node_modules/@stablelib/base64/lib/base64.bench.js +23 -0
  1567. package/node_modules/@stablelib/base64/lib/base64.bench.js.map +1 -0
  1568. package/node_modules/@stablelib/base64/lib/base64.d.ts +34 -0
  1569. package/node_modules/@stablelib/base64/lib/base64.js +282 -0
  1570. package/node_modules/@stablelib/base64/lib/base64.js.map +1 -0
  1571. package/node_modules/@stablelib/base64/lib/base64.test.d.ts +1 -0
  1572. package/node_modules/@stablelib/base64/lib/base64.test.js +82 -0
  1573. package/node_modules/@stablelib/base64/lib/base64.test.js.map +1 -0
  1574. package/node_modules/@stablelib/base64/package.json +25 -0
  1575. package/node_modules/@stablelib/base64/tsconfig.json +27 -0
  1576. package/node_modules/fast-sha256/LICENSE +24 -0
  1577. package/node_modules/fast-sha256/README.md +127 -0
  1578. package/node_modules/fast-sha256/package.json +42 -0
  1579. package/node_modules/fast-sha256/sha256.d.ts +39 -0
  1580. package/node_modules/fast-sha256/sha256.js +427 -0
  1581. package/node_modules/fast-sha256/sha256.min.js +1 -0
  1582. package/node_modules/standardwebhooks/README.md +41 -0
  1583. package/node_modules/standardwebhooks/dist/index.d.ts +24 -0
  1584. package/node_modules/standardwebhooks/dist/index.js +106 -0
  1585. package/node_modules/standardwebhooks/dist/index.js.map +1 -0
  1586. package/node_modules/standardwebhooks/dist/timing_safe_equal.d.ts +1 -0
  1587. package/node_modules/standardwebhooks/dist/timing_safe_equal.js +30 -0
  1588. package/node_modules/standardwebhooks/dist/timing_safe_equal.js.map +1 -0
  1589. package/node_modules/standardwebhooks/package.json +45 -0
  1590. package/package.json +100 -89
  1591. package/dist/core/radius.d.ts +0 -2
  1592. package/dist/core/radius.d.ts.map +0 -1
  1593. package/dist/core/radius.js +0 -2
  1594. package/dist/core/radius.js.map +0 -1
  1595. package/node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.d.mts +0 -34
  1596. package/node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.d.mts.map +0 -1
  1597. package/node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.d.ts +0 -34
  1598. package/node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.d.ts.map +0 -1
  1599. package/node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.js.map +0 -1
  1600. package/node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.mjs.map +0 -1
  1601. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolRunner.d.mts +0 -132
  1602. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolRunner.d.mts.map +0 -1
  1603. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolRunner.d.ts +0 -132
  1604. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolRunner.d.ts.map +0 -1
  1605. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolRunner.js +0 -294
  1606. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolRunner.js.map +0 -1
  1607. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolRunner.mjs +0 -290
  1608. package/node_modules/@anthropic-ai/sdk/lib/tools/ToolRunner.mjs.map +0 -1
  1609. package/node_modules/@anthropic-ai/sdk/src/lib/stainless-helper-header.ts +0 -80
  1610. package/node_modules/@anthropic-ai/sdk/src/lib/tools/ToolRunner.ts +0 -381
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from \"node:buffer\";\nimport process from \"node:process\";\nimport { loadNativePty, type NativePtyLoadResult, type NativePtyUnavailableDiagnostic } from \"./native-loader.ts\";\nimport { PipeFallbackSession, shouldUsePipeFallback } from \"./pipe-fallback.ts\";\nimport {\n\texitedOperation,\n\tnormalizeOperationResult,\n\tnormalizeTerminalExit,\n\tnotStartedOperation,\n} from \"./session-exit.ts\";\nimport { getNativeSessionFactory } from \"./session-native.ts\";\nimport { defaultCommand, normalizeRawTailBytes, toNativeOptions, toPipeFallbackOptions } from \"./session-options.ts\";\nimport type {\n\tCreateNativeTerminalSession,\n\tTerminalSessionBackend,\n\tTerminalSessionDataHandler,\n\tTerminalSessionDependencies,\n\tTerminalSessionExit,\n\tTerminalSessionExitState,\n\tTerminalSessionHandle,\n\tTerminalSessionOperationResult,\n\tTerminalSessionOptions,\n\tTerminalSessionSignal,\n} from \"./session-types.ts\";\n\nexport type {\n\tCreateNativeTerminalSession,\n\tTerminalSessionBackend,\n\tTerminalSessionDataHandler,\n\tTerminalSessionDependencies,\n\tTerminalSessionExit,\n\tTerminalSessionExitError,\n\tTerminalSessionExitState,\n\tTerminalSessionHandle,\n\tTerminalSessionNativeOptions,\n\tTerminalSessionOperationResult,\n\tTerminalSessionOptions,\n\tTerminalSessionSignal,\n} from \"./session-types.ts\";\n\nexport class TerminalSession {\n\treadonly options: TerminalSessionOptions;\n\tprivate readonly nativeLoadResult: NativePtyLoadResult;\n\tprivate readonly createNativeSessionDependency?: CreateNativeTerminalSession;\n\tprivate readonly env: Readonly<Record<string, string | undefined>>;\n\tprivate readonly rawTailLimit: number;\n\tprivate readonly dataHandlers = new Set<TerminalSessionDataHandler>();\n\tprivate readonly exitHandlers = new Set<() => void>();\n\tprivate backendHandle: TerminalSessionHandle | null = null;\n\tprivate backendValue: TerminalSessionBackend | null = null;\n\tprivate exitPromise: Promise<TerminalSessionExit> | null = null;\n\tprivate settledExit: TerminalSessionExit | null = null;\n\tprivate rawTailBuffer = Buffer.alloc(0);\n\tprivate rawByteCount = 0;\n\tprivate killRequested = false;\n\tprivate unsubscribeBackendData: (() => void) | null = null;\n\n\tconstructor(options: TerminalSessionOptions = {}, dependencies: TerminalSessionDependencies = {}) {\n\t\tthis.options = {\n\t\t\t...options,\n\t\t\targs: options.args ? [...options.args] : undefined,\n\t\t\tenv: options.env ? { ...options.env } : undefined,\n\t\t};\n\t\tthis.nativeLoadResult = dependencies.nativeLoadResult ?? loadNativePty();\n\t\tthis.createNativeSessionDependency = dependencies.createNativeSession;\n\t\tthis.env = dependencies.env ?? process.env;\n\t\tthis.rawTailLimit = normalizeRawTailBytes(options.rawTailBytes);\n\t}\n\n\tget native(): NativePtyLoadResult {\n\t\treturn this.nativeLoadResult;\n\t}\n\n\tget unavailableDiagnostic(): NativePtyUnavailableDiagnostic | null {\n\t\tif (this.nativeLoadResult.native !== null) return null;\n\t\treturn this.nativeLoadResult.diagnostic;\n\t}\n\n\tget backend(): TerminalSessionBackend | null {\n\t\treturn this.backendValue;\n\t}\n\n\tget command(): string {\n\t\treturn this.options.command ?? defaultCommand();\n\t}\n\n\tget status(): \"not_started\" | \"running\" | \"exited\" {\n\t\treturn this.exitState.status;\n\t}\n\n\tget exited(): boolean {\n\t\treturn this.settledExit !== null;\n\t}\n\n\tget isExited(): boolean {\n\t\treturn this.exited;\n\t}\n\n\tget exitResult(): TerminalSessionExit | null {\n\t\treturn this.settledExit;\n\t}\n\n\tget rawTail(): Buffer {\n\t\treturn Buffer.from(this.rawTailBuffer);\n\t}\n\n\tget rawOutputBytes(): number {\n\t\treturn this.rawByteCount;\n\t}\n\n\tget exitState(): TerminalSessionExitState {\n\t\tif (this.settledExit !== null) return { status: \"exited\", exit: this.settledExit };\n\t\treturn { status: this.backendHandle === null ? \"not_started\" : \"running\", exit: null };\n\t}\n\n\tstart(): this {\n\t\tif (this.settledExit !== null) throw new Error(\"Cannot restart exited terminal session\");\n\t\tif (this.backendHandle !== null) throw new Error(\"Terminal session has already been started\");\n\n\t\tconst nativeFactory = this.createNativeSessionDependency ?? getNativeSessionFactory(this.nativeLoadResult);\n\t\tif (nativeFactory && !shouldUsePipeFallback(this.nativeLoadResult, this.env)) {\n\t\t\tthis.backendValue = \"native\";\n\t\t\tthis.backendHandle = nativeFactory(toNativeOptions(this.options), (chunk) => this.emitData(chunk));\n\t\t} else {\n\t\t\tthis.backendValue = \"pipe-fallback\";\n\t\t\tconst fallback = new PipeFallbackSession(toPipeFallbackOptions(this.options));\n\t\t\tthis.backendHandle = fallback;\n\t\t\tthis.unsubscribeBackendData = fallback.onData((chunk) => this.emitData(chunk));\n\t\t\tfallback.start();\n\t\t}\n\n\t\tconst backendHandle = this.backendHandle;\n\t\tconst backendValue = this.backendValue;\n\t\tif (backendHandle === null || backendValue === null) {\n\t\t\tthrow new Error(\"Terminal session backend did not initialize\");\n\t\t}\n\n\t\tif (backendValue === \"native\" && backendHandle.onData) {\n\t\t\tthis.unsubscribeBackendData = backendHandle.onData((chunk) => this.emitData(chunk));\n\t\t}\n\t\tthis.exitPromise = this.waitBackendExit(backendHandle, backendValue).then((exit) => this.settleExit(exit));\n\t\treturn this;\n\t}\n\n\tonData(handler: TerminalSessionDataHandler): () => void {\n\t\tthis.dataHandlers.add(handler);\n\t\treturn () => this.dataHandlers.delete(handler);\n\t}\n\n\tonExit(handler: () => void): () => void {\n\t\tif (this.settledExit !== null) queueMicrotask(handler);\n\t\telse this.exitHandlers.add(handler);\n\t\treturn () => this.exitHandlers.delete(handler);\n\t}\n\n\twrite(data: string | Uint8Array): TerminalSessionOperationResult {\n\t\tconst handle = this.backendHandle;\n\t\tif (this.settledExit !== null) return exitedOperation(\"write\");\n\t\tif (handle === null) return notStartedOperation(\"write\");\n\t\treturn normalizeOperationResult(handle.write(data), \"Wrote data to terminal session.\");\n\t}\n\n\tresize(cols: number, rows: number): TerminalSessionOperationResult {\n\t\tconst handle = this.backendHandle;\n\t\tif (this.settledExit !== null) return exitedOperation(\"resize\");\n\t\tif (handle === null) return notStartedOperation(\"resize\");\n\t\treturn normalizeOperationResult(handle.resize(cols, rows), `Resized terminal session to ${cols}x${rows}.`);\n\t}\n\n\tkill(signal: TerminalSessionSignal = \"SIGTERM\"): TerminalSessionOperationResult {\n\t\tconst handle = this.backendHandle;\n\t\tif (this.killRequested || this.settledExit !== null) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tidempotent: true,\n\t\t\t\tnote: \"Terminal session kill was already requested.\",\n\t\t\t};\n\t\t}\n\t\tif (handle === null) return notStartedOperation(\"kill\");\n\n\t\tthis.killRequested = true;\n\t\tconst result = normalizeOperationResult(handle.kill(signal), `Sent ${signal} to terminal session.`);\n\t\tif (!result.ok) this.killRequested = false;\n\t\treturn result;\n\t}\n\n\tstop(): TerminalSessionOperationResult {\n\t\treturn this.kill();\n\t}\n\n\tasync waitExit(): Promise<TerminalSessionExit> {\n\t\tif (this.settledExit !== null) return this.settledExit;\n\t\tif (this.exitPromise === null) throw new Error(\"Cannot wait for terminal session exit before start\");\n\t\treturn await this.exitPromise;\n\t}\n\n\tprivate async waitBackendExit(\n\t\thandle: TerminalSessionHandle,\n\t\tbackend: TerminalSessionBackend,\n\t): Promise<TerminalSessionExit> {\n\t\tconst wait = handle.waitExit ?? handle.wait;\n\t\tif (!wait) throw new Error(\"Terminal session backend does not expose waitExit or wait\");\n\t\tconst exit = await wait.call(handle);\n\t\treturn normalizeTerminalExit(exit, backend, this.killRequested);\n\t}\n\n\tprivate settleExit(exit: TerminalSessionExit): TerminalSessionExit {\n\t\tif (this.settledExit !== null) return this.settledExit;\n\t\tthis.settledExit = exit;\n\t\tthis.unsubscribeBackendData?.();\n\t\tthis.unsubscribeBackendData = null;\n\t\tfor (const handler of this.exitHandlers) handler();\n\t\tthis.exitHandlers.clear();\n\t\treturn exit;\n\t}\n\n\tprivate emitData(chunk: Buffer | Uint8Array | string): void {\n\t\tconst buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);\n\t\tthis.appendRawTail(buffer);\n\t\tfor (const handler of this.dataHandlers) handler(buffer);\n\t}\n\n\tprivate appendRawTail(chunk: Buffer): void {\n\t\tthis.rawByteCount += chunk.byteLength;\n\t\tif (this.rawTailLimit === 0) {\n\t\t\tthis.rawTailBuffer = Buffer.alloc(0);\n\t\t\treturn;\n\t\t}\n\t\tconst next = Buffer.concat([this.rawTailBuffer, chunk]);\n\t\tthis.rawTailBuffer =\n\t\t\tnext.byteLength <= this.rawTailLimit ? next : next.subarray(next.byteLength - this.rawTailLimit);\n\t}\n}\n\nexport function createTerminalSession(\n\toptions: TerminalSessionOptions = {},\n\tdependencies: TerminalSessionDependencies = {},\n): TerminalSession {\n\treturn new TerminalSession(options, dependencies).start();\n}\n"]}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from \"node:buffer\";\nimport process from \"node:process\";\nimport { loadNativePty, type NativePtyLoadResult, type NativePtyUnavailableDiagnostic } from \"./native-loader.ts\";\nimport { PipeFallbackSession, shouldUsePipeFallback } from \"./pipe-fallback.ts\";\nimport { createBunTerminalSession, isBunTerminalEnabled } from \"./session-bun.ts\";\nimport {\n\texitedOperation,\n\tnormalizeOperationResult,\n\tnormalizeTerminalExit,\n\tnotStartedOperation,\n} from \"./session-exit.ts\";\nimport { getNativeSessionFactory } from \"./session-native.ts\";\nimport { defaultCommand, normalizeRawTailBytes, toNativeOptions, toPipeFallbackOptions } from \"./session-options.ts\";\nimport type {\n\tCreateNativeTerminalSession,\n\tTerminalSessionBackend,\n\tTerminalSessionDataHandler,\n\tTerminalSessionDependencies,\n\tTerminalSessionExit,\n\tTerminalSessionExitState,\n\tTerminalSessionHandle,\n\tTerminalSessionOperationResult,\n\tTerminalSessionOptions,\n\tTerminalSessionSignal,\n} from \"./session-types.ts\";\n\nexport type {\n\tCreateNativeTerminalSession,\n\tTerminalSessionBackend,\n\tTerminalSessionDataHandler,\n\tTerminalSessionDependencies,\n\tTerminalSessionExit,\n\tTerminalSessionExitError,\n\tTerminalSessionExitState,\n\tTerminalSessionHandle,\n\tTerminalSessionNativeOptions,\n\tTerminalSessionOperationResult,\n\tTerminalSessionOptions,\n\tTerminalSessionSignal,\n} from \"./session-types.ts\";\n\nexport class TerminalSession {\n\treadonly options: TerminalSessionOptions;\n\tprivate readonly nativeLoadResult: NativePtyLoadResult;\n\tprivate readonly createNativeSessionDependency?: CreateNativeTerminalSession;\n\tprivate readonly env: Readonly<Record<string, string | undefined>>;\n\tprivate readonly runtimeVersions: import(\"./session-bun.ts\").BunRuntimeVersions;\n\tprivate readonly bunRuntime: import(\"./session-bun.ts\").BunRuntime | undefined;\n\tprivate readonly rawTailLimit: number;\n\tprivate readonly dataHandlers = new Set<TerminalSessionDataHandler>();\n\tprivate readonly exitHandlers = new Set<() => void>();\n\tprivate backendHandle: TerminalSessionHandle | null = null;\n\tprivate backendValue: TerminalSessionBackend | null = null;\n\tprivate exitPromise: Promise<TerminalSessionExit> | null = null;\n\tprivate settledExit: TerminalSessionExit | null = null;\n\tprivate rawTailBuffer = Buffer.alloc(0);\n\tprivate rawByteCount = 0;\n\tprivate killRequested = false;\n\tprivate unsubscribeBackendData: (() => void) | null = null;\n\n\tconstructor(options: TerminalSessionOptions = {}, dependencies: TerminalSessionDependencies = {}) {\n\t\tthis.options = {\n\t\t\t...options,\n\t\t\targs: options.args ? [...options.args] : undefined,\n\t\t\tenv: options.env ? { ...options.env } : undefined,\n\t\t};\n\t\tthis.nativeLoadResult = dependencies.nativeLoadResult ?? loadNativePty();\n\t\tthis.createNativeSessionDependency = dependencies.createNativeSession;\n\t\tthis.env = dependencies.env ?? process.env;\n\t\tthis.runtimeVersions =\n\t\t\tdependencies.runtimeVersions ?? (process.versions as import(\"./session-bun.ts\").BunRuntimeVersions);\n\t\tthis.bunRuntime = dependencies.bunRuntime;\n\t\tthis.rawTailLimit = normalizeRawTailBytes(options.rawTailBytes);\n\t}\n\n\tget native(): NativePtyLoadResult {\n\t\treturn this.nativeLoadResult;\n\t}\n\n\tget unavailableDiagnostic(): NativePtyUnavailableDiagnostic | null {\n\t\tif (this.nativeLoadResult.native !== null) return null;\n\t\treturn this.nativeLoadResult.diagnostic;\n\t}\n\n\tget backend(): TerminalSessionBackend | null {\n\t\treturn this.backendValue;\n\t}\n\n\tget command(): string {\n\t\treturn this.options.command ?? defaultCommand();\n\t}\n\n\tget status(): \"not_started\" | \"running\" | \"exited\" {\n\t\treturn this.exitState.status;\n\t}\n\n\tget exited(): boolean {\n\t\treturn this.settledExit !== null;\n\t}\n\n\tget isExited(): boolean {\n\t\treturn this.exited;\n\t}\n\n\tget exitResult(): TerminalSessionExit | null {\n\t\treturn this.settledExit;\n\t}\n\n\tget rawTail(): Buffer {\n\t\treturn Buffer.from(this.rawTailBuffer);\n\t}\n\n\tget rawOutputBytes(): number {\n\t\treturn this.rawByteCount;\n\t}\n\n\tget exitState(): TerminalSessionExitState {\n\t\tif (this.settledExit !== null) return { status: \"exited\", exit: this.settledExit };\n\t\treturn { status: this.backendHandle === null ? \"not_started\" : \"running\", exit: null };\n\t}\n\n\tstart(): this {\n\t\tif (this.settledExit !== null) throw new Error(\"Cannot restart exited terminal session\");\n\t\tif (this.backendHandle !== null) throw new Error(\"Terminal session has already been started\");\n\n\t\tif (isBunTerminalEnabled(this.env, this.runtimeVersions)) {\n\t\t\tthis.backendValue = \"bun\";\n\t\t\tthis.backendHandle = createBunTerminalSession(\n\t\t\t\ttoNativeOptions(this.options),\n\t\t\t\t(chunk) => this.emitData(chunk),\n\t\t\t\tthis.bunRuntime,\n\t\t\t);\n\t\t} else {\n\t\t\tconst nativeFactory = this.createNativeSessionDependency ?? getNativeSessionFactory(this.nativeLoadResult);\n\t\t\tif (nativeFactory && !shouldUsePipeFallback(this.nativeLoadResult, this.env)) {\n\t\t\t\tthis.backendValue = \"native\";\n\t\t\t\tthis.backendHandle = nativeFactory(toNativeOptions(this.options), (chunk) => this.emitData(chunk));\n\t\t\t} else {\n\t\t\t\tthis.backendValue = \"pipe-fallback\";\n\t\t\t\tconst fallback = new PipeFallbackSession(toPipeFallbackOptions(this.options));\n\t\t\t\tthis.backendHandle = fallback;\n\t\t\t\tthis.unsubscribeBackendData = fallback.onData((chunk) => this.emitData(chunk));\n\t\t\t\tfallback.start();\n\t\t\t}\n\t\t}\n\n\t\tconst backendHandle = this.backendHandle;\n\t\tconst backendValue = this.backendValue;\n\t\tif (backendHandle === null || backendValue === null) {\n\t\t\tthrow new Error(\"Terminal session backend did not initialize\");\n\t\t}\n\n\t\tif (backendValue === \"native\" && backendHandle.onData) {\n\t\t\tthis.unsubscribeBackendData = backendHandle.onData((chunk) => this.emitData(chunk));\n\t\t}\n\t\tthis.exitPromise = this.waitBackendExit(backendHandle, backendValue).then((exit) => this.settleExit(exit));\n\t\treturn this;\n\t}\n\n\tonData(handler: TerminalSessionDataHandler): () => void {\n\t\tthis.dataHandlers.add(handler);\n\t\treturn () => this.dataHandlers.delete(handler);\n\t}\n\n\tonExit(handler: () => void): () => void {\n\t\tif (this.settledExit !== null) queueMicrotask(handler);\n\t\telse this.exitHandlers.add(handler);\n\t\treturn () => this.exitHandlers.delete(handler);\n\t}\n\n\twrite(data: string | Uint8Array): TerminalSessionOperationResult {\n\t\tconst handle = this.backendHandle;\n\t\tif (this.settledExit !== null) return exitedOperation(\"write\");\n\t\tif (handle === null) return notStartedOperation(\"write\");\n\t\treturn normalizeOperationResult(handle.write(data), \"Wrote data to terminal session.\");\n\t}\n\n\tresize(cols: number, rows: number): TerminalSessionOperationResult {\n\t\tconst handle = this.backendHandle;\n\t\tif (this.settledExit !== null) return exitedOperation(\"resize\");\n\t\tif (handle === null) return notStartedOperation(\"resize\");\n\t\treturn normalizeOperationResult(handle.resize(cols, rows), `Resized terminal session to ${cols}x${rows}.`);\n\t}\n\n\tkill(signal: TerminalSessionSignal = \"SIGTERM\"): TerminalSessionOperationResult {\n\t\tconst handle = this.backendHandle;\n\t\tif (this.killRequested || this.settledExit !== null) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tidempotent: true,\n\t\t\t\tnote: \"Terminal session kill was already requested.\",\n\t\t\t};\n\t\t}\n\t\tif (handle === null) return notStartedOperation(\"kill\");\n\n\t\tthis.killRequested = true;\n\t\tconst result = normalizeOperationResult(handle.kill(signal), `Sent ${signal} to terminal session.`);\n\t\tif (!result.ok) this.killRequested = false;\n\t\treturn result;\n\t}\n\n\tstop(): TerminalSessionOperationResult {\n\t\treturn this.kill();\n\t}\n\n\tasync waitExit(): Promise<TerminalSessionExit> {\n\t\tif (this.settledExit !== null) return this.settledExit;\n\t\tif (this.exitPromise === null) throw new Error(\"Cannot wait for terminal session exit before start\");\n\t\treturn await this.exitPromise;\n\t}\n\n\tprivate async waitBackendExit(\n\t\thandle: TerminalSessionHandle,\n\t\tbackend: TerminalSessionBackend,\n\t): Promise<TerminalSessionExit> {\n\t\tconst wait = handle.waitExit ?? handle.wait;\n\t\tif (!wait) throw new Error(\"Terminal session backend does not expose waitExit or wait\");\n\t\tconst exit = await wait.call(handle);\n\t\treturn normalizeTerminalExit(exit, backend, this.killRequested);\n\t}\n\n\tprivate settleExit(exit: TerminalSessionExit): TerminalSessionExit {\n\t\tif (this.settledExit !== null) return this.settledExit;\n\t\tthis.settledExit = exit;\n\t\tthis.unsubscribeBackendData?.();\n\t\tthis.unsubscribeBackendData = null;\n\t\tfor (const handler of this.exitHandlers) handler();\n\t\tthis.exitHandlers.clear();\n\t\treturn exit;\n\t}\n\n\tprivate emitData(chunk: Buffer | Uint8Array | string): void {\n\t\tconst buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);\n\t\tthis.appendRawTail(buffer);\n\t\tfor (const handler of this.dataHandlers) handler(buffer);\n\t}\n\n\tprivate appendRawTail(chunk: Buffer): void {\n\t\tthis.rawByteCount += chunk.byteLength;\n\t\tif (this.rawTailLimit === 0) {\n\t\t\tthis.rawTailBuffer = Buffer.alloc(0);\n\t\t\treturn;\n\t\t}\n\t\tconst next = Buffer.concat([this.rawTailBuffer, chunk]);\n\t\tthis.rawTailBuffer =\n\t\t\tnext.byteLength <= this.rawTailLimit ? next : next.subarray(next.byteLength - this.rawTailLimit);\n\t}\n}\n\nexport function createTerminalSession(\n\toptions: TerminalSessionOptions = {},\n\tdependencies: TerminalSessionDependencies = {},\n): TerminalSession {\n\treturn new TerminalSession(options, dependencies).start();\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@earendil-works/pi-pty",
3
3
  "private": true,
4
- "version": "2026.8.24",
4
+ "version": "2026.8.26-2",
5
5
  "description": "Typed PTY session loader for Senpi persistent terminals",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@earendil-works/pi-telemetry",
3
- "version": "2026.8.24",
4
- "private": true,
3
+ "version": "2026.8.26-2",
5
4
  "description": "Vendor-neutral telemetry contracts and typed schema utilities for pi",
6
5
  "type": "module",
7
6
  "main": "./dist/index.js",
@@ -44,5 +43,6 @@
44
43
  "devDependencies": {
45
44
  "@types/node": "26.2.0",
46
45
  "vitest": "4.1.11"
47
- }
46
+ },
47
+ "private": true
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/components/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/components/markdown.ts"],"names":[],"mappings":"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"}
@@ -878,8 +878,13 @@ export class Markdown {
878
878
  * Delegates to wrapTextWithAnsi() so ANSI codes + long tokens are handled
879
879
  * consistently with the rest of the renderer.
880
880
  */
881
- wrapCellText(text, maxWidth) {
882
- return wrapTextWithAnsi(text, Math.max(1, maxWidth));
881
+ wrapCellText(text, maxWidth, stylePrefix = "") {
882
+ const lines = wrapTextWithAnsi(text, Math.max(1, maxWidth));
883
+ return lines.map((line, index) => {
884
+ // Reset text styles after each non-final fragment, then restore the surrounding style before padding and borders.
885
+ const styleReset = index < lines.length - 1 ? "\x1b[22;23;24;25;27;28;29;39m" : "";
886
+ return `${line}${styleReset}${stylePrefix}`;
887
+ });
883
888
  }
884
889
  /**
885
890
  * Render a table with width-aware cell wrapping.
@@ -987,7 +992,7 @@ export class Markdown {
987
992
  // Render header with wrapping
988
993
  const headerCellLines = token.header.map((cell, i) => {
989
994
  const text = this.renderInlineTokens(cell.tokens || [], styleContext);
990
- return this.wrapCellText(text, columnWidths[i]);
995
+ return this.wrapCellText(text, columnWidths[i], styleContext?.stylePrefix);
991
996
  });
992
997
  const headerLineCount = Math.max(...headerCellLines.map((c) => c.length));
993
998
  for (let lineIdx = 0; lineIdx < headerLineCount; lineIdx++) {
@@ -1007,7 +1012,7 @@ export class Markdown {
1007
1012
  const row = token.rows[rowIndex];
1008
1013
  const rowCellLines = row.map((cell, i) => {
1009
1014
  const text = this.renderInlineTokens(cell.tokens || [], styleContext);
1010
- return this.wrapCellText(text, columnWidths[i]);
1015
+ return this.wrapCellText(text, columnWidths[i], styleContext?.stylePrefix);
1011
1016
  });
1012
1017
  const rowLineCount = Math.max(...rowCellLines.map((c) => c.length));
1013
1018
  for (let lineIdx = 0; lineIdx < rowLineCount; lineIdx++) {
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/components/markdown.ts"],"names":[],"mappings":"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","sourcesContent":["// allow: SIZE_OK - existing markdown renderer is oversized; this merge only preserves behavior and cache-key correctness.\nimport { Marked, type Token, Tokenizer, type TokenizerExtension, type Tokens } from \"marked\";\nimport { getCapabilities, hyperlink, isImageLine } from \"../terminal-image.ts\";\nimport type { Component } from \"../tui.ts\";\nimport { applyBackgroundToLine, visibleWidth, wrapTextWithAnsi } from \"../utils.ts\";\nimport { latexToUnicode } from \"./latex.ts\";\n\nconst STRICT_STRIKETHROUGH_REGEX = /^(~~)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/;\n\nclass StrictStrikethroughTokenizer extends Tokenizer {\n\toverride del(src: string): Tokens.Del | undefined {\n\t\tconst match = STRICT_STRIKETHROUGH_REGEX.exec(src);\n\t\tif (!match) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst text = match[2];\n\t\treturn {\n\t\t\ttype: \"del\",\n\t\t\traw: match[0],\n\t\t\ttext,\n\t\t\ttokens: this.lexer.inlineTokens(text),\n\t\t};\n\t}\n}\n\ninterface LatexToken extends Tokens.Generic {\n\ttext: string;\n\ttype: \"latex_block\" | \"latex_inline\" | \"latex_literal\";\n}\n\nconst MAX_LATEX_FORMULA_LENGTH = 4096;\nconst WORD_CHARACTER_REGEX = /[\\p{L}\\p{M}\\p{N}_]/u;\n\ninterface InlineCodePrefixState {\n\thasUnclosedCodeSpan: boolean;\n\tlastProcessedRaw?: string;\n\tprocessedTokenCount: number;\n}\n\nconst inlineCodePrefixStates = new WeakMap<Token[], InlineCodePrefixState>();\n\nfunction createLatexToken(type: LatexToken[\"type\"], raw: string, text: string): LatexToken {\n\treturn { raw, text, type };\n}\n\nfunction isLatexToken(token: Token): token is LatexToken {\n\treturn (\n\t\t(token.type === \"latex_block\" || token.type === \"latex_inline\" || token.type === \"latex_literal\") &&\n\t\t\"text\" in token &&\n\t\ttypeof token.text === \"string\"\n\t);\n}\n\nfunction previousRawCharacter(tokens: Token[]): string | undefined {\n\tconst raw = tokens[tokens.length - 1]?.raw;\n\treturn raw ? Array.from(raw).at(-1) : undefined;\n}\n\nfunction firstCharacter(value: string): string | undefined {\n\tconst codePoint = value.codePointAt(0);\n\treturn codePoint === undefined ? undefined : String.fromCodePoint(codePoint);\n}\n\nfunction followsUnclosedCodeSpan(tokens: Token[]): boolean {\n\tlet state = inlineCodePrefixStates.get(tokens);\n\tconst previousProcessedToken = state ? tokens[state.processedTokenCount - 1] : undefined;\n\tif (!state || previousProcessedToken?.raw !== state.lastProcessedRaw) {\n\t\tstate = { hasUnclosedCodeSpan: false, processedTokenCount: 0 };\n\t\tinlineCodePrefixStates.set(tokens, state);\n\t}\n\n\tfor (let index = state.processedTokenCount; index < tokens.length; index += 1) {\n\t\tconst token = tokens[index];\n\t\tif (token?.type === \"text\" && token.raw.includes(\"`\")) {\n\t\t\tstate.hasUnclosedCodeSpan = true;\n\t\t}\n\t}\n\tstate.processedTokenCount = tokens.length;\n\tstate.lastProcessedRaw = tokens.at(-1)?.raw;\n\treturn state.hasUnclosedCodeSpan;\n}\n\nfunction findInlineMath(\n\tsrc: string,\n\topen: \"$\" | \"\\\\(\" | \"\\\\[\",\n\tclose: \"$\" | \"\\\\)\" | \"\\\\]\",\n): { raw: string; text: string } | undefined {\n\tif (!src.startsWith(open)) return undefined;\n\tconst bodyStart = open.length;\n\tconst scanEnd = Math.min(src.length, bodyStart + MAX_LATEX_FORMULA_LENGTH + 1);\n\n\tfor (let index = bodyStart; index < scanEnd; index += 1) {\n\t\tif (src[index] === \"\\n\" || src[index] === \"`\") return undefined;\n\t\tif (src.startsWith(close, index)) {\n\t\t\tconst text = src.slice(bodyStart, index);\n\t\t\tconst normalizedText = open === close ? text : text.trim();\n\t\t\tif (!normalizedText || (open === close && /^\\s|\\s$/.test(text))) return undefined;\n\t\t\treturn { raw: src.slice(0, index + close.length), text: normalizedText };\n\t\t}\n\t\tif (open !== close && src.startsWith(open, index)) return undefined;\n\t\tif (src[index] === \"\\\\\") {\n\t\t\tif (src[index + 1] === \"\\n\" || src[index + 1] === \"\\r\") return undefined;\n\t\t\tindex += 1;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction findMalformedInlineSpan(src: string, open: \"\\\\(\" | \"\\\\[\", close: \"\\\\)\" | \"\\\\]\"): string | undefined {\n\tif (!src.startsWith(open)) return undefined;\n\tconst scanEnd = Math.min(src.length, open.length + MAX_LATEX_FORMULA_LENGTH + 1);\n\tlet competingOpener = false;\n\tconst closers = [close];\n\tfor (let index = open.length; index < scanEnd; index += 1) {\n\t\tif (src[index] === \"\\n\" || src[index] === \"`\") {\n\t\t\treturn competingOpener ? src.slice(0, index) : undefined;\n\t\t}\n\t\tconst nestedOpen = src.startsWith(\"\\\\(\", index) ? \"\\\\(\" : src.startsWith(\"\\\\[\", index) ? \"\\\\[\" : undefined;\n\t\tif (nestedOpen !== undefined) {\n\t\t\tcompetingOpener = true;\n\t\t\tclosers.push(nestedOpen === \"\\\\(\" ? \"\\\\)\" : \"\\\\]\");\n\t\t\tindex += nestedOpen.length - 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst expectedClose = closers.at(-1);\n\t\tif (expectedClose !== undefined && src.startsWith(expectedClose, index)) {\n\t\t\tclosers.pop();\n\t\t\tif (closers.length === 0) {\n\t\t\t\treturn competingOpener ? src.slice(0, index + expectedClose.length) : undefined;\n\t\t\t}\n\t\t\tindex += expectedClose.length - 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (src[index] === \"\\\\\") {\n\t\t\tif (src[index + 1] === \"\\n\" || src[index + 1] === \"\\r\") {\n\t\t\t\treturn competingOpener ? src.slice(0, index) : undefined;\n\t\t\t}\n\t\t\tindex += 1;\n\t\t}\n\t}\n\treturn competingOpener ? src.slice(0, scanEnd) : undefined;\n}\n\nfunction isLikelyLiteralDollarBody(text: string): boolean {\n\treturn (\n\t\ttext.startsWith(\"{\") ||\n\t\t/^\\([^)\\r\\n]*\\)[/\\\\]$/.test(text) ||\n\t\t/^[!#$?@*-][/\\\\]$/.test(text) ||\n\t\t/^[A-Za-z_][A-Za-z0-9_]*[./\\\\:-]$/.test(text) ||\n\t\t/^\\d[\\d,.]*(?:[-–—]|[/\\\\])$/.test(text)\n\t);\n}\n\nfunction findBlockMath(\n\tsrc: string,\n\topen: \"$$\" | \"\\\\[\",\n\tclose: \"$$\" | \"\\\\]\",\n): { raw: string; text: string } | undefined {\n\tif (!src.startsWith(open)) return undefined;\n\tconst bodyStart = open.length;\n\tconst scanEnd = Math.min(src.length, bodyStart + MAX_LATEX_FORMULA_LENGTH + 1);\n\tconst lineValidationEnd = Math.min(src.length, scanEnd + close.length + 256);\n\n\tfor (let index = bodyStart; index < scanEnd; index += 1) {\n\t\tif (src[index] === \"`\") return undefined;\n\t\tif (open !== close && src.startsWith(open, index)) return undefined;\n\t\tif (!src.startsWith(close, index)) continue;\n\t\tconst closeEnd = index + close.length;\n\t\tlet rawLineEnd = closeEnd;\n\t\twhile (rawLineEnd < lineValidationEnd && src[rawLineEnd] !== \"\\n\" && /[ \\t]/.test(src[rawLineEnd] ?? \"\")) {\n\t\t\trawLineEnd += 1;\n\t\t}\n\t\tif (rawLineEnd < src.length && src[rawLineEnd] !== \"\\n\") return undefined;\n\t\tconst text = src.slice(bodyStart, index).trim();\n\t\tif (!text) return undefined;\n\t\tlet rawEnd = rawLineEnd;\n\t\twhile (rawEnd < lineValidationEnd && src[rawEnd] === \"\\n\") rawEnd += 1;\n\t\treturn { raw: src.slice(0, rawEnd), text };\n\t}\n\treturn undefined;\n}\n\nfunction repeatedMalformedOpeners(src: string, opener: \"\\\\(\" | \"\\\\[\"): string | undefined {\n\tlet end = opener.length;\n\twhile (src.startsWith(opener, end)) end += opener.length;\n\treturn end > opener.length ? src.slice(0, end) : undefined;\n}\n\nconst blockMathTokenizer: TokenizerExtension = {\n\tname: \"latex_block\",\n\tlevel: \"block\",\n\ttokenizer(src) {\n\t\tconst leadingSpaces = /^ {0,3}/.exec(src)?.[0] ?? \"\";\n\t\tconst candidate = src.slice(leadingSpaces.length);\n\t\tconst match = findBlockMath(candidate, \"$$\", \"$$\") ?? findBlockMath(candidate, \"\\\\[\", \"\\\\]\");\n\t\tif (match) return createLatexToken(\"latex_block\", `${leadingSpaces}${match.raw}`, match.text);\n\t\treturn undefined;\n\t},\n};\n\nconst inlineMathTokenizer: TokenizerExtension = {\n\tname: \"latex_inline\",\n\tlevel: \"inline\",\n\tstart(src) {\n\t\tconst index = src.search(/\\$|\\\\[()[\\]]/);\n\t\treturn index >= 0 ? index : undefined;\n\t},\n\ttokenizer(src, tokens) {\n\t\tconst codeSpanLiteral = /^(?:\\${1,2}|\\\\\\(|\\\\\\)|\\\\\\[|\\\\\\])/.exec(src)?.[0];\n\t\tif (codeSpanLiteral && followsUnclosedCodeSpan(tokens)) {\n\t\t\treturn createLatexToken(\"latex_literal\", codeSpanLiteral, codeSpanLiteral);\n\t\t}\n\t\tif (src.startsWith(\"$\")) {\n\t\t\tif (src.startsWith(\"$$\")) return createLatexToken(\"latex_literal\", \"$$\", \"$$\");\n\t\t\tconst match = findInlineMath(src, \"$\", \"$\");\n\t\t\tif (match && isLikelyLiteralDollarBody(match.text)) {\n\t\t\t\treturn createLatexToken(\"latex_literal\", match.raw, match.raw);\n\t\t\t}\n\t\t\tconst previous = previousRawCharacter(tokens);\n\t\t\tconst next = match ? firstCharacter(src.slice(match.raw.length)) : undefined;\n\t\t\tif (\n\t\t\t\tmatch &&\n\t\t\t\t(previous === undefined || !WORD_CHARACTER_REGEX.test(previous)) &&\n\t\t\t\t(next === undefined || !WORD_CHARACTER_REGEX.test(next))\n\t\t\t) {\n\t\t\t\treturn createLatexToken(\"latex_inline\", match.raw, match.text);\n\t\t\t}\n\t\t\treturn createLatexToken(\"latex_literal\", \"$\", \"$\");\n\t\t}\n\t\tconst malformedParens = findMalformedInlineSpan(src, \"\\\\(\", \"\\\\)\");\n\t\tif (malformedParens) return createLatexToken(\"latex_literal\", malformedParens, malformedParens);\n\t\tconst malformedBrackets = findMalformedInlineSpan(src, \"\\\\[\", \"\\\\]\");\n\t\tif (malformedBrackets) return createLatexToken(\"latex_literal\", malformedBrackets, malformedBrackets);\n\t\tconst repeatedParens = repeatedMalformedOpeners(src, \"\\\\(\");\n\t\tif (repeatedParens) return createLatexToken(\"latex_literal\", repeatedParens, repeatedParens);\n\t\tconst repeatedBrackets = repeatedMalformedOpeners(src, \"\\\\[\");\n\t\tif (repeatedBrackets) return createLatexToken(\"latex_literal\", repeatedBrackets, repeatedBrackets);\n\t\tconst parens = findInlineMath(src, \"\\\\(\", \"\\\\)\");\n\t\tif (parens) {\n\t\t\tconst previous = previousRawCharacter(tokens);\n\t\t\tconst next = firstCharacter(src.slice(parens.raw.length));\n\t\t\tif (\n\t\t\t\t(previous === undefined || !WORD_CHARACTER_REGEX.test(previous)) &&\n\t\t\t\t(next === undefined || !WORD_CHARACTER_REGEX.test(next))\n\t\t\t) {\n\t\t\t\treturn createLatexToken(\"latex_inline\", parens.raw, parens.text);\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t\tconst brackets = findInlineMath(src, \"\\\\[\", \"\\\\]\");\n\t\tif (brackets) {\n\t\t\tconst previous = previousRawCharacter(tokens);\n\t\t\tconst next = firstCharacter(src.slice(brackets.raw.length));\n\t\t\tif (\n\t\t\t\t(previous === undefined || !WORD_CHARACTER_REGEX.test(previous)) &&\n\t\t\t\t(next === undefined || !WORD_CHARACTER_REGEX.test(next))\n\t\t\t) {\n\t\t\t\treturn createLatexToken(\"latex_inline\", brackets.raw, brackets.text);\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t\tconst literal = /^(?:\\\\\\(|\\\\\\)|\\\\\\[|\\\\\\])/.exec(src);\n\t\tif (!literal) return undefined;\n\t\tconst previous = previousRawCharacter(tokens);\n\t\treturn previous !== undefined && WORD_CHARACTER_REGEX.test(previous)\n\t\t\t? undefined\n\t\t\t: createLatexToken(\"latex_literal\", literal[0], literal[0]);\n\t},\n};\n\nfunction trimPartialClosingFences(tokens: readonly Token[]): void {\n\tconst token = tokens[tokens.length - 1];\n\tif (token?.type === \"list\") {\n\t\ttrimPartialClosingFences(token.items[token.items.length - 1]?.tokens ?? []);\n\t\treturn;\n\t}\n\tif (token?.type === \"blockquote\") {\n\t\ttrimPartialClosingFences(token.tokens ?? []);\n\t\treturn;\n\t}\n\tif (token?.type !== \"code\") {\n\t\treturn;\n\t}\n\n\t// Trim streamed partial closing fences so code blocks do not shrink/flicker\n\t// when the final fence character arrives. See https://github.com/earendil-works/pi/issues/5825.\n\tconst marker = /^(`{3,}|~{3,})/.exec(token.raw)?.[1];\n\tconst lastLine = token.raw.split(\"\\n\").pop();\n\tif (!marker || !lastLine || lastLine.length >= marker.length || lastLine !== marker[0]?.repeat(lastLine.length)) {\n\t\treturn;\n\t}\n\n\ttoken.text = token.text.slice(0, -lastLine.length).replace(/\\n$/, \"\");\n}\n\nconst markdownParser = new Marked();\nmarkdownParser.use({ extensions: [blockMathTokenizer, inlineMathTokenizer] });\nmarkdownParser.setOptions({\n\ttokenizer: new StrictStrikethroughTokenizer(),\n});\n\nconst RENDER_CACHE_MAX = 256;\nconst PARSE_CACHE_MAX = 128;\nconst CONTENT_KEY_CACHE_MAX = 128;\nconst HIGHLIGHT_CACHE_MAX = 512;\nconst MAX_HIGHLIGHT_BYTES = 200_000;\nconst MAX_HIGHLIGHT_LINES = 2000;\nconst renderCache = new Map<string, { source: string; lines: string[] }>();\nconst parseCache = new Map<string, { source: string; tokens: Token[] }>();\nconst contentKeyCache = new Map<string, string>();\nconst highlightCache = new Map<string, string[]>();\nconst objectIds = new WeakMap<object, number>();\nlet nextObjectId = 0;\nlet markdownHighlightCallCount = 0;\n\nfunction objectId(value: object): number {\n\tconst cached = objectIds.get(value);\n\tif (cached !== undefined) return cached;\n\tconst id = nextObjectId++;\n\tobjectIds.set(value, id);\n\treturn id;\n}\n\nfunction cacheSet<T>(cache: Map<string, T>, key: string, value: T, maxSize: number): void {\n\tif (cache.has(key)) cache.delete(key);\n\tcache.set(key, value);\n\tif (cache.size > maxSize) {\n\t\tconst oldest = cache.keys().next().value;\n\t\tif (oldest !== undefined) cache.delete(oldest);\n\t}\n}\n\nfunction contentKey(text: string): string {\n\tconst cached = contentKeyCache.get(text);\n\tif (cached !== undefined) {\n\t\tcacheSet(contentKeyCache, text, cached, CONTENT_KEY_CACHE_MAX);\n\t\treturn cached;\n\t}\n\n\tlet hash = 2166136261;\n\tfor (let i = 0; i < text.length; i++) {\n\t\thash ^= text.charCodeAt(i);\n\t\thash = Math.imul(hash, 16777619);\n\t}\n\tconst key = `${text.length}:${(hash >>> 0).toString(36)}`;\n\tcacheSet(contentKeyCache, text, key, CONTENT_KEY_CACHE_MAX);\n\treturn key;\n}\n\nexport function clearRenderCache(): void {\n\trenderCache.clear();\n\tparseCache.clear();\n\tcontentKeyCache.clear();\n\thighlightCache.clear();\n}\n\nexport function getMarkdownHighlightCallCount(): number {\n\treturn markdownHighlightCallCount;\n}\n\nexport function resetMarkdownHighlightCallCount(): void {\n\tmarkdownHighlightCallCount = 0;\n}\n\n/**\n * Default text styling for markdown content.\n * Applied to all text unless overridden by markdown formatting.\n */\nexport interface DefaultTextStyle {\n\t/** Foreground color function */\n\tcolor?: (text: string) => string;\n\t/** Background color function */\n\tbgColor?: (text: string) => string;\n\t/** Bold text */\n\tbold?: boolean;\n\t/** Italic text */\n\titalic?: boolean;\n\t/** Strikethrough text */\n\tstrikethrough?: boolean;\n\t/** Underline text */\n\tunderline?: boolean;\n}\n\n/**\n * Theme functions for markdown elements.\n * Each function takes text and returns styled text with ANSI codes.\n */\nexport interface MarkdownTheme {\n\theading: (text: string) => string;\n\tlink: (text: string) => string;\n\tlinkUrl: (text: string) => string;\n\tcode: (text: string) => string;\n\tcodeBlock: (text: string) => string;\n\tcodeBlockBorder: (text: string) => string;\n\tquote: (text: string) => string;\n\tquoteBorder: (text: string) => string;\n\thr: (text: string) => string;\n\tlistBullet: (text: string) => string;\n\tbold: (text: string) => string;\n\titalic: (text: string) => string;\n\tstrikethrough: (text: string) => string;\n\tunderline: (text: string) => string;\n\thighlightCode?: (code: string, lang?: string) => string[];\n\t/** Prefix applied to each rendered code block line (default: \" \") */\n\tcodeBlockIndent?: string;\n}\n\nexport interface MarkdownOptions {\n\t/** Preserve source list markers instead of normalizing them. */\n\tpreserveOrderedListMarkers?: boolean;\n\t/** Preserve source backslash escapes instead of normalizing escaped punctuation. */\n\tpreserveBackslashEscapes?: boolean;\n\t/** Transform source Markdown before parsing, with the exact width available for content. */\n\ttransform?: (markdown: string, availableWidth: number) => string;\n\t/** Render supported LaTeX math expressions as Unicode text (default: true). */\n\trenderLatex?: boolean;\n}\n\ninterface InlineStyleContext {\n\tapplyText: (text: string) => string;\n\tstylePrefix: string;\n}\n\nexport class Markdown implements Component {\n\tprivate text: string;\n\tprivate paddingX: number; // Left/right padding\n\tprivate paddingY: number; // Top/bottom padding\n\tprivate defaultTextStyle?: DefaultTextStyle;\n\tprivate theme: MarkdownTheme;\n\tprivate options: MarkdownOptions;\n\tprivate defaultStylePrefix?: string;\n\n\t// Cache for rendered output\n\tprivate cachedText?: string;\n\tprivate cachedWidth?: number;\n\tprivate cachedLines?: string[];\n\n\tconstructor(\n\t\ttext: string,\n\t\tpaddingX: number,\n\t\tpaddingY: number,\n\t\ttheme: MarkdownTheme,\n\t\tdefaultTextStyle?: DefaultTextStyle,\n\t\toptions?: MarkdownOptions,\n\t) {\n\t\tthis.text = text;\n\t\tthis.paddingX = paddingX;\n\t\tthis.paddingY = paddingY;\n\t\tthis.theme = theme;\n\t\tthis.defaultTextStyle = defaultTextStyle;\n\t\tthis.options = options ? { ...options } : {};\n\t}\n\n\tsetText(text: string): void {\n\t\tthis.text = text;\n\t\tthis.invalidate();\n\t}\n\n\tinvalidate(): void {\n\t\tthis.cachedText = undefined;\n\t\tthis.cachedWidth = undefined;\n\t\tthis.cachedLines = undefined;\n\t}\n\n\trender(width: number): string[] {\n\t\t// Check cache\n\t\tif (this.cachedLines && this.cachedText === this.text && this.cachedWidth === width) {\n\t\t\treturn this.cachedLines;\n\t\t}\n\n\t\t// Calculate available width for content (subtract horizontal padding)\n\t\tconst contentWidth = Math.max(1, width - this.paddingX * 2);\n\t\tconst text = this.options.transform?.(this.text, contentWidth) ?? this.text;\n\n\t\t// Don't render anything if there's no actual text\n\t\tif (!text || text.trim() === \"\") {\n\t\t\tconst result: string[] = [];\n\t\t\t// Update cache\n\t\t\tthis.cachedText = this.text;\n\t\t\tthis.cachedWidth = width;\n\t\t\tthis.cachedLines = result;\n\t\t\treturn result;\n\t\t}\n\n\t\t// Replace tabs with 3 spaces for consistent rendering\n\t\tconst normalizedText = text.replace(/\\t/g, \" \");\n\t\tconst normalizedContentKey = contentKey(normalizedText);\n\t\tconst styleKey = this.defaultTextStyle ? objectId(this.defaultTextStyle) : -1;\n\t\tconst renderKey = [\n\t\t\tnormalizedContentKey,\n\t\t\twidth,\n\t\t\tcontentWidth,\n\t\t\tthis.paddingX,\n\t\t\tthis.paddingY,\n\t\t\tthis.theme.codeBlockIndent ?? \" \",\n\t\t\t(this.options.preserveOrderedListMarkers ? 1 : 0) |\n\t\t\t\t(this.options.preserveBackslashEscapes ? 2 : 0) |\n\t\t\t\t(this.options.renderLatex === false ? 4 : 0),\n\t\t\tobjectId(this.theme),\n\t\t\tstyleKey,\n\t\t\tgetCapabilities().images ?? \"\",\n\t\t\tgetCapabilities().hyperlinks ? 1 : 0,\n\t\t].join(\"\\x00\");\n\t\tconst cachedRender = renderCache.get(renderKey);\n\t\tif (cachedRender?.source === normalizedText) {\n\t\t\tthis.cachedText = this.text;\n\t\t\tthis.cachedWidth = width;\n\t\t\tthis.cachedLines = cachedRender.lines;\n\t\t\treturn cachedRender.lines;\n\t\t}\n\n\t\t// Parse markdown to HTML-like tokens\n\t\tconst cachedParse = parseCache.get(normalizedContentKey);\n\t\tlet tokens: Token[];\n\t\tif (cachedParse?.source === normalizedText) {\n\t\t\ttokens = cachedParse.tokens;\n\t\t} else {\n\t\t\ttokens = markdownParser.lexer(normalizedText);\n\t\t\ttrimPartialClosingFences(tokens);\n\t\t\tcacheSet(parseCache, normalizedContentKey, { source: normalizedText, tokens }, PARSE_CACHE_MAX);\n\t\t}\n\n\t\t// Convert tokens to styled terminal output\n\t\tconst renderedLines: string[] = [];\n\n\t\tfor (let i = 0; i < tokens.length; i++) {\n\t\t\tconst token = tokens[i];\n\t\t\tconst nextToken = tokens[i + 1];\n\t\t\tconst tokenLines = this.renderToken(token, contentWidth, nextToken?.type);\n\t\t\tfor (const tokenLine of tokenLines) {\n\t\t\t\trenderedLines.push(tokenLine);\n\t\t\t}\n\t\t}\n\n\t\t// Wrap lines (NO padding, NO background yet)\n\t\tconst wrappedLines: string[] = [];\n\t\tfor (const line of renderedLines) {\n\t\t\tif (isImageLine(line)) {\n\t\t\t\twrappedLines.push(line);\n\t\t\t} else {\n\t\t\t\tfor (const wrappedLine of wrapTextWithAnsi(line, contentWidth)) {\n\t\t\t\t\twrappedLines.push(wrappedLine);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add margins and background to each wrapped line\n\t\tconst leftMargin = \" \".repeat(this.paddingX);\n\t\tconst rightMargin = \" \".repeat(this.paddingX);\n\t\tconst bgFn = this.defaultTextStyle?.bgColor;\n\t\tconst contentLines: string[] = [];\n\n\t\tfor (const line of wrappedLines) {\n\t\t\tif (isImageLine(line)) {\n\t\t\t\tcontentLines.push(line);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst lineWithMargins = leftMargin + line + rightMargin;\n\n\t\t\tif (bgFn) {\n\t\t\t\tcontentLines.push(applyBackgroundToLine(lineWithMargins, width, bgFn));\n\t\t\t} else {\n\t\t\t\t// No background - just pad to width\n\t\t\t\tconst visibleLen = visibleWidth(lineWithMargins);\n\t\t\t\tconst paddingNeeded = Math.max(0, width - visibleLen);\n\t\t\t\tcontentLines.push(lineWithMargins + \" \".repeat(paddingNeeded));\n\t\t\t}\n\t\t}\n\n\t\t// Add top/bottom padding (empty lines)\n\t\tconst emptyLine = \" \".repeat(width);\n\t\tconst emptyLines: string[] = [];\n\t\tfor (let i = 0; i < this.paddingY; i++) {\n\t\t\tconst line = bgFn ? applyBackgroundToLine(emptyLine, width, bgFn) : emptyLine;\n\t\t\temptyLines.push(line);\n\t\t}\n\n\t\t// Combine top padding, content, and bottom padding\n\t\tconst result = emptyLines.concat(contentLines, emptyLines);\n\n\t\t// Update cache\n\t\tthis.cachedText = this.text;\n\t\tthis.cachedWidth = width;\n\t\tthis.cachedLines = result;\n\t\tcacheSet(renderCache, renderKey, { source: normalizedText, lines: result }, RENDER_CACHE_MAX);\n\n\t\treturn result.length > 0 ? result : [\"\"];\n\t}\n\n\t/**\n\t * Apply default text style to a string.\n\t * This is the base styling applied to all text content.\n\t * NOTE: Background color is NOT applied here - it's applied at the padding stage\n\t * to ensure it extends to the full line width.\n\t */\n\tprivate applyDefaultStyle(text: string): string {\n\t\tif (!this.defaultTextStyle) {\n\t\t\treturn text;\n\t\t}\n\n\t\tlet styled = text;\n\n\t\t// Apply foreground color (NOT background - that's applied at padding stage)\n\t\tif (this.defaultTextStyle.color) {\n\t\t\tstyled = this.defaultTextStyle.color(styled);\n\t\t}\n\n\t\t// Apply text decorations using this.theme\n\t\tif (this.defaultTextStyle.bold) {\n\t\t\tstyled = this.theme.bold(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.italic) {\n\t\t\tstyled = this.theme.italic(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.strikethrough) {\n\t\t\tstyled = this.theme.strikethrough(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.underline) {\n\t\t\tstyled = this.theme.underline(styled);\n\t\t}\n\n\t\treturn styled;\n\t}\n\n\tprivate getDefaultStylePrefix(): string {\n\t\tif (!this.defaultTextStyle) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (this.defaultStylePrefix !== undefined) {\n\t\t\treturn this.defaultStylePrefix;\n\t\t}\n\n\t\tconst sentinel = \"\\u0000\";\n\t\tlet styled = sentinel;\n\n\t\tif (this.defaultTextStyle.color) {\n\t\t\tstyled = this.defaultTextStyle.color(styled);\n\t\t}\n\n\t\tif (this.defaultTextStyle.bold) {\n\t\t\tstyled = this.theme.bold(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.italic) {\n\t\t\tstyled = this.theme.italic(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.strikethrough) {\n\t\t\tstyled = this.theme.strikethrough(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.underline) {\n\t\t\tstyled = this.theme.underline(styled);\n\t\t}\n\n\t\tconst sentinelIndex = styled.indexOf(sentinel);\n\t\tthis.defaultStylePrefix = sentinelIndex >= 0 ? styled.slice(0, sentinelIndex) : \"\";\n\t\treturn this.defaultStylePrefix;\n\t}\n\n\tprivate getStylePrefix(styleFn: (text: string) => string): string {\n\t\tconst sentinel = \"\\u0000\";\n\t\tconst styled = styleFn(sentinel);\n\t\tconst sentinelIndex = styled.indexOf(sentinel);\n\t\treturn sentinelIndex >= 0 ? styled.slice(0, sentinelIndex) : \"\";\n\t}\n\n\tprivate getDefaultInlineStyleContext(): InlineStyleContext {\n\t\treturn {\n\t\t\tapplyText: (text: string) => this.applyDefaultStyle(text),\n\t\t\tstylePrefix: this.getDefaultStylePrefix(),\n\t\t};\n\t}\n\n\tprivate exceedsHighlightCap(code: string): boolean {\n\t\tlet newlineCount = 0;\n\t\tfor (let i = 0; i < code.length; i++) {\n\t\t\tif (code.charCodeAt(i) === 10) newlineCount += 1;\n\t\t\tif (newlineCount + 1 > MAX_HIGHLIGHT_LINES) return true;\n\t\t}\n\t\treturn new TextEncoder().encode(code).byteLength > MAX_HIGHLIGHT_BYTES;\n\t}\n\n\tprivate highlightCodeBlock(code: string, lang: string | undefined): string[] | null {\n\t\tif (!this.theme.highlightCode) return null;\n\t\tif (this.exceedsHighlightCap(code)) return null;\n\t\tconst key = `${objectId(this.theme)}\\x00${lang ?? \"\"}\\x00${code}`;\n\t\tconst cached = highlightCache.get(key);\n\t\tif (cached) {\n\t\t\tcacheSet(highlightCache, key, cached, HIGHLIGHT_CACHE_MAX);\n\t\t\treturn cached;\n\t\t}\n\t\tmarkdownHighlightCallCount += 1;\n\t\tconst highlighted = this.theme.highlightCode(code, lang);\n\t\tcacheSet(highlightCache, key, highlighted, HIGHLIGHT_CACHE_MAX);\n\t\treturn highlighted;\n\t}\n\n\tprivate renderCodeBlock(lines: string[], code: string, lang: string | undefined, indent: string): void {\n\t\tlines.push(this.theme.codeBlockBorder(`\\`\\`\\`${lang || \"\"}`));\n\t\tconst highlightedLines = this.highlightCodeBlock(code, lang);\n\t\tif (highlightedLines) {\n\t\t\tfor (const hlLine of highlightedLines) {\n\t\t\t\tlines.push(`${indent}${hlLine}`);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.theme.highlightCode && this.exceedsHighlightCap(code)) {\n\t\t\t\tlines.push(`${indent}${this.theme.codeBlock(\"[syntax highlighting skipped: code block too large]\")}`);\n\t\t\t}\n\t\t\tfor (const codeLine of code.split(\"\\n\")) {\n\t\t\t\tlines.push(`${indent}${this.theme.codeBlock(codeLine)}`);\n\t\t\t}\n\t\t}\n\t\tlines.push(this.theme.codeBlockBorder(\"```\"));\n\t}\n\n\tprivate renderToken(\n\t\ttoken: Token,\n\t\twidth: number,\n\t\tnextTokenType?: string,\n\t\tstyleContext?: InlineStyleContext,\n\t): string[] {\n\t\tconst lines: string[] = [];\n\n\t\tswitch (token.type) {\n\t\t\tcase \"heading\": {\n\t\t\t\tconst headingLevel = token.depth;\n\t\t\t\tconst headingPrefix = `${\"#\".repeat(headingLevel)} `;\n\n\t\t\t\t// Build a heading-specific style context so inline tokens (codespan, bold, etc.)\n\t\t\t\t// restore heading styling after their own ANSI resets instead of falling back to\n\t\t\t\t// the default text style.\n\t\t\t\tlet headingStyleFn: (text: string) => string;\n\t\t\t\tif (headingLevel === 1) {\n\t\t\t\t\theadingStyleFn = (text: string) => this.theme.heading(this.theme.bold(this.theme.underline(text)));\n\t\t\t\t} else {\n\t\t\t\t\theadingStyleFn = (text: string) => this.theme.heading(this.theme.bold(text));\n\t\t\t\t}\n\n\t\t\t\tconst headingStyleContext: InlineStyleContext = {\n\t\t\t\t\tapplyText: headingStyleFn,\n\t\t\t\t\tstylePrefix: this.getStylePrefix(headingStyleFn),\n\t\t\t\t};\n\n\t\t\t\tconst headingText = this.renderInlineTokens(token.tokens || [], headingStyleContext);\n\t\t\t\tconst styledHeading = headingLevel >= 3 ? headingStyleFn(headingPrefix) + headingText : headingText;\n\t\t\t\tlines.push(styledHeading);\n\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\"); // Add spacing after headings (unless space token follows)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"paragraph\": {\n\t\t\t\tconst paragraphText = this.renderInlineTokens(token.tokens || [], styleContext);\n\t\t\t\tlines.push(paragraphText);\n\t\t\t\t// Don't add spacing if next token is space or list\n\t\t\t\tif (nextTokenType && nextTokenType !== \"list\" && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"latex_block\":\n\t\t\t\tif (isLatexToken(token)) {\n\t\t\t\t\tconst formula = this.options.renderLatex === false ? token.raw.trim() : latexToUnicode(token.text);\n\t\t\t\t\tlines.push(styleContext ? styleContext.applyText(formula) : this.applyDefaultStyle(formula));\n\t\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\t\tlines.push(\"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"text\":\n\t\t\t\tlines.push(this.renderInlineTokens([token], styleContext));\n\t\t\t\tbreak;\n\n\t\t\tcase \"code\": {\n\t\t\t\tconst indent = this.theme.codeBlockIndent ?? \" \";\n\t\t\t\tthis.renderCodeBlock(lines, token.text, token.lang, indent);\n\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\"); // Add spacing after code blocks (unless space token follows)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"list\": {\n\t\t\t\tconst listLines = this.renderList(token as Tokens.List, 0, width, styleContext);\n\t\t\t\tlines.push(...listLines);\n\t\t\t\t// Don't add spacing after lists if a space token follows\n\t\t\t\t// (the space token will handle it)\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"table\": {\n\t\t\t\tconst tableLines = this.renderTable(token as Tokens.Table, width, nextTokenType, styleContext);\n\t\t\t\tlines.push(...tableLines);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"blockquote\": {\n\t\t\t\tconst quoteStyle = (text: string) => this.theme.quote(this.theme.italic(text));\n\t\t\t\tconst quoteStylePrefix = this.getStylePrefix(quoteStyle);\n\t\t\t\tconst applyQuoteStyle = (line: string): string => {\n\t\t\t\t\tif (!quoteStylePrefix) {\n\t\t\t\t\t\treturn quoteStyle(line);\n\t\t\t\t\t}\n\t\t\t\t\tconst lineWithReappliedStyle = line.replace(/\\x1b\\[0m/g, `\\x1b[0m${quoteStylePrefix}`);\n\t\t\t\t\treturn quoteStyle(lineWithReappliedStyle);\n\t\t\t\t};\n\n\t\t\t\t// Calculate available width for quote content (subtract border \"│ \" = 2 chars)\n\t\t\t\tconst quoteContentWidth = Math.max(1, width - 2);\n\n\t\t\t\t// Blockquotes contain block-level tokens (paragraph, list, code, etc.), so render\n\t\t\t\t// children with renderToken() instead of renderInlineTokens().\n\t\t\t\t// Default message style should not apply inside blockquotes.\n\t\t\t\tconst quoteInlineStyleContext: InlineStyleContext = {\n\t\t\t\t\tapplyText: (text: string) => text,\n\t\t\t\t\tstylePrefix: quoteStylePrefix,\n\t\t\t\t};\n\t\t\t\tconst quoteTokens = token.tokens || [];\n\t\t\t\tconst renderedQuoteLines: string[] = [];\n\t\t\t\tfor (let i = 0; i < quoteTokens.length; i++) {\n\t\t\t\t\tconst quoteToken = quoteTokens[i];\n\t\t\t\t\tconst nextQuoteToken = quoteTokens[i + 1];\n\t\t\t\t\trenderedQuoteLines.push(\n\t\t\t\t\t\t...this.renderToken(quoteToken, quoteContentWidth, nextQuoteToken?.type, quoteInlineStyleContext),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Avoid rendering an extra empty quote line before the outer blockquote spacing.\n\t\t\t\twhile (renderedQuoteLines.length > 0 && renderedQuoteLines[renderedQuoteLines.length - 1] === \"\") {\n\t\t\t\t\trenderedQuoteLines.pop();\n\t\t\t\t}\n\n\t\t\t\tfor (const quoteLine of renderedQuoteLines) {\n\t\t\t\t\tconst styledLine = applyQuoteStyle(quoteLine);\n\t\t\t\t\tconst wrappedLines = wrapTextWithAnsi(styledLine, quoteContentWidth);\n\t\t\t\t\tfor (const wrappedLine of wrappedLines) {\n\t\t\t\t\t\tlines.push(this.theme.quoteBorder(\"│ \") + wrappedLine);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\"); // Add spacing after blockquotes (unless space token follows)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"hr\":\n\t\t\t\tlines.push(this.theme.hr(\"─\".repeat(Math.min(width, 80))));\n\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\"); // Add spacing after horizontal rules (unless space token follows)\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"html\":\n\t\t\t\t// Render HTML as plain text (escaped for terminal)\n\t\t\t\tif (\"raw\" in token && typeof token.raw === \"string\") {\n\t\t\t\t\tlines.push(this.applyDefaultStyle(token.raw.trim()));\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"space\":\n\t\t\t\t// Space tokens represent blank lines in markdown\n\t\t\t\tlines.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\t// Handle any other token types as plain text\n\t\t\t\tif (\"text\" in token && typeof token.text === \"string\") {\n\t\t\t\t\tlines.push(token.text);\n\t\t\t\t}\n\t\t}\n\n\t\treturn lines;\n\t}\n\n\tprivate renderInlineTokens(tokens: Token[], styleContext?: InlineStyleContext): string {\n\t\tlet result = \"\";\n\t\tconst resolvedStyleContext = styleContext ?? this.getDefaultInlineStyleContext();\n\t\tconst { applyText, stylePrefix } = resolvedStyleContext;\n\t\tconst applyTextWithNewlines = (text: string): string => {\n\t\t\tconst segments: string[] = text.split(\"\\n\");\n\t\t\treturn segments.map((segment: string) => applyText(segment)).join(\"\\n\");\n\t\t};\n\n\t\tfor (const token of tokens) {\n\t\t\tswitch (token.type) {\n\t\t\t\tcase \"escape\":\n\t\t\t\t\tresult += applyTextWithNewlines(this.options.preserveBackslashEscapes ? token.raw : token.text);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"text\":\n\t\t\t\t\t// Text tokens in list items can have nested tokens for inline formatting\n\t\t\t\t\tif (token.tokens && token.tokens.length > 0) {\n\t\t\t\t\t\tresult += this.renderInlineTokens(token.tokens, resolvedStyleContext);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult += applyTextWithNewlines(token.text);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"paragraph\":\n\t\t\t\t\t// Paragraph tokens contain nested inline tokens\n\t\t\t\t\tresult += this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"strong\": {\n\t\t\t\t\tconst boldContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tresult += this.theme.bold(boldContent) + stylePrefix;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"em\": {\n\t\t\t\t\tconst italicContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tresult += this.theme.italic(italicContent) + stylePrefix;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"codespan\":\n\t\t\t\t\tresult += this.theme.code(token.text) + stylePrefix;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"latex_inline\":\n\t\t\t\t\tif (isLatexToken(token)) {\n\t\t\t\t\t\tresult += applyTextWithNewlines(\n\t\t\t\t\t\t\tthis.options.renderLatex === false ? token.raw : latexToUnicode(token.text),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"latex_literal\":\n\t\t\t\t\tif (isLatexToken(token)) {\n\t\t\t\t\t\tresult += applyTextWithNewlines(token.text);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"link\": {\n\t\t\t\t\tconst linkText = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tconst styledLink = this.theme.link(this.theme.underline(linkText));\n\t\t\t\t\tif (getCapabilities().hyperlinks) {\n\t\t\t\t\t\t// OSC 8: render as a clickable hyperlink. The URL is not printed inline,\n\t\t\t\t\t\t// so we always show only the link text regardless of whether it matches href.\n\t\t\t\t\t\tresult += hyperlink(styledLink, token.href) + stylePrefix;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Fallback: print URL in parentheses when text differs from href.\n\t\t\t\t\t\t// Compare raw token.text (not styled) against href for the equality check.\n\t\t\t\t\t\t// For mailto: links strip the prefix (autolinked emails use text=\"foo@bar.com\"\n\t\t\t\t\t\t// but href=\"mailto:foo@bar.com\").\n\t\t\t\t\t\tconst hrefForComparison = token.href.startsWith(\"mailto:\") ? token.href.slice(7) : token.href;\n\t\t\t\t\t\tif (token.text === token.href || token.text === hrefForComparison) {\n\t\t\t\t\t\t\tresult += styledLink + stylePrefix;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult += styledLink + this.theme.linkUrl(` (${token.href})`) + stylePrefix;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"br\":\n\t\t\t\t\tresult += \"\\n\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"del\": {\n\t\t\t\t\tconst delContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tresult += this.theme.strikethrough(delContent) + stylePrefix;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"html\":\n\t\t\t\t\t// Render inline HTML as plain text\n\t\t\t\t\tif (\"raw\" in token && typeof token.raw === \"string\") {\n\t\t\t\t\t\tresult += applyTextWithNewlines(token.raw);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\t// Handle any other inline token types as plain text\n\t\t\t\t\tif (\"text\" in token && typeof token.text === \"string\") {\n\t\t\t\t\t\tresult += applyTextWithNewlines(token.text);\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twhile (stylePrefix && result.endsWith(stylePrefix)) {\n\t\t\tresult = result.slice(0, -stylePrefix.length);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate getOrderedListMarker(item: Tokens.ListItem): string | undefined {\n\t\tconst match = /^(?: {0,3})(\\d{1,9}[.)])[ \\t]+/.exec(item.raw);\n\t\treturn match ? `${match[1]} ` : undefined;\n\t}\n\n\tprivate getUnorderedListMarker(item: Tokens.ListItem): string | undefined {\n\t\tconst match = /^(?: {0,3})([-+*])(?:[ \\t]+|(?=\\r?\\n|$))/.exec(item.raw);\n\t\treturn match ? `${match[1]} ` : undefined;\n\t}\n\n\t/**\n\t * Render a list with proper nesting support\n\t */\n\tprivate renderList(token: Tokens.List, depth: number, width: number, styleContext?: InlineStyleContext): string[] {\n\t\tconst lines: string[] = [];\n\t\tconst indent = \" \".repeat(depth);\n\t\t// Use the list's start property (defaults to 1 for ordered lists)\n\t\tconst startNumber = typeof token.start === \"number\" ? token.start : 1;\n\n\t\tfor (let i = 0; i < token.items.length; i++) {\n\t\t\tconst item = token.items[i];\n\t\t\tconst isLastItem = i === token.items.length - 1;\n\t\t\tconst bullet = token.ordered\n\t\t\t\t? this.options.preserveOrderedListMarkers\n\t\t\t\t\t? (this.getOrderedListMarker(item) ?? `${startNumber + i}. `)\n\t\t\t\t\t: `${startNumber + i}. `\n\t\t\t\t: this.options.preserveOrderedListMarkers\n\t\t\t\t\t? (this.getUnorderedListMarker(item) ?? \"- \")\n\t\t\t\t\t: \"- \";\n\t\t\tconst taskMarker = item.task ? `[${item.checked ? \"x\" : \" \"}] ` : \"\";\n\t\t\tconst marker = bullet + taskMarker;\n\t\t\tconst firstPrefix = indent + this.theme.listBullet(marker);\n\t\t\tconst continuationPrefix = indent + \" \".repeat(visibleWidth(marker));\n\t\t\tconst itemWidth = Math.max(1, width - visibleWidth(firstPrefix));\n\t\t\tlet renderedAnyLine = false;\n\n\t\t\tfor (const itemToken of item.tokens) {\n\t\t\t\tif (itemToken.type === \"list\") {\n\t\t\t\t\tlines.push(...this.renderList(itemToken as Tokens.List, depth + 1, width, styleContext));\n\t\t\t\t\trenderedAnyLine = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst itemLines = this.renderToken(itemToken, itemWidth, undefined, styleContext);\n\t\t\t\tfor (const line of itemLines) {\n\t\t\t\t\tfor (const wrappedLine of wrapTextWithAnsi(line, itemWidth)) {\n\t\t\t\t\t\tconst linePrefix = renderedAnyLine ? continuationPrefix : firstPrefix;\n\t\t\t\t\t\tlines.push(linePrefix + wrappedLine);\n\t\t\t\t\t\trenderedAnyLine = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!renderedAnyLine) {\n\t\t\t\tlines.push(firstPrefix);\n\t\t\t}\n\n\t\t\tif (token.loose && !isLastItem) {\n\t\t\t\tlines.push(\"\");\n\t\t\t}\n\t\t}\n\n\t\treturn lines;\n\t}\n\n\t/**\n\t * Get the visible width of the longest word in a string.\n\t */\n\tprivate getLongestWordWidth(text: string, maxWidth?: number): number {\n\t\tconst words = text.split(/\\s+/).filter((word) => word.length > 0);\n\t\tlet longest = 0;\n\t\tfor (const word of words) {\n\t\t\tlongest = Math.max(longest, visibleWidth(word));\n\t\t}\n\t\tif (maxWidth === undefined) {\n\t\t\treturn longest;\n\t\t}\n\t\treturn Math.min(longest, maxWidth);\n\t}\n\n\t/**\n\t * Wrap a table cell to fit into a column.\n\t *\n\t * Delegates to wrapTextWithAnsi() so ANSI codes + long tokens are handled\n\t * consistently with the rest of the renderer.\n\t */\n\tprivate wrapCellText(text: string, maxWidth: number): string[] {\n\t\treturn wrapTextWithAnsi(text, Math.max(1, maxWidth));\n\t}\n\n\t/**\n\t * Render a table with width-aware cell wrapping.\n\t * Cells that don't fit are wrapped to multiple lines.\n\t */\n\tprivate renderTable(\n\t\ttoken: Tokens.Table,\n\t\tavailableWidth: number,\n\t\tnextTokenType?: string,\n\t\tstyleContext?: InlineStyleContext,\n\t): string[] {\n\t\tconst lines: string[] = [];\n\t\tconst numCols = token.header.length;\n\n\t\tif (numCols === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\t// Calculate border overhead: \"│ \" + (n-1) * \" │ \" + \" │\"\n\t\t// = 2 + (n-1) * 3 + 2 = 3n + 1\n\t\tconst borderOverhead = 3 * numCols + 1;\n\t\tconst availableForCells = availableWidth - borderOverhead;\n\t\tif (availableForCells < numCols) {\n\t\t\t// Too narrow to render a stable table. Fall back to raw markdown.\n\t\t\tconst fallbackLines = token.raw ? wrapTextWithAnsi(token.raw, availableWidth) : [];\n\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\tfallbackLines.push(\"\");\n\t\t\t}\n\t\t\treturn fallbackLines;\n\t\t}\n\n\t\tconst maxUnbrokenWordWidth = 30;\n\n\t\t// Calculate natural column widths (what each column needs without constraints)\n\t\tconst naturalWidths: number[] = [];\n\t\tconst minWordWidths: number[] = [];\n\t\tfor (let i = 0; i < numCols; i++) {\n\t\t\tconst headerText = this.renderInlineTokens(token.header[i].tokens || [], styleContext);\n\t\t\tnaturalWidths[i] = visibleWidth(headerText);\n\t\t\tminWordWidths[i] = Math.max(1, this.getLongestWordWidth(headerText, maxUnbrokenWordWidth));\n\t\t}\n\t\tfor (const row of token.rows) {\n\t\t\tfor (let i = 0; i < row.length; i++) {\n\t\t\t\tconst cellText = this.renderInlineTokens(row[i].tokens || [], styleContext);\n\t\t\t\tnaturalWidths[i] = Math.max(naturalWidths[i] || 0, visibleWidth(cellText));\n\t\t\t\tminWordWidths[i] = Math.max(\n\t\t\t\t\tminWordWidths[i] || 1,\n\t\t\t\t\tthis.getLongestWordWidth(cellText, maxUnbrokenWordWidth),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet minColumnWidths = minWordWidths;\n\t\tlet minCellsWidth = minColumnWidths.reduce((a, b) => a + b, 0);\n\n\t\tif (minCellsWidth > availableForCells) {\n\t\t\tminColumnWidths = new Array(numCols).fill(1);\n\t\t\tconst remaining = availableForCells - numCols;\n\n\t\t\tif (remaining > 0) {\n\t\t\t\tconst totalWeight = minWordWidths.reduce((total, width) => total + Math.max(0, width - 1), 0);\n\t\t\t\tconst growth = minWordWidths.map((width) => {\n\t\t\t\t\tconst weight = Math.max(0, width - 1);\n\t\t\t\t\treturn totalWeight > 0 ? Math.floor((weight / totalWeight) * remaining) : 0;\n\t\t\t\t});\n\n\t\t\t\tfor (let i = 0; i < numCols; i++) {\n\t\t\t\t\tminColumnWidths[i] += growth[i] ?? 0;\n\t\t\t\t}\n\n\t\t\t\tconst allocated = growth.reduce((total, width) => total + width, 0);\n\t\t\t\tlet leftover = remaining - allocated;\n\t\t\t\tfor (let i = 0; leftover > 0 && i < numCols; i++) {\n\t\t\t\t\tminColumnWidths[i]++;\n\t\t\t\t\tleftover--;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tminCellsWidth = minColumnWidths.reduce((a, b) => a + b, 0);\n\t\t}\n\n\t\t// Calculate column widths that fit within available width\n\t\tconst totalNaturalWidth = naturalWidths.reduce((a, b) => a + b, 0) + borderOverhead;\n\t\tlet columnWidths: number[];\n\n\t\tif (totalNaturalWidth <= availableWidth) {\n\t\t\t// Everything fits naturally\n\t\t\tcolumnWidths = naturalWidths.map((width, index) => Math.max(width, minColumnWidths[index]));\n\t\t} else {\n\t\t\t// Need to shrink columns to fit\n\t\t\tconst totalGrowPotential = naturalWidths.reduce((total, width, index) => {\n\t\t\t\treturn total + Math.max(0, width - minColumnWidths[index]);\n\t\t\t}, 0);\n\t\t\tconst extraWidth = Math.max(0, availableForCells - minCellsWidth);\n\t\t\tcolumnWidths = minColumnWidths.map((minWidth, index) => {\n\t\t\t\tconst naturalWidth = naturalWidths[index];\n\t\t\t\tconst minWidthDelta = Math.max(0, naturalWidth - minWidth);\n\t\t\t\tlet grow = 0;\n\t\t\t\tif (totalGrowPotential > 0) {\n\t\t\t\t\tgrow = Math.floor((minWidthDelta / totalGrowPotential) * extraWidth);\n\t\t\t\t}\n\t\t\t\treturn minWidth + grow;\n\t\t\t});\n\n\t\t\t// Adjust for rounding errors - distribute remaining space\n\t\t\tconst allocated = columnWidths.reduce((a, b) => a + b, 0);\n\t\t\tlet remaining = availableForCells - allocated;\n\t\t\twhile (remaining > 0) {\n\t\t\t\tlet grew = false;\n\t\t\t\tfor (let i = 0; i < numCols && remaining > 0; i++) {\n\t\t\t\t\tif (columnWidths[i] < naturalWidths[i]) {\n\t\t\t\t\t\tcolumnWidths[i]++;\n\t\t\t\t\t\tremaining--;\n\t\t\t\t\t\tgrew = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!grew) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Render top border\n\t\tconst topBorderCells = columnWidths.map((w) => \"─\".repeat(w));\n\t\tlines.push(`┌─${topBorderCells.join(\"─┬─\")}─┐`);\n\n\t\t// Render header with wrapping\n\t\tconst headerCellLines: string[][] = token.header.map((cell, i) => {\n\t\t\tconst text = this.renderInlineTokens(cell.tokens || [], styleContext);\n\t\t\treturn this.wrapCellText(text, columnWidths[i]);\n\t\t});\n\t\tconst headerLineCount = Math.max(...headerCellLines.map((c) => c.length));\n\n\t\tfor (let lineIdx = 0; lineIdx < headerLineCount; lineIdx++) {\n\t\t\tconst rowParts = headerCellLines.map((cellLines, colIdx) => {\n\t\t\t\tconst text = cellLines[lineIdx] || \"\";\n\t\t\t\tconst padded = text + \" \".repeat(Math.max(0, columnWidths[colIdx] - visibleWidth(text)));\n\t\t\t\treturn this.theme.bold(padded);\n\t\t\t});\n\t\t\tlines.push(`│ ${rowParts.join(\" │ \")} │`);\n\t\t}\n\n\t\t// Render separator\n\t\tconst separatorCells = columnWidths.map((w) => \"─\".repeat(w));\n\t\tconst separatorLine = `├─${separatorCells.join(\"─┼─\")}─┤`;\n\t\tlines.push(separatorLine);\n\n\t\t// Render rows with wrapping\n\t\tfor (let rowIndex = 0; rowIndex < token.rows.length; rowIndex++) {\n\t\t\tconst row = token.rows[rowIndex];\n\t\t\tconst rowCellLines: string[][] = row.map((cell, i) => {\n\t\t\t\tconst text = this.renderInlineTokens(cell.tokens || [], styleContext);\n\t\t\t\treturn this.wrapCellText(text, columnWidths[i]);\n\t\t\t});\n\t\t\tconst rowLineCount = Math.max(...rowCellLines.map((c) => c.length));\n\n\t\t\tfor (let lineIdx = 0; lineIdx < rowLineCount; lineIdx++) {\n\t\t\t\tconst rowParts = rowCellLines.map((cellLines, colIdx) => {\n\t\t\t\t\tconst text = cellLines[lineIdx] || \"\";\n\t\t\t\t\treturn text + \" \".repeat(Math.max(0, columnWidths[colIdx] - visibleWidth(text)));\n\t\t\t\t});\n\t\t\t\tlines.push(`│ ${rowParts.join(\" │ \")} │`);\n\t\t\t}\n\n\t\t\tif (rowIndex < token.rows.length - 1) {\n\t\t\t\tlines.push(separatorLine);\n\t\t\t}\n\t\t}\n\n\t\t// Render bottom border\n\t\tconst bottomBorderCells = columnWidths.map((w) => \"─\".repeat(w));\n\t\tlines.push(`└─${bottomBorderCells.join(\"─┴─\")}─┘`);\n\n\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\tlines.push(\"\"); // Add spacing after table\n\t\t}\n\t\treturn lines;\n\t}\n}\n"]}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/components/markdown.ts"],"names":[],"mappings":"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","sourcesContent":["// allow: SIZE_OK - existing markdown renderer is oversized; this merge only preserves behavior and cache-key correctness.\nimport { Marked, type Token, Tokenizer, type TokenizerExtension, type Tokens } from \"marked\";\nimport { getCapabilities, hyperlink, isImageLine } from \"../terminal-image.ts\";\nimport type { Component } from \"../tui.ts\";\nimport { applyBackgroundToLine, visibleWidth, wrapTextWithAnsi } from \"../utils.ts\";\nimport { latexToUnicode } from \"./latex.ts\";\n\nconst STRICT_STRIKETHROUGH_REGEX = /^(~~)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/;\n\nclass StrictStrikethroughTokenizer extends Tokenizer {\n\toverride del(src: string): Tokens.Del | undefined {\n\t\tconst match = STRICT_STRIKETHROUGH_REGEX.exec(src);\n\t\tif (!match) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst text = match[2];\n\t\treturn {\n\t\t\ttype: \"del\",\n\t\t\traw: match[0],\n\t\t\ttext,\n\t\t\ttokens: this.lexer.inlineTokens(text),\n\t\t};\n\t}\n}\n\ninterface LatexToken extends Tokens.Generic {\n\ttext: string;\n\ttype: \"latex_block\" | \"latex_inline\" | \"latex_literal\";\n}\n\nconst MAX_LATEX_FORMULA_LENGTH = 4096;\nconst WORD_CHARACTER_REGEX = /[\\p{L}\\p{M}\\p{N}_]/u;\n\ninterface InlineCodePrefixState {\n\thasUnclosedCodeSpan: boolean;\n\tlastProcessedRaw?: string;\n\tprocessedTokenCount: number;\n}\n\nconst inlineCodePrefixStates = new WeakMap<Token[], InlineCodePrefixState>();\n\nfunction createLatexToken(type: LatexToken[\"type\"], raw: string, text: string): LatexToken {\n\treturn { raw, text, type };\n}\n\nfunction isLatexToken(token: Token): token is LatexToken {\n\treturn (\n\t\t(token.type === \"latex_block\" || token.type === \"latex_inline\" || token.type === \"latex_literal\") &&\n\t\t\"text\" in token &&\n\t\ttypeof token.text === \"string\"\n\t);\n}\n\nfunction previousRawCharacter(tokens: Token[]): string | undefined {\n\tconst raw = tokens[tokens.length - 1]?.raw;\n\treturn raw ? Array.from(raw).at(-1) : undefined;\n}\n\nfunction firstCharacter(value: string): string | undefined {\n\tconst codePoint = value.codePointAt(0);\n\treturn codePoint === undefined ? undefined : String.fromCodePoint(codePoint);\n}\n\nfunction followsUnclosedCodeSpan(tokens: Token[]): boolean {\n\tlet state = inlineCodePrefixStates.get(tokens);\n\tconst previousProcessedToken = state ? tokens[state.processedTokenCount - 1] : undefined;\n\tif (!state || previousProcessedToken?.raw !== state.lastProcessedRaw) {\n\t\tstate = { hasUnclosedCodeSpan: false, processedTokenCount: 0 };\n\t\tinlineCodePrefixStates.set(tokens, state);\n\t}\n\n\tfor (let index = state.processedTokenCount; index < tokens.length; index += 1) {\n\t\tconst token = tokens[index];\n\t\tif (token?.type === \"text\" && token.raw.includes(\"`\")) {\n\t\t\tstate.hasUnclosedCodeSpan = true;\n\t\t}\n\t}\n\tstate.processedTokenCount = tokens.length;\n\tstate.lastProcessedRaw = tokens.at(-1)?.raw;\n\treturn state.hasUnclosedCodeSpan;\n}\n\nfunction findInlineMath(\n\tsrc: string,\n\topen: \"$\" | \"\\\\(\" | \"\\\\[\",\n\tclose: \"$\" | \"\\\\)\" | \"\\\\]\",\n): { raw: string; text: string } | undefined {\n\tif (!src.startsWith(open)) return undefined;\n\tconst bodyStart = open.length;\n\tconst scanEnd = Math.min(src.length, bodyStart + MAX_LATEX_FORMULA_LENGTH + 1);\n\n\tfor (let index = bodyStart; index < scanEnd; index += 1) {\n\t\tif (src[index] === \"\\n\" || src[index] === \"`\") return undefined;\n\t\tif (src.startsWith(close, index)) {\n\t\t\tconst text = src.slice(bodyStart, index);\n\t\t\tconst normalizedText = open === close ? text : text.trim();\n\t\t\tif (!normalizedText || (open === close && /^\\s|\\s$/.test(text))) return undefined;\n\t\t\treturn { raw: src.slice(0, index + close.length), text: normalizedText };\n\t\t}\n\t\tif (open !== close && src.startsWith(open, index)) return undefined;\n\t\tif (src[index] === \"\\\\\") {\n\t\t\tif (src[index + 1] === \"\\n\" || src[index + 1] === \"\\r\") return undefined;\n\t\t\tindex += 1;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction findMalformedInlineSpan(src: string, open: \"\\\\(\" | \"\\\\[\", close: \"\\\\)\" | \"\\\\]\"): string | undefined {\n\tif (!src.startsWith(open)) return undefined;\n\tconst scanEnd = Math.min(src.length, open.length + MAX_LATEX_FORMULA_LENGTH + 1);\n\tlet competingOpener = false;\n\tconst closers = [close];\n\tfor (let index = open.length; index < scanEnd; index += 1) {\n\t\tif (src[index] === \"\\n\" || src[index] === \"`\") {\n\t\t\treturn competingOpener ? src.slice(0, index) : undefined;\n\t\t}\n\t\tconst nestedOpen = src.startsWith(\"\\\\(\", index) ? \"\\\\(\" : src.startsWith(\"\\\\[\", index) ? \"\\\\[\" : undefined;\n\t\tif (nestedOpen !== undefined) {\n\t\t\tcompetingOpener = true;\n\t\t\tclosers.push(nestedOpen === \"\\\\(\" ? \"\\\\)\" : \"\\\\]\");\n\t\t\tindex += nestedOpen.length - 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst expectedClose = closers.at(-1);\n\t\tif (expectedClose !== undefined && src.startsWith(expectedClose, index)) {\n\t\t\tclosers.pop();\n\t\t\tif (closers.length === 0) {\n\t\t\t\treturn competingOpener ? src.slice(0, index + expectedClose.length) : undefined;\n\t\t\t}\n\t\t\tindex += expectedClose.length - 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (src[index] === \"\\\\\") {\n\t\t\tif (src[index + 1] === \"\\n\" || src[index + 1] === \"\\r\") {\n\t\t\t\treturn competingOpener ? src.slice(0, index) : undefined;\n\t\t\t}\n\t\t\tindex += 1;\n\t\t}\n\t}\n\treturn competingOpener ? src.slice(0, scanEnd) : undefined;\n}\n\nfunction isLikelyLiteralDollarBody(text: string): boolean {\n\treturn (\n\t\ttext.startsWith(\"{\") ||\n\t\t/^\\([^)\\r\\n]*\\)[/\\\\]$/.test(text) ||\n\t\t/^[!#$?@*-][/\\\\]$/.test(text) ||\n\t\t/^[A-Za-z_][A-Za-z0-9_]*[./\\\\:-]$/.test(text) ||\n\t\t/^\\d[\\d,.]*(?:[-–—]|[/\\\\])$/.test(text)\n\t);\n}\n\nfunction findBlockMath(\n\tsrc: string,\n\topen: \"$$\" | \"\\\\[\",\n\tclose: \"$$\" | \"\\\\]\",\n): { raw: string; text: string } | undefined {\n\tif (!src.startsWith(open)) return undefined;\n\tconst bodyStart = open.length;\n\tconst scanEnd = Math.min(src.length, bodyStart + MAX_LATEX_FORMULA_LENGTH + 1);\n\tconst lineValidationEnd = Math.min(src.length, scanEnd + close.length + 256);\n\n\tfor (let index = bodyStart; index < scanEnd; index += 1) {\n\t\tif (src[index] === \"`\") return undefined;\n\t\tif (open !== close && src.startsWith(open, index)) return undefined;\n\t\tif (!src.startsWith(close, index)) continue;\n\t\tconst closeEnd = index + close.length;\n\t\tlet rawLineEnd = closeEnd;\n\t\twhile (rawLineEnd < lineValidationEnd && src[rawLineEnd] !== \"\\n\" && /[ \\t]/.test(src[rawLineEnd] ?? \"\")) {\n\t\t\trawLineEnd += 1;\n\t\t}\n\t\tif (rawLineEnd < src.length && src[rawLineEnd] !== \"\\n\") return undefined;\n\t\tconst text = src.slice(bodyStart, index).trim();\n\t\tif (!text) return undefined;\n\t\tlet rawEnd = rawLineEnd;\n\t\twhile (rawEnd < lineValidationEnd && src[rawEnd] === \"\\n\") rawEnd += 1;\n\t\treturn { raw: src.slice(0, rawEnd), text };\n\t}\n\treturn undefined;\n}\n\nfunction repeatedMalformedOpeners(src: string, opener: \"\\\\(\" | \"\\\\[\"): string | undefined {\n\tlet end = opener.length;\n\twhile (src.startsWith(opener, end)) end += opener.length;\n\treturn end > opener.length ? src.slice(0, end) : undefined;\n}\n\nconst blockMathTokenizer: TokenizerExtension = {\n\tname: \"latex_block\",\n\tlevel: \"block\",\n\ttokenizer(src) {\n\t\tconst leadingSpaces = /^ {0,3}/.exec(src)?.[0] ?? \"\";\n\t\tconst candidate = src.slice(leadingSpaces.length);\n\t\tconst match = findBlockMath(candidate, \"$$\", \"$$\") ?? findBlockMath(candidate, \"\\\\[\", \"\\\\]\");\n\t\tif (match) return createLatexToken(\"latex_block\", `${leadingSpaces}${match.raw}`, match.text);\n\t\treturn undefined;\n\t},\n};\n\nconst inlineMathTokenizer: TokenizerExtension = {\n\tname: \"latex_inline\",\n\tlevel: \"inline\",\n\tstart(src) {\n\t\tconst index = src.search(/\\$|\\\\[()[\\]]/);\n\t\treturn index >= 0 ? index : undefined;\n\t},\n\ttokenizer(src, tokens) {\n\t\tconst codeSpanLiteral = /^(?:\\${1,2}|\\\\\\(|\\\\\\)|\\\\\\[|\\\\\\])/.exec(src)?.[0];\n\t\tif (codeSpanLiteral && followsUnclosedCodeSpan(tokens)) {\n\t\t\treturn createLatexToken(\"latex_literal\", codeSpanLiteral, codeSpanLiteral);\n\t\t}\n\t\tif (src.startsWith(\"$\")) {\n\t\t\tif (src.startsWith(\"$$\")) return createLatexToken(\"latex_literal\", \"$$\", \"$$\");\n\t\t\tconst match = findInlineMath(src, \"$\", \"$\");\n\t\t\tif (match && isLikelyLiteralDollarBody(match.text)) {\n\t\t\t\treturn createLatexToken(\"latex_literal\", match.raw, match.raw);\n\t\t\t}\n\t\t\tconst previous = previousRawCharacter(tokens);\n\t\t\tconst next = match ? firstCharacter(src.slice(match.raw.length)) : undefined;\n\t\t\tif (\n\t\t\t\tmatch &&\n\t\t\t\t(previous === undefined || !WORD_CHARACTER_REGEX.test(previous)) &&\n\t\t\t\t(next === undefined || !WORD_CHARACTER_REGEX.test(next))\n\t\t\t) {\n\t\t\t\treturn createLatexToken(\"latex_inline\", match.raw, match.text);\n\t\t\t}\n\t\t\treturn createLatexToken(\"latex_literal\", \"$\", \"$\");\n\t\t}\n\t\tconst malformedParens = findMalformedInlineSpan(src, \"\\\\(\", \"\\\\)\");\n\t\tif (malformedParens) return createLatexToken(\"latex_literal\", malformedParens, malformedParens);\n\t\tconst malformedBrackets = findMalformedInlineSpan(src, \"\\\\[\", \"\\\\]\");\n\t\tif (malformedBrackets) return createLatexToken(\"latex_literal\", malformedBrackets, malformedBrackets);\n\t\tconst repeatedParens = repeatedMalformedOpeners(src, \"\\\\(\");\n\t\tif (repeatedParens) return createLatexToken(\"latex_literal\", repeatedParens, repeatedParens);\n\t\tconst repeatedBrackets = repeatedMalformedOpeners(src, \"\\\\[\");\n\t\tif (repeatedBrackets) return createLatexToken(\"latex_literal\", repeatedBrackets, repeatedBrackets);\n\t\tconst parens = findInlineMath(src, \"\\\\(\", \"\\\\)\");\n\t\tif (parens) {\n\t\t\tconst previous = previousRawCharacter(tokens);\n\t\t\tconst next = firstCharacter(src.slice(parens.raw.length));\n\t\t\tif (\n\t\t\t\t(previous === undefined || !WORD_CHARACTER_REGEX.test(previous)) &&\n\t\t\t\t(next === undefined || !WORD_CHARACTER_REGEX.test(next))\n\t\t\t) {\n\t\t\t\treturn createLatexToken(\"latex_inline\", parens.raw, parens.text);\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t\tconst brackets = findInlineMath(src, \"\\\\[\", \"\\\\]\");\n\t\tif (brackets) {\n\t\t\tconst previous = previousRawCharacter(tokens);\n\t\t\tconst next = firstCharacter(src.slice(brackets.raw.length));\n\t\t\tif (\n\t\t\t\t(previous === undefined || !WORD_CHARACTER_REGEX.test(previous)) &&\n\t\t\t\t(next === undefined || !WORD_CHARACTER_REGEX.test(next))\n\t\t\t) {\n\t\t\t\treturn createLatexToken(\"latex_inline\", brackets.raw, brackets.text);\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t\tconst literal = /^(?:\\\\\\(|\\\\\\)|\\\\\\[|\\\\\\])/.exec(src);\n\t\tif (!literal) return undefined;\n\t\tconst previous = previousRawCharacter(tokens);\n\t\treturn previous !== undefined && WORD_CHARACTER_REGEX.test(previous)\n\t\t\t? undefined\n\t\t\t: createLatexToken(\"latex_literal\", literal[0], literal[0]);\n\t},\n};\n\nfunction trimPartialClosingFences(tokens: readonly Token[]): void {\n\tconst token = tokens[tokens.length - 1];\n\tif (token?.type === \"list\") {\n\t\ttrimPartialClosingFences(token.items[token.items.length - 1]?.tokens ?? []);\n\t\treturn;\n\t}\n\tif (token?.type === \"blockquote\") {\n\t\ttrimPartialClosingFences(token.tokens ?? []);\n\t\treturn;\n\t}\n\tif (token?.type !== \"code\") {\n\t\treturn;\n\t}\n\n\t// Trim streamed partial closing fences so code blocks do not shrink/flicker\n\t// when the final fence character arrives. See https://github.com/earendil-works/pi/issues/5825.\n\tconst marker = /^(`{3,}|~{3,})/.exec(token.raw)?.[1];\n\tconst lastLine = token.raw.split(\"\\n\").pop();\n\tif (!marker || !lastLine || lastLine.length >= marker.length || lastLine !== marker[0]?.repeat(lastLine.length)) {\n\t\treturn;\n\t}\n\n\ttoken.text = token.text.slice(0, -lastLine.length).replace(/\\n$/, \"\");\n}\n\nconst markdownParser = new Marked();\nmarkdownParser.use({ extensions: [blockMathTokenizer, inlineMathTokenizer] });\nmarkdownParser.setOptions({\n\ttokenizer: new StrictStrikethroughTokenizer(),\n});\n\nconst RENDER_CACHE_MAX = 256;\nconst PARSE_CACHE_MAX = 128;\nconst CONTENT_KEY_CACHE_MAX = 128;\nconst HIGHLIGHT_CACHE_MAX = 512;\nconst MAX_HIGHLIGHT_BYTES = 200_000;\nconst MAX_HIGHLIGHT_LINES = 2000;\nconst renderCache = new Map<string, { source: string; lines: string[] }>();\nconst parseCache = new Map<string, { source: string; tokens: Token[] }>();\nconst contentKeyCache = new Map<string, string>();\nconst highlightCache = new Map<string, string[]>();\nconst objectIds = new WeakMap<object, number>();\nlet nextObjectId = 0;\nlet markdownHighlightCallCount = 0;\n\nfunction objectId(value: object): number {\n\tconst cached = objectIds.get(value);\n\tif (cached !== undefined) return cached;\n\tconst id = nextObjectId++;\n\tobjectIds.set(value, id);\n\treturn id;\n}\n\nfunction cacheSet<T>(cache: Map<string, T>, key: string, value: T, maxSize: number): void {\n\tif (cache.has(key)) cache.delete(key);\n\tcache.set(key, value);\n\tif (cache.size > maxSize) {\n\t\tconst oldest = cache.keys().next().value;\n\t\tif (oldest !== undefined) cache.delete(oldest);\n\t}\n}\n\nfunction contentKey(text: string): string {\n\tconst cached = contentKeyCache.get(text);\n\tif (cached !== undefined) {\n\t\tcacheSet(contentKeyCache, text, cached, CONTENT_KEY_CACHE_MAX);\n\t\treturn cached;\n\t}\n\n\tlet hash = 2166136261;\n\tfor (let i = 0; i < text.length; i++) {\n\t\thash ^= text.charCodeAt(i);\n\t\thash = Math.imul(hash, 16777619);\n\t}\n\tconst key = `${text.length}:${(hash >>> 0).toString(36)}`;\n\tcacheSet(contentKeyCache, text, key, CONTENT_KEY_CACHE_MAX);\n\treturn key;\n}\n\nexport function clearRenderCache(): void {\n\trenderCache.clear();\n\tparseCache.clear();\n\tcontentKeyCache.clear();\n\thighlightCache.clear();\n}\n\nexport function getMarkdownHighlightCallCount(): number {\n\treturn markdownHighlightCallCount;\n}\n\nexport function resetMarkdownHighlightCallCount(): void {\n\tmarkdownHighlightCallCount = 0;\n}\n\n/**\n * Default text styling for markdown content.\n * Applied to all text unless overridden by markdown formatting.\n */\nexport interface DefaultTextStyle {\n\t/** Foreground color function */\n\tcolor?: (text: string) => string;\n\t/** Background color function */\n\tbgColor?: (text: string) => string;\n\t/** Bold text */\n\tbold?: boolean;\n\t/** Italic text */\n\titalic?: boolean;\n\t/** Strikethrough text */\n\tstrikethrough?: boolean;\n\t/** Underline text */\n\tunderline?: boolean;\n}\n\n/**\n * Theme functions for markdown elements.\n * Each function takes text and returns styled text with ANSI codes.\n */\nexport interface MarkdownTheme {\n\theading: (text: string) => string;\n\tlink: (text: string) => string;\n\tlinkUrl: (text: string) => string;\n\tcode: (text: string) => string;\n\tcodeBlock: (text: string) => string;\n\tcodeBlockBorder: (text: string) => string;\n\tquote: (text: string) => string;\n\tquoteBorder: (text: string) => string;\n\thr: (text: string) => string;\n\tlistBullet: (text: string) => string;\n\tbold: (text: string) => string;\n\titalic: (text: string) => string;\n\tstrikethrough: (text: string) => string;\n\tunderline: (text: string) => string;\n\thighlightCode?: (code: string, lang?: string) => string[];\n\t/** Prefix applied to each rendered code block line (default: \" \") */\n\tcodeBlockIndent?: string;\n}\n\nexport interface MarkdownOptions {\n\t/** Preserve source list markers instead of normalizing them. */\n\tpreserveOrderedListMarkers?: boolean;\n\t/** Preserve source backslash escapes instead of normalizing escaped punctuation. */\n\tpreserveBackslashEscapes?: boolean;\n\t/** Transform source Markdown before parsing, with the exact width available for content. */\n\ttransform?: (markdown: string, availableWidth: number) => string;\n\t/** Render supported LaTeX math expressions as Unicode text (default: true). */\n\trenderLatex?: boolean;\n}\n\ninterface InlineStyleContext {\n\tapplyText: (text: string) => string;\n\tstylePrefix: string;\n}\n\nexport class Markdown implements Component {\n\tprivate text: string;\n\tprivate paddingX: number; // Left/right padding\n\tprivate paddingY: number; // Top/bottom padding\n\tprivate defaultTextStyle?: DefaultTextStyle;\n\tprivate theme: MarkdownTheme;\n\tprivate options: MarkdownOptions;\n\tprivate defaultStylePrefix?: string;\n\n\t// Cache for rendered output\n\tprivate cachedText?: string;\n\tprivate cachedWidth?: number;\n\tprivate cachedLines?: string[];\n\n\tconstructor(\n\t\ttext: string,\n\t\tpaddingX: number,\n\t\tpaddingY: number,\n\t\ttheme: MarkdownTheme,\n\t\tdefaultTextStyle?: DefaultTextStyle,\n\t\toptions?: MarkdownOptions,\n\t) {\n\t\tthis.text = text;\n\t\tthis.paddingX = paddingX;\n\t\tthis.paddingY = paddingY;\n\t\tthis.theme = theme;\n\t\tthis.defaultTextStyle = defaultTextStyle;\n\t\tthis.options = options ? { ...options } : {};\n\t}\n\n\tsetText(text: string): void {\n\t\tthis.text = text;\n\t\tthis.invalidate();\n\t}\n\n\tinvalidate(): void {\n\t\tthis.cachedText = undefined;\n\t\tthis.cachedWidth = undefined;\n\t\tthis.cachedLines = undefined;\n\t}\n\n\trender(width: number): string[] {\n\t\t// Check cache\n\t\tif (this.cachedLines && this.cachedText === this.text && this.cachedWidth === width) {\n\t\t\treturn this.cachedLines;\n\t\t}\n\n\t\t// Calculate available width for content (subtract horizontal padding)\n\t\tconst contentWidth = Math.max(1, width - this.paddingX * 2);\n\t\tconst text = this.options.transform?.(this.text, contentWidth) ?? this.text;\n\n\t\t// Don't render anything if there's no actual text\n\t\tif (!text || text.trim() === \"\") {\n\t\t\tconst result: string[] = [];\n\t\t\t// Update cache\n\t\t\tthis.cachedText = this.text;\n\t\t\tthis.cachedWidth = width;\n\t\t\tthis.cachedLines = result;\n\t\t\treturn result;\n\t\t}\n\n\t\t// Replace tabs with 3 spaces for consistent rendering\n\t\tconst normalizedText = text.replace(/\\t/g, \" \");\n\t\tconst normalizedContentKey = contentKey(normalizedText);\n\t\tconst styleKey = this.defaultTextStyle ? objectId(this.defaultTextStyle) : -1;\n\t\tconst renderKey = [\n\t\t\tnormalizedContentKey,\n\t\t\twidth,\n\t\t\tcontentWidth,\n\t\t\tthis.paddingX,\n\t\t\tthis.paddingY,\n\t\t\tthis.theme.codeBlockIndent ?? \" \",\n\t\t\t(this.options.preserveOrderedListMarkers ? 1 : 0) |\n\t\t\t\t(this.options.preserveBackslashEscapes ? 2 : 0) |\n\t\t\t\t(this.options.renderLatex === false ? 4 : 0),\n\t\t\tobjectId(this.theme),\n\t\t\tstyleKey,\n\t\t\tgetCapabilities().images ?? \"\",\n\t\t\tgetCapabilities().hyperlinks ? 1 : 0,\n\t\t].join(\"\\x00\");\n\t\tconst cachedRender = renderCache.get(renderKey);\n\t\tif (cachedRender?.source === normalizedText) {\n\t\t\tthis.cachedText = this.text;\n\t\t\tthis.cachedWidth = width;\n\t\t\tthis.cachedLines = cachedRender.lines;\n\t\t\treturn cachedRender.lines;\n\t\t}\n\n\t\t// Parse markdown to HTML-like tokens\n\t\tconst cachedParse = parseCache.get(normalizedContentKey);\n\t\tlet tokens: Token[];\n\t\tif (cachedParse?.source === normalizedText) {\n\t\t\ttokens = cachedParse.tokens;\n\t\t} else {\n\t\t\ttokens = markdownParser.lexer(normalizedText);\n\t\t\ttrimPartialClosingFences(tokens);\n\t\t\tcacheSet(parseCache, normalizedContentKey, { source: normalizedText, tokens }, PARSE_CACHE_MAX);\n\t\t}\n\n\t\t// Convert tokens to styled terminal output\n\t\tconst renderedLines: string[] = [];\n\n\t\tfor (let i = 0; i < tokens.length; i++) {\n\t\t\tconst token = tokens[i];\n\t\t\tconst nextToken = tokens[i + 1];\n\t\t\tconst tokenLines = this.renderToken(token, contentWidth, nextToken?.type);\n\t\t\tfor (const tokenLine of tokenLines) {\n\t\t\t\trenderedLines.push(tokenLine);\n\t\t\t}\n\t\t}\n\n\t\t// Wrap lines (NO padding, NO background yet)\n\t\tconst wrappedLines: string[] = [];\n\t\tfor (const line of renderedLines) {\n\t\t\tif (isImageLine(line)) {\n\t\t\t\twrappedLines.push(line);\n\t\t\t} else {\n\t\t\t\tfor (const wrappedLine of wrapTextWithAnsi(line, contentWidth)) {\n\t\t\t\t\twrappedLines.push(wrappedLine);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add margins and background to each wrapped line\n\t\tconst leftMargin = \" \".repeat(this.paddingX);\n\t\tconst rightMargin = \" \".repeat(this.paddingX);\n\t\tconst bgFn = this.defaultTextStyle?.bgColor;\n\t\tconst contentLines: string[] = [];\n\n\t\tfor (const line of wrappedLines) {\n\t\t\tif (isImageLine(line)) {\n\t\t\t\tcontentLines.push(line);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst lineWithMargins = leftMargin + line + rightMargin;\n\n\t\t\tif (bgFn) {\n\t\t\t\tcontentLines.push(applyBackgroundToLine(lineWithMargins, width, bgFn));\n\t\t\t} else {\n\t\t\t\t// No background - just pad to width\n\t\t\t\tconst visibleLen = visibleWidth(lineWithMargins);\n\t\t\t\tconst paddingNeeded = Math.max(0, width - visibleLen);\n\t\t\t\tcontentLines.push(lineWithMargins + \" \".repeat(paddingNeeded));\n\t\t\t}\n\t\t}\n\n\t\t// Add top/bottom padding (empty lines)\n\t\tconst emptyLine = \" \".repeat(width);\n\t\tconst emptyLines: string[] = [];\n\t\tfor (let i = 0; i < this.paddingY; i++) {\n\t\t\tconst line = bgFn ? applyBackgroundToLine(emptyLine, width, bgFn) : emptyLine;\n\t\t\temptyLines.push(line);\n\t\t}\n\n\t\t// Combine top padding, content, and bottom padding\n\t\tconst result = emptyLines.concat(contentLines, emptyLines);\n\n\t\t// Update cache\n\t\tthis.cachedText = this.text;\n\t\tthis.cachedWidth = width;\n\t\tthis.cachedLines = result;\n\t\tcacheSet(renderCache, renderKey, { source: normalizedText, lines: result }, RENDER_CACHE_MAX);\n\n\t\treturn result.length > 0 ? result : [\"\"];\n\t}\n\n\t/**\n\t * Apply default text style to a string.\n\t * This is the base styling applied to all text content.\n\t * NOTE: Background color is NOT applied here - it's applied at the padding stage\n\t * to ensure it extends to the full line width.\n\t */\n\tprivate applyDefaultStyle(text: string): string {\n\t\tif (!this.defaultTextStyle) {\n\t\t\treturn text;\n\t\t}\n\n\t\tlet styled = text;\n\n\t\t// Apply foreground color (NOT background - that's applied at padding stage)\n\t\tif (this.defaultTextStyle.color) {\n\t\t\tstyled = this.defaultTextStyle.color(styled);\n\t\t}\n\n\t\t// Apply text decorations using this.theme\n\t\tif (this.defaultTextStyle.bold) {\n\t\t\tstyled = this.theme.bold(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.italic) {\n\t\t\tstyled = this.theme.italic(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.strikethrough) {\n\t\t\tstyled = this.theme.strikethrough(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.underline) {\n\t\t\tstyled = this.theme.underline(styled);\n\t\t}\n\n\t\treturn styled;\n\t}\n\n\tprivate getDefaultStylePrefix(): string {\n\t\tif (!this.defaultTextStyle) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (this.defaultStylePrefix !== undefined) {\n\t\t\treturn this.defaultStylePrefix;\n\t\t}\n\n\t\tconst sentinel = \"\\u0000\";\n\t\tlet styled = sentinel;\n\n\t\tif (this.defaultTextStyle.color) {\n\t\t\tstyled = this.defaultTextStyle.color(styled);\n\t\t}\n\n\t\tif (this.defaultTextStyle.bold) {\n\t\t\tstyled = this.theme.bold(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.italic) {\n\t\t\tstyled = this.theme.italic(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.strikethrough) {\n\t\t\tstyled = this.theme.strikethrough(styled);\n\t\t}\n\t\tif (this.defaultTextStyle.underline) {\n\t\t\tstyled = this.theme.underline(styled);\n\t\t}\n\n\t\tconst sentinelIndex = styled.indexOf(sentinel);\n\t\tthis.defaultStylePrefix = sentinelIndex >= 0 ? styled.slice(0, sentinelIndex) : \"\";\n\t\treturn this.defaultStylePrefix;\n\t}\n\n\tprivate getStylePrefix(styleFn: (text: string) => string): string {\n\t\tconst sentinel = \"\\u0000\";\n\t\tconst styled = styleFn(sentinel);\n\t\tconst sentinelIndex = styled.indexOf(sentinel);\n\t\treturn sentinelIndex >= 0 ? styled.slice(0, sentinelIndex) : \"\";\n\t}\n\n\tprivate getDefaultInlineStyleContext(): InlineStyleContext {\n\t\treturn {\n\t\t\tapplyText: (text: string) => this.applyDefaultStyle(text),\n\t\t\tstylePrefix: this.getDefaultStylePrefix(),\n\t\t};\n\t}\n\n\tprivate exceedsHighlightCap(code: string): boolean {\n\t\tlet newlineCount = 0;\n\t\tfor (let i = 0; i < code.length; i++) {\n\t\t\tif (code.charCodeAt(i) === 10) newlineCount += 1;\n\t\t\tif (newlineCount + 1 > MAX_HIGHLIGHT_LINES) return true;\n\t\t}\n\t\treturn new TextEncoder().encode(code).byteLength > MAX_HIGHLIGHT_BYTES;\n\t}\n\n\tprivate highlightCodeBlock(code: string, lang: string | undefined): string[] | null {\n\t\tif (!this.theme.highlightCode) return null;\n\t\tif (this.exceedsHighlightCap(code)) return null;\n\t\tconst key = `${objectId(this.theme)}\\x00${lang ?? \"\"}\\x00${code}`;\n\t\tconst cached = highlightCache.get(key);\n\t\tif (cached) {\n\t\t\tcacheSet(highlightCache, key, cached, HIGHLIGHT_CACHE_MAX);\n\t\t\treturn cached;\n\t\t}\n\t\tmarkdownHighlightCallCount += 1;\n\t\tconst highlighted = this.theme.highlightCode(code, lang);\n\t\tcacheSet(highlightCache, key, highlighted, HIGHLIGHT_CACHE_MAX);\n\t\treturn highlighted;\n\t}\n\n\tprivate renderCodeBlock(lines: string[], code: string, lang: string | undefined, indent: string): void {\n\t\tlines.push(this.theme.codeBlockBorder(`\\`\\`\\`${lang || \"\"}`));\n\t\tconst highlightedLines = this.highlightCodeBlock(code, lang);\n\t\tif (highlightedLines) {\n\t\t\tfor (const hlLine of highlightedLines) {\n\t\t\t\tlines.push(`${indent}${hlLine}`);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.theme.highlightCode && this.exceedsHighlightCap(code)) {\n\t\t\t\tlines.push(`${indent}${this.theme.codeBlock(\"[syntax highlighting skipped: code block too large]\")}`);\n\t\t\t}\n\t\t\tfor (const codeLine of code.split(\"\\n\")) {\n\t\t\t\tlines.push(`${indent}${this.theme.codeBlock(codeLine)}`);\n\t\t\t}\n\t\t}\n\t\tlines.push(this.theme.codeBlockBorder(\"```\"));\n\t}\n\n\tprivate renderToken(\n\t\ttoken: Token,\n\t\twidth: number,\n\t\tnextTokenType?: string,\n\t\tstyleContext?: InlineStyleContext,\n\t): string[] {\n\t\tconst lines: string[] = [];\n\n\t\tswitch (token.type) {\n\t\t\tcase \"heading\": {\n\t\t\t\tconst headingLevel = token.depth;\n\t\t\t\tconst headingPrefix = `${\"#\".repeat(headingLevel)} `;\n\n\t\t\t\t// Build a heading-specific style context so inline tokens (codespan, bold, etc.)\n\t\t\t\t// restore heading styling after their own ANSI resets instead of falling back to\n\t\t\t\t// the default text style.\n\t\t\t\tlet headingStyleFn: (text: string) => string;\n\t\t\t\tif (headingLevel === 1) {\n\t\t\t\t\theadingStyleFn = (text: string) => this.theme.heading(this.theme.bold(this.theme.underline(text)));\n\t\t\t\t} else {\n\t\t\t\t\theadingStyleFn = (text: string) => this.theme.heading(this.theme.bold(text));\n\t\t\t\t}\n\n\t\t\t\tconst headingStyleContext: InlineStyleContext = {\n\t\t\t\t\tapplyText: headingStyleFn,\n\t\t\t\t\tstylePrefix: this.getStylePrefix(headingStyleFn),\n\t\t\t\t};\n\n\t\t\t\tconst headingText = this.renderInlineTokens(token.tokens || [], headingStyleContext);\n\t\t\t\tconst styledHeading = headingLevel >= 3 ? headingStyleFn(headingPrefix) + headingText : headingText;\n\t\t\t\tlines.push(styledHeading);\n\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\"); // Add spacing after headings (unless space token follows)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"paragraph\": {\n\t\t\t\tconst paragraphText = this.renderInlineTokens(token.tokens || [], styleContext);\n\t\t\t\tlines.push(paragraphText);\n\t\t\t\t// Don't add spacing if next token is space or list\n\t\t\t\tif (nextTokenType && nextTokenType !== \"list\" && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"latex_block\":\n\t\t\t\tif (isLatexToken(token)) {\n\t\t\t\t\tconst formula = this.options.renderLatex === false ? token.raw.trim() : latexToUnicode(token.text);\n\t\t\t\t\tlines.push(styleContext ? styleContext.applyText(formula) : this.applyDefaultStyle(formula));\n\t\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\t\tlines.push(\"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"text\":\n\t\t\t\tlines.push(this.renderInlineTokens([token], styleContext));\n\t\t\t\tbreak;\n\n\t\t\tcase \"code\": {\n\t\t\t\tconst indent = this.theme.codeBlockIndent ?? \" \";\n\t\t\t\tthis.renderCodeBlock(lines, token.text, token.lang, indent);\n\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\"); // Add spacing after code blocks (unless space token follows)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"list\": {\n\t\t\t\tconst listLines = this.renderList(token as Tokens.List, 0, width, styleContext);\n\t\t\t\tlines.push(...listLines);\n\t\t\t\t// Don't add spacing after lists if a space token follows\n\t\t\t\t// (the space token will handle it)\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"table\": {\n\t\t\t\tconst tableLines = this.renderTable(token as Tokens.Table, width, nextTokenType, styleContext);\n\t\t\t\tlines.push(...tableLines);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"blockquote\": {\n\t\t\t\tconst quoteStyle = (text: string) => this.theme.quote(this.theme.italic(text));\n\t\t\t\tconst quoteStylePrefix = this.getStylePrefix(quoteStyle);\n\t\t\t\tconst applyQuoteStyle = (line: string): string => {\n\t\t\t\t\tif (!quoteStylePrefix) {\n\t\t\t\t\t\treturn quoteStyle(line);\n\t\t\t\t\t}\n\t\t\t\t\tconst lineWithReappliedStyle = line.replace(/\\x1b\\[0m/g, `\\x1b[0m${quoteStylePrefix}`);\n\t\t\t\t\treturn quoteStyle(lineWithReappliedStyle);\n\t\t\t\t};\n\n\t\t\t\t// Calculate available width for quote content (subtract border \"│ \" = 2 chars)\n\t\t\t\tconst quoteContentWidth = Math.max(1, width - 2);\n\n\t\t\t\t// Blockquotes contain block-level tokens (paragraph, list, code, etc.), so render\n\t\t\t\t// children with renderToken() instead of renderInlineTokens().\n\t\t\t\t// Default message style should not apply inside blockquotes.\n\t\t\t\tconst quoteInlineStyleContext: InlineStyleContext = {\n\t\t\t\t\tapplyText: (text: string) => text,\n\t\t\t\t\tstylePrefix: quoteStylePrefix,\n\t\t\t\t};\n\t\t\t\tconst quoteTokens = token.tokens || [];\n\t\t\t\tconst renderedQuoteLines: string[] = [];\n\t\t\t\tfor (let i = 0; i < quoteTokens.length; i++) {\n\t\t\t\t\tconst quoteToken = quoteTokens[i];\n\t\t\t\t\tconst nextQuoteToken = quoteTokens[i + 1];\n\t\t\t\t\trenderedQuoteLines.push(\n\t\t\t\t\t\t...this.renderToken(quoteToken, quoteContentWidth, nextQuoteToken?.type, quoteInlineStyleContext),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Avoid rendering an extra empty quote line before the outer blockquote spacing.\n\t\t\t\twhile (renderedQuoteLines.length > 0 && renderedQuoteLines[renderedQuoteLines.length - 1] === \"\") {\n\t\t\t\t\trenderedQuoteLines.pop();\n\t\t\t\t}\n\n\t\t\t\tfor (const quoteLine of renderedQuoteLines) {\n\t\t\t\t\tconst styledLine = applyQuoteStyle(quoteLine);\n\t\t\t\t\tconst wrappedLines = wrapTextWithAnsi(styledLine, quoteContentWidth);\n\t\t\t\t\tfor (const wrappedLine of wrappedLines) {\n\t\t\t\t\t\tlines.push(this.theme.quoteBorder(\"│ \") + wrappedLine);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\"); // Add spacing after blockquotes (unless space token follows)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"hr\":\n\t\t\t\tlines.push(this.theme.hr(\"─\".repeat(Math.min(width, 80))));\n\t\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\t\tlines.push(\"\"); // Add spacing after horizontal rules (unless space token follows)\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"html\":\n\t\t\t\t// Render HTML as plain text (escaped for terminal)\n\t\t\t\tif (\"raw\" in token && typeof token.raw === \"string\") {\n\t\t\t\t\tlines.push(this.applyDefaultStyle(token.raw.trim()));\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"space\":\n\t\t\t\t// Space tokens represent blank lines in markdown\n\t\t\t\tlines.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\t// Handle any other token types as plain text\n\t\t\t\tif (\"text\" in token && typeof token.text === \"string\") {\n\t\t\t\t\tlines.push(token.text);\n\t\t\t\t}\n\t\t}\n\n\t\treturn lines;\n\t}\n\n\tprivate renderInlineTokens(tokens: Token[], styleContext?: InlineStyleContext): string {\n\t\tlet result = \"\";\n\t\tconst resolvedStyleContext = styleContext ?? this.getDefaultInlineStyleContext();\n\t\tconst { applyText, stylePrefix } = resolvedStyleContext;\n\t\tconst applyTextWithNewlines = (text: string): string => {\n\t\t\tconst segments: string[] = text.split(\"\\n\");\n\t\t\treturn segments.map((segment: string) => applyText(segment)).join(\"\\n\");\n\t\t};\n\n\t\tfor (const token of tokens) {\n\t\t\tswitch (token.type) {\n\t\t\t\tcase \"escape\":\n\t\t\t\t\tresult += applyTextWithNewlines(this.options.preserveBackslashEscapes ? token.raw : token.text);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"text\":\n\t\t\t\t\t// Text tokens in list items can have nested tokens for inline formatting\n\t\t\t\t\tif (token.tokens && token.tokens.length > 0) {\n\t\t\t\t\t\tresult += this.renderInlineTokens(token.tokens, resolvedStyleContext);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult += applyTextWithNewlines(token.text);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"paragraph\":\n\t\t\t\t\t// Paragraph tokens contain nested inline tokens\n\t\t\t\t\tresult += this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"strong\": {\n\t\t\t\t\tconst boldContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tresult += this.theme.bold(boldContent) + stylePrefix;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"em\": {\n\t\t\t\t\tconst italicContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tresult += this.theme.italic(italicContent) + stylePrefix;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"codespan\":\n\t\t\t\t\tresult += this.theme.code(token.text) + stylePrefix;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"latex_inline\":\n\t\t\t\t\tif (isLatexToken(token)) {\n\t\t\t\t\t\tresult += applyTextWithNewlines(\n\t\t\t\t\t\t\tthis.options.renderLatex === false ? token.raw : latexToUnicode(token.text),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"latex_literal\":\n\t\t\t\t\tif (isLatexToken(token)) {\n\t\t\t\t\t\tresult += applyTextWithNewlines(token.text);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"link\": {\n\t\t\t\t\tconst linkText = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tconst styledLink = this.theme.link(this.theme.underline(linkText));\n\t\t\t\t\tif (getCapabilities().hyperlinks) {\n\t\t\t\t\t\t// OSC 8: render as a clickable hyperlink. The URL is not printed inline,\n\t\t\t\t\t\t// so we always show only the link text regardless of whether it matches href.\n\t\t\t\t\t\tresult += hyperlink(styledLink, token.href) + stylePrefix;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Fallback: print URL in parentheses when text differs from href.\n\t\t\t\t\t\t// Compare raw token.text (not styled) against href for the equality check.\n\t\t\t\t\t\t// For mailto: links strip the prefix (autolinked emails use text=\"foo@bar.com\"\n\t\t\t\t\t\t// but href=\"mailto:foo@bar.com\").\n\t\t\t\t\t\tconst hrefForComparison = token.href.startsWith(\"mailto:\") ? token.href.slice(7) : token.href;\n\t\t\t\t\t\tif (token.text === token.href || token.text === hrefForComparison) {\n\t\t\t\t\t\t\tresult += styledLink + stylePrefix;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult += styledLink + this.theme.linkUrl(` (${token.href})`) + stylePrefix;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"br\":\n\t\t\t\t\tresult += \"\\n\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"del\": {\n\t\t\t\t\tconst delContent = this.renderInlineTokens(token.tokens || [], resolvedStyleContext);\n\t\t\t\t\tresult += this.theme.strikethrough(delContent) + stylePrefix;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"html\":\n\t\t\t\t\t// Render inline HTML as plain text\n\t\t\t\t\tif (\"raw\" in token && typeof token.raw === \"string\") {\n\t\t\t\t\t\tresult += applyTextWithNewlines(token.raw);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\t// Handle any other inline token types as plain text\n\t\t\t\t\tif (\"text\" in token && typeof token.text === \"string\") {\n\t\t\t\t\t\tresult += applyTextWithNewlines(token.text);\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twhile (stylePrefix && result.endsWith(stylePrefix)) {\n\t\t\tresult = result.slice(0, -stylePrefix.length);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate getOrderedListMarker(item: Tokens.ListItem): string | undefined {\n\t\tconst match = /^(?: {0,3})(\\d{1,9}[.)])[ \\t]+/.exec(item.raw);\n\t\treturn match ? `${match[1]} ` : undefined;\n\t}\n\n\tprivate getUnorderedListMarker(item: Tokens.ListItem): string | undefined {\n\t\tconst match = /^(?: {0,3})([-+*])(?:[ \\t]+|(?=\\r?\\n|$))/.exec(item.raw);\n\t\treturn match ? `${match[1]} ` : undefined;\n\t}\n\n\t/**\n\t * Render a list with proper nesting support\n\t */\n\tprivate renderList(token: Tokens.List, depth: number, width: number, styleContext?: InlineStyleContext): string[] {\n\t\tconst lines: string[] = [];\n\t\tconst indent = \" \".repeat(depth);\n\t\t// Use the list's start property (defaults to 1 for ordered lists)\n\t\tconst startNumber = typeof token.start === \"number\" ? token.start : 1;\n\n\t\tfor (let i = 0; i < token.items.length; i++) {\n\t\t\tconst item = token.items[i];\n\t\t\tconst isLastItem = i === token.items.length - 1;\n\t\t\tconst bullet = token.ordered\n\t\t\t\t? this.options.preserveOrderedListMarkers\n\t\t\t\t\t? (this.getOrderedListMarker(item) ?? `${startNumber + i}. `)\n\t\t\t\t\t: `${startNumber + i}. `\n\t\t\t\t: this.options.preserveOrderedListMarkers\n\t\t\t\t\t? (this.getUnorderedListMarker(item) ?? \"- \")\n\t\t\t\t\t: \"- \";\n\t\t\tconst taskMarker = item.task ? `[${item.checked ? \"x\" : \" \"}] ` : \"\";\n\t\t\tconst marker = bullet + taskMarker;\n\t\t\tconst firstPrefix = indent + this.theme.listBullet(marker);\n\t\t\tconst continuationPrefix = indent + \" \".repeat(visibleWidth(marker));\n\t\t\tconst itemWidth = Math.max(1, width - visibleWidth(firstPrefix));\n\t\t\tlet renderedAnyLine = false;\n\n\t\t\tfor (const itemToken of item.tokens) {\n\t\t\t\tif (itemToken.type === \"list\") {\n\t\t\t\t\tlines.push(...this.renderList(itemToken as Tokens.List, depth + 1, width, styleContext));\n\t\t\t\t\trenderedAnyLine = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst itemLines = this.renderToken(itemToken, itemWidth, undefined, styleContext);\n\t\t\t\tfor (const line of itemLines) {\n\t\t\t\t\tfor (const wrappedLine of wrapTextWithAnsi(line, itemWidth)) {\n\t\t\t\t\t\tconst linePrefix = renderedAnyLine ? continuationPrefix : firstPrefix;\n\t\t\t\t\t\tlines.push(linePrefix + wrappedLine);\n\t\t\t\t\t\trenderedAnyLine = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!renderedAnyLine) {\n\t\t\t\tlines.push(firstPrefix);\n\t\t\t}\n\n\t\t\tif (token.loose && !isLastItem) {\n\t\t\t\tlines.push(\"\");\n\t\t\t}\n\t\t}\n\n\t\treturn lines;\n\t}\n\n\t/**\n\t * Get the visible width of the longest word in a string.\n\t */\n\tprivate getLongestWordWidth(text: string, maxWidth?: number): number {\n\t\tconst words = text.split(/\\s+/).filter((word) => word.length > 0);\n\t\tlet longest = 0;\n\t\tfor (const word of words) {\n\t\t\tlongest = Math.max(longest, visibleWidth(word));\n\t\t}\n\t\tif (maxWidth === undefined) {\n\t\t\treturn longest;\n\t\t}\n\t\treturn Math.min(longest, maxWidth);\n\t}\n\n\t/**\n\t * Wrap a table cell to fit into a column.\n\t *\n\t * Delegates to wrapTextWithAnsi() so ANSI codes + long tokens are handled\n\t * consistently with the rest of the renderer.\n\t */\n\tprivate wrapCellText(text: string, maxWidth: number, stylePrefix = \"\"): string[] {\n\t\tconst lines = wrapTextWithAnsi(text, Math.max(1, maxWidth));\n\t\treturn lines.map((line, index) => {\n\t\t\t// Reset text styles after each non-final fragment, then restore the surrounding style before padding and borders.\n\t\t\tconst styleReset = index < lines.length - 1 ? \"\\x1b[22;23;24;25;27;28;29;39m\" : \"\";\n\t\t\treturn `${line}${styleReset}${stylePrefix}`;\n\t\t});\n\t}\n\n\t/**\n\t * Render a table with width-aware cell wrapping.\n\t * Cells that don't fit are wrapped to multiple lines.\n\t */\n\tprivate renderTable(\n\t\ttoken: Tokens.Table,\n\t\tavailableWidth: number,\n\t\tnextTokenType?: string,\n\t\tstyleContext?: InlineStyleContext,\n\t): string[] {\n\t\tconst lines: string[] = [];\n\t\tconst numCols = token.header.length;\n\n\t\tif (numCols === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\t// Calculate border overhead: \"│ \" + (n-1) * \" │ \" + \" │\"\n\t\t// = 2 + (n-1) * 3 + 2 = 3n + 1\n\t\tconst borderOverhead = 3 * numCols + 1;\n\t\tconst availableForCells = availableWidth - borderOverhead;\n\t\tif (availableForCells < numCols) {\n\t\t\t// Too narrow to render a stable table. Fall back to raw markdown.\n\t\t\tconst fallbackLines = token.raw ? wrapTextWithAnsi(token.raw, availableWidth) : [];\n\t\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\t\tfallbackLines.push(\"\");\n\t\t\t}\n\t\t\treturn fallbackLines;\n\t\t}\n\n\t\tconst maxUnbrokenWordWidth = 30;\n\n\t\t// Calculate natural column widths (what each column needs without constraints)\n\t\tconst naturalWidths: number[] = [];\n\t\tconst minWordWidths: number[] = [];\n\t\tfor (let i = 0; i < numCols; i++) {\n\t\t\tconst headerText = this.renderInlineTokens(token.header[i].tokens || [], styleContext);\n\t\t\tnaturalWidths[i] = visibleWidth(headerText);\n\t\t\tminWordWidths[i] = Math.max(1, this.getLongestWordWidth(headerText, maxUnbrokenWordWidth));\n\t\t}\n\t\tfor (const row of token.rows) {\n\t\t\tfor (let i = 0; i < row.length; i++) {\n\t\t\t\tconst cellText = this.renderInlineTokens(row[i].tokens || [], styleContext);\n\t\t\t\tnaturalWidths[i] = Math.max(naturalWidths[i] || 0, visibleWidth(cellText));\n\t\t\t\tminWordWidths[i] = Math.max(\n\t\t\t\t\tminWordWidths[i] || 1,\n\t\t\t\t\tthis.getLongestWordWidth(cellText, maxUnbrokenWordWidth),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet minColumnWidths = minWordWidths;\n\t\tlet minCellsWidth = minColumnWidths.reduce((a, b) => a + b, 0);\n\n\t\tif (minCellsWidth > availableForCells) {\n\t\t\tminColumnWidths = new Array(numCols).fill(1);\n\t\t\tconst remaining = availableForCells - numCols;\n\n\t\t\tif (remaining > 0) {\n\t\t\t\tconst totalWeight = minWordWidths.reduce((total, width) => total + Math.max(0, width - 1), 0);\n\t\t\t\tconst growth = minWordWidths.map((width) => {\n\t\t\t\t\tconst weight = Math.max(0, width - 1);\n\t\t\t\t\treturn totalWeight > 0 ? Math.floor((weight / totalWeight) * remaining) : 0;\n\t\t\t\t});\n\n\t\t\t\tfor (let i = 0; i < numCols; i++) {\n\t\t\t\t\tminColumnWidths[i] += growth[i] ?? 0;\n\t\t\t\t}\n\n\t\t\t\tconst allocated = growth.reduce((total, width) => total + width, 0);\n\t\t\t\tlet leftover = remaining - allocated;\n\t\t\t\tfor (let i = 0; leftover > 0 && i < numCols; i++) {\n\t\t\t\t\tminColumnWidths[i]++;\n\t\t\t\t\tleftover--;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tminCellsWidth = minColumnWidths.reduce((a, b) => a + b, 0);\n\t\t}\n\n\t\t// Calculate column widths that fit within available width\n\t\tconst totalNaturalWidth = naturalWidths.reduce((a, b) => a + b, 0) + borderOverhead;\n\t\tlet columnWidths: number[];\n\n\t\tif (totalNaturalWidth <= availableWidth) {\n\t\t\t// Everything fits naturally\n\t\t\tcolumnWidths = naturalWidths.map((width, index) => Math.max(width, minColumnWidths[index]));\n\t\t} else {\n\t\t\t// Need to shrink columns to fit\n\t\t\tconst totalGrowPotential = naturalWidths.reduce((total, width, index) => {\n\t\t\t\treturn total + Math.max(0, width - minColumnWidths[index]);\n\t\t\t}, 0);\n\t\t\tconst extraWidth = Math.max(0, availableForCells - minCellsWidth);\n\t\t\tcolumnWidths = minColumnWidths.map((minWidth, index) => {\n\t\t\t\tconst naturalWidth = naturalWidths[index];\n\t\t\t\tconst minWidthDelta = Math.max(0, naturalWidth - minWidth);\n\t\t\t\tlet grow = 0;\n\t\t\t\tif (totalGrowPotential > 0) {\n\t\t\t\t\tgrow = Math.floor((minWidthDelta / totalGrowPotential) * extraWidth);\n\t\t\t\t}\n\t\t\t\treturn minWidth + grow;\n\t\t\t});\n\n\t\t\t// Adjust for rounding errors - distribute remaining space\n\t\t\tconst allocated = columnWidths.reduce((a, b) => a + b, 0);\n\t\t\tlet remaining = availableForCells - allocated;\n\t\t\twhile (remaining > 0) {\n\t\t\t\tlet grew = false;\n\t\t\t\tfor (let i = 0; i < numCols && remaining > 0; i++) {\n\t\t\t\t\tif (columnWidths[i] < naturalWidths[i]) {\n\t\t\t\t\t\tcolumnWidths[i]++;\n\t\t\t\t\t\tremaining--;\n\t\t\t\t\t\tgrew = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!grew) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Render top border\n\t\tconst topBorderCells = columnWidths.map((w) => \"─\".repeat(w));\n\t\tlines.push(`┌─${topBorderCells.join(\"─┬─\")}─┐`);\n\n\t\t// Render header with wrapping\n\t\tconst headerCellLines: string[][] = token.header.map((cell, i) => {\n\t\t\tconst text = this.renderInlineTokens(cell.tokens || [], styleContext);\n\t\t\treturn this.wrapCellText(text, columnWidths[i], styleContext?.stylePrefix);\n\t\t});\n\t\tconst headerLineCount = Math.max(...headerCellLines.map((c) => c.length));\n\n\t\tfor (let lineIdx = 0; lineIdx < headerLineCount; lineIdx++) {\n\t\t\tconst rowParts = headerCellLines.map((cellLines, colIdx) => {\n\t\t\t\tconst text = cellLines[lineIdx] || \"\";\n\t\t\t\tconst padded = text + \" \".repeat(Math.max(0, columnWidths[colIdx] - visibleWidth(text)));\n\t\t\t\treturn this.theme.bold(padded);\n\t\t\t});\n\t\t\tlines.push(`│ ${rowParts.join(\" │ \")} │`);\n\t\t}\n\n\t\t// Render separator\n\t\tconst separatorCells = columnWidths.map((w) => \"─\".repeat(w));\n\t\tconst separatorLine = `├─${separatorCells.join(\"─┼─\")}─┤`;\n\t\tlines.push(separatorLine);\n\n\t\t// Render rows with wrapping\n\t\tfor (let rowIndex = 0; rowIndex < token.rows.length; rowIndex++) {\n\t\t\tconst row = token.rows[rowIndex];\n\t\t\tconst rowCellLines: string[][] = row.map((cell, i) => {\n\t\t\t\tconst text = this.renderInlineTokens(cell.tokens || [], styleContext);\n\t\t\t\treturn this.wrapCellText(text, columnWidths[i], styleContext?.stylePrefix);\n\t\t\t});\n\t\t\tconst rowLineCount = Math.max(...rowCellLines.map((c) => c.length));\n\n\t\t\tfor (let lineIdx = 0; lineIdx < rowLineCount; lineIdx++) {\n\t\t\t\tconst rowParts = rowCellLines.map((cellLines, colIdx) => {\n\t\t\t\t\tconst text = cellLines[lineIdx] || \"\";\n\t\t\t\t\treturn text + \" \".repeat(Math.max(0, columnWidths[colIdx] - visibleWidth(text)));\n\t\t\t\t});\n\t\t\t\tlines.push(`│ ${rowParts.join(\" │ \")} │`);\n\t\t\t}\n\n\t\t\tif (rowIndex < token.rows.length - 1) {\n\t\t\t\tlines.push(separatorLine);\n\t\t\t}\n\t\t}\n\n\t\t// Render bottom border\n\t\tconst bottomBorderCells = columnWidths.map((w) => \"─\".repeat(w));\n\t\tlines.push(`└─${bottomBorderCells.join(\"─┴─\")}─┘`);\n\n\t\tif (nextTokenType && nextTokenType !== \"space\") {\n\t\t\tlines.push(\"\"); // Add spacing after table\n\t\t}\n\t\treturn lines;\n\t}\n}\n"]}