trigger.dev 0.0.0-v3-prerelease-20250108141813 → 0.0.0-v4-prerelease-20250916125920

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 (292) hide show
  1. package/README.md +28 -1
  2. package/dist/esm/apiClient.d.ts +158 -74
  3. package/dist/esm/apiClient.js +341 -76
  4. package/dist/esm/apiClient.js.map +1 -1
  5. package/dist/esm/build/buildWorker.d.ts +10 -6
  6. package/dist/esm/build/buildWorker.js +22 -38
  7. package/dist/esm/build/buildWorker.js.map +1 -1
  8. package/dist/esm/build/bundle.d.ts +18 -1
  9. package/dist/esm/build/bundle.js +142 -52
  10. package/dist/esm/build/bundle.js.map +1 -1
  11. package/dist/esm/build/entryPoints.d.ts +12 -0
  12. package/dist/esm/build/entryPoints.js +127 -0
  13. package/dist/esm/build/entryPoints.js.map +1 -0
  14. package/dist/esm/build/extensions.js +17 -0
  15. package/dist/esm/build/extensions.js.map +1 -1
  16. package/dist/esm/build/externals.js +184 -2
  17. package/dist/esm/build/externals.js.map +1 -1
  18. package/dist/esm/build/packageModules.d.ts +15 -5
  19. package/dist/esm/build/packageModules.js +154 -36
  20. package/dist/esm/build/packageModules.js.map +1 -1
  21. package/dist/esm/cli/common.d.ts +1 -1
  22. package/dist/esm/cli/common.js +38 -45
  23. package/dist/esm/cli/common.js.map +1 -1
  24. package/dist/esm/cli/index.js +19 -3
  25. package/dist/esm/cli/index.js.map +1 -1
  26. package/dist/esm/commands/analyze.d.ts +23 -0
  27. package/dist/esm/commands/analyze.js +122 -0
  28. package/dist/esm/commands/analyze.js.map +1 -0
  29. package/dist/esm/commands/deploy.d.ts +5 -2
  30. package/dist/esm/commands/deploy.js +271 -160
  31. package/dist/esm/commands/deploy.js.map +1 -1
  32. package/dist/esm/commands/dev.d.ts +36 -6
  33. package/dist/esm/commands/dev.js +71 -2
  34. package/dist/esm/commands/dev.js.map +1 -1
  35. package/dist/esm/commands/env.d.ts +2 -0
  36. package/dist/esm/commands/env.js +298 -0
  37. package/dist/esm/commands/env.js.map +1 -0
  38. package/dist/esm/commands/init.d.ts +9 -1
  39. package/dist/esm/commands/init.js +132 -65
  40. package/dist/esm/commands/init.js.map +1 -1
  41. package/dist/esm/commands/install-mcp.d.ts +50 -0
  42. package/dist/esm/commands/install-mcp.js +497 -0
  43. package/dist/esm/commands/install-mcp.js.map +1 -0
  44. package/dist/esm/commands/install-rules.d.ts +11 -0
  45. package/dist/esm/commands/install-rules.js +381 -0
  46. package/dist/esm/commands/install-rules.js.map +1 -0
  47. package/dist/esm/commands/list-profiles.d.ts +3 -7
  48. package/dist/esm/commands/list-profiles.js +7 -4
  49. package/dist/esm/commands/list-profiles.js.map +1 -1
  50. package/dist/esm/commands/login.d.ts +9 -5
  51. package/dist/esm/commands/login.js +40 -7
  52. package/dist/esm/commands/login.js.map +1 -1
  53. package/dist/esm/commands/logout.d.ts +1 -1
  54. package/dist/esm/commands/mcp.d.ts +38 -0
  55. package/dist/esm/commands/mcp.js +82 -0
  56. package/dist/esm/commands/mcp.js.map +1 -0
  57. package/dist/esm/commands/preview.d.ts +5 -0
  58. package/dist/esm/commands/preview.js +93 -0
  59. package/dist/esm/commands/preview.js.map +1 -0
  60. package/dist/esm/commands/promote.d.ts +3 -0
  61. package/dist/esm/commands/promote.js +86 -0
  62. package/dist/esm/commands/promote.js.map +1 -0
  63. package/dist/esm/commands/switch.d.ts +19 -0
  64. package/dist/esm/commands/switch.js +93 -0
  65. package/dist/esm/commands/switch.js.map +1 -0
  66. package/dist/esm/commands/trigger.d.ts +33 -0
  67. package/dist/esm/commands/trigger.js +88 -0
  68. package/dist/esm/commands/trigger.js.map +1 -0
  69. package/dist/esm/commands/update.d.ts +3 -2
  70. package/dist/esm/commands/update.js +23 -9
  71. package/dist/esm/commands/update.js.map +1 -1
  72. package/dist/esm/commands/whoami.d.ts +12 -1
  73. package/dist/esm/commands/whoami.js +36 -6
  74. package/dist/esm/commands/whoami.js.map +1 -1
  75. package/dist/esm/commands/workers/build.d.ts +4 -0
  76. package/dist/esm/commands/workers/build.js +345 -0
  77. package/dist/esm/commands/workers/build.js.map +1 -0
  78. package/dist/esm/commands/workers/create.d.ts +2 -0
  79. package/dist/esm/commands/workers/create.js +91 -0
  80. package/dist/esm/commands/workers/create.js.map +1 -0
  81. package/dist/esm/commands/workers/index.d.ts +2 -0
  82. package/dist/esm/commands/workers/index.js +13 -0
  83. package/dist/esm/commands/workers/index.js.map +1 -0
  84. package/dist/esm/commands/workers/list.d.ts +2 -0
  85. package/dist/esm/commands/workers/list.js +80 -0
  86. package/dist/esm/commands/workers/list.js.map +1 -0
  87. package/dist/esm/commands/workers/run.d.ts +2 -0
  88. package/dist/esm/commands/workers/run.js +105 -0
  89. package/dist/esm/commands/workers/run.js.map +1 -0
  90. package/dist/esm/config.d.ts +2 -1
  91. package/dist/esm/config.js +35 -8
  92. package/dist/esm/config.js.map +1 -1
  93. package/dist/esm/deploy/buildImage.d.ts +12 -11
  94. package/dist/esm/deploy/buildImage.js +360 -115
  95. package/dist/esm/deploy/buildImage.js.map +1 -1
  96. package/dist/esm/dev/backgroundWorker.d.ts +6 -245
  97. package/dist/esm/dev/backgroundWorker.js +11 -320
  98. package/dist/esm/dev/backgroundWorker.js.map +1 -1
  99. package/dist/esm/dev/devOutput.js +48 -9
  100. package/dist/esm/dev/devOutput.js.map +1 -1
  101. package/dist/esm/dev/devSession.d.ts +2 -1
  102. package/dist/esm/dev/devSession.js +68 -65
  103. package/dist/esm/dev/devSession.js.map +1 -1
  104. package/dist/esm/dev/devSupervisor.d.ts +12 -0
  105. package/dist/esm/dev/devSupervisor.js +568 -0
  106. package/dist/esm/dev/devSupervisor.js.map +1 -0
  107. package/dist/esm/dev/lock.d.ts +1 -0
  108. package/dist/esm/dev/lock.js +80 -0
  109. package/dist/esm/dev/lock.js.map +1 -0
  110. package/dist/esm/dev/mcpServer.d.ts +10 -0
  111. package/dist/esm/dev/mcpServer.js +201 -0
  112. package/dist/esm/dev/mcpServer.js.map +1 -0
  113. package/dist/esm/dev/taskRunProcessPool.d.ts +39 -0
  114. package/dist/esm/dev/taskRunProcessPool.js +220 -0
  115. package/dist/esm/dev/taskRunProcessPool.js.map +1 -0
  116. package/dist/esm/dev/workerRuntime.d.ts +2 -2
  117. package/dist/esm/dev/workerRuntime.js +1 -265
  118. package/dist/esm/dev/workerRuntime.js.map +1 -1
  119. package/dist/esm/entryPoints/dev-index-worker.js +45 -8
  120. package/dist/esm/entryPoints/dev-index-worker.js.map +1 -1
  121. package/dist/esm/entryPoints/dev-run-controller.d.ts +58 -0
  122. package/dist/esm/entryPoints/dev-run-controller.js +652 -0
  123. package/dist/esm/entryPoints/dev-run-controller.js.map +1 -0
  124. package/dist/esm/entryPoints/dev-run-worker.js +394 -199
  125. package/dist/esm/entryPoints/dev-run-worker.js.map +1 -1
  126. package/dist/esm/entryPoints/managed/controller.d.ts +63 -0
  127. package/dist/esm/entryPoints/managed/controller.js +482 -0
  128. package/dist/esm/entryPoints/managed/controller.js.map +1 -0
  129. package/dist/esm/entryPoints/managed/env.d.ts +170 -0
  130. package/dist/esm/entryPoints/managed/env.js +199 -0
  131. package/dist/esm/entryPoints/managed/env.js.map +1 -0
  132. package/dist/esm/entryPoints/managed/execution.d.ts +141 -0
  133. package/dist/esm/entryPoints/managed/execution.js +869 -0
  134. package/dist/esm/entryPoints/managed/execution.js.map +1 -0
  135. package/dist/esm/entryPoints/managed/logger.d.ts +30 -0
  136. package/dist/esm/entryPoints/managed/logger.js +47 -0
  137. package/dist/esm/entryPoints/managed/logger.js.map +1 -0
  138. package/dist/esm/entryPoints/managed/notifier.d.ts +30 -0
  139. package/dist/esm/entryPoints/managed/notifier.js +63 -0
  140. package/dist/esm/entryPoints/managed/notifier.js.map +1 -0
  141. package/dist/esm/entryPoints/managed/overrides.d.ts +18 -0
  142. package/dist/esm/entryPoints/managed/overrides.js +19 -0
  143. package/dist/esm/entryPoints/managed/overrides.js.map +1 -0
  144. package/dist/esm/entryPoints/managed/poller.d.ts +31 -0
  145. package/dist/esm/entryPoints/managed/poller.js +89 -0
  146. package/dist/esm/entryPoints/managed/poller.js.map +1 -0
  147. package/dist/esm/entryPoints/managed/snapshot.d.ts +54 -0
  148. package/dist/esm/entryPoints/managed/snapshot.js +293 -0
  149. package/dist/esm/entryPoints/managed/snapshot.js.map +1 -0
  150. package/dist/esm/entryPoints/managed/taskRunProcessProvider.d.ts +62 -0
  151. package/dist/esm/entryPoints/managed/taskRunProcessProvider.js +252 -0
  152. package/dist/esm/entryPoints/managed/taskRunProcessProvider.js.map +1 -0
  153. package/dist/esm/entryPoints/{deploy-index-controller.js → managed-index-controller.js} +27 -3
  154. package/dist/esm/entryPoints/managed-index-controller.js.map +1 -0
  155. package/dist/esm/entryPoints/{deploy-index-worker.js → managed-index-worker.js} +50 -21
  156. package/dist/esm/entryPoints/managed-index-worker.js.map +1 -0
  157. package/dist/esm/entryPoints/managed-run-controller.js +13 -0
  158. package/dist/esm/entryPoints/managed-run-controller.js.map +1 -0
  159. package/dist/esm/entryPoints/managed-run-worker.js +512 -0
  160. package/dist/esm/entryPoints/managed-run-worker.js.map +1 -0
  161. package/dist/esm/executions/taskRunProcess.d.ts +28 -82
  162. package/dist/esm/executions/taskRunProcess.js +130 -74
  163. package/dist/esm/executions/taskRunProcess.js.map +1 -1
  164. package/dist/esm/indexing/indexWorkerManifest.d.ts +21 -5
  165. package/dist/esm/indexing/indexWorkerManifest.js +4 -4
  166. package/dist/esm/indexing/indexWorkerManifest.js.map +1 -1
  167. package/dist/esm/indexing/registerResources.d.ts +5 -0
  168. package/dist/esm/indexing/registerResources.js +44 -0
  169. package/dist/esm/indexing/registerResources.js.map +1 -0
  170. package/dist/esm/mcp/auth.d.ts +12 -0
  171. package/dist/esm/mcp/auth.js +152 -0
  172. package/dist/esm/mcp/auth.js.map +1 -0
  173. package/dist/esm/mcp/capabilities.d.ts +4 -0
  174. package/dist/esm/mcp/capabilities.js +22 -0
  175. package/dist/esm/mcp/capabilities.js.map +1 -0
  176. package/dist/esm/mcp/config.d.ts +82 -0
  177. package/dist/esm/mcp/config.js +87 -0
  178. package/dist/esm/mcp/config.js.map +1 -0
  179. package/dist/esm/mcp/context.d.ts +45 -0
  180. package/dist/esm/mcp/context.js +129 -0
  181. package/dist/esm/mcp/context.js.map +1 -0
  182. package/dist/esm/mcp/formatters.d.ts +7 -0
  183. package/dist/esm/mcp/formatters.js +330 -0
  184. package/dist/esm/mcp/formatters.js.map +1 -0
  185. package/dist/esm/mcp/logger.d.ts +11 -0
  186. package/dist/esm/mcp/logger.js +34 -0
  187. package/dist/esm/mcp/logger.js.map +1 -0
  188. package/dist/esm/mcp/mintlifyClient.d.ts +1 -0
  189. package/dist/esm/mcp/mintlifyClient.js +65 -0
  190. package/dist/esm/mcp/mintlifyClient.js.map +1 -0
  191. package/dist/esm/mcp/schemas.d.ts +324 -0
  192. package/dist/esm/mcp/schemas.js +144 -0
  193. package/dist/esm/mcp/schemas.js.map +1 -0
  194. package/dist/esm/mcp/tools/deploys.d.ts +174 -0
  195. package/dist/esm/mcp/tools/deploys.js +161 -0
  196. package/dist/esm/mcp/tools/deploys.js.map +1 -0
  197. package/dist/esm/mcp/tools/docs.d.ts +77 -0
  198. package/dist/esm/mcp/tools/docs.js +18 -0
  199. package/dist/esm/mcp/tools/docs.js.map +1 -0
  200. package/dist/esm/mcp/tools/orgs.d.ts +172 -0
  201. package/dist/esm/mcp/tools/orgs.js +172 -0
  202. package/dist/esm/mcp/tools/orgs.js.map +1 -0
  203. package/dist/esm/mcp/tools/previewBranches.d.ts +78 -0
  204. package/dist/esm/mcp/tools/previewBranches.js +28 -0
  205. package/dist/esm/mcp/tools/previewBranches.js.map +1 -0
  206. package/dist/esm/mcp/tools/runs.d.ts +335 -0
  207. package/dist/esm/mcp/tools/runs.js +160 -0
  208. package/dist/esm/mcp/tools/runs.js.map +1 -0
  209. package/dist/esm/mcp/tools/tasks.d.ts +200 -0
  210. package/dist/esm/mcp/tools/tasks.js +117 -0
  211. package/dist/esm/mcp/tools/tasks.js.map +1 -0
  212. package/dist/esm/mcp/tools.d.ts +2 -0
  213. package/dist/esm/mcp/tools.js +40 -0
  214. package/dist/esm/mcp/tools.js.map +1 -0
  215. package/dist/esm/mcp/types.d.ts +6 -0
  216. package/dist/esm/mcp/types.js +2 -0
  217. package/dist/esm/mcp/types.js.map +1 -0
  218. package/dist/esm/mcp/utils.d.ts +89 -0
  219. package/dist/esm/mcp/utils.js +95 -0
  220. package/dist/esm/mcp/utils.js.map +1 -0
  221. package/dist/esm/rules/install.d.ts +1 -0
  222. package/dist/esm/rules/install.js +2 -0
  223. package/dist/esm/rules/install.js.map +1 -0
  224. package/dist/esm/rules/manifest.d.ts +145 -0
  225. package/dist/esm/rules/manifest.js +110 -0
  226. package/dist/esm/rules/manifest.js.map +1 -0
  227. package/dist/esm/rules/types.d.ts +3 -0
  228. package/dist/esm/rules/types.js +3 -0
  229. package/dist/esm/rules/types.js.map +1 -0
  230. package/dist/esm/utilities/accessTokens.d.ts +12 -0
  231. package/dist/esm/utilities/accessTokens.js +30 -0
  232. package/dist/esm/utilities/accessTokens.js.map +1 -0
  233. package/dist/esm/utilities/analyze.d.ts +13 -0
  234. package/dist/esm/utilities/analyze.js +463 -0
  235. package/dist/esm/utilities/analyze.js.map +1 -0
  236. package/dist/esm/utilities/cliOutput.d.ts +6 -1
  237. package/dist/esm/utilities/cliOutput.js +11 -2
  238. package/dist/esm/utilities/cliOutput.js.map +1 -1
  239. package/dist/esm/utilities/configFiles.d.ts +65 -15
  240. package/dist/esm/utilities/configFiles.js +124 -26
  241. package/dist/esm/utilities/configFiles.js.map +1 -1
  242. package/dist/esm/utilities/eventBus.d.ts +7 -3
  243. package/dist/esm/utilities/eventBus.js.map +1 -1
  244. package/dist/esm/utilities/fileSystem.d.ts +7 -1
  245. package/dist/esm/utilities/fileSystem.js +42 -4
  246. package/dist/esm/utilities/fileSystem.js.map +1 -1
  247. package/dist/esm/utilities/gitMeta.d.ts +2 -0
  248. package/dist/esm/utilities/gitMeta.js +220 -0
  249. package/dist/esm/utilities/gitMeta.js.map +1 -0
  250. package/dist/esm/utilities/githubActions.d.ts +4 -0
  251. package/dist/esm/utilities/githubActions.js +18 -0
  252. package/dist/esm/utilities/githubActions.js.map +1 -0
  253. package/dist/esm/utilities/initialBanner.js +18 -6
  254. package/dist/esm/utilities/initialBanner.js.map +1 -1
  255. package/dist/esm/utilities/localEnvVars.d.ts +3 -0
  256. package/dist/esm/utilities/localEnvVars.js +19 -0
  257. package/dist/esm/utilities/localEnvVars.js.map +1 -0
  258. package/dist/esm/utilities/sanitizeEnvVars.d.ts +16 -3
  259. package/dist/esm/utilities/sanitizeEnvVars.js +15 -0
  260. package/dist/esm/utilities/sanitizeEnvVars.js.map +1 -1
  261. package/dist/esm/utilities/session.d.ts +14 -0
  262. package/dist/esm/utilities/session.js +44 -47
  263. package/dist/esm/utilities/session.js.map +1 -1
  264. package/dist/esm/utilities/supportsHyperlinks.d.ts +15 -0
  265. package/dist/esm/utilities/supportsHyperlinks.js +122 -0
  266. package/dist/esm/utilities/supportsHyperlinks.js.map +1 -0
  267. package/dist/esm/utilities/tempDirectories.d.ts +1 -0
  268. package/dist/esm/utilities/tempDirectories.js +19 -2
  269. package/dist/esm/utilities/tempDirectories.js.map +1 -1
  270. package/dist/esm/utilities/terminalLink.d.ts +56 -0
  271. package/dist/esm/utilities/terminalLink.js +76 -0
  272. package/dist/esm/utilities/terminalLink.js.map +1 -0
  273. package/dist/esm/utilities/windows.js +51 -1
  274. package/dist/esm/utilities/windows.js.map +1 -1
  275. package/dist/esm/version.js +1 -1
  276. package/package.json +44 -25
  277. package/dist/esm/entryPoints/deploy-index-controller.js.map +0 -1
  278. package/dist/esm/entryPoints/deploy-index-worker.js.map +0 -1
  279. package/dist/esm/entryPoints/deploy-run-controller.js +0 -1099
  280. package/dist/esm/entryPoints/deploy-run-controller.js.map +0 -1
  281. package/dist/esm/entryPoints/deploy-run-worker.js +0 -366
  282. package/dist/esm/entryPoints/deploy-run-worker.js.map +0 -1
  283. package/dist/esm/indexing/registerTasks.d.ts +0 -2
  284. package/dist/esm/indexing/registerTasks.js +0 -62
  285. package/dist/esm/indexing/registerTasks.js.map +0 -1
  286. package/dist/esm/telemetry/tracing.d.ts +0 -3
  287. package/dist/esm/telemetry/tracing.js +0 -58
  288. package/dist/esm/telemetry/tracing.js.map +0 -1
  289. /package/dist/esm/entryPoints/{deploy-index-controller.d.ts → managed-index-controller.d.ts} +0 -0
  290. /package/dist/esm/entryPoints/{deploy-index-worker.d.ts → managed-index-worker.d.ts} +0 -0
  291. /package/dist/esm/entryPoints/{deploy-run-controller.d.ts → managed-run-controller.d.ts} +0 -0
  292. /package/dist/esm/entryPoints/{deploy-run-worker.d.ts → managed-run-worker.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { mkdirSync, writeFileSync } from "node:fs";
1
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { z } from "zod";
4
4
  import { xdgAppPaths } from "../imports/xdg-app-paths.js";
@@ -8,49 +8,147 @@ function getGlobalConfigFolderPath() {
8
8
  const configDir = xdgAppPaths("trigger").config();
9
9
  return configDir;
10
10
  }
11
- //auth config file
12
- export const UserAuthConfigSchema = z.object({
11
+ export const DEFFAULT_PROFILE = "default";
12
+ const CONFIG_FILE = "config.json";
13
+ const OLD_CONFIG_FILE = "default.json";
14
+ const CliConfigProfileSettings = z.object({
13
15
  accessToken: z.string().optional(),
14
16
  apiUrl: z.string().optional(),
15
17
  });
16
- const UserAuthConfigFileSchema = z.record(UserAuthConfigSchema);
18
+ const OldCliConfigFile = z.record(CliConfigProfileSettings);
19
+ const CliConfigFile = z.object({
20
+ version: z.literal(2),
21
+ currentProfile: z.string().default(DEFFAULT_PROFILE),
22
+ profiles: z.record(CliConfigProfileSettings),
23
+ settings: z
24
+ .object({
25
+ hasSeenMCPInstallPrompt: z.boolean().optional(),
26
+ hasSeenRulesInstallPrompt: z.boolean().optional(),
27
+ lastRulesInstallPromptVersion: z.string().optional(),
28
+ })
29
+ .optional(),
30
+ });
31
+ function getOldAuthConfigFilePath() {
32
+ return path.join(getGlobalConfigFolderPath(), OLD_CONFIG_FILE);
33
+ }
17
34
  function getAuthConfigFilePath() {
18
- return path.join(getGlobalConfigFolderPath(), "default.json");
35
+ return path.join(getGlobalConfigFolderPath(), CONFIG_FILE);
36
+ }
37
+ function getAuthConfigFileBackupPath() {
38
+ // Multiple calls won't overwrite old backups
39
+ return path.join(getGlobalConfigFolderPath(), `${CONFIG_FILE}.bak-${Date.now()}`);
40
+ }
41
+ function getBlankConfig() {
42
+ return {
43
+ version: 2,
44
+ currentProfile: DEFFAULT_PROFILE,
45
+ profiles: {},
46
+ settings: {
47
+ hasSeenMCPInstallPrompt: false,
48
+ hasSeenRulesInstallPrompt: false,
49
+ },
50
+ };
19
51
  }
20
- export function writeAuthConfigProfile(config, profile = "default") {
21
- const existingConfig = readAuthConfigFile() || {};
22
- existingConfig[profile] = config;
23
- writeAuthConfigFile(existingConfig);
52
+ function getConfig() {
53
+ return readAuthConfigFile() ?? getBlankConfig();
24
54
  }
25
- export function readAuthConfigProfile(profile = "default") {
55
+ export function writeAuthConfigCurrentProfileName(profile) {
56
+ const config = getConfig();
57
+ config.currentProfile = profile;
58
+ writeAuthConfigFile(config);
59
+ }
60
+ export function readAuthConfigCurrentProfileName() {
61
+ const config = getConfig();
62
+ return config.currentProfile;
63
+ }
64
+ export function writeAuthConfigProfile(settings, profile = DEFFAULT_PROFILE) {
65
+ const config = getConfig();
66
+ config.profiles[profile] = settings;
67
+ writeAuthConfigFile(config);
68
+ }
69
+ export function readAuthConfigProfile(profile = DEFFAULT_PROFILE) {
26
70
  try {
27
- const authConfigFilePath = getAuthConfigFilePath();
28
- logger.debug(`Reading auth config file`, { authConfigFilePath });
29
- const json = readJSONFileSync(authConfigFilePath);
30
- const parsed = UserAuthConfigFileSchema.parse(json);
31
- return parsed[profile];
71
+ const config = getConfig();
72
+ return config.profiles[profile];
32
73
  }
33
74
  catch (error) {
34
75
  logger.debug(`Error reading auth config file: ${error}`);
35
76
  return undefined;
36
77
  }
37
78
  }
38
- export function deleteAuthConfigProfile(profile = "default") {
39
- const existingConfig = readAuthConfigFile() || {};
40
- delete existingConfig[profile];
41
- writeAuthConfigFile(existingConfig);
79
+ export function readConfigHasSeenMCPInstallPrompt() {
80
+ const config = getConfig();
81
+ return typeof config.settings?.hasSeenMCPInstallPrompt === "boolean"
82
+ ? config.settings.hasSeenMCPInstallPrompt
83
+ : false;
84
+ }
85
+ export function writeConfigHasSeenMCPInstallPrompt(hasSeenMCPInstallPrompt) {
86
+ const config = getConfig();
87
+ config.settings = {
88
+ ...config.settings,
89
+ hasSeenMCPInstallPrompt,
90
+ };
91
+ writeAuthConfigFile(config);
92
+ }
93
+ export function readConfigHasSeenRulesInstallPrompt() {
94
+ const config = getConfig();
95
+ return typeof config.settings?.hasSeenRulesInstallPrompt === "boolean"
96
+ ? config.settings.hasSeenRulesInstallPrompt
97
+ : false;
98
+ }
99
+ export function writeConfigHasSeenRulesInstallPrompt(hasSeenRulesInstallPrompt) {
100
+ const config = getConfig();
101
+ config.settings = {
102
+ ...config.settings,
103
+ hasSeenRulesInstallPrompt,
104
+ };
105
+ writeAuthConfigFile(config);
106
+ }
107
+ export function readConfigLastRulesInstallPromptVersion() {
108
+ const config = getConfig();
109
+ return config.settings?.lastRulesInstallPromptVersion;
110
+ }
111
+ export function writeConfigLastRulesInstallPromptVersion(version) {
112
+ const config = getConfig();
113
+ config.settings = {
114
+ ...config.settings,
115
+ lastRulesInstallPromptVersion: version,
116
+ };
117
+ writeAuthConfigFile(config);
118
+ }
119
+ export function deleteAuthConfigProfile(profile = DEFFAULT_PROFILE) {
120
+ const config = getConfig();
121
+ delete config.profiles[profile];
122
+ if (config.currentProfile === profile) {
123
+ config.currentProfile = DEFFAULT_PROFILE;
124
+ }
125
+ writeAuthConfigFile(config);
42
126
  }
43
127
  export function readAuthConfigFile() {
44
128
  try {
45
- const authConfigFilePath = getAuthConfigFilePath();
46
- logger.debug(`Reading auth config file`, { authConfigFilePath });
47
- const json = readJSONFileSync(authConfigFilePath);
48
- const parsed = UserAuthConfigFileSchema.parse(json);
49
- return parsed;
129
+ const configFilePath = getAuthConfigFilePath();
130
+ const configFileExists = existsSync(configFilePath);
131
+ logger.debug(`Reading auth config file`, { configFilePath, configFileExists });
132
+ const json = readJSONFileSync(configFileExists ? configFilePath : getOldAuthConfigFilePath());
133
+ if ("currentProfile" in json) {
134
+ // This is the new format
135
+ const parsed = CliConfigFile.parse(json);
136
+ return parsed;
137
+ }
138
+ // This is the old format and we need to convert it
139
+ const oldConfigFormat = OldCliConfigFile.parse(json);
140
+ const newConfigFormat = {
141
+ version: 2,
142
+ currentProfile: DEFFAULT_PROFILE,
143
+ profiles: oldConfigFormat,
144
+ };
145
+ // Save to new config file location, the old file will remain untouched
146
+ writeAuthConfigFile(newConfigFormat);
147
+ return newConfigFormat;
50
148
  }
51
149
  catch (error) {
52
150
  logger.debug(`Error reading auth config file: ${error}`);
53
- return undefined;
151
+ return null;
54
152
  }
55
153
  }
56
154
  export function writeAuthConfigFile(config) {
@@ -58,7 +156,7 @@ export function writeAuthConfigFile(config) {
58
156
  mkdirSync(path.dirname(authConfigFilePath), {
59
157
  recursive: true,
60
158
  });
61
- writeFileSync(path.join(authConfigFilePath), JSON.stringify(config), {
159
+ writeFileSync(path.join(authConfigFilePath), JSON.stringify(config, undefined, 2), {
62
160
  encoding: "utf-8",
63
161
  });
64
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configFiles.js","sourceRoot":"","sources":["../../../src/utilities/configFiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configFiles.js","sourceRoot":"","sources":["../../../src/utilities/configFiles.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
- import { BuildManifest, BuildTarget, TaskRunExecutionPayload, TaskRunExecutionResult } from "@trigger.dev/core/v3";
1
+ import { BuildManifest, BuildTarget, TaskRunExecution, TaskRunExecutionResult } from "@trigger.dev/core/v3";
2
2
  import { EventEmitter } from "node:events";
3
3
  import { BackgroundWorker } from "../dev/backgroundWorker.js";
4
+ import { Socket } from "socket.io-client";
4
5
  export type EventBusEvents = {
5
6
  rebuildStarted: [BuildTarget];
6
7
  buildStarted: [BuildTarget];
8
+ buildFailed: [BuildTarget, Error];
7
9
  workerSkipped: [];
8
10
  backgroundWorkerInitialized: [BackgroundWorker];
9
11
  backgroundWorkerIndexingError: [BuildManifest, Error];
10
- runStarted: [BackgroundWorker, TaskRunExecutionPayload];
11
- runCompleted: [BackgroundWorker, TaskRunExecutionPayload, TaskRunExecutionResult, number];
12
+ runStarted: [BackgroundWorker, TaskRunExecution];
13
+ runCompleted: [BackgroundWorker, TaskRunExecution, TaskRunExecutionResult, number];
14
+ socketConnectionDisconnected: [Socket.DisconnectReason];
15
+ socketConnectionReconnected: [string];
12
16
  };
13
17
  export type EventBusEventArgs<T extends keyof EventBusEvents> = EventBusEvents[T];
14
18
  export declare const eventBus: EventEmitter<EventBusEvents>;
@@ -1 +1 @@
1
- {"version":3,"file":"eventBus.js","sourceRoot":"","sources":["../../../src/utilities/eventBus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAe3C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAkB,CAAC"}
1
+ {"version":3,"file":"eventBus.js","sourceRoot":"","sources":["../../../src/utilities/eventBus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmB3C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAkB,CAAC"}
@@ -4,9 +4,15 @@ export declare function pathExists(path: string): Promise<boolean>;
4
4
  export declare function someFileExists(directory: string, filenames: string[]): Promise<boolean>;
5
5
  export declare function removeFile(path: string): Promise<void>;
6
6
  export declare function readFile(path: string): Promise<string>;
7
+ export declare function expandTilde(filePath: string): string;
7
8
  export declare function readJSONFile(path: string): Promise<any>;
8
- export declare function safeFeadJSONFile(path: string): Promise<any>;
9
+ export declare function safeReadJSONFile(path: string): Promise<any>;
9
10
  export declare function writeJSONFile(path: string, json: any, pretty?: boolean): Promise<void>;
11
+ export declare function safeWriteFile(path: string, contents: string): Promise<void>;
10
12
  export declare function readJSONFileSync(path: string): any;
11
13
  export declare function safeDeleteFileSync(path: string): void;
12
14
  export declare function createTempDir(): Promise<string>;
15
+ export declare function safeReadTomlFile(path: string): Promise<unknown>;
16
+ export declare function writeTomlFile(path: string, toml: any): Promise<void>;
17
+ export declare function safeReadJSONCFile(path: string): Promise<unknown>;
18
+ export declare function writeJSONCFile(path: string, json: any): Promise<void>;
@@ -1,8 +1,9 @@
1
1
  import fsSync from "fs";
2
- import fsModule, { writeFile } from "fs/promises";
2
+ import fsModule from "fs/promises";
3
3
  import fs from "node:fs";
4
- import { tmpdir } from "node:os";
4
+ import { homedir, tmpdir } from "node:os";
5
5
  import pathModule from "node:path";
6
+ import { parseJSONC, stringifyJSONC, parseTOML, stringifyTOML } from "confbox";
6
7
  // Creates a file at the given path, if the directory doesn't exist it will be created
7
8
  export async function createFile(path, contents) {
8
9
  await fsModule.mkdir(pathModule.dirname(path), { recursive: true });
@@ -39,11 +40,23 @@ export async function removeFile(path) {
39
40
  export async function readFile(path) {
40
41
  return await fsModule.readFile(path, "utf8");
41
42
  }
43
+ export function expandTilde(filePath) {
44
+ if (typeof filePath !== "string") {
45
+ throw new TypeError("Path must be a string");
46
+ }
47
+ if (filePath === "~") {
48
+ return homedir();
49
+ }
50
+ if (filePath.startsWith("~/")) {
51
+ return pathModule.resolve(homedir(), filePath.slice(2));
52
+ }
53
+ return pathModule.resolve(filePath);
54
+ }
42
55
  export async function readJSONFile(path) {
43
56
  const fileContents = await fsModule.readFile(path, "utf8");
44
57
  return JSON.parse(fileContents);
45
58
  }
46
- export async function safeFeadJSONFile(path) {
59
+ export async function safeReadJSONFile(path) {
47
60
  try {
48
61
  const fileExists = await pathExists(path);
49
62
  if (!fileExists)
@@ -56,7 +69,12 @@ export async function safeFeadJSONFile(path) {
56
69
  }
57
70
  }
58
71
  export async function writeJSONFile(path, json, pretty = false) {
59
- await writeFile(path, JSON.stringify(json, undefined, pretty ? 2 : undefined), "utf8");
72
+ await safeWriteFile(path, JSON.stringify(json, undefined, pretty ? 2 : undefined));
73
+ }
74
+ // Will create the directory if it doesn't exist
75
+ export async function safeWriteFile(path, contents) {
76
+ await fsModule.mkdir(pathModule.dirname(path), { recursive: true });
77
+ await fsModule.writeFile(path, contents);
60
78
  }
61
79
  export function readJSONFileSync(path) {
62
80
  const fileContents = fsSync.readFileSync(path, "utf8");
@@ -78,4 +96,24 @@ export async function createTempDir() {
78
96
  const directory = await fsModule.mkdtemp(tempDirPath);
79
97
  return directory;
80
98
  }
99
+ export async function safeReadTomlFile(path) {
100
+ const fileExists = await pathExists(path);
101
+ if (!fileExists)
102
+ return;
103
+ const fileContents = await readFile(path);
104
+ return parseTOML(fileContents.replace(/\r\n/g, "\n"));
105
+ }
106
+ export async function writeTomlFile(path, toml) {
107
+ await safeWriteFile(path, stringifyTOML(toml));
108
+ }
109
+ export async function safeReadJSONCFile(path) {
110
+ const fileExists = await pathExists(path);
111
+ if (!fileExists)
112
+ return;
113
+ const fileContents = await readFile(path);
114
+ return parseJSONC(fileContents.replace(/\r\n/g, "\n"));
115
+ }
116
+ export async function writeJSONCFile(path, json) {
117
+ await safeWriteFile(path, stringifyJSONC(json));
118
+ }
81
119
  //# sourceMappingURL=fileSystem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fileSystem.js","sourceRoot":"","sources":["../../../src/utilities/fileSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileSystem.js","sourceRoot":"","sources":["../../../src/utilities/fileSystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { GitMeta } from "@trigger.dev/core/v3";
2
+ export declare function createGitMeta(directory: string): Promise<GitMeta | undefined>;
@@ -0,0 +1,220 @@
1
+ import fs from "fs/promises";
2
+ import { join } from "path";
3
+ import ini from "ini";
4
+ import git from "git-last-commit";
5
+ import { x } from "tinyexec";
6
+ export async function createGitMeta(directory) {
7
+ if (isGitHubApp()) {
8
+ return getGitHubAppMeta();
9
+ }
10
+ if (isGitHubActions()) {
11
+ return getGitHubActionsMeta();
12
+ }
13
+ // Fall back to git commands for local development
14
+ const remoteUrl = await getOriginUrl(join(directory, ".git/config"));
15
+ const [commitResult, dirtyResult] = await Promise.allSettled([
16
+ getLastCommit(directory),
17
+ isDirty(directory),
18
+ ]);
19
+ if (commitResult.status === "rejected") {
20
+ return;
21
+ }
22
+ if (dirtyResult.status === "rejected") {
23
+ return;
24
+ }
25
+ const dirty = dirtyResult.value;
26
+ const commit = commitResult.value;
27
+ return {
28
+ source: "local",
29
+ remoteUrl: remoteUrl ?? undefined,
30
+ commitAuthorName: commit.author.name,
31
+ commitMessage: commit.subject,
32
+ commitRef: commit.branch,
33
+ commitSha: commit.hash,
34
+ dirty,
35
+ };
36
+ }
37
+ function getLastCommit(directory) {
38
+ return new Promise((resolve, reject) => {
39
+ git.getLastCommit((err, commit) => {
40
+ if (err) {
41
+ return reject(err);
42
+ }
43
+ resolve(commit);
44
+ }, { dst: directory });
45
+ });
46
+ }
47
+ async function isDirty(directory) {
48
+ try {
49
+ const result = await x("git", ["--no-optional-locks", "status", "-s"], {
50
+ nodeOptions: {
51
+ cwd: directory,
52
+ },
53
+ });
54
+ // Example output (when dirty):
55
+ // M ../fs-detectors/src/index.ts
56
+ return result.stdout.trim().length > 0;
57
+ }
58
+ catch (error) {
59
+ throw error;
60
+ }
61
+ }
62
+ async function parseGitConfig(configPath) {
63
+ try {
64
+ return ini.parse(await fs.readFile(configPath, "utf8"));
65
+ }
66
+ catch (err) {
67
+ return;
68
+ }
69
+ }
70
+ function pluckOriginUrl(gitConfig) {
71
+ // Assuming "origin" is the remote url that the user would want to use
72
+ return gitConfig['remote "origin"']?.url;
73
+ }
74
+ async function getOriginUrl(configPath) {
75
+ const gitConfig = await parseGitConfig(configPath);
76
+ if (!gitConfig) {
77
+ return null;
78
+ }
79
+ const originUrl = pluckOriginUrl(gitConfig);
80
+ if (originUrl) {
81
+ return originUrl;
82
+ }
83
+ return null;
84
+ }
85
+ function errorToString(err) {
86
+ return err instanceof Error ? err.message : String(err);
87
+ }
88
+ function isGitHubActions() {
89
+ // GH Actions CI sets these env variables
90
+ return (process.env.GITHUB_ACTIONS === "true" &&
91
+ process.env.GITHUB_SHA !== undefined &&
92
+ process.env.GITHUB_REF !== undefined);
93
+ }
94
+ async function getGitHubActionsMeta() {
95
+ const remoteUrl = process.env.GITHUB_SERVER_URL && process.env.GITHUB_REPOSITORY
96
+ ? `${process.env.GITHUB_SERVER_URL}/${process.env.GITHUB_REPOSITORY}.git`
97
+ : undefined;
98
+ // GITHUB_SHA and GITHUB_REF are both set in GH Actions CI
99
+ const githubSha = process.env.GITHUB_SHA ?? "";
100
+ const githubRef = process.env.GITHUB_REF ?? "";
101
+ // For push events, GITHUB_REF is fully qualified, e.g., "refs/heads/main"
102
+ let commitRef = githubRef.replace(/^refs\/(heads|tags)\//, "");
103
+ let commitMessage;
104
+ let commitSha = githubSha;
105
+ let pullRequestNumber;
106
+ let pullRequestTitle;
107
+ let pullRequestState;
108
+ if (process.env.GITHUB_EVENT_PATH) {
109
+ try {
110
+ const eventData = JSON.parse(await fs.readFile(process.env.GITHUB_EVENT_PATH, "utf8"));
111
+ if (process.env.GITHUB_EVENT_NAME === "push") {
112
+ commitMessage = eventData.head_commit?.message;
113
+ }
114
+ else if (process.env.GITHUB_EVENT_NAME === "pull_request") {
115
+ // For PRs, use the head commit info
116
+ pullRequestTitle = eventData.pull_request?.title;
117
+ commitRef = eventData.pull_request?.head?.ref;
118
+ pullRequestNumber = eventData.pull_request?.number;
119
+ commitSha = eventData.pull_request?.head?.sha;
120
+ pullRequestState = eventData.pull_request?.state;
121
+ // Check if PR was merged
122
+ if (pullRequestState === "closed" && eventData.pull_request?.merged === true) {
123
+ pullRequestState = "merged";
124
+ }
125
+ await x("git", ["status"], {
126
+ nodeOptions: {
127
+ cwd: process.cwd(),
128
+ },
129
+ }).then((result) => console.debug(result.stdout));
130
+ commitMessage = await getCommitMessage(process.cwd(), commitSha, pullRequestNumber);
131
+ }
132
+ }
133
+ catch (error) {
134
+ console.debug("Failed to parse GitHub event payload:", errorToString(error));
135
+ }
136
+ }
137
+ else {
138
+ console.debug("No GITHUB_EVENT_PATH found");
139
+ }
140
+ return {
141
+ provider: "github",
142
+ source: "github_actions",
143
+ remoteUrl,
144
+ commitSha,
145
+ commitRef,
146
+ // In CI, the workspace is always clean
147
+ dirty: false,
148
+ // These fields might not be available in all GitHub Actions contexts
149
+ commitAuthorName: process.env.GITHUB_ACTOR,
150
+ commitMessage,
151
+ pullRequestNumber: pullRequestNumber ??
152
+ (process.env.GITHUB_PULL_REQUEST_NUMBER
153
+ ? parseInt(process.env.GITHUB_PULL_REQUEST_NUMBER)
154
+ : undefined),
155
+ pullRequestTitle,
156
+ pullRequestState,
157
+ };
158
+ }
159
+ function isGitHubApp() {
160
+ // we set this env variable in our build server
161
+ return process.env.TRIGGER_GITHUB_APP === "true";
162
+ }
163
+ function getGitHubAppMeta() {
164
+ return {
165
+ provider: "github",
166
+ source: "trigger_github_app",
167
+ remoteUrl: process.env.GITHUB_REPOSITORY_URL,
168
+ commitSha: process.env.GITHUB_HEAD_COMMIT_SHA,
169
+ commitRef: process.env.GITHUB_REF?.replace(/^refs\/(heads|tags)\//, ""),
170
+ commitMessage: process.env.GITHUB_HEAD_COMMIT_MESSAGE,
171
+ commitAuthorName: process.env.GITHUB_HEAD_COMMIT_AUTHOR_NAME,
172
+ pullRequestNumber: process.env.GITHUB_PULL_REQUEST_NUMBER
173
+ ? parseInt(process.env.GITHUB_PULL_REQUEST_NUMBER)
174
+ : undefined,
175
+ pullRequestTitle: process.env.GITHUB_PULL_REQUEST_TITLE,
176
+ pullRequestState: process.env.GITHUB_PULL_REQUEST_STATE,
177
+ // the workspace is always clean as we clone the repo in the build server
178
+ dirty: false,
179
+ ghUsername: process.env.GITHUB_USERNAME,
180
+ ghUserAvatarUrl: process.env.GITHUB_USER_AVATAR_URL,
181
+ };
182
+ }
183
+ async function getCommitMessage(directory, sha, prNumber) {
184
+ try {
185
+ // First try to fetch the specific commit
186
+ await x("git", ["fetch", "origin", sha], {
187
+ nodeOptions: {
188
+ cwd: directory,
189
+ },
190
+ });
191
+ // Try to get the commit message
192
+ const result = await x("git", ["log", "-1", "--format=%B", sha], {
193
+ nodeOptions: {
194
+ cwd: directory,
195
+ },
196
+ });
197
+ const message = result.stdout.trim();
198
+ if (!message && prNumber) {
199
+ // If that didn't work, try fetching the PR branch
200
+ const branchResult = await x("git", ["fetch", "origin", `pull/${prNumber}/head:pr-${prNumber}`], {
201
+ nodeOptions: {
202
+ cwd: directory,
203
+ },
204
+ });
205
+ // Try again with the fetched branch
206
+ const branchCommitResult = await x("git", ["log", "-1", "--format=%B", `pr-${prNumber}`], {
207
+ nodeOptions: {
208
+ cwd: directory,
209
+ },
210
+ });
211
+ return branchCommitResult.stdout.trim();
212
+ }
213
+ return message;
214
+ }
215
+ catch (error) {
216
+ console.debug("Error getting commit message:", errorToString(error));
217
+ return undefined;
218
+ }
219
+ }
220
+ //# sourceMappingURL=gitMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitMeta.js","sourceRoot":"","sources":["../../../src/utilities/gitMeta.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function setGithubActionsOutputAndEnvVars({ envVars, outputs, }: {
2
+ envVars: Record<string, string>;
3
+ outputs: Record<string, string>;
4
+ }): void;
@@ -0,0 +1,18 @@
1
+ import { appendFileSync } from "node:fs";
2
+ export function setGithubActionsOutputAndEnvVars({ envVars, outputs, }) {
3
+ // Set environment variables
4
+ if (process.env.GITHUB_ENV) {
5
+ const contents = Object.entries(envVars)
6
+ .map(([key, value]) => `${key}=${value}`)
7
+ .join("\n");
8
+ appendFileSync(process.env.GITHUB_ENV, contents);
9
+ }
10
+ // Set outputs
11
+ if (process.env.GITHUB_OUTPUT) {
12
+ const contents = Object.entries(outputs)
13
+ .map(([key, value]) => `${key}=${value}`)
14
+ .join("\n");
15
+ appendFileSync(process.env.GITHUB_OUTPUT, contents);
16
+ }
17
+ }
18
+ //# sourceMappingURL=githubActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubActions.js","sourceRoot":"","sources":["../../../src/utilities/githubActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,UAAU,gCAAgC,CAAC,EAC/C,OAAO,EACP,OAAO,GAIR;IACC,4BAA4B;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,cAAc;IACd,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}