alchemy 0.62.2 → 0.63.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 (611) hide show
  1. package/bin/alchemy.js +1518 -1204
  2. package/bin/commands/deploy.ts +2 -0
  3. package/bin/commands/dev.ts +2 -0
  4. package/bin/services/execute-alchemy.ts +11 -0
  5. package/bin/services/template-manager.ts +2 -0
  6. package/bin/types.ts +2 -1
  7. package/lib/alchemy.d.ts +6 -22
  8. package/lib/alchemy.d.ts.map +1 -1
  9. package/lib/alchemy.js +65 -169
  10. package/lib/alchemy.js.map +1 -1
  11. package/lib/apply.d.ts +0 -2
  12. package/lib/apply.d.ts.map +1 -1
  13. package/lib/apply.js +2 -16
  14. package/lib/apply.js.map +1 -1
  15. package/lib/aws/account-id.d.ts.map +1 -1
  16. package/lib/aws/account-id.js +3 -2
  17. package/lib/aws/account-id.js.map +1 -1
  18. package/lib/aws/bucket.d.ts +8 -2
  19. package/lib/aws/bucket.d.ts.map +1 -1
  20. package/lib/aws/bucket.js +21 -14
  21. package/lib/aws/bucket.js.map +1 -1
  22. package/lib/aws/ec2/security-group.d.ts +8 -2
  23. package/lib/aws/ec2/security-group.d.ts.map +1 -1
  24. package/lib/aws/ec2/security-group.js +7 -2
  25. package/lib/aws/ec2/security-group.js.map +1 -1
  26. package/lib/aws/function.d.ts +9 -3
  27. package/lib/aws/function.d.ts.map +1 -1
  28. package/lib/aws/function.js +35 -26
  29. package/lib/aws/function.js.map +1 -1
  30. package/lib/aws/policy-attachment.d.ts.map +1 -1
  31. package/lib/aws/policy-attachment.js +2 -1
  32. package/lib/aws/policy-attachment.js.map +1 -1
  33. package/lib/aws/policy.d.ts +8 -2
  34. package/lib/aws/policy.d.ts.map +1 -1
  35. package/lib/aws/policy.js +13 -4
  36. package/lib/aws/policy.js.map +1 -1
  37. package/lib/aws/queue.d.ts +8 -2
  38. package/lib/aws/queue.d.ts.map +1 -1
  39. package/lib/aws/queue.js +22 -14
  40. package/lib/aws/queue.js.map +1 -1
  41. package/lib/aws/role.d.ts +8 -2
  42. package/lib/aws/role.d.ts.map +1 -1
  43. package/lib/aws/role.js +10 -3
  44. package/lib/aws/role.js.map +1 -1
  45. package/lib/aws/ses.d.ts +1 -1
  46. package/lib/aws/ses.d.ts.map +1 -1
  47. package/lib/aws/ses.js +2 -1
  48. package/lib/aws/ses.js.map +1 -1
  49. package/lib/aws/ssm-parameter.d.ts +8 -2
  50. package/lib/aws/ssm-parameter.d.ts.map +1 -1
  51. package/lib/aws/ssm-parameter.js +15 -10
  52. package/lib/aws/ssm-parameter.js.map +1 -1
  53. package/lib/aws/table.d.ts +8 -2
  54. package/lib/aws/table.d.ts.map +1 -1
  55. package/lib/aws/table.js +17 -9
  56. package/lib/aws/table.js.map +1 -1
  57. package/lib/cloudflare/account-api-token.d.ts +2 -2
  58. package/lib/cloudflare/account-api-token.d.ts.map +1 -1
  59. package/lib/cloudflare/account-api-token.js +7 -6
  60. package/lib/cloudflare/account-api-token.js.map +1 -1
  61. package/lib/cloudflare/ai-gateway.d.ts +9 -4
  62. package/lib/cloudflare/ai-gateway.d.ts.map +1 -1
  63. package/lib/cloudflare/ai-gateway.js +20 -24
  64. package/lib/cloudflare/ai-gateway.js.map +1 -1
  65. package/lib/cloudflare/api-schema.d.ts +2 -2
  66. package/lib/cloudflare/api-schema.d.ts.map +1 -1
  67. package/lib/cloudflare/api-schema.js +6 -2
  68. package/lib/cloudflare/api-schema.js.map +1 -1
  69. package/lib/cloudflare/api-shield.d.ts +5 -1
  70. package/lib/cloudflare/api-shield.d.ts.map +1 -1
  71. package/lib/cloudflare/api-shield.js +6 -1
  72. package/lib/cloudflare/api-shield.js.map +1 -1
  73. package/lib/cloudflare/assets.d.ts +1 -1
  74. package/lib/cloudflare/assets.d.ts.map +1 -1
  75. package/lib/cloudflare/astro/astro.d.ts.map +1 -1
  76. package/lib/cloudflare/astro/astro.js +3 -1
  77. package/lib/cloudflare/astro/astro.js.map +1 -1
  78. package/lib/cloudflare/astro/plugin.d.ts +2 -1
  79. package/lib/cloudflare/astro/plugin.d.ts.map +1 -1
  80. package/lib/cloudflare/astro/plugin.js.map +1 -1
  81. package/lib/cloudflare/bindings.d.ts +2 -2
  82. package/lib/cloudflare/bindings.d.ts.map +1 -1
  83. package/lib/cloudflare/bound.d.ts +1 -1
  84. package/lib/cloudflare/bound.d.ts.map +1 -1
  85. package/lib/cloudflare/bucket.d.ts +120 -1
  86. package/lib/cloudflare/bucket.d.ts.map +1 -1
  87. package/lib/cloudflare/bucket.js +80 -2
  88. package/lib/cloudflare/bucket.js.map +1 -1
  89. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  90. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  91. package/lib/cloudflare/container.d.ts +10 -4
  92. package/lib/cloudflare/container.d.ts.map +1 -1
  93. package/lib/cloudflare/container.js +12 -9
  94. package/lib/cloudflare/container.js.map +1 -1
  95. package/lib/cloudflare/custom-domain.js +2 -1
  96. package/lib/cloudflare/custom-domain.js.map +1 -1
  97. package/lib/cloudflare/d1-database.d.ts +1 -1
  98. package/lib/cloudflare/d1-database.d.ts.map +1 -1
  99. package/lib/cloudflare/d1-database.js +7 -3
  100. package/lib/cloudflare/d1-database.js.map +1 -1
  101. package/lib/cloudflare/dispatch-namespace.d.ts +2 -0
  102. package/lib/cloudflare/dispatch-namespace.d.ts.map +1 -1
  103. package/lib/cloudflare/dispatch-namespace.js +7 -5
  104. package/lib/cloudflare/dispatch-namespace.js.map +1 -1
  105. package/lib/cloudflare/hyperdrive.d.ts +7 -1
  106. package/lib/cloudflare/hyperdrive.d.ts.map +1 -1
  107. package/lib/cloudflare/hyperdrive.js +2 -1
  108. package/lib/cloudflare/hyperdrive.js.map +1 -1
  109. package/lib/cloudflare/kv-namespace.d.ts +3 -0
  110. package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
  111. package/lib/cloudflare/kv-namespace.js +11 -2
  112. package/lib/cloudflare/kv-namespace.js.map +1 -1
  113. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +3 -1
  114. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
  115. package/lib/cloudflare/miniflare/paths.d.ts +4 -0
  116. package/lib/cloudflare/miniflare/paths.d.ts.map +1 -1
  117. package/lib/cloudflare/miniflare/paths.js +11 -0
  118. package/lib/cloudflare/miniflare/paths.js.map +1 -1
  119. package/lib/cloudflare/pipeline.d.ts +14 -3
  120. package/lib/cloudflare/pipeline.d.ts.map +1 -1
  121. package/lib/cloudflare/pipeline.js +31 -2
  122. package/lib/cloudflare/pipeline.js.map +1 -1
  123. package/lib/cloudflare/queue-consumer.js +1 -1
  124. package/lib/cloudflare/queue-consumer.js.map +1 -1
  125. package/lib/cloudflare/queue.d.ts +6 -4
  126. package/lib/cloudflare/queue.d.ts.map +1 -1
  127. package/lib/cloudflare/queue.js +13 -9
  128. package/lib/cloudflare/queue.js.map +1 -1
  129. package/lib/cloudflare/react-router/plugin.d.ts +1 -1
  130. package/lib/cloudflare/react-router/plugin.d.ts.map +1 -1
  131. package/lib/cloudflare/react-router/react-router.d.ts.map +1 -1
  132. package/lib/cloudflare/react-router/react-router.js +32 -2
  133. package/lib/cloudflare/react-router/react-router.js.map +1 -1
  134. package/lib/cloudflare/redwood/plugin.d.ts +2 -1
  135. package/lib/cloudflare/redwood/plugin.d.ts.map +1 -1
  136. package/lib/cloudflare/redwood/plugin.js.map +1 -1
  137. package/lib/cloudflare/route.js +1 -1
  138. package/lib/cloudflare/route.js.map +1 -1
  139. package/lib/cloudflare/ruleset.d.ts +3 -1
  140. package/lib/cloudflare/ruleset.d.ts.map +1 -1
  141. package/lib/cloudflare/ruleset.js +3 -2
  142. package/lib/cloudflare/ruleset.js.map +1 -1
  143. package/lib/cloudflare/secret.d.ts +6 -23
  144. package/lib/cloudflare/secret.d.ts.map +1 -1
  145. package/lib/cloudflare/secret.js +8 -4
  146. package/lib/cloudflare/secret.js.map +1 -1
  147. package/lib/cloudflare/secrets-store.d.ts +1 -1
  148. package/lib/cloudflare/secrets-store.d.ts.map +1 -1
  149. package/lib/cloudflare/secrets-store.js +5 -2
  150. package/lib/cloudflare/secrets-store.js.map +1 -1
  151. package/lib/cloudflare/tunnel.d.ts +5 -1
  152. package/lib/cloudflare/tunnel.d.ts.map +1 -1
  153. package/lib/cloudflare/tunnel.js +5 -1
  154. package/lib/cloudflare/tunnel.js.map +1 -1
  155. package/lib/cloudflare/vectorize-index.d.ts +7 -1
  156. package/lib/cloudflare/vectorize-index.d.ts.map +1 -1
  157. package/lib/cloudflare/vectorize-index.js +5 -2
  158. package/lib/cloudflare/vectorize-index.js.map +1 -1
  159. package/lib/cloudflare/vite/plugin.d.ts +2 -1
  160. package/lib/cloudflare/vite/plugin.d.ts.map +1 -1
  161. package/lib/cloudflare/vite/plugin.js.map +1 -1
  162. package/lib/cloudflare/vite/vite.d.ts +1 -1
  163. package/lib/cloudflare/vite/vite.d.ts.map +1 -1
  164. package/lib/cloudflare/vite/vite.js +1 -1
  165. package/lib/cloudflare/vite/vite.js.map +1 -1
  166. package/lib/cloudflare/website.js +1 -1
  167. package/lib/cloudflare/website.js.map +1 -1
  168. package/lib/cloudflare/worker.d.ts +1 -1
  169. package/lib/cloudflare/worker.d.ts.map +1 -1
  170. package/lib/cloudflare/worker.js +12 -7
  171. package/lib/cloudflare/worker.js.map +1 -1
  172. package/lib/cloudflare/wrangler.json.d.ts +1 -1
  173. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  174. package/lib/cloudflare/wrangler.json.js +5 -3
  175. package/lib/cloudflare/wrangler.json.js.map +1 -1
  176. package/lib/docker/container.d.ts +6 -0
  177. package/lib/docker/container.d.ts.map +1 -1
  178. package/lib/docker/container.js +5 -1
  179. package/lib/docker/container.js.map +1 -1
  180. package/lib/docker/network.d.ts +8 -2
  181. package/lib/docker/network.d.ts.map +1 -1
  182. package/lib/docker/network.js +7 -2
  183. package/lib/docker/network.js.map +1 -1
  184. package/lib/docker/volume.d.ts +8 -2
  185. package/lib/docker/volume.d.ts.map +1 -1
  186. package/lib/docker/volume.js +6 -4
  187. package/lib/docker/volume.js.map +1 -1
  188. package/lib/esbuild/bundle.d.ts +1 -1
  189. package/lib/fs/index.d.ts +0 -8
  190. package/lib/fs/index.d.ts.map +1 -1
  191. package/lib/fs/index.js +0 -8
  192. package/lib/fs/index.js.map +1 -1
  193. package/lib/github/client.d.ts +1 -1
  194. package/lib/github/client.d.ts.map +1 -1
  195. package/lib/github/client.js +2 -1
  196. package/lib/github/client.js.map +1 -1
  197. package/lib/github/repository-environment.d.ts +8 -2
  198. package/lib/github/repository-environment.d.ts.map +1 -1
  199. package/lib/github/repository-environment.js +16 -12
  200. package/lib/github/repository-environment.js.map +1 -1
  201. package/lib/neon/project.d.ts +7 -1
  202. package/lib/neon/project.d.ts.map +1 -1
  203. package/lib/neon/project.js +10 -6
  204. package/lib/neon/project.js.map +1 -1
  205. package/lib/planetscale/branch.d.ts +4 -2
  206. package/lib/planetscale/branch.d.ts.map +1 -1
  207. package/lib/planetscale/branch.js +18 -12
  208. package/lib/planetscale/branch.js.map +1 -1
  209. package/lib/planetscale/database.d.ts +8 -2
  210. package/lib/planetscale/database.d.ts.map +1 -1
  211. package/lib/planetscale/database.js +24 -16
  212. package/lib/planetscale/database.js.map +1 -1
  213. package/lib/planetscale/password.d.ts +8 -2
  214. package/lib/planetscale/password.d.ts.map +1 -1
  215. package/lib/planetscale/password.js +2 -2
  216. package/lib/planetscale/password.js.map +1 -1
  217. package/lib/resource.d.ts +0 -2
  218. package/lib/resource.d.ts.map +1 -1
  219. package/lib/resource.js +1 -9
  220. package/lib/resource.js.map +1 -1
  221. package/lib/scope.d.ts +9 -3
  222. package/lib/scope.d.ts.map +1 -1
  223. package/lib/scope.js +21 -34
  224. package/lib/scope.js.map +1 -1
  225. package/lib/sentry/client-key.d.ts +7 -1
  226. package/lib/sentry/client-key.d.ts.map +1 -1
  227. package/lib/sentry/client-key.js +45 -6
  228. package/lib/sentry/client-key.js.map +1 -1
  229. package/lib/sentry/project.d.ts +8 -2
  230. package/lib/sentry/project.d.ts.map +1 -1
  231. package/lib/sentry/project.js +35 -5
  232. package/lib/sentry/project.js.map +1 -1
  233. package/lib/sentry/team.d.ts +8 -2
  234. package/lib/sentry/team.d.ts.map +1 -1
  235. package/lib/sentry/team.js +36 -6
  236. package/lib/sentry/team.js.map +1 -1
  237. package/lib/serde.d.ts +0 -5
  238. package/lib/serde.d.ts.map +1 -1
  239. package/lib/serde.js +0 -28
  240. package/lib/serde.js.map +1 -1
  241. package/lib/state/d1-state-store.d.ts +1 -1
  242. package/lib/state/d1-state-store.d.ts.map +1 -1
  243. package/lib/state/d1-state-store.js +5 -5
  244. package/lib/state/d1-state-store.js.map +1 -1
  245. package/lib/state/sqlite-state-store.d.ts.map +1 -1
  246. package/lib/state/sqlite-state-store.js +7 -11
  247. package/lib/state/sqlite-state-store.js.map +1 -1
  248. package/lib/stripe/card.d.ts.map +1 -1
  249. package/lib/stripe/card.js +3 -2
  250. package/lib/stripe/card.js.map +1 -1
  251. package/lib/stripe/client.d.ts +2 -2
  252. package/lib/stripe/client.d.ts.map +1 -1
  253. package/lib/stripe/client.js +4 -3
  254. package/lib/stripe/client.js.map +1 -1
  255. package/lib/stripe/coupon.d.ts.map +1 -1
  256. package/lib/stripe/coupon.js +4 -3
  257. package/lib/stripe/coupon.js.map +1 -1
  258. package/lib/stripe/customer.js +2 -2
  259. package/lib/stripe/customer.js.map +1 -1
  260. package/lib/stripe/entitlements-feature.d.ts.map +1 -1
  261. package/lib/stripe/entitlements-feature.js +3 -2
  262. package/lib/stripe/entitlements-feature.js.map +1 -1
  263. package/lib/stripe/file.d.ts.map +1 -1
  264. package/lib/stripe/file.js +3 -2
  265. package/lib/stripe/file.js.map +1 -1
  266. package/lib/stripe/meter.js +2 -2
  267. package/lib/stripe/meter.js.map +1 -1
  268. package/lib/stripe/portal-configuration.d.ts.map +1 -1
  269. package/lib/stripe/portal-configuration.js +3 -2
  270. package/lib/stripe/portal-configuration.js.map +1 -1
  271. package/lib/stripe/price.d.ts.map +1 -1
  272. package/lib/stripe/price.js +3 -2
  273. package/lib/stripe/price.js.map +1 -1
  274. package/lib/stripe/product-feature.d.ts.map +1 -1
  275. package/lib/stripe/product-feature.js +3 -2
  276. package/lib/stripe/product-feature.js.map +1 -1
  277. package/lib/stripe/product.d.ts.map +1 -1
  278. package/lib/stripe/product.js +3 -2
  279. package/lib/stripe/product.js.map +1 -1
  280. package/lib/stripe/promotion-code.d.ts.map +1 -1
  281. package/lib/stripe/promotion-code.js +3 -2
  282. package/lib/stripe/promotion-code.js.map +1 -1
  283. package/lib/stripe/shipping-rate.d.ts.map +1 -1
  284. package/lib/stripe/shipping-rate.js +4 -3
  285. package/lib/stripe/shipping-rate.js.map +1 -1
  286. package/lib/stripe/tax-rate.d.ts.map +1 -1
  287. package/lib/stripe/tax-rate.js +3 -2
  288. package/lib/stripe/tax-rate.js.map +1 -1
  289. package/lib/stripe/webhook.d.ts.map +1 -1
  290. package/lib/stripe/webhook.js +4 -3
  291. package/lib/stripe/webhook.js.map +1 -1
  292. package/lib/test/vitest.d.ts.map +1 -1
  293. package/lib/test/vitest.js +1 -0
  294. package/lib/test/vitest.js.map +1 -1
  295. package/lib/upstash/redis.d.ts +8 -2
  296. package/lib/upstash/redis.d.ts.map +1 -1
  297. package/lib/upstash/redis.js +5 -4
  298. package/lib/upstash/redis.js.map +1 -1
  299. package/lib/util/ignore-matcher.d.ts.map +1 -1
  300. package/lib/util/ignore-matcher.js +3 -1
  301. package/lib/util/ignore-matcher.js.map +1 -1
  302. package/lib/util/peer.d.ts +10 -0
  303. package/lib/util/peer.d.ts.map +1 -0
  304. package/lib/util/peer.js +42 -0
  305. package/lib/util/peer.js.map +1 -0
  306. package/lib/util/telemetry/constants.d.ts.map +1 -1
  307. package/lib/util/telemetry/constants.js +2 -2
  308. package/lib/util/telemetry/constants.js.map +1 -1
  309. package/lib/vercel/project.d.ts +7 -1
  310. package/lib/vercel/project.d.ts.map +1 -1
  311. package/lib/vercel/project.js +28 -0
  312. package/lib/vercel/project.js.map +1 -1
  313. package/package.json +88 -74
  314. package/src/alchemy.ts +76 -222
  315. package/src/apply.ts +6 -19
  316. package/src/aws/account-id.ts +6 -3
  317. package/src/aws/bucket.ts +43 -32
  318. package/src/aws/ec2/security-group.ts +15 -3
  319. package/src/aws/function.ts +65 -39
  320. package/src/aws/policy-attachment.ts +10 -6
  321. package/src/aws/policy.ts +33 -15
  322. package/src/aws/queue.ts +50 -29
  323. package/src/aws/role.ts +37 -20
  324. package/src/aws/ses.ts +24 -20
  325. package/src/aws/ssm-parameter.ts +40 -20
  326. package/src/aws/table.ts +35 -17
  327. package/src/cloudflare/account-api-token.ts +9 -7
  328. package/src/cloudflare/ai-gateway.ts +37 -34
  329. package/src/cloudflare/api-schema.ts +33 -26
  330. package/src/cloudflare/api-shield.ts +15 -2
  331. package/src/cloudflare/astro/astro.ts +5 -1
  332. package/src/cloudflare/astro/plugin.ts +2 -1
  333. package/src/cloudflare/bindings.ts +2 -2
  334. package/src/cloudflare/bound.ts +1 -1
  335. package/src/cloudflare/bucket.ts +242 -3
  336. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  337. package/src/cloudflare/container.ts +23 -12
  338. package/src/cloudflare/custom-domain.ts +2 -2
  339. package/src/cloudflare/d1-database.ts +11 -4
  340. package/src/cloudflare/dispatch-namespace.ts +10 -7
  341. package/src/cloudflare/hyperdrive.ts +13 -3
  342. package/src/cloudflare/kv-namespace.ts +25 -2
  343. package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +3 -1
  344. package/src/cloudflare/miniflare/paths.ts +13 -0
  345. package/src/cloudflare/pipeline.ts +76 -28
  346. package/src/cloudflare/queue-consumer.ts +1 -1
  347. package/src/cloudflare/queue.ts +65 -54
  348. package/src/cloudflare/react-router/react-router.ts +28 -2
  349. package/src/cloudflare/redwood/plugin.ts +3 -2
  350. package/src/cloudflare/route.ts +1 -1
  351. package/src/cloudflare/ruleset.ts +7 -2
  352. package/src/cloudflare/secret.ts +20 -31
  353. package/src/cloudflare/secrets-store.ts +7 -3
  354. package/src/cloudflare/tunnel.ts +13 -2
  355. package/src/cloudflare/vectorize-index.ts +14 -3
  356. package/src/cloudflare/vite/plugin.ts +3 -2
  357. package/src/cloudflare/vite/vite.ts +2 -3
  358. package/src/cloudflare/website.ts +1 -1
  359. package/src/cloudflare/worker.ts +35 -23
  360. package/src/cloudflare/wrangler.json.ts +7 -4
  361. package/src/docker/container.ts +13 -1
  362. package/src/docker/network.ts +18 -3
  363. package/src/docker/volume.ts +17 -6
  364. package/src/fs/index.ts +0 -8
  365. package/src/github/client.ts +6 -2
  366. package/src/github/repository-environment.ts +27 -13
  367. package/src/neon/project.ts +20 -6
  368. package/src/planetscale/branch.ts +24 -13
  369. package/src/planetscale/database.ts +38 -17
  370. package/src/planetscale/password.ts +10 -3
  371. package/src/resource.ts +1 -10
  372. package/src/scope.ts +29 -38
  373. package/src/sentry/client-key.ts +74 -6
  374. package/src/sentry/project.ts +59 -6
  375. package/src/sentry/team.ts +55 -7
  376. package/src/serde.ts +0 -44
  377. package/src/state/d1-state-store.ts +13 -6
  378. package/src/state/sqlite-state-store.ts +16 -17
  379. package/src/stripe/card.ts +5 -2
  380. package/src/stripe/client.ts +10 -3
  381. package/src/stripe/coupon.ts +4 -3
  382. package/src/stripe/customer.ts +2 -2
  383. package/src/stripe/entitlements-feature.ts +5 -2
  384. package/src/stripe/file.ts +3 -2
  385. package/src/stripe/meter.ts +2 -2
  386. package/src/stripe/portal-configuration.ts +5 -2
  387. package/src/stripe/price.ts +3 -2
  388. package/src/stripe/product-feature.ts +5 -2
  389. package/src/stripe/product.ts +3 -2
  390. package/src/stripe/promotion-code.ts +3 -2
  391. package/src/stripe/shipping-rate.ts +4 -3
  392. package/src/stripe/tax-rate.ts +3 -2
  393. package/src/stripe/webhook.ts +4 -3
  394. package/src/test/vitest.ts +1 -0
  395. package/src/upstash/redis.ts +15 -5
  396. package/src/util/ignore-matcher.ts +3 -1
  397. package/src/util/peer.ts +53 -0
  398. package/src/util/telemetry/constants.ts +2 -2
  399. package/src/vercel/project.ts +46 -1
  400. package/templates/astro/_gitignore +2 -1
  401. package/templates/hono/README.md +19 -0
  402. package/templates/hono/_env +1 -0
  403. package/templates/hono/_env.example +1 -0
  404. package/templates/hono/_gitignore +34 -0
  405. package/templates/hono/alchemy.run.ts +22 -0
  406. package/templates/hono/package.json +18 -0
  407. package/templates/hono/src/index.ts +17 -0
  408. package/templates/hono/tsconfig.json +13 -0
  409. package/templates/hono/types/env.d.ts +16 -0
  410. package/templates/nuxt/_gitignore +2 -1
  411. package/templates/react-router/_gitignore +1 -0
  412. package/templates/react-router/vite.config.ts +5 -3
  413. package/templates/rwsdk/_gitignore +2 -3
  414. package/templates/sveltekit/_gitignore +2 -1
  415. package/templates/tanstack-start/_gitignore +2 -1
  416. package/templates/typescript/_gitignore +2 -1
  417. package/templates/vite/_gitignore +2 -1
  418. package/workers/cloudflare-state-store.js +69 -74
  419. package/workers/dofs-state-store.js +1 -1
  420. package/bin/bootstrap-s3.ts +0 -255
  421. package/lib/ai/ark.d.ts +0 -12
  422. package/lib/ai/ark.d.ts.map +0 -1
  423. package/lib/ai/ark.js +0 -87
  424. package/lib/ai/ark.js.map +0 -1
  425. package/lib/ai/astro-file.d.ts +0 -138
  426. package/lib/ai/astro-file.d.ts.map +0 -1
  427. package/lib/ai/astro-file.js +0 -158
  428. package/lib/ai/astro-file.js.map +0 -1
  429. package/lib/ai/client.d.ts +0 -51
  430. package/lib/ai/client.d.ts.map +0 -1
  431. package/lib/ai/client.js +0 -58
  432. package/lib/ai/client.js.map +0 -1
  433. package/lib/ai/css-file.d.ts +0 -132
  434. package/lib/ai/css-file.d.ts.map +0 -1
  435. package/lib/ai/css-file.js +0 -142
  436. package/lib/ai/css-file.js.map +0 -1
  437. package/lib/ai/data.d.ts +0 -152
  438. package/lib/ai/data.d.ts.map +0 -1
  439. package/lib/ai/data.js +0 -120
  440. package/lib/ai/data.js.map +0 -1
  441. package/lib/ai/document.d.ts +0 -208
  442. package/lib/ai/document.d.ts.map +0 -1
  443. package/lib/ai/document.js +0 -206
  444. package/lib/ai/document.js.map +0 -1
  445. package/lib/ai/html-file.d.ts +0 -129
  446. package/lib/ai/html-file.d.ts.map +0 -1
  447. package/lib/ai/html-file.js +0 -139
  448. package/lib/ai/html-file.js.map +0 -1
  449. package/lib/ai/index.d.ts +0 -11
  450. package/lib/ai/index.d.ts.map +0 -1
  451. package/lib/ai/index.js +0 -11
  452. package/lib/ai/index.js.map +0 -1
  453. package/lib/ai/json-file.d.ts +0 -161
  454. package/lib/ai/json-file.d.ts.map +0 -1
  455. package/lib/ai/json-file.js +0 -188
  456. package/lib/ai/json-file.js.map +0 -1
  457. package/lib/ai/typescript-file.d.ts +0 -140
  458. package/lib/ai/typescript-file.d.ts.map +0 -1
  459. package/lib/ai/typescript-file.js +0 -146
  460. package/lib/ai/typescript-file.js.map +0 -1
  461. package/lib/ai/vue-file.d.ts +0 -127
  462. package/lib/ai/vue-file.d.ts.map +0 -1
  463. package/lib/ai/vue-file.js +0 -137
  464. package/lib/ai/vue-file.js.map +0 -1
  465. package/lib/ai/yaml-file.d.ts +0 -170
  466. package/lib/ai/yaml-file.d.ts.map +0 -1
  467. package/lib/ai/yaml-file.js +0 -201
  468. package/lib/ai/yaml-file.js.map +0 -1
  469. package/lib/fs/static-astro-file.d.ts +0 -35
  470. package/lib/fs/static-astro-file.d.ts.map +0 -1
  471. package/lib/fs/static-astro-file.js +0 -40
  472. package/lib/fs/static-astro-file.js.map +0 -1
  473. package/lib/fs/static-css-file.d.ts +0 -25
  474. package/lib/fs/static-css-file.d.ts.map +0 -1
  475. package/lib/fs/static-css-file.js +0 -30
  476. package/lib/fs/static-css-file.js.map +0 -1
  477. package/lib/fs/static-html-file.d.ts +0 -32
  478. package/lib/fs/static-html-file.d.ts.map +0 -1
  479. package/lib/fs/static-html-file.js +0 -37
  480. package/lib/fs/static-html-file.js.map +0 -1
  481. package/lib/fs/static-json-file.d.ts +0 -18
  482. package/lib/fs/static-json-file.d.ts.map +0 -1
  483. package/lib/fs/static-json-file.js +0 -19
  484. package/lib/fs/static-json-file.js.map +0 -1
  485. package/lib/fs/static-text-file.d.ts +0 -13
  486. package/lib/fs/static-text-file.d.ts.map +0 -1
  487. package/lib/fs/static-text-file.js +0 -9
  488. package/lib/fs/static-text-file.js.map +0 -1
  489. package/lib/fs/static-typescript-file.d.ts +0 -20
  490. package/lib/fs/static-typescript-file.d.ts.map +0 -1
  491. package/lib/fs/static-typescript-file.js +0 -16
  492. package/lib/fs/static-typescript-file.js.map +0 -1
  493. package/lib/fs/static-vue-file.d.ts +0 -29
  494. package/lib/fs/static-vue-file.d.ts.map +0 -1
  495. package/lib/fs/static-vue-file.js +0 -34
  496. package/lib/fs/static-vue-file.js.map +0 -1
  497. package/lib/fs/static-yaml-file.d.ts +0 -23
  498. package/lib/fs/static-yaml-file.d.ts.map +0 -1
  499. package/lib/fs/static-yaml-file.js +0 -10
  500. package/lib/fs/static-yaml-file.js.map +0 -1
  501. package/lib/internal/docs/providers.d.ts +0 -34
  502. package/lib/internal/docs/providers.d.ts.map +0 -1
  503. package/lib/internal/docs/providers.js +0 -200
  504. package/lib/internal/docs/providers.js.map +0 -1
  505. package/lib/runtime/bind.d.ts +0 -25
  506. package/lib/runtime/bind.d.ts.map +0 -1
  507. package/lib/runtime/bind.js +0 -76
  508. package/lib/runtime/bind.js.map +0 -1
  509. package/lib/runtime/global.d.ts +0 -8
  510. package/lib/runtime/global.d.ts.map +0 -1
  511. package/lib/runtime/global.js +0 -3
  512. package/lib/runtime/global.js.map +0 -1
  513. package/lib/runtime/plugin.d.ts +0 -35
  514. package/lib/runtime/plugin.d.ts.map +0 -1
  515. package/lib/runtime/plugin.js +0 -134
  516. package/lib/runtime/plugin.js.map +0 -1
  517. package/lib/runtime/shims.d.ts +0 -6
  518. package/lib/runtime/shims.d.ts.map +0 -1
  519. package/lib/runtime/shims.js +0 -27
  520. package/lib/runtime/shims.js.map +0 -1
  521. package/lib/runtime/state.d.ts +0 -5
  522. package/lib/runtime/state.d.ts.map +0 -1
  523. package/lib/runtime/state.js +0 -4
  524. package/lib/runtime/state.js.map +0 -1
  525. package/lib/web/astro.d.ts +0 -148
  526. package/lib/web/astro.d.ts.map +0 -1
  527. package/lib/web/astro.js +0 -419
  528. package/lib/web/astro.js.map +0 -1
  529. package/lib/web/shadcn-component.d.ts +0 -30
  530. package/lib/web/shadcn-component.d.ts.map +0 -1
  531. package/lib/web/shadcn-component.js +0 -25
  532. package/lib/web/shadcn-component.js.map +0 -1
  533. package/lib/web/shadcn.d.ts +0 -98
  534. package/lib/web/shadcn.d.ts.map +0 -1
  535. package/lib/web/shadcn.js +0 -102
  536. package/lib/web/shadcn.js.map +0 -1
  537. package/lib/web/tailwind.d.ts +0 -65
  538. package/lib/web/tailwind.d.ts.map +0 -1
  539. package/lib/web/tailwind.js +0 -98
  540. package/lib/web/tailwind.js.map +0 -1
  541. package/lib/web/vite.d.ts +0 -96
  542. package/lib/web/vite.d.ts.map +0 -1
  543. package/lib/web/vite.js +0 -232
  544. package/lib/web/vite.js.map +0 -1
  545. package/lib/web/vitepress/config.d.ts +0 -12
  546. package/lib/web/vitepress/config.d.ts.map +0 -1
  547. package/lib/web/vitepress/config.js +0 -33
  548. package/lib/web/vitepress/config.js.map +0 -1
  549. package/lib/web/vitepress/custom-theme.d.ts +0 -174
  550. package/lib/web/vitepress/custom-theme.d.ts.map +0 -1
  551. package/lib/web/vitepress/custom-theme.js +0 -337
  552. package/lib/web/vitepress/custom-theme.js.map +0 -1
  553. package/lib/web/vitepress/dependencies.d.ts +0 -13
  554. package/lib/web/vitepress/dependencies.d.ts.map +0 -1
  555. package/lib/web/vitepress/dependencies.js +0 -37
  556. package/lib/web/vitepress/dependencies.js.map +0 -1
  557. package/lib/web/vitepress/home-page.d.ts +0 -247
  558. package/lib/web/vitepress/home-page.d.ts.map +0 -1
  559. package/lib/web/vitepress/home-page.js +0 -146
  560. package/lib/web/vitepress/home-page.js.map +0 -1
  561. package/lib/web/vitepress/index.d.ts +0 -6
  562. package/lib/web/vitepress/index.d.ts.map +0 -1
  563. package/lib/web/vitepress/index.js +0 -6
  564. package/lib/web/vitepress/index.js.map +0 -1
  565. package/lib/web/vitepress/process-front-matter-files.d.ts +0 -19
  566. package/lib/web/vitepress/process-front-matter-files.d.ts.map +0 -1
  567. package/lib/web/vitepress/process-front-matter-files.js +0 -73
  568. package/lib/web/vitepress/process-front-matter-files.js.map +0 -1
  569. package/lib/web/vitepress/vitepress.d.ts +0 -75
  570. package/lib/web/vitepress/vitepress.d.ts.map +0 -1
  571. package/lib/web/vitepress/vitepress.js +0 -254
  572. package/lib/web/vitepress/vitepress.js.map +0 -1
  573. package/src/ai/ark.ts +0 -118
  574. package/src/ai/astro-file.ts +0 -270
  575. package/src/ai/client.ts +0 -117
  576. package/src/ai/css-file.ts +0 -247
  577. package/src/ai/data.ts +0 -221
  578. package/src/ai/document.ts +0 -367
  579. package/src/ai/html-file.ts +0 -244
  580. package/src/ai/index.ts +0 -10
  581. package/src/ai/json-file.ts +0 -325
  582. package/src/ai/typescript-file.ts +0 -259
  583. package/src/ai/vue-file.ts +0 -242
  584. package/src/ai/yaml-file.ts +0 -328
  585. package/src/fs/static-astro-file.ts +0 -45
  586. package/src/fs/static-css-file.ts +0 -35
  587. package/src/fs/static-html-file.ts +0 -42
  588. package/src/fs/static-json-file.ts +0 -38
  589. package/src/fs/static-text-file.ts +0 -23
  590. package/src/fs/static-typescript-file.ts +0 -37
  591. package/src/fs/static-vue-file.ts +0 -39
  592. package/src/fs/static-yaml-file.ts +0 -33
  593. package/src/internal/docs/providers.ts +0 -286
  594. package/src/runtime/bind.ts +0 -95
  595. package/src/runtime/global.ts +0 -10
  596. package/src/runtime/plugin.ts +0 -163
  597. package/src/runtime/shims.js +0 -34
  598. package/src/runtime/state.ts +0 -9
  599. package/src/web/astro.ts +0 -643
  600. package/src/web/shadcn-component.ts +0 -72
  601. package/src/web/shadcn.ts +0 -221
  602. package/src/web/tailwind.ts +0 -167
  603. package/src/web/vite.ts +0 -407
  604. package/src/web/vitepress/config.ts +0 -50
  605. package/src/web/vitepress/custom-theme.ts +0 -514
  606. package/src/web/vitepress/dependencies.ts +0 -69
  607. package/src/web/vitepress/home-page.ts +0 -378
  608. package/src/web/vitepress/index.ts +0 -5
  609. package/src/web/vitepress/process-front-matter-files.ts +0 -107
  610. package/src/web/vitepress/vitepress.ts +0 -372
  611. package/templates/sveltekit/bun.lock +0 -1099
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/ai/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,IAAI,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;AAyF5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,EAAE,KAAK,WAEpB,GAAW,EAAE,KAAmB;IAG1D,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,mDAAmD;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAO,EAAE,CAAC,CAAC;IAE9E,kDAAkD;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;QACtC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;QACzB,0DAA0D;QAC1D,6DAA6D;QAC7D,MAAM,EAAE,GAAG,CAAC,MAAM,CAAgB,KAAK,CAAC,MAAM,CAAC;QAC/C,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO;QACrC,MAAM,EACJ,KAAK,CAAC,MAAM;YACZ,oEAAoE;QACtE,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,gEAAgE;gBAChE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;KACxC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG;QACtB,GAAG,QAAQ;QACX;YACE,IAAI,EAAE,WAAoB;YAC1B,OAAO,EAAE,YAAY;SACtB;KACF,CAAC;IAEF,8DAA8D;IAC9D,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,KAAK,CAAC,MAAM;QAClB,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,208 +0,0 @@
1
- import { type CoreMessage } from "ai";
2
- import type { Context } from "../context.ts";
3
- import { StaticTextFile } from "../fs/static-text-file.ts";
4
- import { Resource } from "../resource.ts";
5
- import type { Secret } from "../secret.ts";
6
- import { type ModelConfig } from "./client.ts";
7
- /**
8
- * Properties for creating or updating a Document
9
- */
10
- export interface DocumentProps {
11
- /**
12
- * Title of the document
13
- *
14
- * @default id
15
- */
16
- title?: string;
17
- /**
18
- * Optional path to the markdown document
19
- * If provided, document will be written to this path
20
- */
21
- path?: string;
22
- /**
23
- * Base URL for the OpenAI API
24
- * @default 'https://api.openai.com/v1'
25
- */
26
- baseURL?: string;
27
- /**
28
- * Prompt for generating content
29
- * Use alchemy template literals to include file context:
30
- * @example
31
- * prompt: await alchemy`
32
- * Generate docs using:
33
- * ${alchemy.file("src/api.ts")}
34
- * `
35
- */
36
- prompt?: string;
37
- /**
38
- * Message history for conversation-based generation
39
- * If provided, this will be used instead of the prompt
40
- * @example
41
- * messages: [
42
- * { role: "user", content: "Generate API documentation for this file" },
43
- * { role: "assistant", content: "I'll create detailed API docs. What file should I document?" },
44
- * { role: "user", content: "Please document src/api.ts" }
45
- * ]
46
- */
47
- messages?: CoreMessage[];
48
- /**
49
- * System prompt for the model
50
- * This is used to provide instructions to the model about how to format the response
51
- * The default system prompt instructs the model to return a single markdown document inside ```md fences
52
- * @default "You are a technical documentation writer. Create a single markdown document based on the user's requirements. Your response MUST include only a single markdown document inside ```md fences. Do not include any other text, explanations, or multiple code blocks."
53
- */
54
- system?: string;
55
- /**
56
- * OpenAI API key to use for generating content
57
- * If not provided, will use OPENAI_API_KEY environment variable
58
- */
59
- apiKey?: Secret;
60
- /**
61
- * Model configuration
62
- */
63
- model?: ModelConfig;
64
- /**
65
- * Temperature for controlling randomness in generation.
66
- * Higher values (e.g., 0.8) make output more random,
67
- * lower values (e.g., 0.2) make it more deterministic.
68
- * @default 0.7
69
- */
70
- temperature?: number;
71
- /**
72
- * Maximum number of tokens to generate.
73
- * Higher values allow for longer documents but may increase cost and generation time.
74
- * @default 10000
75
- */
76
- maxTokens?: number;
77
- /**
78
- * Freeze the document after creation (do not re-generate on updates)
79
- * @default false
80
- */
81
- freeze?: boolean;
82
- }
83
- /**
84
- * A markdown document that can be created, updated, and deleted
85
- */
86
- export interface Document extends DocumentProps, Resource<"docs::Document"> {
87
- /**
88
- * The title of the document
89
- */
90
- title: string;
91
- /**
92
- * Content of the document
93
- */
94
- content: string;
95
- /**
96
- * Updated message history with the document response appended
97
- */
98
- messages: CoreMessage[];
99
- /**
100
- * Time at which the document was created
101
- */
102
- createdAt: number;
103
- /**
104
- * Time at which the document was last updated
105
- */
106
- updatedAt: number;
107
- /**
108
- * File resource if path was provided
109
- */
110
- file?: StaticTextFile;
111
- }
112
- /**
113
- * Resource for managing AI-generated markdown documents using the Vercel AI SDK.
114
- * Supports powerful context handling through the alchemy template literal tag.
115
- *
116
- * @example
117
- * // Create an in-memory document (no file created)
118
- * const apiDocs = await Document("api-docs", {
119
- * title: "API Documentation",
120
- * prompt: await alchemy`
121
- * Generate API documentation based on these source files:
122
- * ${alchemy.file("src/api.ts")}
123
- * ${alchemy.file("src/types.ts")}
124
- * `,
125
- * model: {
126
- * id: "gpt-4o",
127
- * provider: "openai"
128
- * }
129
- * });
130
- *
131
- * @example
132
- * // Create a document and write it to disk
133
- * const apiDocs = await Document("api-docs", {
134
- * title: "API Documentation",
135
- * path: "./docs/api.md",
136
- * prompt: await alchemy`
137
- * Generate API documentation based on these source files:
138
- * ${alchemy.file("src/api.ts")}
139
- * ${alchemy.file("src/types.ts")}
140
- * `,
141
- * model: {
142
- * id: "gpt-4o",
143
- * provider: "openai"
144
- * }
145
- * });
146
- *
147
- * @example
148
- * // Use message history for iterative document generation
149
- * const apiDocs = await Document("api-docs", {
150
- * title: "API Documentation",
151
- * path: "./docs/api.md",
152
- * messages: [
153
- * { role: "user", content: "Create API documentation for these files" },
154
- * { role: "assistant", content: "I'll help you create API documentation. Please provide the files." },
155
- * { role: "user", content: "Here are the files: [file contents]" }
156
- * ],
157
- * system: "You are a technical documentation writer. Generate clear and concise API documentation.",
158
- * model: {
159
- * id: "gpt-4o",
160
- * provider: "openai"
161
- * }
162
- * });
163
- *
164
- * @example
165
- * // Use alchemy template literals with file collections and temperature control
166
- * const modelDocs = await Document("models", {
167
- * title: "Data Models",
168
- * path: "./docs/models.md",
169
- * prompt: await alchemy`
170
- * Write documentation for these data models:
171
- * ${alchemy.files("src/models/user.ts", "src/models/post.ts")}
172
- * `,
173
- * temperature: 0.2 // Lower temperature for more deterministic output
174
- * });
175
- *
176
- * @example
177
- * // Advanced model configuration with custom provider options and custom system prompt
178
- * const techDocs = await Document("tech-specs", {
179
- * title: "Technical Specifications",
180
- * path: "./docs/tech-specs.md",
181
- * prompt: await alchemy`
182
- * Create detailed technical specifications based on these requirements:
183
- * ${alchemy.file("requirements/system.md")}
184
- * `,
185
- * system: "You are an expert technical writer specializing in system specifications. Create a single markdown document inside ```md fences with no additional text.",
186
- * model: {
187
- * id: "o3-mini",
188
- * provider: "openai",
189
- * options: {
190
- * reasoningEffort: "high"
191
- * }
192
- * },
193
- * temperature: 0.1
194
- * });
195
- */
196
- export declare const Document: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<Document>, id: string, props: DocumentProps) => Promise<Document>);
197
- /**
198
- * Extracts markdown content from between ```md fences
199
- * Validates that exactly one markdown code block exists
200
- *
201
- * @param text The text to extract markdown content from
202
- * @returns The extracted markdown content or error message
203
- */
204
- export declare function extractMarkdownContent(text: string): {
205
- content: string;
206
- error?: string;
207
- };
208
- //# sourceMappingURL=document.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/ai/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,IAAI,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAmC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,aAAa,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IACzE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,eAAO,MAAM,QAAQ,yFAGX,OAAO,CAAC,QAAQ,CAAC,MACnB,MAAM,SACH,aAAa,KACnB,OAAO,CAAC,QAAQ,CAAC,CAiGrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAgCA"}
@@ -1,206 +0,0 @@
1
- import { generateText } from "ai";
2
- import { StaticTextFile } from "../fs/static-text-file.js";
3
- import { Resource } from "../resource.js";
4
- import { createModel, withRateLimitRetry } from "./client.js";
5
- /**
6
- * Default system prompt for markdown document generation
7
- */
8
- const DEFAULT_MD_SYSTEM_PROMPT = "You are a technical documentation writer. Create a single markdown document based on the user's requirements. Your response MUST include only a single markdown document inside ```md fences. Do not include any other text, explanations, or multiple code blocks.";
9
- /**
10
- * Resource for managing AI-generated markdown documents using the Vercel AI SDK.
11
- * Supports powerful context handling through the alchemy template literal tag.
12
- *
13
- * @example
14
- * // Create an in-memory document (no file created)
15
- * const apiDocs = await Document("api-docs", {
16
- * title: "API Documentation",
17
- * prompt: await alchemy`
18
- * Generate API documentation based on these source files:
19
- * ${alchemy.file("src/api.ts")}
20
- * ${alchemy.file("src/types.ts")}
21
- * `,
22
- * model: {
23
- * id: "gpt-4o",
24
- * provider: "openai"
25
- * }
26
- * });
27
- *
28
- * @example
29
- * // Create a document and write it to disk
30
- * const apiDocs = await Document("api-docs", {
31
- * title: "API Documentation",
32
- * path: "./docs/api.md",
33
- * prompt: await alchemy`
34
- * Generate API documentation based on these source files:
35
- * ${alchemy.file("src/api.ts")}
36
- * ${alchemy.file("src/types.ts")}
37
- * `,
38
- * model: {
39
- * id: "gpt-4o",
40
- * provider: "openai"
41
- * }
42
- * });
43
- *
44
- * @example
45
- * // Use message history for iterative document generation
46
- * const apiDocs = await Document("api-docs", {
47
- * title: "API Documentation",
48
- * path: "./docs/api.md",
49
- * messages: [
50
- * { role: "user", content: "Create API documentation for these files" },
51
- * { role: "assistant", content: "I'll help you create API documentation. Please provide the files." },
52
- * { role: "user", content: "Here are the files: [file contents]" }
53
- * ],
54
- * system: "You are a technical documentation writer. Generate clear and concise API documentation.",
55
- * model: {
56
- * id: "gpt-4o",
57
- * provider: "openai"
58
- * }
59
- * });
60
- *
61
- * @example
62
- * // Use alchemy template literals with file collections and temperature control
63
- * const modelDocs = await Document("models", {
64
- * title: "Data Models",
65
- * path: "./docs/models.md",
66
- * prompt: await alchemy`
67
- * Write documentation for these data models:
68
- * ${alchemy.files("src/models/user.ts", "src/models/post.ts")}
69
- * `,
70
- * temperature: 0.2 // Lower temperature for more deterministic output
71
- * });
72
- *
73
- * @example
74
- * // Advanced model configuration with custom provider options and custom system prompt
75
- * const techDocs = await Document("tech-specs", {
76
- * title: "Technical Specifications",
77
- * path: "./docs/tech-specs.md",
78
- * prompt: await alchemy`
79
- * Create detailed technical specifications based on these requirements:
80
- * ${alchemy.file("requirements/system.md")}
81
- * `,
82
- * system: "You are an expert technical writer specializing in system specifications. Create a single markdown document inside ```md fences with no additional text.",
83
- * model: {
84
- * id: "o3-mini",
85
- * provider: "openai",
86
- * options: {
87
- * reasoningEffort: "high"
88
- * }
89
- * },
90
- * temperature: 0.1
91
- * });
92
- */
93
- export const Document = Resource("docs::Document", async function (id, props) {
94
- // Validate that either prompt or messages are provided
95
- if (!props.prompt && !props.messages) {
96
- throw new Error("Either prompt or messages must be provided");
97
- }
98
- // Handle deletion phase
99
- if (this.phase === "delete") {
100
- return this.destroy();
101
- }
102
- if (this.phase === "update" && props.freeze) {
103
- if (props.path) {
104
- const filePath = props.path;
105
- const fileId = `${id}-file`;
106
- await StaticTextFile(fileId, filePath, this.output.content);
107
- }
108
- return this(this.output);
109
- }
110
- // Use provided system prompt or default
111
- const system = props.system || DEFAULT_MD_SYSTEM_PROMPT;
112
- // Generate initial content with rate limit retry
113
- const { text } = await withRateLimitRetry(async () => {
114
- return generateText({
115
- model: createModel(props),
116
- ...(props.messages
117
- ? { messages: props.messages }
118
- : { prompt: props.prompt }),
119
- system,
120
- maxTokens: props.maxTokens || 8192,
121
- providerOptions: props.model?.options,
122
- ...(props.temperature === undefined
123
- ? {}
124
- : // some models error if you provide it (rather than ignoring it)
125
- { temperature: props.temperature }),
126
- });
127
- });
128
- // Extract and validate markdown content
129
- let { content, error } = extractMarkdownContent(text);
130
- // Re-prompt if there are validation errors
131
- if (error) {
132
- const errorSystem = `${system}\n\nERROR: ${error}\n\nPlease try again and ensure your response contains exactly one markdown document inside \`\`\`md fences.`;
133
- const { text: retryText } = await withRateLimitRetry(async () => {
134
- return generateText({
135
- model: createModel(props),
136
- ...(props.messages
137
- ? { messages: props.messages }
138
- : { prompt: props.prompt }),
139
- system: errorSystem,
140
- providerOptions: props.model?.options,
141
- ...(props.temperature === undefined
142
- ? {}
143
- : { temperature: props.temperature }),
144
- });
145
- });
146
- const retryResult = extractMarkdownContent(retryText);
147
- if (retryResult.error) {
148
- throw new Error(`Failed to generate valid markdown content: ${retryResult.error}\n${retryText}`);
149
- }
150
- content = retryResult.content;
151
- }
152
- // Create result object
153
- const result = {
154
- ...props,
155
- content,
156
- messages: [
157
- ...(props.messages || [{ role: "user", content: props.prompt }]),
158
- { role: "assistant", content },
159
- ],
160
- createdAt: this.output?.createdAt || Date.now(),
161
- updatedAt: Date.now(),
162
- title: props.title || id,
163
- };
164
- // Write file if path is provided
165
- if (props.path) {
166
- const filePath = props.path;
167
- const fileId = `${id}-file`;
168
- result.file = await StaticTextFile(fileId, filePath, content);
169
- }
170
- // Return the resource
171
- return this(result);
172
- });
173
- /**
174
- * Extracts markdown content from between ```md fences
175
- * Validates that exactly one markdown code block exists
176
- *
177
- * @param text The text to extract markdown content from
178
- * @returns The extracted markdown content or error message
179
- */
180
- export function extractMarkdownContent(text) {
181
- const lines = text.split("\n");
182
- const startIdx = lines.findIndex((line) => line.trim() === "```md");
183
- if (startIdx === -1) {
184
- return {
185
- content: "",
186
- error: "No markdown code block found in the response. Please include your markdown content within ```md fences.",
187
- };
188
- }
189
- const rest = lines.slice(startIdx + 1);
190
- const endRelativeIdx = rest
191
- .map((line) => line.trim() === "```")
192
- .lastIndexOf(true);
193
- if (endRelativeIdx === -1) {
194
- return {
195
- content: "",
196
- error: "Markdown block was not closed properly.",
197
- };
198
- }
199
- const endIdx = startIdx + 1 + endRelativeIdx;
200
- const content = lines
201
- .slice(startIdx + 1, endIdx)
202
- .join("\n")
203
- .trim();
204
- return { content };
205
- }
206
- //# sourceMappingURL=document.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/ai/document.ts"],"names":[],"mappings":"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"}
@@ -1,129 +0,0 @@
1
- import type { Context } from "../context.ts";
2
- import { Resource } from "../resource.ts";
3
- import type { Secret } from "../secret.ts";
4
- import { type ModelConfig } from "./client.ts";
5
- /**
6
- * Properties for creating or updating an HTMLFile
7
- */
8
- export interface HTMLFileProps {
9
- /**
10
- * Path to the HTML file
11
- */
12
- path: string;
13
- /**
14
- * Base URL for the OpenAI API
15
- * @default 'https://api.openai.com/v1'
16
- */
17
- baseURL?: string;
18
- /**
19
- * Prompt for generating content
20
- * Use alchemy template literals to include file context:
21
- * @example
22
- * prompt: await alchemy`
23
- * Generate an HTML page using:
24
- * ${alchemy.file("src/templates/base.html")}
25
- * `
26
- */
27
- prompt: string;
28
- /**
29
- * System prompt for the model
30
- * This is used to provide instructions to the model about how to format the response
31
- * The default system prompt instructs the model to return HTML code inside ```html fences
32
- * @default "You are an HTML code generator. Create HTML code based on the user's requirements. Your response MUST include only HTML code inside ```html fences. Do not include any other text, explanations, or multiple code blocks."
33
- */
34
- system?: string;
35
- /**
36
- * OpenAI API key to use for generating content
37
- * If not provided, will use OPENAI_API_KEY environment variable
38
- */
39
- apiKey?: Secret;
40
- /**
41
- * Model configuration
42
- */
43
- model?: ModelConfig;
44
- /**
45
- * Temperature for controlling randomness in generation.
46
- * Higher values (e.g., 0.8) make output more random,
47
- * lower values (e.g., 0.2) make it more deterministic.
48
- * @default 0.7
49
- */
50
- temperature?: number;
51
- }
52
- /**
53
- * An HTML file that can be created, updated, and deleted
54
- */
55
- export interface HTMLFile extends HTMLFileProps, Resource<"ai::HTMLFile"> {
56
- /**
57
- * Content of the HTML file
58
- */
59
- content: string;
60
- /**
61
- * Time at which the file was created
62
- */
63
- createdAt: number;
64
- /**
65
- * Time at which the file was last updated
66
- */
67
- updatedAt: number;
68
- }
69
- /**
70
- * Resource for generating HTML files using AI models.
71
- * Extracts HTML code from between ```html fences and validates the response.
72
- *
73
- * @example
74
- * // Create a simple landing page
75
- * const landingPage = await HTMLFile("landing-page", {
76
- * path: "./public/index.html",
77
- * prompt: await alchemy`
78
- * Generate a modern landing page for a SaaS product with:
79
- * - Hero section with headline and call-to-action
80
- * - Features section with 3 key features
81
- * - Pricing section with 3 tiers
82
- * - Testimonials section with 2 customer quotes
83
- * - Contact form and footer
84
- * `,
85
- * model: {
86
- * id: "gpt-4o",
87
- * provider: "openai"
88
- * }
89
- * });
90
- *
91
- * @example
92
- * // Generate an HTML email template
93
- * const emailTemplate = await HTMLFile("welcome-email", {
94
- * path: "./emails/welcome.html",
95
- * prompt: await alchemy`
96
- * Create an HTML email template for welcoming new users to our platform.
97
- * The email should include:
98
- * - Company logo and branding
99
- * - Personalized welcome message (use {{name}} placeholder)
100
- * - Three steps to get started
101
- * - Support contact information
102
- * - Unsubscribe footer
103
- *
104
- * Make sure it's responsive and works in all major email clients.
105
- * `,
106
- * temperature: 0.2
107
- * });
108
- *
109
- * @example
110
- * // Generate an HTML component with custom system prompt
111
- * const navComponent = await HTMLFile("navigation", {
112
- * path: "./components/nav.html",
113
- * prompt: await alchemy`
114
- * Create a responsive navigation component with:
115
- * - Logo in the left corner
116
- * - Navigation links: Home, Products, Services, About, Contact
117
- * - Mobile hamburger menu that expands/collapses
118
- * - Login/signup buttons on the right side
119
- * - Dark/light mode toggle
120
- * `,
121
- * system: "You are an expert HTML/CSS developer specializing in responsive components. Create a single HTML file inside ```html fences with no additional text. Use modern HTML5 semantic elements and inline CSS if needed.",
122
- * model: {
123
- * id: "claude-3-opus-20240229",
124
- * provider: "anthropic"
125
- * }
126
- * });
127
- */
128
- export declare const HTMLFile: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<HTMLFile>, _id: string, props: HTMLFileProps) => Promise<HTMLFile>);
129
- //# sourceMappingURL=html-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-file.d.ts","sourceRoot":"","sources":["../../src/ai/html-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,aAAa,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC;IACvE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,QAAQ,yFAGX,OAAO,CAAC,QAAQ,CAAC,OAClB,MAAM,SACJ,aAAa,KACnB,OAAO,CAAC,QAAQ,CAAC,CA2DrB,CAAC"}