forge-dev-framework 1.0.1

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 (140) hide show
  1. package/.claude/rules/api-patterns.md +98 -0
  2. package/.claude/rules/security-baseline.md +204 -0
  3. package/.claude/rules/testing-standards.md +177 -0
  4. package/.claude/rules/ui-conventions.md +142 -0
  5. package/README.md +261 -0
  6. package/bin/forge.js +14 -0
  7. package/dist/bin/forge.js +14 -0
  8. package/dist/cli/index.d.ts +22 -0
  9. package/dist/cli/index.d.ts.map +1 -0
  10. package/dist/cli/index.js +116 -0
  11. package/dist/cli/index.js.map +1 -0
  12. package/dist/commands/base.d.ts +31 -0
  13. package/dist/commands/base.d.ts.map +1 -0
  14. package/dist/commands/base.js +31 -0
  15. package/dist/commands/base.js.map +1 -0
  16. package/dist/commands/config.d.ts +14 -0
  17. package/dist/commands/config.d.ts.map +1 -0
  18. package/dist/commands/config.js +175 -0
  19. package/dist/commands/config.js.map +1 -0
  20. package/dist/commands/generate.d.ts +17 -0
  21. package/dist/commands/generate.d.ts.map +1 -0
  22. package/dist/commands/generate.js +159 -0
  23. package/dist/commands/generate.js.map +1 -0
  24. package/dist/commands/help.d.ts +11 -0
  25. package/dist/commands/help.d.ts.map +1 -0
  26. package/dist/commands/help.js +65 -0
  27. package/dist/commands/help.js.map +1 -0
  28. package/dist/commands/index.d.ts +8 -0
  29. package/dist/commands/index.d.ts.map +1 -0
  30. package/dist/commands/index.js +8 -0
  31. package/dist/commands/index.js.map +1 -0
  32. package/dist/commands/init.d.ts +10 -0
  33. package/dist/commands/init.d.ts.map +1 -0
  34. package/dist/commands/init.js +22 -0
  35. package/dist/commands/init.js.map +1 -0
  36. package/dist/commands/status.d.ts +13 -0
  37. package/dist/commands/status.d.ts.map +1 -0
  38. package/dist/commands/status.js +101 -0
  39. package/dist/commands/status.js.map +1 -0
  40. package/dist/commands/stubs.d.ts +14 -0
  41. package/dist/commands/stubs.d.ts.map +1 -0
  42. package/dist/commands/stubs.js +30 -0
  43. package/dist/commands/stubs.js.map +1 -0
  44. package/dist/generators/index.d.ts +11 -0
  45. package/dist/generators/index.d.ts.map +1 -0
  46. package/dist/generators/index.js +10 -0
  47. package/dist/generators/index.js.map +1 -0
  48. package/dist/generators/required-fields.d.ts +74 -0
  49. package/dist/generators/required-fields.d.ts.map +1 -0
  50. package/dist/generators/required-fields.js +179 -0
  51. package/dist/generators/required-fields.js.map +1 -0
  52. package/dist/generators/template-engine.d.ts +65 -0
  53. package/dist/generators/template-engine.d.ts.map +1 -0
  54. package/dist/generators/template-engine.js +209 -0
  55. package/dist/generators/template-engine.js.map +1 -0
  56. package/dist/generators/token-validator.d.ts +51 -0
  57. package/dist/generators/token-validator.d.ts.map +1 -0
  58. package/dist/generators/token-validator.js +141 -0
  59. package/dist/generators/token-validator.js.map +1 -0
  60. package/dist/generators/types.d.ts +433 -0
  61. package/dist/generators/types.d.ts.map +1 -0
  62. package/dist/generators/types.js +5 -0
  63. package/dist/generators/types.js.map +1 -0
  64. package/dist/generators/xml-task-generator.d.ts +67 -0
  65. package/dist/generators/xml-task-generator.d.ts.map +1 -0
  66. package/dist/generators/xml-task-generator.js +297 -0
  67. package/dist/generators/xml-task-generator.js.map +1 -0
  68. package/dist/git/__tests__/worktree.test.d.ts +5 -0
  69. package/dist/git/__tests__/worktree.test.d.ts.map +1 -0
  70. package/dist/git/__tests__/worktree.test.js +121 -0
  71. package/dist/git/__tests__/worktree.test.js.map +1 -0
  72. package/dist/git/codeowners.d.ts +101 -0
  73. package/dist/git/codeowners.d.ts.map +1 -0
  74. package/dist/git/codeowners.js +216 -0
  75. package/dist/git/codeowners.js.map +1 -0
  76. package/dist/git/commit.d.ts +135 -0
  77. package/dist/git/commit.d.ts.map +1 -0
  78. package/dist/git/commit.js +223 -0
  79. package/dist/git/commit.js.map +1 -0
  80. package/dist/git/hooks/commit-msg.d.ts +8 -0
  81. package/dist/git/hooks/commit-msg.d.ts.map +1 -0
  82. package/dist/git/hooks/commit-msg.js +34 -0
  83. package/dist/git/hooks/commit-msg.js.map +1 -0
  84. package/dist/git/hooks/pre-commit.d.ts +8 -0
  85. package/dist/git/hooks/pre-commit.d.ts.map +1 -0
  86. package/dist/git/hooks/pre-commit.js +34 -0
  87. package/dist/git/hooks/pre-commit.js.map +1 -0
  88. package/dist/git/pre-commit-hooks.d.ts +117 -0
  89. package/dist/git/pre-commit-hooks.d.ts.map +1 -0
  90. package/dist/git/pre-commit-hooks.js +270 -0
  91. package/dist/git/pre-commit-hooks.js.map +1 -0
  92. package/dist/git/wipe-protocol.d.ts +281 -0
  93. package/dist/git/wipe-protocol.d.ts.map +1 -0
  94. package/dist/git/wipe-protocol.js +237 -0
  95. package/dist/git/wipe-protocol.js.map +1 -0
  96. package/dist/git/worktree.d.ts +69 -0
  97. package/dist/git/worktree.d.ts.map +1 -0
  98. package/dist/git/worktree.js +202 -0
  99. package/dist/git/worktree.js.map +1 -0
  100. package/dist/scripts/install.d.ts +8 -0
  101. package/dist/scripts/install.d.ts.map +1 -0
  102. package/dist/scripts/install.js +161 -0
  103. package/dist/scripts/install.js.map +1 -0
  104. package/dist/types/config.d.ts +30 -0
  105. package/dist/types/config.d.ts.map +1 -0
  106. package/dist/types/config.js +23 -0
  107. package/dist/types/config.js.map +1 -0
  108. package/dist/types/index.d.ts +6 -0
  109. package/dist/types/index.d.ts.map +1 -0
  110. package/dist/types/index.js +6 -0
  111. package/dist/types/index.js.map +1 -0
  112. package/dist/types/state.d.ts +56 -0
  113. package/dist/types/state.d.ts.map +1 -0
  114. package/dist/types/state.js +6 -0
  115. package/dist/types/state.js.map +1 -0
  116. package/dist/utils/config.d.ts +15 -0
  117. package/dist/utils/config.d.ts.map +1 -0
  118. package/dist/utils/config.js +80 -0
  119. package/dist/utils/config.js.map +1 -0
  120. package/dist/utils/errors.d.ts +25 -0
  121. package/dist/utils/errors.d.ts.map +1 -0
  122. package/dist/utils/errors.js +48 -0
  123. package/dist/utils/errors.js.map +1 -0
  124. package/dist/utils/index.d.ts +11 -0
  125. package/dist/utils/index.d.ts.map +1 -0
  126. package/dist/utils/index.js +9 -0
  127. package/dist/utils/index.js.map +1 -0
  128. package/dist/utils/logger.d.ts +34 -0
  129. package/dist/utils/logger.d.ts.map +1 -0
  130. package/dist/utils/logger.js +73 -0
  131. package/dist/utils/logger.js.map +1 -0
  132. package/dist/utils/state-api.d.ts +128 -0
  133. package/dist/utils/state-api.d.ts.map +1 -0
  134. package/dist/utils/state-api.js +170 -0
  135. package/dist/utils/state-api.js.map +1 -0
  136. package/dist/utils/template-client.d.ts +73 -0
  137. package/dist/utils/template-client.d.ts.map +1 -0
  138. package/dist/utils/template-client.js +151 -0
  139. package/dist/utils/template-client.js.map +1 -0
  140. package/package.json +72 -0
@@ -0,0 +1,433 @@
1
+ /**
2
+ * Type definitions for the FORGE template system
3
+ */
4
+ /**
5
+ * Template data context for variable interpolation
6
+ */
7
+ export interface TemplateContext {
8
+ projectName: string;
9
+ tagline?: string;
10
+ version: string;
11
+ timestamp: string;
12
+ currentPhase?: string;
13
+ phaseName?: string;
14
+ phaseDescription?: string;
15
+ phaseDuration?: string;
16
+ phaseOwner?: string;
17
+ phaseDependencies?: string;
18
+ currentStatus?: string;
19
+ status: string;
20
+ vision: string;
21
+ problemStatement?: string;
22
+ solution?: string;
23
+ techStack: {
24
+ backend?: {
25
+ language: string;
26
+ framework: string;
27
+ runtime: string;
28
+ keyLibraries?: string;
29
+ };
30
+ frontend?: {
31
+ language: string;
32
+ framework: string;
33
+ build: string;
34
+ styling?: string;
35
+ stateManagement?: string;
36
+ };
37
+ database?: {
38
+ primary: string;
39
+ cache?: string;
40
+ orm?: string;
41
+ migrations?: string;
42
+ };
43
+ infrastructure?: {
44
+ hosting: string;
45
+ cicd: string;
46
+ monitoring?: string;
47
+ };
48
+ };
49
+ architectureDiagram?: string;
50
+ codeStructure?: string;
51
+ namingConventions?: string;
52
+ importAliases?: Array<{
53
+ from: string;
54
+ to: string;
55
+ }>;
56
+ patterns: Array<{
57
+ name: string;
58
+ description: string;
59
+ example?: string;
60
+ lang?: string;
61
+ }>;
62
+ rules: Array<{
63
+ category: string;
64
+ items: Array<{
65
+ title: string;
66
+ description: string;
67
+ }>;
68
+ }>;
69
+ features: Array<{
70
+ name: string;
71
+ description: string;
72
+ userStories?: Array<{
73
+ role: string;
74
+ want: string;
75
+ why: string;
76
+ }>;
77
+ acceptanceCriteria?: Array<{
78
+ given: string;
79
+ when: string;
80
+ then: string;
81
+ }>;
82
+ dependencies?: string;
83
+ apiContracts?: string;
84
+ }>;
85
+ nfrs?: {
86
+ performance?: string[];
87
+ security?: string[];
88
+ reliability?: string[];
89
+ maintainability?: string[];
90
+ scalability?: string[];
91
+ };
92
+ dataRequirements?: {
93
+ entities: Array<{
94
+ name: string;
95
+ fields: Array<{
96
+ name: string;
97
+ type: string;
98
+ required: boolean;
99
+ description: string;
100
+ }>;
101
+ }>;
102
+ };
103
+ apiRequirements?: Array<{
104
+ name: string;
105
+ method: string;
106
+ path: string;
107
+ description: string;
108
+ authentication: string;
109
+ rateLimit: string;
110
+ request?: {
111
+ format: string;
112
+ schema: string;
113
+ };
114
+ response?: {
115
+ format: string;
116
+ schema: string;
117
+ };
118
+ errors?: Array<{
119
+ code: string;
120
+ description: string;
121
+ }>;
122
+ }>;
123
+ uiRequirements?: {
124
+ principles?: string[];
125
+ screens?: Array<{
126
+ name: string;
127
+ description: string;
128
+ states: Array<{
129
+ name: string;
130
+ description: string;
131
+ }>;
132
+ interactions: string[];
133
+ }>;
134
+ };
135
+ testing?: {
136
+ structure: string;
137
+ coverage: string;
138
+ command: string;
139
+ types?: string[];
140
+ performance?: string;
141
+ security?: string;
142
+ };
143
+ deployment?: {
144
+ strategy: string;
145
+ environments: Array<{
146
+ name: string;
147
+ description: string;
148
+ }>;
149
+ };
150
+ commitFormat?: string;
151
+ commitTypes?: Array<{
152
+ type: string;
153
+ description: string;
154
+ }>;
155
+ envVars?: Array<{
156
+ name: string;
157
+ required: string;
158
+ description: string;
159
+ }>;
160
+ successMetrics?: Array<{
161
+ name: string;
162
+ description: string;
163
+ target: string;
164
+ }>;
165
+ constraints?: Array<{
166
+ type: string;
167
+ description: string;
168
+ }>;
169
+ outOfScope?: string[];
170
+ assumptions?: string[];
171
+ dependencies?: Array<{
172
+ name: string;
173
+ version: string;
174
+ purpose: string;
175
+ }>;
176
+ compliance?: Array<{
177
+ area: string;
178
+ requirement: string;
179
+ }>;
180
+ projectStatus?: {
181
+ currentMilestone: string;
182
+ currentPhase: string;
183
+ progress: number;
184
+ estimatedCompletion: string;
185
+ };
186
+ milestones: Array<{
187
+ name: string;
188
+ description: string;
189
+ status: string;
190
+ duration: string;
191
+ dependencies?: string;
192
+ deliverables: string[];
193
+ }>;
194
+ phases: Array<{
195
+ name: string;
196
+ description: string;
197
+ duration: string;
198
+ dependencies?: string;
199
+ tasks: Array<{
200
+ id: string;
201
+ name: string;
202
+ owner: string;
203
+ status: string;
204
+ }>;
205
+ deliverables: string[];
206
+ notes?: string;
207
+ }>;
208
+ dependencyGraph?: Array<{
209
+ from: string;
210
+ fromLabel: string;
211
+ to?: string;
212
+ toLabel?: string;
213
+ deps?: string[];
214
+ }>;
215
+ criticalPath?: string[];
216
+ parallelTasks?: Array<{
217
+ name: string;
218
+ description: string;
219
+ }>;
220
+ resources?: Array<{
221
+ role: string;
222
+ agent: string;
223
+ taskCount: number;
224
+ estimatedHours: number;
225
+ }>;
226
+ contracts?: Array<{
227
+ name: string;
228
+ path: string;
229
+ format: string;
230
+ version: string;
231
+ provider: string;
232
+ consumers: string;
233
+ }>;
234
+ parallelStrategy?: string;
235
+ rolloutPlan?: string;
236
+ testingStrategy?: string;
237
+ risks?: Array<{
238
+ name: string;
239
+ description: string;
240
+ impact: string;
241
+ mitigation: string;
242
+ contingency?: string;
243
+ }>;
244
+ successCriteria?: string[];
245
+ notes?: string;
246
+ nextSprint?: Array<{
247
+ task: string;
248
+ description: string;
249
+ owner: string;
250
+ }>;
251
+ backlog?: Array<{
252
+ priority: string;
253
+ name: string;
254
+ description: string;
255
+ }>;
256
+ definitionOfDone: string[];
257
+ changes?: Array<{
258
+ date: string;
259
+ description: string;
260
+ author: string;
261
+ }>;
262
+ tasks: Array<{
263
+ id: string;
264
+ name: string;
265
+ description: string;
266
+ owner: string;
267
+ type: string;
268
+ priority: string;
269
+ status: string;
270
+ dependencies?: string;
271
+ inputs?: string;
272
+ outputs?: string;
273
+ contracts?: string;
274
+ acceptance: string[];
275
+ verify: string;
276
+ }>;
277
+ taskDependencies?: Array<{
278
+ id: string;
279
+ label: string;
280
+ deps?: string[];
281
+ }>;
282
+ mode: string;
283
+ depth: string;
284
+ maxTeammates: number;
285
+ taskLimit: number;
286
+ agentProfile: string;
287
+ workflow: {
288
+ research: boolean;
289
+ planCheck: boolean;
290
+ tribunal: boolean;
291
+ contractFirst: boolean;
292
+ };
293
+ git: {
294
+ strategy: string;
295
+ branchTemplate: string;
296
+ squashOnShip: boolean;
297
+ };
298
+ securityPrinciples?: string[];
299
+ passwordPolicy?: string;
300
+ sessionManagement?: string;
301
+ mfa?: string;
302
+ accessControl?: string;
303
+ roles?: Array<{
304
+ name: string;
305
+ description: string;
306
+ }>;
307
+ inputValidation?: string;
308
+ sqlPrevention?: string;
309
+ xssPrevention?: string;
310
+ encryptionAtRest?: string;
311
+ encryptionInTransit?: string;
312
+ encryption?: {
313
+ db: string;
314
+ files: string;
315
+ secrets: string;
316
+ backup: string;
317
+ };
318
+ piiHandling?: string;
319
+ rateLimiting?: string;
320
+ apiKeyManagement?: string;
321
+ cors?: string;
322
+ supplyChain?: string;
323
+ vulnScanning?: string;
324
+ secretsPolicy?: string;
325
+ secretsStorage?: string;
326
+ secretsManager?: string;
327
+ ciSecrets?: string;
328
+ securityLogging?: string;
329
+ alerting?: string;
330
+ sastTool?: string;
331
+ scaTool?: string;
332
+ dastTool?: string;
333
+ containerScanTool?: string;
334
+ incidentResponse?: string;
335
+ deploymentChecklist?: string[];
336
+ designPrinciples?: string[];
337
+ componentStructure?: string;
338
+ componentNaming?: string;
339
+ styling?: string;
340
+ formPatterns?: string;
341
+ loadingStates?: string;
342
+ emptyStates?: string;
343
+ breakpoints?: string;
344
+ accessibility?: string;
345
+ tablePatterns?: string;
346
+ performance?: string;
347
+ icons?: string;
348
+ iconSet?: string;
349
+ typography?: string;
350
+ apiUrlStructure?: string;
351
+ httpMethods?: Array<{
352
+ method: string;
353
+ usage: string;
354
+ }>;
355
+ responseFormat?: string;
356
+ errorCodes?: Array<{
357
+ code: number;
358
+ description: string;
359
+ }>;
360
+ errorNaming?: string;
361
+ authPatterns?: string;
362
+ pagination?: string;
363
+ apiVersioning?: string;
364
+ validationRules?: string;
365
+ openApiRequirements?: string;
366
+ testingPhilosophy?: string;
367
+ testStructure?: string;
368
+ testNaming?: string;
369
+ unitTestScope?: string;
370
+ integrationScope?: string;
371
+ dbTesting?: string;
372
+ e2eFramework?: string;
373
+ e2eTool?: string;
374
+ e2eScenarios?: string[];
375
+ e2eChecklist?: string[];
376
+ testFactories?: string;
377
+ seedingStrategy?: string;
378
+ mockingGuidelines?: string;
379
+ performanceTests?: string;
380
+ securityTests?: string;
381
+ testCommands?: string;
382
+ ciTesting?: string;
383
+ }
384
+ /**
385
+ * Token limit configuration
386
+ */
387
+ export interface TokenLimits {
388
+ claude: number;
389
+ requirements: number;
390
+ plan: number;
391
+ rules: number;
392
+ }
393
+ /**
394
+ * Template configuration
395
+ */
396
+ export interface TemplateConfig {
397
+ templatesDir: string;
398
+ outputDir: string;
399
+ tokenLimits: TokenLimits;
400
+ }
401
+ /**
402
+ * Template render result
403
+ */
404
+ export interface RenderResult {
405
+ content: string;
406
+ tokenCount: number;
407
+ withinLimit: boolean;
408
+ warnings: string[];
409
+ }
410
+ /**
411
+ * XML Task Spec structure
412
+ */
413
+ export interface XmlTaskSpec {
414
+ id: string;
415
+ type: 'auto' | 'manual';
416
+ owner: string;
417
+ name: string;
418
+ deps?: string;
419
+ files?: string;
420
+ contracts?: string;
421
+ action: string;
422
+ acceptance: string[];
423
+ verify: string;
424
+ }
425
+ /**
426
+ * Token counter result
427
+ */
428
+ export interface TokenCountResult {
429
+ count: number;
430
+ estimated: boolean;
431
+ warnings: string[];
432
+ }
433
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generators/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAGlB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,EAAE;QACT,OAAO,CAAC,EAAE;YACR,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,QAAQ,CAAC,EAAE;YACT,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;QACF,QAAQ,CAAC,EAAE;YACT,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,cAAc,CAAC,EAAE;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IAGF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAGpD,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAGH,KAAK,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,KAAK,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;KACJ,CAAC,CAAC;IAGH,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,KAAK,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;SACb,CAAC,CAAC;QACH,kBAAkB,CAAC,EAAE,KAAK,CAAC;YACzB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;SACd,CAAC,CAAC;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IAGH,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IAGF,gBAAgB,CAAC,EAAE;QACjB,QAAQ,EAAE,KAAK,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,KAAK,CAAC;gBACZ,IAAI,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC;gBACb,QAAQ,EAAE,OAAO,CAAC;gBAClB,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;IAGF,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE;YACR,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,QAAQ,CAAC,EAAE;YACT,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,MAAM,CAAC,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;KACJ,CAAC,CAAC;IAGH,cAAc,CAAC,EAAE;QACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,EAAE,KAAK,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,MAAM,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YACrD,YAAY,EAAE,MAAM,EAAE,CAAC;SACxB,CAAC,CAAC;KACJ,CAAC;IAGF,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAGF,UAAU,CAAC,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,KAAK,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;KACJ,CAAC;IAGF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAGH,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAGH,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAGH,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAGH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAGH,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAGH,aAAa,CAAC,EAAE;QACd,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IAGF,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC,CAAC;IAGH,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAGH,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;IAGH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAGH,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IAGH,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IAGH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IAGH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAGH,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAG3B,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAGH,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAGH,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;IAGH,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QACR,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,GAAG,EAAE;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IAGF,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type definitions for the FORGE template system
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/generators/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * XML Task Spec Generator
3
+ *
4
+ * Generates XML-formatted task specifications as defined in FORGE Phase II: Plan
5
+ * Each task includes: id, type, owner, name, deps, files, contracts, action, acceptance, verify
6
+ */
7
+ import type { XmlTaskSpec } from './types.js';
8
+ /**
9
+ * XML Task Spec Generator class
10
+ */
11
+ export declare class XmlTaskGenerator {
12
+ /**
13
+ * Generate a single task spec in XML format
14
+ */
15
+ static generateTask(task: XmlTaskSpec): string;
16
+ /**
17
+ * Generate multiple task specs
18
+ */
19
+ static generateTasks(tasks: XmlTaskSpec[]): string;
20
+ /**
21
+ * Generate task spec with XML declaration
22
+ */
23
+ static generateTaskWithHeader(task: XmlTaskSpec): string;
24
+ /**
25
+ * Parse a task spec from XML format
26
+ */
27
+ static parseTask(xmlString: string): XmlTaskSpec;
28
+ /**
29
+ * Validate a task spec structure
30
+ */
31
+ static validateTask(task: Partial<XmlTaskSpec>): {
32
+ valid: boolean;
33
+ errors: string[];
34
+ };
35
+ /**
36
+ * Escape XML special characters
37
+ */
38
+ private static escapeXml;
39
+ /**
40
+ * Unescape XML special characters
41
+ */
42
+ private static unescapeXml;
43
+ /**
44
+ * Indent text for XML formatting
45
+ */
46
+ private static indentText;
47
+ /**
48
+ * Create a task spec from a simple object
49
+ */
50
+ static createTask(data: {
51
+ id: string;
52
+ type: 'auto' | 'manual';
53
+ owner: string;
54
+ name: string;
55
+ deps?: string;
56
+ files?: string;
57
+ contracts?: string;
58
+ action: string;
59
+ acceptance: string[];
60
+ verify: string;
61
+ }): XmlTaskSpec;
62
+ /**
63
+ * Generate example task specs for reference
64
+ */
65
+ static generateExamples(): string;
66
+ }
67
+ //# sourceMappingURL=xml-task-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-task-generator.d.ts","sourceRoot":"","sources":["../../src/generators/xml-task-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;IA2C9C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM;IAkBlD;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;IAYxD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAwDhD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA6DrF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IASxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAQzB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;QACtB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,WAAW;IAef;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,MAAM;CAsDlC"}