@codeyam/codeyam-cli 0.1.0-staging.8778565 → 0.1.0-staging.8b51541

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 (152) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +56 -0
  4. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  5. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +0 -65
  6. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +3 -0
  7. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  8. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +56 -0
  9. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  10. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  11. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  12. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  13. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  14. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +0 -25
  15. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  16. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +45 -0
  17. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  18. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +101 -47
  19. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  20. package/codeyam-cli/src/commands/editor.js +799 -211
  21. package/codeyam-cli/src/commands/editor.js.map +1 -1
  22. package/codeyam-cli/src/commands/init.js +68 -34
  23. package/codeyam-cli/src/commands/init.js.map +1 -1
  24. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  25. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  26. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +18 -8
  27. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -1
  28. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +353 -1
  29. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  30. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +128 -1
  31. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -1
  32. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +88 -1
  33. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -1
  34. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +47 -1
  35. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -1
  36. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +785 -1
  37. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  38. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +63 -1
  39. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
  40. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +30 -2
  41. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -1
  42. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +227 -0
  43. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  44. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +426 -218
  45. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
  46. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +1 -0
  47. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  48. package/codeyam-cli/src/utils/analyzer.js +9 -0
  49. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  50. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  51. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  52. package/codeyam-cli/src/utils/backgroundServer.js +2 -8
  53. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  54. package/codeyam-cli/src/utils/database.js +37 -2
  55. package/codeyam-cli/src/utils/database.js.map +1 -1
  56. package/codeyam-cli/src/utils/editorApi.js +11 -5
  57. package/codeyam-cli/src/utils/editorApi.js.map +1 -1
  58. package/codeyam-cli/src/utils/editorAudit.js +51 -0
  59. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  60. package/codeyam-cli/src/utils/editorLoaderHelpers.js +32 -0
  61. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -1
  62. package/codeyam-cli/src/utils/editorPreview.js +31 -0
  63. package/codeyam-cli/src/utils/editorPreview.js.map +1 -1
  64. package/codeyam-cli/src/utils/editorScenarios.js +261 -0
  65. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  66. package/codeyam-cli/src/utils/entityChangeStatus.js +4 -2
  67. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
  68. package/codeyam-cli/src/utils/entityChangeStatus.server.js +34 -0
  69. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -1
  70. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -1
  71. package/codeyam-cli/src/utils/progress.js +2 -2
  72. package/codeyam-cli/src/utils/progress.js.map +1 -1
  73. package/codeyam-cli/src/utils/scenarioCoverage.js +75 -0
  74. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  75. package/codeyam-cli/src/utils/scenariosManifest.js +204 -75
  76. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
  77. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +1 -0
  78. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  79. package/codeyam-cli/src/utils/simulationGateMiddleware.js +8 -1
  80. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
  81. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  82. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  83. package/codeyam-cli/src/utils/syncMocksMiddleware.js +2 -2
  84. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  85. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +40 -0
  86. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  87. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +157 -0
  88. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
  89. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +146 -0
  90. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  91. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +65 -0
  92. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  93. package/codeyam-cli/src/webserver/app/lib/git.js +3 -2
  94. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -1
  95. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-0DY_NKil.js → ScenarioViewer-TSD3C211.js} +1 -1
  96. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  97. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  98. package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-Csi0_PMl.js → dev.empty-Ii3inc0_.js} +1 -1
  99. package/codeyam-cli/src/webserver/build/client/assets/editor-16o0AIFV.js +15 -0
  100. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-7Uga8I59.js +41 -0
  101. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BF4oLwaE.js → entity._sha._-DwCV5__E.js} +1 -1
  102. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.dev-C7YX6r3H.js → entity._sha.scenarios._scenarioId.dev-BwKcai0j.js} +1 -1
  103. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CHMiAog3.js +6 -0
  104. package/codeyam-cli/src/webserver/build/client/assets/globals-CQPR0pFR.css +1 -0
  105. package/codeyam-cli/src/webserver/build/client/assets/manifest-76e7b62c.js +1 -0
  106. package/codeyam-cli/src/webserver/build/client/assets/memory-9gnxSZlb.js +101 -0
  107. package/codeyam-cli/src/webserver/build/client/assets/{root-ClvYBUSA.js → root-DBjt6o04.js} +3 -3
  108. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-C-_hOl_g.js +1 -0
  109. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  110. package/codeyam-cli/src/webserver/build/server/assets/index-DsZjKspK.js +1 -0
  111. package/codeyam-cli/src/webserver/build/server/assets/init-DdqKD2p4.js +10 -0
  112. package/codeyam-cli/src/webserver/build/server/assets/server-build-CKKeWtVK.js +444 -0
  113. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  114. package/codeyam-cli/src/webserver/build-info.json +5 -5
  115. package/codeyam-cli/src/webserver/editorProxy.js +99 -7
  116. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  117. package/codeyam-cli/src/webserver/idleDetector.js +73 -0
  118. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  119. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  120. package/codeyam-cli/src/webserver/server.js +46 -4
  121. package/codeyam-cli/src/webserver/server.js.map +1 -1
  122. package/codeyam-cli/src/webserver/terminalServer.js +68 -29
  123. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  124. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  125. package/codeyam-cli/templates/chrome-extension-react/package.json +1 -0
  126. package/codeyam-cli/templates/codeyam-editor-claude.md +84 -5
  127. package/codeyam-cli/templates/editor-step-hook.py +14 -8
  128. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  129. package/codeyam-cli/templates/expo-react-native/package.json +1 -0
  130. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +14 -0
  131. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  132. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +1 -0
  133. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  134. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +1 -0
  135. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +1 -1
  136. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +14 -10
  137. package/package.json +1 -1
  138. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +56 -0
  139. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  140. package/packages/database/src/lib/loadEntities.js +0 -6
  141. package/packages/database/src/lib/loadEntities.js.map +1 -1
  142. package/packages/database/src/lib/updateCommitMetadata.js +0 -25
  143. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  144. package/codeyam-cli/src/webserver/build/client/assets/editor-DgN1LTTt.js +0 -10
  145. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-BLQMSKZa.js +0 -41
  146. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CF164ouH.js +0 -6
  147. package/codeyam-cli/src/webserver/build/client/assets/globals-BkWJ_UNc.css +0 -1
  148. package/codeyam-cli/src/webserver/build/client/assets/manifest-c26eb85b.js +0 -1
  149. package/codeyam-cli/src/webserver/build/client/assets/memory-Bl2rpw8u.js +0 -96
  150. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-CrAK28Bc.js +0 -1
  151. package/codeyam-cli/src/webserver/build/server/assets/index-DflIr5SD.js +0 -1
  152. package/codeyam-cli/src/webserver/build/server/assets/server-build-OhKy839M.js +0 -416
@@ -1,10 +1,10 @@
1
1
  {
2
- "buildTimestamp": "2026-03-10T14:08:58.207Z",
3
- "buildTime": 1773151738207,
4
- "gitCommit": "877856501cac60ce580997753b75c1a81d857c0e",
2
+ "buildTimestamp": "2026-03-13T21:26:55.323Z",
3
+ "buildTime": 1773437215323,
4
+ "gitCommit": "8b5154143259fa2d4971883c0f06a7a3d96c7d2f",
5
5
  "nodeVersion": "v20.20.0",
6
- "contentHash": "c7561ee26c9b3c8899166f7cc857e3fb95cb9915181e6b269c31fbfc59f27467",
7
- "buildNumber": 927,
8
- "semanticVersion": "0.1.927",
9
- "version": "0.1.927 (2026-03-10T14:08+c7561ee)"
6
+ "contentHash": "68aada52a9e636008fb2f4fffc504ee4b3e09bd06eacbf40d008b536dcb9018b",
7
+ "buildNumber": 988,
8
+ "semanticVersion": "0.1.988",
9
+ "version": "0.1.988 (2026-03-13T21:26+68aada5)"
10
10
  }
@@ -1,7 +1,7 @@
1
1
 
2
- [3/10/2026, 2:08:58 PM] > codeyam-combo@1.0.0 mergeDependencies
3
- [3/10/2026, 2:08:58 PM] > node ./scripts/mergePackageJsonFiles.cjs
2
+ [3/13/2026, 9:26:55 PM] > codeyam-combo@1.0.0 mergeDependencies
3
+ [3/13/2026, 9:26:55 PM] > node ./scripts/mergePackageJsonFiles.cjs
4
4
 
5
5
 
6
- [3/10/2026, 2:08:58 PM] Merged dependencies into root package.json
6
+ [3/13/2026, 9:26:55 PM] Merged dependencies into root package.json
7
7
 
@@ -15,6 +15,9 @@ const editorScenariosSchema = {
15
15
  screenshot_path: schemaField<string | null>(),
16
16
  viewport_width: schemaField<number | null>(),
17
17
  viewport_height: schemaField<number | null>(),
18
+ dimension: schemaField<string | null>(),
19
+ dimensions: schemaField<string | null>(),
20
+ screenshot_paths: schemaField<string | null>(),
18
21
  created_at: schemaField<Generated<string>>(),
19
22
  updated_at: schemaField<Generated<string>>(),
20
23
  } as const;
@@ -79,4 +82,57 @@ export async function createEditorScenariosTable(
79
82
  // Column already exists — expected for fresh databases
80
83
  }
81
84
  }
85
+
86
+ // Named dimension column (e.g. "Mobile", "Desktop")
87
+ try {
88
+ await db.schema
89
+ .alterTable('editor_scenarios')
90
+ .addColumn('dimension', 'varchar')
91
+ .execute();
92
+ } catch {
93
+ // Column already exists — expected for fresh databases
94
+ }
95
+
96
+ // Multi-dimension support: JSON array of dimension names and map of screenshot paths
97
+ for (const col of ['dimensions', 'screenshot_paths'] as const) {
98
+ try {
99
+ await db.schema
100
+ .alterTable('editor_scenarios')
101
+ .addColumn(col, 'text')
102
+ .execute();
103
+ } catch {
104
+ // Column already exists — expected for fresh databases
105
+ }
106
+ }
107
+
108
+ // Backfill: wrap existing single dimension into dimensions array,
109
+ // and existing screenshot_path into screenshot_paths object
110
+ try {
111
+ const rows = await db
112
+ .selectFrom('editor_scenarios')
113
+ .select(['id', 'dimension', 'screenshot_path'])
114
+ .execute();
115
+ for (const row of rows) {
116
+ const r = row as any;
117
+ if (r.dimension && !r.dimensions) {
118
+ await db
119
+ .updateTable('editor_scenarios')
120
+ .set({ dimensions: JSON.stringify([r.dimension]) })
121
+ .where('id', '=', r.id)
122
+ .execute();
123
+ }
124
+ if (r.screenshot_path && !r.screenshot_paths) {
125
+ const dimName = r.dimension || 'Default';
126
+ await db
127
+ .updateTable('editor_scenarios')
128
+ .set({
129
+ screenshot_paths: JSON.stringify({ [dimName]: r.screenshot_path }),
130
+ })
131
+ .where('id', '=', r.id)
132
+ .execute();
133
+ }
134
+ }
135
+ } catch {
136
+ // Backfill is best-effort — columns may not exist yet on first run
137
+ }
82
138
  }
@@ -95,12 +95,6 @@ export default async function loadEntities({
95
95
  const entities = await query.execute();
96
96
 
97
97
  if (!entities || entities.length === 0) {
98
- console.log('Load Entities: No entities found', {
99
- projectId,
100
- fileIds,
101
- filePaths,
102
- shas,
103
- });
104
98
  return null;
105
99
  }
106
100
 
@@ -55,25 +55,6 @@ export default async function updateCommitMetadata({
55
55
  if (runStatusUpdate) {
56
56
  runStatusUpdate.lastUpdatedAt ??= new Date().toISOString();
57
57
 
58
- if (runStatusUpdate.currentEntityShas !== undefined) {
59
- console.log(
60
- `[updateCommitMetadata] Updating currentRun.currentEntityShas`,
61
- );
62
- console.log(`[updateCommitMetadata] Commit SHA: ${commitSha}`);
63
- console.log(
64
- `[updateCommitMetadata] Previous entity SHAs:`,
65
- currentMetadata.currentRun?.currentEntityShas,
66
- );
67
- console.log(
68
- `[updateCommitMetadata] New entity SHAs:`,
69
- runStatusUpdate.currentEntityShas,
70
- );
71
- console.log(
72
- `[updateCommitMetadata] Archive flag:`,
73
- archiveCurrentRun,
74
- );
75
- }
76
-
77
58
  metadataUpdate = deepMerge(metadataUpdate ?? {}, {
78
59
  currentRun: runStatusUpdate,
79
60
  });
@@ -88,61 +69,15 @@ export default async function updateCommitMetadata({
88
69
 
89
70
  // Archive current run if requested
90
71
  if (archiveCurrentRun && updatedMetadata.currentRun) {
91
- console.log(
92
- `[updateCommitMetadata] ========================================`,
93
- );
94
- console.log(`[updateCommitMetadata] ARCHIVING CURRENT RUN`);
95
- console.log(`[updateCommitMetadata] Commit SHA: ${commitSha}`);
96
- console.log(
97
- `[updateCommitMetadata] Current run entity SHAs:`,
98
- updatedMetadata.currentRun.currentEntityShas,
99
- );
100
- console.log(
101
- `[updateCommitMetadata] Current run PIDs: analyzer=${updatedMetadata.currentRun.analyzerPid}, capture=${updatedMetadata.currentRun.capturePid}`,
102
- );
103
- console.log(
104
- `[updateCommitMetadata] Current run completed: analyses=${updatedMetadata.currentRun.analysesCompleted}, captures=${updatedMetadata.currentRun.capturesCompleted}`,
105
- );
106
- console.log(
107
- `[updateCommitMetadata] Historical runs before archiving: ${updatedMetadata.historicalRuns?.length || 0}`,
108
- );
109
-
110
72
  const runToArchive: CommitRunStatus = {
111
73
  ...updatedMetadata.currentRun,
112
74
  archivedAt: new Date().toISOString(),
113
75
  };
114
76
 
115
- console.log(
116
- `[updateCommitMetadata] Run to archive:`,
117
- JSON.stringify(runToArchive, null, 2),
118
- );
119
-
120
77
  updatedMetadata.historicalRuns = [
121
78
  ...(updatedMetadata.historicalRuns || []),
122
79
  runToArchive,
123
80
  ];
124
-
125
- console.log(
126
- `[updateCommitMetadata] Historical runs after archiving: ${updatedMetadata.historicalRuns.length}`,
127
- );
128
- console.log(
129
- `[updateCommitMetadata] All historical runs:`,
130
- JSON.stringify(
131
- updatedMetadata.historicalRuns.map((r) => ({
132
- entityShas: r.currentEntityShas,
133
- archivedAt: r.archivedAt,
134
- completed: {
135
- analyses: r.analysesCompleted,
136
- captures: r.capturesCompleted,
137
- },
138
- })),
139
- null,
140
- 2,
141
- ),
142
- );
143
- console.log(
144
- `[updateCommitMetadata] ========================================`,
145
- );
146
81
  }
147
82
 
148
83
  // Allow callback to perform complex atomic updates
@@ -12,6 +12,9 @@ declare const editorScenariosSchema: {
12
12
  readonly screenshot_path: string;
13
13
  readonly viewport_width: number;
14
14
  readonly viewport_height: number;
15
+ readonly dimension: string;
16
+ readonly dimensions: string;
17
+ readonly screenshot_paths: string;
15
18
  readonly created_at: Generated<string>;
16
19
  readonly updated_at: Generated<string>;
17
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"editorScenariosTable.d.ts","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;CAcjB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,OAAO,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAEnC,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;AAEpC,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GACd,OAAO,CAAC,IAAI,CAAC,CAkDf"}
1
+ {"version":3,"file":"editorScenariosTable.d.ts","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAiBjB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,OAAO,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAEnC,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;AAEpC,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GACd,OAAO,CAAC,IAAI,CAAC,CAuGf"}
@@ -11,6 +11,9 @@ const editorScenariosSchema = {
11
11
  screenshot_path: schemaField(),
12
12
  viewport_width: schemaField(),
13
13
  viewport_height: schemaField(),
14
+ dimension: schemaField(),
15
+ dimensions: schemaField(),
16
+ screenshot_paths: schemaField(),
14
17
  created_at: schemaField(),
15
18
  updated_at: schemaField(),
16
19
  };
@@ -61,5 +64,58 @@ export async function createEditorScenariosTable(db) {
61
64
  // Column already exists — expected for fresh databases
62
65
  }
63
66
  }
67
+ // Named dimension column (e.g. "Mobile", "Desktop")
68
+ try {
69
+ await db.schema
70
+ .alterTable('editor_scenarios')
71
+ .addColumn('dimension', 'varchar')
72
+ .execute();
73
+ }
74
+ catch {
75
+ // Column already exists — expected for fresh databases
76
+ }
77
+ // Multi-dimension support: JSON array of dimension names and map of screenshot paths
78
+ for (const col of ['dimensions', 'screenshot_paths']) {
79
+ try {
80
+ await db.schema
81
+ .alterTable('editor_scenarios')
82
+ .addColumn(col, 'text')
83
+ .execute();
84
+ }
85
+ catch {
86
+ // Column already exists — expected for fresh databases
87
+ }
88
+ }
89
+ // Backfill: wrap existing single dimension into dimensions array,
90
+ // and existing screenshot_path into screenshot_paths object
91
+ try {
92
+ const rows = await db
93
+ .selectFrom('editor_scenarios')
94
+ .select(['id', 'dimension', 'screenshot_path'])
95
+ .execute();
96
+ for (const row of rows) {
97
+ const r = row;
98
+ if (r.dimension && !r.dimensions) {
99
+ await db
100
+ .updateTable('editor_scenarios')
101
+ .set({ dimensions: JSON.stringify([r.dimension]) })
102
+ .where('id', '=', r.id)
103
+ .execute();
104
+ }
105
+ if (r.screenshot_path && !r.screenshot_paths) {
106
+ const dimName = r.dimension || 'Default';
107
+ await db
108
+ .updateTable('editor_scenarios')
109
+ .set({
110
+ screenshot_paths: JSON.stringify({ [dimName]: r.screenshot_path }),
111
+ })
112
+ .where('id', '=', r.id)
113
+ .execute();
114
+ }
115
+ }
116
+ }
117
+ catch {
118
+ // Backfill is best-effort — columns may not exist yet on first run
119
+ }
64
120
  }
65
121
  //# sourceMappingURL=editorScenariosTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editorScenariosTable.js","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,qBAAqB,GAAG;IAC5B,EAAE,EAAE,WAAW,EAAqB;IACpC,UAAU,EAAE,WAAW,EAAU;IACjC,IAAI,EAAE,WAAW,EAAU;IAC3B,WAAW,EAAE,WAAW,EAAiB;IACzC,cAAc,EAAE,WAAW,EAAiB;IAC5C,cAAc,EAAE,WAAW,EAAiB;IAC5C,GAAG,EAAE,WAAW,EAAiB;IACjC,IAAI,EAAE,WAAW,EAAiB;IAClC,eAAe,EAAE,WAAW,EAAiB;IAC7C,cAAc,EAAE,WAAW,EAAiB;IAC5C,eAAe,EAAE,WAAW,EAAiB;IAC7C,UAAU,EAAE,WAAW,EAAqB;IAC5C,UAAU,EAAE,WAAW,EAAqB;CACpC,CAAC;AAMX,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,IAAI,CACpD,qBAAqB,CACY,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,EAAe;IAEf,MAAM,EAAE,CAAC,MAAM;SACZ,WAAW,CAAC,kBAAkB,CAAC;SAC/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,GAA4B,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;SAC3E,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,GAA4B,EAAE,EAAE,CAChE,GAAG,CAAC,OAAO,EAAE,CACd;SACA,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAA4B,EAAE,EAAE,CAC7D,GAAG,CAAC,OAAO,EAAE,CACd;SACA,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;SAChC,SAAS,CAAC,gBAAgB,EAAE,SAAS,CAAC;SACtC,SAAS,CAAC,gBAAgB,EAAE,SAAS,CAAC;SACtC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;SAC3B,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;SAC5B,SAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC;SACvC,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACrD,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACrD,WAAW,EAAE;SACb,OAAO,EAAE,CAAC;IAEb,8EAA8E;IAC9E,KAAK,MAAM,GAAG,IAAI;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,KAAK;QACL,MAAM;QACN,iBAAiB;KACT,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM;iBACZ,UAAU,CAAC,kBAAkB,CAAC;iBAC9B,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC;iBACzB,OAAO,EAAE,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,KAAK,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAU,EAAE,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM;iBACZ,UAAU,CAAC,kBAAkB,CAAC;iBAC9B,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC;iBACzB,OAAO,EAAE,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"editorScenariosTable.js","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loadEntities.d.ts","sourceRoot":"","sources":["../../../../../database/src/lib/loadEntities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAA8B,YAAY,CAAC,EACzC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,EACT,KAAK,EACL,IAAI,EACJ,eAAe,GAChB,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CA6F7C"}
1
+ {"version":3,"file":"loadEntities.d.ts","sourceRoot":"","sources":["../../../../../database/src/lib/loadEntities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAA8B,YAAY,CAAC,EACzC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,EACT,KAAK,EACL,IAAI,EACJ,eAAe,GAChB,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAuF7C"}
@@ -59,12 +59,6 @@ export default async function loadEntities({ projectId, branchId, fileIds, fileP
59
59
  .$if(!!fileIds, (qb) => qb.where('entities.file_id', 'in', fileIds));
60
60
  const entities = await query.execute();
61
61
  if (!entities || entities.length === 0) {
62
- console.log('Load Entities: No entities found', {
63
- projectId,
64
- fileIds,
65
- filePaths,
66
- shas,
67
- });
68
62
  return null;
69
63
  }
70
64
  return entities.map(dbToEntity);
@@ -1 +1 @@
1
- {"version":3,"file":"loadEntities.js","sourceRoot":"","sources":["../../../../../database/src/lib/loadEntities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadEntities.js","sourceRoot":"","sources":["../../../../../database/src/lib/loadEntities.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateCommitMetadata.d.ts","sourceRoot":"","sources":["../../../../../database/src/lib/updateCommitMetadata.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EAAa,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE1D,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAC9C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE,CAAC;AAEF,wBAA8B,oBAAoB,CAAC,EACjD,QAAQ,EACR,SAAS,EACT,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA0K3D"}
1
+ {"version":3,"file":"updateCommitMetadata.d.ts","sourceRoot":"","sources":["../../../../../database/src/lib/updateCommitMetadata.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EAAa,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE1D,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAC9C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE,CAAC;AAEF,wBAA8B,oBAAoB,CAAC,EACjD,QAAQ,EACR,SAAS,EACT,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAyG3D"}
@@ -26,13 +26,6 @@ export default async function updateCommitMetadata({ commitId, commitSha, metada
26
26
  // if the convenience parameter for latest run was supplied, merge it in
27
27
  if (runStatusUpdate) {
28
28
  runStatusUpdate.lastUpdatedAt ?? (runStatusUpdate.lastUpdatedAt = new Date().toISOString());
29
- if (runStatusUpdate.currentEntityShas !== undefined) {
30
- console.log(`[updateCommitMetadata] Updating currentRun.currentEntityShas`);
31
- console.log(`[updateCommitMetadata] Commit SHA: ${commitSha}`);
32
- console.log(`[updateCommitMetadata] Previous entity SHAs:`, currentMetadata.currentRun?.currentEntityShas);
33
- console.log(`[updateCommitMetadata] New entity SHAs:`, runStatusUpdate.currentEntityShas);
34
- console.log(`[updateCommitMetadata] Archive flag:`, archiveCurrentRun);
35
- }
36
29
  metadataUpdate = deepMerge(metadataUpdate ?? {}, {
37
30
  currentRun: runStatusUpdate,
38
31
  });
@@ -46,32 +39,14 @@ export default async function updateCommitMetadata({ commitId, commitSha, metada
46
39
  : currentMetadata;
47
40
  // Archive current run if requested
48
41
  if (archiveCurrentRun && updatedMetadata.currentRun) {
49
- console.log(`[updateCommitMetadata] ========================================`);
50
- console.log(`[updateCommitMetadata] ARCHIVING CURRENT RUN`);
51
- console.log(`[updateCommitMetadata] Commit SHA: ${commitSha}`);
52
- console.log(`[updateCommitMetadata] Current run entity SHAs:`, updatedMetadata.currentRun.currentEntityShas);
53
- console.log(`[updateCommitMetadata] Current run PIDs: analyzer=${updatedMetadata.currentRun.analyzerPid}, capture=${updatedMetadata.currentRun.capturePid}`);
54
- console.log(`[updateCommitMetadata] Current run completed: analyses=${updatedMetadata.currentRun.analysesCompleted}, captures=${updatedMetadata.currentRun.capturesCompleted}`);
55
- console.log(`[updateCommitMetadata] Historical runs before archiving: ${updatedMetadata.historicalRuns?.length || 0}`);
56
42
  const runToArchive = {
57
43
  ...updatedMetadata.currentRun,
58
44
  archivedAt: new Date().toISOString(),
59
45
  };
60
- console.log(`[updateCommitMetadata] Run to archive:`, JSON.stringify(runToArchive, null, 2));
61
46
  updatedMetadata.historicalRuns = [
62
47
  ...(updatedMetadata.historicalRuns || []),
63
48
  runToArchive,
64
49
  ];
65
- console.log(`[updateCommitMetadata] Historical runs after archiving: ${updatedMetadata.historicalRuns.length}`);
66
- console.log(`[updateCommitMetadata] All historical runs:`, JSON.stringify(updatedMetadata.historicalRuns.map((r) => ({
67
- entityShas: r.currentEntityShas,
68
- archivedAt: r.archivedAt,
69
- completed: {
70
- analyses: r.analysesCompleted,
71
- captures: r.capturesCompleted,
72
- },
73
- })), null, 2));
74
- console.log(`[updateCommitMetadata] ========================================`);
75
50
  }
76
51
  // Allow callback to perform complex atomic updates
77
52
  if (updateCallback) {
@@ -1 +1 @@
1
- {"version":3,"file":"updateCommitMetadata.js","sourceRoot":"","sources":["../../../../../database/src/lib/updateCommitMetadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateCommitMetadata.js","sourceRoot":"","sources":["../../../../../database/src/lib/updateCommitMetadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ /**
4
+ * Structural test: the CLI dispatch switch in editor.ts must have case labels
5
+ * for every step 1–16. Without this test, it's easy to add new steps
6
+ * (e.g. 14, 15, 16) to the printStep functions and STEP_LABELS but forget
7
+ * to add matching case labels to the switch statement — causing `codeyam editor N`
8
+ * to silently do nothing for the missing steps.
9
+ *
10
+ * This test reads the source file and parses the switch block that dispatches
11
+ * step numbers to their handlers.
12
+ */
13
+ describe('editor CLI step dispatch', () => {
14
+ const editorSource = fs.readFileSync(path.join(__dirname, '..', 'editor.ts'), 'utf8');
15
+ it('should have switch case labels for all steps 1–16', () => {
16
+ // Find the switch(step) block in the CLI dispatch section.
17
+ // There are two stepFns definitions in editor.ts:
18
+ // 1. Test/debug scenario generator (~line 4658) — uses a for-loop, not a switch
19
+ // 2. CLI dispatch (~line 5263) — uses switch(step) { case N: ... }
20
+ //
21
+ // We need to verify the second one (CLI dispatch) has cases for all 16 steps.
22
+ // Find all `case N:` labels in the file. The CLI dispatch switch is the
23
+ // only switch on `step` that uses numbered cases.
24
+ const switchMatch = editorSource.match(/switch\s*\(step\)\s*\{([\s\S]*?)\n\s{4}\}/);
25
+ expect(switchMatch).not.toBeNull();
26
+ const switchBody = switchMatch[1];
27
+ for (let step = 1; step <= 16; step++) {
28
+ const casePattern = new RegExp(`case\\s+${step}\\s*[:{]`);
29
+ expect(switchBody).toMatch(casePattern);
30
+ }
31
+ });
32
+ it('should have STEP_LABELS entries for all steps 1–16', () => {
33
+ for (let step = 1; step <= 16; step++) {
34
+ const labelPattern = new RegExp(`${step}:\\s*'[^']+'`);
35
+ expect(editorSource).toMatch(labelPattern);
36
+ }
37
+ });
38
+ it('should have printStep functions defined for all steps 1–16', () => {
39
+ for (let step = 1; step <= 16; step++) {
40
+ const fnPattern = new RegExp(`function\\s+printStep${step}\\s*\\(`);
41
+ expect(editorSource).toMatch(fnPattern);
42
+ }
43
+ });
44
+ });
45
+ //# sourceMappingURL=editor.stepDispatch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.stepDispatch.test.js","sourceRoot":"","sources":["../../../../../src/commands/__tests__/editor.stepDispatch.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;;GASG;AACH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,EACvC,MAAM,CACP,CAAC;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,2DAA2D;QAC3D,kDAAkD;QAClD,kFAAkF;QAClF,qEAAqE;QACrE,EAAE;QACF,8EAA8E;QAE9E,wEAAwE;QACxE,kDAAkD;QAClD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CACpC,2CAA2C,CAC5C,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,UAAU,GAAG,WAAY,CAAC,CAAC,CAAC,CAAC;QAEnC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC;YAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,wBAAwB,IAAI,SAAS,CAAC,CAAC;YACpE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}