@playcraft/common 0.1.24 → 0.1.25

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 (297) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/session-title.d.ts +1 -1
  3. package/dist/agent/session-title.js +1 -1
  4. package/dist/agent-messages/db-message-converter.d.ts +10 -0
  5. package/dist/agent-messages/db-message-converter.d.ts.map +1 -1
  6. package/dist/agent-messages/db-message-converter.js +13 -0
  7. package/dist/agent-messages/db-message-converter.js.map +1 -1
  8. package/dist/agent-tools/index.d.ts +5 -0
  9. package/dist/agent-tools/index.d.ts.map +1 -1
  10. package/dist/agent-tools/index.js +5 -0
  11. package/dist/agent-tools/index.js.map +1 -1
  12. package/dist/agent-tools/operation-protocol.d.ts +10 -0
  13. package/dist/agent-tools/operation-protocol.d.ts.map +1 -0
  14. package/dist/agent-tools/operation-protocol.js +13 -0
  15. package/dist/agent-tools/operation-protocol.js.map +1 -0
  16. package/dist/agent-tools/replica-recording.d.ts +283 -0
  17. package/dist/agent-tools/replica-recording.d.ts.map +1 -0
  18. package/dist/agent-tools/replica-recording.js +109 -0
  19. package/dist/agent-tools/replica-recording.js.map +1 -0
  20. package/dist/agent-tools/replica-validation.d.ts +972 -0
  21. package/dist/agent-tools/replica-validation.d.ts.map +1 -0
  22. package/dist/agent-tools/replica-validation.js +254 -0
  23. package/dist/agent-tools/replica-validation.js.map +1 -0
  24. package/dist/agent-tools/types.d.ts +9 -7
  25. package/dist/agent-tools/types.d.ts.map +1 -1
  26. package/dist/agent-tools/types.js.map +1 -1
  27. package/dist/agent-tools/video-model-proxy.d.ts +113 -0
  28. package/dist/agent-tools/video-model-proxy.d.ts.map +1 -0
  29. package/dist/agent-tools/video-model-proxy.js +49 -0
  30. package/dist/agent-tools/video-model-proxy.js.map +1 -0
  31. package/dist/agent-tools/video-replication.d.ts +421 -0
  32. package/dist/agent-tools/video-replication.d.ts.map +1 -0
  33. package/dist/agent-tools/video-replication.js +95 -0
  34. package/dist/agent-tools/video-replication.js.map +1 -0
  35. package/dist/cloud-workspace/runtime/agent-background-processes.d.ts +68 -0
  36. package/dist/cloud-workspace/runtime/agent-background-processes.d.ts.map +1 -0
  37. package/dist/cloud-workspace/runtime/agent-background-processes.js +60 -0
  38. package/dist/cloud-workspace/runtime/agent-background-processes.js.map +1 -0
  39. package/dist/cloud-workspace/runtime/agent-chat-flush.d.ts +55 -0
  40. package/dist/cloud-workspace/runtime/agent-chat-flush.d.ts.map +1 -0
  41. package/dist/cloud-workspace/runtime/agent-chat-flush.js +51 -0
  42. package/dist/cloud-workspace/runtime/agent-chat-flush.js.map +1 -0
  43. package/dist/cloud-workspace/runtime/agent-command.d.ts +152 -0
  44. package/dist/cloud-workspace/runtime/agent-command.d.ts.map +1 -0
  45. package/dist/cloud-workspace/runtime/agent-command.js +90 -0
  46. package/dist/cloud-workspace/runtime/agent-command.js.map +1 -0
  47. package/dist/cloud-workspace/runtime/agent-competitor-report.d.ts +143 -0
  48. package/dist/cloud-workspace/runtime/agent-competitor-report.d.ts.map +1 -0
  49. package/dist/cloud-workspace/runtime/agent-competitor-report.js +115 -0
  50. package/dist/cloud-workspace/runtime/agent-competitor-report.js.map +1 -0
  51. package/dist/cloud-workspace/runtime/agent-connection.d.ts +76 -0
  52. package/dist/cloud-workspace/runtime/agent-connection.d.ts.map +1 -0
  53. package/dist/cloud-workspace/runtime/agent-connection.js +59 -0
  54. package/dist/cloud-workspace/runtime/agent-connection.js.map +1 -0
  55. package/dist/cloud-workspace/runtime/agent-issue-artifacts.d.ts +90 -0
  56. package/dist/cloud-workspace/runtime/agent-issue-artifacts.d.ts.map +1 -0
  57. package/dist/cloud-workspace/runtime/agent-issue-artifacts.js +60 -0
  58. package/dist/cloud-workspace/runtime/agent-issue-artifacts.js.map +1 -0
  59. package/dist/cloud-workspace/runtime/agent-lifecycle.d.ts +87 -0
  60. package/dist/cloud-workspace/runtime/agent-lifecycle.d.ts.map +1 -0
  61. package/dist/cloud-workspace/runtime/agent-lifecycle.js +75 -0
  62. package/dist/cloud-workspace/runtime/agent-lifecycle.js.map +1 -0
  63. package/dist/cloud-workspace/runtime/agent-mutation.d.ts +197 -0
  64. package/dist/cloud-workspace/runtime/agent-mutation.d.ts.map +1 -0
  65. package/dist/cloud-workspace/runtime/agent-mutation.js +114 -0
  66. package/dist/cloud-workspace/runtime/agent-mutation.js.map +1 -0
  67. package/dist/cloud-workspace/runtime/agent-opencode-gateway.d.ts +210 -0
  68. package/dist/cloud-workspace/runtime/agent-opencode-gateway.d.ts.map +1 -0
  69. package/dist/cloud-workspace/runtime/agent-opencode-gateway.js +180 -0
  70. package/dist/cloud-workspace/runtime/agent-opencode-gateway.js.map +1 -0
  71. package/dist/cloud-workspace/runtime/agent-opencode.d.ts +406 -0
  72. package/dist/cloud-workspace/runtime/agent-opencode.d.ts.map +1 -0
  73. package/dist/cloud-workspace/runtime/agent-opencode.js +237 -0
  74. package/dist/cloud-workspace/runtime/agent-opencode.js.map +1 -0
  75. package/dist/cloud-workspace/runtime/agent-promotion.d.ts +21 -0
  76. package/dist/cloud-workspace/runtime/agent-promotion.d.ts.map +1 -0
  77. package/dist/cloud-workspace/runtime/agent-promotion.js +23 -0
  78. package/dist/cloud-workspace/runtime/agent-promotion.js.map +1 -0
  79. package/dist/cloud-workspace/runtime/agent-read.d.ts +343 -0
  80. package/dist/cloud-workspace/runtime/agent-read.d.ts.map +1 -0
  81. package/dist/cloud-workspace/runtime/agent-read.js +159 -0
  82. package/dist/cloud-workspace/runtime/agent-read.js.map +1 -0
  83. package/dist/cloud-workspace/runtime/agent-source-project.d.ts +126 -0
  84. package/dist/cloud-workspace/runtime/agent-source-project.d.ts.map +1 -0
  85. package/dist/cloud-workspace/runtime/agent-source-project.js +95 -0
  86. package/dist/cloud-workspace/runtime/agent-source-project.js.map +1 -0
  87. package/dist/cloud-workspace/runtime/agent-tool-claim.d.ts +18 -0
  88. package/dist/cloud-workspace/runtime/agent-tool-claim.d.ts.map +1 -0
  89. package/dist/cloud-workspace/runtime/agent-tool-claim.js +16 -0
  90. package/dist/cloud-workspace/runtime/agent-tool-claim.js.map +1 -0
  91. package/dist/cloud-workspace/runtime/agent-variant-chat.d.ts +9 -0
  92. package/dist/cloud-workspace/runtime/agent-variant-chat.d.ts.map +1 -0
  93. package/dist/cloud-workspace/runtime/agent-variant-chat.js +23 -0
  94. package/dist/cloud-workspace/runtime/agent-variant-chat.js.map +1 -0
  95. package/dist/cloud-workspace/runtime/agent-variant-git.d.ts +75 -0
  96. package/dist/cloud-workspace/runtime/agent-variant-git.d.ts.map +1 -0
  97. package/dist/cloud-workspace/runtime/agent-variant-git.js +62 -0
  98. package/dist/cloud-workspace/runtime/agent-variant-git.js.map +1 -0
  99. package/dist/cloud-workspace/runtime/artifacts.d.ts +233 -0
  100. package/dist/cloud-workspace/runtime/artifacts.d.ts.map +1 -0
  101. package/dist/cloud-workspace/runtime/artifacts.js +94 -0
  102. package/dist/cloud-workspace/runtime/artifacts.js.map +1 -0
  103. package/dist/cloud-workspace/runtime/attachments.d.ts +28 -0
  104. package/dist/cloud-workspace/runtime/attachments.d.ts.map +1 -0
  105. package/dist/cloud-workspace/runtime/attachments.js +34 -0
  106. package/dist/cloud-workspace/runtime/attachments.js.map +1 -0
  107. package/dist/cloud-workspace/runtime/batch-generation.d.ts +229 -0
  108. package/dist/cloud-workspace/runtime/batch-generation.d.ts.map +1 -0
  109. package/dist/cloud-workspace/runtime/batch-generation.js +244 -0
  110. package/dist/cloud-workspace/runtime/batch-generation.js.map +1 -0
  111. package/dist/cloud-workspace/runtime/batch-production.d.ts +474 -0
  112. package/dist/cloud-workspace/runtime/batch-production.d.ts.map +1 -0
  113. package/dist/cloud-workspace/runtime/batch-production.js +61 -0
  114. package/dist/cloud-workspace/runtime/batch-production.js.map +1 -0
  115. package/dist/cloud-workspace/runtime/capabilities.d.ts +40 -0
  116. package/dist/cloud-workspace/runtime/capabilities.d.ts.map +1 -0
  117. package/dist/cloud-workspace/runtime/capabilities.js +53 -0
  118. package/dist/cloud-workspace/runtime/capabilities.js.map +1 -0
  119. package/dist/cloud-workspace/runtime/chat-realtime-admission.d.ts +53 -0
  120. package/dist/cloud-workspace/runtime/chat-realtime-admission.d.ts.map +1 -0
  121. package/dist/cloud-workspace/runtime/chat-realtime-admission.js +95 -0
  122. package/dist/cloud-workspace/runtime/chat-realtime-admission.js.map +1 -0
  123. package/dist/cloud-workspace/runtime/chat-realtime.d.ts +197 -0
  124. package/dist/cloud-workspace/runtime/chat-realtime.d.ts.map +1 -0
  125. package/dist/cloud-workspace/runtime/chat-realtime.js +299 -0
  126. package/dist/cloud-workspace/runtime/chat-realtime.js.map +1 -0
  127. package/dist/cloud-workspace/runtime/checkpoints.d.ts +35 -0
  128. package/dist/cloud-workspace/runtime/checkpoints.d.ts.map +1 -0
  129. package/dist/cloud-workspace/runtime/checkpoints.js +35 -0
  130. package/dist/cloud-workspace/runtime/checkpoints.js.map +1 -0
  131. package/dist/cloud-workspace/runtime/config.d.ts +47 -0
  132. package/dist/cloud-workspace/runtime/config.d.ts.map +1 -0
  133. package/dist/cloud-workspace/runtime/config.js +125 -0
  134. package/dist/cloud-workspace/runtime/config.js.map +1 -0
  135. package/dist/cloud-workspace/runtime/connectivity.d.ts +205 -0
  136. package/dist/cloud-workspace/runtime/connectivity.d.ts.map +1 -0
  137. package/dist/cloud-workspace/runtime/connectivity.js +46 -0
  138. package/dist/cloud-workspace/runtime/connectivity.js.map +1 -0
  139. package/dist/cloud-workspace/runtime/errors.d.ts +26 -0
  140. package/dist/cloud-workspace/runtime/errors.d.ts.map +1 -0
  141. package/dist/cloud-workspace/runtime/errors.js +40 -0
  142. package/dist/cloud-workspace/runtime/errors.js.map +1 -0
  143. package/dist/cloud-workspace/runtime/events.d.ts +107 -0
  144. package/dist/cloud-workspace/runtime/events.d.ts.map +1 -0
  145. package/dist/cloud-workspace/runtime/events.js +70 -0
  146. package/dist/cloud-workspace/runtime/events.js.map +1 -0
  147. package/dist/cloud-workspace/runtime/execution-grant.d.ts +36 -0
  148. package/dist/cloud-workspace/runtime/execution-grant.d.ts.map +1 -0
  149. package/dist/cloud-workspace/runtime/execution-grant.js +102 -0
  150. package/dist/cloud-workspace/runtime/execution-grant.js.map +1 -0
  151. package/dist/cloud-workspace/runtime/files.d.ts +74 -0
  152. package/dist/cloud-workspace/runtime/files.d.ts.map +1 -0
  153. package/dist/cloud-workspace/runtime/files.js +93 -0
  154. package/dist/cloud-workspace/runtime/files.js.map +1 -0
  155. package/dist/cloud-workspace/runtime/generations.d.ts +18 -0
  156. package/dist/cloud-workspace/runtime/generations.d.ts.map +1 -0
  157. package/dist/cloud-workspace/runtime/generations.js +39 -0
  158. package/dist/cloud-workspace/runtime/generations.js.map +1 -0
  159. package/dist/cloud-workspace/runtime/git-auth-mode.d.ts +35 -0
  160. package/dist/cloud-workspace/runtime/git-auth-mode.d.ts.map +1 -0
  161. package/dist/cloud-workspace/runtime/git-auth-mode.js +73 -0
  162. package/dist/cloud-workspace/runtime/git-auth-mode.js.map +1 -0
  163. package/dist/cloud-workspace/runtime/git.d.ts +103 -0
  164. package/dist/cloud-workspace/runtime/git.d.ts.map +1 -0
  165. package/dist/cloud-workspace/runtime/git.js +91 -0
  166. package/dist/cloud-workspace/runtime/git.js.map +1 -0
  167. package/dist/cloud-workspace/runtime/handshake.d.ts +47 -0
  168. package/dist/cloud-workspace/runtime/handshake.d.ts.map +1 -0
  169. package/dist/cloud-workspace/runtime/handshake.js +31 -0
  170. package/dist/cloud-workspace/runtime/handshake.js.map +1 -0
  171. package/dist/cloud-workspace/runtime/index.d.ts +48 -0
  172. package/dist/cloud-workspace/runtime/index.d.ts.map +1 -0
  173. package/dist/cloud-workspace/runtime/index.js +48 -0
  174. package/dist/cloud-workspace/runtime/index.js.map +1 -0
  175. package/dist/cloud-workspace/runtime/native-history.d.ts +66 -0
  176. package/dist/cloud-workspace/runtime/native-history.d.ts.map +1 -0
  177. package/dist/cloud-workspace/runtime/native-history.js +127 -0
  178. package/dist/cloud-workspace/runtime/native-history.js.map +1 -0
  179. package/dist/cloud-workspace/runtime/operations.d.ts +189 -0
  180. package/dist/cloud-workspace/runtime/operations.d.ts.map +1 -0
  181. package/dist/cloud-workspace/runtime/operations.js +192 -0
  182. package/dist/cloud-workspace/runtime/operations.js.map +1 -0
  183. package/dist/cloud-workspace/runtime/parameters.d.ts +38 -0
  184. package/dist/cloud-workspace/runtime/parameters.d.ts.map +1 -0
  185. package/dist/cloud-workspace/runtime/parameters.js +75 -0
  186. package/dist/cloud-workspace/runtime/parameters.js.map +1 -0
  187. package/dist/cloud-workspace/runtime/platform-endpoints.d.ts +24 -0
  188. package/dist/cloud-workspace/runtime/platform-endpoints.d.ts.map +1 -0
  189. package/dist/cloud-workspace/runtime/platform-endpoints.js +36 -0
  190. package/dist/cloud-workspace/runtime/platform-endpoints.js.map +1 -0
  191. package/dist/cloud-workspace/runtime/previews.d.ts +59 -0
  192. package/dist/cloud-workspace/runtime/previews.d.ts.map +1 -0
  193. package/dist/cloud-workspace/runtime/previews.js +63 -0
  194. package/dist/cloud-workspace/runtime/previews.js.map +1 -0
  195. package/dist/cloud-workspace/runtime/project-native-skills.d.ts +40 -0
  196. package/dist/cloud-workspace/runtime/project-native-skills.d.ts.map +1 -0
  197. package/dist/cloud-workspace/runtime/project-native-skills.js +45 -0
  198. package/dist/cloud-workspace/runtime/project-native-skills.js.map +1 -0
  199. package/dist/cloud-workspace/runtime/protocol.d.ts +23 -0
  200. package/dist/cloud-workspace/runtime/protocol.d.ts.map +1 -0
  201. package/dist/cloud-workspace/runtime/protocol.js +30 -0
  202. package/dist/cloud-workspace/runtime/protocol.js.map +1 -0
  203. package/dist/cloud-workspace/runtime/resource-grant.d.ts +62 -0
  204. package/dist/cloud-workspace/runtime/resource-grant.d.ts.map +1 -0
  205. package/dist/cloud-workspace/runtime/resource-grant.js +87 -0
  206. package/dist/cloud-workspace/runtime/resource-grant.js.map +1 -0
  207. package/dist/cloud-workspace/runtime/skills.d.ts +39 -0
  208. package/dist/cloud-workspace/runtime/skills.d.ts.map +1 -0
  209. package/dist/cloud-workspace/runtime/skills.js +33 -0
  210. package/dist/cloud-workspace/runtime/skills.js.map +1 -0
  211. package/dist/cloud-workspace/runtime/terminal-session.d.ts +78 -0
  212. package/dist/cloud-workspace/runtime/terminal-session.d.ts.map +1 -0
  213. package/dist/cloud-workspace/runtime/terminal-session.js +178 -0
  214. package/dist/cloud-workspace/runtime/terminal-session.js.map +1 -0
  215. package/dist/cloud-workspace/runtime/terminals.d.ts +90 -0
  216. package/dist/cloud-workspace/runtime/terminals.d.ts.map +1 -0
  217. package/dist/cloud-workspace/runtime/terminals.js +111 -0
  218. package/dist/cloud-workspace/runtime/terminals.js.map +1 -0
  219. package/dist/cloud-workspace/runtime/variant-workspace.d.ts +221 -0
  220. package/dist/cloud-workspace/runtime/variant-workspace.d.ts.map +1 -0
  221. package/dist/cloud-workspace/runtime/variant-workspace.js +75 -0
  222. package/dist/cloud-workspace/runtime/variant-workspace.js.map +1 -0
  223. package/dist/cloud-workspace/runtime/workspace-binding.d.ts +208 -0
  224. package/dist/cloud-workspace/runtime/workspace-binding.d.ts.map +1 -0
  225. package/dist/cloud-workspace/runtime/workspace-binding.js +176 -0
  226. package/dist/cloud-workspace/runtime/workspace-binding.js.map +1 -0
  227. package/dist/cloud-workspace/runtime/workspace-directories.d.ts +44 -0
  228. package/dist/cloud-workspace/runtime/workspace-directories.d.ts.map +1 -0
  229. package/dist/cloud-workspace/runtime/workspace-directories.js +34 -0
  230. package/dist/cloud-workspace/runtime/workspace-directories.js.map +1 -0
  231. package/dist/database/operators.d.ts +2 -0
  232. package/dist/database/operators.d.ts.map +1 -0
  233. package/dist/database/operators.js +2 -0
  234. package/dist/database/operators.js.map +1 -0
  235. package/dist/database/postgres-adapter.js +1 -1
  236. package/dist/database/postgres-adapter.js.map +1 -1
  237. package/dist/database/schema.d.ts +1 -1
  238. package/dist/database/schema.js +1 -1
  239. package/dist/model-proxy/index.d.ts +26 -0
  240. package/dist/model-proxy/index.d.ts.map +1 -0
  241. package/dist/model-proxy/index.js +81 -0
  242. package/dist/model-proxy/index.js.map +1 -0
  243. package/dist/project-skills/bundle-archive.d.ts +21 -0
  244. package/dist/project-skills/bundle-archive.d.ts.map +1 -0
  245. package/dist/project-skills/bundle-archive.js +165 -0
  246. package/dist/project-skills/bundle-archive.js.map +1 -0
  247. package/dist/project-skills/bundle-path.d.ts +3 -0
  248. package/dist/project-skills/bundle-path.d.ts.map +1 -0
  249. package/dist/project-skills/bundle-path.js +17 -0
  250. package/dist/project-skills/bundle-path.js.map +1 -0
  251. package/dist/project-skills/evidence.d.ts +15 -0
  252. package/dist/project-skills/evidence.d.ts.map +1 -0
  253. package/dist/project-skills/evidence.js +33 -0
  254. package/dist/project-skills/evidence.js.map +1 -0
  255. package/dist/project-skills/index.d.ts +7 -0
  256. package/dist/project-skills/index.d.ts.map +1 -0
  257. package/dist/project-skills/index.js +7 -0
  258. package/dist/project-skills/index.js.map +1 -0
  259. package/dist/project-skills/inventory.d.ts +23 -0
  260. package/dist/project-skills/inventory.d.ts.map +1 -0
  261. package/dist/project-skills/inventory.js +150 -0
  262. package/dist/project-skills/inventory.js.map +1 -0
  263. package/dist/project-skills/local-snapshot.d.ts +12 -0
  264. package/dist/project-skills/local-snapshot.d.ts.map +1 -0
  265. package/dist/project-skills/local-snapshot.js +66 -0
  266. package/dist/project-skills/local-snapshot.js.map +1 -0
  267. package/dist/project-skills/protocol.d.ts +31 -0
  268. package/dist/project-skills/protocol.d.ts.map +1 -0
  269. package/dist/project-skills/protocol.js +197 -0
  270. package/dist/project-skills/protocol.js.map +1 -0
  271. package/dist/project-skills/runtime-plugin.d.ts +66 -0
  272. package/dist/project-skills/runtime-plugin.d.ts.map +1 -0
  273. package/dist/project-skills/runtime-plugin.js +102 -0
  274. package/dist/project-skills/runtime-plugin.js.map +1 -0
  275. package/dist/project-skills/types.d.ts +63 -0
  276. package/dist/project-skills/types.d.ts.map +1 -0
  277. package/dist/project-skills/types.js +13 -0
  278. package/dist/project-skills/types.js.map +1 -0
  279. package/dist/recommend/types.d.ts +1 -1
  280. package/dist/recommend/types.js +1 -1
  281. package/dist/remix/auto-name.d.ts +24 -0
  282. package/dist/remix/auto-name.d.ts.map +1 -0
  283. package/dist/remix/auto-name.js +40 -0
  284. package/dist/remix/auto-name.js.map +1 -0
  285. package/dist/remix/index.d.ts +2 -0
  286. package/dist/remix/index.d.ts.map +1 -0
  287. package/dist/remix/index.js +2 -0
  288. package/dist/remix/index.js.map +1 -0
  289. package/dist/skill-evaluation.d.ts +152 -0
  290. package/dist/skill-evaluation.d.ts.map +1 -0
  291. package/dist/skill-evaluation.js +14 -0
  292. package/dist/skill-evaluation.js.map +1 -0
  293. package/dist/storage/cos.d.ts +11 -0
  294. package/dist/storage/cos.d.ts.map +1 -1
  295. package/dist/storage/cos.js +29 -0
  296. package/dist/storage/cos.js.map +1 -1
  297. package/package.json +29 -1
@@ -0,0 +1,244 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { z } from 'zod';
3
+ import { stableStringify } from './operations.js';
4
+ import { workspaceDirectoryNameSchema } from './workspace-directories.js';
5
+ const sha256 = (value) => createHash('sha256').update(value).digest('hex');
6
+ export const MAX_BATCH_VARIANTS = 10;
7
+ export const MAX_BATCH_GENERATION_SLOTS = 3;
8
+ const identitySchema = z.string().trim().min(1).max(128);
9
+ const digestSchema = z.string().regex(/^[a-f0-9]{64}$/);
10
+ const commitSchema = z.string().regex(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/);
11
+ const timestampSchema = z.string().datetime();
12
+ const descriptionSchema = z.string().trim().min(1).max(8_000);
13
+ const previewUrlSchema = z.string().url().max(2_048).refine(value => /^https?:\/\//i.test(value), {
14
+ message: 'batch_preview_url_invalid',
15
+ });
16
+ export const batchVariantDifferenceSchema = z.object({
17
+ variantId: identitySchema,
18
+ name: z.string().trim().min(1).max(200),
19
+ changes: z.array(descriptionSchema).min(1).max(100).readonly(),
20
+ preserves: z.array(descriptionSchema).min(1).max(100).readonly(),
21
+ }).strict().readonly();
22
+ export const batchVariantManifestSchema = z.object({
23
+ batchId: identitySchema,
24
+ version: z.number().int().positive(),
25
+ commonGoal: descriptionSchema,
26
+ sourceDirectoryName: workspaceDirectoryNameSchema.optional(),
27
+ autoStart: z.boolean().optional(),
28
+ variants: z.array(batchVariantDifferenceSchema).min(1).max(MAX_BATCH_VARIANTS).readonly(),
29
+ }).strict().superRefine((value, context) => {
30
+ if (new Set(value.variants.map(variant => variant.variantId)).size !== value.variants.length) {
31
+ context.addIssue({ code: 'custom', path: ['variants'], message: 'batch_variant_identity_duplicate' });
32
+ }
33
+ }).readonly();
34
+ /** Uses SHA-256 (Secure Hash Algorithm 256-bit, 256 位安全散列算法) over the normalized manifest. */
35
+ export function batchVariantManifestDigest(manifest) {
36
+ return sha256(stableStringify(batchVariantManifestSchema.parse(manifest)));
37
+ }
38
+ /**
39
+ * The baseline is a commit on the batch preparation remix that was saved and pushed. `checksum` is the SHA-256 of the
40
+ * commit's full tree listing, so equal engineering content always yields the same checksum.
41
+ */
42
+ export const batchBaselineSnapshotSchema = z.object({
43
+ batchId: identitySchema,
44
+ projectId: identitySchema,
45
+ snapshotId: identitySchema,
46
+ sourceWorkspaceId: identitySchema,
47
+ commitHash: commitSchema,
48
+ checksum: digestSchema,
49
+ sourceVersion: z.string().trim().min(1).max(256),
50
+ engine: z.string().trim().min(1).max(128),
51
+ skillLockDigest: digestSchema,
52
+ frozenAt: timestampSchema,
53
+ }).strict().superRefine((value, context) => {
54
+ if (value.sourceVersion !== batchCommitSourceVersion(value.commitHash)) {
55
+ context.addIssue({ code: 'custom', path: ['sourceVersion'], message: 'batch_snapshot_source_version_mismatch' });
56
+ }
57
+ }).readonly();
58
+ export function batchCommitSourceVersion(commitHash) {
59
+ return `git:${commitHash}`;
60
+ }
61
+ /** The baseline digest binds business ownership, the frozen commit and execution configuration together. */
62
+ export function batchBaselineSnapshotDigest(baseline) {
63
+ return sha256(stableStringify(batchBaselineSnapshotSchema.parse(baseline)));
64
+ }
65
+ export function assertBatchBaselineUnchanged(existing, candidate) {
66
+ const before = batchBaselineSnapshotSchema.parse(existing);
67
+ const after = batchBaselineSnapshotSchema.parse(candidate);
68
+ if (stableStringify(before) !== stableStringify(after))
69
+ throw new Error('batch_baseline_is_immutable');
70
+ }
71
+ /** These facts must come from trusted Runtime receipts; a submitted boolean is not execution evidence. */
72
+ export const batchBaselineValidationSchema = z.object({
73
+ snapshotId: identitySchema,
74
+ snapshotChecksum: digestSchema,
75
+ buildId: identitySchema,
76
+ previewId: identitySchema,
77
+ previewUrl: previewUrlSchema,
78
+ buildSucceeded: z.literal(true),
79
+ previewOpened: z.literal(true),
80
+ writersStopped: z.literal(true),
81
+ validatedAt: timestampSchema,
82
+ }).strict().readonly();
83
+ export const batchApprovalSchema = z.object({
84
+ batchId: identitySchema,
85
+ projectId: identitySchema,
86
+ snapshotId: identitySchema,
87
+ snapshotChecksum: digestSchema,
88
+ baselineDigest: digestSchema,
89
+ manifestVersion: z.number().int().positive(),
90
+ manifestDigest: digestSchema,
91
+ approvedBy: identitySchema,
92
+ approvedAt: timestampSchema,
93
+ }).strict().readonly();
94
+ function verifiedBatchApprovalContext(input) {
95
+ const baseline = batchBaselineSnapshotSchema.parse(input.baseline);
96
+ const manifest = batchVariantManifestSchema.parse(input.manifest);
97
+ const validation = batchBaselineValidationSchema.parse(input.validation);
98
+ if (manifest.batchId !== baseline.batchId)
99
+ throw new Error('batch_identity_mismatch');
100
+ if (validation.snapshotId !== baseline.snapshotId || validation.snapshotChecksum !== baseline.checksum) {
101
+ throw new Error('batch_baseline_validation_mismatch');
102
+ }
103
+ if (Date.parse(validation.validatedAt) < Date.parse(baseline.frozenAt)) {
104
+ throw new Error('batch_validation_precedes_freeze');
105
+ }
106
+ return { baseline, manifest, validation };
107
+ }
108
+ /** Persist creation authorization or the explicit approval and queue admission in one transaction. */
109
+ export function createBatchApproval(input) {
110
+ const { baseline, manifest, validation } = verifiedBatchApprovalContext(input);
111
+ const approval = batchApprovalSchema.parse({
112
+ batchId: baseline.batchId,
113
+ projectId: baseline.projectId,
114
+ snapshotId: baseline.snapshotId,
115
+ snapshotChecksum: baseline.checksum,
116
+ baselineDigest: batchBaselineSnapshotDigest(baseline),
117
+ manifestVersion: manifest.version,
118
+ manifestDigest: batchVariantManifestDigest(manifest),
119
+ approvedBy: input.actorId,
120
+ approvedAt: input.approvedAt,
121
+ });
122
+ if (Date.parse(approval.approvedAt) < Date.parse(validation.validatedAt)) {
123
+ throw new Error('batch_approval_precedes_validation');
124
+ }
125
+ return approval;
126
+ }
127
+ export function assertBatchApproval(input) {
128
+ const { baseline, manifest, validation } = verifiedBatchApprovalContext(input);
129
+ const approval = batchApprovalSchema.parse(input.approval);
130
+ if (approval.batchId !== baseline.batchId || approval.projectId !== baseline.projectId ||
131
+ approval.snapshotId !== baseline.snapshotId || approval.snapshotChecksum !== baseline.checksum ||
132
+ approval.baselineDigest !== batchBaselineSnapshotDigest(baseline) || approval.manifestVersion !== manifest.version ||
133
+ approval.manifestDigest !== batchVariantManifestDigest(manifest)) {
134
+ throw new Error('batch_approval_stale');
135
+ }
136
+ if (Date.parse(approval.approvedAt) < Date.parse(validation.validatedAt)) {
137
+ throw new Error('batch_approval_precedes_validation');
138
+ }
139
+ }
140
+ export const BATCH_ATTEMPT_STATUSES = [
141
+ 'queued', 'preparing', 'generating', 'saving', 'building', 'publishing',
142
+ 'completed', 'failed', 'cancelling', 'cancelled', 'unknown',
143
+ ];
144
+ export const batchAttemptStatusSchema = z.enum(BATCH_ATTEMPT_STATUSES);
145
+ const resultIdentityFields = {
146
+ batchId: identitySchema,
147
+ variantId: identitySchema,
148
+ resultVersionId: identitySchema,
149
+ projectId: identitySchema,
150
+ remixId: identitySchema,
151
+ workspaceId: identitySchema,
152
+ snapshotId: identitySchema,
153
+ snapshotChecksum: digestSchema,
154
+ manifestVersion: z.number().int().positive(),
155
+ manifestDigest: digestSchema,
156
+ };
157
+ export const batchResultVersionSchema = z.object({
158
+ ...resultIdentityFields,
159
+ createdAt: timestampSchema,
160
+ }).strict().readonly();
161
+ export const batchAttemptIdentitySchema = z.object({
162
+ ...resultIdentityFields,
163
+ attemptId: identitySchema,
164
+ }).strict().readonly();
165
+ export function assertBatchAttemptApproved(input) {
166
+ assertBatchApproval(input);
167
+ const attempt = batchAttemptIdentitySchema.parse(input.attempt);
168
+ const { baseline, manifest } = input;
169
+ if (attempt.batchId !== baseline.batchId || attempt.projectId !== baseline.projectId ||
170
+ attempt.snapshotId !== baseline.snapshotId ||
171
+ attempt.snapshotChecksum !== baseline.checksum || attempt.manifestVersion !== manifest.version ||
172
+ attempt.manifestDigest !== batchVariantManifestDigest(manifest) ||
173
+ !manifest.variants.some(variant => variant.variantId === attempt.variantId)) {
174
+ throw new Error('batch_attempt_approval_mismatch');
175
+ }
176
+ }
177
+ export const batchStoppedEvidenceSchema = z.object({
178
+ executionStopped: z.boolean(),
179
+ managedWritesStopped: z.boolean(),
180
+ }).strict();
181
+ export function canReleaseBatchAttempt(status, stopped) {
182
+ const evidence = batchStoppedEvidenceSchema.parse(stopped);
183
+ return (status === 'completed' || status === 'failed' || status === 'cancelled') &&
184
+ evidence.executionStopped && evidence.managedWritesStopped;
185
+ }
186
+ const stageIdentityFields = {
187
+ attemptId: identitySchema,
188
+ resultVersionId: identitySchema,
189
+ workspaceId: identitySchema,
190
+ sourceDigest: digestSchema,
191
+ commitHash: commitSchema,
192
+ };
193
+ export const batchSavedEvidenceSchema = z.object({
194
+ ...stageIdentityFields,
195
+ pushedCommitHash: commitSchema,
196
+ }).strict();
197
+ export const batchBuildEvidenceSchema = z.object({
198
+ ...stageIdentityFields,
199
+ buildId: identitySchema,
200
+ succeeded: z.boolean(),
201
+ }).strict();
202
+ export const batchPreviewEvidenceSchema = z.object({
203
+ ...stageIdentityFields,
204
+ buildId: identitySchema,
205
+ previewId: identitySchema,
206
+ previewUrl: previewUrlSchema,
207
+ published: z.boolean(),
208
+ opened: z.boolean(),
209
+ }).strict();
210
+ export const batchCompletionEvidenceSchema = z.object({
211
+ attempt: batchAttemptIdentitySchema,
212
+ saved: batchSavedEvidenceSchema,
213
+ build: batchBuildEvidenceSchema,
214
+ preview: batchPreviewEvidenceSchema,
215
+ stopped: batchStoppedEvidenceSchema,
216
+ }).strict();
217
+ /** Only evidence from the current attempt and exact saved version can complete a result. */
218
+ export function evaluateBatchCompletion(input) {
219
+ const parsed = batchCompletionEvidenceSchema.safeParse(input);
220
+ if (!parsed.success)
221
+ return { complete: false, reason: 'invalid_evidence' };
222
+ const { attempt, saved, build, preview, stopped } = parsed.data;
223
+ for (const stage of [saved, build, preview]) {
224
+ if (stage.attemptId !== attempt.attemptId || stage.resultVersionId !== attempt.resultVersionId ||
225
+ stage.workspaceId !== attempt.workspaceId)
226
+ return { complete: false, reason: 'attempt_mismatch' };
227
+ }
228
+ if (saved.commitHash !== saved.pushedCommitHash)
229
+ return { complete: false, reason: 'save_unpushed' };
230
+ if (build.commitHash !== saved.commitHash || build.sourceDigest !== saved.sourceDigest) {
231
+ return { complete: false, reason: 'build_mismatch' };
232
+ }
233
+ if (!build.succeeded)
234
+ return { complete: false, reason: 'build_failed' };
235
+ if (preview.buildId !== build.buildId || preview.commitHash !== build.commitHash ||
236
+ preview.sourceDigest !== build.sourceDigest)
237
+ return { complete: false, reason: 'preview_mismatch' };
238
+ if (!preview.published || !preview.opened)
239
+ return { complete: false, reason: 'preview_unavailable' };
240
+ if (!canReleaseBatchAttempt('completed', stopped))
241
+ return { complete: false, reason: 'execution_not_stopped' };
242
+ return { complete: true };
243
+ }
244
+ //# sourceMappingURL=batch-generation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-generation.js","sourceRoot":"","sources":["../../../src/cloud-workspace/runtime/batch-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAE5C,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzD,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACxD,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACzE,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC9C,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9D,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IAChG,OAAO,EAAE,2BAA2B;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,cAAc;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC9D,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACjE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAGvB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,iBAAiB;IAC7B,mBAAmB,EAAE,4BAA4B,CAAC,QAAQ,EAAE;IAC5D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;CAC1F,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7F,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;IACxG,CAAC;AACH,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAGd,8FAA8F;AAC9F,MAAM,UAAU,0BAA0B,CAAC,QAA8B;IACvE,OAAO,MAAM,CAAC,eAAe,CAAC,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,cAAc;IAC1B,iBAAiB,EAAE,cAAc;IACjC,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,eAAe,EAAE,YAAY;IAC7B,QAAQ,EAAE,eAAe;CAC1B,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzC,IAAI,KAAK,CAAC,aAAa,KAAK,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;IACnH,CAAC;AACH,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAGd,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,OAAO,OAAO,UAAU,EAAE,CAAC;AAC7B,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,2BAA2B,CAAC,QAA+B;IACzE,OAAO,MAAM,CAAC,eAAe,CAAC,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,QAA+B,EAAE,SAAgC;IAC5G,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACzG,CAAC;AAED,0GAA0G;AAC1G,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,UAAU,EAAE,cAAc;IAC1B,gBAAgB,EAAE,YAAY;IAC9B,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,gBAAgB;IAC5B,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/B,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9B,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/B,WAAW,EAAE,eAAe;CAC7B,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAGvB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,cAAc;IAC1B,gBAAgB,EAAE,YAAY;IAC9B,cAAc,EAAE,YAAY;IAC5B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5C,cAAc,EAAE,YAAY;IAC5B,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,eAAe;CAC5B,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AASvB,SAAS,4BAA4B,CAAC,KAA2B;IAC/D,MAAM,QAAQ,GAAG,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzE,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACtF,IAAI,UAAU,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,gBAAgB,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvG,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,mBAAmB,CAAC,KAAqE;IACvG,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACzC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;QACnC,cAAc,EAAE,2BAA2B,CAAC,QAAQ,CAAC;QACrD,eAAe,EAAE,QAAQ,CAAC,OAAO;QACjC,cAAc,EAAE,0BAA0B,CAAC,QAAQ,CAAC;QACpD,UAAU,EAAE,KAAK,CAAC,OAAO;QACzB,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAyD;IAC3F,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QACpF,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,CAAC,QAAQ;QAC9F,QAAQ,CAAC,cAAc,KAAK,2BAA2B,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC,OAAO;QAClH,QAAQ,CAAC,cAAc,KAAK,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY;IACvE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS;CACnD,CAAC;AACX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAGvE,MAAM,oBAAoB,GAAG;IAC3B,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,cAAc;IACzB,eAAe,EAAE,cAAc;IAC/B,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,cAAc;IAC1B,gBAAgB,EAAE,YAAY;IAC9B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5C,cAAc,EAAE,YAAY;CAC7B,CAAC;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,GAAG,oBAAoB;IACvB,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAGvB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,GAAG,oBAAoB;IACvB,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAGvB,MAAM,UAAU,0BAA0B,CAAC,KAG1C;IACC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACrC,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QAClF,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;QAC1C,OAAO,CAAC,gBAAgB,KAAK,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,CAAC,OAAO;QAC9F,OAAO,CAAC,cAAc,KAAK,0BAA0B,CAAC,QAAQ,CAAC;QAC/D,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;IAC7B,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE;CAClC,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,UAAU,sBAAsB,CAAC,MAA0B,EAAE,OAA6B;IAC9F,MAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3D,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAAC;QAC9E,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,oBAAoB,CAAC;AAC/D,CAAC;AAED,MAAM,mBAAmB,GAAG;IAC1B,SAAS,EAAE,cAAc;IACzB,eAAe,EAAE,cAAc;IAC/B,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,YAAY;IAC1B,UAAU,EAAE,YAAY;CACzB,CAAC;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,GAAG,mBAAmB;IACtB,gBAAgB,EAAE,YAAY;CAC/B,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,GAAG,mBAAmB;IACtB,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,GAAG,mBAAmB;IACtB,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,wBAAwB;IAC/B,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,0BAA0B;IACnC,OAAO,EAAE,0BAA0B;CACpC,CAAC,CAAC,MAAM,EAAE,CAAC;AAOZ,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CAAC,KAA8B;IACpE,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC5E,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IAChE,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,eAAe,KAAK,OAAO,CAAC,eAAe;YAC5F,KAAK,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACtG,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,gBAAgB;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACrG,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC;QACvF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACzE,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;QAC9E,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACtG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IACrG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAC/G,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC"}