alchemy 0.1.10 → 0.1.12

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 (277) hide show
  1. package/README.md +324 -0
  2. package/lib/apply.d.ts +2 -2
  3. package/lib/apply.d.ts.map +1 -1
  4. package/lib/apply.js +2 -2
  5. package/lib/apply.js.map +1 -1
  6. package/lib/aws/index.d.ts +1 -0
  7. package/lib/aws/index.d.ts.map +1 -1
  8. package/lib/aws/index.js +1 -0
  9. package/lib/aws/index.js.map +1 -1
  10. package/lib/aws/ses.d.ts +75 -0
  11. package/lib/aws/ses.d.ts.map +1 -0
  12. package/lib/aws/ses.js +197 -0
  13. package/lib/aws/ses.js.map +1 -0
  14. package/lib/cloudflare/api.d.ts +84 -0
  15. package/lib/cloudflare/api.d.ts.map +1 -0
  16. package/lib/cloudflare/api.js +178 -0
  17. package/lib/cloudflare/api.js.map +1 -0
  18. package/lib/cloudflare/asset-manifest.d.ts +15 -0
  19. package/lib/cloudflare/asset-manifest.d.ts.map +1 -0
  20. package/lib/cloudflare/asset-manifest.js +2 -0
  21. package/lib/cloudflare/asset-manifest.js.map +1 -0
  22. package/lib/cloudflare/auth.d.ts +52 -0
  23. package/lib/cloudflare/auth.d.ts.map +1 -0
  24. package/lib/cloudflare/auth.js +114 -0
  25. package/lib/cloudflare/auth.js.map +1 -0
  26. package/lib/cloudflare/bindings.d.ts +244 -0
  27. package/lib/cloudflare/bindings.d.ts.map +1 -0
  28. package/lib/cloudflare/bindings.js +7 -0
  29. package/lib/cloudflare/bindings.js.map +1 -0
  30. package/lib/cloudflare/generate-asset-manifest.d.ts +3 -0
  31. package/lib/cloudflare/generate-asset-manifest.d.ts.map +1 -0
  32. package/lib/cloudflare/generate-asset-manifest.js +69 -0
  33. package/lib/cloudflare/generate-asset-manifest.js.map +1 -0
  34. package/lib/cloudflare/index.d.ts +6 -0
  35. package/lib/cloudflare/index.d.ts.map +1 -0
  36. package/lib/cloudflare/index.js +6 -0
  37. package/lib/cloudflare/index.js.map +1 -0
  38. package/lib/cloudflare/kv-namespace.d.ts +61 -0
  39. package/lib/cloudflare/kv-namespace.d.ts.map +1 -0
  40. package/lib/cloudflare/kv-namespace.js +93 -0
  41. package/lib/cloudflare/kv-namespace.js.map +1 -0
  42. package/lib/cloudflare/state.d.ts +83 -0
  43. package/lib/cloudflare/state.d.ts.map +1 -0
  44. package/lib/cloudflare/state.js +109 -0
  45. package/lib/cloudflare/state.js.map +1 -0
  46. package/lib/cloudflare/static-site-router.d.ts +10 -0
  47. package/lib/cloudflare/static-site-router.d.ts.map +1 -0
  48. package/lib/cloudflare/static-site-router.js +88 -0
  49. package/lib/cloudflare/static-site-router.js.map +1 -0
  50. package/lib/cloudflare/static-site.d.ts +166 -0
  51. package/lib/cloudflare/static-site.d.ts.map +1 -0
  52. package/lib/cloudflare/static-site.js +152 -0
  53. package/lib/cloudflare/static-site.js.map +1 -0
  54. package/lib/cloudflare/types.d.ts +52 -0
  55. package/lib/cloudflare/types.d.ts.map +1 -0
  56. package/lib/cloudflare/types.js +21 -0
  57. package/lib/cloudflare/types.js.map +1 -0
  58. package/lib/cloudflare/upload-asset-manifest.d.ts +12 -0
  59. package/lib/cloudflare/upload-asset-manifest.d.ts.map +1 -0
  60. package/lib/cloudflare/upload-asset-manifest.js +55 -0
  61. package/lib/cloudflare/upload-asset-manifest.js.map +1 -0
  62. package/lib/cloudflare/worker.d.ts +87 -0
  63. package/lib/cloudflare/worker.d.ts.map +1 -0
  64. package/lib/cloudflare/worker.js +364 -0
  65. package/lib/cloudflare/worker.js.map +1 -0
  66. package/lib/esbuild.d.ts +82 -0
  67. package/lib/esbuild.d.ts.map +1 -1
  68. package/lib/esbuild.js +24 -17
  69. package/lib/esbuild.js.map +1 -1
  70. package/lib/fs.d.ts +1 -1
  71. package/lib/global.d.ts.map +1 -1
  72. package/lib/global.js +3 -1
  73. package/lib/global.js.map +1 -1
  74. package/lib/index.d.ts +0 -1
  75. package/lib/index.d.ts.map +1 -1
  76. package/lib/index.js +0 -1
  77. package/lib/index.js.map +1 -1
  78. package/lib/main.js +1 -1
  79. package/lib/main.js.map +1 -1
  80. package/lib/output.d.ts +17 -13
  81. package/lib/output.d.ts.map +1 -1
  82. package/lib/output.js +2 -2
  83. package/lib/output.js.map +1 -1
  84. package/lib/resource.d.ts +3 -2
  85. package/lib/resource.d.ts.map +1 -1
  86. package/lib/resource.js +2 -2
  87. package/lib/resource.js.map +1 -1
  88. package/lib/utils/content-type.d.ts +8 -0
  89. package/lib/utils/content-type.d.ts.map +1 -0
  90. package/lib/utils/content-type.js +41 -0
  91. package/lib/utils/content-type.js.map +1 -0
  92. package/package.json +27 -8
  93. package/src/apply.ts +5 -5
  94. package/src/aws/index.ts +1 -0
  95. package/src/aws/ses.ts +346 -0
  96. package/src/cloudflare/api.ts +276 -0
  97. package/src/cloudflare/asset-manifest.ts +16 -0
  98. package/src/cloudflare/auth.ts +187 -0
  99. package/src/cloudflare/bindings.ts +286 -0
  100. package/src/cloudflare/generate-asset-manifest.ts +93 -0
  101. package/src/cloudflare/index.ts +5 -0
  102. package/src/cloudflare/kv-namespace.ts +195 -0
  103. package/src/cloudflare/state.ts +138 -0
  104. package/src/cloudflare/static-site-router.ts +108 -0
  105. package/src/cloudflare/static-site.ts +379 -0
  106. package/src/cloudflare/types.ts +71 -0
  107. package/src/cloudflare/upload-asset-manifest.ts +83 -0
  108. package/src/cloudflare/worker.ts +568 -0
  109. package/src/esbuild.ts +31 -22
  110. package/src/global.ts +1 -0
  111. package/src/index.ts +0 -1
  112. package/src/main.ts +1 -1
  113. package/src/output.ts +32 -32
  114. package/src/resource.ts +11 -5
  115. package/src/utils/content-type.ts +42 -0
  116. package/lib/$.d.ts +0 -7
  117. package/lib/$.d.ts.map +0 -1
  118. package/lib/$.js +0 -31
  119. package/lib/$.js.map +0 -1
  120. package/lib/agent/ai.d.ts +0 -40
  121. package/lib/agent/ai.d.ts.map +0 -1
  122. package/lib/agent/ai.js +0 -132
  123. package/lib/agent/ai.js.map +0 -1
  124. package/lib/agent/anthropic.d.ts +0 -9
  125. package/lib/agent/anthropic.d.ts.map +0 -1
  126. package/lib/agent/anthropic.js +0 -25
  127. package/lib/agent/anthropic.js.map +0 -1
  128. package/lib/agent/dependencies.d.ts +0 -4
  129. package/lib/agent/dependencies.d.ts.map +0 -1
  130. package/lib/agent/dependencies.js +0 -48
  131. package/lib/agent/dependencies.js.map +0 -1
  132. package/lib/agent/file-context.d.ts +0 -13
  133. package/lib/agent/file-context.d.ts.map +0 -1
  134. package/lib/agent/file-context.js +0 -6
  135. package/lib/agent/file-context.js.map +0 -1
  136. package/lib/agent/index.d.ts +0 -10
  137. package/lib/agent/index.d.ts.map +0 -1
  138. package/lib/agent/index.js +0 -10
  139. package/lib/agent/index.js.map +0 -1
  140. package/lib/agent/model.d.ts +0 -8
  141. package/lib/agent/model.d.ts.map +0 -1
  142. package/lib/agent/model.js +0 -29
  143. package/lib/agent/model.js.map +0 -1
  144. package/lib/agent/module.d.ts +0 -81
  145. package/lib/agent/module.d.ts.map +0 -1
  146. package/lib/agent/module.js +0 -309
  147. package/lib/agent/module.js.map +0 -1
  148. package/lib/agent/openai.d.ts +0 -6
  149. package/lib/agent/openai.d.ts.map +0 -1
  150. package/lib/agent/openai.js +0 -41
  151. package/lib/agent/openai.js.map +0 -1
  152. package/lib/agent/program.d.ts +0 -12
  153. package/lib/agent/program.d.ts.map +0 -1
  154. package/lib/agent/program.js +0 -21
  155. package/lib/agent/program.js.map +0 -1
  156. package/lib/agent/prompts.d.ts +0 -4
  157. package/lib/agent/prompts.d.ts.map +0 -1
  158. package/lib/agent/prompts.js +0 -11
  159. package/lib/agent/prompts.js.map +0 -1
  160. package/lib/agent/scrape.d.ts +0 -71
  161. package/lib/agent/scrape.d.ts.map +0 -1
  162. package/lib/agent/scrape.js +0 -45
  163. package/lib/agent/scrape.js.map +0 -1
  164. package/lib/aws/auto/docs.d.ts +0 -11
  165. package/lib/aws/auto/docs.d.ts.map +0 -1
  166. package/lib/aws/auto/docs.js +0 -56
  167. package/lib/aws/auto/docs.js.map +0 -1
  168. package/lib/aws/auto/index.d.ts +0 -5
  169. package/lib/aws/auto/index.d.ts.map +0 -1
  170. package/lib/aws/auto/index.js +0 -5
  171. package/lib/aws/auto/index.js.map +0 -1
  172. package/lib/aws/auto/resource.d.ts +0 -24
  173. package/lib/aws/auto/resource.d.ts.map +0 -1
  174. package/lib/aws/auto/resource.js +0 -194
  175. package/lib/aws/auto/resource.js.map +0 -1
  176. package/lib/aws/auto/service.d.ts +0 -10
  177. package/lib/aws/auto/service.d.ts.map +0 -1
  178. package/lib/aws/auto/service.js +0 -34
  179. package/lib/aws/auto/service.js.map +0 -1
  180. package/lib/aws/auto/spec.d.ts +0 -83
  181. package/lib/aws/auto/spec.d.ts.map +0 -1
  182. package/lib/aws/auto/spec.js +0 -58
  183. package/lib/aws/auto/spec.js.map +0 -1
  184. package/lib/markdown/design.d.ts +0 -17
  185. package/lib/markdown/design.d.ts.map +0 -1
  186. package/lib/markdown/design.js +0 -92
  187. package/lib/markdown/design.js.map +0 -1
  188. package/lib/markdown/extract.d.ts +0 -7
  189. package/lib/markdown/extract.d.ts.map +0 -1
  190. package/lib/markdown/extract.js +0 -10
  191. package/lib/markdown/extract.js.map +0 -1
  192. package/lib/markdown/index.d.ts +0 -4
  193. package/lib/markdown/index.d.ts.map +0 -1
  194. package/lib/markdown/index.js +0 -4
  195. package/lib/markdown/index.js.map +0 -1
  196. package/lib/markdown/requirements.d.ts +0 -79
  197. package/lib/markdown/requirements.d.ts.map +0 -1
  198. package/lib/markdown/requirements.js +0 -105
  199. package/lib/markdown/requirements.js.map +0 -1
  200. package/lib/typescript/check-omission.d.ts +0 -2
  201. package/lib/typescript/check-omission.d.ts.map +0 -1
  202. package/lib/typescript/check-omission.js +0 -43
  203. package/lib/typescript/check-omission.js.map +0 -1
  204. package/lib/typescript/debug-type-errors.d.ts +0 -3
  205. package/lib/typescript/debug-type-errors.d.ts.map +0 -1
  206. package/lib/typescript/debug-type-errors.js +0 -35
  207. package/lib/typescript/debug-type-errors.js.map +0 -1
  208. package/lib/typescript/extract.d.ts +0 -7
  209. package/lib/typescript/extract.d.ts.map +0 -1
  210. package/lib/typescript/extract.js +0 -10
  211. package/lib/typescript/extract.js.map +0 -1
  212. package/lib/typescript/index.d.ts +0 -7
  213. package/lib/typescript/index.d.ts.map +0 -1
  214. package/lib/typescript/index.js +0 -7
  215. package/lib/typescript/index.js.map +0 -1
  216. package/lib/typescript/install-dependencies.d.ts +0 -29
  217. package/lib/typescript/install-dependencies.d.ts.map +0 -1
  218. package/lib/typescript/install-dependencies.js +0 -52
  219. package/lib/typescript/install-dependencies.js.map +0 -1
  220. package/lib/typescript/package.d.ts +0 -157
  221. package/lib/typescript/package.d.ts.map +0 -1
  222. package/lib/typescript/package.js +0 -115
  223. package/lib/typescript/package.js.map +0 -1
  224. package/lib/typescript/repair-omissions.d.ts +0 -3
  225. package/lib/typescript/repair-omissions.d.ts.map +0 -1
  226. package/lib/typescript/repair-omissions.js +0 -23
  227. package/lib/typescript/repair-omissions.js.map +0 -1
  228. package/lib/typescript/repair.d.ts +0 -3
  229. package/lib/typescript/repair.d.ts.map +0 -1
  230. package/lib/typescript/repair.js +0 -34
  231. package/lib/typescript/repair.js.map +0 -1
  232. package/lib/typescript/tsconfig.d.ts +0 -469
  233. package/lib/typescript/tsconfig.d.ts.map +0 -1
  234. package/lib/typescript/tsconfig.js +0 -143
  235. package/lib/typescript/tsconfig.js.map +0 -1
  236. package/lib/typescript/typescript.d.ts +0 -107
  237. package/lib/typescript/typescript.d.ts.map +0 -1
  238. package/lib/typescript/typescript.js +0 -180
  239. package/lib/typescript/typescript.js.map +0 -1
  240. package/lib/typescript/validate.d.ts +0 -10
  241. package/lib/typescript/validate.d.ts.map +0 -1
  242. package/lib/typescript/validate.js +0 -49
  243. package/lib/typescript/validate.js.map +0 -1
  244. package/src/$.ts +0 -36
  245. package/src/agent/ai.ts +0 -215
  246. package/src/agent/anthropic.ts +0 -31
  247. package/src/agent/dependencies.ts +0 -62
  248. package/src/agent/file-context.ts +0 -8
  249. package/src/agent/index.ts +0 -9
  250. package/src/agent/model.ts +0 -39
  251. package/src/agent/module.ts +0 -418
  252. package/src/agent/openai.ts +0 -50
  253. package/src/agent/program.md +0 -38
  254. package/src/agent/program.ts +0 -37
  255. package/src/agent/prompts.ts +0 -20
  256. package/src/agent/scrape.ts +0 -47
  257. package/src/aws/auto/cfn.json +0 -225310
  258. package/src/aws/auto/docs.ts +0 -73
  259. package/src/aws/auto/index.ts +0 -4
  260. package/src/aws/auto/resource.ts +0 -269
  261. package/src/aws/auto/service.ts +0 -51
  262. package/src/aws/auto/spec.ts +0 -160
  263. package/src/markdown/design.ts +0 -125
  264. package/src/markdown/extract.ts +0 -9
  265. package/src/markdown/index.ts +0 -3
  266. package/src/markdown/requirements.ts +0 -135
  267. package/src/typescript/check-omission.ts +0 -47
  268. package/src/typescript/debug-type-errors.ts +0 -42
  269. package/src/typescript/extract.ts +0 -9
  270. package/src/typescript/index.ts +0 -6
  271. package/src/typescript/install-dependencies.ts +0 -61
  272. package/src/typescript/package.ts +0 -143
  273. package/src/typescript/repair-omissions.ts +0 -31
  274. package/src/typescript/repair.ts +0 -45
  275. package/src/typescript/tsconfig.ts +0 -170
  276. package/src/typescript/typescript.ts +0 -217
  277. package/src/typescript/validate.ts +0 -73
@@ -1,81 +0,0 @@
1
- import { z } from "zod";
2
- import { Folder } from "../fs";
3
- import { TypeScriptFile } from "../typescript";
4
- import type { PackageJson } from "../typescript/package";
5
- import type { TypeScriptConfig } from "../typescript/tsconfig";
6
- import type { FileContext } from "./file-context";
7
- import { type ModelId } from "./model";
8
- export type CreatePlan = z.infer<typeof CreatePlan>;
9
- export declare const CreatePlan: z.ZodObject<{
10
- files: z.ZodRecord<z.ZodString, z.ZodObject<{
11
- type: z.ZodEnum<["folder", "design", "typescript", "css", "scss", "javascript", "html"]>;
12
- upstream: z.ZodArray<z.ZodString, "many">;
13
- operation: z.ZodEnum<["create"]>;
14
- }, "strip", z.ZodTypeAny, {
15
- type: "design" | "folder" | "typescript" | "css" | "scss" | "javascript" | "html";
16
- upstream: string[];
17
- operation: "create";
18
- }, {
19
- type: "design" | "folder" | "typescript" | "css" | "scss" | "javascript" | "html";
20
- upstream: string[];
21
- operation: "create";
22
- }>>;
23
- }, "strip", z.ZodTypeAny, {
24
- files: Record<string, {
25
- type: "design" | "folder" | "typescript" | "css" | "scss" | "javascript" | "html";
26
- upstream: string[];
27
- operation: "create";
28
- }>;
29
- }, {
30
- files: Record<string, {
31
- type: "design" | "folder" | "typescript" | "css" | "scss" | "javascript" | "html";
32
- upstream: string[];
33
- operation: "create";
34
- }>;
35
- }>;
36
- export type UpdatePlan = z.infer<typeof UpdatePlan>;
37
- export declare const UpdatePlan: z.ZodObject<{
38
- files: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
39
- type: z.ZodEnum<["folder", "design", "typescript", "css", "scss", "javascript", "html"]>;
40
- upstream: z.ZodArray<z.ZodString, "many">;
41
- operation: z.ZodEnum<["create", "update"]>;
42
- }, "strip", z.ZodTypeAny, {
43
- type: "design" | "folder" | "typescript" | "css" | "scss" | "javascript" | "html";
44
- upstream: string[];
45
- operation: "create" | "update";
46
- }, {
47
- type: "design" | "folder" | "typescript" | "css" | "scss" | "javascript" | "html";
48
- upstream: string[];
49
- operation: "create" | "update";
50
- }>, z.ZodEnum<["delete", "noop"]>]>>;
51
- }, "strip", z.ZodTypeAny, {
52
- files: Record<string, "delete" | {
53
- type: "design" | "folder" | "typescript" | "css" | "scss" | "javascript" | "html";
54
- upstream: string[];
55
- operation: "create" | "update";
56
- } | "noop">;
57
- }, {
58
- files: Record<string, "delete" | {
59
- type: "design" | "folder" | "typescript" | "css" | "scss" | "javascript" | "html";
60
- upstream: string[];
61
- operation: "create" | "update";
62
- } | "noop">;
63
- }>;
64
- type OutputFile = TypeScriptFile | PackageJson | TypeScriptConfig | Folder | Module;
65
- export interface ModuleOutput {
66
- path: string;
67
- content: string;
68
- plan: CreatePlan | UpdatePlan;
69
- files: Record<string, OutputFile>;
70
- }
71
- export interface ModuleInput {
72
- path: string;
73
- content: string;
74
- model?: ModelId;
75
- dependencies?: FileContext[];
76
- }
77
- declare const Module_base: import("../resource").Provider<"Module", [props: ModuleInput], ModuleOutput>;
78
- export declare class Module extends Module_base {
79
- }
80
- export {};
81
- //# sourceMappingURL=module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/agent/module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAW/B,OAAO,EAAE,cAAc,EAA4B,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,SAAS,CAAC;AAqDrD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACpD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;EAErB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACpD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;EAErB,CAAC;AAEH,KAAK,UAAU,GACX,cAAc,GACd,WAAW,GACX,gBAAgB,GAChB,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;;AAED,qBAAa,MAAO,SAAQ,WA8J3B;CAAG"}
@@ -1,309 +0,0 @@
1
- import { createPatch } from "diff";
2
- import fs from "node:fs/promises";
3
- import { z } from "zod";
4
- import { Folder } from "../fs";
5
- import { Design } from "../markdown/design";
6
- import { Requirements } from "../markdown/requirements";
7
- import { Resource, } from "../resource";
8
- import { slugify } from "../slug";
9
- import { TypeScriptFile } from "../typescript";
10
- import { generateObject } from "./ai";
11
- import { dependenciesAsMessages } from "./dependencies";
12
- import { resolveModel } from "./model";
13
- import { Prompts } from "./prompts";
14
- const ProjectFileType = z.enum([
15
- "folder",
16
- "design",
17
- "typescript",
18
- // "package.json",
19
- // "tsconfig.json",
20
- "css",
21
- "scss",
22
- "javascript",
23
- "html",
24
- ]);
25
- const upstream = z
26
- .array(z.string())
27
- .describe([
28
- "A list of all this file's upstream dependencies (files and folders).",
29
- "These files and folders must exist prior to creating or updating 'this' file.",
30
- "'this' meaning the file described by the key in the object.",
31
- "If the plan includes a type: folder to be created, and a file is contained",
32
- "within that folder, then it must also be listed in the upstream dependencies.",
33
- "Don't include files as upstream dependencies if that file's content is not relevant to this file.",
34
- ].join(" "));
35
- const CreateFile = z.object({
36
- type: ProjectFileType,
37
- upstream,
38
- operation: z.enum(["create"]),
39
- });
40
- const UpdateFile = z.object({
41
- type: ProjectFileType,
42
- upstream,
43
- operation: z
44
- .enum(["create", "update"])
45
- .describe([
46
- "The operation to perform on this fle (one of: create, update, delete, noop).",
47
- "If the document describes a new file that needs to be created, the operation is 'create'.",
48
- "If the document's content has changed such that a file that was previously created must be updated, the operation is 'update'.",
49
- "If the document's content has changed, but not in a way that is relevant to this file, the operation is 'noop'.",
50
- "If a file that was previously created is no longer mentioned in the document, the operation is 'delete'.",
51
- ].join(" ")),
52
- });
53
- export const CreatePlan = z.object({
54
- files: z.record(CreateFile),
55
- });
56
- export const UpdatePlan = z.object({
57
- files: z.record(z.union([UpdateFile, z.enum(["delete", "noop"])])),
58
- });
59
- export class Module extends Resource("Module", async (ctx, props) => {
60
- if (ctx.event === "delete") {
61
- return;
62
- }
63
- const model = await resolveModel(props.model ?? "gpt-4o");
64
- const plan = ctx.event === "create"
65
- ? await createPlan(ctx, props, model)
66
- : await updatePlan(ctx, props, model);
67
- console.log(JSON.stringify(plan, null, 2));
68
- const dependencies = Object.fromEntries(Object.entries(plan.files).flatMap(([path, file]) => file === "delete" || file === "noop" ? [] : [[path, file.upstream]]));
69
- const files = {};
70
- for (const filePath of topoSort(dependencies)) {
71
- const filePlan = plan.files[filePath];
72
- if (filePlan !== "delete") {
73
- const file = await createFile(filePath, filePlan === "noop"
74
- ? "noop"
75
- : filePlan.operation, filePlan === "noop" ? null : filePlan, dependencies[filePath]?.map((dep) => files[dep]));
76
- if (file) {
77
- files[filePath] = file;
78
- }
79
- }
80
- }
81
- return {
82
- path: props.path,
83
- plan,
84
- content: props.content,
85
- // @ts-ignore - TODO: fix this
86
- files,
87
- };
88
- async function createFile(filePath, op, filePlan, dependencies) {
89
- const slug = slugify(filePath);
90
- // cache inputs for no-ops
91
- async function inputs(key, input) {
92
- return (op === "noop" ? await ctx.get(key) : input) ?? input;
93
- }
94
- if (filePlan === null) {
95
- // restore the file plan from the cache for no-ops
96
- filePlan = (await ctx.get(filePath));
97
- }
98
- else {
99
- await ctx.set(filePath, filePlan);
100
- }
101
- if (filePlan.type === "design") {
102
- const design = new Design(`${slug}-design`, await inputs(`${slug}-design`, {
103
- path: filePath,
104
- prompt: [
105
- "Context:",
106
- props.content,
107
- "",
108
- `Produce the design: ${filePath}`,
109
- ].join("\n"),
110
- dependencies,
111
- model: "o3-mini",
112
- }));
113
- const module = new Module(slug, await inputs(slug, {
114
- model: props.model,
115
- path: filePath,
116
- content: design.content,
117
- dependencies,
118
- }));
119
- return module;
120
- }
121
- else if (filePlan.type === "typescript") {
122
- const requirementsSlug = slug.replace(".ts", ".md");
123
- const requirements = new Requirements(requirementsSlug, await inputs(requirementsSlug, {
124
- // file: file.path.replace(".ts", ".md").replace("src/", "design/"),
125
- requirements: [
126
- "Context:",
127
- props.content,
128
- "Define the low-level requirements for this TypeScript file:",
129
- filePath,
130
- ],
131
- dependencies,
132
- }));
133
- return new TypeScriptFile(slug, await inputs(slug, {
134
- path: filePath,
135
- requirements: requirements.content,
136
- dependencies,
137
- }));
138
- // } else if (filePlan.type === "package.json") {
139
- // return new PackageJson(
140
- // slugify(filePath),
141
- // await inputs<PackageJsonInput>(slug, {
142
- // path: filePath,
143
- // name: "todo",
144
- // requirements: [
145
- // "Context:",
146
- // props.content,
147
- // "Create the package.json:",
148
- // filePath,
149
- // ],
150
- // dependencies,
151
- // }),
152
- // );
153
- // } else if (filePlan.type === "tsconfig.json") {
154
- // return new TypeScriptConfig(
155
- // slugify(filePath),
156
- // await inputs<TypeScriptConfigInput>(slug, {
157
- // path: filePath,
158
- // requirements: [props.content],
159
- // dependencies,
160
- // }),
161
- // );
162
- }
163
- else if (filePlan.type === "folder") {
164
- return new Folder(slug, filePath, ...dependencies.map((d) => d.path));
165
- }
166
- else {
167
- console.error(`Unknown file type: ${filePlan.type}`);
168
- return undefined;
169
- }
170
- }
171
- }) {
172
- }
173
- async function createPlan(ctx, props, model) {
174
- const result = await generateObject({
175
- model,
176
- schema: CreatePlan,
177
- temperature: 0.1,
178
- messages: [
179
- {
180
- role: "system",
181
- content: Prompts.program,
182
- },
183
- ...excludeDependenciesFromPlan(props.dependencies),
184
- {
185
- role: "user",
186
- content: [
187
- "Derive the execution plan for this document:",
188
- "```md",
189
- props.content,
190
- "```",
191
- "You must only include files explicitly mentioned in the document.",
192
- "Do not preemptively assume that any other files are needed.",
193
- ].join("\n\n"),
194
- },
195
- ],
196
- });
197
- return result.object;
198
- }
199
- async function updatePlan(ctx, props, model) {
200
- const newContent = await fs.readFile(props.path, "utf-8");
201
- const oldContent = ctx.output.content;
202
- const patch = createPatch(props.path, oldContent, newContent);
203
- console.log({
204
- role: "assistant",
205
- content: JSON.stringify(ctx.output.plan),
206
- });
207
- try {
208
- const result = await generateObject({
209
- model,
210
- schema: UpdatePlan,
211
- temperature: 0.1,
212
- messages: [
213
- {
214
- role: "system",
215
- content: Prompts.program,
216
- },
217
- ...excludeDependenciesFromPlan(props.dependencies),
218
- {
219
- role: "user",
220
- content: [
221
- "Derive the execution plan for this document:",
222
- "```md",
223
- oldContent,
224
- "```",
225
- ].join("\n\n"),
226
- },
227
- {
228
- role: "assistant",
229
- content: JSON.stringify(ctx.output.plan),
230
- },
231
- {
232
- role: "user",
233
- content: [
234
- "I've made the following changes to the document:",
235
- "```diff",
236
- patch,
237
- "```",
238
- "Please update the plan to reflect the changes.",
239
- "You must only include files explicitly mentioned in the document.",
240
- "Do not preemptively assume that any other files are needed.",
241
- ].join("\n"),
242
- },
243
- ],
244
- });
245
- return result.object;
246
- }
247
- catch (error) {
248
- console.log("Failed to update plan");
249
- console.error(error);
250
- throw error;
251
- }
252
- }
253
- function excludeDependenciesFromPlan(dependencies) {
254
- if (dependencies) {
255
- return [
256
- ...dependenciesAsMessages(dependencies),
257
- ...(dependencies
258
- ? [
259
- {
260
- role: "user",
261
- content: [
262
- "Remember that these files don't need to be create",
263
- ...dependencies.map((dep) => `- ${dep.path}`),
264
- ].join("\n"),
265
- },
266
- {
267
- role: "assistant",
268
- content: [
269
- "Got it, I acknowledge that the following files will not be included as create/update/delete/noop nodes in the plan",
270
- ...dependencies.map((dep) => `- ${dep.path}`),
271
- ].join("\n"),
272
- },
273
- ]
274
- : []),
275
- ];
276
- }
277
- else {
278
- return [];
279
- }
280
- }
281
- function topoSort(dependencies) {
282
- const visited = new Set();
283
- const temp = new Set();
284
- const order = [];
285
- function visit(file) {
286
- if (temp.has(file)) {
287
- throw new Error(`Circular dependency detected involving ${file}`);
288
- }
289
- if (visited.has(file)) {
290
- return;
291
- }
292
- temp.add(file);
293
- const deps = dependencies[file] || [];
294
- for (const dep of deps) {
295
- visit(dep);
296
- }
297
- temp.delete(file);
298
- visited.add(file);
299
- order.push(file);
300
- }
301
- const files = Object.keys(dependencies);
302
- for (const file of files) {
303
- if (!visited.has(file)) {
304
- visit(file);
305
- }
306
- }
307
- return order;
308
- }
309
- //# sourceMappingURL=module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/agent/module.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { z } from "zod";
2
- export declare const OpenAIModels: readonly ["o3-mini", "o1", "o1-2024-12-17", "o1-mini", "o1-mini-2024-09-12", "o1-preview", "o1-preview-2024-09-12", "gpt-4o", "gpt-4o-2024-05-13", "gpt-4o-2024-08-06", "gpt-4o-2024-11-20", "gpt-4o-audio-preview", "gpt-4o-audio-preview-2024-10-01", "gpt-4o-audio-preview-2024-12-17", "gpt-4o-mini", "gpt-4o-mini-2024-07-18", "gpt-4-turbo", "gpt-4-turbo-2024-04-09", "gpt-4-turbo-preview", "gpt-4-0125-preview", "gpt-4-1106-preview", "gpt-4", "gpt-4-0613", "gpt-3.5-turbo-0125", "gpt-3.5-turbo", "gpt-3.5-turbo-1106"];
3
- export declare const OpenAIModel: z.ZodEnum<["o3-mini", "o1", "o1-2024-12-17", "o1-mini", "o1-mini-2024-09-12", "o1-preview", "o1-preview-2024-09-12", "gpt-4o", "gpt-4o-2024-05-13", "gpt-4o-2024-08-06", "gpt-4o-2024-11-20", "gpt-4o-audio-preview", "gpt-4o-audio-preview-2024-10-01", "gpt-4o-audio-preview-2024-12-17", "gpt-4o-mini", "gpt-4o-mini-2024-07-18", "gpt-4-turbo", "gpt-4-turbo-2024-04-09", "gpt-4-turbo-preview", "gpt-4-0125-preview", "gpt-4-1106-preview", "gpt-4", "gpt-4-0613", "gpt-3.5-turbo-0125", "gpt-3.5-turbo", "gpt-3.5-turbo-1106"]>;
4
- export type OpenAIChatModelId = (typeof OpenAIModels)[number] | (string & {});
5
- export declare function isOpenAIModel(model: string): model is OpenAIChatModelId;
6
- //# sourceMappingURL=openai.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/agent/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,eAAO,MAAM,YAAY,qgBAmCf,CAAC;AAEX,eAAO,MAAM,WAAW,ugBAAuB,CAAC;AAEhD,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAOvE"}
@@ -1,41 +0,0 @@
1
- import { z } from "zod";
2
- export const OpenAIModels = [
3
- "o3-mini",
4
- // O1 models
5
- "o1",
6
- "o1-2024-12-17",
7
- "o1-mini",
8
- "o1-mini-2024-09-12",
9
- "o1-preview",
10
- "o1-preview-2024-09-12",
11
- // GPT-4O models
12
- "gpt-4o",
13
- "gpt-4o-2024-05-13",
14
- "gpt-4o-2024-08-06",
15
- "gpt-4o-2024-11-20",
16
- "gpt-4o-audio-preview",
17
- "gpt-4o-audio-preview-2024-10-01",
18
- "gpt-4o-audio-preview-2024-12-17",
19
- "gpt-4o-mini",
20
- "gpt-4o-mini-2024-07-18",
21
- // GPT-4 models
22
- "gpt-4-turbo",
23
- "gpt-4-turbo-2024-04-09",
24
- "gpt-4-turbo-preview",
25
- "gpt-4-0125-preview",
26
- "gpt-4-1106-preview",
27
- "gpt-4",
28
- "gpt-4-0613",
29
- // GPT-3.5 models
30
- "gpt-3.5-turbo-0125",
31
- "gpt-3.5-turbo",
32
- "gpt-3.5-turbo-1106",
33
- ];
34
- export const OpenAIModel = z.enum(OpenAIModels);
35
- export function isOpenAIModel(model) {
36
- return (model.startsWith("gpt-") ||
37
- model.startsWith("o1") ||
38
- model.startsWith("o3") ||
39
- model.startsWith("gpt-4o"));
40
- }
41
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/agent/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS;IAET,YAAY;IACZ,IAAI;IACJ,eAAe;IACf,SAAS;IACT,oBAAoB;IACpB,YAAY;IACZ,uBAAuB;IAEvB,gBAAgB;IAChB,QAAQ;IACR,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;IACtB,iCAAiC;IACjC,iCAAiC;IACjC,aAAa;IACb,wBAAwB;IAExB,eAAe;IACf,aAAa;IACb,wBAAwB;IACxB,qBAAqB;IACrB,oBAAoB;IACpB,oBAAoB;IACpB,OAAO;IACP,YAAY;IAEZ,iBAAiB;IACjB,oBAAoB;IACpB,eAAe;IACf,oBAAoB;CACZ,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAIhD,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,CACL,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QACxB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QACtB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QACtB,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC3B,CAAC;AACJ,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { ModelId } from "./model";
2
- import { Module } from "./module";
3
- declare const Program_base: import("../resource").Provider<"Program", [props: {
4
- path: string;
5
- model?: ModelId;
6
- }], {
7
- module: Module;
8
- }>;
9
- export declare class Program extends Program_base {
10
- }
11
- export {};
12
- //# sourceMappingURL=program.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/agent/program.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;;UAYtB,MAAM;YACJ,OAAO;;YAJP,MAAM;;AAPpB,qBAAa,OAAQ,SAAQ,YA8B5B;CAAG"}
@@ -1,21 +0,0 @@
1
- import fs from "node:fs/promises";
2
- import { Resource } from "../resource";
3
- import { Module } from "./module";
4
- export class Program extends Resource("Program", {
5
- alwaysUpdate: true,
6
- }, async (ctx, props) => {
7
- if (ctx.event === "delete") {
8
- return;
9
- }
10
- const content = await fs.readFile(props.path, "utf-8");
11
- const module = new Module("module", {
12
- path: props.path,
13
- content,
14
- model: props.model,
15
- });
16
- return {
17
- module,
18
- };
19
- }) {
20
- }
21
- //# sourceMappingURL=program.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/agent/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAO,OAAQ,SAAQ,QAAQ,CACnC,SAAS,EACT;IACE,YAAY,EAAE,IAAI;CACnB,EACD,KAAK,EACH,GAEE,EACF,KAGC,EACD,EAAE;IACF,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO;QACP,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IAEH,OAAO;QACL,MAAM;KACP,CAAC;AACJ,CAAC,CACF;CAAG"}
@@ -1,4 +0,0 @@
1
- declare const prompts: readonly ["program"];
2
- export declare const Prompts: { [key in (typeof prompts)[number]]: string; };
3
- export {};
4
- //# sourceMappingURL=prompts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/agent/prompts.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,OAAO,sBAAuB,CAAC;AAErC,eAAO,MAAM,OAAO,EAOf,GACF,GAAG,IAAI,CAAC,OAAO,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,GAC1C,CAAC"}
@@ -1,11 +0,0 @@
1
- import fs from "node:fs/promises";
2
- import path from "node:path";
3
- // TODO: replace with import.meta.glob
4
- // see: https://github.com/oven-sh/bun/issues/6060
5
- const __dirname = new URL(".", import.meta.url).pathname;
6
- const prompts = ["program"];
7
- export const Prompts = Object.fromEntries(await Promise.all(prompts.map(async (prompt) => [
8
- prompt,
9
- await fs.readFile(path.join(__dirname, `${prompt}.md`), "utf-8"),
10
- ])));
11
- //# sourceMappingURL=prompts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/agent/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,sCAAsC;AACtC,kDAAkD;AAElD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAEzD,MAAM,OAAO,GAAG,CAAC,SAAS,CAAU,CAAC;AAErC,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CACvC,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;IAC5B,MAAM;IACN,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC;CACjE,CAAC,CACH,CAGF,CAAC"}
@@ -1,71 +0,0 @@
1
- import { z } from "zod";
2
- export declare const scrapeWebPage: import("ai").Tool<z.ZodObject<{
3
- url: z.ZodString;
4
- turndownOptions: z.ZodOptional<z.ZodObject<{
5
- headingStyle: z.ZodOptional<z.ZodEnum<["setext", "atx"]>>;
6
- hr: z.ZodOptional<z.ZodString>;
7
- bulletListMarker: z.ZodOptional<z.ZodEnum<["-", "*", "+"]>>;
8
- codeBlockStyle: z.ZodOptional<z.ZodEnum<["indented", "fenced"]>>;
9
- emDelimiter: z.ZodOptional<z.ZodEnum<["_", "*"]>>;
10
- strongDelimiter: z.ZodOptional<z.ZodEnum<["__", "**"]>>;
11
- linkStyle: z.ZodOptional<z.ZodEnum<["inlined", "referenced"]>>;
12
- linkReferenceStyle: z.ZodOptional<z.ZodEnum<["full", "collapsed", "shortcut"]>>;
13
- }, "strip", z.ZodTypeAny, {
14
- headingStyle?: "setext" | "atx" | undefined;
15
- hr?: string | undefined;
16
- bulletListMarker?: "-" | "*" | "+" | undefined;
17
- codeBlockStyle?: "indented" | "fenced" | undefined;
18
- emDelimiter?: "_" | "*" | undefined;
19
- strongDelimiter?: "__" | "**" | undefined;
20
- linkStyle?: "inlined" | "referenced" | undefined;
21
- linkReferenceStyle?: "full" | "collapsed" | "shortcut" | undefined;
22
- }, {
23
- headingStyle?: "setext" | "atx" | undefined;
24
- hr?: string | undefined;
25
- bulletListMarker?: "-" | "*" | "+" | undefined;
26
- codeBlockStyle?: "indented" | "fenced" | undefined;
27
- emDelimiter?: "_" | "*" | undefined;
28
- strongDelimiter?: "__" | "**" | undefined;
29
- linkStyle?: "inlined" | "referenced" | undefined;
30
- linkReferenceStyle?: "full" | "collapsed" | "shortcut" | undefined;
31
- }>>;
32
- }, "strip", z.ZodTypeAny, {
33
- url: string;
34
- turndownOptions?: {
35
- headingStyle?: "setext" | "atx" | undefined;
36
- hr?: string | undefined;
37
- bulletListMarker?: "-" | "*" | "+" | undefined;
38
- codeBlockStyle?: "indented" | "fenced" | undefined;
39
- emDelimiter?: "_" | "*" | undefined;
40
- strongDelimiter?: "__" | "**" | undefined;
41
- linkStyle?: "inlined" | "referenced" | undefined;
42
- linkReferenceStyle?: "full" | "collapsed" | "shortcut" | undefined;
43
- } | undefined;
44
- }, {
45
- url: string;
46
- turndownOptions?: {
47
- headingStyle?: "setext" | "atx" | undefined;
48
- hr?: string | undefined;
49
- bulletListMarker?: "-" | "*" | "+" | undefined;
50
- codeBlockStyle?: "indented" | "fenced" | undefined;
51
- emDelimiter?: "_" | "*" | undefined;
52
- strongDelimiter?: "__" | "**" | undefined;
53
- linkStyle?: "inlined" | "referenced" | undefined;
54
- linkReferenceStyle?: "full" | "collapsed" | "shortcut" | undefined;
55
- } | undefined;
56
- }>, string> & {
57
- execute: (args: {
58
- url: string;
59
- turndownOptions?: {
60
- headingStyle?: "setext" | "atx" | undefined;
61
- hr?: string | undefined;
62
- bulletListMarker?: "-" | "*" | "+" | undefined;
63
- codeBlockStyle?: "indented" | "fenced" | undefined;
64
- emDelimiter?: "_" | "*" | undefined;
65
- strongDelimiter?: "__" | "**" | undefined;
66
- linkStyle?: "inlined" | "referenced" | undefined;
67
- linkReferenceStyle?: "full" | "collapsed" | "shortcut" | undefined;
68
- } | undefined;
69
- }, options: import("ai").ToolExecutionOptions) => PromiseLike<string>;
70
- };
71
- //# sourceMappingURL=scrape.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../../src/agent/scrape.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CxB,CAAC"}