@codeyam/codeyam-cli 0.1.0-staging.9574237 → 0.1.0-staging.a77070e

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 (153) hide show
  1. package/analyzer-template/.build-info.json +6 -6
  2. package/analyzer-template/log.txt +3 -3
  3. package/codeyam-cli/src/cli.js +9 -0
  4. package/codeyam-cli/src/cli.js.map +1 -1
  5. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  6. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  7. package/codeyam-cli/src/commands/editor.js +481 -72
  8. package/codeyam-cli/src/commands/editor.js.map +1 -1
  9. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  10. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  11. package/codeyam-cli/src/commands/init.js +1 -0
  12. package/codeyam-cli/src/commands/init.js.map +1 -1
  13. package/codeyam-cli/src/commands/telemetry.js +37 -0
  14. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  15. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +1534 -1
  16. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  17. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  18. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  19. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +70 -0
  20. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -1
  21. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +97 -4
  22. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -1
  23. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +70 -0
  24. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -1
  25. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +185 -7
  26. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  27. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +48 -1
  28. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
  29. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  30. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  31. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +57 -0
  32. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -1
  33. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +180 -1
  34. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
  35. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  36. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  37. package/codeyam-cli/src/utils/backgroundServer.js +1 -1
  38. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  39. package/codeyam-cli/src/utils/editorAudit.js +287 -1
  40. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  41. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +13 -7
  42. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -1
  43. package/codeyam-cli/src/utils/editorEntityHelpers.js +18 -3
  44. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -1
  45. package/codeyam-cli/src/utils/editorScenarioSwitch.js +24 -2
  46. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -1
  47. package/codeyam-cli/src/utils/editorScenarios.js +73 -12
  48. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  49. package/codeyam-cli/src/utils/entityChangeStatus.js +9 -3
  50. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
  51. package/codeyam-cli/src/utils/fileWatcher.js +38 -0
  52. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  53. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  54. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  55. package/codeyam-cli/src/utils/install-skills.js +5 -0
  56. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  57. package/codeyam-cli/src/utils/scenarioCoverage.js +4 -1
  58. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -1
  59. package/codeyam-cli/src/utils/scenariosManifest.js +36 -0
  60. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
  61. package/codeyam-cli/src/utils/telemetry.js +106 -0
  62. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  63. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  64. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  65. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +40 -0
  66. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -1
  67. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +61 -0
  68. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
  69. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +92 -21
  70. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -1
  71. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +7 -1
  72. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -1
  73. package/codeyam-cli/src/webserver/backgroundServer.js +42 -57
  74. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  75. package/codeyam-cli/src/webserver/build/client/assets/{CopyButton-CzTDWkF2.js → CopyButton-CLe80MMu.js} +1 -1
  76. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-BFbq6iFk.js → EntityItem-Crt_KN_U.js} +1 -1
  77. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-B6OMi58N.js → EntityTypeIcon-CD7lGABo.js} +1 -1
  78. package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-DuYodzo1.js → InlineSpinner-CgTNOhnu.js} +1 -1
  79. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CXo9EeCl.js → InteractivePreview-CKeQT5Ty.js} +2 -2
  80. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-DYCNb2It.js → LibraryFunctionPreview-D3s1MFkb.js} +1 -1
  81. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CZgY3sxX.js → LogViewer-CM5zg40N.js} +1 -1
  82. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-CnYYwRDw.js → ReportIssueModal-C2PLkej3.js} +1 -1
  83. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-CDoF7ZpU.js → SafeScreenshot-DanvyBPb.js} +1 -1
  84. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DrnfvaLL.js → ScenarioViewer-DUMfcNVK.js} +1 -1
  85. package/codeyam-cli/src/webserver/build/client/assets/{Spinner-Df3UCi8k.js → Spinner-D0LgAaSa.js} +1 -1
  86. package/codeyam-cli/src/webserver/build/client/assets/{ViewportInspectBar-DRKR9T0U.js → ViewportInspectBar-BA_Ry-rs.js} +1 -1
  87. package/codeyam-cli/src/webserver/build/client/assets/{_index-ClR-g3tY.js → _index-BAWd-Xjf.js} +1 -1
  88. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-DTH6ydEA.js → activity.(_tab)-BOARiB-g.js} +1 -1
  89. package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-74hnHF59.js → addon-web-links-CHx25PAe.js} +1 -1
  90. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-B8CYhCO9.js → agent-transcripts-Bg3e7q4S.js} +1 -1
  91. package/codeyam-cli/src/webserver/build/client/assets/{book-open-CLaoh4ac.js → book-open-CL-lMgHh.js} +1 -1
  92. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BZ2DZxbW.js → chevron-down-GmAjGS9-.js} +1 -1
  93. package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-BBXArFPl.js → chunk-JZWAC4HX-BAdwhyCx.js} +11 -11
  94. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CT4unAk-.js → circle-check-DFcQkN5j.js} +1 -1
  95. package/codeyam-cli/src/webserver/build/client/assets/{copy-zK0B6Nu-.js → copy-C6iF61Xs.js} +1 -1
  96. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-DJB0YQJL.js → createLucideIcon-4ImjHTVC.js} +1 -1
  97. package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-CkXFP_i-.js → dev.empty-C8y4mmyv.js} +1 -1
  98. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-Gbk_i5Js.js +1 -0
  99. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-Bnx7yUP0.js +58 -0
  100. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-oepecPae.js +41 -0
  101. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BqAN7hyG.js → entity._sha._-Blfy9UlN.js} +1 -1
  102. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.dev-BOi8kpwd.js → entity._sha.scenarios._scenarioId.dev-KTQuL0aj.js} +1 -1
  103. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-Dg1NhIms.js → entity._sha.scenarios._scenarioId.fullscreen-C6eeL24i.js} +1 -1
  104. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-CJX6kkkV.js → entity._sha_.create-scenario-DQM8E7L4.js} +1 -1
  105. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BhVjZhKg.js → entity._sha_.edit._scenarioId-CAoXLsQr.js} +1 -1
  106. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-_gzKltPN.js → entry.client-SuW9syRS.js} +1 -1
  107. package/codeyam-cli/src/webserver/build/client/assets/{files-CV_17tZS.js → files-D-xGrg29.js} +1 -1
  108. package/codeyam-cli/src/webserver/build/client/assets/{git-D-YXmMbR.js → git-Bq_fbXP5.js} +1 -1
  109. package/codeyam-cli/src/webserver/build/client/assets/globals-fAqOD9ex.css +1 -0
  110. package/codeyam-cli/src/webserver/build/client/assets/{index-CCrgCshv.js → index-Bp1l4hSv.js} +1 -1
  111. package/codeyam-cli/src/webserver/build/client/assets/{index-BsX0F-9C.js → index-CWV9XZiG.js} +1 -1
  112. package/codeyam-cli/src/webserver/build/client/assets/{index-Blo6EK8G.js → index-DE3jI_dv.js} +1 -1
  113. package/codeyam-cli/src/webserver/build/client/assets/{labs-Byazq8Pv.js → labs-B_IX45ih.js} +1 -1
  114. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DVQ0oHR7.js → loader-circle-De-7qQ2u.js} +1 -1
  115. package/codeyam-cli/src/webserver/build/client/assets/manifest-3157d6b8.js +1 -0
  116. package/codeyam-cli/src/webserver/build/client/assets/{memory-b-VmA2Vj.js → memory-Cx2xEx7s.js} +1 -1
  117. package/codeyam-cli/src/webserver/build/client/assets/{pause-DGcndCAa.js → pause-CFxEKL1u.js} +1 -1
  118. package/codeyam-cli/src/webserver/build/client/assets/root-DB3O9_9j.js +67 -0
  119. package/codeyam-cli/src/webserver/build/client/assets/{search-C0Uw0bcK.js → search-BdBb5aqc.js} +1 -1
  120. package/codeyam-cli/src/webserver/build/client/assets/{settings-OoNgHIfW.js → settings-DdE-Untf.js} +1 -1
  121. package/codeyam-cli/src/webserver/build/client/assets/{simulations-Bcemfu8a.js → simulations-DSCdE99u.js} +1 -1
  122. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BgMmG7R9.js → terminal-CrplD4b1.js} +1 -1
  123. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-Cs87hJYK.js → triangle-alert-DqJ0j69l.js} +1 -1
  124. package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-BR3Rs7JY.js → useCustomSizes-DhXHbEjP.js} +1 -1
  125. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BxxP_XF9.js → useLastLogLine-BNd5hYuW.js} +1 -1
  126. package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-BermyNU5.js → useReportContext-Cy5Qg_UR.js} +1 -1
  127. package/codeyam-cli/src/webserver/build/client/assets/{useToast-a_QN_W9_.js → useToast-5HR2j9ZE.js} +1 -1
  128. package/codeyam-cli/src/webserver/build/server/assets/{analysisRunner-DXQyOV0G.js → analysisRunner-BMmkgAkg.js} +1 -1
  129. package/codeyam-cli/src/webserver/build/server/assets/{index-CHSrVJtC.js → index-DxB0pOSt.js} +1 -1
  130. package/codeyam-cli/src/webserver/build/server/assets/{init-DL8vWZ6m.js → init-DLYLaqqP.js} +2 -2
  131. package/codeyam-cli/src/webserver/build/server/assets/server-build-CcyitQLQ.js +551 -0
  132. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  133. package/codeyam-cli/src/webserver/build-info.json +5 -5
  134. package/codeyam-cli/src/webserver/editorProxy.js +78 -3
  135. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  136. package/codeyam-cli/src/webserver/idleDetector.js +41 -8
  137. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -1
  138. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +36 -0
  139. package/codeyam-cli/src/webserver/server.js +32 -0
  140. package/codeyam-cli/src/webserver/server.js.map +1 -1
  141. package/codeyam-cli/src/webserver/terminalServer.js +5 -5
  142. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  143. package/codeyam-cli/templates/codeyam-editor-reference.md +214 -0
  144. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +1 -1
  145. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +1 -1
  146. package/package.json +2 -1
  147. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-DPw7NZHc.js +0 -1
  148. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-Dmg9cGK3.js +0 -58
  149. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-DBa7T2FK.js +0 -41
  150. package/codeyam-cli/src/webserver/build/client/assets/globals-Bqg9V6XV.css +0 -1
  151. package/codeyam-cli/src/webserver/build/client/assets/manifest-422a3551.js +0 -1
  152. package/codeyam-cli/src/webserver/build/client/assets/root-ue8uWVRS.js +0 -67
  153. package/codeyam-cli/src/webserver/build/server/assets/server-build-BUKVjBSZ.js +0 -501
@@ -4,6 +4,7 @@
4
4
  * Cross-references glossary entries against registered scenarios (components)
5
5
  * and test files (functions) to detect gaps Claude may have missed.
6
6
  */
7
+ import { isIsolationUrl, } from "./entityChangeStatus.js";
7
8
  // ─── Logic ───────────────────────────────────────────────────────────
8
9
  const COMPONENT_RETURN_PATTERNS = ['JSX', 'React', 'Element', 'ReactNode'];
9
10
  /**
@@ -88,7 +89,10 @@ export function computeAudit({ components, functions, scenarioCounts, testFileEx
88
89
  };
89
90
  }
90
91
  let status;
91
- if (!tr.passing) {
92
+ if (!tr.passing && tr.errorMessage) {
93
+ status = 'runner_error';
94
+ }
95
+ else if (!tr.passing) {
92
96
  status = 'failing';
93
97
  }
94
98
  else if (!tr.hasEntityNameDescribe) {
@@ -105,6 +109,7 @@ export function computeAudit({ components, functions, scenarioCounts, testFileEx
105
109
  testsPassing: tr.passing,
106
110
  testsVisibleInUi: tr.hasEntityNameDescribe,
107
111
  status,
112
+ ...(tr.errorMessage ? { errorMessage: tr.errorMessage } : {}),
108
113
  };
109
114
  });
110
115
  const componentsOk = componentResults.filter((c) => c.status === 'ok').length;
@@ -112,6 +117,7 @@ export function computeAudit({ components, functions, scenarioCounts, testFileEx
112
117
  const componentsMissing = componentResults.filter((c) => c.status === 'missing').length;
113
118
  const functionsOk = functionResults.filter((f) => f.status === 'ok').length;
114
119
  const functionsFailing = functionResults.filter((f) => f.status === 'failing').length;
120
+ const functionsRunnerError = functionResults.filter((f) => f.status === 'runner_error').length;
115
121
  const functionsNameMismatch = functionResults.filter((f) => f.status === 'name_mismatch').length;
116
122
  const functionsMissing = functionResults.filter((f) => f.status === 'missing').length;
117
123
  return {
@@ -126,15 +132,44 @@ export function computeAudit({ components, functions, scenarioCounts, testFileEx
126
132
  functionsOk,
127
133
  functionsMissing,
128
134
  functionsFailing,
135
+ functionsRunnerError,
129
136
  functionsNameMismatch,
130
137
  allPassing: componentsMissing === 0 &&
131
138
  componentsWithErrors === 0 &&
132
139
  functionsFailing === 0 &&
140
+ functionsRunnerError === 0 &&
133
141
  functionsNameMismatch === 0 &&
134
142
  functionsMissing === 0,
135
143
  },
136
144
  };
137
145
  }
146
+ /**
147
+ * Returns true when the audit failure can be auto-fixed by running
148
+ * analyze-imports: incomplete entities are the only issue AND we haven't
149
+ * already tried (to prevent infinite retry loops when analysis has errors).
150
+ */
151
+ export function isAutoRemediable(summary, alreadyAttempted) {
152
+ if (alreadyAttempted)
153
+ return false;
154
+ if (!summary.incompleteEntities || summary.incompleteEntities === 0)
155
+ return false;
156
+ return isOnlyIncompleteEntities(summary);
157
+ }
158
+ /**
159
+ * Returns true when incompleteEntities is the ONLY audit failure —
160
+ * all other failure counts are zero. Used to decide whether auto-running
161
+ * analyze-imports can fix the audit without manual intervention.
162
+ */
163
+ export function isOnlyIncompleteEntities(summary) {
164
+ return ((summary.componentsMissing ?? 0) === 0 &&
165
+ (summary.componentsWithErrors ?? 0) === 0 &&
166
+ (summary.functionsFailing ?? 0) === 0 &&
167
+ (summary.functionsNameMismatch ?? 0) === 0 &&
168
+ (summary.functionsMissing ?? 0) === 0 &&
169
+ (summary.missingFromGlossary ?? 0) === 0 &&
170
+ (summary.miscategorizedScenarios ?? 0) === 0 &&
171
+ (summary.scenariosNeedingRecapture ?? 0) === 0);
172
+ }
138
173
  /**
139
174
  * Ensures the two audit filters — glossary scoping and scenario-count scoping —
140
175
  * are consistent. When entityChangeStatus is empty/undefined (meaning the glossary
@@ -173,6 +208,166 @@ export function filterGlossaryByChangeStatus(entries, entityChangeStatus) {
173
208
  return false;
174
209
  });
175
210
  }
211
+ /**
212
+ * Find entities that have scenarios but no analysis records.
213
+ * These entities need `codeyam editor analyze-imports` to run.
214
+ *
215
+ * Optionally scoped to the current feature session via featureStartedAt.
216
+ */
217
+ export async function queryIncompleteEntities(db, projectId, featureStartedAt) {
218
+ // Step 1: Get distinct entity SHAs from scenarios (with counts)
219
+ // No time filter — we check ALL scenarios to catch entities whose
220
+ // scenario SHAs were updated mid-session without touching updated_at.
221
+ const scenarioQuery = db
222
+ .selectFrom('editor_scenarios')
223
+ .select(['entity_sha'])
224
+ .select(db.fn.count('id').as('count'))
225
+ .where('project_id', '=', projectId)
226
+ .where('entity_sha', 'is not', null)
227
+ .groupBy('entity_sha');
228
+ const scenarioRows = await scenarioQuery.execute();
229
+ if (scenarioRows.length === 0)
230
+ return [];
231
+ const scenarioShas = scenarioRows.map((r) => r.entity_sha);
232
+ // Step 2: Get entity SHAs that have analyses
233
+ const analysisRows = await db
234
+ .selectFrom('analyses')
235
+ .select('entity_sha')
236
+ .where('entity_sha', 'in', scenarioShas)
237
+ .groupBy('entity_sha')
238
+ .execute();
239
+ const analyzedShas = new Set(analysisRows.map((r) => r.entity_sha));
240
+ // Step 3: Find scenario entity SHAs without direct analyses
241
+ const incompleteShas = scenarioRows.filter((r) => !analyzedShas.has(r.entity_sha));
242
+ if (incompleteShas.length === 0)
243
+ return [];
244
+ // Step 4: Look up entity names for incomplete SHAs
245
+ const incompleteShalist = incompleteShas.map((r) => r.entity_sha);
246
+ const entityRows = await db
247
+ .selectFrom('entities')
248
+ .select(['sha', 'name', 'file_path'])
249
+ .where('sha', 'in', incompleteShalist)
250
+ .execute();
251
+ const entityNameMap = new Map(entityRows.map((r) => [r.sha, r.name]));
252
+ // Step 4.5: Check for inherited analyses from sibling entity versions.
253
+ // A new entity version (created by the file watcher) may not have direct
254
+ // analyses, but an older version (same name+filePath) might. This matches
255
+ // getAllEntities() behavior which inherits analyses across versions.
256
+ const entityNames = [
257
+ ...new Set(entityRows.map((r) => r.name).filter(Boolean)),
258
+ ];
259
+ let namesWithInheritedAnalyses = new Set();
260
+ if (entityNames.length > 0) {
261
+ const siblingRows = await db
262
+ .selectFrom('entities')
263
+ .innerJoin('analyses', 'analyses.entity_sha', 'entities.sha')
264
+ .select('entities.name')
265
+ .where('entities.name', 'in', entityNames)
266
+ .groupBy('entities.name')
267
+ .execute();
268
+ namesWithInheritedAnalyses = new Set(siblingRows.map((r) => r.name));
269
+ }
270
+ // Filter out entities that have inherited analyses
271
+ const trulyIncompleteShas = incompleteShas.filter((r) => {
272
+ const name = entityNameMap.get(r.entity_sha);
273
+ return !name || !namesWithInheritedAnalyses.has(name);
274
+ });
275
+ if (trulyIncompleteShas.length === 0)
276
+ return [];
277
+ const trulyIncompleteShalist = trulyIncompleteShas.map((r) => r.entity_sha);
278
+ // Step 5: Also get component_name from scenarios as fallback for name
279
+ const scenarioNameRows = await db
280
+ .selectFrom('editor_scenarios')
281
+ .select(['entity_sha', 'component_name'])
282
+ .where('project_id', '=', projectId)
283
+ .where('entity_sha', 'in', trulyIncompleteShalist)
284
+ .where('component_name', 'is not', null)
285
+ .groupBy('entity_sha')
286
+ .execute();
287
+ const scenarioNameMap = new Map(scenarioNameRows.map((r) => [
288
+ r.entity_sha,
289
+ r.component_name,
290
+ ]));
291
+ // Step 6: Determine preExisting flag — if featureStartedAt is provided,
292
+ // check which entity SHAs have at least one scenario created/updated
293
+ // during the session. Those without any are pre-existing issues.
294
+ let sessionShas = new Set();
295
+ if (featureStartedAt) {
296
+ const sqliteTimestamp = featureStartedAt
297
+ .replace('T', ' ')
298
+ .replace(/\.\d{3}Z$/, '');
299
+ const sessionRows = await db
300
+ .selectFrom('editor_scenarios')
301
+ .select('entity_sha')
302
+ .where('project_id', '=', projectId)
303
+ .where('entity_sha', 'in', trulyIncompleteShalist)
304
+ .where((eb) => eb.or([
305
+ eb('created_at', '>=', sqliteTimestamp),
306
+ eb('updated_at', '>=', sqliteTimestamp),
307
+ ]))
308
+ .groupBy('entity_sha')
309
+ .execute();
310
+ sessionShas = new Set(sessionRows.map((r) => r.entity_sha));
311
+ }
312
+ return trulyIncompleteShas.map((r) => {
313
+ const sha = r.entity_sha;
314
+ return {
315
+ entitySha: sha,
316
+ name: entityNameMap.get(sha) || scenarioNameMap.get(sha) || 'Unknown',
317
+ scenarioCount: Number(r.count),
318
+ preExisting: featureStartedAt ? !sessionShas.has(sha) : false,
319
+ };
320
+ });
321
+ }
322
+ /**
323
+ * Find component scenarios that use non-isolation URLs.
324
+ *
325
+ * Component scenarios should always use `/isolated-components/...` URLs.
326
+ * When a component scenario points at a real page URL (e.g., `/library`),
327
+ * it's miscategorized — it should either be an application scenario
328
+ * (no componentName, with pageFilePath) or use an isolation route.
329
+ *
330
+ * Optionally scoped to the current feature session via featureStartedAt.
331
+ */
332
+ export async function queryMiscategorizedScenarios(db, projectId, featureStartedAt) {
333
+ let query = db
334
+ .selectFrom('editor_scenarios')
335
+ .select(['component_name', 'name', 'url'])
336
+ .where('project_id', '=', projectId)
337
+ .where('component_name', 'is not', null)
338
+ .where('url', 'is not', null);
339
+ if (featureStartedAt) {
340
+ const sqliteTimestamp = featureStartedAt
341
+ .replace('T', ' ')
342
+ .replace(/\.\d{3}Z$/, '');
343
+ query = query.where((eb) => eb.or([
344
+ eb('created_at', '>=', sqliteTimestamp),
345
+ eb('updated_at', '>=', sqliteTimestamp),
346
+ ]));
347
+ }
348
+ const rows = await query.execute();
349
+ // Filter to only rows where URL is NOT an isolation route
350
+ const miscategorized = rows.filter((r) => r.url && !isIsolationUrl(r.url));
351
+ if (miscategorized.length === 0)
352
+ return [];
353
+ // Group by (component_name, url)
354
+ const groups = new Map();
355
+ for (const row of miscategorized) {
356
+ const key = `${row.component_name}::${row.url}`;
357
+ const existing = groups.get(key);
358
+ if (existing) {
359
+ existing.scenarioNames.push(row.name);
360
+ }
361
+ else {
362
+ groups.set(key, {
363
+ componentName: row.component_name,
364
+ scenarioNames: [row.name],
365
+ url: row.url,
366
+ });
367
+ }
368
+ }
369
+ return [...groups.values()];
370
+ }
176
371
  /**
177
372
  * Query scenario counts per component, optionally scoped to the current
178
373
  * feature session via featureStartedAt.
@@ -207,4 +402,95 @@ export async function queryScenarioCounts(db, projectId, featureStartedAt) {
207
402
  }
208
403
  return counts;
209
404
  }
405
+ /**
406
+ * Query scenario counts per page file path for app-level scenarios.
407
+ *
408
+ * App-level scenarios have `component_name = null` and are linked to pages
409
+ * via `page_file_path`. This mirrors `queryScenarioCounts` but groups by
410
+ * `page_file_path` instead of `component_name`.
411
+ */
412
+ export async function queryPageScenarioCounts(db, projectId, featureStartedAt) {
413
+ let query = db
414
+ .selectFrom('editor_scenarios')
415
+ .select(['page_file_path'])
416
+ .select(db.fn.count('id').as('count'))
417
+ .where('project_id', '=', projectId)
418
+ .where('component_name', 'is', null)
419
+ .where('page_file_path', 'is not', null)
420
+ .groupBy('page_file_path');
421
+ if (featureStartedAt) {
422
+ const sqliteTimestamp = featureStartedAt
423
+ .replace('T', ' ')
424
+ .replace(/\.\d{3}Z$/, '');
425
+ query = query.where((eb) => eb.or([
426
+ eb('created_at', '>=', sqliteTimestamp),
427
+ eb('updated_at', '>=', sqliteTimestamp),
428
+ ]));
429
+ }
430
+ const rows = await query.execute();
431
+ const counts = {};
432
+ for (const row of rows) {
433
+ if (row.page_file_path) {
434
+ counts[row.page_file_path] = Number(row.count);
435
+ }
436
+ }
437
+ return counts;
438
+ }
439
+ // ─── Duplicate Name Detection ─────────────────────────────────────────
440
+ /**
441
+ * Detect glossary entries that share the same `name`.
442
+ *
443
+ * Returns a Map of name → entries[] for names that appear more than once.
444
+ * Single-occurrence names are excluded. Used to warn Claude that ambiguous
445
+ * names will make audit output confusing (e.g., three entries all named "Page").
446
+ */
447
+ export function detectDuplicateNames(entries) {
448
+ const groups = new Map();
449
+ for (const entry of entries) {
450
+ const existing = groups.get(entry.name);
451
+ if (existing)
452
+ existing.push(entry);
453
+ else
454
+ groups.set(entry.name, [entry]);
455
+ }
456
+ // Only return groups with duplicates
457
+ for (const [name, group] of groups) {
458
+ if (group.length <= 1)
459
+ groups.delete(name);
460
+ }
461
+ return groups;
462
+ }
463
+ /**
464
+ * Identify scenarios that need recapture because their entity (or an entity
465
+ * in their dependency tree) has changed.
466
+ *
467
+ * Each scenario's entity name is resolved from its entity_sha (which points
468
+ * to the default export for app-level scenarios). The caller joins
469
+ * editor_scenarios.entity_sha → entities.name before calling this function.
470
+ *
471
+ * A scenario needs recapture when its entity has status 'edited' or 'impacted'
472
+ * AND the scenario was NOT re-registered in the current feature session.
473
+ */
474
+ export function identifyScenariosNeedingRecapture(params) {
475
+ const { scenarios, entityChangeStatus } = params;
476
+ if (!entityChangeStatus || Object.keys(entityChangeStatus).length === 0) {
477
+ return [];
478
+ }
479
+ const result = [];
480
+ for (const scenario of scenarios) {
481
+ if (scenario.updatedInSession)
482
+ continue;
483
+ if (!scenario.entityName)
484
+ continue;
485
+ const changeStatus = entityChangeStatus[scenario.entityName];
486
+ if (!changeStatus)
487
+ continue;
488
+ result.push({
489
+ scenarioName: scenario.name,
490
+ entityName: scenario.entityName,
491
+ status: changeStatus,
492
+ });
493
+ }
494
+ return result;
495
+ }
210
496
  //# sourceMappingURL=editorAudit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editorAudit.js","sourceRoot":"","sources":["../../../../src/utils/editorAudit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editorAudit.js","sourceRoot":"","sources":["../../../../src/utils/editorAudit.ts"],"names":[],"mappings":"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"}
@@ -15,21 +15,27 @@ import { detectFirstFeature, scanPageFilePaths, } from "./entityChangeStatus.ser
15
15
  import { buildChangedFilesMap, buildEntityInfosFromScenarios, buildEntityInfosFromGlossary, computeEntityChangeStatus, } from "./entityChangeStatus.js";
16
16
  export async function computeEntityChangeStatusForEditor(params) {
17
17
  const { projectRoot, scenarioInputs, glossaryInputs } = params;
18
- const { map: pageFilePaths } = scanPageFilePaths(projectRoot);
18
+ const pageFileResult = params.precomputedPageFilePaths ?? scanPageFilePaths(projectRoot);
19
+ const pageFilePaths = pageFileResult.map;
19
20
  const pageEntityNames = new Set(Object.keys(pageFilePaths));
20
- const gitFiles = getGitStatusForProject();
21
+ const gitFiles = params.precomputedGitFiles ?? getGitStatusForProject();
21
22
  if (gitFiles.length === 0) {
22
23
  return { entityChangeStatus: {}, pageEntityNames };
23
24
  }
24
25
  const isFirstFeature = detectFirstFeature(projectRoot);
25
26
  const changedFiles = buildChangedFilesMap(gitFiles, isFirstFeature);
26
27
  let entitiesWithMetadata = [];
27
- try {
28
- await initializeEnvironment();
29
- entitiesWithMetadata = (await loadEntities({})) || [];
28
+ if (params.precomputedEntities) {
29
+ entitiesWithMetadata = params.precomputedEntities;
30
30
  }
31
- catch {
32
- // Non-fatal — just won't have importedBy data
31
+ else {
32
+ try {
33
+ await initializeEnvironment();
34
+ entitiesWithMetadata = (await loadEntities({})) || [];
35
+ }
36
+ catch {
37
+ // Non-fatal — just won't have importedBy data
38
+ }
33
39
  }
34
40
  const scenarioEntityInfos = buildEntityInfosFromScenarios(scenarioInputs, pageFilePaths, entitiesWithMetadata);
35
41
  let entityInfos = scenarioEntityInfos;
@@ -1 +1 @@
1
- {"version":3,"file":"editorEntityChangeStatus.js","sourceRoot":"","sources":["../../../../src/utils/editorEntityChangeStatus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,GAI1B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAAC,MAIxD;IAIC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAC/D,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAEpE,IAAI,oBAAoB,GAAU,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,qBAAqB,EAAE,CAAC;QAC9B,oBAAoB,GAAG,CAAC,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;IAED,MAAM,mBAAmB,GAAG,6BAA6B,CACvD,cAAc,EACd,aAAa,EACb,oBAAoB,CACrB,CAAC;IAEF,IAAI,WAAW,GAAG,mBAAmB,CAAC;IAEtC,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,MAAM,mBAAmB,GAAG,4BAA4B,CACtD,cAAc,EACd,aAAa,CACd,CAAC;QACF,WAAW,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,kBAAkB,GAAG,yBAAyB,CAClD,YAAY,EACZ,WAAW,CACZ,CAAC;IACF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"editorEntityChangeStatus.js","sourceRoot":"","sources":["../../../../src/utils/editorEntityChangeStatus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,GAK1B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAAC,MAWxD;IAIC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAE/D,MAAM,cAAc,GAClB,MAAM,CAAC,wBAAwB,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC;IACzC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB,IAAI,sBAAsB,EAAE,CAAC;IACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAEpE,IAAI,oBAAoB,GAAU,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC/B,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,qBAAqB,EAAE,CAAC;YAC9B,oBAAoB,GAAG,CAAC,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,6BAA6B,CACvD,cAAc,EACd,aAAa,EACb,oBAAoB,CACrB,CAAC;IAEF,IAAI,WAAW,GAAG,mBAAmB,CAAC;IAEtC,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,MAAM,mBAAmB,GAAG,4BAA4B,CACtD,cAAc,EACd,aAAa,CACd,CAAC;QACF,WAAW,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,kBAAkB,GAAG,yBAAyB,CAClD,YAAY,EACZ,WAAW,CACZ,CAAC;IACF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;AACjD,CAAC"}
@@ -57,6 +57,22 @@ export function buildEntityShaMap(pageGroups, componentGroups) {
57
57
  }
58
58
  return map;
59
59
  }
60
+ /**
61
+ * Build the set of entity names known to the import graph.
62
+ * Includes both importers (keys) AND their dependencies (values).
63
+ * A leaf entity like ExternalLinkIcon that doesn't import anything
64
+ * but IS imported by another entity is still "known" and should be
65
+ * considered complete for display purposes.
66
+ */
67
+ export function buildEntityNamesFromImportGraph(entityImports) {
68
+ const names = new Set();
69
+ for (const [key, deps] of Object.entries(entityImports)) {
70
+ names.add(key);
71
+ for (const dep of deps)
72
+ names.add(dep);
73
+ }
74
+ return names;
75
+ }
60
76
  /**
61
77
  * Check if an entity SHA represents a fully analyzed entity.
62
78
  */
@@ -111,19 +127,18 @@ export function findBrokenEntities(pageGroups, componentGroups, entityShaMap, is
111
127
  * Resolve a focused entity from a SHA using client-side data.
112
128
  * No server round-trip — uses already-loaded entities and scenarios.
113
129
  */
114
- export function resolveClientFocusedEntity(sha, allEntities, allScenarios) {
130
+ export function resolveClientFocusedEntity(sha, allEntities, _allScenarios) {
115
131
  if (!sha)
116
132
  return null;
117
133
  const entity = allEntities.find((e) => e.sha === sha);
118
134
  if (!entity)
119
135
  return null;
120
- const scenario = allScenarios.find((s) => s.entitySha === sha);
121
136
  return {
122
137
  sha,
123
138
  name: entity.name,
124
139
  filePath: entity.filePath,
125
140
  entityType: entity.entityType,
126
- displayName: scenario?.displayName || entity.name,
141
+ displayName: entity.name,
127
142
  };
128
143
  }
129
144
  //# sourceMappingURL=editorEntityHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editorEntityHelpers.js","sourceRoot":"","sources":["../../../../src/utils/editorEntityHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editorEntityHelpers.js","sourceRoot":"","sources":["../../../../src/utils/editorEntityHelpers.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import fs from 'fs';
10
10
  import path from 'path';
11
- import { runSeedAdapter, detectSeedAdapter } from "./editorSeedAdapter.js";
11
+ import { runSeedAdapter, detectSeedAdapter, } from "./editorSeedAdapter.js";
12
12
  /**
13
13
  * Track in-flight seed operations to deduplicate concurrent requests
14
14
  * for the same scenario.
@@ -70,6 +70,7 @@ export async function switchActiveScenario(params) {
70
70
  }, null, 2));
71
71
  // Run seed adapter for application/user scenarios
72
72
  let seedResult = null;
73
+ let sessionCookies;
73
74
  const isSeedScenario = effectiveType === 'application' || effectiveType === 'user';
74
75
  if (isSeedScenario) {
75
76
  // Deduplicate concurrent seed requests for the same scenario
@@ -83,10 +84,16 @@ export async function switchActiveScenario(params) {
83
84
  const seedPromise = runSeedAdapter(adapterPath, seedDataPath).then((result) => ({
84
85
  success: result.success,
85
86
  error: result.error,
87
+ sessionCookies: result.sessionCookies,
86
88
  }));
87
89
  activeSeedOperation = { scenarioId, promise: seedPromise };
88
90
  try {
89
- seedResult = await seedPromise;
91
+ const fullResult = await seedPromise;
92
+ seedResult = {
93
+ success: fullResult.success,
94
+ error: fullResult.error,
95
+ };
96
+ sessionCookies = fullResult.sessionCookies;
90
97
  }
91
98
  finally {
92
99
  if (activeSeedOperation &&
@@ -94,6 +101,20 @@ export async function switchActiveScenario(params) {
94
101
  activeSeedOperation = null;
95
102
  }
96
103
  }
104
+ // Persist session cookies to the scenario data file
105
+ if (seedResult?.success &&
106
+ sessionCookies &&
107
+ sessionCookies.length > 0) {
108
+ try {
109
+ const dataFile = path.join(scenariosDir, `${scenarioId}.json`);
110
+ const existing = JSON.parse(fs.readFileSync(dataFile, 'utf-8'));
111
+ existing.sessionCookies = sessionCookies;
112
+ fs.writeFileSync(dataFile, JSON.stringify(existing, null, 2));
113
+ }
114
+ catch {
115
+ // Non-fatal — cookies just won't be persisted
116
+ }
117
+ }
97
118
  }
98
119
  else if (!adapterPath) {
99
120
  seedResult = { success: false, error: 'No seed adapter found' };
@@ -107,6 +128,7 @@ export async function switchActiveScenario(params) {
107
128
  type: effectiveType,
108
129
  seeded: isSeedScenario,
109
130
  ...(seedResult ? { seedResult } : {}),
131
+ ...(sessionCookies && sessionCookies.length > 0 ? { sessionCookies } : {}),
110
132
  };
111
133
  }
112
134
  //# sourceMappingURL=editorScenarioSwitch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editorScenarioSwitch.js","sourceRoot":"","sources":["../../../../src/utils/editorScenarioSwitch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editorScenarioSwitch.js","sourceRoot":"","sources":["../../../../src/utils/editorScenarioSwitch.ts"],"names":[],"mappings":"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"}