@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.
- package/analyzer-template/.build-info.json +6 -6
- package/analyzer-template/log.txt +3 -3
- package/codeyam-cli/src/cli.js +9 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
- package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
- package/codeyam-cli/src/commands/editor.js +481 -72
- package/codeyam-cli/src/commands/editor.js.map +1 -1
- package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
- package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
- package/codeyam-cli/src/commands/init.js +1 -0
- package/codeyam-cli/src/commands/init.js.map +1 -1
- package/codeyam-cli/src/commands/telemetry.js +37 -0
- package/codeyam-cli/src/commands/telemetry.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +1534 -1
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
- package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +70 -0
- package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +97 -4
- package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +70 -0
- package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +185 -7
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +48 -1
- package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
- package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +57 -0
- package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +180 -1
- package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
- package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
- package/codeyam-cli/src/utils/backgroundServer.js +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/editorAudit.js +287 -1
- package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
- package/codeyam-cli/src/utils/editorEntityChangeStatus.js +13 -7
- package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -1
- package/codeyam-cli/src/utils/editorEntityHelpers.js +18 -3
- package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -1
- package/codeyam-cli/src/utils/editorScenarioSwitch.js +24 -2
- package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -1
- package/codeyam-cli/src/utils/editorScenarios.js +73 -12
- package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
- package/codeyam-cli/src/utils/entityChangeStatus.js +9 -3
- package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
- package/codeyam-cli/src/utils/fileWatcher.js +38 -0
- package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
- package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
- package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
- package/codeyam-cli/src/utils/install-skills.js +5 -0
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/scenarioCoverage.js +4 -1
- package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -1
- package/codeyam-cli/src/utils/scenariosManifest.js +36 -0
- package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
- package/codeyam-cli/src/utils/telemetry.js +106 -0
- package/codeyam-cli/src/utils/telemetry.js.map +1 -0
- package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
- package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
- package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +40 -0
- package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +61 -0
- package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +92 -21
- package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/clientErrors.js +7 -1
- package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -1
- package/codeyam-cli/src/webserver/backgroundServer.js +42 -57
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{CopyButton-CzTDWkF2.js → CopyButton-CLe80MMu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-BFbq6iFk.js → EntityItem-Crt_KN_U.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-B6OMi58N.js → EntityTypeIcon-CD7lGABo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-DuYodzo1.js → InlineSpinner-CgTNOhnu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CXo9EeCl.js → InteractivePreview-CKeQT5Ty.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-DYCNb2It.js → LibraryFunctionPreview-D3s1MFkb.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CZgY3sxX.js → LogViewer-CM5zg40N.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-CnYYwRDw.js → ReportIssueModal-C2PLkej3.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-CDoF7ZpU.js → SafeScreenshot-DanvyBPb.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DrnfvaLL.js → ScenarioViewer-DUMfcNVK.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{Spinner-Df3UCi8k.js → Spinner-D0LgAaSa.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ViewportInspectBar-DRKR9T0U.js → ViewportInspectBar-BA_Ry-rs.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{_index-ClR-g3tY.js → _index-BAWd-Xjf.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-DTH6ydEA.js → activity.(_tab)-BOARiB-g.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-74hnHF59.js → addon-web-links-CHx25PAe.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-B8CYhCO9.js → agent-transcripts-Bg3e7q4S.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{book-open-CLaoh4ac.js → book-open-CL-lMgHh.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BZ2DZxbW.js → chevron-down-GmAjGS9-.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-BBXArFPl.js → chunk-JZWAC4HX-BAdwhyCx.js} +11 -11
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CT4unAk-.js → circle-check-DFcQkN5j.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{copy-zK0B6Nu-.js → copy-C6iF61Xs.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-DJB0YQJL.js → createLucideIcon-4ImjHTVC.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-CkXFP_i-.js → dev.empty-C8y4mmyv.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/editor._tab-Gbk_i5Js.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-Bnx7yUP0.js +58 -0
- package/codeyam-cli/src/webserver/build/client/assets/editorPreview-oepecPae.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BqAN7hyG.js → entity._sha._-Blfy9UlN.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.dev-BOi8kpwd.js → entity._sha.scenarios._scenarioId.dev-KTQuL0aj.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-Dg1NhIms.js → entity._sha.scenarios._scenarioId.fullscreen-C6eeL24i.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-CJX6kkkV.js → entity._sha_.create-scenario-DQM8E7L4.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BhVjZhKg.js → entity._sha_.edit._scenarioId-CAoXLsQr.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-_gzKltPN.js → entry.client-SuW9syRS.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{files-CV_17tZS.js → files-D-xGrg29.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{git-D-YXmMbR.js → git-Bq_fbXP5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-fAqOD9ex.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-CCrgCshv.js → index-Bp1l4hSv.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-BsX0F-9C.js → index-CWV9XZiG.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-Blo6EK8G.js → index-DE3jI_dv.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{labs-Byazq8Pv.js → labs-B_IX45ih.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DVQ0oHR7.js → loader-circle-De-7qQ2u.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-3157d6b8.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{memory-b-VmA2Vj.js → memory-Cx2xEx7s.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{pause-DGcndCAa.js → pause-CFxEKL1u.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-DB3O9_9j.js +67 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-C0Uw0bcK.js → search-BdBb5aqc.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{settings-OoNgHIfW.js → settings-DdE-Untf.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-Bcemfu8a.js → simulations-DSCdE99u.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{terminal-BgMmG7R9.js → terminal-CrplD4b1.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-Cs87hJYK.js → triangle-alert-DqJ0j69l.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-BR3Rs7JY.js → useCustomSizes-DhXHbEjP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BxxP_XF9.js → useLastLogLine-BNd5hYuW.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-BermyNU5.js → useReportContext-Cy5Qg_UR.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-a_QN_W9_.js → useToast-5HR2j9ZE.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{analysisRunner-DXQyOV0G.js → analysisRunner-BMmkgAkg.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{index-CHSrVJtC.js → index-DxB0pOSt.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{init-DL8vWZ6m.js → init-DLYLaqqP.js} +2 -2
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CcyitQLQ.js +551 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/src/webserver/editorProxy.js +78 -3
- package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
- package/codeyam-cli/src/webserver/idleDetector.js +41 -8
- package/codeyam-cli/src/webserver/idleDetector.js.map +1 -1
- package/codeyam-cli/src/webserver/scripts/journalCapture.ts +36 -0
- package/codeyam-cli/src/webserver/server.js +32 -0
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/src/webserver/terminalServer.js +5 -5
- package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
- package/codeyam-cli/templates/codeyam-editor-reference.md +214 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +1 -1
- package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +1 -1
- package/package.json +2 -1
- package/codeyam-cli/src/webserver/build/client/assets/editor._tab-DPw7NZHc.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-Dmg9cGK3.js +0 -58
- package/codeyam-cli/src/webserver/build/client/assets/editorPreview-DBa7T2FK.js +0 -41
- package/codeyam-cli/src/webserver/build/client/assets/globals-Bqg9V6XV.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-422a3551.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-ue8uWVRS.js +0 -67
- 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":"AAAA;;;;;GAKG;AAkDH,wEAAwE;AAExE,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAE3E;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAA8B;IACxD,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5C,KAAK,CAAC,UAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAChC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAwB;IAI9D,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,SAAS,GAAoB,EAAE,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,YAAY,GAcb;IACC,MAAM,gBAAgB,GAA0B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3D,IAAI,MAAqC,CAAC;QAC1C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,MAAM,GAAG,YAAY,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,aAAa,EAAE,KAAK;YACpB,MAAM;YACN,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAyB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChE,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ;YACvB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;YAC1C,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,SAAkB;aAC3B,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,gEAAgE;YAChE,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,IAAa;aACtB,CAAC;QACJ,CAAC;QAED,IAAI,MAAoC,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC;YACrC,MAAM,GAAG,eAAe,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,EAAE,CAAC,OAAO;YACxB,gBAAgB,EAAE,EAAE,CAAC,qBAAqB;YAC1C,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9E,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CACjC,CAAC,MAAM,CAAC;IACT,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAC9B,CAAC,MAAM,CAAC;IACT,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAC9B,CAAC,MAAM,CAAC;IACT,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,eAAe,CACpC,CAAC,MAAM,CAAC;IACT,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAC9B,CAAC,MAAM,CAAC;IAET,OAAO;QACL,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE;YACP,eAAe,EAAE,gBAAgB,CAAC,MAAM;YACxC,YAAY;YACZ,iBAAiB;YACjB,oBAAoB;YACpB,cAAc,EAAE,eAAe,CAAC,MAAM;YACtC,WAAW;YACX,gBAAgB;YAChB,gBAAgB;YAChB,qBAAqB;YACrB,UAAU,EACR,iBAAiB,KAAK,CAAC;gBACvB,oBAAoB,KAAK,CAAC;gBAC1B,gBAAgB,KAAK,CAAC;gBACtB,qBAAqB,KAAK,CAAC;gBAC3B,gBAAgB,KAAK,CAAC;SACzB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,EACvC,gBAAgB,EAChB,kBAAkB,GAInB;IAIC,MAAM,eAAe,GACnB,kBAAkB,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,4EAA4E;QAC5E,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACxD,CAAC;IAED,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAwB,EACxB,kBAAkE;IAElE,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,uBAAuB;QACvB,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAChD,2EAA2E;QAC3E,IAAI,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAe,EACf,SAAiB,EACjB,gBAA+B;IAE/B,IAAI,KAAK,GAAG,EAAE;SACX,UAAU,CAAC,kBAAkB,CAAC;SAC9B,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;SAC1B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAS,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;SAC7C,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC;SACnC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC;SACvC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,eAAe,GAAG,gBAAgB;aACrC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;aACjB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC5B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CACzB,EAAE,CAAC,EAAE,CAAC;YACJ,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC;YACvC,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
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
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
entitiesWithMetadata = (await loadEntities({})) || [];
|
|
28
|
+
if (params.precomputedEntities) {
|
|
29
|
+
entitiesWithMetadata = params.precomputedEntities;
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
|
|
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,
|
|
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,
|
|
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:
|
|
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
|
-
|
|
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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"editorScenarioSwitch.js","sourceRoot":"","sources":["../../../../src/utils/editorScenarioSwitch.ts"],"names":[],"mappings":"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"}
|