@codeyam/codeyam-cli 0.1.0-staging.09652b8 → 0.1.0-staging.28f73cf
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 +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +7 -6
- package/analyzer-template/packages/ai/index.ts +2 -0
- package/analyzer-template/packages/ai/package.json +2 -2
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +24 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +14 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1402 -546
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +138 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +139 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/DebugTracer.ts +224 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/PathManager.ts +203 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/README.md +294 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +161 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts +235 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +2 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/selectBestValue.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.ts +113 -0
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +36 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +32 -8
- package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +27 -6
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +42 -4
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +39 -0
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +18 -6
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +2 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +8 -10
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +6 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +8 -6
- package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +5 -13
- package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +34 -15
- package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +17 -3
- package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +35 -16
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +7 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +9 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +6 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +9 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts +23 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js +30 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js.map +1 -0
- package/analyzer-template/packages/aws/package.json +5 -4
- package/analyzer-template/packages/aws/s3/index.ts +4 -0
- package/analyzer-template/packages/aws/src/lib/s3/getPresignedUrl.ts +62 -0
- package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +6 -3
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +5 -3
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js.map +1 -1
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts +2 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js.map +1 -1
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts +2 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.d.ts +37 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.js +27 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/index.d.ts +1 -0
- package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/index.js +1 -0
- package/analyzer-template/packages/github/dist/utils/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts +25 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js +40 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
- package/analyzer-template/packages/supabase/src/lib/kysely/db.ts +6 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tableRelations.ts +3 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/debugReportsTable.ts +61 -0
- package/analyzer-template/packages/utils/dist/utils/index.d.ts +1 -0
- package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/index.js +1 -0
- package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts +25 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js +40 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
- package/analyzer-template/packages/utils/index.ts +1 -0
- package/analyzer-template/packages/utils/src/lib/Semaphore.ts +42 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +2 -1
- package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +1 -0
- package/analyzer-template/project/constructMockCode.ts +170 -6
- package/analyzer-template/project/reconcileMockDataKeys.ts +13 -0
- package/analyzer-template/project/start.ts +1 -11
- package/analyzer-template/project/writeMockDataTsx.ts +32 -1
- package/analyzer-template/project/writeScenarioComponents.ts +164 -18
- package/analyzer-template/project/writeUniversalMocks.ts +66 -8
- package/background/src/lib/virtualized/project/constructMockCode.js +158 -7
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +12 -0
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +1 -8
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +25 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +129 -17
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeUniversalMocks.js +56 -7
- package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
- package/codeyam-cli/src/cli.js +6 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/codeyam-cli.js +0 -0
- package/codeyam-cli/src/commands/debug.js +221 -0
- package/codeyam-cli/src/commands/debug.js.map +1 -0
- package/codeyam-cli/src/commands/report.js +102 -0
- package/codeyam-cli/src/commands/report.js.map +1 -0
- package/codeyam-cli/src/commands/setup-sandbox.js +164 -0
- package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +6 -6
- package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +8 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analyzer.js +30 -0
- package/codeyam-cli/src/utils/analyzer.js.map +1 -1
- package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +2 -2
- package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +219 -0
- package/codeyam-cli/src/utils/generateReport.js.map +1 -0
- package/codeyam-cli/src/utils/install-skills.js +7 -0
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js +1 -0
- package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +5 -1
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +4 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/database.js +50 -2
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-D5ZHFomX.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CDnfNKKQ.js → InteractivePreview-XDSzQLOY.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-DUS-3h7I.js → LibraryFunctionPreview-BYVx9KFp.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-TJzDQku1.js → LogViewer-CRcT5fOZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BORLgi0X.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BgdlWM6p.js → SafeScreenshot-Bual6h18.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bi-YUMa-.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-4D2vLLJz.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/_index-BC200mfN.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CxvZPkCv.js +10 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.generate-report-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/chart-column-B8fb6wnw.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-WWGJGFF6-DvL0YqDJ.js → chunk-WWGJGFF6-De6i8FUT.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/circle-alert-IdsgAK39.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-BACUUf75.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/clock-vWeoCemX.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CS7XDrKv.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DIOEw_3i.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-3bYjyojg.js → entity._sha._-8Els_3Wb.js} +10 -10
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-DtfwpN9J.js → entity._sha_.create-scenario-C3FZJx1w.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-YJz_igar.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/entityStatus-BEqj2qBy.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-DiP0q291.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/file-text-LM0mgxXE.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-Dxh9CcaV.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{git-WoKohOtW.js → git-BXmqrWCH.js} +10 -10
- package/codeyam-cli/src/webserver/build/client/assets/globals-BGS74ED-.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-Vvbl94Xc.js → index-D-zYbzFZ.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-BXPKbHEb.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-1af162d4.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-DB7VgjCY.js +16 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-5zF_GOcS.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{settings-LuiJ1UIm.js → settings-Dc4MlMpK.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-BQ-02-jB.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-D7k-ArFa.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-CpUcCv1V.js → useLastLogLine-AlhS7g5F.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useToast-Ddo4UQv7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/zap-_jw-9DCp.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/{index-DzbqTxoN.js → index-D4JpXSIO.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-vwbN7n65.js +169 -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/templates/codeyam-setup-skill.md +65 -85
- package/codeyam-cli/templates/debug-command.md +125 -0
- package/package.json +4 -6
- package/packages/ai/index.js +1 -1
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +13 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +12 -0
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1023 -405
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +137 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +112 -0
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js +176 -0
- package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/PathManager.js +178 -0
- package/packages/ai/src/lib/dataStructure/helpers/PathManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +138 -0
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js +199 -0
- package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +2 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js +62 -0
- package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js +90 -0
- package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js.map +1 -0
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +22 -0
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateEntityKeyAttributes.js +32 -8
- package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js +13 -8
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +36 -3
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js +7 -0
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/FileAnalyzer.js +17 -5
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/index.js +2 -1
- package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +6 -8
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +5 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +8 -2
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +5 -8
- package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeChange.js +21 -9
- package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeEntity.js +10 -4
- package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeInitial.js +21 -9
- package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +6 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +9 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +5 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +9 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
- package/packages/generate/src/lib/scenarioComponent.js +5 -3
- package/packages/generate/src/lib/scenarioComponent.js.map +1 -1
- package/packages/supabase/src/lib/kysely/db.js +3 -0
- package/packages/supabase/src/lib/kysely/db.js.map +1 -1
- package/packages/supabase/src/lib/kysely/tables/debugReportsTable.js +27 -0
- package/packages/supabase/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
- package/packages/utils/index.js +1 -0
- package/packages/utils/index.js.map +1 -1
- package/packages/utils/src/lib/Semaphore.js +40 -0
- package/packages/utils/src/lib/Semaphore.js.map +1 -0
- package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
- package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
- package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
- package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-B9Sf8e9w.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bl6GY-OE.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BDq8RX50.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/_index-Bh3y3Wsl.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-tq7Bl6-t.js +0 -10
- package/codeyam-cli/src/webserver/build/client/assets/chart-column-q9_nHfwv.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/circle-alert-CKMpA1v_.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/clock-Wnfog8Qw.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C_ixaqqh.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-QecTs_sq.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-hnkEgHrC.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/file-text-CvCVdKLW.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-DgUCYhbd.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-DZfbt0u5.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-Bxm63UxG.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-c90b8608.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-DrVZQamX.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/search-CJkk16Ct.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-ConzHeiL.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-B9LRwAej.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useToast-DOxmMaSg.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/zap-D5R1FAcH.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-DGGis3OZ.js +0 -166
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import { error, header, info, success } from "../utils/progress.js";
|
|
4
|
+
import { getProjectRoot } from "../state.js";
|
|
5
|
+
import { initializeEnvironment, requireBranchAndProject, } from "../utils/database.js";
|
|
6
|
+
import { getDatabase, loadAnalysis, updateFreshAnalysisStatus, } from "../../../packages/supabase/index.js";
|
|
7
|
+
import { ProjectFramework } from "../../../packages/types/index.js";
|
|
8
|
+
import { isServerRunning } from "../utils/serverState.js";
|
|
9
|
+
import { startBackgroundServer } from "../utils/backgroundServer.js";
|
|
10
|
+
import { ensureFreshAnalyzer, resetProject } from "../utils/analyzer.js";
|
|
11
|
+
const debugCommand = {
|
|
12
|
+
command: 'debug <id>',
|
|
13
|
+
describe: 'Setup debug environment for a specific analysis or scenario (auto-detects ID type)',
|
|
14
|
+
builder: {
|
|
15
|
+
id: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
describe: 'The analysis ID or scenario ID to debug',
|
|
18
|
+
demandOption: true,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
handler: async (argv) => {
|
|
22
|
+
header('CodeYam Debug Setup');
|
|
23
|
+
const { id } = argv;
|
|
24
|
+
let analysisId;
|
|
25
|
+
let scenarioId;
|
|
26
|
+
// Find project root directory
|
|
27
|
+
const projectRoot = getProjectRoot();
|
|
28
|
+
if (!projectRoot) {
|
|
29
|
+
error('Not in a CodeYam project. Run: codeyam init');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
await initializeEnvironment();
|
|
34
|
+
// Auto-detect whether the ID is a scenario or analysis
|
|
35
|
+
info(`Detecting ID type for ${id}...`);
|
|
36
|
+
const db = getDatabase();
|
|
37
|
+
// First check if it's a scenario ID
|
|
38
|
+
const scenarioRow = await db
|
|
39
|
+
.selectFrom('scenarios')
|
|
40
|
+
.select(['id', 'analysis_id'])
|
|
41
|
+
.where('id', '=', id)
|
|
42
|
+
.executeTakeFirst();
|
|
43
|
+
if (scenarioRow) {
|
|
44
|
+
scenarioId = id;
|
|
45
|
+
analysisId = scenarioRow.analysis_id;
|
|
46
|
+
info(`Found scenario, using analysis ${analysisId}`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
// Check if it's an analysis ID
|
|
50
|
+
const analysisRow = await db
|
|
51
|
+
.selectFrom('analyses')
|
|
52
|
+
.select(['id'])
|
|
53
|
+
.where('id', '=', id)
|
|
54
|
+
.executeTakeFirst();
|
|
55
|
+
if (analysisRow) {
|
|
56
|
+
analysisId = id;
|
|
57
|
+
info(`Found analysis ${analysisId}`);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
error(`ID ${id} not found as either a scenario or analysis`);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Load the analysis
|
|
65
|
+
info(`Loading analysis ${analysisId}...`);
|
|
66
|
+
const analysis = await loadAnalysis({
|
|
67
|
+
id: analysisId,
|
|
68
|
+
includeScenarios: true,
|
|
69
|
+
includeCommitAndBranch: true,
|
|
70
|
+
});
|
|
71
|
+
if (!analysis) {
|
|
72
|
+
error(`Analysis ${analysisId} not found`);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (!analysis.commit) {
|
|
76
|
+
error(`Commit not found for analysis ${analysisId}`);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
info(`Found analysis for entity: ${analysis.entityName}`);
|
|
80
|
+
info(`File: ${analysis.filePath}`);
|
|
81
|
+
// Get project configuration
|
|
82
|
+
const configPath = path.join(projectRoot, '.codeyam', 'config.json');
|
|
83
|
+
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
84
|
+
const { projectSlug } = config;
|
|
85
|
+
if (!projectSlug) {
|
|
86
|
+
error('Project slug not found in config');
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// Reset project cache to ensure clean state (no leftover mocks from setup-sandbox)
|
|
90
|
+
info('Resetting project cache...');
|
|
91
|
+
await resetProject(projectSlug);
|
|
92
|
+
// Ensure analyzer is up-to-date before debug setup
|
|
93
|
+
info('Checking analyzer...');
|
|
94
|
+
await ensureFreshAnalyzer(projectSlug, {
|
|
95
|
+
update: (message) => info(message),
|
|
96
|
+
});
|
|
97
|
+
// Clear log file before starting debug setup
|
|
98
|
+
const logPath = `/tmp/codeyam/local-dev/${projectSlug}/codeyam/log.txt`;
|
|
99
|
+
try {
|
|
100
|
+
fs.writeFileSync(logPath, '', 'utf8');
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// Log file might not exist yet, that's fine
|
|
104
|
+
}
|
|
105
|
+
const { project } = await requireBranchAndProject(projectSlug);
|
|
106
|
+
const packageManager = project.metadata?.packageManager || 'npm';
|
|
107
|
+
const framework = project.metadata?.webapps?.[0]?.framework ?? ProjectFramework.Next;
|
|
108
|
+
const port = 3112;
|
|
109
|
+
const projectPath = `/tmp/codeyam/local-dev/${projectSlug}/project`;
|
|
110
|
+
// Reset scenario capture status
|
|
111
|
+
info('Resetting scenario status...');
|
|
112
|
+
await updateFreshAnalysisStatus(analysisId, (freshStatus) => {
|
|
113
|
+
if (!freshStatus)
|
|
114
|
+
return;
|
|
115
|
+
freshStatus.readyToBeCaptured = true;
|
|
116
|
+
if (freshStatus.scenarios) {
|
|
117
|
+
for (const scenario of freshStatus.scenarios) {
|
|
118
|
+
if (!scenarioId || scenario.name === scenarioId) {
|
|
119
|
+
delete scenario.screenshotStartedAt;
|
|
120
|
+
delete scenario.screenshotFinishedAt;
|
|
121
|
+
delete scenario.interactiveStartedAt;
|
|
122
|
+
delete scenario.interactiveFinishedAt;
|
|
123
|
+
delete scenario.error;
|
|
124
|
+
delete scenario.errorStack;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
// Ensure web server is running
|
|
130
|
+
const { running, state } = isServerRunning();
|
|
131
|
+
let serverUrl;
|
|
132
|
+
if (running && state) {
|
|
133
|
+
serverUrl = state.url;
|
|
134
|
+
info(`Using web server at ${serverUrl}`);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
info('Starting web server...');
|
|
138
|
+
const { project: dbProject, branch } = await requireBranchAndProject(projectSlug);
|
|
139
|
+
const { url } = await startBackgroundServer({
|
|
140
|
+
port: 3111,
|
|
141
|
+
rootPath: projectRoot,
|
|
142
|
+
project: dbProject,
|
|
143
|
+
branch,
|
|
144
|
+
});
|
|
145
|
+
serverUrl = url;
|
|
146
|
+
info(`Web server started at ${serverUrl}`);
|
|
147
|
+
}
|
|
148
|
+
info('Queueing debug setup job...');
|
|
149
|
+
// Enqueue the job via HTTP API
|
|
150
|
+
const enqueueResponse = await fetch(`${serverUrl}/api/queue`, {
|
|
151
|
+
method: 'POST',
|
|
152
|
+
headers: { 'Content-Type': 'application/json' },
|
|
153
|
+
body: JSON.stringify({
|
|
154
|
+
action: 'enqueue',
|
|
155
|
+
type: 'debug-setup',
|
|
156
|
+
commitSha: analysis.commit.sha,
|
|
157
|
+
projectSlug,
|
|
158
|
+
analysisId,
|
|
159
|
+
scenarioId,
|
|
160
|
+
prepOnly: true,
|
|
161
|
+
}),
|
|
162
|
+
});
|
|
163
|
+
if (!enqueueResponse.ok) {
|
|
164
|
+
const errData = await enqueueResponse.json();
|
|
165
|
+
error(`Failed to enqueue job: ${errData.error || enqueueResponse.statusText}`);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const { jobId } = await enqueueResponse.json();
|
|
169
|
+
info(`Job queued: ${jobId.substring(0, 8)}`);
|
|
170
|
+
info('');
|
|
171
|
+
info('Waiting for setup to complete...');
|
|
172
|
+
info('(This may take a minute as files are prepared)');
|
|
173
|
+
info('');
|
|
174
|
+
// Poll for job completion via HTTP API
|
|
175
|
+
const pollInterval = 1000;
|
|
176
|
+
let completed = false;
|
|
177
|
+
while (!completed) {
|
|
178
|
+
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
179
|
+
const statusResponse = await fetch(`${serverUrl}/api/queue?queryType=job&jobId=${encodeURIComponent(jobId)}`);
|
|
180
|
+
if (!statusResponse.ok) {
|
|
181
|
+
error(`Failed to check job status: ${statusResponse.statusText}`);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
const statusData = await statusResponse.json();
|
|
185
|
+
if (statusData.status === 'failed') {
|
|
186
|
+
error(`Debug setup failed: ${statusData.error || 'Unknown error'}`);
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
if (statusData.status === 'completed') {
|
|
190
|
+
completed = true;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
success('Debug environment ready!');
|
|
194
|
+
info('');
|
|
195
|
+
info('=== Next Steps ===');
|
|
196
|
+
info('');
|
|
197
|
+
info('1. Inspect the generated scenario files:');
|
|
198
|
+
info(` ${projectPath}`);
|
|
199
|
+
info('');
|
|
200
|
+
info('2. Look at the generated layout/component files:');
|
|
201
|
+
info(` ls ${projectPath}/app/static/`);
|
|
202
|
+
info('');
|
|
203
|
+
info('3. Start the development server:');
|
|
204
|
+
const startCmd = packageManager === 'npm'
|
|
205
|
+
? `cd ${projectPath} && npm run dev`
|
|
206
|
+
: `cd ${projectPath} && ${packageManager} dev`;
|
|
207
|
+
info(` ${startCmd}`);
|
|
208
|
+
info('');
|
|
209
|
+
info(`4. View in browser: http://localhost:${port}/static/codeyam-sample`);
|
|
210
|
+
info('');
|
|
211
|
+
info('5. Check logs for errors:');
|
|
212
|
+
info(` tail -f ${logPath}`);
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
error(`Debug setup failed: ${err.message}`);
|
|
216
|
+
console.error(err);
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
export default debugCommand;
|
|
221
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../../src/commands/debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { error, header, info, ProgressReporter, success, warn, } from "../utils/progress.js";
|
|
4
|
+
import { getProjectRoot } from "../state.js";
|
|
5
|
+
import { generateReportArchive, uploadReport, formatBytes, } from "../utils/generateReport.js";
|
|
6
|
+
const reportCommand = {
|
|
7
|
+
command: 'report',
|
|
8
|
+
describe: 'Create a debug report archive for sharing with the CodeYam team',
|
|
9
|
+
builder: {
|
|
10
|
+
output: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
alias: 'o',
|
|
13
|
+
describe: 'Output path for the report archive (default: /tmp/codeyam/report-*.tar.gz)',
|
|
14
|
+
},
|
|
15
|
+
upload: {
|
|
16
|
+
type: 'boolean',
|
|
17
|
+
alias: 'u',
|
|
18
|
+
default: false,
|
|
19
|
+
describe: 'Upload the report to CodeYam servers after creating it',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
handler: async (argv) => {
|
|
23
|
+
header('CodeYam Report');
|
|
24
|
+
const progress = new ProgressReporter();
|
|
25
|
+
const projectRoot = getProjectRoot();
|
|
26
|
+
if (!projectRoot) {
|
|
27
|
+
error('Not in a CodeYam project. Run: codeyam init');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const configPath = path.join(projectRoot, '.codeyam', 'config.json');
|
|
31
|
+
try {
|
|
32
|
+
// Load project configuration
|
|
33
|
+
progress.start('Loading project configuration...');
|
|
34
|
+
if (!fs.existsSync(configPath)) {
|
|
35
|
+
progress.fail('No CodeYam configuration found');
|
|
36
|
+
error('Run: codeyam init');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
40
|
+
const { projectSlug } = config;
|
|
41
|
+
if (!projectSlug) {
|
|
42
|
+
progress.fail('Invalid project configuration');
|
|
43
|
+
error('Missing project slug. Try reinitializing with: codeyam init --force');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
progress.succeed('Loaded project configuration');
|
|
47
|
+
// Generate report archive
|
|
48
|
+
const result = await generateReportArchive({
|
|
49
|
+
projectRoot,
|
|
50
|
+
projectSlug,
|
|
51
|
+
outputPath: argv.output,
|
|
52
|
+
feedback: { source: 'cli', issueType: 'other' },
|
|
53
|
+
onProgress: (message) => {
|
|
54
|
+
progress.start(message);
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
progress.succeed('Created archive');
|
|
58
|
+
// Success!
|
|
59
|
+
console.log();
|
|
60
|
+
success('Report created successfully');
|
|
61
|
+
info(`Path: ${result.path}`);
|
|
62
|
+
info(`Size: ${formatBytes(result.size)}`);
|
|
63
|
+
if (result.metadata.git.isDirty) {
|
|
64
|
+
warn('Note: Working directory has uncommitted changes');
|
|
65
|
+
}
|
|
66
|
+
// Upload if requested
|
|
67
|
+
if (argv.upload) {
|
|
68
|
+
console.log();
|
|
69
|
+
try {
|
|
70
|
+
const uploadResult = await uploadReport({
|
|
71
|
+
archivePath: result.path,
|
|
72
|
+
projectSlug,
|
|
73
|
+
metadata: result.metadata,
|
|
74
|
+
onProgress: (message) => {
|
|
75
|
+
progress.start(message);
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
progress.succeed('Upload confirmed');
|
|
79
|
+
console.log();
|
|
80
|
+
success(`Report uploaded! ID: ${uploadResult.reportId}`);
|
|
81
|
+
}
|
|
82
|
+
catch (uploadError) {
|
|
83
|
+
progress.fail('Upload failed');
|
|
84
|
+
error(uploadError.message);
|
|
85
|
+
info('The local report file is still available at the path above.');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log();
|
|
90
|
+
info('Share this file with the CodeYam team for debugging assistance.');
|
|
91
|
+
info('Or use --upload to upload directly to CodeYam servers.');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
progress.fail('Report generation failed');
|
|
96
|
+
error(err.message);
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
export default reportCommand;
|
|
102
|
+
//# sourceMappingURL=report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../../src/commands/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { error, header, info, success, ProgressReporter, } from "../utils/progress.js";
|
|
4
|
+
import { initializeEnvironment, requireBranchAndProject, } from "../utils/database.js";
|
|
5
|
+
import { findProjectRoot } from "../utils/project.js";
|
|
6
|
+
import { setProjectRoot } from "../state.js";
|
|
7
|
+
import { copyNodeRepoQuickly, sanitizeEnvFiles } from "../../../packages/utils/server.js";
|
|
8
|
+
import { applyUniversalMocks } from "../../../packages/utils/index.js";
|
|
9
|
+
const DEFAULT_PORT = 9999;
|
|
10
|
+
const setupSandboxCommand = {
|
|
11
|
+
command: 'setup-sandbox',
|
|
12
|
+
describe: 'Create a sandbox copy of the project for iterating on startup fixes',
|
|
13
|
+
builder: {
|
|
14
|
+
port: {
|
|
15
|
+
type: 'number',
|
|
16
|
+
alias: 'p',
|
|
17
|
+
describe: 'Port to suggest for dev servers',
|
|
18
|
+
default: DEFAULT_PORT,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
handler: async (argv) => {
|
|
22
|
+
header('Setting up sandbox environment');
|
|
23
|
+
const projectRoot = findProjectRoot();
|
|
24
|
+
if (!projectRoot) {
|
|
25
|
+
error('Not in a CodeYam project. Run "codeyam init" first.');
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
setProjectRoot(projectRoot);
|
|
29
|
+
const progress = new ProgressReporter();
|
|
30
|
+
try {
|
|
31
|
+
// Read project configuration
|
|
32
|
+
progress.start('Loading project configuration...');
|
|
33
|
+
const configPath = path.join(projectRoot, '.codeyam', 'config.json');
|
|
34
|
+
if (!fs.existsSync(configPath)) {
|
|
35
|
+
progress.fail('Configuration file not found');
|
|
36
|
+
error('Run "codeyam init" to initialize the project first');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
40
|
+
const { projectSlug } = config;
|
|
41
|
+
if (!projectSlug) {
|
|
42
|
+
progress.fail('Project slug not found in config');
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
progress.succeed('Configuration loaded');
|
|
46
|
+
// Initialize environment
|
|
47
|
+
progress.start('Initializing environment...');
|
|
48
|
+
await initializeEnvironment();
|
|
49
|
+
progress.succeed('Environment initialized');
|
|
50
|
+
// Get project from database
|
|
51
|
+
progress.start('Loading project from database...');
|
|
52
|
+
const { project } = await requireBranchAndProject(projectSlug);
|
|
53
|
+
progress.succeed('Project loaded');
|
|
54
|
+
const packageManager = project.metadata?.packageManager || 'npm';
|
|
55
|
+
const webapps = project.metadata?.webapps || [];
|
|
56
|
+
const sandboxPath = `/tmp/codeyam/local-dev/${projectSlug}/project`;
|
|
57
|
+
const port = argv.port || DEFAULT_PORT;
|
|
58
|
+
progress.start('Copying project to sandbox...');
|
|
59
|
+
// Copy project to temp directory
|
|
60
|
+
await fs.promises.mkdir(path.dirname(sandboxPath), { recursive: true });
|
|
61
|
+
await copyNodeRepoQuickly({
|
|
62
|
+
sourcePath: projectRoot,
|
|
63
|
+
destinationPath: sandboxPath,
|
|
64
|
+
excludes: ['.codeyam'],
|
|
65
|
+
silent: true,
|
|
66
|
+
});
|
|
67
|
+
progress.succeed('Project copied');
|
|
68
|
+
// Sanitize env files - replace real values with dummies
|
|
69
|
+
progress.start('Sanitizing environment files...');
|
|
70
|
+
const envResult = await sanitizeEnvFiles({
|
|
71
|
+
projectPath: sandboxPath,
|
|
72
|
+
});
|
|
73
|
+
if (envResult.createdFiles.length > 0 ||
|
|
74
|
+
envResult.sanitizedFiles.length > 0) {
|
|
75
|
+
const created = envResult.createdFiles.length;
|
|
76
|
+
const sanitized = envResult.sanitizedFiles.length;
|
|
77
|
+
progress.succeed(`Sanitized env files (${created} created, ${sanitized} sanitized)`);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
progress.succeed('No env files to sanitize');
|
|
81
|
+
}
|
|
82
|
+
// Apply universal mocks to the sandbox
|
|
83
|
+
const universalMocks = project.metadata?.universalMocks ?? [];
|
|
84
|
+
if (universalMocks.length > 0) {
|
|
85
|
+
progress.start(`Applying ${universalMocks.length} universal mock(s)...`);
|
|
86
|
+
const mockResult = await applyUniversalMocks({
|
|
87
|
+
mocks: universalMocks,
|
|
88
|
+
projectPath: sandboxPath,
|
|
89
|
+
log: (msg) => info(msg),
|
|
90
|
+
});
|
|
91
|
+
if (mockResult.failed > 0) {
|
|
92
|
+
progress.fail(`Failed to apply ${mockResult.failed} mock(s)`);
|
|
93
|
+
for (const err of mockResult.errors) {
|
|
94
|
+
error(` ${err.filePath}:${err.entityName} - ${err.error}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
progress.succeed(`Applied ${mockResult.applied} universal mock(s)`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Output success message with instructions
|
|
102
|
+
console.log();
|
|
103
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
104
|
+
success('SANDBOX READY');
|
|
105
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
106
|
+
console.log();
|
|
107
|
+
info(`Sandbox path: ${sandboxPath}`);
|
|
108
|
+
console.log();
|
|
109
|
+
// Show start commands for each webapp
|
|
110
|
+
if (webapps.length > 0) {
|
|
111
|
+
console.log('Configured webapps:');
|
|
112
|
+
for (const webapp of webapps) {
|
|
113
|
+
const webappName = webapp.path === '.' ? 'Root' : webapp.path;
|
|
114
|
+
console.log(` - ${webappName} (${webapp.framework})`);
|
|
115
|
+
if (webapp.startCommand) {
|
|
116
|
+
const cmd = webapp.startCommand.command || packageManager;
|
|
117
|
+
let args = webapp.startCommand.args || ['dev'];
|
|
118
|
+
// Substitute $PORT
|
|
119
|
+
args = args.map((arg) => arg.includes('$PORT')
|
|
120
|
+
? arg.replace('$PORT', port.toString())
|
|
121
|
+
: arg);
|
|
122
|
+
// Build env prefix
|
|
123
|
+
const envVars = [];
|
|
124
|
+
if (webapp.startCommand.env) {
|
|
125
|
+
for (const [key, value] of Object.entries(webapp.startCommand.env)) {
|
|
126
|
+
if (typeof value === 'string' && value.includes('$PORT')) {
|
|
127
|
+
envVars.push(`${key}=${value.replace('$PORT', port.toString())}`);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
envVars.push(`${key}=${value}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const envPrefix = envVars.length > 0 ? envVars.join(' ') + ' ' : '';
|
|
135
|
+
console.log(` Start: cd ${sandboxPath} && ${envPrefix}${cmd} ${args.join(' ')}`);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
console.log(` Start: (no startCommand configured)`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
console.log();
|
|
142
|
+
}
|
|
143
|
+
console.log('To test, start a server and then:');
|
|
144
|
+
console.log(` curl http://localhost:${port}`);
|
|
145
|
+
console.log();
|
|
146
|
+
console.log('Fix any errors directly in the sandbox files.');
|
|
147
|
+
console.log('Once each fix works, also write it to .codeyam/universal-mocks/');
|
|
148
|
+
console.log();
|
|
149
|
+
console.log('When done, verify all webapps with:');
|
|
150
|
+
for (const webapp of webapps) {
|
|
151
|
+
console.log(` codeyam test-startup --webappPath ${webapp.path} --debug`);
|
|
152
|
+
}
|
|
153
|
+
console.log();
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
progress.fail('Setup failed');
|
|
157
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
158
|
+
error(message);
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
export default setupSandboxCommand;
|
|
164
|
+
//# sourceMappingURL=setup-sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-sandbox.js","sourceRoot":"","sources":["../../../../src/commands/setup-sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,7 +114,7 @@ describe('cleanupAnalysisFiles', () => {
|
|
|
114
114
|
};
|
|
115
115
|
mockFs.existsSync.mockReturnValue(true);
|
|
116
116
|
mockFs.unlinkSync.mockImplementation(() => { });
|
|
117
|
-
mockFs.
|
|
117
|
+
mockFs.rmSync.mockImplementation(() => { });
|
|
118
118
|
deleteAnalysisFiles(projectSlug, analysis);
|
|
119
119
|
expect(mockFs.unlinkSync).toHaveBeenCalledTimes(2);
|
|
120
120
|
});
|
|
@@ -133,14 +133,14 @@ describe('cleanupAnalysisFiles', () => {
|
|
|
133
133
|
};
|
|
134
134
|
mockFs.existsSync.mockReturnValue(true);
|
|
135
135
|
mockFs.unlinkSync.mockImplementation(() => { });
|
|
136
|
-
mockFs.
|
|
136
|
+
mockFs.rmSync.mockImplementation(() => { });
|
|
137
137
|
deleteAnalysisFiles(projectSlug, analysis);
|
|
138
138
|
const screenshotsDir = path.join(projectRoot, '.codeyam', 'captures', 'screenshots', projectSlug, analysisId);
|
|
139
139
|
const staticDir = path.join(projectRoot, '.codeyam', 'captures', 'static', projectSlug, analysisId);
|
|
140
|
-
expect(mockFs.
|
|
140
|
+
expect(mockFs.rmSync).toHaveBeenCalledWith(screenshotsDir, {
|
|
141
141
|
recursive: true,
|
|
142
142
|
});
|
|
143
|
-
expect(mockFs.
|
|
143
|
+
expect(mockFs.rmSync).toHaveBeenCalledWith(staticDir, {
|
|
144
144
|
recursive: true,
|
|
145
145
|
});
|
|
146
146
|
});
|
|
@@ -167,7 +167,7 @@ describe('cleanupAnalysisFiles', () => {
|
|
|
167
167
|
};
|
|
168
168
|
mockFs.existsSync.mockReturnValue(true);
|
|
169
169
|
mockFs.unlinkSync.mockImplementation(() => { });
|
|
170
|
-
mockFs.
|
|
170
|
+
mockFs.rmSync.mockImplementation(() => {
|
|
171
171
|
throw new Error('Directory not empty');
|
|
172
172
|
});
|
|
173
173
|
// Should not throw
|
|
@@ -206,7 +206,7 @@ describe('cleanupAnalysisFiles', () => {
|
|
|
206
206
|
];
|
|
207
207
|
mockFs.existsSync.mockReturnValue(true);
|
|
208
208
|
mockFs.unlinkSync.mockImplementation(() => { });
|
|
209
|
-
mockFs.
|
|
209
|
+
mockFs.rmSync.mockImplementation(() => { });
|
|
210
210
|
deleteMultipleAnalysesFiles(projectSlug, analyses);
|
|
211
211
|
expect(mockFs.unlinkSync).toHaveBeenCalledTimes(2);
|
|
212
212
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanupAnalysisFiles.test.js","sourceRoot":"","sources":["../../../../../src/utils/__tests__/cleanupAnalysisFiles.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cleanupAnalysisFiles.test.js","sourceRoot":"","sources":["../../../../../src/utils/__tests__/cleanupAnalysisFiles.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,6 +114,10 @@ describe('setupClaudeCodeSettings', () => {
|
|
|
114
114
|
'Edit(.codeyam/**)',
|
|
115
115
|
'Write(.codeyam/**)',
|
|
116
116
|
'Glob(.codeyam/**)',
|
|
117
|
+
'Read(/tmp/codeyam/**)',
|
|
118
|
+
'Edit(/tmp/codeyam/**)',
|
|
119
|
+
'Write(/tmp/codeyam/**)',
|
|
120
|
+
'Glob(/tmp/codeyam/**)',
|
|
117
121
|
'other-tool',
|
|
118
122
|
],
|
|
119
123
|
},
|
|
@@ -202,6 +206,10 @@ describe('setupClaudeCodeSettings', () => {
|
|
|
202
206
|
'Edit(.codeyam/**)',
|
|
203
207
|
'Write(.codeyam/**)',
|
|
204
208
|
'Glob(.codeyam/**)',
|
|
209
|
+
'Read(/tmp/codeyam/**)',
|
|
210
|
+
'Edit(/tmp/codeyam/**)',
|
|
211
|
+
'Write(/tmp/codeyam/**)',
|
|
212
|
+
'Glob(/tmp/codeyam/**)',
|
|
205
213
|
],
|
|
206
214
|
},
|
|
207
215
|
}));
|