mirror of
https://github.com/morluto/rea.git
synced 2026-10-26 17:35:11 +00:00
refactor(cli): collapse duplicate CLI layer into src/cli (#630)
Move root cli*Commands and cliSetup into src/cli, delete the forwarding layer, point src/cli.ts and tests at the owners. No forwarding shims.
This commit is contained in:
1 parent
e7f54b3310
commit
494d4db6d9
9 files changed
+71
-71
No files matched your search
+5
-5
@@ -9,13 +9,13 @@ import { registerUtilityCommands } from "./cli/utilityCommands.js";
|
||||
import { registerArtifactCommands } from "./cli/artifactCommands.js";
|
||||
import { registerManagedCommands } from "./cli/managedCommands.js";
|
||||
import { registerEvidenceCommands } from "./cliEvidenceCommands.js";
|
||||
import { registerProcessCommands } from "./cliProcessCommands.js";
|
||||
import { registerBrowserCommands } from "./cliBrowserCommands.js";
|
||||
import { registerAdvancedBrowserCommands } from "./cliBrowserAdvancedCommands.js";
|
||||
import { registerProcessCommands } from "./cli/processCommands.js";
|
||||
import { registerBrowserCommands } from "./cli/browserCommands.js";
|
||||
import { registerAdvancedBrowserCommands } from "./cli/browserAdvancedCommands.js";
|
||||
import { registerBrowserScenarioCommands } from "./cliBrowserScenarioCommands.js";
|
||||
import { registerElectronCommands } from "./cliElectronCommands.js";
|
||||
import { registerElectronCommands } from "./cli/electronCommands.js";
|
||||
import { registerJavaScriptRuntimeObservationCommands } from "./cliJavaScriptRuntimeCommands.js";
|
||||
import { registerApplicationCommands } from "./cliApplicationCommands.js";
|
||||
import { registerApplicationCommands } from "./cli/applicationCommands.js";
|
||||
import type { CliInstance } from "./cli/types.js";
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,30 +5,30 @@ import {
|
||||
compareJavaScriptExportShapesEvidenceValidated,
|
||||
compareSourceToBundleEvidenceValidated,
|
||||
traceApplicationFeatureEvidenceValidated,
|
||||
} from "./application/JavaScriptApplicationWorkflowService.js";
|
||||
import { traceJavaScriptSemanticsEvidenceValidated } from "./application/JavaScriptSemanticTraceService.js";
|
||||
} from "../application/JavaScriptApplicationWorkflowService.js";
|
||||
import { traceJavaScriptSemanticsEvidenceValidated } from "../application/JavaScriptSemanticTraceService.js";
|
||||
import {
|
||||
evaluateReconstructionCoverage,
|
||||
reconstructionCoverageEvaluationInputSchema,
|
||||
} from "./application/ReconstructionCoverageService.js";
|
||||
import { buildReconstructionObligationLedgerEvidenceValidated } from "./application/ReconstructionObligationLedgerService.js";
|
||||
import { CLI_COMMANDS } from "./cliCommandNames.js";
|
||||
import { parseCliJsonInput } from "./cliJsonInput.js";
|
||||
import { logCliCommand } from "./cliLogging.js";
|
||||
} from "../application/ReconstructionCoverageService.js";
|
||||
import { buildReconstructionObligationLedgerEvidenceValidated } from "../application/ReconstructionObligationLedgerService.js";
|
||||
import { CLI_COMMANDS } from "../cliCommandNames.js";
|
||||
import { parseCliJsonInput } from "../cliJsonInput.js";
|
||||
import { logCliCommand } from "../cliLogging.js";
|
||||
import {
|
||||
AnalysisInputError,
|
||||
projectAnalysisError,
|
||||
type AnalysisError,
|
||||
} from "./domain/errors.js";
|
||||
import { jsonValueSchema, type JsonValue } from "./domain/jsonValue.js";
|
||||
import type { Logger } from "./logger.js";
|
||||
import { traceApplicationFeatureInputSchema } from "./domain/javascriptFeatureTraceSchemas.js";
|
||||
import { traceJavaScriptSemanticsInputSchema } from "./domain/javascriptSemanticTraceSchemas.js";
|
||||
import { compareApplicationVersionsInputSchema } from "./domain/javascriptApplicationVersionComparisonSchemas.js";
|
||||
import { compareSourceToBundleInputSchema } from "./domain/sourceToBundleComparisonSchemas.js";
|
||||
import { compareJavaScriptExportShapesInputSchema } from "./domain/javascriptExportShapeComparisonSchemas.js";
|
||||
import { projectInputIssues } from "./domain/inputIssueProjection.js";
|
||||
import { reconstructionObligationLedgerInputSchema } from "./domain/reconstructionObligationLedgerSchemas.js";
|
||||
} from "../domain/errors.js";
|
||||
import { jsonValueSchema, type JsonValue } from "../domain/jsonValue.js";
|
||||
import type { Logger } from "../logger.js";
|
||||
import { traceApplicationFeatureInputSchema } from "../domain/javascriptFeatureTraceSchemas.js";
|
||||
import { traceJavaScriptSemanticsInputSchema } from "../domain/javascriptSemanticTraceSchemas.js";
|
||||
import { compareApplicationVersionsInputSchema } from "../domain/javascriptApplicationVersionComparisonSchemas.js";
|
||||
import { compareSourceToBundleInputSchema } from "../domain/sourceToBundleComparisonSchemas.js";
|
||||
import { compareJavaScriptExportShapesInputSchema } from "../domain/javascriptExportShapeComparisonSchemas.js";
|
||||
import { projectInputIssues } from "../domain/inputIssueProjection.js";
|
||||
import { reconstructionObligationLedgerInputSchema } from "../domain/reconstructionObligationLedgerSchemas.js";
|
||||
|
||||
type CliInstance = ReturnType<typeof Cli.create>;
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
import { Cli, z } from "incur";
|
||||
|
||||
import { browserContext, browserCliError } from "./cliBrowserContext.js";
|
||||
import { browserScopeOptions } from "./cliObservationOptions.js";
|
||||
import { browserContext, browserCliError } from "../cliBrowserContext.js";
|
||||
import { browserScopeOptions } from "../cliObservationOptions.js";
|
||||
import {
|
||||
captureWebScreenshot,
|
||||
compareWebCaptureEvidence,
|
||||
compareWebScreenshotEvidence,
|
||||
discoverWebMcpTools,
|
||||
} from "./application/BrowserObservationService.js";
|
||||
import { CdpBrowserProvider } from "./browser/CdpBrowserProvider.js";
|
||||
import { logCliCommand } from "./cliLogging.js";
|
||||
import { AnalysisInputError } from "./domain/errors.js";
|
||||
import { browserCaptureComparisonInputSchema } from "./domain/browserCaptureComparison.js";
|
||||
import { discoverWebMcpToolsInputSchema } from "./domain/webMcpDiscovery.js";
|
||||
} from "../application/BrowserObservationService.js";
|
||||
import { CdpBrowserProvider } from "../browser/CdpBrowserProvider.js";
|
||||
import { logCliCommand } from "../cliLogging.js";
|
||||
import { AnalysisInputError } from "../domain/errors.js";
|
||||
import { browserCaptureComparisonInputSchema } from "../domain/browserCaptureComparison.js";
|
||||
import { discoverWebMcpToolsInputSchema } from "../domain/webMcpDiscovery.js";
|
||||
import {
|
||||
captureWebScreenshotInputSchema,
|
||||
compareWebScreenshotsInputSchema,
|
||||
} from "./domain/webScreenshot.js";
|
||||
import type { JsonValue } from "./domain/jsonValue.js";
|
||||
import { safeParseJson } from "./domain/safeJson.js";
|
||||
import type { Logger } from "./logger.js";
|
||||
import { CLI_COMMANDS } from "./cliCommandNames.js";
|
||||
} from "../domain/webScreenshot.js";
|
||||
import type { JsonValue } from "../domain/jsonValue.js";
|
||||
import { safeParseJson } from "../domain/safeJson.js";
|
||||
import type { Logger } from "../logger.js";
|
||||
import { CLI_COMMANDS } from "../cliCommandNames.js";
|
||||
|
||||
/** Register WebMCP, capture-diff, and screenshot CLI equivalents. */
|
||||
export const registerAdvancedBrowserCommands = (
|
||||
@@ -1,27 +1,27 @@
|
||||
import { Cli, z } from "incur";
|
||||
|
||||
import { browserContext, browserCliError } from "./cliBrowserContext.js";
|
||||
import { browserContext, browserCliError } from "../cliBrowserContext.js";
|
||||
import {
|
||||
analyzeWebBundle,
|
||||
inspectWebPage,
|
||||
listBrowserTargets,
|
||||
observeWebSession,
|
||||
} from "./application/BrowserObservationService.js";
|
||||
import { logCliCommand } from "./cliLogging.js";
|
||||
} from "../application/BrowserObservationService.js";
|
||||
import { logCliCommand } from "../cliLogging.js";
|
||||
import {
|
||||
inspectWebPageInputSchema,
|
||||
listBrowserTargetsInputSchema,
|
||||
} from "./domain/browserObservation.js";
|
||||
import { analyzeWebBundleInputSchema } from "./domain/webBundleAnalysis.js";
|
||||
import { observeWebSessionInputSchema } from "./domain/browserSession.js";
|
||||
import { AnalysisInputError } from "./domain/errors.js";
|
||||
import type { Logger } from "./logger.js";
|
||||
import { CLI_COMMANDS } from "./cliCommandNames.js";
|
||||
} from "../domain/browserObservation.js";
|
||||
import { analyzeWebBundleInputSchema } from "../domain/webBundleAnalysis.js";
|
||||
import { observeWebSessionInputSchema } from "../domain/browserSession.js";
|
||||
import { AnalysisInputError } from "../domain/errors.js";
|
||||
import type { Logger } from "../logger.js";
|
||||
import { CLI_COMMANDS } from "../cliCommandNames.js";
|
||||
import {
|
||||
browserPageInspectionOptions,
|
||||
browserScopeOptions,
|
||||
observationDuration,
|
||||
} from "./cliObservationOptions.js";
|
||||
} from "../cliObservationOptions.js";
|
||||
|
||||
/** Register CLI equivalents of the passive browser MCP tools. */
|
||||
export const registerBrowserCommands = (
|
||||
@@ -3,27 +3,27 @@ import { Cli, z } from "incur";
|
||||
import {
|
||||
inspectElectronPage,
|
||||
listElectronTargets,
|
||||
} from "./application/ElectronObservationService.js";
|
||||
import { captureElectronScenario } from "./application/ElectronActiveObservationService.js";
|
||||
import { reconcileJavaScriptRuntimeEvidence } from "./application/JavaScriptRuntimeReconciliationService.js";
|
||||
import { CdpElectronProvider } from "./browser/CdpElectronProvider.js";
|
||||
import { PlaywrightElectronActiveProvider } from "./browser/PlaywrightElectronActiveProvider.js";
|
||||
import { logCliCommand } from "./cliLogging.js";
|
||||
} from "../application/ElectronObservationService.js";
|
||||
import { captureElectronScenario } from "../application/ElectronActiveObservationService.js";
|
||||
import { reconcileJavaScriptRuntimeEvidence } from "../application/JavaScriptRuntimeReconciliationService.js";
|
||||
import { CdpElectronProvider } from "../browser/CdpElectronProvider.js";
|
||||
import { PlaywrightElectronActiveProvider } from "../browser/PlaywrightElectronActiveProvider.js";
|
||||
import { logCliCommand } from "../cliLogging.js";
|
||||
import {
|
||||
inspectElectronPageInputSchema,
|
||||
listElectronTargetsInputSchema,
|
||||
} from "./domain/electronObservation.js";
|
||||
import { electronActiveObservationInputSchema } from "./domain/electronActiveObservation.js";
|
||||
import { AnalysisInputError, projectAnalysisError } from "./domain/errors.js";
|
||||
import type { JsonValue } from "./domain/jsonValue.js";
|
||||
import type { Logger } from "./logger.js";
|
||||
import { CLI_COMMANDS } from "./cliCommandNames.js";
|
||||
import { parseCliJsonInput } from "./cliJsonInput.js";
|
||||
} from "../domain/electronObservation.js";
|
||||
import { electronActiveObservationInputSchema } from "../domain/electronActiveObservation.js";
|
||||
import { AnalysisInputError, projectAnalysisError } from "../domain/errors.js";
|
||||
import type { JsonValue } from "../domain/jsonValue.js";
|
||||
import type { Logger } from "../logger.js";
|
||||
import { CLI_COMMANDS } from "../cliCommandNames.js";
|
||||
import { parseCliJsonInput } from "../cliJsonInput.js";
|
||||
import {
|
||||
electronPageInspectionOptions,
|
||||
javascriptApplicationOptions,
|
||||
} from "./cliObservationOptions.js";
|
||||
import { runCliJavaScriptApplicationAnalysis } from "./cli/javascriptApplicationAnalysis.js";
|
||||
} from "../cliObservationOptions.js";
|
||||
import { runCliJavaScriptApplicationAnalysis } from "./javascriptApplicationAnalysis.js";
|
||||
|
||||
/** Register CLI equivalents of the Electron MCP tools. */
|
||||
export const registerElectronCommands = (
|
||||
@@ -14,8 +14,8 @@ import type {
|
||||
SetupClientState,
|
||||
SetupProgressEvent,
|
||||
SetupResult,
|
||||
} from "./application/SetupTypes.js";
|
||||
import { SUPPORTED_CLIENT_DEFINITIONS } from "./application/SupportedClients.js";
|
||||
} from "../application/SetupTypes.js";
|
||||
import { SUPPORTED_CLIENT_DEFINITIONS } from "../application/SupportedClients.js";
|
||||
|
||||
const clientDisplayNames: ReadonlyMap<string, string> = new Map(
|
||||
SUPPORTED_CLIENT_DEFINITIONS.map(({ name, displayName }) => [
|
||||
@@ -4,10 +4,10 @@ import {
|
||||
captureProcessScenarioFile,
|
||||
compareProcessEvidenceFiles,
|
||||
isProcessCliFailure,
|
||||
} from "./application/ProcessCli.js";
|
||||
import { logCliCommand } from "./cliLogging.js";
|
||||
import type { Logger } from "./logger.js";
|
||||
import { CLI_COMMANDS } from "./cliCommandNames.js";
|
||||
} from "../application/ProcessCli.js";
|
||||
import { logCliCommand } from "../cliLogging.js";
|
||||
import type { Logger } from "../logger.js";
|
||||
import { CLI_COMMANDS } from "../cliCommandNames.js";
|
||||
|
||||
/** Register direct process capture and comparison commands. */
|
||||
export const registerProcessCommands = (
|
||||
@@ -5,12 +5,12 @@ import {
|
||||
runDoctor,
|
||||
type DoctorScope,
|
||||
} from "../application/Doctor.js";
|
||||
import { runSetup } from "../application/Setup.js";
|
||||
import { systemSetupHost } from "../application/SetupHost.js";
|
||||
import {
|
||||
isSetupFailure,
|
||||
type SetupOptions,
|
||||
} from "../application/SetupTypes.js";
|
||||
import { runSetup } from "../application/Setup.js";
|
||||
import { systemSetupHost } from "../application/SetupHost.js";
|
||||
import { isUninstallFailure, runUninstall } from "../application/Uninstall.js";
|
||||
import { isUpdateFailure, runUpdate } from "../application/Update.js";
|
||||
import { systemUpdateHost } from "../application/UpdateRuntime.js";
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
confirmInteractiveSetup,
|
||||
renderInteractiveSetupResult,
|
||||
renderSetupProgress,
|
||||
} from "../cliSetup.js";
|
||||
} from "./interactiveSetup.js";
|
||||
import { PRODUCT_IDENTITY } from "../identity.js";
|
||||
import { logCliCommand } from "../cliLogging.js";
|
||||
import { createSystemDoctorHost } from "../doctorRuntime.js";
|
||||
|
||||
@@ -227,7 +227,7 @@ describe("interactive setup completion", () => {
|
||||
"--input-type=module",
|
||||
"--eval",
|
||||
[
|
||||
'import { renderInteractiveSetupResult } from "./dist/cliSetup.js";',
|
||||
'import { renderInteractiveSetupResult } from "./dist/cli/interactiveSetup.js";',
|
||||
"renderInteractiveSetupResult({",
|
||||
' status: "ready",',
|
||||
" plannedActions: [],",
|
||||
@@ -287,7 +287,7 @@ const runJourney = async (
|
||||
): Promise<JourneyResult> => {
|
||||
const isolatedHome = await createTestTempDirectory("rea-cli-setup-test-");
|
||||
const script = [
|
||||
'import { confirmInteractiveSetup } from "./dist/cliSetup.js";',
|
||||
'import { confirmInteractiveSetup } from "./dist/cli/interactiveSetup.js";',
|
||||
`const actions = ${JSON.stringify(journeyActions)};`,
|
||||
`const context = ${JSON.stringify({ stage: "select", clientStates, selectedClientIds: initialClientIds, clientSelectionAllowed: true })};`,
|
||||
`let decision = await confirmInteractiveSetup(actions, ${JSON.stringify(accessible)}, context);`,
|
||||
|
||||
Reference in new issue
Block a user