netra-artifacts 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +21 -0
  3. package/README.md +239 -0
  4. package/dist/artifacts/artifactEnvelope.d.ts +46 -0
  5. package/dist/artifacts/artifactEnvelope.d.ts.map +1 -0
  6. package/dist/artifacts/artifactEnvelope.js +217 -0
  7. package/dist/artifacts/artifactEnvelope.js.map +1 -0
  8. package/dist/artifacts/artifactStatus.d.ts +9 -0
  9. package/dist/artifacts/artifactStatus.d.ts.map +1 -0
  10. package/dist/artifacts/artifactStatus.js +10 -0
  11. package/dist/artifacts/artifactStatus.js.map +1 -0
  12. package/dist/artifacts/artifactStore.d.ts +15 -0
  13. package/dist/artifacts/artifactStore.d.ts.map +1 -0
  14. package/dist/artifacts/artifactStore.js +35 -0
  15. package/dist/artifacts/artifactStore.js.map +1 -0
  16. package/dist/artifacts/htmlArtifact.d.ts +10 -0
  17. package/dist/artifacts/htmlArtifact.d.ts.map +1 -0
  18. package/dist/artifacts/htmlArtifact.js +20 -0
  19. package/dist/artifacts/htmlArtifact.js.map +1 -0
  20. package/dist/artifacts/index.d.ts +5 -0
  21. package/dist/artifacts/index.d.ts.map +1 -0
  22. package/dist/artifacts/index.js +5 -0
  23. package/dist/artifacts/index.js.map +1 -0
  24. package/dist/circuit-breaker/circuitBreaker.d.ts +35 -0
  25. package/dist/circuit-breaker/circuitBreaker.d.ts.map +1 -0
  26. package/dist/circuit-breaker/circuitBreaker.js +59 -0
  27. package/dist/circuit-breaker/circuitBreaker.js.map +1 -0
  28. package/dist/circuit-breaker/index.d.ts +3 -0
  29. package/dist/circuit-breaker/index.d.ts.map +1 -0
  30. package/dist/circuit-breaker/index.js +3 -0
  31. package/dist/circuit-breaker/index.js.map +1 -0
  32. package/dist/circuit-breaker/memoryCircuitStore.d.ts +24 -0
  33. package/dist/circuit-breaker/memoryCircuitStore.d.ts.map +1 -0
  34. package/dist/circuit-breaker/memoryCircuitStore.js +12 -0
  35. package/dist/circuit-breaker/memoryCircuitStore.js.map +1 -0
  36. package/dist/classifier/classifierPrompt.d.ts +7 -0
  37. package/dist/classifier/classifierPrompt.d.ts.map +1 -0
  38. package/dist/classifier/classifierPrompt.js +43 -0
  39. package/dist/classifier/classifierPrompt.js.map +1 -0
  40. package/dist/classifier/classifyMode.d.ts +21 -0
  41. package/dist/classifier/classifyMode.d.ts.map +1 -0
  42. package/dist/classifier/classifyMode.js +50 -0
  43. package/dist/classifier/classifyMode.js.map +1 -0
  44. package/dist/classifier/index.d.ts +4 -0
  45. package/dist/classifier/index.d.ts.map +1 -0
  46. package/dist/classifier/index.js +4 -0
  47. package/dist/classifier/index.js.map +1 -0
  48. package/dist/classifier/rules.d.ts +13 -0
  49. package/dist/classifier/rules.d.ts.map +1 -0
  50. package/dist/classifier/rules.js +118 -0
  51. package/dist/classifier/rules.js.map +1 -0
  52. package/dist/client/ArtifactChat.d.ts +15 -0
  53. package/dist/client/ArtifactChat.d.ts.map +1 -0
  54. package/dist/client/ArtifactChat.js +62 -0
  55. package/dist/client/ArtifactChat.js.map +1 -0
  56. package/dist/client/ArtifactMessage.d.ts +24 -0
  57. package/dist/client/ArtifactMessage.d.ts.map +1 -0
  58. package/dist/client/ArtifactMessage.js +29 -0
  59. package/dist/client/ArtifactMessage.js.map +1 -0
  60. package/dist/client/MarkdownMessage.d.ts +12 -0
  61. package/dist/client/MarkdownMessage.d.ts.map +1 -0
  62. package/dist/client/MarkdownMessage.js +141 -0
  63. package/dist/client/MarkdownMessage.js.map +1 -0
  64. package/dist/client/index.d.ts +8 -0
  65. package/dist/client/index.d.ts.map +1 -0
  66. package/dist/client/index.js +8 -0
  67. package/dist/client/index.js.map +1 -0
  68. package/dist/client/useArtifactStream.d.ts +9 -0
  69. package/dist/client/useArtifactStream.d.ts.map +1 -0
  70. package/dist/client/useArtifactStream.js +210 -0
  71. package/dist/client/useArtifactStream.js.map +1 -0
  72. package/dist/client.d.ts +2 -0
  73. package/dist/client.d.ts.map +1 -0
  74. package/dist/client.js +4 -0
  75. package/dist/client.js.map +1 -0
  76. package/dist/constants/defaults.d.ts +17 -0
  77. package/dist/constants/defaults.d.ts.map +1 -0
  78. package/dist/constants/defaults.js +38 -0
  79. package/dist/constants/defaults.js.map +1 -0
  80. package/dist/constants/events.d.ts +16 -0
  81. package/dist/constants/events.d.ts.map +1 -0
  82. package/dist/constants/events.js +16 -0
  83. package/dist/constants/events.js.map +1 -0
  84. package/dist/constants/index.d.ts +4 -0
  85. package/dist/constants/index.d.ts.map +1 -0
  86. package/dist/constants/index.js +4 -0
  87. package/dist/constants/index.js.map +1 -0
  88. package/dist/constants/sandbox.d.ts +19 -0
  89. package/dist/constants/sandbox.d.ts.map +1 -0
  90. package/dist/constants/sandbox.js +24 -0
  91. package/dist/constants/sandbox.js.map +1 -0
  92. package/dist/core/createArtifactResponse.d.ts +5 -0
  93. package/dist/core/createArtifactResponse.d.ts.map +1 -0
  94. package/dist/core/createArtifactResponse.js +16 -0
  95. package/dist/core/createArtifactResponse.js.map +1 -0
  96. package/dist/core/createArtifactStream.d.ts +9 -0
  97. package/dist/core/createArtifactStream.d.ts.map +1 -0
  98. package/dist/core/createArtifactStream.js +34 -0
  99. package/dist/core/createArtifactStream.js.map +1 -0
  100. package/dist/core/createIds.d.ts +3 -0
  101. package/dist/core/createIds.d.ts.map +1 -0
  102. package/dist/core/createIds.js +13 -0
  103. package/dist/core/createIds.js.map +1 -0
  104. package/dist/core/index.d.ts +6 -0
  105. package/dist/core/index.d.ts.map +1 -0
  106. package/dist/core/index.js +6 -0
  107. package/dist/core/index.js.map +1 -0
  108. package/dist/core/lifecycle.d.ts +35 -0
  109. package/dist/core/lifecycle.d.ts.map +1 -0
  110. package/dist/core/lifecycle.js +81 -0
  111. package/dist/core/lifecycle.js.map +1 -0
  112. package/dist/core/parseArtifactEnvelope.d.ts +2 -0
  113. package/dist/core/parseArtifactEnvelope.d.ts.map +1 -0
  114. package/dist/core/parseArtifactEnvelope.js +3 -0
  115. package/dist/core/parseArtifactEnvelope.js.map +1 -0
  116. package/dist/errors/ArtifactParseError.d.ts +10 -0
  117. package/dist/errors/ArtifactParseError.d.ts.map +1 -0
  118. package/dist/errors/ArtifactParseError.js +10 -0
  119. package/dist/errors/ArtifactParseError.js.map +1 -0
  120. package/dist/errors/ClassificationError.d.ts +13 -0
  121. package/dist/errors/ClassificationError.d.ts.map +1 -0
  122. package/dist/errors/ClassificationError.js +13 -0
  123. package/dist/errors/ClassificationError.js.map +1 -0
  124. package/dist/errors/StreamError.d.ts +11 -0
  125. package/dist/errors/StreamError.d.ts.map +1 -0
  126. package/dist/errors/StreamError.js +11 -0
  127. package/dist/errors/StreamError.js.map +1 -0
  128. package/dist/errors/index.d.ts +4 -0
  129. package/dist/errors/index.d.ts.map +1 -0
  130. package/dist/errors/index.js +4 -0
  131. package/dist/errors/index.js.map +1 -0
  132. package/dist/iframe/HtmlArtifactCard.d.ts +9 -0
  133. package/dist/iframe/HtmlArtifactCard.d.ts.map +1 -0
  134. package/dist/iframe/HtmlArtifactCard.js +117 -0
  135. package/dist/iframe/HtmlArtifactCard.js.map +1 -0
  136. package/dist/iframe/HtmlArtifactCodeView.d.ts +7 -0
  137. package/dist/iframe/HtmlArtifactCodeView.d.ts.map +1 -0
  138. package/dist/iframe/HtmlArtifactCodeView.js +20 -0
  139. package/dist/iframe/HtmlArtifactCodeView.js.map +1 -0
  140. package/dist/iframe/HtmlArtifactModal.d.ts +16 -0
  141. package/dist/iframe/HtmlArtifactModal.d.ts.map +1 -0
  142. package/dist/iframe/HtmlArtifactModal.js +99 -0
  143. package/dist/iframe/HtmlArtifactModal.js.map +1 -0
  144. package/dist/iframe/HtmlArtifactPreview.d.ts +15 -0
  145. package/dist/iframe/HtmlArtifactPreview.d.ts.map +1 -0
  146. package/dist/iframe/HtmlArtifactPreview.js +214 -0
  147. package/dist/iframe/HtmlArtifactPreview.js.map +1 -0
  148. package/dist/iframe/HtmlArtifactToolbar.d.ts +20 -0
  149. package/dist/iframe/HtmlArtifactToolbar.d.ts.map +1 -0
  150. package/dist/iframe/HtmlArtifactToolbar.js +14 -0
  151. package/dist/iframe/HtmlArtifactToolbar.js.map +1 -0
  152. package/dist/iframe/iframeSizing.d.ts +22 -0
  153. package/dist/iframe/iframeSizing.d.ts.map +1 -0
  154. package/dist/iframe/iframeSizing.js +74 -0
  155. package/dist/iframe/iframeSizing.js.map +1 -0
  156. package/dist/iframe/iframeSrcDoc.d.ts +34 -0
  157. package/dist/iframe/iframeSrcDoc.d.ts.map +1 -0
  158. package/dist/iframe/iframeSrcDoc.js +236 -0
  159. package/dist/iframe/iframeSrcDoc.js.map +1 -0
  160. package/dist/iframe/index.d.ts +15 -0
  161. package/dist/iframe/index.d.ts.map +1 -0
  162. package/dist/iframe/index.js +9 -0
  163. package/dist/iframe/index.js.map +1 -0
  164. package/dist/iframe/styles.d.ts +10 -0
  165. package/dist/iframe/styles.d.ts.map +1 -0
  166. package/dist/iframe/styles.js +181 -0
  167. package/dist/iframe/styles.js.map +1 -0
  168. package/dist/index.d.ts +18 -0
  169. package/dist/index.d.ts.map +1 -0
  170. package/dist/index.js +22 -0
  171. package/dist/index.js.map +1 -0
  172. package/dist/prompts/htmlArtifactPrompt.d.ts +15 -0
  173. package/dist/prompts/htmlArtifactPrompt.d.ts.map +1 -0
  174. package/dist/prompts/htmlArtifactPrompt.js +248 -0
  175. package/dist/prompts/htmlArtifactPrompt.js.map +1 -0
  176. package/dist/prompts/index.d.ts +4 -0
  177. package/dist/prompts/index.d.ts.map +1 -0
  178. package/dist/prompts/index.js +4 -0
  179. package/dist/prompts/index.js.map +1 -0
  180. package/dist/prompts/markdownPrompt.d.ts +3 -0
  181. package/dist/prompts/markdownPrompt.d.ts.map +1 -0
  182. package/dist/prompts/markdownPrompt.js +10 -0
  183. package/dist/prompts/markdownPrompt.js.map +1 -0
  184. package/dist/prompts/systemPrompt.d.ts +3 -0
  185. package/dist/prompts/systemPrompt.d.ts.map +1 -0
  186. package/dist/prompts/systemPrompt.js +3 -0
  187. package/dist/prompts/systemPrompt.js.map +1 -0
  188. package/dist/sanitizer/dangerousPatterns.d.ts +41 -0
  189. package/dist/sanitizer/dangerousPatterns.d.ts.map +1 -0
  190. package/dist/sanitizer/dangerousPatterns.js +41 -0
  191. package/dist/sanitizer/dangerousPatterns.js.map +1 -0
  192. package/dist/sanitizer/index.d.ts +4 -0
  193. package/dist/sanitizer/index.d.ts.map +1 -0
  194. package/dist/sanitizer/index.js +4 -0
  195. package/dist/sanitizer/index.js.map +1 -0
  196. package/dist/sanitizer/sanitizeConfig.d.ts +4 -0
  197. package/dist/sanitizer/sanitizeConfig.d.ts.map +1 -0
  198. package/dist/sanitizer/sanitizeConfig.js +10 -0
  199. package/dist/sanitizer/sanitizeConfig.js.map +1 -0
  200. package/dist/sanitizer/sanitizeHtml.d.ts +20 -0
  201. package/dist/sanitizer/sanitizeHtml.d.ts.map +1 -0
  202. package/dist/sanitizer/sanitizeHtml.js +81 -0
  203. package/dist/sanitizer/sanitizeHtml.js.map +1 -0
  204. package/dist/server/config.d.ts +6 -0
  205. package/dist/server/config.d.ts.map +1 -0
  206. package/dist/server/config.js +68 -0
  207. package/dist/server/config.js.map +1 -0
  208. package/dist/server/createArtifactStreamResponse.d.ts +9 -0
  209. package/dist/server/createArtifactStreamResponse.d.ts.map +1 -0
  210. package/dist/server/createArtifactStreamResponse.js +104 -0
  211. package/dist/server/createArtifactStreamResponse.js.map +1 -0
  212. package/dist/server/createHtmlArtifactStream.d.ts +30 -0
  213. package/dist/server/createHtmlArtifactStream.d.ts.map +1 -0
  214. package/dist/server/createHtmlArtifactStream.js +115 -0
  215. package/dist/server/createHtmlArtifactStream.js.map +1 -0
  216. package/dist/server/createMarkdownStream.d.ts +13 -0
  217. package/dist/server/createMarkdownStream.d.ts.map +1 -0
  218. package/dist/server/createMarkdownStream.js +27 -0
  219. package/dist/server/createMarkdownStream.js.map +1 -0
  220. package/dist/server/createSseResponse.d.ts +7 -0
  221. package/dist/server/createSseResponse.d.ts.map +1 -0
  222. package/dist/server/createSseResponse.js +11 -0
  223. package/dist/server/createSseResponse.js.map +1 -0
  224. package/dist/server/index.d.ts +12 -0
  225. package/dist/server/index.d.ts.map +1 -0
  226. package/dist/server/index.js +12 -0
  227. package/dist/server/index.js.map +1 -0
  228. package/dist/server.d.ts +2 -0
  229. package/dist/server.d.ts.map +1 -0
  230. package/dist/server.js +3 -0
  231. package/dist/server.js.map +1 -0
  232. package/dist/stream/assembleDocument.d.ts +42 -0
  233. package/dist/stream/assembleDocument.d.ts.map +1 -0
  234. package/dist/stream/assembleDocument.js +104 -0
  235. package/dist/stream/assembleDocument.js.map +1 -0
  236. package/dist/stream/buffering.d.ts +37 -0
  237. package/dist/stream/buffering.d.ts.map +1 -0
  238. package/dist/stream/buffering.js +97 -0
  239. package/dist/stream/buffering.js.map +1 -0
  240. package/dist/stream/debounce.d.ts +12 -0
  241. package/dist/stream/debounce.d.ts.map +1 -0
  242. package/dist/stream/debounce.js +36 -0
  243. package/dist/stream/debounce.js.map +1 -0
  244. package/dist/stream/decoder.d.ts +17 -0
  245. package/dist/stream/decoder.d.ts.map +1 -0
  246. package/dist/stream/decoder.js +71 -0
  247. package/dist/stream/decoder.js.map +1 -0
  248. package/dist/stream/encoder.d.ts +12 -0
  249. package/dist/stream/encoder.d.ts.map +1 -0
  250. package/dist/stream/encoder.js +19 -0
  251. package/dist/stream/encoder.js.map +1 -0
  252. package/dist/stream/events.d.ts +20 -0
  253. package/dist/stream/events.d.ts.map +1 -0
  254. package/dist/stream/events.js +65 -0
  255. package/dist/stream/events.js.map +1 -0
  256. package/dist/stream/index.d.ts +9 -0
  257. package/dist/stream/index.d.ts.map +1 -0
  258. package/dist/stream/index.js +9 -0
  259. package/dist/stream/index.js.map +1 -0
  260. package/dist/stream/predictiveHtmlParser.d.ts +52 -0
  261. package/dist/stream/predictiveHtmlParser.d.ts.map +1 -0
  262. package/dist/stream/predictiveHtmlParser.js +252 -0
  263. package/dist/stream/predictiveHtmlParser.js.map +1 -0
  264. package/dist/stream/sse.d.ts +7 -0
  265. package/dist/stream/sse.d.ts.map +1 -0
  266. package/dist/stream/sse.js +33 -0
  267. package/dist/stream/sse.js.map +1 -0
  268. package/dist/types/artifact.d.ts +88 -0
  269. package/dist/types/artifact.d.ts.map +1 -0
  270. package/dist/types/artifact.js +2 -0
  271. package/dist/types/artifact.js.map +1 -0
  272. package/dist/types/client.d.ts +98 -0
  273. package/dist/types/client.d.ts.map +1 -0
  274. package/dist/types/client.js +2 -0
  275. package/dist/types/client.js.map +1 -0
  276. package/dist/types/config.d.ts +23 -0
  277. package/dist/types/config.d.ts.map +1 -0
  278. package/dist/types/config.js +2 -0
  279. package/dist/types/config.js.map +1 -0
  280. package/dist/types/errors.d.ts +9 -0
  281. package/dist/types/errors.d.ts.map +1 -0
  282. package/dist/types/errors.js +2 -0
  283. package/dist/types/errors.js.map +1 -0
  284. package/dist/types/index.d.ts +7 -0
  285. package/dist/types/index.d.ts.map +1 -0
  286. package/dist/types/index.js +2 -0
  287. package/dist/types/index.js.map +1 -0
  288. package/dist/types/server.d.ts +111 -0
  289. package/dist/types/server.d.ts.map +1 -0
  290. package/dist/types/server.js +2 -0
  291. package/dist/types/server.js.map +1 -0
  292. package/dist/types/stream.d.ts +60 -0
  293. package/dist/types/stream.d.ts.map +1 -0
  294. package/dist/types/stream.js +7 -0
  295. package/dist/types/stream.js.map +1 -0
  296. package/dist/utils/index.d.ts +6 -0
  297. package/dist/utils/index.d.ts.map +1 -0
  298. package/dist/utils/index.js +6 -0
  299. package/dist/utils/index.js.map +1 -0
  300. package/dist/utils/invariant.d.ts +6 -0
  301. package/dist/utils/invariant.d.ts.map +1 -0
  302. package/dist/utils/invariant.js +10 -0
  303. package/dist/utils/invariant.js.map +1 -0
  304. package/dist/utils/isBrowser.d.ts +3 -0
  305. package/dist/utils/isBrowser.d.ts.map +1 -0
  306. package/dist/utils/isBrowser.js +3 -0
  307. package/dist/utils/isBrowser.js.map +1 -0
  308. package/dist/utils/mergeConfig.d.ts +6 -0
  309. package/dist/utils/mergeConfig.d.ts.map +1 -0
  310. package/dist/utils/mergeConfig.js +17 -0
  311. package/dist/utils/mergeConfig.js.map +1 -0
  312. package/dist/utils/noop.d.ts +3 -0
  313. package/dist/utils/noop.d.ts.map +1 -0
  314. package/dist/utils/noop.js +3 -0
  315. package/dist/utils/noop.js.map +1 -0
  316. package/dist/utils/safeJsonParse.d.ts +7 -0
  317. package/dist/utils/safeJsonParse.d.ts.map +1 -0
  318. package/dist/utils/safeJsonParse.js +62 -0
  319. package/dist/utils/safeJsonParse.js.map +1 -0
  320. package/dist-cjs/artifacts/artifactEnvelope.js +224 -0
  321. package/dist-cjs/artifacts/artifactEnvelope.js.map +1 -0
  322. package/dist-cjs/artifacts/artifactStatus.js +14 -0
  323. package/dist-cjs/artifacts/artifactStatus.js.map +1 -0
  324. package/dist-cjs/artifacts/artifactStore.js +39 -0
  325. package/dist-cjs/artifacts/artifactStore.js.map +1 -0
  326. package/dist-cjs/artifacts/htmlArtifact.js +24 -0
  327. package/dist-cjs/artifacts/htmlArtifact.js.map +1 -0
  328. package/dist-cjs/artifacts/index.js +21 -0
  329. package/dist-cjs/artifacts/index.js.map +1 -0
  330. package/dist-cjs/circuit-breaker/circuitBreaker.js +63 -0
  331. package/dist-cjs/circuit-breaker/circuitBreaker.js.map +1 -0
  332. package/dist-cjs/circuit-breaker/index.js +19 -0
  333. package/dist-cjs/circuit-breaker/index.js.map +1 -0
  334. package/dist-cjs/circuit-breaker/memoryCircuitStore.js +16 -0
  335. package/dist-cjs/circuit-breaker/memoryCircuitStore.js.map +1 -0
  336. package/dist-cjs/classifier/classifierPrompt.js +47 -0
  337. package/dist-cjs/classifier/classifierPrompt.js.map +1 -0
  338. package/dist-cjs/classifier/classifyMode.js +53 -0
  339. package/dist-cjs/classifier/classifyMode.js.map +1 -0
  340. package/dist-cjs/classifier/index.js +20 -0
  341. package/dist-cjs/classifier/index.js.map +1 -0
  342. package/dist-cjs/classifier/rules.js +121 -0
  343. package/dist-cjs/classifier/rules.js.map +1 -0
  344. package/dist-cjs/client/ArtifactChat.js +98 -0
  345. package/dist-cjs/client/ArtifactChat.js.map +1 -0
  346. package/dist-cjs/client/ArtifactMessage.js +32 -0
  347. package/dist-cjs/client/ArtifactMessage.js.map +1 -0
  348. package/dist-cjs/client/MarkdownMessage.js +177 -0
  349. package/dist-cjs/client/MarkdownMessage.js.map +1 -0
  350. package/dist-cjs/client/index.js +20 -0
  351. package/dist-cjs/client/index.js.map +1 -0
  352. package/dist-cjs/client/useArtifactStream.js +246 -0
  353. package/dist-cjs/client/useArtifactStream.js.map +1 -0
  354. package/dist-cjs/client.js +20 -0
  355. package/dist-cjs/client.js.map +1 -0
  356. package/dist-cjs/constants/defaults.js +41 -0
  357. package/dist-cjs/constants/defaults.js.map +1 -0
  358. package/dist-cjs/constants/events.js +19 -0
  359. package/dist-cjs/constants/events.js.map +1 -0
  360. package/dist-cjs/constants/index.js +20 -0
  361. package/dist-cjs/constants/index.js.map +1 -0
  362. package/dist-cjs/constants/sandbox.js +27 -0
  363. package/dist-cjs/constants/sandbox.js.map +1 -0
  364. package/dist-cjs/core/createArtifactResponse.js +20 -0
  365. package/dist-cjs/core/createArtifactResponse.js.map +1 -0
  366. package/dist-cjs/core/createArtifactStream.js +37 -0
  367. package/dist-cjs/core/createArtifactStream.js.map +1 -0
  368. package/dist-cjs/core/createIds.js +17 -0
  369. package/dist-cjs/core/createIds.js.map +1 -0
  370. package/dist-cjs/core/index.js +22 -0
  371. package/dist-cjs/core/index.js.map +1 -0
  372. package/dist-cjs/core/lifecycle.js +86 -0
  373. package/dist-cjs/core/lifecycle.js.map +1 -0
  374. package/dist-cjs/core/parseArtifactEnvelope.js +8 -0
  375. package/dist-cjs/core/parseArtifactEnvelope.js.map +1 -0
  376. package/dist-cjs/errors/ArtifactParseError.js +14 -0
  377. package/dist-cjs/errors/ArtifactParseError.js.map +1 -0
  378. package/dist-cjs/errors/ClassificationError.js +17 -0
  379. package/dist-cjs/errors/ClassificationError.js.map +1 -0
  380. package/dist-cjs/errors/StreamError.js +15 -0
  381. package/dist-cjs/errors/StreamError.js.map +1 -0
  382. package/dist-cjs/errors/index.js +20 -0
  383. package/dist-cjs/errors/index.js.map +1 -0
  384. package/dist-cjs/iframe/HtmlArtifactCard.js +153 -0
  385. package/dist-cjs/iframe/HtmlArtifactCard.js.map +1 -0
  386. package/dist-cjs/iframe/HtmlArtifactCodeView.js +23 -0
  387. package/dist-cjs/iframe/HtmlArtifactCodeView.js.map +1 -0
  388. package/dist-cjs/iframe/HtmlArtifactModal.js +135 -0
  389. package/dist-cjs/iframe/HtmlArtifactModal.js.map +1 -0
  390. package/dist-cjs/iframe/HtmlArtifactPreview.js +250 -0
  391. package/dist-cjs/iframe/HtmlArtifactPreview.js.map +1 -0
  392. package/dist-cjs/iframe/HtmlArtifactToolbar.js +17 -0
  393. package/dist-cjs/iframe/HtmlArtifactToolbar.js.map +1 -0
  394. package/dist-cjs/iframe/iframeSizing.js +77 -0
  395. package/dist-cjs/iframe/iframeSizing.js.map +1 -0
  396. package/dist-cjs/iframe/iframeSrcDoc.js +241 -0
  397. package/dist-cjs/iframe/iframeSrcDoc.js.map +1 -0
  398. package/dist-cjs/iframe/index.js +22 -0
  399. package/dist-cjs/iframe/index.js.map +1 -0
  400. package/dist-cjs/iframe/styles.js +218 -0
  401. package/dist-cjs/iframe/styles.js.map +1 -0
  402. package/dist-cjs/index.js +52 -0
  403. package/dist-cjs/index.js.map +1 -0
  404. package/dist-cjs/package.json +3 -0
  405. package/dist-cjs/prompts/htmlArtifactPrompt.js +252 -0
  406. package/dist-cjs/prompts/htmlArtifactPrompt.js.map +1 -0
  407. package/dist-cjs/prompts/index.js +20 -0
  408. package/dist-cjs/prompts/index.js.map +1 -0
  409. package/dist-cjs/prompts/markdownPrompt.js +13 -0
  410. package/dist-cjs/prompts/markdownPrompt.js.map +1 -0
  411. package/dist-cjs/prompts/systemPrompt.js +6 -0
  412. package/dist-cjs/prompts/systemPrompt.js.map +1 -0
  413. package/dist-cjs/sanitizer/dangerousPatterns.js +44 -0
  414. package/dist-cjs/sanitizer/dangerousPatterns.js.map +1 -0
  415. package/dist-cjs/sanitizer/index.js +43 -0
  416. package/dist-cjs/sanitizer/index.js.map +1 -0
  417. package/dist-cjs/sanitizer/sanitizeConfig.js +13 -0
  418. package/dist-cjs/sanitizer/sanitizeConfig.js.map +1 -0
  419. package/dist-cjs/sanitizer/sanitizeHtml.js +86 -0
  420. package/dist-cjs/sanitizer/sanitizeHtml.js.map +1 -0
  421. package/dist-cjs/server/config.js +72 -0
  422. package/dist-cjs/server/config.js.map +1 -0
  423. package/dist-cjs/server/createArtifactStreamResponse.js +107 -0
  424. package/dist-cjs/server/createArtifactStreamResponse.js.map +1 -0
  425. package/dist-cjs/server/createHtmlArtifactStream.js +119 -0
  426. package/dist-cjs/server/createHtmlArtifactStream.js.map +1 -0
  427. package/dist-cjs/server/createMarkdownStream.js +31 -0
  428. package/dist-cjs/server/createMarkdownStream.js.map +1 -0
  429. package/dist-cjs/server/createSseResponse.js +14 -0
  430. package/dist-cjs/server/createSseResponse.js.map +1 -0
  431. package/dist-cjs/server/index.js +34 -0
  432. package/dist-cjs/server/index.js.map +1 -0
  433. package/dist-cjs/server.js +19 -0
  434. package/dist-cjs/server.js.map +1 -0
  435. package/dist-cjs/stream/assembleDocument.js +109 -0
  436. package/dist-cjs/stream/assembleDocument.js.map +1 -0
  437. package/dist-cjs/stream/buffering.js +102 -0
  438. package/dist-cjs/stream/buffering.js.map +1 -0
  439. package/dist-cjs/stream/debounce.js +39 -0
  440. package/dist-cjs/stream/debounce.js.map +1 -0
  441. package/dist-cjs/stream/decoder.js +75 -0
  442. package/dist-cjs/stream/decoder.js.map +1 -0
  443. package/dist-cjs/stream/encoder.js +24 -0
  444. package/dist-cjs/stream/encoder.js.map +1 -0
  445. package/dist-cjs/stream/events.js +69 -0
  446. package/dist-cjs/stream/events.js.map +1 -0
  447. package/dist-cjs/stream/index.js +25 -0
  448. package/dist-cjs/stream/index.js.map +1 -0
  449. package/dist-cjs/stream/predictiveHtmlParser.js +256 -0
  450. package/dist-cjs/stream/predictiveHtmlParser.js.map +1 -0
  451. package/dist-cjs/stream/sse.js +36 -0
  452. package/dist-cjs/stream/sse.js.map +1 -0
  453. package/dist-cjs/types/artifact.js +3 -0
  454. package/dist-cjs/types/artifact.js.map +1 -0
  455. package/dist-cjs/types/client.js +3 -0
  456. package/dist-cjs/types/client.js.map +1 -0
  457. package/dist-cjs/types/config.js +3 -0
  458. package/dist-cjs/types/config.js.map +1 -0
  459. package/dist-cjs/types/errors.js +3 -0
  460. package/dist-cjs/types/errors.js.map +1 -0
  461. package/dist-cjs/types/index.js +3 -0
  462. package/dist-cjs/types/index.js.map +1 -0
  463. package/dist-cjs/types/server.js +3 -0
  464. package/dist-cjs/types/server.js.map +1 -0
  465. package/dist-cjs/types/stream.js +8 -0
  466. package/dist-cjs/types/stream.js.map +1 -0
  467. package/dist-cjs/utils/index.js +22 -0
  468. package/dist-cjs/utils/index.js.map +1 -0
  469. package/dist-cjs/utils/invariant.js +13 -0
  470. package/dist-cjs/utils/invariant.js.map +1 -0
  471. package/dist-cjs/utils/isBrowser.js +6 -0
  472. package/dist-cjs/utils/isBrowser.js.map +1 -0
  473. package/dist-cjs/utils/mergeConfig.js +20 -0
  474. package/dist-cjs/utils/mergeConfig.js.map +1 -0
  475. package/dist-cjs/utils/noop.js +7 -0
  476. package/dist-cjs/utils/noop.js.map +1 -0
  477. package/dist-cjs/utils/safeJsonParse.js +65 -0
  478. package/dist-cjs/utils/safeJsonParse.js.map +1 -0
  479. package/package.json +115 -0
@@ -0,0 +1,111 @@
1
+ import type { ArtifactPresentation, ArtifactStyleProfile, ArtifactTheme } from "./artifact.js";
2
+ import type { ArtifactModeOption } from "./config.js";
3
+ import type { ArtifactMode } from "./stream.js";
4
+ export type CoreMessageRole = "system" | "user" | "assistant" | "tool";
5
+ export interface CoreTextPart {
6
+ type?: string;
7
+ text?: string;
8
+ }
9
+ export type CoreMessageContent = string | CoreTextPart[] | Record<string, unknown>[] | null | undefined;
10
+ export interface CoreMessage {
11
+ role: CoreMessageRole;
12
+ content: CoreMessageContent;
13
+ }
14
+ export interface GenerateTextStreamOptions {
15
+ system?: string;
16
+ messages: CoreMessage[];
17
+ temperature?: number;
18
+ abortSignal?: AbortSignal;
19
+ }
20
+ export type GenerateTextStream = (options: GenerateTextStreamOptions) => AsyncIterable<string> | Promise<AsyncIterable<string>>;
21
+ export interface GenerateTextOptions {
22
+ system?: string;
23
+ prompt: string;
24
+ temperature?: number;
25
+ abortSignal?: AbortSignal;
26
+ }
27
+ export type GenerateText = (options: GenerateTextOptions) => string | Promise<string>;
28
+ export interface ClassifyRequest {
29
+ query: string;
30
+ messages: CoreMessage[];
31
+ abortSignal?: AbortSignal;
32
+ }
33
+ export interface ClassificationDecision {
34
+ mode: ArtifactMode;
35
+ reason?: string;
36
+ source?: string;
37
+ }
38
+ export type ClassifyRequestHandler = (request: ClassifyRequest) => ArtifactMode | ClassificationDecision | Promise<ArtifactMode | ClassificationDecision>;
39
+ /**
40
+ * Options for {@link createArtifactStreamResponse}. Provider SDKs stay outside
41
+ * the package; pass their streaming text output through `generateTextStream`.
42
+ */
43
+ export interface CreateArtifactStreamResponseOptions {
44
+ /** Conversation history in a small provider-neutral message shape. */
45
+ messages: CoreMessage[];
46
+ /** Generate the assistant response as plain text chunks. */
47
+ generateTextStream: GenerateTextStream;
48
+ /** `auto` (default) classifies first; otherwise forces a mode. */
49
+ mode?: ArtifactModeOption;
50
+ /** Optional model-backed text generator for automatic classification. */
51
+ generateText?: GenerateText;
52
+ /** Optional fully custom classifier. Overrides `generateText` classification. */
53
+ classify?: ClassifyRequestHandler;
54
+ /** Overrides the base system prompt prepended to every generation. */
55
+ system?: string;
56
+ /** Overrides the markdown-mode system prompt. */
57
+ markdownSystemPrompt?: string;
58
+ /** Overrides the html-artifact-mode system prompt. */
59
+ htmlSystemPrompt?: string;
60
+ /** Visual hints injected into the HTML generation prompt. */
61
+ styleProfile?: ArtifactStyleProfile;
62
+ /** Host theme injected into the prompt so artifacts match the site exactly. */
63
+ theme?: ArtifactTheme;
64
+ /**
65
+ * How artifacts are presented. `seamless` tells the model to emit a
66
+ * transparent, chromeless document so it blends inline in the host UI.
67
+ * Defaults to `card`.
68
+ */
69
+ presentation?: ArtifactPresentation;
70
+ allowForms?: boolean;
71
+ allowInlineStyles?: boolean;
72
+ allowStyleTags?: boolean;
73
+ allowSvg?: boolean;
74
+ allowExternalFonts?: boolean;
75
+ temperature?: number;
76
+ /**
77
+ * How often (ms) to emit an `artifact_snapshot` while streaming.
78
+ * Defaults to 0, meaning every renderable HTML delta gets a fresh predictive
79
+ * snapshot for immediate iframe repainting.
80
+ */
81
+ snapshotIntervalMs?: number;
82
+ /** AbortSignal forwarded to the model calls. */
83
+ abortSignal?: AbortSignal;
84
+ }
85
+ /** Internal, fully-resolved configuration used by the stream builders. */
86
+ export interface ResolvedServerConfig {
87
+ messages: CoreMessage[];
88
+ generateTextStream: GenerateTextStream;
89
+ mode: ArtifactModeOption;
90
+ generateText?: GenerateText;
91
+ classify?: ClassifyRequestHandler;
92
+ system?: string;
93
+ markdownSystemPrompt: string;
94
+ htmlSystemPrompt: string;
95
+ htmlSystemPromptOverride?: string;
96
+ styleProfile?: ArtifactStyleProfile;
97
+ theme?: ArtifactTheme;
98
+ presentation?: ArtifactPresentation;
99
+ sanitize: {
100
+ allowForms: boolean;
101
+ allowScripts: false;
102
+ allowInlineStyles: boolean;
103
+ allowStyleTags: boolean;
104
+ allowSvg: boolean;
105
+ allowExternalFonts: boolean;
106
+ };
107
+ temperature?: number;
108
+ snapshotIntervalMs: number;
109
+ abortSignal?: AbortSignal;
110
+ }
111
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/types/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/types/server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * The wire protocol shared by the server stream producer and the client
3
+ * consumer. Every response begins with a `mode` event so the frontend knows
4
+ * whether to render a markdown bubble or an artifact card.
5
+ */
6
+ export type ArtifactMode = "markdown" | "artifact" | "generative_ui";
7
+ export type LegacyArtifactMode = "html_artifact";
8
+ export type AnyArtifactMode = ArtifactMode | LegacyArtifactMode;
9
+ /** The only artifact kind supported in v1. */
10
+ export type ArtifactKind = "html";
11
+ export interface ModeEvent {
12
+ type: "mode";
13
+ mode: ArtifactMode;
14
+ }
15
+ export interface MessageStartEvent {
16
+ type: "message_start";
17
+ messageId: string;
18
+ }
19
+ export interface MessageDeltaEvent {
20
+ type: "message_delta";
21
+ messageId: string;
22
+ delta: string;
23
+ }
24
+ export interface MessageDoneEvent {
25
+ type: "message_done";
26
+ messageId: string;
27
+ content: string;
28
+ }
29
+ export interface ArtifactStartEvent {
30
+ type: "artifact_start";
31
+ artifactId: string;
32
+ title: string;
33
+ artifactType: ArtifactKind;
34
+ }
35
+ export interface ArtifactDeltaEvent {
36
+ type: "artifact_delta";
37
+ artifactId: string;
38
+ delta: string;
39
+ }
40
+ export interface ArtifactSnapshotEvent {
41
+ type: "artifact_snapshot";
42
+ artifactId: string;
43
+ html: string;
44
+ }
45
+ export interface ArtifactDoneEvent {
46
+ type: "artifact_done";
47
+ artifactId: string;
48
+ html: string;
49
+ }
50
+ export interface ErrorEvent {
51
+ type: "error";
52
+ message: string;
53
+ recoverable: boolean;
54
+ }
55
+ export interface DoneEvent {
56
+ type: "done";
57
+ }
58
+ export type ArtifactStreamEvent = ModeEvent | MessageStartEvent | MessageDeltaEvent | MessageDoneEvent | ArtifactStartEvent | ArtifactDeltaEvent | ArtifactSnapshotEvent | ArtifactDoneEvent | ErrorEvent | DoneEvent;
59
+ export type ArtifactStreamEventType = ArtifactStreamEvent["type"];
60
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/types/stream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,eAAe,CAAC;AACrE,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,kBAAkB,CAAC;AAEhE,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,GAClB,kBAAkB,GAClB,qBAAqB,GACrB,iBAAiB,GACjB,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The wire protocol shared by the server stream producer and the client
3
+ * consumer. Every response begins with a `mode` event so the frontend knows
4
+ * whether to render a markdown bubble or an artifact card.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/types/stream.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,6 @@
1
+ export * from "./invariant.js";
2
+ export * from "./safeJsonParse.js";
3
+ export * from "./mergeConfig.js";
4
+ export * from "./isBrowser.js";
5
+ export * from "./noop.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./invariant.js";
2
+ export * from "./safeJsonParse.js";
3
+ export * from "./mergeConfig.js";
4
+ export * from "./isBrowser.js";
5
+ export * from "./noop.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Throws when `condition` is falsy. Narrows types for the caller. Keep
3
+ * messages short — they may surface in server logs.
4
+ */
5
+ export declare function invariant(condition: unknown, message?: string): asserts condition;
6
+ //# sourceMappingURL=invariant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../../src/utils/invariant.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,OAAO,EAClB,OAAO,SAAqB,GAC3B,OAAO,CAAC,SAAS,CAInB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Throws when `condition` is falsy. Narrows types for the caller. Keep
3
+ * messages short — they may surface in server logs.
4
+ */
5
+ export function invariant(condition, message = "Invariant failed") {
6
+ if (!condition) {
7
+ throw new Error(message);
8
+ }
9
+ }
10
+ //# sourceMappingURL=invariant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant.js","sourceRoot":"","sources":["../../src/utils/invariant.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,SAAkB,EAClB,OAAO,GAAG,kBAAkB;IAE5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** True when running in an environment with a DOM. */
2
+ export declare const isBrowser: boolean;
3
+ //# sourceMappingURL=isBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBrowser.d.ts","sourceRoot":"","sources":["../../src/utils/isBrowser.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,eAAO,MAAM,SAAS,SAC4C,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** True when running in an environment with a DOM. */
2
+ export const isBrowser = typeof window !== "undefined" && typeof document !== "undefined";
3
+ //# sourceMappingURL=isBrowser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBrowser.js","sourceRoot":"","sources":["../../src/utils/isBrowser.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GACpB,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Shallow-merge `overrides` onto `defaults`, ignoring `undefined` values so a
3
+ * caller passing `{ foo: undefined }` does not clobber a real default.
4
+ */
5
+ export declare function mergeConfig<T extends object>(defaults: T, overrides?: Partial<T>): T;
6
+ //# sourceMappingURL=mergeConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeConfig.d.ts","sourceRoot":"","sources":["../../src/utils/mergeConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,QAAQ,EAAE,CAAC,EACX,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GACrB,CAAC,CAUH"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Shallow-merge `overrides` onto `defaults`, ignoring `undefined` values so a
3
+ * caller passing `{ foo: undefined }` does not clobber a real default.
4
+ */
5
+ export function mergeConfig(defaults, overrides) {
6
+ if (!overrides)
7
+ return { ...defaults };
8
+ const result = { ...defaults };
9
+ for (const key of Object.keys(overrides)) {
10
+ const value = overrides[key];
11
+ if (value !== undefined) {
12
+ result[key] = value;
13
+ }
14
+ }
15
+ return result;
16
+ }
17
+ //# sourceMappingURL=mergeConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeConfig.js","sourceRoot":"","sources":["../../src/utils/mergeConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,QAAW,EACX,SAAsB;IAEtB,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAgB,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAmB,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** A function that does nothing — useful as a default callback. */
2
+ export declare const noop: () => void;
3
+ //# sourceMappingURL=noop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop.d.ts","sourceRoot":"","sources":["../../src/utils/noop.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,eAAO,MAAM,IAAI,QAAO,IAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** A function that does nothing — useful as a default callback. */
2
+ export const noop = () => { };
3
+ //# sourceMappingURL=noop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop.js","sourceRoot":"","sources":["../../src/utils/noop.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,IAAI,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Parse JSON without throwing. Returns `fallback` on any failure. Also tolerates
3
+ * models that wrap JSON in ```json fences or surround it with prose by
4
+ * extracting the first balanced `{...}` block.
5
+ */
6
+ export declare function safeJsonParse<T>(input: string, fallback: T): T;
7
+ //# sourceMappingURL=safeJsonParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeJsonParse.d.ts","sourceRoot":"","sources":["../../src/utils/safeJsonParse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAa9D"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Parse JSON without throwing. Returns `fallback` on any failure. Also tolerates
3
+ * models that wrap JSON in ```json fences or surround it with prose by
4
+ * extracting the first balanced `{...}` block.
5
+ */
6
+ export function safeJsonParse(input, fallback) {
7
+ if (typeof input !== "string")
8
+ return fallback;
9
+ const direct = tryParse(input);
10
+ if (direct.ok)
11
+ return direct.value;
12
+ const extracted = extractJsonObject(input);
13
+ if (extracted !== null) {
14
+ const parsed = tryParse(extracted);
15
+ if (parsed.ok)
16
+ return parsed.value;
17
+ }
18
+ return fallback;
19
+ }
20
+ function tryParse(text) {
21
+ try {
22
+ return { ok: true, value: JSON.parse(text) };
23
+ }
24
+ catch {
25
+ return { ok: false };
26
+ }
27
+ }
28
+ /** Returns the first balanced top-level `{...}` substring, or null. */
29
+ function extractJsonObject(input) {
30
+ const start = input.indexOf("{");
31
+ if (start === -1)
32
+ return null;
33
+ let depth = 0;
34
+ let inString = false;
35
+ let escaped = false;
36
+ for (let i = start; i < input.length; i++) {
37
+ const char = input[i];
38
+ if (escaped) {
39
+ escaped = false;
40
+ continue;
41
+ }
42
+ if (char === "\\") {
43
+ escaped = true;
44
+ continue;
45
+ }
46
+ if (char === '"') {
47
+ inString = !inString;
48
+ continue;
49
+ }
50
+ if (inString)
51
+ continue;
52
+ if (char === "{")
53
+ depth++;
54
+ else if (char === "}") {
55
+ depth--;
56
+ if (depth === 0)
57
+ return input.slice(start, i + 1);
58
+ }
59
+ }
60
+ return null;
61
+ }
62
+ //# sourceMappingURL=safeJsonParse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeJsonParse.js","sourceRoot":"","sources":["../../src/utils/safeJsonParse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAI,KAAa,EAAE,QAAW;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE/C,MAAM,MAAM,GAAG,QAAQ,CAAI,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAEnC,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAI,SAAS,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACrC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CACf,IAAY;IAEZ,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,EAAE,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ;YAAE,SAAS;QAEvB,IAAI,IAAI,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aACrB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StreamingEnvelopeParser = void 0;
4
+ exports.stripOuterFence = stripOuterFence;
5
+ exports.cleanArtifactHtml = cleanArtifactHtml;
6
+ exports.parseArtifactEnvelope = parseArtifactEnvelope;
7
+ const MSG_OPEN = "<assistant_message>";
8
+ const MSG_CLOSE = "</assistant_message>";
9
+ const ART_OPEN = "<html_artifact";
10
+ const ART_CLOSE = "</html_artifact>";
11
+ const GUARD = Math.max(MSG_OPEN.length, MSG_CLOSE.length, ART_OPEN.length, ART_CLOSE.length);
12
+ /** Strip a leading/trailing markdown code fence if the model wrapped output. */
13
+ function stripOuterFence(input) {
14
+ const trimmed = input.trim();
15
+ const fence = /^```[a-z]*\n([\s\S]*?)\n```$/i.exec(trimmed);
16
+ return fence?.[1] ?? input;
17
+ }
18
+ /**
19
+ * Clean common model wrapping around artifact HTML. This only trims code fences
20
+ * at the boundary of the artifact, so literal backticks inside the document are
21
+ * left alone.
22
+ */
23
+ function cleanArtifactHtml(input) {
24
+ let html = input.trim();
25
+ html = html.replace(/^```(?:html)?[ \t]*\r?\n/i, "");
26
+ html = html.replace(/\r?\n```[ \t]*$/i, "");
27
+ return html.trim();
28
+ }
29
+ function parseTitle(openTag) {
30
+ const match = /title\s*=\s*("([^"]*)"|'([^']*)')/i.exec(openTag);
31
+ return (match?.[2] ?? match?.[3] ?? "Untitled artifact").trim();
32
+ }
33
+ /**
34
+ * Final, non-streaming parse of a model envelope. Fail-open: it never throws,
35
+ * and degrades gracefully when tags are missing or malformed. This is the
36
+ * authoritative parser used to produce the final artifact.
37
+ */
38
+ function parseArtifactEnvelope(raw) {
39
+ const empty = {
40
+ assistantMessage: "",
41
+ title: "Untitled artifact",
42
+ html: "",
43
+ hasArtifact: false,
44
+ };
45
+ if (typeof raw !== "string" || raw.trim() === "")
46
+ return empty;
47
+ try {
48
+ const source = stripOuterFence(raw);
49
+ const msgMatch = /<assistant_message>([\s\S]*?)<\/assistant_message>/i.exec(source);
50
+ const artMatch = /<html_artifact\b([^>]*)>([\s\S]*?)<\/html_artifact>/i.exec(source);
51
+ if (artMatch) {
52
+ const title = parseTitle(`<html_artifact${artMatch[1] ?? ""}>`);
53
+ const html = cleanArtifactHtml(artMatch[2] ?? "");
54
+ const assistantMessage = (msgMatch?.[1] ?? deriveMessage(source, artMatch.index)).trim();
55
+ return {
56
+ assistantMessage,
57
+ title,
58
+ html,
59
+ hasArtifact: html.length > 0,
60
+ };
61
+ }
62
+ // No artifact tag: try to recover a bare HTML document.
63
+ const recovered = recoverBareHtml(source);
64
+ if (recovered) {
65
+ return {
66
+ assistantMessage: (msgMatch?.[1] ?? "Here is the generated artifact.").trim(),
67
+ title: "Untitled artifact",
68
+ html: recovered,
69
+ hasArtifact: true,
70
+ };
71
+ }
72
+ // Pure text — treat as the assistant message.
73
+ return {
74
+ assistantMessage: (msgMatch?.[1] ?? source).trim(),
75
+ title: "Untitled artifact",
76
+ html: "",
77
+ hasArtifact: false,
78
+ };
79
+ }
80
+ catch {
81
+ return { ...empty, assistantMessage: raw };
82
+ }
83
+ }
84
+ function deriveMessage(source, artifactIndex) {
85
+ const before = source.slice(0, artifactIndex).trim();
86
+ return before || "Here is the generated artifact.";
87
+ }
88
+ function recoverBareHtml(source) {
89
+ const cleaned = cleanArtifactHtml(stripOuterFence(source));
90
+ const doctype = cleaned.search(/<!DOCTYPE html>/i);
91
+ if (doctype !== -1)
92
+ return cleanArtifactHtml(cleaned.slice(doctype));
93
+ const htmlTag = cleaned.search(/<html[\s>]/i);
94
+ if (htmlTag !== -1)
95
+ return cleanArtifactHtml(cleaned.slice(htmlTag));
96
+ return null;
97
+ }
98
+ /**
99
+ * Incremental envelope parser for live streaming. Feed it model-text chunks;
100
+ * it emits message/artifact deltas as they become safe to forward (holding
101
+ * back a small tail so partial delimiters are never emitted as content).
102
+ *
103
+ * The server still re-parses the full output at the end with
104
+ * {@link parseArtifactEnvelope} for the authoritative final artifact, so this
105
+ * parser only needs to be good enough for smooth live updates.
106
+ */
107
+ class StreamingEnvelopeParser {
108
+ buf = "";
109
+ cursor = 0;
110
+ state = "before_message";
111
+ artifactOpened = false;
112
+ feed(chunk) {
113
+ this.buf += chunk;
114
+ return this.process(false);
115
+ }
116
+ flush() {
117
+ return this.process(true);
118
+ }
119
+ get hasOpenedArtifact() {
120
+ return this.artifactOpened;
121
+ }
122
+ safeEnd(isFinal) {
123
+ return isFinal ? this.buf.length : Math.max(this.cursor, this.buf.length - GUARD);
124
+ }
125
+ process(isFinal) {
126
+ const out = [];
127
+ // Guard against unbounded loops.
128
+ for (let guard = 0; guard < 10_000; guard++) {
129
+ if (this.state === "done")
130
+ break;
131
+ if (this.state === "before_message") {
132
+ const iMsg = this.buf.indexOf(MSG_OPEN, this.cursor);
133
+ const iArt = this.buf.indexOf(ART_OPEN, this.cursor);
134
+ const iBare = findBareHtmlStart(this.buf, this.cursor);
135
+ if (iMsg !== -1 && (iArt === -1 || iMsg < iArt)) {
136
+ this.cursor = iMsg + MSG_OPEN.length;
137
+ this.state = "in_message";
138
+ continue;
139
+ }
140
+ if (iArt !== -1) {
141
+ this.state = "before_artifact";
142
+ continue;
143
+ }
144
+ if (iBare !== -1) {
145
+ const prefix = cleanStreamingPrefix(this.buf.slice(this.cursor, iBare));
146
+ if (prefix)
147
+ out.push({ kind: "message", delta: prefix });
148
+ out.push({ kind: "artifact_open", title: "Untitled artifact" });
149
+ this.artifactOpened = true;
150
+ this.cursor = iBare;
151
+ this.state = "in_artifact";
152
+ continue;
153
+ }
154
+ break; // wait for an opener
155
+ }
156
+ if (this.state === "in_message") {
157
+ const iClose = this.buf.indexOf(MSG_CLOSE, this.cursor);
158
+ if (iClose !== -1) {
159
+ if (iClose > this.cursor) {
160
+ out.push({ kind: "message", delta: this.buf.slice(this.cursor, iClose) });
161
+ }
162
+ this.cursor = iClose + MSG_CLOSE.length;
163
+ this.state = "before_artifact";
164
+ continue;
165
+ }
166
+ const end = this.safeEnd(isFinal);
167
+ if (end > this.cursor) {
168
+ out.push({ kind: "message", delta: this.buf.slice(this.cursor, end) });
169
+ this.cursor = end;
170
+ }
171
+ break;
172
+ }
173
+ if (this.state === "before_artifact") {
174
+ const iArt = this.buf.indexOf(ART_OPEN, this.cursor);
175
+ if (iArt === -1)
176
+ break;
177
+ const iGt = this.buf.indexOf(">", iArt);
178
+ if (iGt === -1)
179
+ break; // wait for full open tag
180
+ const title = parseTitle(this.buf.slice(iArt, iGt + 1));
181
+ out.push({ kind: "artifact_open", title });
182
+ this.artifactOpened = true;
183
+ this.cursor = iGt + 1;
184
+ this.state = "in_artifact";
185
+ continue;
186
+ }
187
+ if (this.state === "in_artifact") {
188
+ const iClose = this.buf.indexOf(ART_CLOSE, this.cursor);
189
+ if (iClose !== -1) {
190
+ if (iClose > this.cursor) {
191
+ out.push({ kind: "artifact", delta: this.buf.slice(this.cursor, iClose) });
192
+ }
193
+ this.cursor = iClose + ART_CLOSE.length;
194
+ this.state = "done";
195
+ continue;
196
+ }
197
+ const end = this.safeEnd(isFinal);
198
+ if (end > this.cursor) {
199
+ out.push({ kind: "artifact", delta: this.buf.slice(this.cursor, end) });
200
+ this.cursor = end;
201
+ }
202
+ break;
203
+ }
204
+ }
205
+ return out;
206
+ }
207
+ }
208
+ exports.StreamingEnvelopeParser = StreamingEnvelopeParser;
209
+ function findBareHtmlStart(input, from) {
210
+ const slice = input.slice(from);
211
+ const doctype = slice.search(/<!DOCTYPE html>/i);
212
+ const html = slice.search(/<html[\s>]/i);
213
+ if (doctype === -1)
214
+ return html === -1 ? -1 : from + html;
215
+ if (html === -1)
216
+ return from + doctype;
217
+ return from + Math.min(doctype, html);
218
+ }
219
+ function cleanStreamingPrefix(input) {
220
+ return input
221
+ .replace(/```(?:html)?[ \t]*\r?\n?/gi, "")
222
+ .trim();
223
+ }
224
+ //# sourceMappingURL=artifactEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifactEnvelope.js","sourceRoot":"","sources":["../../src/artifacts/artifactEnvelope.ts"],"names":[],"mappings":"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"}